UNPKG

@bugron/validate-dependabot-yaml

Version:

CLI for validating Dependabot v2 YAML configuration files

11 lines (10 loc) 156 kB
#!/usr/bin/env node var De=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import Yn from"node:path";import{readFileSync as pl}from"node:fs";import os from"ajv";import ss from"yaml";function $t(e){return ss.parse(e)}function Pt(e){let t=e.updates.reduce((n,s)=>{let i=`${s["package-ecosystem"]}-${s["target-branch"]}`;return n[i]=[...n[i]||[],s],n},{});if(Object.keys(t).some(n=>{let i=t[n]?.flatMap(o=>"directory"in o?[o.directory]:o.directories);return new Set(i).size!==i?.length}))return{keyword:"customError",dataPath:".updates",schemaPath:"#/customError",params:{propertyName:"customError"},message:"Update configs must have a unique combination of 'package-ecosystem', 'directory', and 'target-branch'"}}function Rt(e){return[Pt].reduce((t,r)=>{let n=r(e);return n?[...t,n]:t},[])}import is from"node-fetch";async function It(){return(await is("https://json.schemastore.org/dependabot-2.0.json")).json()}async function xt(e,t){let r=new os({extendRefs:!0,allErrors:!0}),n=$t(e),s=Rt(n),i=t;i||(i=await It());let o=r.compile(i);return await o(n)&&!s.length?{message:"success"}:{errors:[...o.errors??[],...s],message:"failure"}}function Nt(e,t=!1){process.stdout.write(JSON.stringify(e,null,t?2:0))}function _t(e){let r=` ## Dependabot YAML validation errors | keyword | message | dataPath | | ------- | ------- | -------- | ${e.map(({keyword:n,message:s,dataPath:i})=>`| ${n} | ${s} | ${i} |`).join(` `)} `;process.stdout.write(r)}import Ct from"node:process";import as,{format as us}from"util";import{normalize as cs,resolve as ls}from"path";import{readFileSync as fs}from"fs";import q from"node:path";import hs from"node:process";import{fileURLToPath as _r}from"node:url";import Dr from"node:fs";import Tr from"os";import Fr from"url";function pe(e){if(e!==e.toLowerCase()&&e!==e.toUpperCase()||(e=e.toLowerCase()),e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;{let r="",n=!1,s=e.match(/^-+/);for(let i=s?s[0].length:0;i<e.length;i++){let o=e.charAt(i);n&&(n=!1,o=o.toUpperCase()),i!==0&&(o==="-"||o==="_")?n=!0:o!=="-"&&o!=="_"&&(r+=o)}return r}}function jr(e,t){let r=e.toLowerCase();t=t||"-";let n="";for(let s=0;s<e.length;s++){let i=r.charAt(s),o=e.charAt(s);i!==o&&s>0?n+=`${t}${r.charAt(s)}`:n+=o}return n}function Gr(e){return e==null?!1:typeof e=="number"||/^0x[0-9a-f]+$/i.test(e)?!0:/^0[^.]/.test(e)?!1:/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function ps(e){if(Array.isArray(e))return e.map(o=>typeof o!="string"?o+"":o);e=e.trim();let t=0,r=null,n=null,s=null,i=[];for(let o=0;o<e.length;o++){if(r=n,n=e.charAt(o),n===" "&&!s){r!==" "&&t++;continue}n===s?s=null:(n==="'"||n==='"')&&!s&&(s=n),i[t]||(i[t]=""),i[t]+=n}return i}var k;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(k||(k={}));var V,Xe=class{constructor(t){V=t}parse(t,r){let n=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},r),s=ps(t),i=typeof t=="string",o=ds(Object.assign(Object.create(null),n.alias)),a=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),u=Object.assign(Object.create(null),n.default),f=n.configObjects||[],g=n.envPrefix,m=a["populate--"],C=m?"--":"_",O=Object.create(null),v=Object.create(null),p=n.__||V.format,c={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},y=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,A=new RegExp("^--"+a["negation-prefix"]+"(.+)");[].concat(n.array||[]).filter(Boolean).forEach(function(l){let d=typeof l=="object"?l.key:l,L=Object.keys(l).map(function(b){return{boolean:"bools",string:"strings",number:"numbers"}[b]}).filter(Boolean).pop();L&&(c[L][d]=!0),c.arrays[d]=!0,c.keys.push(d)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(l){c.bools[l]=!0,c.keys.push(l)}),[].concat(n.string||[]).filter(Boolean).forEach(function(l){c.strings[l]=!0,c.keys.push(l)}),[].concat(n.number||[]).filter(Boolean).forEach(function(l){c.numbers[l]=!0,c.keys.push(l)}),[].concat(n.count||[]).filter(Boolean).forEach(function(l){c.counts[l]=!0,c.keys.push(l)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(l){c.normalize[l]=!0,c.keys.push(l)}),typeof n.narg=="object"&&Object.entries(n.narg).forEach(([l,d])=>{typeof d=="number"&&(c.nargs[l]=d,c.keys.push(l))}),typeof n.coerce=="object"&&Object.entries(n.coerce).forEach(([l,d])=>{typeof d=="function"&&(c.coercions[l]=d,c.keys.push(l))}),typeof n.config<"u"&&(Array.isArray(n.config)||typeof n.config=="string"?[].concat(n.config).filter(Boolean).forEach(function(l){c.configs[l]=!0}):typeof n.config=="object"&&Object.entries(n.config).forEach(([l,d])=>{(typeof d=="boolean"||typeof d=="function")&&(c.configs[l]=d)})),Jn(n.key,o,n.default,c.arrays),Object.keys(u).forEach(function(l){(c.aliases[l]||[]).forEach(function(d){u[d]=u[l]})});let E=null;ns();let I=[],x=Object.assign(Object.create(null),{_:[]}),B={};for(let l=0;l<s.length;l++){let d=s[l],L=d.replace(/^-{3,}/,"---"),b,h,S,w,P,T;if(d!=="--"&&/^-/.test(d)&&ye(d))U(d);else if(L.match(/^---+(=|$)/)){U(d);continue}else if(d.match(/^--.+=/)||!a["short-option-groups"]&&d.match(/^-.+=/))w=d.match(/^--?([^=]+)=([\s\S]*)$/),w!==null&&Array.isArray(w)&&w.length>=3&&(R(w[1],c.arrays)?l=Q(l,w[1],s,w[2]):R(w[1],c.nargs)!==!1?l=X(l,w[1],s,w[2]):_(w[1],w[2],!0));else if(d.match(A)&&a["boolean-negation"])w=d.match(A),w!==null&&Array.isArray(w)&&w.length>=2&&(h=w[1],_(h,R(h,c.arrays)?[!1]:!1));else if(d.match(/^--.+/)||!a["short-option-groups"]&&d.match(/^-[^-]+/))w=d.match(/^--?(.+)/),w!==null&&Array.isArray(w)&&w.length>=2&&(h=w[1],R(h,c.arrays)?l=Q(l,h,s):R(h,c.nargs)!==!1?l=X(l,h,s):(P=s[l+1],P!==void 0&&(!P.match(/^-/)||P.match(y))&&!R(h,c.bools)&&!R(h,c.counts)||/^(true|false)$/.test(P)?(_(h,P),l++):_(h,ne(h))));else if(d.match(/^-.\..+=/))w=d.match(/^-([^=]+)=([\s\S]*)$/),w!==null&&Array.isArray(w)&&w.length>=3&&_(w[1],w[2]);else if(d.match(/^-.\..+/)&&!d.match(y))P=s[l+1],w=d.match(/^-(.\..+)/),w!==null&&Array.isArray(w)&&w.length>=2&&(h=w[1],P!==void 0&&!P.match(/^-/)&&!R(h,c.bools)&&!R(h,c.counts)?(_(h,P),l++):_(h,ne(h)));else if(d.match(/^-[^-]+/)&&!d.match(y)){S=d.slice(1,-1).split(""),b=!1;for(let G=0;G<S.length;G++){if(P=d.slice(G+2),S[G+1]&&S[G+1]==="="){T=d.slice(G+3),h=S[G],R(h,c.arrays)?l=Q(l,h,s,T):R(h,c.nargs)!==!1?l=X(l,h,s,T):_(h,T),b=!0;break}if(P==="-"){_(S[G],P);continue}if(/[A-Za-z]/.test(S[G])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(P)&&R(P,c.bools)===!1){_(S[G],P),b=!0;break}if(S[G+1]&&S[G+1].match(/\W/)){_(S[G],P),b=!0;break}else _(S[G],ne(S[G]))}h=d.slice(-1)[0],!b&&h!=="-"&&(R(h,c.arrays)?l=Q(l,h,s):R(h,c.nargs)!==!1?l=X(l,h,s):(P=s[l+1],P!==void 0&&(!/^(-|--)[^-]/.test(P)||P.match(y))&&!R(h,c.bools)&&!R(h,c.counts)||/^(true|false)$/.test(P)?(_(h,P),l++):_(h,ne(h))))}else if(d.match(/^-[0-9]$/)&&d.match(y)&&R(d.slice(1),c.bools))h=d.slice(1),_(h,ne(h));else if(d==="--"){I=s.slice(l+1);break}else if(a["halt-at-non-option"]){I=s.slice(l);break}else U(d)}Ot(x,!0),Ot(x,!1),Vn(x),Xn(),At(x,c.aliases,u,!0),Kn(x),a["set-placeholder-key"]&&qn(x),Object.keys(c.counts).forEach(function(l){fe(x,l.split("."))||_(l,0)}),m&&I.length&&(x[C]=[]),I.forEach(function(l){x[C].push(l)}),a["camel-case-expansion"]&&a["strip-dashed"]&&Object.keys(x).filter(l=>l!=="--"&&l.includes("-")).forEach(l=>{delete x[l]}),a["strip-aliased"]&&[].concat(...Object.keys(o).map(l=>o[l])).forEach(l=>{a["camel-case-expansion"]&&l.includes("-")&&delete x[l.split(".").map(d=>pe(d)).join(".")],delete x[l]});function U(l){let d=be("_",l);(typeof d=="string"||typeof d=="number")&&x._.push(d)}function X(l,d,L,b){let h,S=R(d,c.nargs);if(S=typeof S!="number"||isNaN(S)?1:S,S===0)return Y(b)||(E=Error(p("Argument unexpected for: %s",d))),_(d,ne(d)),l;let w=Y(b)?0:1;if(a["nargs-eats-options"])L.length-(l+1)+w<S&&(E=Error(p("Not enough arguments following: %s",d))),w=S;else{for(h=l+1;h<L.length&&(!L[h].match(/^-[^0-9]/)||L[h].match(y)||ye(L[h]));h++)w++;w<S&&(E=Error(p("Not enough arguments following: %s",d)))}let P=Math.min(w,S);for(!Y(b)&&P>0&&(_(d,b),P--),h=l+1;h<P+l+1;h++)_(d,L[h]);return l+P}function Q(l,d,L,b){let h=[],S=b||L[l+1],w=R(d,c.nargs);if(R(d,c.bools)&&!/^(true|false)$/.test(S))h.push(!0);else if(Y(S)||Y(b)&&/^-/.test(S)&&!y.test(S)&&!ye(S)){if(u[d]!==void 0){let P=u[d];h=Array.isArray(P)?P:[P]}}else{Y(b)||h.push(Ne(d,b,!0));for(let P=l+1;P<L.length&&!(!a["greedy-arrays"]&&h.length>0||w&&typeof w=="number"&&h.length>=w||(S=L[P],/^-/.test(S)&&!y.test(S)&&!ye(S)));P++)l=P,h.push(Ne(d,S,i))}return typeof w=="number"&&(w&&h.length<w||isNaN(w)&&h.length===0)&&(E=Error(p("Not enough arguments following: %s",d))),_(d,h),l}function _(l,d,L=i){if(/-/.test(l)&&a["camel-case-expansion"]){let S=l.split(".").map(function(w){return pe(w)}).join(".");wt(l,S)}let b=Ne(l,d,L),h=l.split(".");he(x,h,b),c.aliases[l]&&c.aliases[l].forEach(function(S){let w=S.split(".");he(x,w,b)}),h.length>1&&a["dot-notation"]&&(c.aliases[h[0]]||[]).forEach(function(S){let w=S.split("."),P=[].concat(h);P.shift(),w=w.concat(P),(c.aliases[l]||[]).includes(w.join("."))||he(x,w,b)}),R(l,c.normalize)&&!R(l,c.arrays)&&[l].concat(c.aliases[l]||[]).forEach(function(w){Object.defineProperty(B,w,{enumerable:!0,get(){return d},set(P){d=typeof P=="string"?V.normalize(P):P}})})}function wt(l,d){c.aliases[l]&&c.aliases[l].length||(c.aliases[l]=[d],O[d]=!0),c.aliases[d]&&c.aliases[d].length||wt(d,l)}function Ne(l,d,L){L&&(d=gs(d)),(R(l,c.bools)||R(l,c.counts))&&typeof d=="string"&&(d=d==="true");let b=Array.isArray(d)?d.map(function(h){return be(l,h)}):be(l,d);return R(l,c.counts)&&(Y(b)||typeof b=="boolean")&&(b=Te()),R(l,c.normalize)&&R(l,c.arrays)&&(Array.isArray(d)?b=d.map(h=>V.normalize(h)):b=V.normalize(d)),b}function be(l,d){return!a["parse-positional-numbers"]&&l==="_"||!R(l,c.strings)&&!R(l,c.bools)&&!Array.isArray(d)&&(Gr(d)&&a["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${d}`)))||!Y(d)&&R(l,c.numbers))&&(d=Number(d)),d}function Vn(l){let d=Object.create(null);At(d,c.aliases,u),Object.keys(c.configs).forEach(function(L){let b=l[L]||d[L];if(b)try{let h=null,S=V.resolve(V.cwd(),b),w=c.configs[L];if(typeof w=="function"){try{h=w(S)}catch(P){h=P}if(h instanceof Error){E=h;return}}else h=V.require(S);_e(h)}catch(h){h.name==="PermissionDenied"?E=h:l[L]&&(E=Error(p("Invalid JSON config file: %s",b)))}})}function _e(l,d){Object.keys(l).forEach(function(L){let b=l[L],h=d?d+"."+L:L;typeof b=="object"&&b!==null&&!Array.isArray(b)&&a["dot-notation"]?_e(b,h):(!fe(x,h.split("."))||R(h,c.arrays)&&a["combine-arrays"])&&_(h,b)})}function Xn(){typeof f<"u"&&f.forEach(function(l){_e(l)})}function Ot(l,d){if(typeof g>"u")return;let L=typeof g=="string"?g:"",b=V.env();Object.keys(b).forEach(function(h){if(L===""||h.lastIndexOf(L,0)===0){let S=h.split("__").map(function(w,P){return P===0&&(w=w.substring(L.length)),pe(w)});(d&&c.configs[S.join(".")]||!d)&&!fe(l,S)&&_(S.join("."),b[h])}})}function Kn(l){let d,L=new Set;Object.keys(l).forEach(function(b){if(!L.has(b)&&(d=R(b,c.coercions),typeof d=="function"))try{let h=be(b,d(l[b]));[].concat(c.aliases[b]||[],b).forEach(S=>{L.add(S),l[S]=h})}catch(h){E=h}})}function qn(l){return c.keys.forEach(d=>{~d.indexOf(".")||typeof l[d]>"u"&&(l[d]=void 0)}),l}function At(l,d,L,b=!1){Object.keys(L).forEach(function(h){fe(l,h.split("."))||(he(l,h.split("."),L[h]),b&&(v[h]=!0),(d[h]||[]).forEach(function(S){fe(l,S.split("."))||he(l,S.split("."),L[h])}))})}function fe(l,d){let L=l;a["dot-notation"]||(d=[d.join(".")]),d.slice(0,-1).forEach(function(h){L=L[h]||{}});let b=d[d.length-1];return typeof L!="object"?!1:b in L}function he(l,d,L){let b=l;a["dot-notation"]||(d=[d.join(".")]),d.slice(0,-1).forEach(function(T){T=Dt(T),typeof b=="object"&&b[T]===void 0&&(b[T]={}),typeof b[T]!="object"||Array.isArray(b[T])?(Array.isArray(b[T])?b[T].push({}):b[T]=[b[T],{}],b=b[T][b[T].length-1]):b=b[T]});let h=Dt(d[d.length-1]),S=R(d.join("."),c.arrays),w=Array.isArray(L),P=a["duplicate-arguments-array"];!P&&R(h,c.nargs)&&(P=!0,(!Y(b[h])&&c.nargs[h]===1||Array.isArray(b[h])&&b[h].length===c.nargs[h])&&(b[h]=void 0)),L===Te()?b[h]=Te(b[h]):Array.isArray(b[h])?P&&S&&w?b[h]=a["flatten-duplicate-arrays"]?b[h].concat(L):(Array.isArray(b[h][0])?b[h]:[b[h]]).concat([L]):!P&&!!S==!!w?b[h]=L:b[h]=b[h].concat([L]):b[h]===void 0&&S?b[h]=w?L:[L]:P&&!(b[h]===void 0||R(h,c.counts)||R(h,c.bools))?b[h]=[b[h],L]:b[h]=L}function Jn(...l){l.forEach(function(d){Object.keys(d||{}).forEach(function(L){c.aliases[L]||(c.aliases[L]=[].concat(o[L]||[]),c.aliases[L].concat(L).forEach(function(b){if(/-/.test(b)&&a["camel-case-expansion"]){let h=pe(b);h!==L&&c.aliases[L].indexOf(h)===-1&&(c.aliases[L].push(h),O[h]=!0)}}),c.aliases[L].concat(L).forEach(function(b){if(b.length>1&&/[A-Z]/.test(b)&&a["camel-case-expansion"]){let h=jr(b,"-");h!==L&&c.aliases[L].indexOf(h)===-1&&(c.aliases[L].push(h),O[h]=!0)}}),c.aliases[L].forEach(function(b){c.aliases[b]=[L].concat(c.aliases[L].filter(function(h){return b!==h}))}))})})}function R(l,d){let L=[].concat(c.aliases[l]||[],l),b=Object.keys(d),h=L.find(S=>b.includes(S));return h?d[h]:!1}function St(l){let d=Object.keys(c);return[].concat(d.map(b=>c[b])).some(function(b){return Array.isArray(b)?b.includes(l):b[l]})}function Zn(l,...d){return[].concat(...d).some(function(b){let h=l.match(b);return h&&St(h[1])})}function Qn(l){if(l.match(y)||!l.match(/^-[^-]+/))return!1;let d=!0,L,b=l.slice(1).split("");for(let h=0;h<b.length;h++){if(L=l.slice(h+2),!St(b[h])){d=!1;break}if(b[h+1]&&b[h+1]==="="||L==="-"||/[A-Za-z]/.test(b[h])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(L)||b[h+1]&&b[h+1].match(/\W/))break}return d}function ye(l){return a["unknown-options-as-args"]&&es(l)}function es(l){return l=l.replace(/^-{3,}/,"--"),l.match(y)||Qn(l)?!1:!Zn(l,/^-+([^=]+?)=[\s\S]*$/,A,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function ne(l){return!R(l,c.bools)&&!R(l,c.counts)&&`${l}`in u?u[l]:ts(rs(l))}function ts(l){return{[k.BOOLEAN]:!0,[k.STRING]:"",[k.NUMBER]:void 0,[k.ARRAY]:[]}[l]}function rs(l){let d=k.BOOLEAN;return R(l,c.strings)?d=k.STRING:R(l,c.numbers)?d=k.NUMBER:R(l,c.bools)?d=k.BOOLEAN:R(l,c.arrays)&&(d=k.ARRAY),d}function Y(l){return l===void 0}function ns(){Object.keys(c.counts).find(l=>R(l,c.arrays)?(E=Error(p("Invalid configuration: %s, opts.count excludes opts.array.",l)),!0):R(l,c.nargs)?(E=Error(p("Invalid configuration: %s, opts.count excludes opts.narg.",l)),!0):!1)}return{aliases:Object.assign({},c.aliases),argv:Object.assign(B,x),configuration:a,defaulted:Object.assign({},v),error:E,newAliases:Object.assign({},O)}}};function ds(e){let t=[],r=Object.create(null),n=!0;for(Object.keys(e).forEach(function(s){t.push([].concat(e[s],s))});n;){n=!1;for(let s=0;s<t.length;s++)for(let i=s+1;i<t.length;i++)if(t[s].filter(function(a){return t[i].indexOf(a)!==-1}).length){t[s]=t[s].concat(t[i]),t.splice(i,1),n=!0;break}}return t.forEach(function(s){s=s.filter(function(o,a,u){return u.indexOf(o)===a});let i=s.pop();i!==void 0&&typeof i=="string"&&(r[i]=s)}),r}function Te(e){return e!==void 0?e+1:1}function Dt(e){return e==="__proto__"?"___proto___":e}function gs(e){return typeof e=="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}var Fe,je,Ge,Tt=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,Ft=(je=(Fe=process==null?void 0:process.versions)===null||Fe===void 0?void 0:Fe.node)!==null&&je!==void 0?je:(Ge=process==null?void 0:process.version)===null||Ge===void 0?void 0:Ge.slice(1);if(Ft&&Number(Ft.match(/^([^.]+)/)[1])<Tt)throw Error(`yargs parser supports a minimum Node.js version of ${Tt}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);var ms=process?process.env:{},Mr=new Xe({cwd:process.cwd,env:()=>ms,format:us,normalize:cs,resolve:ls,require:e=>{if(typeof De<"u")return De(e);if(e.match(/\.json$/))return JSON.parse(fs(e,"utf8"));throw Error("only .json config files are supported in ESM")}}),le=function(t,r){return Mr.parse(t.slice(),r).argv};le.detailed=function(e,t){return Mr.parse(e.slice(),t)};le.camelCase=pe;le.decamelize=jr;le.looksLikeNumber=Gr;var Br=e=>typeof e=="object"&&e!==null,jt=e=>Br(e)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Date),bs=Symbol("mapObjectSkip"),Ke=(e,t,r,n=new WeakMap)=>{if(r={deep:!1,target:{},...r},n.has(e))return n.get(e);n.set(e,r.target);let{target:s}=r;delete r.target;let i=o=>o.map(a=>jt(a)?Ke(a,t,r,n):a);if(Array.isArray(e))return i(e);for(let[o,a]of Object.entries(e)){let u=t(o,a,e);if(u===bs)continue;let[f,g,{shouldRecurse:m=!0}={}]=u;f!=="__proto__"&&(r.deep&&m&&jt(g)&&(g=Array.isArray(g)?i(g):Ke(g,t,r,n)),s[f]=g)}return s};function Gt(e,t,r){if(!Br(e))throw new TypeError(`Expected an object, got \`${e}\` (${typeof e})`);return Ke(e,t,r)}var ys=/[\p{Lu}]/u,vs=/[\p{Ll}]/u,Mt=/^[\p{Lu}](?![\p{Lu}])/gu,Ur=/([\p{Alpha}\p{N}_]|$)/u,lt=/[_.\- ]+/,Es=new RegExp("^"+lt.source),Bt=new RegExp(lt.source+Ur.source,"gu"),Ut=new RegExp("\\d+"+Ur.source,"gu"),Ls=(e,t,r,n)=>{let s=!1,i=!1,o=!1,a=!1;for(let u=0;u<e.length;u++){let f=e[u];a=u>2?e[u-3]==="-":!0,s&&ys.test(f)?(e=e.slice(0,u)+"-"+e.slice(u),s=!1,o=i,i=!0,u++):i&&o&&vs.test(f)&&(!a||n)?(e=e.slice(0,u-1)+"-"+e.slice(u-1),o=i,i=!1,s=!0):(s=t(f)===f&&r(f)!==f,o=i,i=r(f)===f&&t(f)!==f)}return e},Cs=(e,t)=>(Mt.lastIndex=0,e.replaceAll(Mt,r=>t(r))),ws=(e,t)=>(Bt.lastIndex=0,Ut.lastIndex=0,e.replaceAll(Ut,(r,n,s)=>["_","-"].includes(e.charAt(s+r.length))?r:t(r)).replaceAll(Bt,(r,n)=>t(n)));function Os(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(i=>i.trim()).filter(i=>i.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?i=>i.toLowerCase():i=>i.toLocaleLowerCase(t.locale),n=t.locale===!1?i=>i.toUpperCase():i=>i.toLocaleUpperCase(t.locale);return e.length===1?lt.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=Ls(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(Es,""),e=t.preserveConsecutiveUppercase?Cs(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),ws(e,n))}var Ae=class extends Map{constructor(t={}){if(super(),!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof t.maxAge=="number"&&t.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=t.maxSize,this.maxAge=t.maxAge||Number.POSITIVE_INFINITY,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(t){if(typeof this.onEviction=="function")for(let[r,n]of t)this.onEviction(r,n.value)}_deleteIfExpired(t,r){return typeof r.expiry=="number"&&r.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(t,r.value),this.delete(t)):!1}_getOrDeleteIfExpired(t,r){if(this._deleteIfExpired(t,r)===!1)return r.value}_getItemValue(t,r){return r.expiry?this._getOrDeleteIfExpired(t,r):r.value}_peek(t,r){let n=r.get(t);return this._getItemValue(t,n)}_set(t,r){this.cache.set(t,r),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(t,r){this.oldCache.delete(t),this._set(t,r)}*_entriesAscending(){for(let t of this.oldCache){let[r,n]=t;this.cache.has(r)||this._deleteIfExpired(r,n)===!1&&(yield t)}for(let t of this.cache){let[r,n]=t;this._deleteIfExpired(r,n)===!1&&(yield t)}}get(t){if(this.cache.has(t)){let r=this.cache.get(t);return this._getItemValue(t,r)}if(this.oldCache.has(t)){let r=this.oldCache.get(t);if(this._deleteIfExpired(t,r)===!1)return this._moveToRecent(t,r),r.value}}set(t,r,{maxAge:n=this.maxAge}={}){let s=typeof n=="number"&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(t)?this.cache.set(t,{value:r,expiry:s}):this._set(t,{value:r,expiry:s}),this}has(t){return this.cache.has(t)?!this._deleteIfExpired(t,this.cache.get(t)):this.oldCache.has(t)?!this._deleteIfExpired(t,this.oldCache.get(t)):!1}peek(t){if(this.cache.has(t))return this._peek(t,this.cache);if(this.oldCache.has(t))return this._peek(t,this.oldCache)}delete(t){let r=this.cache.delete(t);return r&&this._size--,this.oldCache.delete(t)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(t){if(!(t&&t>0))throw new TypeError("`maxSize` must be a number greater than 0");let r=[...this._entriesAscending()],n=r.length-t;n<0?(this.cache=new Map(r),this.oldCache=new Map,this._size=r.length):(n>0&&this._emitEvictions(r.slice(0,n)),this.oldCache=new Map(r.slice(n)),this.cache=new Map,this._size=0),this.maxSize=t}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of this.cache){let[r,n]=t;this._deleteIfExpired(r,n)===!1&&(yield[r,n.value])}for(let t of this.oldCache){let[r,n]=t;this.cache.has(r)||this._deleteIfExpired(r,n)===!1&&(yield[r,n.value])}}*entriesDescending(){let t=[...this.cache];for(let r=t.length-1;r>=0;--r){let n=t[r],[s,i]=n;this._deleteIfExpired(s,i)===!1&&(yield[s,i.value])}t=[...this.oldCache];for(let r=t.length-1;r>=0;--r){let n=t[r],[s,i]=n;this.cache.has(s)||this._deleteIfExpired(s,i)===!1&&(yield[s,i.value])}}*entriesAscending(){for(let[t,r]of this._entriesAscending())yield[t,r.value]}get size(){if(!this._size)return this.oldCache.size;let t=0;for(let r of this.oldCache.keys())this.cache.has(r)||t++;return Math.min(this._size+t,this.maxSize)}entries(){return this.entriesAscending()}forEach(t,r=this){for(let[n,s]of this.entriesAscending())t.call(r,s,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}},As=(e,t)=>e.some(r=>typeof r=="string"?r===t:(r.lastIndex=0,r.test(t))),Me=new Ae({maxSize:1e5}),kt=e=>typeof e=="object"&&e!==null&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Date),Wt=(e,t={})=>{if(!kt(e))return e;let{exclude:r,pascalCase:n=!1,stopPaths:s,deep:i=!1,preserveConsecutiveUppercase:o=!1}=t,a=new Set(s),u=f=>(g,m)=>{if(i&&kt(m)){let C=f===void 0?g:`${f}.${g}`;a.has(C)||(m=Gt(m,u(C)))}if(!(r&&As(r,g))){let C=n?`${g}_`:g;if(Me.has(C))g=Me.get(C);else{let O=Os(g,{pascalCase:n,locale:!1,preserveConsecutiveUppercase:o});g.length<100&&Me.set(C,O),g=O}}return[g,m]};return Gt(e,u(void 0))};function kr(e,t){return Array.isArray(e)?Object.keys(e).map(r=>Wt(e[r],t)):Wt(e,t)}function Wr(e){let t=0,r=e.length;for(;t<r&&(e[t]==="\r"||e[t]===` `);)t++;for(;r>t&&(e[r-1]==="\r"||e[r-1]===` `);)r--;return t>0||r<e.length?e.slice(t,r):e}function Re(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ss=e=>{let t=e.match(/^[ \t]*(?=\S)/gm);return t?t.reduce((r,n)=>Math.min(r,n.length),1/0):0},$s=Re(Ss);function Ps(e){let t=$s(e);if(t===0)return e;let r=new RegExp(`^[ \\t]{${t}}`,"gm");return e.replace(r,"")}function Rs(e,t=1,r={}){let{indent:n=" ",includeEmptyLines:s=!1}=r;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(t<0)throw new RangeError(`Expected \`count\` to be at least 0, got \`${t}\``);if(typeof n!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof n}\``);if(t===0)return e;let i=s?/^/gm:/^(?!\s*$)/gm;return e.replace(i,n.repeat(t))}function ft(e,t=0,r={}){return Rs(Ps(e),t,r)}var Is=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{},zr=Is,xs="2.0.0",Hr=256,Ns=Number.MAX_SAFE_INTEGER||9007199254740991,_s=16,Ds=Hr-6,Ts=["major","premajor","minor","preminor","patch","prepatch","prerelease"],Yr={MAX_LENGTH:Hr,MAX_SAFE_COMPONENT_LENGTH:_s,MAX_SAFE_BUILD_LENGTH:Ds,MAX_SAFE_INTEGER:Ns,RELEASE_TYPES:Ts,SEMVER_SPEC_VERSION:xs,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},qe={exports:{}};(function(e,t){let{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:s}=Yr,i=zr;t=e.exports={};let o=t.re=[],a=t.safeRe=[],u=t.src=[],f=t.t={},g=0,m="[a-zA-Z0-9-]",C=[["\\s",1],["\\d",s],[m,n]],O=p=>{for(let[c,y]of C)p=p.split(`${c}*`).join(`${c}{0,${y}}`).split(`${c}+`).join(`${c}{1,${y}}`);return p},v=(p,c,y)=>{let A=O(c),E=g++;i(p,E,c),f[p]=E,u[E]=c,o[E]=new RegExp(c,y?"g":void 0),a[E]=new RegExp(A,y?"g":void 0)};v("NUMERICIDENTIFIER","0|[1-9]\\d*"),v("NUMERICIDENTIFIERLOOSE","\\d+"),v("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),v("MAINVERSION",`(${u[f.NUMERICIDENTIFIER]})\\.(${u[f.NUMERICIDENTIFIER]})\\.(${u[f.NUMERICIDENTIFIER]})`),v("MAINVERSIONLOOSE",`(${u[f.NUMERICIDENTIFIERLOOSE]})\\.(${u[f.NUMERICIDENTIFIERLOOSE]})\\.(${u[f.NUMERICIDENTIFIERLOOSE]})`),v("PRERELEASEIDENTIFIER",`(?:${u[f.NUMERICIDENTIFIER]}|${u[f.NONNUMERICIDENTIFIER]})`),v("PRERELEASEIDENTIFIERLOOSE",`(?:${u[f.NUMERICIDENTIFIERLOOSE]}|${u[f.NONNUMERICIDENTIFIER]})`),v("PRERELEASE",`(?:-(${u[f.PRERELEASEIDENTIFIER]}(?:\\.${u[f.PRERELEASEIDENTIFIER]})*))`),v("PRERELEASELOOSE",`(?:-?(${u[f.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[f.PRERELEASEIDENTIFIERLOOSE]})*))`),v("BUILDIDENTIFIER",`${m}+`),v("BUILD",`(?:\\+(${u[f.BUILDIDENTIFIER]}(?:\\.${u[f.BUILDIDENTIFIER]})*))`),v("FULLPLAIN",`v?${u[f.MAINVERSION]}${u[f.PRERELEASE]}?${u[f.BUILD]}?`),v("FULL",`^${u[f.FULLPLAIN]}$`),v("LOOSEPLAIN",`[v=\\s]*${u[f.MAINVERSIONLOOSE]}${u[f.PRERELEASELOOSE]}?${u[f.BUILD]}?`),v("LOOSE",`^${u[f.LOOSEPLAIN]}$`),v("GTLT","((?:<|>)?=?)"),v("XRANGEIDENTIFIERLOOSE",`${u[f.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),v("XRANGEIDENTIFIER",`${u[f.NUMERICIDENTIFIER]}|x|X|\\*`),v("XRANGEPLAIN",`[v=\\s]*(${u[f.XRANGEIDENTIFIER]})(?:\\.(${u[f.XRANGEIDENTIFIER]})(?:\\.(${u[f.XRANGEIDENTIFIER]})(?:${u[f.PRERELEASE]})?${u[f.BUILD]}?)?)?`),v("XRANGEPLAINLOOSE",`[v=\\s]*(${u[f.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[f.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[f.XRANGEIDENTIFIERLOOSE]})(?:${u[f.PRERELEASELOOSE]})?${u[f.BUILD]}?)?)?`),v("XRANGE",`^${u[f.GTLT]}\\s*${u[f.XRANGEPLAIN]}$`),v("XRANGELOOSE",`^${u[f.GTLT]}\\s*${u[f.XRANGEPLAINLOOSE]}$`),v("COERCEPLAIN",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?`),v("COERCE",`${u[f.COERCEPLAIN]}(?:$|[^\\d])`),v("COERCEFULL",u[f.COERCEPLAIN]+`(?:${u[f.PRERELEASE]})?(?:${u[f.BUILD]})?(?:$|[^\\d])`),v("COERCERTL",u[f.COERCE],!0),v("COERCERTLFULL",u[f.COERCEFULL],!0),v("LONETILDE","(?:~>?)"),v("TILDETRIM",`(\\s*)${u[f.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",v("TILDE",`^${u[f.LONETILDE]}${u[f.XRANGEPLAIN]}$`),v("TILDELOOSE",`^${u[f.LONETILDE]}${u[f.XRANGEPLAINLOOSE]}$`),v("LONECARET","(?:\\^)"),v("CARETTRIM",`(\\s*)${u[f.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",v("CARET",`^${u[f.LONECARET]}${u[f.XRANGEPLAIN]}$`),v("CARETLOOSE",`^${u[f.LONECARET]}${u[f.XRANGEPLAINLOOSE]}$`),v("COMPARATORLOOSE",`^${u[f.GTLT]}\\s*(${u[f.LOOSEPLAIN]})$|^$`),v("COMPARATOR",`^${u[f.GTLT]}\\s*(${u[f.FULLPLAIN]})$|^$`),v("COMPARATORTRIM",`(\\s*)${u[f.GTLT]}\\s*(${u[f.LOOSEPLAIN]}|${u[f.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",v("HYPHENRANGE",`^\\s*(${u[f.XRANGEPLAIN]})\\s+-\\s+(${u[f.XRANGEPLAIN]})\\s*$`),v("HYPHENRANGELOOSE",`^\\s*(${u[f.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[f.XRANGEPLAINLOOSE]})\\s*$`),v("STAR","(<|>)?=?\\s*\\*"),v("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),v("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(qe,qe.exports);var Fs=qe.exports,js=Object.freeze({loose:!0}),Gs=Object.freeze({}),Ms=e=>e?typeof e!="object"?js:e:Gs,Bs=Ms,zt=/^[0-9]+$/,Vr=(e,t)=>{let r=zt.test(e),n=zt.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},Us=(e,t)=>Vr(t,e),ks={compareIdentifiers:Vr,rcompareIdentifiers:Us},ve=zr,{MAX_LENGTH:Ht,MAX_SAFE_INTEGER:Ee}=Yr,{safeRe:Yt,t:Vt}=Fs,Ws=Bs,{compareIdentifiers:se}=ks,zs=class H{constructor(t,r){if(r=Ws(r),t instanceof H){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Ht)throw new TypeError(`version is longer than ${Ht} characters`);ve("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?Yt[Vt.LOOSE]:Yt[Vt.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>Ee||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Ee||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Ee||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){let i=+s;if(i>=0&&i<Ee)return i}return s}):this.prerelease=[],this.build=n[5]?n[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(ve("SemVer.compare",this.version,this.options,t),!(t instanceof H)){if(typeof t=="string"&&t===this.version)return 0;t=new H(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof H||(t=new H(t,this.options)),se(this.major,t.major)||se(this.minor,t.minor)||se(this.patch,t.patch)}comparePre(t){if(t instanceof H||(t=new H(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 n=this.prerelease[r],s=t.prerelease[r];if(ve("prerelease compare",r,n,s),n===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(n===void 0)return-1;if(n===s)continue;return se(n,s)}while(++r)}compareBuild(t){t instanceof H||(t=new H(t,this.options));let r=0;do{let n=this.build[r],s=t.build[r];if(ve("prerelease compare",r,n,s),n===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(n===void 0)return-1;if(n===s)continue;return se(n,s)}while(++r)}inc(t,r,n){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);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 s=Number(n)?1:0;if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[s];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(s)}}if(r){let i=[r,s];n===!1&&(i=[r]),se(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}},Hs=zs,Xt=Hs,Ys=(e,t,r=!1)=>{if(e instanceof Xt)return e;try{return new Xt(e,t)}catch(n){if(!r)return null;throw n}},Xr=Ys,Vs=Xr,Xs=(e,t)=>{let r=Vs(e,t);return r?r.version:null},Ks=Xs,qs=Xr,Js=(e,t)=>{let r=qs(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null},Zs=Js,Kr=["0BSD","AAL","ADSL","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AGPL-1.0-only","AGPL-1.0-or-later","AGPL-3.0-only","AGPL-3.0-or-later","AMDPLPA","AML","AMPAS","ANTLR-PD","ANTLR-PD-fallback","APAFML","APL-1.0","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","ASWF-Digital-Assets-1.0","ASWF-Digital-Assets-1.1","Abstyles","AdaCore-doc","Adobe-2006","Adobe-Glyph","Adobe-Utopia","Afmparse","Aladdin","Apache-1.0","Apache-1.1","Apache-2.0","App-s2p","Arphic-1999","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","BSD-1-Clause","BSD-2-Clause","BSD-2-Clause-Patent","BSD-2-Clause-Views","BSD-3-Clause","BSD-3-Clause-Attribution","BSD-3-Clause-Clear","BSD-3-Clause-HP","BSD-3-Clause-LBNL","BSD-3-Clause-Modification","BSD-3-Clause-No-Military-License","BSD-3-Clause-No-Nuclear-License","BSD-3-Clause-No-Nuclear-License-2014","BSD-3-Clause-No-Nuclear-Warranty","BSD-3-Clause-Open-MPI","BSD-3-Clause-Sun","BSD-3-Clause-flex","BSD-4-Clause","BSD-4-Clause-Shortened","BSD-4-Clause-UC","BSD-4.3RENO","BSD-4.3TAHOE","BSD-Advertising-Acknowledgement","BSD-Attribution-HPND-disclaimer","BSD-Inferno-Nettverk","BSD-Protection","BSD-Source-Code","BSD-Systemics","BSL-1.0","BUSL-1.1","Baekmuk","Bahyph","Barr","Beerware","BitTorrent-1.0","BitTorrent-1.1","Bitstream-Charter","Bitstream-Vera","BlueOak-1.0.0","Boehm-GC","Borceux","Brian-Gladman-3-Clause","C-UDA-1.0","CAL-1.0","CAL-1.0-Combined-Work-Exception","CATOSL-1.1","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-2.5-AU","CC-BY-3.0","CC-BY-3.0-AT","CC-BY-3.0-DE","CC-BY-3.0-IGO","CC-BY-3.0-NL","CC-BY-3.0-US","CC-BY-4.0","CC-BY-NC-1.0","CC-BY-NC-2.0","CC-BY-NC-2.5","CC-BY-NC-3.0","CC-BY-NC-3.0-DE","CC-BY-NC-4.0","CC-BY-NC-ND-1.0","CC-BY-NC-ND-2.0","CC-BY-NC-ND-2.5","CC-BY-NC-ND-3.0","CC-BY-NC-ND-3.0-DE","CC-BY-NC-ND-3.0-IGO","CC-BY-NC-ND-4.0","CC-BY-NC-SA-1.0","CC-BY-NC-SA-2.0","CC-BY-NC-SA-2.0-DE","CC-BY-NC-SA-2.0-FR","CC-BY-NC-SA-2.0-UK","CC-BY-NC-SA-2.5","CC-BY-NC-SA-3.0","CC-BY-NC-SA-3.0-DE","CC-BY-NC-SA-3.0-IGO","CC-BY-NC-SA-4.0","CC-BY-ND-1.0","CC-BY-ND-2.0","CC-BY-ND-2.5","CC-BY-ND-3.0","CC-BY-ND-3.0-DE","CC-BY-ND-4.0","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.0-UK","CC-BY-SA-2.1-JP","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-3.0-AT","CC-BY-SA-3.0-DE","CC-BY-SA-3.0-IGO","CC-BY-SA-4.0","CC-PDDC","CC0-1.0","CDDL-1.0","CDDL-1.1","CDL-1.0","CDLA-Permissive-1.0","CDLA-Permissive-2.0","CDLA-Sharing-1.0","CECILL-1.0","CECILL-1.1","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","CERN-OHL-1.1","CERN-OHL-1.2","CERN-OHL-P-2.0","CERN-OHL-S-2.0","CERN-OHL-W-2.0","CFITSIO","CMU-Mach","CNRI-Jython","CNRI-Python","CNRI-Python-GPL-Compatible","COIL-1.0","CPAL-1.0","CPL-1.0","CPOL-1.02","CUA-OPL-1.0","Caldera","ClArtistic","Clips","Community-Spec-1.0","Condor-1.1","Cornell-Lossless-JPEG","Cronyx","Crossword","CrystalStacker","Cube","D-FSL-1.0","DL-DE-BY-2.0","DL-DE-ZERO-2.0","DOC","DRL-1.0","DSDP","Dotseqn","ECL-1.0","ECL-2.0","EFL-1.0","EFL-2.0","EPICS","EPL-1.0","EPL-2.0","EUDatagrid","EUPL-1.0","EUPL-1.1","EUPL-1.2","Elastic-2.0","Entessa","ErlPL-1.1","Eurosym","FBM","FDK-AAC","FSFAP","FSFUL","FSFULLR","FSFULLRWD","FTL","Fair","Ferguson-Twofish","Frameworx-1.0","FreeBSD-DOC","FreeImage","Furuseth","GD","GFDL-1.1-invariants-only","GFDL-1.1-invariants-or-later","GFDL-1.1-no-invariants-only","GFDL-1.1-no-invariants-or-later","GFDL-1.1-only","GFDL-1.1-or-later","GFDL-1.2-invariants-only","GFDL-1.2-invariants-or-later","GFDL-1.2-no-invariants-only","GFDL-1.2-no-invariants-or-later","GFDL-1.2-only","GFDL-1.2-or-later","GFDL-1.3-invariants-only","GFDL-1.3-invariants-or-later","GFDL-1.3-no-invariants-only","GFDL-1.3-no-invariants-or-later","GFDL-1.3-only","GFDL-1.3-or-later","GL2PS","GLWTPL","GPL-1.0-only","GPL-1.0-or-later","GPL-2.0-only","GPL-2.0-or-later","GPL-3.0-only","GPL-3.0-or-later","Giftware","Glide","Glulxe","Graphics-Gems","HP-1986","HP-1989","HPND","HPND-DEC","HPND-Markus-Kuhn","HPND-Pbmplus","HPND-UC","HPND-doc","HPND-doc-sell","HPND-export-US","HPND-export-US-modify","HPND-sell-regexpr","HPND-sell-variant","HPND-sell-variant-MIT-disclaimer","HTMLTIDY","HaskellReport","Hippocratic-2.1","IBM-pibs","ICU","IEC-Code-Components-EULA","IJG","IJG-short","IPA","IPL-1.0","ISC","ImageMagick","Imlib2","Info-ZIP","Inner-Net-2.0","Intel","Intel-ACPI","Interbase-1.0","JPL-image","JPNIC","JSON","Jam","JasPer-2.0","Kastrup","Kazlib","Knuth-CTAN","LAL-1.2","LAL-1.3","LGPL-2.0-only","LGPL-2.0-or-later","LGPL-2.1-only","LGPL-2.1-or-later","LGPL-3.0-only","LGPL-3.0-or-later","LGPLLR","LOOP","LPL-1.0","LPL-1.02","LPPL-1.0","LPPL-1.1","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","LZMA-SDK-9.11-to-9.20","LZMA-SDK-9.22","Latex2e","Latex2e-translated-notice","Leptonica","LiLiQ-P-1.1","LiLiQ-R-1.1","LiLiQ-Rplus-1.1","Libpng","Linux-OpenIB","Linux-man-pages-1-para","Linux-man-pages-copyleft","Linux-man-pages-copyleft-2-para","Linux-man-pages-copyleft-var","Lucida-Bitmap-Fonts","MIT","MIT-0","MIT-CMU","MIT-Festival","MIT-Modern-Variant","MIT-Wu","MIT-advertising","MIT-enna","MIT-feh","MIT-open-group","MIT-testregex","MITNFA","MMIXware","MPEG-SSG","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","MS-LPL","MS-PL","MS-RL","MTLL","MakeIndex","Martin-Birgmeier","McPhee-slideshow","Minpack","MirOS","Motosoto","MulanPSL-1.0","MulanPSL-2.0","Multics","Mup","NAIST-2003","NASA-1.3","NBPL-1.0","NCGL-UK-2.0","NCSA","NGPL","NICTA-1.0","NIST-PD","NIST-PD-fallback","NIST-Software","NLOD-1.0","NLOD-2.0","NLPL","NOSL","NPL-1.0","NPL-1.1","NPOSL-3.0","NRL","NTP","NTP-0","Naumen","Net-SNMP","NetCDF","Newsletr","Nokia","Noweb","O-UDA-1.0","OCCT-PL","OCLC-2.0","ODC-By-1.0","ODbL-1.0","OFFIS","OFL-1.0","OFL-1.0-RFN","OFL-1.0-no-RFN","OFL-1.1","OFL-1.1-RFN","OFL-1.1-no-RFN","OGC-1.0","OGDL-Taiwan-1.0","OGL-Canada-2.0","OGL-UK-1.0","OGL-UK-2.0","OGL-UK-3.0","OGTSL","OLDAP-1.1","OLDAP-1.2","OLDAP-1.3","OLDAP-1.4","OLDAP-2.0","OLDAP-2.0.1","OLDAP-2.1","OLDAP-2.2","OLDAP-2.2.1","OLDAP-2.2.2","OLDAP-2.3","OLDAP-2.4","OLDAP-2.5","OLDAP-2.6","OLDAP-2.7","OLDAP-2.8","OLFL-1.3","OML","OPL-1.0","OPL-UK-3.0","OPUBL-1.0","OSET-PL-2.1","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenPBS-2.3","OpenSSL","PADL","PDDL-1.0","PHP-3.0","PHP-3.01","PSF-2.0","Parity-6.0.0","Parity-7.0.0","Plexus","PolyForm-Noncommercial-1.0.0","PolyForm-Small-Business-1.0.0","PostgreSQL","Python-2.0","Python-2.0.1","QPL-1.0","QPL-1.0-INRIA-2004","Qhull","RHeCos-1.1","RPL-1.1","RPL-1.5","RPSL-1.0","RSA-MD","RSCPL","Rdisc","Ruby","SAX-PD","SCEA","SGI-B-1.0","SGI-B-1.1","SGI-B-2.0","SGI-OpenGL","SGP4","SHL-0.5","SHL-0.51","SISSL","SISSL-1.2","SL","SMLNJ","SMPPL","SNIA","SPL-1.0","SSH-OpenSSH","SSH-short","SSPL-1.0","SWL","Saxpath","SchemeReport","Sendmail","Sendmail-8.23","SimPL-2.0","Sleepycat","Soundex","Spencer-86","Spencer-94","Spencer-99","SugarCRM-1.1.3","SunPro","Symlinks","TAPR-OHL-1.0","TCL","TCP-wrappers","TMate","TORQUE-1.1","TOSL","TPDL","TPL-1.0","TTWL","TTYP0","TU-Berlin-1.0","TU-Berlin-2.0","TermReadKey","UCAR","UCL-1.0","UPL-1.0","URT-RLE","Unicode-DFS-2015","Unicode-DFS-2016","Unicode-TOU","UnixCrypt","Unlicense","VOSTROM","VSL-1.0","Vim","W3C","W3C-19980720","W3C-20150513","WTFPL","Watcom-1.0","Widget-Workshop","Wsuipa","X11","X11-distribute-modifications-variant","XFree86-1.1","XSkat","Xdebug-1.03","Xerox","Xfig","Xnet","YPL-1.0","YPL-1.1","ZPL-1.1","ZPL-2.0","ZPL-2.1","Zed","Zeeff","Zend-2.0","Zimbra-1.3","Zimbra-1.4","Zlib","blessing","bzip2-1.0.6","check-cvs","checkmk","copyleft-next-0.3.0","copyleft-next-0.3.1","curl","diffmark","dtoa","dvipdfm","eGenix","etalab-2.0","fwlw","gSOAP-1.3b","gnuplot","iMatix","libpng-2.0","libselinux-1.0","libtiff","libutil-David-Nugent","lsof","magaz","metamail","mpi-permissive","mpich2","mplus","pnmstitch","psfrag","psutils","python-ldap","snprintf","ssh-keyscan","swrule","ulem","w3m","xinetd","xlock","xpp","zlib-acknowledgement"],Qs=["AGPL-1.0","AGPL-3.0","BSD-2-Clause-FreeBSD","BSD-2-Clause-NetBSD","GFDL-1.1","GFDL-1.2","GFDL-1.3","GPL-1.0","GPL-1.0+","GPL-2.0","GPL-2.0+","GPL-2.0-with-GCC-exception","GPL-2.0-with-autoconf-exception","GPL-2.0-with-bison-exception","GPL-2.0-with-classpath-exception","GPL-2.0-with-font-exception","GPL-3.0","GPL-3.0+","GPL-3.0-with-GCC-exception","GPL-3.0-with-autoconf-exception","LGPL-2.0","LGPL-2.0+","LGPL-2.1","LGPL-2.1+","LGPL-3.0","LGPL-3.0+","Nunit","StandardML-NJ","bzip2-1.0.5","eCos-2.0","wxWindows"],ei=["389-exception","Asterisk-exception","Autoconf-exception-2.0","Autoconf-exception-3.0","Autoconf-exception-generic","Autoconf-exception-generic-3.0","Autoconf-exception-macro","Bison-exception-2.2","Bootloader-exception","Classpath-exception-2.0","CLISP-exception-2.0","cryptsetup-OpenSSL-exception","DigiRule-FOSS-exception","eCos-exception-2.0","Fawkes-Runtime-exception","FLTK-exception","Font-exception-2.0","freertos-exception-2.0","GCC-exception-2.0","GCC-exception-2.0-note","GCC-exception-3.1","GNAT-exception","GNU-compiler-exception","gnu-javamail-exception","GPL-3.0-interface-exception","GPL-3.0-linking-exception","GPL-3.0-linking-source-exception","GPL-CC-1.0","GStreamer-exception-2005","GStreamer-exception-2008","i2p-gpl-java-exception","KiCad-libraries-exception","LGPL-3.0-linking-exception","libpri-OpenH323-exception","Libtool-exception","Linux-syscall-note","LLGPL","LLVM-exception","LZMA-exception","mif-exception","OCaml-LGPL-linking-exception","OCCT-exception-1.0","OpenJDK-assembly-exception-1.0","openvpn-openssl-exception","PS-or-PDF-font-exception-20170817","QPL-1.0-INRIA-2004-exception","Qt-GPL-exception-1.0","Qt-LGPL-exception-1.1","Qwt-exception-1.0","SANE-exception","SHL-2.0","SHL-2.1","stunnel-exception","SWI-exception","Swift-exception","Texinfo-exception","u-boot-exception-2.0","UBDL-exception","Universal-FOSS-exception-1.0","vsftpd-openssl-exception","WxWindows-exception-3.1","x11vnc-openssl-exception"],ti=[].concat(Kr).concat(Qs),ri=ei,ni=function(e){var t=0;function r(){return t<e.length}function n(v){if(v instanceof RegExp){var p=e.slice(t),c=p.match(v);if(c)return t+=c[0].length,c[0]}else if(e.indexOf(v,t)===t)return t+=v.length,v}function s(){n(/[ ]*/)}function i(){for(var v,p=["WITH","AND","OR","(",")",":","+"],c=0;c<p.length&&(v=n(p[c]),!v);c++);if(v==="+"&&t>1&&e[t-2]===" ")throw new Error("Space before `+`");return v&&{type:"OPERATOR",string:v}}function o(){return n(/[A-Za-z0-9-.]+/)}function a(){var v=o();if(!v)throw new Error("Expected idstring at offset "+t);return v}function u(){if(n("DocumentRef-")){var v=a();return{type:"DOCUMENTREF",string:v}}}function f(){if(n("LicenseRef-")){var v=a();return{type:"LICENSEREF",string:v}}}function g(){var v=t,p=o();if(ti.indexOf(p)!==-1)return{type:"LICENSE",string:p};if(ri.indexOf(p)!==-1)return{type:"EXCEPTION",string:p};t=v}function m(){return i()||u()||f()||g()}for(var C=[];r()&&(s(),!!r());){var O=m();if(!O)throw new Error("Unexpected `"+e[t]+"` at offset "+t);C.push(O)}return C},si=function(e){var t=0;function r(){return t<e.length}function n(){return r()?e[t]:null}function s(){if(!r())throw new Error;t++}function i(p){var c=n();if(c&&c.type==="OPERATOR"&&p===c.string)return s(),c.string}function o(){if(i("WITH")){var p=n();if(p&&p.type==="EXCEPTION")return s(),p.string;throw new Error("Expected exception after `WITH`")}}function a(){var p=t,c="",y=n();if(y.type==="DOCUMENTREF"&&(s(),c+="DocumentRef-"+y.string+":",!i(":")))throw new Error("Expected `:` after `DocumentRef-...`");if(y=n(),y.type==="LICENSEREF")return s(),c+="LicenseRef-"+y.string,{license:c};t=p}function u(){var p=n();if(p&&p.type==="LICENSE"){s();var c={license:p.string};i("+")&&(c.plus=!0);var y=o();return y&&(c.exception=y),c}}function f(){var p=i("(");if(p){var c=O();if(!i(")"))throw new Error("Expected `)`");return c}}function g(){return f()||a()||u()}function m(p,c){return function y(){var A=c();if(A){if(!i(p))return A;var E=y();if(!E)throw new Error("Expected expression");return{left:A,conjunction:p.toLowerCase(),right:E}}}}var C=m("AND",g),O=m("OR",C),v=O();if(!v||r())throw new Error("Syntax error");return v},ii=ni,oi=si,qr=function(e){return oi(ii(e))},ai=qr,ui=Kr;function we(e){try{return ai(e),!0}catch{return!1}}function Jr(e,t){var r=t[0].length-e[0].length;return r!==0?r:e[0].toUpperCase().localeCompare(t[0].toUpperCase())}var Kt=[["APGL","AGPL"],["Gpl","GPL"],["GLP","GPL"],["APL","Apache"],["ISD","ISC"],["GLP","GPL"],["IST","ISC"],["Claude","Clause"],[" or later","+"],[" International",""],["GNU","GPL"],["GUN","GPL"],["+",""],["GNU GPL","GPL"],["GNU LGPL","LGPL"],["GNU/GPL","GPL"],["GNU GLP","GPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL"],["GNU Lesser General Public License","LGPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["GNU Lesser General Public License","LGPL-2.1"],["LESSER GENERAL PUBLIC LICENSE","LGPL"],["Lesser General Public License","LGPL"],["LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["Lesser General Public License","LGPL-2.1"],["GNU General Public License","GPL"],["Gnu public license","GPL"],["GNU Public License","GPL"],["GNU GENERAL PUBLIC LICENSE","GPL"],["MTI","MIT"],["Mozilla Public License","MPL"],["Universal Permissive License","UPL"],["WTH","WTF"],["WTFGPL","WTFPL"],["-License",""]].sort(Jr),ci=0,li=1,qt=[function(e){return e.toUpperCase()},function(e){return e.trim()},function(e){return e.replace(/\./g,"")},function(e){return e.replace(/\s+/g,"")},function(e){return e.replace(/\s+/g,"-")},function(e){return e.replace("v","-")},function(e){return e.replace(/,?\s*(\d)/,"-$1")},function(e){return e.replace(/,?\s*(\d)/,"-$1.0")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2.0")},function(e){return e[0].toUpperCase()+e.slice(1)},function(e){return e.replace("/","-")},function(e){return e.replace(/\s*V\s*(\d)/,"-$1").replace(/(\d)$/,"$1.0")},function(e){return e.indexOf("3.0")!==-1?e+"-or-later":e+"-only"},function(e){return e+"only"},function(e){return e.replace(/(\d)$/,"-$1.0")},function(e){return e.replace(/(-| )?(\d)$/,"-$2-Clause")},function(e){return e.replace(/(-| )clause(-| )(\d)/,"-$3-Clause")},function(e){return e.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i,"BSD-3-Clause")},function(e){return e.replace(/\bSimplified(-| )?BSD((-| )License)?/i,"BSD-2-Clause")},function(e){return e.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i,"BSD-2-Clause-$1BSD")},function(e){return e.replace(/\bClear(-| )?BSD((-| )License)?/i,"BSD-3-Clause-Clear")},function(e){return e.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i,"BSD-4-Clause")},function(e){return"CC-"+e},function(e){return"CC-"+e+"-4.0"},function(e){return e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")},function(e){return"CC-"+e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")+"-4.0"}],Je=ui.map(function(e){var t=/^(.*)-\d+\.\d+$/.exec(e);return t?[t[0],t[1]]:[e,null]}).reduce(function(e,t){var r=t[1];return e[r]=e[r]||[],e[r].push(t[0]),e},{}),fi=Object.keys(Je).map(function(t){return[t,Je[t]]}).filter(function(t){return t[1].length===1&&t[0]!==null&&t[0]!=="APL"}).map(function(t){return[t[0],t[1][0]]});Je=void 0;var Jt=[["UNLI","Unlicense"],["WTF","WTFPL"],["2 CLAUSE","BSD-2-Clause"],["2-CLAUSE","BSD-2-Clause"],["3 CLAUSE","BSD-3-Clause"],["3-CLAUSE","BSD-3-Clause"],["AFFERO","AGPL-3.0-or-later"],["AGPL","AGPL-3.0-or-later"],["APACHE","Apache-2.0"],["ARTISTIC","Artistic-2.0"],["Affero","AGPL-3.0-or-later"],["BEER","Beerware"],["BOOST","BSL-1.0"],["BSD","BSD-2-Clause"],["CDDL","CDDL-1.1"],["ECLIPSE","EPL-1.0"],["FUCK","WTFPL"],["GNU","GPL-3.0-or-later"],["LGPL","LGPL-3.0-or-later"],["GPLV1","GPL-1.0-only"],["GPL-1","GPL-1.0-only"],["GPLV2","GPL-2.0-only"],["GPL-2","GPL-2.0-only"],["GPL","GPL-3.0-or-later"],["MIT +NO-FALSE-ATTRIBS","MITNFA"],["MIT","MIT"],["MPL","MPL-2.0"],["X11","X11"],["ZLIB","Zlib"]].concat(fi).sort(Jr),hi=0,pi=1,Zt=function(e){for(var t=0;t<qt.length;t++){var r=qt[t](e).trim();if(r!==e&&we(r))return r}return null},Qt=function(e){for(var t=e.toUpperCase(),r=0;r<Jt.length;r++){var n=Jt[r];if(t.indexOf(n[hi])>-1)return n[pi]}return null},er=function(e,t){for(var r=0;r<Kt.length;r++){var n=Kt[r],s=n[ci];if(e.indexOf(s)>-1){var i=e.replace(s,n[li]),o=t(i);if(o!==null)return o}}return null},di=function(e,t){t=t||{};var r=t.upgrade===void 0?!0:!!t.upgrade;function n(a){return r?gi(a):a}var s=typeof e=="string"&&e.trim().length!==0;if(!s)throw Error("Invalid argument. Expected non-empty string.");if(e=e.trim(),we(e))return n(e);var i=e.replace(/\+$/,"").trim();if(we(i))return n(i);var o=Zt(e);return o!==null||(o=er(e,function(a){return we(a)?a:Zt(a)}),o!==null)||(o=Qt(e),o!==null)||(o=er(e,Qt),o!==null)?n(o):null};function gi(e){return["GPL-1.0","LGPL-1.0","AGPL-1.0","GPL-2.0","LGPL-2.0","AGPL-2.0","LGPL-2.1"].indexOf(e)!==-1?e+"-only":["GPL-1.0+","GPL-2.0+","GPL-3.0+","LGPL-2.0+","LGPL-2.1+","LGPL-3.0+","AGPL-1.0+","AGPL-3.0+"].indexOf(e)!==-1?e.replace(/\+$/,"-or-later"):["GPL-3.0","LGPL-3.0","AGPL-3.0"].indexOf(e)!==-1?e+"-or-later":e}var mi=qr,bi=di,tr='license should be a valid SPDX license expression (without "LicenseRef"), "UNLICENSED", or "SEE LICENSE IN <filename>"',yi=/^SEE LICEN[CS]E IN (.+)$/;function rr(e,t){return t.slice(0,e.length)===e}function Ze(e){if(e.hasOwnProperty("license")){var t=e.license;return rr("LicenseRef",t)||rr("DocumentRef",t)}else return Ze(e.left)||Ze(e.right)}var vi=function(e){var t;try{t=mi(e)}catch{var r;if(e==="UNLIC