bunup 0.5.10 → 0.5.12

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/README.md CHANGED
@@ -29,7 +29,7 @@
29
29
 
30
30
  - 🚀 **Easy to Use**: Bunup preconfigures everything you need out-of-the-box. Just focus on your code.
31
31
  - 🔥 **Bytecode Generation**: Faster startups by compiling to Bun bytecode—perfect for CLIs.
32
- - 📦 **[Workspace](https://bunup.dev/workspaces) Support**: Build multiple packages within one config file and command.
32
+ - 📦 **[Workspace](https://bunup.dev/docs/guide/workspaces) Support**: Build multiple packages within one config file and command.
33
33
  - 🔄 **Tsup Familiarity**: Familiar tsup-like CLI and config.
34
34
  - 🎯 **Bun Target**: First-class bundling support for libraries built with Bun.
35
35
 
package/bin/bunup.mjs ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import '../dist/cli.js'
package/dist/cli.js CHANGED
@@ -1,24 +1,77 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var fr=Object.create;var{getPrototypeOf:mr,defineProperty:ee,getOwnPropertyNames:pr}=Object;var br=Object.prototype.hasOwnProperty;var T=(e,r,t)=>{t=e!=null?fr(mr(e)):{};let n=r||!e||!e.__esModule?ee(t,"default",{value:e,enumerable:!0}):t;for(let o of pr(e))if(!br.call(n,o))ee(n,o,{get:()=>e[o],enumerable:!0});return n};var xr=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var hr=(e,r)=>{for(var t in r)ee(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(n)=>r[t]=()=>n})};var p=(e,r)=>()=>(e&&(r=e(e=0)),r);var yr=import.meta.require;var v=xr((Jr,re)=>{var _=process||{},be=_.argv||[],F=_.env||{},wr=!(!!F.NO_COLOR||be.includes("--no-color"))&&(!!F.FORCE_COLOR||be.includes("--color")||_.platform==="win32"||(_.stdout||{}).isTTY&&F.TERM!=="dumb"||!!F.CI),Or=(e,r,t=e)=>(n)=>{let o=""+n,i=o.indexOf(r,e.length);return~i?e+Br(o,r,t,i)+r:e+o+r},Br=(e,r,t,n)=>{let o="",i=0;do o+=e.substring(i,n)+t,i=n+r.length,n=e.indexOf(r,i);while(~n);return o+e.substring(i)},xe=(e=wr)=>{let r=e?Or:()=>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")}};re.exports=xe();re.exports.createColors=xe});function D(e){ye=e??!1}class ${static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=m.default.blue;mutedColor=m.default.dim;infoColor=m.default.cyan;warnColor=m.default.yellow;errorColor=m.default.red;defaultColor=m.default.white;progressFgColorMap={ESM:m.default.yellow,CJS:m.default.green,IIFE:m.default.magenta,DTS:m.default.blue};progressBgColorMap={ESM:m.default.bgYellow,CJS:m.default.bgGreen,IIFE:m.default.bgMagenta,DTS:m.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!$.instance)$.instance=new $;return $.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:o,muted:i}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-t.length)),a=i?this.mutedColor(n):n,l=o?` ${r(m.default.black(` ${o} `))}`:"";return`${e(t)} ${s}${a}${l}`}output(e,r={},t=console.log){if(ye||!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:m.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:m.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:m.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:m.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 m.default.bgWhite}progress(e,r,t={}){let n=this.getProgressFgColor(e),o=this.getProgressBgColor(e),i=this.formatMessage({fgColor:n,bgColor:o,label:e,message:r,identifier:t.identifier,muted:t.muted});this.output(i,t)}}var m,ye=!1,g;var O=p(()=>{m=T(v(),1);g=$.getInstance()});function ne(e){return e instanceof W}var x,S,E,U,C,H,W,L=(e)=>{if(e instanceof Error)return e.message;return String(e)},Sr,te=(e,r)=>{let t=L(e),n=r?`[${r}] `:"",o=ne(e),i="ERROR";if(e instanceof E)i="BUILD ERROR";else if(e instanceof U)i="DTS ERROR";else if(e instanceof C)i="CLI ERROR";else if(e instanceof H)i="WATCH ERROR";else if(o)i="ISOLATED DECL ERROR";else if(e instanceof S)i="BUNUP ERROR";let s=Sr.find((a)=>a.pattern.test(t)&&(a.errorType===i||!a.errorType));if(!s&&!o)console.error(`${x.default.red(i)} ${n}${t}`);if(s)console.log(`
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
4
  `),s.logSolution(t),console.log(`
5
- `);else if(!o)console.error(x.default.dim(x.default.white("If you think this is a bug, please open an issue at: ")+x.default.cyan("https://github.com/arshad-yaseen/bunup/issues/new")))},Ce=(e,r)=>{te(e,r),process.exit(1)};var k=p(()=>{x=T(v(),1);O();S=class S extends Error{constructor(e){super(e);this.name="BunupError"}};E=class E extends S{constructor(e){super(e);this.name="BunupBuildError"}};U=class U extends S{constructor(e){super(e);this.name="BunupDTSBuildError"}};C=class C extends S{constructor(e){super(e);this.name="BunupCLIError"}};H=class H extends S{constructor(e){super(e);this.name="BunupWatchError"}};W=class W extends S{constructor(e){super(e);this.name="BunupIsolatedDeclError"}};Sr=[{pattern:/Could not resolve: "bun"/i,errorType:"BUILD ERROR",logSolution:()=>{g.error(x.default.white("You're trying to build a project that uses Bun. ")+x.default.white("Please set the target option to ")+x.default.cyan("`bun`")+x.default.white(`.
6
- `)+x.default.white("Example: ")+x.default.green("`bunup --target bun`")+x.default.white(" or in config: ")+x.default.green("{ target: 'bun' }"))}}]});import we from"fs/promises";import Er from"path";function Oe(e,r,t){return Array.isArray(e)?e.map((n)=>({...n,[r]:t})):{...e,[r]:t}}function Be(e){return Array.isArray(e)?e:[e]}function Se(e,r){switch(e){case"esm":return I(r)?".js":".mjs";case"cjs":return I(r)?".cjs":".js";case"iife":return".global.js"}}function Ee(e,r){switch(e){case"esm":return I(r)?".d.ts":".d.mts";case"cjs":return I(r)?".d.cts":".d.ts";case"iife":return".d.ts"}}function oe(e){return e==="node"||e==="bun"}function I(e){return e==="module"}function Y(e){return e>=1000?`${(e/1000).toFixed(2)}s`:`${Math.round(e)}ms`}function Le(e){if(!e)return[];return Array.from(new Set([...Object.keys(e.dependencies||{}),...Object.keys(e.peerDependencies||{})]))}function M(e,r=3){return e.split("/").slice(-r).join("/")}async function ke(e,r){let t=Er.join(e,r);try{await we.rm(t,{recursive:!0,force:!0})}catch(n){throw new E(`Failed to clean output directory: ${n}`)}await we.mkdir(t,{recursive:!0})}var B=p(()=>{k()});function Lr(e){return Le(e).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function Me(e,r){return typeof r==="string"?r===e:r.test(e)}function ie(e,r,t){let o=Lr(t).some((s)=>s.test(e))||r.external?.some((s)=>Me(e,s)),i=r.noExternal?.some((s)=>Me(e,s));return o&&!i}var se=p(()=>{B()});function P(e){return e.endsWith(".d.ts")||e.endsWith(".d.mts")||e.endsWith(".d.cts")}function G(e){return[".ts",".mts",".cts",".tsx"].some((r)=>e.endsWith(r))&&!P(e)}function q(e){if(P(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(Re.test(e))return e.replace(Re,".d.ts");return`${e}.d.ts`}var Te,ve,Re;var K=p(()=>{se();Te=/\.(d\.ts|d\.mts|d\.cts|ts|mts|cts|tsx)$/,ve=/[\\/]node_modules[\\/]/,Re=/\.(js|mjs|cjs|ts|mts|cts|tsx|jsx)$/});import{basename as kr,dirname as Mr,extname as Rr}from"path";function N(e){let r=kr(e),t=Rr(r);return t?r.slice(0,-t.length):r}function j(e){if(typeof e==="string")return[{fullPath:e,outputBasePath:N(e)}];if(typeof e==="object"&&!Array.isArray(e))return Object.entries(e).map(([n,o])=>({fullPath:o,outputBasePath:n}));let r=[],t=new Set;for(let n of e){let o=N(n);if(!t.has(o)){r.push({fullPath:n,outputBasePath:o}),t.add(o);continue}let s=Mr(n).split("/").filter((l)=>l!=="."&&l!=="");if(s.length===0){let l=1,c;do c=`${o}_${l++}`;while(t.has(c));r.push({fullPath:n,outputBasePath:c}),t.add(c);continue}let a=!1;for(let l=1;l<=s.length&&!a;l++){let d=`${s.slice(-l).join("/")}/${o}`;if(!t.has(d))r.push({fullPath:n,outputBasePath:d}),t.add(d),a=!0}if(!a){let l=1,c;do c=`${s.join("/")}/${o}_${l++}`;while(t.has(c));r.push({fullPath:n,outputBasePath:c}),t.add(c)}}return r}function $e(e){return e.filter((r)=>G(r.fullPath))}function Ie(e,r){return`[dir]/${e}${r}`}function je(e){return`${e}-[hash].[ext]`}function Ae(e){return`${e}-[name]-[hash].[ext]`}var X=p(()=>{K()});import Ir from"path";import{loadConfig as De}from"coffi";async function Ue(e,r,t){return Array.isArray(e)&&"root"in e[0]?e.filter((n)=>t?t.includes(n.name):!0).map((n)=>({rootDir:Ir.resolve(r,n.root),options:Oe(n.config,"name",n.name)})):[{rootDir:r,options:e}]}async function He(e){let{config:r,filepath:t}=await De({name:"package",cwd:e,extensions:[".json"]});return{packageJson:r,path:t}}async function We(e,r){let{config:t,filepath:n}=await De({name:"tsconfig",cwd:e,extensions:[".json"],preferredPath:r});return{tsconfig:t,path:n}}var le=p(()=>{B()});import{isolatedDeclaration as jr}from"oxc-transform";async function Pe(e){try{let r=await Bun.file(e).text(),{code:t,errors:n}=jr(e,r);for(let o of n)Ye.push({error:o,sourceText:r,tsFile:e});return t}catch(r){return console.log(r),g.warn(`Failed to generate declaration for ${e}: ${L(r)}`),null}}function Ge(e){let r=!1;for(let{error:t,sourceText:n,tsFile:o}of Ye){if(!r&&!e)console.log(`
7
- `);let i=t.labels[0],s=i?Ar(n,i.start):"",l=`${M(o)}${s}: ${Fr(t.message)}`;g[e?"warn":"error"](l),r=!0}if(r&&!e)throw console.log(`
8
- `),console.log(ce.default.gray(`See ${ce.default.blue("https://bunup.dev/docs/troubleshooting/explicit-type-annotation-errors")} for details.`)),console.log(`
9
- `),new W}function Ar(e,r){if(r===void 0)return"";let t=e.slice(0,r).split(`
10
- `),n=t.length,o=t[t.length-1].length+1;return` (${n}:${o})`}function Fr(e){return e.replace(" with --isolatedDeclarations","").replace(" with --isolatedDeclaration","")}var ce,Ye;var ge=p(()=>{ce=T(v(),1);k();O();B();Ye=[]});import{resolveTsImportPath as _r}from"ts-import-resolver";var qe=(e,r,t)=>{let n=new Map;return{name:"bunup:virtual-dts",async resolveId(o,i){if(i===void 0)return n.set(o,e),o;let s=_r({path:o,importer:i,tsconfig:r.tsconfig,rootDir:t});if(!s||!G(s))return null;let a=q(s);if(!a)return null;return n.set(a,s),a},load:{filter:{id:{include:[Te],exclude:[ve]}},async handler(o){if(P(o)){let i=n.get(o);if(!i)return null;let s=await Pe(i);if(!s)return null;return{code:s,moduleSideEffects:!1}}return null}},buildEnd(){n.clear()}}};var Ke=p(()=>{ge();K()});import{build as Dr}from"rolldown";import{dts as Ur}from"rolldown-plugin-dts";import Hr from"path";async function Ne(e,r,t,n){let o=Hr.resolve(n,e),i=q(o),s=typeof r.dts==="object"&&"resolve"in r.dts?r.dts.resolve:void 0,{output:a}=await Dr({input:i,write:!1,...t.path&&{resolve:{tsconfigFilename:t.path}},onwarn(c,d){if(["UNRESOLVED_IMPORT","CIRCULAR_DEPENDENCY","EMPTY_BUNDLE"].includes(c.code??""))return;d(c)},plugins:[qe(o,t,n),Ur({dtsInput:!0,emitDtsOnly:!0,resolve:s})]});Ge(!!r.watch);let l=a[0]?.code;if(!l)return g.warn(`Generated empty declaration file for entry "${o}"`,{muted:!0}),"";return l}var Xe=p(()=>{O();ge();K();Ke()});function Z(e){return{...Wr,...e}}function Ve(e){let{minify:r,minifyWhitespace:t,minifyIdentifiers:n,minifySyntax:o}=e,i=r===!0;return{whitespace:t??i,identifiers:n??i,syntax:o??i}}function Qe(e,r){return r==="cjs"?e:void 0}function Ze(e){if(e===!0)return"inline";return typeof e==="string"?e:void 0}function ze(e,r,t,n){return{...typeof t==="object"&&Object.keys(t).reduce((o,i)=>{let s=JSON.stringify(t[i]);return o[`process.env.${i}`]=s,o[`import.meta.env.${i}`]=s,o},{}),...e,...n==="cjs"&&(r===!0||typeof r==="object"&&r.importMetaUrl)&&{"import.meta.url":"importMetaUrl"}}}function Je(e,r){return e===void 0?r==="esm":e}function er(e){return typeof e==="string"?e:void 0}var Wr;var de=p(()=>{Wr={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0}});function rr(e,r){return{name:"bunup:external-plugin",setup(t){t.onResolve({filter:/.*/},(n)=>{let o=n.path;if(ie(o,e,r))return{path:o,external:!0};return null})}}}var nr=p(()=>{se()});function tr({format:e,target:r,shims:t}){let o=Pr(t).map((i)=>ue[i]).filter((i)=>i.appliesTo(e,r));if(o.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(i){i.onLoad({filter:Yr},async({path:s})=>{let a=await Bun.file(s).text(),l=o.filter((f)=>f.isNeededInFile(a));if(l.length===0)return;let{shebangLine:c,codeContent:d}=Gr(a),u=l.map((f)=>f.generateCode()).join("");return{contents:c+u+d}})}}}function Pr(e){if(e===!0)return Object.keys(ue);if(!e)return[];return Object.entries(e).filter(([r,t])=>t&&(r in ue)).map(([r])=>r)}function Gr(e){if(!e.startsWith("#!"))return{shebangLine:"",codeContent:e};let r=e.indexOf(`
11
- `);return r===-1?{shebangLine:"",codeContent:e}:{shebangLine:e.slice(0,r+1),codeContent:e.slice(r+1)}}var Yr,ue;var or=p(()=>{B();Yr=/\.(js|ts|jsx|tsx|mts|cts)$/,ue={dirnameFilename:{appliesTo:(e,r)=>e==="esm"&&oe(r),isNeededInFile:(e)=>/\b__dirname\b/.test(e)||/\b__filename\b/.test(e),generateCode:()=>`import { fileURLToPath } from 'url';
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}
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
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';
12
19
  import { dirname } from 'path';
13
20
 
14
21
  const __filename = fileURLToPath(import.meta.url);
15
22
  const __dirname = dirname(__filename);
16
23
 
17
- `},importMetaUrl:{appliesTo:(e,r)=>e==="cjs"&&oe(r),isNeededInFile:(e)=>/\bimport\.meta\.url\b/.test(e),generateCode:()=>`import { pathToFileURL } from 'url';
24
+ `},importMetaUrl:{appliesTo:(e,r)=>e==="cjs"&&be(r),isNeededInFile:(e)=>/\bimport\.meta\.url\b/.test(e),generateCode:()=>`import { pathToFileURL } from 'url';
18
25
 
19
26
  const importMetaUrl = pathToFileURL(__filename).href;
20
27
 
21
- `}}});function ir(e){if(!e)return[];return e.filter((r)=>r.type==="bun")}function sr(e){if(!e)return[];return e.filter((r)=>r.type==="bunup")}async function ar(e,r){if(!e)return;for(let t of e)if(t.hooks.onBuildStart)await t.hooks.onBuildStart(r)}async function lr(e,r,t){if(!e)return;for(let n of e)if(n.hooks.onBuildDone)await n.hooks.onBuildDone({options:r,output:t})}var gr={};hr(gr,{build:()=>fe});async function fe(e,r=process.cwd()){let t={files:[]},n=Z(e);if(!n.entry||n.entry.length===0||!n.outDir)throw new E("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(n.clean)ke(r,n.outDir);D(n.silent);let{packageJson:o,path:i}=await He(r);if(o&&i)g.cli(`Using ${M(i,2)}`,{muted:!0,identifier:n.name,once:`${i}:${n.name}`});let s=sr(n.plugins);await ar(s,n);let a=j(n.entry),l=o?.type;if(!n.dtsOnly){let c=[rr(n,o),...ir(n.plugins).map((u)=>u.plugin)],d=n.format.flatMap((u)=>a.map(async(f)=>{let R=n.outputExtension?.({format:u,packageType:l,options:n,entry:f}).js??Se(u,l),y=await Bun.build({entrypoints:[`${r}/${f.fullPath}`],format:u,naming:{entry:Ie(f.outputBasePath,R),chunk:je(f.outputBasePath),asset:Ae(f.outputBasePath)},splitting:Je(n.splitting,u),bytecode:Qe(n.bytecode,u),define:ze(n.define,n.shims,n.env,u),minify:Ve(n),outdir:`${r}/${n.outDir}`,target:n.target,sourcemap:Ze(n.sourcemap),loader:n.loader,drop:n.drop,banner:n.banner,footer:n.footer,publicPath:n.publicPath,env:er(n.env),plugins:[...c,tr({format:u,target:n.target,shims:n.shims})],throw:!1});if(!y.success)for(let b of y.logs){if(b.level==="error")throw new E(b.message);if(b.level==="warning")g.warn(b.message);else if(b.level==="info")g.info(b.message)}for(let b of y.outputs)t.files.push({fullPath:b.path,relativePathToRootDir:b.path.replace(`${r}/`,"")});let J=cr(n.outDir,f.outputBasePath,R);g.progress(u.toUpperCase(),J,{identifier:n.name})}));await Promise.all(d)}if(n.dts||n.dtsOnly){let c=await We(r,n.preferredTsconfigPath);if(c.path)g.cli(`Using ${M(c.path,2)}`,{muted:!0,identifier:n.name,once:`${c.path}:${n.name}`});let d=n.format.filter((f)=>{if(f==="iife"&&!I(l)&&n.format.includes("cjs"))return!1;return!0}),u=typeof n.dts==="object"&&n.dts.entry?j(n.dts.entry):$e(a);try{await Promise.all(u.map(async(f)=>{let R=await Ne(f.fullPath,n,c,r);await Promise.all(d.map(async(y)=>{let J=n.outputExtension?.({format:y,packageType:l,options:n,entry:f}).dts??Ee(y,l),b=cr(n.outDir,f.outputBasePath,J),pe=Kr(r,b);t.files.push({fullPath:pe,relativePathToRootDir:b}),await Bun.write(pe,R),g.progress("DTS",b,{identifier:n.name})}))}))}catch(f){if(ne(f))throw f;throw new U(L(f))}}if(await lr(s,n,t),n.onSuccess)await n.onSuccess(n)}function cr(e,r,t){return`${e}/${r}${t}`}function Kr(e,r){return`${e}/${r}`}var me=p(()=>{Xe();k();X();le();O();de();nr();or();B()});import{exec as Nr}from"tinyexec";var A="0.5.10";var ae=T(v(),1);var he="https://bunup.dev/docs/guide/cli-options";k();X();O();function h(e){return(r,t)=>{t[e]=r===!0||r==="true"}}function w(e){return(r,t)=>{if(typeof r==="string")t[e]=r;else throw new C(`Option --${e} requires a string value`)}}function V(e){return(r,t)=>{if(typeof r==="string")t[e]=r.split(",");else throw new C(`Option --${e} requires a string value`)}}function Tr(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 C(`Option --${e} requires a boolean or string value`)}}function vr(){console.log(`
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
29
+
30
+ export function hello() {
31
+ return 'Hello from ${L.basename(String(t))}';
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
34
+
35
+ export function hello() {
36
+ return 'Hello from ${x.name}';
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!")}
40
+
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")}
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';
47
+ ${i.length>0?`import { ${i.join(", ")} } from 'bunup/plugins';
48
+ `:""}
49
+ export default defineConfig({
50
+ entry: '${e}',
51
+ format: [${r.map((a)=>`'${a}'`).join(", ")}],
52
+ outDir: '${t}',${n?`
53
+ dts: true,`:""}${s?`
54
+ plugins: [${s}],`:""}
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` {
57
+ name: '${u.name}',
58
+ root: '${u.root}',
59
+ config: {
60
+ entry: ${d},
61
+ format: [${r.map((g)=>`'${g}'`).join(", ")}],
62
+ outDir: '${t}',${n?`
63
+ dts: true,`:""}${s?`
64
+ plugins: [${s}],`:""}
65
+ },
66
+ }`}).join(`,
67
+ `),a=`import { defineWorkspace } from 'bunup';
68
+ ${i.length>0?`import { ${i.join(", ")} } from 'bunup/plugins';
69
+ `:""}
70
+ export default defineWorkspace([
71
+ ${c}
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(`
22
75
  Bunup - \u26A1\uFE0F A blazing-fast build tool for your libraries built with Bun.
23
- `),console.log("For more information on available options, visit:"),console.log(`${ae.default.cyan(ae.default.underline(he))}
24
- `),process.exit(0)}function $r(){console.log(A),process.exit(0)}var Fe={name:{flags:["n","name"],handler:w("name")},format:{flags:["f","format"],handler:V("format")},outDir:{flags:["o","out-dir"],handler:w("outDir")},minify:{flags:["m","minify"],handler:h("minify")},watch:{flags:["w","watch"],handler:h("watch")},dts:{flags:["d","dts"],handler:h("dts")},banner:{flags:["bn","banner"],handler:w("banner")},footer:{flags:["ft","footer"],handler:w("footer")},external:{flags:["e","external"],handler:V("external")},sourcemap:{flags:["sm","sourcemap"],handler:Tr("sourcemap")},target:{flags:["t","target"],handler:w("target")},minifyWhitespace:{flags:["mw","minify-whitespace"],handler:h("minifyWhitespace")},minifyIdentifiers:{flags:["mi","minify-identifiers"],handler:h("minifyIdentifiers")},minifySyntax:{flags:["ms","minify-syntax"],handler:h("minifySyntax")},clean:{flags:["c","clean"],handler:h("clean")},splitting:{flags:["s","splitting"],handler:h("splitting")},noExternal:{flags:["ne","no-external"],handler:V("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:w("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:h("bytecode")},dtsOnly:{flags:["do","dts-only"],handler:h("dtsOnly")},silent:{flags:["silent"],handler:h("silent")},config:{flags:["config"],handler:w("config")},publicPath:{flags:["pp","public-path"],handler:w("publicPath")},env:{flags:["env"],handler:w("env")},shims:{flags:["shims"],handler:h("shims")},onSuccess:{flags:["onSuccess"],handler:w("onSuccess")},filter:{flags:["filter"],handler:V("filter")},entry:{flags:["entry"],handler:(e,r,t)=>{if(typeof e!=="string")throw new C(`Entry${t?` --entry.${t}`:""} requires a string value`);let n=r.entry||{};if(t){if(n[t])g.warn(`Duplicate entry name '${t}' provided via --entry.${t}. Overwriting previous entry.`);n[t]=e}else{let o=N(e);if(n[o])g.warn(`Duplicate entry name '${o}' derived from '${e}'. Overwriting previous entry.`);n[o]=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:()=>vr()},version:{flags:["v","version"],handler:()=>$r()}},Q={};for(let e of Object.values(Fe))for(let r of e.flags)Q[r]=e.handler;function _e(e){let r={};for(let t=0;t<e.length;t++){let n=e[t];if(n.startsWith("--")){let o,i;if(n.includes("=")){let[s,a]=n.slice(2).split("=",2);o=s,i=a}else{o=n.slice(2);let s=e[t+1];if(i=s&&!s.startsWith("-")?s:!0,typeof i==="string")t++}if(o.includes(".")){let[s,a]=o.split(".",2),l=Q[s];if(l)l(i,r,a);else throw new C(`Unknown option: --${o}`)}else{let s=Q[o];if(s)s(i,r);else throw new C(`Unknown option: --${o}`)}}else if(n.startsWith("-")){let o=n.slice(1),i=e[t+1],s=i&&!i.startsWith("-")?i:!0;if(typeof s==="string")t++;let a=Q[o];if(a)a(s,r);else throw new C(`Unknown option: -${o}`)}else Fe.entry.handler(n,r,void 0)}return r}k();O();var ur=T(v(),1);le();B();import{loadConfig as Xr}from"coffi";me();k();X();O();de();B();import z from"path";async function dr(e,r){let t=new Set,n=Z(e),o=j(n.entry);for(let c of o){let d=z.resolve(r,c.fullPath),u=z.dirname(d);t.add(u)}let s=(await import("chokidar")).watch(Array.from(t),{persistent:!0,ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,z.join(r,n.outDir)]}),a=!1,l=async(c=!1)=>{if(a)return;a=!0;try{let d=performance.now();if(await fe({...n,entry:o.map((u)=>u.fullPath),clean:!1},r),!c)g.cli(`\uD83D\uDCE6 Rebuild finished in ${Y(performance.now()-d)}`)}catch(d){te(d)}finally{a=!1}};s.on("change",(c)=>{let d=z.relative(r,c);g.cli(`File changed: ${d}`,{muted:!0,once:d}),l()}),s.on("error",(c)=>{throw new H(`Watcher error: ${L(c)}`)}),await l(!0)}async function Vr(e=Bun.argv.slice(2)){let r=_e(e);D(r.silent);let t=process.cwd(),{config:n,filepath:o}=await Xr({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:r.config,packageJsonProperty:"bunup"}),i=!n?[{rootDir:t,options:r}]:await Ue(n,t,r.filter);if(g.cli(`Using bunup v${A} and bun v${Bun.version}`,{muted:!0}),o)g.cli(`Using ${M(o,2)}`,{muted:!0});let s=performance.now();g.cli("Build started");let{build:a}=await Promise.resolve().then(() => (me(),gr));await Promise.all(i.flatMap(({options:d,rootDir:u})=>{return Be(d).map(async(R)=>{let y={...R,...Qr(r)};if(y.watch)await dr(y,u);else await a(y,u)})}));let l=performance.now()-s,c=Y(l);if(g.cli(`\u26A1\uFE0F Build completed in ${ur.default.green(c)}`),r.watch)g.cli("\uD83D\uDC40 Watching for file changes");if(r.onSuccess)g.cli(`Running command: ${r.onSuccess}`,{muted:!0}),await Nr(r.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!r.watch)process.exit(process.exitCode??0)}function Qr(e){return{...e,onSuccess:void 0,config:void 0}}Vr().catch((e)=>Ce(e));
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));
package/dist/index.cjs ADDED
@@ -0,0 +1,24 @@
1
+ // @bun @bun-cjs
2
+ (function(exports, require, module, __filename, __dirname) {var Kr=Object.create;var{getPrototypeOf:Xr,defineProperty:E,getOwnPropertyNames:q,getOwnPropertyDescriptor:Nr}=Object,Q=Object.prototype.hasOwnProperty;var p=(r,e,t)=>{t=r!=null?Kr(Xr(r)):{};let n=e||!r||!r.__esModule?E(t,"default",{value:r,enumerable:!0}):t;for(let o of q(r))if(!Q.call(n,o))E(n,o,{get:()=>r[o],enumerable:!0});return n},N=new WeakMap,qr=(r)=>{var e=N.get(r),t;if(e)return e;if(e=E({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")q(r).map((n)=>!Q.call(e,n)&&E(e,n,{get:()=>r[n],enumerable:!(t=Nr(r,n))||t.enumerable}));return N.set(r,e),e},Qr=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Vr=(r,e)=>{for(var t in e)E(r,t,{get:e[t],enumerable:!0,configurable:!0,set:(n)=>e[t]=()=>n})};var O=Qr((de,v)=>{var L=process||{},z=L.argv||[],M=L.env||{},Zr=!(!!M.NO_COLOR||z.includes("--no-color"))&&(!!M.FORCE_COLOR||z.includes("--color")||L.platform==="win32"||(L.stdout||{}).isTTY&&M.TERM!=="dumb"||!!M.CI),zr=(r,e,t=r)=>(n)=>{let o=""+n,i=o.indexOf(e,r.length);return~i?r+Jr(o,e,t,i)+e:r+o+e},Jr=(r,e,t,n)=>{let o="",i=0;do o+=r.substring(i,n)+t,i=n+e.length,n=r.indexOf(e,i);while(~n);return o+r.substring(i)},J=(r=Zr)=>{let e=r?zr:()=>String;return{isColorSupported:r,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};v.exports=J();v.exports.createColors=J});var le={};Vr(le,{defineWorkspace:()=>Z,defineConfig:()=>V,build:()=>Hr});module.exports=qr(le);function V(r){return r}function Z(r){return r}var hr=require("rolldown"),Cr=require("rolldown-plugin-dts"),Br=p(require("path"));var c=p(O()),P=!1;function rr(r){P=r??!1}class h{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=c.default.blue;mutedColor=c.default.dim;infoColor=c.default.cyan;warnColor=c.default.yellow;errorColor=c.default.red;defaultColor=c.default.white;progressFgColorMap={ESM:c.default.yellow,CJS:c.default.green,IIFE:c.default.magenta,DTS:c.default.blue};progressBgColorMap={ESM:c.default.bgYellow,CJS:c.default.bgGreen,IIFE:c.default.bgMagenta,DTS:c.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!h.instance)h.instance=new h;return h.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(r){if(!r?.once)return!0;if(this.loggedOnceMessages.has(r.once))return!1;return this.loggedOnceMessages.add(r.once),!0}formatMessage({fgColor:r,bgColor:e,label:t,message:n,identifier:o,muted:i}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-t.length)),l=i?this.mutedColor(n):n,a=o?` ${e(c.default.black(` ${o} `))}`:"";return`${r(t)} ${s}${l}${a}`}output(r,e={},t=console.log){if(P||!this.shouldLog(e))return;if(e.verticalSpace)t("");if(t(r),e.verticalSpace)t("")}cli(r,e={}){let t=this.formatMessage({fgColor:this.cliColor,bgColor:c.default.bgBlue,label:this.labels.cli,message:r,identifier:e.identifier,muted:e.muted});this.output(t,e)}info(r,e={}){let t=this.formatMessage({fgColor:this.infoColor,bgColor:c.default.bgCyan,label:this.labels.info,message:r,identifier:e.identifier,muted:e.muted});this.output(t,e)}warn(r,e={}){let t=this.formatMessage({fgColor:this.warnColor,bgColor:c.default.bgYellow,label:this.labels.warn,message:r,identifier:e.identifier,muted:e.muted});this.output(t,e,console.warn)}error(r,e={}){let t=this.formatMessage({fgColor:this.errorColor,bgColor:c.default.bgRed,label:this.labels.error,message:r,identifier:e.identifier,muted:e.muted});this.output(t,e,console.error)}getProgressFgColor(r){for(let[e,t]of Object.entries(this.progressFgColorMap))if(r.includes(e))return t;return this.defaultColor}getProgressBgColor(r){for(let[e,t]of Object.entries(this.progressBgColorMap))if(r.includes(e))return t;return c.default.bgWhite}progress(r,e,t={}){let n=this.getProgressFgColor(r),o=this.getProgressBgColor(r),i=this.formatMessage({fgColor:n,bgColor:o,label:r,message:e,identifier:t.identifier,muted:t.muted});this.output(i,t)}}var m=h.getInstance();var gr=require("oxc-transform"),$=p(O());var Pr=p(O());class R extends Error{constructor(r){super(r);this.name="BunupError"}}class C extends R{constructor(r){super(r);this.name="BunupBuildError"}}class _ extends R{constructor(r){super(r);this.name="BunupDTSBuildError"}}class I extends R{constructor(r){super(r);this.name="BunupIsolatedDeclError"}}var k=(r)=>{if(r instanceof Error)return r.message;return String(r)};function er(r){return r instanceof I}var F=p(O());var W=p(require("fs/promises")),nr=p(require("path"));function tr(r,e){switch(r){case"esm":return B(e)?".js":".mjs";case"cjs":return B(e)?".cjs":".js";case"iife":return".global.js"}}function or(r,e){switch(r){case"esm":return B(e)?".d.ts":".d.mts";case"cjs":return B(e)?".d.cts":".d.ts";case"iife":return".d.ts"}}function U(r){return r==="node"||r==="bun"}function B(r){return r==="module"}function ir(r){if(!r)return[];return Array.from(new Set([...Object.keys(r.dependencies||{}),...Object.keys(r.peerDependencies||{})]))}function S(r,e=3){return r.split("/").slice(-e).join("/")}async function sr(r,e){let t=nr.default.join(r,e);try{await W.default.rm(t,{recursive:!0,force:!0})}catch(n){throw new C(`Failed to clean output directory: ${n}`)}await W.default.mkdir(t,{recursive:!0})}function ar(r,e,t,n){let o=r.labels[0],i=o?ee(e,o.start):"",l=`${S(t)}${i}: ${re(r.message)}`,a=ne(e,o?.start,o?.end);m[n?"warn":"error"](`${l}
3
+
4
+ ${F.default.gray(a)}`,{verticalSpace:!0})}function re(r){return r.replace(" with --isolatedDeclarations","").replace(" with --isolatedDeclaration","")}function ee(r,e){if(e===void 0)return"";let t=r.slice(0,e).split(`
5
+ `),n=t.length,o=t[t.length-1].length+1;return` (${n}:${o})`}function ne(r,e,t){let n=r.split(`
6
+ `),o=r.slice(0,e).split(`
7
+ `).length,i=n[o-1],s=e-r.slice(0,e).lastIndexOf(`
8
+ `)-1,l=t?Math.min(t-r.slice(0,e).lastIndexOf(`
9
+ `)-1,i.length):s+1,a=" ".repeat(s)+F.default.red(F.default.dim("\u23AF".repeat(Math.max(1,l-s))));return`${i}
10
+ ${a}`}var lr=[];async function cr(r){try{let e=await Bun.file(r).text(),{code:t,errors:n}=gr.isolatedDeclaration(r,e);for(let o of n)lr.push({error:o,sourceText:e,tsFile:r});return t}catch(e){return m.warn(`Failed to generate declaration for ${r}: ${k(e)}`),null}}function ur(r){let e=!1;for(let{error:t,sourceText:n,tsFile:o}of lr)ar(t,n,o,r),e=!0;if(e&&!r)throw console.log(`${$.default.bgMagentaBright("Pro tip")} Enable "isolatedDeclarations" in your ${$.default.underline("tsconfig.json")} to get these errors early in your editor
11
+
12
+ See why this is happening: ${$.default.blueBright("https://bunup.dev/docs/troubleshooting/explicit-type-annotation-errors")}`),console.log(`
13
+ `),new I}function te(r){return ir(r).map((e)=>new RegExp(`^${e}($|\\/|\\\\)`))}function dr(r,e){return typeof e==="string"?e===r:e.test(r)}function Y(r,e,t){let o=te(t).some((s)=>s.test(r))||e.external?.some((s)=>dr(r,s)),i=e.noExternal?.some((s)=>dr(r,s));return o&&!i}var fr=/\.(d\.ts|d\.mts|d\.cts)$/,br=/[\\/]node_modules[\\/]/,mr=/\.(js|mjs|cjs|ts|mts|cts|tsx|jsx)$/;function T(r){return r.endsWith(".d.ts")||r.endsWith(".d.mts")||r.endsWith(".d.cts")}function D(r){return[".ts",".mts",".cts",".tsx"].some((e)=>r.endsWith(e))&&!T(r)}function j(r){if(T(r))return r;if(r.endsWith(".mts"))return`${r.slice(0,-4)}.d.mts`;if(r.endsWith(".cts"))return`${r.slice(0,-4)}.d.cts`;if(mr.test(r))return r.replace(mr,".d.ts");return`${r}.d.ts`}var pr=require("ts-import-resolver");var xr=(r,e,t)=>{let n=new Map;return{name:"bunup:virtual-dts",async resolveId(o,i){if(i===void 0)return n.set(o,r),o;let s=pr.resolveTsImportPath({path:o,importer:i,tsconfig:e.tsconfig,rootDir:t});if(!s||!D(s))return null;let l=j(s);if(!l)return null;return n.set(l,s),l},load:{filter:{id:{include:[fr],exclude:[br]}},async handler(o){if(T(o)){let i=n.get(o);if(!i)return null;let s=await cr(i);if(!s)return null;return{code:s,moduleSideEffects:!1}}return null}},buildEnd(){n.clear()}}};async function wr(r,e,t,n){let o=Br.default.resolve(n,r),i=j(o),s=typeof e.dts==="object"&&"resolve"in e.dts?e.dts.resolve:void 0,{output:l}=await hr.build({input:i,write:!1,...t.path&&{resolve:{tsconfigFilename:t.path}},onwarn(g,b){if(["UNRESOLVED_IMPORT","CIRCULAR_DEPENDENCY","EMPTY_BUNDLE"].includes(g.code??""))return;b(g)},plugins:[xr(o,t,n),Cr.dts({dtsInput:!0,emitDtsOnly:!0,resolve:s,tsconfig:t.path??!1})]});ur(!!e.watch);let a=l[0]?.code;if(!a)return m.warn(`Generated empty declaration file for entry "${o}"`,{muted:!0}),"";return a}var w=require("path");function Er(r){let e=w.basename(r),t=w.extname(e);return t?e.slice(0,-t.length):e}function G(r){if(typeof r==="string")return[{fullPath:r,outputBasePath:Er(r)}];if(typeof r==="object"&&!Array.isArray(r))return Object.entries(r).map(([n,o])=>({fullPath:o,outputBasePath:n}));let e=[],t=new Set;for(let n of r){let o=Er(n);if(!t.has(o)){e.push({fullPath:n,outputBasePath:o}),t.add(o);continue}let s=w.dirname(n).split("/").filter((a)=>a!=="."&&a!=="");if(s.length===0){let a=1,g;do g=`${o}_${a++}`;while(t.has(g));e.push({fullPath:n,outputBasePath:g}),t.add(g);continue}let l=!1;for(let a=1;a<=s.length&&!l;a++){let b=`${s.slice(-a).join("/")}/${o}`;if(!t.has(b))e.push({fullPath:n,outputBasePath:b}),t.add(b),l=!0}if(!l){let a=1,g;do g=`${s.join("/")}/${o}_${a++}`;while(t.has(g));e.push({fullPath:n,outputBasePath:g}),t.add(g)}}return e}function Or(r){return r.filter((e)=>D(e.fullPath))}function Sr(r,e){return`[dir]/${r}${e}`}function yr(r){return`${r}-[hash].[ext]`}function Mr(r){return`${r}-[name]-[hash].[ext]`}var H=require("coffi");async function Lr(r){let{config:e,filepath:t}=await H.loadConfig({name:"package",cwd:r,extensions:[".json"]});return{packageJson:e,path:t}}async function Rr(r,e){let{config:t,filepath:n}=await H.loadConfig({name:"tsconfig",cwd:r,extensions:[".json"],preferredPath:e});return{tsconfig:t,path:n}}var oe={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0};function Ir(r){return{...oe,...r}}function kr(r){let{minify:e,minifyWhitespace:t,minifyIdentifiers:n,minifySyntax:o}=r,i=e===!0;return{whitespace:t??i,identifiers:n??i,syntax:o??i}}function Fr(r,e){return e==="cjs"?r:void 0}function $r(r){if(r===!0)return"inline";return typeof r==="string"?r:void 0}function Tr(r,e,t,n){return{...typeof t==="object"&&Object.keys(t).reduce((o,i)=>{let s=JSON.stringify(t[i]);return o[`process.env.${i}`]=s,o[`import.meta.env.${i}`]=s,o},{}),...r,...n==="cjs"&&(e===!0||typeof e==="object"&&e.importMetaUrl)&&{"import.meta.url":"importMetaUrl"}}}function Dr(r,e){return r===void 0?e==="esm":r}function jr(r){return typeof r==="string"?r:void 0}function Ar(r,e){return{name:"bunup:external-plugin",setup(t){t.onResolve({filter:/.*/},(n)=>{let o=n.path;if(Y(o,r,e))return{path:o,external:!0};return null})}}}var ie=/\.(js|ts|jsx|tsx|mts|cts)$/,K={dirnameFilename:{appliesTo:(r,e)=>r==="esm"&&U(e),isNeededInFile:(r)=>/\b__dirname\b/.test(r)||/\b__filename\b/.test(r),generateCode:()=>`import { fileURLToPath } from 'url';
14
+ import { dirname } from 'path';
15
+
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = dirname(__filename);
18
+
19
+ `},importMetaUrl:{appliesTo:(r,e)=>r==="cjs"&&U(e),isNeededInFile:(r)=>/\bimport\.meta\.url\b/.test(r),generateCode:()=>`import { pathToFileURL } from 'url';
20
+
21
+ const importMetaUrl = pathToFileURL(__filename).href;
22
+
23
+ `}};function vr({format:r,target:e,shims:t}){let o=se(t).map((i)=>K[i]).filter((i)=>i.appliesTo(r,e));if(o.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(i){i.onLoad({filter:ie},async({path:s})=>{let l=await Bun.file(s).text(),a=o.filter((u)=>u.isNeededInFile(l));if(a.length===0)return;let{shebangLine:g,codeContent:b}=ae(l),d=a.map((u)=>u.generateCode()).join("");return{contents:g+d+b}})}}}function se(r){if(r===!0)return Object.keys(K);if(!r)return[];return Object.entries(r).filter(([e,t])=>t&&(e in K)).map(([e])=>e)}function ae(r){if(!r.startsWith("#!"))return{shebangLine:"",codeContent:r};let e=r.indexOf(`
24
+ `);return e===-1?{shebangLine:"",codeContent:r}:{shebangLine:r.slice(0,e+1),codeContent:r.slice(e+1)}}function _r(r){if(!r)return[];return r.filter((e)=>e.type==="bun")}function Wr(r){if(!r)return[];return r.filter((e)=>e.type==="bunup")}async function Ur(r,e){if(!r)return;for(let t of r)if(t.hooks.onBuildStart)await t.hooks.onBuildStart(e)}async function Yr(r,e,t){if(!r)return;for(let n of r)if(n.hooks.onBuildDone)await n.hooks.onBuildDone({options:e,output:t})}async function Hr(r,e=process.cwd()){let t={files:[]},n=Ir(r);if(!n.entry||n.entry.length===0||!n.outDir)throw new C("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(n.clean)sr(e,n.outDir);rr(n.silent);let{packageJson:o,path:i}=await Lr(e);if(o&&i)m.cli(`Using ${S(i,2)}`,{muted:!0,identifier:n.name,once:`${i}:${n.name}`});let s=Wr(n.plugins);await Ur(s,n);let l=G(n.entry),a=o?.type;if(!n.dtsOnly){let g=[Ar(n,o),..._r(n.plugins).map((d)=>d.plugin)],b=n.format.flatMap((d)=>l.map(async(u)=>{let y=n.outputExtension?.({format:d,packageType:a,options:n,entry:u}).js??tr(d,a),x=await Bun.build({entrypoints:[`${e}/${u.fullPath}`],format:d,naming:{entry:Sr(u.outputBasePath,y),chunk:yr(u.outputBasePath),asset:Mr(u.outputBasePath)},splitting:Dr(n.splitting,d),bytecode:Fr(n.bytecode,d),define:Tr(n.define,n.shims,n.env,d),minify:kr(n),outdir:`${e}/${n.outDir}`,target:n.target,sourcemap:$r(n.sourcemap),loader:n.loader,drop:n.drop,banner:n.banner,footer:n.footer,publicPath:n.publicPath,env:jr(n.env),plugins:[...g,vr({format:d,target:n.target,shims:n.shims})],throw:!1});if(!x.success)for(let f of x.logs){if(f.level==="error")throw new C(f.message);if(f.level==="warning")m.warn(f.message);else if(f.level==="info")m.info(f.message)}for(let f of x.outputs)t.files.push({fullPath:f.path,relativePathToRootDir:f.path.replace(`${e}/`,"")});let A=Gr(n.outDir,u.outputBasePath,y);m.progress(d.toUpperCase(),A,{identifier:n.name})}));await Promise.all(b)}if(n.dts||n.dtsOnly){let g=await Rr(e,n.preferredTsconfigPath);if(g.path)m.cli(`Using ${S(g.path,2)}`,{muted:!0,identifier:n.name,once:`${g.path}:${n.name}`});let b=n.format.filter((u)=>{if(u==="iife"&&!B(a)&&n.format.includes("cjs"))return!1;return!0}),d=typeof n.dts==="object"&&n.dts.entry?G(n.dts.entry):Or(l);try{await Promise.all(d.map(async(u)=>{let y=await wr(u.fullPath,n,g,e);await Promise.all(b.map(async(x)=>{let A=n.outputExtension?.({format:x,packageType:a,options:n,entry:u}).dts??or(x,a),f=Gr(n.outDir,u.outputBasePath,A),X=ge(e,f);t.files.push({fullPath:X,relativePathToRootDir:f}),await Bun.write(X,y),m.progress("DTS",f,{identifier:n.name})}))}))}catch(u){if(er(u))throw u;throw new _(k(u))}}if(await Yr(s,n,t),n.onSuccess)await n.onSuccess(n)}function Gr(r,e,t){return`${r}/${e}${t}`}function ge(r,e){return`${r}/${e}`}})