bunup 0.5.12 → 0.5.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.js +41 -41
  2. package/package.json +2 -2
package/dist/cli.js CHANGED
@@ -1,77 +1,77 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var Ir=Object.create;var{getPrototypeOf:Lr,defineProperty:me,getOwnPropertyNames:Tr}=Object;var Dr=Object.prototype.hasOwnProperty;var R=(e,r,t)=>{t=e!=null?Ir(Lr(e)):{};let n=r||!e||!e.__esModule?me(t,"default",{value:e,enumerable:!0}):t;for(let i of Tr(e))if(!Dr.call(n,i))me(n,i,{get:()=>e[i],enumerable:!0});return n};var Ar=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var Oe=(e,r)=>{for(var t in r)me(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(n)=>r[t]=()=>n})};var b=(e,r)=>()=>(e&&(r=e(e=0)),r);var Wr=import.meta.require;var F=Ar((jt,ge)=>{var P=process||{},Me=P.argv||[],X=P.env||{},Ur=!(!!X.NO_COLOR||Me.includes("--no-color"))&&(!!X.FORCE_COLOR||Me.includes("--color")||P.platform==="win32"||(P.stdout||{}).isTTY&&X.TERM!=="dumb"||!!X.CI),Gr=(e,r,t=e)=>(n)=>{let i=""+n,o=i.indexOf(r,e.length);return~o?e+Yr(i,r,t,o)+r:e+i+r},Yr=(e,r,t,n)=>{let i="",o=0;do i+=e.substring(o,n)+t,o=n+r.length,n=e.indexOf(r,o);while(~n);return i+e.substring(o)},je=(e=Ur)=>{let r=e?Gr:()=>String;return{isColorSupported:e,reset:r("\x1B[0m","\x1B[0m"),bold:r("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:r("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:r("\x1B[3m","\x1B[23m"),underline:r("\x1B[4m","\x1B[24m"),inverse:r("\x1B[7m","\x1B[27m"),hidden:r("\x1B[8m","\x1B[28m"),strikethrough:r("\x1B[9m","\x1B[29m"),black:r("\x1B[30m","\x1B[39m"),red:r("\x1B[31m","\x1B[39m"),green:r("\x1B[32m","\x1B[39m"),yellow:r("\x1B[33m","\x1B[39m"),blue:r("\x1B[34m","\x1B[39m"),magenta:r("\x1B[35m","\x1B[39m"),cyan:r("\x1B[36m","\x1B[39m"),white:r("\x1B[37m","\x1B[39m"),gray:r("\x1B[90m","\x1B[39m"),bgBlack:r("\x1B[40m","\x1B[49m"),bgRed:r("\x1B[41m","\x1B[49m"),bgGreen:r("\x1B[42m","\x1B[49m"),bgYellow:r("\x1B[43m","\x1B[49m"),bgBlue:r("\x1B[44m","\x1B[49m"),bgMagenta:r("\x1B[45m","\x1B[49m"),bgCyan:r("\x1B[46m","\x1B[49m"),bgWhite:r("\x1B[47m","\x1B[49m"),blackBright:r("\x1B[90m","\x1B[39m"),redBright:r("\x1B[91m","\x1B[39m"),greenBright:r("\x1B[92m","\x1B[39m"),yellowBright:r("\x1B[93m","\x1B[39m"),blueBright:r("\x1B[94m","\x1B[39m"),magentaBright:r("\x1B[95m","\x1B[39m"),cyanBright:r("\x1B[96m","\x1B[39m"),whiteBright:r("\x1B[97m","\x1B[39m"),bgBlackBright:r("\x1B[100m","\x1B[49m"),bgRedBright:r("\x1B[101m","\x1B[49m"),bgGreenBright:r("\x1B[102m","\x1B[49m"),bgYellowBright:r("\x1B[103m","\x1B[49m"),bgBlueBright:r("\x1B[104m","\x1B[49m"),bgMagentaBright:r("\x1B[105m","\x1B[49m"),bgCyanBright:r("\x1B[106m","\x1B[49m"),bgWhiteBright:r("\x1B[107m","\x1B[49m")}};ge.exports=je();ge.exports.createColors=je});function Q(e){Re=e??!1}class Y{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=p.default.blue;mutedColor=p.default.dim;infoColor=p.default.cyan;warnColor=p.default.yellow;errorColor=p.default.red;defaultColor=p.default.white;progressFgColorMap={ESM:p.default.yellow,CJS:p.default.green,IIFE:p.default.magenta,DTS:p.default.blue};progressBgColorMap={ESM:p.default.bgYellow,CJS:p.default.bgGreen,IIFE:p.default.bgMagenta,DTS:p.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!Y.instance)Y.instance=new Y;return Y.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(e){if(!e?.once)return!0;if(this.loggedOnceMessages.has(e.once))return!1;return this.loggedOnceMessages.add(e.once),!0}formatMessage({fgColor:e,bgColor:r,label:t,message:n,identifier:i,muted:o}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-t.length)),c=o?this.mutedColor(n):n,a=i?` ${r(p.default.black(` ${i} `))}`:"";return`${e(t)} ${s}${c}${a}`}output(e,r={},t=console.log){if(Re||!this.shouldLog(r))return;if(r.verticalSpace)t("");if(t(e),r.verticalSpace)t("")}cli(e,r={}){let t=this.formatMessage({fgColor:this.cliColor,bgColor:p.default.bgBlue,label:this.labels.cli,message:e,identifier:r.identifier,muted:r.muted});this.output(t,r)}info(e,r={}){let t=this.formatMessage({fgColor:this.infoColor,bgColor:p.default.bgCyan,label:this.labels.info,message:e,identifier:r.identifier,muted:r.muted});this.output(t,r)}warn(e,r={}){let t=this.formatMessage({fgColor:this.warnColor,bgColor:p.default.bgYellow,label:this.labels.warn,message:e,identifier:r.identifier,muted:r.muted});this.output(t,r,console.warn)}error(e,r={}){let t=this.formatMessage({fgColor:this.errorColor,bgColor:p.default.bgRed,label:this.labels.error,message:e,identifier:r.identifier,muted:r.muted});this.output(t,r,console.error)}getProgressFgColor(e){for(let[r,t]of Object.entries(this.progressFgColorMap))if(e.includes(r))return t;return this.defaultColor}getProgressBgColor(e){for(let[r,t]of Object.entries(this.progressBgColorMap))if(e.includes(r))return t;return p.default.bgWhite}progress(e,r,t={}){let n=this.getProgressFgColor(e),i=this.getProgressBgColor(e),o=this.formatMessage({fgColor:n,bgColor:i,label:e,message:r,identifier:t.identifier,muted:t.muted});this.output(o,t)}}var p,Re=!1,m;var O=b(()=>{p=R(F(),1);m=Y.getInstance()});function pe(e){return e instanceof N}var w,T,D,Z,S,v,N,A=(e)=>{if(e instanceof Error)return e.message;return String(e)},qr,fe=(e,r)=>{let t=A(e),n=r?`[${r}] `:"",i=pe(e),o="ERROR";if(e instanceof D)o="BUILD ERROR";else if(e instanceof Z)o="DTS ERROR";else if(e instanceof S)o="CLI ERROR";else if(e instanceof v)o="WATCH ERROR";else if(i)o="ISOLATED DECL ERROR";else if(e instanceof T)o="BUNUP ERROR";let s=qr.find((c)=>c.pattern.test(t)&&(c.errorType===o||!c.errorType));if(!s&&!i)console.error(`${w.default.red(o)} ${n}${t}`);if(s)console.log(`
4
- `),s.logSolution(t),console.log(`
5
- `);else if(!i)console.error(w.default.dim(w.default.white("If you think this is a bug, please open an issue at: ")+w.default.cyan("https://github.com/arshad-yaseen/bunup/issues/new")))},Fe=(e,r)=>{fe(e,r),process.exit(1)};var W=b(()=>{w=R(F(),1);O();T=class T extends Error{constructor(e){super(e);this.name="BunupError"}};D=class D extends T{constructor(e){super(e);this.name="BunupBuildError"}};Z=class Z extends T{constructor(e){super(e);this.name="BunupDTSBuildError"}};S=class S extends T{constructor(e){super(e);this.name="BunupCLIError"}};v=class v extends T{constructor(e){super(e);this.name="BunupWatchError"}};N=class N extends T{constructor(e){super(e);this.name="BunupIsolatedDeclError"}};qr=[{pattern:/Could not resolve: "bun"/i,errorType:"BUILD ERROR",logSolution:()=>{m.error(w.default.white("You're trying to build a project that uses Bun. ")+w.default.white("Please set the target option to ")+w.default.cyan("`bun`")+w.default.white(`.
6
- `)+w.default.white("Example: ")+w.default.green("`bunup --target bun`")+w.default.white(" or in config: ")+w.default.green("{ target: 'bun' }"))}}]});import Le from"fs/promises";import Vr from"path";function Te(e,r,t){return Array.isArray(e)?e.map((n)=>({...n,[r]:t})):{...e,[r]:t}}function De(e){return Array.isArray(e)?e:[e]}function Ae(e,r){switch(e){case"esm":return q(r)?".js":".mjs";case"cjs":return q(r)?".cjs":".js";case"iife":return".global.js"}}function We(e,r){switch(e){case"esm":return q(r)?".d.ts":".d.mts";case"cjs":return q(r)?".d.cts":".d.ts";case"iife":return".d.ts"}}function be(e){return e==="node"||e==="bun"}function q(e){return e==="module"}function H(e){return e>=1000?`${(e/1000).toFixed(2)}s`:`${Math.round(e)}ms`}function _e(e){if(!e)return[];return Array.from(new Set([...Object.keys(e.dependencies||{}),...Object.keys(e.peerDependencies||{})]))}function _(e,r=3){return e.split("/").slice(-r).join("/")}async function Ue(e,r){let t=Vr.join(e,r);try{await Le.rm(t,{recursive:!0,force:!0})}catch(n){throw new D(`Failed to clean output directory: ${n}`)}await Le.mkdir(t,{recursive:!0})}var I=b(()=>{W()});function zr(e){return _e(e).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function Ge(e,r){return typeof r==="string"?r===e:r.test(e)}function xe(e,r,t){let i=zr(t).some((s)=>s.test(e))||r.external?.some((s)=>Ge(e,s)),o=r.noExternal?.some((s)=>Ge(e,s));return i&&!o}var he=b(()=>{I()});function ee(e){return e.endsWith(".d.ts")||e.endsWith(".d.mts")||e.endsWith(".d.cts")}function re(e){return[".ts",".mts",".cts",".tsx"].some((r)=>e.endsWith(r))&&!ee(e)}function te(e){if(ee(e))return e;if(e.endsWith(".mts"))return`${e.slice(0,-4)}.d.mts`;if(e.endsWith(".cts"))return`${e.slice(0,-4)}.d.cts`;if(Ye.test(e))return e.replace(Ye,".d.ts");return`${e}.d.ts`}var qe,Ve,Ye;var ne=b(()=>{he();qe=/\.(d\.ts|d\.mts|d\.cts)$/,Ve=/[\\/]node_modules[\\/]/,Ye=/\.(js|mjs|cjs|ts|mts|cts|tsx|jsx)$/});import{basename as Kr,dirname as Jr,extname as Xr}from"path";function ie(e){let r=Kr(e),t=Xr(r);return t?r.slice(0,-t.length):r}function z(e){if(typeof e==="string")return[{fullPath:e,outputBasePath:ie(e)}];if(typeof e==="object"&&!Array.isArray(e))return Object.entries(e).map(([n,i])=>({fullPath:i,outputBasePath:n}));let r=[],t=new Set;for(let n of e){let i=ie(n);if(!t.has(i)){r.push({fullPath:n,outputBasePath:i}),t.add(i);continue}let s=Jr(n).split("/").filter((a)=>a!=="."&&a!=="");if(s.length===0){let a=1,u;do u=`${i}_${a++}`;while(t.has(u));r.push({fullPath:n,outputBasePath:u}),t.add(u);continue}let c=!1;for(let a=1;a<=s.length&&!c;a++){let d=`${s.slice(-a).join("/")}/${i}`;if(!t.has(d))r.push({fullPath:n,outputBasePath:d}),t.add(d),c=!0}if(!c){let a=1,u;do u=`${s.join("/")}/${i}_${a++}`;while(t.has(u));r.push({fullPath:n,outputBasePath:u}),t.add(u)}}return r}function ze(e){return e.filter((r)=>re(r.fullPath))}function Ke(e,r){return`[dir]/${e}${r}`}function Je(e){return`${e}-[hash].[ext]`}function Xe(e){return`${e}-[name]-[hash].[ext]`}var oe=b(()=>{ne()});import vr from"path";import{loadConfig as Ze}from"coffi";async function ve(e,r,t){return Array.isArray(e)&&"root"in e[0]?e.filter((n)=>t?t.includes(n.name):!0).map((n)=>({rootDir:vr.resolve(r,n.root),options:Te(n.config,"name",n.name)})):[{rootDir:r,options:e}]}async function Ne(e){let{config:r,filepath:t}=await Ze({name:"package",cwd:e,extensions:[".json"]});return{packageJson:r,path:t}}async function He(e,r){let{config:t,filepath:n}=await Ze({name:"tsconfig",cwd:e,extensions:[".json"],preferredPath:r});return{tsconfig:t,path:n}}var Ce=b(()=>{I()});function er(e,r,t,n){let i=e.labels[0],o=i?Hr(r,i.start):"",c=`${_(t)}${o}: ${Nr(e.message)}`,a=et(r,i?.start,i?.end);m[n?"warn":"error"](`${c}
3
+ var Yt=Object.create;var{getPrototypeOf:Vt,defineProperty:fe,getOwnPropertyNames:qt}=Object;var zt=Object.prototype.hasOwnProperty;var I=(e,t,n)=>{n=e!=null?Yt(Vt(e)):{};let r=t||!e||!e.__esModule?fe(n,"default",{value:e,enumerable:!0}):n;for(let i of qt(e))if(!zt.call(r,i))fe(r,i,{get:()=>e[i],enumerable:!0});return r};var Pt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var De=(e,t)=>{for(var n in t)fe(e,n,{get:t[n],enumerable:!0,configurable:!0,set:(r)=>t[n]=()=>r})};var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var vt=import.meta.require;var F=Pt((Un,be)=>{var Z=process||{},Te=Z.argv||[],Q=Z.env||{},Kt=!(!!Q.NO_COLOR||Te.includes("--no-color"))&&(!!Q.FORCE_COLOR||Te.includes("--color")||Z.platform==="win32"||(Z.stdout||{}).isTTY&&Q.TERM!=="dumb"||!!Q.CI),Xt=(e,t,n=e)=>(r)=>{let i=""+r,o=i.indexOf(t,e.length);return~o?e+Qt(i,t,n,o)+t:e+i+t},Qt=(e,t,n,r)=>{let i="",o=0;do i+=e.substring(o,r)+n,o=r+t.length,r=e.indexOf(t,o);while(~r);return i+e.substring(o)},Ae=(e=Kt)=>{let t=e?Xt:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};be.exports=Ae();be.exports.createColors=Ae});function N(e){We=e??!1}class q{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=p.default.blue;mutedColor=p.default.dim;infoColor=p.default.cyan;warnColor=p.default.yellow;errorColor=p.default.red;defaultColor=p.default.white;progressFgColorMap={ESM:p.default.yellow,CJS:p.default.green,IIFE:p.default.magenta,DTS:p.default.blue};progressBgColorMap={ESM:p.default.bgYellow,CJS:p.default.bgGreen,IIFE:p.default.bgMagenta,DTS:p.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!q.instance)q.instance=new q;return q.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(e){if(!e?.once)return!0;if(this.loggedOnceMessages.has(e.once))return!1;return this.loggedOnceMessages.add(e.once),!0}formatMessage({fgColor:e,bgColor:t,label:n,message:r,identifier:i,muted:o}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-n.length)),c=o?this.mutedColor(r):r,a=i?` ${t(p.default.black(` ${i} `))}`:"";return`${e(n)} ${s}${c}${a}`}output(e,t={},n=console.log){if(We||!this.shouldLog(t))return;if(t.verticalSpace)n("");if(n(e),t.verticalSpace)n("")}cli(e,t={}){let n=this.formatMessage({fgColor:this.cliColor,bgColor:p.default.bgBlue,label:this.labels.cli,message:e,identifier:t.identifier,muted:t.muted});this.output(n,t)}info(e,t={}){let n=this.formatMessage({fgColor:this.infoColor,bgColor:p.default.bgCyan,label:this.labels.info,message:e,identifier:t.identifier,muted:t.muted});this.output(n,t)}warn(e,t={}){let n=this.formatMessage({fgColor:this.warnColor,bgColor:p.default.bgYellow,label:this.labels.warn,message:e,identifier:t.identifier,muted:t.muted});this.output(n,t,console.warn)}error(e,t={}){let n=this.formatMessage({fgColor:this.errorColor,bgColor:p.default.bgRed,label:this.labels.error,message:e,identifier:t.identifier,muted:t.muted});this.output(n,t,console.error)}getProgressFgColor(e){for(let[t,n]of Object.entries(this.progressFgColorMap))if(e.includes(t))return n;return this.defaultColor}getProgressBgColor(e){for(let[t,n]of Object.entries(this.progressBgColorMap))if(e.includes(t))return n;return p.default.bgWhite}progress(e,t,n={}){let r=this.getProgressFgColor(e),i=this.getProgressBgColor(e),o=this.formatMessage({fgColor:r,bgColor:i,label:e,message:t,identifier:n.identifier,muted:n.muted});this.output(o,n)}}var p,We=!1,g;var R=x(()=>{p=I(F(),1);g=q.getInstance()});function xe(e){return e instanceof te}var C,W,_,H,O,ee,te,U=(e)=>{if(e instanceof Error)return e.message;return String(e)},Zt,he=(e,t)=>{let n=U(e),r=t?`[${t}] `:"",i=xe(e),o="ERROR";if(e instanceof _)o="BUILD ERROR";else if(e instanceof H)o="DTS ERROR";else if(e instanceof O)o="CLI ERROR";else if(e instanceof ee)o="WATCH ERROR";else if(i)o="ISOLATED DECL ERROR";else if(e instanceof W)o="BUNUP ERROR";let s=Zt.find((c)=>c.pattern.test(n)&&(c.errorType===o||!c.errorType));if(!s&&!i)console.error(`${C.default.red(o)} ${r}${n}`);if(s)console.log(`
4
+ `),s.logSolution(n),console.log(`
5
+ `);else if(!i)console.error(C.default.dim(C.default.white("If you think this is a bug, please open an issue at: ")+C.default.cyan("https://github.com/arshad-yaseen/bunup/issues/new")))},_e=(e,t)=>{he(e,t),process.exit(1)};var G=x(()=>{C=I(F(),1);R();W=class W extends Error{constructor(e){super(e);this.name="BunupError"}};_=class _ extends W{constructor(e){super(e);this.name="BunupBuildError"}};H=class H extends W{constructor(e){super(e);this.name="BunupDTSBuildError"}};O=class O extends W{constructor(e){super(e);this.name="BunupCLIError"}};ee=class ee extends W{constructor(e){super(e);this.name="BunupWatchError"}};te=class te extends W{constructor(e){super(e);this.name="BunupIsolatedDeclError"}};Zt=[{pattern:/Could not resolve: "bun"/i,errorType:"BUILD ERROR",logSolution:()=>{g.error(C.default.white("You're trying to build a project that uses Bun. ")+C.default.white("Please set the target option to ")+C.default.cyan("`bun`")+C.default.white(`.
6
+ `)+C.default.white("Example: ")+C.default.green("`bunup --target bun`")+C.default.white(" or in config: ")+C.default.green("{ target: 'bun' }"))}}]});import Ge from"fs/promises";import Nt from"path";function Ye(e,t,n){return Array.isArray(e)?e.map((r)=>({...r,[t]:n})):{...e,[t]:n}}function Ve(e){return Array.isArray(e)?e:[e]}function qe(e,t){switch(e){case"esm":return z(t)?".js":".mjs";case"cjs":return z(t)?".cjs":".js";case"iife":return".global.js"}}function ze(e,t){switch(e){case"esm":return z(t)?".d.ts":".d.mts";case"cjs":return z(t)?".d.cts":".d.ts";case"iife":return".d.ts"}}function we(e){return e==="node"||e==="bun"}function z(e){return e==="module"}function ne(e){return e>=1000?`${(e/1000).toFixed(2)}s`:`${Math.round(e)}ms`}function Pe(e){if(!e)return[];return Array.from(new Set([...Object.keys(e.dependencies||{}),...Object.keys(e.peerDependencies||{})]))}function Y(e,t=3){return e.split("/").slice(-t).join("/")}async function ve(e,t){let n=Nt.join(e,t);try{await Ge.rm(n,{recursive:!0,force:!0})}catch(r){throw new _(`Failed to clean output directory: ${r}`)}await Ge.mkdir(n,{recursive:!0})}var L=x(()=>{G()});function Ht(e){return Pe(e).map((t)=>new RegExp(`^${t}($|\\/|\\\\)`))}function Je(e,t){return typeof t==="string"?t===e:t.test(e)}function Ce(e,t,n){let i=Ht(n).some((s)=>s.test(e))||t.external?.some((s)=>Je(e,s)),o=t.noExternal?.some((s)=>Je(e,s));return i&&!o}var ye=x(()=>{L()});function re(e){return e.endsWith(".d.ts")||e.endsWith(".d.mts")||e.endsWith(".d.cts")}function ie(e){return[".ts",".mts",".cts",".tsx"].some((t)=>e.endsWith(t))&&!re(e)}function oe(e){if(re(e))return e;if(e.endsWith(".mts"))return`${e.slice(0,-4)}.d.mts`;if(e.endsWith(".cts"))return`${e.slice(0,-4)}.d.cts`;if(Ke.test(e))return e.replace(Ke,".d.ts");return`${e}.d.ts`}var Xe,Qe,Ke;var se=x(()=>{ye();Xe=/\.(d\.ts|d\.mts|d\.cts)$/,Qe=/[\\/]node_modules[\\/]/,Ke=/\.(js|mjs|cjs|ts|mts|cts|tsx|jsx)$/});import{basename as en,dirname as tn,extname as nn}from"path";function ce(e){let t=en(e),n=nn(t);return n?t.slice(0,-n.length):t}function J(e){if(typeof e==="string")return[{fullPath:e,outputBasePath:ce(e)}];if(typeof e==="object"&&!Array.isArray(e))return Object.entries(e).map(([r,i])=>({fullPath:i,outputBasePath:r}));let t=[],n=new Set;for(let r of e){let i=ce(r);if(!n.has(i)){t.push({fullPath:r,outputBasePath:i}),n.add(i);continue}let s=tn(r).split("/").filter((a)=>a!=="."&&a!=="");if(s.length===0){let a=1,l;do l=`${i}_${a++}`;while(n.has(l));t.push({fullPath:r,outputBasePath:l}),n.add(l);continue}let c=!1;for(let a=1;a<=s.length&&!c;a++){let u=`${s.slice(-a).join("/")}/${i}`;if(!n.has(u))t.push({fullPath:r,outputBasePath:u}),n.add(u),c=!0}if(!c){let a=1,l;do l=`${s.join("/")}/${i}_${a++}`;while(n.has(l));t.push({fullPath:r,outputBasePath:l}),n.add(l)}}return t}function Ze(e){return e.filter((t)=>ie(t.fullPath))}function Ne(e,t){return`[dir]/${e}${t}`}function He(e){return`${e}-[hash].[ext]`}function et(e){return`${e}-[name]-[hash].[ext]`}var ae=x(()=>{se()});import cn from"path";import{loadConfig as rt}from"coffi";async function it(e,t,n){return Array.isArray(e)&&"root"in e[0]?e.filter((r)=>n?n.includes(r.name):!0).map((r)=>({rootDir:cn.resolve(t,r.root),options:Ye(r.config,"name",r.name)})):[{rootDir:t,options:e}]}async function ot(e){let{config:t,filepath:n}=await rt({name:"package",cwd:e,extensions:[".json"]});return{packageJson:t,path:n}}async function st(e,t){let{config:n,filepath:r}=await rt({name:"tsconfig",cwd:e,extensions:[".json"],preferredPath:t});return{tsconfig:n,path:r}}var Be=x(()=>{L()});function ct(e,t,n,r){let i=e.labels[0],o=i?ln(t,i.start):"",c=`${Y(n)}${o}: ${an(e.message)}`,a=un(t,i?.start,i?.end);g[r?"warn":"error"](`${c}
7
7
 
8
- ${ae.default.gray(a)}`,{verticalSpace:!0})}function Nr(e){return e.replace(" with --isolatedDeclarations","").replace(" with --isolatedDeclaration","")}function Hr(e,r){if(r===void 0)return"";let t=e.slice(0,r).split(`
9
- `),n=t.length,i=t[t.length-1].length+1;return` (${n}:${i})`}function et(e,r,t){let n=e.split(`
10
- `),i=e.slice(0,r).split(`
11
- `).length,o=n[i-1],s=r-e.slice(0,r).lastIndexOf(`
12
- `)-1,c=t?Math.min(t-e.slice(0,r).lastIndexOf(`
13
- `)-1,o.length):s+1,a=" ".repeat(s)+ae.default.red(ae.default.dim("\u23AF".repeat(Math.max(1,c-s))));return`${o}
14
- ${a}`}var ae;var rr=b(()=>{ae=R(F(),1);O();I()});import{isolatedDeclaration as rt}from"oxc-transform";async function nr(e){try{let r=await Bun.file(e).text(),{code:t,errors:n}=rt(e,r);for(let i of n)tr.push({error:i,sourceText:r,tsFile:e});return t}catch(r){return m.warn(`Failed to generate declaration for ${e}: ${A(r)}`),null}}function ir(e){let r=!1;for(let{error:t,sourceText:n,tsFile:i}of tr)er(t,n,i,e),r=!0;if(r&&!e)throw console.log(`${ue.default.bgMagentaBright("Pro tip")} Enable "isolatedDeclarations" in your ${ue.default.underline("tsconfig.json")} to get these errors early in your editor
8
+ ${de.default.gray(a)}`,{verticalSpace:!0})}function an(e){return e.replace(" with --isolatedDeclarations","").replace(" with --isolatedDeclaration","")}function ln(e,t){if(t===void 0)return"";let n=e.slice(0,t).split(`
9
+ `),r=n.length,i=n[n.length-1].length+1;return` (${r}:${i})`}function un(e,t,n){let r=e.split(`
10
+ `),i=e.slice(0,t).split(`
11
+ `).length,o=r[i-1],s=t-e.slice(0,t).lastIndexOf(`
12
+ `)-1,c=n?Math.min(n-e.slice(0,t).lastIndexOf(`
13
+ `)-1,o.length):s+1,a=" ".repeat(s)+de.default.red(de.default.dim("\u23AF".repeat(Math.max(1,c-s))));return`${o}
14
+ ${a}`}var de;var at=x(()=>{de=I(F(),1);R();L()});import{isolatedDeclaration as dn}from"oxc-transform";async function ut(e){try{let t=await Bun.file(e).text(),{code:n,errors:r}=dn(e,t);for(let i of r)lt.push({error:i,sourceText:t,tsFile:e});return n}catch(t){return g.warn(`Failed to generate declaration for ${e}: ${U(t)}`),null}}function dt(e){let t=!1;for(let{error:n,sourceText:r,tsFile:i}of lt)ct(n,r,i,e),t=!0;if(t&&!e)throw console.log(`${ge.default.bgMagentaBright("Pro tip")} Enable "isolatedDeclarations" in your ${ge.default.underline("tsconfig.json")} to get these errors early in your editor
15
15
 
16
- See why this is happening: ${ue.default.blueBright("https://bunup.dev/docs/troubleshooting/explicit-type-annotation-errors")}`),console.log(`
17
- `),new N}var ue,tr;var ye=b(()=>{ue=R(F(),1);W();O();rr();tr=[]});import{resolveTsImportPath as tt}from"ts-import-resolver";var or=(e,r,t)=>{let n=new Map;return{name:"bunup:virtual-dts",async resolveId(i,o){if(o===void 0)return n.set(i,e),i;let s=tt({path:i,importer:o,tsconfig:r.tsconfig,rootDir:t});if(!s||!re(s))return null;let c=te(s);if(!c)return null;return n.set(c,s),c},load:{filter:{id:{include:[qe],exclude:[Ve]}},async handler(i){if(ee(i)){let o=n.get(i);if(!o)return null;let s=await nr(o);if(!s)return null;return{code:s,moduleSideEffects:!1}}return null}},buildEnd(){n.clear()}}};var sr=b(()=>{ye();ne()});import{build as nt}from"rolldown";import{dts as it}from"rolldown-plugin-dts";import ot from"path";async function cr(e,r,t,n){let i=ot.resolve(n,e),o=te(i),s=typeof r.dts==="object"&&"resolve"in r.dts?r.dts.resolve:void 0,{output:c}=await nt({input:o,write:!1,...t.path&&{resolve:{tsconfigFilename:t.path}},onwarn(u,d){if(["UNRESOLVED_IMPORT","CIRCULAR_DEPENDENCY","EMPTY_BUNDLE"].includes(u.code??""))return;d(u)},plugins:[or(i,t,n),it({dtsInput:!0,emitDtsOnly:!0,resolve:s,tsconfig:t.path??!1})]});ir(!!r.watch);let a=c[0]?.code;if(!a)return m.warn(`Generated empty declaration file for entry "${i}"`,{muted:!0}),"";return a}var ar=b(()=>{O();ye();ne();sr()});function le(e){return{...st,...e}}function ur(e){let{minify:r,minifyWhitespace:t,minifyIdentifiers:n,minifySyntax:i}=e,o=r===!0;return{whitespace:t??o,identifiers:n??o,syntax:i??o}}function lr(e,r){return r==="cjs"?e:void 0}function dr(e){if(e===!0)return"inline";return typeof e==="string"?e:void 0}function mr(e,r,t,n){return{...typeof t==="object"&&Object.keys(t).reduce((i,o)=>{let s=JSON.stringify(t[o]);return i[`process.env.${o}`]=s,i[`import.meta.env.${o}`]=s,i},{}),...e,...n==="cjs"&&(r===!0||typeof r==="object"&&r.importMetaUrl)&&{"import.meta.url":"importMetaUrl"}}}function gr(e,r){return e===void 0?r==="esm":e}function pr(e){return typeof e==="string"?e:void 0}var st;var $e=b(()=>{st={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0}});function fr(e,r){return{name:"bunup:external-plugin",setup(t){t.onResolve({filter:/.*/},(n)=>{let i=n.path;if(xe(i,e,r))return{path:i,external:!0};return null})}}}var br=b(()=>{he()});function xr({format:e,target:r,shims:t}){let i=at(t).map((o)=>Be[o]).filter((o)=>o.appliesTo(e,r));if(i.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(o){o.onLoad({filter:ct},async({path:s})=>{let c=await Bun.file(s).text(),a=i.filter((l)=>l.isNeededInFile(c));if(a.length===0)return;let{shebangLine:u,codeContent:d}=ut(c),g=a.map((l)=>l.generateCode()).join("");return{contents:u+g+d}})}}}function at(e){if(e===!0)return Object.keys(Be);if(!e)return[];return Object.entries(e).filter(([r,t])=>t&&(r in Be)).map(([r])=>r)}function ut(e){if(!e.startsWith("#!"))return{shebangLine:"",codeContent:e};let r=e.indexOf(`
18
- `);return r===-1?{shebangLine:"",codeContent:e}:{shebangLine:e.slice(0,r+1),codeContent:e.slice(r+1)}}var ct,Be;var hr=b(()=>{I();ct=/\.(js|ts|jsx|tsx|mts|cts)$/,Be={dirnameFilename:{appliesTo:(e,r)=>e==="esm"&&be(r),isNeededInFile:(e)=>/\b__dirname\b/.test(e)||/\b__filename\b/.test(e),generateCode:()=>`import { fileURLToPath } from 'url';
16
+ See why this is happening: ${ge.default.blueBright("https://bunup.dev/docs/troubleshooting/explicit-type-annotation-errors")}`),console.log(`
17
+ `),new te}var ge,lt;var Se=x(()=>{ge=I(F(),1);G();R();at();lt=[]});import{resolveTsImportPath as gn}from"ts-import-resolver";var gt=(e,t,n)=>{let r=new Map;return{name:"bunup:virtual-dts",async resolveId(i,o){if(o===void 0)return r.set(i,e),i;let s=gn({path:i,importer:o,tsconfig:t.tsconfig,rootDir:n});if(!s||!ie(s))return null;let c=oe(s);if(!c)return null;return r.set(c,s),c},load:{filter:{id:{include:[Xe],exclude:[Qe]}},async handler(i){if(re(i)){let o=r.get(i);if(!o)return null;let s=await ut(o);if(!s)return null;return{code:s,moduleSideEffects:!1}}return null}},buildEnd(){r.clear()}}};var mt=x(()=>{Se();se()});import{build as mn}from"rolldown";import{dts as pn}from"rolldown-plugin-dts";import fn from"path";async function pt(e,t,n,r){let i=fn.resolve(r,e),o=oe(i),s=typeof t.dts==="object"&&"resolve"in t.dts?t.dts.resolve:void 0,{output:c}=await mn({input:o,write:!1,...n.path&&{resolve:{tsconfigFilename:n.path}},onwarn(l,u){if(["UNRESOLVED_IMPORT","CIRCULAR_DEPENDENCY","EMPTY_BUNDLE"].includes(l.code??""))return;u(l)},plugins:[gt(i,n,r),pn({dtsInput:!0,emitDtsOnly:!0,resolve:s,tsconfig:n.path??!1})]});dt(!!t.watch);let a=c[0]?.code;if(!a)return g.warn(`Generated empty declaration file for entry "${i}"`,{muted:!0}),"";return a}var ft=x(()=>{R();Se();se();mt()});function me(e){return{...bn,...e}}function bt(e){let{minify:t,minifyWhitespace:n,minifyIdentifiers:r,minifySyntax:i}=e,o=t===!0;return{whitespace:n??o,identifiers:r??o,syntax:i??o}}function xt(e,t){return t==="cjs"?e:void 0}function ht(e){if(e===!0)return"inline";return typeof e==="string"?e:void 0}function wt(e,t,n,r){return{...typeof n==="object"&&Object.keys(n).reduce((i,o)=>{let s=JSON.stringify(n[o]);return i[`process.env.${o}`]=s,i[`import.meta.env.${o}`]=s,i},{}),...e,...r==="cjs"&&(t===!0||typeof t==="object"&&t.importMetaUrl)&&{"import.meta.url":"importMetaUrl"}}}function Ct(e,t){return e===void 0?t==="esm":e}function yt(e){return typeof e==="string"?e:void 0}var bn;var ke=x(()=>{bn={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0}});function $t(e,t){return{name:"bunup:external-plugin",setup(n){n.onResolve({filter:/.*/},(r)=>{let i=r.path;if(Ce(i,e,t))return{path:i,external:!0};return null})}}}var Bt=x(()=>{ye()});function St({format:e,target:t,shims:n}){let i=hn(n).map((o)=>Ee[o]).filter((o)=>o.appliesTo(e,t));if(i.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(o){o.onLoad({filter:xn},async({path:s})=>{let c=await Bun.file(s).text(),a=i.filter((d)=>d.isNeededInFile(c));if(a.length===0)return;let{shebangLine:l,codeContent:u}=wn(c),m=a.map((d)=>d.generateCode()).join("");return{contents:l+m+u}})}}}function hn(e){if(e===!0)return Object.keys(Ee);if(!e)return[];return Object.entries(e).filter(([t,n])=>n&&(t in Ee)).map(([t])=>t)}function wn(e){if(!e.startsWith("#!"))return{shebangLine:"",codeContent:e};let t=e.indexOf(`
18
+ `);return t===-1?{shebangLine:"",codeContent:e}:{shebangLine:e.slice(0,t+1),codeContent:e.slice(t+1)}}var xn,Ee;var kt=x(()=>{L();xn=/\.(js|ts|jsx|tsx|mts|cts)$/,Ee={dirnameFilename:{appliesTo:(e,t)=>e==="esm"&&we(t),isNeededInFile:(e)=>/\b__dirname\b/.test(e)||/\b__filename\b/.test(e),generateCode:()=>`import { fileURLToPath } from 'url';
19
19
  import { dirname } from 'path';
20
20
 
21
21
  const __filename = fileURLToPath(import.meta.url);
22
22
  const __dirname = dirname(__filename);
23
23
 
24
- `},importMetaUrl:{appliesTo:(e,r)=>e==="cjs"&&be(r),isNeededInFile:(e)=>/\bimport\.meta\.url\b/.test(e),generateCode:()=>`import { pathToFileURL } from 'url';
24
+ `},importMetaUrl:{appliesTo:(e,t)=>e==="cjs"&&we(t),isNeededInFile:(e)=>/\bimport\.meta\.url\b/.test(e),generateCode:()=>`import { pathToFileURL } from 'url';
25
25
 
26
26
  const importMetaUrl = pathToFileURL(__filename).href;
27
27
 
28
- `}}});function wr(e){if(!e)return[];return e.filter((r)=>r.type==="bun")}function Cr(e){if(!e)return[];return e.filter((r)=>r.type==="bunup")}async function yr(e,r){if(!e)return;for(let t of e)if(t.hooks.onBuildStart)await t.hooks.onBuildStart(r)}async function $r(e,r,t){if(!e)return;for(let n of e)if(n.hooks.onBuildDone)await n.hooks.onBuildDone({options:r,output:t})}var Sr={};Oe(Sr,{build:()=>Se});async function Se(e,r=process.cwd()){let t={files:[]},n=le(e);if(!n.entry||n.entry.length===0||!n.outDir)throw new D("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(n.clean)Ue(r,n.outDir);Q(n.silent);let{packageJson:i,path:o}=await Ne(r);if(i&&o)m.cli(`Using ${_(o,2)}`,{muted:!0,identifier:n.name,once:`${o}:${n.name}`});let s=Cr(n.plugins);await yr(s,n);let c=z(n.entry),a=i?.type;if(!n.dtsOnly){let u=[fr(n,i),...wr(n.plugins).map((g)=>g.plugin)],d=n.format.flatMap((g)=>c.map(async(l)=>{let j=n.outputExtension?.({format:g,packageType:a,options:n,entry:l}).js??Ae(g,a),h=await Bun.build({entrypoints:[`${r}/${l.fullPath}`],format:g,naming:{entry:Ke(l.outputBasePath,j),chunk:Je(l.outputBasePath),asset:Xe(l.outputBasePath)},splitting:gr(n.splitting,g),bytecode:lr(n.bytecode,g),define:mr(n.define,n.shims,n.env,g),minify:ur(n),outdir:`${r}/${n.outDir}`,target:n.target,sourcemap:dr(n.sourcemap),loader:n.loader,drop:n.drop,banner:n.banner,footer:n.footer,publicPath:n.publicPath,env:pr(n.env),plugins:[...u,xr({format:g,target:n.target,shims:n.shims})],throw:!1});if(!h.success)for(let f of h.logs){if(f.level==="error")throw new D(f.message);if(f.level==="warning")m.warn(f.message);else if(f.level==="info")m.info(f.message)}for(let f of h.outputs)t.files.push({fullPath:f.path,relativePathToRootDir:f.path.replace(`${r}/`,"")});let x=Br(n.outDir,l.outputBasePath,j);m.progress(g.toUpperCase(),x,{identifier:n.name})}));await Promise.all(d)}if(n.dts||n.dtsOnly){let u=await He(r,n.preferredTsconfigPath);if(u.path)m.cli(`Using ${_(u.path,2)}`,{muted:!0,identifier:n.name,once:`${u.path}:${n.name}`});let d=n.format.filter((l)=>{if(l==="iife"&&!q(a)&&n.format.includes("cjs"))return!1;return!0}),g=typeof n.dts==="object"&&n.dts.entry?z(n.dts.entry):ze(c);try{await Promise.all(g.map(async(l)=>{let j=await cr(l.fullPath,n,u,r);await Promise.all(d.map(async(h)=>{let x=n.outputExtension?.({format:h,packageType:a,options:n,entry:l}).dts??We(h,a),f=Br(n.outDir,l.outputBasePath,x),E=dt(r,f);t.files.push({fullPath:E,relativePathToRootDir:f}),await Bun.write(E,j),m.progress("DTS",f,{identifier:n.name})}))}))}catch(l){if(pe(l))throw l;throw new Z(A(l))}}if(await $r(s,n,t),n.onSuccess)await n.onSuccess(n)}function Br(e,r,t){return`${e}/${r}${t}`}function dt(e,r){return`${e}/${r}`}var ke=b(()=>{ar();W();oe();Ce();O();$e();br();hr();I()});var jr={};Oe(jr,{init:()=>ht});import M from"fs/promises";import L from"path";import{cancel as U,confirm as V,intro as mt,isCancel as $,log as G,multiselect as Er,outro as gt,tasks as pt,text as K}from"@clack/prompts";import{detect as ft,resolveCommand as bt}from"package-manager-detector";import{exec as xt}from"tinyexec";async function Or(e){try{return await M.access(e),!0}catch{return!1}}async function ht(){mt(y.default.bgCyan(y.default.black(" Bunup ")));let e=L.join(process.cwd(),"package.json"),r;try{let l=await M.readFile(e,"utf-8");r=JSON.parse(l)}catch{G.error("Cannot find or parse package.json."),process.exit(1)}let t=await K({message:"Entry point for your library:",placeholder:"src/index.ts",defaultValue:"src/index.ts"});if($(t))U("Initialization cancelled"),process.exit(1);let n=L.join(process.cwd(),String(t));if(!await Or(n)){let l=await V({message:`Entry file ${y.default.cyan(String(t))} does not exist. Create it?`,initialValue:!0});if($(l))U("Initialization cancelled"),process.exit(1);if(l)await M.mkdir(L.dirname(n),{recursive:!0}),await M.writeFile(n,`// Your entry point
28
+ `}}});function Et(e){if(!e)return[];return e.filter((t)=>t.type==="bun")}function Ot(e){if(!e)return[];return e.filter((t)=>t.type==="bunup")}async function jt(e,t){if(!e)return;for(let n of e)if(n.hooks.onBuildStart)await n.hooks.onBuildStart(t)}async function Mt(e,t,n){if(!e)return;for(let r of e)if(r.hooks.onBuildDone)await r.hooks.onBuildDone({options:t,output:n})}var It={};De(It,{build:()=>Oe});async function Oe(e,t=process.cwd()){let n={files:[]},r=me(e);if(!r.entry||r.entry.length===0||!r.outDir)throw new _("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(r.clean)ve(t,r.outDir);N(r.silent);let{packageJson:i,path:o}=await ot(t);if(i&&o)g.cli(`Using ${Y(o,2)}`,{muted:!0,identifier:r.name,once:`${o}:${r.name}`});let s=Ot(r.plugins);await jt(s,r);let c=J(r.entry),a=i?.type;if(!r.dtsOnly){let l=[$t(r,i),...Et(r.plugins).map((m)=>m.plugin)],u=r.format.flatMap((m)=>c.map(async(d)=>{let k=r.outputExtension?.({format:m,packageType:a,options:r,entry:d}).js??qe(m,a),$=await Bun.build({entrypoints:[`${t}/${d.fullPath}`],format:m,naming:{entry:Ne(d.outputBasePath,k),chunk:He(d.outputBasePath),asset:et(d.outputBasePath)},splitting:Ct(r.splitting,m),bytecode:xt(r.bytecode,m),define:wt(r.define,r.shims,r.env,m),minify:bt(r),outdir:`${t}/${r.outDir}`,target:r.target,sourcemap:ht(r.sourcemap),loader:r.loader,drop:r.drop,banner:r.banner,footer:r.footer,publicPath:r.publicPath,env:yt(r.env),plugins:[...l,St({format:m,target:r.target,shims:r.shims})],throw:!1});if(!$.success)for(let h of $.logs){if(h.level==="error")throw new _(h.message);if(h.level==="warning")g.warn(h.message);else if(h.level==="info")g.info(h.message)}for(let h of $.outputs)n.files.push({fullPath:h.path,relativePathToRootDir:h.path.replace(`${t}/`,"")});let P=Rt(r.outDir,d.outputBasePath,k);g.progress(m.toUpperCase(),P,{identifier:r.name})}));await Promise.all(u)}if(r.dts||r.dtsOnly){let l=await st(t,r.preferredTsconfigPath);if(l.path)g.cli(`Using ${Y(l.path,2)}`,{muted:!0,identifier:r.name,once:`${l.path}:${r.name}`});let u=r.format.filter((d)=>{if(d==="iife"&&!z(a)&&r.format.includes("cjs"))return!1;return!0}),m=typeof r.dts==="object"&&r.dts.entry?J(r.dts.entry):Ze(c);try{await Promise.all(m.map(async(d)=>{let k=await pt(d.fullPath,r,l,t);await Promise.all(u.map(async($)=>{let P=r.outputExtension?.({format:$,packageType:a,options:r,entry:d}).dts??ze($,a),h=Rt(r.outDir,d.outputBasePath,P),b=yn(t,h);n.files.push({fullPath:b,relativePathToRootDir:h}),await Bun.write(b,k),g.progress("DTS",h,{identifier:r.name})}))}))}catch(d){if(xe(d))throw d;throw new H(U(d))}}if(await Mt(s,r,n),r.onSuccess)await r.onSuccess(r)}function Rt(e,t,n){return`${e}/${t}${n}`}function yn(e,t){return`${e}/${t}`}var je=x(()=>{ft();G();ae();Be();R();ke();Bt();kt();L()});var Wt={};De(Wt,{init:()=>jn});import M from"fs/promises";import A from"path";import{cancel as D,confirm as T,intro as $n,isCancel as w,log as S,multiselect as Lt,outro as Bn,tasks as Sn,text as K}from"@clack/prompts";import{loadConfig as Ie}from"coffi";import{detect as kn,resolveCommand as Me}from"package-manager-detector";import{exec as En}from"tinyexec";async function Dt(e){try{return await M.access(e),!0}catch{return!1}}async function On(){let{config:e,filepath:t}=await Ie({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,packageJsonProperty:"bunup"});return{exists:!!e,filepath:t||void 0}}async function jn(){$n(f.default.bgCyan(f.default.black(" Bunup "))),await Tt();let{exists:e,filepath:t}=await On();if(e){let b=await T({message:`A bunup configuration already exists at ${f.default.cyan(t||"bunup.config.ts")}. Continue and overwrite it?`,initialValue:!1});if(w(b)||!b)D("Initialization cancelled"),process.exit(1)}let n=await kn();if(!n)S.error("No package manager detected"),process.exit(1);let{config:r,filepath:i}=await Ie({name:"package",cwd:process.cwd(),extensions:[".json"]});if(!r||!i)S.error("Cannot find package.json."),process.exit(1);let o=await K({message:"Entry point for your library:",placeholder:"src/index.ts",defaultValue:"src/index.ts"});if(w(o))D("Initialization cancelled"),process.exit(1);let s=A.join(process.cwd(),String(o));if(!await Dt(s)){let b=await T({message:`Entry file ${f.default.cyan(String(o))} does not exist. Create it?`,initialValue:!0});if(w(b))D("Initialization cancelled"),process.exit(1);if(b)await M.mkdir(A.dirname(s),{recursive:!0}),await M.writeFile(s,`// Your entry point
29
29
 
30
30
  export function hello() {
31
- return 'Hello from ${L.basename(String(t))}';
31
+ return 'Hello from ${A.basename(String(o))}';
32
32
  }
33
- `),G.success(`Created ${t}`)}let i=await Er({message:"Output formats:",options:[{value:"esm",label:"ESM",hint:"ECMAScript modules"},{value:"cjs",label:"CJS",hint:"CommonJS modules"},{value:"iife",label:"IIFE",hint:"Immediately Invoked Function Expression"}],initialValues:["esm","cjs"],required:!0});if($(i))U("Initialization cancelled"),process.exit(1);let o=await K({message:"Output directory:",placeholder:"dist",initialValue:"dist",validate:(l)=>l?void 0:"Output directory is required"});if($(o))U("Initialization cancelled"),process.exit(1);let s=await V({message:"Generate TypeScript declarations (.d.ts files)?",initialValue:!0});if($(s))U("Initialization cancelled"),process.exit(1);let c=!1,a=[];if(r.workspaces){let l=await V({message:"Detected workspaces. Set up Bunup for multiple packages?",initialValue:!0});if($(l))U("Initialization cancelled"),process.exit(1);if(c=l,c){let j=async()=>{let x=await K({message:"Workspace name:",placeholder:"core",validate:(B)=>B?void 0:"Workspace name is required"});if($(x))return null;let f=await K({message:"Workspace root directory:",placeholder:"packages/core",validate:(B)=>B?void 0:"Workspace root is required"});if($(f))return null;let E=await K({message:"Workspace entry points (comma-separated):",placeholder:"src/index.ts",validate:(B)=>B?void 0:"At least one entry point is required"});if($(E))return null;return{name:String(x),root:String(f),entries:String(E).split(",").map((B)=>B.trim())}},h=!0;while(h){let x=await j();if(!x)break;a.push(x);for(let E of x.entries){let B=L.join(process.cwd(),x.root,E);if(!await Or(B)){let Ee=await V({message:`Entry file ${y.default.cyan(`${x.root}/${E}`)} does not exist. Create it?`,initialValue:!0});if($(Ee))break;if(Ee)await M.mkdir(L.dirname(B),{recursive:!0}),await M.writeFile(B,`// Your entry point
33
+ `),S.success(`Created ${o}`)}let c=await Lt({message:"Output formats:",options:[{value:"esm",label:"ESM",hint:"ECMAScript modules"},{value:"cjs",label:"CJS",hint:"CommonJS modules"},{value:"iife",label:"IIFE",hint:"Immediately Invoked Function Expression"}],initialValues:["esm","cjs"],required:!0});if(w(c))D("Initialization cancelled"),process.exit(1);let a=await K({message:"Output directory:",placeholder:"dist",initialValue:"dist",validate:(b)=>b?void 0:"Output directory is required"});if(w(a))D("Initialization cancelled"),process.exit(1);let l=await T({message:"Generate TypeScript declarations (.d.ts files)?",initialValue:!0});if(w(l))D("Initialization cancelled"),process.exit(1);let u=!1,m=[];if(r.workspaces){let b=await T({message:"Detected workspaces. Set up Bunup for multiple packages?",initialValue:!0});if(w(b))D("Initialization cancelled"),process.exit(1);if(u=b,u){let Gt=async()=>{let E=await K({message:"Workspace name:",placeholder:"core",validate:(B)=>B?void 0:"Workspace name is required"});if(w(E))return null;let v=await K({message:"Workspace root directory:",placeholder:"packages/core",validate:(B)=>B?void 0:"Workspace root is required"});if(w(v))return null;let V=await K({message:"Workspace entry points (comma-separated):",placeholder:"src/index.ts",validate:(B)=>B?void 0:"At least one entry point is required"});if(w(V))return null;return{name:String(E),root:String(v),entries:String(V).split(",").map((B)=>B.trim())}},Fe=!0;while(Fe){let E=await Gt();if(!E)break;m.push(E);for(let V of E.entries){let B=A.join(process.cwd(),E.root,V);if(!await Dt(B)){let Le=await T({message:`Entry file ${f.default.cyan(`${E.root}/${V}`)} does not exist. Create it?`,initialValue:!0});if(w(Le))break;if(Le)await M.mkdir(A.dirname(B),{recursive:!0}),await M.writeFile(B,`// Your entry point
34
34
 
35
35
  export function hello() {
36
- return 'Hello from ${x.name}';
36
+ return 'Hello from ${E.name}';
37
37
  }
38
- `),G.success(`Created ${x.root}/${E}`)}}let f=await V({message:"Add another workspace?",initialValue:!1});if($(f))break;h=f}}}let u=[{value:"report",label:"Report",hint:"Logs bundle size report after build",configGenerator:()=>"report()"}],d=await Er({message:"Select plugins to use (optional):",options:u,required:!1});if($(d))U("Initialization cancelled"),process.exit(1);if(c&&a.length>0)await Ct(a,i,String(o),s,d,u);else await wt(String(t),i,String(o),s,d,u);G.success("Configuration generated"),await yt(r,e),G.success("package.json updated");let g=[{title:"Installing bunup",task:async()=>{return await $t(r),"Bunup installed"}}];try{await pt(g)}catch(l){G.error(`Error: ${l instanceof Error?l.message:String(l)}`),process.exit(1)}gt(`
39
- ${y.default.bold("\uD83D\uDE80 Happy building with Bunup!")}
38
+ `),S.success(`Created ${E.root}/${V}`)}}let v=await T({message:"Add another workspace?",initialValue:!1});if(w(v))break;Fe=v}}}let d=[{value:"report",label:"Report",hint:"Logs bundle size report after build",configGenerator:()=>"report()"}],k=await Lt({message:"Select plugins to use (optional):",options:d,required:!1});if(w(k))D("Initialization cancelled"),process.exit(1);if(u&&m.length>0)await Rn(m,c,String(a),l,k,d,t||void 0);else await Mn(String(o),c,String(a),l,k,d,t||void 0);await Tt(),S.success("Configuration generated"),await In(r,i),S.success("package.json updated");let $=[{title:"Installing bunup",task:async()=>{return await Fn(r,n),"Bunup installed"}}];try{await Sn($)}catch(b){S.error(`Error: ${b instanceof Error?b.message:String(b)}`),process.exit(1)}let P=Me(n.agent,"run",["dev"]),h=Me(n.agent,"run",["build"]);Bn(`
39
+ ${f.default.bold("\uD83D\uDE80 Happy building with Bunup!")}
40
40
 
41
41
  Run these commands to get started:
42
- ${y.default.cyan("bun run build")} - ${y.default.gray("Build your project")}
43
- ${y.default.cyan("bun run dev")} - ${y.default.gray("Build in watch mode")}
42
+ ${f.default.cyan(Re(h))} - ${f.default.gray("Build your project")}
43
+ ${f.default.cyan(Re(P))} - ${f.default.gray("Build in watch mode")}
44
44
 
45
- ${y.default.dim("Edit")} ${y.default.underline("bunup.config.ts")} ${y.default.dim("to customize your build.")}
46
- `)}async function wt(e,r,t,n,i,o){let s=Mr(i,o),c=`import { defineConfig } from 'bunup';
45
+ ${f.default.dim("Edit")} ${f.default.underline("bunup.config.ts")} ${f.default.dim("to customize your build.")}
46
+ `)}async function Mn(e,t,n,r,i,o,s=A.join(process.cwd(),"bunup.config.ts")){let c=At(i,o),a=`import { defineConfig } from 'bunup';
47
47
  ${i.length>0?`import { ${i.join(", ")} } from 'bunup/plugins';
48
48
  `:""}
49
49
  export default defineConfig({
50
50
  entry: '${e}',
51
- format: [${r.map((a)=>`'${a}'`).join(", ")}],
52
- outDir: '${t}',${n?`
53
- dts: true,`:""}${s?`
54
- plugins: [${s}],`:""}
51
+ format: [${t.map((l)=>`'${l}'`).join(", ")}],
52
+ outDir: '${n}',${r?`
53
+ dts: true,`:""}${c?`
54
+ plugins: [${c}],`:""}
55
55
  });
56
- `;await M.writeFile(L.join(process.cwd(),"bunup.config.ts"),c)}async function Ct(e,r,t,n,i,o){let s=Mr(i,o),c=e.map((u)=>{let d=u.entries.length===1?`'${u.entries[0]}'`:`[${u.entries.map((g)=>`'${g}'`).join(", ")}]`;return` {
56
+ `;await M.writeFile(s,a)}async function Rn(e,t,n,r,i,o,s=A.join(process.cwd(),"bunup.config.ts")){let c=At(i,o),a=e.map((u)=>{let m=u.entries.length===1?`'${u.entries[0]}'`:`[${u.entries.map((d)=>`'${d}'`).join(", ")}]`;return` {
57
57
  name: '${u.name}',
58
58
  root: '${u.root}',
59
59
  config: {
60
- entry: ${d},
61
- format: [${r.map((g)=>`'${g}'`).join(", ")}],
62
- outDir: '${t}',${n?`
63
- dts: true,`:""}${s?`
64
- plugins: [${s}],`:""}
60
+ entry: ${m},
61
+ format: [${t.map((d)=>`'${d}'`).join(", ")}],
62
+ outDir: '${n}',${r?`
63
+ dts: true,`:""}${c?`
64
+ plugins: [${c}],`:""}
65
65
  },
66
66
  }`}).join(`,
67
- `),a=`import { defineWorkspace } from 'bunup';
67
+ `),l=`import { defineWorkspace } from 'bunup';
68
68
  ${i.length>0?`import { ${i.join(", ")} } from 'bunup/plugins';
69
69
  `:""}
70
70
  export default defineWorkspace([
71
- ${c}
71
+ ${a}
72
72
  ]);
73
- `;await M.writeFile(L.join(process.cwd(),"bunup.config.ts"),a)}function Mr(e,r){return r.filter((t)=>e.includes(t.value)).map((t)=>t.configGenerator?t.configGenerator():`${t.value}()`).join(", ")}async function yt(e,r){let t=e.scripts||{},n=!1;for(let[i,o]of[["build","bunup"],["dev","bunup --watch"]])if(!t[i]||await V({message:`Script '${i}' exists. Replace with '${o}'?`,initialValue:!0}))t[i]=o,n=!0;if(n)e.scripts=t,await M.writeFile(r,JSON.stringify(e,null,2))}async function $t(e){if(e.dependencies?.bunup||e.devDependencies?.bunup){G.info(`Bunup is already installed
74
- `);return}let t=await ft();if(!t)throw new Error("No package manager detected");let n={bun:"-d",npm:"-D",pnpm:"-D",yarn:"-D"},i=bt(t.agent,"add",[n[t.agent]||"-D","bunup"]);if(!i)throw new Error("Failed to resolve install command");await xt(`${i.command} ${i.args.join(" ")}`,[],{nodeOptions:{shell:!0,stdio:"pipe"}})}var y;var Rr=b(()=>{y=R(F(),1)});import{exec as Bt}from"tinyexec";var J="0.5.12";W();O();var we=R(F(),1);var Ie="https://bunup.dev/docs/guide/cli-options";W();oe();O();function C(e){return(r,t)=>{t[e]=r===!0||r==="true"}}function k(e){return(r,t)=>{if(typeof r==="string")t[e]=r;else throw new S(`Option --${e} requires a string value`)}}function se(e){return(r,t)=>{if(typeof r==="string")t[e]=r.split(",");else throw new S(`Option --${e} requires a string value`)}}function Pr(e){return(r,t)=>{if(typeof r==="boolean")t[e]=r;else if(typeof r==="string")if(r.toLowerCase()==="true"||r.toLowerCase()==="false")t[e]=r.toLowerCase()==="true";else t[e]=r;else throw new S(`Option --${e} requires a boolean or string value`)}}function Qr(){console.log(`
73
+ `;await M.writeFile(s,l)}function At(e,t){return t.filter((n)=>e.includes(n.value)).map((n)=>n.configGenerator?n.configGenerator():`${n.value}()`).join(", ")}async function In(e,t){let n=e.scripts||{},r=!1;for(let[i,o]of[["build","bunup"],["dev","bunup --watch"]])if(!n[i]||await T({message:`Script '${i}' exists. Replace with '${o}'?`,initialValue:!0}))n[i]=o,r=!0;if(r)e.scripts=n,await M.writeFile(t,JSON.stringify(e,null,2))}async function Fn(e,t){if(e.dependencies?.bunup||e.devDependencies?.bunup){S.info(`Bunup is already installed
74
+ `);return}let r={bun:"-d",npm:"-D",pnpm:"-D",yarn:"-D"},i=Me(t.agent,"add",[r[t.agent]||"-D","bunup"]);if(!i)throw new Error("Failed to resolve install command");await En(Re(i),[],{nodeOptions:{shell:!0,stdio:"pipe"}})}function Re(e){if(!e)return"";return`${e.command} ${e.args.join(" ")}`}async function Tt(){let e={},t=!1,n=A.join(process.cwd(),"tsconfig.json");try{let{config:i,filepath:o}=await Ie({name:"tsconfig",cwd:process.cwd(),extensions:[".json"]});if(i&&o)e=i,t=!0,n=o}catch{}if(e.compilerOptions?.isolatedDeclarations!==!0){S.info(`${f.default.cyan("About isolatedDeclarations:")} ${f.default.gray(`A ${f.default.bold("modern TypeScript feature")} for library authors`)}`),S.info(f.default.gray(`Benefits: ${f.default.bold("faster builds")}, ${f.default.bold("more reliable API types")}, and ${f.default.bold("better editor support")} to catch issues during development`));let i=await T({message:"Enable isolatedDeclarations in tsconfig.json? (recommended but optional)",initialValue:!0});if(w(i))return;if(i){if(e.compilerOptions=e.compilerOptions||{},e.compilerOptions.isolatedDeclarations=!0,e.compilerOptions.declaration=!0,"allowJs"in e.compilerOptions)e.compilerOptions.allowJs=null;if(e.exclude=e.exclude||[],!e.exclude.includes("bunup.config.ts"))e.exclude.push("bunup.config.ts");await M.writeFile(n,JSON.stringify(e,null,2)),S.success("Updated tsconfig.json with isolatedDeclarations")}}else if(t){if(e.exclude=e.exclude||[],!e.exclude.includes("bunup.config.ts"))e.exclude.push("bunup.config.ts"),await M.writeFile(n,JSON.stringify(e,null,2))}}var f;var _t=x(()=>{f=I(F(),1)});import{exec as Ln}from"tinyexec";var X="0.5.14";G();R();var $e=I(F(),1);var Ue="https://bunup.dev/docs/guide/cli-options";G();ae();R();function y(e){return(t,n)=>{n[e]=t===!0||t==="true"}}function j(e){return(t,n)=>{if(typeof t==="string")n[e]=t;else throw new O(`Option --${e} requires a string value`)}}function le(e){return(t,n)=>{if(typeof t==="string")n[e]=t.split(",");else throw new O(`Option --${e} requires a string value`)}}function rn(e){return(t,n)=>{if(typeof t==="boolean")n[e]=t;else if(typeof t==="string")if(t.toLowerCase()==="true"||t.toLowerCase()==="false")n[e]=t.toLowerCase()==="true";else n[e]=t;else throw new O(`Option --${e} requires a boolean or string value`)}}function on(){console.log(`
75
75
  Bunup - \u26A1\uFE0F A blazing-fast build tool for your libraries built with Bun.
76
- `),console.log("For more information on available options, visit:"),console.log(`${we.default.cyan(we.default.underline(Ie))}
77
- `),process.exit(0)}function Zr(){console.log(J),process.exit(0)}var Pe={name:{flags:["n","name"],handler:k("name")},format:{flags:["f","format"],handler:se("format")},outDir:{flags:["o","out-dir"],handler:k("outDir")},minify:{flags:["m","minify"],handler:C("minify")},watch:{flags:["w","watch"],handler:C("watch")},dts:{flags:["d","dts"],handler:C("dts")},banner:{flags:["bn","banner"],handler:k("banner")},footer:{flags:["ft","footer"],handler:k("footer")},external:{flags:["e","external"],handler:se("external")},sourcemap:{flags:["sm","sourcemap"],handler:Pr("sourcemap")},target:{flags:["t","target"],handler:k("target")},minifyWhitespace:{flags:["mw","minify-whitespace"],handler:C("minifyWhitespace")},minifyIdentifiers:{flags:["mi","minify-identifiers"],handler:C("minifyIdentifiers")},minifySyntax:{flags:["ms","minify-syntax"],handler:C("minifySyntax")},clean:{flags:["c","clean"],handler:C("clean")},splitting:{flags:["s","splitting"],handler:C("splitting")},noExternal:{flags:["ne","no-external"],handler:se("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:k("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:C("bytecode")},dtsOnly:{flags:["do","dts-only"],handler:C("dtsOnly")},silent:{flags:["silent"],handler:C("silent")},config:{flags:["config"],handler:k("config")},publicPath:{flags:["pp","public-path"],handler:k("publicPath")},env:{flags:["env"],handler:k("env")},shims:{flags:["shims"],handler:C("shims")},onSuccess:{flags:["onSuccess"],handler:k("onSuccess")},filter:{flags:["filter"],handler:se("filter")},init:{flags:["init"],handler:C("init")},entry:{flags:["entry"],handler:(e,r,t)=>{if(typeof e!=="string")throw new S(`Entry${t?` --entry.${t}`:""} requires a string value`);let n=r.entry||{};if(t){if(n[t])m.warn(`Duplicate entry name '${t}' provided via --entry.${t}. Overwriting previous entry.`);n[t]=e}else{let i=ie(e);if(n[i])m.warn(`Duplicate entry name '${i}' derived from '${e}'. Overwriting previous entry.`);n[i]=e}r.entry=n}},resolveDts:{flags:["rd","resolve-dts"],handler:(e,r)=>{if(!r.dts)r.dts={};if(typeof r.dts==="boolean")r.dts={};if(typeof e==="string")if(e==="true"||e==="false")r.dts.resolve=e==="true";else r.dts.resolve=e.split(",");else r.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>Qr()},version:{flags:["v","version"],handler:()=>Zr()}},ce={};for(let e of Object.values(Pe))for(let r of e.flags)ce[r]=e.handler;function Qe(e){let r={};for(let t=0;t<e.length;t++){let n=e[t];if(n.startsWith("--")){let i,o;if(n.includes("=")){let[s,c]=n.slice(2).split("=",2);i=s,o=c}else{i=n.slice(2);let s=e[t+1];if(o=s&&!s.startsWith("-")?s:!0,typeof o==="string")t++}if(i.includes(".")){let[s,c]=i.split(".",2),a=ce[s];if(a)a(o,r,c);else throw new S(`Unknown option: --${i}`)}else{let s=ce[i];if(s)s(o,r);else throw new S(`Unknown option: --${i}`)}}else if(n.startsWith("-")){let i=n.slice(1),o=e[t+1],s=o&&!o.startsWith("-")?o:!0;if(typeof s==="string")t++;let c=ce[i];if(c)c(s,r);else throw new S(`Unknown option: -${i}`)}else Pe.entry.handler(n,r,void 0)}return r}var Fr=R(F(),1);Ce();I();import{loadConfig as St}from"coffi";ke();W();oe();O();$e();I();import de from"path";async function kr(e,r){let t=new Set,n=le(e),i=z(n.entry);for(let u of i){let d=de.resolve(r,u.fullPath),g=de.dirname(d);t.add(g)}let s=(await import("chokidar")).watch(Array.from(t),{persistent:!0,ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,de.join(r,n.outDir)]}),c=!1,a=async(u=!1)=>{if(c)return;c=!0;try{let d=performance.now();if(await Se(n,r),!u)m.cli(`\uD83D\uDCE6 Rebuild finished in ${H(performance.now()-d)}`)}catch(d){fe(d)}finally{c=!1}};s.on("change",(u)=>{let d=de.relative(r,u);m.cli(`File changed: ${d}`,{muted:!0,once:d}),a()}),s.on("error",(u)=>{throw new v(`Watcher error: ${A(u)}`)}),await a(!0)}async function kt(e=Bun.argv.slice(2)){let r=Qe(e);if(r.init){let{init:d}=await Promise.resolve().then(() => (Rr(),jr));await d();return}Q(r.silent);let t=process.cwd(),{config:n,filepath:i}=await St({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:r.config,packageJsonProperty:"bunup"}),o=!n?[{rootDir:t,options:r}]:await ve(n,t,r.filter);if(m.cli(`Using bunup v${J} and bun v${Bun.version}`,{muted:!0}),i)m.cli(`Using ${_(i,2)}`,{muted:!0});let s=performance.now();m.cli("Build started");let{build:c}=await Promise.resolve().then(() => (ke(),Sr));await Promise.all(o.flatMap(({options:d,rootDir:g})=>{return De(d).map(async(j)=>{let h={...j,...Et(r)};if(h.watch)await kr(h,g);else await c(h,g)})}));let a=performance.now()-s,u=H(a);if(m.cli(`\u26A1\uFE0F Build completed in ${Fr.default.green(u)}`),r.watch)m.cli("\uD83D\uDC40 Watching for file changes");if(r.onSuccess)m.cli(`Running command: ${r.onSuccess}`,{muted:!0}),await Bt(r.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!r.watch)process.exit(process.exitCode??0)}function Et(e){return{...e,onSuccess:void 0,config:void 0,filter:void 0,init:void 0}}kt().catch((e)=>Fe(e));
76
+ `),console.log("For more information on available options, visit:"),console.log(`${$e.default.cyan($e.default.underline(Ue))}
77
+ `),process.exit(0)}function sn(){console.log(X),process.exit(0)}var tt={name:{flags:["n","name"],handler:j("name")},format:{flags:["f","format"],handler:le("format")},outDir:{flags:["o","out-dir"],handler:j("outDir")},minify:{flags:["m","minify"],handler:y("minify")},watch:{flags:["w","watch"],handler:y("watch")},dts:{flags:["d","dts"],handler:y("dts")},banner:{flags:["bn","banner"],handler:j("banner")},footer:{flags:["ft","footer"],handler:j("footer")},external:{flags:["e","external"],handler:le("external")},sourcemap:{flags:["sm","sourcemap"],handler:rn("sourcemap")},target:{flags:["t","target"],handler:j("target")},minifyWhitespace:{flags:["mw","minify-whitespace"],handler:y("minifyWhitespace")},minifyIdentifiers:{flags:["mi","minify-identifiers"],handler:y("minifyIdentifiers")},minifySyntax:{flags:["ms","minify-syntax"],handler:y("minifySyntax")},clean:{flags:["c","clean"],handler:y("clean")},splitting:{flags:["s","splitting"],handler:y("splitting")},noExternal:{flags:["ne","no-external"],handler:le("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:j("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:y("bytecode")},dtsOnly:{flags:["do","dts-only"],handler:y("dtsOnly")},silent:{flags:["silent"],handler:y("silent")},config:{flags:["config"],handler:j("config")},publicPath:{flags:["pp","public-path"],handler:j("publicPath")},env:{flags:["env"],handler:j("env")},shims:{flags:["shims"],handler:y("shims")},onSuccess:{flags:["onSuccess"],handler:j("onSuccess")},filter:{flags:["filter"],handler:le("filter")},init:{flags:["init"],handler:y("init")},entry:{flags:["entry"],handler:(e,t,n)=>{if(typeof e!=="string")throw new O(`Entry${n?` --entry.${n}`:""} requires a string value`);let r=t.entry||{};if(n){if(r[n])g.warn(`Duplicate entry name '${n}' provided via --entry.${n}. Overwriting previous entry.`);r[n]=e}else{let i=ce(e);if(r[i])g.warn(`Duplicate entry name '${i}' derived from '${e}'. Overwriting previous entry.`);r[i]=e}t.entry=r}},resolveDts:{flags:["rd","resolve-dts"],handler:(e,t)=>{if(!t.dts)t.dts={};if(typeof t.dts==="boolean")t.dts={};if(typeof e==="string")if(e==="true"||e==="false")t.dts.resolve=e==="true";else t.dts.resolve=e.split(",");else t.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>on()},version:{flags:["v","version"],handler:()=>sn()}},ue={};for(let e of Object.values(tt))for(let t of e.flags)ue[t]=e.handler;function nt(e){let t={};for(let n=0;n<e.length;n++){let r=e[n];if(r.startsWith("--")){let i,o;if(r.includes("=")){let[s,c]=r.slice(2).split("=",2);i=s,o=c}else{i=r.slice(2);let s=e[n+1];if(o=s&&!s.startsWith("-")?s:!0,typeof o==="string")n++}if(i.includes(".")){let[s,c]=i.split(".",2),a=ue[s];if(a)a(o,t,c);else throw new O(`Unknown option: --${i}`)}else{let s=ue[i];if(s)s(o,t);else throw new O(`Unknown option: --${i}`)}}else if(r.startsWith("-")){let i=r.slice(1),o=e[n+1],s=o&&!o.startsWith("-")?o:!0;if(typeof s==="string")n++;let c=ue[i];if(c)c(s,t);else throw new O(`Unknown option: -${i}`)}else tt.entry.handler(r,t,void 0)}return t}var Ut=I(F(),1);Be();L();import{loadConfig as Dn}from"coffi";je();G();ae();R();ke();L();import pe from"path";async function Ft(e,t){let n=new Set,r=me(e),i=J(r.entry);for(let l of i){let u=pe.resolve(t,l.fullPath),m=pe.dirname(u);n.add(m)}let s=(await import("chokidar")).watch(Array.from(n),{persistent:!0,ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,pe.join(t,r.outDir)]}),c=!1,a=async(l=!1)=>{if(c)return;c=!0;try{let u=performance.now();if(await Oe(r,t),!l)g.cli(`\uD83D\uDCE6 Rebuild finished in ${ne(performance.now()-u)}`)}catch(u){he(u)}finally{c=!1}};s.on("change",(l)=>{let u=pe.relative(t,l);g.cli(`File changed: ${u}`,{muted:!0,once:u}),a()}),s.on("error",(l)=>{throw new ee(`Watcher error: ${U(l)}`)}),await a(!0)}async function Tn(e=Bun.argv.slice(2)){let t=nt(e);if(t.init){let{init:u}=await Promise.resolve().then(() => (_t(),Wt));await u();return}N(t.silent);let n=process.cwd(),{config:r,filepath:i}=await Dn({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:t.config,packageJsonProperty:"bunup"}),o=!r?[{rootDir:n,options:t}]:await it(r,n,t.filter);if(g.cli(`Using bunup v${X} and bun v${Bun.version}`,{muted:!0}),i)g.cli(`Using ${Y(i,2)}`,{muted:!0});let s=performance.now();g.cli("Build started");let{build:c}=await Promise.resolve().then(() => (je(),It));await Promise.all(o.flatMap(({options:u,rootDir:m})=>{return Ve(u).map(async(k)=>{let $={...k,...An(t)};if($.watch)await Ft($,m);else await c($,m)})}));let a=performance.now()-s,l=ne(a);if(g.cli(`\u26A1\uFE0F Build completed in ${Ut.default.green(l)}`),t.watch)g.cli("\uD83D\uDC40 Watching for file changes");if(t.onSuccess)g.cli(`Running command: ${t.onSuccess}`,{muted:!0}),await Ln(t.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!t.watch)process.exit(process.exitCode??0)}function An(e){return{...e,onSuccess:void 0,config:void 0,filter:void 0,init:void 0}}Tn().catch((e)=>_e(e));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bunup",
3
3
  "description": "⚡ A blazing-fast build tool for your libraries built with Bun.",
4
- "version": "0.5.12",
4
+ "version": "0.5.14",
5
5
  "license": "MIT",
6
6
  "author": "Arshad Yaseen <m@arshadyaseen.com> (https://arshadyaseen.com)",
7
7
  "maintainers": [
@@ -46,7 +46,7 @@
46
46
  "oxc-transform": "^0.67.0",
47
47
  "package-manager-detector": "^1.2.0",
48
48
  "rolldown": "1.0.0-beta.7",
49
- "rolldown-plugin-dts": "^0.9.7",
49
+ "rolldown-plugin-dts": "^0.9.11",
50
50
  "tinyexec": "^1.0.1",
51
51
  "ts-import-resolver": "^0.1.16"
52
52
  },