bunup 0.4.90 → 0.4.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var Lr=Object.create;var{getPrototypeOf:Rr,defineProperty:on,getOwnPropertyNames:$r}=Object;var kr=Object.prototype.hasOwnProperty;var W=(n,r,t)=>{t=n!=null?Lr(Rr(n)):{};let e=r||!n||!n.__esModule?on(t,"default",{value:n,enumerable:!0}):t;for(let o of $r(n))if(!kr.call(e,o))on(e,o,{get:()=>n[o],enumerable:!0});return e};var Tr=(n,r)=>()=>(r||n((r={exports:{}}).exports,r),r.exports);var Ir=(n,r)=>{for(var t in r)on(n,t,{get:r[t],enumerable:!0,configurable:!0,set:(e)=>r[t]=()=>e})};var p=(n,r)=>()=>(n&&(r=n(n=0)),r);var Mr=import.meta.require;var q=Tr((be,sn)=>{var Q=process||{},On=Q.argv||[],G=Q.env||{},jr=!(!!G.NO_COLOR||On.includes("--no-color"))&&(!!G.FORCE_COLOR||On.includes("--color")||Q.platform==="win32"||(Q.stdout||{}).isTTY&&G.TERM!=="dumb"||!!G.CI),Ar=(n,r,t=n)=>(e)=>{let o=""+e,i=o.indexOf(r,n.length);return~i?n+Er(o,r,t,i)+r:n+o+r},Er=(n,r,t,e)=>{let o="",i=0;do o+=n.substring(i,e)+t,i=e+r.length,e=n.indexOf(r,i);while(~e);return o+n.substring(i)},Sn=(n=jr)=>{let r=n?Ar:()=>String;return{isColorSupported:n,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")}};sn.exports=Sn();sn.exports.createColors=Sn});function Z(n){Rn=n??!1}class E{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=d.default.blue;mutedColor=d.default.dim;infoColor=d.default.cyan;warnColor=d.default.yellow;errorColor=d.default.red;defaultColor=d.default.white;progressFgColorMap={ESM:d.default.yellow,CJS:d.default.green,IIFE:d.default.magenta,DTS:d.default.blue};progressBgColorMap={ESM:d.default.bgYellow,CJS:d.default.bgGreen,IIFE:d.default.bgMagenta,DTS:d.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!E.instance)E.instance=new E;return E.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(n){if(!n?.once)return!0;if(this.loggedOnceMessages.has(n.once))return!1;return this.loggedOnceMessages.add(n.once),!0}formatMessage({fgColor:n,bgColor:r,label:t,message:e,identifier:o,muted:i}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-t.length)),c=i?this.mutedColor(e):e,a=o?` ${r(d.default.black(` ${o} `))}`:"";return`${n(t)} ${s}${c}${a}`}output(n,r={},t=console.log){if(Rn||!this.shouldLog(r))return;if(r.verticalSpace)t("");if(t(n),r.verticalSpace)t("")}cli(n,r={}){let t=this.formatMessage({fgColor:this.cliColor,bgColor:d.default.bgBlue,label:this.labels.cli,message:n,identifier:r.identifier,muted:r.muted});this.output(t,r)}info(n,r={}){let t=this.formatMessage({fgColor:this.infoColor,bgColor:d.default.bgCyan,label:this.labels.info,message:n,identifier:r.identifier,muted:r.muted});this.output(t,r)}warn(n,r={}){let t=this.formatMessage({fgColor:this.warnColor,bgColor:d.default.bgYellow,label:this.labels.warn,message:n,identifier:r.identifier,muted:r.muted});this.output(t,r,console.warn)}error(n,r={}){let t=this.formatMessage({fgColor:this.errorColor,bgColor:d.default.bgRed,label:this.labels.error,message:n,identifier:r.identifier,muted:r.muted});this.output(t,r,console.error)}getProgressFgColor(n){for(let[r,t]of Object.entries(this.progressFgColorMap))if(n.includes(r))return t;return this.defaultColor}getProgressBgColor(n){for(let[r,t]of Object.entries(this.progressBgColorMap))if(n.includes(r))return t;return d.default.bgWhite}progress(n,r,t={}){let e=this.getProgressFgColor(n),o=this.getProgressBgColor(n),i=this.formatMessage({fgColor:e,bgColor:o,label:n,message:r,identifier:t.identifier,muted:t.muted});this.output(i,t)}}var d,Rn=!1,l;var R=p(()=>{d=W(q(),1);l=E.getInstance()});function an(n){return n instanceof X}var b,I,M,h,C,V,X,w=(n)=>{if(n instanceof Error)return n.message;return String(n)},Ur,gn=(n,r)=>{let t=w(n),e=r?`[${r}] `:"",o=an(n),i="ERROR";if(n instanceof M)i="BUILD ERROR";else if(n instanceof h)i="DTS ERROR";else if(n instanceof C)i="CLI ERROR";else if(n instanceof V)i="WATCH ERROR";else if(o)i="ISOLATED DECL ERROR";else if(n instanceof I)i="BUNUP ERROR";let s=Ur.find((c)=>c.pattern.test(t)&&(c.errorType===i||!c.errorType));if(!s)console.error(`${b.default.red(i)} ${e}${o?b.default.dim(t):t}`);if(s)console.log(`
3
+ var Rr=Object.create;var{getPrototypeOf:kr,defineProperty:sn,getOwnPropertyNames:$r}=Object;var Tr=Object.prototype.hasOwnProperty;var W=(n,r,t)=>{t=n!=null?Rr(kr(n)):{};let e=r||!n||!n.__esModule?sn(t,"default",{value:n,enumerable:!0}):t;for(let i of $r(n))if(!Tr.call(e,i))sn(e,i,{get:()=>n[i],enumerable:!0});return e};var jr=(n,r)=>()=>(r||n((r={exports:{}}).exports,r),r.exports);var Ir=(n,r)=>{for(var t in r)sn(n,t,{get:r[t],enumerable:!0,configurable:!0,set:(e)=>r[t]=()=>e})};var p=(n,r)=>()=>(n&&(r=n(n=0)),r);var Mr=import.meta.require;var v=jr((we,an)=>{var Z=process||{},Sn=Z.argv||[],Q=Z.env||{},Er=!(!!Q.NO_COLOR||Sn.includes("--no-color"))&&(!!Q.FORCE_COLOR||Sn.includes("--color")||Z.platform==="win32"||(Z.stdout||{}).isTTY&&Q.TERM!=="dumb"||!!Q.CI),Ur=(n,r,t=n)=>(e)=>{let i=""+e,o=i.indexOf(r,n.length);return~o?n+_r(i,r,t,o)+r:n+i+r},_r=(n,r,t,e)=>{let i="",o=0;do i+=n.substring(o,e)+t,o=e+r.length,e=n.indexOf(r,o);while(~e);return i+n.substring(o)},Ln=(n=Er)=>{let r=n?Ur:()=>String;return{isColorSupported:n,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")}};an.exports=Ln();an.exports.createColors=Ln});function V(n){kn=n??!1}class A{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=d.default.blue;mutedColor=d.default.dim;infoColor=d.default.cyan;warnColor=d.default.yellow;errorColor=d.default.red;defaultColor=d.default.white;progressFgColorMap={ESM:d.default.yellow,CJS:d.default.green,IIFE:d.default.magenta,DTS:d.default.blue};progressBgColorMap={ESM:d.default.bgYellow,CJS:d.default.bgGreen,IIFE:d.default.bgMagenta,DTS:d.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!A.instance)A.instance=new A;return A.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(n){if(!n?.once)return!0;if(this.loggedOnceMessages.has(n.once))return!1;return this.loggedOnceMessages.add(n.once),!0}formatMessage({fgColor:n,bgColor:r,label:t,message:e,identifier:i,muted:o}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-t.length)),c=o?this.mutedColor(e):e,a=i?` ${r(d.default.black(` ${i} `))}`:"";return`${n(t)} ${s}${c}${a}`}output(n,r={},t=console.log){if(kn||!this.shouldLog(r))return;if(r.verticalSpace)t("");if(t(n),r.verticalSpace)t("")}cli(n,r={}){let t=this.formatMessage({fgColor:this.cliColor,bgColor:d.default.bgBlue,label:this.labels.cli,message:n,identifier:r.identifier,muted:r.muted});this.output(t,r)}info(n,r={}){let t=this.formatMessage({fgColor:this.infoColor,bgColor:d.default.bgCyan,label:this.labels.info,message:n,identifier:r.identifier,muted:r.muted});this.output(t,r)}warn(n,r={}){let t=this.formatMessage({fgColor:this.warnColor,bgColor:d.default.bgYellow,label:this.labels.warn,message:n,identifier:r.identifier,muted:r.muted});this.output(t,r,console.warn)}error(n,r={}){let t=this.formatMessage({fgColor:this.errorColor,bgColor:d.default.bgRed,label:this.labels.error,message:n,identifier:r.identifier,muted:r.muted});this.output(t,r,console.error)}getProgressFgColor(n){for(let[r,t]of Object.entries(this.progressFgColorMap))if(n.includes(r))return t;return this.defaultColor}getProgressBgColor(n){for(let[r,t]of Object.entries(this.progressBgColorMap))if(n.includes(r))return t;return d.default.bgWhite}progress(n,r,t={}){let e=this.getProgressFgColor(n),i=this.getProgressBgColor(n),o=this.formatMessage({fgColor:e,bgColor:i,label:n,message:r,identifier:t.identifier,muted:t.muted});this.output(o,t)}}var d,kn=!1,l;var L=p(()=>{d=W(v(),1);l=A.getInstance()});function gn(n){return n instanceof D}var b,j,I,w,C,z,D,y=(n)=>{if(n instanceof Error)return n.message;return String(n)},Hr,cn=(n,r)=>{let t=y(n),e=r?`[${r}] `:"",i=gn(n),o="ERROR";if(n instanceof I)o="BUILD ERROR";else if(n instanceof w)o="DTS ERROR";else if(n instanceof C)o="CLI ERROR";else if(n instanceof z)o="WATCH ERROR";else if(i)o="ISOLATED DECL ERROR";else if(n instanceof j)o="BUNUP ERROR";let s=Hr.find((c)=>c.pattern.test(t)&&(c.errorType===o||!c.errorType));if(!s)console.error(`${b.default.red(o)} ${e}${i?b.default.dim(t):t}`);if(s)console.log(`
4
4
  `),s.logSolution(t),console.log(`
5
- `);else if(!o)console.error(b.default.dim(b.default.white("If you think this is a bug, please open an issue at: ")+b.default.cyan("https://github.com/arshad-yaseen/bunup/issues/new")))},$n=(n,r)=>{gn(n,r),process.exit(1)};var y=p(()=>{b=W(q(),1);R();I=class I extends Error{constructor(n){super(n);this.name="BunupError"}};M=class M extends I{constructor(n){super(n);this.name="BunupBuildError"}};h=class h extends I{constructor(n){super(n);this.name="BunupDTSBuildError"}};C=class C extends I{constructor(n){super(n);this.name="BunupCLIError"}};V=class V extends I{constructor(n){super(n);this.name="BunupWatchError"}};X=class X extends I{constructor(n){super(n);this.name="BunupIsolatedDeclError"}};Ur=[{pattern:/Could not resolve: "bun"/i,errorType:"BUILD ERROR",logSolution:()=>{l.error(b.default.white("You're trying to build a project that uses Bun. ")+b.default.white("Please set the target option to ")+b.default.cyan("`bun`")+b.default.white(`.
6
- `)+b.default.white("Example: ")+b.default.green("`bunup --target bun`")+b.default.white(" or in config: ")+b.default.green("{ target: 'bun' }"))}}]});import kn from"fs/promises";import _r from"path";function Tn(n,r,t){return Array.isArray(n)?n.map((e)=>({...e,[r]:t})):{...n,[r]:t}}function In(n){return Array.isArray(n)?n:[n]}function Mn(n,r){switch(n){case"esm":return U(r)?".js":".mjs";case"cjs":return U(r)?".cjs":".js";case"iife":return".global.js"}}function jn(n,r){switch(n){case"esm":return U(r)?".d.ts":".d.mts";case"cjs":return U(r)?".d.cts":".d.ts";case"iife":return".d.ts"}}function cn(n){return n==="node"||n==="bun"}function U(n){return n==="module"}function z(n){return n>=1000?`${(n/1000).toFixed(2)}s`:`${Math.round(n)}ms`}function An(n){if(!n)return[];return Array.from(new Set([...Object.keys(n.dependencies||{}),...Object.keys(n.peerDependencies||{})]))}function j(n,r=3){return n.split("/").slice(-r).join("/")}async function En(n,r){let t=_r.join(n,r);try{await kn.rm(t,{recursive:!0,force:!0})}catch(e){throw new M(`Failed to clean output directory: ${e}`)}await kn.mkdir(t,{recursive:!0})}var $=p(()=>{y()});function Hr(n){return An(n).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function Un(n,r){return typeof r==="string"?r===n:r.test(n)}function D(n,r,t){let o=Hr(t).some((s)=>s.test(n))||r.external?.some((s)=>Un(n,s)),i=r.noExternal?.some((s)=>Un(n,s));return o&&!i}var ln=p(()=>{$()});import{resolveTsImportPath as Wr}from"ts-import-resolver";var Y="\x00dts:",_n=(n,r,t)=>{return{name:"bunup:virtual-dts",async resolveId(e,o){if(mn(e))return e;if(!o||!mn(o))return null;let i=r.tsconfig?Wr({path:e,importer:F(o),tsconfig:r.tsconfig,rootDir:t}):null;if(!i)return null;let s=k(i);if(n.has(s))return J(s);return null},load(e){if(e.startsWith(Y)){let o=F(e),i=n.get(o);if(i)return i}return null}}};var fn=p(()=>{T()});function v(n){return n.endsWith(".d.ts")||n.endsWith(".d.mts")||n.endsWith(".d.cts")}function Hn(n){return un.test(n)&&!v(n)}function _(n){return[".ts",".mts",".cts",".tsx"].some((r)=>n.endsWith(r))&&!v(n)}function k(n){if(v(n))return n;if(n.endsWith(".mts"))return`${n.slice(0,-4)}.d.mts`;if(n.endsWith(".cts"))return`${n.slice(0,-4)}.d.cts`;if(un.test(n))return n.replace(un,".d.ts");return`${n}.d.ts`}function mn(n){return n.startsWith(Y)}function F(n){return n.replace(Y,"")}function J(n){return`${Y}${n}`}function Wn(n,r){if(r===void 0)return"";let t=n.slice(0,r).split(`
7
- `),e=t.length,o=t[t.length-1].length+1;return` (${e}:${o})`}function qn(n,r,t,e){if(typeof e==="boolean"&&e)return!1;if(Array.isArray(e)){for(let o of e)if(typeof o==="string"&&n===o)return!1;else if(o instanceof RegExp&&o.test(n))return!1}return D(n,r,t)}var un;var T=p(()=>{ln();fn();un=/\.(js|mjs|cjs|ts|mts|cts|tsx|jsx)$/});import{basename as qr,dirname as Fr,extname as Yr}from"path";function N(n){let r=qr(n),t=Yr(r);return t?r.slice(0,-t.length):r}function K(n){if(typeof n==="string")return[{fullEntryPath:n,name:N(n)}];if(typeof n==="object"&&!Array.isArray(n))return Object.entries(n).map(([e,o])=>({fullEntryPath:o,name:e}));let r=[],t=new Set;for(let e of n){let o=N(e);if(!t.has(o)){r.push({fullEntryPath:e,name:o}),t.add(o);continue}let s=Fr(e).split("/").filter((a)=>a!=="."&&a!=="");if(s.length===0){let a=1,g;do g=`${o}_${a++}`;while(t.has(g));r.push({fullEntryPath:e,name:g}),t.add(g);continue}let c=!1;for(let a=1;a<=s.length&&!c;a++){let m=`${s.slice(-a).join("/")}/${o}`;if(!t.has(m))r.push({fullEntryPath:e,name:m}),t.add(m),c=!0}if(!c){let a=1,g;do g=`${s.join("/")}/${o}_${a++}`;while(t.has(g));r.push({fullEntryPath:e,name:g}),t.add(g)}}return r}function Fn(n){return n.filter((r)=>_(r.fullEntryPath))}function Yn(n,r){return`[dir]/${n}${r}`}var P=p(()=>{T()});import Qr from"path";import{loadConfig as Gn}from"unconfig";async function Qn(n,r,t){return Array.isArray(n)&&"root"in n[0]?n.filter((e)=>t?t.includes(e.name):!0).map((e)=>({rootDir:Qr.resolve(r,e.root),options:Tn(e.config,"name",e.name)})):[{rootDir:r,options:n}]}async function Zn(n){let{config:r,sources:t}=await Gn({sources:[{files:"package.json",extensions:[]}],cwd:n});return{packageJson:r,path:t?.[0]}}async function Vn(n,r){let{config:t,sources:e}=await Gn({sources:r?[{files:r,extensions:[]}]:[{files:"tsconfig.json",extensions:[]}],cwd:n});return{tsconfig:t,path:e?.[0]}}var pn=p(()=>{$()});import Xn from"path";import{ResolverFactory as Zr}from"oxc-resolver";function zn(n,r){return{name:"bunup:types-resolve",buildStart(){bn||=new Zr({mainFields:["types","typings","module","main"],conditionNames:["types","typings","import","require"],extensions:[".d.ts",".d.mts",".d.cts",".ts",".mts",".cts"],...n.path&&{tsconfig:{configFile:n.path}},modules:["node_modules","node_modules/@types"]})},async resolveId(t,e){if(r===!1)return;if(t==="bun")return;let o=e?F(e):void 0;if(/\0/.test(t))return;if(Array.isArray(r)){if(!r.some((a)=>typeof a==="string"?a===t:a.test(t)))return}let i=o?Xn.dirname(o):process.cwd(),{path:s}=await bn.async(i,t);if(!s)return;if(Hn(s)){let c=k(s);try{let{path:a}=await bn.async(Xn.dirname(s),c);if(a)return a}catch(a){}return}return s}}}var bn;var Dn=p(()=>{T()});import{build as Vr}from"rolldown";import{dts as Xr}from"rolldown-plugin-dts";async function Jn(n,r,t,e,o,i){let s=k(n),c=J(s),a=typeof t.dts==="object"&&"resolve"in t.dts?t.dts.resolve:void 0;try{let{output:g}=await Vr({input:c,output:{dir:t.outDir},write:!1,...o.path&&{resolve:{tsconfigFilename:o.path}},onwarn(m,f){if(["UNRESOLVED_IMPORT","CIRCULAR_DEPENDENCY","EMPTY_BUNDLE"].includes(m.code??""))return;f(m)},plugins:[_n(r,o,i),a&&zn(o,a),Xr({dtsInput:!0,emitDtsOnly:!0})],external:(m)=>qn(m,t,e,a)});if(!g[0]?.code)return l.warn(`Generated empty declaration file for entry "${n}"`,{muted:!0}),"";return g[0].code}catch(g){throw new h(`DTS bundling failed for entry "${n}": ${w(g)}`)}}var Nn=p(()=>{y();R();Dn();T();fn()});import{resolveTsImportPath as zr}from"ts-import-resolver";function te(n){let r=new Set,t=[Dr,Jr,Nr,Pr,ne,re,ee];for(let e of t){let o=n.matchAll(e);for(let i of o)if(i[1])r.add(i[1])}return r}async function Pn(n,r,t){let e=new Set([n]),o=[n];while(o.length){let i=o.pop();if(!i)continue;try{let s=await Bun.file(i).text(),c=te(s);for(let a of c){let g=r.tsconfig?zr({path:a,importer:i,tsconfig:r.tsconfig,rootDir:t}):null;if(!g||!(_(g)||v(g)))continue;if(!e.has(g))e.add(g),o.push(g)}}catch(s){l.warn(`Error processing ${i}: ${w(s)}`)}}return e}var Dr,Jr,Nr,Pr,ne,re,ee;var nr=p(()=>{y();R();T();Dr=/^\s*import\s+(?:[^'"]*?\s+from\s+)?['"]([^'"]+)['"]/gm,Jr=/^\s*export\s+.*from\s+['"]([^'"]+)['"]/gm,Nr=/import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,Pr=/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,ne=/import\s+\w+\s*=\s*require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,re=/\/\/\/\s*<reference\s+path\s*=\s*['"]([^'"]+)['"]\s*\/>/g,ee=/\/\/\/\s*<reference\s+types\s*=\s*['"]([^'"]+)['"]\s*\/>/g});import{isolatedDeclaration as oe}from"oxc-transform";async function rr(n,r){let t=!1,e=new Map;if(await Promise.all([...n].map(async(o)=>{try{let i=k(o);if(!await Bun.file(o).exists())return;let c=await Bun.file(o).text(),{code:a,errors:g}=oe(o,c);if(a)e.set(i,a);for(let m of g){if(!t&&!r)console.log(`
8
- `);let f=m.labels[0],u=f?Wn(c,f.start):"",O=`${j(o)}${u}: ${ie(m.message)}`;l[r?"warn":"error"](O),t=!0}}catch(i){l.warn(`Failed to generate declaration for ${o}: ${w(i)}`)}})),t&&!r)throw console.log(`
9
- `),new X(`TypeScript is asking for explicit type annotations on your exports. This helps ensure better, more reliable type declarations for your library. Bunup uses TypeScript's ${xn.default.blue("isolatedDeclarations")} feature to generate these declarations, which requires each export from your library to be fully typed. You can learn more here: ${xn.default.blue("https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-5.html#isolated-declarations")}`);return e}function ie(n){return n.replace(" with --isolatedDeclarations","").replace(" with --isolatedDeclaration","")}var xn;var er=p(()=>{xn=W(q(),1);y();R();$();T()});import tr from"fs/promises";import hn from"path";async function or(n,r){let t=hn.resolve(n),e=hn.resolve(t,r);if(!await tr.exists(t))throw new h(`Root directory does not exist: ${t}`);if(!await Bun.file(e).exists())throw new h(`Entry file does not exist: ${e}`);if(!_(e))throw new h(`Entry file must be a TypeScript file: ${e}`);if(hn.relative(t,e).startsWith(".."))throw new h(`Entry file must be within rootDir: ${e}`);return{absoluteRootDir:t,absoluteEntry:e}}var ir=p(()=>{y();T()});async function sr(n,r,t,e,o){let{absoluteEntry:i}=await or(n,r),s=await Pn(i,e,n),c=await rr(s,t.watch);return Jn(i,c,t,o,e,n)}var ar=p(()=>{Nn();nr();er();ir()});function en(n){return{...se,...n}}function gr(n){let{minify:r,minifyWhitespace:t,minifyIdentifiers:e,minifySyntax:o}=n,i=r===!0;return{whitespace:t??i,identifiers:e??i,syntax:o??i}}function cr(n,r){return r==="cjs"?n:void 0}function lr(n,r,t,e){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},{}),...n,...e==="cjs"&&(r===!0||typeof r==="object"&&r.importMetaUrl)&&{"import.meta.url":"importMetaUrl"}}}function mr(n,r){return n===void 0?r==="esm":n}function fr(n){return typeof n==="string"?n:void 0}var se;var wn=p(()=>{se={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0}});function ur(n,r){return{name:"bunup:external-plugin",setup(t){t.onResolve({filter:/.*/},(e)=>{let o=e.path;if(D(o,n,r))return{path:o,external:!0};return null})}}}var dr=p(()=>{ln()});function pr({format:n,target:r,shims:t}){let o=ge(t).map((i)=>Cn[i]).filter((i)=>i.appliesTo(n,r));if(o.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(i){i.onLoad({filter:ae},async({path:s})=>{let c=await Bun.file(s).text(),a=o.filter((u)=>u.isNeededInFile(c));if(a.length===0)return;let{shebangLine:g,codeContent:m}=ce(c),f=a.map((u)=>u.generateCode()).join("");return{contents:g+f+m}})}}}function ge(n){if(n===!0)return Object.keys(Cn);if(!n)return[];return Object.entries(n).filter(([r,t])=>t&&(r in Cn)).map(([r])=>r)}function ce(n){if(!n.startsWith("#!"))return{shebangLine:"",codeContent:n};let r=n.indexOf(`
10
- `);return r===-1?{shebangLine:"",codeContent:n}:{shebangLine:n.slice(0,r+1),codeContent:n.slice(r+1)}}var ae,Cn;var br=p(()=>{$();ae=/\.(js|ts|jsx|tsx|mts|cts)$/,Cn={dirnameFilename:{appliesTo:(n,r)=>n==="esm"&&cn(r),isNeededInFile:(n)=>/\b__dirname\b/.test(n)||/\b__filename\b/.test(n),generateCode:()=>`import { fileURLToPath } from 'url';
5
+ `);else if(!i)console.error(b.default.dim(b.default.white("If you think this is a bug, please open an issue at: ")+b.default.cyan("https://github.com/arshad-yaseen/bunup/issues/new")))},$n=(n,r)=>{cn(n,r),process.exit(1)};var B=p(()=>{b=W(v(),1);L();j=class j extends Error{constructor(n){super(n);this.name="BunupError"}};I=class I extends j{constructor(n){super(n);this.name="BunupBuildError"}};w=class w extends j{constructor(n){super(n);this.name="BunupDTSBuildError"}};C=class C extends j{constructor(n){super(n);this.name="BunupCLIError"}};z=class z extends j{constructor(n){super(n);this.name="BunupWatchError"}};D=class D extends j{constructor(n){super(n);this.name="BunupIsolatedDeclError"}};Hr=[{pattern:/Could not resolve: "bun"/i,errorType:"BUILD ERROR",logSolution:()=>{l.error(b.default.white("You're trying to build a project that uses Bun. ")+b.default.white("Please set the target option to ")+b.default.cyan("`bun`")+b.default.white(`.
6
+ `)+b.default.white("Example: ")+b.default.green("`bunup --target bun`")+b.default.white(" or in config: ")+b.default.green("{ target: 'bun' }"))}}]});import Tn from"fs/promises";import Wr from"path";function jn(n,r,t){return Array.isArray(n)?n.map((e)=>({...e,[r]:t})):{...n,[r]:t}}function In(n){return Array.isArray(n)?n:[n]}function Mn(n,r){switch(n){case"esm":return E(r)?".js":".mjs";case"cjs":return E(r)?".cjs":".js";case"iife":return".global.js"}}function An(n,r){switch(n){case"esm":return E(r)?".d.ts":".d.mts";case"cjs":return E(r)?".d.cts":".d.ts";case"iife":return".d.ts"}}function ln(n){return n==="node"||n==="bun"}function E(n){return n==="module"}function X(n){return n>=1000?`${(n/1000).toFixed(2)}s`:`${Math.round(n)}ms`}function En(n){if(!n)return[];return Array.from(new Set([...Object.keys(n.dependencies||{}),...Object.keys(n.peerDependencies||{})]))}function M(n,r=3){return n.split("/").slice(-r).join("/")}async function Un(n,r){let t=Wr.join(n,r);try{await Tn.rm(t,{recursive:!0,force:!0})}catch(e){throw new I(`Failed to clean output directory: ${e}`)}await Tn.mkdir(t,{recursive:!0})}var R=p(()=>{B()});function vr(n){return En(n).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function _n(n,r){return typeof r==="string"?r===n:r.test(n)}function J(n,r,t){let i=vr(t).some((s)=>s.test(n))||r.external?.some((s)=>_n(n,s)),o=r.noExternal?.some((s)=>_n(n,s));return i&&!o}var mn=p(()=>{R()});import{resolveTsImportPath as qr}from"ts-import-resolver";var Y="\x00dts:",Hn=(n,r,t)=>{return{name:"bunup:virtual-dts",async resolveId(e,i){if(un(e))return e;if(!i||!un(i))return null;let o=r.tsconfig?qr({path:e,importer:q(i),tsconfig:r.tsconfig,rootDir:t}):null;if(!o)return null;let s=k(o);if(n.has(s))return N(s);return null},load(e){if(e.startsWith(Y)){let i=q(e),o=n.get(i);if(o)return o}return null}}};var fn=p(()=>{$()});function F(n){return n.endsWith(".d.ts")||n.endsWith(".d.mts")||n.endsWith(".d.cts")}function Wn(n){return dn.test(n)&&!F(n)}function U(n){return[".ts",".mts",".cts",".tsx"].some((r)=>n.endsWith(r))&&!F(n)}function k(n){if(F(n))return n;if(n.endsWith(".mts"))return`${n.slice(0,-4)}.d.mts`;if(n.endsWith(".cts"))return`${n.slice(0,-4)}.d.cts`;if(dn.test(n))return n.replace(dn,".d.ts");return`${n}.d.ts`}function un(n){return n.startsWith(Y)}function q(n){return n.replace(Y,"")}function N(n){return`${Y}${n}`}function vn(n,r){if(r===void 0)return"";let t=n.slice(0,r).split(`
7
+ `),e=t.length,i=t[t.length-1].length+1;return` (${e}:${i})`}function qn(n,r,t,e){if(typeof e==="boolean"&&e)return!1;if(Array.isArray(e)){for(let i of e)if(typeof i==="string"&&n===i)return!1;else if(i instanceof RegExp&&i.test(n))return!1}return J(n,r,t)}var dn;var $=p(()=>{mn();fn();dn=/\.(js|mjs|cjs|ts|mts|cts|tsx|jsx)$/});import{basename as Yr,dirname as Fr,extname as Kr}from"path";function P(n){let r=Yr(n),t=Kr(r);return t?r.slice(0,-t.length):r}function K(n){if(typeof n==="string")return[{fullEntryPath:n,name:P(n)}];if(typeof n==="object"&&!Array.isArray(n))return Object.entries(n).map(([e,i])=>({fullEntryPath:i,name:e}));let r=[],t=new Set;for(let e of n){let i=P(e);if(!t.has(i)){r.push({fullEntryPath:e,name:i}),t.add(i);continue}let s=Fr(e).split("/").filter((a)=>a!=="."&&a!=="");if(s.length===0){let a=1,g;do g=`${i}_${a++}`;while(t.has(g));r.push({fullEntryPath:e,name:g}),t.add(g);continue}let c=!1;for(let a=1;a<=s.length&&!c;a++){let m=`${s.slice(-a).join("/")}/${i}`;if(!t.has(m))r.push({fullEntryPath:e,name:m}),t.add(m),c=!0}if(!c){let a=1,g;do g=`${s.join("/")}/${i}_${a++}`;while(t.has(g));r.push({fullEntryPath:e,name:g}),t.add(g)}}return r}function Yn(n){return n.filter((r)=>U(r.fullEntryPath))}function Fn(n,r){return`[dir]/${n}${r}`}var nn=p(()=>{$()});import Vr from"path";import{loadConfig as Qn}from"coffi";async function Zn(n,r,t){return Array.isArray(n)&&"root"in n[0]?n.filter((e)=>t?t.includes(e.name):!0).map((e)=>({rootDir:Vr.resolve(r,e.root),options:jn(e.config,"name",e.name)})):[{rootDir:r,options:n}]}async function Vn(n){let{config:r,filepath:t}=await Qn({name:"package",cwd:n,extensions:[".json"]});return{packageJson:r,path:t}}async function zn(n,r){let{config:t,filepath:e}=await Qn({name:"tsconfig",cwd:n,extensions:[".json"],preferredPath:r});return{tsconfig:t,path:e}}var bn=p(()=>{R()});import Dn from"path";import{ResolverFactory as zr}from"oxc-resolver";function Xn(n,r){return{name:"bunup:types-resolve",buildStart(){xn||=new zr({mainFields:["types","typings","module","main"],conditionNames:["types","typings","import","require"],extensions:[".d.ts",".d.mts",".d.cts",".ts",".mts",".cts"],...n.path&&{tsconfig:{configFile:n.path}},modules:["node_modules","node_modules/@types"]})},async resolveId(t,e){if(r===!1)return;if(t==="bun")return;let i=e?q(e):void 0;if(/\0/.test(t))return;if(Array.isArray(r)){if(!r.some((a)=>typeof a==="string"?a===t:a.test(t)))return}let o=i?Dn.dirname(i):process.cwd(),{path:s}=await xn.async(o,t);if(!s)return;if(Wn(s)){let c=k(s);try{let{path:a}=await xn.async(Dn.dirname(s),c);if(a)return a}catch(a){}return}return s}}}var xn;var Jn=p(()=>{$()});import{build as Dr}from"rolldown";import{dts as Xr}from"rolldown-plugin-dts";async function Nn(n,r,t,e,i,o){let s=k(n),c=N(s),a=typeof t.dts==="object"&&"resolve"in t.dts?t.dts.resolve:void 0;try{let{output:g}=await Dr({input:c,output:{dir:t.outDir},write:!1,...i.path&&{resolve:{tsconfigFilename:i.path}},onwarn(m,u){if(["UNRESOLVED_IMPORT","CIRCULAR_DEPENDENCY","EMPTY_BUNDLE"].includes(m.code??""))return;u(m)},plugins:[Hn(r,i,o),a&&Xn(i,a),Xr({dtsInput:!0,emitDtsOnly:!0})],external:(m)=>qn(m,t,e,a)});if(!g[0]?.code)return l.warn(`Generated empty declaration file for entry "${n}"`,{muted:!0}),"";return g[0].code}catch(g){throw new w(`DTS bundling failed for entry "${n}": ${y(g)}`)}}var Pn=p(()=>{B();L();Jn();$();fn()});import{resolveTsImportPath as Jr}from"ts-import-resolver";function oe(n){let r=new Set,t=[Nr,Pr,ne,re,ee,te,ie];for(let e of t){let i=n.matchAll(e);for(let o of i)if(o[1])r.add(o[1])}return r}async function nr(n,r,t){let e=new Set([n]),i=[n];while(i.length){let o=i.pop();if(!o)continue;try{let s=await Bun.file(o).text(),c=oe(s);for(let a of c){let g=r.tsconfig?Jr({path:a,importer:o,tsconfig:r.tsconfig,rootDir:t}):null;if(!g||!(U(g)||F(g)))continue;if(!e.has(g))e.add(g),i.push(g)}}catch(s){l.warn(`Error processing ${o}: ${y(s)}`)}}return e}var Nr,Pr,ne,re,ee,te,ie;var rr=p(()=>{B();L();$();Nr=/^\s*import\s+(?:[^'"]*?\s+from\s+)?['"]([^'"]+)['"]/gm,Pr=/^\s*export\s+.*from\s+['"]([^'"]+)['"]/gm,ne=/import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,re=/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,ee=/import\s+\w+\s*=\s*require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,te=/\/\/\/\s*<reference\s+path\s*=\s*['"]([^'"]+)['"]\s*\/>/g,ie=/\/\/\/\s*<reference\s+types\s*=\s*['"]([^'"]+)['"]\s*\/>/g});import{isolatedDeclaration as se}from"oxc-transform";async function er(n,r){let t=!1,e=new Map;if(await Promise.all([...n].map(async(i)=>{try{let o=k(i);if(!await Bun.file(i).exists())return;let c=await Bun.file(i).text(),{code:a,errors:g}=se(i,c);if(a)e.set(o,a);for(let m of g){if(!t&&!r)console.log(`
8
+ `);let u=m.labels[0],f=u?vn(c,u.start):"",h=`${M(i)}${f}: ${ae(m.message)}`;l[r?"warn":"error"](h),t=!0}}catch(o){l.warn(`Failed to generate declaration for ${i}: ${y(o)}`)}})),t&&!r)throw console.log(`
9
+ `),new D(`TypeScript is asking for explicit type annotations on your exports. This helps ensure better, more reliable type declarations for your library. Bunup uses TypeScript's ${hn.default.blue("isolatedDeclarations")} feature to generate these declarations, which requires each export from your library to be fully typed. You can learn more here: ${hn.default.blue("https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-5.html#isolated-declarations")}`);return e}function ae(n){return n.replace(" with --isolatedDeclarations","").replace(" with --isolatedDeclaration","")}var hn;var tr=p(()=>{hn=W(v(),1);B();L();R();$()});import ir from"fs/promises";import wn from"path";async function or(n,r){let t=wn.resolve(n),e=wn.resolve(t,r);if(!await ir.exists(t))throw new w(`Root directory does not exist: ${t}`);if(!await Bun.file(e).exists())throw new w(`Entry file does not exist: ${e}`);if(!U(e))throw new w(`Entry file must be a TypeScript file: ${e}`);if(wn.relative(t,e).startsWith(".."))throw new w(`Entry file must be within rootDir: ${e}`);return{absoluteRootDir:t,absoluteEntry:e}}var sr=p(()=>{B();$()});async function ar(n,r,t,e,i){let{absoluteEntry:o}=await or(n,r),s=await nr(o,e,n),c=await er(s,t.watch);return Nn(o,c,t,i,e,n)}var gr=p(()=>{Pn();rr();tr();sr()});function tn(n){return{...ge,...n}}function cr(n){let{minify:r,minifyWhitespace:t,minifyIdentifiers:e,minifySyntax:i}=n,o=r===!0;return{whitespace:t??o,identifiers:e??o,syntax:i??o}}function lr(n,r){return r==="cjs"?n:void 0}function mr(n,r,t,e){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},{}),...n,...e==="cjs"&&(r===!0||typeof r==="object"&&r.importMetaUrl)&&{"import.meta.url":"importMetaUrl"}}}function ur(n,r){return n===void 0?r==="esm":n}function fr(n){return typeof n==="string"?n:void 0}var ge;var yn=p(()=>{ge={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0}});function dr(n,r){return{name:"bunup:external-plugin",setup(t){t.onResolve({filter:/.*/},(e)=>{let i=e.path;if(J(i,n,r))return{path:i,external:!0};return null})}}}var pr=p(()=>{mn()});function br({format:n,target:r,shims:t}){let i=le(t).map((o)=>Cn[o]).filter((o)=>o.appliesTo(n,r));if(i.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(o){o.onLoad({filter:ce},async({path:s})=>{let c=await Bun.file(s).text(),a=i.filter((f)=>f.isNeededInFile(c));if(a.length===0)return;let{shebangLine:g,codeContent:m}=me(c),u=a.map((f)=>f.generateCode()).join("");return{contents:g+u+m}})}}}function le(n){if(n===!0)return Object.keys(Cn);if(!n)return[];return Object.entries(n).filter(([r,t])=>t&&(r in Cn)).map(([r])=>r)}function me(n){if(!n.startsWith("#!"))return{shebangLine:"",codeContent:n};let r=n.indexOf(`
10
+ `);return r===-1?{shebangLine:"",codeContent:n}:{shebangLine:n.slice(0,r+1),codeContent:n.slice(r+1)}}var ce,Cn;var xr=p(()=>{R();ce=/\.(js|ts|jsx|tsx|mts|cts)$/,Cn={dirnameFilename:{appliesTo:(n,r)=>n==="esm"&&ln(r),isNeededInFile:(n)=>/\b__dirname\b/.test(n)||/\b__filename\b/.test(n),generateCode:()=>`import { fileURLToPath } from 'url';
11
11
  import { dirname } from 'path';
12
12
 
13
13
  const __filename = fileURLToPath(import.meta.url);
14
14
  const __dirname = dirname(__filename);
15
15
 
16
- `},importMetaUrl:{appliesTo:(n,r)=>n==="cjs"&&cn(r),isNeededInFile:(n)=>/\bimport\.meta\.url\b/.test(n),generateCode:()=>`import { pathToFileURL } from 'url';
16
+ `},importMetaUrl:{appliesTo:(n,r)=>n==="cjs"&&ln(r),isNeededInFile:(n)=>/\bimport\.meta\.url\b/.test(n),generateCode:()=>`import { pathToFileURL } from 'url';
17
17
 
18
18
  const importMetaUrl = pathToFileURL(__filename).href;
19
19
 
20
- `}}});function xr(n){if(!n)return[];return n.filter((r)=>r.type==="bun")}function hr(n){if(!n)return[];return n.filter((r)=>r.type==="bunup")}async function wr(n,r){if(!n)return;for(let t of n)if(t.hooks.onBuildStart)await t.hooks.onBuildStart(r)}async function Cr(n,r,t){if(!n)return;for(let e of n)if(e.hooks.onBuildDone)await e.hooks.onBuildDone({options:r,output:t})}var Or={};Ir(Or,{build:()=>yn});async function yn(n,r=process.cwd()){let t={files:[]},e=en(n);if(!e.entry||e.entry.length===0||!e.outDir)throw new M("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(e.clean)En(r,e.outDir);Z(e.silent);let{packageJson:o,path:i}=await Zn(r);if(o&&i)l.cli(`Using ${j(i,2)}`,{muted:!0,identifier:e.name,once:`${i}:${e.name}`});let s=hr(e.plugins);await wr(s,e);let c=K(e.entry),a=o?.type;if(!e.dtsOnly){let g=[ur(e,o),...xr(e.plugins).map((f)=>f.plugin)],m=e.format.flatMap((f)=>c.map(async(u)=>{let A=e.outputExtension?.({format:f,packageType:a,options:e,entry:u}).js??Mn(f,a),O=await Bun.build({entrypoints:[`${r}/${u.fullEntryPath}`],format:f,naming:{entry:Yn(u.name,A)},splitting:mr(e.splitting,f),bytecode:cr(e.bytecode,f),define:lr(e.define,e.shims,e.env,f),minify:gr(e),outdir:`${r}/${e.outDir}`,target:e.target,sourcemap:e.sourcemap,loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:fr(e.env),plugins:[...g,pr({format:f,target:e.target,shims:e.shims})],throw:!1});if(!O.success)for(let L of O.logs){if(L.level==="error")throw new M(L.message);if(L.level==="warning")l.warn(L.message);else if(L.level==="info")l.info(L.message)}let S=yr(e.outDir,u.name,A),H=Br(r,S);t.files.push({fullPath:H,relativePathToOutputDir:S}),l.progress(f.toUpperCase(),S,{identifier:e.name})}));await Promise.all(m)}if(e.dts||e.dtsOnly){let g=await Vn(r,e.preferredTsconfigPath);if(g.path)l.cli(`Using ${j(g.path,2)}`,{muted:!0,identifier:e.name,once:`${g.path}:${e.name}`});let m=e.format.filter((u)=>{if(u==="iife"&&!U(a)&&e.format.includes("cjs"))return!1;return!0}),f=typeof e.dts==="object"&&e.dts.entry?K(e.dts.entry):Fn(c);try{await Promise.all(f.map(async(u)=>{let A=await sr(r,u.fullEntryPath,e,g,o);await Promise.all(m.map(async(O)=>{let S=e.outputExtension?.({format:O,packageType:a,options:e,entry:u}).dts??jn(O,a),H=yr(e.outDir,u.name,S),L=Br(r,H);t.files.push({fullPath:L,relativePathToOutputDir:H}),await Bun.write(L,A),l.progress("DTS",H,{identifier:e.name})}))}))}catch(u){if(an(u))throw u;throw new h(w(u))}}if(await Cr(s,e,t),e.onSuccess)await e.onSuccess(e)}function yr(n,r,t){return`${n}/${r}${t}`}function Br(n,r){return`${n}/${r}`}var Bn=p(()=>{ar();y();P();pn();R();wn();dr();br();$()});import{exec as me}from"tinyexec";var dn=W(q(),1);var Ln="https://bunup.dev/cli-options";y();P();R();function x(n){return(r,t)=>{t[n]=r===!0||r==="true"}}function B(n){return(r,t)=>{if(typeof r==="string")t[n]=r;else throw new C(`Option --${n} requires a string value`)}}function nn(n){return(r,t)=>{if(typeof r==="string")t[n]=r.split(",");else throw new C(`Option --${n} requires a string value`)}}function vr(n){return(r,t)=>{if(typeof r==="boolean")t[n]=r;else if(typeof r==="string")if(r.toLowerCase()==="true"||r.toLowerCase()==="false")t[n]=r.toLowerCase()==="true";else t[n]=r;else throw new C(`Option --${n} requires a boolean or string value`)}}function Kr(){console.log(`
20
+ `}}});function hr(n){if(!n)return[];return n.filter((r)=>r.type==="bun")}function wr(n){if(!n)return[];return n.filter((r)=>r.type==="bunup")}async function yr(n,r){if(!n)return;for(let t of n)if(t.hooks.onBuildStart)await t.hooks.onBuildStart(r)}async function Cr(n,r,t){if(!n)return;for(let e of n)if(e.hooks.onBuildDone)await e.hooks.onBuildDone({options:r,output:t})}var Sr={};Ir(Sr,{build:()=>Bn});async function Bn(n,r=process.cwd()){let t={files:[]},e=tn(n);if(!e.entry||e.entry.length===0||!e.outDir)throw new I("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(e.clean)Un(r,e.outDir);V(e.silent);let{packageJson:i,path:o}=await Vn(r);if(i&&o)l.cli(`Using ${M(o,2)}`,{muted:!0,identifier:e.name,once:`${o}:${e.name}`});let s=wr(e.plugins);await yr(s,e);let c=K(e.entry),a=i?.type;if(!e.dtsOnly){let g=[dr(e,i),...hr(e.plugins).map((u)=>u.plugin)],m=e.format.flatMap((u)=>c.map(async(f)=>{let T=e.outputExtension?.({format:u,packageType:a,options:e,entry:f}).js??Mn(u,a),h=await Bun.build({entrypoints:[`${r}/${f.fullEntryPath}`],format:u,naming:{entry:Fn(f.name,T)},splitting:ur(e.splitting,u),bytecode:lr(e.bytecode,u),define:mr(e.define,e.shims,e.env,u),minify:cr(e),outdir:`${r}/${e.outDir}`,target:e.target,sourcemap:e.sourcemap,loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:fr(e.env),plugins:[...g,br({format:u,target:e.target,shims:e.shims})],throw:!1});if(!h.success)for(let S of h.logs){if(S.level==="error")throw new I(S.message);if(S.level==="warning")l.warn(S.message);else if(S.level==="info")l.info(S.message)}let _=Br(e.outDir,f.name,T),H=Or(r,_);t.files.push({fullPath:H,relativePathToOutputDir:_}),l.progress(u.toUpperCase(),_,{identifier:e.name})}));await Promise.all(m)}if(e.dts||e.dtsOnly){let g=await zn(r,e.preferredTsconfigPath);if(g.path)l.cli(`Using ${M(g.path,2)}`,{muted:!0,identifier:e.name,once:`${g.path}:${e.name}`});let m=e.format.filter((f)=>{if(f==="iife"&&!E(a)&&e.format.includes("cjs"))return!1;return!0}),u=typeof e.dts==="object"&&e.dts.entry?K(e.dts.entry):Yn(c);try{await Promise.all(u.map(async(f)=>{let T=await ar(r,f.fullEntryPath,e,g,i);await Promise.all(m.map(async(h)=>{let _=e.outputExtension?.({format:h,packageType:a,options:e,entry:f}).dts??An(h,a),H=Br(e.outDir,f.name,_),S=Or(r,H);t.files.push({fullPath:S,relativePathToOutputDir:H}),await Bun.write(S,T),l.progress("DTS",H,{identifier:e.name})}))}))}catch(f){if(gn(f))throw f;throw new w(y(f))}}if(await Cr(s,e,t),e.onSuccess)await e.onSuccess(e)}function Br(n,r,t){return`${n}/${r}${t}`}function Or(n,r){return`${n}/${r}`}var On=p(()=>{gr();B();nn();bn();L();yn();pr();xr();R()});import{exec as fe}from"tinyexec";var G="0.4.93";var pn=W(v(),1);var Rn="https://bunup.dev/cli-options";B();nn();L();function x(n){return(r,t)=>{t[n]=r===!0||r==="true"}}function O(n){return(r,t)=>{if(typeof r==="string")t[n]=r;else throw new C(`Option --${n} requires a string value`)}}function rn(n){return(r,t)=>{if(typeof r==="string")t[n]=r.split(",");else throw new C(`Option --${n} requires a string value`)}}function Gr(n){return(r,t)=>{if(typeof r==="boolean")t[n]=r;else if(typeof r==="string")if(r.toLowerCase()==="true"||r.toLowerCase()==="false")t[n]=r.toLowerCase()==="true";else t[n]=r;else throw new C(`Option --${n} requires a boolean or string value`)}}function Qr(){console.log(`
21
21
  Bunup - \u26A1\uFE0F A blazing-fast build tool for your libraries built with Bun.
22
- `),console.log("For more information on available options, visit:"),console.log(`${dn.default.cyan(dn.default.underline(Ln))}
23
- `),process.exit(0)}function Gr(){console.log("0.4.74"),process.exit(0)}var vn={name:{flags:["n","name"],handler:B("name")},format:{flags:["f","format"],handler:nn("format")},outDir:{flags:["o","out-dir"],handler:B("outDir")},minify:{flags:["m","minify"],handler:x("minify")},watch:{flags:["w","watch"],handler:x("watch")},dts:{flags:["d","dts"],handler:x("dts")},banner:{flags:["bn","banner"],handler:B("banner")},footer:{flags:["ft","footer"],handler:B("footer")},external:{flags:["e","external"],handler:nn("external")},sourcemap:{flags:["sm","sourcemap"],handler:vr("sourcemap")},target:{flags:["t","target"],handler:B("target")},minifyWhitespace:{flags:["mw","minify-whitespace"],handler:x("minifyWhitespace")},minifyIdentifiers:{flags:["mi","minify-identifiers"],handler:x("minifyIdentifiers")},minifySyntax:{flags:["ms","minify-syntax"],handler:x("minifySyntax")},clean:{flags:["c","clean"],handler:x("clean")},splitting:{flags:["s","splitting"],handler:x("splitting")},noExternal:{flags:["ne","no-external"],handler:nn("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:B("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:x("bytecode")},dtsOnly:{flags:["do","dts-only"],handler:x("dtsOnly")},silent:{flags:["silent"],handler:x("silent")},config:{flags:["config"],handler:B("config")},publicPath:{flags:["pp","public-path"],handler:B("publicPath")},env:{flags:["env"],handler:B("env")},shims:{flags:["shims"],handler:x("shims")},onSuccess:{flags:["onSuccess"],handler:B("onSuccess")},filter:{flags:["filter"],handler:nn("filter")},entry:{flags:["entry"],handler:(n,r,t)=>{if(typeof n!=="string")throw new C(`Entry${t?` --entry.${t}`:""} requires a string value`);let e=r.entry||{};if(t){if(e[t])l.warn(`Duplicate entry name '${t}' provided via --entry.${t}. Overwriting previous entry.`);e[t]=n}else{let o=N(n);if(e[o])l.warn(`Duplicate entry name '${o}' derived from '${n}'. Overwriting previous entry.`);e[o]=n}r.entry=e}},resolveDts:{flags:["rd","resolve-dts"],handler:(n,r)=>{if(!r.dts)r.dts={};if(typeof r.dts==="boolean")r.dts={};if(typeof n==="string")if(n==="true"||n==="false")r.dts.resolve=n==="true";else r.dts.resolve=n.split(",");else r.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>Kr()},version:{flags:["v","version"],handler:()=>Gr()}},rn={};for(let n of Object.values(vn))for(let r of n.flags)rn[r]=n.handler;function Kn(n){let r={};for(let t=0;t<n.length;t++){let e=n[t];if(e.startsWith("--")){let o,i;if(e.includes("=")){let[s,c]=e.slice(2).split("=",2);o=s,i=c}else{o=e.slice(2);let s=n[t+1];if(i=s&&!s.startsWith("-")?s:!0,typeof i==="string")t++}if(o.includes(".")){let[s,c]=o.split(".",2),a=rn[s];if(a)a(i,r,c);else throw new C(`Unknown option: --${o}`)}else{let s=rn[o];if(s)s(i,r);else throw new C(`Unknown option: --${o}`)}}else if(e.startsWith("-")){let o=e.slice(1),i=n[t+1],s=i&&!i.startsWith("-")?i:!0;if(typeof s==="string")t++;let c=rn[o];if(c)c(s,r);else throw new C(`Unknown option: -${o}`)}else vn.entry.handler(e,r,void 0)}return r}y();R();pn();$();Bn();y();P();R();wn();$();import tn from"path";async function Sr(n,r){let t=new Set,e=en(n),o=K(e.entry);for(let g of o){let m=tn.resolve(r,g.fullEntryPath),f=tn.dirname(m);t.add(f)}let s=(await import("chokidar")).watch(Array.from(t),{persistent:!0,ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,tn.join(r,e.outDir)]}),c=!1,a=async(g=!1)=>{if(c)return;c=!0;try{let m=performance.now();if(await yn({...e,entry:o.map((f)=>f.fullEntryPath),clean:!1},r),!g)l.cli(`\uD83D\uDCE6 Rebuild finished in ${z(performance.now()-m)}`)}catch(m){gn(m)}finally{c=!1}};s.on("change",(g)=>{let m=tn.relative(r,g);l.cli(`File changed: ${m}`,{muted:!0,once:m}),a()}),s.on("error",(g)=>{throw new V(`Watcher error: ${w(g)}`)}),await a(!0)}import{loadConfig as fe}from"unconfig";async function ue(n=Bun.argv.slice(2)){let r=Kn(n);Z(r.silent);let t=process.cwd(),{config:e,sources:o}=await fe({sources:r.config?[{files:r.config,extensions:[]}]:[{files:"bunup.config",extensions:["ts","js","mjs","cjs"]},{files:"package.json",extensions:[],rewrite(f){return f?.bunup}}],merge:!1}),i=o?.[0],s=!e?[{rootDir:t,options:r}]:await Qn(e,t,r.filter);if(l.cli(`Using bunup v0.4.74 and bun v${Bun.version}`,{muted:!0}),i)l.cli(`Using ${j(i,2)}`,{muted:!0});let c=performance.now();l.cli("Build started");let{build:a}=await Promise.resolve().then(() => (Bn(),Or));await Promise.all(s.flatMap(({options:f,rootDir:u})=>{return In(f).map(async(O)=>{let S={...O,...de(r)};if(S.watch)await Sr(S,u);else await a(S,u)})}));let g=performance.now()-c,m=z(g);if(l.cli(`\u26A1\uFE0F Build completed in ${m}`),r.watch)l.cli("\uD83D\uDC40 Watching for file changes");if(r.onSuccess)l.cli(`Running command: ${r.onSuccess}`,{muted:!0}),await me(r.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!r.watch)process.exit(process.exitCode??0)}function de(n){return{...n,onSuccess:void 0,config:void 0}}ue().catch((n)=>$n(n));
22
+ `),console.log("For more information on available options, visit:"),console.log(`${pn.default.cyan(pn.default.underline(Rn))}
23
+ `),process.exit(0)}function Zr(){console.log(G),process.exit(0)}var Kn={name:{flags:["n","name"],handler:O("name")},format:{flags:["f","format"],handler:rn("format")},outDir:{flags:["o","out-dir"],handler:O("outDir")},minify:{flags:["m","minify"],handler:x("minify")},watch:{flags:["w","watch"],handler:x("watch")},dts:{flags:["d","dts"],handler:x("dts")},banner:{flags:["bn","banner"],handler:O("banner")},footer:{flags:["ft","footer"],handler:O("footer")},external:{flags:["e","external"],handler:rn("external")},sourcemap:{flags:["sm","sourcemap"],handler:Gr("sourcemap")},target:{flags:["t","target"],handler:O("target")},minifyWhitespace:{flags:["mw","minify-whitespace"],handler:x("minifyWhitespace")},minifyIdentifiers:{flags:["mi","minify-identifiers"],handler:x("minifyIdentifiers")},minifySyntax:{flags:["ms","minify-syntax"],handler:x("minifySyntax")},clean:{flags:["c","clean"],handler:x("clean")},splitting:{flags:["s","splitting"],handler:x("splitting")},noExternal:{flags:["ne","no-external"],handler:rn("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:O("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:x("bytecode")},dtsOnly:{flags:["do","dts-only"],handler:x("dtsOnly")},silent:{flags:["silent"],handler:x("silent")},config:{flags:["config"],handler:O("config")},publicPath:{flags:["pp","public-path"],handler:O("publicPath")},env:{flags:["env"],handler:O("env")},shims:{flags:["shims"],handler:x("shims")},onSuccess:{flags:["onSuccess"],handler:O("onSuccess")},filter:{flags:["filter"],handler:rn("filter")},entry:{flags:["entry"],handler:(n,r,t)=>{if(typeof n!=="string")throw new C(`Entry${t?` --entry.${t}`:""} requires a string value`);let e=r.entry||{};if(t){if(e[t])l.warn(`Duplicate entry name '${t}' provided via --entry.${t}. Overwriting previous entry.`);e[t]=n}else{let i=P(n);if(e[i])l.warn(`Duplicate entry name '${i}' derived from '${n}'. Overwriting previous entry.`);e[i]=n}r.entry=e}},resolveDts:{flags:["rd","resolve-dts"],handler:(n,r)=>{if(!r.dts)r.dts={};if(typeof r.dts==="boolean")r.dts={};if(typeof n==="string")if(n==="true"||n==="false")r.dts.resolve=n==="true";else r.dts.resolve=n.split(",");else r.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>Qr()},version:{flags:["v","version"],handler:()=>Zr()}},en={};for(let n of Object.values(Kn))for(let r of n.flags)en[r]=n.handler;function Gn(n){let r={};for(let t=0;t<n.length;t++){let e=n[t];if(e.startsWith("--")){let i,o;if(e.includes("=")){let[s,c]=e.slice(2).split("=",2);i=s,o=c}else{i=e.slice(2);let s=n[t+1];if(o=s&&!s.startsWith("-")?s:!0,typeof o==="string")t++}if(i.includes(".")){let[s,c]=i.split(".",2),a=en[s];if(a)a(o,r,c);else throw new C(`Unknown option: --${i}`)}else{let s=en[i];if(s)s(o,r);else throw new C(`Unknown option: --${i}`)}}else if(e.startsWith("-")){let i=e.slice(1),o=n[t+1],s=o&&!o.startsWith("-")?o:!0;if(typeof s==="string")t++;let c=en[i];if(c)c(s,r);else throw new C(`Unknown option: -${i}`)}else Kn.entry.handler(e,r,void 0)}return r}B();L();bn();R();import{loadConfig as de}from"coffi";On();B();nn();L();yn();R();import on from"path";async function Lr(n,r){let t=new Set,e=tn(n),i=K(e.entry);for(let g of i){let m=on.resolve(r,g.fullEntryPath),u=on.dirname(m);t.add(u)}let s=(await import("chokidar")).watch(Array.from(t),{persistent:!0,ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,on.join(r,e.outDir)]}),c=!1,a=async(g=!1)=>{if(c)return;c=!0;try{let m=performance.now();if(await Bn({...e,entry:i.map((u)=>u.fullEntryPath),clean:!1},r),!g)l.cli(`\uD83D\uDCE6 Rebuild finished in ${X(performance.now()-m)}`)}catch(m){cn(m)}finally{c=!1}};s.on("change",(g)=>{let m=on.relative(r,g);l.cli(`File changed: ${m}`,{muted:!0,once:m}),a()}),s.on("error",(g)=>{throw new z(`Watcher error: ${y(g)}`)}),await a(!0)}async function pe(n=Bun.argv.slice(2)){let r=Gn(n);V(r.silent);let t=process.cwd(),{config:e,filepath:i}=await de({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:r.config,packageJsonProperty:"bunup"}),o=!e?[{rootDir:t,options:r}]:await Zn(e,t,r.filter);if(l.cli(`Using bunup v${G} and bun v${Bun.version}`,{muted:!0}),i)l.cli(`Using ${M(i,2)}`,{muted:!0});let s=performance.now();l.cli("Build started");let{build:c}=await Promise.resolve().then(() => (On(),Sr));await Promise.all(o.flatMap(({options:m,rootDir:u})=>{return In(m).map(async(T)=>{let h={...T,...be(r)};if(h.watch)await Lr(h,u);else await c(h,u)})}));let a=performance.now()-s,g=X(a);if(l.cli(`\u26A1\uFE0F Build completed in ${g}`),r.watch)l.cli("\uD83D\uDC40 Watching for file changes");if(r.onSuccess)l.cli(`Running command: ${r.onSuccess}`,{muted:!0}),await fe(r.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!r.watch)process.exit(process.exitCode??0)}function be(n){return{...n,onSuccess:void 0,config:void 0}}pe().catch((n)=>$n(n));
package/dist/index.cjs ADDED
@@ -0,0 +1,16 @@
1
+ // @bun @bun-cjs
2
+ (function(exports, require, module, __filename, __dirname) {var vr=Object.create;var{getPrototypeOf:Pr,defineProperty:O,getOwnPropertyNames:nr,getOwnPropertyDescriptor:rn}=Object,er=Object.prototype.hasOwnProperty;var l=(r,n,t)=>{t=r!=null?vr(Pr(r)):{};let e=n||!r||!r.__esModule?O(t,"default",{value:r,enumerable:!0}):t;for(let o of nr(r))if(!er.call(e,o))O(e,o,{get:()=>r[o],enumerable:!0});return e},rr=new WeakMap,nn=(r)=>{var n=rr.get(r),t;if(n)return n;if(n=O({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")nr(r).map((e)=>!er.call(n,e)&&O(n,e,{get:()=>r[e],enumerable:!(t=rn(r,e))||t.enumerable}));return rr.set(r,n),n},en=(r,n)=>()=>(n||r((n={exports:{}}).exports,n),n.exports);var tn=(r,n)=>{for(var t in n)O(r,t,{get:n[t],enumerable:!0,configurable:!0,set:(e)=>n[t]=()=>e})};var W=en((yn,G)=>{var _=process||{},ir=_.argv||[],A=_.env||{},on=!(!!A.NO_COLOR||ir.includes("--no-color"))&&(!!A.FORCE_COLOR||ir.includes("--color")||_.platform==="win32"||(_.stdout||{}).isTTY&&A.TERM!=="dumb"||!!A.CI),sn=(r,n,t=r)=>(e)=>{let o=""+e,i=o.indexOf(n,r.length);return~i?r+gn(o,n,t,i)+n:r+o+n},gn=(r,n,t,e)=>{let o="",i=0;do o+=r.substring(i,e)+t,i=e+n.length,e=r.indexOf(n,i);while(~e);return o+r.substring(i)},sr=(r=on)=>{let n=r?sn:()=>String;return{isColorSupported:r,reset:n("\x1B[0m","\x1B[0m"),bold:n("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:n("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:n("\x1B[3m","\x1B[23m"),underline:n("\x1B[4m","\x1B[24m"),inverse:n("\x1B[7m","\x1B[27m"),hidden:n("\x1B[8m","\x1B[28m"),strikethrough:n("\x1B[9m","\x1B[29m"),black:n("\x1B[30m","\x1B[39m"),red:n("\x1B[31m","\x1B[39m"),green:n("\x1B[32m","\x1B[39m"),yellow:n("\x1B[33m","\x1B[39m"),blue:n("\x1B[34m","\x1B[39m"),magenta:n("\x1B[35m","\x1B[39m"),cyan:n("\x1B[36m","\x1B[39m"),white:n("\x1B[37m","\x1B[39m"),gray:n("\x1B[90m","\x1B[39m"),bgBlack:n("\x1B[40m","\x1B[49m"),bgRed:n("\x1B[41m","\x1B[49m"),bgGreen:n("\x1B[42m","\x1B[49m"),bgYellow:n("\x1B[43m","\x1B[49m"),bgBlue:n("\x1B[44m","\x1B[49m"),bgMagenta:n("\x1B[45m","\x1B[49m"),bgCyan:n("\x1B[46m","\x1B[49m"),bgWhite:n("\x1B[47m","\x1B[49m"),blackBright:n("\x1B[90m","\x1B[39m"),redBright:n("\x1B[91m","\x1B[39m"),greenBright:n("\x1B[92m","\x1B[39m"),yellowBright:n("\x1B[93m","\x1B[39m"),blueBright:n("\x1B[94m","\x1B[39m"),magentaBright:n("\x1B[95m","\x1B[39m"),cyanBright:n("\x1B[96m","\x1B[39m"),whiteBright:n("\x1B[97m","\x1B[39m"),bgBlackBright:n("\x1B[100m","\x1B[49m"),bgRedBright:n("\x1B[101m","\x1B[49m"),bgGreenBright:n("\x1B[102m","\x1B[49m"),bgYellowBright:n("\x1B[103m","\x1B[49m"),bgBlueBright:n("\x1B[104m","\x1B[49m"),bgMagentaBright:n("\x1B[105m","\x1B[49m"),bgCyanBright:n("\x1B[106m","\x1B[49m"),bgWhiteBright:n("\x1B[107m","\x1B[49m")}};G.exports=sr();G.exports.createColors=sr});var Sn={};tn(Sn,{defineWorkspace:()=>or,defineConfig:()=>tr,build:()=>Nr});module.exports=nn(Sn);function tr(r){return r}function or(r){return r}var Sr=require("rolldown"),kr=require("rolldown-plugin-dts");var mn=l(W());var c=l(W()),gr=!1;function mr(r){gr=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:n,label:t,message:e,identifier:o,muted:i}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-t.length)),u=i?this.mutedColor(e):e,g=o?` ${n(c.default.black(` ${o} `))}`:"";return`${r(t)} ${s}${u}${g}`}output(r,n={},t=console.log){if(gr||!this.shouldLog(n))return;if(n.verticalSpace)t("");if(t(r),n.verticalSpace)t("")}cli(r,n={}){let t=this.formatMessage({fgColor:this.cliColor,bgColor:c.default.bgBlue,label:this.labels.cli,message:r,identifier:n.identifier,muted:n.muted});this.output(t,n)}info(r,n={}){let t=this.formatMessage({fgColor:this.infoColor,bgColor:c.default.bgCyan,label:this.labels.info,message:r,identifier:n.identifier,muted:n.muted});this.output(t,n)}warn(r,n={}){let t=this.formatMessage({fgColor:this.warnColor,bgColor:c.default.bgYellow,label:this.labels.warn,message:r,identifier:n.identifier,muted:n.muted});this.output(t,n,console.warn)}error(r,n={}){let t=this.formatMessage({fgColor:this.errorColor,bgColor:c.default.bgRed,label:this.labels.error,message:r,identifier:n.identifier,muted:n.muted});this.output(t,n,console.error)}getProgressFgColor(r){for(let[n,t]of Object.entries(this.progressFgColorMap))if(r.includes(n))return t;return this.defaultColor}getProgressBgColor(r){for(let[n,t]of Object.entries(this.progressBgColorMap))if(r.includes(n))return t;return c.default.bgWhite}progress(r,n,t={}){let e=this.getProgressFgColor(r),o=this.getProgressBgColor(r),i=this.formatMessage({fgColor:e,bgColor:o,label:r,message:n,identifier:t.identifier,muted:t.muted});this.output(i,t)}}var x=h.getInstance();class U extends Error{constructor(r){super(r);this.name="BunupError"}}class R extends U{constructor(r){super(r);this.name="BunupBuildError"}}class f extends U{constructor(r){super(r);this.name="BunupDTSBuildError"}}class F extends U{constructor(r){super(r);this.name="BunupIsolatedDeclError"}}var C=(r)=>{if(r instanceof Error)return r.message;return String(r)};function ur(r){return r instanceof F}var V=l(require("path")),hr=require("oxc-resolver");var H=l(require("fs/promises")),cr=l(require("path"));function ar(r,n){switch(r){case"esm":return S(n)?".js":".mjs";case"cjs":return S(n)?".cjs":".js";case"iife":return".global.js"}}function br(r,n){switch(r){case"esm":return S(n)?".d.ts":".d.mts";case"cjs":return S(n)?".d.cts":".d.ts";case"iife":return".d.ts"}}function D(r){return r==="node"||r==="bun"}function S(r){return r==="module"}function pr(r){if(!r)return[];return Array.from(new Set([...Object.keys(r.dependencies||{}),...Object.keys(r.peerDependencies||{})]))}function T(r,n=3){return r.split("/").slice(-n).join("/")}async function xr(r,n){let t=cr.default.join(r,n);try{await H.default.rm(t,{recursive:!0,force:!0})}catch(e){throw new R(`Failed to clean output directory: ${e}`)}await H.default.mkdir(t,{recursive:!0})}function un(r){return pr(r).map((n)=>new RegExp(`^${n}($|\\/|\\\\)`))}function fr(r,n){return typeof n==="string"?n===r:n.test(r)}function Y(r,n,t){let o=un(t).some((s)=>s.test(r))||n.external?.some((s)=>fr(r,s)),i=n.noExternal?.some((s)=>fr(r,s));return o&&!i}var dr=require("ts-import-resolver");var $="\x00dts:",lr=(r,n,t)=>{return{name:"bunup:virtual-dts",async resolveId(e,o){if(Q(e))return e;if(!o||!Q(o))return null;let i=n.tsconfig?dr.resolveTsImportPath({path:e,importer:E(o),tsconfig:n.tsconfig,rootDir:t}):null;if(!i)return null;let s=B(i);if(r.has(s))return K(s);return null},load(e){if(e.startsWith($)){let o=E(e),i=r.get(o);if(i)return i}return null}}};var Z=/\.(js|mjs|cjs|ts|mts|cts|tsx|jsx)$/;function j(r){return r.endsWith(".d.ts")||r.endsWith(".d.mts")||r.endsWith(".d.cts")}function Cr(r){return Z.test(r)&&!j(r)}function k(r){return[".ts",".mts",".cts",".tsx"].some((n)=>r.endsWith(n))&&!j(r)}function B(r){if(j(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(Z.test(r))return r.replace(Z,".d.ts");return`${r}.d.ts`}function Q(r){return r.startsWith($)}function E(r){return r.replace($,"")}function K(r){return`${$}${r}`}function Br(r,n){if(n===void 0)return"";let t=r.slice(0,n).split(`
3
+ `),e=t.length,o=t[t.length-1].length+1;return` (${e}:${o})`}function wr(r,n,t,e){if(typeof e==="boolean"&&e)return!1;if(Array.isArray(e)){for(let o of e)if(typeof o==="string"&&r===o)return!1;else if(o instanceof RegExp&&o.test(r))return!1}return Y(r,n,t)}var z;function Rr(r,n){return{name:"bunup:types-resolve",buildStart(){z||=new hr.ResolverFactory({mainFields:["types","typings","module","main"],conditionNames:["types","typings","import","require"],extensions:[".d.ts",".d.mts",".d.cts",".ts",".mts",".cts"],...r.path&&{tsconfig:{configFile:r.path}},modules:["node_modules","node_modules/@types"]})},async resolveId(t,e){if(n===!1)return;if(t==="bun")return;let o=e?E(e):void 0;if(/\0/.test(t))return;if(Array.isArray(n)){if(!n.some((g)=>typeof g==="string"?g===t:g.test(t)))return}let i=o?V.default.dirname(o):process.cwd(),{path:s}=await z.async(i,t);if(!s)return;if(Cr(s)){let u=B(s);try{let{path:g}=await z.async(V.default.dirname(s),u);if(g)return g}catch(g){}return}return s}}}async function Lr(r,n,t,e,o,i){let s=B(r),u=K(s),g=typeof t.dts==="object"&&"resolve"in t.dts?t.dts.resolve:void 0;try{let{output:m}=await Sr.build({input:u,output:{dir:t.outDir},write:!1,...o.path&&{resolve:{tsconfigFilename:o.path}},onwarn(p,b){if(["UNRESOLVED_IMPORT","CIRCULAR_DEPENDENCY","EMPTY_BUNDLE"].includes(p.code??""))return;b(p)},plugins:[lr(n,o,i),g&&Rr(o,g),kr.dts({dtsInput:!0,emitDtsOnly:!0})],external:(p)=>wr(p,t,e,g)});if(!m[0]?.code)return x.warn(`Generated empty declaration file for entry "${r}"`,{muted:!0}),"";return m[0].code}catch(m){throw new f(`DTS bundling failed for entry "${r}": ${C(m)}`)}}var yr=require("ts-import-resolver");var cn=/^\s*import\s+(?:[^'"]*?\s+from\s+)?['"]([^'"]+)['"]/gm,an=/^\s*export\s+.*from\s+['"]([^'"]+)['"]/gm,bn=/import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,pn=/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,xn=/import\s+\w+\s*=\s*require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,fn=/\/\/\/\s*<reference\s+path\s*=\s*['"]([^'"]+)['"]\s*\/>/g,dn=/\/\/\/\s*<reference\s+types\s*=\s*['"]([^'"]+)['"]\s*\/>/g;function ln(r){let n=new Set,t=[cn,an,bn,pn,xn,fn,dn];for(let e of t){let o=r.matchAll(e);for(let i of o)if(i[1])n.add(i[1])}return n}async function Ir(r,n,t){let e=new Set([r]),o=[r];while(o.length){let i=o.pop();if(!i)continue;try{let s=await Bun.file(i).text(),u=ln(s);for(let g of u){let m=n.tsconfig?yr.resolveTsImportPath({path:g,importer:i,tsconfig:n.tsconfig,rootDir:t}):null;if(!m||!(k(m)||j(m)))continue;if(!e.has(m))e.add(m),o.push(m)}}catch(s){x.warn(`Error processing ${i}: ${C(s)}`)}}return e}var Mr=require("oxc-transform"),X=l(W());async function Or(r,n){let t=!1,e=new Map;if(await Promise.all([...r].map(async(o)=>{try{let i=B(o);if(!await Bun.file(o).exists())return;let u=await Bun.file(o).text(),{code:g,errors:m}=Mr.isolatedDeclaration(o,u);if(g)e.set(i,g);for(let p of m){if(!t&&!n)console.log(`
4
+ `);let b=p.labels[0],a=b?Br(u,b.start):"",w=`${T(o)}${a}: ${Cn(p.message)}`;x[n?"warn":"error"](w),t=!0}}catch(i){x.warn(`Failed to generate declaration for ${o}: ${C(i)}`)}})),t&&!n)throw console.log(`
5
+ `),new F(`TypeScript is asking for explicit type annotations on your exports. This helps ensure better, more reliable type declarations for your library. Bunup uses TypeScript's ${X.default.blue("isolatedDeclarations")} feature to generate these declarations, which requires each export from your library to be fully typed. You can learn more here: ${X.default.blue("https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-5.html#isolated-declarations")}`);return e}function Cn(r){return r.replace(" with --isolatedDeclarations","").replace(" with --isolatedDeclaration","")}var J=l(require("fs/promises")),q=l(require("path"));async function Tr(r,n){let t=q.default.resolve(r),e=q.default.resolve(t,n);if(!await J.default.exists(t))throw new f(`Root directory does not exist: ${t}`);if(!await Bun.file(e).exists())throw new f(`Entry file does not exist: ${e}`);if(!k(e))throw new f(`Entry file must be a TypeScript file: ${e}`);if(q.default.relative(t,e).startsWith(".."))throw new f(`Entry file must be within rootDir: ${e}`);return{absoluteRootDir:t,absoluteEntry:e}}async function Er(r,n,t,e,o){let{absoluteEntry:i}=await Tr(r,n),s=await Ir(i,e,r),u=await Or(s,t.watch);return Lr(i,u,t,o,e,r)}var L=require("path");function $r(r){let n=L.basename(r),t=L.extname(n);return t?n.slice(0,-t.length):n}function N(r){if(typeof r==="string")return[{fullEntryPath:r,name:$r(r)}];if(typeof r==="object"&&!Array.isArray(r))return Object.entries(r).map(([e,o])=>({fullEntryPath:o,name:e}));let n=[],t=new Set;for(let e of r){let o=$r(e);if(!t.has(o)){n.push({fullEntryPath:e,name:o}),t.add(o);continue}let s=L.dirname(e).split("/").filter((g)=>g!=="."&&g!=="");if(s.length===0){let g=1,m;do m=`${o}_${g++}`;while(t.has(m));n.push({fullEntryPath:e,name:m}),t.add(m);continue}let u=!1;for(let g=1;g<=s.length&&!u;g++){let p=`${s.slice(-g).join("/")}/${o}`;if(!t.has(p))n.push({fullEntryPath:e,name:p}),t.add(p),u=!0}if(!u){let g=1,m;do m=`${s.join("/")}/${o}_${g++}`;while(t.has(m));n.push({fullEntryPath:e,name:m}),t.add(m)}}return n}function jr(r){return r.filter((n)=>k(n.fullEntryPath))}function Ar(r,n){return`[dir]/${r}${n}`}var v=require("coffi");async function _r(r){let{config:n,filepath:t}=await v.loadConfig({name:"package",cwd:r,extensions:[".json"]});return{packageJson:n,path:t}}async function Wr(r,n){let{config:t,filepath:e}=await v.loadConfig({name:"tsconfig",cwd:r,extensions:[".json"],preferredPath:n});return{tsconfig:t,path:e}}var Bn={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0};function Ur(r){return{...Bn,...r}}function Fr(r){let{minify:n,minifyWhitespace:t,minifyIdentifiers:e,minifySyntax:o}=r,i=n===!0;return{whitespace:t??i,identifiers:e??i,syntax:o??i}}function Yr(r,n){return n==="cjs"?r:void 0}function Kr(r,n,t,e){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,...e==="cjs"&&(n===!0||typeof n==="object"&&n.importMetaUrl)&&{"import.meta.url":"importMetaUrl"}}}function qr(r,n){return r===void 0?n==="esm":r}function Gr(r){return typeof r==="string"?r:void 0}function Hr(r,n){return{name:"bunup:external-plugin",setup(t){t.onResolve({filter:/.*/},(e)=>{let o=e.path;if(Y(o,r,n))return{path:o,external:!0};return null})}}}var wn=/\.(js|ts|jsx|tsx|mts|cts)$/,P={dirnameFilename:{appliesTo:(r,n)=>r==="esm"&&D(n),isNeededInFile:(r)=>/\b__dirname\b/.test(r)||/\b__filename\b/.test(r),generateCode:()=>`import { fileURLToPath } from 'url';
6
+ import { dirname } from 'path';
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
10
+
11
+ `},importMetaUrl:{appliesTo:(r,n)=>r==="cjs"&&D(n),isNeededInFile:(r)=>/\bimport\.meta\.url\b/.test(r),generateCode:()=>`import { pathToFileURL } from 'url';
12
+
13
+ const importMetaUrl = pathToFileURL(__filename).href;
14
+
15
+ `}};function Dr({format:r,target:n,shims:t}){let o=hn(t).map((i)=>P[i]).filter((i)=>i.appliesTo(r,n));if(o.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(i){i.onLoad({filter:wn},async({path:s})=>{let u=await Bun.file(s).text(),g=o.filter((a)=>a.isNeededInFile(u));if(g.length===0)return;let{shebangLine:m,codeContent:p}=Rn(u),b=g.map((a)=>a.generateCode()).join("");return{contents:m+b+p}})}}}function hn(r){if(r===!0)return Object.keys(P);if(!r)return[];return Object.entries(r).filter(([n,t])=>t&&(n in P)).map(([n])=>n)}function Rn(r){if(!r.startsWith("#!"))return{shebangLine:"",codeContent:r};let n=r.indexOf(`
16
+ `);return n===-1?{shebangLine:"",codeContent:r}:{shebangLine:r.slice(0,n+1),codeContent:r.slice(n+1)}}function Qr(r){if(!r)return[];return r.filter((n)=>n.type==="bun")}function Zr(r){if(!r)return[];return r.filter((n)=>n.type==="bunup")}async function zr(r,n){if(!r)return;for(let t of r)if(t.hooks.onBuildStart)await t.hooks.onBuildStart(n)}async function Vr(r,n,t){if(!r)return;for(let e of r)if(e.hooks.onBuildDone)await e.hooks.onBuildDone({options:n,output:t})}async function Nr(r,n=process.cwd()){let t={files:[]},e=Ur(r);if(!e.entry||e.entry.length===0||!e.outDir)throw new R("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(e.clean)xr(n,e.outDir);mr(e.silent);let{packageJson:o,path:i}=await _r(n);if(o&&i)x.cli(`Using ${T(i,2)}`,{muted:!0,identifier:e.name,once:`${i}:${e.name}`});let s=Zr(e.plugins);await zr(s,e);let u=N(e.entry),g=o?.type;if(!e.dtsOnly){let m=[Hr(e,o),...Qr(e.plugins).map((b)=>b.plugin)],p=e.format.flatMap((b)=>u.map(async(a)=>{let y=e.outputExtension?.({format:b,packageType:g,options:e,entry:a}).js??ar(b,g),w=await Bun.build({entrypoints:[`${n}/${a.fullEntryPath}`],format:b,naming:{entry:Ar(a.name,y)},splitting:qr(e.splitting,b),bytecode:Yr(e.bytecode,b),define:Kr(e.define,e.shims,e.env,b),minify:Fr(e),outdir:`${n}/${e.outDir}`,target:e.target,sourcemap:e.sourcemap,loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:Gr(e.env),plugins:[...m,Dr({format:b,target:e.target,shims:e.shims})],throw:!1});if(!w.success)for(let d of w.logs){if(d.level==="error")throw new R(d.message);if(d.level==="warning")x.warn(d.message);else if(d.level==="info")x.info(d.message)}let I=Xr(e.outDir,a.name,y),M=Jr(n,I);t.files.push({fullPath:M,relativePathToOutputDir:I}),x.progress(b.toUpperCase(),I,{identifier:e.name})}));await Promise.all(p)}if(e.dts||e.dtsOnly){let m=await Wr(n,e.preferredTsconfigPath);if(m.path)x.cli(`Using ${T(m.path,2)}`,{muted:!0,identifier:e.name,once:`${m.path}:${e.name}`});let p=e.format.filter((a)=>{if(a==="iife"&&!S(g)&&e.format.includes("cjs"))return!1;return!0}),b=typeof e.dts==="object"&&e.dts.entry?N(e.dts.entry):jr(u);try{await Promise.all(b.map(async(a)=>{let y=await Er(n,a.fullEntryPath,e,m,o);await Promise.all(p.map(async(w)=>{let I=e.outputExtension?.({format:w,packageType:g,options:e,entry:a}).dts??br(w,g),M=Xr(e.outDir,a.name,I),d=Jr(n,M);t.files.push({fullPath:d,relativePathToOutputDir:M}),await Bun.write(d,y),x.progress("DTS",M,{identifier:e.name})}))}))}catch(a){if(ur(a))throw a;throw new f(C(a))}}if(await Vr(s,e,t),e.onSuccess)await e.onSuccess(e)}function Xr(r,n,t){return`${r}/${n}${t}`}function Jr(r,n){return`${r}/${n}`}})