bunup 0.7.4 → 0.7.6
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 +1 -1
- package/dist/cli.js +17 -53
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/plugins.cjs +7 -7
- package/dist/plugins.d.cts +1 -2
- package/dist/plugins.d.ts +1 -2
- package/dist/plugins.js +7 -7
- package/package.json +24 -22
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ Bunup is the **blazing-fast build tool** for TypeScript and JavaScript libraries
|
|
|
31
31
|
- 🔥 **Bytecode Generation**: Faster startups by compiling to Bun bytecode—perfect for CLIs.
|
|
32
32
|
- 📦 **[Workspace](https://bunup.dev/docs/guide/workspaces) Support**: Build multiple packages within one config file and command.
|
|
33
33
|
- 🔄 **Tsup Familiarity**: Familiar tsup-like CLI and config.
|
|
34
|
-
- 🎯 **Bun Target**: First-class bundling support for libraries
|
|
34
|
+
- 🎯 **Bun Target**: First-class bundling support for libraries that are intended to run in Bun.
|
|
35
35
|
|
|
36
36
|
## 📚 Documentation
|
|
37
37
|
|
package/dist/cli.js
CHANGED
|
@@ -1,57 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var
|
|
4
|
-
`),
|
|
5
|
-
`);else console.error(
|
|
6
|
-
`)
|
|
7
|
-
`),console.log(
|
|
8
|
-
`),new Error;if(
|
|
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")}
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
`),B.success(`Created ${O.root}/${q}`)}}let X=await F({message:"Add another workspace?",initialValue:!1});if(h(X))break;_=X}}}let d=[{value:"report",label:"Report",hint:"Logs bundle size report after build (recommended)",configGenerator:()=>"report()",defaultEnabled:!0},{value:"exports",label:"Exports",hint:"Generates exports field in package.json after build (recommended)",configGenerator:()=>"exports()",defaultEnabled:!0}],g=await dt({message:"Select plugins to use (optional):",options:d,required:!1,initialValues:d.filter((f)=>f.defaultEnabled).map((f)=>f.value)});if(h(g))k("Initialization cancelled"),process.exit(1);if(c&&x.length>0)await _t(x,a,String(b),p,g,d,t||void 0);else await Tt(String(s),a,String(b),p,g,d,t||void 0);await Zt(),B.success("Configuration generated"),await Xt(i,n),B.success("package.json updated");let C=[{title:"Installing bunup",task:async()=>{return await Qt(i,r),"Bunup installed"}}];try{await zt(C)}catch(f){B.error(`Error: ${f instanceof Error?f.message:String(f)}`),process.exit(1)}let w=xe(r.agent,"run",["dev"]),I=xe(r.agent,"run",["build"]);Yt(`
|
|
19
|
-
${m.default.bold("\uD83D\uDE80 Happy building with Bunup!")}
|
|
20
|
-
|
|
21
|
-
Run these commands to get started:
|
|
22
|
-
${m.default.cyan(we(I))} - ${m.default.gray("Build your project")}
|
|
23
|
-
${m.default.cyan(we(w))} - ${m.default.gray("Build in watch mode")}
|
|
24
|
-
|
|
25
|
-
${m.default.dim("Edit")} ${m.default.underline("bunup.config.ts")} ${m.default.dim("to customize your build.")}
|
|
26
|
-
`)}async function Tt(e,t,r,i,n,s,o=L.join(process.cwd(),"bunup.config.ts")){let a=lt(n,s),b=`import { defineConfig } from 'bunup';
|
|
27
|
-
${n.length>0?`import { ${n.join(", ")} } from 'bunup/plugins';
|
|
28
|
-
`:""}
|
|
29
|
-
export default defineConfig({
|
|
30
|
-
entry: '${e}',
|
|
31
|
-
format: [${t.map((p)=>`'${p}'`).join(", ")}],
|
|
32
|
-
outDir: '${r}',${i?`
|
|
33
|
-
dts: true,`:""}${a?`
|
|
34
|
-
plugins: [${a}],`:""}
|
|
35
|
-
});
|
|
36
|
-
`;await j.writeFile(o,b)}async function _t(e,t,r,i,n,s,o=L.join(process.cwd(),"bunup.config.ts")){let a=lt(n,s),b=e.map((c)=>{let x=c.entries.length===1?`'${c.entries[0]}'`:`[${c.entries.map((d)=>`'${d}'`).join(", ")}]`;return` {
|
|
37
|
-
name: '${c.name}',
|
|
38
|
-
root: '${c.root}',
|
|
39
|
-
config: {
|
|
40
|
-
entry: ${x},
|
|
41
|
-
format: [${t.map((d)=>`'${d}'`).join(", ")}],
|
|
42
|
-
outDir: '${r}',${i?`
|
|
43
|
-
dts: true,`:""}${a?`
|
|
44
|
-
plugins: [${a}],`:""}
|
|
45
|
-
},
|
|
46
|
-
}`}).join(`,
|
|
47
|
-
`),p=`import { defineWorkspace } from 'bunup';
|
|
48
|
-
${n.length>0?`import { ${n.join(", ")} } from 'bunup/plugins';
|
|
49
|
-
`:""}
|
|
50
|
-
export default defineWorkspace([
|
|
51
|
-
${b}
|
|
52
|
-
]);
|
|
53
|
-
`;await j.writeFile(o,p)}function lt(e,t){return t.filter((r)=>e.includes(r.value)).map((r)=>r.configGenerator?r.configGenerator():`${r.value}()`).join(", ")}async function Xt(e,t){let r=e.scripts||{},i=!1;for(let[n,s]of[["build","bunup"],["dev","bunup --watch"]])if(!r[n]||await F({message:`Script '${n}' exists. Replace with '${s}'?`,initialValue:!0}))r[n]=s,i=!0;if(i)e.scripts=r,await j.writeFile(t,JSON.stringify(e,null,2))}async function Qt(e,t){if(e.dependencies?.bunup||e.devDependencies?.bunup){B.info(`Bunup is already installed
|
|
54
|
-
`);return}let i={bun:"-d",npm:"-D",pnpm:"-D",yarn:"-D"},n=xe(t.agent,"add",[i[t.agent]||"-D","bunup"]);if(!n)throw new Error("Failed to resolve install command");await Ut(we(n),[],{nodeOptions:{shell:!0,stdio:"pipe"}})}function we(e){if(!e)return"";return`${e.command} ${e.args.join(" ")}`}async function Zt(){let e={},t=!1,r=L.join(process.cwd(),"tsconfig.json");try{let{config:n,filepath:s}=await he({name:"tsconfig",cwd:process.cwd(),extensions:[".json"]});if(n&&s)e=n,t=!0,r=s}catch{}if(e.compilerOptions?.isolatedDeclarations!==!0){B.info(`${m.default.cyan("About isolatedDeclarations:")} ${m.default.gray(`A ${m.default.bold("modern TypeScript feature")} for library authors`)}`),B.info(m.default.gray(`Benefits: ${m.default.bold("faster builds")}, ${m.default.bold("more reliable API types")}, and ${m.default.bold("better editor support")} to catch issues during development`));let n=await F({message:"Enable isolatedDeclarations in tsconfig.json? (recommended but optional)",initialValue:!0});if(h(n))return;if(n){if(e.compilerOptions=e.compilerOptions||{},e.compilerOptions.isolatedDeclarations=!0,e.compilerOptions.declaration=!0,"allowJs"in e.compilerOptions)e.compilerOptions.allowJs=null;if(e.exclude=e.exclude||[],!e.exclude.includes("bunup.config.ts"))e.exclude.push("bunup.config.ts");await j.writeFile(r,JSON.stringify(e,null,2)),B.success("Updated tsconfig.json with isolatedDeclarations")}}else if(t){if(e.exclude=e.exclude||[],!e.exclude.includes("bunup.config.ts"))e.exclude.push("bunup.config.ts"),await j.writeFile(r,JSON.stringify(e,null,2))}}var m;var gt=S(()=>{m=A(G(),1)});import{exec as Pt}from"tinyexec";var Z="0.7.4";D();z();var le=A(G(),1);var Me="https://bunup.dev/docs/guide/cli-options";D();z();W();function y(e){return(t,r)=>{r[e]=t===!0||t==="true"}}function R(e){return(t,r)=>{if(typeof t==="string")r[e]=t;else throw new M(`Option --${e} requires a string value`)}}function re(e){return(t,r)=>{if(typeof t==="string")r[e]=t.split(",");else throw new M(`Option --${e} requires a string value`)}}function St(e){return(t,r)=>{if(typeof t==="boolean")r[e]=t;else if(typeof t==="string")if(t.toLowerCase()==="true"||t.toLowerCase()==="false")r[e]=t.toLowerCase()==="true";else r[e]=t;else throw new M(`Option --${e} requires a boolean or string value`)}}function Mt(){console.log(`
|
|
11
|
+
${$.default.bold("Ready to launch your awesome new project?")}
|
|
12
|
+
|
|
13
|
+
${$.default.cyan("cd")} ${s}
|
|
14
|
+
${$.default.cyan("bun install")}
|
|
15
|
+
${$.default.cyan("bun run dev")}
|
|
16
|
+
|
|
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.7.6";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(`
|
|
55
19
|
Bunup - \u26A1\uFE0F A blazing-fast build tool for your libraries built with Bun.
|
|
56
|
-
`),console.log("For more information on available options, visit:"),console.log(`${
|
|
57
|
-
`),process.exit(0)}function
|
|
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));
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun @bun-cjs
|
|
2
|
-
(function(exports, require, module, __filename, __dirname) {var wr=Object.create;var{getPrototypeOf:Mr,defineProperty:
|
|
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
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
|
|
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}/`,"")}})
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var mr=Object.create;var{getPrototypeOf:
|
|
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
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
|
|
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};
|
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:
|
|
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';
|
|
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(
|
|
8
|
+
`;if(g&&/\bimport\.meta\.url\b/.test(e))m=`import { pathToFileURL } from 'url';
|
|
9
9
|
|
|
10
10
|
const importMetaUrl = pathToFileURL(__filename).href;
|
|
11
11
|
|
|
12
|
-
`;if(!
|
|
13
|
-
`),x=
|
|
14
|
-
`)}})}}}}var
|
|
15
|
-
`);return JSON.stringify(
|
|
16
|
-
`:"")}function
|
|
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(`
|
|
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("")}}}}})
|
package/dist/plugins.d.cts
CHANGED
|
@@ -382,7 +382,6 @@ declare function shims(): Plugin;
|
|
|
382
382
|
* A plugin that generates the exports field in the package.json file automatically.
|
|
383
383
|
*/
|
|
384
384
|
declare function exports(): BunupPlugin;
|
|
385
|
-
declare function formatToExportField(format: Format, dts: boolean): string;
|
|
386
385
|
type ReportPluginOptions = {
|
|
387
386
|
/**
|
|
388
387
|
* The maximum bundle size in bytes.
|
|
@@ -401,4 +400,4 @@ type ReportPluginOptions = {
|
|
|
401
400
|
* @param options - The options for the report plugin.
|
|
402
401
|
*/
|
|
403
402
|
declare function report(options?: ReportPluginOptions): BunupPlugin;
|
|
404
|
-
export { shims, report,
|
|
403
|
+
export { shims, report, exports };
|
package/dist/plugins.d.ts
CHANGED
|
@@ -382,7 +382,6 @@ declare function shims(): Plugin;
|
|
|
382
382
|
* A plugin that generates the exports field in the package.json file automatically.
|
|
383
383
|
*/
|
|
384
384
|
declare function exports(): BunupPlugin;
|
|
385
|
-
declare function formatToExportField(format: Format, dts: boolean): string;
|
|
386
385
|
type ReportPluginOptions = {
|
|
387
386
|
/**
|
|
388
387
|
* The maximum bundle size in bytes.
|
|
@@ -401,4 +400,4 @@ type ReportPluginOptions = {
|
|
|
401
400
|
* @param options - The options for the report plugin.
|
|
402
401
|
*/
|
|
403
402
|
declare function report(options?: ReportPluginOptions): BunupPlugin;
|
|
404
|
-
export { shims, report,
|
|
403
|
+
export { shims, report, exports };
|
package/dist/plugins.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
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';
|
|
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(
|
|
8
|
+
`;if(g&&/\bimport\.meta\.url\b/.test(e))m=`import { pathToFileURL } from 'url';
|
|
9
9
|
|
|
10
10
|
const importMetaUrl = pathToFileURL(__filename).href;
|
|
11
11
|
|
|
12
|
-
`;if(!
|
|
13
|
-
`),x=
|
|
14
|
-
`)}})}}}}var
|
|
15
|
-
`);return JSON.stringify(
|
|
16
|
-
`:"")}function
|
|
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};
|
package/package.json
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bunup",
|
|
3
3
|
"description": "⚡ A blazing-fast build tool for your libraries built with Bun.",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.6",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"bin"
|
|
9
|
+
],
|
|
10
|
+
"module": "./dist/index.js",
|
|
11
|
+
"main": "./dist/index.cjs",
|
|
12
|
+
"types": "./dist/index.d.cts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"require": "./dist/index.cjs",
|
|
17
|
+
"types": "./dist/index.d.cts"
|
|
18
|
+
},
|
|
19
|
+
"./plugins": {
|
|
20
|
+
"import": "./dist/plugins.js",
|
|
21
|
+
"require": "./dist/plugins.cjs",
|
|
22
|
+
"types": "./dist/plugins.d.cts"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
5
25
|
"license": "MIT",
|
|
6
26
|
"author": "Arshad Yaseen <m@arshadyaseen.com> (https://arshadyaseen.com)",
|
|
7
27
|
"maintainers": [
|
|
@@ -22,11 +42,6 @@
|
|
|
22
42
|
"bunup",
|
|
23
43
|
"bun-bundler"
|
|
24
44
|
],
|
|
25
|
-
"type": "module",
|
|
26
|
-
"files": [
|
|
27
|
-
"dist",
|
|
28
|
-
"bin"
|
|
29
|
-
],
|
|
30
45
|
"bin": {
|
|
31
46
|
"bunup": "bin/bunup.mjs"
|
|
32
47
|
},
|
|
@@ -35,7 +50,9 @@
|
|
|
35
50
|
"bun-dts": "^0.1.26",
|
|
36
51
|
"chokidar": "^4.0.3",
|
|
37
52
|
"coffi": "^0.1.28",
|
|
53
|
+
"giget": "^2.0.0",
|
|
38
54
|
"package-manager-detector": "^1.2.0",
|
|
55
|
+
"replace-in-file": "^8.3.0",
|
|
39
56
|
"tinyexec": "^1.0.1"
|
|
40
57
|
},
|
|
41
58
|
"devDependencies": {
|
|
@@ -77,20 +94,5 @@
|
|
|
77
94
|
"workspaces": [
|
|
78
95
|
"docs",
|
|
79
96
|
"tests"
|
|
80
|
-
]
|
|
81
|
-
"import": "./dist/index.js",
|
|
82
|
-
"require": "./dist/index.cjs",
|
|
83
|
-
"types": "./dist/index.d.cts",
|
|
84
|
-
"exports": {
|
|
85
|
-
".": {
|
|
86
|
-
"import": "./dist/index.js",
|
|
87
|
-
"require": "./dist/index.cjs",
|
|
88
|
-
"types": "./dist/index.d.cts"
|
|
89
|
-
},
|
|
90
|
-
"./plugins": {
|
|
91
|
-
"import": "./dist/plugins.js",
|
|
92
|
-
"require": "./dist/plugins.cjs",
|
|
93
|
-
"types": "./dist/plugins.d.cts"
|
|
94
|
-
}
|
|
95
|
-
}
|
|
97
|
+
]
|
|
96
98
|
}
|