@platforma-sdk/block-tools 2.13.0 → 2.14.1
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/cli.js +12 -12
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +728 -648
- package/dist/cli.mjs.map +1 -1
- package/dist/cmd/build-kind-manifest.d.ts +7 -0
- package/dist/config-CtXMWNgm.js +3 -0
- package/dist/config-CtXMWNgm.js.map +1 -0
- package/dist/{config-CiC347sB.mjs → config-Dx45aFJ_.mjs} +792 -456
- package/dist/config-Dx45aFJ_.mjs.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +15 -15
- package/dist/structure/engine/api.d.ts +1 -1
- package/dist/structure/rules/kind-package-json.d.ts +3 -0
- package/dist/structure/rules/kind.d.ts +1 -0
- package/dist/v2/build_kind_dist.d.ts +25 -0
- package/dist/v2/index.d.ts +4 -0
- package/dist/v2/kind/resolve-refs.d.ts +63 -0
- package/dist/v2/kind/version-match.d.ts +23 -0
- package/dist/v2/model/block_description.d.ts +8 -1
- package/dist/v2/publish-block.d.ts +23 -0
- package/dist/v2/registry/index.d.ts +2 -0
- package/dist/v2/registry/kind_resolver.d.ts +121 -0
- package/dist/v2/registry/registry.d.ts +23 -0
- package/dist/v2/registry/registry_reader.d.ts +34 -1
- package/dist/v2/registry/schema_kinds.d.ts +632 -0
- package/dist/v2/registry/schema_public.d.ts +72 -0
- package/package.json +7 -7
- package/src/cli.test.ts +2 -1
- package/src/cli.ts +2 -0
- package/src/cmd/build-kind-manifest.ts +41 -0
- package/src/cmd/publish.ts +10 -1
- package/src/structure/__tests__/model-package-json.snapshot.test.ts +1 -0
- package/src/structure/engine/api.ts +1 -1
- package/src/structure/engine/ctx.ts +1 -0
- package/src/structure/engine/discovery.ts +16 -2
- package/src/structure/rules/block-package-json.ts +18 -0
- package/src/structure/rules/kind-package-json.ts +117 -0
- package/src/structure/rules/kind.ts +29 -0
- package/src/structure/rules/model-package-json.ts +8 -0
- package/src/structure/rules/model.ts +15 -13
- package/src/structure/rules/root-pnpm-workspace.ts +1 -0
- package/src/structure/rules/shared/pascal-case.ts +1 -1
- package/src/structure/structure-definition.ts +2 -0
- package/src/structure/templates/static/kind/.oxfmtrc.json +4 -0
- package/src/structure/templates/static/kind/.oxlintrc.json +3 -0
- package/src/structure/templates/static/kind/src/index.ts +49 -0
- package/src/structure/templates/static/kind/tsconfig.json +10 -0
- package/src/structure/templates/text/model/src/index.tpl.ts +18 -0
- package/src/v2/build_dist.ts +35 -0
- package/src/v2/build_kind_dist.ts +104 -0
- package/src/v2/from_pack_v2.test.ts +2 -2
- package/src/v2/index.ts +4 -0
- package/src/v2/kind/resolve-refs.ts +150 -0
- package/src/v2/kind/version-match.test.ts +60 -0
- package/src/v2/kind/version-match.ts +55 -0
- package/src/v2/model/block_description.ts +15 -4
- package/src/v2/publish-block.ts +60 -0
- package/src/v2/registry/index.ts +2 -0
- package/src/v2/registry/kind_resolver.test.ts +123 -0
- package/src/v2/registry/kind_resolver.ts +190 -0
- package/src/v2/registry/registry.test.ts +247 -1
- package/src/v2/registry/registry.ts +227 -4
- package/src/v2/registry/registry_reader.ts +68 -0
- package/src/v2/registry/schema_kinds.test.ts +65 -0
- package/src/v2/registry/schema_kinds.ts +169 -0
- package/dist/config-BmJWc8sR.js +0 -3
- package/dist/config-BmJWc8sR.js.map +0 -1
- package/dist/config-CiC347sB.mjs.map +0 -1
- package/src/structure/templates/static/model/src/index.ts +0 -13
package/dist/config-BmJWc8sR.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let u=require(`node:path`);u=l(u);let d=require(`node:fs`);d=l(d);let f=require(`node:fs/promises`);f=l(f);let p=require(`mime-types`);p=l(p);let m=require(`tar`);m=l(m);let h=require(`@milaboratories/resolve-helper`),g=require(`@milaboratories/pl-model-middle-layer`),_=require(`@milaboratories/pl-model-common`),v=require(`node:zlib`),y=require(`node:crypto`),b=require(`@milaboratories/ts-helpers`),ee=require(`node:url`),te=require(`node:util`),x=require(`zod`),S=require(`canonicalize`);S=l(S);let ne=require(`lru-cache`),C=require(`node:path/posix`);C=l(C);let re=require(`@aws-sdk/client-s3`),ie=require(`undici`),ae=require(`@milaboratories/pl-http`),oe=require(`yaml`);oe=l(oe);let w=require(`node:os`);w=l(w);function se(e,t){let n=(0,h.tryResolve)(e,t);if(n===void 0)throw Error(`Can't resolve ${t} against ${e}`);return{type:`absolute-file`,file:n}}function ce(e,t,n){let r=t.endsWith(`/`)?t:`${t}/`;for(let t of n){let n=(0,h.tryResolve)(e,r+t);if(n!==void 0){if(!n.endsWith(t))throw Error(`Unexpected resolve result ${n} with index file ${t}`);return{type:`absolute-folder`,folder:n.slice(0,n.length-t.length)}}}throw Error(`Can't resolve ${t} folder against ${e}, no index file found (${n.join(`, `)})`)}function le(e){return t=>t.type===`relative`?{type:`absolute-file`,file:u.default.resolve(e,t.path)}:t}function ue(){return async e=>e.type===`absolute-file`?await f.default.readFile(e.file,{encoding:`utf-8`}):e.content}function de(){return async e=>{if(e.type===`absolute-file`){let t=p.lookup(e.file);if(!t)throw Error(`Can't recognize mime type of the file: ${e.file}.`);return{type:`explicit-base64`,mimeType:t,content:await f.default.readFile(e.file,{encoding:`base64`})}}else return e}}function fe(){return async e=>{if(e.type===`absolute-file`){let t=p.lookup(e.file);if(!t)throw Error(`Can't recognize mime type of the file: ${e.file}.`);return{type:`explicit-bytes`,mimeType:t,content:Buffer.from(await f.default.readFile(e.file))}}else if(e.type===`explicit-base64`)return{type:`explicit-bytes`,mimeType:e.mimeType,content:Buffer.from(e.content,`base64`)};else return e}}function pe(e,t){return async n=>{if(n.type===`absolute-file`){let r=u.default.basename(n.file),i=u.default.resolve(e,r);return t?.push(r),await f.default.cp(n.file,i),{type:`relative`,path:r}}else return n}}function me(e,t,n){if(!t.endsWith(`.tgz`))throw Error(`Unexpected tgz file name: ${t}`);return async r=>{let i=u.default.resolve(e,t);return await m.create({gzip:!0,file:i,cwd:r.folder},[`.`]),n?.push(t),{type:`relative`,path:t}}}function he(e){return async t=>t.type===`explicit-string`?t:{type:`explicit-string`,content:(await e(t.path)).toString(`utf8`)}}function ge(e){return async t=>t.type===`explicit-string`?t.content:(await e(t.path)).toString(`utf8`)}function _e(e){return async t=>{if(t.type===`explicit-base64`)return t;let n=p.lookup(t.path);if(!n)throw Error(`Can't recognize mime type of the file: ${t.path}.`);return{type:`explicit-base64`,mimeType:n,content:(await e(t.path)).toString(`base64`)}}}function ve(e){return async t=>{if(t.type===`explicit-base64`)return{type:`explicit-bytes`,mimeType:t.mimeType,content:new Uint8Array(Buffer.from(t.content,`base64`))};let n=p.lookup(t.path);if(!n)throw Error(`Can't recognize mime type of the file: ${t.path}.`);return{type:`explicit-bytes`,mimeType:n,content:new Uint8Array(await e(t.path))}}}async function T(e,t,n){let{organization:r}=e,{logo:i,...a}=r;return{...e,organization:{...a,...i===void 0?{}:{logo:await n(i)}},...e.longDescription===void 0?{}:{longDescription:await t(e.longDescription)},...e.changelog===void 0?{}:{changelog:await t(e.changelog)},...e.logo===void 0?{}:{logo:await n(e.logo)}}}async function ye(e,t){let n=le(t);return T(e,async e=>n(e),async e=>n(e))}async function be(e,t){let n=le(t);return T(e,async e=>n(e),async e=>n(e))}async function xe(e,t,n){let r=pe(t,n);return T(e,async e=>r(e),async e=>r(e))}async function Se(e){return T(e,ue(),de())}async function Ce(e){return T(e,ue(),fe())}async function we(e,t){return T(e,ge(t),ve(t))}function Te(e,t){return{workflow:{type:`workflow-v1`,main:se(t,e.workflow.main)},model:se(t,e.model),ui:ce(t,e.ui,[`index.html`])}}function Ee(e,t){let n=e=>({type:`absolute-file`,file:u.default.resolve(t,e.path)});return{workflow:{type:`workflow-v1`,main:n(e.workflow.main)},model:n(e.model),ui:{type:`absolute-folder`,folder:u.default.resolve(t,e.ui.path)}}}async function De(e,t,n){let r=pe(t,n),i=me(t,`ui.tgz`,n);return{workflow:{type:`workflow-v1`,main:await r(e.workflow.main)},model:await r(e.model),ui:await i(e.ui)}}function Oe(e,t){let n=(0,g.mapRemoteToAbsolute)(t);return{workflow:{type:`workflow-v1`,main:n(e.workflow.main)},model:n(e.model),ui:n(e.ui)}}async function ke(e,t){let n=Te(e.components,t),r=await ye(e.meta,t),i=(0,_.extractConfigGeneric)(JSON.parse(await f.default.readFile(n.model.file,`utf-8`)));return{...e,components:n,meta:r,featureFlags:i.featureFlags}}async function Ae(e,t,n){let r=await De(e.components,t,n),i=await xe(e.meta,t,n);return{...e,components:r,meta:i}}function je(e,t,n){return{...e,components:t(e.components),meta:n(e.meta)}}function E(e,t){let n=(0,g.addPrefixToRelative)(t);return je(e,e=>({workflow:{type:`workflow-v1`,main:n(e.workflow.main)},model:n(e.model),ui:n(e.ui)}),e=>{let{logo:t,...r}=e.organization;return{...e,organization:{...r,...t===void 0?{}:{logo:n(t)}},...e.longDescription===void 0?{}:{longDescription:n(e.longDescription)},...e.changelog===void 0?{}:{changelog:n(e.changelog)},...e.logo===void 0?{}:{logo:n(e.logo)}}})}async function Me(e,t){try{return t(await f.default.readFile(e))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}}function D(e){return Promise.resolve((0,y.createHash)(`sha256`).update(ArrayBuffer.isView(e)?e:Buffer.from(e)).digest(`hex`).toUpperCase())}async function Ne(e,t){let n=e.components.workflow.main,r=await f.default.readFile(u.default.resolve(t,n.path)),i;try{let e=(0,v.gunzipSync)(r).toString(`utf-8`);i=JSON.parse(e)}catch{return}let a=i;if(!(a.type!==`pl.tengo-template.v3`||!a.template))return a.template.requiredCapabilities}async function Pe(e,t){await f.default.mkdir(t,{recursive:!0});let n=[],r=await Ae(e,t,n),i=await Ne(r,t);i&&i.length>0&&(r.meta={...r.meta,requiredCapabilities:i});let a=await Promise.all(n.map(async e=>{let n=await f.default.readFile(u.default.resolve(t,e)),r=await D(n);return{name:e,size:n.length,sha256:r}})),o=g.BlockPackManifest.parse({schema:`v2`,description:{...r},files:a,timestamp:Date.now()});return await f.default.writeFile(u.default.resolve(t,g.BlockPackManifestFile),JSON.stringify(o)),o}var O=`block`,Fe=/(?:@[a-zA-Z0-9-.]+\/)?(?<organization>[a-zA-Z0-9-]+)\.(?<name>[a-zA-Z0-9-]+)/;function Ie(e){let t=e.match(Fe);if(!t)throw Error(`Malformed package name (${e}), can't infer organization and block pack name.`);let{name:n,organization:r}=t.groups;return{name:n,organization:r}}async function Le(e,t){let n=u.default.resolve(e,`package.json`);try{let t=await Me(n,e=>JSON.parse(e.toString(`utf-8`)));if(t===void 0)return;let r=t[O];return r===void 0?void 0:await ke({...g.BlockPackDescriptionFromPackageJsonRaw.parse(r),id:{...Ie((0,b.notEmpty)(t.name,`"name" not found in ${n}`)),version:g.SemVer.parse(t.version)}},e)}catch(e){t?.warn(e);return}}async function Re(e){let t=u.default.resolve(e,`package.json`),n=JSON.parse(await f.default.readFile(t,{encoding:`utf-8`})),r=n[O];if(r===void 0)throw Error(`Block description (field ${O}) not found in ${t}.`);return{...g.BlockPackDescriptionFromPackageJsonRaw.parse(r),id:{...Ie((0,b.notEmpty)(n.name,`"name" not found in ${t}`)),version:g.SemVer.parse(n.version)},featureFlags:{}}}async function ze(e){return await ke(await Re(e),e)}var Be=`block-pack`;async function Ve(e){let t=u.default.resolve(e,g.BlockPackManifestFile),n=JSON.parse(await f.default.readFile(t,{encoding:`utf-8`})),r=g.BlockPackManifest.parse(n),i=Ee(r.description.components,e),a=await be(r.description.meta,e);return{...r.description,components:i,meta:a}}var k=`published.json`;function He(e){return{registryUrl:e.registryUrl,id:e.id}}async function Ue(e,t){let n=u.default.resolve(e,k);await f.default.writeFile(n,JSON.stringify(t,null,2),{encoding:`utf-8`})}async function We(e){let t=e.type===`from-pack-v2`?u.default.resolve((0,ee.fileURLToPath)(e.packUrl),k):u.default.resolve(e.folder,`block-pack`,k);if(!d.default.existsSync(t))throw Error(`Block has no ${k} at ${t} — was the block published? Run block-tools publish before consuming via registry.`);let n=JSON.parse(await f.default.readFile(t,{encoding:`utf-8`}));return{type:`from-registry-v2`,registryUrl:n.registryUrl,id:n.id}}var A=o(((e,t)=>{var n=`2.0.0`,r=256;t.exports={MAX_LENGTH:r,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:r-6,MAX_SAFE_INTEGER:2**53-1||9007199254740991,RELEASE_TYPES:[`major`,`premajor`,`minor`,`preminor`,`patch`,`prepatch`,`prerelease`],SEMVER_SPEC_VERSION:n,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}})),j=o(((e,t)=>{t.exports=typeof process==`object`&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error(`SEMVER`,...e):()=>{}})),M=o(((e,t)=>{var{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:i}=A(),a=j();e=t.exports={};var o=e.re=[],s=e.safeRe=[],c=e.src=[],l=e.safeSrc=[],u=e.t={},d=0,f=`[a-zA-Z0-9-]`,p=[[`\\s`,1],[`\\d`,i],[f,r]],m=e=>{for(let[t,n]of p)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},h=(e,t,n)=>{let r=m(t),i=d++;a(e,i,t),u[e]=i,c[i]=t,l[i]=r,o[i]=new RegExp(t,n?`g`:void 0),s[i]=new RegExp(r,n?`g`:void 0)};h(`NUMERICIDENTIFIER`,`0|[1-9]\\d*`),h(`NUMERICIDENTIFIERLOOSE`,`\\d+`),h(`NONNUMERICIDENTIFIER`,`\\d*[a-zA-Z-]${f}*`),h(`MAINVERSION`,`(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})`),h(`MAINVERSIONLOOSE`,`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASEIDENTIFIER`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIER]})`),h(`PRERELEASEIDENTIFIERLOOSE`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASE`,`(?:-(${c[u.PRERELEASEIDENTIFIER]}(?:\\.${c[u.PRERELEASEIDENTIFIER]})*))`),h(`PRERELEASELOOSE`,`(?:-?(${c[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[u.PRERELEASEIDENTIFIERLOOSE]})*))`),h(`BUILDIDENTIFIER`,`${f}+`),h(`BUILD`,`(?:\\+(${c[u.BUILDIDENTIFIER]}(?:\\.${c[u.BUILDIDENTIFIER]})*))`),h(`FULLPLAIN`,`v?${c[u.MAINVERSION]}${c[u.PRERELEASE]}?${c[u.BUILD]}?`),h(`FULL`,`^${c[u.FULLPLAIN]}$`),h(`LOOSEPLAIN`,`[v=\\s]*${c[u.MAINVERSIONLOOSE]}${c[u.PRERELEASELOOSE]}?${c[u.BUILD]}?`),h(`LOOSE`,`^${c[u.LOOSEPLAIN]}$`),h(`GTLT`,`((?:<|>)?=?)`),h(`XRANGEIDENTIFIERLOOSE`,`${c[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),h(`XRANGEIDENTIFIER`,`${c[u.NUMERICIDENTIFIER]}|x|X|\\*`),h(`XRANGEPLAIN`,`[v=\\s]*(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:${c[u.PRERELEASE]})?${c[u.BUILD]}?)?)?`),h(`XRANGEPLAINLOOSE`,`[v=\\s]*(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:${c[u.PRERELEASELOOSE]})?${c[u.BUILD]}?)?)?`),h(`XRANGE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAIN]}$`),h(`XRANGELOOSE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAINLOOSE]}$`),h(`COERCEPLAIN`,`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),h(`COERCE`,`${c[u.COERCEPLAIN]}(?:$|[^\\d])`),h(`COERCEFULL`,c[u.COERCEPLAIN]+`(?:${c[u.PRERELEASE]})?(?:${c[u.BUILD]})?(?:$|[^\\d])`),h(`COERCERTL`,c[u.COERCE],!0),h(`COERCERTLFULL`,c[u.COERCEFULL],!0),h(`LONETILDE`,`(?:~>?)`),h(`TILDETRIM`,`(\\s*)${c[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace=`$1~`,h(`TILDE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAIN]}$`),h(`TILDELOOSE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAINLOOSE]}$`),h(`LONECARET`,`(?:\\^)`),h(`CARETTRIM`,`(\\s*)${c[u.LONECARET]}\\s+`,!0),e.caretTrimReplace=`$1^`,h(`CARET`,`^${c[u.LONECARET]}${c[u.XRANGEPLAIN]}$`),h(`CARETLOOSE`,`^${c[u.LONECARET]}${c[u.XRANGEPLAINLOOSE]}$`),h(`COMPARATORLOOSE`,`^${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]})$|^$`),h(`COMPARATOR`,`^${c[u.GTLT]}\\s*(${c[u.FULLPLAIN]})$|^$`),h(`COMPARATORTRIM`,`(\\s*)${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]}|${c[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace=`$1$2$3`,h(`HYPHENRANGE`,`^\\s*(${c[u.XRANGEPLAIN]})\\s+-\\s+(${c[u.XRANGEPLAIN]})\\s*$`),h(`HYPHENRANGELOOSE`,`^\\s*(${c[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[u.XRANGEPLAINLOOSE]})\\s*$`),h(`STAR`,`(<|>)?=?\\s*\\*`),h(`GTE0`,`^\\s*>=\\s*0\\.0\\.0\\s*$`),h(`GTE0PRE`,`^\\s*>=\\s*0\\.0\\.0-0\\s*$`)})),Ge=o(((e,t)=>{var n=Object.freeze({loose:!0}),r=Object.freeze({});t.exports=e=>e?typeof e==`object`?e:n:r})),Ke=o(((e,t)=>{var n=/^[0-9]+$/,r=(e,t)=>{let r=n.test(e),i=n.test(t);return r&&i&&(e=+e,t=+t),e===t?0:r&&!i?-1:i&&!r?1:e<t?-1:1};t.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)}})),N=o(((e,t)=>{var n=j(),{MAX_LENGTH:r,MAX_SAFE_INTEGER:i}=A(),{safeRe:a,t:o}=M(),s=Ge(),{compareIdentifiers:c}=Ke();t.exports=class e{constructor(t,c){if(c=s(c),t instanceof e){if(t.loose===!!c.loose&&t.includePrerelease===!!c.includePrerelease)return t;t=t.version}else if(typeof t!=`string`)throw TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>r)throw TypeError(`version is longer than ${r} characters`);n(`SemVer`,t,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;let l=t.trim().match(c.loose?a[o.LOOSE]:a[o.FULL]);if(!l)throw TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+l[1],this.minor=+l[2],this.patch=+l[3],this.major>i||this.major<0)throw TypeError(`Invalid major version`);if(this.minor>i||this.minor<0)throw TypeError(`Invalid minor version`);if(this.patch>i||this.patch<0)throw TypeError(`Invalid patch version`);l[4]?this.prerelease=l[4].split(`.`).map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t<i)return t}return e}):this.prerelease=[],this.build=l[5]?l[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(t){if(n(`SemVer.compare`,this.version,this.options,t),!(t instanceof e)){if(typeof t==`string`&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),c(this.major,t.major)||c(this.minor,t.minor)||c(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let e=this.prerelease[r],i=t.prerelease[r];if(n(`prerelease compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e===i)continue;return c(e,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let e=this.build[r],i=t.build[r];if(n(`build compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e===i)continue;return c(e,i)}while(++r)}inc(e,t,n){if(e.startsWith(`pre`)){if(!t&&n===!1)throw Error(`invalid increment argument: identifier is empty`);if(t){let e=`-${t}`.match(this.options.loose?a[o.PRERELEASELOOSE]:a[o.PRERELEASE]);if(!e||e[1]!==t)throw Error(`invalid identifier: ${t}`)}}switch(e){case`premajor`:this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc(`pre`,t,n);break;case`preminor`:this.prerelease.length=0,this.patch=0,this.minor++,this.inc(`pre`,t,n);break;case`prepatch`:this.prerelease.length=0,this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`prerelease`:this.prerelease.length===0&&this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`release`:if(this.prerelease.length===0)throw 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`:{let e=+!!Number(n);if(this.prerelease.length===0)this.prerelease=[e];else{let r=this.prerelease.length;for(;--r>=0;)typeof this.prerelease[r]==`number`&&(this.prerelease[r]++,r=-2);if(r===-1){if(t===this.prerelease.join(`.`)&&n===!1)throw Error(`invalid increment argument: identifier already exists`);this.prerelease.push(e)}}if(t){let r=[t,e];n===!1&&(r=[t]),c(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=r):this.prerelease=r}break}default:throw Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(`.`)}`),this}}})),P=o(((e,t)=>{var n=N();t.exports=(e,t,r=!1)=>{if(e instanceof n)return e;try{return new n(e,t)}catch(e){if(!r)return null;throw e}}})),qe=o(((e,t)=>{var n=P();t.exports=(e,t)=>{let r=n(e,t);return r?r.version:null}})),Je=o(((e,t)=>{var n=P();t.exports=(e,t)=>{let r=n(e.trim().replace(/^[=v]+/,``),t);return r?r.version:null}})),Ye=o(((e,t)=>{var n=N();t.exports=(e,t,r,i,a)=>{typeof r==`string`&&(a=i,i=r,r=void 0);try{return new n(e instanceof n?e.version:e,r).inc(t,i,a).version}catch{return null}}})),Xe=o(((e,t)=>{var n=P();t.exports=(e,t)=>{let r=n(e,null,!0),i=n(t,null,!0),a=r.compare(i);if(a===0)return null;let o=a>0,s=o?r:i,c=o?i:r,l=!!s.prerelease.length;if(c.prerelease.length&&!l){if(!c.patch&&!c.minor)return`major`;if(c.compareMain(s)===0)return c.minor&&!c.patch?`minor`:`patch`}let u=l?`pre`:``;return r.major===i.major?r.minor===i.minor?r.patch===i.patch?`prerelease`:u+`patch`:u+`minor`:u+`major`}})),Ze=o(((e,t)=>{var n=N();t.exports=(e,t)=>new n(e,t).major})),Qe=o(((e,t)=>{var n=N();t.exports=(e,t)=>new n(e,t).minor})),$e=o(((e,t)=>{var n=N();t.exports=(e,t)=>new n(e,t).patch})),et=o(((e,t)=>{var n=P();t.exports=(e,t)=>{let r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}})),F=o(((e,t)=>{var n=N();t.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))})),tt=o(((e,t)=>{var n=F();t.exports=(e,t,r)=>n(t,e,r)})),nt=o(((e,t)=>{var n=F();t.exports=(e,t)=>n(e,t,!0)})),rt=o(((e,t)=>{var n=N();t.exports=(e,t,r)=>{let i=new n(e,r),a=new n(t,r);return i.compare(a)||i.compareBuild(a)}})),it=o(((e,t)=>{var n=rt();t.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))})),at=o(((e,t)=>{var n=rt();t.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))})),I=o(((e,t)=>{var n=F();t.exports=(e,t,r)=>n(e,t,r)>0})),ot=o(((e,t)=>{var n=F();t.exports=(e,t,r)=>n(e,t,r)<0})),st=o(((e,t)=>{var n=F();t.exports=(e,t,r)=>n(e,t,r)===0})),ct=o(((e,t)=>{var n=F();t.exports=(e,t,r)=>n(e,t,r)!==0})),lt=o(((e,t)=>{var n=F();t.exports=(e,t,r)=>n(e,t,r)>=0})),ut=o(((e,t)=>{var n=F();t.exports=(e,t,r)=>n(e,t,r)<=0})),dt=o(((e,t)=>{var n=st(),r=ct(),i=I(),a=lt(),o=ot(),s=ut();t.exports=(e,t,c,l)=>{switch(t){case`===`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e===c;case`!==`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e!==c;case``:case`=`:case`==`:return n(e,c,l);case`!=`:return r(e,c,l);case`>`:return i(e,c,l);case`>=`:return a(e,c,l);case`<`:return o(e,c,l);case`<=`:return s(e,c,l);default:throw TypeError(`Invalid operator: ${t}`)}}})),ft=o(((e,t)=>{var n=N(),r=P(),{safeRe:i,t:a}=M();t.exports=(e,t)=>{if(e instanceof n)return e;if(typeof e==`number`&&(e=String(e)),typeof e!=`string`)return null;t||={};let o=null;if(!t.rtl)o=e.match(t.includePrerelease?i[a.COERCEFULL]:i[a.COERCE]);else{let n=t.includePrerelease?i[a.COERCERTLFULL]:i[a.COERCERTL],r;for(;(r=n.exec(e))&&(!o||o.index+o[0].length!==e.length);)(!o||r.index+r[0].length!==o.index+o[0].length)&&(o=r),n.lastIndex=r.index+r[1].length+r[2].length;n.lastIndex=-1}if(o===null)return null;let s=o[2];return r(`${s}.${o[3]||`0`}.${o[4]||`0`}${t.includePrerelease&&o[5]?`-${o[5]}`:``}${t.includePrerelease&&o[6]?`+${o[6]}`:``}`,t)}})),pt=o(((e,t)=>{t.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){let 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){let e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}})),L=o(((e,t)=>{var n=/\s+/g;t.exports=class e{constructor(t,r){if(r=i(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof a)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(n,` `),this.set=this.raw.split(`||`).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!h(e[0])),this.set.length===0)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(e.length===1&&g(e[0])){this.set=[e];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted=``;for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+=`||`);let t=this.set[e];for(let e=0;e<t.length;e++)e>0&&(this.formatted+=` `),this.formatted+=t[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let t=((this.options.includePrerelease&&p)|(this.options.loose&&m))+`:`+e,n=r.get(t);if(n)return n;let i=this.options.loose,s=i?c[l.HYPHENRANGELOOSE]:c[l.HYPHENRANGE];e=e.replace(s,ie(this.options.includePrerelease)),o(`hyphen replace`,e),e=e.replace(c[l.COMPARATORTRIM],u),o(`comparator trim`,e),e=e.replace(c[l.TILDETRIM],d),o(`tilde trim`,e),e=e.replace(c[l.CARETTRIM],f),o(`caret trim`,e);let g=e.split(` `).map(e=>v(e,this.options)).join(` `).split(/\s+/).map(e=>re(e,this.options));i&&(g=g.filter(e=>(o(`loose invalid filter`,e,this.options),!!e.match(c[l.COMPARATORLOOSE])))),o(`range list`,g);let _=new Map,y=g.map(e=>new a(e,this.options));for(let e of y){if(h(e))return[e];_.set(e.value,e)}_.size>1&&_.has(``)&&_.delete(``);let b=[..._.values()];return r.set(t,b),b}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Range is required`);return this.set.some(e=>_(e,n)&&t.set.some(t=>_(t,n)&&e.every(e=>t.every(t=>e.intersects(t,n)))))}test(e){if(!e)return!1;if(typeof e==`string`)try{e=new s(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(ae(this.set[t],e,this.options))return!0;return!1}};var r=new(pt()),i=Ge(),a=R(),o=j(),s=N(),{safeRe:c,t:l,comparatorTrimReplace:u,tildeTrimReplace:d,caretTrimReplace:f}=M(),{FLAG_INCLUDE_PRERELEASE:p,FLAG_LOOSE:m}=A(),h=e=>e.value===`<0.0.0-0`,g=e=>e.value===``,_=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(e=>i.intersects(e,t)),i=r.pop();return n},v=(e,t)=>(o(`comp`,e,t),e=te(e,t),o(`caret`,e),e=b(e,t),o(`tildes`,e),e=S(e,t),o(`xrange`,e),e=C(e,t),o(`stars`,e),e),y=e=>!e||e.toLowerCase()===`x`||e===`*`,b=(e,t)=>e.trim().split(/\s+/).map(e=>ee(e,t)).join(` `),ee=(e,t)=>{let n=t.loose?c[l.TILDELOOSE]:c[l.TILDE];return e.replace(n,(t,n,r,i,a)=>{o(`tilde`,e,t,n,r,i,a);let s;return y(n)?s=``:y(r)?s=`>=${n}.0.0 <${+n+1}.0.0-0`:y(i)?s=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:a?(o(`replaceTilde pr`,a),s=`>=${n}.${r}.${i}-${a} <${n}.${+r+1}.0-0`):s=`>=${n}.${r}.${i} <${n}.${+r+1}.0-0`,o(`tilde return`,s),s})},te=(e,t)=>e.trim().split(/\s+/).map(e=>x(e,t)).join(` `),x=(e,t)=>{o(`caret`,e,t);let n=t.loose?c[l.CARETLOOSE]:c[l.CARET],r=t.includePrerelease?`-0`:``;return e.replace(n,(t,n,i,a,s)=>{o(`caret`,e,t,n,i,a,s);let c;return y(n)?c=``:y(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:y(a)?c=n===`0`?`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.0${r} <${+n+1}.0.0-0`:s?(o(`replaceCaret pr`,s),c=n===`0`?i===`0`?`>=${n}.${i}.${a}-${s} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}-${s} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a}-${s} <${+n+1}.0.0-0`):(o(`no pr`),c=n===`0`?i===`0`?`>=${n}.${i}.${a}${r} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a} <${+n+1}.0.0-0`),o(`caret return`,c),c})},S=(e,t)=>(o(`replaceXRanges`,e,t),e.split(/\s+/).map(e=>ne(e,t)).join(` `)),ne=(e,t)=>{e=e.trim();let n=t.loose?c[l.XRANGELOOSE]:c[l.XRANGE];return e.replace(n,(n,r,i,a,s,c)=>{o(`xRange`,e,n,r,i,a,s,c);let l=y(i),u=l||y(a),d=u||y(s),f=d;return r===`=`&&f&&(r=``),c=t.includePrerelease?`-0`:``,l?n=r===`>`||r===`<`?`<0.0.0-0`:`*`:r&&f?(u&&(a=0),s=0,r===`>`?(r=`>=`,u?(i=+i+1,a=0,s=0):(a=+a+1,s=0)):r===`<=`&&(r=`<`,u?i=+i+1:a=+a+1),r===`<`&&(c=`-0`),n=`${r+i}.${a}.${s}${c}`):u?n=`>=${i}.0.0${c} <${+i+1}.0.0-0`:d&&(n=`>=${i}.${a}.0${c} <${i}.${+a+1}.0-0`),o(`xRange return`,n),n})},C=(e,t)=>(o(`replaceStars`,e,t),e.trim().replace(c[l.STAR],``)),re=(e,t)=>(o(`replaceGTE0`,e,t),e.trim().replace(c[t.includePrerelease?l.GTE0PRE:l.GTE0],``)),ie=e=>(t,n,r,i,a,o,s,c,l,u,d,f)=>(n=y(r)?``:y(i)?`>=${r}.0.0${e?`-0`:``}`:y(a)?`>=${r}.${i}.0${e?`-0`:``}`:o?`>=${n}`:`>=${n}${e?`-0`:``}`,c=y(l)?``:y(u)?`<${+l+1}.0.0-0`:y(d)?`<${l}.${+u+1}.0-0`:f?`<=${l}.${u}.${d}-${f}`:e?`<${l}.${u}.${+d+1}-0`:`<=${c}`,`${n} ${c}`.trim()),ae=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(o(e[n].semver),e[n].semver!==a.ANY&&e[n].semver.prerelease.length>0){let r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}})),R=o(((e,t)=>{var n=Symbol(`SemVer ANY`);t.exports=class e{static get ANY(){return n}constructor(t,i){if(i=r(i),t instanceof e){if(t.loose===!!i.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(` `),s(`comparator`,t,i),this.options=i,this.loose=!!i.loose,this.parse(t),this.semver===n?this.value=``:this.value=this.operator+this.semver.version,s(`comp`,this)}parse(e){let t=this.options.loose?i[a.COMPARATORLOOSE]:i[a.COMPARATOR],r=e.match(t);if(!r)throw TypeError(`Invalid comparator: ${e}`);this.operator=r[1]===void 0?``:r[1],this.operator===`=`&&(this.operator=``),r[2]?this.semver=new c(r[2],this.options.loose):this.semver=n}toString(){return this.value}test(e){if(s(`Comparator.test`,e,this.options.loose),this.semver===n||e===n)return!0;if(typeof e==`string`)try{e=new c(e,this.options)}catch{return!1}return o(e,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Comparator is required`);return this.operator===``?this.value===``?!0:new l(t.value,n).test(this.value):t.operator===``?t.value===``?!0:new l(this.value,n).test(t.semver):(n=r(n),n.includePrerelease&&(this.value===`<0.0.0-0`||t.value===`<0.0.0-0`)||!n.includePrerelease&&(this.value.startsWith(`<0.0.0`)||t.value.startsWith(`<0.0.0`))?!1:!!(this.operator.startsWith(`>`)&&t.operator.startsWith(`>`)||this.operator.startsWith(`<`)&&t.operator.startsWith(`<`)||this.semver.version===t.semver.version&&this.operator.includes(`=`)&&t.operator.includes(`=`)||o(this.semver,`<`,t.semver,n)&&this.operator.startsWith(`>`)&&t.operator.startsWith(`<`)||o(this.semver,`>`,t.semver,n)&&this.operator.startsWith(`<`)&&t.operator.startsWith(`>`)))}};var r=Ge(),{safeRe:i,t:a}=M(),o=dt(),s=j(),c=N(),l=L()})),z=o(((e,t)=>{var n=L();t.exports=(e,t,r)=>{try{t=new n(t,r)}catch{return!1}return t.test(e)}})),mt=o(((e,t)=>{var n=L();t.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(` `).trim().split(` `))})),ht=o(((e,t)=>{var n=N(),r=L();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===-1)&&(a=e,o=new n(a,i))}),a}})),gt=o(((e,t)=>{var n=N(),r=L();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===1)&&(a=e,o=new n(a,i))}),a}})),_t=o(((e,t)=>{var n=N(),r=L(),i=I();t.exports=(e,t)=>{e=new r(e,t);let a=new n(`0.0.0`);if(e.test(a)||(a=new n(`0.0.0-0`),e.test(a)))return a;a=null;for(let t=0;t<e.set.length;++t){let r=e.set[t],o=null;r.forEach(e=>{let t=new n(e.semver.version);switch(e.operator){case`>`:t.prerelease.length===0?t.patch++:t.prerelease.push(0),t.raw=t.format();case``:case`>=`:(!o||i(t,o))&&(o=t);break;case`<`:case`<=`:break;default:throw Error(`Unexpected operation: ${e.operator}`)}}),o&&(!a||i(a,o))&&(a=o)}return a&&e.test(a)?a:null}})),vt=o(((e,t)=>{var n=L();t.exports=(e,t)=>{try{return new n(e,t).range||`*`}catch{return null}}})),yt=o(((e,t)=>{var n=N(),r=R(),{ANY:i}=r,a=L(),o=z(),s=I(),c=ot(),l=ut(),u=lt();t.exports=(e,t,d,f)=>{e=new n(e,f),t=new a(t,f);let p,m,h,g,_;switch(d){case`>`:p=s,m=l,h=c,g=`>`,_=`>=`;break;case`<`:p=c,m=u,h=s,g=`<`,_=`<=`;break;default:throw TypeError(`Must provide a hilo val of "<" or ">"`)}if(o(e,t,f))return!1;for(let n=0;n<t.set.length;++n){let a=t.set[n],o=null,s=null;if(a.forEach(e=>{e.semver===i&&(e=new r(`>=0.0.0`)),o||=e,s||=e,p(e.semver,o.semver,f)?o=e:h(e.semver,s.semver,f)&&(s=e)}),o.operator===g||o.operator===_||(!s.operator||s.operator===g)&&m(e,s.semver)||s.operator===_&&h(e,s.semver))return!1}return!0}})),bt=o(((e,t)=>{var n=yt();t.exports=(e,t,r)=>n(e,t,`>`,r)})),xt=o(((e,t)=>{var n=yt();t.exports=(e,t,r)=>n(e,t,`<`,r)})),St=o(((e,t)=>{var n=L();t.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t,r))})),Ct=o(((e,t)=>{var n=z(),r=F();t.exports=(e,t,i)=>{let a=[],o=null,s=null,c=e.sort((e,t)=>r(e,t,i));for(let e of c)n(e,t,i)?(s=e,o||=e):(s&&a.push([o,s]),s=null,o=null);o&&a.push([o,null]);let l=[];for(let[e,t]of a)e===t?l.push(e):!t&&e===c[0]?l.push(`*`):t?e===c[0]?l.push(`<=${t}`):l.push(`${e} - ${t}`):l.push(`>=${e}`);let u=l.join(` || `),d=typeof t.raw==`string`?t.raw:String(t);return u.length<d.length?u:t}})),wt=o(((e,t)=>{var n=L(),r=R(),{ANY:i}=r,a=z(),o=F(),s=(e,t,r={})=>{if(e===t)return!0;e=new n(e,r),t=new n(t,r);let i=!1;OUTER:for(let n of e.set){for(let e of t.set){let t=u(n,e,r);if(i||=t!==null,t)continue OUTER}if(i)return!1}return!0},c=[new r(`>=0.0.0-0`)],l=[new r(`>=0.0.0`)],u=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===i){if(t.length===1&&t[0].semver===i)return!0;e=n.includePrerelease?c:l}if(t.length===1&&t[0].semver===i){if(n.includePrerelease)return!0;t=l}let r=new Set,s,u;for(let t of e)t.operator===`>`||t.operator===`>=`?s=d(s,t,n):t.operator===`<`||t.operator===`<=`?u=f(u,t,n):r.add(t.semver);if(r.size>1)return null;let p;if(s&&u&&(p=o(s.semver,u.semver,n),p>0||p===0&&(s.operator!==`>=`||u.operator!==`<=`)))return null;for(let e of r){if(s&&!a(e,String(s),n)||u&&!a(e,String(u),n))return null;for(let r of t)if(!a(e,String(r),n))return!1;return!0}let m,h,g,_,v=u&&!n.includePrerelease&&u.semver.prerelease.length?u.semver:!1,y=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1;v&&v.prerelease.length===1&&u.operator===`<`&&v.prerelease[0]===0&&(v=!1);for(let e of t){if(_=_||e.operator===`>`||e.operator===`>=`,g=g||e.operator===`<`||e.operator===`<=`,s){if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),e.operator===`>`||e.operator===`>=`){if(m=d(s,e,n),m===e&&m!==s)return!1}else if(s.operator===`>=`&&!a(s.semver,String(e),n))return!1}if(u){if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),e.operator===`<`||e.operator===`<=`){if(h=f(u,e,n),h===e&&h!==u)return!1}else if(u.operator===`<=`&&!a(u.semver,String(e),n))return!1}if(!e.operator&&(u||s)&&p!==0)return!1}return!(s&&g&&!u&&p!==0||u&&_&&!s&&p!==0||y||v)},d=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r>0?e:r<0||t.operator===`>`&&e.operator===`>=`?t:e},f=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r<0?e:r>0||t.operator===`<`&&e.operator===`<=`?t:e};t.exports=s})),B=l(o(((e,t)=>{var n=M(),r=A(),i=N(),a=Ke();t.exports={parse:P(),valid:qe(),clean:Je(),inc:Ye(),diff:Xe(),major:Ze(),minor:Qe(),patch:$e(),prerelease:et(),compare:F(),rcompare:tt(),compareLoose:nt(),compareBuild:rt(),sort:it(),rsort:at(),gt:I(),lt:ot(),eq:st(),neq:ct(),gte:lt(),lte:ut(),cmp:dt(),coerce:ft(),Comparator:R(),Range:L(),satisfies:z(),toComparators:mt(),maxSatisfying:ht(),minSatisfying:gt(),minVersion:_t(),validRange:vt(),outside:yt(),gtr:bt(),ltr:xt(),intersects:St(),simplifyRange:Ct(),subset:wt(),SemVer:i,re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r.SEMVER_SPEC_VERSION,RELEASE_TYPES:r.RELEASE_TYPES,compareIdentifiers:a.compareIdentifiers,rcompareIdentifiers:a.rcompareIdentifiers}}))()),Tt=`_updates_v2/per_package_version/`;function Et(e,t){return`${Tt}${e.organization}/${e.name}/${e.version}/${t}`}var Dt=/(?<packageKeyWithoutVersion>(?<organization>[^/]+)\/(?<name>[^/]+))\/(?<version>[^/]+)\/(?<seed>[^/]+)$/,Ot=`_updates_v2/_global_update_in`,kt=`_updates_v2/_global_update_out`,At=`_overview_snapshots_v2/global/`,jt=`_overview_snapshots_v2/per_package/`,Mt=/^(?<timestamp>\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}\.\d{3}Z-[a-z0-9]+)\.json\.gz$/;function Nt(e){return`${At}${e}.json.gz`}function Pt(e,t){return`${jt}${e.organization}/${e.name}/${t}.json.gz`}var Ft=`v2/`,It=`overview.json`,Lt=`overview.json.gz`,Rt=`overview.json`,V=`manifest.json`,H=`channels`,U=/^[-a-z0-9]+$/;function W(e){return`${e.organization}/${e.name}/${e.version}`}function G(e){return`v2/${W(e)}`}var zt=`/`+V,Bt=x.z.object({description:g.BlockPackDescriptionManifest,channels:x.z.array(x.z.string()).default(()=>[]),manifestSha256:g.Sha256Schema}).passthrough(),K=x.z.object({schema:x.z.literal(`v2`),versions:x.z.array(Bt)}).passthrough();function Vt(e){return`${e.organization}/${e.name}/${Rt}`}function Ht(e){return`v2/${Vt(e)}`}function Ut(e){return`${W(e)}/${H}/`}function Wt(e){return`v2/${Ut(e)}`}var Gt=/(?<packageKeyWithoutVersion>(?<organization>[^/]+)\/(?<name>[^/]+))\/(?<version>[^/]+)\/manifest\.json$/,q=`v2/${It}`,Kt=`v2/${Lt}`,qt=x.z.object({id:g.BlockPackIdNoVersion,allVersions:x.z.array(x.z.string()).optional(),allVersionsWithChannels:x.z.array(g.VersionWithChannels).optional(),latest:g.BlockPackDescriptionManifest.optional(),latestManifestSha256:g.Sha256Schema.optional(),latestByChannel:x.z.record(x.z.string(),x.z.object({description:g.BlockPackDescriptionManifest,manifestSha256:g.Sha256Schema}).passthrough()).default({})}).passthrough();function Jt(e){let t=`${e.id.organization}/${e.id.name}`,n=e.allVersionsWithChannels;if(n===void 0){if(e.allVersions===void 0)throw Error(`GlobalOverviewEntry ${t} is missing both 'allVersionsWithChannels' and the deprecated 'allVersions' fallback`);n=e.allVersions.map(e=>({version:e,channels:[]}))}let r=e.latestByChannel;if(!r[g.AnyChannel]){if(e.latest===void 0||e.latestManifestSha256===void 0)throw Error(`GlobalOverviewEntry ${t} is missing the 'latestByChannel[any]' slot and the deprecated 'latest'/'latestManifestSha256' fallback`);r={...r,[g.AnyChannel]:{description:e.latest,manifestSha256:e.latestManifestSha256}}}return{...e,allVersionsWithChannels:n,latestByChannel:r}}var Yt=x.z.object({schema:x.z.literal(`v2`),packages:x.z.array(qt)}).passthrough();function J(e){let t=Yt.parse(e);return{...t,packages:t.packages.map(Jt)}}var Xt=class{gzipAsync=(0,te.promisify)(v.gzip);gunzipAsync=(0,te.promisify)(v.gunzip);constructor(e,t=new b.ConsoleLoggerAdapter,n={}){this.storage=e,this.logger=t,this.settings=n}generateTimestamp(){return`${new Date().toISOString().replace(/:/g,`-`).replace(/\.(\d{3})Z$/,`.$1Z`)}-${Math.random().toString(36).substring(2,6)}`}generatePreWriteTimestamp(){return`${new Date().toISOString().replace(/:/g,`-`).replace(/\.(\d{3})Z$/,`.$1Z`)}-prewrite-${Math.random().toString(36).substring(2,6)}`}async createGlobalOverviewSnapshot(e,t){if(!this.settings.skipSnapshotCreation)try{let n=await this.gzipAsync(e),r=Nt(t);await this.storage.putFile(r,Buffer.from(n)),this.logger.info(`Global overview snapshot created at ${r}`)}catch(e){this.logger.warn(`Failed to create global overview snapshot: ${String(e)}`)}}async createPackageOverviewSnapshot(e,t,n){if(!this.settings.skipSnapshotCreation)try{let r=JSON.stringify(t),i=await this.gzipAsync(r),a=Pt(e,n);await this.storage.putFile(a,Buffer.from(i)),this.logger.info(`Package overview snapshot created at ${a} for ${e.organization}:${e.name}`)}catch(t){this.logger.warn(`Failed to create package overview snapshot for ${e.organization}:${e.name}: ${String(t)}`)}}async updateRegistry(e=`normal`){this.logger.info(`Initiating registry refresh...`);let t=this.generateTimestamp(),n=new Map,r=[],i=await this.storage.listFiles(Tt),a=({organization:e,name:t,version:r})=>{let i=`${e}:${t}`,a=n.get(i);return a?a.versions.has(r)?!1:(a.versions.add(r),!0):(n.set(i,{package:{organization:e,name:t},versions:new Set([r])}),!0)};this.logger.info(`Packages to be updated:`);for(let e of i){let t=e.match(Dt);if(!t)continue;r.push(e);let{organization:n,name:i,version:o,seed:s}=t.groups,c=a({organization:n,name:i,version:o});this.logger.info(` - ${n}:${i}:${o} added:${c}`)}if(e===`force`){let e=await this.storage.listFiles(`v2/`);for(let t of e){let e=t.match(Gt);if(!e)continue;let{organization:n,name:r,version:i}=e.groups,o=a({organization:n,name:r,version:i});this.logger.info(` - ${n}:${r}:${i} force_added:${o}`)}}let o=await this.storage.getFile(q);if(e===`force`&&o!==void 0){let e=this.generatePreWriteTimestamp();await this.createGlobalOverviewSnapshot(o.toString(),e)}let s=(e===`force`||o===void 0?{schema:`v2`,packages:[]}:J(JSON.parse(o.toString()))).packages;this.logger.info(`Global overview ${e===`force`?`starting empty (force mode)`:`loaded`}, ${s.length} records`);for(let[,r]of n.entries()){let n=Ht(r.package),i=await this.storage.getFile(n);if(e===`force`&&i!==void 0){let e=this.generatePreWriteTimestamp(),t=K.parse(JSON.parse(i.toString()));await this.createPackageOverviewSnapshot(r.package,t,e)}let a=e===`force`||i===void 0?{schema:`v2`,versions:[]}:K.parse(JSON.parse(i.toString()));this.logger.info(`Updating ${r.package.organization}:${r.package.name} overview${e===`force`?` (starting empty in force mode)`:``}, ${a.versions.length} records`);let o=a.versions.filter(e=>!r.versions.has(e.description.id.version));for(let[e]of r.versions.entries()){let t=e.toString(),n={...r.package,version:t},i=await this.storage.getFile(G(n)+zt);if(!i)continue;let a=await D(i),s=(await this.storage.listFiles(Wt(n))).filter(e=>e.match(U)?!0:(this.logger.warn(`Unexpected channel in ${(0,g.blockPackIdToString)(n)}: ${e}`),!1));o.push({description:E(g.BlockPackManifest.parse(JSON.parse(i.toString(`utf8`))).description,t),manifestSha256:a,channels:s})}o.sort((e,t)=>(0,B.compare)(t.description.id.version,e.description.id.version));let c={schema:`v2`,versions:o};e!==`dry-run`&&(await this.storage.putFile(n,Buffer.from(JSON.stringify(c))),await this.createPackageOverviewSnapshot(r.package,c,t)),this.logger.info(`Done (${o.length} records)`);let l=new Set;for(let e of o)for(let t of e.channels)l.add(t);s=s.filter(e=>e.id.organization!==r.package.organization||e.id.name!==r.package.name);let u=`${r.package.organization}/${r.package.name}`;s.push({id:{organization:r.package.organization,name:r.package.name},allVersions:o.map(e=>e.description.id.version).reverse(),allVersionsWithChannels:o.map(e=>({version:e.description.id.version,channels:e.channels})).reverse(),latest:E(o[0].description,u),latestManifestSha256:o[0].manifestSha256,latestByChannel:Object.fromEntries([...l,g.AnyChannel].map(e=>{let t=o.find(t=>e===g.AnyChannel||t.channels.indexOf(e)!==-1);if(!t)throw Error(`Assertion error`);return[e,{description:E(t.description,u),manifestSha256:t?.manifestSha256}]}))})}if(e!==`dry-run`){let e=JSON.stringify({schema:`v2`,packages:s}),n=Buffer.from(e);await this.storage.putFile(q,n);let r=await this.gzipAsync(e);await this.storage.putFile(Kt,Buffer.from(r)),await this.createGlobalOverviewSnapshot(e,t)}this.logger.info(`Global overview updated (${s.length} records)`),e!==`dry-run`&&await this.storage.deleteFiles(...r.map(e=>`${Tt}${e}`)),this.logger.info(`Version update requests cleared`)}async updateIfNeeded(e=`normal`){this.logger.info(`Checking if registry requires refresh...`);let t=await this.storage.getFile(Ot),n=await this.storage.getFile(kt);if(e!==`force`&&t===void 0&&n===void 0){this.logger.info(`No global seed files found, update not needed.`);return}if(e!==`force`&&t!==void 0&&n!==void 0&&t.equals(n)){this.logger.info(`Registry is up to date.`);return}await this.updateRegistry(e),t&&(e!==`dry-run`&&await this.storage.putFile(kt,t),this.logger.info(`Refresh finished.`))}async getPackageOverview(e){let t=await this.storage.getFile(Ht(e));if(t!==void 0)return K.parse(JSON.parse(t.toString()))}async getGlobalOverview(){let e=await this.storage.getFile(q);if(e!==void 0)return J(JSON.parse(e.toString()))}async marchChanged(e){let t=(0,y.randomUUID)(),n=Et(e,t);this.logger.info(`Creating update seed at ${n} ...`),await this.storage.putFile(n,Buffer.from(t)),this.logger.info(`Touching global update seed ${Ot} ...`),await this.storage.putFile(Ot,Buffer.from(t))}async addPackageToChannel(e,t){if(!t.match(U))throw Error(`Illegal characters in channel name: ${t}`);let n=G(e);if(await this.storage.getFile(`${n}/manifest.json`)===void 0)throw Error(`Package ${(0,g.blockPackIdToString)(e)} not found in the registry.`);await this.storage.putFile(`${n}/${H}/${t}`,Buffer.from(t)),await this.marchChanged(e)}async removePackageFromChannel(e,t){if(!t.match(U))throw Error(`Illegal characters in channel name: ${t}`);let n=G(e);if(await this.storage.getFile(`${n}/manifest.json`)===void 0)throw Error(`Package ${(0,g.blockPackIdToString)(e)} not found in the registry.`);await this.storage.deleteFiles(`${n}/${H}/${t}`),await this.marchChanged(e)}async listGlobalOverviewSnapshots(){let e=await this.storage.listFiles(At),t=[];for(let n of e){let e=n.indexOf(`/`)===-1?n:n.substring(n.lastIndexOf(`/`)+1),r=e.match(Mt);r&&t.push({timestamp:r.groups.timestamp,path:At+e})}return t.sort((e,t)=>t.timestamp.localeCompare(e.timestamp)),t}async restoreGlobalOverviewFromSnapshot(e){let t=Nt(e),n=await this.storage.getFile(t);if(!n)throw Error(`Snapshot ${e} not found at ${t}`);let r=(await this.gunzipAsync(n)).toString(`utf8`);try{J(JSON.parse(r))}catch(t){throw Error(`Invalid snapshot data in ${e}: ${String(t)}`)}let i=Buffer.from(r);await this.storage.putFile(q,i);let a=await this.gzipAsync(r);await this.storage.putFile(Kt,Buffer.from(a)),this.logger.info(`Global overview restored from snapshot ${e}`)}async publishPackage(e,t){let n=G(e.description.id);for(let r of e.files){let e=await t(r.name);if(e.length!==r.size)throw Error(`Actual file size don't match file size from the manifest file for ${r.name} (actual = ${e.length}; manifest = ${r.size})`);let i=await D(e);if(i!==r.sha256.toUpperCase())throw Error(`Actual file SHA-256 don't match the checksum from the manifest file for ${r.name} (actual = ${i}; manifest = ${r.sha256.toUpperCase()})`);let a=n+`/`+r.name;this.logger.info(`Uploading ${r.name} -> ${a} ...`),await this.storage.putFile(a,e)}let r=n+`/`+V;this.logger.info(`Uploading manifest to ${r} ...`),await this.storage.putFile(r,Buffer.from(JSON.stringify(e))),await this.marchChanged(e.description.id)}},Zt={cacheBlockListFor:45e3,keepStaleBlockListFor:3e5};function Qt(e,t){let n=B.inc(e,`minor`),r=B.inc(e,`major`),i=[],a=t.find(t=>B.gt(t,e)&&B.lt(t,n)),o=t.find(e=>B.gte(e,n)&&B.lt(e,r)),s=t.find(e=>B.gte(e,r));return a&&i.push({type:`patch`,update:a}),o&&i.push({type:`minor`,update:o}),s&&i.push({type:`major`,update:s}),i}var $t=class{v2RootFolderReader;ops;constructor(e,t){this.registryReader=e,this.v2RootFolderReader=e.relativeReader(`v2/`),this.ops={...Zt,...t}}embeddedGlobalMetaCache=new ne.LRUCache({max:500,fetchMethod:async(e,t,n)=>await(0,b.retry)(async()=>{let e=n.context.relativeTo===void 0?this.v2RootFolderReader.getContentReader():this.v2RootFolderReader.relativeReader(W(n.context.relativeTo)).getContentReader();return await we(n.context.meta,e)},b.Retry2TimesWithDelay)});async embedMetaContent(e,t,n,r){return await this.embeddedGlobalMetaCache.forceFetch((0,S.default)({id:e,sha256:t,absolutePath:n}),{context:{meta:r,relativeTo:n?void 0:e}})}listCacheTimestamp=0;listCache=void 0;async listBlockPacks(e){if(this.listCache!==void 0&&Date.now()-this.listCacheTimestamp<=this.ops.cacheBlockListFor)return this.listCache;try{return await(0,b.retry)(async()=>{let t=J(JSON.parse(Buffer.from(await this.v2RootFolderReader.readFile(It,{signal:e?.signal})).toString())),n=await Promise.all(t.packages.map(async e=>{let t=await Promise.all(Object.entries(e.latestByChannel).map(async([e,t])=>[e,{id:t.description.id,meta:await this.embedMetaContent(t.description.id,t.manifestSha256,!0,t.description.meta),featureFlags:t.description.featureFlags,spec:{type:`from-registry-v2`,id:t.description.id,registryUrl:this.registryReader.rootUrl.toString(),channel:e}}]));return{id:e.id,latestByChannel:Object.fromEntries(t),allVersions:e.allVersionsWithChannels}}));return this.listCache=n,this.listCacheTimestamp=Date.now(),n},b.Retry2TimesWithDelay)}catch(e){if(this.listCache!==void 0&&Date.now()-this.listCacheTimestamp<=this.ops.keepStaleBlockListFor)return this.listCache;throw e}}async getLatestOverview(e,t){let n=(await this.listBlockPacks()).find(t=>(0,g.blockPackIdNoVersionEquals)(e,t.id));if(n!==void 0)return n.latestByChannel[t]}async getUpdateSuggestions(e,t){let n=(await this.listBlockPacks()).find(t=>(0,g.blockPackIdNoVersionEquals)(e,t.id));if(n===void 0)return;let r=n.allVersions.filter(e=>t===g.AnyChannel||e.channels.indexOf(t)>=0).map(e=>e.version);return r.reverse(),Qt(e.version,r)}async getSpecificOverview(e,t){return await(0,b.retry)(async()=>{let n=await this.v2RootFolderReader.readFile(W(e)+zt),r=g.BlockPackManifest.parse(JSON.parse(Buffer.from(n).toString()));return{id:e,meta:await this.embedMetaContent(e,await D(n),!1,r.description.meta),spec:{type:`from-registry-v2`,id:e,registryUrl:this.registryReader.rootUrl.toString(),channel:t}}},b.Retry2TimesWithDelay)}componentsCache=new ne.LRUCache({max:500,fetchMethod:async(e,t,{context:n})=>await(0,b.retry)(async()=>{let e=this.v2RootFolderReader.relativeReader(W(n));return Oe(g.BlockPackManifest.parse(JSON.parse(Buffer.from(await e.readFile(V)).toString())).description.components,e.rootUrl.toString())},b.Retry2TimesWithDelay)});async getComponents(e){return await this.componentsCache.forceFetch((0,S.default)(e),{context:e})}},en=class{constructor(e,t,n){this.client=e,this.bucket=t,this.root=n}async getFile(e){try{return Buffer.from(await(await this.client.getObject({Bucket:this.bucket,Key:C.default.join(this.root,e)})).Body.transformToByteArray())}catch(e){if(e instanceof Error&&e.name===`NoSuchKey`)return;throw e}}async listFiles(e){let t=C.default.join(this.root,e),n=(0,re.paginateListObjectsV2)({client:this.client},{Bucket:this.bucket,Prefix:t}),r=[];for await(let e of n)r.push(...(e.Contents??[]).map(e=>C.default.relative(t,e.Key)));return r}async putFile(e,t){await this.client.putObject({Bucket:this.bucket,Key:C.default.join(this.root,e),Body:t})}async deleteFiles(...e){let t=await this.client.deleteObjects({Bucket:this.bucket,Delete:{Objects:e.map(e=>({Key:C.default.join(this.root,e)}))}});if(t.Errors!==void 0&&t.Errors.length>0)throw Error(`Errors encountered while deleting files: ${t.Errors.map(e=>e.Message??e.Code??`Unknown error`).join(`
|
|
2
|
-
`)}`)}},tn=class{root;constructor(e){this.root=u.default.resolve(e)}toAbsolutePath(e){if(C.default.isAbsolute(e))throw Error(`absolute path`);return u.default.resolve(this.root,e.split(C.default.sep).join(u.default.sep))}async getFile(e){try{return await d.promises.readFile(this.toAbsolutePath(e))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}}async listFiles(e){try{let t=this.toAbsolutePath(e);return(await d.promises.readdir(t,{recursive:!0,withFileTypes:!0})).filter(e=>e.isFile()).map(e=>u.default.relative(t,u.default.resolve(e.parentPath,e.name)).split(u.default.sep).join(C.default.sep))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return[];throw e}}async putFile(e,t){let n=this.toAbsolutePath(e);await d.promises.mkdir(u.default.dirname(n),{recursive:!0}),await d.promises.writeFile(n,t)}async deleteFiles(...e){for(let t of e)await d.promises.rm(this.toAbsolutePath(t))}};function nn(e){let t=new URL(e,`file:${u.default.resolve(`.`).split(u.default.sep).join(C.default.sep)}/`);switch(t.protocol){case`file:`:return new tn(u.default.resolve(t.pathname));case`s3:`:{let e={},n=t.searchParams.get(`region`);n&&(e.region=n);let r=t.hostname;return new en(new re.S3(e),r,t.pathname.replace(/^\//,``))}default:throw Error(`Unknown protocol: ${t.protocol}`)}}var rn=class e{constructor(e,t){this.rootUrl=e,this.httpDispatcher=t}async readFile(e,t){let n=await(0,ie.request)(new URL(e,this.rootUrl),{dispatcher:this.httpDispatcher,signal:t?.signal});return Buffer.from(await n.body.arrayBuffer())}relativeReader(t){return t.endsWith(`/`)||(t+=`/`),new e(new URL(t,this.rootUrl),this.httpDispatcher)}getContentReader(e){let t=e===void 0?this:this.relativeReader(e);return e=>t.readFile(e)}},an=class e{constructor(e,t){this.rootUrl=e,this.root=t}async readFile(e,t){let n=u.default.join(this.root,...e.split(C.default.sep));return await f.default.readFile(n,{signal:t?.signal})}relativeReader(t){return t.endsWith(`/`)||(t+=`/`),new e(new URL(t,this.rootUrl),u.default.join(this.root,...t.split(C.default.sep)))}getContentReader(e){let t=e===void 0?this:this.relativeReader(e);return e=>t.readFile(e)}};function on(e){return e.split(C.default.sep).join(u.default.sep)}function sn(e){return e.split(u.default.sep).join(C.default.sep)}function cn(e,t){e.endsWith(`/`)||(e+=`/`);let n=new URL(e,`file:${sn(u.default.resolve(`.`))}/`);switch(n.protocol){case`file:`:return new an(n,on(n.pathname));case`https:`:case`http:`:return new rn(n,t??(0,ae.defaultHttpDispatcher)());default:throw Error(`Unknown protocol: ${n.protocol}`)}}var ln=x.z.string().regex(/^(?:s3:|file:)/),un=x.z.object({organization:x.z.string(),package:x.z.string(),version:g.SemVer.optional(),files:x.z.record(x.z.string().regex(/^[^/]+$/),x.z.string()).default({}),meta:x.z.object({}).passthrough()}),dn=x.z.object({registries:x.z.record(x.z.string(),ln).default({}),registry:x.z.string().optional()}),fn=dn.merge(un).required({registry:!0,version:!0}),Y=fn.partial().required({registries:!0,files:!0}),pn=`pl.package.json`,mn=`pl.package.yaml`,X=`v1/`;function hn(e){return`${X}${e.organization}/${e.package}/${e.version}`}function gn(e,t){return`${X}${e.organization}/${e.package}/${e.version}/${t}`}function Z(e){return`${X}${e.organization}/${e.package}/overview.json`}var Q=`${X}overview.json`,_n=`meta.json`,vn=`_updates_v1/per_package_version/`;function yn(e,t){return`${vn}${e.organization}/${e.package}/${e.version}/${t}`}var bn=/(?<packageKeyWithoutVersion>(?<organization>[^/]+)\/(?<pkg>[^/]+))\/(?<version>[^/]+)\/(?<seed>[^/]+)$/,xn=`_updates_v1/_global_update_in`,Sn=`_updates_v1/_global_update_out`,Cn=class{constructor(e,t){this.storage=e,this.logger=t}constructNewPackage(e){return new wn(this.storage,e)}async updateRegistry(){this.logger?.info(`Initiating registry refresh...`);let e=new Map,t=[],n=await this.storage.listFiles(vn);this.logger?.info(`Packages to be updated:`);for(let r of n){let n=r.match(bn);if(!n)continue;t.push(r);let{packageKeyWithoutVersion:i,organization:a,pkg:o,version:s,seed:c}=n.groups,l=e.get(i);l?l.versions.has(s)||l.versions.add(s):e.set(i,{package:{organization:a,package:o},versions:new Set([s])}),this.logger?.info(` - ${a}:${o}:${s}`)}let r=await this.storage.getFile(Q),i=r===void 0?[]:JSON.parse(r.toString());this.logger?.info(`Global overview loaded, ${i.length} records`);for(let[,t]of e.entries()){let e=Z(t.package),n=await this.storage.getFile(e),r=n===void 0?[]:JSON.parse(n.toString());this.logger?.info(`Updating ${t.package.organization}:${t.package.package} overview, ${r.length} records`),r=r.filter(e=>!t.versions.has(e.version));for(let[e]of t.versions.entries()){let n=e.toString(),i=await this.storage.getFile(gn({...t.package,version:n},_n));i&&r.push({version:n,meta:JSON.parse(i.toString())})}r.sort((e,t)=>B.compare(t.version,e.version)),await this.storage.putFile(e,Buffer.from(JSON.stringify(r))),this.logger?.info(`Done (${r.length} records)`),i=i.filter(e=>e.organization!==t.package.organization||e.package!==t.package.package),i.push({organization:t.package.organization,package:t.package.package,allVersions:r.map(e=>e.version).reverse(),latestVersion:r[0].version,latestMeta:r[0].meta})}await this.storage.putFile(Q,Buffer.from(JSON.stringify(i))),this.logger?.info(`Global overview updated (${i.length} records)`),await this.storage.deleteFiles(...t.map(e=>`${vn}${e}`)),this.logger?.info(`Version update requests cleared`)}async updateIfNeeded(e=!1){this.logger?.info(`Checking if registry requires refresh...`);let t=await this.storage.getFile(xn),n=await this.storage.getFile(Sn);!e&&t===void 0&&n===void 0||!e&&t!==void 0&&n!==void 0&&t.equals(n)||(await this.updateRegistry(),t&&(await this.storage.putFile(Sn,t),this.logger?.info(`Refresh finished`)))}async getPackageOverview(e){let t=await this.storage.getFile(Z(e));if(t!==void 0)return JSON.parse(t.toString())}async getGlobalOverview(){let e=await this.storage.getFile(Q);if(e!==void 0)return JSON.parse(e.toString())}},wn=class{metaAdded=!1;seed=(0,y.randomUUID)();constructor(e,t){this.storage=e,this.name=t}async addFile(e,t){await this.storage.putFile(gn(this.name,e),t)}async writeMeta(e){await this.addFile(_n,Buffer.from(JSON.stringify(e))),this.metaAdded=!0}async finish(){if(!this.metaAdded)throw Error(`meta not added`);await this.storage.putFile(yn(this.name,this.seed),Buffer.of(0)),await this.storage.putFile(xn,Buffer.from(this.seed))}};function $(e,t){return t===void 0?e:{...e,...t,registries:{...e.registries,...t.registries},files:{...e.files,...t.files}}}async function Tn(e){return Me(e,e=>Y.parse(JSON.parse(e.toString())))}async function En(e){return Me(e,e=>Y.parse(oe.default.parse(e.toString())))}async function Dn(){let e=Y.parse({});return e=$(e,await Tn(`./.pl.reg.json`)),e=$(e,await En(`./.pl.reg.yaml`)),e=$(e,await Tn(`${w.homedir()}/.pl.reg.json`)),e=$(e,await En(`${w.homedir()}/.pl.reg.yaml`)),e=$(e,await Tn(pn)),e=$(e,await En(mn)),e}var On=class{constructor(e){this.conf=e}createRegistry(e){let t=this.conf.registry;if(!t.startsWith(`file:`)&&!t.startsWith(`s3:`)){let e=this.conf.registries[t];if(!e)throw Error(`Registry with alias "${t}" not found`);t=e}return new Cn(nn(t),e)}get fullPackageName(){return{organization:this.conf.organization,package:this.conf.package,version:this.conf.version}}};async function kn(e){let t=await Dn();return new On(fn.parse($(t,e)))}Object.defineProperty(exports,`$`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return Gt}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return It}}),Object.defineProperty(exports,`Ct`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return Ft}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return Ut}}),Object.defineProperty(exports,`G`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`J`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`K`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return Rt}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return Bt}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,`Q`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return Ht}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`St`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,`Tt`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`W`,{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,`X`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`Y`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`Z`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return nn}}),Object.defineProperty(exports,`_t`,{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,`at`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(exports,`bt`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return un}}),Object.defineProperty(exports,`ct`,{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return dn}}),Object.defineProperty(exports,`dt`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`et`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return fn}}),Object.defineProperty(exports,`ft`,{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return en}}),Object.defineProperty(exports,`gt`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return tn}}),Object.defineProperty(exports,`ht`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return _n}}),Object.defineProperty(exports,`it`,{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return zt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return pn}}),Object.defineProperty(exports,`lt`,{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,`mt`,{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return kn}}),Object.defineProperty(exports,`nt`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`ot`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`pt`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`q`,{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`rt`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return gn}}),Object.defineProperty(exports,`st`,{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return On}}),Object.defineProperty(exports,`tt`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return mn}}),Object.defineProperty(exports,`ut`,{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return $t}}),Object.defineProperty(exports,`vt`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return Lt}}),Object.defineProperty(exports,`wt`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`xt`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,`yt`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return Vt}});
|
|
3
|
-
//# sourceMappingURL=config-BmJWc8sR.js.map
|