@olegkuibar/plunk 1.1.0 → 1.1.1

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.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$3}from'./chunk-XVWUDOVN.mjs';import {b as b$3,c}from'./chunk-SSCTJUNB.mjs';import {a as a$6}from'./chunk-4KEAE5RS.mjs';import {b as b$5,a as a$5,e}from'./chunk-72AD4PZH.mjs';import {a as a$2}from'./chunk-HPF6K6WO.mjs';import'./chunk-HGXH6DYF.mjs';import {d}from'./chunk-UFR2DOQU.mjs';import {a as a$4,b as b$4,c as c$1,d as d$4}from'./chunk-EPNDXIQH.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {b as b$1,a as a$7}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import {f,d as d$1,h as h$1}from'./chunk-KJPN6E7W.mjs';import {d as d$2}from'./chunk-U376XMQP.mjs';import'./chunk-HW7AEGI3.mjs';import {A,k,r}from'./chunk-SXO3YBPY.mjs';import {c as c$2,d as d$3,b as b$6}from'./chunk-R3RSOZXN.mjs';import {b as b$2}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import'fs/promises';import {spawn}from'child_process';import {platform}from'os';import {resolve,basename}from'path';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a as a$3}from'./chunk-AGBIDPNK.mjs';import {b as b$3,c}from'./chunk-SSCTJUNB.mjs';import {a as a$6}from'./chunk-TDOTYU7U.mjs';import {b as b$5,a as a$5,e}from'./chunk-72AD4PZH.mjs';import {a as a$2}from'./chunk-HPF6K6WO.mjs';import'./chunk-PEBBXITM.mjs';import {d}from'./chunk-UFR2DOQU.mjs';import {a as a$4,b as b$4,c as c$1,d as d$4}from'./chunk-EPNDXIQH.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {b as b$1,a as a$7}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import {f,d as d$1,h as h$1}from'./chunk-KJPN6E7W.mjs';import {d as d$2}from'./chunk-U376XMQP.mjs';import'./chunk-3KNUBUPH.mjs';import {A,k,r}from'./chunk-SXO3YBPY.mjs';import {c as c$2,d as d$3,b as b$6}from'./chunk-R3RSOZXN.mjs';import {b as b$2}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import'fs/promises';import {spawn}from'child_process';import {platform}from'os';import {resolve,basename}from'path';globalThis.require=createRequire(import.meta.url);
3
3
  var Cn={meta:{name:"add",description:"Link a package from the plunk store into this project"},args:{package:{type:"positional",description:"Package name to add",required:true},from:{type:"string",description:"Path to package source (will publish first)"},yes:{type:"boolean",alias:"y",description:"Auto-accept prompts (install missing deps, etc.)",default:false}},async run({args:t}){b$1();let o=new a$1,e$1=resolve("."),{name:n,version:p}=en(t.package);if((!n||n==="@"||n.startsWith("@")&&!n.includes("/"))&&(a$2(`Invalid package name "${t.package}". Use format: package-name or @scope/package-name`),process.exit(1)),t.from){let s=resolve(t.from);b$2.info(`Publishing from ${s}...`),await a$3(s);}let a=p?await b$3(n,p):await c(n);if(!a){let s=p?`@${p} `:"";a$2(`Package "${n}"${s?" "+s:""} not found in store. Run 'plunk publish' in the package directory first, or use --from <path>.`),process.exit(1);}let f$1=!await A(k(e$1)),r$1=await a$4(e$1);if(f$1&&(await d(e$1,r$1),b$2.success("Auto-initialized plunk (consumer mode)")),b$2.info(`Detected package manager: ${r$1}`),r$1==="yarn"){let s=await b$4(e$1);(s==="pnp"||s===null&&await c$1(e$1))&&(b$2.error(`Yarn PnP mode is not compatible with plunk.
4
4
 
5
5
  plunk works by copying files into node_modules/, but PnP eliminates
@@ -9,6 +9,6 @@ node_modules/ entirely. To use plunk with Yarn Berry, add this to
9
9
  nodeLinker: node-modules
10
10
 
11
11
  Then run: yarn install`),process.exit(1));}let k$1=await f(e$1,n);k$1&&(k$1.version===a.version?b$2.info(`Updating ${n}@${a.version} (already linked)`):b$2.info(`Updating ${n}: ${k$1.version} \u2192 ${a.version}`));let v=await b$5(e$1,n,r$1);v&&b$2.info(`Backed up existing ${n} installation`);let d$5=await a$5(a,e$1,r$1);b$2.success(`Linked ${n}@${a.version} \u2192 node_modules/${n} (${d$5.copied} files copied, ${d$5.skipped} unchanged)`),d$5.binLinks>0&&b$2.info(`Created ${d$5.binLinks} bin link(s)`);let G={version:a.version,contentHash:a.meta.contentHash,linkedAt:new Date().toISOString(),sourcePath:a.meta.sourcePath,backupExists:v,packageManager:r$1,buildId:a.meta.buildId??""};await d$1(e$1,n,G),await h$1(n,e$1),await d$2(e$1,n,a.version);let l=await e(a,e$1);if(l.length>0)if(c$2())d$3(`[add] Missing transitive deps (json mode): ${l.join(", ")}`);else if(t.yes){let s=h(r$1,l);b$2.info(`Installing missing dependencies: ${l.join(", ")}`),await b(s,e$1)?b$2.success("Installed missing dependencies"):b$2.warn(`Install failed. Run manually: ${s}`);}else if(await b$2.prompt(`Install ${l.length} missing dependencies? (${l.join(", ")})`,{type:"confirm",initial:true})){let m=h(r$1,l);await b(m,e$1)?b$2.success("Installed missing dependencies"):b$2.warn(`Install failed. Run manually: ${m}`);}else b$2.warn(`Missing transitive dependencies: ${l.join(", ")}
12
- Run: ${h(r$1,l)}`);let c$3=await d$4(e$1);if(c$3.type==="next"&&c$3.configFile){let s=await a$6(c$3.configFile,n);s.modified?b$2.success(`Added ${n} to transpilePackages in ${basename(c$3.configFile)}`):s.error&&b$2.info(`Add to next.config manually: transpilePackages: ['${n}']`);}else if(c$3.type==="vite"&&c$3.configFile){let{addPlunkVitePlugin:s}=await import('./vite-config-5RF5QMOC.mjs'),m=await s(c$3.configFile);if(m.modified){b$2.success(`Added plunk plugin to ${basename(c$3.configFile)}`);let w=nn(r$1,"@olegkuibar/plunk");b$2.info("Installing @olegkuibar/plunk as devDependency..."),await b(w,e$1)?b$2.success("Installed @olegkuibar/plunk"):b$2.warn(`Install failed. Run manually: ${w}`);}else m.error&&b$2.info(`Add manually:
12
+ Run: ${h(r$1,l)}`);let c$3=await d$4(e$1);if(c$3.type==="next"&&c$3.configFile){let s=await a$6(c$3.configFile,n);s.modified?b$2.success(`Added ${n} to transpilePackages in ${basename(c$3.configFile)}`):s.error&&b$2.info(`Add to next.config manually: transpilePackages: ['${n}']`);}else if(c$3.type==="vite"&&c$3.configFile){let{addPlunkVitePlugin:s}=await import('./vite-config-DZDIHZYU.mjs'),m=await s(c$3.configFile);if(m.modified){b$2.success(`Added plunk plugin to ${basename(c$3.configFile)}`);let w=nn(r$1,"@olegkuibar/plunk");b$2.info("Installing @olegkuibar/plunk as devDependency..."),await b(w,e$1)?b$2.success("Installed @olegkuibar/plunk"):b$2.warn(`Install failed. Run manually: ${w}`);}else m.error&&b$2.info(`Add manually:
13
13
  import plunk from "@olegkuibar/plunk/vite"
14
14
  plugins: [plunk()]`);}let{findTailwindCss:K,addTailwindSource:Q}=await import('./tailwind-source-FEK5ASYL.mjs'),g=await K(e$1);if(g){let s=await Q(g,n,e$1);s.modified?b$2.success(`Added @source for ${n} to ${basename(g)}`):s.error&&b$2.info(`Add to your CSS manually: @source "../node_modules/${n}";`);}b$2.info(`Done in ${o.elapsed()}`),a$7({package:n,version:a.version,copied:d$5.copied,skipped:d$5.skipped,binLinks:d$5.binLinks,elapsed:o.elapsedMs()}),b$6()&&r();}};function h(t,o){let e=o.join(" ");switch(t){case "pnpm":return `pnpm add ${e}`;case "yarn":return `yarn add ${e}`;case "bun":return `bun add ${e}`;default:return `npm install ${e}`}}a(h,"buildInstallCommand");function nn(t,o){switch(t){case "pnpm":return `pnpm add -D ${o}`;case "yarn":return `yarn add -D ${o}`;case "bun":return `bun add -d ${o}`;default:return `npm install -D ${o}`}}a(nn,"buildDevInstallCommand");function b(t,o){return new Promise(e=>{let n=platform()==="win32",f=spawn(n?"cmd":"sh",[n?"/c":"-c",t],{cwd:o,stdio:"inherit"});f.on("close",r=>e(r===0)),f.on("error",()=>e(false));})}a(b,"runInstallCommand");function en(t){if(t.startsWith("@")){let e=t.indexOf("/");if(e>0){let n=t.indexOf("@",e);if(n>e)return {name:t.slice(0,n),version:t.slice(n+1)}}return {name:t,version:null}}let o=t.lastIndexOf("@");return o>0?{name:t.slice(0,o),version:t.slice(o+1)}:{name:t,version:null}}a(en,"parsePackageArg");export{Cn as default};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {b,a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
3
+ var te=b((Lt,ye)=>{var ge="[^\\\\/]",We="(?=.)",Se="[^/]",ce="(?:\\/|$)",xe="(?:^|\\/)",ie=`\\.{1,2}${ce}`,qe="(?!\\.)",Fe=`(?!${xe}${ie})`,Qe=`(?!\\.{0,1}${ce})`,je=`(?!${ie})`,Ze="[^.\\/]",ze=`${Se}*?`,Ve="/",be={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:We,QMARK:Se,END_ANCHOR:ce,DOTS_SLASH:ie,NO_DOT:qe,NO_DOTS:Fe,NO_DOT_SLASH:Qe,NO_DOTS_SLASH:je,QMARK_NO_DOT:Ze,STAR:ze,START_ANCHOR:xe,SEP:Ve},Ye={...be,SLASH_LITERAL:"[\\\\/]",QMARK:ge,STAR:`${ge}*?`,DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)",SEP:"\\"},Je={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};ye.exports={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Je,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return {"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===true?Ye:be}};});var se=b(M=>{var{REGEX_BACKSLASH:et,REGEX_REMOVE_BACKSLASH:tt,REGEX_SPECIAL_CHARS:st,REGEX_SPECIAL_CHARS_GLOBAL:rt}=te();M.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);M.hasRegexChars=t=>st.test(t);M.isRegexChar=t=>t.length===1&&M.hasRegexChars(t);M.escapeRegex=t=>t.replace(rt,"\\$1");M.toPosixSlashes=t=>t.replace(et,"/");M.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let t=navigator.platform.toLowerCase();return t==="win32"||t==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":false};M.removeBackslashes=t=>t.replace(tt,u=>u==="\\"?"":u);M.escapeLast=(t,u,e)=>{let l=t.lastIndexOf(u,e);return l===-1?t:t[l-1]==="\\"?M.escapeLast(t,u,l-1):`${t.slice(0,l)}\\${t.slice(l)}`};M.removePrefix=(t,u={})=>{let e=t;return e.startsWith("./")&&(e=e.slice(2),u.prefix="./"),e};M.wrapOutput=(t,u={},e={})=>{let l=e.contains?"":"^",c=e.contains?"":"$",p=`${l}(?:${t})${c}`;return u.negated===true&&(p=`(?:^(?!${p}).*$)`),p};M.basename=(t,{windows:u}={})=>{let e=t.split(u?/[\\/]/:"/"),l=e[e.length-1];return l===""?e[e.length-2]:l};});var me=b((Ht,Oe)=>{var de=se(),{CHAR_ASTERISK:le,CHAR_AT:nt,CHAR_BACKWARD_SLASH:re,CHAR_COMMA:ut,CHAR_DOT:pe,CHAR_EXCLAMATION_MARK:fe,CHAR_FORWARD_SLASH:Te,CHAR_LEFT_CURLY_BRACE:Ae,CHAR_LEFT_PARENTHESES:Re,CHAR_LEFT_SQUARE_BRACKET:ot,CHAR_PLUS:at,CHAR_QUESTION_MARK:Ce,CHAR_RIGHT_CURLY_BRACE:ct,CHAR_RIGHT_PARENTHESES:Le,CHAR_RIGHT_SQUARE_BRACKET:it}=te(),$e=a(t=>t===Te||t===re,"isPathSeparator"),He=a(t=>{t.isPrefix!==true&&(t.depth=t.isGlobstar?1/0:1);},"depth"),lt=a((t,u)=>{let e=u||{},l=t.length-1,c=e.parts===true||e.scanToEnd===true,p=[],i=[],f=[],b=t,N=-1,g=0,k=0,O=false,B=false,S=false,v=false,V=false,W=false,y=false,q=false,Y=false,D=false,w=0,P,A,E={value:"",depth:0,isGlob:false},n=a(()=>N>=l,"eos"),G=a(()=>b.charCodeAt(N+1),"peek"),m=a(()=>(P=A,b.charCodeAt(++N)),"advance");for(;N<l;){A=m();let x;if(A===re){y=E.backslashes=true,A=m(),A===Ae&&(W=true);continue}if(W===true||A===Ae){for(w++;n()!==true&&(A=m());){if(A===re){y=E.backslashes=true,m();continue}if(A===Ae){w++;continue}if(W!==true&&A===pe&&(A=m())===pe){if(O=E.isBrace=true,S=E.isGlob=true,D=true,c===true)continue;break}if(W!==true&&A===ut){if(O=E.isBrace=true,S=E.isGlob=true,D=true,c===true)continue;break}if(A===ct&&(w--,w===0)){W=false,O=E.isBrace=true,D=true;break}}if(c===true)continue;break}if(A===Te){if(p.push(N),i.push(E),E={value:"",depth:0,isGlob:false},D===true)continue;if(P===pe&&N===g+1){g+=2;continue}k=N+1;continue}if(e.noext!==true&&(A===at||A===nt||A===le||A===Ce||A===fe)===true&&G()===Re){if(S=E.isGlob=true,v=E.isExtglob=true,D=true,A===fe&&N===g&&(Y=true),c===true){for(;n()!==true&&(A=m());){if(A===re){y=E.backslashes=true,A=m();continue}if(A===Le){S=E.isGlob=true,D=true;break}}continue}break}if(A===le){if(P===le&&(V=E.isGlobstar=true),S=E.isGlob=true,D=true,c===true)continue;break}if(A===Ce){if(S=E.isGlob=true,D=true,c===true)continue;break}if(A===ot){for(;n()!==true&&(x=m());){if(x===re){y=E.backslashes=true,m();continue}if(x===it){B=E.isBracket=true,S=E.isGlob=true,D=true;break}}if(c===true)continue;break}if(e.nonegate!==true&&A===fe&&N===g){q=E.negated=true,g++;continue}if(e.noparen!==true&&A===Re){if(S=E.isGlob=true,c===true){for(;n()!==true&&(A=m());){if(A===Re){y=E.backslashes=true,A=m();continue}if(A===Le){D=true;break}}continue}break}if(S===true){if(D=true,c===true)continue;break}}e.noext===true&&(v=false,S=false);let H=b,r="",s="";g>0&&(r=b.slice(0,g),b=b.slice(g),k-=g),H&&S===true&&k>0?(H=b.slice(0,k),s=b.slice(k)):S===true?(H="",s=b):H=b,H&&H!==""&&H!=="/"&&H!==b&&$e(H.charCodeAt(H.length-1))&&(H=H.slice(0,-1)),e.unescape===true&&(s&&(s=de.removeBackslashes(s)),H&&y===true&&(H=de.removeBackslashes(H)));let K={prefix:r,input:t,start:g,base:H,glob:s,isBrace:O,isBracket:B,isGlob:S,isExtglob:v,isGlobstar:V,negated:q,negatedExtglob:Y};if(e.tokens===true&&(K.maxDepth=0,$e(A)||i.push(E),K.tokens=i),e.parts===true||e.tokens===true){let x;for(let $=0;$<p.length;$++){let j=x?x+1:g,X=p[$],Z=t.slice(j,X);e.tokens&&($===0&&g!==0?(i[$].isPrefix=true,i[$].value=r):i[$].value=Z,He(i[$]),K.maxDepth+=i[$].depth),($!==0||Z!=="")&&f.push(Z),x=X;}if(x&&x+1<t.length){let $=t.slice(x+1);f.push($),e.tokens&&(i[i.length-1].value=$,He(i[i.length-1]),K.maxDepth+=i[i.length-1].depth);}K.slashes=p,K.parts=f;}return K},"scan");Oe.exports=lt;});var ke=b((Ot,we)=>{var ne=te(),U=se(),{MAX_LENGTH:ae,POSIX_REGEX_SOURCE:pt,REGEX_NON_SPECIAL_CHARS:ft,REGEX_SPECIAL_CHARS_BACKREF:At,REPLACEMENTS:Ie}=ne,Rt=a((t,u)=>{if(typeof u.expandRange=="function")return u.expandRange(...t,u);t.sort();let e=`[${t.join("-")}]`;try{new RegExp(e);}catch{return t.map(c=>U.escapeRegex(c)).join("..")}return e},"expandRange"),ee=a((t,u)=>`Missing ${t}: "${u}" - use "\\\\${u}" to match literal characters`,"syntaxError"),ve=a(t=>{let u=[],e=0,l=0,c=0,p="",i=false;for(let f of t){if(i===true){p+=f,i=false;continue}if(f==="\\"){p+=f,i=true;continue}if(f==='"'){c=c===1?0:1,p+=f;continue}if(c===0){if(f==="[")e++;else if(f==="]"&&e>0)e--;else if(e===0){if(f==="(")l++;else if(f===")"&&l>0)l--;else if(f==="|"&&l===0){u.push(p),p="";continue}}}p+=f;}return u.push(p),u},"splitTopLevel"),_t=a(t=>{let u=false;for(let e of t){if(u===true){u=false;continue}if(e==="\\"){u=true;continue}if(/[?*+@!()[\]{}]/.test(e))return false}return true},"isPlainBranch"),Ne=a(t=>{let u=t.trim(),e=true;for(;e===true;)e=false,/^@\([^\\()[\]{}|]+\)$/.test(u)&&(u=u.slice(2,-1),e=true);if(_t(u))return u.replace(/\\(.)/g,"$1")},"normalizeSimpleBranch"),ht=a(t=>{let u=t.map(Ne).filter(Boolean);for(let e=0;e<u.length;e++)for(let l=e+1;l<u.length;l++){let c=u[e],p=u[l],i=c[0];if(!(!i||c!==i.repeat(c.length)||p!==i.repeat(p.length))&&(c===p||c.startsWith(p)||p.startsWith(c)))return true}return false},"hasRepeatedCharPrefixOverlap"),_e=a((t,u=true)=>{if(t[0]!=="+"&&t[0]!=="*"||t[1]!=="(")return;let e=0,l=0,c=0,p=false;for(let i=1;i<t.length;i++){let f=t[i];if(p===true){p=false;continue}if(f==="\\"){p=true;continue}if(f==='"'){c=c===1?0:1;continue}if(c!==1){if(f==="["){e++;continue}if(f==="]"&&e>0){e--;continue}if(!(e>0)){if(f==="("){l++;continue}if(f===")"&&(l--,l===0))return u===true&&i!==t.length-1?void 0:{type:t[0],body:t.slice(2,i),end:i}}}}},"parseRepeatedExtglob"),Et=a(t=>{let u=0,e=[];for(;u<t.length;){let c=_e(t.slice(u),false);if(!c||c.type!=="*")return;let p=ve(c.body).map(f=>f.trim());if(p.length!==1)return;let i=Ne(p[0]);if(!i||i.length!==1)return;e.push(i),u+=c.end+1;}return e.length<1?void 0:`${e.length===1?U.escapeRegex(e[0]):`[${e.map(c=>U.escapeRegex(c)).join("")}]`}*`},"getStarExtglobSequenceOutput"),gt=a(t=>{let u=0,e=t.trim(),l=_e(e);for(;l;)u++,e=l.body.trim(),l=_e(e);return u},"repeatedExtglobRecursion"),St=a((t,u)=>{if(u.maxExtglobRecursion===false)return {risky:false};let e=typeof u.maxExtglobRecursion=="number"?u.maxExtglobRecursion:ne.DEFAULT_MAX_EXTGLOB_RECURSION,l=ve(t).map(c=>c.trim());if(l.length>1&&(l.some(c=>c==="")||l.some(c=>/^[*?]+$/.test(c))||ht(l)))return {risky:true};for(let c of l){let p=Et(c);if(p)return {risky:true,safeOutput:p};if(gt(c)>e)return {risky:true}}return {risky:false}},"analyzeRepeatedExtglob"),he=a((t,u)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=Ie[t]||t;let e={...u},l=typeof e.maxLength=="number"?Math.min(ae,e.maxLength):ae,c=t.length;if(c>l)throw new SyntaxError(`Input length: ${c}, exceeds maximum allowed length: ${l}`);let p={type:"bos",value:"",output:e.prepend||""},i=[p],f=e.capture?"":"?:",b=ne.globChars(e.windows),N=ne.extglobChars(b),{DOT_LITERAL:g,PLUS_LITERAL:k,SLASH_LITERAL:O,ONE_CHAR:B,DOTS_SLASH:S,NO_DOT:v,NO_DOT_SLASH:V,NO_DOTS_SLASH:W,QMARK:y,QMARK_NO_DOT:q,STAR:Y,START_ANCHOR:D}=b,w=a(a=>`(${f}(?:(?!${D}${a.dot?S:g}).)*?)`,"globstar"),P=e.dot?"":v,A=e.dot?y:q,E=e.bash===true?w(e):Y;e.capture&&(E=`(${E})`),typeof e.noext=="boolean"&&(e.noextglob=e.noext);let n={input:t,index:-1,start:0,dot:e.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:i};t=U.removePrefix(t,n),c=t.length;let G=[],m=[],H=[],r=p,s,K=a(()=>n.index===c-1,"eos"),x=n.peek=(a=1)=>t[n.index+a],$=n.advance=()=>t[++n.index]||"",j=a(()=>t.slice(n.index+1),"remaining"),X=a((a="",L=0)=>{n.consumed+=a,n.index+=L;},"consume"),Z=a(a=>{n.output+=a.output!=null?a.output:a.value,X(a.value);},"append"),Ke=a(()=>{let a=1;for(;x()==="!"&&(x(2)!=="("||x(3)==="?");)$(),n.start++,a++;return a%2===0?false:(n.negated=true,n.start++,true)},"negate"),ue=a(a=>{n[a]++,H.push(a);},"increment"),z=a(a=>{n[a]--,H.pop();},"decrement"),_=a(a=>{if(r.type==="globstar"){let L=n.braces>0&&(a.type==="comma"||a.type==="brace"),o=a.extglob===true||G.length&&(a.type==="pipe"||a.type==="paren");a.type!=="slash"&&a.type!=="paren"&&!L&&!o&&(n.output=n.output.slice(0,-r.output.length),r.type="star",r.value="*",r.output=E,n.output+=r.output);}if(G.length&&a.type!=="paren"&&(G[G.length-1].inner+=a.value),(a.value||a.output)&&Z(a),r&&r.type==="text"&&a.type==="text"){r.output=(r.output||r.value)+a.value,r.value+=a.value;return}a.prev=r,i.push(a),r=a;},"push"),oe=a((a,L)=>{let o={...N[L],conditions:1,inner:""};o.prev=r,o.parens=n.parens,o.output=n.output,o.startIndex=n.index,o.tokensIndex=i.length;let h=(e.capture?"(":"")+o.open;ue("parens"),_({type:a,value:L,output:n.output?"":B}),_({type:"paren",extglob:true,value:$(),output:h}),G.push(o);},"extglobOpen"),Xe=a(a=>{let L=t.slice(a.startIndex,n.index+1),o=t.slice(a.startIndex+2,n.index),h=St(o,e);if((a.type==="plus"||a.type==="star")&&h.risky){let d=h.safeOutput?(a.output?"":B)+(e.capture?`(${h.safeOutput})`:h.safeOutput):void 0,F=i[a.tokensIndex];F.type="text",F.value=L,F.output=d||U.escapeRegex(L);for(let Q=a.tokensIndex+1;Q<i.length;Q++)i[Q].value="",i[Q].output="",delete i[Q].suffix;n.output=a.output+F.output,n.backtrack=true,_({type:"paren",extglob:true,value:s,output:""}),z("parens");return}let C=a.close+(e.capture?")":""),I;if(a.type==="negate"){let d=E;if(a.inner&&a.inner.length>1&&a.inner.includes("/")&&(d=w(e)),(d!==E||K()||/^\)+$/.test(j()))&&(C=a.close=`)$))${d}`),a.inner.includes("*")&&(I=j())&&/^\.[^\\/.]+$/.test(I)){let F=he(I,{...u,fastpaths:false}).output;C=a.close=`)${F})${d})`;}a.prev.type==="bos"&&(n.negatedExtglob=true);}_({type:"paren",extglob:true,value:s,output:C}),z("parens");},"extglobClose");if(e.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(t)){let a=false,L=t.replace(At,(o,h,C,I,d,F)=>I==="\\"?(a=true,o):I==="?"?h?h+I+(d?y.repeat(d.length):""):F===0?A+(d?y.repeat(d.length):""):y.repeat(C.length):I==="."?g.repeat(C.length):I==="*"?h?h+I+(d?E:""):E:h?o:`\\${o}`);return a===true&&(e.unescape===true?L=L.replace(/\\/g,""):L=L.replace(/\\+/g,o=>o.length%2===0?"\\\\":o?"\\":"")),L===t&&e.contains===true?(n.output=t,n):(n.output=U.wrapOutput(L,n,u),n)}for(;!K();){if(s=$(),s==="\0")continue;if(s==="\\"){let o=x();if(o==="/"&&e.bash!==true||o==="."||o===";")continue;if(!o){s+="\\",_({type:"text",value:s});continue}let h=/^\\+/.exec(j()),C=0;if(h&&h[0].length>2&&(C=h[0].length,n.index+=C,C%2!==0&&(s+="\\")),e.unescape===true?s=$():s+=$(),n.brackets===0){_({type:"text",value:s});continue}}if(n.brackets>0&&(s!=="]"||r.value==="["||r.value==="[^")){if(e.posix!==false&&s===":"){let o=r.value.slice(1);if(o.includes("[")&&(r.posix=true,o.includes(":"))){let h=r.value.lastIndexOf("["),C=r.value.slice(0,h),I=r.value.slice(h+2),d=pt[I];if(d){r.value=C+d,n.backtrack=true,$(),!p.output&&i.indexOf(r)===1&&(p.output=B);continue}}}(s==="["&&x()!==":"||s==="-"&&x()==="]")&&(s=`\\${s}`),s==="]"&&(r.value==="["||r.value==="[^")&&(s=`\\${s}`),e.posix===true&&s==="!"&&r.value==="["&&(s="^"),r.value+=s,Z({value:s});continue}if(n.quotes===1&&s!=='"'){s=U.escapeRegex(s),r.value+=s,Z({value:s});continue}if(s==='"'){n.quotes=n.quotes===1?0:1,e.keepQuotes===true&&_({type:"text",value:s});continue}if(s==="("){ue("parens"),_({type:"paren",value:s});continue}if(s===")"){if(n.parens===0&&e.strictBrackets===true)throw new SyntaxError(ee("opening","("));let o=G[G.length-1];if(o&&n.parens===o.parens+1){Xe(G.pop());continue}_({type:"paren",value:s,output:n.parens?")":"\\)"}),z("parens");continue}if(s==="["){if(e.nobracket===true||!j().includes("]")){if(e.nobracket!==true&&e.strictBrackets===true)throw new SyntaxError(ee("closing","]"));s=`\\${s}`;}else ue("brackets");_({type:"bracket",value:s});continue}if(s==="]"){if(e.nobracket===true||r&&r.type==="bracket"&&r.value.length===1){_({type:"text",value:s,output:`\\${s}`});continue}if(n.brackets===0){if(e.strictBrackets===true)throw new SyntaxError(ee("opening","["));_({type:"text",value:s,output:`\\${s}`});continue}z("brackets");let o=r.value.slice(1);if(r.posix!==true&&o[0]==="^"&&!o.includes("/")&&(s=`/${s}`),r.value+=s,Z({value:s}),e.literalBrackets===false||U.hasRegexChars(o))continue;let h=U.escapeRegex(r.value);if(n.output=n.output.slice(0,-r.value.length),e.literalBrackets===true){n.output+=h,r.value=h;continue}r.value=`(${f}${h}|${r.value})`,n.output+=r.value;continue}if(s==="{"&&e.nobrace!==true){ue("braces");let o={type:"brace",value:s,output:"(",outputIndex:n.output.length,tokensIndex:n.tokens.length};m.push(o),_(o);continue}if(s==="}"){let o=m[m.length-1];if(e.nobrace===true||!o){_({type:"text",value:s,output:s});continue}let h=")";if(o.dots===true){let C=i.slice(),I=[];for(let d=C.length-1;d>=0&&(i.pop(),C[d].type!=="brace");d--)C[d].type!=="dots"&&I.unshift(C[d].value);h=Rt(I,e),n.backtrack=true;}if(o.comma!==true&&o.dots!==true){let C=n.output.slice(0,o.outputIndex),I=n.tokens.slice(o.tokensIndex);o.value=o.output="\\{",s=h="\\}",n.output=C;for(let d of I)n.output+=d.output||d.value;}_({type:"brace",value:s,output:h}),z("braces"),m.pop();continue}if(s==="|"){G.length>0&&G[G.length-1].conditions++,_({type:"text",value:s});continue}if(s===","){let o=s,h=m[m.length-1];h&&H[H.length-1]==="braces"&&(h.comma=true,o="|"),_({type:"comma",value:s,output:o});continue}if(s==="/"){if(r.type==="dot"&&n.index===n.start+1){n.start=n.index+1,n.consumed="",n.output="",i.pop(),r=p;continue}_({type:"slash",value:s,output:O});continue}if(s==="."){if(n.braces>0&&r.type==="dot"){r.value==="."&&(r.output=g);let o=m[m.length-1];r.type="dots",r.output+=s,r.value+=s,o.dots=true;continue}if(n.braces+n.parens===0&&r.type!=="bos"&&r.type!=="slash"){_({type:"text",value:s,output:g});continue}_({type:"dot",value:s,output:g});continue}if(s==="?"){if(!(r&&r.value==="(")&&e.noextglob!==true&&x()==="("&&x(2)!=="?"){oe("qmark",s);continue}if(r&&r.type==="paren"){let h=x(),C=s;(r.value==="("&&!/[!=<:]/.test(h)||h==="<"&&!/<([!=]|\w+>)/.test(j()))&&(C=`\\${s}`),_({type:"text",value:s,output:C});continue}if(e.dot!==true&&(r.type==="slash"||r.type==="bos")){_({type:"qmark",value:s,output:q});continue}_({type:"qmark",value:s,output:y});continue}if(s==="!"){if(e.noextglob!==true&&x()==="("&&(x(2)!=="?"||!/[!=<:]/.test(x(3)))){oe("negate",s);continue}if(e.nonegate!==true&&n.index===0){Ke();continue}}if(s==="+"){if(e.noextglob!==true&&x()==="("&&x(2)!=="?"){oe("plus",s);continue}if(r&&r.value==="("||e.regex===false){_({type:"plus",value:s,output:k});continue}if(r&&(r.type==="bracket"||r.type==="paren"||r.type==="brace")||n.parens>0){_({type:"plus",value:s});continue}_({type:"plus",value:k});continue}if(s==="@"){if(e.noextglob!==true&&x()==="("&&x(2)!=="?"){_({type:"at",extglob:true,value:s,output:""});continue}_({type:"text",value:s});continue}if(s!=="*"){(s==="$"||s==="^")&&(s=`\\${s}`);let o=ft.exec(j());o&&(s+=o[0],n.index+=o[0].length),_({type:"text",value:s});continue}if(r&&(r.type==="globstar"||r.star===true)){r.type="star",r.star=true,r.value+=s,r.output=E,n.backtrack=true,n.globstar=true,X(s);continue}let a=j();if(e.noextglob!==true&&/^\([^?]/.test(a)){oe("star",s);continue}if(r.type==="star"){if(e.noglobstar===true){X(s);continue}let o=r.prev,h=o.prev,C=o.type==="slash"||o.type==="bos",I=h&&(h.type==="star"||h.type==="globstar");if(e.bash===true&&(!C||a[0]&&a[0]!=="/")){_({type:"star",value:s,output:""});continue}let d=n.braces>0&&(o.type==="comma"||o.type==="brace"),F=G.length&&(o.type==="pipe"||o.type==="paren");if(!C&&o.type!=="paren"&&!d&&!F){_({type:"star",value:s,output:""});continue}for(;a.slice(0,3)==="/**";){let Q=t[n.index+4];if(Q&&Q!=="/")break;a=a.slice(3),X("/**",3);}if(o.type==="bos"&&K()){r.type="globstar",r.value+=s,r.output=w(e),n.output=r.output,n.globstar=true,X(s);continue}if(o.type==="slash"&&o.prev.type!=="bos"&&!I&&K()){n.output=n.output.slice(0,-(o.output+r.output).length),o.output=`(?:${o.output}`,r.type="globstar",r.output=w(e)+(e.strictSlashes?")":"|$)"),r.value+=s,n.globstar=true,n.output+=o.output+r.output,X(s);continue}if(o.type==="slash"&&o.prev.type!=="bos"&&a[0]==="/"){let Q=a[1]!==void 0?"|$":"";n.output=n.output.slice(0,-(o.output+r.output).length),o.output=`(?:${o.output}`,r.type="globstar",r.output=`${w(e)}${O}|${O}${Q})`,r.value+=s,n.output+=o.output+r.output,n.globstar=true,X(s+$()),_({type:"slash",value:"/",output:""});continue}if(o.type==="bos"&&a[0]==="/"){r.type="globstar",r.value+=s,r.output=`(?:^|${O}|${w(e)}${O})`,n.output=r.output,n.globstar=true,X(s+$()),_({type:"slash",value:"/",output:""});continue}n.output=n.output.slice(0,-r.output.length),r.type="globstar",r.output=w(e),r.value+=s,n.output+=r.output,n.globstar=true,X(s);continue}let L={type:"star",value:s,output:E};if(e.bash===true){L.output=".*?",(r.type==="bos"||r.type==="slash")&&(L.output=P+L.output),_(L);continue}if(r&&(r.type==="bracket"||r.type==="paren")&&e.regex===true){L.output=s,_(L);continue}(n.index===n.start||r.type==="slash"||r.type==="dot")&&(r.type==="dot"?(n.output+=V,r.output+=V):e.dot===true?(n.output+=W,r.output+=W):(n.output+=P,r.output+=P),x()!=="*"&&(n.output+=B,r.output+=B)),_(L);}for(;n.brackets>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing","]"));n.output=U.escapeLast(n.output,"["),z("brackets");}for(;n.parens>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing",")"));n.output=U.escapeLast(n.output,"("),z("parens");}for(;n.braces>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing","}"));n.output=U.escapeLast(n.output,"{"),z("braces");}if(e.strictSlashes!==true&&(r.type==="star"||r.type==="bracket")&&_({type:"maybe_slash",value:"",output:`${O}?`}),n.backtrack===true){n.output="";for(let a of n.tokens)n.output+=a.output!=null?a.output:a.value,a.suffix&&(n.output+=a.suffix);}return n},"parse");he.fastpaths=(t,u)=>{let e={...u},l=typeof e.maxLength=="number"?Math.min(ae,e.maxLength):ae,c=t.length;if(c>l)throw new SyntaxError(`Input length: ${c}, exceeds maximum allowed length: ${l}`);t=Ie[t]||t;let{DOT_LITERAL:p,SLASH_LITERAL:i,ONE_CHAR:f,DOTS_SLASH:b,NO_DOT:N,NO_DOTS:g,NO_DOTS_SLASH:k,STAR:O,START_ANCHOR:B}=ne.globChars(e.windows),S=e.dot?g:N,v=e.dot?k:N,V=e.capture?"":"?:",W={negated:false,prefix:""},y=e.bash===true?".*?":O;e.capture&&(y=`(${y})`);let q=a(P=>P.noglobstar===true?y:`(${V}(?:(?!${B}${P.dot?b:p}).)*?)`,"globstar"),Y=a(P=>{switch(P){case "*":return `${S}${f}${y}`;case ".*":return `${p}${f}${y}`;case "*.*":return `${S}${y}${p}${f}${y}`;case "*/*":return `${S}${y}${i}${f}${v}${y}`;case "**":return S+q(e);case "**/*":return `(?:${S}${q(e)}${i})?${v}${f}${y}`;case "**/*.*":return `(?:${S}${q(e)}${i})?${v}${y}${p}${f}${y}`;case "**/.*":return `(?:${S}${q(e)}${i})?${p}${f}${y}`;default:{let A=/^(.*?)\.(\w+)$/.exec(P);if(!A)return;let E=Y(A[1]);return E?E+p+A[2]:void 0}}},"create"),D=U.removePrefix(t,W),w=Y(D);return w&&e.strictSlashes!==true&&(w+=`${i}?`),w};we.exports=he;});var Ge=b((It,Be)=>{var xt=me(),Ee=ke(),De=se(),bt=te(),yt=a(t=>t&&typeof t=="object"&&!Array.isArray(t),"isObject"),T=a((t,u,e=false)=>{if(Array.isArray(t)){let g=t.map(O=>T(O,u,e));return a(O=>{for(let B of g){let S=B(O);if(S)return S}return false},"arrayMatcher")}let l=yt(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!l)throw new TypeError("Expected pattern to be a non-empty string");let c=u||{},p=c.windows,i=l?T.compileRe(t,u):T.makeRe(t,u,false,true),f=i.state;delete i.state;let b=a(()=>false,"isIgnored");if(c.ignore){let g={...u,ignore:null,onMatch:null,onResult:null};b=T(c.ignore,g,e);}let N=a((g,k=false)=>{let{isMatch:O,match:B,output:S}=T.test(g,i,u,{glob:t,posix:p}),v={glob:t,state:f,regex:i,posix:p,input:g,output:S,match:B,isMatch:O};return typeof c.onResult=="function"&&c.onResult(v),O===false?(v.isMatch=false,k?v:false):b(g)?(typeof c.onIgnore=="function"&&c.onIgnore(v),v.isMatch=false,k?v:false):(typeof c.onMatch=="function"&&c.onMatch(v),k?v:true)},"matcher");return e&&(N.state=f),N},"picomatch");T.test=(t,u,e,{glob:l,posix:c}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return {isMatch:false,output:""};let p=e||{},i=p.format||(c?De.toPosixSlashes:null),f=t===l,b=f&&i?i(t):t;return f===false&&(b=i?i(t):t,f=b===l),(f===false||p.capture===true)&&(p.matchBase===true||p.basename===true?f=T.matchBase(t,u,e,c):f=u.exec(b)),{isMatch:!!f,match:f,output:b}};T.matchBase=(t,u,e)=>(u instanceof RegExp?u:T.makeRe(u,e)).test(De.basename(t));T.isMatch=(t,u,e)=>T(u,e)(t);T.parse=(t,u)=>Array.isArray(t)?t.map(e=>T.parse(e,u)):Ee(t,{...u,fastpaths:false});T.scan=(t,u)=>xt(t,u);T.compileRe=(t,u,e=false,l=false)=>{if(e===true)return t.output;let c=u||{},p=c.contains?"":"^",i=c.contains?"":"$",f=`${p}(?:${t.output})${i}`;t&&t.negated===true&&(f=`^(?!${f}).*$`);let b=T.toRegex(f,u);return l===true&&(b.state=t),b};T.makeRe=(t,u={},e=false,l=false)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let c={negated:false,fastpaths:true};return u.fastpaths!==false&&(t[0]==="."||t[0]==="*")&&(c.output=Ee.fastpaths(t,u)),c.output||(c=Ee(t,u)),T.compileRe(c,u,e,l)};T.toRegex=(t,u)=>{try{let e=u||{};return new RegExp(t,e.flags||(e.nocase?"i":""))}catch(e){if(u&&u.debug===true)throw e;return /$^/}};T.constants=bt;Be.exports=T;});var Ct=b((Nt,Ue)=>{var Me=Ge(),dt=se();function Pe(t,u,e=false){return u&&(u.windows===null||u.windows===void 0)&&(u={...u,windows:dt.isWindows()}),Me(t,u,e)}a(Pe,"picomatch");Object.assign(Pe,Me);Ue.exports=Pe;});export{Ct as a};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$2}from'./chunk-XVWUDOVN.mjs';import {b as b$1}from'./chunk-SSCTJUNB.mjs';import {a as a$5}from'./chunk-72AD4PZH.mjs';import {a as a$3}from'./chunk-HPF6K6WO.mjs';import {a as a$7}from'./chunk-7JG555TZ.mjs';import {a as a$6}from'./chunk-EPNDXIQH.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {a as a$4}from'./chunk-OJJZ7CLB.mjs';import {j,f,d as d$1}from'./chunk-KJPN6E7W.mjs';import {o}from'./chunk-SXO3YBPY.mjs';import {d}from'./chunk-R3RSOZXN.mjs';import {b}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
3
- async function L(n){try{let o=await readFile(join(n,"package.json"),"utf-8"),r=JSON.parse(o);if(!r.plunk||typeof r.plunk!="object")return {};let t={},e=r.plunk;return typeof e.buildCmd=="string"&&(t.buildCmd=e.buildCmd),Array.isArray(e.watchPatterns)&&(t.watchPatterns=e.watchPatterns.filter(i=>typeof i=="string")),typeof e.debounce=="number"&&Number.isFinite(e.debounce)&&(t.debounce=e.debounce),typeof e.cooldown=="number"&&Number.isFinite(e.cooldown)&&(t.cooldown=e.cooldown),typeof e.historyLimit=="number"&&Number.isFinite(e.historyLimit)&&(t.historyLimit=Math.max(0,Math.floor(e.historyLimit))),typeof e.notify=="boolean"&&(t.notify=e.notify),d(`[config] Loaded plunk config from package.json: ${JSON.stringify(t)}`),t}catch{return {}}}a(L,"loadPlunkConfig");var J=o(4);async function nt(n,o={}){let r=new a$1,t=await a$2(n,{runScripts:o.runScripts,force:o.force,historyLimit:o.historyLimit});if(t.skipped){b.info("No changes to push");return}let e=await b$1(t.name,t.version);if(!e){a$3(`Failed to read store entry for ${t.name}@${t.version} after publish`);return}let i=await j(t.name);if(i.length===0){b.success(`Published ${t.name}@${t.version} to store`),b.info("No consumers registered yet. Run 'plunk add "+t.name+"' in a consumer project to start receiving pushes."),a$4({name:t.name,version:t.version,buildId:t.buildId,consumers:0,failedConsumers:0,copied:0,skipped:0,elapsed:r.elapsedMs()});return}let c=0,l=0,s=0,p=0,b$2=await Promise.all(i.map(d$2=>J(async()=>{let g=await f(d$2,t.name);if(!g)return d(`[push] No link found for ${t.name} in ${d$2}, skipping`),null;try{let f=await a$5(e,d$2,g.packageManager,{force:o.force});return await d$1(d$2,t.name,{...g,contentHash:e.meta.contentHash,linkedAt:new Date().toISOString(),buildId:e.meta.buildId??""}),f}catch(f){return b.warn(`Failed to push to ${d$2}: ${f instanceof Error?f.message:String(f)}`),null}})));for(let d of b$2)d?(c+=d.copied,l+=d.skipped,s++):p++;let M=t.buildId?` [${t.buildId}]`:"";b.success(`Pushed ${t.name}@${t.version}${M} to ${s} consumer(s) in ${r.elapsed()} (${c} files changed, ${l} unchanged)`),a$4({name:t.name,version:t.version,buildId:t.buildId,consumers:s,failedConsumers:p,copied:c,skipped:l,elapsed:r.elapsedMs()});}a(nt,"doPush");function W(n){if(!n)return;let o=parseInt(n,10);return Number.isFinite(o)?o:void 0}a(W,"parseMs");async function rt(n,o,r){let{startWatcher:t}=await import('./watcher-MH45TB3S.mjs'),e=await L(n),{buildCmd:i,patterns:c}=await E(n,o,e),l=o.notify??e.notify??false,s=await t(n,{patterns:c,buildCmd:i,debounce:W(o.debounce)??e.debounce,cooldown:W(o.cooldown)??e.cooldown,notify:l},r);await new Promise(p=>{let b$1=a(async()=>{b.info("Stopping watcher..."),await s.close(),p();},"cleanup");process.once("SIGINT",b$1),process.once("SIGTERM",b$1);});}a(rt,"startWatchMode");async function E(n,o,r){let t=o.build,e=r?.watchPatterns;if(!o.build){if(!o["skip-build"])if(r?.buildCmd)t=r.buildCmd,b.info(`Using build command from config: ${t}`);else {let i=await a$6(n),c=await a$7(n,i);c&&(t=c,b.info(`Auto-detected build command: ${c}`));}}if(t){let{exists:i}=await import('./fs-J2TUM3EM.mjs'),c=["src","lib","source","app","pages","components"],l=(await Promise.all(c.map(async s=>({dir:s,exists:await i(join(n,s))})))).filter(s=>s.exists).map(s=>s.dir);e=l.length>0?l:["src","lib"],d(`[watch] Using source patterns with build command: ${e.join(", ")}`);}else {b.info("No build command detected \u2014 watching output directories directly");try{let i=JSON.parse(await readFile(join(n,"package.json"),"utf-8"));i.files&&i.files.length>0?(e=i.files,b.info(`Watching from package.json "files": ${e.join(", ")}`)):b.warn('No "files" field in package.json \u2014 falling back to watching src/ and lib/. Add a "files" field or use --build to specify a build command.');}catch(i){d(`[watch] Could not read package.json: ${i instanceof Error?i.message:String(i)}`);}}return {buildCmd:t,patterns:e}}a(E,"resolveWatchConfig");async function st(n,o,r){let t=!o["no-cascade"],{WatchOrchestrator:e}=await import('./watch-orchestrator-6X33Y6OT.mjs');await new e(t).start(n,o,r);}a(st,"startMultiWatchMode");export{L as a,nt as b,rt as c,E as d,st as e};
2
+ import {createRequire}from'node:module';import {a as a$2}from'./chunk-AGBIDPNK.mjs';import {b as b$1}from'./chunk-SSCTJUNB.mjs';import {a as a$5}from'./chunk-72AD4PZH.mjs';import {a as a$3}from'./chunk-HPF6K6WO.mjs';import {a as a$7}from'./chunk-7JG555TZ.mjs';import {a as a$6}from'./chunk-EPNDXIQH.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {a as a$4}from'./chunk-OJJZ7CLB.mjs';import {j,f,d as d$1}from'./chunk-KJPN6E7W.mjs';import {o}from'./chunk-SXO3YBPY.mjs';import {d}from'./chunk-R3RSOZXN.mjs';import {b}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
3
+ async function L(n){try{let o=await readFile(join(n,"package.json"),"utf-8"),r=JSON.parse(o);if(!r.plunk||typeof r.plunk!="object")return {};let t={},e=r.plunk;return typeof e.buildCmd=="string"&&(t.buildCmd=e.buildCmd),Array.isArray(e.watchPatterns)&&(t.watchPatterns=e.watchPatterns.filter(i=>typeof i=="string")),typeof e.debounce=="number"&&Number.isFinite(e.debounce)&&(t.debounce=e.debounce),typeof e.cooldown=="number"&&Number.isFinite(e.cooldown)&&(t.cooldown=e.cooldown),typeof e.historyLimit=="number"&&Number.isFinite(e.historyLimit)&&(t.historyLimit=Math.max(0,Math.floor(e.historyLimit))),typeof e.notify=="boolean"&&(t.notify=e.notify),d(`[config] Loaded plunk config from package.json: ${JSON.stringify(t)}`),t}catch{return {}}}a(L,"loadPlunkConfig");var J=o(4);async function nt(n,o={}){let r=new a$1,t=await a$2(n,{runScripts:o.runScripts,force:o.force,historyLimit:o.historyLimit});if(t.skipped){b.info("No changes to push");return}let e=await b$1(t.name,t.version);if(!e){a$3(`Failed to read store entry for ${t.name}@${t.version} after publish`);return}let i=await j(t.name);if(i.length===0){b.success(`Published ${t.name}@${t.version} to store`),b.info("No consumers registered yet. Run 'plunk add "+t.name+"' in a consumer project to start receiving pushes."),a$4({name:t.name,version:t.version,buildId:t.buildId,consumers:0,failedConsumers:0,copied:0,skipped:0,elapsed:r.elapsedMs()});return}let c=0,l=0,s=0,p=0,b$2=await Promise.all(i.map(d$2=>J(async()=>{let g=await f(d$2,t.name);if(!g)return d(`[push] No link found for ${t.name} in ${d$2}, skipping`),null;try{let f=await a$5(e,d$2,g.packageManager,{force:o.force});return await d$1(d$2,t.name,{...g,contentHash:e.meta.contentHash,linkedAt:new Date().toISOString(),buildId:e.meta.buildId??""}),f}catch(f){return b.warn(`Failed to push to ${d$2}: ${f instanceof Error?f.message:String(f)}`),null}})));for(let d of b$2)d?(c+=d.copied,l+=d.skipped,s++):p++;let M=t.buildId?` [${t.buildId}]`:"";b.success(`Pushed ${t.name}@${t.version}${M} to ${s} consumer(s) in ${r.elapsed()} (${c} files changed, ${l} unchanged)`),a$4({name:t.name,version:t.version,buildId:t.buildId,consumers:s,failedConsumers:p,copied:c,skipped:l,elapsed:r.elapsedMs()});}a(nt,"doPush");function W(n){if(!n)return;let o=parseInt(n,10);return Number.isFinite(o)?o:void 0}a(W,"parseMs");async function rt(n,o,r){let{startWatcher:t}=await import('./watcher-MH45TB3S.mjs'),e=await L(n),{buildCmd:i,patterns:c}=await E(n,o,e),l=o.notify??e.notify??false,s=await t(n,{patterns:c,buildCmd:i,debounce:W(o.debounce)??e.debounce,cooldown:W(o.cooldown)??e.cooldown,notify:l},r);await new Promise(p=>{let b$1=a(async()=>{b.info("Stopping watcher..."),await s.close(),p();},"cleanup");process.once("SIGINT",b$1),process.once("SIGTERM",b$1);});}a(rt,"startWatchMode");async function E(n,o,r){let t=o.build,e=r?.watchPatterns;if(!o.build){if(!o["skip-build"])if(r?.buildCmd)t=r.buildCmd,b.info(`Using build command from config: ${t}`);else {let i=await a$6(n),c=await a$7(n,i);c&&(t=c,b.info(`Auto-detected build command: ${c}`));}}if(t){let{exists:i}=await import('./fs-J2TUM3EM.mjs'),c=["src","lib","source","app","pages","components"],l=(await Promise.all(c.map(async s=>({dir:s,exists:await i(join(n,s))})))).filter(s=>s.exists).map(s=>s.dir);e=l.length>0?l:["src","lib"],d(`[watch] Using source patterns with build command: ${e.join(", ")}`);}else {b.info("No build command detected \u2014 watching output directories directly");try{let i=JSON.parse(await readFile(join(n,"package.json"),"utf-8"));i.files&&i.files.length>0?(e=i.files,b.info(`Watching from package.json "files": ${e.join(", ")}`)):b.warn('No "files" field in package.json \u2014 falling back to watching src/ and lib/. Add a "files" field or use --build to specify a build command.');}catch(i){d(`[watch] Could not read package.json: ${i instanceof Error?i.message:String(i)}`);}}return {buildCmd:t,patterns:e}}a(E,"resolveWatchConfig");async function st(n,o,r){let t=!o["no-cascade"],{WatchOrchestrator:e}=await import('./watch-orchestrator-3KTS3DMY.mjs');await new e(t).start(n,o,r);}a(st,"startMultiWatchMode");export{L as a,nt as b,rt as c,E as d,st as e};
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$2}from'./chunk-SSCTJUNB.mjs';import {a as a$3}from'./chunk-U376XMQP.mjs';import {a}from'./chunk-HW7AEGI3.mjs';import {o,m,s,p,e,z,y,t,A,w,x,q}from'./chunk-SXO3YBPY.mjs';import {d,b as b$1}from'./chunk-R3RSOZXN.mjs';import {b}from'./chunk-ICCM7US5.mjs';import {c,a as a$1}from'./chunk-2VCW5RWI.mjs';import {stat,readFile,readdir,writeFile,rename}from'fs/promises';import {resolve,join,relative,sep,dirname}from'path';import {spawn}from'child_process';import {availableParallelism,platform}from'os';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a as a$2}from'./chunk-SSCTJUNB.mjs';import {a as a$3}from'./chunk-U376XMQP.mjs';import {a}from'./chunk-3KNUBUPH.mjs';import {o,m,s,p,e,z,y,t,A,w,x,q}from'./chunk-SXO3YBPY.mjs';import {d,b as b$1}from'./chunk-R3RSOZXN.mjs';import {b}from'./chunk-ICCM7US5.mjs';import {c,a as a$1}from'./chunk-2VCW5RWI.mjs';import {stat,readFile,readdir,writeFile,rename}from'fs/promises';import {resolve,join,relative,sep,dirname}from'path';import {spawn}from'child_process';import {availableParallelism,platform}from'os';globalThis.require=createRequire(import.meta.url);
3
3
  var P=c(a(),1);async function Y(s$1,n){let i=[],t=resolve(s$1);i.push(join(t,"package.json"));let e=await Z(t,t),r=e.map(a=>m(relative(t,a)));if(n.files&&n.files.length>0)for(let a of n.files){let o=join(t,a),u=resolve(o);if(!u.startsWith(t+sep)&&u!==t){b.warn(`files pattern "${a}" escapes package directory, skipping`);continue}let c=false;try{if((await stat(o)).isDirectory()){let b=m(relative(t,o))+"/";for(let f=0;f<r.length;f++)r[f].startsWith(b)&&i.push(e[f]);c=!0;}else i.push(o),c=!0;}catch(d){if(s(d)&&d.code!=="ENOENT")throw d}if(!c){let d=(0, P.default)(a,{dot:true}),b$1=0;for(let f=0;f<r.length;f++)if(d(r[f])){let E=resolve(e[f]);if(!E.startsWith(t+sep)&&E!==t)continue;i.push(e[f]),b$1++;}b$1===0&&b.warn(`files pattern "${a}" matched no files`);}}else {let a=await pe(t);for(let o=0;o<r.length;o++)ue(r[o],a)||i.push(e[o]);}let p=new Set(i),l=new Set(e);for(let a of ["README.md","README","LICENSE","LICENCE","CHANGELOG.md"]){let o=join(t,a);p.has(o)||l.has(o)&&(i.push(o),p.add(o));}return [...p]}a$1(Y,"resolvePackFiles");var fe=new Set(["node_modules",".git",".svn",".hg",".DS_Store",".npmrc",".plunk","test","tests","__tests__",".github",".vscode",".idea","coverage",".nyc_output","tsconfig.json","tsconfig.build.json",".eslintrc",".eslintrc.js",".eslintrc.json",".prettierrc",".prettierrc.js","jest.config.js","jest.config.ts","vitest.config.ts","vitest.config.js"]);function ue(s,n){for(let t of n.negations)if(t(s))return false;let i=s.split(/[\\/]/);for(let t of i)if(fe.has(t)||n.literals.has(t))return true;if(n.literals.has(s))return true;for(let t of n.patterns)if(t(s))return true;return false}a$1(ue,"shouldIgnore");async function pe(s$1){let n={literals:new Set,patterns:[],negations:[]};try{let i=await readFile(join(s$1,".npmignore"),"utf-8");for(let t of i.split(`
4
- `)){let e=t.trim();if(!(!e||e.startsWith("#")))if(e.startsWith("!")){let r=e.slice(1);X(r)?n.negations.push((0,P.default)(r,{dot:!0})):n.negations.push((0,P.default)(r,{dot:!0}));}else X(e)?n.patterns.push((0,P.default)(e,{dot:!0})):n.literals.add(e.replace(/\/$/,""));}}catch(i){if(s(i)&&i.code!=="ENOENT")throw i}return n}a$1(pe,"loadNpmIgnore");function X(s){return /[*?[\]{}()]/.test(s)}a$1(X,"hasGlobChars");async function Z(s$1,n){let i=[];try{let t=await readdir(s$1,{withFileTypes:!0});for(let e of t){let r=join(s$1,e.name);if(e.isDirectory()){if(e.name===".git"||s$1===n&&e.name==="node_modules"||e.isSymbolicLink())continue;i.push(...await Z(r,n));}else e.isSymbolicLink()||i.push(r);}}catch(t){if(s(t)&&t.code==="ENOENT")return [];throw t}return i}a$1(Z,"collectAllFiles");var be=o(Math.max(availableParallelism(),8));async function Xe(s,n={}){let i=join(s,"package.json"),t$1;try{t$1=await readFile(i,"utf-8");}catch{throw new Error(`No package.json found in ${s}`)}let e$1=JSON.parse(t$1);if(!e$1.name)throw new Error("package.json missing 'name' field");if(!e$1.version)throw new Error("package.json missing 'version' field");if(e$1.private&&!n.allowPrivate)throw new Error(`Package "${e$1.name}" is private. Use --private flag to publish private packages.`);await $(s,e$1,"preplunk"),n.runScripts!==false&&await $(s,e$1,"prepack");let r=s;if(e$1.publishConfig?.directory){r=resolve(s,e$1.publishConfig.directory);try{if(!(await stat(r)).isDirectory())throw new Error(`publishConfig.directory "${e$1.publishConfig.directory}" is not a directory`)}catch(c){throw c instanceof Error&&"code"in c&&c.code==="ENOENT"?new Error(`publishConfig.directory "${e$1.publishConfig.directory}" does not exist`):c}d(`[publish] Using publishConfig.directory: ${r}`);}let p$1=r!==s?JSON.parse(await readFile(join(r,"package.json"),"utf-8").catch(()=>JSON.stringify(e$1))):e$1,l=await Y(r,p$1);if(l.length===0)throw new Error("No publishable files found");d(`[publish] Resolved ${l.length} files for ${e$1.name}@${e$1.version}`);let a=await p(l,r);if(await Ce(e$1,s),await Se(e$1,s),!n.force){let c=await a$2(e$1.name,e$1.version);if(c&&c.contentHash===a)return b.info(`${e$1.name}@${e$1.version} already up to date (no changes since last publish)`),{name:e$1.name,version:e$1.version,fileCount:l.length,skipped:true,contentHash:a,buildId:c.buildId??""}}let o=e(e$1.name,e$1.version),u=await a$3(o+".lock",async()=>{if(!n.force){let f=await a$2(e$1.name,e$1.version);if(f&&f.contentHash===a)return b.info(`${e$1.name}@${e$1.version} already up to date (no changes since last publish)`),{name:e$1.name,version:e$1.version,fileCount:l.length,skipped:true,contentHash:a,buildId:f.buildId??""}}let c=o+`.tmp-${process.pid}-${Date.now()}`,d$1=join(c,"package"),b$1=a.slice(9,17);try{await z(d$1);let f=ke(e$1);f=Pe(f),d("[publish] Copying files to temp store...");let E=new Set(l.map(g=>dirname(join(d$1,relative(r,g)))));await Promise.all([...E].map(g=>y(g))),await Promise.all(l.map(g=>be(async()=>{let D=relative(r,g),F=join(d$1,D);D==="package.json"&&f!==e$1?await writeFile(F,JSON.stringify(f,null,2)):await t(g,F,{ensureParent:!1});}))),r!==s&&await writeFile(join(d$1,"package.json"),JSON.stringify(f,null,2));let ie={schemaVersion:1,contentHash:a,publishedAt:new Date().toISOString(),sourcePath:s,buildId:b$1};await writeFile(join(c,".plunk-meta.json"),JSON.stringify(ie,null,2));let _=await A(o),O=o+".old-"+Date.now();if(_&&await rename(o,O),await w(c,o),_){try{let{captureHistory:g}=await import('./history-UND5QZKN.mjs');await g(e$1.name,e$1.version,O,n.historyLimit);}catch(g){d(`[publish] History capture failed: ${g instanceof Error?g.message:String(g)}`);}await x(O);}d(`[publish] Stored at ${o}`);}catch(f){throw await x(c),f}return {name:e$1.name,version:e$1.version,fileCount:l.length,skipped:false,contentHash:a,buildId:b$1}},{stale:6e4});return u.skipped||(n.runScripts!==false&&await $(s,e$1,"postpack"),await $(s,e$1,"postplunk"),b.success(`Published ${e$1.name}@${e$1.version} (${l.length} files) [${u.buildId}]`)),u}a$1(Xe,"publish");var te=parseInt(process.env.PLUNK_HOOK_TIMEOUT??"30000",10);async function $(s,n,i){let t=n.scripts?.[i];if(t){if(b$1()){q({type:"lifecycle-skip",path:s,detail:`${i}: ${t}`});return}return d(`[lifecycle] Running ${i}: ${t}`),new Promise((e,r)=>{let p=platform()==="win32",o=spawn(p?"cmd":"sh",[p?"/c":"-c",t],{cwd:s,stdio:"inherit"}),u=setTimeout(()=>{o.kill("SIGTERM"),r(new Error(`${i} script timed out after ${te/1e3}s. Increase PLUNK_HOOK_TIMEOUT env var if the script needs more time.`));},te);o.on("close",c=>{clearTimeout(u),c===0?e():r(new Error(`${i} script failed with exit code ${c}`));}),o.on("error",c=>{clearTimeout(u),r(new Error(`${i} script error: ${c.message}`));});})}}a$1($,"runLifecycleHook");var ve=["main","module","exports","types","typings","browser","bin"];function Pe(s){if(!s.publishConfig)return s;let n={...s};for(let i of ve)i in s.publishConfig&&(n[i]=s.publishConfig[i]);return delete n.publishConfig,n}a$1(Pe,"applyPublishConfig");function ke(s){let n=false,i={...s},t=null,e=false;for(let r of ["dependencies","devDependencies","peerDependencies","optionalDependencies"]){let p=s[r];if(!p)continue;let l=false,a={...p};for(let[o,u]of Object.entries(p))if(u.startsWith("workspace:")){let c=u.slice(10);if(c==="*"||c==="^"||c==="~"){let d=S?.versions.get(o)??s.version;a[o]=c==="*"?d:c+d;}else a[o]=c;l=true,n=true;}else if(u.startsWith("catalog:"))if(e||(t=$e(),e=true),t){let c=Ee(u,o,t);c?(a[o]=c,l=true,n=true):b.warn(`catalog: specifier for "${o}" could not be resolved \u2014 published package.json will contain "${u}" which may cause install failures`);}else d(`[publish] No pnpm-workspace.yaml found, cannot resolve catalog: for "${o}"`);l&&(i[r]=a);}return n?i:s}a$1(ke,"rewriteProtocolVersions");function Ee(s,n,i){let t=s.slice(8);return t===""||t==="default"?i.default[n]??null:i.named[t]?.[n]??null}a$1(Ee,"resolveCatalogVersion");var R=null;async function ne(s){if(R?.dir===s)return R.root;let{findWorkspaceRoot:n}=await import('./workspace-V5YKJN5V.mjs'),i=await n(s);return R={dir:s,root:i},i}a$1(ne,"getWorkspaceRoot");var S=null;async function Ce(s,n){if(!["dependencies","devDependencies","peerDependencies","optionalDependencies"].some(l=>{let a=s[l];return a&&Object.values(a).some(o=>o.startsWith("workspace:"))}))return;let t=await ne(n);if(!t){S=null;return}if(S?.root===t)return;let{findWorkspacePackages:e}=await import('./workspace-V5YKJN5V.mjs'),r=await e(t),p=new Map;await Promise.all(r.map(async l=>{try{let a=JSON.parse(await readFile(join(l,"package.json"),"utf-8"));a.name&&a.version&&p.set(a.name,a.version);}catch{}})),S={root:t,versions:p};}a$1(Ce,"preloadWorkspaceVersions");var k=null;function $e(){return k?.catalogs??null}a$1($e,"loadCatalogsFromCache");async function Se(s,n){if(!["dependencies","devDependencies","peerDependencies","optionalDependencies"].some(a=>{let o=s[a];return o&&Object.values(o).some(u=>u.startsWith("catalog:"))}))return;let t=await ne(n);if(!t){k=null;return}let e=join(t,"pnpm-workspace.yaml"),r=(await stat(e).catch(()=>null))?.mtimeMs??0;if(k?.root===t&&k.mtimeMs===r)return;let{parseCatalogs:p}=await import('./workspace-V5YKJN5V.mjs'),l=await p(t);k={root:t,mtimeMs:r,catalogs:l};}a$1(Se,"preloadCatalogs");export{Xe as a};
4
+ `)){let e=t.trim();if(!(!e||e.startsWith("#")))if(e.startsWith("!")){let r=e.slice(1);X(r)?n.negations.push((0,P.default)(r,{dot:!0})):n.negations.push((0,P.default)(r,{dot:!0}));}else X(e)?n.patterns.push((0,P.default)(e,{dot:!0})):n.literals.add(e.replace(/\/$/,""));}}catch(i){if(s(i)&&i.code!=="ENOENT")throw i}return n}a$1(pe,"loadNpmIgnore");function X(s){return /[*?[\]{}()]/.test(s)}a$1(X,"hasGlobChars");async function Z(s$1,n){let i=[];try{let t=await readdir(s$1,{withFileTypes:!0});for(let e of t){let r=join(s$1,e.name);if(e.isDirectory()){if(e.name===".git"||s$1===n&&e.name==="node_modules"||e.isSymbolicLink())continue;i.push(...await Z(r,n));}else e.isSymbolicLink()||i.push(r);}}catch(t){if(s(t)&&t.code==="ENOENT")return [];throw t}return i}a$1(Z,"collectAllFiles");var be=o(Math.max(availableParallelism(),8));async function Xe(s,n={}){let i=join(s,"package.json"),t$1;try{t$1=await readFile(i,"utf-8");}catch{throw new Error(`No package.json found in ${s}`)}let e$1=JSON.parse(t$1);if(!e$1.name)throw new Error("package.json missing 'name' field");if(!e$1.version)throw new Error("package.json missing 'version' field");if(e$1.private&&!n.allowPrivate)throw new Error(`Package "${e$1.name}" is private. Use --private flag to publish private packages.`);await $(s,e$1,"preplunk"),n.runScripts!==false&&await $(s,e$1,"prepack");let r=s;if(e$1.publishConfig?.directory){r=resolve(s,e$1.publishConfig.directory);try{if(!(await stat(r)).isDirectory())throw new Error(`publishConfig.directory "${e$1.publishConfig.directory}" is not a directory`)}catch(c){throw c instanceof Error&&"code"in c&&c.code==="ENOENT"?new Error(`publishConfig.directory "${e$1.publishConfig.directory}" does not exist`):c}d(`[publish] Using publishConfig.directory: ${r}`);}let p$1=r!==s?JSON.parse(await readFile(join(r,"package.json"),"utf-8").catch(()=>JSON.stringify(e$1))):e$1,l=await Y(r,p$1);if(l.length===0)throw new Error("No publishable files found");d(`[publish] Resolved ${l.length} files for ${e$1.name}@${e$1.version}`);let a=await p(l,r);if(await Ce(e$1,s),await Se(e$1,s),!n.force){let c=await a$2(e$1.name,e$1.version);if(c&&c.contentHash===a)return b.info(`${e$1.name}@${e$1.version} already up to date (no changes since last publish)`),{name:e$1.name,version:e$1.version,fileCount:l.length,skipped:true,contentHash:a,buildId:c.buildId??""}}let o=e(e$1.name,e$1.version),u=await a$3(o+".lock",async()=>{if(!n.force){let f=await a$2(e$1.name,e$1.version);if(f&&f.contentHash===a)return b.info(`${e$1.name}@${e$1.version} already up to date (no changes since last publish)`),{name:e$1.name,version:e$1.version,fileCount:l.length,skipped:true,contentHash:a,buildId:f.buildId??""}}let c=o+`.tmp-${process.pid}-${Date.now()}`,d$1=join(c,"package"),b$1=a.slice(9,17);try{await z(d$1);let f=ke(e$1);f=Pe(f),d("[publish] Copying files to temp store...");let E=new Set(l.map(g=>dirname(join(d$1,relative(r,g)))));await Promise.all([...E].map(g=>y(g))),await Promise.all(l.map(g=>be(async()=>{let D=relative(r,g),F=join(d$1,D);D==="package.json"&&f!==e$1?await writeFile(F,JSON.stringify(f,null,2)):await t(g,F,{ensureParent:!1});}))),r!==s&&await writeFile(join(d$1,"package.json"),JSON.stringify(f,null,2));let ie={schemaVersion:1,contentHash:a,publishedAt:new Date().toISOString(),sourcePath:s,buildId:b$1};await writeFile(join(c,".plunk-meta.json"),JSON.stringify(ie,null,2));let _=await A(o),O=o+".old-"+Date.now();if(_&&await rename(o,O),await w(c,o),_){try{let{captureHistory:g}=await import('./history-UND5QZKN.mjs');await g(e$1.name,e$1.version,O,n.historyLimit);}catch(g){d(`[publish] History capture failed: ${g instanceof Error?g.message:String(g)}`);}await x(O);}d(`[publish] Stored at ${o}`);}catch(f){throw await x(c),f}return {name:e$1.name,version:e$1.version,fileCount:l.length,skipped:false,contentHash:a,buildId:b$1}},{stale:6e4});return u.skipped||(n.runScripts!==false&&await $(s,e$1,"postpack"),await $(s,e$1,"postplunk"),b.success(`Published ${e$1.name}@${e$1.version} (${l.length} files) [${u.buildId}]`)),u}a$1(Xe,"publish");var te=parseInt(process.env.PLUNK_HOOK_TIMEOUT??"30000",10);async function $(s,n,i){let t=n.scripts?.[i];if(t){if(b$1()){q({type:"lifecycle-skip",path:s,detail:`${i}: ${t}`});return}return d(`[lifecycle] Running ${i}: ${t}`),new Promise((e,r)=>{let p=platform()==="win32",o=spawn(p?"cmd":"sh",[p?"/c":"-c",t],{cwd:s,stdio:"inherit"}),u=setTimeout(()=>{o.kill("SIGTERM"),r(new Error(`${i} script timed out after ${te/1e3}s. Increase PLUNK_HOOK_TIMEOUT env var if the script needs more time.`));},te);o.on("close",c=>{clearTimeout(u),c===0?e():r(new Error(`${i} script failed with exit code ${c}`));}),o.on("error",c=>{clearTimeout(u),r(new Error(`${i} script error: ${c.message}`));});})}}a$1($,"runLifecycleHook");var ve=["main","module","exports","types","typings","browser","bin"];function Pe(s){if(!s.publishConfig)return s;let n={...s};for(let i of ve)i in s.publishConfig&&(n[i]=s.publishConfig[i]);return delete n.publishConfig,n}a$1(Pe,"applyPublishConfig");function ke(s){let n=false,i={...s},t=null,e=false;for(let r of ["dependencies","devDependencies","peerDependencies","optionalDependencies"]){let p=s[r];if(!p)continue;let l=false,a={...p};for(let[o,u]of Object.entries(p))if(u.startsWith("workspace:")){let c=u.slice(10);if(c==="*"||c==="^"||c==="~"){let d=S?.versions.get(o)??s.version;a[o]=c==="*"?d:c+d;}else a[o]=c;l=true,n=true;}else if(u.startsWith("catalog:"))if(e||(t=$e(),e=true),t){let c=Ee(u,o,t);c?(a[o]=c,l=true,n=true):b.warn(`catalog: specifier for "${o}" could not be resolved \u2014 published package.json will contain "${u}" which may cause install failures`);}else d(`[publish] No pnpm-workspace.yaml found, cannot resolve catalog: for "${o}"`);l&&(i[r]=a);}return n?i:s}a$1(ke,"rewriteProtocolVersions");function Ee(s,n,i){let t=s.slice(8);return t===""||t==="default"?i.default[n]??null:i.named[t]?.[n]??null}a$1(Ee,"resolveCatalogVersion");var R=null;async function ne(s){if(R?.dir===s)return R.root;let{findWorkspaceRoot:n}=await import('./workspace-XSKXXCS2.mjs'),i=await n(s);return R={dir:s,root:i},i}a$1(ne,"getWorkspaceRoot");var S=null;async function Ce(s,n){if(!["dependencies","devDependencies","peerDependencies","optionalDependencies"].some(l=>{let a=s[l];return a&&Object.values(a).some(o=>o.startsWith("workspace:"))}))return;let t=await ne(n);if(!t){S=null;return}if(S?.root===t)return;let{findWorkspacePackages:e}=await import('./workspace-XSKXXCS2.mjs'),r=await e(t),p=new Map;await Promise.all(r.map(async l=>{try{let a=JSON.parse(await readFile(join(l,"package.json"),"utf-8"));a.name&&a.version&&p.set(a.name,a.version);}catch{}})),S={root:t,versions:p};}a$1(Ce,"preloadWorkspaceVersions");var k=null;function $e(){return k?.catalogs??null}a$1($e,"loadCatalogsFromCache");async function Se(s,n){if(!["dependencies","devDependencies","peerDependencies","optionalDependencies"].some(a=>{let o=s[a];return o&&Object.values(o).some(u=>u.startsWith("catalog:"))}))return;let t=await ne(n);if(!t){k=null;return}let e=join(t,"pnpm-workspace.yaml"),r=(await stat(e).catch(()=>null))?.mtimeMs??0;if(k?.root===t&&k.mtimeMs===r)return;let{parseCatalogs:p}=await import('./workspace-XSKXXCS2.mjs'),l=await p(t);k={root:t,mtimeMs:r,catalogs:l};}a$1(Se,"preloadCatalogs");export{Xe as a};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {b as b$1}from'./chunk-4KEAE5RS.mjs';import {d as d$1,c}from'./chunk-72AD4PZH.mjs';import {a as a$4}from'./chunk-HPF6K6WO.mjs';import {d as d$2}from'./chunk-EPNDXIQH.mjs';import {a as a$2}from'./chunk-MBKCCWSD.mjs';import {b as b$2,a as a$3}from'./chunk-OJJZ7CLB.mjs';import {e,i,a as a$1,f}from'./chunk-KJPN6E7W.mjs';import {r}from'./chunk-SXO3YBPY.mjs';import {d,b as b$3}from'./chunk-R3RSOZXN.mjs';import {b}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {basename,resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
- var A={meta:{name:"remove",description:"Remove a plunk-linked package and restore the original"},args:{package:{type:"positional",description:"Package name to remove",required:false},all:{type:"boolean",description:"Remove all linked packages",default:false},force:{type:"boolean",description:"Skip error checking",default:false},yes:{type:"boolean",alias:"y",description:"Skip confirmation prompts",default:false}},async run({args:i}){b$2();let e=new a$2,n=resolve(".");if(i.all){let u=await a$1(n),a=Object.entries(u.links);if(a.length===0){b.info("No linked packages to remove"),a$3({removed:0});return}if(!i.yes){let l=a.map(([m])=>m).join(", "),d=await b.prompt(`Remove ${a.length} linked package(s)? (${l})`,{type:"confirm"});if(!d||typeof d=="symbol"){b.info("Cancelled");return}}let r=0,s=0;for(let[l,d]of a)try{await E(n,l,d),r++;}catch(m){s++,b.warn(`Failed to remove ${l}: ${m instanceof Error?m.message:String(m)}`);}b.success(`Removed ${r} plunk link(s)${s>0?`, ${s} failed`:""} in ${e.elapsed()}`),a$3({removed:r,failed:s,elapsed:e.elapsedMs()});return}let o=i.package;o||(a$4("Package name required. Use --all to remove all linked packages."),process.exit(1));let f$1=await f(n,o);if(!f$1){if(i.force){b.warn(`Package "${o}" is not linked, skipping`),a$3({removed:0});return}a$4(`Package "${o}" is not linked in this project`),process.exit(1);}await E(n,o,f$1),b.success(`Removed plunk link for ${o} in ${e.elapsed()}`),a$3({removed:1,package:o,elapsed:e.elapsedMs()}),b$3()&&r();}};async function E(i$1,e$1,n){if(d(`[remove] Removing ${e$1}`),await d$1(i$1,e$1,n.packageManager),n.backupExists)try{await c(i$1,e$1,n.packageManager)&&b.success(`Restored original ${e$1} from backup`);}catch(r){b.warn(`Failed to restore backup for ${e$1}: ${r instanceof Error?r.message:String(r)}. Run your package manager's install command to restore it.`);}let o=await d$2(i$1);o.type==="next"&&o.configFile&&(await b$1(o.configFile,e$1)).modified&&d(`[remove] Removed ${e$1} from ${basename(o.configFile)}`);let{findTailwindCss:f,removeTailwindSource:u}=await import('./tailwind-source-FEK5ASYL.mjs'),a=await f(i$1);if(a&&(await u(a,e$1)).modified&&d(`[remove] Removed @source for ${e$1} from ${basename(a)}`),await e(i$1,e$1),await i(e$1,i$1),o.type==="vite"&&o.configFile){let r=await a$1(i$1);if(Object.keys(r.links).length===0){let{removeFromViteConfig:s}=await import('./vite-config-5RF5QMOC.mjs');(await s(o.configFile)).modified&&d(`[remove] Removed plunk plugin from ${basename(o.configFile)}`);}}}a(E,"removeSinglePackage");export{A as a,E as b};
2
+ import {createRequire}from'node:module';import {b as b$1}from'./chunk-TDOTYU7U.mjs';import {d as d$1,c}from'./chunk-72AD4PZH.mjs';import {a as a$4}from'./chunk-HPF6K6WO.mjs';import {d as d$2}from'./chunk-EPNDXIQH.mjs';import {a as a$2}from'./chunk-MBKCCWSD.mjs';import {b as b$2,a as a$3}from'./chunk-OJJZ7CLB.mjs';import {e,i,a as a$1,f}from'./chunk-KJPN6E7W.mjs';import {r}from'./chunk-SXO3YBPY.mjs';import {d,b as b$3}from'./chunk-R3RSOZXN.mjs';import {b}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {basename,resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
+ var A={meta:{name:"remove",description:"Remove a plunk-linked package and restore the original"},args:{package:{type:"positional",description:"Package name to remove",required:false},all:{type:"boolean",description:"Remove all linked packages",default:false},force:{type:"boolean",description:"Skip error checking",default:false},yes:{type:"boolean",alias:"y",description:"Skip confirmation prompts",default:false}},async run({args:i}){b$2();let e=new a$2,n=resolve(".");if(i.all){let u=await a$1(n),a=Object.entries(u.links);if(a.length===0){b.info("No linked packages to remove"),a$3({removed:0});return}if(!i.yes){let l=a.map(([m])=>m).join(", "),d=await b.prompt(`Remove ${a.length} linked package(s)? (${l})`,{type:"confirm"});if(!d||typeof d=="symbol"){b.info("Cancelled");return}}let r=0,s=0;for(let[l,d]of a)try{await E(n,l,d),r++;}catch(m){s++,b.warn(`Failed to remove ${l}: ${m instanceof Error?m.message:String(m)}`);}b.success(`Removed ${r} plunk link(s)${s>0?`, ${s} failed`:""} in ${e.elapsed()}`),a$3({removed:r,failed:s,elapsed:e.elapsedMs()});return}let o=i.package;o||(a$4("Package name required. Use --all to remove all linked packages."),process.exit(1));let f$1=await f(n,o);if(!f$1){if(i.force){b.warn(`Package "${o}" is not linked, skipping`),a$3({removed:0});return}a$4(`Package "${o}" is not linked in this project`),process.exit(1);}await E(n,o,f$1),b.success(`Removed plunk link for ${o} in ${e.elapsed()}`),a$3({removed:1,package:o,elapsed:e.elapsedMs()}),b$3()&&r();}};async function E(i$1,e$1,n){if(d(`[remove] Removing ${e$1}`),await d$1(i$1,e$1,n.packageManager),n.backupExists)try{await c(i$1,e$1,n.packageManager)&&b.success(`Restored original ${e$1} from backup`);}catch(r){b.warn(`Failed to restore backup for ${e$1}: ${r instanceof Error?r.message:String(r)}. Run your package manager's install command to restore it.`);}let o=await d$2(i$1);o.type==="next"&&o.configFile&&(await b$1(o.configFile,e$1)).modified&&d(`[remove] Removed ${e$1} from ${basename(o.configFile)}`);let{findTailwindCss:f,removeTailwindSource:u}=await import('./tailwind-source-FEK5ASYL.mjs'),a=await f(i$1);if(a&&(await u(a,e$1)).modified&&d(`[remove] Removed @source for ${e$1} from ${basename(a)}`),await e(i$1,e$1),await i(e$1,i$1),o.type==="vite"&&o.configFile){let r=await a$1(i$1);if(Object.keys(r.links).length===0){let{removeFromViteConfig:s}=await import('./vite-config-DZDIHZYU.mjs');(await s(o.configFile)).modified&&d(`[remove] Removed plunk plugin from ${basename(o.configFile)}`);}}}a(E,"removeSinglePackage");export{A as a,E as b};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {b as b$1,a as a$2}from'./chunk-SYADAYF4.mjs';import {b as b$2}from'./chunk-QDQKKMAV.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {d}from'./chunk-AS4SJVLT.mjs';import {d as d$1}from'./chunk-R3RSOZXN.mjs';import {b}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {b as b$1,a as a$2}from'./chunk-SYADAYF4.mjs';import {b as b$2}from'./chunk-7FIMHC6L.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {d}from'./chunk-T33YVNC6.mjs';import {d as d$1}from'./chunk-R3RSOZXN.mjs';import {b}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
3
3
  async function v(g,l={}){let $=new a$1,n=await d(g);if(n.packages.length===0){b.warn("No workspace packages found");return}let o;try{o=b$1(n.adjacency);}catch(r){if(r instanceof a$2){b.error(`Cannot push: ${r.message}`);return}throw r}let w=new Map(n.packages.map(r=>[r.name,r.dir]));b.info(`Pushing ${o.length} packages in dependency order`),d$1(`[batch-push] Order: ${o.join(" \u2192 ")}`);let a=0,t=0;for(let r of o){let i=w.get(r);if(i)try{await b$2(i,l),a++;}catch(s){b.warn(`Failed to push ${r}: ${s instanceof Error?s.message:String(s)}`),t++;}}b.success(`Pushed ${a}/${o.length} packages in ${$.elapsed()}${t>0?` (${t} failed)`:""}`);}a(v,"doPushAll");export{v as a};
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {B}from'./chunk-SXO3YBPY.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';globalThis.require=createRequire(import.meta.url);
3
+ function d(n){return n.match(/^(\s+)\S/m)?.[1]||" "}a(d,"detectIndent");function m(n){return n.includes("@olegkuibar/plunk/vite")||n.includes("vite-plugin-plunk")}a(m,"hasPlunkPlugin");function k(n){let i=/(^|[^A-Za-z0-9_$])defineConfig\s*\(/g,l;for(;(l=i.exec(n))!==null;){let o=l.index+l[0].length-1,r=1,e=o+1,s=false,f=false;for(;e<n.length&&r>0;){let t=n[e];if(f){f=false,e++;continue}if(t==="\\"){f=true,e++;continue}if(s){t===s&&(s=false),e++;continue}if(t==='"'||t==="'"||t==="`"){s=t,e++;continue}if(t==="/"&&n[e+1]==="/"){let u=n.indexOf(`
4
+ `,e);e=u===-1?n.length:u+1;continue}if(t==="/"&&n[e+1]==="*"){let u=n.indexOf("*/",e+2);e=u===-1?n.length:u+2;continue}if(t==="?"){let u=n[e+1];if(u==="."||u==="?"){e+=2;continue}return true}t==="("&&r++,t===")"&&r--,e++;}i.lastIndex=e;}return false}a(k,"defineConfigUsesTernary");function p(n){let i=[],l="",o=0;for(let e of n)if(e==="("&&o++,e===")"&&o--,e===","&&o===0){let s=l.trim();s&&i.push(s),l="";}else l+=e;let r=l.trim();return r&&i.push(r),i}a(p,"parsePluginItems");function h(n,i){return n.length===0?"[]":n.length===1?`[${n[0]}]`:`[
5
+ ${n.map(o=>`${i}${i}${o},`).join(`
6
+ `)}
7
+ ${i}]`}a(h,"formatPlugins");function x(n){let l=/plugins\s*:\s*\[/g.exec(n);if(!l)return null;let o=l.index+l[0].length-1,r=1,e=o+1,s=false,f=false;for(;e<n.length&&r>0;){let t=n[e];if(f){f=false,e++;continue}if(t==="\\"){f=true,e++;continue}if(s){t===s&&(s=false),e++;continue}if(t==='"'||t==="'"||t==="`"){s=t,e++;continue}if(t==="/"&&n[e+1]==="/"){let u=n.indexOf(`
8
+ `,e);e=u===-1?n.length:u+1;continue}if(t==="/"&&n[e+1]==="*"){let u=n.indexOf("*/",e+2);e=u===-1?n.length:u+2;continue}(t==="["||t==="("||t==="{")&&r++,(t==="]"||t===")"||t==="}")&&r--,e++;}return r!==0?null:{start:o,end:e,inner:n.slice(o+1,e-1)}}a(x,"findPluginsArray");function w(n){let i=0,l=/^import\s/gm,o;for(;(o=l.exec(n))!==null;){let r=o.index,e=r+o[0].length,s=false,f=0;for(;e<n.length;){let t=n[e];if(s){t===s&&(s=false),e++;continue}if(t==='"'||t==="'"||t==="`"){s=t,e++;continue}if(t==="{"&&f++,t==="}"&&f--,t===";"&&f<=0){e++;break}if(t===`
9
+ `&&f<=0){let u=n.slice(r,e).trimEnd();if(u.endsWith('"')||u.endsWith("'"))break}e++;}i=e;}return i}a(w,"findLastImportEnd");function y(n){return k(n)?{complex:true,reason:"conditional defineConfig"}:/export\s+default\s+function/.test(n)?{complex:true,reason:"dynamic export (function)"}:/plugins\s*:\s*\[\s*\.\.\./.test(n)?{complex:true,reason:"spread operator in plugins array"}:/defineConfig\s*\(\s*async/.test(n)||/mergeConfig\s*\(/.test(n)?{complex:true,reason:"async or merged config"}:{complex:false}}a(y,"isComplexConfig");async function $(n){let i;try{i=await readFile(n,"utf-8");}catch{return {modified:false,error:"could not read config file"}}if(m(i))return {modified:false};let l=y(i);if(l.complex)return {modified:false,error:`config too complex (${l.reason})`};let o=d(i),r=x(i);if(r){let f=p(r.inner);f.push("plunk()");let t=h(f,o);i=i.slice(0,r.start)+t+i.slice(r.end);}else {let t=/(?:defineConfig\s*\(\s*\{|export\s+default\s+\{)/.exec(i);if(t){let u=t.index+t[0].length,b=`
10
+ ${o}plugins: [plunk()],`;i=i.slice(0,u)+b+i.slice(u);}else return {modified:false,error:"unrecognized Vite config pattern"}}let e=`import plunk from "@olegkuibar/plunk/vite";
11
+ `,s=w(i);return s>0?i=i.slice(0,s)+`
12
+ `+e+i.slice(s):i=e+`
13
+ `+i,await B(n,i),{modified:true}}a($,"addPlunkVitePlugin");async function R(n){let i;try{i=await readFile(n,"utf-8");}catch{return {modified:false}}if(!m(i))return {modified:false};let l=false,o=/^import\s+\w+\s+from\s+["']@olegkuibar\/plunk\/vite["'];?\s*\n?/m;o.test(i)&&(i=i.replace(o,""),l=true);let r=x(i);if(r){let e=p(r.inner),s=e.filter(f=>!f.startsWith("plunk("));if(s.length!==e.length){let f=d(i),t=h(s,f);i=i.slice(0,r.start)+t+i.slice(r.end),l=true;}}return l&&await B(n,i),{modified:l}}a(R,"removeFromViteConfig");export{y as a,$ as b,R as c};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a}from'./chunk-HW7AEGI3.mjs';import {A,m}from'./chunk-SXO3YBPY.mjs';import {c,a as a$1}from'./chunk-2VCW5RWI.mjs';import {readFile,readdir}from'fs/promises';import {join,dirname,relative,resolve}from'path';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a}from'./chunk-3KNUBUPH.mjs';import {A,m}from'./chunk-SXO3YBPY.mjs';import {c,a as a$1}from'./chunk-2VCW5RWI.mjs';import {readFile,readdir}from'fs/promises';import {join,dirname,relative,resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
3
  var w=c(a(),1);async function N(o){let t=o;for(;;){if(await A(join(t,"pnpm-workspace.yaml")))return t;let s=dirname(t);if(s===t)return null;t=s;}}a$1(N,"findWorkspaceRoot");async function $(o){let t={default:{},named:{}},s=join(o,"pnpm-workspace.yaml"),i;try{i=await readFile(s,"utf-8");}catch{return t}let r=i.split(/\r?\n/),e="top",n="";for(let a of r){if(a.trim()===""||a.trim().startsWith("#"))continue;let f=a.length-a.trimStart().length;if(f===0){if(a.startsWith("catalog:")){e="default-catalog";continue}if(a.startsWith("catalogs:")){e="named-catalogs";continue}e="top";continue}if(e==="default-catalog"&&f>=2){let c=S(a);c&&(t.default[c[0]]=c[1]);continue}if(e==="named-catalogs"&&f>=2&&f<4){let c=a.trim();c.endsWith(":")&&(n=c.slice(0,-1),t.named[n]={},e="named-catalog-entries");continue}if(e==="named-catalog-entries"&&f>=4){let c=S(a);c&&n&&(t.named[n][c[0]]=c[1]);continue}if(e==="named-catalog-entries"&&f>=2&&f<4){let c=a.trim();c.endsWith(":")?(n=c.slice(0,-1),t.named[n]={}):e="named-catalogs";continue}}return t}a$1($,"parseCatalogs");async function C(o){let t=await N(o);if(t){let i=await G(t),r=i.filter(n=>!n.startsWith("!")),e=i.filter(n=>n.startsWith("!")).map(n=>n.slice(1));if(r.length>0)return W(t,r,e)}let s=t??await O(o);if(!s)return [];try{let i=JSON.parse(await readFile(join(s,"package.json"),"utf-8")),r=Array.isArray(i.workspaces)?i.workspaces:i.workspaces?.packages??[];if(r.length===0)return [];let e=r.filter(a=>!a.startsWith("!")),n=r.filter(a=>a.startsWith("!")).map(a=>a.slice(1));return W(s,e,n)}catch{return []}}a$1(C,"findWorkspacePackages");async function G(o){let t=join(o,"pnpm-workspace.yaml"),s;try{s=await readFile(t,"utf-8");}catch{return []}let i=[],r=false;for(let e of s.split(/\r?\n/)){let n=e.trim();if(n===""||n.startsWith("#"))continue;let a=e.length-e.trimStart().length;if(a===0){r=n==="packages:";continue}if(r&&a>=2){let f=n.match(/^-\s+["']?([^"']+)["']?$/);f&&i.push(f[1]);}}return i}a$1(G,"parsePnpmWorkspacePackages");async function O(o){let t=o;for(;;){try{if(JSON.parse(await readFile(join(t,"package.json"),"utf-8")).workspaces)return t}catch{}let s=dirname(t);if(s===t)return null;t=s;}}a$1(O,"findPackageJsonWorkspaceRoot");async function W(o,t,s=[]){let i=[];for(let n of t)if(n.includes("*")){let a=n.split("/"),f=o,c=[],y=false;for(let g of a)y||g.includes("*")?(y=true,c.push(g)):f=join(f,g);if(c.length===1&&c[0]==="*")try{let g=await readdir(f,{withFileTypes:!0});for(let k of g)if(k.isDirectory()){let u=join(f,k.name);await A(join(u,"package.json"))&&i.push(u);}}catch{}else {let g=(0, w.default)(n),k=await j(o,8);for(let u of k){let b=m(relative(o,u));g(b)&&await A(join(u,"package.json"))&&i.push(u);}}}else {let a=resolve(o,n);await A(join(a,"package.json"))&&i.push(a);}let r=[...new Set(i)];if(s.length===0)return r;let e=(0, w.default)(s);return r.filter(n=>{let a=m(relative(o,n));return !e(a)})}a$1(W,"resolveWorkspaceGlobs");async function j(o,t){if(t<=0)return [];let s=[];try{let i=await readdir(o,{withFileTypes:!0});for(let r of i){if(!r.isDirectory()||r.name==="node_modules"||r.name===".git")continue;let e=join(o,r.name);s.push(e),s.push(...await j(e,t-1));}}catch{}return s}a$1(j,"collectDirs");async function z(o){let t=await C(o),s=[];for(let e of t)try{let n=JSON.parse(await readFile(join(e,"package.json"),"utf-8"));n.name&&n.version&&s.push({name:n.name,version:n.version,dir:e,pkg:n});}catch{}let i=new Set(s.map(e=>e.name)),r=new Map;for(let e of s){let n=new Set;for(let a of ["dependencies","devDependencies"]){let f=e.pkg[a];if(f)for(let c of Object.keys(f))i.has(c)&&n.add(c);}r.set(e.name,n);}return {packages:s,adjacency:r}}a$1(z,"buildWorkspaceGraph");function D(o){let t=new Map;for(let s of o.keys())t.set(s,new Set);for(let[s,i]of o)for(let r of i){let e=t.get(r);e||(e=new Set,t.set(r,e)),e.add(s);}return t}a$1(D,"buildReverseAdjacency");function S(o){let t=o.trim(),s=t.indexOf(":");if(s<=0)return null;let i=t.slice(0,s).trim(),r=t.slice(s+1).trim();if(!i||!r)return null;let e=r.replace(/^["']|["']$/g,"");return [i,e]}a$1(S,"parseKeyValue");export{N as a,$ as b,C as c,z as d,D as e};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$1}from'./chunk-HGXH6DYF.mjs';import {B}from'./chunk-SXO3YBPY.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a as a$1}from'./chunk-PEBBXITM.mjs';import {B}from'./chunk-SXO3YBPY.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';globalThis.require=createRequire(import.meta.url);
3
3
  function g(e){return e.match(/^(\s+)\S/m)?.[1]||" "}a(g,"detectIndent");function x(e){let r=[],t=/['"]([^'"]*)['"]/g,n;for(;(n=t.exec(e))!==null;)r.push(n[1]);return r}a(x,"parseArrayItems");function w(e,r){return e.length===0?"[]":e.length<=3?`[${e.map(n=>`'${n}'`).join(", ")}]`:`[
4
4
  ${e.map(n=>`${r}${r}'${n}',`).join(`
5
5
  `)}
package/dist/cli.mjs CHANGED
@@ -8,4 +8,4 @@ var o=c(a(),1);var f=`
8
8
  \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2557
9
9
  \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D
10
10
  `;function s(){console.log(o.default.yellow(f)),console.log(o.default.cyan(" \u{1F4E6} Local npm package development without symlinks")),console.log(o.default.dim(` Copies built files into consumer node_modules with incremental sync
11
- `));}a$1(s,"showBanner");process.env.UV_THREADPOOL_SIZE??=String(Math.max(availableParallelism(),8));a$2();var l=process.argv.slice(2),v=["init","publish","add","remove","push","dev","restore","list","status","update","clean","gc","doctor","migrate","reset","rollback","check"],u=l.some(e=>!e.startsWith("-")&&v.includes(e)),g=l.includes("--help")||l.includes("-h")||l.includes("--version");if(!u&&!g&&process.stdin.isTTY){s();let e=await k();e&&process.argv.splice(2,0,e);}else u||s();async function k(){try{let{readConsumerStateSafe:p}=await import('./tracker-FEVY3U3R.mjs'),{resolve:c}=await import('path'),{state:d}=await p(c(".")),n=Object.keys(d.links).length;n>0&&b.info(`${n} package(s) linked in this project`);}catch{}return await b.prompt("What would you like to do?",{type:"select",options:[{label:"init \u2014 Set up plunk in this project",value:"init"},{label:"publish \u2014 Publish package to the plunk store",value:"publish"},{label:"add \u2014 Link a package from the store",value:"add"},{label:"push \u2014 Publish and push to all consumers",value:"push"},{label:"dev \u2014 Watch, rebuild, and push continuously",value:"dev"},{label:"list \u2014 Show linked packages",value:"list"},{label:"status \u2014 Show project status",value:"status"},{label:"help \u2014 Show help",value:"--help"}]})||null}a$1(k,"showInteractiveMenu");var _={meta:{name:"plunk",version:"1.1.0",description:"Local npm package development \u2014 copies built files into consumer node_modules"},args:{verbose:{type:"boolean",alias:"v",description:"Enable verbose debug logging",default:false},"dry-run":{type:"boolean",description:"Preview changes without writing files",default:false},json:{type:"boolean",description:"Output machine-readable JSON",default:false}},subCommands:{init:a$1(()=>import('./init-462LK4RS.mjs').then(e=>e.default),"init"),publish:a$1(()=>import('./publish-WBWXJKWT.mjs').then(e=>e.default),"publish"),add:a$1(()=>import('./add-3RQYONUL.mjs').then(e=>e.default),"add"),remove:a$1(()=>import('./remove-F4IUA7SK.mjs').then(e=>e.default),"remove"),push:a$1(()=>import('./push-ZDSUAM2Q.mjs').then(e=>e.default),"push"),dev:a$1(()=>import('./dev-ZWSFPFJT.mjs').then(e=>e.default),"dev"),restore:a$1(()=>import('./restore-K25HTQN3.mjs').then(e=>e.default),"restore"),list:a$1(()=>import('./list-SN3P6AW4.mjs').then(e=>e.default),"list"),status:a$1(()=>import('./status-4QXDLVCX.mjs').then(e=>e.default),"status"),update:a$1(()=>import('./update-ZI2P4X2T.mjs').then(e=>e.default),"update"),clean:a$1(()=>import('./clean-ZKSUQ5P7.mjs').then(e=>e.default),"clean"),gc:a$1(()=>import('./clean-ZKSUQ5P7.mjs').then(e=>e.default),"gc"),doctor:a$1(()=>import('./doctor-F4IJJRMU.mjs').then(e=>e.default),"doctor"),migrate:a$1(()=>import('./migrate-OAUFA2ML.mjs').then(e=>e.default),"migrate"),reset:a$1(()=>import('./reset-UNDLX2AJ.mjs').then(e=>e.default),"reset"),rollback:a$1(()=>import('./rollback-GFQSNZFB.mjs').then(e=>e.default),"rollback"),check:a$1(()=>import('./check-YV3B3NJU.mjs').then(e=>e.default),"check")}};a$3(_);
11
+ `));}a$1(s,"showBanner");process.env.UV_THREADPOOL_SIZE??=String(Math.max(availableParallelism(),8));a$2();var l=process.argv.slice(2),v=["init","publish","add","remove","push","dev","restore","list","status","update","clean","gc","doctor","migrate","reset","rollback","check"],u=l.some(e=>!e.startsWith("-")&&v.includes(e)),g=l.includes("--help")||l.includes("-h")||l.includes("--version");if(!u&&!g&&process.stdin.isTTY){s();let e=await k();e&&process.argv.splice(2,0,e);}else u||s();async function k(){try{let{readConsumerStateSafe:p}=await import('./tracker-FEVY3U3R.mjs'),{resolve:c}=await import('path'),{state:d}=await p(c(".")),n=Object.keys(d.links).length;n>0&&b.info(`${n} package(s) linked in this project`);}catch{}return await b.prompt("What would you like to do?",{type:"select",options:[{label:"init \u2014 Set up plunk in this project",value:"init"},{label:"publish \u2014 Publish package to the plunk store",value:"publish"},{label:"add \u2014 Link a package from the store",value:"add"},{label:"push \u2014 Publish and push to all consumers",value:"push"},{label:"dev \u2014 Watch, rebuild, and push continuously",value:"dev"},{label:"list \u2014 Show linked packages",value:"list"},{label:"status \u2014 Show project status",value:"status"},{label:"help \u2014 Show help",value:"--help"}]})||null}a$1(k,"showInteractiveMenu");var _={meta:{name:"plunk",version:"1.1.1",description:"Local npm package development \u2014 copies built files into consumer node_modules"},args:{verbose:{type:"boolean",alias:"v",description:"Enable verbose debug logging",default:false},"dry-run":{type:"boolean",description:"Preview changes without writing files",default:false},json:{type:"boolean",description:"Output machine-readable JSON",default:false}},subCommands:{init:a$1(()=>import('./init-P7EYRSCM.mjs').then(e=>e.default),"init"),publish:a$1(()=>import('./publish-QWT4HB4L.mjs').then(e=>e.default),"publish"),add:a$1(()=>import('./add-AL5I3DQH.mjs').then(e=>e.default),"add"),remove:a$1(()=>import('./remove-OX25HMMO.mjs').then(e=>e.default),"remove"),push:a$1(()=>import('./push-LVFV7LTP.mjs').then(e=>e.default),"push"),dev:a$1(()=>import('./dev-2SARHVWS.mjs').then(e=>e.default),"dev"),restore:a$1(()=>import('./restore-K25HTQN3.mjs').then(e=>e.default),"restore"),list:a$1(()=>import('./list-SN3P6AW4.mjs').then(e=>e.default),"list"),status:a$1(()=>import('./status-4QXDLVCX.mjs').then(e=>e.default),"status"),update:a$1(()=>import('./update-ZI2P4X2T.mjs').then(e=>e.default),"update"),clean:a$1(()=>import('./clean-ZKSUQ5P7.mjs').then(e=>e.default),"clean"),gc:a$1(()=>import('./clean-ZKSUQ5P7.mjs').then(e=>e.default),"gc"),doctor:a$1(()=>import('./doctor-F4IJJRMU.mjs').then(e=>e.default),"doctor"),migrate:a$1(()=>import('./migrate-OAUFA2ML.mjs').then(e=>e.default),"migrate"),reset:a$1(()=>import('./reset-ER4NKWHO.mjs').then(e=>e.default),"reset"),rollback:a$1(()=>import('./rollback-XUYAM53D.mjs').then(e=>e.default),"rollback"),check:a$1(()=>import('./check-YV3B3NJU.mjs').then(e=>e.default),"check")}};a$3(_);
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$1}from'./chunk-P4QZJA33.mjs';import'./chunk-SYADAYF4.mjs';import {a,e,b as b$1,c}from'./chunk-QDQKKMAV.mjs';import'./chunk-XVWUDOVN.mjs';import'./chunk-SSCTJUNB.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-7JG555TZ.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-AS4SJVLT.mjs';import'./chunk-HW7AEGI3.mjs';import {r}from'./chunk-SXO3YBPY.mjs';import {b as b$2}from'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import {a as a$2}from'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a as a$1}from'./chunk-KY42A3YV.mjs';import'./chunk-SYADAYF4.mjs';import {a,e,b as b$1,c}from'./chunk-7FIMHC6L.mjs';import'./chunk-AGBIDPNK.mjs';import'./chunk-SSCTJUNB.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-7JG555TZ.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-T33YVNC6.mjs';import'./chunk-3KNUBUPH.mjs';import {r}from'./chunk-SXO3YBPY.mjs';import {b as b$2}from'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import {a as a$2}from'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
3
  var W={meta:{name:"dev",description:"Watch, rebuild, and push to all consumers. Auto-detects build command."},args:{all:{type:"boolean",description:"Watch all workspace packages in dependency order",default:false},build:{type:"string",description:"Override build command (default: auto-detect from package.json)"},"skip-build":{type:"boolean",description:"Watch output dirs directly, skip build command detection",default:false},debounce:{type:"string",description:"Debounce delay in ms (default: 500)"},cooldown:{type:"string",description:"Minimum time between builds in ms (default: 500)"},"no-scripts":{type:"boolean",description:"Skip prepack/postpack lifecycle hooks",default:false},force:{type:"boolean",alias:"f",description:"Force copy all files, bypassing hash comparison",default:false},notify:{type:"boolean",description:"Ring terminal bell on push completion",default:false},"no-cascade":{type:"boolean",description:"Disable cascading rebuilds in --all mode",default:false}},async run({args:e$1}){b();let o=resolve("."),m=await a(o),t={runScripts:!e$1["no-scripts"],force:e$1.force,historyLimit:m.historyLimit};if(e$1.all)await a$1(o,t),await e(o,e$1,t);else {let i=a$2(()=>b$1(o,t),"push");if(await i(),b$2()){r();return}await c(o,e$1,i);}}};export{W as default};
package/dist/index.mjs CHANGED
@@ -3407,8 +3407,65 @@ init_dry_run();
3407
3407
 
3408
3408
  // src/utils/vite-config.ts
3409
3409
  import { readFile as readFile15 } from "fs/promises";
3410
+ function defineConfigUsesTernary(content) {
3411
+ const callRegex = /(^|[^A-Za-z0-9_$])defineConfig\s*\(/g;
3412
+ let match;
3413
+ while ((match = callRegex.exec(content)) !== null) {
3414
+ const parenStart = match.index + match[0].length - 1;
3415
+ let depth = 1;
3416
+ let i = parenStart + 1;
3417
+ let inString = false;
3418
+ let escaped = false;
3419
+ while (i < content.length && depth > 0) {
3420
+ const ch = content[i];
3421
+ if (escaped) {
3422
+ escaped = false;
3423
+ i++;
3424
+ continue;
3425
+ }
3426
+ if (ch === "\\") {
3427
+ escaped = true;
3428
+ i++;
3429
+ continue;
3430
+ }
3431
+ if (inString) {
3432
+ if (ch === inString) inString = false;
3433
+ i++;
3434
+ continue;
3435
+ }
3436
+ if (ch === '"' || ch === "'" || ch === "`") {
3437
+ inString = ch;
3438
+ i++;
3439
+ continue;
3440
+ }
3441
+ if (ch === "/" && content[i + 1] === "/") {
3442
+ const newline = content.indexOf("\n", i);
3443
+ i = newline === -1 ? content.length : newline + 1;
3444
+ continue;
3445
+ }
3446
+ if (ch === "/" && content[i + 1] === "*") {
3447
+ const end = content.indexOf("*/", i + 2);
3448
+ i = end === -1 ? content.length : end + 2;
3449
+ continue;
3450
+ }
3451
+ if (ch === "?") {
3452
+ const next = content[i + 1];
3453
+ if (next === "." || next === "?") {
3454
+ i += 2;
3455
+ continue;
3456
+ }
3457
+ return true;
3458
+ }
3459
+ if (ch === "(") depth++;
3460
+ if (ch === ")") depth--;
3461
+ i++;
3462
+ }
3463
+ callRegex.lastIndex = i;
3464
+ }
3465
+ return false;
3466
+ }
3410
3467
  function isComplexConfig(content) {
3411
- if (/defineConfig\s*\(.*\?/.test(content)) {
3468
+ if (defineConfigUsesTernary(content)) {
3412
3469
  return { complex: true, reason: "conditional defineConfig" };
3413
3470
  }
3414
3471
  if (/export\s+default\s+function/.test(content)) {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {createRequire}from'node:module';import {a as a$2}from'./chunk-7JG555TZ.mjs';import {a as a$5,b as b$2}from'./chunk-UFR2DOQU.mjs';import {a as a$4,d}from'./chunk-EPNDXIQH.mjs';import {a as a$3}from'./chunk-MBKCCWSD.mjs';import {b as b$1,a as a$7}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import {a as a$6,c as c$1}from'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import {A,y,r}from'./chunk-SXO3YBPY.mjs';import {b as b$3}from'./chunk-R3RSOZXN.mjs';import {a,b}from'./chunk-ICCM7US5.mjs';import {c,a as a$1}from'./chunk-2VCW5RWI.mjs';import {join,resolve,basename}from'path';import {readFile,writeFile}from'fs/promises';globalThis.require=createRequire(import.meta.url);
3
3
  var n=c(a(),1);var ae={meta:{name:"init",description:"Set up plunk in the current project"},args:{yes:{type:"boolean",alias:"y",description:"Skip confirmation prompts",default:false},role:{type:"string",description:'Project role: "consumer" or "library"'}},async run({args:a}){b$1();let o=new a$3,r$1=resolve("."),p=a.yes;b.info(`Initializing plunk in ${n.default.cyan(r$1)}
4
- `);let i=await a$4(r$1),d$1={pnpm:"pnpm-lock.yaml",bun:"bun.lockb",yarn:"yarn.lock",npm:"package-lock.json"};b.success(`Detected package manager: ${n.default.cyan(i)}`+(d$1[i]?` (from ${d$1[i]})`:""));let l=i;if(!p&&await b.prompt(`Use ${i}?`,{type:"confirm",initial:true})===false){let c=["npm","pnpm","yarn","bun"].filter(f=>f!==i),u=await b.prompt("Select package manager:",{type:"select",options:c.map(f=>({label:f,value:f}))});typeof u=="string"&&(l=u);}let s="consumer";a.role==="consumer"||a.role==="library"?s=a.role:p||await b.prompt("How will you use plunk in this project?",{type:"select",options:[{label:"Consumer (app) \u2014 I want to link packages INTO this project",value:"consumer"},{label:"Library (package) \u2014 I want to publish this package FOR other projects",value:"library"}]})==="library"&&(s="library"),b.success(`Project role: ${n.default.cyan(s)}`);let I=join(r$1,".gitignore");await a$5(I)&&b.success("Added .plunk/ to .gitignore");let m=join(r$1,"package.json");if(await A(m))if(s==="consumer"){if(await b$2(m)&&b.success('Added "postinstall": "plunk restore" to package.json scripts'),!p){let c=await b.prompt("Package name to link (leave blank to skip):",{type:"text",default:""});if(typeof c=="string"&&c.trim()){let u=c.trim();await $(m,"plunk:add",`plunk add ${u}`)&&b.success(`Added "plunk:add": "plunk add ${u}" to package.json scripts`);}}}else {await H(m,l,p);let t=await L(m);for(let c of t)b.success(`Added "${c}" script to package.json`);}let y$1=join(r$1,".plunk");if(!await A(y$1))await y(y$1),await writeFile(join(y$1,"state.json"),JSON.stringify({version:"1",packageManager:l,role:s,links:{}},null,2)),b.success("Created .plunk/ state directory");else {let t=await a$6(r$1);t.packageManager=l,t.role=s,await c$1(r$1,t);}if(s==="consumer"){let t=await d(r$1);if(t.type==="vite"&&t.configFile){b.success(`Detected bundler: ${n.default.cyan("Vite")} (${basename(t.configFile)})`);let{addPlunkVitePlugin:c}=await import('./vite-config-5RF5QMOC.mjs'),u=await c(t.configFile);u.modified?b.success(`Added plunk plugin to ${basename(t.configFile)}`):u.error&&b.info(`Add the Vite plugin for automatic dev server restarts:
4
+ `);let i=await a$4(r$1),d$1={pnpm:"pnpm-lock.yaml",bun:"bun.lockb",yarn:"yarn.lock",npm:"package-lock.json"};b.success(`Detected package manager: ${n.default.cyan(i)}`+(d$1[i]?` (from ${d$1[i]})`:""));let l=i;if(!p&&await b.prompt(`Use ${i}?`,{type:"confirm",initial:true})===false){let c=["npm","pnpm","yarn","bun"].filter(f=>f!==i),u=await b.prompt("Select package manager:",{type:"select",options:c.map(f=>({label:f,value:f}))});typeof u=="string"&&(l=u);}let s="consumer";a.role==="consumer"||a.role==="library"?s=a.role:p||await b.prompt("How will you use plunk in this project?",{type:"select",options:[{label:"Consumer (app) \u2014 I want to link packages INTO this project",value:"consumer"},{label:"Library (package) \u2014 I want to publish this package FOR other projects",value:"library"}]})==="library"&&(s="library"),b.success(`Project role: ${n.default.cyan(s)}`);let I=join(r$1,".gitignore");await a$5(I)&&b.success("Added .plunk/ to .gitignore");let m=join(r$1,"package.json");if(await A(m))if(s==="consumer"){if(await b$2(m)&&b.success('Added "postinstall": "plunk restore" to package.json scripts'),!p){let c=await b.prompt("Package name to link (leave blank to skip):",{type:"text",default:""});if(typeof c=="string"&&c.trim()){let u=c.trim();await $(m,"plunk:add",`plunk add ${u}`)&&b.success(`Added "plunk:add": "plunk add ${u}" to package.json scripts`);}}}else {await H(m,l,p);let t=await L(m);for(let c of t)b.success(`Added "${c}" script to package.json`);}let y$1=join(r$1,".plunk");if(!await A(y$1))await y(y$1),await writeFile(join(y$1,"state.json"),JSON.stringify({version:"1",packageManager:l,role:s,links:{}},null,2)),b.success("Created .plunk/ state directory");else {let t=await a$6(r$1);t.packageManager=l,t.role=s,await c$1(r$1,t);}if(s==="consumer"){let t=await d(r$1);if(t.type==="vite"&&t.configFile){b.success(`Detected bundler: ${n.default.cyan("Vite")} (${basename(t.configFile)})`);let{addPlunkVitePlugin:c}=await import('./vite-config-DZDIHZYU.mjs'),u=await c(t.configFile);u.modified?b.success(`Added plunk plugin to ${basename(t.configFile)}`):u.error&&b.info(`Add the Vite plugin for automatic dev server restarts:
5
5
  ${n.default.cyan('import plunk from "@olegkuibar/plunk/vite"')}
6
6
  ${n.default.cyan("plugins: [plunk()]")}`);}else if(t.type==="next"&&t.configFile)b.success(`Detected bundler: ${n.default.cyan("Next.js")} (${basename(t.configFile)})`),b.info(`Next.js transpilePackages will be auto-configured when you run ${n.default.cyan("plunk add")}`);else if(t.type){let c={webpack:"Webpack",turbo:"Turbopack",rollup:"Rollup"};b.success(`Detected bundler: ${n.default.cyan(c[t.type]||t.type)} \u2014 no config needed, works out of the box`);}b.log(""),b.info(`${n.default.bold("Next steps:")}`),b.log(` 1. ${n.default.cyan("cd ../my-lib && plunk publish")}`),b.log(` 2. ${n.default.cyan("plunk add my-lib")}${t.type==="vite"?" \u2190 auto-updates vite config":t.type==="next"?" \u2190 auto-updates next config":""}`),b.log(` 3. ${n.default.cyan("cd ../my-lib && plunk dev")} \u2190 watch + rebuild + auto-push`);}else b.log(""),b.info(`${n.default.bold("Next steps:")}`),b.log(` 1. ${n.default.cyan("plunk publish")} \u2190 copy built files to plunk store`),b.log(` 2. ${n.default.cyan(`${l} run plunk:dev`)} \u2190 watch + rebuild + auto-push to consumers`),b.log(` 3. In consumer project: ${n.default.cyan("plunk add "+await z(m))}`);b.info(`Done in ${o.elapsed()}`),a$7({packageManager:l,role:s,elapsed:o.elapsedMs()}),b$3()&&r();}};async function $(a,o,r){let p=await readFile(a,"utf-8"),i=JSON.parse(p);if(i.scripts?.[o])return false;i.scripts||(i.scripts={}),i.scripts[o]=r;let d=p.match(/^(\s+)"/m)?.[1]||" ";return await writeFile(a,JSON.stringify(i,null,d)+`
7
7
  `),true}a$1($,"addScript");async function H(a,o,r){let p=join(a,".."),i=await a$2(p,o);if(i)return b.success(`Detected build script: ${n.default.cyan(i)}`),i;let d=o==="npm"?"npm run ":`${o} `;if(!r){b.warn("No build script found in package.json");let s=await b.prompt("Build command (e.g. tsc, tsup, rollup -c):",{type:"text",default:""});if(typeof s=="string"&&s.trim())return s.trim()}let l=`${d}build`;return b.warn(`Using ${n.default.cyan(l)} as placeholder \u2014 add a "build" script to package.json`),l}a$1(H,"detectBuildCommand");async function L(a){let o=[];return await $(a,"plunk:publish","plunk publish")&&o.push("plunk:publish"),await $(a,"plunk:dev","plunk dev")&&o.push("plunk:dev"),o}a$1(L,"addLibraryScripts");async function z(a){try{return JSON.parse(await readFile(a,"utf-8")).name||"my-package"}catch{return "my-package"}}a$1(z,"readPkgName");export{ae as default};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$2}from'./chunk-XVWUDOVN.mjs';import'./chunk-SSCTJUNB.mjs';import {a as a$1}from'./chunk-HPF6K6WO.mjs';import {a}from'./chunk-MBKCCWSD.mjs';import {b,a as a$3}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-HW7AEGI3.mjs';import {o,r}from'./chunk-SXO3YBPY.mjs';import {d,b as b$2}from'./chunk-R3RSOZXN.mjs';import {b as b$1}from'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
- var P=o(4),O={meta:{name:"publish",description:"Publish current package to the plunk store"},args:{dir:{type:"positional",description:"Package directory (default: current directory)",required:false},private:{type:"boolean",description:"Allow publishing private packages",default:false},"no-scripts":{type:"boolean",description:"Skip prepack/postpack lifecycle hooks",default:false},recursive:{type:"boolean",alias:"r",description:"Publish all packages in the workspace",default:false},"no-check":{type:"boolean",description:"Skip pre-flight validation checks",default:false}},async run({args:r$1}){b();let m=new a,i=resolve(r$1.dir||"."),h={allowPrivate:r$1.private,runScripts:!r$1["no-scripts"]};if(!r$1["no-check"]&&!r$1.recursive){let{runPreflightChecks:e}=await import('./preflight-NPYJJSMT.mjs'),t=await e(i);for(let s of t)s.severity==="error"?b$1.error(`[${s.code}] ${s.message}`):b$1.warn(`[${s.code}] ${s.message}`);}if(r$1.recursive){d(`[publish] Discovering workspace packages from ${i}`);let{findWorkspacePackages:e}=await import('./workspace-V5YKJN5V.mjs'),t=await e(i);t.length===0&&(a$1("No workspace packages found. Make sure you're in a workspace root or subdirectory."),process.exit(1));let s=0,c=0,l=0,v=await Promise.all(t.map(o=>P(async()=>{try{return (await a$2(o,h)).skipped?"skipped":"published"}catch(p){return b$1.warn(`Failed to publish ${o}: ${p instanceof Error?p.message:String(p)}`),"failed"}})));for(let o of v)o==="published"?s++:o==="skipped"?c++:l++;b$1.success(`Workspace publish: ${s} published, ${c} up to date, ${l} failed`),a$3({recursive:true,packages:t.length,published:s,skipped:c,failed:l,elapsed:m.elapsedMs()});}else {d(`[publish] Publishing from ${i}`);try{let e=await a$2(i,h);a$3({...e,elapsed:m.elapsedMs()});}catch(e){a$1(e instanceof Error?e.message:String(e)),process.exit(1);}}b$2()&&r();}};export{O as default};
2
+ import {createRequire}from'node:module';import {a as a$2}from'./chunk-AGBIDPNK.mjs';import'./chunk-SSCTJUNB.mjs';import {a as a$1}from'./chunk-HPF6K6WO.mjs';import {a}from'./chunk-MBKCCWSD.mjs';import {b,a as a$3}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-3KNUBUPH.mjs';import {o,r}from'./chunk-SXO3YBPY.mjs';import {d,b as b$2}from'./chunk-R3RSOZXN.mjs';import {b as b$1}from'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
+ var P=o(4),O={meta:{name:"publish",description:"Publish current package to the plunk store"},args:{dir:{type:"positional",description:"Package directory (default: current directory)",required:false},private:{type:"boolean",description:"Allow publishing private packages",default:false},"no-scripts":{type:"boolean",description:"Skip prepack/postpack lifecycle hooks",default:false},recursive:{type:"boolean",alias:"r",description:"Publish all packages in the workspace",default:false},"no-check":{type:"boolean",description:"Skip pre-flight validation checks",default:false}},async run({args:r$1}){b();let m=new a,i=resolve(r$1.dir||"."),h={allowPrivate:r$1.private,runScripts:!r$1["no-scripts"]};if(!r$1["no-check"]&&!r$1.recursive){let{runPreflightChecks:e}=await import('./preflight-NPYJJSMT.mjs'),t=await e(i);for(let s of t)s.severity==="error"?b$1.error(`[${s.code}] ${s.message}`):b$1.warn(`[${s.code}] ${s.message}`);}if(r$1.recursive){d(`[publish] Discovering workspace packages from ${i}`);let{findWorkspacePackages:e}=await import('./workspace-XSKXXCS2.mjs'),t=await e(i);t.length===0&&(a$1("No workspace packages found. Make sure you're in a workspace root or subdirectory."),process.exit(1));let s=0,c=0,l=0,v=await Promise.all(t.map(o=>P(async()=>{try{return (await a$2(o,h)).skipped?"skipped":"published"}catch(p){return b$1.warn(`Failed to publish ${o}: ${p instanceof Error?p.message:String(p)}`),"failed"}})));for(let o of v)o==="published"?s++:o==="skipped"?c++:l++;b$1.success(`Workspace publish: ${s} published, ${c} up to date, ${l} failed`),a$3({recursive:true,packages:t.length,published:s,skipped:c,failed:l,elapsed:m.elapsedMs()});}else {d(`[publish] Publishing from ${i}`);try{let e=await a$2(i,h);a$3({...e,elapsed:m.elapsedMs()});}catch(e){a$1(e instanceof Error?e.message:String(e)),process.exit(1);}}b$2()&&r();}};export{O as default};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$1}from'./chunk-P4QZJA33.mjs';import'./chunk-SYADAYF4.mjs';import {a,e,b as b$1,c}from'./chunk-QDQKKMAV.mjs';import'./chunk-XVWUDOVN.mjs';import'./chunk-SSCTJUNB.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-7JG555TZ.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-AS4SJVLT.mjs';import'./chunk-HW7AEGI3.mjs';import {r}from'./chunk-SXO3YBPY.mjs';import {b as b$2}from'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import {a as a$2}from'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a as a$1}from'./chunk-KY42A3YV.mjs';import'./chunk-SYADAYF4.mjs';import {a,e,b as b$1,c}from'./chunk-7FIMHC6L.mjs';import'./chunk-AGBIDPNK.mjs';import'./chunk-SSCTJUNB.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-7JG555TZ.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-T33YVNC6.mjs';import'./chunk-3KNUBUPH.mjs';import {r}from'./chunk-SXO3YBPY.mjs';import {b as b$2}from'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import {a as a$2}from'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
3
  var P={meta:{name:"push",description:"Publish and push to all consumers. Use --watch for continuous mode."},args:{watch:{type:"boolean",description:"Watch for changes and auto-push",default:false},all:{type:"boolean",description:"Push all workspace packages in dependency order",default:false},build:{type:"string",description:"Build command to run before publishing (watch mode)"},"skip-build":{type:"boolean",description:"Watch output dirs directly, skip build command detection",default:false},debounce:{type:"string",description:"Debounce delay in ms for watch mode (default: 500)"},cooldown:{type:"string",description:"Minimum time between builds in ms (default: 500)"},"no-scripts":{type:"boolean",description:"Skip prepack/postpack lifecycle hooks",default:false},force:{type:"boolean",alias:"f",description:"Force copy all files, bypassing hash comparison",default:false},notify:{type:"boolean",description:"Ring terminal bell on push completion (watch mode)",default:false},"no-cascade":{type:"boolean",description:"Disable cascading rebuilds in --all watch mode",default:false}},async run({args:o}){b();let e$1=resolve("."),f=await a(e$1),t={runScripts:!o["no-scripts"],force:o.force,historyLimit:f.historyLimit};if(o.all)await a$1(e$1,t),o.watch&&await e(e$1,o,t);else {let i=a$2(()=>b$1(e$1,t),"push");await i(),o.watch&&await c(e$1,o,i);}b$2()&&r();}};export{P as default};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';export{a as default,b as removeSinglePackage}from'./chunk-BVIEPHQN.mjs';import'./chunk-4KEAE5RS.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-HGXH6DYF.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-SXO3YBPY.mjs';import'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';export{a as default,b as removeSinglePackage}from'./chunk-HOWWXLXZ.mjs';import'./chunk-TDOTYU7U.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-PEBBXITM.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-SXO3YBPY.mjs';import'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {b as b$2}from'./chunk-BVIEPHQN.mjs';import'./chunk-4KEAE5RS.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-HGXH6DYF.mjs';import {c}from'./chunk-UFR2DOQU.mjs';import'./chunk-EPNDXIQH.mjs';import {a}from'./chunk-MBKCCWSD.mjs';import {b,a as a$1}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import {a as a$2}from'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import {j,A,x,r}from'./chunk-SXO3YBPY.mjs';import {d,b as b$3}from'./chunk-R3RSOZXN.mjs';import {b as b$1}from'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';import {resolve,join}from'path';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {b as b$2}from'./chunk-HOWWXLXZ.mjs';import'./chunk-TDOTYU7U.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-PEBBXITM.mjs';import {c}from'./chunk-UFR2DOQU.mjs';import'./chunk-EPNDXIQH.mjs';import {a}from'./chunk-MBKCCWSD.mjs';import {b,a as a$1}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import {a as a$2}from'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import {j,A,x,r}from'./chunk-SXO3YBPY.mjs';import {d,b as b$3}from'./chunk-R3RSOZXN.mjs';import {b as b$1}from'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';import {resolve,join}from'path';globalThis.require=createRequire(import.meta.url);
3
3
  var q={meta:{name:"reset",description:"Remove all plunk links and teardown plunk from this project"},args:{yes:{type:"boolean",alias:"y",description:"Skip confirmation prompts",default:false}},async run({args:$}){b();let p=new a,t=resolve("."),l=j(t);if(!await A(l)){b$1.info("No plunk setup found in this project"),a$1({reset:false});return}let j$1=await a$2(t),r$1=Object.entries(j$1.links);if(!$.yes){let o=[];r$1.length>0&&o.push(`remove ${r$1.length} linked package(s)`),o.push("delete .plunk/ directory","remove postinstall hook");let s=await b$1.prompt(`Reset plunk? This will ${o.join(", ")}.`,{type:"confirm"});if(!s||typeof s=="symbol"){b$1.info("Cancelled");return}}d(`[reset] Removing ${r$1.length} linked package(s) from ${t}`);let i=0;for(let[o,s]of r$1)try{await b$2(t,o,s),i++;}catch(n){b$1.warn(`Failed to remove ${o}: ${n instanceof Error?n.message:String(n)}`);}await x(l),b$1.success("Removed .plunk/ directory");let c$1=join(t,"package.json");await A(c$1)&&await c(c$1)&&b$1.success("Removed postinstall hook from package.json"),b$1.success(`Reset complete: ${i} package(s) restored in ${p.elapsed()}`),a$1({reset:true,removed:i,elapsed:p.elapsedMs()}),b$3()&&r();}};export{q as default};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$3,b as b$3}from'./chunk-QDQKKMAV.mjs';import'./chunk-XVWUDOVN.mjs';import'./chunk-SSCTJUNB.mjs';import'./chunk-72AD4PZH.mjs';import {a as a$1}from'./chunk-HPF6K6WO.mjs';import'./chunk-7JG555TZ.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import {b,a as a$2}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import {b as b$1,g,d}from'./chunk-4GAOTDK4.mjs';import'./chunk-HW7AEGI3.mjs';import {r}from'./chunk-SXO3YBPY.mjs';import {b as b$4}from'./chunk-R3RSOZXN.mjs';import {a,b as b$2}from'./chunk-ICCM7US5.mjs';import {c}from'./chunk-2VCW5RWI.mjs';import {resolve}from'path';import {readFile}from'fs/promises';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a as a$3,b as b$3}from'./chunk-7FIMHC6L.mjs';import'./chunk-AGBIDPNK.mjs';import'./chunk-SSCTJUNB.mjs';import'./chunk-72AD4PZH.mjs';import {a as a$1}from'./chunk-HPF6K6WO.mjs';import'./chunk-7JG555TZ.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import {b,a as a$2}from'./chunk-OJJZ7CLB.mjs';import'./chunk-OL7SNXMX.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import {b as b$1,g,d}from'./chunk-4GAOTDK4.mjs';import'./chunk-3KNUBUPH.mjs';import {r}from'./chunk-SXO3YBPY.mjs';import {b as b$4}from'./chunk-R3RSOZXN.mjs';import {a,b as b$2}from'./chunk-ICCM7US5.mjs';import {c}from'./chunk-2VCW5RWI.mjs';import {resolve}from'path';import {readFile}from'fs/promises';globalThis.require=createRequire(import.meta.url);
3
3
  var f=c(a(),1);var F={meta:{name:"rollback",description:"Restore a previous build from history"},args:{"build-id":{type:"string",description:"Specific build ID to restore (default: previous build)"},yes:{type:"boolean",alias:"y",description:"Skip confirmation prompts",default:false}},async run({args:a}){b();let l=resolve("."),i;try{i=JSON.parse(await readFile(resolve(l,"package.json"),"utf-8"));}catch{a$1("No package.json found in current directory"),process.exit(1);}(!i.name||!i.version)&&(a$1("package.json missing name or version field"),process.exit(1));let t=await b$1(i.name,i.version);if(t.length===0){b$2.info("No build history available"),a$2({rolledBack:false});return}let r$1;if(a["build-id"]){if(r$1=a["build-id"],!t.find(n=>n.buildId===r$1)){b$2.error(`Build ${r$1} not found in history`),b$2.info("Available builds:");for(let n of t)b$2.log(` ${f.default.cyan(n.buildId)} ${f.default.dim(n.publishedAt)}`);a$2({rolledBack:false});return}}else r$1=t[0].buildId;let v=t.find(e=>e.buildId===r$1);if(!a.yes){let e=await b$2.prompt(`Restore build ${r$1} (published ${v.publishedAt})?`,{type:"confirm"});if(!e||typeof e=="symbol"){b$2.info("Cancelled");return}}let $=await a$3(l),w=g($.historyLimit);if(!await d(i.name,i.version,r$1,w)){b$2.error(`Failed to restore build ${r$1}`),a$2({rolledBack:false});return}b$2.success(`Restored ${i.name}@${i.version} to build ${r$1}`);try{await b$3(l,{force:!0});}catch(e){b$2.warn(`Push after rollback failed: ${e instanceof Error?e.message:String(e)}`);}a$2({rolledBack:true,buildId:r$1}),b$4()&&r();}};export{F as default};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';export{b as addPlunkVitePlugin,a as isComplexConfig,c as removeFromViteConfig}from'./chunk-HGXH6DYF.mjs';import'./chunk-SXO3YBPY.mjs';import'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';export{b as addPlunkVitePlugin,a as isComplexConfig,c as removeFromViteConfig}from'./chunk-PEBBXITM.mjs';import'./chunk-SXO3YBPY.mjs';import'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$1,d,b as b$2}from'./chunk-QDQKKMAV.mjs';import'./chunk-XVWUDOVN.mjs';import'./chunk-SSCTJUNB.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-7JG555TZ.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import'./chunk-OJJZ7CLB.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-HW7AEGI3.mjs';import {o}from'./chunk-SXO3YBPY.mjs';import {d as d$1}from'./chunk-R3RSOZXN.mjs';import {b as b$1}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
3
- var M=o(2),b=class{static{a(this,"WatchOrchestrator");}packages=new Map;dependents=new Map;cascade;pushOptions={};constructor(t){this.cascade=t;}async start(t,e,s){this.pushOptions=s;let{buildWorkspaceGraph:o,buildReverseAdjacency:u}=await import('./workspace-V5YKJN5V.mjs'),{topoSort:f,CycleError:v}=await import('./topo-sort-WEIVPJKN.mjs'),{startWatcher:C}=await import('./watcher-MH45TB3S.mjs'),d$1=await o(t);if(d$1.packages.length===0){b$1.warn("No workspace packages found");return}let h;try{h=f(d$1.adjacency);}catch(a){if(a instanceof v){b$1.error(`Cannot watch: ${a.message}`);return}throw a}this.cascade&&(this.dependents=u(d$1.adjacency),b$1.info("Cascade mode enabled"));let $=new Map(d$1.packages.map(a=>[a.name,a.dir]));for(let a$2 of h){let i=$.get(a$2);if(!i)continue;let p=await a$1(i),{buildCmd:q,patterns:S}=await d(i,e,p),R=e.notify??p.notify??false,j=a(async()=>{await b$2(i,s),await this.onPackagePushed(a$2);},"wrappedOnChange"),w=a(m=>{if(!m)return;let k=parseInt(m,10);return Number.isFinite(k)?k:void 0},"parseMs"),E=await C(i,{patterns:S,buildCmd:q,debounce:w(e.debounce)??p.debounce,cooldown:w(e.cooldown)??p.cooldown,notify:R},j);this.packages.set(a$2,{dir:i,state:"idle",watcher:E});}b$1.info(`Watching ${this.packages.size} workspace packages`),await new Promise(a$1=>{let i=a(async()=>{b$1.info("Stopping watchers..."),await this.close(),a$1();},"cleanup");process.once("SIGINT",i),process.once("SIGTERM",i);});}async onPackagePushed(t){if(!this.cascade)return;let e=this.dependents.get(t);if(!e||e.size===0)return;d$1(`[cascade] ${t} pushed, triggering dependents: ${[...e].join(", ")}`);let s=[...e].map(o=>M(()=>this.requestRebuild(o)));await Promise.all(s);}async requestRebuild(t){let e=this.packages.get(t);if(e){if(e.state==="queued"){d$1(`[cascade] ${t} already queued, skipping`);return}if(e.state==="building"){d$1(`[cascade] ${t} is building, marking as queued`),e.state="queued";return}e.state="building",d$1(`[cascade] Rebuilding ${t}`);try{let o=(await a$1(e.dir)).buildCmd;if(o){let{runBuildCommand:u}=await import('./watcher-MH45TB3S.mjs');if(!await u(o,e.dir)){b$1.warn(`[cascade] Build failed for ${t}, skipping dependents`),e.state="idle";return}}await b$2(e.dir,this.pushOptions),await this.onPackagePushed(t);}catch(s){b$1.warn(`[cascade] Push failed for ${t}: ${s instanceof Error?s.message:String(s)}`);}finally{let s=e.state==="queued";e.state="idle",s&&await this.requestRebuild(t);}}}async close(){await Promise.all([...this.packages.values()].map(t=>t.watcher.close())),this.packages.clear();}};export{b as WatchOrchestrator};
2
+ import {createRequire}from'node:module';import {a as a$1,d,b as b$2}from'./chunk-7FIMHC6L.mjs';import'./chunk-AGBIDPNK.mjs';import'./chunk-SSCTJUNB.mjs';import'./chunk-72AD4PZH.mjs';import'./chunk-HPF6K6WO.mjs';import'./chunk-7JG555TZ.mjs';import'./chunk-EPNDXIQH.mjs';import'./chunk-MBKCCWSD.mjs';import'./chunk-OJJZ7CLB.mjs';import'./chunk-KJPN6E7W.mjs';import'./chunk-U376XMQP.mjs';import'./chunk-3KNUBUPH.mjs';import {o}from'./chunk-SXO3YBPY.mjs';import {d as d$1}from'./chunk-R3RSOZXN.mjs';import {b as b$1}from'./chunk-ICCM7US5.mjs';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
3
+ var M=o(2),b=class{static{a(this,"WatchOrchestrator");}packages=new Map;dependents=new Map;cascade;pushOptions={};constructor(t){this.cascade=t;}async start(t,e,s){this.pushOptions=s;let{buildWorkspaceGraph:o,buildReverseAdjacency:u}=await import('./workspace-XSKXXCS2.mjs'),{topoSort:f,CycleError:v}=await import('./topo-sort-WEIVPJKN.mjs'),{startWatcher:C}=await import('./watcher-MH45TB3S.mjs'),d$1=await o(t);if(d$1.packages.length===0){b$1.warn("No workspace packages found");return}let h;try{h=f(d$1.adjacency);}catch(a){if(a instanceof v){b$1.error(`Cannot watch: ${a.message}`);return}throw a}this.cascade&&(this.dependents=u(d$1.adjacency),b$1.info("Cascade mode enabled"));let $=new Map(d$1.packages.map(a=>[a.name,a.dir]));for(let a$2 of h){let i=$.get(a$2);if(!i)continue;let p=await a$1(i),{buildCmd:q,patterns:S}=await d(i,e,p),R=e.notify??p.notify??false,j=a(async()=>{await b$2(i,s),await this.onPackagePushed(a$2);},"wrappedOnChange"),w=a(m=>{if(!m)return;let k=parseInt(m,10);return Number.isFinite(k)?k:void 0},"parseMs"),E=await C(i,{patterns:S,buildCmd:q,debounce:w(e.debounce)??p.debounce,cooldown:w(e.cooldown)??p.cooldown,notify:R},j);this.packages.set(a$2,{dir:i,state:"idle",watcher:E});}b$1.info(`Watching ${this.packages.size} workspace packages`),await new Promise(a$1=>{let i=a(async()=>{b$1.info("Stopping watchers..."),await this.close(),a$1();},"cleanup");process.once("SIGINT",i),process.once("SIGTERM",i);});}async onPackagePushed(t){if(!this.cascade)return;let e=this.dependents.get(t);if(!e||e.size===0)return;d$1(`[cascade] ${t} pushed, triggering dependents: ${[...e].join(", ")}`);let s=[...e].map(o=>M(()=>this.requestRebuild(o)));await Promise.all(s);}async requestRebuild(t){let e=this.packages.get(t);if(e){if(e.state==="queued"){d$1(`[cascade] ${t} already queued, skipping`);return}if(e.state==="building"){d$1(`[cascade] ${t} is building, marking as queued`),e.state="queued";return}e.state="building",d$1(`[cascade] Rebuilding ${t}`);try{let o=(await a$1(e.dir)).buildCmd;if(o){let{runBuildCommand:u}=await import('./watcher-MH45TB3S.mjs');if(!await u(o,e.dir)){b$1.warn(`[cascade] Build failed for ${t}, skipping dependents`),e.state="idle";return}}await b$2(e.dir,this.pushOptions),await this.onPackagePushed(t);}catch(s){b$1.warn(`[cascade] Push failed for ${t}: ${s instanceof Error?s.message:String(s)}`);}finally{let s=e.state==="queued";e.state="idle",s&&await this.requestRebuild(t);}}}async close(){await Promise.all([...this.packages.values()].map(t=>t.watcher.close())),this.packages.clear();}};export{b as WatchOrchestrator};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';export{e as buildReverseAdjacency,d as buildWorkspaceGraph,c as findWorkspacePackages,a as findWorkspaceRoot,b as parseCatalogs}from'./chunk-AS4SJVLT.mjs';import'./chunk-HW7AEGI3.mjs';import'./chunk-SXO3YBPY.mjs';import'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';export{e as buildReverseAdjacency,d as buildWorkspaceGraph,c as findWorkspacePackages,a as findWorkspaceRoot,b as parseCatalogs}from'./chunk-T33YVNC6.mjs';import'./chunk-3KNUBUPH.mjs';import'./chunk-SXO3YBPY.mjs';import'./chunk-R3RSOZXN.mjs';import'./chunk-ICCM7US5.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olegkuibar/plunk",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Local npm package development without symlinks. Copies built files into consumer node_modules with incremental sync and watch mode.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -81,7 +81,7 @@
81
81
  "@types/picomatch": "^4.0.2",
82
82
  "tsup": "^8.5.1",
83
83
  "typescript": "^5.9.3",
84
- "vite": "^7.3.1",
84
+ "vite": "^7.3.2",
85
85
  "vitest": "^4.0.18"
86
86
  },
87
87
  "peerDependencies": {
@@ -104,7 +104,18 @@
104
104
  "chokidar": "^5.0.0",
105
105
  "citty": "^0.2.1",
106
106
  "picocolors": "^1.1.1",
107
- "picomatch": "^4.0.3",
107
+ "picomatch": "^4.0.4",
108
108
  "xxhash-wasm": "^1.1.0"
109
+ },
110
+ "pnpm": {
111
+ "overrides": {
112
+ "dompurify": "^3.4.1",
113
+ "picomatch": "^4.0.4",
114
+ "postcss": "^8.5.10",
115
+ "rollup": "^4.59.0"
116
+ },
117
+ "onlyBuiltDependencies": [
118
+ "esbuild"
119
+ ]
109
120
  }
110
121
  }
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {B}from'./chunk-SXO3YBPY.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';globalThis.require=createRequire(import.meta.url);
3
- function d(n){return n.match(/^(\s+)\S/m)?.[1]||" "}a(d,"detectIndent");function m(n){return n.includes("@olegkuibar/plunk/vite")||n.includes("vite-plugin-plunk")}a(m,"hasPlunkPlugin");function p(n){let e=[],s="",o=0;for(let i of n)if(i==="("&&o++,i===")"&&o--,i===","&&o===0){let l=s.trim();l&&e.push(l),s="";}else s+=i;let r=s.trim();return r&&e.push(r),e}a(p,"parsePluginItems");function h(n,e){return n.length===0?"[]":n.length===1?`[${n[0]}]`:`[
4
- ${n.map(o=>`${e}${e}${o},`).join(`
5
- `)}
6
- ${e}]`}a(h,"formatPlugins");function x(n){let s=/plugins\s*:\s*\[/g.exec(n);if(!s)return null;let o=s.index+s[0].length-1,r=1,i=o+1,l=false,f=false;for(;i<n.length&&r>0;){let t=n[i];if(f){f=false,i++;continue}if(t==="\\"){f=true,i++;continue}if(l){t===l&&(l=false),i++;continue}if(t==='"'||t==="'"||t==="`"){l=t,i++;continue}if(t==="/"&&n[i+1]==="/"){let u=n.indexOf(`
7
- `,i);i=u===-1?n.length:u+1;continue}if(t==="/"&&n[i+1]==="*"){let u=n.indexOf("*/",i+2);i=u===-1?n.length:u+2;continue}(t==="["||t==="("||t==="{")&&r++,(t==="]"||t===")"||t==="}")&&r--,i++;}return r!==0?null:{start:o,end:i,inner:n.slice(o+1,i-1)}}a(x,"findPluginsArray");function k(n){let e=0,s=/^import\s/gm,o;for(;(o=s.exec(n))!==null;){let r=o.index,i=r+o[0].length,l=false,f=0;for(;i<n.length;){let t=n[i];if(l){t===l&&(l=false),i++;continue}if(t==='"'||t==="'"||t==="`"){l=t,i++;continue}if(t==="{"&&f++,t==="}"&&f--,t===";"&&f<=0){i++;break}if(t===`
8
- `&&f<=0){let u=n.slice(r,i).trimEnd();if(u.endsWith('"')||u.endsWith("'"))break}i++;}e=i;}return e}a(k,"findLastImportEnd");function w(n){return /defineConfig\s*\(.*\?/.test(n)?{complex:true,reason:"conditional defineConfig"}:/export\s+default\s+function/.test(n)?{complex:true,reason:"dynamic export (function)"}:/plugins\s*:\s*\[\s*\.\.\./.test(n)?{complex:true,reason:"spread operator in plugins array"}:/defineConfig\s*\(\s*async/.test(n)||/mergeConfig\s*\(/.test(n)?{complex:true,reason:"async or merged config"}:{complex:false}}a(w,"isComplexConfig");async function C(n){let e;try{e=await readFile(n,"utf-8");}catch{return {modified:false,error:"could not read config file"}}if(m(e))return {modified:false};let s=w(e);if(s.complex)return {modified:false,error:`config too complex (${s.reason})`};let o=d(e),r=x(e);if(r){let f=p(r.inner);f.push("plunk()");let t=h(f,o);e=e.slice(0,r.start)+t+e.slice(r.end);}else {let t=/(?:defineConfig\s*\(\s*\{|export\s+default\s+\{)/.exec(e);if(t){let u=t.index+t[0].length,b=`
9
- ${o}plugins: [plunk()],`;e=e.slice(0,u)+b+e.slice(u);}else return {modified:false,error:"unrecognized Vite config pattern"}}let i=`import plunk from "@olegkuibar/plunk/vite";
10
- `,l=k(e);return l>0?e=e.slice(0,l)+`
11
- `+i+e.slice(l):e=i+`
12
- `+e,await B(n,e),{modified:true}}a(C,"addPlunkVitePlugin");async function $(n){let e;try{e=await readFile(n,"utf-8");}catch{return {modified:false}}if(!m(e))return {modified:false};let s=false,o=/^import\s+\w+\s+from\s+["']@olegkuibar\/plunk\/vite["'];?\s*\n?/m;o.test(e)&&(e=e.replace(o,""),s=true);let r=x(e);if(r){let i=p(r.inner),l=i.filter(f=>!f.startsWith("plunk("));if(l.length!==i.length){let f=d(e),t=h(l,f);e=e.slice(0,r.start)+t+e.slice(r.end),s=true;}}return s&&await B(n,e),{modified:s}}a($,"removeFromViteConfig");export{w as a,C as b,$ as c};
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {b,a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
3
- var J=b((he,Ct)=>{var ht="[^\\\\/]",Kt="(?=.)",St="[^/]",ct="(?:\\/|$)",gt="(?:^|\\/)",it=`\\.{1,2}${ct}`,Ut="(?!\\.)",Wt=`(?!${gt}${it})`,Xt=`(?!\\.{0,1}${ct})`,qt=`(?!${it})`,Ft="[^.\\/]",Qt=`${St}*?`,Zt="/",xt={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:Kt,QMARK:St,END_ANCHOR:ct,DOTS_SLASH:it,NO_DOT:Ut,NO_DOTS:Wt,NO_DOT_SLASH:Xt,NO_DOTS_SLASH:qt,QMARK_NO_DOT:Ft,STAR:Qt,START_ANCHOR:gt,SEP:Zt},jt={...xt,SLASH_LITERAL:"[\\\\/]",QMARK:ht,STAR:`${ht}*?`,DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)",SEP:"\\"},Vt={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Ct.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Vt,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return {"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===true?jt:xt}};});var tt=b(G=>{var{REGEX_BACKSLASH:Yt,REGEX_REMOVE_BACKSLASH:zt,REGEX_SPECIAL_CHARS:Jt,REGEX_SPECIAL_CHARS_GLOBAL:te}=J();G.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);G.hasRegexChars=t=>Jt.test(t);G.isRegexChar=t=>t.length===1&&G.hasRegexChars(t);G.escapeRegex=t=>t.replace(te,"\\$1");G.toPosixSlashes=t=>t.replace(Yt,"/");G.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let t=navigator.platform.toLowerCase();return t==="win32"||t==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":false};G.removeBackslashes=t=>t.replace(zt,a=>a==="\\"?"":a);G.escapeLast=(t,a,e)=>{let R=t.lastIndexOf(a,e);return R===-1?t:t[R-1]==="\\"?G.escapeLast(t,a,R-1):`${t.slice(0,R)}\\${t.slice(R)}`};G.removePrefix=(t,a={})=>{let e=t;return e.startsWith("./")&&(e=e.slice(2),a.prefix="./"),e};G.wrapOutput=(t,a={},e={})=>{let R=e.contains?"":"^",c=e.contains?"":"$",E=`${R}(?:${t})${c}`;return a.negated===true&&(E=`(?:^(?!${E}).*$)`),E};G.basename=(t,{windows:a}={})=>{let e=t.split(a?/[\\/]/:"/"),R=e[e.length-1];return R===""?e[e.length-2]:R};});var Ot=b((ge,Tt)=>{var bt=tt(),{CHAR_ASTERISK:lt,CHAR_AT:ee,CHAR_BACKWARD_SLASH:et,CHAR_COMMA:se,CHAR_DOT:pt,CHAR_EXCLAMATION_MARK:ft,CHAR_FORWARD_SLASH:dt,CHAR_LEFT_CURLY_BRACE:At,CHAR_LEFT_PARENTHESES:_t,CHAR_LEFT_SQUARE_BRACKET:re,CHAR_PLUS:ne,CHAR_QUESTION_MARK:Lt,CHAR_RIGHT_CURLY_BRACE:ue,CHAR_RIGHT_PARENTHESES:$t,CHAR_RIGHT_SQUARE_BRACKET:oe}=J(),yt=a(t=>t===dt||t===et,"isPathSeparator"),Ht=a(t=>{t.isPrefix!==true&&(t.depth=t.isGlobstar?1/0:1);},"depth"),ae=a((t,a$1)=>{let e=a$1||{},R=t.length-1,c=e.parts===true||e.scanToEnd===true,E=[],l=[],h=[],C=t,m=-1,S=0,w=0,T=false,M=false,g=false,v=false,Z=false,W=false,b=false,X=false,j=false,k=false,N=0,P,i,f={value:"",depth:0,isGlob:false},n=a(()=>m>=R,"eos"),B=a(()=>C.charCodeAt(m+1),"peek"),O=a(()=>(P=i,C.charCodeAt(++m)),"advance");for(;m<R;){i=O();let x;if(i===et){b=f.backslashes=true,i=O(),i===At&&(W=true);continue}if(W===true||i===At){for(N++;n()!==true&&(i=O());){if(i===et){b=f.backslashes=true,O();continue}if(i===At){N++;continue}if(W!==true&&i===pt&&(i=O())===pt){if(T=f.isBrace=true,g=f.isGlob=true,k=true,c===true)continue;break}if(W!==true&&i===se){if(T=f.isBrace=true,g=f.isGlob=true,k=true,c===true)continue;break}if(i===ue&&(N--,N===0)){W=false,T=f.isBrace=true,k=true;break}}if(c===true)continue;break}if(i===dt){if(E.push(m),l.push(f),f={value:"",depth:0,isGlob:false},k===true)continue;if(P===pt&&m===S+1){S+=2;continue}w=m+1;continue}if(e.noext!==true&&(i===ne||i===ee||i===lt||i===Lt||i===ft)===true&&B()===_t){if(g=f.isGlob=true,v=f.isExtglob=true,k=true,i===ft&&m===S&&(j=true),c===true){for(;n()!==true&&(i=O());){if(i===et){b=f.backslashes=true,i=O();continue}if(i===$t){g=f.isGlob=true,k=true;break}}continue}break}if(i===lt){if(P===lt&&(Z=f.isGlobstar=true),g=f.isGlob=true,k=true,c===true)continue;break}if(i===Lt){if(g=f.isGlob=true,k=true,c===true)continue;break}if(i===re){for(;n()!==true&&(x=O());){if(x===et){b=f.backslashes=true,O();continue}if(x===oe){M=f.isBracket=true,g=f.isGlob=true,k=true;break}}if(c===true)continue;break}if(e.nonegate!==true&&i===ft&&m===S){X=f.negated=true,S++;continue}if(e.noparen!==true&&i===_t){if(g=f.isGlob=true,c===true){for(;n()!==true&&(i=O());){if(i===_t){b=f.backslashes=true,i=O();continue}if(i===$t){k=true;break}}continue}break}if(g===true){if(k=true,c===true)continue;break}}e.noext===true&&(v=false,g=false);let H=C,s="",r="";S>0&&(s=C.slice(0,S),C=C.slice(S),w-=S),H&&g===true&&w>0?(H=C.slice(0,w),r=C.slice(w)):g===true?(H="",r=C):H=C,H&&H!==""&&H!=="/"&&H!==C&&yt(H.charCodeAt(H.length-1))&&(H=H.slice(0,-1)),e.unescape===true&&(r&&(r=bt.removeBackslashes(r)),H&&b===true&&(H=bt.removeBackslashes(H)));let K={prefix:s,input:t,start:S,base:H,glob:r,isBrace:T,isBracket:M,isGlob:g,isExtglob:v,isGlobstar:Z,negated:X,negatedExtglob:j};if(e.tokens===true&&(K.maxDepth=0,yt(i)||l.push(f),K.tokens=l),e.parts===true||e.tokens===true){let x;for(let $=0;$<E.length;$++){let F=x?x+1:S,U=E[$],Q=t.slice(F,U);e.tokens&&($===0&&S!==0?(l[$].isPrefix=true,l[$].value=s):l[$].value=Q,Ht(l[$]),K.maxDepth+=l[$].depth),($!==0||Q!=="")&&h.push(Q),x=U;}if(x&&x+1<t.length){let $=t.slice(x+1);h.push($),e.tokens&&(l[l.length-1].value=$,Ht(l[l.length-1]),K.maxDepth+=l[l.length-1].depth);}K.slashes=E,K.parts=h;}return K},"scan");Tt.exports=ae;});var mt=b((Ce,vt)=>{var ut=J(),q=tt(),{MAX_LENGTH:ot,POSIX_REGEX_SOURCE:ce,REGEX_NON_SPECIAL_CHARS:ie,REGEX_SPECIAL_CHARS_BACKREF:le,REPLACEMENTS:It}=ut,pe=a((t,a)=>{if(typeof a.expandRange=="function")return a.expandRange(...t,a);t.sort();let e=`[${t.join("-")}]`;try{new RegExp(e);}catch{return t.map(c=>q.escapeRegex(c)).join("..")}return e},"expandRange"),z=a((t,a)=>`Missing ${t}: "${a}" - use "\\\\${a}" to match literal characters`,"syntaxError"),Rt=a((t,a$1)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=It[t]||t;let e={...a$1},R=typeof e.maxLength=="number"?Math.min(ot,e.maxLength):ot,c=t.length;if(c>R)throw new SyntaxError(`Input length: ${c}, exceeds maximum allowed length: ${R}`);let E={type:"bos",value:"",output:e.prepend||""},l=[E],h=e.capture?"":"?:",C=ut.globChars(e.windows),m=ut.extglobChars(C),{DOT_LITERAL:S,PLUS_LITERAL:w,SLASH_LITERAL:T,ONE_CHAR:M,DOTS_SLASH:g,NO_DOT:v,NO_DOT_SLASH:Z,NO_DOTS_SLASH:W,QMARK:b,QMARK_NO_DOT:X,STAR:j,START_ANCHOR:k}=C,N=a(o=>`(${h}(?:(?!${k}${o.dot?g:S}).)*?)`,"globstar"),P=e.dot?"":v,i=e.dot?b:X,f=e.bash===true?N(e):j;e.capture&&(f=`(${f})`),typeof e.noext=="boolean"&&(e.noextglob=e.noext);let n={input:t,index:-1,start:0,dot:e.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:l};t=q.removePrefix(t,n),c=t.length;let B=[],O=[],H=[],s=E,r,K=a(()=>n.index===c-1,"eos"),x=n.peek=(o=1)=>t[n.index+o],$=n.advance=()=>t[++n.index]||"",F=a(()=>t.slice(n.index+1),"remaining"),U=a((o="",L=0)=>{n.consumed+=o,n.index+=L;},"consume"),Q=a(o=>{n.output+=o.output!=null?o.output:o.value,U(o.value);},"append"),Mt=a(()=>{let o=1;for(;x()==="!"&&(x(2)!=="("||x(3)==="?");)$(),n.start++,o++;return o%2===0?false:(n.negated=true,n.start++,true)},"negate"),st=a(o=>{n[o]++,H.push(o);},"increment"),V=a(o=>{n[o]--,H.pop();},"decrement"),A=a(o=>{if(s.type==="globstar"){let L=n.braces>0&&(o.type==="comma"||o.type==="brace"),u=o.extglob===true||B.length&&(o.type==="pipe"||o.type==="paren");o.type!=="slash"&&o.type!=="paren"&&!L&&!u&&(n.output=n.output.slice(0,-s.output.length),s.type="star",s.value="*",s.output=f,n.output+=s.output);}if(B.length&&o.type!=="paren"&&(B[B.length-1].inner+=o.value),(o.value||o.output)&&Q(o),s&&s.type==="text"&&o.type==="text"){s.output=(s.output||s.value)+o.value,s.value+=o.value;return}o.prev=s,l.push(o),s=o;},"push"),rt=a((o,L)=>{let u={...m[L],conditions:1,inner:""};u.prev=s,u.parens=n.parens,u.output=n.output;let p=(e.capture?"(":"")+u.open;st("parens"),A({type:o,value:L,output:n.output?"":M}),A({type:"paren",extglob:true,value:$(),output:p}),B.push(u);},"extglobOpen"),Pt=a(o=>{let L=o.close+(e.capture?")":""),u;if(o.type==="negate"){let p=f;if(o.inner&&o.inner.length>1&&o.inner.includes("/")&&(p=N(e)),(p!==f||K()||/^\)+$/.test(F()))&&(L=o.close=`)$))${p}`),o.inner.includes("*")&&(u=F())&&/^\.[^\\/.]+$/.test(u)){let y=Rt(u,{...a$1,fastpaths:false}).output;L=o.close=`)${y})${p})`;}o.prev.type==="bos"&&(n.negatedExtglob=true);}A({type:"paren",extglob:true,value:r,output:L}),V("parens");},"extglobClose");if(e.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(t)){let o=false,L=t.replace(le,(u,p,y,D,I,at)=>D==="\\"?(o=true,u):D==="?"?p?p+D+(I?b.repeat(I.length):""):at===0?i+(I?b.repeat(I.length):""):b.repeat(y.length):D==="."?S.repeat(y.length):D==="*"?p?p+D+(I?f:""):f:p?u:`\\${u}`);return o===true&&(e.unescape===true?L=L.replace(/\\/g,""):L=L.replace(/\\+/g,u=>u.length%2===0?"\\\\":u?"\\":"")),L===t&&e.contains===true?(n.output=t,n):(n.output=q.wrapOutput(L,n,a$1),n)}for(;!K();){if(r=$(),r==="\0")continue;if(r==="\\"){let u=x();if(u==="/"&&e.bash!==true||u==="."||u===";")continue;if(!u){r+="\\",A({type:"text",value:r});continue}let p=/^\\+/.exec(F()),y=0;if(p&&p[0].length>2&&(y=p[0].length,n.index+=y,y%2!==0&&(r+="\\")),e.unescape===true?r=$():r+=$(),n.brackets===0){A({type:"text",value:r});continue}}if(n.brackets>0&&(r!=="]"||s.value==="["||s.value==="[^")){if(e.posix!==false&&r===":"){let u=s.value.slice(1);if(u.includes("[")&&(s.posix=true,u.includes(":"))){let p=s.value.lastIndexOf("["),y=s.value.slice(0,p),D=s.value.slice(p+2),I=ce[D];if(I){s.value=y+I,n.backtrack=true,$(),!E.output&&l.indexOf(s)===1&&(E.output=M);continue}}}(r==="["&&x()!==":"||r==="-"&&x()==="]")&&(r=`\\${r}`),r==="]"&&(s.value==="["||s.value==="[^")&&(r=`\\${r}`),e.posix===true&&r==="!"&&s.value==="["&&(r="^"),s.value+=r,Q({value:r});continue}if(n.quotes===1&&r!=='"'){r=q.escapeRegex(r),s.value+=r,Q({value:r});continue}if(r==='"'){n.quotes=n.quotes===1?0:1,e.keepQuotes===true&&A({type:"text",value:r});continue}if(r==="("){st("parens"),A({type:"paren",value:r});continue}if(r===")"){if(n.parens===0&&e.strictBrackets===true)throw new SyntaxError(z("opening","("));let u=B[B.length-1];if(u&&n.parens===u.parens+1){Pt(B.pop());continue}A({type:"paren",value:r,output:n.parens?")":"\\)"}),V("parens");continue}if(r==="["){if(e.nobracket===true||!F().includes("]")){if(e.nobracket!==true&&e.strictBrackets===true)throw new SyntaxError(z("closing","]"));r=`\\${r}`;}else st("brackets");A({type:"bracket",value:r});continue}if(r==="]"){if(e.nobracket===true||s&&s.type==="bracket"&&s.value.length===1){A({type:"text",value:r,output:`\\${r}`});continue}if(n.brackets===0){if(e.strictBrackets===true)throw new SyntaxError(z("opening","["));A({type:"text",value:r,output:`\\${r}`});continue}V("brackets");let u=s.value.slice(1);if(s.posix!==true&&u[0]==="^"&&!u.includes("/")&&(r=`/${r}`),s.value+=r,Q({value:r}),e.literalBrackets===false||q.hasRegexChars(u))continue;let p=q.escapeRegex(s.value);if(n.output=n.output.slice(0,-s.value.length),e.literalBrackets===true){n.output+=p,s.value=p;continue}s.value=`(${h}${p}|${s.value})`,n.output+=s.value;continue}if(r==="{"&&e.nobrace!==true){st("braces");let u={type:"brace",value:r,output:"(",outputIndex:n.output.length,tokensIndex:n.tokens.length};O.push(u),A(u);continue}if(r==="}"){let u=O[O.length-1];if(e.nobrace===true||!u){A({type:"text",value:r,output:r});continue}let p=")";if(u.dots===true){let y=l.slice(),D=[];for(let I=y.length-1;I>=0&&(l.pop(),y[I].type!=="brace");I--)y[I].type!=="dots"&&D.unshift(y[I].value);p=pe(D,e),n.backtrack=true;}if(u.comma!==true&&u.dots!==true){let y=n.output.slice(0,u.outputIndex),D=n.tokens.slice(u.tokensIndex);u.value=u.output="\\{",r=p="\\}",n.output=y;for(let I of D)n.output+=I.output||I.value;}A({type:"brace",value:r,output:p}),V("braces"),O.pop();continue}if(r==="|"){B.length>0&&B[B.length-1].conditions++,A({type:"text",value:r});continue}if(r===","){let u=r,p=O[O.length-1];p&&H[H.length-1]==="braces"&&(p.comma=true,u="|"),A({type:"comma",value:r,output:u});continue}if(r==="/"){if(s.type==="dot"&&n.index===n.start+1){n.start=n.index+1,n.consumed="",n.output="",l.pop(),s=E;continue}A({type:"slash",value:r,output:T});continue}if(r==="."){if(n.braces>0&&s.type==="dot"){s.value==="."&&(s.output=S);let u=O[O.length-1];s.type="dots",s.output+=r,s.value+=r,u.dots=true;continue}if(n.braces+n.parens===0&&s.type!=="bos"&&s.type!=="slash"){A({type:"text",value:r,output:S});continue}A({type:"dot",value:r,output:S});continue}if(r==="?"){if(!(s&&s.value==="(")&&e.noextglob!==true&&x()==="("&&x(2)!=="?"){rt("qmark",r);continue}if(s&&s.type==="paren"){let p=x(),y=r;(s.value==="("&&!/[!=<:]/.test(p)||p==="<"&&!/<([!=]|\w+>)/.test(F()))&&(y=`\\${r}`),A({type:"text",value:r,output:y});continue}if(e.dot!==true&&(s.type==="slash"||s.type==="bos")){A({type:"qmark",value:r,output:X});continue}A({type:"qmark",value:r,output:b});continue}if(r==="!"){if(e.noextglob!==true&&x()==="("&&(x(2)!=="?"||!/[!=<:]/.test(x(3)))){rt("negate",r);continue}if(e.nonegate!==true&&n.index===0){Mt();continue}}if(r==="+"){if(e.noextglob!==true&&x()==="("&&x(2)!=="?"){rt("plus",r);continue}if(s&&s.value==="("||e.regex===false){A({type:"plus",value:r,output:w});continue}if(s&&(s.type==="bracket"||s.type==="paren"||s.type==="brace")||n.parens>0){A({type:"plus",value:r});continue}A({type:"plus",value:w});continue}if(r==="@"){if(e.noextglob!==true&&x()==="("&&x(2)!=="?"){A({type:"at",extglob:true,value:r,output:""});continue}A({type:"text",value:r});continue}if(r!=="*"){(r==="$"||r==="^")&&(r=`\\${r}`);let u=ie.exec(F());u&&(r+=u[0],n.index+=u[0].length),A({type:"text",value:r});continue}if(s&&(s.type==="globstar"||s.star===true)){s.type="star",s.star=true,s.value+=r,s.output=f,n.backtrack=true,n.globstar=true,U(r);continue}let o=F();if(e.noextglob!==true&&/^\([^?]/.test(o)){rt("star",r);continue}if(s.type==="star"){if(e.noglobstar===true){U(r);continue}let u=s.prev,p=u.prev,y=u.type==="slash"||u.type==="bos",D=p&&(p.type==="star"||p.type==="globstar");if(e.bash===true&&(!y||o[0]&&o[0]!=="/")){A({type:"star",value:r,output:""});continue}let I=n.braces>0&&(u.type==="comma"||u.type==="brace"),at=B.length&&(u.type==="pipe"||u.type==="paren");if(!y&&u.type!=="paren"&&!I&&!at){A({type:"star",value:r,output:""});continue}for(;o.slice(0,3)==="/**";){let nt=t[n.index+4];if(nt&&nt!=="/")break;o=o.slice(3),U("/**",3);}if(u.type==="bos"&&K()){s.type="globstar",s.value+=r,s.output=N(e),n.output=s.output,n.globstar=true,U(r);continue}if(u.type==="slash"&&u.prev.type!=="bos"&&!D&&K()){n.output=n.output.slice(0,-(u.output+s.output).length),u.output=`(?:${u.output}`,s.type="globstar",s.output=N(e)+(e.strictSlashes?")":"|$)"),s.value+=r,n.globstar=true,n.output+=u.output+s.output,U(r);continue}if(u.type==="slash"&&u.prev.type!=="bos"&&o[0]==="/"){let nt=o[1]!==void 0?"|$":"";n.output=n.output.slice(0,-(u.output+s.output).length),u.output=`(?:${u.output}`,s.type="globstar",s.output=`${N(e)}${T}|${T}${nt})`,s.value+=r,n.output+=u.output+s.output,n.globstar=true,U(r+$()),A({type:"slash",value:"/",output:""});continue}if(u.type==="bos"&&o[0]==="/"){s.type="globstar",s.value+=r,s.output=`(?:^|${T}|${N(e)}${T})`,n.output=s.output,n.globstar=true,U(r+$()),A({type:"slash",value:"/",output:""});continue}n.output=n.output.slice(0,-s.output.length),s.type="globstar",s.output=N(e),s.value+=r,n.output+=s.output,n.globstar=true,U(r);continue}let L={type:"star",value:r,output:f};if(e.bash===true){L.output=".*?",(s.type==="bos"||s.type==="slash")&&(L.output=P+L.output),A(L);continue}if(s&&(s.type==="bracket"||s.type==="paren")&&e.regex===true){L.output=r,A(L);continue}(n.index===n.start||s.type==="slash"||s.type==="dot")&&(s.type==="dot"?(n.output+=Z,s.output+=Z):e.dot===true?(n.output+=W,s.output+=W):(n.output+=P,s.output+=P),x()!=="*"&&(n.output+=M,s.output+=M)),A(L);}for(;n.brackets>0;){if(e.strictBrackets===true)throw new SyntaxError(z("closing","]"));n.output=q.escapeLast(n.output,"["),V("brackets");}for(;n.parens>0;){if(e.strictBrackets===true)throw new SyntaxError(z("closing",")"));n.output=q.escapeLast(n.output,"("),V("parens");}for(;n.braces>0;){if(e.strictBrackets===true)throw new SyntaxError(z("closing","}"));n.output=q.escapeLast(n.output,"{"),V("braces");}if(e.strictSlashes!==true&&(s.type==="star"||s.type==="bracket")&&A({type:"maybe_slash",value:"",output:`${T}?`}),n.backtrack===true){n.output="";for(let o of n.tokens)n.output+=o.output!=null?o.output:o.value,o.suffix&&(n.output+=o.suffix);}return n},"parse");Rt.fastpaths=(t,a$1)=>{let e={...a$1},R=typeof e.maxLength=="number"?Math.min(ot,e.maxLength):ot,c=t.length;if(c>R)throw new SyntaxError(`Input length: ${c}, exceeds maximum allowed length: ${R}`);t=It[t]||t;let{DOT_LITERAL:E,SLASH_LITERAL:l,ONE_CHAR:h,DOTS_SLASH:C,NO_DOT:m,NO_DOTS:S,NO_DOTS_SLASH:w,STAR:T,START_ANCHOR:M}=ut.globChars(e.windows),g=e.dot?S:m,v=e.dot?w:m,Z=e.capture?"":"?:",W={negated:false,prefix:""},b=e.bash===true?".*?":T;e.capture&&(b=`(${b})`);let X=a(P=>P.noglobstar===true?b:`(${Z}(?:(?!${M}${P.dot?C:E}).)*?)`,"globstar"),j=a(P=>{switch(P){case "*":return `${g}${h}${b}`;case ".*":return `${E}${h}${b}`;case "*.*":return `${g}${b}${E}${h}${b}`;case "*/*":return `${g}${b}${l}${h}${v}${b}`;case "**":return g+X(e);case "**/*":return `(?:${g}${X(e)}${l})?${v}${h}${b}`;case "**/*.*":return `(?:${g}${X(e)}${l})?${v}${b}${E}${h}${b}`;case "**/.*":return `(?:${g}${X(e)}${l})?${E}${h}${b}`;default:{let i=/^(.*?)\.(\w+)$/.exec(P);if(!i)return;let f=j(i[1]);return f?f+E+i[2]:void 0}}},"create"),k=q.removePrefix(t,W),N=j(k);return N&&e.strictSlashes!==true&&(N+=`${l}?`),N};vt.exports=Rt;});var kt=b((Le,wt)=>{var fe=Ot(),Et=mt(),Nt=tt(),Ae=J(),_e=a(t=>t&&typeof t=="object"&&!Array.isArray(t),"isObject"),d=a((t,a$1,e=false)=>{if(Array.isArray(t)){let S=t.map(T=>d(T,a$1,e));return a(T=>{for(let M of S){let g=M(T);if(g)return g}return false},"arrayMatcher")}let R=_e(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!R)throw new TypeError("Expected pattern to be a non-empty string");let c=a$1||{},E=c.windows,l=R?d.compileRe(t,a$1):d.makeRe(t,a$1,false,true),h=l.state;delete l.state;let C=a(()=>false,"isIgnored");if(c.ignore){let S={...a$1,ignore:null,onMatch:null,onResult:null};C=d(c.ignore,S,e);}let m=a((S,w=false)=>{let{isMatch:T,match:M,output:g}=d.test(S,l,a$1,{glob:t,posix:E}),v={glob:t,state:h,regex:l,posix:E,input:S,output:g,match:M,isMatch:T};return typeof c.onResult=="function"&&c.onResult(v),T===false?(v.isMatch=false,w?v:false):C(S)?(typeof c.onIgnore=="function"&&c.onIgnore(v),v.isMatch=false,w?v:false):(typeof c.onMatch=="function"&&c.onMatch(v),w?v:true)},"matcher");return e&&(m.state=h),m},"picomatch");d.test=(t,a,e,{glob:R,posix:c}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return {isMatch:false,output:""};let E=e||{},l=E.format||(c?Nt.toPosixSlashes:null),h=t===R,C=h&&l?l(t):t;return h===false&&(C=l?l(t):t,h=C===R),(h===false||E.capture===true)&&(E.matchBase===true||E.basename===true?h=d.matchBase(t,a,e,c):h=a.exec(C)),{isMatch:!!h,match:h,output:C}};d.matchBase=(t,a,e)=>(a instanceof RegExp?a:d.makeRe(a,e)).test(Nt.basename(t));d.isMatch=(t,a,e)=>d(a,e)(t);d.parse=(t,a)=>Array.isArray(t)?t.map(e=>d.parse(e,a)):Et(t,{...a,fastpaths:false});d.scan=(t,a)=>fe(t,a);d.compileRe=(t,a,e=false,R=false)=>{if(e===true)return t.output;let c=a||{},E=c.contains?"":"^",l=c.contains?"":"$",h=`${E}(?:${t.output})${l}`;t&&t.negated===true&&(h=`^(?!${h}).*$`);let C=d.toRegex(h,a);return R===true&&(C.state=t),C};d.makeRe=(t,a={},e=false,R=false)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let c={negated:false,fastpaths:true};return a.fastpaths!==false&&(t[0]==="."||t[0]==="*")&&(c.output=Et.fastpaths(t,a)),c.output||(c=Et(t,a)),d.compileRe(c,a,e,R)};d.toRegex=(t,a)=>{try{let e=a||{};return new RegExp(t,e.flags||(e.nocase?"i":""))}catch(e){if(a&&a.debug===true)throw e;return /$^/}};d.constants=Ae;wt.exports=d;});var Ee=b((ye,Gt)=>{var Dt=kt(),Re=tt();function Bt(t,a,e=false){return a&&(a.windows===null||a.windows===void 0)&&(a={...a,windows:Re.isWindows()}),Dt(t,a,e)}a(Bt,"picomatch");Object.assign(Bt,Dt);Gt.exports=Bt;});export{Ee as a};