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