@frontfriend/sdk 1.3.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/THIRD_PARTY_NOTICES +2 -0
- package/dist/cli.js +175 -180
- package/dist/lib/core/adoption.js +1 -1
- package/dist/lib/core/api-client.js +8 -8
- package/dist/lib/core/application-adoption.js +17 -17
- package/dist/lib/core/cache-manager.js +1 -1
- package/dist/lib/core/cached-components-config.js +11 -11
- package/dist/lib/core/credentials.js +7 -7
- package/dist/lib/core/nativeSource.js +2 -2
- package/dist/lib/core/token-artifact-client.js +10 -10
- package/dist/lib/core/token-processor.js +6 -6
- package/dist/mcp.cjs +672 -120
- package/dist/next.js +11 -11
- package/dist/package.json +1 -1
- package/dist/vite.js +14 -14
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
var j=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var S=j((q,F)=>{F.exports={name:"@frontfriend/sdk",version:"1.
|
|
1
|
+
var j=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var S=j((q,F)=>{F.exports={name:"@frontfriend/sdk",version:"1.4.1"}});var C=j(($,b)=>{var{name:w}=S();b.exports={PACKAGE_NAME:w}});var{PACKAGE_NAME:m}=C(),u=require("fs"),E=require("http"),O=require("https"),r=require("path"),g=["contracts","tokens","components"],T=["app/globals.css","src/app/globals.css","styles/globals.css","src/styles/globals.css","src/styles.css","src/index.css","src/style.css"],k={next:["next.config.js","next.config.mjs","next.config.ts"],vite:["vite.config.ts","vite.config.js","vite.config.mts","vite.config.mjs"]},x=["primereact","@mui/material","antd","@chakra-ui/react","@mantine/core","@fluentui/react"],I=["style-dictionary","@tokens-studio/sd-transforms","@vanilla-extract/css","styled-components","@emotion/react"];function A(n){try{return JSON.parse(u.readFileSync(n,"utf8"))}catch{return{}}}function h(n){if(n===void 0)return null;if(!Array.isArray(n)){let t=new Error("`adopt` in frontfriend.config.js must be an array.");throw t.code="FRONTFRIEND_CONFIG_VALIDATION",t}let e=n.filter(t=>!g.includes(t));if(e.length>0){let t=new Error(`Unknown Frontfriend adoption level: ${e.join(", ")}.`);throw t.code="FRONTFRIEND_CONFIG_VALIDATION",t}let i=n.includes("components")?2:n.includes("tokens")?1:0;return g.slice(0,i+1)}function _(n){for(let[e,i]of Object.entries(k)){let t=i.find(s=>u.existsSync(r.join(n,s)));if(!t)continue;let c=u.readFileSync(r.join(n,t),"utf8");return{buildTool:e,present:c.includes(`${m}/${e}`)}}return{buildTool:null,present:!1}}function v(n){let e=[r.join(n,"components","ui"),r.join(n,"src","components","ui"),r.join(n,"app","components","ui")].filter(c=>u.existsSync(c)),i=new Set;function t(c){for(let s of u.readdirSync(c,{withFileTypes:!0})){let o=r.join(c,s.name);if(s.isDirectory())t(o);else if(/\.(js|jsx|ts|tsx|vue)$/.test(s.name)){if(!u.readFileSync(o,"utf8").includes(m))continue;let a=r.basename(s.name,r.extname(s.name));i.add(a.toLowerCase()==="index"?r.basename(c):a.toLowerCase())}}}return e.forEach(t),[...i].sort()}function P(n){let e=A(r.join(n,"package.json")),i={...e.dependencies||{},...e.devDependencies||{}},t=i.tailwindcss||null,s=[A(r.join(n,"components.json"))?.tailwind?.css,...T].filter(Boolean).find(a=>u.existsSync(r.join(n,a))),o=s?u.readFileSync(r.join(n,s),"utf8"):"",l=I.filter(a=>i[a]);return!l.length&&/:root[\s\S]*--(?:color|spacing|font|radius)-[\w-]+\s*:/.test(o)&&!o.includes(`${m}/theme.css`)&&l.push("css-custom-properties"),{nativeTokens:{present:o.includes("/* Frontfriend managed native tokens: start */"),file:s||null},tailwind:{present:!!t,version:t,major:t&&Number((String(t).match(/\d+/)||[])[0])||null},componentsJson:u.existsSync(r.join(n,"components.json")),themeImport:{present:o.includes(`${m}/theme.css`)||/@import\s+["'][^"']*node_modules\/\.cache\/frontfriend\/theme\.css["']/.test(o),file:s||null},plugin:_(n),frontfriendComponents:v(n),foreignComponentLibraries:x.filter(a=>i[a]),foreignTokenSystems:l}}function D(n,e,{baseLibrary:i}={}){let t=h(n)||g,c=t.includes("tokens"),s=t.includes("components"),o=[];return c&&!e.themeImport.present&&!e.nativeTokens?.present&&o.push("Config adopts tokens, but the Frontfriend theme import was not observed."),!c&&e.themeImport.present&&o.push("Frontfriend tokens are present in CSS but are not adopted in config."),s&&i==="shadcn"&&!e.componentsJson&&o.push("Config adopts components, but components.json was not observed."),!s&&e.frontfriendComponents.length>0&&o.push("Frontfriend components are installed but are not adopted in config."),o}function L({apiUrl:n,token:e,ffId:i,name:t,adopt:c,observed:s,framework:o,primitive:l}){if(!n||!e||!i||!t||!o||l===void 0)return Promise.resolve({reported:!1,unavailable:!0});let a=new URL("/api/apps/sync",n),y=JSON.stringify({ffId:i,name:t,adopt:h(c),observed:s,runtime:"sdk",framework:o,primitive:l}),N=a.protocol==="https:"?O:E;return new Promise(d=>{let f=N.request(a,{method:"POST",headers:{authorization:`Bearer ${e}`,"content-type":"application/json","content-length":Buffer.byteLength(y)}},p=>{p.resume(),p.on("end",()=>{p.statusCode>=200&&p.statusCode<300?d({reported:!0,unavailable:!1}):d({reported:!1,unavailable:!0})})});f.on("error",()=>d({reported:!1,unavailable:!0})),f.setTimeout(1500,()=>{f.destroy(),d({reported:!1,unavailable:!0})}),f.end(y)})}module.exports={ADOPTION_LEVELS:g,normalizeAdopt:h,probeAdoption:P,adoptionWarnings:D,reportAdoption:L};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var E=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var V=E((
|
|
2
|
-
`,{mode:384}),I.renameSync(r,t);try{I.chmodSync(t,384)}catch{}}finally{I.rmSync(r,{force:!0})}}async function _s(t,e,r){I.mkdirSync(require("path").dirname(t),{recursive:!0,mode:448});let n=`${t}.lock`,s=Date.now()+2e4,i;for(;i===void 0;)try{i=I.openSync(n,"wx",384),I.writeFileSync(i,String(process.pid))}catch(o){if(o.code!=="EEXIST")throw o;try{let a=Number(I.readFileSync(n,"utf8"));if(Number.isInteger(a)&&a>0)try{process.kill(a,0)}catch(c){if(c.code==="ESRCH"){I.unlinkSync(n);continue}}}catch(a){if(a.code==="ENOENT")continue}if(Date.now()>=s)throw r();await new Promise(a=>setTimeout(a,50))}try{return await e()}finally{I.closeSync(i),I.unlinkSync(n)}}lt.exports={writePrivateJsonFileAtomic:Ds,withPrivateFileLock:_s,readJsonFileSafe:Cs,readFileSafe:Ls,writeJsonFile:Os,writeTextFile:vs,writeModuleExportsFile:qs,fileExists:xs,ensureDirectoryExists:Ps,removeDirectory:Fs,removeFile:ks}});var Et=E((uu,mt)=>{mt.exports=pt;pt.sync=bs;var ht=require("fs");function Us(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var s=r[n].toLowerCase();if(s&&t.substr(-s.length).toLowerCase()===s)return!0}return!1}function dt(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:Us(e,r)}function pt(t,e,r){ht.stat(t,function(n,s){r(n,n?!1:dt(s,t,e))})}function bs(t,e){return dt(ht.statSync(t),t,e)}});var It=E((lu,Rt)=>{Rt.exports=$t;$t.sync=js;var gt=require("fs");function $t(t,e,r){gt.stat(t,function(n,s){r(n,n?!1:wt(s,e))})}function js(t,e){return wt(gt.statSync(t),e)}function wt(t,e){return t.isFile()&&Gs(t,e)}function Gs(t,e){var r=t.mode,n=t.uid,s=t.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),h=a|c,l=r&u||r&c&&s===o||r&a&&n===i||r&h&&i===0;return l}});var St=E((hu,yt)=>{var fu=require("fs"),z;process.platform==="win32"||global.TESTING_WINDOWS?z=Et():z=It();yt.exports=Se;Se.sync=Ms;function Se(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){Se(t,e||{},function(i,o){i?s(i):n(o)})})}z(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function Ms(t,e){try{return z.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var vt=E((du,Ot)=>{var D=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Tt=require("path"),Hs=D?";":":",Nt=St(),At=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),Ct=(t,e)=>{let r=e.colon||Hs,n=t.match(/\//)||D&&t.match(/\\/)?[""]:[...D?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=D?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=D?s.split(r):[""];return D&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:s}},Lt=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:i}=Ct(t,e),o=[],a=u=>new Promise((h,l)=>{if(u===n.length)return e.all&&o.length?h(o):l(At(t));let m=n[u],f=/^".*"$/.test(m)?m.slice(1,-1):m,$=Tt.join(f,t),A=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+$:$;h(c(A,u,0))}),c=(u,h,l)=>new Promise((m,f)=>{if(l===s.length)return m(a(h+1));let $=s[l];Nt(u+$,{pathExt:i},(A,Is)=>{if(!A&&Is)if(e.all)o.push(u+$);else return m(u+$);return m(c(u,h,l+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},Vs=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=Ct(t,e),i=[];for(let o=0;o<r.length;o++){let a=r[o],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=Tt.join(c,t),h=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+u:u;for(let l=0;l<n.length;l++){let m=h+n[l];try{if(Nt.sync(m,{pathExt:s}))if(e.all)i.push(m);else return m}catch{}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw At(t)};Ot.exports=Lt;Lt.sync=Vs});var xt=E((pu,Te)=>{"use strict";var qt=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Te.exports=qt;Te.exports.default=qt});var Dt=E((mu,kt)=>{"use strict";var Pt=require("path"),Xs=vt(),Js=xt();function Ft(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(t.options.cwd)}catch{}let o;try{o=Xs.sync(t.command,{path:r[Js({env:r})],pathExt:e?Pt.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return o&&(o=Pt.resolve(s?t.options.cwd:"",o)),o}function Bs(t){return Ft(t)||Ft(t,!0)}kt.exports=Bs});var _t=E((Eu,Ae)=>{"use strict";var Ne=/([()\][%!^"`<>&|;, *?])/g;function Ys(t){return t=t.replace(Ne,"^$1"),t}function Ws(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Ne,"^$1"),e&&(t=t.replace(Ne,"^$1")),t}Ae.exports.command=Ys;Ae.exports.argument=Ws});var bt=E((gu,Ut)=>{"use strict";Ut.exports=/^#!(.*)/});var Gt=E(($u,jt)=>{"use strict";var zs=bt();jt.exports=(t="")=>{let e=t.match(zs);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var Ht=E((wu,Mt)=>{"use strict";var Ce=require("fs"),Ks=Gt();function Qs(t){let r=Buffer.alloc(150),n;try{n=Ce.openSync(t,"r"),Ce.readSync(n,r,0,150,0),Ce.closeSync(n)}catch{}return Ks(r.toString())}Mt.exports=Qs});var Bt=E((Ru,Jt)=>{"use strict";var Zs=require("path"),Vt=Dt(),Xt=_t(),ei=Ht(),ti=process.platform==="win32",ri=/\.(?:com|exe)$/i,ni=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function si(t){t.file=Vt(t);let e=t.file&&ei(t.file);return e?(t.args.unshift(t.file),t.command=e,Vt(t)):t.file}function ii(t){if(!ti)return t;let e=si(t),r=!ri.test(e);if(t.options.forceShell||r){let n=ni.test(e);t.command=Zs.normalize(t.command),t.command=Xt.command(t.command),t.args=t.args.map(i=>Xt.argument(i,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function oi(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:ii(n)}Jt.exports=oi});var zt=E((Iu,Wt)=>{"use strict";var Le=process.platform==="win32";function Oe(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function ci(t,e){if(!Le)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let i=Yt(s,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Yt(t,e){return Le&&t===1&&!e.file?Oe(e.original,"spawn"):null}function ai(t,e){return Le&&t===1&&!e.file?Oe(e.original,"spawnSync"):null}Wt.exports={hookChildProcess:ci,verifyENOENT:Yt,verifyENOENTSync:ai,notFoundError:Oe}});var Zt=E((yu,_)=>{"use strict";var Kt=require("child_process"),ve=Bt(),qe=zt();function Qt(t,e,r){let n=ve(t,e,r),s=Kt.spawn(n.command,n.args,n.options);return qe.hookChildProcess(s,n),s}function ui(t,e,r){let n=ve(t,e,r),s=Kt.spawnSync(n.command,n.args,n.options);return s.error=s.error||qe.verifyENOENTSync(s.status,n),s}_.exports=Qt;_.exports.spawn=Qt;_.exports.sync=ui;_.exports._parse=ve;_.exports._enoent=qe});var U=E((Su,er)=>{"use strict";var li="2.0.0",fi=Number.MAX_SAFE_INTEGER||9007199254740991,hi=16,di=250,pi=["major","premajor","minor","preminor","patch","prepatch","prerelease"];er.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:hi,MAX_SAFE_BUILD_LENGTH:di,MAX_SAFE_INTEGER:fi,RELEASE_TYPES:pi,SEMVER_SPEC_VERSION:li,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var X=E((Tu,tr)=>{"use strict";var mi=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};tr.exports=mi});var b=E((q,rr)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:xe,MAX_SAFE_BUILD_LENGTH:Ei,MAX_LENGTH:gi}=U(),$i=X();q=rr.exports={};var wi=q.re=[],Ri=q.safeRe=[],d=q.src=[],Ii=q.safeSrc=[],p=q.t={},yi=0,Pe="[a-zA-Z0-9-]",Si=[["\\s",1],["\\d",gi],[Pe,Ei]],Ti=t=>{for(let[e,r]of Si)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},g=(t,e,r)=>{let n=Ti(e),s=yi++;$i(t,s,e),p[t]=s,d[s]=e,Ii[s]=n,wi[s]=new RegExp(e,r?"g":void 0),Ri[s]=new RegExp(n,r?"g":void 0)};g("NUMERICIDENTIFIER","0|[1-9]\\d*");g("NUMERICIDENTIFIERLOOSE","\\d+");g("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Pe}*`);g("MAINVERSION",`(${d[p.NUMERICIDENTIFIER]})\\.(${d[p.NUMERICIDENTIFIER]})\\.(${d[p.NUMERICIDENTIFIER]})`);g("MAINVERSIONLOOSE",`(${d[p.NUMERICIDENTIFIERLOOSE]})\\.(${d[p.NUMERICIDENTIFIERLOOSE]})\\.(${d[p.NUMERICIDENTIFIERLOOSE]})`);g("PRERELEASEIDENTIFIER",`(?:${d[p.NONNUMERICIDENTIFIER]}|${d[p.NUMERICIDENTIFIER]})`);g("PRERELEASEIDENTIFIERLOOSE",`(?:${d[p.NONNUMERICIDENTIFIER]}|${d[p.NUMERICIDENTIFIERLOOSE]})`);g("PRERELEASE",`(?:-(${d[p.PRERELEASEIDENTIFIER]}(?:\\.${d[p.PRERELEASEIDENTIFIER]})*))`);g("PRERELEASELOOSE",`(?:-?(${d[p.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${d[p.PRERELEASEIDENTIFIERLOOSE]})*))`);g("BUILDIDENTIFIER",`${Pe}+`);g("BUILD",`(?:\\+(${d[p.BUILDIDENTIFIER]}(?:\\.${d[p.BUILDIDENTIFIER]})*))`);g("FULLPLAIN",`v?${d[p.MAINVERSION]}${d[p.PRERELEASE]}?${d[p.BUILD]}?`);g("FULL",`^${d[p.FULLPLAIN]}$`);g("LOOSEPLAIN",`[v=\\s]*${d[p.MAINVERSIONLOOSE]}${d[p.PRERELEASELOOSE]}?${d[p.BUILD]}?`);g("LOOSE",`^${d[p.LOOSEPLAIN]}$`);g("GTLT","((?:<|>)?=?)");g("XRANGEIDENTIFIERLOOSE",`${d[p.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);g("XRANGEIDENTIFIER",`${d[p.NUMERICIDENTIFIER]}|x|X|\\*`);g("XRANGEPLAIN",`[v=\\s]*(${d[p.XRANGEIDENTIFIER]})(?:\\.(${d[p.XRANGEIDENTIFIER]})(?:\\.(${d[p.XRANGEIDENTIFIER]})(?:${d[p.PRERELEASE]})?${d[p.BUILD]}?)?)?`);g("XRANGEPLAINLOOSE",`[v=\\s]*(${d[p.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[p.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[p.XRANGEIDENTIFIERLOOSE]})(?:${d[p.PRERELEASELOOSE]})?${d[p.BUILD]}?)?)?`);g("XRANGE",`^${d[p.GTLT]}\\s*${d[p.XRANGEPLAIN]}$`);g("XRANGELOOSE",`^${d[p.GTLT]}\\s*${d[p.XRANGEPLAINLOOSE]}$`);g("COERCEPLAIN",`(^|[^\\d])(\\d{1,${xe}})(?:\\.(\\d{1,${xe}}))?(?:\\.(\\d{1,${xe}}))?`);g("COERCE",`${d[p.COERCEPLAIN]}(?:$|[^\\d])`);g("COERCEFULL",d[p.COERCEPLAIN]+`(?:${d[p.PRERELEASE]})?(?:${d[p.BUILD]})?(?:$|[^\\d])`);g("COERCERTL",d[p.COERCE],!0);g("COERCERTLFULL",d[p.COERCEFULL],!0);g("LONETILDE","(?:~>?)");g("TILDETRIM",`(\\s*)${d[p.LONETILDE]}\\s+`,!0);q.tildeTrimReplace="$1~";g("TILDE",`^${d[p.LONETILDE]}${d[p.XRANGEPLAIN]}$`);g("TILDELOOSE",`^${d[p.LONETILDE]}${d[p.XRANGEPLAINLOOSE]}$`);g("LONECARET","(?:\\^)");g("CARETTRIM",`(\\s*)${d[p.LONECARET]}\\s+`,!0);q.caretTrimReplace="$1^";g("CARET",`^${d[p.LONECARET]}${d[p.XRANGEPLAIN]}$`);g("CARETLOOSE",`^${d[p.LONECARET]}${d[p.XRANGEPLAINLOOSE]}$`);g("COMPARATORLOOSE",`^${d[p.GTLT]}\\s*(${d[p.LOOSEPLAIN]})$|^$`);g("COMPARATOR",`^${d[p.GTLT]}\\s*(${d[p.FULLPLAIN]})$|^$`);g("COMPARATORTRIM",`(\\s*)${d[p.GTLT]}\\s*(${d[p.LOOSEPLAIN]}|${d[p.XRANGEPLAIN]})`,!0);q.comparatorTrimReplace="$1$2$3";g("HYPHENRANGE",`^\\s*(${d[p.XRANGEPLAIN]})\\s+-\\s+(${d[p.XRANGEPLAIN]})\\s*$`);g("HYPHENRANGELOOSE",`^\\s*(${d[p.XRANGEPLAINLOOSE]})\\s+-\\s+(${d[p.XRANGEPLAINLOOSE]})\\s*$`);g("STAR","(<|>)?=?\\s*\\*");g("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");g("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var K=E((Nu,nr)=>{"use strict";var Ni=Object.freeze({loose:!0}),Ai=Object.freeze({}),Ci=t=>t?typeof t!="object"?Ni:t:Ai;nr.exports=Ci});var Fe=E((Au,or)=>{"use strict";var sr=/^[0-9]+$/,ir=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t<e?-1:1;let r=sr.test(t),n=sr.test(e);return r&&n&&(t=+t,e=+e),t===e?0:r&&!n?-1:n&&!r?1:t<e?-1:1},Li=(t,e)=>ir(e,t);or.exports={compareIdentifiers:ir,rcompareIdentifiers:Li}});var S=E((Cu,ar)=>{"use strict";var Q=X(),{MAX_LENGTH:cr,MAX_SAFE_INTEGER:Z}=U(),{safeRe:ee,t:te}=b(),Oi=K(),{compareIdentifiers:ke}=Fe(),vi=(t,e)=>{let r=e.split(".");if(r.length>t.length)return!1;for(let n=0;n<r.length;n++)if(ke(t[n],r[n])!==0)return!1;return!0},De=class t{constructor(e,r){if(r=Oi(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>cr)throw new TypeError(`version is longer than ${cr} characters`);Q("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=e.trim().match(r.loose?ee[te.LOOSE]:ee[te.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[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");n[4]?this.prerelease=n[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){let i=+s;if(i>=0&&i<Z)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(e){if(Q("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],s=e.prerelease[r];if(Q("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 ke(n,s)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let n=this.build[r],s=e.build[r];if(Q("build 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 ke(n,s)}while(++r)}inc(e,r,n){if(e.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let s=`-${r}`.match(this.options.loose?ee[te.PRERELEASELOOSE]:ee[te.PRERELEASE]);if(!s||s[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(e){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"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let s=Number(n)?1:0;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];if(n===!1&&(i=[r]),vi(this.prerelease,r)){let o=this.prerelease[r.split(".").length];isNaN(o)&&(this.prerelease=i)}else this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ar.exports=De});var P=E((Lu,lr)=>{"use strict";var ur=S(),qi=(t,e,r=!1)=>{if(t instanceof ur)return t;try{return new ur(t,e)}catch(n){if(!r)return null;throw n}};lr.exports=qi});var hr=E((Ou,fr)=>{"use strict";var xi=P(),Pi=(t,e)=>{let r=xi(t,e);return r?r.version:null};fr.exports=Pi});var pr=E((vu,dr)=>{"use strict";var Fi=P(),ki=(t,e)=>{let r=Fi(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};dr.exports=ki});var gr=E((qu,Er)=>{"use strict";var mr=S(),Di=(t,e,r,n,s)=>{typeof r=="string"&&(s=n,n=r,r=void 0);try{return new mr(t instanceof mr?t.version:t,r).inc(e,n,s).version}catch{return null}};Er.exports=Di});var Rr=E((xu,wr)=>{"use strict";var $r=P(),_i=(t,e)=>{let r=$r(t,null,!0),n=$r(e,null,!0),s=r.compare(n);if(s===0)return null;let i=s>0,o=i?r:n,a=i?n:r,c=!!o.prerelease.length;if(!!a.prerelease.length&&!c){if(!a.patch&&!a.minor)return"major";if(a.compareMain(o)===0)return a.minor&&!a.patch?"minor":"patch"}let h=c?"pre":"";return r.major!==n.major?h+"major":r.minor!==n.minor?h+"minor":r.patch!==n.patch?h+"patch":"prerelease"};wr.exports=_i});var yr=E((Pu,Ir)=>{"use strict";var Ui=S(),bi=(t,e)=>new Ui(t,e).major;Ir.exports=bi});var Tr=E((Fu,Sr)=>{"use strict";var ji=S(),Gi=(t,e)=>new ji(t,e).minor;Sr.exports=Gi});var Ar=E((ku,Nr)=>{"use strict";var Mi=S(),Hi=(t,e)=>new Mi(t,e).patch;Nr.exports=Hi});var Lr=E((Du,Cr)=>{"use strict";var Vi=P(),Xi=(t,e)=>{let r=Vi(t,e);return r&&r.prerelease.length?r.prerelease:null};Cr.exports=Xi});var C=E((_u,vr)=>{"use strict";var Or=S(),Ji=(t,e,r)=>new Or(t,r).compare(new Or(e,r));vr.exports=Ji});var xr=E((Uu,qr)=>{"use strict";var Bi=C(),Yi=(t,e,r)=>Bi(e,t,r);qr.exports=Yi});var Fr=E((bu,Pr)=>{"use strict";var Wi=C(),zi=(t,e)=>Wi(t,e,!0);Pr.exports=zi});var re=E((ju,Dr)=>{"use strict";var kr=S(),Ki=(t,e,r)=>{let n=new kr(t,r),s=new kr(e,r);return n.compare(s)||n.compareBuild(s)};Dr.exports=Ki});var Ur=E((Gu,_r)=>{"use strict";var Qi=re(),Zi=(t,e)=>t.sort((r,n)=>Qi(r,n,e));_r.exports=Zi});var jr=E((Mu,br)=>{"use strict";var eo=re(),to=(t,e)=>t.sort((r,n)=>eo(n,r,e));br.exports=to});var J=E((Hu,Gr)=>{"use strict";var ro=C(),no=(t,e,r)=>ro(t,e,r)>0;Gr.exports=no});var ne=E((Vu,Mr)=>{"use strict";var so=C(),io=(t,e,r)=>so(t,e,r)<0;Mr.exports=io});var _e=E((Xu,Hr)=>{"use strict";var oo=C(),co=(t,e,r)=>oo(t,e,r)===0;Hr.exports=co});var Ue=E((Ju,Vr)=>{"use strict";var ao=C(),uo=(t,e,r)=>ao(t,e,r)!==0;Vr.exports=uo});var se=E((Bu,Xr)=>{"use strict";var lo=C(),fo=(t,e,r)=>lo(t,e,r)>=0;Xr.exports=fo});var ie=E((Yu,Jr)=>{"use strict";var ho=C(),po=(t,e,r)=>ho(t,e,r)<=0;Jr.exports=po});var be=E((Wu,Br)=>{"use strict";var mo=_e(),Eo=Ue(),go=J(),$o=se(),wo=ne(),Ro=ie(),Io=(t,e,r,n)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return mo(t,r,n);case"!=":return Eo(t,r,n);case">":return go(t,r,n);case">=":return $o(t,r,n);case"<":return wo(t,r,n);case"<=":return Ro(t,r,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Br.exports=Io});var Wr=E((zu,Yr)=>{"use strict";var yo=S(),So=P(),{safeRe:oe,t:ce}=b(),To=(t,e)=>{if(t instanceof yo)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?oe[ce.COERCEFULL]:oe[ce.COERCE]);else{let c=e.includePrerelease?oe[ce.COERCERTLFULL]:oe[ce.COERCERTL],u;for(;(u=c.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||u.index+u[0].length!==r.index+r[0].length)&&(r=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(r===null)return null;let n=r[2],s=r[3]||"0",i=r[4]||"0",o=e.includePrerelease&&r[5]?`-${r[5]}`:"",a=e.includePrerelease&&r[6]?`+${r[6]}`:"";return So(`${n}.${s}.${i}${o}${a}`,e)};Yr.exports=To});var Kr=E((Ku,zr)=>{"use strict";var No=P(),Ao=U(),Co=S(),Lo=(t,e,r)=>{if(!Ao.RELEASE_TYPES.includes(e))return null;let n=Oo(t,r);return n&&vo(n,e)},Oo=(t,e)=>{let r=t instanceof Co?t.version:t;return No(r,e)},vo=(t,e)=>{if(qo(e))return t.version;switch(t.prerelease=[],e){case"major":t.minor=0,t.patch=0;break;case"minor":t.patch=0;break}return t.format()},qo=t=>t.startsWith("pre");zr.exports=Lo});var Zr=E((Qu,Qr)=>{"use strict";var je=class{constructor(){this.max=1e3,this.map=new Map}get(e){let r=this.map.get(e);if(r!==void 0)return this.map.delete(e),this.map.set(e,r),r}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&r!==void 0){if(this.map.size>=this.max){let s=this.map.keys().next().value;this.delete(s)}this.map.set(e,r)}return this}};Qr.exports=je});var L=E((Zu,nn)=>{"use strict";var xo=/\s+/g,Ge=class t{constructor(e,r){if(r=Fo(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof Me)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().replace(xo," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(s=>!tn(s[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let s of this.set)if(s.length===1&&Ho(s[0])){this.set=[s];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let r=this.set[e];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(Mo,"");let n=((this.options.includePrerelease&&jo)|(this.options.loose&&Go))+":"+e,s=en.get(n);if(s)return s;let i=this.options.loose,o=i?N[T.HYPHENRANGELOOSE]:N[T.HYPHENRANGE];e=e.replace(o,ec(this.options.includePrerelease)),R("hyphen replace",e),e=e.replace(N[T.COMPARATORTRIM],_o),R("comparator trim",e),e=e.replace(N[T.TILDETRIM],Uo),R("tilde trim",e),e=e.replace(N[T.CARETTRIM],bo),R("caret trim",e);let a=e.split(" ").map(l=>Vo(l,this.options)).join(" ").split(/\s+/).map(l=>Zo(l,this.options));i&&(a=a.filter(l=>(R("loose invalid filter",l,this.options),!!l.match(N[T.COMPARATORLOOSE])))),R("range list",a);let c=new Map,u=a.map(l=>new Me(l,this.options));for(let l of u){if(tn(l))return[l];c.set(l.value,l)}c.size>1&&c.has("")&&c.delete("");let h=[...c.values()];return en.set(n,h),h}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(n=>rn(n,r)&&e.set.some(s=>rn(s,r)&&n.every(i=>s.every(o=>i.intersects(o,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new ko(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(tc(this.set[r],e,this.options))return!0;return!1}};nn.exports=Ge;var Po=Zr(),en=new Po,Fo=K(),Me=B(),R=X(),ko=S(),{safeRe:N,src:Do,t:T,comparatorTrimReplace:_o,tildeTrimReplace:Uo,caretTrimReplace:bo}=b(),{FLAG_INCLUDE_PRERELEASE:jo,FLAG_LOOSE:Go}=U(),Mo=new RegExp(Do[T.BUILD],"g"),tn=t=>t.value==="<0.0.0-0",Ho=t=>t.value==="",rn=(t,e)=>{let r=!0,n=t.slice(),s=n.pop();for(;r&&n.length;)r=n.every(i=>s.intersects(i,e)),s=n.pop();return r},Vo=(t,e)=>(t=t.replace(N[T.BUILD],""),R("comp",t,e),t=Yo(t,e),R("caret",t),t=Jo(t,e),R("tildes",t),t=zo(t,e),R("xrange",t),t=Qo(t,e),R("stars",t),t),y=t=>!t||t.toLowerCase()==="x"||t==="*",Xo=(t,e,r)=>y(t)&&!y(e)||y(e)&&r&&!y(r),Jo=(t,e)=>t.trim().split(/\s+/).map(r=>Bo(r,e)).join(" "),Bo=(t,e)=>{let r=e.loose?N[T.TILDELOOSE]:N[T.TILDE],n=e.includePrerelease?"-0":"";return t.replace(r,(s,i,o,a,c)=>{R("tilde",t,s,i,o,a,c);let u;return y(i)?u="":y(o)?u=`>=${i}.0.0${n} <${+i+1}.0.0-0`:y(a)?u=`>=${i}.${o}.0${n} <${i}.${+o+1}.0-0`:c?(R("replaceTilde pr",c),u=`>=${i}.${o}.${a}-${c} <${i}.${+o+1}.0-0`):u=`>=${i}.${o}.${a} <${i}.${+o+1}.0-0`,R("tilde return",u),u})},Yo=(t,e)=>t.trim().split(/\s+/).map(r=>Wo(r,e)).join(" "),Wo=(t,e)=>{R("caret",t,e);let r=e.loose?N[T.CARETLOOSE]:N[T.CARET],n=e.includePrerelease?"-0":"";return t.replace(r,(s,i,o,a,c)=>{R("caret",t,s,i,o,a,c);let u;return y(i)?u="":y(o)?u=`>=${i}.0.0${n} <${+i+1}.0.0-0`:y(a)?i==="0"?u=`>=${i}.${o}.0${n} <${i}.${+o+1}.0-0`:u=`>=${i}.${o}.0${n} <${+i+1}.0.0-0`:c?(R("replaceCaret pr",c),i==="0"?o==="0"?u=`>=${i}.${o}.${a}-${c} <${i}.${o}.${+a+1}-0`:u=`>=${i}.${o}.${a}-${c} <${i}.${+o+1}.0-0`:u=`>=${i}.${o}.${a}-${c} <${+i+1}.0.0-0`):(R("no pr"),i==="0"?o==="0"?u=`>=${i}.${o}.${a} <${i}.${o}.${+a+1}-0`:u=`>=${i}.${o}.${a} <${i}.${+o+1}.0-0`:u=`>=${i}.${o}.${a} <${+i+1}.0.0-0`),R("caret return",u),u})},zo=(t,e)=>(R("replaceXRanges",t,e),t.split(/\s+/).map(r=>Ko(r,e)).join(" ")),Ko=(t,e)=>{t=t.trim();let r=e.loose?N[T.XRANGELOOSE]:N[T.XRANGE];return t.replace(r,(n,s,i,o,a,c)=>{if(R("xRange",t,n,s,i,o,a,c),Xo(i,o,a))return t;let u=y(i),h=u||y(o),l=h||y(a),m=l;return s==="="&&m&&(s=""),c=e.includePrerelease?"-0":"",u?s===">"||s==="<"?n="<0.0.0-0":n="*":s&&m?(h&&(o=0),a=0,s===">"?(s=">=",h?(i=+i+1,o=0,a=0):(o=+o+1,a=0)):s==="<="&&(s="<",h?i=+i+1:o=+o+1),s==="<"&&(c="-0"),n=`${s+i}.${o}.${a}${c}`):h?n=`>=${i}.0.0${c} <${+i+1}.0.0-0`:l&&(n=`>=${i}.${o}.0${c} <${i}.${+o+1}.0-0`),R("xRange return",n),n})},Qo=(t,e)=>(R("replaceStars",t,e),t.trim().replace(N[T.STAR],"")),Zo=(t,e)=>(R("replaceGTE0",t,e),t.trim().replace(N[e.includePrerelease?T.GTE0PRE:T.GTE0],"")),ec=t=>(e,r,n,s,i,o,a,c,u,h,l,m)=>(y(n)?r="":y(s)?r=`>=${n}.0.0${t?"-0":""}`:y(i)?r=`>=${n}.${s}.0${t?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,y(u)?c="":y(h)?c=`<${+u+1}.0.0-0`:y(l)?c=`<${u}.${+h+1}.0-0`:m?c=`<=${u}.${h}.${l}-${m}`:t?c=`<${u}.${h}.${+l+1}-0`:c=`<=${c}`,`${r} ${c}`.trim()),tc=(t,e,r)=>{for(let n=0;n<t.length;n++)if(!t[n].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let n=0;n<t.length;n++)if(R(t[n].semver),t[n].semver!==Me.ANY&&t[n].semver.prerelease.length>0){let s=t[n].semver;if(s.major===e.major&&s.minor===e.minor&&s.patch===e.patch)return!0}return!1}return!0}});var B=E((el,ln)=>{"use strict";var Y=Symbol("SemVer ANY"),Xe=class t{static get ANY(){return Y}constructor(e,r){if(r=sn(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Ve("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Y?this.value="":this.value=this.operator+this.semver.version,Ve("comp",this)}parse(e){let r=this.options.loose?on[cn.COMPARATORLOOSE]:on[cn.COMPARATOR],n=e.match(r);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new an(n[2],this.options.loose):this.semver=Y}toString(){return this.value}test(e){if(Ve("Comparator.test",e,this.options.loose),this.semver===Y||e===Y)return!0;if(typeof e=="string")try{e=new an(e,this.options)}catch{return!1}return He(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new un(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new un(this.value,r).test(e.semver):(r=sn(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||He(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||He(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};ln.exports=Xe;var sn=K(),{safeRe:on,t:cn}=b(),He=be(),Ve=X(),an=S(),un=L()});var W=E((tl,fn)=>{"use strict";var rc=L(),nc=(t,e,r)=>{try{e=new rc(e,r)}catch{return!1}return e.test(t)};fn.exports=nc});var dn=E((rl,hn)=>{"use strict";var sc=L(),ic=(t,e)=>new sc(t,e).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));hn.exports=ic});var mn=E((nl,pn)=>{"use strict";var oc=S(),cc=L(),ac=(t,e,r)=>{let n=null,s=null,i=null;try{i=new cc(e,r)}catch{return null}return t.forEach(o=>{i.test(o)&&(!n||s.compare(o)===-1)&&(n=o,s=new oc(n,r))}),n};pn.exports=ac});var gn=E((sl,En)=>{"use strict";var uc=S(),lc=L(),fc=(t,e,r)=>{let n=null,s=null,i=null;try{i=new lc(e,r)}catch{return null}return t.forEach(o=>{i.test(o)&&(!n||s.compare(o)===1)&&(n=o,s=new uc(n,r))}),n};En.exports=fc});var Rn=E((il,wn)=>{"use strict";var Je=S(),hc=L(),$n=J(),dc=(t,e)=>{t=new hc(t,e);let r=new Je("0.0.0");if(t.test(r)||(r=new Je("0.0.0-0"),t.test(r)))return r;r=null;for(let n=0;n<t.set.length;++n){let s=t.set[n],i=null;s.forEach(o=>{let a=new Je(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!i||$n(a,i))&&(i=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),i&&(!r||$n(r,i))&&(r=i)}return r&&t.test(r)?r:null};wn.exports=dc});var yn=E((ol,In)=>{"use strict";var pc=L(),mc=(t,e)=>{try{return new pc(t,e).range||"*"}catch{return null}};In.exports=mc});var ae=E((cl,An)=>{"use strict";var Ec=S(),Nn=B(),{ANY:gc}=Nn,$c=L(),wc=W(),Sn=J(),Tn=ne(),Rc=ie(),Ic=se(),yc=(t,e,r,n)=>{t=new Ec(t,n),e=new $c(e,n);let s,i,o,a,c;switch(r){case">":s=Sn,i=Rc,o=Tn,a=">",c=">=";break;case"<":s=Tn,i=Ic,o=Sn,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(wc(t,e,n))return!1;for(let u=0;u<e.set.length;++u){let h=e.set[u],l=null,m=null;if(h.forEach(f=>{f.semver===gc&&(f=new Nn(">=0.0.0")),l=l||f,m=m||f,s(f.semver,l.semver,n)?l=f:o(f.semver,m.semver,n)&&(m=f)}),l.operator===a||l.operator===c||(!m.operator||m.operator===a)&&i(t,m.semver))return!1;if(m.operator===c&&o(t,m.semver))return!1}return!0};An.exports=yc});var Ln=E((al,Cn)=>{"use strict";var Sc=ae(),Tc=(t,e,r)=>Sc(t,e,">",r);Cn.exports=Tc});var vn=E((ul,On)=>{"use strict";var Nc=ae(),Ac=(t,e,r)=>Nc(t,e,"<",r);On.exports=Ac});var Pn=E((ll,xn)=>{"use strict";var qn=L(),Cc=(t,e,r)=>(t=new qn(t,r),e=new qn(e,r),t.intersects(e,r));xn.exports=Cc});var kn=E((fl,Fn)=>{"use strict";var Lc=W(),Oc=C();Fn.exports=(t,e,r)=>{let n=[],s=null,i=null,o=t.sort((h,l)=>Oc(h,l,r));for(let h of o)Lc(h,e,r)?(i=h,s||(s=h)):(i&&n.push([s,i]),i=null,s=null);s&&n.push([s,null]);let a=[];for(let[h,l]of n)h===l?a.push(h):!l&&h===o[0]?a.push("*"):l?h===o[0]?a.push(`<=${l}`):a.push(`${h} - ${l}`):a.push(`>=${h}`);let c=a.join(" || "),u=typeof e.raw=="string"?e.raw:String(e);return c.length<u.length?c:e}});var Gn=E((hl,jn)=>{"use strict";var Dn=L(),We=B(),{ANY:Be}=We,Ye=W(),ze=C(),vc=(t,e,r={})=>{if(t===e)return!0;t=new Dn(t,r),e=new Dn(e,r);let n=!1;e:for(let s of t.set){for(let i of e.set){let o=xc(s,i,r);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},qc=[new We(">=0.0.0-0")],_n=[new We(">=0.0.0")],xc=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Be){if(e.length===1&&e[0].semver===Be)return!0;r.includePrerelease?t=qc:t=_n}if(e.length===1&&e[0].semver===Be){if(r.includePrerelease)return!0;e=_n}let n=new Set,s,i;for(let f of t)f.operator===">"||f.operator===">="?s=Un(s,f,r):f.operator==="<"||f.operator==="<="?i=bn(i,f,r):n.add(f.semver);if(n.size>1)return null;let o;if(s&&i){if(o=ze(s.semver,i.semver,r),o>0)return null;if(o===0&&(s.operator!==">="||i.operator!=="<="))return null}for(let f of n){if(s&&!Ye(f,String(s),r)||i&&!Ye(f,String(i),r))return null;for(let $ of e)if(!Ye(f,String($),r))return!1;return!0}let a,c,u,h,l=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1,m=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1;l&&l.prerelease.length===1&&i.operator==="<"&&l.prerelease[0]===0&&(l=!1);for(let f of e){if(h=h||f.operator===">"||f.operator===">=",u=u||f.operator==="<"||f.operator==="<=",s){if(m&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===m.major&&f.semver.minor===m.minor&&f.semver.patch===m.patch&&(m=!1),f.operator===">"||f.operator===">="){if(a=Un(s,f,r),a===f&&a!==s)return!1}else if(s.operator===">="&&!f.test(s.semver))return!1}if(i){if(l&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===l.major&&f.semver.minor===l.minor&&f.semver.patch===l.patch&&(l=!1),f.operator==="<"||f.operator==="<="){if(c=bn(i,f,r),c===f&&c!==i)return!1}else if(i.operator==="<="&&!f.test(i.semver))return!1}if(!f.operator&&(i||s)&&o!==0)return!1}return!(s&&u&&!i&&o!==0||i&&h&&!s&&o!==0||m||l)},Un=(t,e,r)=>{if(!t)return e;let n=ze(t.semver,e.semver,r);return n>0?t:n<0||e.operator===">"&&t.operator===">="?e:t},bn=(t,e,r)=>{if(!t)return e;let n=ze(t.semver,e.semver,r);return n<0?t:n>0||e.operator==="<"&&t.operator==="<="?e:t};jn.exports=vc});var Xn=E((dl,Vn)=>{"use strict";var Ke=b(),Mn=U(),Pc=S(),Hn=Fe(),Fc=P(),kc=hr(),Dc=pr(),_c=gr(),Uc=Rr(),bc=yr(),jc=Tr(),Gc=Ar(),Mc=Lr(),Hc=C(),Vc=xr(),Xc=Fr(),Jc=re(),Bc=Ur(),Yc=jr(),Wc=J(),zc=ne(),Kc=_e(),Qc=Ue(),Zc=se(),ea=ie(),ta=be(),ra=Wr(),na=Kr(),sa=B(),ia=L(),oa=W(),ca=dn(),aa=mn(),ua=gn(),la=Rn(),fa=yn(),ha=ae(),da=Ln(),pa=vn(),ma=Pn(),Ea=kn(),ga=Gn();Vn.exports={parse:Fc,valid:kc,clean:Dc,inc:_c,diff:Uc,major:bc,minor:jc,patch:Gc,prerelease:Mc,compare:Hc,rcompare:Vc,compareLoose:Xc,compareBuild:Jc,sort:Bc,rsort:Yc,gt:Wc,lt:zc,eq:Kc,neq:Qc,gte:Zc,lte:ea,cmp:ta,coerce:ra,truncate:na,Comparator:sa,Range:ia,satisfies:oa,toComparators:ca,maxSatisfying:aa,minSatisfying:ua,minVersion:la,validRange:fa,outside:ha,gtr:da,ltr:pa,intersects:ma,simplifyRange:Ea,subset:ga,SemVer:Pc,re:Ke.re,src:Ke.src,tokens:Ke.t,SEMVER_SPEC_VERSION:Mn.SEMVER_SPEC_VERSION,RELEASE_TYPES:Mn.RELEASE_TYPES,compareIdentifiers:Hn.compareIdentifiers,rcompareIdentifiers:Hn.rcompareIdentifiers}});var he=E((pl,rs)=>{var F=require("fs"),O=require("path"),Bn=Zt(),v=Xn(),{DEFAULT_API_URL:$a}=V(),Yn=["dependencies","devDependencies","optionalDependencies","peerDependencies"];function Qe(t){let e=typeof t=="string"&&t.match(/^((?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*)(?:@([^\r\n]+))?$/);if(!e)throw new Error(`Invalid npm dependency: ${String(t)}`);return{name:e[1],version:e[2]}}function Ze(t){let e=new Map;for(let r of t){let{name:n,version:s}=Qe(r),i=e.get(n);e.set(n,i&&s?Wn(n,i,s):s||i)}return e}function Wn(t,e,r){if(e===r)return e;let n=v.validRange(e),s=v.validRange(r);if(n&&s)try{if(v.subset(s,n))return r;if(v.subset(n,s))return e}catch{}throw new Error(`Conflicting registry versions for ${t}: ${e} and ${r}`)}function wa(t,e){let r=typeof t=="string"&&v.validRange(t),n=v.validRange(e);if(!r||!n)return!1;try{return v.subset(r,n)}catch{return!1}}function le(t,e){if(wa(t,e))return"satisfied";let r=typeof t=="string"&&v.validRange(t),n=v.validRange(e);if(!r||!n)return"incomparable";try{let s=v.minVersion(r),i=v.minVersion(n);return!s||!i?"incomparable":v.lt(s,i)?"lower":"newer"}catch{return"incomparable"}}function ue(t,e){let r=Yn.find(n=>Object.hasOwn(t[n]||{},e));return r?{section:r,existing:t[r][e]}:null}function zn(t,e){let r=Ze(e);if(r.size===0)return;let n=O.join(t,"package.json"),s=JSON.parse(F.readFileSync(n,"utf8"));for(let[i,o]of r){let a=ue(s,i),c=a?.section||"dependencies";s[c]||={};let u=a?.existing;s[c][i]=u===void 0?o||"latest":o&&le(u,o)==="lower"?o:u}F.writeFileSync(n,`${JSON.stringify(s,null,2)}
|
|
3
|
-
`)}function fe(t){let e=[["pnpm-lock.yaml","pnpm"],["yarn.lock","yarn"],["bun.lock","bun"],["bun.lockb","bun"],["package-lock.json","npm"],["npm-shrinkwrap.json","npm"]];for(let r=O.resolve(t);;r=O.dirname(r)){let n=O.join(r,"package.json");if(F.existsSync(n)){let s=JSON.parse(F.readFileSync(n,"utf8")),i=String(s.packageManager||"").split("@")[0];if(["npm","pnpm","yarn","bun"].includes(i))return i}for(let[s,i]of e)if(F.existsSync(O.join(r,s)))return i;if(O.dirname(r)===r)return"npm"}}var
|
|
4
|
-
${o}`),{missing:i,command:o,installed:!1};s(`\u{1F4E6} Installing component dependencies: ${o}`);try{return
|
|
1
|
+
var E=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var $e=E((du,ht)=>{"use strict";var lt="https://app.v4.frontfriend.dev",ft="https://app.frontfriend.dev";function Cs(t){if(new URL(t).origin===lt)throw Object.assign(new Error(`The API origin ${lt} has moved to ${ft}. Update api-url in frontfriend.config.js and the agent installation, then run frontfriend login --api-url ${ft}. Credentials were not sent or forwarded.`),{code:"FF_API_ORIGIN_RETIRED"})}ht.exports={assertCurrentApiOrigin:Cs}});var V=E((pu,dt)=>{var Ls="https://app.frontfriend.dev",Os=".cache/frontfriend",vs={JS:["tokens.js","variables.js","semanticVariables.js","semanticDarkVariables.js","keyframes.js","animations.js","safelist.js","custom.js"],JSON:["fonts.json","icons.json","components-config.json","iconLibrary.json","version.json","versionMetadata.json","metadata.json","base.json","nativeTokens.json"]},qs={FF_ID:"FF_ID",FF_API_URL:"FF_API_URL",FF_AUTH_TOKEN:"FF_AUTH_TOKEN",FF_MACHINE_TOKEN:"FRONTFRIEND_MACHINE_TOKEN"};function xs(t){if(!t)return null;try{let e=new URL(t);return e.hostname.startsWith("app.")?`${e.protocol}//${e.hostname.replace(/^app\./,"registry.")}`:null}catch{return null}}dt.exports={DEFAULT_API_URL:Ls,CACHE_DIR_NAME:Os,CACHE_TTL_DAYS:7,CACHE_TTL_MS:6048e5,CACHE_FILES:vs,ENV_VARS:qs,deriveRegistryFromApiUrl:xs}});var Se=E((mu,pt)=>{var we=class extends Error{constructor(e,r,n){super(e),this.name="APIError",this.statusCode=r,this.url=n,this.code=`API_${r}`}},Re=class extends Error{constructor(e,r){super(e),this.name="CacheError",this.operation=r,this.code=`CACHE_${r.toUpperCase()}`}},Ie=class extends Error{constructor(e,r){super(e),this.name="ConfigError",this.field=r,this.code=r?`CONFIG_${String(r).toUpperCase()}`:"CONFIG_ERROR"}},ye=class extends Error{constructor(e,r){super(e),this.name="ProcessingError",this.token=r,this.code="PROCESSING_ERROR"}};pt.exports={APIError:we,CacheError:Re,ConfigError:Ie,ProcessingError:ye}});var Et=E((Eu,mt)=>{var I=require("fs");function Ps(t){try{let e=I.readFileSync(t,"utf8");return JSON.parse(e)}catch(e){if(e.code==="ENOENT")return null;throw e}}function Fs(t){try{return I.readFileSync(t,"utf8").replace(/^\uFEFF/,"")}catch(e){if(e.code==="ENOENT")return null;throw e}}function ks(t,e,r=2){let n=JSON.stringify(e,null,r);I.writeFileSync(t,n,"utf8")}function Ds(t,e){I.writeFileSync(t,e,"utf8")}function Us(t,e){if(e==null||typeof e=="object"&&Object.keys(e).length===0||Array.isArray(e)&&e.length===0){let n=`module.exports = ${Array.isArray(e)?"[]":"{}"};`;I.writeFileSync(t,n,"utf8")}else{let r=`module.exports = ${JSON.stringify(e,null,2)};`;I.writeFileSync(t,r,"utf8")}}function _s(t){return I.existsSync(t)}function bs(t){I.mkdirSync(t,{recursive:!0})}function js(t){I.rmSync(t,{recursive:!0,force:!0})}function Gs(t){I.rmSync(t,{force:!0})}function Ms(t,e){I.mkdirSync(require("path").dirname(t),{recursive:!0,mode:448});let r=`${t}.${process.pid}.${Date.now()}.tmp`;try{I.writeFileSync(r,`${JSON.stringify(e,null,2)}
|
|
2
|
+
`,{mode:384}),I.renameSync(r,t);try{I.chmodSync(t,384)}catch{}}finally{I.rmSync(r,{force:!0})}}async function Hs(t,e,r){I.mkdirSync(require("path").dirname(t),{recursive:!0,mode:448});let n=`${t}.lock`,s=Date.now()+2e4,i;for(;i===void 0;)try{i=I.openSync(n,"wx",384),I.writeFileSync(i,String(process.pid))}catch(o){if(o.code!=="EEXIST")throw o;try{let a=Number(I.readFileSync(n,"utf8"));if(Number.isInteger(a)&&a>0)try{process.kill(a,0)}catch(c){if(c.code==="ESRCH"){I.unlinkSync(n);continue}}}catch(a){if(a.code==="ENOENT")continue}if(Date.now()>=s)throw r();await new Promise(a=>setTimeout(a,50))}try{return await e()}finally{I.closeSync(i),I.unlinkSync(n)}}mt.exports={writePrivateJsonFileAtomic:Ms,withPrivateFileLock:Hs,readJsonFileSafe:Ps,readFileSafe:Fs,writeJsonFile:ks,writeTextFile:Ds,writeModuleExportsFile:Us,fileExists:_s,ensureDirectoryExists:bs,removeDirectory:js,removeFile:Gs}});var It=E((gu,Rt)=>{Rt.exports=wt;wt.sync=Xs;var gt=require("fs");function Vs(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var s=r[n].toLowerCase();if(s&&t.substr(-s.length).toLowerCase()===s)return!0}return!1}function $t(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:Vs(e,r)}function wt(t,e,r){gt.stat(t,function(n,s){r(n,n?!1:$t(s,t,e))})}function Xs(t,e){return $t(gt.statSync(t),t,e)}});var At=E(($u,Nt)=>{Nt.exports=St;St.sync=Js;var yt=require("fs");function St(t,e,r){yt.stat(t,function(n,s){r(n,n?!1:Tt(s,e))})}function Js(t,e){return Tt(yt.statSync(t),e)}function Tt(t,e){return t.isFile()&&Bs(t,e)}function Bs(t,e){var r=t.mode,n=t.uid,s=t.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),h=a|c,l=r&u||r&c&&s===o||r&a&&n===i||r&h&&i===0;return l}});var Lt=E((Ru,Ct)=>{var wu=require("fs"),z;process.platform==="win32"||global.TESTING_WINDOWS?z=It():z=At();Ct.exports=Te;Te.sync=Ys;function Te(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){Te(t,e||{},function(i,o){i?s(i):n(o)})})}z(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function Ys(t,e){try{return z.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var kt=E((Iu,Ft)=>{var D=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Ot=require("path"),Ws=D?";":":",vt=Lt(),qt=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),xt=(t,e)=>{let r=e.colon||Ws,n=t.match(/\//)||D&&t.match(/\\/)?[""]:[...D?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=D?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=D?s.split(r):[""];return D&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:s}},Pt=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:i}=xt(t,e),o=[],a=u=>new Promise((h,l)=>{if(u===n.length)return e.all&&o.length?h(o):l(qt(t));let m=n[u],f=/^".*"$/.test(m)?m.slice(1,-1):m,$=Ot.join(f,t),A=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+$:$;h(c(A,u,0))}),c=(u,h,l)=>new Promise((m,f)=>{if(l===s.length)return m(a(h+1));let $=s[l];vt(u+$,{pathExt:i},(A,As)=>{if(!A&&As)if(e.all)o.push(u+$);else return m(u+$);return m(c(u,h,l+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},zs=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=xt(t,e),i=[];for(let o=0;o<r.length;o++){let a=r[o],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=Ot.join(c,t),h=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+u:u;for(let l=0;l<n.length;l++){let m=h+n[l];try{if(vt.sync(m,{pathExt:s}))if(e.all)i.push(m);else return m}catch{}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw qt(t)};Ft.exports=Pt;Pt.sync=zs});var Ut=E((yu,Ne)=>{"use strict";var Dt=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ne.exports=Dt;Ne.exports.default=Dt});var Gt=E((Su,jt)=>{"use strict";var _t=require("path"),Ks=kt(),Qs=Ut();function bt(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(t.options.cwd)}catch{}let o;try{o=Ks.sync(t.command,{path:r[Qs({env:r})],pathExt:e?_t.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return o&&(o=_t.resolve(s?t.options.cwd:"",o)),o}function Zs(t){return bt(t)||bt(t,!0)}jt.exports=Zs});var Mt=E((Tu,Ce)=>{"use strict";var Ae=/([()\][%!^"`<>&|;, *?])/g;function ei(t){return t=t.replace(Ae,"^$1"),t}function ti(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Ae,"^$1"),e&&(t=t.replace(Ae,"^$1")),t}Ce.exports.command=ei;Ce.exports.argument=ti});var Vt=E((Nu,Ht)=>{"use strict";Ht.exports=/^#!(.*)/});var Jt=E((Au,Xt)=>{"use strict";var ri=Vt();Xt.exports=(t="")=>{let e=t.match(ri);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var Yt=E((Cu,Bt)=>{"use strict";var Le=require("fs"),ni=Jt();function si(t){let r=Buffer.alloc(150),n;try{n=Le.openSync(t,"r"),Le.readSync(n,r,0,150,0),Le.closeSync(n)}catch{}return ni(r.toString())}Bt.exports=si});var Qt=E((Lu,Kt)=>{"use strict";var ii=require("path"),Wt=Gt(),zt=Mt(),oi=Yt(),ci=process.platform==="win32",ai=/\.(?:com|exe)$/i,ui=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function li(t){t.file=Wt(t);let e=t.file&&oi(t.file);return e?(t.args.unshift(t.file),t.command=e,Wt(t)):t.file}function fi(t){if(!ci)return t;let e=li(t),r=!ai.test(e);if(t.options.forceShell||r){let n=ui.test(e);t.command=ii.normalize(t.command),t.command=zt.command(t.command),t.args=t.args.map(i=>zt.argument(i,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function hi(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:fi(n)}Kt.exports=hi});var tr=E((Ou,er)=>{"use strict";var Oe=process.platform==="win32";function ve(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function di(t,e){if(!Oe)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let i=Zt(s,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Zt(t,e){return Oe&&t===1&&!e.file?ve(e.original,"spawn"):null}function pi(t,e){return Oe&&t===1&&!e.file?ve(e.original,"spawnSync"):null}er.exports={hookChildProcess:di,verifyENOENT:Zt,verifyENOENTSync:pi,notFoundError:ve}});var sr=E((vu,U)=>{"use strict";var rr=require("child_process"),qe=Qt(),xe=tr();function nr(t,e,r){let n=qe(t,e,r),s=rr.spawn(n.command,n.args,n.options);return xe.hookChildProcess(s,n),s}function mi(t,e,r){let n=qe(t,e,r),s=rr.spawnSync(n.command,n.args,n.options);return s.error=s.error||xe.verifyENOENTSync(s.status,n),s}U.exports=nr;U.exports.spawn=nr;U.exports.sync=mi;U.exports._parse=qe;U.exports._enoent=xe});var _=E((qu,ir)=>{"use strict";var Ei="2.0.0",gi=Number.MAX_SAFE_INTEGER||9007199254740991,$i=16,wi=250,Ri=["major","premajor","minor","preminor","patch","prepatch","prerelease"];ir.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:$i,MAX_SAFE_BUILD_LENGTH:wi,MAX_SAFE_INTEGER:gi,RELEASE_TYPES:Ri,SEMVER_SPEC_VERSION:Ei,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var X=E((xu,or)=>{"use strict";var Ii=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};or.exports=Ii});var b=E((q,cr)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Pe,MAX_SAFE_BUILD_LENGTH:yi,MAX_LENGTH:Si}=_(),Ti=X();q=cr.exports={};var Ni=q.re=[],Ai=q.safeRe=[],d=q.src=[],Ci=q.safeSrc=[],p=q.t={},Li=0,Fe="[a-zA-Z0-9-]",Oi=[["\\s",1],["\\d",Si],[Fe,yi]],vi=t=>{for(let[e,r]of Oi)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},g=(t,e,r)=>{let n=vi(e),s=Li++;Ti(t,s,e),p[t]=s,d[s]=e,Ci[s]=n,Ni[s]=new RegExp(e,r?"g":void 0),Ai[s]=new RegExp(n,r?"g":void 0)};g("NUMERICIDENTIFIER","0|[1-9]\\d*");g("NUMERICIDENTIFIERLOOSE","\\d+");g("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Fe}*`);g("MAINVERSION",`(${d[p.NUMERICIDENTIFIER]})\\.(${d[p.NUMERICIDENTIFIER]})\\.(${d[p.NUMERICIDENTIFIER]})`);g("MAINVERSIONLOOSE",`(${d[p.NUMERICIDENTIFIERLOOSE]})\\.(${d[p.NUMERICIDENTIFIERLOOSE]})\\.(${d[p.NUMERICIDENTIFIERLOOSE]})`);g("PRERELEASEIDENTIFIER",`(?:${d[p.NONNUMERICIDENTIFIER]}|${d[p.NUMERICIDENTIFIER]})`);g("PRERELEASEIDENTIFIERLOOSE",`(?:${d[p.NONNUMERICIDENTIFIER]}|${d[p.NUMERICIDENTIFIERLOOSE]})`);g("PRERELEASE",`(?:-(${d[p.PRERELEASEIDENTIFIER]}(?:\\.${d[p.PRERELEASEIDENTIFIER]})*))`);g("PRERELEASELOOSE",`(?:-?(${d[p.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${d[p.PRERELEASEIDENTIFIERLOOSE]})*))`);g("BUILDIDENTIFIER",`${Fe}+`);g("BUILD",`(?:\\+(${d[p.BUILDIDENTIFIER]}(?:\\.${d[p.BUILDIDENTIFIER]})*))`);g("FULLPLAIN",`v?${d[p.MAINVERSION]}${d[p.PRERELEASE]}?${d[p.BUILD]}?`);g("FULL",`^${d[p.FULLPLAIN]}$`);g("LOOSEPLAIN",`[v=\\s]*${d[p.MAINVERSIONLOOSE]}${d[p.PRERELEASELOOSE]}?${d[p.BUILD]}?`);g("LOOSE",`^${d[p.LOOSEPLAIN]}$`);g("GTLT","((?:<|>)?=?)");g("XRANGEIDENTIFIERLOOSE",`${d[p.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);g("XRANGEIDENTIFIER",`${d[p.NUMERICIDENTIFIER]}|x|X|\\*`);g("XRANGEPLAIN",`[v=\\s]*(${d[p.XRANGEIDENTIFIER]})(?:\\.(${d[p.XRANGEIDENTIFIER]})(?:\\.(${d[p.XRANGEIDENTIFIER]})(?:${d[p.PRERELEASE]})?${d[p.BUILD]}?)?)?`);g("XRANGEPLAINLOOSE",`[v=\\s]*(${d[p.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[p.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[p.XRANGEIDENTIFIERLOOSE]})(?:${d[p.PRERELEASELOOSE]})?${d[p.BUILD]}?)?)?`);g("XRANGE",`^${d[p.GTLT]}\\s*${d[p.XRANGEPLAIN]}$`);g("XRANGELOOSE",`^${d[p.GTLT]}\\s*${d[p.XRANGEPLAINLOOSE]}$`);g("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Pe}})(?:\\.(\\d{1,${Pe}}))?(?:\\.(\\d{1,${Pe}}))?`);g("COERCE",`${d[p.COERCEPLAIN]}(?:$|[^\\d])`);g("COERCEFULL",d[p.COERCEPLAIN]+`(?:${d[p.PRERELEASE]})?(?:${d[p.BUILD]})?(?:$|[^\\d])`);g("COERCERTL",d[p.COERCE],!0);g("COERCERTLFULL",d[p.COERCEFULL],!0);g("LONETILDE","(?:~>?)");g("TILDETRIM",`(\\s*)${d[p.LONETILDE]}\\s+`,!0);q.tildeTrimReplace="$1~";g("TILDE",`^${d[p.LONETILDE]}${d[p.XRANGEPLAIN]}$`);g("TILDELOOSE",`^${d[p.LONETILDE]}${d[p.XRANGEPLAINLOOSE]}$`);g("LONECARET","(?:\\^)");g("CARETTRIM",`(\\s*)${d[p.LONECARET]}\\s+`,!0);q.caretTrimReplace="$1^";g("CARET",`^${d[p.LONECARET]}${d[p.XRANGEPLAIN]}$`);g("CARETLOOSE",`^${d[p.LONECARET]}${d[p.XRANGEPLAINLOOSE]}$`);g("COMPARATORLOOSE",`^${d[p.GTLT]}\\s*(${d[p.LOOSEPLAIN]})$|^$`);g("COMPARATOR",`^${d[p.GTLT]}\\s*(${d[p.FULLPLAIN]})$|^$`);g("COMPARATORTRIM",`(\\s*)${d[p.GTLT]}\\s*(${d[p.LOOSEPLAIN]}|${d[p.XRANGEPLAIN]})`,!0);q.comparatorTrimReplace="$1$2$3";g("HYPHENRANGE",`^\\s*(${d[p.XRANGEPLAIN]})\\s+-\\s+(${d[p.XRANGEPLAIN]})\\s*$`);g("HYPHENRANGELOOSE",`^\\s*(${d[p.XRANGEPLAINLOOSE]})\\s+-\\s+(${d[p.XRANGEPLAINLOOSE]})\\s*$`);g("STAR","(<|>)?=?\\s*\\*");g("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");g("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var K=E((Pu,ar)=>{"use strict";var qi=Object.freeze({loose:!0}),xi=Object.freeze({}),Pi=t=>t?typeof t!="object"?qi:t:xi;ar.exports=Pi});var ke=E((Fu,fr)=>{"use strict";var ur=/^[0-9]+$/,lr=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t<e?-1:1;let r=ur.test(t),n=ur.test(e);return r&&n&&(t=+t,e=+e),t===e?0:r&&!n?-1:n&&!r?1:t<e?-1:1},Fi=(t,e)=>lr(e,t);fr.exports={compareIdentifiers:lr,rcompareIdentifiers:Fi}});var S=E((ku,dr)=>{"use strict";var Q=X(),{MAX_LENGTH:hr,MAX_SAFE_INTEGER:Z}=_(),{safeRe:ee,t:te}=b(),ki=K(),{compareIdentifiers:De}=ke(),Di=(t,e)=>{let r=e.split(".");if(r.length>t.length)return!1;for(let n=0;n<r.length;n++)if(De(t[n],r[n])!==0)return!1;return!0},Ue=class t{constructor(e,r){if(r=ki(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>hr)throw new TypeError(`version is longer than ${hr} characters`);Q("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=e.trim().match(r.loose?ee[te.LOOSE]:ee[te.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[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");n[4]?this.prerelease=n[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){let i=+s;if(i>=0&&i<Z)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(e){if(Q("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],s=e.prerelease[r];if(Q("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 De(n,s)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let n=this.build[r],s=e.build[r];if(Q("build 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 De(n,s)}while(++r)}inc(e,r,n){if(e.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let s=`-${r}`.match(this.options.loose?ee[te.PRERELEASELOOSE]:ee[te.PRERELEASE]);if(!s||s[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(e){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"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let s=Number(n)?1:0;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];if(n===!1&&(i=[r]),Di(this.prerelease,r)){let o=this.prerelease[r.split(".").length];isNaN(o)&&(this.prerelease=i)}else this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};dr.exports=Ue});var P=E((Du,mr)=>{"use strict";var pr=S(),Ui=(t,e,r=!1)=>{if(t instanceof pr)return t;try{return new pr(t,e)}catch(n){if(!r)return null;throw n}};mr.exports=Ui});var gr=E((Uu,Er)=>{"use strict";var _i=P(),bi=(t,e)=>{let r=_i(t,e);return r?r.version:null};Er.exports=bi});var wr=E((_u,$r)=>{"use strict";var ji=P(),Gi=(t,e)=>{let r=ji(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};$r.exports=Gi});var yr=E((bu,Ir)=>{"use strict";var Rr=S(),Mi=(t,e,r,n,s)=>{typeof r=="string"&&(s=n,n=r,r=void 0);try{return new Rr(t instanceof Rr?t.version:t,r).inc(e,n,s).version}catch{return null}};Ir.exports=Mi});var Nr=E((ju,Tr)=>{"use strict";var Sr=P(),Hi=(t,e)=>{let r=Sr(t,null,!0),n=Sr(e,null,!0),s=r.compare(n);if(s===0)return null;let i=s>0,o=i?r:n,a=i?n:r,c=!!o.prerelease.length;if(!!a.prerelease.length&&!c){if(!a.patch&&!a.minor)return"major";if(a.compareMain(o)===0)return a.minor&&!a.patch?"minor":"patch"}let h=c?"pre":"";return r.major!==n.major?h+"major":r.minor!==n.minor?h+"minor":r.patch!==n.patch?h+"patch":"prerelease"};Tr.exports=Hi});var Cr=E((Gu,Ar)=>{"use strict";var Vi=S(),Xi=(t,e)=>new Vi(t,e).major;Ar.exports=Xi});var Or=E((Mu,Lr)=>{"use strict";var Ji=S(),Bi=(t,e)=>new Ji(t,e).minor;Lr.exports=Bi});var qr=E((Hu,vr)=>{"use strict";var Yi=S(),Wi=(t,e)=>new Yi(t,e).patch;vr.exports=Wi});var Pr=E((Vu,xr)=>{"use strict";var zi=P(),Ki=(t,e)=>{let r=zi(t,e);return r&&r.prerelease.length?r.prerelease:null};xr.exports=Ki});var C=E((Xu,kr)=>{"use strict";var Fr=S(),Qi=(t,e,r)=>new Fr(t,r).compare(new Fr(e,r));kr.exports=Qi});var Ur=E((Ju,Dr)=>{"use strict";var Zi=C(),eo=(t,e,r)=>Zi(e,t,r);Dr.exports=eo});var br=E((Bu,_r)=>{"use strict";var to=C(),ro=(t,e)=>to(t,e,!0);_r.exports=ro});var re=E((Yu,Gr)=>{"use strict";var jr=S(),no=(t,e,r)=>{let n=new jr(t,r),s=new jr(e,r);return n.compare(s)||n.compareBuild(s)};Gr.exports=no});var Hr=E((Wu,Mr)=>{"use strict";var so=re(),io=(t,e)=>t.sort((r,n)=>so(r,n,e));Mr.exports=io});var Xr=E((zu,Vr)=>{"use strict";var oo=re(),co=(t,e)=>t.sort((r,n)=>oo(n,r,e));Vr.exports=co});var J=E((Ku,Jr)=>{"use strict";var ao=C(),uo=(t,e,r)=>ao(t,e,r)>0;Jr.exports=uo});var ne=E((Qu,Br)=>{"use strict";var lo=C(),fo=(t,e,r)=>lo(t,e,r)<0;Br.exports=fo});var _e=E((Zu,Yr)=>{"use strict";var ho=C(),po=(t,e,r)=>ho(t,e,r)===0;Yr.exports=po});var be=E((el,Wr)=>{"use strict";var mo=C(),Eo=(t,e,r)=>mo(t,e,r)!==0;Wr.exports=Eo});var se=E((tl,zr)=>{"use strict";var go=C(),$o=(t,e,r)=>go(t,e,r)>=0;zr.exports=$o});var ie=E((rl,Kr)=>{"use strict";var wo=C(),Ro=(t,e,r)=>wo(t,e,r)<=0;Kr.exports=Ro});var je=E((nl,Qr)=>{"use strict";var Io=_e(),yo=be(),So=J(),To=se(),No=ne(),Ao=ie(),Co=(t,e,r,n)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return Io(t,r,n);case"!=":return yo(t,r,n);case">":return So(t,r,n);case">=":return To(t,r,n);case"<":return No(t,r,n);case"<=":return Ao(t,r,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Qr.exports=Co});var en=E((sl,Zr)=>{"use strict";var Lo=S(),Oo=P(),{safeRe:oe,t:ce}=b(),vo=(t,e)=>{if(t instanceof Lo)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?oe[ce.COERCEFULL]:oe[ce.COERCE]);else{let c=e.includePrerelease?oe[ce.COERCERTLFULL]:oe[ce.COERCERTL],u;for(;(u=c.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||u.index+u[0].length!==r.index+r[0].length)&&(r=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(r===null)return null;let n=r[2],s=r[3]||"0",i=r[4]||"0",o=e.includePrerelease&&r[5]?`-${r[5]}`:"",a=e.includePrerelease&&r[6]?`+${r[6]}`:"";return Oo(`${n}.${s}.${i}${o}${a}`,e)};Zr.exports=vo});var rn=E((il,tn)=>{"use strict";var qo=P(),xo=_(),Po=S(),Fo=(t,e,r)=>{if(!xo.RELEASE_TYPES.includes(e))return null;let n=ko(t,r);return n&&Do(n,e)},ko=(t,e)=>{let r=t instanceof Po?t.version:t;return qo(r,e)},Do=(t,e)=>{if(Uo(e))return t.version;switch(t.prerelease=[],e){case"major":t.minor=0,t.patch=0;break;case"minor":t.patch=0;break}return t.format()},Uo=t=>t.startsWith("pre");tn.exports=Fo});var sn=E((ol,nn)=>{"use strict";var Ge=class{constructor(){this.max=1e3,this.map=new Map}get(e){let r=this.map.get(e);if(r!==void 0)return this.map.delete(e),this.map.set(e,r),r}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&r!==void 0){if(this.map.size>=this.max){let s=this.map.keys().next().value;this.delete(s)}this.map.set(e,r)}return this}};nn.exports=Ge});var L=E((cl,un)=>{"use strict";var _o=/\s+/g,Me=class t{constructor(e,r){if(r=jo(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof He)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().replace(_o," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(s=>!cn(s[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let s of this.set)if(s.length===1&&Wo(s[0])){this.set=[s];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let r=this.set[e];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(Yo,"");let n=((this.options.includePrerelease&&Jo)|(this.options.loose&&Bo))+":"+e,s=on.get(n);if(s)return s;let i=this.options.loose,o=i?N[T.HYPHENRANGELOOSE]:N[T.HYPHENRANGE];e=e.replace(o,oc(this.options.includePrerelease)),R("hyphen replace",e),e=e.replace(N[T.COMPARATORTRIM],Ho),R("comparator trim",e),e=e.replace(N[T.TILDETRIM],Vo),R("tilde trim",e),e=e.replace(N[T.CARETTRIM],Xo),R("caret trim",e);let a=e.split(" ").map(l=>zo(l,this.options)).join(" ").split(/\s+/).map(l=>ic(l,this.options));i&&(a=a.filter(l=>(R("loose invalid filter",l,this.options),!!l.match(N[T.COMPARATORLOOSE])))),R("range list",a);let c=new Map,u=a.map(l=>new He(l,this.options));for(let l of u){if(cn(l))return[l];c.set(l.value,l)}c.size>1&&c.has("")&&c.delete("");let h=[...c.values()];return on.set(n,h),h}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(n=>an(n,r)&&e.set.some(s=>an(s,r)&&n.every(i=>s.every(o=>i.intersects(o,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Go(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(cc(this.set[r],e,this.options))return!0;return!1}};un.exports=Me;var bo=sn(),on=new bo,jo=K(),He=B(),R=X(),Go=S(),{safeRe:N,src:Mo,t:T,comparatorTrimReplace:Ho,tildeTrimReplace:Vo,caretTrimReplace:Xo}=b(),{FLAG_INCLUDE_PRERELEASE:Jo,FLAG_LOOSE:Bo}=_(),Yo=new RegExp(Mo[T.BUILD],"g"),cn=t=>t.value==="<0.0.0-0",Wo=t=>t.value==="",an=(t,e)=>{let r=!0,n=t.slice(),s=n.pop();for(;r&&n.length;)r=n.every(i=>s.intersects(i,e)),s=n.pop();return r},zo=(t,e)=>(t=t.replace(N[T.BUILD],""),R("comp",t,e),t=ec(t,e),R("caret",t),t=Qo(t,e),R("tildes",t),t=rc(t,e),R("xrange",t),t=sc(t,e),R("stars",t),t),y=t=>!t||t.toLowerCase()==="x"||t==="*",Ko=(t,e,r)=>y(t)&&!y(e)||y(e)&&r&&!y(r),Qo=(t,e)=>t.trim().split(/\s+/).map(r=>Zo(r,e)).join(" "),Zo=(t,e)=>{let r=e.loose?N[T.TILDELOOSE]:N[T.TILDE],n=e.includePrerelease?"-0":"";return t.replace(r,(s,i,o,a,c)=>{R("tilde",t,s,i,o,a,c);let u;return y(i)?u="":y(o)?u=`>=${i}.0.0${n} <${+i+1}.0.0-0`:y(a)?u=`>=${i}.${o}.0${n} <${i}.${+o+1}.0-0`:c?(R("replaceTilde pr",c),u=`>=${i}.${o}.${a}-${c} <${i}.${+o+1}.0-0`):u=`>=${i}.${o}.${a} <${i}.${+o+1}.0-0`,R("tilde return",u),u})},ec=(t,e)=>t.trim().split(/\s+/).map(r=>tc(r,e)).join(" "),tc=(t,e)=>{R("caret",t,e);let r=e.loose?N[T.CARETLOOSE]:N[T.CARET],n=e.includePrerelease?"-0":"";return t.replace(r,(s,i,o,a,c)=>{R("caret",t,s,i,o,a,c);let u;return y(i)?u="":y(o)?u=`>=${i}.0.0${n} <${+i+1}.0.0-0`:y(a)?i==="0"?u=`>=${i}.${o}.0${n} <${i}.${+o+1}.0-0`:u=`>=${i}.${o}.0${n} <${+i+1}.0.0-0`:c?(R("replaceCaret pr",c),i==="0"?o==="0"?u=`>=${i}.${o}.${a}-${c} <${i}.${o}.${+a+1}-0`:u=`>=${i}.${o}.${a}-${c} <${i}.${+o+1}.0-0`:u=`>=${i}.${o}.${a}-${c} <${+i+1}.0.0-0`):(R("no pr"),i==="0"?o==="0"?u=`>=${i}.${o}.${a} <${i}.${o}.${+a+1}-0`:u=`>=${i}.${o}.${a} <${i}.${+o+1}.0-0`:u=`>=${i}.${o}.${a} <${+i+1}.0.0-0`),R("caret return",u),u})},rc=(t,e)=>(R("replaceXRanges",t,e),t.split(/\s+/).map(r=>nc(r,e)).join(" ")),nc=(t,e)=>{t=t.trim();let r=e.loose?N[T.XRANGELOOSE]:N[T.XRANGE];return t.replace(r,(n,s,i,o,a,c)=>{if(R("xRange",t,n,s,i,o,a,c),Ko(i,o,a))return t;let u=y(i),h=u||y(o),l=h||y(a),m=l;return s==="="&&m&&(s=""),c=e.includePrerelease?"-0":"",u?s===">"||s==="<"?n="<0.0.0-0":n="*":s&&m?(h&&(o=0),a=0,s===">"?(s=">=",h?(i=+i+1,o=0,a=0):(o=+o+1,a=0)):s==="<="&&(s="<",h?i=+i+1:o=+o+1),s==="<"&&(c="-0"),n=`${s+i}.${o}.${a}${c}`):h?n=`>=${i}.0.0${c} <${+i+1}.0.0-0`:l&&(n=`>=${i}.${o}.0${c} <${i}.${+o+1}.0-0`),R("xRange return",n),n})},sc=(t,e)=>(R("replaceStars",t,e),t.trim().replace(N[T.STAR],"")),ic=(t,e)=>(R("replaceGTE0",t,e),t.trim().replace(N[e.includePrerelease?T.GTE0PRE:T.GTE0],"")),oc=t=>(e,r,n,s,i,o,a,c,u,h,l,m)=>(y(n)?r="":y(s)?r=`>=${n}.0.0${t?"-0":""}`:y(i)?r=`>=${n}.${s}.0${t?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,y(u)?c="":y(h)?c=`<${+u+1}.0.0-0`:y(l)?c=`<${u}.${+h+1}.0-0`:m?c=`<=${u}.${h}.${l}-${m}`:t?c=`<${u}.${h}.${+l+1}-0`:c=`<=${c}`,`${r} ${c}`.trim()),cc=(t,e,r)=>{for(let n=0;n<t.length;n++)if(!t[n].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let n=0;n<t.length;n++)if(R(t[n].semver),t[n].semver!==He.ANY&&t[n].semver.prerelease.length>0){let s=t[n].semver;if(s.major===e.major&&s.minor===e.minor&&s.patch===e.patch)return!0}return!1}return!0}});var B=E((al,mn)=>{"use strict";var Y=Symbol("SemVer ANY"),Je=class t{static get ANY(){return Y}constructor(e,r){if(r=ln(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Xe("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Y?this.value="":this.value=this.operator+this.semver.version,Xe("comp",this)}parse(e){let r=this.options.loose?fn[hn.COMPARATORLOOSE]:fn[hn.COMPARATOR],n=e.match(r);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new dn(n[2],this.options.loose):this.semver=Y}toString(){return this.value}test(e){if(Xe("Comparator.test",e,this.options.loose),this.semver===Y||e===Y)return!0;if(typeof e=="string")try{e=new dn(e,this.options)}catch{return!1}return Ve(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new pn(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new pn(this.value,r).test(e.semver):(r=ln(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Ve(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Ve(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};mn.exports=Je;var ln=K(),{safeRe:fn,t:hn}=b(),Ve=je(),Xe=X(),dn=S(),pn=L()});var W=E((ul,En)=>{"use strict";var ac=L(),uc=(t,e,r)=>{try{e=new ac(e,r)}catch{return!1}return e.test(t)};En.exports=uc});var $n=E((ll,gn)=>{"use strict";var lc=L(),fc=(t,e)=>new lc(t,e).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));gn.exports=fc});var Rn=E((fl,wn)=>{"use strict";var hc=S(),dc=L(),pc=(t,e,r)=>{let n=null,s=null,i=null;try{i=new dc(e,r)}catch{return null}return t.forEach(o=>{i.test(o)&&(!n||s.compare(o)===-1)&&(n=o,s=new hc(n,r))}),n};wn.exports=pc});var yn=E((hl,In)=>{"use strict";var mc=S(),Ec=L(),gc=(t,e,r)=>{let n=null,s=null,i=null;try{i=new Ec(e,r)}catch{return null}return t.forEach(o=>{i.test(o)&&(!n||s.compare(o)===1)&&(n=o,s=new mc(n,r))}),n};In.exports=gc});var Nn=E((dl,Tn)=>{"use strict";var Be=S(),$c=L(),Sn=J(),wc=(t,e)=>{t=new $c(t,e);let r=new Be("0.0.0");if(t.test(r)||(r=new Be("0.0.0-0"),t.test(r)))return r;r=null;for(let n=0;n<t.set.length;++n){let s=t.set[n],i=null;s.forEach(o=>{let a=new Be(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!i||Sn(a,i))&&(i=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),i&&(!r||Sn(r,i))&&(r=i)}return r&&t.test(r)?r:null};Tn.exports=wc});var Cn=E((pl,An)=>{"use strict";var Rc=L(),Ic=(t,e)=>{try{return new Rc(t,e).range||"*"}catch{return null}};An.exports=Ic});var ae=E((ml,qn)=>{"use strict";var yc=S(),vn=B(),{ANY:Sc}=vn,Tc=L(),Nc=W(),Ln=J(),On=ne(),Ac=ie(),Cc=se(),Lc=(t,e,r,n)=>{t=new yc(t,n),e=new Tc(e,n);let s,i,o,a,c;switch(r){case">":s=Ln,i=Ac,o=On,a=">",c=">=";break;case"<":s=On,i=Cc,o=Ln,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Nc(t,e,n))return!1;for(let u=0;u<e.set.length;++u){let h=e.set[u],l=null,m=null;if(h.forEach(f=>{f.semver===Sc&&(f=new vn(">=0.0.0")),l=l||f,m=m||f,s(f.semver,l.semver,n)?l=f:o(f.semver,m.semver,n)&&(m=f)}),l.operator===a||l.operator===c||(!m.operator||m.operator===a)&&i(t,m.semver))return!1;if(m.operator===c&&o(t,m.semver))return!1}return!0};qn.exports=Lc});var Pn=E((El,xn)=>{"use strict";var Oc=ae(),vc=(t,e,r)=>Oc(t,e,">",r);xn.exports=vc});var kn=E((gl,Fn)=>{"use strict";var qc=ae(),xc=(t,e,r)=>qc(t,e,"<",r);Fn.exports=xc});var _n=E(($l,Un)=>{"use strict";var Dn=L(),Pc=(t,e,r)=>(t=new Dn(t,r),e=new Dn(e,r),t.intersects(e,r));Un.exports=Pc});var jn=E((wl,bn)=>{"use strict";var Fc=W(),kc=C();bn.exports=(t,e,r)=>{let n=[],s=null,i=null,o=t.sort((h,l)=>kc(h,l,r));for(let h of o)Fc(h,e,r)?(i=h,s||(s=h)):(i&&n.push([s,i]),i=null,s=null);s&&n.push([s,null]);let a=[];for(let[h,l]of n)h===l?a.push(h):!l&&h===o[0]?a.push("*"):l?h===o[0]?a.push(`<=${l}`):a.push(`${h} - ${l}`):a.push(`>=${h}`);let c=a.join(" || "),u=typeof e.raw=="string"?e.raw:String(e);return c.length<u.length?c:e}});var Jn=E((Rl,Xn)=>{"use strict";var Gn=L(),ze=B(),{ANY:Ye}=ze,We=W(),Ke=C(),Dc=(t,e,r={})=>{if(t===e)return!0;t=new Gn(t,r),e=new Gn(e,r);let n=!1;e:for(let s of t.set){for(let i of e.set){let o=_c(s,i,r);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},Uc=[new ze(">=0.0.0-0")],Mn=[new ze(">=0.0.0")],_c=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Ye){if(e.length===1&&e[0].semver===Ye)return!0;r.includePrerelease?t=Uc:t=Mn}if(e.length===1&&e[0].semver===Ye){if(r.includePrerelease)return!0;e=Mn}let n=new Set,s,i;for(let f of t)f.operator===">"||f.operator===">="?s=Hn(s,f,r):f.operator==="<"||f.operator==="<="?i=Vn(i,f,r):n.add(f.semver);if(n.size>1)return null;let o;if(s&&i){if(o=Ke(s.semver,i.semver,r),o>0)return null;if(o===0&&(s.operator!==">="||i.operator!=="<="))return null}for(let f of n){if(s&&!We(f,String(s),r)||i&&!We(f,String(i),r))return null;for(let $ of e)if(!We(f,String($),r))return!1;return!0}let a,c,u,h,l=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1,m=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1;l&&l.prerelease.length===1&&i.operator==="<"&&l.prerelease[0]===0&&(l=!1);for(let f of e){if(h=h||f.operator===">"||f.operator===">=",u=u||f.operator==="<"||f.operator==="<=",s){if(m&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===m.major&&f.semver.minor===m.minor&&f.semver.patch===m.patch&&(m=!1),f.operator===">"||f.operator===">="){if(a=Hn(s,f,r),a===f&&a!==s)return!1}else if(s.operator===">="&&!f.test(s.semver))return!1}if(i){if(l&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===l.major&&f.semver.minor===l.minor&&f.semver.patch===l.patch&&(l=!1),f.operator==="<"||f.operator==="<="){if(c=Vn(i,f,r),c===f&&c!==i)return!1}else if(i.operator==="<="&&!f.test(i.semver))return!1}if(!f.operator&&(i||s)&&o!==0)return!1}return!(s&&u&&!i&&o!==0||i&&h&&!s&&o!==0||m||l)},Hn=(t,e,r)=>{if(!t)return e;let n=Ke(t.semver,e.semver,r);return n>0?t:n<0||e.operator===">"&&t.operator===">="?e:t},Vn=(t,e,r)=>{if(!t)return e;let n=Ke(t.semver,e.semver,r);return n<0?t:n>0||e.operator==="<"&&t.operator==="<="?e:t};Xn.exports=Dc});var zn=E((Il,Wn)=>{"use strict";var Qe=b(),Bn=_(),bc=S(),Yn=ke(),jc=P(),Gc=gr(),Mc=wr(),Hc=yr(),Vc=Nr(),Xc=Cr(),Jc=Or(),Bc=qr(),Yc=Pr(),Wc=C(),zc=Ur(),Kc=br(),Qc=re(),Zc=Hr(),ea=Xr(),ta=J(),ra=ne(),na=_e(),sa=be(),ia=se(),oa=ie(),ca=je(),aa=en(),ua=rn(),la=B(),fa=L(),ha=W(),da=$n(),pa=Rn(),ma=yn(),Ea=Nn(),ga=Cn(),$a=ae(),wa=Pn(),Ra=kn(),Ia=_n(),ya=jn(),Sa=Jn();Wn.exports={parse:jc,valid:Gc,clean:Mc,inc:Hc,diff:Vc,major:Xc,minor:Jc,patch:Bc,prerelease:Yc,compare:Wc,rcompare:zc,compareLoose:Kc,compareBuild:Qc,sort:Zc,rsort:ea,gt:ta,lt:ra,eq:na,neq:sa,gte:ia,lte:oa,cmp:ca,coerce:aa,truncate:ua,Comparator:la,Range:fa,satisfies:ha,toComparators:da,maxSatisfying:pa,minSatisfying:ma,minVersion:Ea,validRange:ga,outside:$a,gtr:wa,ltr:Ra,intersects:Ia,simplifyRange:ya,subset:Sa,SemVer:bc,re:Qe.re,src:Qe.src,tokens:Qe.t,SEMVER_SPEC_VERSION:Bn.SEMVER_SPEC_VERSION,RELEASE_TYPES:Bn.RELEASE_TYPES,compareIdentifiers:Yn.compareIdentifiers,rcompareIdentifiers:Yn.rcompareIdentifiers}});var he=E((yl,os)=>{var F=require("fs"),O=require("path"),Qn=sr(),v=zn(),{DEFAULT_API_URL:Ta}=V(),Zn=["dependencies","devDependencies","optionalDependencies","peerDependencies"];function Ze(t){let e=typeof t=="string"&&t.match(/^((?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*)(?:@([^\r\n]+))?$/);if(!e)throw new Error(`Invalid npm dependency: ${String(t)}`);return{name:e[1],version:e[2]}}function tt(t){let e=new Map;for(let r of t){let{name:n,version:s}=Ze(r),i=e.get(n);e.set(n,i&&s?es(n,i,s):s||i)}return e}function es(t,e,r){if(e===r)return e;let n=v.validRange(e),s=v.validRange(r);if(n&&s)try{if(v.subset(s,n))return r;if(v.subset(n,s))return e}catch{}throw new Error(`Conflicting registry versions for ${t}: ${e} and ${r}`)}function Na(t,e){let r=typeof t=="string"&&v.validRange(t),n=v.validRange(e);if(!r||!n)return!1;try{return v.subset(r,n)}catch{return!1}}function le(t,e){if(Na(t,e))return"satisfied";let r=typeof t=="string"&&v.validRange(t),n=v.validRange(e);if(!r||!n)return"incomparable";try{let s=v.minVersion(r),i=v.minVersion(n);return!s||!i?"incomparable":v.lt(s,i)?"lower":"newer"}catch{return"incomparable"}}function ue(t,e){let r=Zn.find(n=>Object.hasOwn(t[n]||{},e));return r?{section:r,existing:t[r][e]}:null}function ts(t,e){let r=tt(e);if(r.size===0)return;let n=O.join(t,"package.json"),s=JSON.parse(F.readFileSync(n,"utf8"));for(let[i,o]of r){let a=ue(s,i),c=a?.section||"dependencies";s[c]||={};let u=a?.existing;s[c][i]=u===void 0?o||"latest":o&&le(u,o)==="lower"?o:u}F.writeFileSync(n,`${JSON.stringify(s,null,2)}
|
|
3
|
+
`)}function fe(t){let e=[["pnpm-lock.yaml","pnpm"],["yarn.lock","yarn"],["bun.lock","bun"],["bun.lockb","bun"],["package-lock.json","npm"],["npm-shrinkwrap.json","npm"]];for(let r=O.resolve(t);;r=O.dirname(r)){let n=O.join(r,"package.json");if(F.existsSync(n)){let s=JSON.parse(F.readFileSync(n,"utf8")),i=String(s.packageManager||"").split("@")[0];if(["npm","pnpm","yarn","bun"].includes(i))return i}for(let[s,i]of e)if(F.existsSync(O.join(r,s)))return i;if(O.dirname(r)===r)return"npm"}}var Kn={npm:"npx",pnpm:"pnpm exec",yarn:"yarn",bun:"bunx"};function et(t,e=process.cwd()){let r;try{r=fe(e)}catch{r="npm"}return`${Kn[r]||Kn.npm} frontfriend ${t}`}function Aa(t,e=process.cwd()){let r=null;try{if(r=t?new URL(t).origin:null,r==="https://app.v4.frontfriend.dev")return et("login --api-url https://app.frontfriend.dev",e)}catch{r=null}return et(r&&r!==new URL(Ta).origin?`login --api-url ${r}`:"login",e)}function rs(t){return JSON.parse(F.readFileSync(O.join(t,"package.json"),"utf8"))}function rt(t,e){let r=tt(e);if(r.size===0)return[];let n=rs(t),s=[];for(let[i,o]of r){let a=ue(n,i);a&&(!o||le(a.existing,o)!=="lower")||s.push(o?`${i}@${o}`:i)}return s}function Ca(t,e){let r=e.filter(l=>l.required),n=tt(r.flatMap(l=>l.dependencies)),s=(l,m)=>m.filter(f=>f.dependencies.some($=>Ze($).name===l)).map(f=>f.component).filter(Boolean),i=e.filter(l=>!l.required);if(n.size===0&&i.length===0)return{missing:[],kept:[],repair:[]};let o=rs(t),a=[],c=[];for(let[l,m]of n){let f=ue(o,l);if(!f){a.push(m?`${l}@${m}`:l);continue}if(!m)continue;let $=le(f.existing,m);$==="lower"?a.push(`${l}@${m}`):$!=="satisfied"&&c.push({name:l,current:f.existing,declared:m,components:s(l,r)})}let u=new Map;for(let l of i.flatMap(m=>m.dependencies)){let{name:m,version:f}=Ze(l);if(n.has(m)||ue(o,m))continue;let $=u.get(m),A=f||$?.version;if($?.version&&f&&$.version!==f)try{A=es(m,$.version,f)}catch{A=$.version}u.set(m,{version:A})}let h=[...u].map(([l,{version:m}])=>({request:m?`${l}@${m}`:l,components:s(l,i)}));return{missing:a,kept:c,repair:h}}function ns(t,e){return[t==="npm"?"install":"add",...e]}function La(t){return/^[\w@/.:^~=+-]+$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}function ss(t,e){let r=fe(t);return[r,...ns(r,e)].map(La).join(" ")}function is(t,e,{stdio:r="inherit"}={}){let n=rt(t,e);if(n.length===0)return;let s=fe(t),i=Qn.sync(s,ns(s,n),{cwd:t,stdio:r});if(i.error||i.status!==0)throw ts(t,e),i.error||new Error(`${s} dependency installation failed with status ${i.status}. Dependencies were saved; run ${s} install.`)}function Oa(t,e,{install:r=!0,stdio:n="inherit",log:s=console.log}={}){let i=rt(t,e);if(i.length===0)return{missing:i,command:null,installed:!1};let o=ss(t,i);if(!r)return s(`\u{1F4E6} Component dependencies missing from package.json. Install them with:
|
|
4
|
+
${o}`),{missing:i,command:o,installed:!1};s(`\u{1F4E6} Installing component dependencies: ${o}`);try{return is(t,i,{stdio:n}),{missing:i,command:o,installed:!0}}catch(a){return s(`\u26A0\uFE0F Component dependencies were not installed: ${a.message}
|
|
5
5
|
Install them with:
|
|
6
|
-
${o}`),{missing:i,command:o,installed:!1,error:a.message}}}function
|
|
7
|
-
${c}`),{installed:!1,command:c};s(`\u{1F4E6} Installing ${e}: ${c}`);let u=
|
|
6
|
+
${o}`),{missing:i,command:o,installed:!1,error:a.message}}}function va(t,e){for(let r=O.resolve(t);;r=O.dirname(r)){if(F.existsSync(O.join(r,"node_modules",e,"package.json")))return!0;if(O.dirname(r)===r)return!1}}function qa(t,e,{install:r=!0,stdio:n="inherit",log:s=console.log}={}){let i=JSON.parse(F.readFileSync(O.join(t,"package.json"),"utf8"));if(!Zn.some(l=>Object.hasOwn(i[l]||{},e))||va(t,e))return{installed:!1,command:null};let a=fe(t),c=`${a} install`;if(!r)return s(`\u{1F4E6} ${e} is in package.json but not installed. Install it with:
|
|
7
|
+
${c}`),{installed:!1,command:c};s(`\u{1F4E6} Installing ${e}: ${c}`);let u=Qn.sync(a,["install"],{cwd:t,stdio:n});if(!u.error&&u.status===0)return{installed:!0,command:c};let h=u.error?u.error.message:`${a} install failed with status ${u.status}`;return s(`\u26A0\uFE0F ${e} was not installed: ${h}
|
|
8
8
|
Install it with:
|
|
9
|
-
${c}`),{installed:!1,command:c,error:h}}
|
|
10
|
-
`),"ff-id"),this.name="DesignSystemRequiredError",this.code=fs,this.command=e,this.lines=s}};function za(t,{command:e,apiUrl:r,flagHint:n}={}){if(t&&typeof t.ffId=="string"&&t.ffId.trim())return t.ffId;throw new pe({command:e,apiUrl:r,flagHint:n})}function Ka(t){if(!t)return null;try{let e=new URL(t),r=e.pathname.match(/\/design-systems\/([^/]+)/);return r?decodeURIComponent(r[1]):e.searchParams.get("ffId")}catch{return null}}function Qa(t){try{return new URL(t).origin}catch{return null}}function Za(){try{return rt().signedInAccount()?.email||null}catch{return null}}function Es({ffId:t,apiUrl:e,email:r=Za()}={}){return["\u{1F512} You don't have access to this design system yet.",` 1. Ask a workspace admin to invite ${r||"the email you sign in with"}.`," 2. Accept the invitation from the email you receive.",` 3. Run \`${Ja("init")}\` again.`,` Signed in with another account? Run \`${Ba(e)}\` to switch.`,...t?[` Reference for support: ${t}`]:[]]}function eu(t,{ffId:e,apiUrl:r,email:n}={}){if(!t||typeof t!="object")return null;let s=t.statusCode,i=`${t.message||""} ${t.serverMessage||""}`,o=e||Ka(t.url),a=o?`"${o}"`:"configured in frontfriend.config.js",c=ps(r||Qa(t.url));if(s===404&&(t.serverCode===nt||/design system not found/i.test(i)))return{code:nt,lines:[`\u{1F517} Design System ${a} was not found on ${c}.`," The ff-id in frontfriend.config.js does not match any Design System there."," Copy the ff-id again from the Design System in Frontfriend, or connect another one:"," npx frontfriend setup --ff-id <ff-id>"]};let u=/\/design-systems\/|[?&]ffId=/.test(t.url||"");return s===403&&u&&t.serverCode&&!Ya.has(t.serverCode)?{code:ds,lines:[`\u{1F512} Frontfriend denied this operation on Design System ${a}.`,` ${t.serverMessage||"The operation is not allowed."} (${t.serverCode})`," Your login reaches this Design System: check your workspace role and plan, or ask a workspace admin."]}:s===403&&u?{code:hs,lines:Es({ffId:o,apiUrl:c,email:n})}:null}gs.exports={DESIGN_SYSTEM_REQUIRED:fs,DESIGN_SYSTEM_NOT_FOUND:nt,DESIGN_SYSTEM_FORBIDDEN:hs,DESIGN_SYSTEM_OPERATION_DENIED:ds,DesignSystemRequiredError:pe,missingDesignSystemLines:ms,requireDesignSystem:za,describeDesignSystemAccessError:eu,accessRefusalLines:Es}});var st=require("https"),it=require("http"),{URL:H}=require("url"),{DEFAULT_API_URL:tu,ENV_VARS:me}=V(),{APIError:w}=ye(),{isMachineCredential:ru,postJson:ws,resolveAuthToken:nu}=rt(),{describeDesignSystemAccessError:gl}=$s(),{loginCommand:su}=he(),M=t=>`Authentication required. Run \`${su(t)}\` to sign in, then run the command again.`;function Ee(t){let e=new H(t);if(e.username||e.password||e.protocol!=="https:"&&!(e.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(e.hostname)))throw new Error("Frontfriend API URLs require HTTPS except on localhost, without URL credentials");return e}function Rs(t,e,r,n,s,i){let o,a=setTimeout(()=>{let h=new w("Frontfriend API request timed out",408,e);i(h),o?.destroy(h)},s);a.unref?.();let c=()=>clearTimeout(a),u=h=>{h.once("end",c),h.once("error",c),h.once("aborted",()=>{c(),i(new w("Frontfriend API response was interrupted",0,e))}),n(h)};try{return o=r?t.get(new H(e),{headers:{authorization:`Bearer ${r}`}},u):t.get(e,u),o.once("error",c),o}catch(h){throw c(),h}}function ot(t,e=""){let r=t.headers?.location||"";return t.statusCode===401||t.statusCode===403||t.statusCode>=300&&t.statusCode<400&&r.includes("/sign-in")||String(e).trim().startsWith("/sign-in")}function ge(t,e,r=""){if(ot(t,r)){let c=new w(M(e),t.statusCode,e);if(t.statusCode===403)try{let u=r?JSON.parse(r):null;typeof u?.code=="string"&&(c.serverCode=u.code);let h=u?.error||u?.message;typeof h=="string"&&(c.serverMessage=h)}catch{}return c}let n=t.statusMessage,s,i,o;try{let c=r?JSON.parse(r):null;s=c?.code||c?.error?.code,i=c?.currentVersion,typeof c?.message=="string"&&(o=c.message),typeof c?.error=="string"?n=c.error:typeof c?.error?.message=="string"&&(n=c.error.message);let u=[...Array.isArray(c?.cssErrors||c?.error?.details?.cssErrors)?(c.cssErrors||c.error.details.cssErrors).slice(0,5).map(h=>`${h.property}: ${h.className}`):[],...Array.isArray(c?.schemaErrors||c?.error?.details?.schemaErrors)?(c.schemaErrors||c.error.details.schemaErrors).slice(0,5):[]];u.length>0&&(n=`${n} (${u.join("; ")})`)}catch{}let a=new w(`HTTP ${t.statusCode}: ${n}`,t.statusCode,e);return s&&(a.code=s),i&&(a.currentVersion=i),o&&(a.serverMessage=o),a}var ct=class{constructor(e,r={}){if(this.ffId=e,this.baseURL=r.baseURL||process.env[me.FF_API_URL]||tu,Ee(this.baseURL),this.timeoutMs=r.timeoutMs??3e4,this.writeTimeoutMs=r.timeoutMs??18e4,!Number.isFinite(this.timeoutMs)||this.timeoutMs<=0)throw new Error("API timeout must be positive");this.configuredAuthToken=r.authToken||null,this.authToken=null,this.skipCredentials=r.skipCredentials}async getAuthToken(){return process.env[me.FF_MACHINE_TOKEN]?(this.authToken=process.env[me.FF_MACHINE_TOKEN],this.authToken):(this.authToken=await nu({baseURL:this.baseURL,envToken:process.env[me.FF_AUTH_TOKEN],configuredToken:this.configuredAuthToken,skipCredentials:this.skipCredentials}),this.authToken)}async usesMachineCredential(){return ru(await this.getAuthToken())}async fetchJson(e,r={}){let n=Ee(e),s=await this.getAuthToken();if(s&&n.origin!==new H(this.baseURL).origin)throw new Error("Refusing to send Frontfriend credentials to another API origin");return new Promise((i,o)=>{let a=e.startsWith("https")?st:it;Rs(a,e,s,c=>{let u="";if(c.statusCode>=300&&(c.statusCode<400||r.readErrorBody===!1)){c.resume?.(),o(ge(c,e));return}c.on("data",h=>{u+=h}),c.on("end",()=>{if(c.statusCode>=300){o(ge(c,e,u));return}try{let h=JSON.parse(u);r.returnHeaders?i({data:h,headers:c.headers}):i(h)}catch(h){if(ot(c,u)){o(new w(M(e),c.statusCode,e));return}o(new w(`Invalid JSON response: ${h.message}`,c.statusCode,e))}}),c.on("error",h=>{o(new w(`Response error: ${h.message}`,c.statusCode,e))})},this.timeoutMs,o).on("error",c=>{o(new w(`Network error: ${c.message}`,0,e))})})}async fetchRaw(e){let r=Ee(e),n=await this.getAuthToken();if(n&&r.origin!==new H(this.baseURL).origin)throw new Error("Refusing to send Frontfriend credentials to another API origin");return new Promise((s,i)=>{let o=e.startsWith("https")?st:it;Rs(o,e,n,a=>{let c="";if(a.statusCode>=300){a.resume?.(),i(ge(a,e));return}a.on("data",u=>{c+=u}),a.on("end",()=>{s(c)}),a.on("error",u=>{i(new w(`Response error: ${u.message}`,a.statusCode,e))})},this.timeoutMs,i).on("error",a=>{i(new w(`Network error: ${a.message}`,0,e))})})}async fetchProcessedTokens(e={}){let r=new H(`${this.baseURL}/api/design-systems/${this.ffId}/processed-tokens`);e.tag&&r.searchParams.append("tag",e.tag),e.release&&r.searchParams.append("release",e.release),e.version&&r.searchParams.append("version",e.version),r.searchParams.set("colorFormat","oklch");let n=r.toString(),s=await this.fetchJson(n,{returnHeaders:!0,readErrorBody:!0});return s.headers&&(s.data.versionMetadata={version:s.headers["x-frontfriend-version"],versionId:s.headers["x-frontfriend-version-id"],releaseId:s.headers["x-frontfriend-release-id"],tag:s.headers["x-frontfriend-tag"],cached:s.headers["x-frontfriend-cached"]==="true"}),s.data}async sendJson(e,r,n){let s=Ee(e),i=await this.getAuthToken();if(!i)throw new w(M(e),401,e);if(s.origin!==new H(this.baseURL).origin)throw new Error("Refusing to send Frontfriend credentials to another API origin");return new Promise((o,a)=>{let c,u=()=>clearTimeout(c),h=e.startsWith("https")?st:it,l=n===void 0?"":JSON.stringify(n||{}),m=h.request({hostname:s.hostname,port:s.port,path:`${s.pathname}${s.search}`,method:r,headers:{"content-type":"application/json","content-length":Buffer.byteLength(l),...i?{authorization:`Bearer ${i}`}:{}}},f=>{f.once("end",u),f.once("error",A=>{u(),a(new w(`Response error: ${A.message}`,0,e))}),f.once("aborted",()=>{u(),a(new w("Frontfriend API response was interrupted",0,e))});let $="";f.on("data",A=>{$+=A}),f.on("end",()=>{if(f.statusCode>=300){a(ge(f,e,$));return}if(!$){o(null);return}try{o(JSON.parse($))}catch(A){if(ot(f,$)){a(new w(M(e),f.statusCode,e));return}a(new w(`Invalid JSON response: ${A.message}`,f.statusCode,e))}})});c=setTimeout(()=>{let f=new w("Frontfriend API request timed out",408,e);a(f),m.destroy(f)},this.writeTimeoutMs),c.unref?.(),m.on("error",f=>{u(),a(new w(`Network error: ${f.message}`,0,e))}),m.write(l),m.end()})}async pushComponentsConfig(e,r,n,s={}){let i=`${this.baseURL}/api/design-systems/${this.ffId}/components-config`;if(!s.expectedVersionId)throw new w("expectedVersionId is required",0,i);let o={authoredComponentsConfig:e,expectedVersionId:s.expectedVersionId};return typeof r=="string"&&r.length>0&&(o.customCss=r),typeof n=="string"&&n.length>0&&(o.iconLibrary=n),s.themeStudioRecipe&&typeof s.themeStudioRecipe=="object"&&(o.themeStudioRecipe=s.themeStudioRecipe),this.sendJson(i,"PUT",o)}async migrateComponents(e){let r=`${this.baseURL}/api/design-systems/${this.ffId}/migrate`;return this.sendJson(r,"POST",e)}async importShadcn(e){return this.sendJson(`${this.baseURL}/api/design-systems/${this.ffId}/shadcn/import`,"POST",e)}async fetchCurrentVersionId(e={}){let r=typeof e=="string"?{tag:e}:e,n=r.version?`version=${encodeURIComponent(r.version)}`:r.tag?`tag=${encodeURIComponent(r.tag)}`:"root=true",s=`${this.baseURL}/api/design-systems/${this.ffId}/processed-tokens?${n}`,i=await this.fetchJson(s,{returnHeaders:!0,readErrorBody:!0});this.currentBaseLibrary=i?.data?.baseLibrary||i?.data?.base;let o=i?.headers||{};return o["x-frontfriend-version-id"]||o["X-Frontfriend-Version-Id"]}async listMigrationSnapshots(){let e=`${this.baseURL}/api/design-systems/${this.ffId}/migrate/snapshots`;return this.fetchJson(e)}async getMigrationSnapshot(e){let r=`${this.baseURL}/api/design-systems/${this.ffId}/migrate/snapshots/${e}`;return this.fetchJson(r)}async fetchPlanMetadata(e={}){if(!e.framework||!e.primitive)throw new w("Entitlement lookup requires an explicit Project target.",400);let r=`${this.baseURL}/api/design-systems/${this.ffId}/entitlements?framework=${encodeURIComponent(e.framework)}&primitive=${encodeURIComponent(e.primitive)}`,n=await this.fetchJson(r);if(n?.schemaVersion!==1||!n.canonicalCatalogue)throw new w("Unsupported entitlement response.",502,r);if(n.canonicalCatalogue.unavailable)throw new w("Entitlement policy unavailable.",503,r);return{access:"granted",subscriptionPlan:n.workspace.subscriptionPlan,freshPrivateSelection:n.capabilities?.freshPrivateSelection===!0||n.capabilities?.privateConsumption===!0,canonicalComponents:n.canonicalCatalogue.components,enforceCatalogue:!0,revisionId:n.canonicalCatalogue.revisionId}}async fetchReleaseChannels(){return this.fetchJson(`${this.baseURL}/api/design-systems/${this.ffId}/releases`)}async resolveReleaseTag({reference:e,appName:r,fallback:n}={}){let s=new URLSearchParams(e?{reference:e}:{app:r});return!e&&n&&s.set("fallback",n),this.sendJson(`${this.baseURL}/api/design-systems/${this.ffId}/workflow?${s}`,"GET")}async resolveContractRelease(e){let r=await this.fetchJson(`${this.baseURL}/api/design-systems/${this.ffId}/releases/${encodeURIComponent(e)}/resolve?runtime=sdk&contracts_only=true`);if(r.contractsOnly!==!0||r.runtime!=="sdk")throw new w("Upgrade the server before adopting contracts without a Project target.",400);return r}async resolveRelease(e,r){if(!r?.framework||!r?.primitive)throw new w("Release resolution requires an explicit Project target.",400);let n=`${this.baseURL}/api/design-systems/${this.ffId}/releases/${encodeURIComponent(e)}/resolve?runtime=sdk&framework=${encodeURIComponent(r.framework)}&primitive=${encodeURIComponent(r.primitive)}`,s=await this.fetchJson(n);if(s.runtime!=="sdk")throw new w("Upgrade the Frontfriend platform before adopting SDK Releases.",400,n);return s}async syncApplicationTarget(e,r={}){let n=await this.getAuthToken();if(!n)throw new w(M(this.baseURL),401);return ws(`${this.baseURL}/api/apps/sync`,{ffId:this.ffId,name:e.name,adopt:e.adopt,runtime:"sdk",releaseTagId:e.releaseTagId,expectedReleaseTagId:e.expectedReleaseTagId,framework:e.framework,primitive:e.primitive,dryRun:!!r.dryRun,contractsOnly:!!e.contractsOnly},n)}async publishPrivateComponent(e){let r=await this.getAuthToken();if(!r)throw new w(M(this.baseURL),401);try{return await ws(`${this.baseURL}/api/design-systems/${this.ffId}/components`,e,r)}catch(n){throw typeof n.body?.code=="string"&&(n.code=n.body.code),typeof n.body?.correlationId=="string"&&(n.correlationId=n.body.correlationId),n}}async authorizeEject(e={}){return this.sendJson(`${this.baseURL}/api/design-systems/${this.ffId}/eject`,"POST",e)}};module.exports={APIClient:ct};
|
|
9
|
+
${c}`),{installed:!1,command:c,error:h}}os.exports={cliCommand:et,loginCommand:Aa,installDeclaredPackage:qa,saveNpmDependencies:ts,installNpmDependencies:is,installMissingNpmDependencies:Oa,missingNpmDependencies:rt,npmInstallCommand:ss,planNpmDependencies:Ca,requirementStatus:le}});var st=E((Sl,ms)=>{var{assertCurrentApiOrigin:cs}=$e(),{fileExists:xa,readJsonFileSafe:Pa,removeFile:Fa,writePrivateJsonFileAtomic:ka,withPrivateFileLock:Da}=Et(),as=require("path"),Ua=require("os"),_a=require("https"),ba=require("http"),{URL:x}=require("url"),{DEFAULT_API_URL:k}=V(),{cliCommand:us,loginCommand:ja}=he(),Ga=as.join(Ua.homedir(),".frontfriend"),G=as.join(Ga,"credentials");function Ma(){return G}function de(){try{return Pa(G)}catch{return null}}function ls(t){try{let e=JSON.parse(Buffer.from(String(t).split(".")[1],"base64url").toString("utf8"));return typeof e.email=="string"?e.email:null}catch{return null}}function Ha(){let t=de();if(!t||!t.accessToken)return null;let e=Number(t.refreshExpiresAt)||0;return{email:ls(t.accessToken),apiUrl:t.ffApiUrl||null,expired:e>0&&e<Date.now()}}function fs(t){ka(G,t)}function Va(){return xa(G)?(Fa(G),!0):!1}function nt(t,e=60*1e3){return!t?.accessToken||!t.expiresAt||Date.now()+e>=t.expiresAt}function j(t,{apiUrl:e,login:r,next:n}={}){let s=n||`Run \`${r||ja(e)}\` to sign in, then run the command again.`,i=new Error(`${t}. ${s}`);return i.code="FF_AUTH_REFRESH_FAILED",i}function hs(t,e,r){return cs(t),new Promise((n,s)=>{let i=new x(t);if(i.protocol!=="https:"&&!(i.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(i.hostname))){s(new Error("Frontfriend API URLs require HTTPS except on localhost"));return}let o=i.protocol==="https:"?_a:ba,a=JSON.stringify(e||{}),c=o.request({hostname:i.hostname,port:i.port,path:`${i.pathname}${i.search}`,method:"POST",headers:{"content-type":"application/json","content-length":Buffer.byteLength(a),...r?{authorization:`Bearer ${r}`}:{}}},u=>{let h="";u.on("data",l=>{h+=l}),u.on("end",()=>{if(u.statusCode>=300&&u.statusCode<400){let m=u.headers.location?` to ${u.headers.location}`:"",f=new Error(`HTTP ${u.statusCode}: redirected${m}`);f.statusCode=u.statusCode,f.body=h,s(f);return}let l=null;try{l=h?JSON.parse(h):null}catch{let f=u.headers["content-type"]||"unknown content-type",$=new Error(`Expected JSON from FrontFriend API at ${t}, but received ${f} (HTTP ${u.statusCode}). Check FF_API_URL or pass --api-url with the FrontFriend app URL.`);if($.statusCode=u.statusCode,$.body=h,u.statusCode>=400){s($);return}s($);return}if(u.statusCode>=400){let m=new Error(l?.error_description||l?.error||`HTTP ${u.statusCode}`);m.statusCode=u.statusCode,m.body=l,s(m);return}n(l)})});c.setTimeout(15e3,()=>c.destroy(Object.assign(new Error("Frontfriend API request timed out"),{code:"ETIMEDOUT"}))),c.on("error",s),c.write(a),c.end()})}function ds(t,e){let r=new x(t?.ffApiUrl||k).origin,n=new x(e).origin;return j(`You are signed in to ${r}, but this command uses ${n}`,{login:us(`login --api-url ${n}`)})}async function Xa(t){return Da(G,t,()=>j("Another Frontfriend command is renewing your sign-in",{next:"Wait for it to finish, then run the command again."}))}async function ps(t,e=k){return Xa(async()=>{let r=de();if(r&&new x(r.ffApiUrl||k).origin===new x(e).origin){if(!nt(r))return r;t=r}return Ja(t,e)})}async function Ja(t,e=k){if(new x(e).origin!==new x(t.ffApiUrl||k).origin)throw ds(t,e);if(!t?.refreshToken||!t?.deviceId)throw j("Your Frontfriend sign-in has expired",{apiUrl:e});let r;try{r=await hs(`${e}/api/plugin/token`,{grant_type:"refresh_token",refresh_token:t.refreshToken,device_id:t.deviceId})}catch(s){throw Object.assign(j(s?.message?`Could not renew your Frontfriend sign-in (${s.message})`:"Could not renew your Frontfriend sign-in",{apiUrl:e}),{cause:s})}if(!r?.access_token||!r?.refresh_token)throw j("Could not renew your Frontfriend sign-in",{apiUrl:e});let n={accessToken:r.access_token,refreshToken:r.refresh_token,deviceId:r.device_id||t.deviceId,expiresAt:Date.now()+(r.expires_in||900)*1e3,refreshExpiresAt:Date.now()+(r.refresh_expires_in||604800)*1e3,ffApiUrl:e};return fs(n),n}var Ba="ffm_";function Ya(t){return typeof t=="string"&&t.startsWith(Ba)}async function Wa(t={}){if(t.baseURL&&cs(t.baseURL),t.envToken)return t.envToken;if(!t.skipCredentials){let e=de();if(e?.accessToken||e?.refreshToken){let r=t.baseURL||e.ffApiUrl||k;if(new x(r).origin!==new x(e.ffApiUrl||k).origin)throw ds(e,r);return e.accessToken&&!nt(e)?e.accessToken:(await ps(e,r)).accessToken}}return t.configuredToken?(t.silent||console.warn(`\u26A0\uFE0F auth-token in frontfriend.config.js is deprecated. Run \`${us("login")}\` to keep your sign-in outside the repository.`),t.configuredToken):null}ms.exports={isMachineCredential:Ya,accountEmail:ls,signedInAccount:Ha,getCredentialsPath:Ma,readCredentials:de,writeCredentials:fs,deleteCredentials:Va,isExpired:nt,postJson:hs,refreshCredentials:ps,resolveAuthToken:Wa,createAuthRefreshError:j}});var Ss=E((Tl,ys)=>{var{ConfigError:za}=Se(),{DEFAULT_API_URL:Ka}=V(),{cliCommand:Qa,loginCommand:Za}=he(),Es="DESIGN_SYSTEM_REQUIRED",it="DESIGN_SYSTEM_NOT_FOUND",gs="DESIGN_SYSTEM_FORBIDDEN",$s="DESIGN_SYSTEM_OPERATION_DENIED",eu=new Set(["TENANT_MISMATCH","RESOURCE_MISMATCH","UNAUTHENTICATED"]);function ws(t){return String(t||Ka).replace(/\/+$/,"")}function tu({apiUrl:t,flagHint:e}){return[` 1. Create a Design System at ${ws(t)} (or open an existing one) and copy its ff-id.`," 2. Connect it to this project:"," npx frontfriend login"," npx frontfriend setup --ff-id <ff-id>",` or add "ff-id": "<ff-id>" to frontfriend.config.js${e?`, ${e}`:""}.`]}function Rs({command:t,apiUrl:e,flagHint:r,reportOnly:n=!1}={}){return["\u{1F517} No Design System connected to this project.",` ${t?`\`frontfriend ${t}\` works`:"Frontfriend works"} on a Design System (ff-id), and frontfriend.config.js has none yet.`," Connect one first:",...tu({apiUrl:e,flagHint:r}),...n?[]:[" Nothing in this project was changed."]]}var pe=class extends za{constructor({command:e,apiUrl:r,flagHint:n}={}){let s=Rs({command:e,apiUrl:r,flagHint:n});super(s.join(`
|
|
10
|
+
`),"ff-id"),this.name="DesignSystemRequiredError",this.code=Es,this.command=e,this.lines=s}};function ru(t,{command:e,apiUrl:r,flagHint:n}={}){if(t&&typeof t.ffId=="string"&&t.ffId.trim())return t.ffId;throw new pe({command:e,apiUrl:r,flagHint:n})}function nu(t){if(!t)return null;try{let e=new URL(t),r=e.pathname.match(/\/design-systems\/([^/]+)/);return r?decodeURIComponent(r[1]):e.searchParams.get("ffId")}catch{return null}}function su(t){try{return new URL(t).origin}catch{return null}}function iu(){try{return st().signedInAccount()?.email||null}catch{return null}}function Is({ffId:t,apiUrl:e,email:r=iu()}={}){return["\u{1F512} You don't have access to this design system yet.",` 1. Ask a workspace admin to invite ${r||"the email you sign in with"}.`," 2. Accept the invitation from the email you receive.",` 3. Run \`${Qa("init")}\` again.`,` Signed in with another account? Run \`${Za(e)}\` to switch.`,...t?[` Reference for support: ${t}`]:[]]}function ou(t,{ffId:e,apiUrl:r,email:n}={}){if(!t||typeof t!="object")return null;let s=t.statusCode,i=`${t.message||""} ${t.serverMessage||""}`,o=e||nu(t.url),a=o?`"${o}"`:"configured in frontfriend.config.js",c=ws(r||su(t.url));if(s===404&&(t.serverCode===it||/design system not found/i.test(i)))return{code:it,lines:[`\u{1F517} Design System ${a} was not found on ${c}.`," The ff-id in frontfriend.config.js does not match any Design System there."," Copy the ff-id again from the Design System in Frontfriend, or connect another one:"," npx frontfriend setup --ff-id <ff-id>"]};let u=/\/design-systems\/|[?&]ffId=/.test(t.url||"");return s===403&&u&&t.serverCode&&!eu.has(t.serverCode)?{code:$s,lines:[`\u{1F512} Frontfriend denied this operation on Design System ${a}.`,` ${t.serverMessage||"The operation is not allowed."} (${t.serverCode})`," Your login reaches this Design System: check your workspace role and plan, or ask a workspace admin."]}:s===403&&u?{code:gs,lines:Is({ffId:o,apiUrl:c,email:n})}:null}ys.exports={DESIGN_SYSTEM_REQUIRED:Es,DESIGN_SYSTEM_NOT_FOUND:it,DESIGN_SYSTEM_FORBIDDEN:gs,DESIGN_SYSTEM_OPERATION_DENIED:$s,DesignSystemRequiredError:pe,missingDesignSystemLines:Rs,requireDesignSystem:ru,describeDesignSystemAccessError:ou,accessRefusalLines:Is}});var{assertCurrentApiOrigin:cu}=$e(),ot=require("https"),ct=require("http"),{URL:H}=require("url"),{DEFAULT_API_URL:au,ENV_VARS:me}=V(),{APIError:w}=Se(),{isMachineCredential:uu,postJson:Ts,resolveAuthToken:lu}=st(),{describeDesignSystemAccessError:Nl}=Ss(),{loginCommand:fu}=he(),M=t=>`Authentication required. Run \`${fu(t)}\` to sign in, then run the command again.`;function Ee(t){cu(t);let e=new H(t);if(e.username||e.password||e.protocol!=="https:"&&!(e.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(e.hostname)))throw new Error("Frontfriend API URLs require HTTPS except on localhost, without URL credentials");return e}function Ns(t,e,r,n,s,i){let o,a=setTimeout(()=>{let h=new w("Frontfriend API request timed out",408,e);i(h),o?.destroy(h)},s);a.unref?.();let c=()=>clearTimeout(a),u=h=>{h.once("end",c),h.once("error",c),h.once("aborted",()=>{c(),i(new w("Frontfriend API response was interrupted",0,e))}),n(h)};try{return o=r?t.get(new H(e),{headers:{authorization:`Bearer ${r}`}},u):t.get(e,u),o.once("error",c),o}catch(h){throw c(),h}}function at(t,e=""){let r=t.headers?.location||"";return t.statusCode===401||t.statusCode===403||t.statusCode>=300&&t.statusCode<400&&r.includes("/sign-in")||String(e).trim().startsWith("/sign-in")}function ge(t,e,r=""){if(at(t,r)){let c=new w(M(e),t.statusCode,e);if(t.statusCode===403)try{let u=r?JSON.parse(r):null;typeof u?.code=="string"&&(c.serverCode=u.code);let h=u?.error||u?.message;typeof h=="string"&&(c.serverMessage=h)}catch{}return c}let n=t.statusMessage,s,i,o;try{let c=r?JSON.parse(r):null;s=c?.code||c?.error?.code,i=c?.currentVersion,typeof c?.message=="string"&&(o=c.message),typeof c?.error=="string"?n=c.error:typeof c?.error?.message=="string"&&(n=c.error.message);let u=[...Array.isArray(c?.cssErrors||c?.error?.details?.cssErrors)?(c.cssErrors||c.error.details.cssErrors).slice(0,5).map(h=>`${h.property}: ${h.className}`):[],...Array.isArray(c?.schemaErrors||c?.error?.details?.schemaErrors)?(c.schemaErrors||c.error.details.schemaErrors).slice(0,5):[]];u.length>0&&(n=`${n} (${u.join("; ")})`)}catch{}let a=new w(`HTTP ${t.statusCode}: ${n}`,t.statusCode,e);return s&&(a.code=s),i&&(a.currentVersion=i),o&&(a.serverMessage=o),a}var ut=class{constructor(e,r={}){if(this.ffId=e,this.baseURL=r.baseURL||process.env[me.FF_API_URL]||au,Ee(this.baseURL),this.timeoutMs=r.timeoutMs??3e4,this.writeTimeoutMs=r.timeoutMs??18e4,!Number.isFinite(this.timeoutMs)||this.timeoutMs<=0)throw new Error("API timeout must be positive");this.configuredAuthToken=r.authToken||null,this.authToken=null,this.skipCredentials=r.skipCredentials}async getAuthToken(){return process.env[me.FF_MACHINE_TOKEN]?(this.authToken=process.env[me.FF_MACHINE_TOKEN],this.authToken):(this.authToken=await lu({baseURL:this.baseURL,envToken:process.env[me.FF_AUTH_TOKEN],configuredToken:this.configuredAuthToken,skipCredentials:this.skipCredentials}),this.authToken)}async usesMachineCredential(){return uu(await this.getAuthToken())}async fetchJson(e,r={}){let n=Ee(e),s=await this.getAuthToken();if(s&&n.origin!==new H(this.baseURL).origin)throw new Error("Refusing to send Frontfriend credentials to another API origin");return new Promise((i,o)=>{let a=e.startsWith("https")?ot:ct;Ns(a,e,s,c=>{let u="";if(c.statusCode>=300&&(c.statusCode<400||r.readErrorBody===!1)){c.resume?.(),o(ge(c,e));return}c.on("data",h=>{u+=h}),c.on("end",()=>{if(c.statusCode>=300){o(ge(c,e,u));return}try{let h=JSON.parse(u);r.returnHeaders?i({data:h,headers:c.headers}):i(h)}catch(h){if(at(c,u)){o(new w(M(e),c.statusCode,e));return}o(new w(`Invalid JSON response: ${h.message}`,c.statusCode,e))}}),c.on("error",h=>{o(new w(`Response error: ${h.message}`,c.statusCode,e))})},this.timeoutMs,o).on("error",c=>{o(new w(`Network error: ${c.message}`,0,e))})})}async fetchRaw(e){let r=Ee(e),n=await this.getAuthToken();if(n&&r.origin!==new H(this.baseURL).origin)throw new Error("Refusing to send Frontfriend credentials to another API origin");return new Promise((s,i)=>{let o=e.startsWith("https")?ot:ct;Ns(o,e,n,a=>{let c="";if(a.statusCode>=300){a.resume?.(),i(ge(a,e));return}a.on("data",u=>{c+=u}),a.on("end",()=>{s(c)}),a.on("error",u=>{i(new w(`Response error: ${u.message}`,a.statusCode,e))})},this.timeoutMs,i).on("error",a=>{i(new w(`Network error: ${a.message}`,0,e))})})}async fetchProcessedTokens(e={}){let r=new H(`${this.baseURL}/api/design-systems/${this.ffId}/processed-tokens`);e.tag&&r.searchParams.append("tag",e.tag),e.release&&r.searchParams.append("release",e.release),e.version&&r.searchParams.append("version",e.version),r.searchParams.set("colorFormat","oklch");let n=r.toString(),s=await this.fetchJson(n,{returnHeaders:!0,readErrorBody:!0});return s.headers&&(s.data.versionMetadata={version:s.headers["x-frontfriend-version"],versionId:s.headers["x-frontfriend-version-id"],releaseId:s.headers["x-frontfriend-release-id"],tag:s.headers["x-frontfriend-tag"],cached:s.headers["x-frontfriend-cached"]==="true"}),s.data}async sendJson(e,r,n){let s=Ee(e),i=await this.getAuthToken();if(!i)throw new w(M(e),401,e);if(s.origin!==new H(this.baseURL).origin)throw new Error("Refusing to send Frontfriend credentials to another API origin");return new Promise((o,a)=>{let c,u=()=>clearTimeout(c),h=e.startsWith("https")?ot:ct,l=n===void 0?"":JSON.stringify(n||{}),m=h.request({hostname:s.hostname,port:s.port,path:`${s.pathname}${s.search}`,method:r,headers:{"content-type":"application/json","content-length":Buffer.byteLength(l),...i?{authorization:`Bearer ${i}`}:{}}},f=>{f.once("end",u),f.once("error",A=>{u(),a(new w(`Response error: ${A.message}`,0,e))}),f.once("aborted",()=>{u(),a(new w("Frontfriend API response was interrupted",0,e))});let $="";f.on("data",A=>{$+=A}),f.on("end",()=>{if(f.statusCode>=300){a(ge(f,e,$));return}if(!$){o(null);return}try{o(JSON.parse($))}catch(A){if(at(f,$)){a(new w(M(e),f.statusCode,e));return}a(new w(`Invalid JSON response: ${A.message}`,f.statusCode,e))}})});c=setTimeout(()=>{let f=new w("Frontfriend API request timed out",408,e);a(f),m.destroy(f)},this.writeTimeoutMs),c.unref?.(),m.on("error",f=>{u(),a(new w(`Network error: ${f.message}`,0,e))}),m.write(l),m.end()})}async pushComponentsConfig(e,r,n,s={}){let i=`${this.baseURL}/api/design-systems/${this.ffId}/components-config`;if(!s.expectedVersionId)throw new w("expectedVersionId is required",0,i);let o={authoredComponentsConfig:e,expectedVersionId:s.expectedVersionId};return typeof r=="string"&&r.length>0&&(o.customCss=r),typeof n=="string"&&n.length>0&&(o.iconLibrary=n),s.themeStudioRecipe&&typeof s.themeStudioRecipe=="object"&&(o.themeStudioRecipe=s.themeStudioRecipe),this.sendJson(i,"PUT",o)}async migrateComponents(e){let r=`${this.baseURL}/api/design-systems/${this.ffId}/migrate`;return this.sendJson(r,"POST",e)}async importShadcn(e){return this.sendJson(`${this.baseURL}/api/design-systems/${this.ffId}/shadcn/import`,"POST",e)}async fetchCurrentVersionId(e={}){let r=typeof e=="string"?{tag:e}:e,n=r.version?`version=${encodeURIComponent(r.version)}`:r.tag?`tag=${encodeURIComponent(r.tag)}`:"root=true",s=`${this.baseURL}/api/design-systems/${this.ffId}/processed-tokens?${n}`,i=await this.fetchJson(s,{returnHeaders:!0,readErrorBody:!0});this.currentBaseLibrary=i?.data?.baseLibrary||i?.data?.base;let o=i?.headers||{};return o["x-frontfriend-version-id"]||o["X-Frontfriend-Version-Id"]}async listMigrationSnapshots(){let e=`${this.baseURL}/api/design-systems/${this.ffId}/migrate/snapshots`;return this.fetchJson(e)}async getMigrationSnapshot(e){let r=`${this.baseURL}/api/design-systems/${this.ffId}/migrate/snapshots/${e}`;return this.fetchJson(r)}async fetchPlanMetadata(e={}){if(!e.framework||!e.primitive)throw new w("Entitlement lookup requires an explicit Project target.",400);let r=`${this.baseURL}/api/design-systems/${this.ffId}/entitlements?framework=${encodeURIComponent(e.framework)}&primitive=${encodeURIComponent(e.primitive)}`,n=await this.fetchJson(r);if(n?.schemaVersion!==1||!n.canonicalCatalogue)throw new w("Unsupported entitlement response.",502,r);if(n.canonicalCatalogue.unavailable)throw new w("Entitlement policy unavailable.",503,r);return{access:"granted",subscriptionPlan:n.workspace.subscriptionPlan,freshPrivateSelection:n.capabilities?.freshPrivateSelection===!0||n.capabilities?.privateConsumption===!0,canonicalComponents:n.canonicalCatalogue.components,enforceCatalogue:!0,revisionId:n.canonicalCatalogue.revisionId}}async fetchReleaseChannels(){return this.fetchJson(`${this.baseURL}/api/design-systems/${this.ffId}/releases`)}async resolveReleaseTag({reference:e,appName:r,fallback:n}={}){let s=new URLSearchParams(e?{reference:e}:{app:r});return!e&&n&&s.set("fallback",n),this.sendJson(`${this.baseURL}/api/design-systems/${this.ffId}/workflow?${s}`,"GET")}async resolveContractRelease(e){let r=await this.fetchJson(`${this.baseURL}/api/design-systems/${this.ffId}/releases/${encodeURIComponent(e)}/resolve?runtime=sdk&contracts_only=true`);if(r.contractsOnly!==!0||r.runtime!=="sdk")throw new w("Upgrade the server before adopting contracts without a Project target.",400);return r}async resolveRelease(e,r){if(!r?.framework||!r?.primitive)throw new w("Release resolution requires an explicit Project target.",400);let n=`${this.baseURL}/api/design-systems/${this.ffId}/releases/${encodeURIComponent(e)}/resolve?runtime=sdk&framework=${encodeURIComponent(r.framework)}&primitive=${encodeURIComponent(r.primitive)}`,s=await this.fetchJson(n);if(s.runtime!=="sdk")throw new w("Upgrade the Frontfriend platform before adopting SDK Releases.",400,n);return s}async syncApplicationTarget(e,r={}){let n=await this.getAuthToken();if(!n)throw new w(M(this.baseURL),401);return Ts(`${this.baseURL}/api/apps/sync`,{ffId:this.ffId,name:e.name,adopt:e.adopt,runtime:"sdk",releaseTagId:e.releaseTagId,expectedReleaseTagId:e.expectedReleaseTagId,framework:e.framework,primitive:e.primitive,dryRun:!!r.dryRun,contractsOnly:!!e.contractsOnly},n)}async publishPrivateComponent(e){let r=await this.getAuthToken();if(!r)throw new w(M(this.baseURL),401);try{return await Ts(`${this.baseURL}/api/design-systems/${this.ffId}/components`,e,r)}catch(n){throw typeof n.body?.code=="string"&&(n.code=n.body.code),typeof n.body?.correlationId=="string"&&(n.correlationId=n.body.correlationId),n}}async authorizeEject(e={}){return this.sendJson(`${this.baseURL}/api/design-systems/${this.ffId}/eject`,"POST",e)}};module.exports={APIClient:ut};
|