@platforma-sdk/block-tools 2.3.30 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +60 -2
  2. package/dist/cli.js +1 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cli.mjs +142 -87
  5. package/dist/cli.mjs.map +1 -1
  6. package/dist/cmd/index.d.ts +8 -6
  7. package/dist/cmd/index.d.ts.map +1 -1
  8. package/dist/cmd/mark-stable.d.ts +14 -0
  9. package/dist/cmd/mark-stable.d.ts.map +1 -0
  10. package/dist/cmd/publish.d.ts +1 -0
  11. package/dist/cmd/publish.d.ts.map +1 -1
  12. package/dist/config-DJEjRJs6.mjs +1671 -0
  13. package/dist/config-DJEjRJs6.mjs.map +1 -0
  14. package/dist/config-R2w8AhfY.js +3 -0
  15. package/dist/config-R2w8AhfY.js.map +1 -0
  16. package/dist/index.js +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.mjs +176 -132
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/v2/build_dist.d.ts.map +1 -1
  21. package/dist/v2/model/block_description.d.ts.map +1 -1
  22. package/dist/v2/registry/registry.d.ts +6 -3
  23. package/dist/v2/registry/registry.d.ts.map +1 -1
  24. package/dist/v2/registry/registry_reader.d.ts +10 -3
  25. package/dist/v2/registry/registry_reader.d.ts.map +1 -1
  26. package/dist/v2/registry/schema_public.d.ts +15476 -1938
  27. package/dist/v2/registry/schema_public.d.ts.map +1 -1
  28. package/package.json +5 -4
  29. package/src/cmd/index.ts +8 -6
  30. package/src/cmd/mark-stable.ts +71 -0
  31. package/src/cmd/publish.ts +11 -13
  32. package/src/io/storage.test.ts +2 -1
  33. package/src/v2/build_dist.test.ts +1 -0
  34. package/src/v2/build_dist.ts +2 -1
  35. package/src/v2/registry/registry.test.ts +60 -0
  36. package/src/v2/registry/registry.ts +87 -22
  37. package/src/v2/registry/registry_reader.test.ts +4 -0
  38. package/src/v2/registry/registry_reader.ts +83 -30
  39. package/src/v2/registry/schema_public.ts +61 -5
  40. package/src/v2/source_package.test.ts +1 -0
  41. package/dist/config-BVDkG_N7.js +0 -3
  42. package/dist/config-BVDkG_N7.js.map +0 -1
  43. package/dist/config-C9KOwWbG.mjs +0 -1602
  44. package/dist/config-C9KOwWbG.mjs.map +0 -1
@@ -0,0 +1,3 @@
1
+ "use strict";var Rr=Object.defineProperty;var kr=(t,e,r)=>e in t?Rr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var ne=(t,e,r)=>kr(t,typeof e!="symbol"?e+"":e,r);const l=require("@milaboratories/pl-model-middle-layer"),y=require("zod"),b=require("node:path"),M=require("node:fs/promises"),Pr=require("mime-types"),yr=require("tar"),Bt=require("@milaboratories/resolve-helper"),qe=require("@milaboratories/ts-helpers"),bt=require("node:crypto"),Sr=require("yaml"),Or=require("node:os"),U=require("node:path/posix"),Dt=require("@aws-sdk/client-s3"),Ir=require("node:fs");function me(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,s.get?s:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const $e=me(Pr),Cr=me(yr),ft=me(Or),Y=me(Ir);function _t(t){return y.z.string().transform((e,r)=>{const s=Bt.tryResolve(t,e);return s===void 0?(r.addIssue({code:y.z.ZodIssueCode.custom,message:`Can't resolve ${e} against ${t}`}),y.z.NEVER):{type:"absolute-file",file:s}})}function xt(t,...e){return y.z.string().transform((r,s)=>{const i=r.endsWith("/")?r:`${r}/`;for(const o of e){const c=Bt.tryResolve(t,i+o);if(c!==void 0){if(!c.endsWith(o))throw new Error(`Unexpected resolve result ${c} with index file ${o}`);return{type:"absolute-folder",folder:c.slice(0,c.length-o.length)}}}return s.addIssue({code:y.z.ZodIssueCode.custom,message:`Can't resolve ${r} folder against ${t}, no index file found (${e.join(", ")})`}),y.z.NEVER})}function _e(t){return e=>e.type==="relative"?{type:"absolute-file",file:b.resolve(t,e.path)}:e}function Je(){return async t=>t.type==="absolute-file"?await M.readFile(t.file,{encoding:"utf-8"}):t.content}function jt(){return async t=>{if(t.type==="absolute-file"){const e=$e.lookup(t.file);if(!e)throw new Error(`Can't recognize mime type of the file: ${t.file}.`);return{type:"explicit-base64",mimeType:e,content:await M.readFile(t.file,{encoding:"base64"})}}else return t}}function Gt(){return async t=>{if(t.type==="absolute-file"){const e=$e.lookup(t.file);if(!e)throw new Error(`Can't recognize mime type of the file: ${t.file}.`);return{type:"explicit-bytes",mimeType:e,content:Buffer.from(await M.readFile(t.file))}}else return t.type==="explicit-base64"?{type:"explicit-bytes",mimeType:t.mimeType,content:Buffer.from(t.content,"base64")}:t}}function he(t,e){return async r=>{if(r.type==="absolute-file"){const s=b.basename(r.file),i=b.resolve(t,s);return e==null||e.push(s),await M.cp(r.file,i),{type:"relative",path:s}}else return r}}function zt(t,e,r){if(!e.endsWith(".tgz"))throw new Error(`Unexpected tgz file name: ${e}`);return async s=>{const i=b.resolve(t,e);return await Cr.create({gzip:!0,file:i,cwd:s.folder},["."]),r==null||r.push(e),{type:"relative",path:e}}}function Ee(t){return async e=>e.type==="explicit-string"?e:{type:"explicit-string",content:(await t(e.path)).toString("utf8")}}function Vt(t){return async e=>e.type==="explicit-string"?e.content:(await t(e.path)).toString("utf8")}function Nr(t){return async e=>{if(e.type==="explicit-base64")return e;const r=$e.lookup(e.path);if(!r)throw new Error(`Can't recognize mime type of the file: ${e.path}.`);return{type:"explicit-base64",mimeType:r,content:(await t(e.path)).toString("base64")}}}function ee(t){return async e=>{if(e.type==="explicit-base64")return{type:"explicit-bytes",mimeType:e.mimeType,content:Buffer.from(e.content,"base64")};const r=$e.lookup(e.path);if(!r)throw new Error(`Can't recognize mime type of the file: ${e.path}.`);return{type:"explicit-bytes",mimeType:r,content:await t(e.path)}}}function Ut(t){return l.BlockPackMeta(l.DescriptionContentText.transform(_e(t)),l.DescriptionContentBinary.transform(_e(t)))}function Mt(t,e){return l.BlockPackMeta(l.ContentAbsoluteTextLocal.transform(he(t,e)),l.ContentAbsoluteBinaryLocal.transform(he(t,e)))}const Tr=l.BlockPackMeta(l.ContentAbsoluteTextLocal.transform(Je()),l.ContentAbsoluteBinaryLocal.transform(jt())).pipe(l.BlockPackMetaEmbeddedBase64),Lr=l.BlockPackMeta(l.ContentAbsoluteTextLocal.transform(Je()),l.ContentAbsoluteBinaryLocal.transform(Gt())).pipe(l.BlockPackMetaEmbeddedBytes);function Ar(t){return l.BlockPackMeta(l.ContentRelativeText.transform(Vt(t)),l.ContentRelativeBinary.transform(ee(t))).pipe(l.BlockPackMetaEmbeddedBytes)}function Xt(t){return l.BlockComponents(_t(t),xt(t,"index.html"))}function qt(t,e){return l.BlockComponents(l.ContentAbsoluteBinaryLocal.transform(he(t,e)),l.ContentAbsoluteFolder.transform(zt(t,"ui.tgz",e))).pipe(l.BlockComponentsManifest)}function Fr(t){return l.BlockComponents(l.ContentRelative.transform(l.mapRemoteToAbsolute(t)),l.ContentRelative.transform(l.mapRemoteToAbsolute(t)))}function We(t){return l.CreateBlockPackDescriptionSchema(Xt(t),Ut(t))}function Jt(t,e){return l.CreateBlockPackDescriptionSchema(qt(t,e),Mt(t,e)).pipe(l.BlockPackDescriptionManifest)}function xe(t){const e=l.addPrefixToRelative(t);return l.BlockPackDescriptionManifest.pipe(l.CreateBlockPackDescriptionSchema(l.BlockComponents(l.ContentRelative.transform(e),l.ContentRelative.transform(e)),l.BlockPackMeta(l.ContentRelativeText.transform(e),l.ContentRelativeBinary.transform(e)))).pipe(l.BlockPackDescriptionManifest)}async function He(t,e){try{return e(await M.readFile(t))}catch(r){if(r.code=="ENOENT")return;throw new Error("",{cause:r})}}async function pe(t){return Buffer.from(await crypto.subtle.digest("sha-256",t)).toString("hex").toUpperCase()}async function Br(t,e){await M.mkdir(e,{recursive:!0});const r=[],s=await Jt(e,r).parseAsync(t),i=await Promise.all(r.map(async c=>{const g=await M.readFile(b.resolve(e,c)),n=await pe(g);return{name:c,size:g.length,sha256:n}})),o=l.BlockPackManifest.parse({schema:"v2",description:s,files:i,timestamp:Date.now()});return await M.writeFile(b.resolve(e,l.BlockPackManifestFile),JSON.stringify(o)),o}const ge="block",br=/(?:@[a-zA-Z0-9-.]+\/)?(?<organization>[a-zA-Z0-9-]+)\.(?<name>[a-zA-Z0-9-]+)/;function Ye(t){const e=t.match(br);if(!e)throw new Error(`Malformed package name (${t}), can't infer organization and block pack name.`);const{name:r,organization:s}=e.groups;return{name:r,organization:s}}async function Dr(t,e){const r=b.resolve(t,"package.json");try{const s=await He(r,g=>JSON.parse(g.toString("utf-8")));if(s===void 0)return;const i=s[ge];if(i===void 0)return;const o={...l.BlockPackDescriptionFromPackageJsonRaw.parse(i),id:{...Ye(qe.notEmpty(s.name,`"name" not found in ${r}`)),version:l.SemVer.parse(s.version)}},c=await We(t).safeParseAsync(o);return c.success?c.data:void 0}catch(s){e==null||e.info(s);return}}async function Wt(t){const e=b.resolve(t,"package.json"),r=JSON.parse(await M.readFile(e,{encoding:"utf-8"})),s=r[ge];if(s===void 0)throw new Error(`Block description (field ${ge}) not found in ${e}.`);return{...l.BlockPackDescriptionFromPackageJsonRaw.parse(s),id:{...Ye(qe.notEmpty(r.name,`"name" not found in ${e}`)),version:l.SemVer.parse(r.version)}}}async function _r(t){const e=await Wt(t);return await We(t).parseAsync(e)}function xr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var je={exports:{}};const jr="2.0.0",Ht=256,Gr=Number.MAX_SAFE_INTEGER||9007199254740991,zr=16,Vr=Ht-6,Ur=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var ve={MAX_LENGTH:Ht,MAX_SAFE_COMPONENT_LENGTH:zr,MAX_SAFE_BUILD_LENGTH:Vr,MAX_SAFE_INTEGER:Gr,RELEASE_TYPES:Ur,SEMVER_SPEC_VERSION:jr,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const Mr=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};var we=Mr;(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:s,MAX_LENGTH:i}=ve,o=we;e=t.exports={};const c=e.re=[],g=e.safeRe=[],n=e.src=[],a=e.t={};let u=0;const d="[a-zA-Z0-9-]",O=[["\\s",1],["\\d",i],[d,s]],m=S=>{for(const[T,I]of O)S=S.split(`${T}*`).join(`${T}{0,${I}}`).split(`${T}+`).join(`${T}{1,${I}}`);return S},h=(S,T,I)=>{const L=m(T),R=u++;o(S,R,T),a[S]=R,n[R]=T,c[R]=new RegExp(T,I?"g":void 0),g[R]=new RegExp(L,I?"g":void 0)};h("NUMERICIDENTIFIER","0|[1-9]\\d*"),h("NUMERICIDENTIFIERLOOSE","\\d+"),h("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${d}*`),h("MAINVERSION",`(${n[a.NUMERICIDENTIFIER]})\\.(${n[a.NUMERICIDENTIFIER]})\\.(${n[a.NUMERICIDENTIFIER]})`),h("MAINVERSIONLOOSE",`(${n[a.NUMERICIDENTIFIERLOOSE]})\\.(${n[a.NUMERICIDENTIFIERLOOSE]})\\.(${n[a.NUMERICIDENTIFIERLOOSE]})`),h("PRERELEASEIDENTIFIER",`(?:${n[a.NUMERICIDENTIFIER]}|${n[a.NONNUMERICIDENTIFIER]})`),h("PRERELEASEIDENTIFIERLOOSE",`(?:${n[a.NUMERICIDENTIFIERLOOSE]}|${n[a.NONNUMERICIDENTIFIER]})`),h("PRERELEASE",`(?:-(${n[a.PRERELEASEIDENTIFIER]}(?:\\.${n[a.PRERELEASEIDENTIFIER]})*))`),h("PRERELEASELOOSE",`(?:-?(${n[a.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${n[a.PRERELEASEIDENTIFIERLOOSE]})*))`),h("BUILDIDENTIFIER",`${d}+`),h("BUILD",`(?:\\+(${n[a.BUILDIDENTIFIER]}(?:\\.${n[a.BUILDIDENTIFIER]})*))`),h("FULLPLAIN",`v?${n[a.MAINVERSION]}${n[a.PRERELEASE]}?${n[a.BUILD]}?`),h("FULL",`^${n[a.FULLPLAIN]}$`),h("LOOSEPLAIN",`[v=\\s]*${n[a.MAINVERSIONLOOSE]}${n[a.PRERELEASELOOSE]}?${n[a.BUILD]}?`),h("LOOSE",`^${n[a.LOOSEPLAIN]}$`),h("GTLT","((?:<|>)?=?)"),h("XRANGEIDENTIFIERLOOSE",`${n[a.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),h("XRANGEIDENTIFIER",`${n[a.NUMERICIDENTIFIER]}|x|X|\\*`),h("XRANGEPLAIN",`[v=\\s]*(${n[a.XRANGEIDENTIFIER]})(?:\\.(${n[a.XRANGEIDENTIFIER]})(?:\\.(${n[a.XRANGEIDENTIFIER]})(?:${n[a.PRERELEASE]})?${n[a.BUILD]}?)?)?`),h("XRANGEPLAINLOOSE",`[v=\\s]*(${n[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${n[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${n[a.XRANGEIDENTIFIERLOOSE]})(?:${n[a.PRERELEASELOOSE]})?${n[a.BUILD]}?)?)?`),h("XRANGE",`^${n[a.GTLT]}\\s*${n[a.XRANGEPLAIN]}$`),h("XRANGELOOSE",`^${n[a.GTLT]}\\s*${n[a.XRANGEPLAINLOOSE]}$`),h("COERCEPLAIN",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?`),h("COERCE",`${n[a.COERCEPLAIN]}(?:$|[^\\d])`),h("COERCEFULL",n[a.COERCEPLAIN]+`(?:${n[a.PRERELEASE]})?(?:${n[a.BUILD]})?(?:$|[^\\d])`),h("COERCERTL",n[a.COERCE],!0),h("COERCERTLFULL",n[a.COERCEFULL],!0),h("LONETILDE","(?:~>?)"),h("TILDETRIM",`(\\s*)${n[a.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",h("TILDE",`^${n[a.LONETILDE]}${n[a.XRANGEPLAIN]}$`),h("TILDELOOSE",`^${n[a.LONETILDE]}${n[a.XRANGEPLAINLOOSE]}$`),h("LONECARET","(?:\\^)"),h("CARETTRIM",`(\\s*)${n[a.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",h("CARET",`^${n[a.LONECARET]}${n[a.XRANGEPLAIN]}$`),h("CARETLOOSE",`^${n[a.LONECARET]}${n[a.XRANGEPLAINLOOSE]}$`),h("COMPARATORLOOSE",`^${n[a.GTLT]}\\s*(${n[a.LOOSEPLAIN]})$|^$`),h("COMPARATOR",`^${n[a.GTLT]}\\s*(${n[a.FULLPLAIN]})$|^$`),h("COMPARATORTRIM",`(\\s*)${n[a.GTLT]}\\s*(${n[a.LOOSEPLAIN]}|${n[a.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",h("HYPHENRANGE",`^\\s*(${n[a.XRANGEPLAIN]})\\s+-\\s+(${n[a.XRANGEPLAIN]})\\s*$`),h("HYPHENRANGELOOSE",`^\\s*(${n[a.XRANGEPLAINLOOSE]})\\s+-\\s+(${n[a.XRANGEPLAINLOOSE]})\\s*$`),h("STAR","(<|>)?=?\\s*\\*"),h("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),h("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(je,je.exports);var te=je.exports;const Xr=Object.freeze({loose:!0}),qr=Object.freeze({}),Jr=t=>t?typeof t!="object"?Xr:t:qr;var Ke=Jr;const ut=/^[0-9]+$/,Yt=(t,e)=>{const r=ut.test(t),s=ut.test(e);return r&&s&&(t=+t,e=+e),t===e?0:r&&!s?-1:s&&!r?1:t<e?-1:1},Wr=(t,e)=>Yt(e,t);var Kt={compareIdentifiers:Yt,rcompareIdentifiers:Wr};const ie=we,{MAX_LENGTH:ht,MAX_SAFE_INTEGER:ae}=ve,{safeRe:pt,t:gt}=te,Hr=Ke,{compareIdentifiers:q}=Kt;let Yr=class V{constructor(e,r){if(r=Hr(r),e instanceof V){if(e.loose===!!r.loose&&e.includePrerelease===!!r.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>ht)throw new TypeError(`version is longer than ${ht} characters`);ie("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;const s=e.trim().match(r.loose?pt[gt.LOOSE]:pt[gt.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>ae||this.major<0)throw new TypeError("Invalid major version");if(this.minor>ae||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>ae||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){const o=+i;if(o>=0&&o<ae)return o}return i}):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(ie("SemVer.compare",this.version,this.options,e),!(e instanceof V)){if(typeof e=="string"&&e===this.version)return 0;e=new V(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof V||(e=new V(e,this.options)),q(this.major,e.major)||q(this.minor,e.minor)||q(this.patch,e.patch)}comparePre(e){if(e instanceof V||(e=new V(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 r=0;do{const s=this.prerelease[r],i=e.prerelease[r];if(ie("prerelease compare",r,s,i),s===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(s===void 0)return-1;if(s===i)continue;return q(s,i)}while(++r)}compareBuild(e){e instanceof V||(e=new V(e,this.options));let r=0;do{const s=this.build[r],i=e.build[r];if(ie("build compare",r,s,i),s===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(s===void 0)return-1;if(s===i)continue;return q(s,i)}while(++r)}inc(e,r,s){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,s),this.inc("pre",r,s);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,s),this.inc("pre",r,s);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 i=Number(s)?1:0;if(!r&&s===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[i];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);if(o===-1){if(r===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(r){let o=[r,i];s===!1&&(o=[r]),q(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=o):this.prerelease=o}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var D=Yr;const dt=D,Kr=(t,e,r=!1)=>{if(t instanceof dt)return t;try{return new dt(t,e)}catch(s){if(!r)return null;throw s}};var J=Kr;const Zr=J,Qr=(t,e)=>{const r=Zr(t,e);return r?r.version:null};var es=Qr;const ts=J,rs=(t,e)=>{const r=ts(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};var ss=rs;const mt=D,ns=(t,e,r,s,i)=>{typeof r=="string"&&(i=s,s=r,r=void 0);try{return new mt(t instanceof mt?t.version:t,r).inc(e,s,i).version}catch{return null}};var is=ns;const $t=J,as=(t,e)=>{const r=$t(t,null,!0),s=$t(e,null,!0),i=r.compare(s);if(i===0)return null;const o=i>0,c=o?r:s,g=o?s:r,n=!!c.prerelease.length;if(!!g.prerelease.length&&!n)return!g.patch&&!g.minor?"major":c.patch?"patch":c.minor?"minor":"major";const u=n?"pre":"";return r.major!==s.major?u+"major":r.minor!==s.minor?u+"minor":r.patch!==s.patch?u+"patch":"prerelease"};var os=as;const cs=D,ls=(t,e)=>new cs(t,e).major;var fs=ls;const us=D,hs=(t,e)=>new us(t,e).minor;var ps=hs;const gs=D,ds=(t,e)=>new gs(t,e).patch;var ms=ds;const $s=J,Es=(t,e)=>{const r=$s(t,e);return r&&r.prerelease.length?r.prerelease:null};var vs=Es;const Et=D,ws=(t,e,r)=>new Et(t,r).compare(new Et(e,r));var G=ws;const Rs=G,ks=(t,e,r)=>Rs(e,t,r);var Ps=ks;const ys=G,Ss=(t,e)=>ys(t,e,!0);var Os=Ss;const vt=D,Is=(t,e,r)=>{const s=new vt(t,r),i=new vt(e,r);return s.compare(i)||s.compareBuild(i)};var Ze=Is;const Cs=Ze,Ns=(t,e)=>t.sort((r,s)=>Cs(r,s,e));var Ts=Ns;const Ls=Ze,As=(t,e)=>t.sort((r,s)=>Ls(s,r,e));var Fs=As;const Bs=G,bs=(t,e,r)=>Bs(t,e,r)>0;var Re=bs;const Ds=G,_s=(t,e,r)=>Ds(t,e,r)<0;var Qe=_s;const xs=G,js=(t,e,r)=>xs(t,e,r)===0;var Zt=js;const Gs=G,zs=(t,e,r)=>Gs(t,e,r)!==0;var Qt=zs;const Vs=G,Us=(t,e,r)=>Vs(t,e,r)>=0;var et=Us;const Ms=G,Xs=(t,e,r)=>Ms(t,e,r)<=0;var tt=Xs;const qs=Zt,Js=Qt,Ws=Re,Hs=et,Ys=Qe,Ks=tt,Zs=(t,e,r,s)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return qs(t,r,s);case"!=":return Js(t,r,s);case">":return Ws(t,r,s);case">=":return Hs(t,r,s);case"<":return Ys(t,r,s);case"<=":return Ks(t,r,s);default:throw new TypeError(`Invalid operator: ${e}`)}};var er=Zs;const Qs=D,en=J,{safeRe:oe,t:ce}=te,tn=(t,e)=>{if(t instanceof Qs)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?oe[ce.COERCEFULL]:oe[ce.COERCE]);else{const n=e.includePrerelease?oe[ce.COERCERTLFULL]:oe[ce.COERCERTL];let a;for(;(a=n.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||a.index+a[0].length!==r.index+r[0].length)&&(r=a),n.lastIndex=a.index+a[1].length+a[2].length;n.lastIndex=-1}if(r===null)return null;const s=r[2],i=r[3]||"0",o=r[4]||"0",c=e.includePrerelease&&r[5]?`-${r[5]}`:"",g=e.includePrerelease&&r[6]?`+${r[6]}`:"";return en(`${s}.${i}.${o}${c}${g}`,e)};var rn=tn;class sn{constructor(){this.max=1e3,this.map=new Map}get(e){const r=this.map.get(e);if(r!==void 0)return this.map.delete(e),this.map.set(e,r),r}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&r!==void 0){if(this.map.size>=this.max){const i=this.map.keys().next().value;this.delete(i)}this.map.set(e,r)}return this}}var nn=sn,Ne,wt;function z(){if(wt)return Ne;wt=1;const t=/\s+/g;class e{constructor(f,v){if(v=i(v),f instanceof e)return f.loose===!!v.loose&&f.includePrerelease===!!v.includePrerelease?f:new e(f.raw,v);if(f instanceof o)return this.raw=f.value,this.set=[[f]],this.formatted=void 0,this;if(this.options=v,this.loose=!!v.loose,this.includePrerelease=!!v.includePrerelease,this.raw=f.trim().replace(t," "),this.set=this.raw.split("||").map($=>this.parseRange($.trim())).filter($=>$.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const $=this.set[0];if(this.set=this.set.filter(w=>!S(w[0])),this.set.length===0)this.set=[$];else if(this.set.length>1){for(const w of this.set)if(w.length===1&&T(w[0])){this.set=[w];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let f=0;f<this.set.length;f++){f>0&&(this.formatted+="||");const v=this.set[f];for(let $=0;$<v.length;$++)$>0&&(this.formatted+=" "),this.formatted+=v[$].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(f){const $=((this.options.includePrerelease&&m)|(this.options.loose&&h))+":"+f,w=s.get($);if(w)return w;const E=this.options.loose,k=E?n[a.HYPHENRANGELOOSE]:n[a.HYPHENRANGE];f=f.replace(k,vr(this.options.includePrerelease)),c("hyphen replace",f),f=f.replace(n[a.COMPARATORTRIM],u),c("comparator trim",f),f=f.replace(n[a.TILDETRIM],d),c("tilde trim",f),f=f.replace(n[a.CARETTRIM],O),c("caret trim",f);let C=f.split(" ").map(F=>L(F,this.options)).join(" ").split(/\s+/).map(F=>se(F,this.options));E&&(C=C.filter(F=>(c("loose invalid filter",F,this.options),!!F.match(n[a.COMPARATORLOOSE])))),c("range list",C);const P=new Map,A=C.map(F=>new o(F,this.options));for(const F of A){if(S(F))return[F];P.set(F.value,F)}P.size>1&&P.has("")&&P.delete("");const x=[...P.values()];return s.set($,x),x}intersects(f,v){if(!(f instanceof e))throw new TypeError("a Range is required");return this.set.some($=>I($,v)&&f.set.some(w=>I(w,v)&&$.every(E=>w.every(k=>E.intersects(k,v)))))}test(f){if(!f)return!1;if(typeof f=="string")try{f=new g(f,this.options)}catch{return!1}for(let v=0;v<this.set.length;v++)if(wr(this.set[v],f,this.options))return!0;return!1}}Ne=e;const r=nn,s=new r,i=Ke,o=ke(),c=we,g=D,{safeRe:n,t:a,comparatorTrimReplace:u,tildeTrimReplace:d,caretTrimReplace:O}=te,{FLAG_INCLUDE_PRERELEASE:m,FLAG_LOOSE:h}=ve,S=p=>p.value==="<0.0.0-0",T=p=>p.value==="",I=(p,f)=>{let v=!0;const $=p.slice();let w=$.pop();for(;v&&$.length;)v=$.every(E=>w.intersects(E,f)),w=$.pop();return v},L=(p,f)=>(c("comp",p,f),p=B(p,f),c("caret",p),p=_(p,f),c("tildes",p),p=W(p,f),c("xrange",p),p=Ce(p,f),c("stars",p),p),R=p=>!p||p.toLowerCase()==="x"||p==="*",_=(p,f)=>p.trim().split(/\s+/).map(v=>N(v,f)).join(" "),N=(p,f)=>{const v=f.loose?n[a.TILDELOOSE]:n[a.TILDE];return p.replace(v,($,w,E,k,C)=>{c("tilde",p,$,w,E,k,C);let P;return R(w)?P="":R(E)?P=`>=${w}.0.0 <${+w+1}.0.0-0`:R(k)?P=`>=${w}.${E}.0 <${w}.${+E+1}.0-0`:C?(c("replaceTilde pr",C),P=`>=${w}.${E}.${k}-${C} <${w}.${+E+1}.0-0`):P=`>=${w}.${E}.${k} <${w}.${+E+1}.0-0`,c("tilde return",P),P})},B=(p,f)=>p.trim().split(/\s+/).map(v=>j(v,f)).join(" "),j=(p,f)=>{c("caret",p,f);const v=f.loose?n[a.CARETLOOSE]:n[a.CARET],$=f.includePrerelease?"-0":"";return p.replace(v,(w,E,k,C,P)=>{c("caret",p,w,E,k,C,P);let A;return R(E)?A="":R(k)?A=`>=${E}.0.0${$} <${+E+1}.0.0-0`:R(C)?E==="0"?A=`>=${E}.${k}.0${$} <${E}.${+k+1}.0-0`:A=`>=${E}.${k}.0${$} <${+E+1}.0.0-0`:P?(c("replaceCaret pr",P),E==="0"?k==="0"?A=`>=${E}.${k}.${C}-${P} <${E}.${k}.${+C+1}-0`:A=`>=${E}.${k}.${C}-${P} <${E}.${+k+1}.0-0`:A=`>=${E}.${k}.${C}-${P} <${+E+1}.0.0-0`):(c("no pr"),E==="0"?k==="0"?A=`>=${E}.${k}.${C}${$} <${E}.${k}.${+C+1}-0`:A=`>=${E}.${k}.${C}${$} <${E}.${+k+1}.0-0`:A=`>=${E}.${k}.${C} <${+E+1}.0.0-0`),c("caret return",A),A})},W=(p,f)=>(c("replaceXRanges",p,f),p.split(/\s+/).map(v=>Ie(v,f)).join(" ")),Ie=(p,f)=>{p=p.trim();const v=f.loose?n[a.XRANGELOOSE]:n[a.XRANGE];return p.replace(v,($,w,E,k,C,P)=>{c("xRange",p,$,w,E,k,C,P);const A=R(E),x=A||R(k),F=x||R(C),H=F;return w==="="&&H&&(w=""),P=f.includePrerelease?"-0":"",A?w===">"||w==="<"?$="<0.0.0-0":$="*":w&&H?(x&&(k=0),C=0,w===">"?(w=">=",x?(E=+E+1,k=0,C=0):(k=+k+1,C=0)):w==="<="&&(w="<",x?E=+E+1:k=+k+1),w==="<"&&(P="-0"),$=`${w+E}.${k}.${C}${P}`):x?$=`>=${E}.0.0${P} <${+E+1}.0.0-0`:F&&($=`>=${E}.${k}.0${P} <${E}.${+k+1}.0-0`),c("xRange return",$),$})},Ce=(p,f)=>(c("replaceStars",p,f),p.trim().replace(n[a.STAR],"")),se=(p,f)=>(c("replaceGTE0",p,f),p.trim().replace(n[f.includePrerelease?a.GTE0PRE:a.GTE0],"")),vr=p=>(f,v,$,w,E,k,C,P,A,x,F,H)=>(R($)?v="":R(w)?v=`>=${$}.0.0${p?"-0":""}`:R(E)?v=`>=${$}.${w}.0${p?"-0":""}`:k?v=`>=${v}`:v=`>=${v}${p?"-0":""}`,R(A)?P="":R(x)?P=`<${+A+1}.0.0-0`:R(F)?P=`<${A}.${+x+1}.0-0`:H?P=`<=${A}.${x}.${F}-${H}`:p?P=`<${A}.${x}.${+F+1}-0`:P=`<=${P}`,`${v} ${P}`.trim()),wr=(p,f,v)=>{for(let $=0;$<p.length;$++)if(!p[$].test(f))return!1;if(f.prerelease.length&&!v.includePrerelease){for(let $=0;$<p.length;$++)if(c(p[$].semver),p[$].semver!==o.ANY&&p[$].semver.prerelease.length>0){const w=p[$].semver;if(w.major===f.major&&w.minor===f.minor&&w.patch===f.patch)return!0}return!1}return!0};return Ne}var Te,Rt;function ke(){if(Rt)return Te;Rt=1;const t=Symbol("SemVer ANY");class e{static get ANY(){return t}constructor(u,d){if(d=r(d),u instanceof e){if(u.loose===!!d.loose)return u;u=u.value}u=u.trim().split(/\s+/).join(" "),c("comparator",u,d),this.options=d,this.loose=!!d.loose,this.parse(u),this.semver===t?this.value="":this.value=this.operator+this.semver.version,c("comp",this)}parse(u){const d=this.options.loose?s[i.COMPARATORLOOSE]:s[i.COMPARATOR],O=u.match(d);if(!O)throw new TypeError(`Invalid comparator: ${u}`);this.operator=O[1]!==void 0?O[1]:"",this.operator==="="&&(this.operator=""),O[2]?this.semver=new g(O[2],this.options.loose):this.semver=t}toString(){return this.value}test(u){if(c("Comparator.test",u,this.options.loose),this.semver===t||u===t)return!0;if(typeof u=="string")try{u=new g(u,this.options)}catch{return!1}return o(u,this.operator,this.semver,this.options)}intersects(u,d){if(!(u instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new n(u.value,d).test(this.value):u.operator===""?u.value===""?!0:new n(this.value,d).test(u.semver):(d=r(d),d.includePrerelease&&(this.value==="<0.0.0-0"||u.value==="<0.0.0-0")||!d.includePrerelease&&(this.value.startsWith("<0.0.0")||u.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&u.operator.startsWith(">")||this.operator.startsWith("<")&&u.operator.startsWith("<")||this.semver.version===u.semver.version&&this.operator.includes("=")&&u.operator.includes("=")||o(this.semver,"<",u.semver,d)&&this.operator.startsWith(">")&&u.operator.startsWith("<")||o(this.semver,">",u.semver,d)&&this.operator.startsWith("<")&&u.operator.startsWith(">")))}}Te=e;const r=Ke,{safeRe:s,t:i}=te,o=er,c=we,g=D,n=z();return Te}const an=z(),on=(t,e,r)=>{try{e=new an(e,r)}catch{return!1}return e.test(t)};var Pe=on;const cn=z(),ln=(t,e)=>new cn(t,e).set.map(r=>r.map(s=>s.value).join(" ").trim().split(" "));var fn=ln;const un=D,hn=z(),pn=(t,e,r)=>{let s=null,i=null,o=null;try{o=new hn(e,r)}catch{return null}return t.forEach(c=>{o.test(c)&&(!s||i.compare(c)===-1)&&(s=c,i=new un(s,r))}),s};var gn=pn;const dn=D,mn=z(),$n=(t,e,r)=>{let s=null,i=null,o=null;try{o=new mn(e,r)}catch{return null}return t.forEach(c=>{o.test(c)&&(!s||i.compare(c)===1)&&(s=c,i=new dn(s,r))}),s};var En=$n;const Le=D,vn=z(),kt=Re,wn=(t,e)=>{t=new vn(t,e);let r=new Le("0.0.0");if(t.test(r)||(r=new Le("0.0.0-0"),t.test(r)))return r;r=null;for(let s=0;s<t.set.length;++s){const i=t.set[s];let o=null;i.forEach(c=>{const g=new Le(c.semver.version);switch(c.operator){case">":g.prerelease.length===0?g.patch++:g.prerelease.push(0),g.raw=g.format();case"":case">=":(!o||kt(g,o))&&(o=g);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${c.operator}`)}}),o&&(!r||kt(r,o))&&(r=o)}return r&&t.test(r)?r:null};var Rn=wn;const kn=z(),Pn=(t,e)=>{try{return new kn(t,e).range||"*"}catch{return null}};var yn=Pn;const Sn=D,tr=ke(),{ANY:On}=tr,In=z(),Cn=Pe,Pt=Re,yt=Qe,Nn=tt,Tn=et,Ln=(t,e,r,s)=>{t=new Sn(t,s),e=new In(e,s);let i,o,c,g,n;switch(r){case">":i=Pt,o=Nn,c=yt,g=">",n=">=";break;case"<":i=yt,o=Tn,c=Pt,g="<",n="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Cn(t,e,s))return!1;for(let a=0;a<e.set.length;++a){const u=e.set[a];let d=null,O=null;if(u.forEach(m=>{m.semver===On&&(m=new tr(">=0.0.0")),d=d||m,O=O||m,i(m.semver,d.semver,s)?d=m:c(m.semver,O.semver,s)&&(O=m)}),d.operator===g||d.operator===n||(!O.operator||O.operator===g)&&o(t,O.semver))return!1;if(O.operator===n&&c(t,O.semver))return!1}return!0};var rt=Ln;const An=rt,Fn=(t,e,r)=>An(t,e,">",r);var Bn=Fn;const bn=rt,Dn=(t,e,r)=>bn(t,e,"<",r);var _n=Dn;const St=z(),xn=(t,e,r)=>(t=new St(t,r),e=new St(e,r),t.intersects(e,r));var jn=xn;const Gn=Pe,zn=G;var Vn=(t,e,r)=>{const s=[];let i=null,o=null;const c=t.sort((u,d)=>zn(u,d,r));for(const u of c)Gn(u,e,r)?(o=u,i||(i=u)):(o&&s.push([i,o]),o=null,i=null);i&&s.push([i,null]);const g=[];for(const[u,d]of s)u===d?g.push(u):!d&&u===c[0]?g.push("*"):d?u===c[0]?g.push(`<=${d}`):g.push(`${u} - ${d}`):g.push(`>=${u}`);const n=g.join(" || "),a=typeof e.raw=="string"?e.raw:String(e);return n.length<a.length?n:e};const Ot=z(),st=ke(),{ANY:Ae}=st,K=Pe,nt=G,Un=(t,e,r={})=>{if(t===e)return!0;t=new Ot(t,r),e=new Ot(e,r);let s=!1;e:for(const i of t.set){for(const o of e.set){const c=Xn(i,o,r);if(s=s||c!==null,c)continue e}if(s)return!1}return!0},Mn=[new st(">=0.0.0-0")],It=[new st(">=0.0.0")],Xn=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Ae){if(e.length===1&&e[0].semver===Ae)return!0;r.includePrerelease?t=Mn:t=It}if(e.length===1&&e[0].semver===Ae){if(r.includePrerelease)return!0;e=It}const s=new Set;let i,o;for(const m of t)m.operator===">"||m.operator===">="?i=Ct(i,m,r):m.operator==="<"||m.operator==="<="?o=Nt(o,m,r):s.add(m.semver);if(s.size>1)return null;let c;if(i&&o){if(c=nt(i.semver,o.semver,r),c>0)return null;if(c===0&&(i.operator!==">="||o.operator!=="<="))return null}for(const m of s){if(i&&!K(m,String(i),r)||o&&!K(m,String(o),r))return null;for(const h of e)if(!K(m,String(h),r))return!1;return!0}let g,n,a,u,d=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1,O=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&o.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(const m of e){if(u=u||m.operator===">"||m.operator===">=",a=a||m.operator==="<"||m.operator==="<=",i){if(O&&m.semver.prerelease&&m.semver.prerelease.length&&m.semver.major===O.major&&m.semver.minor===O.minor&&m.semver.patch===O.patch&&(O=!1),m.operator===">"||m.operator===">="){if(g=Ct(i,m,r),g===m&&g!==i)return!1}else if(i.operator===">="&&!K(i.semver,String(m),r))return!1}if(o){if(d&&m.semver.prerelease&&m.semver.prerelease.length&&m.semver.major===d.major&&m.semver.minor===d.minor&&m.semver.patch===d.patch&&(d=!1),m.operator==="<"||m.operator==="<="){if(n=Nt(o,m,r),n===m&&n!==o)return!1}else if(o.operator==="<="&&!K(o.semver,String(m),r))return!1}if(!m.operator&&(o||i)&&c!==0)return!1}return!(i&&a&&!o&&c!==0||o&&u&&!i&&c!==0||O||d)},Ct=(t,e,r)=>{if(!t)return e;const s=nt(t.semver,e.semver,r);return s>0?t:s<0||e.operator===">"&&t.operator===">="?e:t},Nt=(t,e,r)=>{if(!t)return e;const s=nt(t.semver,e.semver,r);return s<0?t:s>0||e.operator==="<"&&t.operator==="<="?e:t};var qn=Un;const Fe=te,Tt=ve,Jn=D,Lt=Kt,Wn=J,Hn=es,Yn=ss,Kn=is,Zn=os,Qn=fs,ei=ps,ti=ms,ri=vs,si=G,ni=Ps,ii=Os,ai=Ze,oi=Ts,ci=Fs,li=Re,fi=Qe,ui=Zt,hi=Qt,pi=et,gi=tt,di=er,mi=rn,$i=ke(),Ei=z(),vi=Pe,wi=fn,Ri=gn,ki=En,Pi=Rn,yi=yn,Si=rt,Oi=Bn,Ii=_n,Ci=jn,Ni=Vn,Ti=qn;var rr={parse:Wn,valid:Hn,clean:Yn,inc:Kn,diff:Zn,major:Qn,minor:ei,patch:ti,prerelease:ri,compare:si,rcompare:ni,compareLoose:ii,compareBuild:ai,sort:oi,rsort:ci,gt:li,lt:fi,eq:ui,neq:hi,gte:pi,lte:gi,cmp:di,coerce:mi,Comparator:$i,Range:Ei,satisfies:vi,toComparators:wi,maxSatisfying:Ri,minSatisfying:ki,minVersion:Pi,validRange:yi,outside:Si,gtr:Oi,ltr:Ii,intersects:Ci,simplifyRange:Ni,subset:Ti,SemVer:Jn,re:Fe.re,src:Fe.src,tokens:Fe.t,SEMVER_SPEC_VERSION:Tt.SEMVER_SPEC_VERSION,RELEASE_TYPES:Tt.RELEASE_TYPES,compareIdentifiers:Lt.compareIdentifiers,rcompareIdentifiers:Lt.rcompareIdentifiers};const Li=xr(rr),Ge="_updates_v2/per_package_version/";function Ai(t,e){return`${Ge}${t.organization}/${t.name}/${t.version}/${e}`}const Fi=/(?<packageKeyWithoutVersion>(?<organization>[^\/]+)\/(?<name>[^\/]+))\/(?<version>[^\/]+)\/(?<seed>[^\/]+)$/,Be="_updates_v2/_global_update_in",At="_updates_v2/_global_update_out",re="v2/",sr="overview.json",nr="overview.json",Q="manifest.json",de="channels",le=/^[-a-z0-9]+$/;function it(t){return`${t.organization}/${t.name}/${t.version}`}function Z(t){return`${re}${it(t)}`}const ir="/"+Q,ar=y.z.object({description:l.BlockPackDescriptionManifest,channels:y.z.array(y.z.string()).default(()=>[]),manifestSha256:l.Sha256Schema}),ze=y.z.object({schema:y.z.literal("v2"),versions:y.z.array(ar)});function or(t){return`${t.organization}/${t.name}/${nr}`}function Ve(t){return`${re}${or(t)}`}function cr(t){return`${it(t)}/${de}/`}function lr(t){return`${re}${cr(t)}`}const fe=`${re}${sr}`;function at(t){const e=y.z.object({id:l.BlockPackIdNoVersion,allVersions:y.z.array(y.z.string()).optional(),allVersionsWithChannels:y.z.array(l.VersionWithChannels).optional(),latest:t,latestManifestSha256:l.Sha256Schema,latestByChannel:y.z.record(y.z.string(),y.z.object({description:t,manifestSha256:l.Sha256Schema})).default({})});return e.transform(r=>r.allVersionsWithChannels?r:{...r,allVersionsWithChannels:r.allVersions.map(s=>({version:s,channels:[]}))}).transform(r=>r.latestByChannel[l.AnyChannel]?r:{...r,latestByChannel:{...r.latestByChannel,[l.AnyChannel]:{description:r.latest,manifestSha256:r.latestManifestSha256}}}).pipe(e.required({allVersionsWithChannels:!0}))}const Bi=at(l.BlockPackDescriptionManifest);function ye(t){return y.z.object({schema:y.z.literal("v2"),packages:y.z.array(at(t))})}const Ue=ye(l.BlockPackDescriptionManifest);function bi(t){return l.CreateBlockPackDescriptionSchema(l.BlockComponentsManifest,l.BlockPackMeta(l.ContentRelativeText.transform(Ee(t)),l.ContentRelativeBinary.transform(ee(t))))}function Di(t){return ye(l.CreateBlockPackDescriptionSchema(l.BlockComponentsManifest,l.BlockPackMeta(l.ContentRelativeText.transform(Ee(t)),l.ContentRelativeBinary.transform(ee(t)))))}function _i(t){return ye(l.CreateBlockPackDescriptionSchema(l.BlockComponentsManifest,l.BlockPackMeta(l.ContentRelativeText.transform(Ee(t)),l.ContentRelativeBinary.transform(ee(t)))))}class xi{constructor(e,r=new qe.ConsoleLoggerAdapter){this.storage=e,this.logger=r}async updateRegistry(){var g,n,a,u,d,O,m,h;(g=this.logger)==null||g.info("Initiating registry refresh...");const e=new Map,r=[],s=await this.storage.listFiles(Ge);(n=this.logger)==null||n.info("Packages to be updated:");for(const S of s){const T=S.match(Fi);if(!T)continue;r.push(S);const{packageKeyWithoutVersion:I,organization:L,name:R,version:_,seed:N}=T.groups;let B=e.get(I),j=!1;B?B.versions.has(_)||(B.versions.add(_),j=!0):(e.set(I,{package:{organization:L,name:R},versions:new Set([_])}),j=!0),(a=this.logger)==null||a.info(` - ${L}:${R}:${_} added:${j}`)}const i=await this.storage.getFile(fe);let c=(i===void 0?{schema:"v2",packages:[]}:Ue.parse(JSON.parse(i.toString()))).packages;(u=this.logger)==null||u.info(`Global overview loaded, ${c.length} records`);for(const[,S]of e.entries()){const T=Ve(S.package),I=await this.storage.getFile(T),L=I===void 0?{schema:"v2",versions:[]}:ze.parse(JSON.parse(I.toString()));(d=this.logger)==null||d.info(`Updating ${S.package.organization}:${S.package.name} overview, ${L.versions.length} records`);const R=L.versions.filter(N=>!S.versions.has(N.description.id.version));for(const[N]of S.versions.entries()){const B=N.toString(),j={...S.package,version:B},W=await this.storage.getFile(Z(j)+ir);if(!W)continue;const Ie=await pe(W),Ce=(await this.storage.listFiles(lr(j))).filter(se=>se.match(le)?!0:(this.logger.warn(`Unexpected channel in ${l.blockPackIdToString(j)}: ${se}`),!1));R.push({description:xe(B).parse(l.BlockPackManifest.parse(JSON.parse(W.toString("utf8"))).description),manifestSha256:Ie,channels:Ce})}R.sort((N,B)=>rr.compare(B.description.id.version,N.description.id.version)),await this.storage.putFile(T,Buffer.from(JSON.stringify({schema:"v2",versions:R}))),(O=this.logger)==null||O.info(`Done (${R.length} records)`);const _=new Set;for(const N of R)for(const B of N.channels)_.add(B);c=c.filter(N=>N.id.organization!==S.package.organization||N.id.name!==S.package.name),c.push({id:{organization:S.package.organization,name:S.package.name},allVersions:R.map(N=>N.description.id.version).reverse(),allVersionsWithChannels:R.map(N=>({version:N.description.id.version,channels:N.channels})).reverse(),latest:xe(`${S.package.organization}/${S.package.name}`).parse(R[0].description),latestManifestSha256:R[0].manifestSha256,latestByChannel:Object.fromEntries([..._,l.AnyChannel].map(N=>{const B=R.find(j=>N===l.AnyChannel||j.channels.indexOf(N)!==-1);if(!B)throw new Error("Assertion error");return[N,{description:B.description,manifestSha256:B==null?void 0:B.manifestSha256}]}))})}await this.storage.putFile(fe,Buffer.from(JSON.stringify({schema:"v2",packages:c}))),(m=this.logger)==null||m.info(`Global overview updated (${c.length} records)`),await this.storage.deleteFiles(...r.map(S=>`${Ge}${S}`)),(h=this.logger)==null||h.info("Version update requests cleared")}async updateIfNeeded(e=!1){var i,o;(i=this.logger)==null||i.info("Checking if registry requires refresh...");const r=await this.storage.getFile(Be),s=await this.storage.getFile(At);!e&&r===void 0&&s===void 0||!e&&r!==void 0&&s!==void 0&&r.equals(s)||(await this.updateRegistry(),r&&(await this.storage.putFile(At,r),(o=this.logger)==null||o.info("Refresh finished")))}async getPackageOverview(e){const r=await this.storage.getFile(Ve(e));if(r!==void 0)return ze.parse(JSON.parse(r.toString()))}async getGlobalOverview(){const e=await this.storage.getFile(fe);if(e!==void 0)return Ue.parse(JSON.parse(e.toString()))}async marchChanged(e){var i,o;const r=bt.randomUUID(),s=Ai(e,r);(i=this.logger)==null||i.info(`Creating update seed at ${s} ...`),await this.storage.putFile(s,Buffer.from(r)),(o=this.logger)==null||o.info(`Touching global update seed ${Be} ...`),await this.storage.putFile(Be,Buffer.from(r))}async addPackageToChannel(e,r){if(!r.match(le))throw new Error(`Illegal characters in channel name: ${r}`);const s=Z(e);if(await this.storage.getFile(`${s}/${Q}`)===void 0)throw new Error(`Package ${l.blockPackIdToString(e)} not found in the registry.`);await this.storage.putFile(`${s}/${de}/${r}`,Buffer.from(r)),await this.marchChanged(e)}async removePackageFromChannel(e,r){if(!r.match(le))throw new Error(`Illegal characters in channel name: ${r}`);const s=Z(e);if(await this.storage.getFile(`${s}/${Q}`)===void 0)throw new Error(`Package ${l.blockPackIdToString(e)} not found in the registry.`);await this.storage.deleteFiles(`${s}/${de}/${r}`),await this.marchChanged(e)}async publishPackage(e,r){var o,c;const s=Z(e.description.id);for(const g of e.files){const n=await r(g.name);if(n.length!==g.size)throw new Error(`Actual file size don't match file size from the manifest file for ${g.name} (actual = ${n.length}; manifest = ${g.size})`);const a=await pe(n);if(a!==g.sha256.toUpperCase())throw new Error(`Actual file SHA-256 don't match the checksum from the manifest file for ${g.name} (actual = ${a}; manifest = ${g.sha256.toUpperCase()})`);const u=s+"/"+g.name;(o=this.logger)==null||o.info(`Uploading ${g.name} -> ${u} ...`),await this.storage.putFile(u,n)}const i=s+"/"+Q;(c=this.logger)==null||c.info(`Uploading manifest to ${i} ...`),await this.storage.putFile(i,Buffer.from(JSON.stringify(e))),await this.marchChanged(e.description.id)}}class fr{constructor(e,r,s){this.client=e,this.bucket=r,this.root=s}async getFile(e){try{return Buffer.from(await(await this.client.getObject({Bucket:this.bucket,Key:U.join(this.root,e)})).Body.transformToByteArray())}catch(r){if(r.name==="NoSuchKey")return;throw r}}async listFiles(e){const r=U.join(this.root,e),s=Dt.paginateListObjectsV2({client:this.client},{Bucket:this.bucket,Prefix:r}),i=[];for await(const o of s)i.push(...o.Contents.map(c=>U.relative(r,c.Key)));return i}async putFile(e,r){await this.client.putObject({Bucket:this.bucket,Key:U.join(this.root,e),Body:r})}async deleteFiles(...e){const r=await this.client.deleteObjects({Bucket:this.bucket,Delete:{Objects:e.map(s=>({Key:U.join(this.root,s)}))}});if(r.Errors!==void 0&&r.Errors.length>0)throw new Error(`Errors encountered while deleting files: ${r.Errors.join(`
2
+ `)}`)}}class ur{constructor(e){ne(this,"root");this.root=b.resolve(e)}toAbsolutePath(e){if(U.isAbsolute(e))throw new Error("absolute path");return b.resolve(this.root,e.split(U.sep).join(b.sep))}async getFile(e){try{return await Y.promises.readFile(this.toAbsolutePath(e))}catch(r){if(r.code=="ENOENT")return;throw new Error("",{cause:r})}}async listFiles(e){try{const r=this.toAbsolutePath(e);return(await Y.promises.readdir(r,{recursive:!0,withFileTypes:!0})).filter(s=>s.isFile()).map(s=>b.relative(r,b.resolve(s.path,s.name)).split(b.sep).join(U.sep))}catch(r){if(r.code=="ENOENT")return[];throw new Error("",{cause:r})}}async putFile(e,r){const s=this.toAbsolutePath(e);await Y.promises.mkdir(b.dirname(s),{recursive:!0}),await Y.promises.writeFile(s,r)}async deleteFiles(...e){for(const r of e)await Y.promises.rm(this.toAbsolutePath(r))}}function hr(t){const e=new URL(t,`file:${b.resolve(".").split(b.sep).join(U.sep)}/`);switch(e.protocol){case"file:":const r=b.resolve(e.pathname);return new ur(r);case"s3:":const s={},i=e.searchParams.get("region");i&&(s.region=i);const o=e.hostname;return new fr(new Dt.S3(s),o,e.pathname.replace(/^\//,""));default:throw new Error(`Unknown protocol: ${e.protocol}`)}}const ji=y.z.string().regex(/^(?:s3:|file:)/),pr=y.z.object({organization:y.z.string(),package:y.z.string(),version:l.SemVer.optional(),files:y.z.record(y.z.string().regex(/^[^\/]+$/),y.z.string()).default({}),meta:y.z.object({}).passthrough()}),gr=y.z.object({registries:y.z.record(y.z.string(),ji).default({}),registry:y.z.string().optional()}),ot=gr.merge(pr).required({registry:!0,version:!0}),Se=ot.partial().required({registries:!0,files:!0}),dr="pl.package.json",mr="pl.package.yaml",Oe="v1/";function Gi(t){return`${Oe}${t.organization}/${t.package}/${t.version}`}function ct(t,e){return`${Oe}${t.organization}/${t.package}/${t.version}/${e}`}function Me(t){return`${Oe}${t.organization}/${t.package}/overview.json`}const ue=`${Oe}overview.json`,lt="meta.json",Xe="_updates_v1/per_package_version/";function zi(t,e){return`${Xe}${t.organization}/${t.package}/${t.version}/${e}`}const Vi=/(?<packageKeyWithoutVersion>(?<organization>[^\/]+)\/(?<pkg>[^\/]+))\/(?<version>[^\/]+)\/(?<seed>[^\/]+)$/,$r="_updates_v1/_global_update_in",Ft="_updates_v1/_global_update_out";class Ui{constructor(e,r){this.storage=e,this.logger=r}constructNewPackage(e){return new Mi(this.storage,e)}async updateRegistry(){var c,g,n,a,u,d,O,m;(c=this.logger)==null||c.info("Initiating registry refresh...");const e=new Map,r=[],s=await this.storage.listFiles(Xe);(g=this.logger)==null||g.info("Packages to be updated:");for(const h of s){const S=h.match(Vi);if(!S)continue;r.push(h);const{packageKeyWithoutVersion:T,organization:I,pkg:L,version:R,seed:_}=S.groups;let N=e.get(T);N?N.versions.has(R)||N.versions.add(R):e.set(T,{package:{organization:I,package:L},versions:new Set([R])}),(n=this.logger)==null||n.info(` - ${I}:${L}:${R}`)}const i=await this.storage.getFile(ue);let o=i===void 0?[]:JSON.parse(i.toString());(a=this.logger)==null||a.info(`Global overview loaded, ${o.length} records`);for(const[,h]of e.entries()){const S=Me(h.package),T=await this.storage.getFile(S);let I=T===void 0?[]:JSON.parse(T.toString());(u=this.logger)==null||u.info(`Updating ${h.package.organization}:${h.package.package} overview, ${I.length} records`),I=I.filter(L=>!h.versions.has(L.version));for(const[L]of h.versions.entries()){const R=L.toString(),_=await this.storage.getFile(ct({...h.package,version:R},lt));_&&I.push({version:R,meta:JSON.parse(_.toString())})}I.sort((L,R)=>Li.compare(R.version,L.version)),await this.storage.putFile(S,Buffer.from(JSON.stringify(I))),(d=this.logger)==null||d.info(`Done (${I.length} records)`),o=o.filter(L=>L.organization!==h.package.organization||L.package!==h.package.package),o.push({organization:h.package.organization,package:h.package.package,allVersions:I.map(L=>L.version).reverse(),latestVersion:I[0].version,latestMeta:I[0].meta})}await this.storage.putFile(ue,Buffer.from(JSON.stringify(o))),(O=this.logger)==null||O.info(`Global overview updated (${o.length} records)`),await this.storage.deleteFiles(...r.map(h=>`${Xe}${h}`)),(m=this.logger)==null||m.info("Version update requests cleared")}async updateIfNeeded(e=!1){var i,o;(i=this.logger)==null||i.info("Checking if registry requires refresh...");const r=await this.storage.getFile($r),s=await this.storage.getFile(Ft);!e&&r===void 0&&s===void 0||!e&&r!==void 0&&s!==void 0&&r.equals(s)||(await this.updateRegistry(),r&&(await this.storage.putFile(Ft,r),(o=this.logger)==null||o.info("Refresh finished")))}async getPackageOverview(e){const r=await this.storage.getFile(Me(e));if(r!==void 0)return JSON.parse(r.toString())}async getGlobalOverview(){const e=await this.storage.getFile(ue);if(e!==void 0)return JSON.parse(e.toString())}}class Mi{constructor(e,r){ne(this,"metaAdded",!1);ne(this,"seed",bt.randomUUID());this.storage=e,this.name=r}async addFile(e,r){await this.storage.putFile(ct(this.name,e),r)}async writeMeta(e){await this.addFile(lt,Buffer.from(JSON.stringify(e))),this.metaAdded=!0}async finish(){if(!this.metaAdded)throw new Error("meta not added");await this.storage.putFile(zi(this.name,this.seed),Buffer.of(0)),await this.storage.putFile($r,Buffer.from(this.seed))}}function X(t,e){return e===void 0?t:{...t,...e,registries:{...t.registries,...e.registries},files:{...t.files,...e.files}}}async function be(t){return He(t,e=>Se.parse(JSON.parse(e.toString())))}async function De(t){return He(t,e=>Se.parse(Sr.parse(e.toString())))}async function Xi(){let t=Se.parse({});return t=X(t,await be("./.pl.reg.json")),t=X(t,await De("./.pl.reg.yaml")),t=X(t,await be(`${ft.homedir()}/.pl.reg.json`)),t=X(t,await De(`${ft.homedir()}/.pl.reg.yaml`)),t=X(t,await be(dr)),t=X(t,await De(mr)),t}class Er{constructor(e){this.conf=e}createRegistry(e){let r=this.conf.registry;if(!r.startsWith("file:")&&!r.startsWith("s3:")){const s=this.conf.registries[r];if(!s)throw new Error(`Registry with alias "${r}" not found`);r=s}return new Ui(hr(r),e)}get fullPackageName(){return{organization:this.conf.organization,package:this.conf.package,version:this.conf.version}}}async function qi(t){const e=await Xi();return new Er(ot.parse(X(e,t)))}exports.BlockComponentsAbsoluteUrl=Fr;exports.BlockComponentsConsolidate=qt;exports.BlockComponentsDescription=Xt;exports.BlockDescriptionPackageJsonField=ge;exports.BlockDescriptionToExplicitBinaryBytes=bi;exports.BlockPackDescriptionConsolidateToFolder=Jt;exports.BlockPackDescriptionManifestAddRelativePathPrefix=xe;exports.BlockPackMetaConsolidate=Mt;exports.BlockPackMetaDescription=Ut;exports.BlockPackMetaEmbedAbsoluteBase64=Tr;exports.BlockPackMetaEmbedAbsoluteBytes=Lr;exports.BlockPackMetaEmbedBytes=Ar;exports.BlockRegistryV2=xi;exports.ChannelNameRegexp=le;exports.ChannelsFolder=de;exports.FSStorage=ur;exports.GlobalOverview=ye;exports.GlobalOverviewEntry=at;exports.GlobalOverviewEntryReg=Bi;exports.GlobalOverviewFileName=sr;exports.GlobalOverviewPath=ue;exports.GlobalOverviewPath$1=fe;exports.GlobalOverviewReg=Ue;exports.GlobalOverviewToExplicitBinaryBase64=_i;exports.GlobalOverviewToExplicitBinaryBytes=Di;exports.MainPrefix=re;exports.ManifestFileName=Q;exports.ManifestSuffix=ir;exports.MetaFile=lt;exports.PackageOverview=ze;exports.PackageOverviewFileName=nr;exports.PackageOverviewVersionEntry=ar;exports.PlPackageConfigData=pr;exports.PlPackageJsonConfigFile=dr;exports.PlPackageYamlConfigFile=mr;exports.PlRegCommonConfigData=gr;exports.PlRegFullPackageConfigData=ot;exports.PlRegPackageConfig=Er;exports.PlRegPackageConfigDataShard=Se;exports.ResolvedBlockPackDescriptionFromPackageJson=We;exports.ResolvedModuleFile=_t;exports.ResolvedModuleFolder=xt;exports.S3Storage=fr;exports.absoluteToBase64=jt;exports.absoluteToBytes=Gt;exports.absoluteToString=Je;exports.buildBlockPackDist=Br;exports.calculateSha256=pe;exports.cpAbsoluteToRelative=he;exports.getConfig=qi;exports.loadPackDescription=_r;exports.loadPackDescriptionRaw=Wt;exports.mapLocalToAbsolute=_e;exports.packFolderToRelativeTgz=zt;exports.packageChannelPrefix=lr;exports.packageChannelPrefixInsideV2=cr;exports.packageContentPrefix=Gi;exports.packageContentPrefix$1=Z;exports.packageContentPrefixInsideV2=it;exports.packageOverviewPath=Me;exports.packageOverviewPath$1=Ve;exports.packageOverviewPathInsideV2=or;exports.parsePackageName=Ye;exports.payloadFilePath=ct;exports.relativeToContentString=Vt;exports.relativeToExplicitBinary64=Nr;exports.relativeToExplicitBytes=ee;exports.relativeToExplicitString=Ee;exports.storageByUrl=hr;exports.tryLoadPackDescription=Dr;
3
+ //# sourceMappingURL=config-R2w8AhfY.js.map