bunup 0.8.0 → 0.8.2

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
@@ -12,7 +12,7 @@
12
12
 
13
13
  [![NPM Downloads](https://img.shields.io/npm/dm/bunup?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjMDAwMDAwIj48cGF0aCBkPSJNNDgwLTMyMCAyODAtNTIwbDU2LTU4IDEwNCAxMDR2LTMyNmg4MHYzMjZsMTA0LTEwNCA1NiA1OC0yMDAgMjAwWk0xNjAtMTYwdi0yMDBoODB2MTIwaDQ4MHYtMTIwaDgwdjIwMEgxNjBaIi8%2BPC9zdmc%2B&labelColor=ffc44e&color=212121)](https://www.npmjs.com/package/bunup) [![NPM Version](https://img.shields.io/npm/v/bunup?logo=npm&logoColor=212121&label=version&labelColor=ffc44e&color=212121)](https://npmjs.com/package/bunup) [![Built with Bun](https://img.shields.io/badge/Built_with-Bun-fbf0df?logo=bun&labelColor=212121)](https://bun.sh) [![sponsor](https://img.shields.io/badge/sponsor-EA4AAA?logo=githubsponsors&labelColor=FAFAFA)](https://github.com/sponsors/arshad-yaseen)
14
14
 
15
- Bunup is the **blazing-fast build tool** for TypeScript and JavaScript libraries, designed for flawless developer experience and speed, **powered by Bun's native bundler and Oxc** — up to **~100× faster than Tsup**.
15
+ Bunup is the **blazing-fast build tool** for TypeScript and JavaScript libraries, designed for flawless developer experience and speed, **powered by Bun** — up to **~100× faster than Tsup**.
16
16
 
17
17
  | Bundler | Format | Build Time | Build Time (with dts) |
18
18
  | --------- | ------------ | -------------- | --------------------- |
package/dist/cli.js CHANGED
@@ -1,21 +1,23 @@
1
+ "use client";
1
2
  #!/usr/bin/env bun
2
3
  // @bun
3
- var di=Object.create;var{getPrototypeOf:ci,defineProperty:D,getOwnPropertyNames:bi}=Object;var mi=Object.prototype.hasOwnProperty;var p=(i,r,n)=>{n=i!=null?di(ci(i)):{};let s=r||!i||!i.__esModule?D(n,"default",{value:i,enumerable:!0}):n;for(let t of bi(i))if(!mi.call(s,t))D(s,t,{get:()=>i[t],enumerable:!0});return s};var gi=(i,r)=>()=>(r||i((r={exports:{}}).exports,r),r.exports);var gr=(i,r)=>{for(var n in r)D(i,n,{get:r[n],enumerable:!0,configurable:!0,set:(s)=>r[n]=()=>s})};var M=(i,r)=>()=>(i&&(r=i(i=0)),r);var ui=import.meta.require;var E=gi((_i,N)=>{var X=process||{},ur=X.argv||[],G=X.env||{},oi=!(!!G.NO_COLOR||ur.includes("--no-color"))&&(!!G.FORCE_COLOR||ur.includes("--color")||X.platform==="win32"||(X.stdout||{}).isTTY&&G.TERM!=="dumb"||!!G.CI),fi=(i,r,n=i)=>(s)=>{let t=""+s,e=t.indexOf(r,i.length);return~e?i+wi(t,r,n,e)+r:i+t+r},wi=(i,r,n,s)=>{let t="",e=0;do t+=i.substring(e,s)+n,e=s+r.length,s=i.indexOf(r,e);while(~s);return t+i.substring(e)},xr=(i=oi)=>{let r=i?fi:()=>String;return{isColorSupported:i,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")}};N.exports=xr();N.exports.createColors=xr});function y(i){or=i??!1}class W{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=b.default.blue;mutedColor=b.default.dim;infoColor=b.default.cyan;warnColor=b.default.yellow;errorColor=b.default.red;defaultColor=b.default.white;progressFgColorMap={ESM:b.default.yellow,CJS:b.default.green,IIFE:b.default.magenta,DTS:b.default.blue};progressIdentifierBgColorMap={ESM:b.default.bgYellow,CJS:b.default.bgGreen,IIFE:b.default.bgMagenta,DTS:b.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!W.instance)W.instance=new W;return W.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(i){if(!i?.once)return!0;if(this.loggedOnceMessages.has(i.once))return!1;return this.loggedOnceMessages.add(i.once),!0}formatMessage({fgColor:i,bgColor:r,label:n,message:s,identifier:t,muted:e}){let d=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-n.length)),g=e?this.mutedColor(s):s,l=t?` ${r(b.default.black(` ${t} `))}`:"";return`${i(n)} ${d}${g}${l}`}output(i,r={},n=console.log){if(or||!this.shouldLog(r))return;if(r.verticalSpace)n("");if(n(i),r.verticalSpace)n("")}cli(i,r={}){let n=this.formatMessage({fgColor:this.cliColor,bgColor:b.default.bgBlue,label:this.labels.cli,message:i,identifier:r.identifier,muted:r.muted});this.output(n,r)}info(i,r={}){let n=this.formatMessage({fgColor:this.infoColor,bgColor:b.default.bgCyan,label:this.labels.info,message:i,identifier:r.identifier,muted:r.muted});this.output(n,r)}warn(i,r={}){let n=this.formatMessage({fgColor:this.warnColor,bgColor:b.default.bgYellow,label:this.labels.warn,message:i,identifier:r.identifier,muted:r.muted});this.output(n,r,console.warn)}error(i,r={}){let n=this.formatMessage({fgColor:this.errorColor,bgColor:b.default.bgRed,label:this.labels.error,message:i,identifier:r.identifier,muted:r.muted});this.output(n,r,console.error)}getProgressFgColor(i){for(let[r,n]of Object.entries(this.progressFgColorMap))if(i.includes(r))return n;return this.defaultColor}getProgressBgColor(i){for(let[r,n]of Object.entries(this.progressIdentifierBgColorMap))if(i.includes(r))return n;return b.default.bgWhite}progress(i,r,n={}){let s=this.getProgressFgColor(i),t=this.getProgressBgColor(i),e=this.formatMessage({fgColor:s,bgColor:t,label:i,message:r,identifier:n.identifier,muted:n.muted});this.output(e,n)}}var b,or=!1,m;var Y=M(()=>{b=p(E(),1);m=W.getInstance()});var f,I,j,fr,S,z,H=(i)=>{if(i instanceof Error)return i.message;return String(i)},hi,P=(i,r)=>{let n=H(i),s=r?`[${r}] `:"",t="";if(i instanceof j)t="BUILD ERROR";else if(i instanceof fr)t="DTS ERROR";else if(i instanceof S)t="CLI ERROR";else if(i instanceof z)t="WATCH ERROR";else if(i instanceof I)t="BUNUP ERROR";let e=hi.find((d)=>d.pattern.test(n)&&(d.errorType===t||!d.errorType));if(!e&&t)console.error(`${f.default.red(t)} ${s}${n}`);if(e)console.log(`
4
- `),e.logSolution(n),console.log(`
5
- `);else console.error(f.default.dim(f.default.white("If you think this is a bug, please open an issue at: ")+f.default.cyan("https://github.com/arshad-yaseen/bunup/issues/new")))},wr=(i,r)=>{P(i,r),process.exit(1)};var U=M(()=>{f=p(E(),1);Y();I=class I extends Error{constructor(i){super(i);this.name="BunupError"}};j=class j extends I{constructor(i){super(i);this.name="BunupBuildError"}};fr=class fr extends I{constructor(i){super(i);this.name="BunupDTSBuildError"}};S=class S extends I{constructor(i){super(i);this.name="BunupCLIError"}};z=class z extends I{constructor(i){super(i);this.name="BunupWatchError"}};hi=[{pattern:/Could not resolve: "bun"/i,errorType:"BUILD ERROR",logSolution:()=>{m.error(f.default.white("You're trying to build a project that uses Bun. ")+f.default.white("Please set the target option to ")+f.default.cyan("`bun`")+f.default.white(`.
6
- `)+f.default.white("Example: ")+f.default.green("`bunup --target bun`")+f.default.white(" or in config: ")+f.default.green("{ target: 'bun' }"))}}]});import li from"fs";import lr from"fs/promises";import K,{normalize as ai}from"path";function Cr(i,r,n){return Array.isArray(i)?i.map((s)=>({...s,[r]:n})):{...i,[r]:n}}function Br(i){return Array.isArray(i)?i:[i]}function Mr(i,r){switch(i){case"esm":return Q(r)?".js":".mjs";case"cjs":return Q(r)?".cjs":".js";case"iife":return".global.js"}}function Sr(i,r){switch(i){case"esm":return Q(r)?".d.ts":".d.mts";case"cjs":return Q(r)?".d.cts":".d.ts";case"iife":return".global.d.ts"}}function Rr(i){let r=K.basename(i),n=K.extname(r);return n?r.slice(0,-n.length):r}function $r(i){return i.replace(K.extname(i),"")}function Or(i){return i.replace(/\\/g,"/")}function Q(i){return i==="module"}function Z(i){return i>=1000?`${(i/1000).toFixed(2)}s`:`${Math.round(i)}ms`}function pr(i){if(!i)return[];return Array.from(new Set([...Object.keys(i.dependencies||{}),...Object.keys(i.peerDependencies||{})]))}function V(i,r=3){return i.split("/").slice(-r).join("/")}async function Er(i,r){let n=K.join(i,r);try{await lr.rm(n,{recursive:!0,force:!0})}catch(s){throw new j(`Failed to clean output directory: ${s}`)}await lr.mkdir(n,{recursive:!0})}function Lr(i){try{return li.accessSync(i),!0}catch(r){return!1}}var O=M(()=>{U()});import Si from"path";import{loadConfig as Ri}from"coffi";async function Ir(i,r,n){return Array.isArray(i)&&"root"in i[0]?i.filter((s)=>n?n.includes(s.name):!0).map((s)=>({rootDir:Si.resolve(r,s.root),options:Cr(s.config,"name",s.name)})):[{rootDir:r,options:i}]}async function jr(i){let{config:r,filepath:n}=await Ri({name:"package",cwd:i,extensions:[".json"]});return{data:r,path:n}}var a=M(()=>{O()});function q(i){if(typeof i==="string")return[{entry:i,outputBasePath:Ur(i)}];if(typeof i==="object"&&!Array.isArray(i))return Object.entries(i).map(([r,n])=>({entry:n,outputBasePath:r}));return i.map((r)=>({entry:r,outputBasePath:Ur(r)}))}function Ur(i){let r=Or($r(i)).split("/");return r.length>1?r.slice(1).join("/"):r.join("/")}function qr(i,r){return{entry:`[dir]/${i}${r}`,chunk:`${i}-[hash].[ext]`,asset:`${i}-[name]-[hash].[ext]`}}var rr=M(()=>{O()});function _(i){return{...$i,...i}}function Fr(i){let{minify:r,minifyWhitespace:n,minifyIdentifiers:s,minifySyntax:t}=i,e=r===!0;return{whitespace:n??e,identifiers:s??e,syntax:t??e}}function Gr(i,r){return r==="cjs"?i:void 0}function Xr(i){if(i===!0)return"inline";return typeof i==="string"?i:void 0}function yr(i,r){return{...typeof r==="object"&&Object.keys(r).reduce((n,s)=>{let t=JSON.stringify(r[s]);return n[`process.env.${s}`]=t,n[`import.meta.env.${s}`]=t,n},{}),...i}}function zr(i,r){return i===void 0?r==="esm":i}function Kr(i){return typeof i==="string"?i:void 0}var $i;var ir=M(()=>{$i={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0}});function Oi(i){return pr(i).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function Qr(i,r){return typeof r==="string"?r===i:r.test(i)}function Zr(i,r,n){let t=Oi(n).some((d)=>d.test(i))||r.external?.some((d)=>Qr(i,d)),e=r.noExternal?.some((d)=>Qr(i,d));return t&&!e}var Vr=M(()=>{O()});function Tr(i,r){return{name:"bunup:external-option-plugin",setup(n){n.onResolve({filter:/.*/},(s)=>{let t=s.path;if(Zr(t,i,r))return{path:t,external:!0};return null})}}}var Ar=M(()=>{Vr()});function _r(i){if(!i)return[];return i.filter((r)=>r.type==="bun")}function Jr(i){if(!i)return[];return i.filter((r)=>r.type==="bunup")}async function kr(i,r){if(!i)return;for(let n of i)if(n.hooks.onBuildStart)await n.hooks.onBuildStart(r)}async function Dr(i,r,n,s){if(!i)return;for(let t of i)if(t.hooks.onBuildDone)await t.hooks.onBuildDone({options:r,output:n,meta:s})}var Hr={};gr(Hr,{build:()=>sr});import Ei from"path";import{generateDts as Li,logIsolatedDeclarationErrors as Wi}from"bun-dts";async function sr(i,r=process.cwd()){let n={files:[]},s=_(i);if(!s.entry||s.entry.length===0||!s.outDir)throw new j("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(s.clean)Er(r,s.outDir);y(s.silent);let t=await jr(r);if(t.data&&t.path)m.cli(`Using ${V(t.path,2)}`,{muted:!0,identifier:s.name,once:`${t.path}:${s.name}`});let e=Jr(s.plugins);await kr(e,s);let d=q(s.entry),g=t.data?.type,l=[Tr(s,t.data),..._r(s.plugins).map((w)=>w.plugin)];if(!s.dtsOnly){let w=s.format.flatMap((c)=>d.map(async({entry:B,outputBasePath:u})=>{let x=s.outputExtension?.({format:c,packageType:g,options:s,entry:B}).js??Mr(c,g),C=await Bun.build({entrypoints:[`${r}/${B}`],format:c,naming:qr(u,x),splitting:zr(s.splitting,c),bytecode:Gr(s.bytecode,c),define:yr(s.define,s.env),minify:Fr(s),outdir:`${r}/${s.outDir}`,target:s.target,sourcemap:Xr(s.sourcemap),loader:s.loader,drop:s.drop,banner:s.banner,footer:s.footer,publicPath:s.publicPath,env:Kr(s.env),plugins:l,throw:!1});for(let o of C.logs){if(o.level==="error")throw console.log(`
7
- `),console.log(o),console.log(`
8
- `),new Error;if(o.level==="warning")m.warn(o.message);else if(o.level==="info")m.info(o.message)}for(let o of C.outputs){let L=Nr(o.path,r);if(o.kind==="entry-point")m.progress(c.toUpperCase(),L,{identifier:s.name});n.files.push({fullPath:o.path,relativePathToRootDir:L,dts:!1,entry:B,outputBasePath:u,format:c})}}));await Promise.all(w)}if(s.dts===!0||typeof s.dts==="object"||s.dtsOnly){let w=typeof s.dts==="object"&&"resolve"in s.dts?s.dts.resolve:void 0,c=typeof s.dts==="object"&&"entry"in s.dts?s.dts.entry:void 0,u=(c?q(c):d).map(async({entry:x,outputBasePath:C})=>{let o=await Li(x,{cwd:r,preferredTsConfigPath:s.preferredTsconfigPath,resolve:w});for(let L of s.format){let ei=s.outputExtension?.({format:L,packageType:g,options:s,entry:x}).dts??Sr(L,g),k=Ei.join(r,s.outDir,`${C}${ei}`),mr=Nr(k,r);if(n.files.push({fullPath:k,relativePathToRootDir:mr,dts:!0,entry:x,outputBasePath:C,format:L}),o.errors.length>0)Wi(o.errors,{warnInsteadOfError:s.watch,shouldExit:!0});await Bun.write(k,o.dts),m.progress("DTS",mr,{identifier:s.name})}});await Promise.all(u)}if(await Dr(e,s,n,{packageJson:t}),s.onSuccess)await s.onSuccess(s)}function Nr(i,r){return i.replace(`${r}/`,"")}var nr=M(()=>{U();rr();a();Y();ir();Ar();O()});var si={};gr(si,{newProject:()=>zi});import br from"path";import{cancel as Yi,confirm as Ii,intro as ji,outro as Ui,select as qi,tasks as Fi,text as tr}from"@clack/prompts";import{downloadTemplate as Gi}from"giget";import{replaceInFile as ar}from"replace-in-file";async function zi(){ji($.default.bgCyan($.default.black(" Scaffold a new project with Bunup ")));let i=await qi({message:"Select a template",options:ri.map((c)=>({value:c.dir,label:$.default.blue(c.name)}))}),r=ri.find((c)=>c.dir===i);if(!r)Yi("Invalid template"),process.exit(1);let n=r.monorepoDir!==void 0,s=await tr({message:"Enter the project name",placeholder:r.defaultName,defaultValue:r.defaultName,validate:(c)=>{if(!c)return"Project name is required";if(c.includes(" "))return"Project name cannot contain spaces";if(Lr(ii(c)))return"Project already exists"}}),t=ii(s),e=!1,d;if(n){if(e=await Ii({message:"Do you want to create a monorepo?",initialValue:!1}),e)d=await tr({message:"Enter the name of the first package",placeholder:cr,defaultValue:cr})}let g=await tr({message:"GitHub username and repo name (username/repo):",placeholder:`${er}/${dr}`,defaultValue:`${er}/${dr}`}),[l,w]=g.split("/");await Fi([{title:"Downloading template",task:async()=>{let c=e?r.monorepoDir:r.dir;return await Gi(`github:${Xi}/${yi}/${c}`,{dir:t}),"Template downloaded"}},{title:"Making the project yours",task:async()=>{if(await ar({files:br.join(t,"**/*"),from:[new RegExp(dr,"g"),new RegExp(er,"g"),new RegExp(r.defaultName,"g")],to:[w,l,s],ignore:["node_modules","dist","bun.lock"]}),e&&d)await ar({files:br.join(t,"**/*"),from:[new RegExp(cr,"g")],to:[d],ignore:["node_modules","dist","bun.lock"]})}}]),Ui(`
9
- ${$.default.green("\u2728 Project scaffolded successfully! \u2728")}
4
+ var ci=Object.create;var{getPrototypeOf:mi,defineProperty:H,getOwnPropertyNames:gi}=Object;var xi=Object.prototype.hasOwnProperty;var Y=(i,r,s)=>{s=i!=null?ci(mi(i)):{};let n=r||!i||!i.__esModule?H(s,"default",{value:i,enumerable:!0}):s;for(let t of gi(i))if(!xi.call(n,t))H(n,t,{get:()=>i[t],enumerable:!0});return n};var ui=(i,r)=>()=>(r||i((r={exports:{}}).exports,r),r.exports);var xr=(i,r)=>{for(var s in r)H(i,s,{get:r[s],enumerable:!0,configurable:!0,set:(n)=>r[s]=()=>n})};var S=(i,r)=>()=>(i&&(r=i(i=0)),r);var fi=import.meta.require;var O=ui((ki,v)=>{var K=process||{},ur=K.argv||[],z=K.env||{},wi=!(!!z.NO_COLOR||ur.includes("--no-color"))&&(!!z.FORCE_COLOR||ur.includes("--color")||K.platform==="win32"||(K.stdout||{}).isTTY&&z.TERM!=="dumb"||!!z.CI),hi=(i,r,s=i)=>(n)=>{let t=""+n,d=t.indexOf(r,i.length);return~d?i+Bi(t,r,s,d)+r:i+t+r},Bi=(i,r,s,n)=>{let t="",d=0;do t+=i.substring(d,n)+s,d=n+r.length,n=i.indexOf(r,d);while(~n);return t+i.substring(d)},fr=(i=wi)=>{let r=i?hi:()=>String;return{isColorSupported:i,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")}};v.exports=fr();v.exports.createColors=fr});function G(i){or=i??!1}class q{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};progressIdentifierBgColorMap={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(!q.instance)q.instance=new q;return q.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(i){if(!i?.once)return!0;if(this.loggedOnceMessages.has(i.once))return!1;return this.loggedOnceMessages.add(i.once),!0}formatMessage({fgColor:i,bgColor:r,label:s,message:n,identifier:t,muted:d}){let e=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-s.length)),g=d?this.mutedColor(n):n,B=t?` ${r(c.default.black(` ${t} `))}`:"";return`${i(s)} ${e}${g}${B}`}output(i,r={},s=console.log){if(or||!this.shouldLog(r))return;if(r.verticalSpace)s("");if(s(i),r.verticalSpace)s("")}cli(i,r={}){let s=this.formatMessage({fgColor:this.cliColor,bgColor:c.default.bgBlue,label:this.labels.cli,message:i,identifier:r.identifier,muted:r.muted});this.output(s,r)}info(i,r={}){let s=this.formatMessage({fgColor:this.infoColor,bgColor:c.default.bgCyan,label:this.labels.info,message:i,identifier:r.identifier,muted:r.muted});this.output(s,r)}warn(i,r={}){let s=this.formatMessage({fgColor:this.warnColor,bgColor:c.default.bgYellow,label:this.labels.warn,message:i,identifier:r.identifier,muted:r.muted});this.output(s,r,console.warn)}error(i,r={}){let s=this.formatMessage({fgColor:this.errorColor,bgColor:c.default.bgRed,label:this.labels.error,message:i,identifier:r.identifier,muted:r.muted});this.output(s,r,console.error)}getProgressFgColor(i){for(let[r,s]of Object.entries(this.progressFgColorMap))if(i.includes(r))return s;return this.defaultColor}getProgressBgColor(i){for(let[r,s]of Object.entries(this.progressIdentifierBgColorMap))if(i.includes(r))return s;return c.default.bgWhite}progress(i,r,s={}){let n=this.getProgressFgColor(i),t=this.getProgressBgColor(i),d=this.formatMessage({fgColor:n,bgColor:t,label:i,message:r,identifier:s.identifier,muted:s.muted});this.output(d,s)}}var c,or=!1,m;var I=S(()=>{c=Y(O(),1);m=q.getInstance()});var o,L,X,wr,M,V,P=(i)=>{if(i instanceof Error)return i.message;return String(i)},Ci,a=(i,r)=>{let s=P(i),n=r?`[${r}] `:"",t="";if(i instanceof X)t="BUILD ERROR";else if(i instanceof wr)t="DTS ERROR";else if(i instanceof M)t="CLI ERROR";else if(i instanceof V)t="WATCH ERROR";else if(i instanceof L)t="BUNUP ERROR";let d=Ci.find((e)=>e.pattern.test(s)&&(e.errorType===t||!e.errorType));if(!d&&t)console.error(`${o.default.red(t)} ${n}${s}`);if(d)console.log(`
5
+ `),d.logSolution(s),console.log(`
6
+ `);else console.error(o.default.dim(o.default.white("If you think this is a bug, please open an issue at: ")+o.default.cyan("https://github.com/arshad-yaseen/bunup/issues/new")))},hr=(i,r)=>{a(i,r),process.exit(1)};var F=S(()=>{o=Y(O(),1);I();L=class L extends Error{constructor(i){super(i);this.name="BunupError"}};X=class X extends L{constructor(i){super(i);this.name="BunupBuildError"}};wr=class wr extends L{constructor(i){super(i);this.name="BunupDTSBuildError"}};M=class M extends L{constructor(i){super(i);this.name="BunupCLIError"}};V=class V extends L{constructor(i){super(i);this.name="BunupWatchError"}};Ci=[{pattern:/Could not resolve: "bun"/i,errorType:"BUILD ERROR",logSolution:()=>{m.error(o.default.white("You're trying to build a project that uses Bun. ")+o.default.white("Please set the target option to ")+o.default.cyan("`bun`")+o.default.white(`.
7
+ `)+o.default.white("Example: ")+o.default.green("`bunup --target bun`")+o.default.white(" or in config: ")+o.default.green("{ target: 'bun' }"))}}]});import li from"fs";import Cr from"fs/promises";import y,{normalize as sn}from"path";function lr(i){return Array.isArray(i)?i:[i]}function Sr(i,r){switch(i){case"esm":return E(r)?".js":".mjs";case"cjs":return E(r)?".cjs":".js";case"iife":return".global.js"}}function Mr(i,r){switch(i){case"esm":return E(r)?".d.ts":".d.mts";case"cjs":return E(r)?".d.cts":".d.ts";case"iife":return".global.d.ts"}}function $r(i){let r=y.basename(i),s=y.extname(r);return s?r.slice(0,-s.length):r}function Rr(i){return i.replace(y.extname(i),"")}function Wr(i){return i.replace(/\\/g,"/")}function E(i){return i==="module"}function p(i){return i>=1000?`${(i/1000).toFixed(2)}s`:`${Math.round(i)}ms`}function Yr(i){if(!i)return[];return Array.from(new Set([...Object.keys(i.dependencies||{}),...Object.keys(i.peerDependencies||{})]))}function A(i,r=3){return i.split("/").slice(-r).join("/")}async function Or(i,r){let s=y.join(i,r);try{await Cr.rm(s,{recursive:!0,force:!0})}catch(n){throw new X(`Failed to clean output directory: ${n}`)}await Cr.mkdir(s,{recursive:!0})}function jr(i){try{return li.accessSync(i),!0}catch(r){return!1}}var W=S(()=>{F()});import Ri from"path";import{loadConfig as Wi}from"coffi";async function Lr(i,r,s){return Array.isArray(i)&&"root"in i[0]?i.filter((n)=>s?s.includes(n.name):!0).map((n)=>({rootDir:Ri.resolve(r,n.root),options:Yi(n.config,"name",n.name)})):[{rootDir:r,options:i}]}function Yi(i,r,s){return Array.isArray(i)?i.map((n)=>({...n,[r]:s})):{...i,[r]:s}}async function Xr(i){let{config:r,filepath:s}=await Wi({name:"package",cwd:i,extensions:[".json"]});return{data:r,path:s}}var ir=()=>{};function U(i){if(typeof i==="string")return[{entry:i,outputBasePath:Fr(i)}];if(typeof i==="object"&&!Array.isArray(i))return Object.entries(i).map(([r,s])=>({entry:s,outputBasePath:r}));return i.map((r)=>({entry:r,outputBasePath:Fr(r)}))}function Fr(i){let r=Wr(Rr(i)).split("/");return r.length>1?r.slice(1).join("/"):r.join("/")}function Ur(i,r){return{entry:`[dir]/${i}${r}`,chunk:`${i}-[hash].[ext]`,asset:`${i}-[name]-[hash].[ext]`}}var nr=S(()=>{W()});function Qr(){return{type:"bunup",name:"use-client",hooks:{onBuildDone:async({output:i})=>{for(let r of i.files){let s=await Bun.file(r.fullPath).text();if(s.includes(''))s=s.replaceAll('',""),s=`
8
+ ${s}`;await Bun.write(r.fullPath,s)}}}}}function _(i){let r={...Oi,...i};return{...r,plugins:[...r.plugins??[],Qr()]}}function Zr(i){let{minify:r,minifyWhitespace:s,minifyIdentifiers:n,minifySyntax:t}=i,d=r===!0;return{whitespace:s??d,identifiers:n??d,syntax:t??d}}function zr(i,r){return r==="cjs"?i:void 0}function Kr(i){if(i===!0)return"inline";return typeof i==="string"?i:void 0}function Gr(i,r){return{...typeof r==="object"&&Object.keys(r).reduce((s,n)=>{let t=JSON.stringify(r[n]);return s[`process.env.${n}`]=t,s[`import.meta.env.${n}`]=t,s},{}),...i}}function Vr(i,r){return i===void 0?r==="esm":i}function yr(i){return typeof i==="string"?i:void 0}var Oi;var tr=S(()=>{Oi={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0}});function ji(i){return Yr(i).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function Er(i,r){return typeof r==="string"?r===i:r.test(i)}function pr(i,r,s){let t=ji(s).some((e)=>e.test(i))||r.external?.some((e)=>Er(i,e)),d=r.noExternal?.some((e)=>Er(i,e));return t&&!d}var Ar=S(()=>{W()});function Tr(i,r){return{name:"bunup:external-option-plugin",setup(s){s.onResolve({filter:/.*/},(n)=>{let t=n.path;if(pr(t,i,r))return{path:t,external:!0};return null})}}}var Jr=S(()=>{Ar()});function _r(i){if(!i)return[];return i.filter((r)=>r.type==="bun")}function Dr(i){if(!i)return[];return i.filter((r)=>r.type==="bunup")}async function kr(i,r){if(!i)return;for(let s of i)if(s.hooks.onBuildStart)await s.hooks.onBuildStart(r)}async function Nr(i,r,s,n){if(!i)return;for(let t of i)if(t.hooks.onBuildDone)await t.hooks.onBuildDone({options:r,output:s,meta:n})}var vr={};xr(vr,{build:()=>dr});import qi from"path";import{generateDts as Ii,logIsolatedDeclarationErrors as Li}from"bun-dts";async function dr(i,r=process.cwd()){let s={files:[]},n=_(i);if(!n.entry||n.entry.length===0||!n.outDir)throw new X("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(n.clean)Or(r,n.outDir);G(n.silent);let t=await Xr(r);if(t.data&&t.path)m.cli(`Using ${A(t.path,2)}`,{muted:!0,identifier:n.name,once:`${t.path}:${n.name}`});let d=Dr(n.plugins);await kr(d,n);let e=U(n.entry),g=t.data?.type,B=[Tr(n,t.data),..._r(n.plugins).map((w)=>w.plugin)];if(!n.dtsOnly){let w=n.format.flatMap((b)=>e.map(async({entry:l,outputBasePath:x})=>{let u=n.outputExtension?.({format:b,packageType:g,options:n,entry:l}).js??Sr(b,g),C=await Bun.build({entrypoints:[`${r}/${l}`],format:b,naming:Ur(x,u),splitting:Vr(n.splitting,b),bytecode:zr(n.bytecode,b),define:Gr(n.define,n.env),minify:Zr(n),outdir:`${r}/${n.outDir}`,target:n.target,sourcemap:Kr(n.sourcemap),loader:n.loader,drop:n.drop,banner:n.banner,footer:n.footer,publicPath:n.publicPath,env:yr(n.env),plugins:B,throw:!1});for(let f of C.logs){if(f.level==="error")throw console.log(`
9
+ `),console.log(f),console.log(`
10
+ `),new Error;if(f.level==="warning")m.warn(f.message);else if(f.level==="info")m.info(f.message)}for(let f of C.outputs){let j=Hr(f.path,r);if(f.kind==="entry-point")m.progress(b.toUpperCase(),j,{identifier:n.name});s.files.push({fullPath:f.path,relativePathToRootDir:j,dts:!1,entry:l,outputBasePath:x,format:b})}}));await Promise.all(w)}if(n.dts===!0||typeof n.dts==="object"||n.dtsOnly){let w=typeof n.dts==="object"&&"resolve"in n.dts?n.dts.resolve:void 0,b=typeof n.dts==="object"&&"entry"in n.dts?n.dts.entry:void 0,x=(b?U(b):e).map(async({entry:u,outputBasePath:C})=>{let f=await Ii(u,{cwd:r,preferredTsConfigPath:n.preferredTsconfigPath,resolve:w});for(let j of n.format){let bi=n.outputExtension?.({format:j,packageType:g,options:n,entry:u}).dts??Mr(j,g),N=qi.join(r,n.outDir,`${C}${bi}`),gr=Hr(N,r);if(s.files.push({fullPath:N,relativePathToRootDir:gr,dts:!0,entry:u,outputBasePath:C,format:j}),f.errors.length>0)Li(f.errors,{warnInsteadOfError:n.watch,shouldExit:!0});await Bun.write(N,f.dts),m.progress("DTS",gr,{identifier:n.name})}});await Promise.all(x)}if(await Nr(d,n,s,{packageJson:t}),n.onSuccess)await n.onSuccess(n)}function Hr(i,r){return i.replace(`${r}/`,"")}var er=S(()=>{F();nr();ir();I();tr();Jr();W()});var ti={};xr(ti,{newProject:()=>Ei});import{renameSync as Xi}from"fs";import Q from"path";import{cancel as Fi,confirm as Ui,intro as Qi,outro as Zi,select as zi,tasks as Ki,text as br}from"@clack/prompts";import{downloadTemplate as Gi}from"giget";import{replaceInFile as ri}from"replace-in-file";async function Ei(){Qi(R.default.bgCyan(R.default.black(" Scaffold a new project with Bunup ")));let i=await zi({message:"Select a template",options:ni.map((b)=>({value:b.dir,label:R.default.blue(b.name)}))}),r=ni.find((b)=>b.dir===i);if(!r)Fi("Invalid template"),process.exit(1);let s=r.monorepoDir!==void 0,n=await br({message:"Enter the project name",placeholder:r.defaultName,defaultValue:r.defaultName,validate:(b)=>{if(!b)return"Project name is required";if(b.includes(" "))return"Project name cannot contain spaces";if(jr(si(b)))return"Project already exists"}}),t=si(n),d=!1,e;if(s){if(d=await Ui({message:"Do you want to create a monorepo?",initialValue:!1}),d)e=await br({message:"Enter the name of the first package",placeholder:k,defaultValue:k})}let g=await br({message:"GitHub username and repo name (username/repo):",placeholder:`${cr}/${mr}`,defaultValue:`${cr}/${mr}`}),[B,w]=g.split("/");await Ki([{title:"Downloading template",task:async()=>{let b=d?r.monorepoDir:r.dir;return await Gi(`github:${Vi}/${yi}/${b}`,{dir:t}),"Template downloaded"}},{title:"Making the project yours",task:async()=>{if(await ri({files:Q.join(t,"**/*"),from:[new RegExp(mr,"g"),new RegExp(cr,"g"),new RegExp(r.defaultName,"g")],to:[w,B,n],ignore:["node_modules","dist","bun.lock"]}),d&&e)await ri({files:Q.join(t,"**/*"),from:[new RegExp(k,"g")],to:[e],ignore:["node_modules","dist","bun.lock"]}),Xi(Q.join(t,ii,k),Q.join(t,ii,e))}}]),Zi(`
11
+ ${R.default.green("\u2728 Project scaffolded successfully! \u2728")}
10
12
 
11
- ${$.default.bold("Ready to launch your awesome new project?")}
13
+ ${R.default.bold("Ready to launch your awesome new project?")}
12
14
 
13
- ${$.default.cyan("cd")} ${s}
14
- ${$.default.cyan("bun install")}
15
- ${$.default.cyan("bun run dev")}
15
+ ${R.default.cyan("cd")} ${n}
16
+ ${R.default.cyan("bun install")}
17
+ ${R.default.cyan("bun run dev")}
16
18
 
17
- ${$.default.yellow("Happy coding!")} \uD83D\uDE80
18
- `)}function ii(i){return br.join(process.cwd(),i)}var $,Xi="arshad-yaseen",yi="bunup-new",er="username",dr="repo-name",cr="package-1",ri;var ni=M(()=>{$=p(E(),1);O();ri=[{defaultName:"my-ts-lib",name:"Typescript Library",dir:"ts-lib",monorepoDir:"ts-lib-monorepo"}]});import{exec as Ki}from"tinyexec";var F="0.8.0";U();Y();var v=p(E(),1);var hr="https://bunup.dev/docs/guide/cli-options";U();Y();O();function h(i){return(r,n)=>{n[i]=r===!0||r==="true"}}function R(i){return(r,n)=>{if(typeof r==="string")n[i]=r;else throw new S(`Option --${i} requires a string value`)}}function T(i){return(r,n)=>{if(typeof r==="string")n[i]=r.split(",");else throw new S(`Option --${i} requires a string value`)}}function Ci(i){return(r,n)=>{if(typeof r==="boolean")n[i]=r;else if(typeof r==="string")if(r.toLowerCase()==="true"||r.toLowerCase()==="false")n[i]=r.toLowerCase()==="true";else n[i]=r;else throw new S(`Option --${i} requires a boolean or string value`)}}function Bi(){console.log(`
19
+ ${R.default.yellow("Happy coding!")} \uD83D\uDE80
20
+ `)}function si(i){return Q.join(process.cwd(),i)}var R,Vi="arshad-yaseen",yi="bunup-new",cr="username",mr="repo-name",k="package-1",ii="packages",ni;var di=S(()=>{R=Y(O(),1);W();ni=[{defaultName:"my-ts-lib",name:"Typescript Library",dir:"ts-lib",monorepoDir:"ts-lib-monorepo"}]});import{exec as pi}from"tinyexec";var Z="0.8.2";F();I();var rr=Y(O(),1);var Br="https://bunup.dev/docs/guide/cli-options";F();I();W();function h(i){return(r,s)=>{s[i]=r===!0||r==="true"}}function $(i){return(r,s)=>{if(typeof r==="string")s[i]=r;else throw new M(`Option --${i} requires a string value`)}}function T(i){return(r,s)=>{if(typeof r==="string")s[i]=r.split(",");else throw new M(`Option --${i} requires a string value`)}}function Si(i){return(r,s)=>{if(typeof r==="boolean")s[i]=r;else if(typeof r==="string")if(r.toLowerCase()==="true"||r.toLowerCase()==="false")s[i]=r.toLowerCase()==="true";else s[i]=r;else throw new M(`Option --${i} requires a boolean or string value`)}}function Mi(){console.log(`
19
21
  Bunup - \u26A1\uFE0F A blazing-fast build tool for your libraries built with Bun.
20
- `),console.log("For more information on available options, visit:"),console.log(`${v.default.cyan(v.default.underline(hr))}
21
- `),process.exit(0)}function Mi(){console.log(F),process.exit(0)}var Wr={name:{flags:["n","name"],handler:R("name")},format:{flags:["f","format"],handler:T("format")},outDir:{flags:["o","out-dir"],handler:R("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:R("banner")},footer:{flags:["ft","footer"],handler:R("footer")},external:{flags:["e","external"],handler:T("external")},sourcemap:{flags:["sm","sourcemap"],handler:Ci("sourcemap")},target:{flags:["t","target"],handler:R("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:T("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:R("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:h("bytecode")},silent:{flags:["silent"],handler:h("silent")},config:{flags:["config"],handler:R("config")},publicPath:{flags:["pp","public-path"],handler:R("publicPath")},env:{flags:["env"],handler:R("env")},onSuccess:{flags:["onSuccess"],handler:R("onSuccess")},filter:{flags:["filter"],handler:T("filter")},new:{flags:["new"],handler:h("new")},dtsOnly:{flags:["dts-only"],handler:h("dtsOnly")},entry:{flags:["entry"],handler:(i,r,n)=>{if(typeof i!=="string")throw new S(`Entry${n?` --entry.${n}`:""} requires a string value`);let s=r.entry||{};if(n){if(s[n])m.warn(`Duplicate entry name '${n}' provided via --entry.${n}. Overwriting previous entry.`);s[n]=i}else{let t=Rr(i);if(s[t])m.warn(`Duplicate entry name '${t}' derived from '${i}'. Overwriting previous entry.`);s[t]=i}r.entry=s}},resolveDts:{flags:["rd","resolve-dts"],handler:(i,r)=>{if(!r.dts)r.dts={};if(typeof r.dts==="boolean")r.dts={};if(typeof i==="string")if(i==="true"||i==="false")r.dts.resolve=i==="true";else r.dts.resolve=i.split(",");else r.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>Bi()},version:{flags:["v","version"],handler:()=>Mi()}},A={};for(let i of Object.values(Wr))for(let r of i.flags)A[r]=i.handler;function Yr(i){let r={};for(let n=0;n<i.length;n++){let s=i[n];if(s.startsWith("--")){let t,e;if(s.includes("=")){let[d,g]=s.slice(2).split("=",2);t=d,e=g}else{t=s.slice(2);let d=i[n+1];if(e=d&&!d.startsWith("-")?d:!0,typeof e==="string")n++}if(t.includes(".")){let[d,g]=t.split(".",2),l=A[d];if(l)l(e,r,g);else throw new S(`Unknown option: --${t}`)}else{let d=A[t];if(d)d(e,r);else throw new S(`Unknown option: --${t}`)}}else if(s.startsWith("-")){let t=s.slice(1),e=i[n+1],d=e&&!e.startsWith("-")?e:!0;if(typeof d==="string")n++;let g=A[t];if(g)g(d,r);else throw new S(`Unknown option: -${t}`)}else Wr.entry.handler(s,r,void 0)}return r}var ti=p(E(),1);a();O();import{loadConfig as Qi}from"coffi";var Pr=p(E(),1);nr();U();rr();Y();ir();O();import J from"path";async function vr(i,r){let n=new Set,s=_(i),t=typeof s.dts==="object"&&"entry"in s.dts?s.dts.entry:void 0,e=t?q(t):[],d=q(s.entry),g=new Set([...e.map(({entry:u})=>u),...d.map(({entry:u})=>u)]);for(let u of g){let x=J.resolve(r,u),C=J.dirname(x);n.add(C)}let w=(await import("chokidar")).watch(Array.from(n),{persistent:!0,ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,J.join(r,s.outDir)]}),c=!1,B=async(u=!1)=>{if(c)return;c=!0;try{let x=performance.now();if(await sr(s,r),!u)m.cli(`\uD83D\uDCE6 Rebuild finished in ${Pr.default.green(Z(performance.now()-x))}`)}catch(x){P(x)}finally{c=!1}};w.on("change",(u)=>{let x=J.relative(r,u);m.cli(`File changed: ${x}`,{muted:!0,once:x}),B()}),w.on("error",(u)=>{throw new z(`Watcher error: ${H(u)}`)}),await B(!0)}async function Zi(i=Bun.argv.slice(2)){let r=Yr(i);if(r.new){let{newProject:c}=await Promise.resolve().then(() => (ni(),si));await c();return}y(r.silent);let n=process.cwd(),{config:s,filepath:t}=await Qi({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:r.config,packageJsonProperty:"bunup"}),e=!s?[{rootDir:n,options:r}]:await Ir(s,n,r.filter);if(m.cli(`Using bunup v${F} and bun v${Bun.version}`,{muted:!0}),t)m.cli(`Using ${V(t,2)}`,{muted:!0});let d=performance.now();m.cli("Build started");let{build:g}=await Promise.resolve().then(() => (nr(),Hr));await Promise.all(e.flatMap(({options:c,rootDir:B})=>{return Br(c).map(async(x)=>{let C={...x,...Vi(r)};if(C.watch)await vr(C,B);else await g(C,B)})}));let l=performance.now()-d,w=Z(l);if(m.cli(`\u26A1\uFE0F Build completed in ${ti.default.green(w)}`),r.watch)m.cli("\uD83D\uDC40 Watching for file changes");if(r.onSuccess)m.cli(`Running command: ${r.onSuccess}`,{muted:!0}),await Ki(r.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!r.watch)process.exit(process.exitCode??0)}function Vi(i){return{...i,onSuccess:void 0,config:void 0,filter:void 0,new:void 0}}Zi().catch((i)=>wr(i));
22
+ `),console.log("For more information on available options, visit:"),console.log(`${rr.default.cyan(rr.default.underline(Br))}
23
+ `),process.exit(0)}function $i(){console.log(Z),process.exit(0)}var qr={name:{flags:["n","name"],handler:$("name")},format:{flags:["f","format"],handler:T("format")},outDir:{flags:["o","out-dir"],handler:$("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:$("banner")},footer:{flags:["ft","footer"],handler:$("footer")},external:{flags:["e","external"],handler:T("external")},sourcemap:{flags:["sm","sourcemap"],handler:Si("sourcemap")},target:{flags:["t","target"],handler:$("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:T("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:$("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:h("bytecode")},silent:{flags:["silent"],handler:h("silent")},config:{flags:["config"],handler:$("config")},publicPath:{flags:["pp","public-path"],handler:$("publicPath")},env:{flags:["env"],handler:$("env")},onSuccess:{flags:["onSuccess"],handler:$("onSuccess")},filter:{flags:["filter"],handler:T("filter")},new:{flags:["new"],handler:h("new")},dtsOnly:{flags:["dts-only"],handler:h("dtsOnly")},entry:{flags:["entry"],handler:(i,r,s)=>{if(typeof i!=="string")throw new M(`Entry${s?` --entry.${s}`:""} requires a string value`);let n=r.entry||{};if(s){if(n[s])m.warn(`Duplicate entry name '${s}' provided via --entry.${s}. Overwriting previous entry.`);n[s]=i}else{let t=$r(i);if(n[t])m.warn(`Duplicate entry name '${t}' derived from '${i}'. Overwriting previous entry.`);n[t]=i}r.entry=n}},resolveDts:{flags:["rd","resolve-dts"],handler:(i,r)=>{if(!r.dts)r.dts={};if(typeof r.dts==="boolean")r.dts={};if(typeof i==="string")if(i==="true"||i==="false")r.dts.resolve=i==="true";else r.dts.resolve=i.split(",");else r.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>Mi()},version:{flags:["v","version"],handler:()=>$i()}},J={};for(let i of Object.values(qr))for(let r of i.flags)J[r]=i.handler;function Ir(i){let r={};for(let s=0;s<i.length;s++){let n=i[s];if(n.startsWith("--")){let t,d;if(n.includes("=")){let[e,g]=n.slice(2).split("=",2);t=e,d=g}else{t=n.slice(2);let e=i[s+1];if(d=e&&!e.startsWith("-")?e:!0,typeof d==="string")s++}if(t.includes(".")){let[e,g]=t.split(".",2),B=J[e];if(B)B(d,r,g);else throw new M(`Unknown option: --${t}`)}else{let e=J[t];if(e)e(d,r);else throw new M(`Unknown option: --${t}`)}}else if(n.startsWith("-")){let t=n.slice(1),d=i[s+1],e=d&&!d.startsWith("-")?d:!0;if(typeof e==="string")s++;let g=J[t];if(g)g(e,r);else throw new M(`Unknown option: -${t}`)}else qr.entry.handler(n,r,void 0)}return r}var ei=Y(O(),1);ir();W();import{loadConfig as Ai}from"coffi";var Pr=Y(O(),1);er();F();nr();I();tr();W();import D from"path";async function ar(i,r){let s=new Set,n=_(i),t=typeof n.dts==="object"&&"entry"in n.dts?n.dts.entry:void 0,d=t?U(t):[],e=U(n.entry),g=new Set([...d.map(({entry:x})=>x),...e.map(({entry:x})=>x)]);for(let x of g){let u=D.resolve(r,x),C=D.dirname(u);s.add(C)}let w=(await import("chokidar")).watch(Array.from(s),{persistent:!0,ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,D.join(r,n.outDir)]}),b=!1,l=async(x=!1)=>{if(b)return;b=!0;try{let u=performance.now();if(await dr(n,r),!x)m.cli(`\uD83D\uDCE6 Rebuild finished in ${Pr.default.green(p(performance.now()-u))}`)}catch(u){a(u)}finally{b=!1}};w.on("change",(x)=>{let u=D.relative(r,x);m.cli(`File changed: ${u}`,{muted:!0,once:u}),l()}),w.on("error",(x)=>{throw new V(`Watcher error: ${P(x)}`)}),await l(!0)}async function Ti(i=Bun.argv.slice(2)){let r=Ir(i);if(r.new){let{newProject:b}=await Promise.resolve().then(() => (di(),ti));await b();return}G(r.silent);let s=process.cwd(),{config:n,filepath:t}=await Ai({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:r.config,packageJsonProperty:"bunup"}),d=!n?[{rootDir:s,options:r}]:await Lr(n,s,r.filter);if(m.cli(`Using bunup v${Z} and bun v${Bun.version}`,{muted:!0}),t)m.cli(`Using ${A(t,2)}`,{muted:!0});let e=performance.now();m.cli("Build started");let{build:g}=await Promise.resolve().then(() => (er(),vr));await Promise.all(d.flatMap(({options:b,rootDir:l})=>{return lr(b).map(async(u)=>{let C={...u,...Ji(r)};if(C.watch)await ar(C,l);else await g(C,l)})}));let B=performance.now()-e,w=p(B);if(m.cli(`\u26A1\uFE0F Build completed in ${ei.default.green(w)}`),r.watch)m.cli("\uD83D\uDC40 Watching for file changes");if(r.onSuccess)m.cli(`Running command: ${r.onSuccess}`,{muted:!0}),await pi(r.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!r.watch)process.exit(process.exitCode??0)}function Ji(i){return{...i,onSuccess:void 0,config:void 0,filter:void 0,new:void 0}}Ti().catch((i)=>hr(i));
package/dist/index.cjs CHANGED
@@ -1,4 +1,6 @@
1
+ "use client";
1
2
  // @bun @bun-cjs
2
- (function(exports, require, module, __filename, __dirname) {var wr=Object.create;var{getPrototypeOf:Mr,defineProperty:B,getOwnPropertyNames:A,getOwnPropertyDescriptor:Rr}=Object,H=Object.prototype.hasOwnProperty;var h=(e,r,i)=>{i=e!=null?wr(Mr(e)):{};let n=r||!e||!e.__esModule?B(i,"default",{value:e,enumerable:!0}):i;for(let t of A(e))if(!H.call(n,t))B(n,t,{get:()=>e[t],enumerable:!0});return n},N=new WeakMap,Er=(e)=>{var r=N.get(e),i;if(r)return r;if(r=B({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")A(e).map((n)=>!H.call(r,n)&&B(r,n,{get:()=>e[n],enumerable:!(i=Rr(e,n))||i.enumerable}));return N.set(e,r),r},Ir=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var Lr=(e,r)=>{for(var i in r)B(e,i,{get:r[i],enumerable:!0,configurable:!0,set:(n)=>r[i]=()=>n})};var F=Ir((Nr,p)=>{var I=process||{},X=I.argv||[],E=I.env||{},Or=!(!!E.NO_COLOR||X.includes("--no-color"))&&(!!E.FORCE_COLOR||X.includes("--color")||I.platform==="win32"||(I.stdout||{}).isTTY&&E.TERM!=="dumb"||!!E.CI),Sr=(e,r,i=e)=>(n)=>{let t=""+n,b=t.indexOf(r,e.length);return~b?e+$r(t,r,i,b)+r:e+t+r},$r=(e,r,i,n)=>{let t="",b=0;do t+=e.substring(b,n)+i,b=n+r.length,n=e.indexOf(r,b);while(~n);return t+e.substring(b)},_=(e=Or)=>{let r=e?Sr:()=>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")}};p.exports=_();p.exports.createColors=_});var ar={};Lr(ar,{defineWorkspace:()=>U,defineConfig:()=>K,build:()=>Br});module.exports=Er(ar);function K(e){return e}function U(e){return e}var Cr=h(require("path")),S=require("bun-dts");var Wr=h(F());var g=h(F()),j=!1;function q(e){j=e??!1}class d{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=g.default.blue;mutedColor=g.default.dim;infoColor=g.default.cyan;warnColor=g.default.yellow;errorColor=g.default.red;defaultColor=g.default.white;progressFgColorMap={ESM:g.default.yellow,CJS:g.default.green,IIFE:g.default.magenta,DTS:g.default.blue};progressIdentifierBgColorMap={ESM:g.default.bgYellow,CJS:g.default.bgGreen,IIFE:g.default.bgMagenta,DTS:g.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!d.instance)d.instance=new d;return d.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:i,message:n,identifier:t,muted:b}){let x=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-i.length)),u=b?this.mutedColor(n):n,$=t?` ${r(g.default.black(` ${t} `))}`:"";return`${e(i)} ${x}${u}${$}`}output(e,r={},i=console.log){if(j||!this.shouldLog(r))return;if(r.verticalSpace)i("");if(i(e),r.verticalSpace)i("")}cli(e,r={}){let i=this.formatMessage({fgColor:this.cliColor,bgColor:g.default.bgBlue,label:this.labels.cli,message:e,identifier:r.identifier,muted:r.muted});this.output(i,r)}info(e,r={}){let i=this.formatMessage({fgColor:this.infoColor,bgColor:g.default.bgCyan,label:this.labels.info,message:e,identifier:r.identifier,muted:r.muted});this.output(i,r)}warn(e,r={}){let i=this.formatMessage({fgColor:this.warnColor,bgColor:g.default.bgYellow,label:this.labels.warn,message:e,identifier:r.identifier,muted:r.muted});this.output(i,r,console.warn)}error(e,r={}){let i=this.formatMessage({fgColor:this.errorColor,bgColor:g.default.bgRed,label:this.labels.error,message:e,identifier:r.identifier,muted:r.muted});this.output(i,r,console.error)}getProgressFgColor(e){for(let[r,i]of Object.entries(this.progressFgColorMap))if(e.includes(r))return i;return this.defaultColor}getProgressBgColor(e){for(let[r,i]of Object.entries(this.progressIdentifierBgColorMap))if(e.includes(r))return i;return g.default.bgWhite}progress(e,r,i={}){let n=this.getProgressFgColor(e),t=this.getProgressBgColor(e),b=this.formatMessage({fgColor:n,bgColor:t,label:e,message:r,identifier:i.identifier,muted:i.muted});this.output(b,i)}}var m=d.getInstance();class Q extends Error{constructor(e){super(e);this.name="BunupError"}}class w extends Q{constructor(e){super(e);this.name="BunupBuildError"}}var a=h(require("fs/promises")),O=h(require("path"));function Z(e,r){switch(e){case"esm":return L(r)?".js":".mjs";case"cjs":return L(r)?".cjs":".js";case"iife":return".global.js"}}function v(e,r){switch(e){case"esm":return L(r)?".d.ts":".d.mts";case"cjs":return L(r)?".d.cts":".d.ts";case"iife":return".global.d.ts"}}function z(e){return e.replace(O.default.extname(e),"")}function T(e){return e.replace(/\\/g,"/")}function L(e){return e==="module"}function V(e){if(!e)return[];return Array.from(new Set([...Object.keys(e.dependencies||{}),...Object.keys(e.peerDependencies||{})]))}function k(e,r=3){return e.split("/").slice(-r).join("/")}async function D(e,r){let i=O.default.join(e,r);try{await a.default.rm(i,{recursive:!0,force:!0})}catch(n){throw new w(`Failed to clean output directory: ${n}`)}await a.default.mkdir(i,{recursive:!0})}function Y(e){if(typeof e==="string")return[{entry:e,outputBasePath:J(e)}];if(typeof e==="object"&&!Array.isArray(e))return Object.entries(e).map(([r,i])=>({entry:i,outputBasePath:r}));return e.map((r)=>({entry:r,outputBasePath:J(r)}))}function J(e){let r=T(z(e)).split("/");return r.length>1?r.slice(1).join("/"):r.join("/")}function y(e,r){return{entry:`[dir]/${e}${r}`,chunk:`${e}-[hash].[ext]`,asset:`${e}-[name]-[hash].[ext]`}}var P=require("coffi");async function rr(e){let{config:r,filepath:i}=await P.loadConfig({name:"package",cwd:e,extensions:[".json"]});return{data:r,path:i}}var pr={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0};function er(e){return{...pr,...e}}function nr(e){let{minify:r,minifyWhitespace:i,minifyIdentifiers:n,minifySyntax:t}=e,b=r===!0;return{whitespace:i??b,identifiers:n??b,syntax:t??b}}function ir(e,r){return r==="cjs"?e:void 0}function tr(e){if(e===!0)return"inline";return typeof e==="string"?e:void 0}function gr(e,r){return{...typeof r==="object"&&Object.keys(r).reduce((i,n)=>{let t=JSON.stringify(r[n]);return i[`process.env.${n}`]=t,i[`import.meta.env.${n}`]=t,i},{}),...e}}function br(e,r){return e===void 0?r==="esm":e}function sr(e){return typeof e==="string"?e:void 0}function Fr(e){return V(e).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function xr(e,r){return typeof r==="string"?r===e:r.test(e)}function or(e,r,i){let t=Fr(i).some((x)=>x.test(e))||r.external?.some((x)=>xr(e,x)),b=r.noExternal?.some((x)=>xr(e,x));return t&&!b}function mr(e,r){return{name:"bunup:external-option-plugin",setup(i){i.onResolve({filter:/.*/},(n)=>{let t=n.path;if(or(t,e,r))return{path:t,external:!0};return null})}}}function ur(e){if(!e)return[];return e.filter((r)=>r.type==="bun")}function lr(e){if(!e)return[];return e.filter((r)=>r.type==="bunup")}async function dr(e,r){if(!e)return;for(let i of e)if(i.hooks.onBuildStart)await i.hooks.onBuildStart(r)}async function cr(e,r,i,n){if(!e)return;for(let t of e)if(t.hooks.onBuildDone)await t.hooks.onBuildDone({options:r,output:i,meta:n})}async function Br(e,r=process.cwd()){let i={files:[]},n=er(e);if(!n.entry||n.entry.length===0||!n.outDir)throw new w("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(n.clean)D(r,n.outDir);q(n.silent);let t=await rr(r);if(t.data&&t.path)m.cli(`Using ${k(t.path,2)}`,{muted:!0,identifier:n.name,once:`${t.path}:${n.name}`});let b=lr(n.plugins);await dr(b,n);let x=Y(n.entry),u=t.data?.type,$=[mr(n,t.data),...ur(n.plugins).map((c)=>c.plugin)];if(!n.dtsOnly){let c=n.format.flatMap((o)=>x.map(async({entry:M,outputBasePath:R})=>{let f=n.outputExtension?.({format:o,packageType:u,options:n,entry:M}).js??Z(o,u),C=await Bun.build({entrypoints:[`${r}/${M}`],format:o,naming:y(R,f),splitting:br(n.splitting,o),bytecode:ir(n.bytecode,o),define:gr(n.define,n.env),minify:nr(n),outdir:`${r}/${n.outDir}`,target:n.target,sourcemap:tr(n.sourcemap),loader:n.loader,drop:n.drop,banner:n.banner,footer:n.footer,publicPath:n.publicPath,env:sr(n.env),plugins:$,throw:!1});for(let s of C.logs){if(s.level==="error")throw console.log(`
3
- `),console.log(s),console.log(`
4
- `),new Error;if(s.level==="warning")m.warn(s.message);else if(s.level==="info")m.info(s.message)}for(let s of C.outputs){let l=fr(s.path,r);if(s.kind==="entry-point")m.progress(o.toUpperCase(),l,{identifier:n.name});i.files.push({fullPath:s.path,relativePathToRootDir:l,dts:!1,entry:M,outputBasePath:R,format:o})}}));await Promise.all(c)}if(n.dts===!0||typeof n.dts==="object"||n.dtsOnly){let c=typeof n.dts==="object"&&"resolve"in n.dts?n.dts.resolve:void 0,o=typeof n.dts==="object"&&"entry"in n.dts?n.dts.entry:void 0,R=(o?Y(o):x).map(async({entry:f,outputBasePath:C})=>{let s=await S.generateDts(f,{cwd:r,preferredTsConfigPath:n.preferredTsconfigPath,resolve:c});for(let l of n.format){let hr=n.outputExtension?.({format:l,packageType:u,options:n,entry:f}).dts??v(l,u),W=Cr.default.join(r,n.outDir,`${C}${hr}`),G=fr(W,r);if(i.files.push({fullPath:W,relativePathToRootDir:G,dts:!0,entry:f,outputBasePath:C,format:l}),s.errors.length>0)S.logIsolatedDeclarationErrors(s.errors,{warnInsteadOfError:n.watch,shouldExit:!0});await Bun.write(W,s.dts),m.progress("DTS",G,{identifier:n.name})}});await Promise.all(R)}if(await cr(b,n,i,{packageJson:t}),n.onSuccess)await n.onSuccess(n)}function fr(e,r){return e.replace(`${r}/`,"")}})
3
+ (function(exports, require, module, __filename, __dirname) {var Rr=Object.create;var{getPrototypeOf:Er,defineProperty:B,getOwnPropertyNames:K,getOwnPropertyDescriptor:hr}=Object,U=Object.prototype.hasOwnProperty;var w=(n,r,g)=>{g=n!=null?Rr(Er(n)):{};let e=r||!n||!n.__esModule?B(g,"default",{value:n,enumerable:!0}):g;for(let b of K(n))if(!U.call(e,b))B(e,b,{get:()=>n[b],enumerable:!0});return e},H=new WeakMap,Ir=(n)=>{var r=H.get(n),g;if(r)return r;if(r=B({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function")K(n).map((e)=>!U.call(r,e)&&B(r,e,{get:()=>n[e],enumerable:!(g=hr(n,e))||g.enumerable}));return H.set(n,r),r},Lr=(n,r)=>()=>(r||n((r={exports:{}}).exports,r),r.exports);var Or=(n,r)=>{for(var g in r)B(n,g,{get:r[g],enumerable:!0,configurable:!0,set:(e)=>r[g]=()=>e})};var Y=Lr((Kr,F)=>{var I=process||{},j=I.argv||[],h=I.env||{},Sr=!(!!h.NO_COLOR||j.includes("--no-color"))&&(!!h.FORCE_COLOR||j.includes("--color")||I.platform==="win32"||(I.stdout||{}).isTTY&&h.TERM!=="dumb"||!!h.CI),$r=(n,r,g=n)=>(e)=>{let b=""+e,x=b.indexOf(r,n.length);return~x?n+Wr(b,r,g,x)+r:n+b+r},Wr=(n,r,g,e)=>{let b="",x=0;do b+=n.substring(x,e)+g,x=e+r.length,e=n.indexOf(r,x);while(~e);return b+n.substring(x)},q=(n=Sr)=>{let r=n?$r:()=>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")}};F.exports=q();F.exports.createColors=q});var Nr={};Or(Nr,{defineWorkspace:()=>_,defineConfig:()=>X,build:()=>wr});module.exports=Ir(Nr);function X(n){return n}function _(n){return n}var Br=w(require("path")),S=require("bun-dts");var Fr=w(Y());var i=w(Y()),Q=!1;function Z(n){Q=n??!1}class l{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=i.default.blue;mutedColor=i.default.dim;infoColor=i.default.cyan;warnColor=i.default.yellow;errorColor=i.default.red;defaultColor=i.default.white;progressFgColorMap={ESM:i.default.yellow,CJS:i.default.green,IIFE:i.default.magenta,DTS:i.default.blue};progressIdentifierBgColorMap={ESM:i.default.bgYellow,CJS:i.default.bgGreen,IIFE:i.default.bgMagenta,DTS:i.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!l.instance)l.instance=new l;return l.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:g,message:e,identifier:b,muted:x}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-g.length)),d=x?this.mutedColor(e):e,$=b?` ${r(i.default.black(` ${b} `))}`:"";return`${n(g)} ${s}${d}${$}`}output(n,r={},g=console.log){if(Q||!this.shouldLog(r))return;if(r.verticalSpace)g("");if(g(n),r.verticalSpace)g("")}cli(n,r={}){let g=this.formatMessage({fgColor:this.cliColor,bgColor:i.default.bgBlue,label:this.labels.cli,message:n,identifier:r.identifier,muted:r.muted});this.output(g,r)}info(n,r={}){let g=this.formatMessage({fgColor:this.infoColor,bgColor:i.default.bgCyan,label:this.labels.info,message:n,identifier:r.identifier,muted:r.muted});this.output(g,r)}warn(n,r={}){let g=this.formatMessage({fgColor:this.warnColor,bgColor:i.default.bgYellow,label:this.labels.warn,message:n,identifier:r.identifier,muted:r.muted});this.output(g,r,console.warn)}error(n,r={}){let g=this.formatMessage({fgColor:this.errorColor,bgColor:i.default.bgRed,label:this.labels.error,message:n,identifier:r.identifier,muted:r.muted});this.output(g,r,console.error)}getProgressFgColor(n){for(let[r,g]of Object.entries(this.progressFgColorMap))if(n.includes(r))return g;return this.defaultColor}getProgressBgColor(n){for(let[r,g]of Object.entries(this.progressIdentifierBgColorMap))if(n.includes(r))return g;return i.default.bgWhite}progress(n,r,g={}){let e=this.getProgressFgColor(n),b=this.getProgressBgColor(n),x=this.formatMessage({fgColor:e,bgColor:b,label:n,message:r,identifier:g.identifier,muted:g.muted});this.output(x,g)}}var o=l.getInstance();class z extends Error{constructor(n){super(n);this.name="BunupError"}}class M extends z{constructor(n){super(n);this.name="BunupBuildError"}}var G=w(require("fs/promises")),O=w(require("path"));function V(n,r){switch(n){case"esm":return L(r)?".js":".mjs";case"cjs":return L(r)?".cjs":".js";case"iife":return".global.js"}}function T(n,r){switch(n){case"esm":return L(r)?".d.ts":".d.mts";case"cjs":return L(r)?".d.cts":".d.ts";case"iife":return".global.d.ts"}}function v(n){return n.replace(O.default.extname(n),"")}function p(n){return n.replace(/\\/g,"/")}function L(n){return n==="module"}function D(n){if(!n)return[];return Array.from(new Set([...Object.keys(n.dependencies||{}),...Object.keys(n.peerDependencies||{})]))}function k(n,r=3){return n.split("/").slice(-r).join("/")}async function J(n,r){let g=O.default.join(n,r);try{await G.default.rm(g,{recursive:!0,force:!0})}catch(e){throw new M(`Failed to clean output directory: ${e}`)}await G.default.mkdir(g,{recursive:!0})}function N(n){if(typeof n==="string")return[{entry:n,outputBasePath:a(n)}];if(typeof n==="object"&&!Array.isArray(n))return Object.entries(n).map(([r,g])=>({entry:g,outputBasePath:r}));return n.map((r)=>({entry:r,outputBasePath:a(r)}))}function a(n){let r=p(v(n)).split("/");return r.length>1?r.slice(1).join("/"):r.join("/")}function y(n,r){return{entry:`[dir]/${n}${r}`,chunk:`${n}-[hash].[ext]`,asset:`${n}-[name]-[hash].[ext]`}}var P=require("coffi");async function rr(n){let{config:r,filepath:g}=await P.loadConfig({name:"package",cwd:n,extensions:[".json"]});return{data:r,path:g}}function nr(){return{type:"bunup",name:"use-client",hooks:{onBuildDone:async({output:n})=>{for(let r of n.files){let g=await Bun.file(r.fullPath).text();if(g.includes(''))g=g.replaceAll('',""),g=`
4
+ ${g}`;await Bun.write(r.fullPath,g)}}}}}var Yr={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0};function er(n){let r={...Yr,...n};return{...r,plugins:[...r.plugins??[],nr()]}}function gr(n){let{minify:r,minifyWhitespace:g,minifyIdentifiers:e,minifySyntax:b}=n,x=r===!0;return{whitespace:g??x,identifiers:e??x,syntax:b??x}}function br(n,r){return r==="cjs"?n:void 0}function ir(n){if(n===!0)return"inline";return typeof n==="string"?n:void 0}function xr(n,r){return{...typeof r==="object"&&Object.keys(r).reduce((g,e)=>{let b=JSON.stringify(r[e]);return g[`process.env.${e}`]=b,g[`import.meta.env.${e}`]=b,g},{}),...n}}function mr(n,r){return n===void 0?r==="esm":n}function sr(n){return typeof n==="string"?n:void 0}function Gr(n){return D(n).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function tr(n,r){return typeof r==="string"?r===n:r.test(n)}function or(n,r,g){let b=Gr(g).some((s)=>s.test(n))||r.external?.some((s)=>tr(n,s)),x=r.noExternal?.some((s)=>tr(n,s));return b&&!x}function dr(n,r){return{name:"bunup:external-option-plugin",setup(g){g.onResolve({filter:/.*/},(e)=>{let b=e.path;if(or(b,n,r))return{path:b,external:!0};return null})}}}function ur(n){if(!n)return[];return n.filter((r)=>r.type==="bun")}function lr(n){if(!n)return[];return n.filter((r)=>r.type==="bunup")}async function Cr(n,r){if(!n)return;for(let g of n)if(g.hooks.onBuildStart)await g.hooks.onBuildStart(r)}async function cr(n,r,g,e){if(!n)return;for(let b of n)if(b.hooks.onBuildDone)await b.hooks.onBuildDone({options:r,output:g,meta:e})}async function wr(n,r=process.cwd()){let g={files:[]},e=er(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)J(r,e.outDir);Z(e.silent);let b=await rr(r);if(b.data&&b.path)o.cli(`Using ${k(b.path,2)}`,{muted:!0,identifier:e.name,once:`${b.path}:${e.name}`});let x=lr(e.plugins);await Cr(x,e);let s=N(e.entry),d=b.data?.type,$=[dr(e,b.data),...ur(e.plugins).map((C)=>C.plugin)];if(!e.dtsOnly){let C=e.format.flatMap((t)=>s.map(async({entry:R,outputBasePath:E})=>{let c=e.outputExtension?.({format:t,packageType:d,options:e,entry:R}).js??V(t,d),f=await Bun.build({entrypoints:[`${r}/${R}`],format:t,naming:y(E,c),splitting:mr(e.splitting,t),bytecode:br(e.bytecode,t),define:xr(e.define,e.env),minify:gr(e),outdir:`${r}/${e.outDir}`,target:e.target,sourcemap:ir(e.sourcemap),loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:sr(e.env),plugins:$,throw:!1});for(let m of f.logs){if(m.level==="error")throw console.log(`
5
+ `),console.log(m),console.log(`
6
+ `),new Error;if(m.level==="warning")o.warn(m.message);else if(m.level==="info")o.info(m.message)}for(let m of f.outputs){let u=fr(m.path,r);if(m.kind==="entry-point")o.progress(t.toUpperCase(),u,{identifier:e.name});g.files.push({fullPath:m.path,relativePathToRootDir:u,dts:!1,entry:R,outputBasePath:E,format:t})}}));await Promise.all(C)}if(e.dts===!0||typeof e.dts==="object"||e.dtsOnly){let C=typeof e.dts==="object"&&"resolve"in e.dts?e.dts.resolve:void 0,t=typeof e.dts==="object"&&"entry"in e.dts?e.dts.entry:void 0,E=(t?N(t):s).map(async({entry:c,outputBasePath:f})=>{let m=await S.generateDts(c,{cwd:r,preferredTsConfigPath:e.preferredTsconfigPath,resolve:C});for(let u of e.format){let Mr=e.outputExtension?.({format:u,packageType:d,options:e,entry:c}).dts??T(u,d),W=Br.default.join(r,e.outDir,`${f}${Mr}`),A=fr(W,r);if(g.files.push({fullPath:W,relativePathToRootDir:A,dts:!0,entry:c,outputBasePath:f,format:u}),m.errors.length>0)S.logIsolatedDeclarationErrors(m.errors,{warnInsteadOfError:e.watch,shouldExit:!0});await Bun.write(W,m.dts),o.progress("DTS",A,{identifier:e.name})}});await Promise.all(E)}if(await cr(x,e,g,{packageJson:b}),e.onSuccess)await e.onSuccess(e)}function fr(n,r){return n.replace(`${r}/`,"")}})
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
+ "use client";
1
2
  // @bun
2
- var mr=Object.create;var{getPrototypeOf:ur,defineProperty:p,getOwnPropertyNames:lr}=Object;var dr=Object.prototype.hasOwnProperty;var F=(e,r,i)=>{i=e!=null?mr(ur(e)):{};let n=r||!e||!e.__esModule?p(i,"default",{value:e,enumerable:!0}):i;for(let t of lr(e))if(!dr.call(n,t))p(n,t,{get:()=>e[t],enumerable:!0});return n};var cr=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var S=cr((Fr,O)=>{var R=process||{},a=R.argv||[],M=R.env||{},Br=!(!!M.NO_COLOR||a.includes("--no-color"))&&(!!M.FORCE_COLOR||a.includes("--color")||R.platform==="win32"||(R.stdout||{}).isTTY&&M.TERM!=="dumb"||!!M.CI),hr=(e,r,i=e)=>(n)=>{let t=""+n,b=t.indexOf(r,e.length);return~b?e+wr(t,r,i,b)+r:e+t+r},wr=(e,r,i,n)=>{let t="",b=0;do t+=e.substring(b,n)+i,b=n+r.length,n=e.indexOf(r,b);while(~n);return t+e.substring(b)},Y=(e=Br)=>{let r=e?hr:()=>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")}};O.exports=Y();O.exports.createColors=Y});function fr(e){return e}function Cr(e){return e}import Lr from"path";import{generateDts as Or,logIsolatedDeclarationErrors as Sr}from"bun-dts";var Mr=F(S(),1);var g=F(S(),1),G=!1;function N(e){G=e??!1}class d{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=g.default.blue;mutedColor=g.default.dim;infoColor=g.default.cyan;warnColor=g.default.yellow;errorColor=g.default.red;defaultColor=g.default.white;progressFgColorMap={ESM:g.default.yellow,CJS:g.default.green,IIFE:g.default.magenta,DTS:g.default.blue};progressIdentifierBgColorMap={ESM:g.default.bgYellow,CJS:g.default.bgGreen,IIFE:g.default.bgMagenta,DTS:g.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!d.instance)d.instance=new d;return d.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:i,message:n,identifier:t,muted:b}){let x=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-i.length)),u=b?this.mutedColor(n):n,I=t?` ${r(g.default.black(` ${t} `))}`:"";return`${e(i)} ${x}${u}${I}`}output(e,r={},i=console.log){if(G||!this.shouldLog(r))return;if(r.verticalSpace)i("");if(i(e),r.verticalSpace)i("")}cli(e,r={}){let i=this.formatMessage({fgColor:this.cliColor,bgColor:g.default.bgBlue,label:this.labels.cli,message:e,identifier:r.identifier,muted:r.muted});this.output(i,r)}info(e,r={}){let i=this.formatMessage({fgColor:this.infoColor,bgColor:g.default.bgCyan,label:this.labels.info,message:e,identifier:r.identifier,muted:r.muted});this.output(i,r)}warn(e,r={}){let i=this.formatMessage({fgColor:this.warnColor,bgColor:g.default.bgYellow,label:this.labels.warn,message:e,identifier:r.identifier,muted:r.muted});this.output(i,r,console.warn)}error(e,r={}){let i=this.formatMessage({fgColor:this.errorColor,bgColor:g.default.bgRed,label:this.labels.error,message:e,identifier:r.identifier,muted:r.muted});this.output(i,r,console.error)}getProgressFgColor(e){for(let[r,i]of Object.entries(this.progressFgColorMap))if(e.includes(r))return i;return this.defaultColor}getProgressBgColor(e){for(let[r,i]of Object.entries(this.progressIdentifierBgColorMap))if(e.includes(r))return i;return g.default.bgWhite}progress(e,r,i={}){let n=this.getProgressFgColor(e),t=this.getProgressBgColor(e),b=this.formatMessage({fgColor:n,bgColor:t,label:e,message:r,identifier:i.identifier,muted:i.muted});this.output(b,i)}}var m=d.getInstance();class A extends Error{constructor(e){super(e);this.name="BunupError"}}class B extends A{constructor(e){super(e);this.name="BunupBuildError"}}import H from"fs/promises";import K,{normalize as Hr}from"path";function U(e,r){switch(e){case"esm":return E(r)?".js":".mjs";case"cjs":return E(r)?".cjs":".js";case"iife":return".global.js"}}function X(e,r){switch(e){case"esm":return E(r)?".d.ts":".d.mts";case"cjs":return E(r)?".d.cts":".d.ts";case"iife":return".global.d.ts"}}function _(e){return e.replace(K.extname(e),"")}function j(e){return e.replace(/\\/g,"/")}function E(e){return e==="module"}function q(e){if(!e)return[];return Array.from(new Set([...Object.keys(e.dependencies||{}),...Object.keys(e.peerDependencies||{})]))}function Q(e,r=3){return e.split("/").slice(-r).join("/")}async function Z(e,r){let i=K.join(e,r);try{await H.rm(i,{recursive:!0,force:!0})}catch(n){throw new B(`Failed to clean output directory: ${n}`)}await H.mkdir(i,{recursive:!0})}function $(e){if(typeof e==="string")return[{entry:e,outputBasePath:v(e)}];if(typeof e==="object"&&!Array.isArray(e))return Object.entries(e).map(([r,i])=>({entry:i,outputBasePath:r}));return e.map((r)=>({entry:r,outputBasePath:v(r)}))}function v(e){let r=j(_(e)).split("/");return r.length>1?r.slice(1).join("/"):r.join("/")}function z(e,r){return{entry:`[dir]/${e}${r}`,chunk:`${e}-[hash].[ext]`,asset:`${e}-[name]-[hash].[ext]`}}import{loadConfig as Rr}from"coffi";async function T(e){let{config:r,filepath:i}=await Rr({name:"package",cwd:e,extensions:[".json"]});return{data:r,path:i}}var Er={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0};function V(e){return{...Er,...e}}function k(e){let{minify:r,minifyWhitespace:i,minifyIdentifiers:n,minifySyntax:t}=e,b=r===!0;return{whitespace:i??b,identifiers:n??b,syntax:t??b}}function D(e,r){return r==="cjs"?e:void 0}function J(e){if(e===!0)return"inline";return typeof e==="string"?e:void 0}function y(e,r){return{...typeof r==="object"&&Object.keys(r).reduce((i,n)=>{let t=JSON.stringify(r[n]);return i[`process.env.${n}`]=t,i[`import.meta.env.${n}`]=t,i},{}),...e}}function P(e,r){return e===void 0?r==="esm":e}function rr(e){return typeof e==="string"?e:void 0}function Ir(e){return q(e).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function er(e,r){return typeof r==="string"?r===e:r.test(e)}function nr(e,r,i){let t=Ir(i).some((x)=>x.test(e))||r.external?.some((x)=>er(e,x)),b=r.noExternal?.some((x)=>er(e,x));return t&&!b}function ir(e,r){return{name:"bunup:external-option-plugin",setup(i){i.onResolve({filter:/.*/},(n)=>{let t=n.path;if(nr(t,e,r))return{path:t,external:!0};return null})}}}function tr(e){if(!e)return[];return e.filter((r)=>r.type==="bun")}function gr(e){if(!e)return[];return e.filter((r)=>r.type==="bunup")}async function br(e,r){if(!e)return;for(let i of e)if(i.hooks.onBuildStart)await i.hooks.onBuildStart(r)}async function sr(e,r,i,n){if(!e)return;for(let t of e)if(t.hooks.onBuildDone)await t.hooks.onBuildDone({options:r,output:i,meta:n})}async function $r(e,r=process.cwd()){let i={files:[]},n=V(e);if(!n.entry||n.entry.length===0||!n.outDir)throw new B("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(n.clean)Z(r,n.outDir);N(n.silent);let t=await T(r);if(t.data&&t.path)m.cli(`Using ${Q(t.path,2)}`,{muted:!0,identifier:n.name,once:`${t.path}:${n.name}`});let b=gr(n.plugins);await br(b,n);let x=$(n.entry),u=t.data?.type,I=[ir(n,t.data),...tr(n.plugins).map((c)=>c.plugin)];if(!n.dtsOnly){let c=n.format.flatMap((o)=>x.map(async({entry:h,outputBasePath:w})=>{let f=n.outputExtension?.({format:o,packageType:u,options:n,entry:h}).js??U(o,u),C=await Bun.build({entrypoints:[`${r}/${h}`],format:o,naming:z(w,f),splitting:P(n.splitting,o),bytecode:D(n.bytecode,o),define:y(n.define,n.env),minify:k(n),outdir:`${r}/${n.outDir}`,target:n.target,sourcemap:J(n.sourcemap),loader:n.loader,drop:n.drop,banner:n.banner,footer:n.footer,publicPath:n.publicPath,env:rr(n.env),plugins:I,throw:!1});for(let s of C.logs){if(s.level==="error")throw console.log(`
3
- `),console.log(s),console.log(`
4
- `),new Error;if(s.level==="warning")m.warn(s.message);else if(s.level==="info")m.info(s.message)}for(let s of C.outputs){let l=xr(s.path,r);if(s.kind==="entry-point")m.progress(o.toUpperCase(),l,{identifier:n.name});i.files.push({fullPath:s.path,relativePathToRootDir:l,dts:!1,entry:h,outputBasePath:w,format:o})}}));await Promise.all(c)}if(n.dts===!0||typeof n.dts==="object"||n.dtsOnly){let c=typeof n.dts==="object"&&"resolve"in n.dts?n.dts.resolve:void 0,o=typeof n.dts==="object"&&"entry"in n.dts?n.dts.entry:void 0,w=(o?$(o):x).map(async({entry:f,outputBasePath:C})=>{let s=await Or(f,{cwd:r,preferredTsConfigPath:n.preferredTsconfigPath,resolve:c});for(let l of n.format){let or=n.outputExtension?.({format:l,packageType:u,options:n,entry:f}).dts??X(l,u),L=Lr.join(r,n.outDir,`${C}${or}`),W=xr(L,r);if(i.files.push({fullPath:L,relativePathToRootDir:W,dts:!0,entry:f,outputBasePath:C,format:l}),s.errors.length>0)Sr(s.errors,{warnInsteadOfError:n.watch,shouldExit:!0});await Bun.write(L,s.dts),m.progress("DTS",W,{identifier:n.name})}});await Promise.all(w)}if(await sr(b,n,i,{packageJson:t}),n.onSuccess)await n.onSuccess(n)}function xr(e,r){return e.replace(`${r}/`,"")}export{Cr as defineWorkspace,fr as defineConfig,$r as build};
3
+ var dr=Object.create;var{getPrototypeOf:ur,defineProperty:F,getOwnPropertyNames:lr}=Object;var Cr=Object.prototype.hasOwnProperty;var Y=(n,r,g)=>{g=n!=null?dr(ur(n)):{};let e=r||!n||!n.__esModule?F(g,"default",{value:n,enumerable:!0}):g;for(let b of lr(n))if(!Cr.call(e,b))F(e,b,{get:()=>n[b],enumerable:!0});return e};var cr=(n,r)=>()=>(r||n((r={exports:{}}).exports,r),r.exports);var S=cr((Gr,O)=>{var E=process||{},G=E.argv||[],R=E.env||{},wr=!(!!R.NO_COLOR||G.includes("--no-color"))&&(!!R.FORCE_COLOR||G.includes("--color")||E.platform==="win32"||(E.stdout||{}).isTTY&&R.TERM!=="dumb"||!!R.CI),Mr=(n,r,g=n)=>(e)=>{let b=""+e,x=b.indexOf(r,n.length);return~x?n+Rr(b,r,g,x)+r:n+b+r},Rr=(n,r,g,e)=>{let b="",x=0;do b+=n.substring(x,e)+g,x=e+r.length,e=n.indexOf(r,x);while(~e);return b+n.substring(x)},N=(n=wr)=>{let r=n?Mr:()=>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")}};O.exports=N();O.exports.createColors=N});function fr(n){return n}function Br(n){return n}import Or from"path";import{generateDts as Sr,logIsolatedDeclarationErrors as $r}from"bun-dts";var Er=Y(S(),1);var i=Y(S(),1),A=!1;function H(n){A=n??!1}class l{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=i.default.blue;mutedColor=i.default.dim;infoColor=i.default.cyan;warnColor=i.default.yellow;errorColor=i.default.red;defaultColor=i.default.white;progressFgColorMap={ESM:i.default.yellow,CJS:i.default.green,IIFE:i.default.magenta,DTS:i.default.blue};progressIdentifierBgColorMap={ESM:i.default.bgYellow,CJS:i.default.bgGreen,IIFE:i.default.bgMagenta,DTS:i.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!l.instance)l.instance=new l;return l.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:g,message:e,identifier:b,muted:x}){let s=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-g.length)),d=x?this.mutedColor(e):e,I=b?` ${r(i.default.black(` ${b} `))}`:"";return`${n(g)} ${s}${d}${I}`}output(n,r={},g=console.log){if(A||!this.shouldLog(r))return;if(r.verticalSpace)g("");if(g(n),r.verticalSpace)g("")}cli(n,r={}){let g=this.formatMessage({fgColor:this.cliColor,bgColor:i.default.bgBlue,label:this.labels.cli,message:n,identifier:r.identifier,muted:r.muted});this.output(g,r)}info(n,r={}){let g=this.formatMessage({fgColor:this.infoColor,bgColor:i.default.bgCyan,label:this.labels.info,message:n,identifier:r.identifier,muted:r.muted});this.output(g,r)}warn(n,r={}){let g=this.formatMessage({fgColor:this.warnColor,bgColor:i.default.bgYellow,label:this.labels.warn,message:n,identifier:r.identifier,muted:r.muted});this.output(g,r,console.warn)}error(n,r={}){let g=this.formatMessage({fgColor:this.errorColor,bgColor:i.default.bgRed,label:this.labels.error,message:n,identifier:r.identifier,muted:r.muted});this.output(g,r,console.error)}getProgressFgColor(n){for(let[r,g]of Object.entries(this.progressFgColorMap))if(n.includes(r))return g;return this.defaultColor}getProgressBgColor(n){for(let[r,g]of Object.entries(this.progressIdentifierBgColorMap))if(n.includes(r))return g;return i.default.bgWhite}progress(n,r,g={}){let e=this.getProgressFgColor(n),b=this.getProgressBgColor(n),x=this.formatMessage({fgColor:e,bgColor:b,label:n,message:r,identifier:g.identifier,muted:g.muted});this.output(x,g)}}var o=l.getInstance();class K extends Error{constructor(n){super(n);this.name="BunupError"}}class B extends K{constructor(n){super(n);this.name="BunupBuildError"}}import U from"fs/promises";import X,{normalize as Xr}from"path";function _(n,r){switch(n){case"esm":return h(r)?".js":".mjs";case"cjs":return h(r)?".cjs":".js";case"iife":return".global.js"}}function j(n,r){switch(n){case"esm":return h(r)?".d.ts":".d.mts";case"cjs":return h(r)?".d.cts":".d.ts";case"iife":return".global.d.ts"}}function q(n){return n.replace(X.extname(n),"")}function Q(n){return n.replace(/\\/g,"/")}function h(n){return n==="module"}function Z(n){if(!n)return[];return Array.from(new Set([...Object.keys(n.dependencies||{}),...Object.keys(n.peerDependencies||{})]))}function z(n,r=3){return n.split("/").slice(-r).join("/")}async function V(n,r){let g=X.join(n,r);try{await U.rm(g,{recursive:!0,force:!0})}catch(e){throw new B(`Failed to clean output directory: ${e}`)}await U.mkdir(g,{recursive:!0})}function $(n){if(typeof n==="string")return[{entry:n,outputBasePath:T(n)}];if(typeof n==="object"&&!Array.isArray(n))return Object.entries(n).map(([r,g])=>({entry:g,outputBasePath:r}));return n.map((r)=>({entry:r,outputBasePath:T(r)}))}function T(n){let r=Q(q(n)).split("/");return r.length>1?r.slice(1).join("/"):r.join("/")}function v(n,r){return{entry:`[dir]/${n}${r}`,chunk:`${n}-[hash].[ext]`,asset:`${n}-[name]-[hash].[ext]`}}import{loadConfig as hr}from"coffi";async function p(n){let{config:r,filepath:g}=await hr({name:"package",cwd:n,extensions:[".json"]});return{data:r,path:g}}function D(){return{type:"bunup",name:"use-client",hooks:{onBuildDone:async({output:n})=>{for(let r of n.files){let g=await Bun.file(r.fullPath).text();if(g.includes(''))g=g.replaceAll('',""),g=`
4
+ ${g}`;await Bun.write(r.fullPath,g)}}}}}var Ir={entry:[],format:["cjs"],outDir:"dist",target:"node",clean:!0};function k(n){let r={...Ir,...n};return{...r,plugins:[...r.plugins??[],D()]}}function J(n){let{minify:r,minifyWhitespace:g,minifyIdentifiers:e,minifySyntax:b}=n,x=r===!0;return{whitespace:g??x,identifiers:e??x,syntax:b??x}}function a(n,r){return r==="cjs"?n:void 0}function y(n){if(n===!0)return"inline";return typeof n==="string"?n:void 0}function P(n,r){return{...typeof r==="object"&&Object.keys(r).reduce((g,e)=>{let b=JSON.stringify(r[e]);return g[`process.env.${e}`]=b,g[`import.meta.env.${e}`]=b,g},{}),...n}}function rr(n,r){return n===void 0?r==="esm":n}function nr(n){return typeof n==="string"?n:void 0}function Lr(n){return Z(n).map((r)=>new RegExp(`^${r}($|\\/|\\\\)`))}function er(n,r){return typeof r==="string"?r===n:r.test(n)}function gr(n,r,g){let b=Lr(g).some((s)=>s.test(n))||r.external?.some((s)=>er(n,s)),x=r.noExternal?.some((s)=>er(n,s));return b&&!x}function br(n,r){return{name:"bunup:external-option-plugin",setup(g){g.onResolve({filter:/.*/},(e)=>{let b=e.path;if(gr(b,n,r))return{path:b,external:!0};return null})}}}function ir(n){if(!n)return[];return n.filter((r)=>r.type==="bun")}function xr(n){if(!n)return[];return n.filter((r)=>r.type==="bunup")}async function mr(n,r){if(!n)return;for(let g of n)if(g.hooks.onBuildStart)await g.hooks.onBuildStart(r)}async function sr(n,r,g,e){if(!n)return;for(let b of n)if(b.hooks.onBuildDone)await b.hooks.onBuildDone({options:r,output:g,meta:e})}async function Wr(n,r=process.cwd()){let g={files:[]},e=k(n);if(!e.entry||e.entry.length===0||!e.outDir)throw new B("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(e.clean)V(r,e.outDir);H(e.silent);let b=await p(r);if(b.data&&b.path)o.cli(`Using ${z(b.path,2)}`,{muted:!0,identifier:e.name,once:`${b.path}:${e.name}`});let x=xr(e.plugins);await mr(x,e);let s=$(e.entry),d=b.data?.type,I=[br(e,b.data),...ir(e.plugins).map((C)=>C.plugin)];if(!e.dtsOnly){let C=e.format.flatMap((t)=>s.map(async({entry:w,outputBasePath:M})=>{let c=e.outputExtension?.({format:t,packageType:d,options:e,entry:w}).js??_(t,d),f=await Bun.build({entrypoints:[`${r}/${w}`],format:t,naming:v(M,c),splitting:rr(e.splitting,t),bytecode:a(e.bytecode,t),define:P(e.define,e.env),minify:J(e),outdir:`${r}/${e.outDir}`,target:e.target,sourcemap:y(e.sourcemap),loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:nr(e.env),plugins:I,throw:!1});for(let m of f.logs){if(m.level==="error")throw console.log(`
5
+ `),console.log(m),console.log(`
6
+ `),new Error;if(m.level==="warning")o.warn(m.message);else if(m.level==="info")o.info(m.message)}for(let m of f.outputs){let u=tr(m.path,r);if(m.kind==="entry-point")o.progress(t.toUpperCase(),u,{identifier:e.name});g.files.push({fullPath:m.path,relativePathToRootDir:u,dts:!1,entry:w,outputBasePath:M,format:t})}}));await Promise.all(C)}if(e.dts===!0||typeof e.dts==="object"||e.dtsOnly){let C=typeof e.dts==="object"&&"resolve"in e.dts?e.dts.resolve:void 0,t=typeof e.dts==="object"&&"entry"in e.dts?e.dts.entry:void 0,M=(t?$(t):s).map(async({entry:c,outputBasePath:f})=>{let m=await Sr(c,{cwd:r,preferredTsConfigPath:e.preferredTsconfigPath,resolve:C});for(let u of e.format){let or=e.outputExtension?.({format:u,packageType:d,options:e,entry:c}).dts??j(u,d),L=Or.join(r,e.outDir,`${f}${or}`),W=tr(L,r);if(g.files.push({fullPath:L,relativePathToRootDir:W,dts:!0,entry:c,outputBasePath:f,format:u}),m.errors.length>0)$r(m.errors,{warnInsteadOfError:e.watch,shouldExit:!0});await Bun.write(L,m.dts),o.progress("DTS",W,{identifier:e.name})}});await Promise.all(M)}if(await sr(x,e,g,{packageJson:b}),e.onSuccess)await e.onSuccess(e)}function tr(n,r){return n.replace(`${r}/`,"")}export{Br as defineWorkspace,fr as defineConfig,Wr as build};
package/dist/plugins.cjs CHANGED
@@ -1,16 +1,16 @@
1
1
  // @bun @bun-cjs
2
- (function(exports, require, module, __filename, __dirname) {var K=Object.create;var{getPrototypeOf:Q,defineProperty:R,getOwnPropertyNames:N,getOwnPropertyDescriptor:V}=Object,a=Object.prototype.hasOwnProperty;var B=(t,r,n)=>{n=t!=null?K(Q(t)):{};let g=r||!t||!t.__esModule?R(n,"default",{value:t,enumerable:!0}):n;for(let s of N(t))if(!a.call(g,s))R(g,s,{get:()=>t[s],enumerable:!0});return g},Y=new WeakMap,Z=(t)=>{var r=Y.get(t),n;if(r)return r;if(r=R({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")N(t).map((g)=>!a.call(r,g)&&R(r,g,{get:()=>t[g],enumerable:!(n=V(t,g))||n.enumerable}));return Y.set(t,r),r},A=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports);var S=(t,r)=>{for(var n in r)R(t,n,{get:r[n],enumerable:!0,configurable:!0,set:(g)=>r[n]=()=>g})};var v=A((br,f)=>{var E=process||{},H=E.argv||[],O=E.env||{},G=!(!!O.NO_COLOR||H.includes("--no-color"))&&(!!O.FORCE_COLOR||H.includes("--color")||E.platform==="win32"||(E.stdout||{}).isTTY&&O.TERM!=="dumb"||!!O.CI),j=(t,r,n=t)=>(g)=>{let s=""+g,e=s.indexOf(r,t.length);return~e?t+F(s,r,n,e)+r:t+s+r},F=(t,r,n,g)=>{let s="",e=0;do s+=t.substring(e,g)+n,e=g+r.length,g=t.indexOf(r,e);while(~g);return s+t.substring(e)},U=(t=G)=>{let r=t?j:()=>String;return{isColorSupported:t,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")}};f.exports=U();f.exports.createColors=U});var gr={};S(gr,{shims:()=>T,report:()=>nr,exports:()=>P});module.exports=Z(gr);function T(){return{type:"bun",name:"shims",plugin:{name:"bunup:shims",setup(t){let r=t.config.target==="node"||t.config.target==="bun",n=t.config.format==="esm",g=t.config.format==="cjs";if(!r||!n&&!g)return;t.config.define={...t.config.define,...g&&{"import.meta.url":"importMetaUrl"}},t.onLoad({filter:/\.(js|ts|jsx|tsx|mts|cts)$/},async({path:s})=>{let e=await Bun.file(s).text(),m="";if(n&&(/\b__dirname\b/.test(e)||/\b__filename\b/.test(e)))m=`import { fileURLToPath } from 'url';
2
+ (function(exports, require, module, __filename, __dirname) {var D=Object.create;var{getPrototypeOf:q,defineProperty:C,getOwnPropertyNames:A,getOwnPropertyDescriptor:K}=Object,N=Object.prototype.hasOwnProperty;var w=(t,r,n)=>{n=t!=null?D(q(t)):{};let e=r||!t||!t.__esModule?C(n,"default",{value:t,enumerable:!0}):n;for(let g of A(t))if(!N.call(e,g))C(e,g,{get:()=>t[g],enumerable:!0});return e},Y=new WeakMap,Q=(t)=>{var r=Y.get(t),n;if(r)return r;if(r=C({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")A(t).map((e)=>!N.call(r,e)&&C(r,e,{get:()=>t[e],enumerable:!(n=K(t,e))||n.enumerable}));return Y.set(t,r),r},V=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports);var Z=(t,r)=>{for(var n in r)C(t,n,{get:r[n],enumerable:!0,configurable:!0,set:(e)=>r[n]=()=>e})};var E=V((br,f)=>{var v=process||{},a=v.argv||[],B=v.env||{},S=!(!!B.NO_COLOR||a.includes("--no-color"))&&(!!B.FORCE_COLOR||a.includes("--color")||v.platform==="win32"||(v.stdout||{}).isTTY&&B.TERM!=="dumb"||!!B.CI),T=(t,r,n=t)=>(e)=>{let g=""+e,s=g.indexOf(r,t.length);return~s?t+G(g,r,n,s)+r:t+g+r},G=(t,r,n,e)=>{let g="",s=0;do g+=t.substring(s,e)+n,s=e+r.length,e=t.indexOf(r,s);while(~e);return g+t.substring(s)},j=(t=S)=>{let r=t?T:()=>String;return{isColorSupported:t,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")}};f.exports=j();f.exports.createColors=j});var er={};Z(er,{shims:()=>y,report:()=>nr,exports:()=>P});module.exports=Q(er);function y(){return{type:"bun",name:"shims",plugin:{name:"bunup:shims",setup(t){let r=t.config.target==="node"||t.config.target==="bun",n=t.config.format==="esm",e=t.config.format==="cjs";if(!r||!n&&!e)return;t.config.define={...t.config.define,...e&&{"import.meta.url":"importMetaUrl"}},t.onLoad({filter:/\.(js|ts|jsx|tsx|mts|cts)$/},async({path:g})=>{let s=await Bun.file(g).text(),c="";if(n&&(/\b__dirname\b/.test(s)||/\b__filename\b/.test(s)))c=`import { fileURLToPath } from 'url';
3
3
  import { dirname } from 'path';
4
4
 
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const __dirname = dirname(__filename);
7
7
 
8
- `;if(g&&/\bimport\.meta\.url\b/.test(e))m=`import { pathToFileURL } from 'url';
8
+ `;if(e&&/\bimport\.meta\.url\b/.test(s))c=`import { pathToFileURL } from 'url';
9
9
 
10
10
  const importMetaUrl = pathToFileURL(__filename).href;
11
11
 
12
- `;if(!m)return;let o=e.split(`
13
- `),x=o[0],i=o.slice(1);return{contents:[x,m,...i].join(`
14
- `)}})}}}}var b=B(v()),y=!1;class l{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=b.default.blue;mutedColor=b.default.dim;infoColor=b.default.cyan;warnColor=b.default.yellow;errorColor=b.default.red;defaultColor=b.default.white;progressFgColorMap={ESM:b.default.yellow,CJS:b.default.green,IIFE:b.default.magenta,DTS:b.default.blue};progressIdentifierBgColorMap={ESM:b.default.bgYellow,CJS:b.default.bgGreen,IIFE:b.default.bgMagenta,DTS:b.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!l.instance)l.instance=new l;return l.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(t){if(!t?.once)return!0;if(this.loggedOnceMessages.has(t.once))return!1;return this.loggedOnceMessages.add(t.once),!0}formatMessage({fgColor:t,bgColor:r,label:n,message:g,identifier:s,muted:e}){let m=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-n.length)),o=e?this.mutedColor(g):g,x=s?` ${r(b.default.black(` ${s} `))}`:"";return`${t(n)} ${m}${o}${x}`}output(t,r={},n=console.log){if(y||!this.shouldLog(r))return;if(r.verticalSpace)n("");if(n(t),r.verticalSpace)n("")}cli(t,r={}){let n=this.formatMessage({fgColor:this.cliColor,bgColor:b.default.bgBlue,label:this.labels.cli,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r)}info(t,r={}){let n=this.formatMessage({fgColor:this.infoColor,bgColor:b.default.bgCyan,label:this.labels.info,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r)}warn(t,r={}){let n=this.formatMessage({fgColor:this.warnColor,bgColor:b.default.bgYellow,label:this.labels.warn,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r,console.warn)}error(t,r={}){let n=this.formatMessage({fgColor:this.errorColor,bgColor:b.default.bgRed,label:this.labels.error,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r,console.error)}getProgressFgColor(t){for(let[r,n]of Object.entries(this.progressFgColorMap))if(t.includes(r))return n;return this.defaultColor}getProgressBgColor(t){for(let[r,n]of Object.entries(this.progressIdentifierBgColorMap))if(t.includes(r))return n;return b.default.bgWhite}progress(t,r,n={}){let g=this.getProgressFgColor(t),s=this.getProgressBgColor(t),e=this.formatMessage({fgColor:g,bgColor:s,label:t,message:r,identifier:n.identifier,muted:n.muted});this.output(e,n)}}function X(t,r,n){let g={};for(let o of t){let x=o.header.length,i=r.map((c)=>c[o.header]?.length||0),u=n?n[o.header]?.length||0:0;g[o.header]=Math.max(x,...i,u)}let s=(o,x,i)=>{return i==="left"?o.padEnd(x):o.padStart(x)},e=t.map((o)=>s(o.header,g[o.header],o.align)).join(b.default.gray(" | "));console.log(b.default.gray(e));let m=t.map((o)=>"-".repeat(g[o.header])).join(" | ");console.log(b.default.gray(m));for(let o of r){let x=t.map((i)=>{let u=o[i.header]||"",c=s(u,g[i.header],i.align);return i.color?i.color(c):c}).join(b.default.gray(" | "));console.log(x)}if(console.log(b.default.gray(m)),n){let o=t.map((x)=>{let i=n[x.header]||"";return s(i,g[x.header],x.align)}).join(b.default.gray(" | "));console.log(o)}}var L=l.getInstance();var $=B(require("path"));var p=B(v());function J(t){let r=t.match(/{\n(\s+)/);if(!r)return 2;return r[1].length}function C(t){if(t===0)return"0 B";let r=["B","KB","MB","GB"],n=Math.floor(Math.log(t)/Math.log(1024));if(n===0)return`${t} ${r[n]}`;return`${(t/1024**n).toFixed(2)} ${r[n]}`}function D(t){let r=$.normalize(t).replace(/\\/g,"/");return r=r.replace(/^[a-zA-Z]:\//,""),r=r.replace(/^\/+/,""),r=r.replace(/\/+/g,"/"),r}function q(t,r){let n=t.endsWith(`
12
+ `;if(!c)return;let o=s.split(`
13
+ `),x=o[0],i=o.slice(1);return{contents:[x,c,...i].join(`
14
+ `)}})}}}}var b=w(E()),F=!1;class l{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=b.default.blue;mutedColor=b.default.dim;infoColor=b.default.cyan;warnColor=b.default.yellow;errorColor=b.default.red;defaultColor=b.default.white;progressFgColorMap={ESM:b.default.yellow,CJS:b.default.green,IIFE:b.default.magenta,DTS:b.default.blue};progressIdentifierBgColorMap={ESM:b.default.bgYellow,CJS:b.default.bgGreen,IIFE:b.default.bgMagenta,DTS:b.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!l.instance)l.instance=new l;return l.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(t){if(!t?.once)return!0;if(this.loggedOnceMessages.has(t.once))return!1;return this.loggedOnceMessages.add(t.once),!0}formatMessage({fgColor:t,bgColor:r,label:n,message:e,identifier:g,muted:s}){let c=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-n.length)),o=s?this.mutedColor(e):e,x=g?` ${r(b.default.black(` ${g} `))}`:"";return`${t(n)} ${c}${o}${x}`}output(t,r={},n=console.log){if(F||!this.shouldLog(r))return;if(r.verticalSpace)n("");if(n(t),r.verticalSpace)n("")}cli(t,r={}){let n=this.formatMessage({fgColor:this.cliColor,bgColor:b.default.bgBlue,label:this.labels.cli,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r)}info(t,r={}){let n=this.formatMessage({fgColor:this.infoColor,bgColor:b.default.bgCyan,label:this.labels.info,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r)}warn(t,r={}){let n=this.formatMessage({fgColor:this.warnColor,bgColor:b.default.bgYellow,label:this.labels.warn,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r,console.warn)}error(t,r={}){let n=this.formatMessage({fgColor:this.errorColor,bgColor:b.default.bgRed,label:this.labels.error,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r,console.error)}getProgressFgColor(t){for(let[r,n]of Object.entries(this.progressFgColorMap))if(t.includes(r))return n;return this.defaultColor}getProgressBgColor(t){for(let[r,n]of Object.entries(this.progressIdentifierBgColorMap))if(t.includes(r))return n;return b.default.bgWhite}progress(t,r,n={}){let e=this.getProgressFgColor(t),g=this.getProgressBgColor(t),s=this.formatMessage({fgColor:e,bgColor:g,label:t,message:r,identifier:n.identifier,muted:n.muted});this.output(s,n)}}function H(t,r,n){let e={};for(let o of t){let x=o.header.length,i=r.map((m)=>m[o.header]?.length||0),h=n?n[o.header]?.length||0:0;e[o.header]=Math.max(x,...i,h)}let g=(o,x,i)=>{return i==="left"?o.padEnd(x):o.padStart(x)},s=t.map((o)=>g(o.header,e[o.header],o.align)).join(b.default.gray(" | "));console.log(b.default.gray(s));let c=t.map((o)=>"-".repeat(e[o.header])).join(" | ");console.log(b.default.gray(c));for(let o of r){let x=t.map((i)=>{let h=o[i.header]||"",m=g(h,e[i.header],i.align);return i.color?i.color(m):m}).join(b.default.gray(" | "));console.log(x)}if(console.log(b.default.gray(c)),n){let o=t.map((x)=>{let i=n[x.header]||"";return g(i,e[x.header],x.align)}).join(b.default.gray(" | "));console.log(o)}}var L=l.getInstance();var $=w(require("path"));var p=w(E());function J(t){let r=t.match(/{\n(\s+)/);if(!r)return 2;return r[1].length}function R(t){if(t===0)return"0 B";let r=["B","KB","MB","GB"],n=Math.floor(Math.log(t)/Math.log(1024));if(n===0)return`${t} ${r[n]}`;return`${(t/1024**n).toFixed(2)} ${r[n]}`}function U(t){let r=$.normalize(t).replace(/\\/g,"/");return r=r.replace(/^[a-zA-Z]:\//,""),r=r.replace(/^\/+/,""),r=r.replace(/\/+/g,"/"),r}function X(t,r){let n=t.endsWith(`
15
15
  `);return JSON.stringify(r,null,J(t))+(n?`
16
- `:"")}function P(){return{type:"bunup",name:"exports",hooks:{onBuildDone:async({output:t,options:r,meta:n})=>{if(!n.packageJson.path||!n.packageJson.data)return;try{let g=await Bun.file(n.packageJson.path).text(),s=JSON.parse(g),{exportsField:e,entryPoints:m}=k(t.files),o=Array.isArray(s.files)?[...new Set([...s.files,r.outDir])]:[r.outDir],i={...s.exports||{}};for(let[c,M]of Object.entries(e))i[c]={...i[c]||{},...M};let u={name:s.name,description:s.description,version:s.version,type:s.type,private:s.private,files:o,...m,exports:i};for(let c in s)if(Object.prototype.hasOwnProperty.call(s,c)&&!Object.prototype.hasOwnProperty.call(u,c))u[c]=s[c];await Bun.write(n.packageJson.path,q(g,u)),L.cli("Updated package.json with exports")}catch(g){L.error("Failed to update package.json")}}}}}function k(t){let r={},n={};for(let g of t){let s=tr(g.format,g.dts),e=`./${D(g.relativePathToRootDir)}`,m=z(g.outputBasePath);r[m]={...r[m],[s]:e};for(let o of Object.keys(r["."]??{}))n[rr(o,g.dts)]=r["."][o]}return{exportsField:r,entryPoints:n}}function z(t){let r=t.split("/");if(r.length===1&&r[0]==="index")return".";return`./${r.filter((n)=>n!=="index").join("/")}`}function rr(t,r){return r?"types":t==="require"?"main":"module"}function tr(t,r){return r?"types":t==="esm"?"import":"require"}var w=B(v());function nr(t={}){let{maxBundleSize:r,gzip:n=!0}=t;return{type:"bunup",name:"report",hooks:{onBuildDone:async({options:g,output:s})=>{if(g.watch)return;let e=await Promise.all(s.files.map(async(h)=>{let d=h.relativePathToRootDir,_=Bun.file(h.fullPath).size,I,W;if(n)I=Bun.gzipSync(new Uint8Array(await Bun.file(h.fullPath).arrayBuffer())).length,W=C(I);return{name:d,size:_,formattedSize:C(_),gzipSize:I,formattedGzipSize:W}})),m=e.reduce((h,d)=>h+d.size,0),o=C(m),x,i;if(n)x=e.reduce((h,d)=>h+(d.gzipSize||0),0),i=C(x);let u=[{header:"File",align:"left",color:w.default.blue},{header:"Size",align:"right",color:w.default.green}];if(n)u.push({header:"Gzip",align:"right",color:w.default.magenta});let c=e.map((h)=>{let d={File:h.name,Size:h.formattedSize};if(n&&h.formattedGzipSize)d.Gzip=h.formattedGzipSize;return d}),M={File:"Total",Size:o};if(n&&i)M.Gzip=i;if(console.log(""),X(u,c,M),r&&m>r)console.log(""),console.log(w.default.red(`Your bundle size of ${o} exceeds the configured limit of ${C(r)}`));console.log("")}}}}})
16
+ `:"")}function P(){return{type:"bunup",name:"exports",hooks:{onBuildDone:async({output:t,options:r,meta:n})=>{if(!n.packageJson.path||!n.packageJson.data)return;try{let e=await Bun.file(n.packageJson.path).text(),g=JSON.parse(e),{exportsField:s,entryPoints:c}=k(t.files),o=Array.isArray(g.files)?[...new Set([...g.files,r.outDir])]:[r.outDir],i={...g.exports||{}};for(let[m,M]of Object.entries(s))i[m]={...i[m]||{},...M};let h={name:g.name,description:g.description,version:g.version,type:g.type,private:g.private,files:o,...c,exports:i};for(let m in g)if(Object.prototype.hasOwnProperty.call(g,m)&&!Object.prototype.hasOwnProperty.call(h,m))h[m]=g[m];await Bun.write(n.packageJson.path,X(e,h)),L.cli("Updated package.json with exports")}catch(e){L.error("Failed to update package.json")}}}}}function k(t){let r={},n={};for(let e of t){let g=tr(e.format,e.dts),s=`./${U(e.relativePathToRootDir)}`,c=z(e.outputBasePath);r[c]={...r[c],[g]:s};for(let o of Object.keys(r["."]??{}))n[rr(o,e.dts)]=r["."][o]}return{exportsField:r,entryPoints:n}}function z(t){let r=t.split("/");if(r.length===1&&r[0]==="index")return".";return`./${r.filter((n)=>n!=="index").join("/")}`}function rr(t,r){return r?"types":t==="require"?"main":"module"}function tr(t,r){return r?"types":t==="esm"?"import":"require"}var O=w(E());function nr(t={}){let{maxBundleSize:r,gzip:n=!0}=t;return{type:"bunup",name:"report",hooks:{onBuildDone:async({options:e,output:g})=>{if(e.watch)return;let s=await Promise.all(g.files.map(async(u)=>{let d=u.relativePathToRootDir,_=Bun.file(u.fullPath).size,I,W;if(n)I=Bun.gzipSync(new Uint8Array(await Bun.file(u.fullPath).arrayBuffer())).length,W=R(I);return{name:d,size:_,formattedSize:R(_),gzipSize:I,formattedGzipSize:W}})),c=s.reduce((u,d)=>u+d.size,0),o=R(c),x,i;if(n)x=s.reduce((u,d)=>u+(d.gzipSize||0),0),i=R(x);let h=[{header:"File",align:"left",color:O.default.blue},{header:"Size",align:"right",color:O.default.green}];if(n)h.push({header:"Gzip",align:"right",color:O.default.magenta});let m=s.map((u)=>{let d={File:u.name,Size:u.formattedSize};if(n&&u.formattedGzipSize)d.Gzip=u.formattedGzipSize;return d}),M={File:"Total",Size:o};if(n&&i)M.Gzip=i;if(console.log(""),H(h,m,M),r&&c>r)console.log(""),console.log(O.default.red(`Your bundle size of ${o} exceeds the configured limit of ${R(r)}`));console.log("")}}}}})
package/dist/plugins.js CHANGED
@@ -1,16 +1,16 @@
1
1
  // @bun
2
- var U=Object.create;var{getPrototypeOf:X,defineProperty:_,getOwnPropertyNames:D}=Object;var q=Object.prototype.hasOwnProperty;var L=(t,r,n)=>{n=t!=null?U(X(t)):{};let g=r||!t||!t.__esModule?_(n,"default",{value:t,enumerable:!0}):n;for(let s of D(t))if(!q.call(g,s))_(g,s,{get:()=>t[s],enumerable:!0});return g};var K=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports);var O=K((z,I)=>{var B=process||{},W=B.argv||[],M=B.env||{},Q=!(!!M.NO_COLOR||W.includes("--no-color"))&&(!!M.FORCE_COLOR||W.includes("--color")||B.platform==="win32"||(B.stdout||{}).isTTY&&M.TERM!=="dumb"||!!M.CI),V=(t,r,n=t)=>(g)=>{let s=""+g,e=s.indexOf(r,t.length);return~e?t+Z(s,r,n,e)+r:t+s+r},Z=(t,r,n,g)=>{let s="",e=0;do s+=t.substring(e,g)+n,e=g+r.length,g=t.indexOf(r,e);while(~g);return s+t.substring(e)},Y=(t=Q)=>{let r=t?V:()=>String;return{isColorSupported:t,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")}};I.exports=Y();I.exports.createColors=Y});function P(){return{type:"bun",name:"shims",plugin:{name:"bunup:shims",setup(t){let r=t.config.target==="node"||t.config.target==="bun",n=t.config.format==="esm",g=t.config.format==="cjs";if(!r||!n&&!g)return;t.config.define={...t.config.define,...g&&{"import.meta.url":"importMetaUrl"}},t.onLoad({filter:/\.(js|ts|jsx|tsx|mts|cts)$/},async({path:s})=>{let e=await Bun.file(s).text(),m="";if(n&&(/\b__dirname\b/.test(e)||/\b__filename\b/.test(e)))m=`import { fileURLToPath } from 'url';
2
+ var j=Object.create;var{getPrototypeOf:H,defineProperty:_,getOwnPropertyNames:U}=Object;var X=Object.prototype.hasOwnProperty;var L=(t,r,n)=>{n=t!=null?j(H(t)):{};let e=r||!t||!t.__esModule?_(n,"default",{value:t,enumerable:!0}):n;for(let g of U(t))if(!X.call(e,g))_(e,g,{get:()=>t[g],enumerable:!0});return e};var D=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports);var B=D((z,I)=>{var w=process||{},W=w.argv||[],M=w.env||{},q=!(!!M.NO_COLOR||W.includes("--no-color"))&&(!!M.FORCE_COLOR||W.includes("--color")||w.platform==="win32"||(w.stdout||{}).isTTY&&M.TERM!=="dumb"||!!M.CI),K=(t,r,n=t)=>(e)=>{let g=""+e,s=g.indexOf(r,t.length);return~s?t+Q(g,r,n,s)+r:t+g+r},Q=(t,r,n,e)=>{let g="",s=0;do g+=t.substring(s,e)+n,s=e+r.length,e=t.indexOf(r,s);while(~e);return g+t.substring(s)},Y=(t=q)=>{let r=t?K:()=>String;return{isColorSupported:t,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")}};I.exports=Y();I.exports.createColors=Y});function P(){return{type:"bun",name:"shims",plugin:{name:"bunup:shims",setup(t){let r=t.config.target==="node"||t.config.target==="bun",n=t.config.format==="esm",e=t.config.format==="cjs";if(!r||!n&&!e)return;t.config.define={...t.config.define,...e&&{"import.meta.url":"importMetaUrl"}},t.onLoad({filter:/\.(js|ts|jsx|tsx|mts|cts)$/},async({path:g})=>{let s=await Bun.file(g).text(),c="";if(n&&(/\b__dirname\b/.test(s)||/\b__filename\b/.test(s)))c=`import { fileURLToPath } from 'url';
3
3
  import { dirname } from 'path';
4
4
 
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const __dirname = dirname(__filename);
7
7
 
8
- `;if(g&&/\bimport\.meta\.url\b/.test(e))m=`import { pathToFileURL } from 'url';
8
+ `;if(e&&/\bimport\.meta\.url\b/.test(s))c=`import { pathToFileURL } from 'url';
9
9
 
10
10
  const importMetaUrl = pathToFileURL(__filename).href;
11
11
 
12
- `;if(!m)return;let o=e.split(`
13
- `),x=o[0],i=o.slice(1);return{contents:[x,m,...i].join(`
14
- `)}})}}}}var b=L(O(),1),A=!1;class l{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=b.default.blue;mutedColor=b.default.dim;infoColor=b.default.cyan;warnColor=b.default.yellow;errorColor=b.default.red;defaultColor=b.default.white;progressFgColorMap={ESM:b.default.yellow,CJS:b.default.green,IIFE:b.default.magenta,DTS:b.default.blue};progressIdentifierBgColorMap={ESM:b.default.bgYellow,CJS:b.default.bgGreen,IIFE:b.default.bgMagenta,DTS:b.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!l.instance)l.instance=new l;return l.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(t){if(!t?.once)return!0;if(this.loggedOnceMessages.has(t.once))return!1;return this.loggedOnceMessages.add(t.once),!0}formatMessage({fgColor:t,bgColor:r,label:n,message:g,identifier:s,muted:e}){let m=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-n.length)),o=e?this.mutedColor(g):g,x=s?` ${r(b.default.black(` ${s} `))}`:"";return`${t(n)} ${m}${o}${x}`}output(t,r={},n=console.log){if(A||!this.shouldLog(r))return;if(r.verticalSpace)n("");if(n(t),r.verticalSpace)n("")}cli(t,r={}){let n=this.formatMessage({fgColor:this.cliColor,bgColor:b.default.bgBlue,label:this.labels.cli,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r)}info(t,r={}){let n=this.formatMessage({fgColor:this.infoColor,bgColor:b.default.bgCyan,label:this.labels.info,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r)}warn(t,r={}){let n=this.formatMessage({fgColor:this.warnColor,bgColor:b.default.bgYellow,label:this.labels.warn,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r,console.warn)}error(t,r={}){let n=this.formatMessage({fgColor:this.errorColor,bgColor:b.default.bgRed,label:this.labels.error,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r,console.error)}getProgressFgColor(t){for(let[r,n]of Object.entries(this.progressFgColorMap))if(t.includes(r))return n;return this.defaultColor}getProgressBgColor(t){for(let[r,n]of Object.entries(this.progressIdentifierBgColorMap))if(t.includes(r))return n;return b.default.bgWhite}progress(t,r,n={}){let g=this.getProgressFgColor(t),s=this.getProgressBgColor(t),e=this.formatMessage({fgColor:g,bgColor:s,label:t,message:r,identifier:n.identifier,muted:n.muted});this.output(e,n)}}function N(t,r,n){let g={};for(let o of t){let x=o.header.length,i=r.map((c)=>c[o.header]?.length||0),u=n?n[o.header]?.length||0:0;g[o.header]=Math.max(x,...i,u)}let s=(o,x,i)=>{return i==="left"?o.padEnd(x):o.padStart(x)},e=t.map((o)=>s(o.header,g[o.header],o.align)).join(b.default.gray(" | "));console.log(b.default.gray(e));let m=t.map((o)=>"-".repeat(g[o.header])).join(" | ");console.log(b.default.gray(m));for(let o of r){let x=t.map((i)=>{let u=o[i.header]||"",c=s(u,g[i.header],i.align);return i.color?i.color(c):c}).join(b.default.gray(" | "));console.log(x)}if(console.log(b.default.gray(m)),n){let o=t.map((x)=>{let i=n[x.header]||"";return s(i,g[x.header],x.align)}).join(b.default.gray(" | "));console.log(o)}}var E=l.getInstance();import or,{normalize as T}from"path";var S=L(O(),1);function G(t){let r=t.match(/{\n(\s+)/);if(!r)return 2;return r[1].length}function C(t){if(t===0)return"0 B";let r=["B","KB","MB","GB"],n=Math.floor(Math.log(t)/Math.log(1024));if(n===0)return`${t} ${r[n]}`;return`${(t/1024**n).toFixed(2)} ${r[n]}`}function a(t){let r=T(t).replace(/\\/g,"/");return r=r.replace(/^[a-zA-Z]:\//,""),r=r.replace(/^\/+/,""),r=r.replace(/\/+/g,"/"),r}function H(t,r){let n=t.endsWith(`
15
- `);return JSON.stringify(r,null,G(t))+(n?`
16
- `:"")}function mr(){return{type:"bunup",name:"exports",hooks:{onBuildDone:async({output:t,options:r,meta:n})=>{if(!n.packageJson.path||!n.packageJson.data)return;try{let g=await Bun.file(n.packageJson.path).text(),s=JSON.parse(g),{exportsField:e,entryPoints:m}=j(t.files),o=Array.isArray(s.files)?[...new Set([...s.files,r.outDir])]:[r.outDir],i={...s.exports||{}};for(let[c,w]of Object.entries(e))i[c]={...i[c]||{},...w};let u={name:s.name,description:s.description,version:s.version,type:s.type,private:s.private,files:o,...m,exports:i};for(let c in s)if(Object.prototype.hasOwnProperty.call(s,c)&&!Object.prototype.hasOwnProperty.call(u,c))u[c]=s[c];await Bun.write(n.packageJson.path,H(g,u)),E.cli("Updated package.json with exports")}catch(g){E.error("Failed to update package.json")}}}}}function j(t){let r={},n={};for(let g of t){let s=p(g.format,g.dts),e=`./${a(g.relativePathToRootDir)}`,m=F(g.outputBasePath);r[m]={...r[m],[s]:e};for(let o of Object.keys(r["."]??{}))n[y(o,g.dts)]=r["."][o]}return{exportsField:r,entryPoints:n}}function F(t){let r=t.split("/");if(r.length===1&&r[0]==="index")return".";return`./${r.filter((n)=>n!=="index").join("/")}`}function y(t,r){return r?"types":t==="require"?"main":"module"}function p(t,r){return r?"types":t==="esm"?"import":"require"}var R=L(O(),1);function dr(t={}){let{maxBundleSize:r,gzip:n=!0}=t;return{type:"bunup",name:"report",hooks:{onBuildDone:async({options:g,output:s})=>{if(g.watch)return;let e=await Promise.all(s.files.map(async(h)=>{let d=h.relativePathToRootDir,f=Bun.file(h.fullPath).size,v,$;if(n)v=Bun.gzipSync(new Uint8Array(await Bun.file(h.fullPath).arrayBuffer())).length,$=C(v);return{name:d,size:f,formattedSize:C(f),gzipSize:v,formattedGzipSize:$}})),m=e.reduce((h,d)=>h+d.size,0),o=C(m),x,i;if(n)x=e.reduce((h,d)=>h+(d.gzipSize||0),0),i=C(x);let u=[{header:"File",align:"left",color:R.default.blue},{header:"Size",align:"right",color:R.default.green}];if(n)u.push({header:"Gzip",align:"right",color:R.default.magenta});let c=e.map((h)=>{let d={File:h.name,Size:h.formattedSize};if(n&&h.formattedGzipSize)d.Gzip=h.formattedGzipSize;return d}),w={File:"Total",Size:o};if(n&&i)w.Gzip=i;if(console.log(""),N(u,c,w),r&&m>r)console.log(""),console.log(R.default.red(`Your bundle size of ${o} exceeds the configured limit of ${C(r)}`));console.log("")}}}}export{P as shims,dr as report,mr as exports};
12
+ `;if(!c)return;let o=s.split(`
13
+ `),x=o[0],i=o.slice(1);return{contents:[x,c,...i].join(`
14
+ `)}})}}}}var b=L(B(),1),V=!1;class l{static instance;loggedOnceMessages=new Set;MAX_LABEL_LENGTH=3;cliColor=b.default.blue;mutedColor=b.default.dim;infoColor=b.default.cyan;warnColor=b.default.yellow;errorColor=b.default.red;defaultColor=b.default.white;progressFgColorMap={ESM:b.default.yellow,CJS:b.default.green,IIFE:b.default.magenta,DTS:b.default.blue};progressIdentifierBgColorMap={ESM:b.default.bgYellow,CJS:b.default.bgGreen,IIFE:b.default.bgMagenta,DTS:b.default.bgBlue};labels={cli:"CLI",info:"INFO",warn:"WARN",error:"ERROR"};constructor(){}static getInstance(){if(!l.instance)l.instance=new l;return l.instance}dispose(){this.loggedOnceMessages.clear()}shouldLog(t){if(!t?.once)return!0;if(this.loggedOnceMessages.has(t.once))return!1;return this.loggedOnceMessages.add(t.once),!0}formatMessage({fgColor:t,bgColor:r,label:n,message:e,identifier:g,muted:s}){let c=" ".repeat(Math.max(0,this.MAX_LABEL_LENGTH-n.length)),o=s?this.mutedColor(e):e,x=g?` ${r(b.default.black(` ${g} `))}`:"";return`${t(n)} ${c}${o}${x}`}output(t,r={},n=console.log){if(V||!this.shouldLog(r))return;if(r.verticalSpace)n("");if(n(t),r.verticalSpace)n("")}cli(t,r={}){let n=this.formatMessage({fgColor:this.cliColor,bgColor:b.default.bgBlue,label:this.labels.cli,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r)}info(t,r={}){let n=this.formatMessage({fgColor:this.infoColor,bgColor:b.default.bgCyan,label:this.labels.info,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r)}warn(t,r={}){let n=this.formatMessage({fgColor:this.warnColor,bgColor:b.default.bgYellow,label:this.labels.warn,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r,console.warn)}error(t,r={}){let n=this.formatMessage({fgColor:this.errorColor,bgColor:b.default.bgRed,label:this.labels.error,message:t,identifier:r.identifier,muted:r.muted});this.output(n,r,console.error)}getProgressFgColor(t){for(let[r,n]of Object.entries(this.progressFgColorMap))if(t.includes(r))return n;return this.defaultColor}getProgressBgColor(t){for(let[r,n]of Object.entries(this.progressIdentifierBgColorMap))if(t.includes(r))return n;return b.default.bgWhite}progress(t,r,n={}){let e=this.getProgressFgColor(t),g=this.getProgressBgColor(t),s=this.formatMessage({fgColor:e,bgColor:g,label:t,message:r,identifier:n.identifier,muted:n.muted});this.output(s,n)}}function A(t,r,n){let e={};for(let o of t){let x=o.header.length,i=r.map((m)=>m[o.header]?.length||0),h=n?n[o.header]?.length||0:0;e[o.header]=Math.max(x,...i,h)}let g=(o,x,i)=>{return i==="left"?o.padEnd(x):o.padStart(x)},s=t.map((o)=>g(o.header,e[o.header],o.align)).join(b.default.gray(" | "));console.log(b.default.gray(s));let c=t.map((o)=>"-".repeat(e[o.header])).join(" | ");console.log(b.default.gray(c));for(let o of r){let x=t.map((i)=>{let h=o[i.header]||"",m=g(h,e[i.header],i.align);return i.color?i.color(m):m}).join(b.default.gray(" | "));console.log(x)}if(console.log(b.default.gray(c)),n){let o=t.map((x)=>{let i=n[x.header]||"";return g(i,e[x.header],x.align)}).join(b.default.gray(" | "));console.log(o)}}var v=l.getInstance();import or,{normalize as y}from"path";var Z=L(B(),1);function S(t){let r=t.match(/{\n(\s+)/);if(!r)return 2;return r[1].length}function R(t){if(t===0)return"0 B";let r=["B","KB","MB","GB"],n=Math.floor(Math.log(t)/Math.log(1024));if(n===0)return`${t} ${r[n]}`;return`${(t/1024**n).toFixed(2)} ${r[n]}`}function N(t){let r=y(t).replace(/\\/g,"/");return r=r.replace(/^[a-zA-Z]:\//,""),r=r.replace(/^\/+/,""),r=r.replace(/\/+/g,"/"),r}function a(t,r){let n=t.endsWith(`
15
+ `);return JSON.stringify(r,null,S(t))+(n?`
16
+ `:"")}function cr(){return{type:"bunup",name:"exports",hooks:{onBuildDone:async({output:t,options:r,meta:n})=>{if(!n.packageJson.path||!n.packageJson.data)return;try{let e=await Bun.file(n.packageJson.path).text(),g=JSON.parse(e),{exportsField:s,entryPoints:c}=T(t.files),o=Array.isArray(g.files)?[...new Set([...g.files,r.outDir])]:[r.outDir],i={...g.exports||{}};for(let[m,O]of Object.entries(s))i[m]={...i[m]||{},...O};let h={name:g.name,description:g.description,version:g.version,type:g.type,private:g.private,files:o,...c,exports:i};for(let m in g)if(Object.prototype.hasOwnProperty.call(g,m)&&!Object.prototype.hasOwnProperty.call(h,m))h[m]=g[m];await Bun.write(n.packageJson.path,a(e,h)),v.cli("Updated package.json with exports")}catch(e){v.error("Failed to update package.json")}}}}}function T(t){let r={},n={};for(let e of t){let g=p(e.format,e.dts),s=`./${N(e.relativePathToRootDir)}`,c=G(e.outputBasePath);r[c]={...r[c],[g]:s};for(let o of Object.keys(r["."]??{}))n[F(o,e.dts)]=r["."][o]}return{exportsField:r,entryPoints:n}}function G(t){let r=t.split("/");if(r.length===1&&r[0]==="index")return".";return`./${r.filter((n)=>n!=="index").join("/")}`}function F(t,r){return r?"types":t==="require"?"main":"module"}function p(t,r){return r?"types":t==="esm"?"import":"require"}var C=L(B(),1);function dr(t={}){let{maxBundleSize:r,gzip:n=!0}=t;return{type:"bunup",name:"report",hooks:{onBuildDone:async({options:e,output:g})=>{if(e.watch)return;let s=await Promise.all(g.files.map(async(u)=>{let d=u.relativePathToRootDir,f=Bun.file(u.fullPath).size,E,$;if(n)E=Bun.gzipSync(new Uint8Array(await Bun.file(u.fullPath).arrayBuffer())).length,$=R(E);return{name:d,size:f,formattedSize:R(f),gzipSize:E,formattedGzipSize:$}})),c=s.reduce((u,d)=>u+d.size,0),o=R(c),x,i;if(n)x=s.reduce((u,d)=>u+(d.gzipSize||0),0),i=R(x);let h=[{header:"File",align:"left",color:C.default.blue},{header:"Size",align:"right",color:C.default.green}];if(n)h.push({header:"Gzip",align:"right",color:C.default.magenta});let m=s.map((u)=>{let d={File:u.name,Size:u.formattedSize};if(n&&u.formattedGzipSize)d.Gzip=u.formattedGzipSize;return d}),O={File:"Total",Size:o};if(n&&i)O.Gzip=i;if(console.log(""),A(h,m,O),r&&c>r)console.log(""),console.log(C.default.red(`Your bundle size of ${o} exceeds the configured limit of ${R(r)}`));console.log("")}}}}export{P as shims,dr as report,cr as exports};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bunup",
3
3
  "description": "⚡ A blazing-fast build tool for your libraries built with Bun.",
4
- "version": "0.8.0",
4
+ "version": "0.8.2",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",