bunup 0.4.71 → 0.4.73
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 +12 -10
- package/dist/cli.mjs +12 -11
- package/dist/index.js +7 -4
- package/dist/index.mjs +7 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,20 +5,22 @@
|
|
|
5
5
|
<div align="center">
|
|
6
6
|
|
|
7
7
|
<!-- markdownlint-disable-next-line no-alt-text -->
|
|
8
|
-

|
|
9
8
|
|
|
10
|
-
|
|
9
|
+

|
|
11
10
|
|
|
12
|
-
|
|
11
|
+

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