likec4 1.20.3 → 1.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/__app__/src/chunks/{-index-overview-TebwYeV7.js → -index-overview-Csw3b-Fk.js} +4 -4
- package/__app__/src/chunks/{likec4-D8rQPdul.js → likec4-fsbHEjF3.js} +479 -478
- package/__app__/src/chunks/{main-DSlxn73B.js → main-DbAbBULM.js} +5105 -5106
- package/__app__/src/chunks/{mantine-D3AsIG-5.js → mantine-BdYO4lQg.js} +3837 -3743
- package/__app__/src/chunks/{tanstack-router-BE0xJAYp.js → tanstack-router-H-3IPlI6.js} +1 -1
- package/__app__/src/main.js +1 -1
- package/__app__/src/style.css +1 -1
- package/__app__/webcomponent/webcomponent.js +888 -799
- package/dist/cli/index.cjs +36 -36
- package/dist/cli/index.mjs +3 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +90 -27
- package/dist/index.d.mts +90 -27
- package/dist/index.d.ts +90 -27
- package/dist/index.mjs +1 -1
- package/dist/model/index.cjs +1 -1
- package/dist/model/index.d.cts +2 -2
- package/dist/model/index.d.mts +2 -2
- package/dist/model/index.d.ts +2 -2
- package/dist/model/index.mjs +1 -1
- package/dist/shared/likec4.BH2DNgw1.mjs +1855 -0
- package/dist/shared/likec4.DIyCHEbR.cjs +1855 -0
- package/package.json +19 -19
- package/react/index.js +553 -469
- package/react/style.css +1 -1
- package/dist/shared/likec4.32ndthTo.cjs +0 -1855
- package/dist/shared/likec4.BgEQuI_b.mjs +0 -1855
package/dist/cli/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";const LikeC4=require("../shared/likec4.
|
|
2
|
+
"use strict";const LikeC4=require("../shared/likec4.DIyCHEbR.cjs"),process$1=require("node:process"),assert=require("assert"),require$$0=require("path"),require$$0$1=require("fs"),require$$0$2=require("util"),require$$0$3=require("url"),path$1=require("node:path"),fs=require("node:fs"),fsPromises=require("node:fs/promises"),os=require("node:os"),node_url=require("node:url"),c$1=require("@vitejs/plugin-react-swc"),core=require("@likec4/core"),vite=require("vite"),playwright=require("playwright"),net=require("node:net"),promises=require("node:timers/promises");require("tty"),require("node:util"),require("os"),require("crypto"),require("net"),require("child_process"),require("node:tty"),require("@likec4/core/types"),require("events"),require("buffer"),require("@hpcc-js/wasm-graphviz"),require("@likec4/core/compute-view"),require("node:child_process"),require("node:string_decoder"),require("node:events"),require("node:v8"),require("node:stream"),require("node:buffer"),require("node:stream/promises"),require("@likec4/core/model");var _documentCurrentScript=typeof document<"u"?document.currentScript:null;function _interopDefaultCompat(i){return i&&typeof i=="object"&&"default"in i?i.default:i}const process__default=_interopDefaultCompat(process$1),require$$0__default$1=_interopDefaultCompat(require$$0),require$$0__default=_interopDefaultCompat(require$$0$2),path__default=_interopDefaultCompat(path$1),fs__default=_interopDefaultCompat(fs),os__default=_interopDefaultCompat(os),c__default=_interopDefaultCompat(c$1),net__default=_interopDefaultCompat(net),align={right:alignRight,center:alignCenter},top=0,right=1,bottom=2,left=3;class UI{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){const t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]=="string")return this.applyLayoutDSL(e[0]);const t=e.map(n=>typeof n=="string"?this.colFromString(n):n);return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]=="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){const t=e.split(`
|
|
3
3
|
`).map(s=>s.split(" "));let n=0;return t.forEach(s=>{s.length>1&&mixin$1.stringWidth(s[0])>n&&(n=Math.min(Math.floor(this.width*.5),mixin$1.stringWidth(s[0])))}),t.forEach(s=>{this.div(...s.map((a,o)=>({text:a.trim(),padding:this.measurePadding(a),width:o===0&&s.length>1?n:void 0})))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){const t=mixin$1.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){const e=[];return this.rows.forEach(t=>{this.rowToString(t,e)}),e.filter(t=>!t.hidden).map(t=>t.text).join(`
|
|
4
4
|
`)}rowToString(e,t){return this.rasterize(e).forEach((n,s)=>{let a="";n.forEach((o,l)=>{const{width:f}=e[l],E=this.negatePadding(e[l]);let w=o;if(E>mixin$1.stringWidth(o)&&(w+=" ".repeat(E-mixin$1.stringWidth(o))),e[l].align&&e[l].align!=="left"&&this.wrap){const d=align[e[l].align];w=d(w,E),mixin$1.stringWidth(w)<E&&(w+=" ".repeat((f||0)-mixin$1.stringWidth(w)-1))}const y=e[l].padding||[0,0,0,0];y[left]&&(a+=" ".repeat(y[left])),a+=addBorder(e[l],w,"| "),a+=w,a+=addBorder(e[l],w," |"),y[right]&&(a+=" ".repeat(y[right])),s===0&&t.length>0&&(a=this.renderInline(a,t[t.length-1]))}),t.push({text:a.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){const n=e.match(/^ */),s=n?n[0].length:0,a=t.text,o=mixin$1.stringWidth(a.trimRight());return t.span?this.wrap?s<o?e:(t.hidden=!0,a.trimRight()+" ".repeat(s-o)+e.trimLeft()):(t.hidden=!0,a+e):e}rasterize(e){const t=[],n=this.columnWidths(e);let s;return e.forEach((a,o)=>{a.width=n[o],this.wrap?s=mixin$1.wrap(a.text,this.negatePadding(a),{hard:!0}).split(`
|
|
5
5
|
`):s=a.text.split(`
|
|
@@ -273,7 +273,7 @@ export {
|
|
|
273
273
|
default: {
|
|
274
274
|
throw new Error('Unknown viewId: ' + viewId)
|
|
275
275
|
}
|
|
276
|
-
`}}).append(NL," }",NL,"}",NL,NL),toString(e)}function generateIconRendererSource(i){const e=LikeC4.
|
|
276
|
+
`}}).append(NL," }",NL,"}",NL,NL),toString(e)}function generateIconRendererSource(i){const e=LikeC4.C(i.flatMap(s=>s.nodes.map(a=>a.icon)),LikeC4.c(LikeC4.t),LikeC4.c(s=>LikeC4.d(s)&&!s.toLowerCase().startsWith("http")),LikeC4.b()).sort(),{imports:t,cases:n}=e.reduce((s,a,o)=>{const[l,f]=a.split(":"),E="Icon"+o.toString().padStart(2,"0");return s.imports.push(`import ${E} from 'likec4/icons/${l}/${f}'`),s.cases.push(` '${l}:${f}': ${E}`),s},{imports:[],cases:[]});return`
|
|
277
277
|
${t.join(`
|
|
278
278
|
`)}
|
|
279
279
|
|
|
@@ -410,33 +410,33 @@ if (import.meta.hot) {
|
|
|
410
410
|
}
|
|
411
411
|
})
|
|
412
412
|
}
|
|
413
|
-
`}const P={id:"virtual:likec4/dot-sources",virtualId:"\0likec4-plugin/dot-sources.js",async load({likec4:i,logger:e}){e.info(LikeC4.p.dim("generating virtual:likec4/dot-sources"));const t=await i.viewsService.viewsAsGraphvizOut(),n=LikeC4.l(t,({id:s,svg:a,dot:o})=>[s,{dot:o,svg:a}]);return generateDotSources(n)}},V={id:"virtual:likec4/d2-sources",virtualId:"\0likec4-plugin/d2-sources.js",async load({likec4:i,logger:e}){e.info(LikeC4.p.dim("generating virtual:likec4/d2-sources"));const t=await i.viewsService.computedViews();return generateD2Sources(t)}},j={id:"virtual:likec4/mmd-sources",virtualId:"\0likec4-plugin/mmd-sources.js",async load({likec4:i,logger:e}){e.info(LikeC4.p.dim("generating virtual:likec4/mmd-sources"));const t=await i.viewsService.computedViews();return generateMmdSources(t)}},C={id:"virtual:likec4/icons",virtualId:"\0likec4-plugin/icons.js",async load({likec4:i,logger:e}){e.info(LikeC4.p.dim("generating virtual:likec4/icons"));const t=await i.viewsService.computedViews();return generateIconRendererSource(t)}},O={id:"virtual:likec4/overview-graph",virtualId:"\0likec4-plugin/overview-graph.js",async load({likec4:i,logger:e,useOverviewGraph:t}){if(t===!0)try{e.info(LikeC4.p.dim("generating virtual:likec4/overview-graph"));const n=await i.viewsService.overviewGraph();return generateOverviewGraphSource(n)}catch(n){e.error(n)}return e.info(LikeC4.p.dim("generating empty virtual:likec4/overview-graph")),generateOverviewGraphSource({nodes:[],edges:[],bounds:{x:0,y:0,width:10,height:10}})}},m$1={id:"virtual:likec4/previews",virtualId:"\0likec4-plugin/previews.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(LikeC4.p.dim("generating virtual:likec4/previews"));const n=await i.viewsService.computedViews();return diagramPreviewsSources(n,t)}},G={id:"virtual:likec4/model",virtualId:"\0likec4-plugin/model.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(LikeC4.p.dim("generating virtual:likec4/model"));const n=await i.layoutedModel();return likec4ModelSources(n)}},modules=[C,P,V,j,O,m$1,G],$=i=>{const e=i.toLowerCase();return e.endsWith(".c4")||e.endsWith(".likec4")||e.endsWith(".like-c4")};function likec4Plugin({useOverviewGraph:i=!1,languageServices:e}){let t,n=e.workspace;return{name:"vite-plugin-likec4",configResolved(s){if(t=s.logger,i){const a=s.resolve.alias.find(o=>o.find==="likec4/previews")?.replacement;a?(n=a,t.info(LikeC4.p.dim("likec4/previews alias")+" "+LikeC4.p.dim(n))):t.warn("likec4/previews alias not found")}},resolveId(s){const a=modules.find(o=>o.id===s);return a?a.virtualId:null},async load(s){const a=modules.find(o=>o.virtualId===s);return a?await a.load({logger:t,likec4:e,assetsDir:n,useOverviewGraph:i}):null},configureServer(s){const a=LikeC4.e(1),o=()=>{a.clearQueue(),a(async()=>{const[E]=e.getErrors();if(E){s.ws.send({type:"error",err:{name:"LikeC4ValidationError",message:"Validation error: "+E.message.slice(0,500),stack:"",plugin:"vite-plugin-likec4",loc:{file:E.sourceFsPath,line:E.range.start.line+1,column:E.range.start.character+1}}});return}for(const w of modules){const y=s.moduleGraph.getModuleById(w.virtualId);if(y&&y.importers.size>0){t.info(`${LikeC4.p.green("trigger hmr")} ${LikeC4.p.dim(y.url)}`);try{await s.reloadModule(y)}catch(d){t.error(d)}}}})},l=e.workspace;t.info(`${LikeC4.p.dim("watch")} ${l}`);const f=E=>w=>{$(w)&&e.notifyUpdate({[E]:w})};if(s.watcher.add(l).on("add",f("changed")).on("change",f("changed")).on("unlink",f("removed")),i&&!n.startsWith(e.workspace)){t.info(`${LikeC4.p.dim("watch")} ${n}`);const E=()=>{const w=s.moduleGraph.getModuleById(m$1.virtualId);w&&w.importers.size>0&&s.reloadModule(w)};s.watcher.add(n).on("add",E).on("change",E).on("unlink",E)}e.onModelUpdate(()=>{LikeC4.H.debug("likec4 model update"),o()})}}}var utils$1={},hasRequiredUtils$1;function requireUtils$1(){return hasRequiredUtils$1||(hasRequiredUtils$1=1,function(i){i.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1,i.find=(e,t)=>e.nodes.find(n=>n.type===t),i.exceedsLimit=(e,t,n=1,s)=>s===!1||!i.isInteger(e)||!i.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=s,i.escapeNode=(e,t=0,n)=>{const s=e.nodes[t];s&&(n&&s.type===n||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)},i.encloseBrace=e=>e.type!=="brace"||e.commas>>0+e.ranges>>0?!1:(e.invalid=!0,!0),i.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:!(e.commas>>0+e.ranges>>0)||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1,i.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0,i.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]),i.flatten=(...e)=>{const t=[],n=s=>{for(let a=0;a<s.length;a++){const o=s[a];if(Array.isArray(o)){n(o);continue}o!==void 0&&t.push(o)}return t};return n(e),t}}(utils$1)),utils$1}var stringify,hasRequiredStringify;function requireStringify(){if(hasRequiredStringify)return stringify;hasRequiredStringify=1;const i=requireUtils$1();return stringify=(e,t={})=>{const n=(s,a={})=>{const o=t.escapeInvalid&&i.isInvalidBrace(a),l=s.invalid===!0&&t.escapeInvalid===!0;let f="";if(s.value)return(o||l)&&i.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(const E of s.nodes)f+=n(E);return f};return n(e)},stringify}var isNumber,hasRequiredIsNumber;function requireIsNumber(){return hasRequiredIsNumber||(hasRequiredIsNumber=1,isNumber=function(i){return typeof i=="number"?i-i===0:typeof i=="string"&&i.trim()!==""?Number.isFinite?Number.isFinite(+i):isFinite(+i):!1}),isNumber}var toRegexRange_1,hasRequiredToRegexRange;function requireToRegexRange(){if(hasRequiredToRegexRange)return toRegexRange_1;hasRequiredToRegexRange=1;const i=requireIsNumber(),e=(_,U,te)=>{if(i(_)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(U===void 0||_===U)return String(_);if(i(U)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let T={relaxZeros:!0,...te};typeof T.strictZeros=="boolean"&&(T.relaxZeros=T.strictZeros===!1);let X=String(T.relaxZeros),K=String(T.shorthand),le=String(T.capture),re=String(T.wrap),he=_+":"+U+"="+X+K+le+re;if(e.cache.hasOwnProperty(he))return e.cache[he].result;let De=Math.min(_,U),ge=Math.max(_,U);if(Math.abs(De-ge)===1){let me=_+"|"+U;return T.capture?`(${me})`:T.wrap===!1?me:`(?:${me})`}let ae=Q(_)||Q(U),ue={min:_,max:U,a:De,b:ge},ee=[],de=[];if(ae&&(ue.isPadded=ae,ue.maxLen=String(ue.max).length),De<0){let me=ge<0?Math.abs(ge):1;de=a(me,Math.abs(De),ue,T),De=ue.a=0}return ge>=0&&(ee=a(De,ge,ue,T)),ue.negatives=de,ue.positives=ee,ue.result=t(de,ee),T.capture===!0?ue.result=`(${ue.result})`:T.wrap!==!1&&ee.length+de.length>1&&(ue.result=`(?:${ue.result})`),e.cache[he]=ue,ue.result};function t(_,U,te){let T=o(_,U,"-",!1),X=o(U,_,"",!1),K=o(_,U,"-?",!0);return T.concat(K).concat(X).join("|")}function n(_,U){let te=1,T=1,X=w(_,te),K=new Set([U]);for(;_<=X&&X<=U;)K.add(X),te+=1,X=w(_,te);for(X=y(U+1,T)-1;_<X&&X<=U;)K.add(X),T+=1,X=y(U+1,T)-1;return K=[...K],K.sort(f),K}function s(_,U,te){if(_===U)return{pattern:_,count:[],digits:0};let T=l(_,U),X=T.length,K="",le=0;for(let re=0;re<X;re++){let[he,De]=T[re];he===De?K+=he:he!=="0"||De!=="9"?K+=H(he,De):le++}return le&&(K+=te.shorthand===!0?"\\d":"[0-9]"),{pattern:K,count:[le],digits:X}}function a(_,U,te,T){let X=n(_,U),K=[],le=_,re;for(let he=0;he<X.length;he++){let De=X[he],ge=s(String(le),String(De),T),ae="";if(!te.isPadded&&re&&re.pattern===ge.pattern){re.count.length>1&&re.count.pop(),re.count.push(ge.count[0]),re.string=re.pattern+d(re.count),le=De+1;continue}te.isPadded&&(ae=W(De,te,T)),ge.string=ae+ge.pattern+d(ge.count),K.push(ge),le=De+1,re=ge}return K}function o(_,U,te,T,X){let K=[];for(let le of _){let{string:re}=le;!T&&!E(U,"string",re)&&K.push(te+re),T&&E(U,"string",re)&&K.push(te+re)}return K}function l(_,U){let te=[];for(let T=0;T<_.length;T++)te.push([_[T],U[T]]);return te}function f(_,U){return _>U?1:U>_?-1:0}function E(_,U,te){return _.some(T=>T[U]===te)}function w(_,U){return Number(String(_).slice(0,-U)+"9".repeat(U))}function y(_,U){return _-_%Math.pow(10,U)}function d(_){let[U=0,te=""]=_;return te||U>1?`{${U+(te?","+te:"")}}`:""}function H(_,U,te){return`[${_}${U-_===1?"":"-"}${U}]`}function Q(_){return/^-?(0+)\d/.test(_)}function W(_,U,te){if(!U.isPadded)return _;let T=Math.abs(U.maxLen-String(_).length),X=te.relaxZeros!==!1;switch(T){case 0:return"";case 1:return X?"0?":"0";case 2:return X?"0{0,2}":"00";default:return X?`0{0,${T}}`:`0{${T}}`}}return e.cache={},e.clearCache=()=>e.cache={},toRegexRange_1=e,toRegexRange_1}var fillRange,hasRequiredFillRange;function requireFillRange(){if(hasRequiredFillRange)return fillRange;hasRequiredFillRange=1;const i=require$$0__default,e=requireToRegexRange(),t=T=>T!==null&&typeof T=="object"&&!Array.isArray(T),n=T=>X=>T===!0?Number(X):String(X),s=T=>typeof T=="number"||typeof T=="string"&&T!=="",a=T=>Number.isInteger(+T),o=T=>{let X=`${T}`,K=-1;if(X[0]==="-"&&(X=X.slice(1)),X==="0")return!1;for(;X[++K]==="0";);return K>0},l=(T,X,K)=>typeof T=="string"||typeof X=="string"?!0:K.stringify===!0,f=(T,X,K)=>{if(X>0){let le=T[0]==="-"?"-":"";le&&(T=T.slice(1)),T=le+T.padStart(le?X-1:X,"0")}return K===!1?String(T):T},E=(T,X)=>{let K=T[0]==="-"?"-":"";for(K&&(T=T.slice(1),X--);T.length<X;)T="0"+T;return K?"-"+T:T},w=(T,X,K)=>{T.negatives.sort((ge,ae)=>ge<ae?-1:ge>ae?1:0),T.positives.sort((ge,ae)=>ge<ae?-1:ge>ae?1:0);let le=X.capture?"":"?:",re="",he="",De;return T.positives.length&&(re=T.positives.map(ge=>E(String(ge),K)).join("|")),T.negatives.length&&(he=`-(${le}${T.negatives.map(ge=>E(String(ge),K)).join("|")})`),re&&he?De=`${re}|${he}`:De=re||he,X.wrap?`(${le}${De})`:De},y=(T,X,K,le)=>{if(K)return e(T,X,{wrap:!1,...le});let re=String.fromCharCode(T);if(T===X)return re;let he=String.fromCharCode(X);return`[${re}-${he}]`},d=(T,X,K)=>{if(Array.isArray(T)){let le=K.wrap===!0,re=K.capture?"":"?:";return le?`(${re}${T.join("|")})`:T.join("|")}return e(T,X,K)},H=(...T)=>new RangeError("Invalid range arguments: "+i.inspect(...T)),Q=(T,X,K)=>{if(K.strictRanges===!0)throw H([T,X]);return[]},W=(T,X)=>{if(X.strictRanges===!0)throw new TypeError(`Expected step "${T}" to be a number`);return[]},_=(T,X,K=1,le={})=>{let re=Number(T),he=Number(X);if(!Number.isInteger(re)||!Number.isInteger(he)){if(le.strictRanges===!0)throw H([T,X]);return[]}re===0&&(re=0),he===0&&(he=0);let De=re>he,ge=String(T),ae=String(X),ue=String(K);K=Math.max(Math.abs(K),1);let ee=o(ge)||o(ae)||o(ue),de=ee?Math.max(ge.length,ae.length,ue.length):0,me=ee===!1&&l(T,X,le)===!1,we=le.transform||n(me);if(le.toRegex&&K===1)return y(E(T,de),E(X,de),!0,le);let pe={negatives:[],positives:[]},Fe=ne=>pe[ne<0?"negatives":"positives"].push(Math.abs(ne)),Oe=[],ye=0;for(;De?re>=he:re<=he;)le.toRegex===!0&&K>1?Fe(re):Oe.push(f(we(re,ye),de,me)),re=De?re-K:re+K,ye++;return le.toRegex===!0?K>1?w(pe,le,de):d(Oe,null,{wrap:!1,...le}):Oe},U=(T,X,K=1,le={})=>{if(!a(T)&&T.length>1||!a(X)&&X.length>1)return Q(T,X,le);let re=le.transform||(me=>String.fromCharCode(me)),he=`${T}`.charCodeAt(0),De=`${X}`.charCodeAt(0),ge=he>De,ae=Math.min(he,De),ue=Math.max(he,De);if(le.toRegex&&K===1)return y(ae,ue,!1,le);let ee=[],de=0;for(;ge?he>=De:he<=De;)ee.push(re(he,de)),he=ge?he-K:he+K,de++;return le.toRegex===!0?d(ee,null,{wrap:!1,options:le}):ee},te=(T,X,K,le={})=>{if(X==null&&s(T))return[T];if(!s(T)||!s(X))return Q(T,X,le);if(typeof K=="function")return te(T,X,1,{transform:K});if(t(K))return te(T,X,0,K);let re={...le};return re.capture===!0&&(re.wrap=!0),K=K||re.step||1,a(K)?a(T)&&a(X)?_(T,X,K,re):U(T,X,Math.max(Math.abs(K),1),re):K!=null&&!t(K)?W(K,re):te(T,X,1,K)};return fillRange=te,fillRange}var compile_1,hasRequiredCompile;function requireCompile(){if(hasRequiredCompile)return compile_1;hasRequiredCompile=1;const i=requireFillRange(),e=requireUtils$1();return compile_1=(n,s={})=>{const a=(o,l={})=>{const f=e.isInvalidBrace(l),E=o.invalid===!0&&s.escapeInvalid===!0,w=f===!0||E===!0,y=s.escapeInvalid===!0?"\\":"";let d="";if(o.isOpen===!0)return y+o.value;if(o.isClose===!0)return console.log("node.isClose",y,o.value),y+o.value;if(o.type==="open")return w?y+o.value:"(";if(o.type==="close")return w?y+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":w?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){const H=e.reduce(o.nodes),Q=i(...H,{...s,wrap:!1,toRegex:!0,strictZeros:!0});if(Q.length!==0)return H.length>1&&Q.length>1?`(${Q})`:Q}if(o.nodes)for(const H of o.nodes)d+=a(H,o);return d};return a(n)},compile_1}var expand_1,hasRequiredExpand;function requireExpand(){if(hasRequiredExpand)return expand_1;hasRequiredExpand=1;const i=requireFillRange(),e=requireStringify(),t=requireUtils$1(),n=(a="",o="",l=!1)=>{const f=[];if(a=[].concat(a),o=[].concat(o),!o.length)return a;if(!a.length)return l?t.flatten(o).map(E=>`{${E}}`):o;for(const E of a)if(Array.isArray(E))for(const w of E)f.push(n(w,o,l));else for(let w of o)l===!0&&typeof w=="string"&&(w=`{${w}}`),f.push(Array.isArray(w)?n(E,w,l):E+w);return t.flatten(f)};return expand_1=(a,o={})=>{const l=o.rangeLimit===void 0?1e3:o.rangeLimit,f=(E,w={})=>{E.queue=[];let y=w,d=w.queue;for(;y.type!=="brace"&&y.type!=="root"&&y.parent;)y=y.parent,d=y.queue;if(E.invalid||E.dollar){d.push(n(d.pop(),e(E,o)));return}if(E.type==="brace"&&E.invalid!==!0&&E.nodes.length===2){d.push(n(d.pop(),["{}"]));return}if(E.nodes&&E.ranges>0){const _=t.reduce(E.nodes);if(t.exceedsLimit(..._,o.step,l))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let U=i(..._,o);U.length===0&&(U=e(E,o)),d.push(n(d.pop(),U)),E.nodes=[];return}const H=t.encloseBrace(E);let Q=E.queue,W=E;for(;W.type!=="brace"&&W.type!=="root"&&W.parent;)W=W.parent,Q=W.queue;for(let _=0;_<E.nodes.length;_++){const U=E.nodes[_];if(U.type==="comma"&&E.type==="brace"){_===1&&Q.push(""),Q.push("");continue}if(U.type==="close"){d.push(n(d.pop(),Q,H));continue}if(U.value&&U.type!=="open"){Q.push(n(Q.pop(),U.value));continue}U.nodes&&f(U,E)}return Q};return t.flatten(f(a))},expand_1}var constants$1,hasRequiredConstants$1;function requireConstants$1(){return hasRequiredConstants$1||(hasRequiredConstants$1=1,constants$1={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
|
|
414
|
-
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}),constants$1}var parse_1$1,hasRequiredParse$1;function requireParse$1(){if(hasRequiredParse$1)return parse_1$1;hasRequiredParse$1=1;const i=requireStringify(),{MAX_LENGTH:e,CHAR_BACKSLASH:t,CHAR_BACKTICK:n,CHAR_COMMA:s,CHAR_DOT:a,CHAR_LEFT_PARENTHESES:o,CHAR_RIGHT_PARENTHESES:l,CHAR_LEFT_CURLY_BRACE:f,CHAR_RIGHT_CURLY_BRACE:E,CHAR_LEFT_SQUARE_BRACKET:w,CHAR_RIGHT_SQUARE_BRACKET:y,CHAR_DOUBLE_QUOTE:d,CHAR_SINGLE_QUOTE:H,CHAR_NO_BREAK_SPACE:Q,CHAR_ZERO_WIDTH_NOBREAK_SPACE:W}=requireConstants$1();return parse_1$1=(U,te={})=>{if(typeof U!="string")throw new TypeError("Expected a string");const T=te||{},X=typeof T.maxLength=="number"?Math.min(e,T.maxLength):e;if(U.length>X)throw new SyntaxError(`Input length (${U.length}), exceeds max characters (${X})`);const K={type:"root",input:U,nodes:[]},le=[K];let re=K,he=K,De=0;const ge=U.length;let ae=0,ue=0,ee;const de=()=>U[ae++],me=we=>{if(we.type==="text"&&he.type==="dot"&&(he.type="text"),he&&he.type==="text"&&we.type==="text"){he.value+=we.value;return}return re.nodes.push(we),we.parent=re,we.prev=he,he=we,we};for(me({type:"bos"});ae<ge;)if(re=le[le.length-1],ee=de(),!(ee===W||ee===Q)){if(ee===t){me({type:"text",value:(te.keepEscaping?ee:"")+de()});continue}if(ee===y){me({type:"text",value:"\\"+ee});continue}if(ee===w){De++;let we;for(;ae<ge&&(we=de());){if(ee+=we,we===w){De++;continue}if(we===t){ee+=de();continue}if(we===y&&(De--,De===0))break}me({type:"text",value:ee});continue}if(ee===o){re=me({type:"paren",nodes:[]}),le.push(re),me({type:"text",value:ee});continue}if(ee===l){if(re.type!=="paren"){me({type:"text",value:ee});continue}re=le.pop(),me({type:"text",value:ee}),re=le[le.length-1];continue}if(ee===d||ee===H||ee===n){const we=ee;let pe;for(te.keepQuotes!==!0&&(ee="");ae<ge&&(pe=de());){if(pe===t){ee+=pe+de();continue}if(pe===we){te.keepQuotes===!0&&(ee+=pe);break}ee+=pe}me({type:"text",value:ee});continue}if(ee===f){ue++;const pe={type:"brace",open:!0,close:!1,dollar:he.value&&he.value.slice(-1)==="$"||re.dollar===!0,depth:ue,commas:0,ranges:0,nodes:[]};re=me(pe),le.push(re),me({type:"open",value:ee});continue}if(ee===E){if(re.type!=="brace"){me({type:"text",value:ee});continue}const we="close";re=le.pop(),re.close=!0,me({type:we,value:ee}),ue--,re=le[le.length-1];continue}if(ee===s&&ue>0){if(re.ranges>0){re.ranges=0;const we=re.nodes.shift();re.nodes=[we,{type:"text",value:i(re)}]}me({type:"comma",value:ee}),re.commas++;continue}if(ee===a&&ue>0&&re.commas===0){const we=re.nodes;if(ue===0||we.length===0){me({type:"text",value:ee});continue}if(he.type==="dot"){if(re.range=[],he.value+=ee,he.type="range",re.nodes.length!==3&&re.nodes.length!==5){re.invalid=!0,re.ranges=0,he.type="text";continue}re.ranges++,re.args=[];continue}if(he.type==="range"){we.pop();const pe=we[we.length-1];pe.value+=he.value+ee,he=pe,re.ranges--;continue}me({type:"dot",value:ee});continue}me({type:"text",value:ee})}do if(re=le.pop(),re.type!=="root"){re.nodes.forEach(Fe=>{Fe.nodes||(Fe.type==="open"&&(Fe.isOpen=!0),Fe.type==="close"&&(Fe.isClose=!0),Fe.nodes||(Fe.type="text"),Fe.invalid=!0)});const we=le[le.length-1],pe=we.nodes.indexOf(re);we.nodes.splice(pe,1,...re.nodes)}while(le.length>0);return me({type:"eos"}),K},parse_1$1}var braces_1,hasRequiredBraces;function requireBraces(){if(hasRequiredBraces)return braces_1;hasRequiredBraces=1;const i=requireStringify(),e=requireCompile(),t=requireExpand(),n=requireParse$1(),s=(a,o={})=>{let l=[];if(Array.isArray(a))for(const f of a){const E=s.create(f,o);Array.isArray(E)?l.push(...E):l.push(E)}else l=[].concat(s.create(a,o));return o&&o.expand===!0&&o.nodupes===!0&&(l=[...new Set(l)]),l};return s.parse=(a,o={})=>n(a,o),s.stringify=(a,o={})=>i(typeof a=="string"?s.parse(a,o):a,o),s.compile=(a,o={})=>(typeof a=="string"&&(a=s.parse(a,o)),e(a,o)),s.expand=(a,o={})=>{typeof a=="string"&&(a=s.parse(a,o));let l=t(a,o);return o.noempty===!0&&(l=l.filter(Boolean)),o.nodupes===!0&&(l=[...new Set(l)]),l},s.create=(a,o={})=>a===""||a.length<3?[a]:o.expand!==!0?s.compile(a,o):s.expand(a,o),braces_1=s,braces_1}var utils={},constants,hasRequiredConstants;function requireConstants(){if(hasRequiredConstants)return constants;hasRequiredConstants=1;const i=require$$0__default$1,e="\\\\/",t=`[^${e}]`,n="\\.",s="\\+",a="\\?",o="\\/",l="(?=.)",f="[^/]",E=`(?:${o}|$)`,w=`(?:^|${o})`,y=`${n}{1,2}${E}`,d=`(?!${n})`,H=`(?!${w}${y})`,Q=`(?!${n}{0,1}${E})`,W=`(?!${y})`,_=`[^.${o}]`,U=`${f}*?`,te={DOT_LITERAL:n,PLUS_LITERAL:s,QMARK_LITERAL:a,SLASH_LITERAL:o,ONE_CHAR:l,QMARK:f,END_ANCHOR:E,DOTS_SLASH:y,NO_DOT:d,NO_DOTS:H,NO_DOT_SLASH:Q,NO_DOTS_SLASH:W,QMARK_NO_DOT:_,STAR:U,START_ANCHOR:w},T={...te,SLASH_LITERAL:`[${e}]`,QMARK:t,STAR:`${t}*?`,DOTS_SLASH:`${n}{1,2}(?:[${e}]|$)`,NO_DOT:`(?!${n})`,NO_DOTS:`(?!(?:^|[${e}])${n}{1,2}(?:[${e}]|$))`,NO_DOT_SLASH:`(?!${n}{0,1}(?:[${e}]|$))`,NO_DOTS_SLASH:`(?!${n}{1,2}(?:[${e}]|$))`,QMARK_NO_DOT:`[^.${e}]`,START_ANCHOR:`(?:^|[${e}])`,END_ANCHOR:`(?:[${e}]|$)`},X={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"};return constants={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:X,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:{"***":"*","**/**":"**","**/**/**":"**"},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,SEP:i.sep,extglobChars(K){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${K.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(K){return K===!0?T:te}},constants}var hasRequiredUtils;function requireUtils(){return hasRequiredUtils||(hasRequiredUtils=1,function(i){const e=require$$0__default$1,t=process.platform==="win32",{REGEX_BACKSLASH:n,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_GLOBAL:o}=requireConstants();i.isObject=l=>l!==null&&typeof l=="object"&&!Array.isArray(l),i.hasRegexChars=l=>a.test(l),i.isRegexChar=l=>l.length===1&&i.hasRegexChars(l),i.escapeRegex=l=>l.replace(o,"\\$1"),i.toPosixSlashes=l=>l.replace(n,"/"),i.removeBackslashes=l=>l.replace(s,f=>f==="\\"?"":f),i.supportsLookbehinds=()=>{const l=process.version.slice(1).split(".").map(Number);return l.length===3&&l[0]>=9||l[0]===8&&l[1]>=10},i.isWindows=l=>l&&typeof l.windows=="boolean"?l.windows:t===!0||e.sep==="\\",i.escapeLast=(l,f,E)=>{const w=l.lastIndexOf(f,E);return w===-1?l:l[w-1]==="\\"?i.escapeLast(l,f,w-1):`${l.slice(0,w)}\\${l.slice(w)}`},i.removePrefix=(l,f={})=>{let E=l;return E.startsWith("./")&&(E=E.slice(2),f.prefix="./"),E},i.wrapOutput=(l,f={},E={})=>{const w=E.contains?"":"^",y=E.contains?"":"$";let d=`${w}(?:${l})${y}`;return f.negated===!0&&(d=`(?:^(?!${d}).*$)`),d}}(utils)),utils}var scan_1,hasRequiredScan;function requireScan(){if(hasRequiredScan)return scan_1;hasRequiredScan=1;const i=requireUtils(),{CHAR_ASTERISK:e,CHAR_AT:t,CHAR_BACKWARD_SLASH:n,CHAR_COMMA:s,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:o,CHAR_FORWARD_SLASH:l,CHAR_LEFT_CURLY_BRACE:f,CHAR_LEFT_PARENTHESES:E,CHAR_LEFT_SQUARE_BRACKET:w,CHAR_PLUS:y,CHAR_QUESTION_MARK:d,CHAR_RIGHT_CURLY_BRACE:H,CHAR_RIGHT_PARENTHESES:Q,CHAR_RIGHT_SQUARE_BRACKET:W}=requireConstants(),_=T=>T===l||T===n,U=T=>{T.isPrefix!==!0&&(T.depth=T.isGlobstar?1/0:1)};return scan_1=(T,X)=>{const K=X||{},le=T.length-1,re=K.parts===!0||K.scanToEnd===!0,he=[],De=[],ge=[];let ae=T,ue=-1,ee=0,de=0,me=!1,we=!1,pe=!1,Fe=!1,Oe=!1,ye=!1,ne=!1,Be=!1,Re=!1,Ce=!1,se=0,z,Ae,Ee={value:"",depth:0,isGlob:!1};const be=()=>ue>=le,xe=()=>ae.charCodeAt(ue+1),_e=()=>(z=Ae,ae.charCodeAt(++ue));for(;ue<le;){Ae=_e();let N;if(Ae===n){ne=Ee.backslashes=!0,Ae=_e(),Ae===f&&(ye=!0);continue}if(ye===!0||Ae===f){for(se++;be()!==!0&&(Ae=_e());){if(Ae===n){ne=Ee.backslashes=!0,_e();continue}if(Ae===f){se++;continue}if(ye!==!0&&Ae===a&&(Ae=_e())===a){if(me=Ee.isBrace=!0,pe=Ee.isGlob=!0,Ce=!0,re===!0)continue;break}if(ye!==!0&&Ae===s){if(me=Ee.isBrace=!0,pe=Ee.isGlob=!0,Ce=!0,re===!0)continue;break}if(Ae===H&&(se--,se===0)){ye=!1,me=Ee.isBrace=!0,Ce=!0;break}}if(re===!0)continue;break}if(Ae===l){if(he.push(ue),De.push(Ee),Ee={value:"",depth:0,isGlob:!1},Ce===!0)continue;if(z===a&&ue===ee+1){ee+=2;continue}de=ue+1;continue}if(K.noext!==!0&&(Ae===y||Ae===t||Ae===e||Ae===d||Ae===o)===!0&&xe()===E){if(pe=Ee.isGlob=!0,Fe=Ee.isExtglob=!0,Ce=!0,Ae===o&&ue===ee&&(Re=!0),re===!0){for(;be()!==!0&&(Ae=_e());){if(Ae===n){ne=Ee.backslashes=!0,Ae=_e();continue}if(Ae===Q){pe=Ee.isGlob=!0,Ce=!0;break}}continue}break}if(Ae===e){if(z===e&&(Oe=Ee.isGlobstar=!0),pe=Ee.isGlob=!0,Ce=!0,re===!0)continue;break}if(Ae===d){if(pe=Ee.isGlob=!0,Ce=!0,re===!0)continue;break}if(Ae===w){for(;be()!==!0&&(N=_e());){if(N===n){ne=Ee.backslashes=!0,_e();continue}if(N===W){we=Ee.isBracket=!0,pe=Ee.isGlob=!0,Ce=!0;break}}if(re===!0)continue;break}if(K.nonegate!==!0&&Ae===o&&ue===ee){Be=Ee.negated=!0,ee++;continue}if(K.noparen!==!0&&Ae===E){if(pe=Ee.isGlob=!0,re===!0){for(;be()!==!0&&(Ae=_e());){if(Ae===E){ne=Ee.backslashes=!0,Ae=_e();continue}if(Ae===Q){Ce=!0;break}}continue}break}if(pe===!0){if(Ce=!0,re===!0)continue;break}}K.noext===!0&&(Fe=!1,pe=!1);let Se=ae,Le="",Ne="";ee>0&&(Le=ae.slice(0,ee),ae=ae.slice(ee),de-=ee),Se&&pe===!0&&de>0?(Se=ae.slice(0,de),Ne=ae.slice(de)):pe===!0?(Se="",Ne=ae):Se=ae,Se&&Se!==""&&Se!=="/"&&Se!==ae&&_(Se.charCodeAt(Se.length-1))&&(Se=Se.slice(0,-1)),K.unescape===!0&&(Ne&&(Ne=i.removeBackslashes(Ne)),Se&&ne===!0&&(Se=i.removeBackslashes(Se)));const L={prefix:Le,input:T,start:ee,base:Se,glob:Ne,isBrace:me,isBracket:we,isGlob:pe,isExtglob:Fe,isGlobstar:Oe,negated:Be,negatedExtglob:Re};if(K.tokens===!0&&(L.maxDepth=0,_(Ae)||De.push(Ee),L.tokens=De),K.parts===!0||K.tokens===!0){let N;for(let oe=0;oe<he.length;oe++){const ie=N?N+1:ee,B=he[oe],fe=T.slice(ie,B);K.tokens&&(oe===0&&ee!==0?(De[oe].isPrefix=!0,De[oe].value=Le):De[oe].value=fe,U(De[oe]),L.maxDepth+=De[oe].depth),(oe!==0||fe!=="")&&ge.push(fe),N=B}if(N&&N+1<T.length){const oe=T.slice(N+1);ge.push(oe),K.tokens&&(De[De.length-1].value=oe,U(De[De.length-1]),L.maxDepth+=De[De.length-1].depth)}L.slashes=he,L.parts=ge}return L},scan_1}var parse_1,hasRequiredParse;function requireParse(){if(hasRequiredParse)return parse_1;hasRequiredParse=1;const i=requireConstants(),e=requireUtils(),{MAX_LENGTH:t,POSIX_REGEX_SOURCE:n,REGEX_NON_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_BACKREF:a,REPLACEMENTS:o}=i,l=(w,y)=>{if(typeof y.expandRange=="function")return y.expandRange(...w,y);w.sort();const d=`[${w.join("-")}]`;try{new RegExp(d)}catch{return w.map(Q=>e.escapeRegex(Q)).join("..")}return d},f=(w,y)=>`Missing ${w}: "${y}" - use "\\\\${y}" to match literal characters`,E=(w,y)=>{if(typeof w!="string")throw new TypeError("Expected a string");w=o[w]||w;const d={...y},H=typeof d.maxLength=="number"?Math.min(t,d.maxLength):t;let Q=w.length;if(Q>H)throw new SyntaxError(`Input length: ${Q}, exceeds maximum allowed length: ${H}`);const W={type:"bos",value:"",output:d.prepend||""},_=[W],U=d.capture?"":"?:",te=e.isWindows(y),T=i.globChars(te),X=i.extglobChars(T),{DOT_LITERAL:K,PLUS_LITERAL:le,SLASH_LITERAL:re,ONE_CHAR:he,DOTS_SLASH:De,NO_DOT:ge,NO_DOT_SLASH:ae,NO_DOTS_SLASH:ue,QMARK:ee,QMARK_NO_DOT:de,STAR:me,START_ANCHOR:we}=T,pe=B=>`(${U}(?:(?!${we}${B.dot?De:K}).)*?)`,Fe=d.dot?"":ge,Oe=d.dot?ee:de;let ye=d.bash===!0?pe(d):me;d.capture&&(ye=`(${ye})`),typeof d.noext=="boolean"&&(d.noextglob=d.noext);const ne={input:w,index:-1,start:0,dot:d.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:_};w=e.removePrefix(w,ne),Q=w.length;const Be=[],Re=[],Ce=[];let se=W,z;const Ae=()=>ne.index===Q-1,Ee=ne.peek=(B=1)=>w[ne.index+B],be=ne.advance=()=>w[++ne.index]||"",xe=()=>w.slice(ne.index+1),_e=(B="",fe=0)=>{ne.consumed+=B,ne.index+=fe},Se=B=>{ne.output+=B.output!=null?B.output:B.value,_e(B.value)},Le=()=>{let B=1;for(;Ee()==="!"&&(Ee(2)!=="("||Ee(3)==="?");)be(),ne.start++,B++;return B%2===0?!1:(ne.negated=!0,ne.start++,!0)},Ne=B=>{ne[B]++,Ce.push(B)},L=B=>{ne[B]--,Ce.pop()},N=B=>{if(se.type==="globstar"){const fe=ne.braces>0&&(B.type==="comma"||B.type==="brace"),Z=B.extglob===!0||Be.length&&(B.type==="pipe"||B.type==="paren");B.type!=="slash"&&B.type!=="paren"&&!fe&&!Z&&(ne.output=ne.output.slice(0,-se.output.length),se.type="star",se.value="*",se.output=ye,ne.output+=se.output)}if(Be.length&&B.type!=="paren"&&(Be[Be.length-1].inner+=B.value),(B.value||B.output)&&Se(B),se&&se.type==="text"&&B.type==="text"){se.value+=B.value,se.output=(se.output||"")+B.value;return}B.prev=se,_.push(B),se=B},oe=(B,fe)=>{const Z={...X[fe],conditions:1,inner:""};Z.prev=se,Z.parens=ne.parens,Z.output=ne.output;const ce=(d.capture?"(":"")+Z.open;Ne("parens"),N({type:B,value:fe,output:ne.output?"":he}),N({type:"paren",extglob:!0,value:be(),output:ce}),Be.push(Z)},ie=B=>{let fe=B.close+(d.capture?")":""),Z;if(B.type==="negate"){let ce=ye;if(B.inner&&B.inner.length>1&&B.inner.includes("/")&&(ce=pe(d)),(ce!==ye||Ae()||/^\)+$/.test(xe()))&&(fe=B.close=`)$))${ce}`),B.inner.includes("*")&&(Z=xe())&&/^\.[^\\/.]+$/.test(Z)){const ve=E(Z,{...y,fastpaths:!1}).output;fe=B.close=`)${ve})${ce})`}B.prev.type==="bos"&&(ne.negatedExtglob=!0)}N({type:"paren",extglob:!0,value:z,output:fe}),L("parens")};if(d.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(w)){let B=!1,fe=w.replace(a,(Z,ce,ve,$e,Ie,je)=>$e==="\\"?(B=!0,Z):$e==="?"?ce?ce+$e+(Ie?ee.repeat(Ie.length):""):je===0?Oe+(Ie?ee.repeat(Ie.length):""):ee.repeat(ve.length):$e==="."?K.repeat(ve.length):$e==="*"?ce?ce+$e+(Ie?ye:""):ye:ce?Z:`\\${Z}`);return B===!0&&(d.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,Z=>Z.length%2===0?"\\\\":Z?"\\":"")),fe===w&&d.contains===!0?(ne.output=w,ne):(ne.output=e.wrapOutput(fe,ne,y),ne)}for(;!Ae();){if(z=be(),z==="\0")continue;if(z==="\\"){const Z=Ee();if(Z==="/"&&d.bash!==!0||Z==="."||Z===";")continue;if(!Z){z+="\\",N({type:"text",value:z});continue}const ce=/^\\+/.exec(xe());let ve=0;if(ce&&ce[0].length>2&&(ve=ce[0].length,ne.index+=ve,ve%2!==0&&(z+="\\")),d.unescape===!0?z=be():z+=be(),ne.brackets===0){N({type:"text",value:z});continue}}if(ne.brackets>0&&(z!=="]"||se.value==="["||se.value==="[^")){if(d.posix!==!1&&z===":"){const Z=se.value.slice(1);if(Z.includes("[")&&(se.posix=!0,Z.includes(":"))){const ce=se.value.lastIndexOf("["),ve=se.value.slice(0,ce),$e=se.value.slice(ce+2),Ie=n[$e];if(Ie){se.value=ve+Ie,ne.backtrack=!0,be(),!W.output&&_.indexOf(se)===1&&(W.output=he);continue}}}(z==="["&&Ee()!==":"||z==="-"&&Ee()==="]")&&(z=`\\${z}`),z==="]"&&(se.value==="["||se.value==="[^")&&(z=`\\${z}`),d.posix===!0&&z==="!"&&se.value==="["&&(z="^"),se.value+=z,Se({value:z});continue}if(ne.quotes===1&&z!=='"'){z=e.escapeRegex(z),se.value+=z,Se({value:z});continue}if(z==='"'){ne.quotes=ne.quotes===1?0:1,d.keepQuotes===!0&&N({type:"text",value:z});continue}if(z==="("){Ne("parens"),N({type:"paren",value:z});continue}if(z===")"){if(ne.parens===0&&d.strictBrackets===!0)throw new SyntaxError(f("opening","("));const Z=Be[Be.length-1];if(Z&&ne.parens===Z.parens+1){ie(Be.pop());continue}N({type:"paren",value:z,output:ne.parens?")":"\\)"}),L("parens");continue}if(z==="["){if(d.nobracket===!0||!xe().includes("]")){if(d.nobracket!==!0&&d.strictBrackets===!0)throw new SyntaxError(f("closing","]"));z=`\\${z}`}else Ne("brackets");N({type:"bracket",value:z});continue}if(z==="]"){if(d.nobracket===!0||se&&se.type==="bracket"&&se.value.length===1){N({type:"text",value:z,output:`\\${z}`});continue}if(ne.brackets===0){if(d.strictBrackets===!0)throw new SyntaxError(f("opening","["));N({type:"text",value:z,output:`\\${z}`});continue}L("brackets");const Z=se.value.slice(1);if(se.posix!==!0&&Z[0]==="^"&&!Z.includes("/")&&(z=`/${z}`),se.value+=z,Se({value:z}),d.literalBrackets===!1||e.hasRegexChars(Z))continue;const ce=e.escapeRegex(se.value);if(ne.output=ne.output.slice(0,-se.value.length),d.literalBrackets===!0){ne.output+=ce,se.value=ce;continue}se.value=`(${U}${ce}|${se.value})`,ne.output+=se.value;continue}if(z==="{"&&d.nobrace!==!0){Ne("braces");const Z={type:"brace",value:z,output:"(",outputIndex:ne.output.length,tokensIndex:ne.tokens.length};Re.push(Z),N(Z);continue}if(z==="}"){const Z=Re[Re.length-1];if(d.nobrace===!0||!Z){N({type:"text",value:z,output:z});continue}let ce=")";if(Z.dots===!0){const ve=_.slice(),$e=[];for(let Ie=ve.length-1;Ie>=0&&(_.pop(),ve[Ie].type!=="brace");Ie--)ve[Ie].type!=="dots"&&$e.unshift(ve[Ie].value);ce=l($e,d),ne.backtrack=!0}if(Z.comma!==!0&&Z.dots!==!0){const ve=ne.output.slice(0,Z.outputIndex),$e=ne.tokens.slice(Z.tokensIndex);Z.value=Z.output="\\{",z=ce="\\}",ne.output=ve;for(const Ie of $e)ne.output+=Ie.output||Ie.value}N({type:"brace",value:z,output:ce}),L("braces"),Re.pop();continue}if(z==="|"){Be.length>0&&Be[Be.length-1].conditions++,N({type:"text",value:z});continue}if(z===","){let Z=z;const ce=Re[Re.length-1];ce&&Ce[Ce.length-1]==="braces"&&(ce.comma=!0,Z="|"),N({type:"comma",value:z,output:Z});continue}if(z==="/"){if(se.type==="dot"&&ne.index===ne.start+1){ne.start=ne.index+1,ne.consumed="",ne.output="",_.pop(),se=W;continue}N({type:"slash",value:z,output:re});continue}if(z==="."){if(ne.braces>0&&se.type==="dot"){se.value==="."&&(se.output=K);const Z=Re[Re.length-1];se.type="dots",se.output+=z,se.value+=z,Z.dots=!0;continue}if(ne.braces+ne.parens===0&&se.type!=="bos"&&se.type!=="slash"){N({type:"text",value:z,output:K});continue}N({type:"dot",value:z,output:K});continue}if(z==="?"){if(!(se&&se.value==="(")&&d.noextglob!==!0&&Ee()==="("&&Ee(2)!=="?"){oe("qmark",z);continue}if(se&&se.type==="paren"){const ce=Ee();let ve=z;if(ce==="<"&&!e.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(se.value==="("&&!/[!=<:]/.test(ce)||ce==="<"&&!/<([!=]|\w+>)/.test(xe()))&&(ve=`\\${z}`),N({type:"text",value:z,output:ve});continue}if(d.dot!==!0&&(se.type==="slash"||se.type==="bos")){N({type:"qmark",value:z,output:de});continue}N({type:"qmark",value:z,output:ee});continue}if(z==="!"){if(d.noextglob!==!0&&Ee()==="("&&(Ee(2)!=="?"||!/[!=<:]/.test(Ee(3)))){oe("negate",z);continue}if(d.nonegate!==!0&&ne.index===0){Le();continue}}if(z==="+"){if(d.noextglob!==!0&&Ee()==="("&&Ee(2)!=="?"){oe("plus",z);continue}if(se&&se.value==="("||d.regex===!1){N({type:"plus",value:z,output:le});continue}if(se&&(se.type==="bracket"||se.type==="paren"||se.type==="brace")||ne.parens>0){N({type:"plus",value:z});continue}N({type:"plus",value:le});continue}if(z==="@"){if(d.noextglob!==!0&&Ee()==="("&&Ee(2)!=="?"){N({type:"at",extglob:!0,value:z,output:""});continue}N({type:"text",value:z});continue}if(z!=="*"){(z==="$"||z==="^")&&(z=`\\${z}`);const Z=s.exec(xe());Z&&(z+=Z[0],ne.index+=Z[0].length),N({type:"text",value:z});continue}if(se&&(se.type==="globstar"||se.star===!0)){se.type="star",se.star=!0,se.value+=z,se.output=ye,ne.backtrack=!0,ne.globstar=!0,_e(z);continue}let B=xe();if(d.noextglob!==!0&&/^\([^?]/.test(B)){oe("star",z);continue}if(se.type==="star"){if(d.noglobstar===!0){_e(z);continue}const Z=se.prev,ce=Z.prev,ve=Z.type==="slash"||Z.type==="bos",$e=ce&&(ce.type==="star"||ce.type==="globstar");if(d.bash===!0&&(!ve||B[0]&&B[0]!=="/")){N({type:"star",value:z,output:""});continue}const Ie=ne.braces>0&&(Z.type==="comma"||Z.type==="brace"),je=Be.length&&(Z.type==="pipe"||Z.type==="paren");if(!ve&&Z.type!=="paren"&&!Ie&&!je){N({type:"star",value:z,output:""});continue}for(;B.slice(0,3)==="/**";){const Pe=w[ne.index+4];if(Pe&&Pe!=="/")break;B=B.slice(3),_e("/**",3)}if(Z.type==="bos"&&Ae()){se.type="globstar",se.value+=z,se.output=pe(d),ne.output=se.output,ne.globstar=!0,_e(z);continue}if(Z.type==="slash"&&Z.prev.type!=="bos"&&!$e&&Ae()){ne.output=ne.output.slice(0,-(Z.output+se.output).length),Z.output=`(?:${Z.output}`,se.type="globstar",se.output=pe(d)+(d.strictSlashes?")":"|$)"),se.value+=z,ne.globstar=!0,ne.output+=Z.output+se.output,_e(z);continue}if(Z.type==="slash"&&Z.prev.type!=="bos"&&B[0]==="/"){const Pe=B[1]!==void 0?"|$":"";ne.output=ne.output.slice(0,-(Z.output+se.output).length),Z.output=`(?:${Z.output}`,se.type="globstar",se.output=`${pe(d)}${re}|${re}${Pe})`,se.value+=z,ne.output+=Z.output+se.output,ne.globstar=!0,_e(z+be()),N({type:"slash",value:"/",output:""});continue}if(Z.type==="bos"&&B[0]==="/"){se.type="globstar",se.value+=z,se.output=`(?:^|${re}|${pe(d)}${re})`,ne.output=se.output,ne.globstar=!0,_e(z+be()),N({type:"slash",value:"/",output:""});continue}ne.output=ne.output.slice(0,-se.output.length),se.type="globstar",se.output=pe(d),se.value+=z,ne.output+=se.output,ne.globstar=!0,_e(z);continue}const fe={type:"star",value:z,output:ye};if(d.bash===!0){fe.output=".*?",(se.type==="bos"||se.type==="slash")&&(fe.output=Fe+fe.output),N(fe);continue}if(se&&(se.type==="bracket"||se.type==="paren")&&d.regex===!0){fe.output=z,N(fe);continue}(ne.index===ne.start||se.type==="slash"||se.type==="dot")&&(se.type==="dot"?(ne.output+=ae,se.output+=ae):d.dot===!0?(ne.output+=ue,se.output+=ue):(ne.output+=Fe,se.output+=Fe),Ee()!=="*"&&(ne.output+=he,se.output+=he)),N(fe)}for(;ne.brackets>0;){if(d.strictBrackets===!0)throw new SyntaxError(f("closing","]"));ne.output=e.escapeLast(ne.output,"["),L("brackets")}for(;ne.parens>0;){if(d.strictBrackets===!0)throw new SyntaxError(f("closing",")"));ne.output=e.escapeLast(ne.output,"("),L("parens")}for(;ne.braces>0;){if(d.strictBrackets===!0)throw new SyntaxError(f("closing","}"));ne.output=e.escapeLast(ne.output,"{"),L("braces")}if(d.strictSlashes!==!0&&(se.type==="star"||se.type==="bracket")&&N({type:"maybe_slash",value:"",output:`${re}?`}),ne.backtrack===!0){ne.output="";for(const B of ne.tokens)ne.output+=B.output!=null?B.output:B.value,B.suffix&&(ne.output+=B.suffix)}return ne};return E.fastpaths=(w,y)=>{const d={...y},H=typeof d.maxLength=="number"?Math.min(t,d.maxLength):t,Q=w.length;if(Q>H)throw new SyntaxError(`Input length: ${Q}, exceeds maximum allowed length: ${H}`);w=o[w]||w;const W=e.isWindows(y),{DOT_LITERAL:_,SLASH_LITERAL:U,ONE_CHAR:te,DOTS_SLASH:T,NO_DOT:X,NO_DOTS:K,NO_DOTS_SLASH:le,STAR:re,START_ANCHOR:he}=i.globChars(W),De=d.dot?K:X,ge=d.dot?le:X,ae=d.capture?"":"?:",ue={negated:!1,prefix:""};let ee=d.bash===!0?".*?":re;d.capture&&(ee=`(${ee})`);const de=Fe=>Fe.noglobstar===!0?ee:`(${ae}(?:(?!${he}${Fe.dot?T:_}).)*?)`,me=Fe=>{switch(Fe){case"*":return`${De}${te}${ee}`;case".*":return`${_}${te}${ee}`;case"*.*":return`${De}${ee}${_}${te}${ee}`;case"*/*":return`${De}${ee}${U}${te}${ge}${ee}`;case"**":return De+de(d);case"**/*":return`(?:${De}${de(d)}${U})?${ge}${te}${ee}`;case"**/*.*":return`(?:${De}${de(d)}${U})?${ge}${ee}${_}${te}${ee}`;case"**/.*":return`(?:${De}${de(d)}${U})?${_}${te}${ee}`;default:{const Oe=/^(.*?)\.(\w+)$/.exec(Fe);if(!Oe)return;const ye=me(Oe[1]);return ye?ye+_+Oe[2]:void 0}}},we=e.removePrefix(w,ue);let pe=me(we);return pe&&d.strictSlashes!==!0&&(pe+=`${U}?`),pe},parse_1=E,parse_1}var picomatch_1,hasRequiredPicomatch$1;function requirePicomatch$1(){if(hasRequiredPicomatch$1)return picomatch_1;hasRequiredPicomatch$1=1;const i=require$$0__default$1,e=requireScan(),t=requireParse(),n=requireUtils(),s=requireConstants(),a=l=>l&&typeof l=="object"&&!Array.isArray(l),o=(l,f,E=!1)=>{if(Array.isArray(l)){const U=l.map(T=>o(T,f,E));return T=>{for(const X of U){const K=X(T);if(K)return K}return!1}}const w=a(l)&&l.tokens&&l.input;if(l===""||typeof l!="string"&&!w)throw new TypeError("Expected pattern to be a non-empty string");const y=f||{},d=n.isWindows(f),H=w?o.compileRe(l,f):o.makeRe(l,f,!1,!0),Q=H.state;delete H.state;let W=()=>!1;if(y.ignore){const U={...f,ignore:null,onMatch:null,onResult:null};W=o(y.ignore,U,E)}const _=(U,te=!1)=>{const{isMatch:T,match:X,output:K}=o.test(U,H,f,{glob:l,posix:d}),le={glob:l,state:Q,regex:H,posix:d,input:U,output:K,match:X,isMatch:T};return typeof y.onResult=="function"&&y.onResult(le),T===!1?(le.isMatch=!1,te?le:!1):W(U)?(typeof y.onIgnore=="function"&&y.onIgnore(le),le.isMatch=!1,te?le:!1):(typeof y.onMatch=="function"&&y.onMatch(le),te?le:!0)};return E&&(_.state=Q),_};return o.test=(l,f,E,{glob:w,posix:y}={})=>{if(typeof l!="string")throw new TypeError("Expected input to be a string");if(l==="")return{isMatch:!1,output:""};const d=E||{},H=d.format||(y?n.toPosixSlashes:null);let Q=l===w,W=Q&&H?H(l):l;return Q===!1&&(W=H?H(l):l,Q=W===w),(Q===!1||d.capture===!0)&&(d.matchBase===!0||d.basename===!0?Q=o.matchBase(l,f,E,y):Q=f.exec(W)),{isMatch:!!Q,match:Q,output:W}},o.matchBase=(l,f,E,w=n.isWindows(E))=>(f instanceof RegExp?f:o.makeRe(f,E)).test(i.basename(l)),o.isMatch=(l,f,E)=>o(f,E)(l),o.parse=(l,f)=>Array.isArray(l)?l.map(E=>o.parse(E,f)):t(l,{...f,fastpaths:!1}),o.scan=(l,f)=>e(l,f),o.compileRe=(l,f,E=!1,w=!1)=>{if(E===!0)return l.output;const y=f||{},d=y.contains?"":"^",H=y.contains?"":"$";let Q=`${d}(?:${l.output})${H}`;l&&l.negated===!0&&(Q=`^(?!${Q}).*$`);const W=o.toRegex(Q,f);return w===!0&&(W.state=l),W},o.makeRe=(l,f={},E=!1,w=!1)=>{if(!l||typeof l!="string")throw new TypeError("Expected a non-empty string");let y={negated:!1,fastpaths:!0};return f.fastpaths!==!1&&(l[0]==="."||l[0]==="*")&&(y.output=t.fastpaths(l,f)),y.output||(y=t(l,f)),o.compileRe(y,f,E,w)},o.toRegex=(l,f)=>{try{const E=f||{};return new RegExp(l,E.flags||(E.nocase?"i":""))}catch(E){if(f&&f.debug===!0)throw E;return/$^/}},o.constants=s,picomatch_1=o,picomatch_1}var picomatch,hasRequiredPicomatch;function requirePicomatch(){return hasRequiredPicomatch||(hasRequiredPicomatch=1,picomatch=requirePicomatch$1()),picomatch}var micromatch_1,hasRequiredMicromatch;function requireMicromatch(){if(hasRequiredMicromatch)return micromatch_1;hasRequiredMicromatch=1;const i=require$$0__default,e=requireBraces(),t=requirePicomatch(),n=requireUtils(),s=l=>l===""||l==="./",a=l=>{const f=l.indexOf("{");return f>-1&&l.indexOf("}",f)>-1},o=(l,f,E)=>{f=[].concat(f),l=[].concat(l);let w=new Set,y=new Set,d=new Set,H=0,Q=U=>{d.add(U.output),E&&E.onResult&&E.onResult(U)};for(let U=0;U<f.length;U++){let te=t(String(f[U]),{...E,onResult:Q},!0),T=te.state.negated||te.state.negatedExtglob;T&&H++;for(let X of l){let K=te(X,!0);(T?!K.isMatch:K.isMatch)&&(T?w.add(K.output):(w.delete(K.output),y.add(K.output)))}}let _=(H===f.length?[...d]:[...y]).filter(U=>!w.has(U));if(E&&_.length===0){if(E.failglob===!0)throw new Error(`No matches found for "${f.join(", ")}"`);if(E.nonull===!0||E.nullglob===!0)return E.unescape?f.map(U=>U.replace(/\\/g,"")):f}return _};return o.match=o,o.matcher=(l,f)=>t(l,f),o.isMatch=(l,f,E)=>t(f,E)(l),o.any=o.isMatch,o.not=(l,f,E={})=>{f=[].concat(f).map(String);let w=new Set,y=[],d=Q=>{E.onResult&&E.onResult(Q),y.push(Q.output)},H=new Set(o(l,f,{...E,onResult:d}));for(let Q of y)H.has(Q)||w.add(Q);return[...w]},o.contains=(l,f,E)=>{if(typeof l!="string")throw new TypeError(`Expected a string: "${i.inspect(l)}"`);if(Array.isArray(f))return f.some(w=>o.contains(l,w,E));if(typeof f=="string"){if(s(l)||s(f))return!1;if(l.includes(f)||l.startsWith("./")&&l.slice(2).includes(f))return!0}return o.isMatch(l,f,{...E,contains:!0})},o.matchKeys=(l,f,E)=>{if(!n.isObject(l))throw new TypeError("Expected the first argument to be an object");let w=o(Object.keys(l),f,E),y={};for(let d of w)y[d]=l[d];return y},o.some=(l,f,E)=>{let w=[].concat(l);for(let y of[].concat(f)){let d=t(String(y),E);if(w.some(H=>d(H)))return!0}return!1},o.every=(l,f,E)=>{let w=[].concat(l);for(let y of[].concat(f)){let d=t(String(y),E);if(!w.every(H=>d(H)))return!1}return!0},o.all=(l,f,E)=>{if(typeof l!="string")throw new TypeError(`Expected a string: "${i.inspect(l)}"`);return[].concat(f).every(w=>t(w,E)(l))},o.capture=(l,f,E)=>{let w=n.isWindows(E),d=t.makeRe(String(l),{...E,capture:!0}).exec(w?n.toPosixSlashes(f):f);if(d)return d.slice(1).map(H=>H===void 0?"":H)},o.makeRe=(...l)=>t.makeRe(...l),o.scan=(...l)=>t.scan(...l),o.parse=(l,f)=>{let E=[];for(let w of[].concat(l||[]))for(let y of e(String(w),f))E.push(t.parse(y,f));return E},o.braces=(l,f)=>{if(typeof l!="string")throw new TypeError("Expected a string");return f&&f.nobrace===!0||!a(l)?[l]:e(l,f)},o.braceExpand=(l,f)=>{if(typeof l!="string")throw new TypeError("Expected a string");return o.braces(l,{...f,expand:!0})},o.hasBraces=a,micromatch_1=o,micromatch_1}var micromatchExports=requireMicromatch();const micromatch=LikeC4.h(micromatchExports),defaultConfig={useRecommendedBuildConfig:!0,removeViteModuleLoader:!1,deleteInlinedFiles:!0};function replaceScript(i,e,t,n=!1){const s=new RegExp(`<script([^>]*?) src="[./]*${e}"([^>]*)></script>`),a=/"?__VITE_PRELOAD__"?/g,o=t.replace(a,"void 0").replace(/<(\/script>|!--)/g,"\\x3C$1"),l=i.replace(s,(f,E,w)=>`<script${E}${w}>${o.trim()}</script>`);return n?_removeViteModuleLoader(l):l}function replaceCss(i,e,t){const n=new RegExp(`<link([^>]*?) href="[./]*${e}"([^>]*?)>`),s=t.replace('@charset "UTF-8";',"");return i.replace(n,(o,l,f)=>`<style${l}${f}>${s.trim()}</style>`)}const isJsFile=/\.[mc]?js$/,isCssFile=/\.css$/,isHtmlFile=/\.html?$/;function viteSingleFile({useRecommendedBuildConfig:i=!0,removeViteModuleLoader:e=!1,inlinePattern:t=[],deleteInlinedFiles:n=!0}=defaultConfig){function s(a){console.debug(`NOTE: asset not inlined: ${a}`)}return{name:"vite:singlefile",config:i?_useRecommendedBuildConfig:void 0,enforce:"post",generateBundle:(a,o)=>{console.debug(`
|
|
415
|
-
`);const l={html:[],css:[],js:[],other:[]};for(const E of Object.keys(o))isHtmlFile.test(E)?l.html.push(E):isCssFile.test(E)?l.css.push(E):isJsFile.test(E)?l.js.push(E):l.other.push(E);const f=[];for(const E of l.html){const w=o[E];let y=w.source;for(const d of l.js){if(t.length&&!micromatch.isMatch(d,t)){s(d);continue}const H=o[d];H.code!=null&&(console.debug(`Inlining: ${d}`),f.push(d),y=replaceScript(y,H.fileName,H.code,e))}for(const d of l.css){if(t.length&&!micromatch.isMatch(d,t)){s(d);continue}const H=o[d];console.debug(`Inlining: ${d}`),f.push(d),y=replaceCss(y,H.fileName,H.source)}w.source=y}if(n)for(const E of f)delete o[E];for(const E of l.other)s(E)}}}const _removeViteModuleLoader=i=>i.replace(/(<script type="module" crossorigin>\s*)\(function(?: polyfill)?\(\)\s*\{[\s\S]*?\}\)\(\);/,'<script type="module">'),_useRecommendedBuildConfig=i=>{i.build||(i.build={}),i.build.assetsInlineLimit=()=>!0,i.build.chunkSizeWarningLimit=1e8,i.build.cssCodeSplit=!1,i.base="./",i.build.assetsDir="",i.build.rollupOptions||(i.build.rollupOptions={}),i.build.rollupOptions.output||(i.build.rollupOptions.output={});const e=t=>{t.inlineDynamicImports=!0};if(Array.isArray(i.build.rollupOptions.output))for(const t of i.build.rollupOptions.output)e(t);else e(i.build.rollupOptions.output)},viteConfig=async({languageServices:i,likec4AssetsDir:e,...t})=>{const n=t.customLogger??LikeC4.
|
|
416
|
-
`+"".padEnd(9," ")),LikeC4.
|
|
413
|
+
`}const P={id:"virtual:likec4/dot-sources",virtualId:"\0likec4-plugin/dot-sources.js",async load({likec4:i,logger:e}){e.info(LikeC4.u.dim("generating virtual:likec4/dot-sources"));const t=await i.viewsService.viewsAsGraphvizOut(),n=LikeC4.l(t,({id:s,svg:a,dot:o})=>[s,{dot:o,svg:a}]);return generateDotSources(n)}},V={id:"virtual:likec4/d2-sources",virtualId:"\0likec4-plugin/d2-sources.js",async load({likec4:i,logger:e}){e.info(LikeC4.u.dim("generating virtual:likec4/d2-sources"));const t=await i.viewsService.computedViews();return generateD2Sources(t)}},j={id:"virtual:likec4/mmd-sources",virtualId:"\0likec4-plugin/mmd-sources.js",async load({likec4:i,logger:e}){e.info(LikeC4.u.dim("generating virtual:likec4/mmd-sources"));const t=await i.viewsService.computedViews();return generateMmdSources(t)}},C={id:"virtual:likec4/icons",virtualId:"\0likec4-plugin/icons.js",async load({likec4:i,logger:e}){e.info(LikeC4.u.dim("generating virtual:likec4/icons"));const t=await i.viewsService.computedViews();return generateIconRendererSource(t)}},O={id:"virtual:likec4/overview-graph",virtualId:"\0likec4-plugin/overview-graph.js",async load({likec4:i,logger:e,useOverviewGraph:t}){if(t===!0)try{e.info(LikeC4.u.dim("generating virtual:likec4/overview-graph"));const n=await i.viewsService.overviewGraph();return generateOverviewGraphSource(n)}catch(n){e.error(n)}return e.info(LikeC4.u.dim("generating empty virtual:likec4/overview-graph")),generateOverviewGraphSource({nodes:[],edges:[],bounds:{x:0,y:0,width:10,height:10}})}},m$1={id:"virtual:likec4/previews",virtualId:"\0likec4-plugin/previews.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(LikeC4.u.dim("generating virtual:likec4/previews"));const n=await i.viewsService.computedViews();return diagramPreviewsSources(n,t)}},G={id:"virtual:likec4/model",virtualId:"\0likec4-plugin/model.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(LikeC4.u.dim("generating virtual:likec4/model"));const n=await i.layoutedModel();return likec4ModelSources(n)}},modules=[C,P,V,j,O,m$1,G],$=i=>{const e=i.toLowerCase();return e.endsWith(".c4")||e.endsWith(".likec4")||e.endsWith(".like-c4")};function likec4Plugin({useOverviewGraph:i=!1,languageServices:e}){let t,n=e.workspace;return{name:"vite-plugin-likec4",configResolved(s){if(t=s.logger,i){const a=s.resolve.alias.find(o=>o.find==="likec4/previews")?.replacement;a?(n=a,t.info(LikeC4.u.dim("likec4/previews alias")+" "+LikeC4.u.dim(n))):t.warn("likec4/previews alias not found")}},resolveId(s){const a=modules.find(o=>o.id===s);return a?a.virtualId:null},async load(s){const a=modules.find(o=>o.virtualId===s);return a?await a.load({logger:t,likec4:e,assetsDir:n,useOverviewGraph:i}):null},configureServer(s){const a=LikeC4.p(1),o=()=>{a.clearQueue(),a(async()=>{const[E]=e.getErrors();if(E){s.ws.send({type:"error",err:{name:"LikeC4ValidationError",message:"Validation error: "+E.message.slice(0,500),stack:"",plugin:"vite-plugin-likec4",loc:{file:E.sourceFsPath,line:E.range.start.line+1,column:E.range.start.character+1}}});return}for(const w of modules){const y=s.moduleGraph.getModuleById(w.virtualId);if(y&&y.importers.size>0){t.info(`${LikeC4.u.green("trigger hmr")} ${LikeC4.u.dim(y.url)}`);try{await s.reloadModule(y)}catch(d){t.error(d)}}}})},l=e.workspace;t.info(`${LikeC4.u.dim("watch")} ${l}`);const f=E=>w=>{$(w)&&e.notifyUpdate({[E]:w})};if(s.watcher.add(l).on("add",f("changed")).on("change",f("changed")).on("unlink",f("removed")),i&&!n.startsWith(e.workspace)){t.info(`${LikeC4.u.dim("watch")} ${n}`);const E=()=>{const w=s.moduleGraph.getModuleById(m$1.virtualId);w&&w.importers.size>0&&s.reloadModule(w)};s.watcher.add(n).on("add",E).on("change",E).on("unlink",E)}e.onModelUpdate(()=>{LikeC4.H.debug("likec4 model update"),o()})}}}var utils$1={},hasRequiredUtils$1;function requireUtils$1(){return hasRequiredUtils$1||(hasRequiredUtils$1=1,function(i){i.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1,i.find=(e,t)=>e.nodes.find(n=>n.type===t),i.exceedsLimit=(e,t,n=1,s)=>s===!1||!i.isInteger(e)||!i.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=s,i.escapeNode=(e,t=0,n)=>{const s=e.nodes[t];s&&(n&&s.type===n||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)},i.encloseBrace=e=>e.type!=="brace"||e.commas>>0+e.ranges>>0?!1:(e.invalid=!0,!0),i.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:!(e.commas>>0+e.ranges>>0)||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1,i.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0,i.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]),i.flatten=(...e)=>{const t=[],n=s=>{for(let a=0;a<s.length;a++){const o=s[a];if(Array.isArray(o)){n(o);continue}o!==void 0&&t.push(o)}return t};return n(e),t}}(utils$1)),utils$1}var stringify,hasRequiredStringify;function requireStringify(){if(hasRequiredStringify)return stringify;hasRequiredStringify=1;const i=requireUtils$1();return stringify=(e,t={})=>{const n=(s,a={})=>{const o=t.escapeInvalid&&i.isInvalidBrace(a),l=s.invalid===!0&&t.escapeInvalid===!0;let f="";if(s.value)return(o||l)&&i.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(const E of s.nodes)f+=n(E);return f};return n(e)},stringify}var isNumber,hasRequiredIsNumber;function requireIsNumber(){return hasRequiredIsNumber||(hasRequiredIsNumber=1,isNumber=function(i){return typeof i=="number"?i-i===0:typeof i=="string"&&i.trim()!==""?Number.isFinite?Number.isFinite(+i):isFinite(+i):!1}),isNumber}var toRegexRange_1,hasRequiredToRegexRange;function requireToRegexRange(){if(hasRequiredToRegexRange)return toRegexRange_1;hasRequiredToRegexRange=1;const i=requireIsNumber(),e=(_,U,te)=>{if(i(_)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(U===void 0||_===U)return String(_);if(i(U)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let T={relaxZeros:!0,...te};typeof T.strictZeros=="boolean"&&(T.relaxZeros=T.strictZeros===!1);let X=String(T.relaxZeros),K=String(T.shorthand),le=String(T.capture),re=String(T.wrap),he=_+":"+U+"="+X+K+le+re;if(e.cache.hasOwnProperty(he))return e.cache[he].result;let De=Math.min(_,U),ge=Math.max(_,U);if(Math.abs(De-ge)===1){let me=_+"|"+U;return T.capture?`(${me})`:T.wrap===!1?me:`(?:${me})`}let ae=Q(_)||Q(U),ue={min:_,max:U,a:De,b:ge},ee=[],de=[];if(ae&&(ue.isPadded=ae,ue.maxLen=String(ue.max).length),De<0){let me=ge<0?Math.abs(ge):1;de=a(me,Math.abs(De),ue,T),De=ue.a=0}return ge>=0&&(ee=a(De,ge,ue,T)),ue.negatives=de,ue.positives=ee,ue.result=t(de,ee),T.capture===!0?ue.result=`(${ue.result})`:T.wrap!==!1&&ee.length+de.length>1&&(ue.result=`(?:${ue.result})`),e.cache[he]=ue,ue.result};function t(_,U,te){let T=o(_,U,"-",!1)||[],X=o(U,_,"",!1)||[],K=o(_,U,"-?",!0)||[];return T.concat(K).concat(X).join("|")}function n(_,U){let te=1,T=1,X=w(_,te),K=new Set([U]);for(;_<=X&&X<=U;)K.add(X),te+=1,X=w(_,te);for(X=y(U+1,T)-1;_<X&&X<=U;)K.add(X),T+=1,X=y(U+1,T)-1;return K=[...K],K.sort(f),K}function s(_,U,te){if(_===U)return{pattern:_,count:[],digits:0};let T=l(_,U),X=T.length,K="",le=0;for(let re=0;re<X;re++){let[he,De]=T[re];he===De?K+=he:he!=="0"||De!=="9"?K+=H(he,De):le++}return le&&(K+=te.shorthand===!0?"\\d":"[0-9]"),{pattern:K,count:[le],digits:X}}function a(_,U,te,T){let X=n(_,U),K=[],le=_,re;for(let he=0;he<X.length;he++){let De=X[he],ge=s(String(le),String(De),T),ae="";if(!te.isPadded&&re&&re.pattern===ge.pattern){re.count.length>1&&re.count.pop(),re.count.push(ge.count[0]),re.string=re.pattern+d(re.count),le=De+1;continue}te.isPadded&&(ae=W(De,te,T)),ge.string=ae+ge.pattern+d(ge.count),K.push(ge),le=De+1,re=ge}return K}function o(_,U,te,T,X){let K=[];for(let le of _){let{string:re}=le;!T&&!E(U,"string",re)&&K.push(te+re),T&&E(U,"string",re)&&K.push(te+re)}return K}function l(_,U){let te=[];for(let T=0;T<_.length;T++)te.push([_[T],U[T]]);return te}function f(_,U){return _>U?1:U>_?-1:0}function E(_,U,te){return _.some(T=>T[U]===te)}function w(_,U){return Number(String(_).slice(0,-U)+"9".repeat(U))}function y(_,U){return _-_%Math.pow(10,U)}function d(_){let[U=0,te=""]=_;return te||U>1?`{${U+(te?","+te:"")}}`:""}function H(_,U,te){return`[${_}${U-_===1?"":"-"}${U}]`}function Q(_){return/^-?(0+)\d/.test(_)}function W(_,U,te){if(!U.isPadded)return _;let T=Math.abs(U.maxLen-String(_).length),X=te.relaxZeros!==!1;switch(T){case 0:return"";case 1:return X?"0?":"0";case 2:return X?"0{0,2}":"00";default:return X?`0{0,${T}}`:`0{${T}}`}}return e.cache={},e.clearCache=()=>e.cache={},toRegexRange_1=e,toRegexRange_1}var fillRange,hasRequiredFillRange;function requireFillRange(){if(hasRequiredFillRange)return fillRange;hasRequiredFillRange=1;const i=require$$0__default,e=requireToRegexRange(),t=T=>T!==null&&typeof T=="object"&&!Array.isArray(T),n=T=>X=>T===!0?Number(X):String(X),s=T=>typeof T=="number"||typeof T=="string"&&T!=="",a=T=>Number.isInteger(+T),o=T=>{let X=`${T}`,K=-1;if(X[0]==="-"&&(X=X.slice(1)),X==="0")return!1;for(;X[++K]==="0";);return K>0},l=(T,X,K)=>typeof T=="string"||typeof X=="string"?!0:K.stringify===!0,f=(T,X,K)=>{if(X>0){let le=T[0]==="-"?"-":"";le&&(T=T.slice(1)),T=le+T.padStart(le?X-1:X,"0")}return K===!1?String(T):T},E=(T,X)=>{let K=T[0]==="-"?"-":"";for(K&&(T=T.slice(1),X--);T.length<X;)T="0"+T;return K?"-"+T:T},w=(T,X,K)=>{T.negatives.sort((ge,ae)=>ge<ae?-1:ge>ae?1:0),T.positives.sort((ge,ae)=>ge<ae?-1:ge>ae?1:0);let le=X.capture?"":"?:",re="",he="",De;return T.positives.length&&(re=T.positives.map(ge=>E(String(ge),K)).join("|")),T.negatives.length&&(he=`-(${le}${T.negatives.map(ge=>E(String(ge),K)).join("|")})`),re&&he?De=`${re}|${he}`:De=re||he,X.wrap?`(${le}${De})`:De},y=(T,X,K,le)=>{if(K)return e(T,X,{wrap:!1,...le});let re=String.fromCharCode(T);if(T===X)return re;let he=String.fromCharCode(X);return`[${re}-${he}]`},d=(T,X,K)=>{if(Array.isArray(T)){let le=K.wrap===!0,re=K.capture?"":"?:";return le?`(${re}${T.join("|")})`:T.join("|")}return e(T,X,K)},H=(...T)=>new RangeError("Invalid range arguments: "+i.inspect(...T)),Q=(T,X,K)=>{if(K.strictRanges===!0)throw H([T,X]);return[]},W=(T,X)=>{if(X.strictRanges===!0)throw new TypeError(`Expected step "${T}" to be a number`);return[]},_=(T,X,K=1,le={})=>{let re=Number(T),he=Number(X);if(!Number.isInteger(re)||!Number.isInteger(he)){if(le.strictRanges===!0)throw H([T,X]);return[]}re===0&&(re=0),he===0&&(he=0);let De=re>he,ge=String(T),ae=String(X),ue=String(K);K=Math.max(Math.abs(K),1);let ee=o(ge)||o(ae)||o(ue),de=ee?Math.max(ge.length,ae.length,ue.length):0,me=ee===!1&&l(T,X,le)===!1,we=le.transform||n(me);if(le.toRegex&&K===1)return y(E(T,de),E(X,de),!0,le);let pe={negatives:[],positives:[]},Fe=ne=>pe[ne<0?"negatives":"positives"].push(Math.abs(ne)),Oe=[],ye=0;for(;De?re>=he:re<=he;)le.toRegex===!0&&K>1?Fe(re):Oe.push(f(we(re,ye),de,me)),re=De?re-K:re+K,ye++;return le.toRegex===!0?K>1?w(pe,le,de):d(Oe,null,{wrap:!1,...le}):Oe},U=(T,X,K=1,le={})=>{if(!a(T)&&T.length>1||!a(X)&&X.length>1)return Q(T,X,le);let re=le.transform||(me=>String.fromCharCode(me)),he=`${T}`.charCodeAt(0),De=`${X}`.charCodeAt(0),ge=he>De,ae=Math.min(he,De),ue=Math.max(he,De);if(le.toRegex&&K===1)return y(ae,ue,!1,le);let ee=[],de=0;for(;ge?he>=De:he<=De;)ee.push(re(he,de)),he=ge?he-K:he+K,de++;return le.toRegex===!0?d(ee,null,{wrap:!1,options:le}):ee},te=(T,X,K,le={})=>{if(X==null&&s(T))return[T];if(!s(T)||!s(X))return Q(T,X,le);if(typeof K=="function")return te(T,X,1,{transform:K});if(t(K))return te(T,X,0,K);let re={...le};return re.capture===!0&&(re.wrap=!0),K=K||re.step||1,a(K)?a(T)&&a(X)?_(T,X,K,re):U(T,X,Math.max(Math.abs(K),1),re):K!=null&&!t(K)?W(K,re):te(T,X,1,K)};return fillRange=te,fillRange}var compile_1,hasRequiredCompile;function requireCompile(){if(hasRequiredCompile)return compile_1;hasRequiredCompile=1;const i=requireFillRange(),e=requireUtils$1();return compile_1=(n,s={})=>{const a=(o,l={})=>{const f=e.isInvalidBrace(l),E=o.invalid===!0&&s.escapeInvalid===!0,w=f===!0||E===!0,y=s.escapeInvalid===!0?"\\":"";let d="";if(o.isOpen===!0)return y+o.value;if(o.isClose===!0)return console.log("node.isClose",y,o.value),y+o.value;if(o.type==="open")return w?y+o.value:"(";if(o.type==="close")return w?y+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":w?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){const H=e.reduce(o.nodes),Q=i(...H,{...s,wrap:!1,toRegex:!0,strictZeros:!0});if(Q.length!==0)return H.length>1&&Q.length>1?`(${Q})`:Q}if(o.nodes)for(const H of o.nodes)d+=a(H,o);return d};return a(n)},compile_1}var expand_1,hasRequiredExpand;function requireExpand(){if(hasRequiredExpand)return expand_1;hasRequiredExpand=1;const i=requireFillRange(),e=requireStringify(),t=requireUtils$1(),n=(a="",o="",l=!1)=>{const f=[];if(a=[].concat(a),o=[].concat(o),!o.length)return a;if(!a.length)return l?t.flatten(o).map(E=>`{${E}}`):o;for(const E of a)if(Array.isArray(E))for(const w of E)f.push(n(w,o,l));else for(let w of o)l===!0&&typeof w=="string"&&(w=`{${w}}`),f.push(Array.isArray(w)?n(E,w,l):E+w);return t.flatten(f)};return expand_1=(a,o={})=>{const l=o.rangeLimit===void 0?1e3:o.rangeLimit,f=(E,w={})=>{E.queue=[];let y=w,d=w.queue;for(;y.type!=="brace"&&y.type!=="root"&&y.parent;)y=y.parent,d=y.queue;if(E.invalid||E.dollar){d.push(n(d.pop(),e(E,o)));return}if(E.type==="brace"&&E.invalid!==!0&&E.nodes.length===2){d.push(n(d.pop(),["{}"]));return}if(E.nodes&&E.ranges>0){const _=t.reduce(E.nodes);if(t.exceedsLimit(..._,o.step,l))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let U=i(..._,o);U.length===0&&(U=e(E,o)),d.push(n(d.pop(),U)),E.nodes=[];return}const H=t.encloseBrace(E);let Q=E.queue,W=E;for(;W.type!=="brace"&&W.type!=="root"&&W.parent;)W=W.parent,Q=W.queue;for(let _=0;_<E.nodes.length;_++){const U=E.nodes[_];if(U.type==="comma"&&E.type==="brace"){_===1&&Q.push(""),Q.push("");continue}if(U.type==="close"){d.push(n(d.pop(),Q,H));continue}if(U.value&&U.type!=="open"){Q.push(n(Q.pop(),U.value));continue}U.nodes&&f(U,E)}return Q};return t.flatten(f(a))},expand_1}var constants$1,hasRequiredConstants$1;function requireConstants$1(){return hasRequiredConstants$1||(hasRequiredConstants$1=1,constants$1={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
|
|
414
|
+
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}),constants$1}var parse_1$1,hasRequiredParse$1;function requireParse$1(){if(hasRequiredParse$1)return parse_1$1;hasRequiredParse$1=1;const i=requireStringify(),{MAX_LENGTH:e,CHAR_BACKSLASH:t,CHAR_BACKTICK:n,CHAR_COMMA:s,CHAR_DOT:a,CHAR_LEFT_PARENTHESES:o,CHAR_RIGHT_PARENTHESES:l,CHAR_LEFT_CURLY_BRACE:f,CHAR_RIGHT_CURLY_BRACE:E,CHAR_LEFT_SQUARE_BRACKET:w,CHAR_RIGHT_SQUARE_BRACKET:y,CHAR_DOUBLE_QUOTE:d,CHAR_SINGLE_QUOTE:H,CHAR_NO_BREAK_SPACE:Q,CHAR_ZERO_WIDTH_NOBREAK_SPACE:W}=requireConstants$1();return parse_1$1=(U,te={})=>{if(typeof U!="string")throw new TypeError("Expected a string");const T=te||{},X=typeof T.maxLength=="number"?Math.min(e,T.maxLength):e;if(U.length>X)throw new SyntaxError(`Input length (${U.length}), exceeds max characters (${X})`);const K={type:"root",input:U,nodes:[]},le=[K];let re=K,he=K,De=0;const ge=U.length;let ae=0,ue=0,ee;const de=()=>U[ae++],me=we=>{if(we.type==="text"&&he.type==="dot"&&(he.type="text"),he&&he.type==="text"&&we.type==="text"){he.value+=we.value;return}return re.nodes.push(we),we.parent=re,we.prev=he,he=we,we};for(me({type:"bos"});ae<ge;)if(re=le[le.length-1],ee=de(),!(ee===W||ee===Q)){if(ee===t){me({type:"text",value:(te.keepEscaping?ee:"")+de()});continue}if(ee===y){me({type:"text",value:"\\"+ee});continue}if(ee===w){De++;let we;for(;ae<ge&&(we=de());){if(ee+=we,we===w){De++;continue}if(we===t){ee+=de();continue}if(we===y&&(De--,De===0))break}me({type:"text",value:ee});continue}if(ee===o){re=me({type:"paren",nodes:[]}),le.push(re),me({type:"text",value:ee});continue}if(ee===l){if(re.type!=="paren"){me({type:"text",value:ee});continue}re=le.pop(),me({type:"text",value:ee}),re=le[le.length-1];continue}if(ee===d||ee===H||ee===n){const we=ee;let pe;for(te.keepQuotes!==!0&&(ee="");ae<ge&&(pe=de());){if(pe===t){ee+=pe+de();continue}if(pe===we){te.keepQuotes===!0&&(ee+=pe);break}ee+=pe}me({type:"text",value:ee});continue}if(ee===f){ue++;const pe={type:"brace",open:!0,close:!1,dollar:he.value&&he.value.slice(-1)==="$"||re.dollar===!0,depth:ue,commas:0,ranges:0,nodes:[]};re=me(pe),le.push(re),me({type:"open",value:ee});continue}if(ee===E){if(re.type!=="brace"){me({type:"text",value:ee});continue}const we="close";re=le.pop(),re.close=!0,me({type:we,value:ee}),ue--,re=le[le.length-1];continue}if(ee===s&&ue>0){if(re.ranges>0){re.ranges=0;const we=re.nodes.shift();re.nodes=[we,{type:"text",value:i(re)}]}me({type:"comma",value:ee}),re.commas++;continue}if(ee===a&&ue>0&&re.commas===0){const we=re.nodes;if(ue===0||we.length===0){me({type:"text",value:ee});continue}if(he.type==="dot"){if(re.range=[],he.value+=ee,he.type="range",re.nodes.length!==3&&re.nodes.length!==5){re.invalid=!0,re.ranges=0,he.type="text";continue}re.ranges++,re.args=[];continue}if(he.type==="range"){we.pop();const pe=we[we.length-1];pe.value+=he.value+ee,he=pe,re.ranges--;continue}me({type:"dot",value:ee});continue}me({type:"text",value:ee})}do if(re=le.pop(),re.type!=="root"){re.nodes.forEach(Fe=>{Fe.nodes||(Fe.type==="open"&&(Fe.isOpen=!0),Fe.type==="close"&&(Fe.isClose=!0),Fe.nodes||(Fe.type="text"),Fe.invalid=!0)});const we=le[le.length-1],pe=we.nodes.indexOf(re);we.nodes.splice(pe,1,...re.nodes)}while(le.length>0);return me({type:"eos"}),K},parse_1$1}var braces_1,hasRequiredBraces;function requireBraces(){if(hasRequiredBraces)return braces_1;hasRequiredBraces=1;const i=requireStringify(),e=requireCompile(),t=requireExpand(),n=requireParse$1(),s=(a,o={})=>{let l=[];if(Array.isArray(a))for(const f of a){const E=s.create(f,o);Array.isArray(E)?l.push(...E):l.push(E)}else l=[].concat(s.create(a,o));return o&&o.expand===!0&&o.nodupes===!0&&(l=[...new Set(l)]),l};return s.parse=(a,o={})=>n(a,o),s.stringify=(a,o={})=>i(typeof a=="string"?s.parse(a,o):a,o),s.compile=(a,o={})=>(typeof a=="string"&&(a=s.parse(a,o)),e(a,o)),s.expand=(a,o={})=>{typeof a=="string"&&(a=s.parse(a,o));let l=t(a,o);return o.noempty===!0&&(l=l.filter(Boolean)),o.nodupes===!0&&(l=[...new Set(l)]),l},s.create=(a,o={})=>a===""||a.length<3?[a]:o.expand!==!0?s.compile(a,o):s.expand(a,o),braces_1=s,braces_1}var utils={},constants,hasRequiredConstants;function requireConstants(){if(hasRequiredConstants)return constants;hasRequiredConstants=1;const i=require$$0__default$1,e="\\\\/",t=`[^${e}]`,n="\\.",s="\\+",a="\\?",o="\\/",l="(?=.)",f="[^/]",E=`(?:${o}|$)`,w=`(?:^|${o})`,y=`${n}{1,2}${E}`,d=`(?!${n})`,H=`(?!${w}${y})`,Q=`(?!${n}{0,1}${E})`,W=`(?!${y})`,_=`[^.${o}]`,U=`${f}*?`,te={DOT_LITERAL:n,PLUS_LITERAL:s,QMARK_LITERAL:a,SLASH_LITERAL:o,ONE_CHAR:l,QMARK:f,END_ANCHOR:E,DOTS_SLASH:y,NO_DOT:d,NO_DOTS:H,NO_DOT_SLASH:Q,NO_DOTS_SLASH:W,QMARK_NO_DOT:_,STAR:U,START_ANCHOR:w},T={...te,SLASH_LITERAL:`[${e}]`,QMARK:t,STAR:`${t}*?`,DOTS_SLASH:`${n}{1,2}(?:[${e}]|$)`,NO_DOT:`(?!${n})`,NO_DOTS:`(?!(?:^|[${e}])${n}{1,2}(?:[${e}]|$))`,NO_DOT_SLASH:`(?!${n}{0,1}(?:[${e}]|$))`,NO_DOTS_SLASH:`(?!${n}{1,2}(?:[${e}]|$))`,QMARK_NO_DOT:`[^.${e}]`,START_ANCHOR:`(?:^|[${e}])`,END_ANCHOR:`(?:[${e}]|$)`},X={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"};return constants={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:X,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:{"***":"*","**/**":"**","**/**/**":"**"},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,SEP:i.sep,extglobChars(K){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${K.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(K){return K===!0?T:te}},constants}var hasRequiredUtils;function requireUtils(){return hasRequiredUtils||(hasRequiredUtils=1,function(i){const e=require$$0__default$1,t=process.platform==="win32",{REGEX_BACKSLASH:n,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_GLOBAL:o}=requireConstants();i.isObject=l=>l!==null&&typeof l=="object"&&!Array.isArray(l),i.hasRegexChars=l=>a.test(l),i.isRegexChar=l=>l.length===1&&i.hasRegexChars(l),i.escapeRegex=l=>l.replace(o,"\\$1"),i.toPosixSlashes=l=>l.replace(n,"/"),i.removeBackslashes=l=>l.replace(s,f=>f==="\\"?"":f),i.supportsLookbehinds=()=>{const l=process.version.slice(1).split(".").map(Number);return l.length===3&&l[0]>=9||l[0]===8&&l[1]>=10},i.isWindows=l=>l&&typeof l.windows=="boolean"?l.windows:t===!0||e.sep==="\\",i.escapeLast=(l,f,E)=>{const w=l.lastIndexOf(f,E);return w===-1?l:l[w-1]==="\\"?i.escapeLast(l,f,w-1):`${l.slice(0,w)}\\${l.slice(w)}`},i.removePrefix=(l,f={})=>{let E=l;return E.startsWith("./")&&(E=E.slice(2),f.prefix="./"),E},i.wrapOutput=(l,f={},E={})=>{const w=E.contains?"":"^",y=E.contains?"":"$";let d=`${w}(?:${l})${y}`;return f.negated===!0&&(d=`(?:^(?!${d}).*$)`),d}}(utils)),utils}var scan_1,hasRequiredScan;function requireScan(){if(hasRequiredScan)return scan_1;hasRequiredScan=1;const i=requireUtils(),{CHAR_ASTERISK:e,CHAR_AT:t,CHAR_BACKWARD_SLASH:n,CHAR_COMMA:s,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:o,CHAR_FORWARD_SLASH:l,CHAR_LEFT_CURLY_BRACE:f,CHAR_LEFT_PARENTHESES:E,CHAR_LEFT_SQUARE_BRACKET:w,CHAR_PLUS:y,CHAR_QUESTION_MARK:d,CHAR_RIGHT_CURLY_BRACE:H,CHAR_RIGHT_PARENTHESES:Q,CHAR_RIGHT_SQUARE_BRACKET:W}=requireConstants(),_=T=>T===l||T===n,U=T=>{T.isPrefix!==!0&&(T.depth=T.isGlobstar?1/0:1)};return scan_1=(T,X)=>{const K=X||{},le=T.length-1,re=K.parts===!0||K.scanToEnd===!0,he=[],De=[],ge=[];let ae=T,ue=-1,ee=0,de=0,me=!1,we=!1,pe=!1,Fe=!1,Oe=!1,ye=!1,ne=!1,Be=!1,Re=!1,Ce=!1,se=0,z,Ae,Ee={value:"",depth:0,isGlob:!1};const be=()=>ue>=le,xe=()=>ae.charCodeAt(ue+1),_e=()=>(z=Ae,ae.charCodeAt(++ue));for(;ue<le;){Ae=_e();let N;if(Ae===n){ne=Ee.backslashes=!0,Ae=_e(),Ae===f&&(ye=!0);continue}if(ye===!0||Ae===f){for(se++;be()!==!0&&(Ae=_e());){if(Ae===n){ne=Ee.backslashes=!0,_e();continue}if(Ae===f){se++;continue}if(ye!==!0&&Ae===a&&(Ae=_e())===a){if(me=Ee.isBrace=!0,pe=Ee.isGlob=!0,Ce=!0,re===!0)continue;break}if(ye!==!0&&Ae===s){if(me=Ee.isBrace=!0,pe=Ee.isGlob=!0,Ce=!0,re===!0)continue;break}if(Ae===H&&(se--,se===0)){ye=!1,me=Ee.isBrace=!0,Ce=!0;break}}if(re===!0)continue;break}if(Ae===l){if(he.push(ue),De.push(Ee),Ee={value:"",depth:0,isGlob:!1},Ce===!0)continue;if(z===a&&ue===ee+1){ee+=2;continue}de=ue+1;continue}if(K.noext!==!0&&(Ae===y||Ae===t||Ae===e||Ae===d||Ae===o)===!0&&xe()===E){if(pe=Ee.isGlob=!0,Fe=Ee.isExtglob=!0,Ce=!0,Ae===o&&ue===ee&&(Re=!0),re===!0){for(;be()!==!0&&(Ae=_e());){if(Ae===n){ne=Ee.backslashes=!0,Ae=_e();continue}if(Ae===Q){pe=Ee.isGlob=!0,Ce=!0;break}}continue}break}if(Ae===e){if(z===e&&(Oe=Ee.isGlobstar=!0),pe=Ee.isGlob=!0,Ce=!0,re===!0)continue;break}if(Ae===d){if(pe=Ee.isGlob=!0,Ce=!0,re===!0)continue;break}if(Ae===w){for(;be()!==!0&&(N=_e());){if(N===n){ne=Ee.backslashes=!0,_e();continue}if(N===W){we=Ee.isBracket=!0,pe=Ee.isGlob=!0,Ce=!0;break}}if(re===!0)continue;break}if(K.nonegate!==!0&&Ae===o&&ue===ee){Be=Ee.negated=!0,ee++;continue}if(K.noparen!==!0&&Ae===E){if(pe=Ee.isGlob=!0,re===!0){for(;be()!==!0&&(Ae=_e());){if(Ae===E){ne=Ee.backslashes=!0,Ae=_e();continue}if(Ae===Q){Ce=!0;break}}continue}break}if(pe===!0){if(Ce=!0,re===!0)continue;break}}K.noext===!0&&(Fe=!1,pe=!1);let Se=ae,Le="",Ne="";ee>0&&(Le=ae.slice(0,ee),ae=ae.slice(ee),de-=ee),Se&&pe===!0&&de>0?(Se=ae.slice(0,de),Ne=ae.slice(de)):pe===!0?(Se="",Ne=ae):Se=ae,Se&&Se!==""&&Se!=="/"&&Se!==ae&&_(Se.charCodeAt(Se.length-1))&&(Se=Se.slice(0,-1)),K.unescape===!0&&(Ne&&(Ne=i.removeBackslashes(Ne)),Se&&ne===!0&&(Se=i.removeBackslashes(Se)));const L={prefix:Le,input:T,start:ee,base:Se,glob:Ne,isBrace:me,isBracket:we,isGlob:pe,isExtglob:Fe,isGlobstar:Oe,negated:Be,negatedExtglob:Re};if(K.tokens===!0&&(L.maxDepth=0,_(Ae)||De.push(Ee),L.tokens=De),K.parts===!0||K.tokens===!0){let N;for(let oe=0;oe<he.length;oe++){const ie=N?N+1:ee,B=he[oe],fe=T.slice(ie,B);K.tokens&&(oe===0&&ee!==0?(De[oe].isPrefix=!0,De[oe].value=Le):De[oe].value=fe,U(De[oe]),L.maxDepth+=De[oe].depth),(oe!==0||fe!=="")&&ge.push(fe),N=B}if(N&&N+1<T.length){const oe=T.slice(N+1);ge.push(oe),K.tokens&&(De[De.length-1].value=oe,U(De[De.length-1]),L.maxDepth+=De[De.length-1].depth)}L.slashes=he,L.parts=ge}return L},scan_1}var parse_1,hasRequiredParse;function requireParse(){if(hasRequiredParse)return parse_1;hasRequiredParse=1;const i=requireConstants(),e=requireUtils(),{MAX_LENGTH:t,POSIX_REGEX_SOURCE:n,REGEX_NON_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_BACKREF:a,REPLACEMENTS:o}=i,l=(w,y)=>{if(typeof y.expandRange=="function")return y.expandRange(...w,y);w.sort();const d=`[${w.join("-")}]`;try{new RegExp(d)}catch{return w.map(Q=>e.escapeRegex(Q)).join("..")}return d},f=(w,y)=>`Missing ${w}: "${y}" - use "\\\\${y}" to match literal characters`,E=(w,y)=>{if(typeof w!="string")throw new TypeError("Expected a string");w=o[w]||w;const d={...y},H=typeof d.maxLength=="number"?Math.min(t,d.maxLength):t;let Q=w.length;if(Q>H)throw new SyntaxError(`Input length: ${Q}, exceeds maximum allowed length: ${H}`);const W={type:"bos",value:"",output:d.prepend||""},_=[W],U=d.capture?"":"?:",te=e.isWindows(y),T=i.globChars(te),X=i.extglobChars(T),{DOT_LITERAL:K,PLUS_LITERAL:le,SLASH_LITERAL:re,ONE_CHAR:he,DOTS_SLASH:De,NO_DOT:ge,NO_DOT_SLASH:ae,NO_DOTS_SLASH:ue,QMARK:ee,QMARK_NO_DOT:de,STAR:me,START_ANCHOR:we}=T,pe=B=>`(${U}(?:(?!${we}${B.dot?De:K}).)*?)`,Fe=d.dot?"":ge,Oe=d.dot?ee:de;let ye=d.bash===!0?pe(d):me;d.capture&&(ye=`(${ye})`),typeof d.noext=="boolean"&&(d.noextglob=d.noext);const ne={input:w,index:-1,start:0,dot:d.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:_};w=e.removePrefix(w,ne),Q=w.length;const Be=[],Re=[],Ce=[];let se=W,z;const Ae=()=>ne.index===Q-1,Ee=ne.peek=(B=1)=>w[ne.index+B],be=ne.advance=()=>w[++ne.index]||"",xe=()=>w.slice(ne.index+1),_e=(B="",fe=0)=>{ne.consumed+=B,ne.index+=fe},Se=B=>{ne.output+=B.output!=null?B.output:B.value,_e(B.value)},Le=()=>{let B=1;for(;Ee()==="!"&&(Ee(2)!=="("||Ee(3)==="?");)be(),ne.start++,B++;return B%2===0?!1:(ne.negated=!0,ne.start++,!0)},Ne=B=>{ne[B]++,Ce.push(B)},L=B=>{ne[B]--,Ce.pop()},N=B=>{if(se.type==="globstar"){const fe=ne.braces>0&&(B.type==="comma"||B.type==="brace"),Z=B.extglob===!0||Be.length&&(B.type==="pipe"||B.type==="paren");B.type!=="slash"&&B.type!=="paren"&&!fe&&!Z&&(ne.output=ne.output.slice(0,-se.output.length),se.type="star",se.value="*",se.output=ye,ne.output+=se.output)}if(Be.length&&B.type!=="paren"&&(Be[Be.length-1].inner+=B.value),(B.value||B.output)&&Se(B),se&&se.type==="text"&&B.type==="text"){se.value+=B.value,se.output=(se.output||"")+B.value;return}B.prev=se,_.push(B),se=B},oe=(B,fe)=>{const Z={...X[fe],conditions:1,inner:""};Z.prev=se,Z.parens=ne.parens,Z.output=ne.output;const ce=(d.capture?"(":"")+Z.open;Ne("parens"),N({type:B,value:fe,output:ne.output?"":he}),N({type:"paren",extglob:!0,value:be(),output:ce}),Be.push(Z)},ie=B=>{let fe=B.close+(d.capture?")":""),Z;if(B.type==="negate"){let ce=ye;if(B.inner&&B.inner.length>1&&B.inner.includes("/")&&(ce=pe(d)),(ce!==ye||Ae()||/^\)+$/.test(xe()))&&(fe=B.close=`)$))${ce}`),B.inner.includes("*")&&(Z=xe())&&/^\.[^\\/.]+$/.test(Z)){const ve=E(Z,{...y,fastpaths:!1}).output;fe=B.close=`)${ve})${ce})`}B.prev.type==="bos"&&(ne.negatedExtglob=!0)}N({type:"paren",extglob:!0,value:z,output:fe}),L("parens")};if(d.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(w)){let B=!1,fe=w.replace(a,(Z,ce,ve,$e,Ie,je)=>$e==="\\"?(B=!0,Z):$e==="?"?ce?ce+$e+(Ie?ee.repeat(Ie.length):""):je===0?Oe+(Ie?ee.repeat(Ie.length):""):ee.repeat(ve.length):$e==="."?K.repeat(ve.length):$e==="*"?ce?ce+$e+(Ie?ye:""):ye:ce?Z:`\\${Z}`);return B===!0&&(d.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,Z=>Z.length%2===0?"\\\\":Z?"\\":"")),fe===w&&d.contains===!0?(ne.output=w,ne):(ne.output=e.wrapOutput(fe,ne,y),ne)}for(;!Ae();){if(z=be(),z==="\0")continue;if(z==="\\"){const Z=Ee();if(Z==="/"&&d.bash!==!0||Z==="."||Z===";")continue;if(!Z){z+="\\",N({type:"text",value:z});continue}const ce=/^\\+/.exec(xe());let ve=0;if(ce&&ce[0].length>2&&(ve=ce[0].length,ne.index+=ve,ve%2!==0&&(z+="\\")),d.unescape===!0?z=be():z+=be(),ne.brackets===0){N({type:"text",value:z});continue}}if(ne.brackets>0&&(z!=="]"||se.value==="["||se.value==="[^")){if(d.posix!==!1&&z===":"){const Z=se.value.slice(1);if(Z.includes("[")&&(se.posix=!0,Z.includes(":"))){const ce=se.value.lastIndexOf("["),ve=se.value.slice(0,ce),$e=se.value.slice(ce+2),Ie=n[$e];if(Ie){se.value=ve+Ie,ne.backtrack=!0,be(),!W.output&&_.indexOf(se)===1&&(W.output=he);continue}}}(z==="["&&Ee()!==":"||z==="-"&&Ee()==="]")&&(z=`\\${z}`),z==="]"&&(se.value==="["||se.value==="[^")&&(z=`\\${z}`),d.posix===!0&&z==="!"&&se.value==="["&&(z="^"),se.value+=z,Se({value:z});continue}if(ne.quotes===1&&z!=='"'){z=e.escapeRegex(z),se.value+=z,Se({value:z});continue}if(z==='"'){ne.quotes=ne.quotes===1?0:1,d.keepQuotes===!0&&N({type:"text",value:z});continue}if(z==="("){Ne("parens"),N({type:"paren",value:z});continue}if(z===")"){if(ne.parens===0&&d.strictBrackets===!0)throw new SyntaxError(f("opening","("));const Z=Be[Be.length-1];if(Z&&ne.parens===Z.parens+1){ie(Be.pop());continue}N({type:"paren",value:z,output:ne.parens?")":"\\)"}),L("parens");continue}if(z==="["){if(d.nobracket===!0||!xe().includes("]")){if(d.nobracket!==!0&&d.strictBrackets===!0)throw new SyntaxError(f("closing","]"));z=`\\${z}`}else Ne("brackets");N({type:"bracket",value:z});continue}if(z==="]"){if(d.nobracket===!0||se&&se.type==="bracket"&&se.value.length===1){N({type:"text",value:z,output:`\\${z}`});continue}if(ne.brackets===0){if(d.strictBrackets===!0)throw new SyntaxError(f("opening","["));N({type:"text",value:z,output:`\\${z}`});continue}L("brackets");const Z=se.value.slice(1);if(se.posix!==!0&&Z[0]==="^"&&!Z.includes("/")&&(z=`/${z}`),se.value+=z,Se({value:z}),d.literalBrackets===!1||e.hasRegexChars(Z))continue;const ce=e.escapeRegex(se.value);if(ne.output=ne.output.slice(0,-se.value.length),d.literalBrackets===!0){ne.output+=ce,se.value=ce;continue}se.value=`(${U}${ce}|${se.value})`,ne.output+=se.value;continue}if(z==="{"&&d.nobrace!==!0){Ne("braces");const Z={type:"brace",value:z,output:"(",outputIndex:ne.output.length,tokensIndex:ne.tokens.length};Re.push(Z),N(Z);continue}if(z==="}"){const Z=Re[Re.length-1];if(d.nobrace===!0||!Z){N({type:"text",value:z,output:z});continue}let ce=")";if(Z.dots===!0){const ve=_.slice(),$e=[];for(let Ie=ve.length-1;Ie>=0&&(_.pop(),ve[Ie].type!=="brace");Ie--)ve[Ie].type!=="dots"&&$e.unshift(ve[Ie].value);ce=l($e,d),ne.backtrack=!0}if(Z.comma!==!0&&Z.dots!==!0){const ve=ne.output.slice(0,Z.outputIndex),$e=ne.tokens.slice(Z.tokensIndex);Z.value=Z.output="\\{",z=ce="\\}",ne.output=ve;for(const Ie of $e)ne.output+=Ie.output||Ie.value}N({type:"brace",value:z,output:ce}),L("braces"),Re.pop();continue}if(z==="|"){Be.length>0&&Be[Be.length-1].conditions++,N({type:"text",value:z});continue}if(z===","){let Z=z;const ce=Re[Re.length-1];ce&&Ce[Ce.length-1]==="braces"&&(ce.comma=!0,Z="|"),N({type:"comma",value:z,output:Z});continue}if(z==="/"){if(se.type==="dot"&&ne.index===ne.start+1){ne.start=ne.index+1,ne.consumed="",ne.output="",_.pop(),se=W;continue}N({type:"slash",value:z,output:re});continue}if(z==="."){if(ne.braces>0&&se.type==="dot"){se.value==="."&&(se.output=K);const Z=Re[Re.length-1];se.type="dots",se.output+=z,se.value+=z,Z.dots=!0;continue}if(ne.braces+ne.parens===0&&se.type!=="bos"&&se.type!=="slash"){N({type:"text",value:z,output:K});continue}N({type:"dot",value:z,output:K});continue}if(z==="?"){if(!(se&&se.value==="(")&&d.noextglob!==!0&&Ee()==="("&&Ee(2)!=="?"){oe("qmark",z);continue}if(se&&se.type==="paren"){const ce=Ee();let ve=z;if(ce==="<"&&!e.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(se.value==="("&&!/[!=<:]/.test(ce)||ce==="<"&&!/<([!=]|\w+>)/.test(xe()))&&(ve=`\\${z}`),N({type:"text",value:z,output:ve});continue}if(d.dot!==!0&&(se.type==="slash"||se.type==="bos")){N({type:"qmark",value:z,output:de});continue}N({type:"qmark",value:z,output:ee});continue}if(z==="!"){if(d.noextglob!==!0&&Ee()==="("&&(Ee(2)!=="?"||!/[!=<:]/.test(Ee(3)))){oe("negate",z);continue}if(d.nonegate!==!0&&ne.index===0){Le();continue}}if(z==="+"){if(d.noextglob!==!0&&Ee()==="("&&Ee(2)!=="?"){oe("plus",z);continue}if(se&&se.value==="("||d.regex===!1){N({type:"plus",value:z,output:le});continue}if(se&&(se.type==="bracket"||se.type==="paren"||se.type==="brace")||ne.parens>0){N({type:"plus",value:z});continue}N({type:"plus",value:le});continue}if(z==="@"){if(d.noextglob!==!0&&Ee()==="("&&Ee(2)!=="?"){N({type:"at",extglob:!0,value:z,output:""});continue}N({type:"text",value:z});continue}if(z!=="*"){(z==="$"||z==="^")&&(z=`\\${z}`);const Z=s.exec(xe());Z&&(z+=Z[0],ne.index+=Z[0].length),N({type:"text",value:z});continue}if(se&&(se.type==="globstar"||se.star===!0)){se.type="star",se.star=!0,se.value+=z,se.output=ye,ne.backtrack=!0,ne.globstar=!0,_e(z);continue}let B=xe();if(d.noextglob!==!0&&/^\([^?]/.test(B)){oe("star",z);continue}if(se.type==="star"){if(d.noglobstar===!0){_e(z);continue}const Z=se.prev,ce=Z.prev,ve=Z.type==="slash"||Z.type==="bos",$e=ce&&(ce.type==="star"||ce.type==="globstar");if(d.bash===!0&&(!ve||B[0]&&B[0]!=="/")){N({type:"star",value:z,output:""});continue}const Ie=ne.braces>0&&(Z.type==="comma"||Z.type==="brace"),je=Be.length&&(Z.type==="pipe"||Z.type==="paren");if(!ve&&Z.type!=="paren"&&!Ie&&!je){N({type:"star",value:z,output:""});continue}for(;B.slice(0,3)==="/**";){const Pe=w[ne.index+4];if(Pe&&Pe!=="/")break;B=B.slice(3),_e("/**",3)}if(Z.type==="bos"&&Ae()){se.type="globstar",se.value+=z,se.output=pe(d),ne.output=se.output,ne.globstar=!0,_e(z);continue}if(Z.type==="slash"&&Z.prev.type!=="bos"&&!$e&&Ae()){ne.output=ne.output.slice(0,-(Z.output+se.output).length),Z.output=`(?:${Z.output}`,se.type="globstar",se.output=pe(d)+(d.strictSlashes?")":"|$)"),se.value+=z,ne.globstar=!0,ne.output+=Z.output+se.output,_e(z);continue}if(Z.type==="slash"&&Z.prev.type!=="bos"&&B[0]==="/"){const Pe=B[1]!==void 0?"|$":"";ne.output=ne.output.slice(0,-(Z.output+se.output).length),Z.output=`(?:${Z.output}`,se.type="globstar",se.output=`${pe(d)}${re}|${re}${Pe})`,se.value+=z,ne.output+=Z.output+se.output,ne.globstar=!0,_e(z+be()),N({type:"slash",value:"/",output:""});continue}if(Z.type==="bos"&&B[0]==="/"){se.type="globstar",se.value+=z,se.output=`(?:^|${re}|${pe(d)}${re})`,ne.output=se.output,ne.globstar=!0,_e(z+be()),N({type:"slash",value:"/",output:""});continue}ne.output=ne.output.slice(0,-se.output.length),se.type="globstar",se.output=pe(d),se.value+=z,ne.output+=se.output,ne.globstar=!0,_e(z);continue}const fe={type:"star",value:z,output:ye};if(d.bash===!0){fe.output=".*?",(se.type==="bos"||se.type==="slash")&&(fe.output=Fe+fe.output),N(fe);continue}if(se&&(se.type==="bracket"||se.type==="paren")&&d.regex===!0){fe.output=z,N(fe);continue}(ne.index===ne.start||se.type==="slash"||se.type==="dot")&&(se.type==="dot"?(ne.output+=ae,se.output+=ae):d.dot===!0?(ne.output+=ue,se.output+=ue):(ne.output+=Fe,se.output+=Fe),Ee()!=="*"&&(ne.output+=he,se.output+=he)),N(fe)}for(;ne.brackets>0;){if(d.strictBrackets===!0)throw new SyntaxError(f("closing","]"));ne.output=e.escapeLast(ne.output,"["),L("brackets")}for(;ne.parens>0;){if(d.strictBrackets===!0)throw new SyntaxError(f("closing",")"));ne.output=e.escapeLast(ne.output,"("),L("parens")}for(;ne.braces>0;){if(d.strictBrackets===!0)throw new SyntaxError(f("closing","}"));ne.output=e.escapeLast(ne.output,"{"),L("braces")}if(d.strictSlashes!==!0&&(se.type==="star"||se.type==="bracket")&&N({type:"maybe_slash",value:"",output:`${re}?`}),ne.backtrack===!0){ne.output="";for(const B of ne.tokens)ne.output+=B.output!=null?B.output:B.value,B.suffix&&(ne.output+=B.suffix)}return ne};return E.fastpaths=(w,y)=>{const d={...y},H=typeof d.maxLength=="number"?Math.min(t,d.maxLength):t,Q=w.length;if(Q>H)throw new SyntaxError(`Input length: ${Q}, exceeds maximum allowed length: ${H}`);w=o[w]||w;const W=e.isWindows(y),{DOT_LITERAL:_,SLASH_LITERAL:U,ONE_CHAR:te,DOTS_SLASH:T,NO_DOT:X,NO_DOTS:K,NO_DOTS_SLASH:le,STAR:re,START_ANCHOR:he}=i.globChars(W),De=d.dot?K:X,ge=d.dot?le:X,ae=d.capture?"":"?:",ue={negated:!1,prefix:""};let ee=d.bash===!0?".*?":re;d.capture&&(ee=`(${ee})`);const de=Fe=>Fe.noglobstar===!0?ee:`(${ae}(?:(?!${he}${Fe.dot?T:_}).)*?)`,me=Fe=>{switch(Fe){case"*":return`${De}${te}${ee}`;case".*":return`${_}${te}${ee}`;case"*.*":return`${De}${ee}${_}${te}${ee}`;case"*/*":return`${De}${ee}${U}${te}${ge}${ee}`;case"**":return De+de(d);case"**/*":return`(?:${De}${de(d)}${U})?${ge}${te}${ee}`;case"**/*.*":return`(?:${De}${de(d)}${U})?${ge}${ee}${_}${te}${ee}`;case"**/.*":return`(?:${De}${de(d)}${U})?${_}${te}${ee}`;default:{const Oe=/^(.*?)\.(\w+)$/.exec(Fe);if(!Oe)return;const ye=me(Oe[1]);return ye?ye+_+Oe[2]:void 0}}},we=e.removePrefix(w,ue);let pe=me(we);return pe&&d.strictSlashes!==!0&&(pe+=`${U}?`),pe},parse_1=E,parse_1}var picomatch_1,hasRequiredPicomatch$1;function requirePicomatch$1(){if(hasRequiredPicomatch$1)return picomatch_1;hasRequiredPicomatch$1=1;const i=require$$0__default$1,e=requireScan(),t=requireParse(),n=requireUtils(),s=requireConstants(),a=l=>l&&typeof l=="object"&&!Array.isArray(l),o=(l,f,E=!1)=>{if(Array.isArray(l)){const U=l.map(T=>o(T,f,E));return T=>{for(const X of U){const K=X(T);if(K)return K}return!1}}const w=a(l)&&l.tokens&&l.input;if(l===""||typeof l!="string"&&!w)throw new TypeError("Expected pattern to be a non-empty string");const y=f||{},d=n.isWindows(f),H=w?o.compileRe(l,f):o.makeRe(l,f,!1,!0),Q=H.state;delete H.state;let W=()=>!1;if(y.ignore){const U={...f,ignore:null,onMatch:null,onResult:null};W=o(y.ignore,U,E)}const _=(U,te=!1)=>{const{isMatch:T,match:X,output:K}=o.test(U,H,f,{glob:l,posix:d}),le={glob:l,state:Q,regex:H,posix:d,input:U,output:K,match:X,isMatch:T};return typeof y.onResult=="function"&&y.onResult(le),T===!1?(le.isMatch=!1,te?le:!1):W(U)?(typeof y.onIgnore=="function"&&y.onIgnore(le),le.isMatch=!1,te?le:!1):(typeof y.onMatch=="function"&&y.onMatch(le),te?le:!0)};return E&&(_.state=Q),_};return o.test=(l,f,E,{glob:w,posix:y}={})=>{if(typeof l!="string")throw new TypeError("Expected input to be a string");if(l==="")return{isMatch:!1,output:""};const d=E||{},H=d.format||(y?n.toPosixSlashes:null);let Q=l===w,W=Q&&H?H(l):l;return Q===!1&&(W=H?H(l):l,Q=W===w),(Q===!1||d.capture===!0)&&(d.matchBase===!0||d.basename===!0?Q=o.matchBase(l,f,E,y):Q=f.exec(W)),{isMatch:!!Q,match:Q,output:W}},o.matchBase=(l,f,E,w=n.isWindows(E))=>(f instanceof RegExp?f:o.makeRe(f,E)).test(i.basename(l)),o.isMatch=(l,f,E)=>o(f,E)(l),o.parse=(l,f)=>Array.isArray(l)?l.map(E=>o.parse(E,f)):t(l,{...f,fastpaths:!1}),o.scan=(l,f)=>e(l,f),o.compileRe=(l,f,E=!1,w=!1)=>{if(E===!0)return l.output;const y=f||{},d=y.contains?"":"^",H=y.contains?"":"$";let Q=`${d}(?:${l.output})${H}`;l&&l.negated===!0&&(Q=`^(?!${Q}).*$`);const W=o.toRegex(Q,f);return w===!0&&(W.state=l),W},o.makeRe=(l,f={},E=!1,w=!1)=>{if(!l||typeof l!="string")throw new TypeError("Expected a non-empty string");let y={negated:!1,fastpaths:!0};return f.fastpaths!==!1&&(l[0]==="."||l[0]==="*")&&(y.output=t.fastpaths(l,f)),y.output||(y=t(l,f)),o.compileRe(y,f,E,w)},o.toRegex=(l,f)=>{try{const E=f||{};return new RegExp(l,E.flags||(E.nocase?"i":""))}catch(E){if(f&&f.debug===!0)throw E;return/$^/}},o.constants=s,picomatch_1=o,picomatch_1}var picomatch,hasRequiredPicomatch;function requirePicomatch(){return hasRequiredPicomatch||(hasRequiredPicomatch=1,picomatch=requirePicomatch$1()),picomatch}var micromatch_1,hasRequiredMicromatch;function requireMicromatch(){if(hasRequiredMicromatch)return micromatch_1;hasRequiredMicromatch=1;const i=require$$0__default,e=requireBraces(),t=requirePicomatch(),n=requireUtils(),s=l=>l===""||l==="./",a=l=>{const f=l.indexOf("{");return f>-1&&l.indexOf("}",f)>-1},o=(l,f,E)=>{f=[].concat(f),l=[].concat(l);let w=new Set,y=new Set,d=new Set,H=0,Q=U=>{d.add(U.output),E&&E.onResult&&E.onResult(U)};for(let U=0;U<f.length;U++){let te=t(String(f[U]),{...E,onResult:Q},!0),T=te.state.negated||te.state.negatedExtglob;T&&H++;for(let X of l){let K=te(X,!0);(T?!K.isMatch:K.isMatch)&&(T?w.add(K.output):(w.delete(K.output),y.add(K.output)))}}let _=(H===f.length?[...d]:[...y]).filter(U=>!w.has(U));if(E&&_.length===0){if(E.failglob===!0)throw new Error(`No matches found for "${f.join(", ")}"`);if(E.nonull===!0||E.nullglob===!0)return E.unescape?f.map(U=>U.replace(/\\/g,"")):f}return _};return o.match=o,o.matcher=(l,f)=>t(l,f),o.isMatch=(l,f,E)=>t(f,E)(l),o.any=o.isMatch,o.not=(l,f,E={})=>{f=[].concat(f).map(String);let w=new Set,y=[],d=Q=>{E.onResult&&E.onResult(Q),y.push(Q.output)},H=new Set(o(l,f,{...E,onResult:d}));for(let Q of y)H.has(Q)||w.add(Q);return[...w]},o.contains=(l,f,E)=>{if(typeof l!="string")throw new TypeError(`Expected a string: "${i.inspect(l)}"`);if(Array.isArray(f))return f.some(w=>o.contains(l,w,E));if(typeof f=="string"){if(s(l)||s(f))return!1;if(l.includes(f)||l.startsWith("./")&&l.slice(2).includes(f))return!0}return o.isMatch(l,f,{...E,contains:!0})},o.matchKeys=(l,f,E)=>{if(!n.isObject(l))throw new TypeError("Expected the first argument to be an object");let w=o(Object.keys(l),f,E),y={};for(let d of w)y[d]=l[d];return y},o.some=(l,f,E)=>{let w=[].concat(l);for(let y of[].concat(f)){let d=t(String(y),E);if(w.some(H=>d(H)))return!0}return!1},o.every=(l,f,E)=>{let w=[].concat(l);for(let y of[].concat(f)){let d=t(String(y),E);if(!w.every(H=>d(H)))return!1}return!0},o.all=(l,f,E)=>{if(typeof l!="string")throw new TypeError(`Expected a string: "${i.inspect(l)}"`);return[].concat(f).every(w=>t(w,E)(l))},o.capture=(l,f,E)=>{let w=n.isWindows(E),d=t.makeRe(String(l),{...E,capture:!0}).exec(w?n.toPosixSlashes(f):f);if(d)return d.slice(1).map(H=>H===void 0?"":H)},o.makeRe=(...l)=>t.makeRe(...l),o.scan=(...l)=>t.scan(...l),o.parse=(l,f)=>{let E=[];for(let w of[].concat(l||[]))for(let y of e(String(w),f))E.push(t.parse(y,f));return E},o.braces=(l,f)=>{if(typeof l!="string")throw new TypeError("Expected a string");return f&&f.nobrace===!0||!a(l)?[l]:e(l,f)},o.braceExpand=(l,f)=>{if(typeof l!="string")throw new TypeError("Expected a string");return o.braces(l,{...f,expand:!0})},o.hasBraces=a,micromatch_1=o,micromatch_1}var micromatchExports=requireMicromatch();const micromatch=LikeC4.e(micromatchExports),defaultConfig={useRecommendedBuildConfig:!0,removeViteModuleLoader:!1,deleteInlinedFiles:!0};function replaceScript(i,e,t,n=!1){const s=new RegExp(`<script([^>]*?) src="[./]*${e}"([^>]*)></script>`),a=/"?__VITE_PRELOAD__"?/g,o=t.replace(a,"void 0").replace(/<(\/script>|!--)/g,"\\x3C$1"),l=i.replace(s,(f,E,w)=>`<script${E}${w}>${o.trim()}</script>`);return n?_removeViteModuleLoader(l):l}function replaceCss(i,e,t){const n=new RegExp(`<link([^>]*?) href="[./]*${e}"([^>]*?)>`),s=t.replace('@charset "UTF-8";',"");return i.replace(n,(o,l,f)=>`<style${l}${f}>${s.trim()}</style>`)}const isJsFile=/\.[mc]?js$/,isCssFile=/\.css$/,isHtmlFile=/\.html?$/;function viteSingleFile({useRecommendedBuildConfig:i=!0,removeViteModuleLoader:e=!1,inlinePattern:t=[],deleteInlinedFiles:n=!0}=defaultConfig){function s(a){console.debug(`NOTE: asset not inlined: ${a}`)}return{name:"vite:singlefile",config:i?_useRecommendedBuildConfig:void 0,enforce:"post",generateBundle:(a,o)=>{console.debug(`
|
|
415
|
+
`);const l={html:[],css:[],js:[],other:[]};for(const E of Object.keys(o))isHtmlFile.test(E)?l.html.push(E):isCssFile.test(E)?l.css.push(E):isJsFile.test(E)?l.js.push(E):l.other.push(E);const f=[];for(const E of l.html){const w=o[E];let y=w.source;for(const d of l.js){if(t.length&&!micromatch.isMatch(d,t)){s(d);continue}const H=o[d];H.code!=null&&(console.debug(`Inlining: ${d}`),f.push(d),y=replaceScript(y,H.fileName,H.code,e))}for(const d of l.css){if(t.length&&!micromatch.isMatch(d,t)){s(d);continue}const H=o[d];console.debug(`Inlining: ${d}`),f.push(d),y=replaceCss(y,H.fileName,H.source)}w.source=y}if(n)for(const E of f)delete o[E];for(const E of l.other)s(E)}}}const _removeViteModuleLoader=i=>i.replace(/(<script type="module" crossorigin>\s*)\(function(?: polyfill)?\(\)\s*\{[\s\S]*?\}\)\(\);/,'<script type="module">'),_useRecommendedBuildConfig=i=>{i.build||(i.build={}),i.build.assetsInlineLimit=()=>!0,i.build.chunkSizeWarningLimit=1e8,i.build.cssCodeSplit=!1,i.base="./",i.build.assetsDir="",i.build.rollupOptions||(i.build.rollupOptions={}),i.build.rollupOptions.output||(i.build.rollupOptions.output={});const e=t=>{t.inlineDynamicImports=!0};if(Array.isArray(i.build.rollupOptions.output))for(const t of i.build.rollupOptions.output)e(t);else e(i.build.rollupOptions.output)},viteConfig=async({languageServices:i,likec4AssetsDir:e,...t})=>{const n=t.customLogger??LikeC4.h("c4:vite"),s=viteAppRoot(),a=t?.useOverviewGraph===!0;n.info(`${LikeC4.u.cyan("likec4 app root")} ${LikeC4.u.dim(s)}`);const o=t.outputDir??path$1.resolve(i.workspace,"dist");n.info(LikeC4.u.cyan("output")+" "+LikeC4.u.dim(o));let l="/";t.base&&(l=LikeC4.w(t.base),!LikeC4.j(l)&&l!=="./"&&(l=LikeC4.k(l))),l!=="/"&&n.info(`${LikeC4.u.green("app base url")} ${LikeC4.u.dim(l)}`);const f=t.webcomponentPrefix??"likec4";return{isDev:!1,likec4AssetsDir:e,webcomponentPrefix:f,root:s,languageServices:i,clearScreen:!1,base:l,resolve:{conditions:["production"],dedupe:["react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react-dom/client"],alias:{...viteAliases(),"likec4/previews":e}},configFile:!1,mode:"production",optimizeDeps:{force:!0,include:["react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react/jsx-dev-runtime","react-dom/client"]},define:{WEBCOMPONENT_PREFIX:JSON.stringify(f),__USE_STYLE_BUNDLE__:"false",__USE_OVERVIEW_GRAPH__:a?"true":"false",__USE_HASH_HISTORY__:t?.useHashHistory===!0?"true":"false","process.env.NODE_ENV":'"production"'},build:{outDir:o,modulePreload:!1,emptyOutDir:!1,cssCodeSplit:!1,sourcemap:!1,cssMinify:!0,minify:!0,copyPublicDir:!0,chunkSizeWarningLimit,rollupOptions:{treeshake:{preset:"recommended"},output:{hoistTransitiveImports:!1,compact:!0}}},customLogger:n,plugins:[c__default(),likec4Plugin({languageServices:i,useOverviewGraph:a})].concat(t.outputSingleFile?[viteSingleFile()]:[])}};async function viteWebcomponentConfig({languageServices:i,outDir:e,base:t,webcomponentPrefix:n="likec4",filename:s="likec4-views.js"}){const a=LikeC4.h("c4:lib"),o=viteAppRoot();return a.info(LikeC4.u.cyan("outDir")+" "+LikeC4.u.dim(e)),{root:o,clearScreen:!1,base:t,configFile:!1,publicDir:!1,mode:"production",resolve:{conditions:["production"]},define:{WEBCOMPONENT_PREFIX:JSON.stringify(n),"process.env.NODE_ENV":'"production"'},esbuild:{...JsBanners},build:{outDir:e,emptyOutDir:!1,sourcemap:!1,minify:!0,assetsInlineLimit:100*1024,chunkSizeWarningLimit,lib:{entry:"webcomponent/webcomponent.js",fileName(l,f){return s},formats:["iife"],name:"LikeC4Views"},commonjsOptions:{defaultIsModuleExports:l=>l.includes("react")?!0:"auto",requireReturnsDefault:"auto"},rollupOptions:{treeshake:{preset:"recommended"},output:{format:"iife",hoistTransitiveImports:!1,compact:!0}}},customLogger:a,plugins:[likec4Plugin({languageServices:i,useOverviewGraph:!1})]}}const Assets=["favicon.ico","robots.txt"],viteBuild=async({buildWebcomponent:i=!0,webcomponentPrefix:e="likec4",languageServices:t,likec4AssetsDir:n,outputSingleFile:s,...a})=>{n??=await fsPromises.mkdtemp(path$1.join(os.tmpdir(),".likec4-assets-"));const{isDev:o,...l}=await viteConfig({...a,languageServices:t,likec4AssetsDir:n,webcomponentPrefix:e,outputSingleFile:s}),f=await mkTempPublicDir();for(const w of Assets){const y=path$1.resolve(l.root,w);fs.existsSync(y)&&fs.copyFileSync(y,path$1.resolve(f,w))}const E=await t.diagrams();if(E.length===0)throw process.exitCode=1,new Error("no views found");if(E.forEach(w=>{w.hasLayoutDrift&&l.customLogger.warn(LikeC4.u.yellow("drift detected, manual layout can not be applied, view:")+" "+LikeC4.u.red(w.id))}),i){const w=await viteWebcomponentConfig({webcomponentPrefix:e,languageServices:t,outDir:f,base:l.base});await vite.build(w)}if(await vite.build({...l,publicDir:f,mode:"production"}),s)for(let w of fs.readdirSync(path$1.resolve(l.build.outDir)).filter(y=>y!=="index.html"))fs.rmSync(path$1.resolve(l.build.outDir,w),{recursive:!0});else{const w=path$1.resolve(l.build.outDir,"index.html");fs.existsSync(w)&&fs.copyFileSync(w,path$1.resolve(l.build.outDir,"404.html"))}};function resolveServerUrl(i){if(i.resolvedUrls)return LikeC4.m(i.resolvedUrls.network)??LikeC4.m(i.resolvedUrls.local)}function printServerUrls(i){if(!i.resolvedUrls)throw new Error("Vite server is not ready, no resolvedUrls");LikeC4.H.box([LikeC4.u.green("LikeC4 served at:"),"",LikeC4.u.dim("Local: ")+i.resolvedUrls.local.join(`
|
|
416
|
+
`+"".padEnd(9," ")),LikeC4.u.dim("Network: ")+i.resolvedUrls.network.join(`
|
|
417
417
|
`+"".padEnd(9," "))].join(`
|
|
418
|
-
`))}class Locked extends Error{constructor(e){super(`${e} is locked`)}}const lockedPorts={old:new Set,young:new Set},releaseOldLockedPortsIntervalMs=1e3*15,minPort=1024,maxPort=65535;let timeout;const getLocalHosts=()=>{const i=os__default.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(const t of Object.values(i))for(const n of t)e.add(n.address);return e},checkAvailablePort=i=>new Promise((e,t)=>{const n=net__default.createServer();n.unref(),n.on("error",t),n.listen(i,()=>{const{port:s}=n.address();n.close(()=>{e(s)})})}),getAvailablePort=async(i,e)=>{if(i.host||i.port===0)return checkAvailablePort(i);for(const t of e)try{await checkAvailablePort({port:i.port,host:t})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return i.port},portCheckSequence=function*(i){i&&(yield*i),yield 0};async function getPorts(i){let e,t=new Set;if(i&&(i.port&&(e=typeof i.port=="number"?[i.port]:i.port),i.exclude)){const s=i.exclude;if(typeof s[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(const a of s){if(typeof a!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(a))throw new TypeError(`Number ${a} in the exclude option is not a safe integer and can't be used`)}t=new Set(s)}timeout===void 0&&(timeout=setTimeout(()=>{timeout=void 0,lockedPorts.old=lockedPorts.young,lockedPorts.young=new Set},releaseOldLockedPortsIntervalMs),timeout.unref&&timeout.unref());const n=getLocalHosts();for(const s of portCheckSequence(e))try{if(t.has(s))continue;let a=await getAvailablePort({...i,port:s},n);for(;lockedPorts.old.has(a)||lockedPorts.young.has(a);){if(s!==0)throw new Locked(s);a=await getAvailablePort({...i,port:s},n)}return lockedPorts.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof Locked))throw a}throw new Error("No available ports found")}function portNumbers(i,e){if(!Number.isInteger(i)||!Number.isInteger(e))throw new TypeError("`from` and `to` must be integer numbers");if(i<minPort||i>maxPort)throw new RangeError(`'from' must be between ${minPort} and ${maxPort}`);if(e<minPort||e>maxPort)throw new RangeError(`'to' must be between ${minPort} and ${maxPort}`);if(i>e)throw new RangeError("`to` must be greater than or equal to `from`");return function*(n,s){for(let a=n;a<=s;a++)yield a}(i,e)}async function viteDev({buildWebcomponent:i=!0,hmr:e=!0,webcomponentPrefix:t="likec4",languageServices:n,likec4AssetsDir:s,openBrowser:a,...o}){s??=await fsPromises.mkdtemp(path$1.join(os.tmpdir(),".likec4-assets-"));const{isDev:l,...f}=await viteConfig({...o,languageServices:n,likec4AssetsDir:s,webcomponentPrefix:t}),E=await getPorts({port:[5173,...portNumbers(61e3,61010),...portNumbers(62002,62010)]}),w=await getPorts({port:portNumbers(24678,24690)}),y=await mkTempPublicDir();let d;if(i){const Q=await viteWebcomponentConfig({webcomponentPrefix:t,languageServices:n,outDir:y,base:f.base});d=vite.build({...Q,logLevel:"warn"}).catch(W=>(LikeC4.H.warn("webcomponent build failed",W),LikeC4.H.warn("Ignoring error and continuing"),Promise.resolve()))}const H=await vite.createServer({...f,define:Object.assign({},f.define,e&&{"process.env.NODE_ENV":'"development"'}),mode:e?"development":f.mode,publicDir:y,server:{host:"0.0.0.0",port:E,hmr:e&&{overlay:!0,port:w},fs:{strict:!1},open:a??!l}});return await H.listen(),d&&await d,H}async function takeScreenshot({browserContext:i,views:e,output:t,logger:n,timeout:s,maxAttempts:a,outputType:o,theme:l}){let f;const E=e.map(d=>({view:d,attempt:1})),w=[];let y;for(;y=E.shift();){const{view:d,attempt:H}=y,Q=`/export/${encodeURIComponent(d.id)}`;try{if(H>1){f&&(f.close({runBeforeUnload:!0}).catch(T=>n.error(`failed to close page: ${T}`)),f=void 0);const te=LikeC4.
|
|
419
|
-
`+W)),H<a&&(E.push({view:d,attempt:H+1}),n.info(LikeC4.
|
|
420
|
-
`),await pngHandler({path:i,useDotBin:e,output:y,outputType:"flat",ignore:!0})}catch(d){f.error(LikeC4.
|
|
421
|
-
${LikeC4.
|
|
418
|
+
`))}class Locked extends Error{constructor(e){super(`${e} is locked`)}}const lockedPorts={old:new Set,young:new Set},releaseOldLockedPortsIntervalMs=1e3*15,minPort=1024,maxPort=65535;let timeout;const getLocalHosts=()=>{const i=os__default.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(const t of Object.values(i))for(const n of t)e.add(n.address);return e},checkAvailablePort=i=>new Promise((e,t)=>{const n=net__default.createServer();n.unref(),n.on("error",t),n.listen(i,()=>{const{port:s}=n.address();n.close(()=>{e(s)})})}),getAvailablePort=async(i,e)=>{if(i.host||i.port===0)return checkAvailablePort(i);for(const t of e)try{await checkAvailablePort({port:i.port,host:t})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return i.port},portCheckSequence=function*(i){i&&(yield*i),yield 0};async function getPorts(i){let e,t=new Set;if(i&&(i.port&&(e=typeof i.port=="number"?[i.port]:i.port),i.exclude)){const s=i.exclude;if(typeof s[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(const a of s){if(typeof a!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(a))throw new TypeError(`Number ${a} in the exclude option is not a safe integer and can't be used`)}t=new Set(s)}timeout===void 0&&(timeout=setTimeout(()=>{timeout=void 0,lockedPorts.old=lockedPorts.young,lockedPorts.young=new Set},releaseOldLockedPortsIntervalMs),timeout.unref&&timeout.unref());const n=getLocalHosts();for(const s of portCheckSequence(e))try{if(t.has(s))continue;let a=await getAvailablePort({...i,port:s},n);for(;lockedPorts.old.has(a)||lockedPorts.young.has(a);){if(s!==0)throw new Locked(s);a=await getAvailablePort({...i,port:s},n)}return lockedPorts.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof Locked))throw a}throw new Error("No available ports found")}function portNumbers(i,e){if(!Number.isInteger(i)||!Number.isInteger(e))throw new TypeError("`from` and `to` must be integer numbers");if(i<minPort||i>maxPort)throw new RangeError(`'from' must be between ${minPort} and ${maxPort}`);if(e<minPort||e>maxPort)throw new RangeError(`'to' must be between ${minPort} and ${maxPort}`);if(i>e)throw new RangeError("`to` must be greater than or equal to `from`");return function*(n,s){for(let a=n;a<=s;a++)yield a}(i,e)}async function viteDev({buildWebcomponent:i=!0,hmr:e=!0,webcomponentPrefix:t="likec4",languageServices:n,likec4AssetsDir:s,openBrowser:a,...o}){s??=await fsPromises.mkdtemp(path$1.join(os.tmpdir(),".likec4-assets-"));const{isDev:l,...f}=await viteConfig({...o,languageServices:n,likec4AssetsDir:s,webcomponentPrefix:t}),E=await getPorts({port:[5173,...portNumbers(61e3,61010),...portNumbers(62002,62010)]}),w=await getPorts({port:portNumbers(24678,24690)}),y=await mkTempPublicDir();let d;if(i){const Q=await viteWebcomponentConfig({webcomponentPrefix:t,languageServices:n,outDir:y,base:f.base});d=vite.build({...Q,logLevel:"warn"}).catch(W=>(LikeC4.H.warn("webcomponent build failed",W),LikeC4.H.warn("Ignoring error and continuing"),Promise.resolve()))}const H=await vite.createServer({...f,define:Object.assign({},f.define,e&&{"process.env.NODE_ENV":'"development"'}),mode:e?"development":f.mode,publicDir:y,server:{host:"0.0.0.0",port:E,hmr:e&&{overlay:!0,port:w},fs:{strict:!1},open:a??!l}});return await H.listen(),d&&await d,H}async function takeScreenshot({browserContext:i,views:e,output:t,logger:n,timeout:s,maxAttempts:a,outputType:o,theme:l}){let f;const E=e.map(d=>({view:d,attempt:1})),w=[];let y;for(;y=E.shift();){const{view:d,attempt:H}=y,Q=`/export/${encodeURIComponent(d.id)}`;try{if(H>1){f&&(f.close({runBeforeUnload:!0}).catch(T=>n.error(`failed to close page: ${T}`)),f=void 0);const te=LikeC4.o(H*200,{min:200,max:1e3});n.info(LikeC4.u.cyan(Q)+LikeC4.u.dim(` attempt ${H} of ${a} after ${te}ms`)),await promises.setTimeout(te)}else d.hasLayoutDrift&&n.warn(LikeC4.u.yellow("Drift detected, manual layout can not be applied, view may be invalid: ")+LikeC4.u.red(d.id)),n.info(LikeC4.u.cyan(Q));f??=await i.newPage(),await f.setViewportSize({width:d.bounds.width+20*2,height:d.bounds.height+20*2}),await f.goto(Q+`?padding=20&theme=${l}`);const W=f.getByRole("presentation");await W.waitFor(),d.nodes.some(te=>LikeC4.d(te.icon)&&te.icon.toLowerCase().startsWith("http"))&&await I(f,s);let _=".";o==="relative"&&(_=d.relativePath??".",_.includes("/")?_=_.slice(0,_.lastIndexOf("/")):_=".");const U=path$1.resolve(t,_,`${d.id}.png`);await W.screenshot({path:U,omitBackground:!0}),w.push({view:d,path:U})}catch(W){f?.close({runBeforeUnload:!0}).catch(_=>n.error(`failed to close page: ${_}`)),n.error(LikeC4.u.red("failed "+Q+`
|
|
419
|
+
`+W)),H<a&&(E.push({view:d,attempt:H+1}),n.info(LikeC4.u.dim(`retry ${Q}`))),f=void 0}}return w}async function I(i,e){let t=await i.locator("//img").all();if(!t.length)return;const n=t.map(s=>s.evaluate(a=>a.complete||new Promise((o,l)=>{a.onload=o,a.onerror=l}),{timeout:Math.max(3e4,e)}));await Promise.allSettled(n)}async function exportViewsToPNG({logger:i,serverUrl:e,theme:t="light",timeoutMs:n=15e3,views:s,output:a,outputType:o="relative",maxAttempts:l=3}){i.info(`${LikeC4.u.cyan("export output")} ${LikeC4.u.dim(a)}`),i.info(`${LikeC4.u.cyan("from server")} ${LikeC4.u.dim(e)}`);const f=playwright.chromium.executablePath();i.info(LikeC4.u.cyan("Start chromium")),i.info(LikeC4.u.dim(f));const E=await playwright.chromium.launch();i.info(LikeC4.u.cyan("Color scheme: ")+t);const w=await E.newContext({deviceScaleFactor:2,colorScheme:t,baseURL:e,ignoreHTTPSErrors:!0,reducedMotion:"reduce",isMobile:!1});w.setDefaultNavigationTimeout(n),w.setDefaultTimeout(n);try{return await takeScreenshot({browserContext:w,views:s,output:a,outputType:o,logger:i,maxAttempts:l,timeout:n,theme:t})}finally{i.info(LikeC4.u.cyan("close chromium")),await w.close(),await E.close()}}async function pngHandler({path:i,useDotBin:e,theme:t="light",output:n,outputType:s,serverUrl:a,ignore:o=!1,timeoutMs:l=1e4,maxAttempts:f=3}){const E=LikeC4.h("c4:export"),w=process$1.hrtime(),y=await LikeC4.L.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});n??=y.workspace;const d=await y.diagrams();if(!core.hasAtLeast(d,1))throw E.warn("no views found"),new Error("no views found");let H;if(!a&&(E.info(LikeC4.u.cyan("start preview server")),H=await viteDev({languageServices:y,buildWebcomponent:!1,openBrowser:!1,useOverviewGraph:!1,hmr:!1}),a=resolveServerUrl(H),!a))throw E.error("Vite server is not ready, no resolvedUrls"),new Error("Vite server is not ready, no resolvedUrls");try{const Q=await exportViewsToPNG({logger:E,serverUrl:a,theme:t,timeoutMs:l,views:d,output:n,outputType:s,maxAttempts:f}),{pretty:W}=LikeC4.q(w);if(Q.length>0&&E.info(LikeC4.u.green(`exported ${Q.length} views in ${W}`)),Q.length!==d.length&&(o&&Q.length>0?E.info(LikeC4.u.dim("ignore")+" "+LikeC4.u.red(`failed ${d.length-Q.length} out of ${d.length} views`)):E.error(LikeC4.u.red(`failed ${d.length-Q.length} out of ${d.length} views`))),Q.length!==d.length&&(Q.length===0||!o))throw new Error(`Failed ${d.length-Q.length} out of ${d.length} views`)}finally{H&&(E.info(LikeC4.u.cyan("stop server")),await H.close().catch(Q=>{E.error(Q)}))}}const{cyan:m,dim:p}=LikeC4.u;async function buildHandler({path:i,useDotBin:e,useHashHistory:t,webcomponentPrefix:n,useOverview:s=!1,output:a,outputSingleFile:o,base:l}){const f=LikeC4.h("c4:build"),E=await LikeC4.L.fromWorkspace(i,{graphviz:e?"binary":"wasm",logger:"vite"}),w=a??path$1.resolve(E.workspace,"dist");let y=path$1.resolve(w,"assets");if(s)try{y=path$1.resolve(w,"assets","previews"),await fsPromises.mkdir(y,{recursive:!0}),f.info(`${m("Generate previews")} ${p(y)}
|
|
420
|
+
`),await pngHandler({path:i,useDotBin:e,output:y,outputType:"flat",ignore:!0})}catch(d){f.error(LikeC4.u.red("Failed to generate previews")),f.error(d),f.warn(LikeC4.u.yellow("Ignore previews and continue build")),fs.rmSync(y,{recursive:!0,force:!0}),s=!1}await viteBuild({base:l,useHashHistory:o||t,customLogger:f,useOverviewGraph:s,webcomponentPrefix:n,languageServices:E,likec4AssetsDir:y,outputDir:a,outputSingleFile:o}),s&&(f.info(`${m("clean previews")} ${p(y)}`),fs.rmSync(y,{recursive:!0,force:!0}))}const buildCmd={command:"build [path]",aliases:["bundle"],describe:"Build a static website",builder:i=>i.positional("path",path).option("output",{alias:"o",type:"string",desc:"output directory for production build",normalize:!0,coerce:path$1.resolve}).option("base",base).option("use-hash-history",useHashHistory).option("use-dot",useDotBin).option("webcomponent-prefix",webcomponentPrefix).option("use-overview",useOverview).option("output-single-file",outputSingleFile).example(`${LikeC4.u.green("$0 build -o ./build ./src")}`,LikeC4.u.gray("Search for likec4 files in 'src' and output static site to 'build'")),handler:async i=>{await buildHandler({path:i.path,output:i.output,base:i.base,useHashHistory:i["use-hash-history"],useDotBin:i["use-dot"],useOverview:i["use-overview"]??!1,webcomponentPrefix:i["webcomponent-prefix"],outputSingleFile:i["output-single-file"]??!1})}};async function A(i,e,t){const n=".ts";e=e??path$1.resolve(i.workspace,"likec4.generated"+n),path$1.extname(e)!==n&&(e=e+n),await fsPromises.mkdir(path$1.dirname(e),{recursive:!0});const s=await i.diagrams(),a=J([...s]);await fsPromises.writeFile(e,a),t.info(`${LikeC4.u.dim("generated")} ${path$1.relative(process.cwd(),e)}`)}async function D(i,e,t){await fsPromises.mkdir(e,{recursive:!0}),t.info(`${LikeC4.u.dim("format")} ${LikeC4.u.green("dot")}`),t.info(`${LikeC4.u.dim("outdir")} ${e}`);const n=new Set,s=await i.viewsService.layoutAllViews();let a=0;for(const{diagram:o,dot:l}of s)try{const f=o.relativePath??"";f!==""&&!n.has(f)&&(await fsPromises.mkdir(path$1.resolve(e,f),{recursive:!0}),n.add(f));const E=path$1.resolve(e,f,o.id+".dot");core.invariant(l,`dot for ${o.id} not found`),await fsPromises.writeFile(E,l),t.info(`${LikeC4.u.dim("generated")} ${path$1.relative(process.cwd(),E)}`),a++}catch(f){t.error(`error while generating ${o.id}`,{error:f})}a>0&&t.info(`${LikeC4.u.dim("total")} ${a} files`)}async function F(i,e,t,n){await fsPromises.mkdir(t,{recursive:!0}),n.info(`${LikeC4.u.dim("format")} ${LikeC4.u.green(e)}`),n.info(`${LikeC4.u.dim("outdir")} ${t}`);let s,a;switch(e){case"d2":s=".d2",a=P$1;break;case"mermaid":s=".mmd",a=S;break;default:core.nonexhaustive(e)}const o=new Set,l=await i.diagrams();let f=0;for(const E of l)try{let w=E.relativePath??".";w.includes("/")?w=w.slice(0,w.lastIndexOf("/")):w=".",w!==""&&!o.has(w)&&(await fsPromises.mkdir(path$1.resolve(t,w),{recursive:!0}),o.add(w));const y=path$1.resolve(t,w,E.id+s),d=a(E);await fsPromises.writeFile(y,d),n.info(`${LikeC4.u.dim("generated")} ${path$1.relative(process.cwd(),y)}`),f++}catch(w){n.error(`error while generating ${E.id}`,{error:w})}f>0&&n.info(`${LikeC4.u.dim("total")} ${f} files`)}async function legacyHandler({path:i,useDotBin:e,...t}){const n=LikeC4.h("c4:codegen"),s=LikeC4.s(n),a=await LikeC4.L.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});if((await a.viewsService.computedViews()).length===0)throw n.warn("no views found"),process.exitCode=1,new Error("no views found");switch(t.format){case"views":{await A(a,t.outfile,n);break}case"dot":{await D(a,t.outdir??i,n);break}case"d2":case"mermaid":{await F(a,t.format,t.outdir??i,n);break}default:core.nonexhaustive(t)}s.stopAndLog()}async function modelHandler({path:i,useDotBin:e,outfile:t}){const n=LikeC4.h("c4:codegen"),s=LikeC4.s(n),a=await LikeC4.L.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});n.info(`${LikeC4.u.dim("format")} ${LikeC4.u.green("model")}`);const o=await a.layoutedModel();for(const y of o.views())y.$view.hasLayoutDrift&&n.warn(LikeC4.u.yellow("drift detected, manual layout can not be applied, view:")+" "+LikeC4.u.red(y.id));let l=path$1.resolve(a.workspace,"likec4-model.ts");if(t&&(l=path$1.isAbsolute(t)?t:path$1.resolve(t),fs.existsSync(t)&&(await fsPromises.stat(t)).isDirectory()))throw new Error(`output file is a directory: ${t}`);const f=path$1.basename(l);n.info(`${LikeC4.u.dim("filename")} ${f}`);const E=path$1.extname(f).toLocaleLowerCase();if(![".ts",".mts",".cts"].includes(E))throw n.error(`output file ${t} has extension "${E}"`),new Error(`output file ${t} must be a .ts, .mts or .cts file`);const w=path$1.dirname(l);n.info(`${LikeC4.u.dim("outdir")} ${w}`),await fsPromises.mkdir(w,{recursive:!0}),await fsPromises.writeFile(l,q(o),{encoding:"utf-8"}),LikeC4.H.box({message:LikeC4.r(`
|
|
421
|
+
${LikeC4.u.dim("Source with LikeC4Model generated:")}
|
|
422
422
|
${path$1.relative(process$1.cwd(),l)}
|
|
423
423
|
|
|
424
|
-
${LikeC4.
|
|
425
|
-
${LikeC4.
|
|
426
|
-
`).trim(),style:{padding:2,borderColor:"green",borderStyle:"rounded"}}),s.stopAndLog()}async function viteReactConfig({languageServices:i,outDir:e,filename:t="likec4-react.mjs"}){const n=LikeC4.
|
|
427
|
-
`+JsBanners.banner,footer:JsBanners.footer,jsx:"transform",jsxDev:!1,jsxSideEffects:!1,minifyIdentifiers:!1,minifySyntax:!1,minifyWhitespace:!1,tsconfigRaw:{compilerOptions:{target:"ES2022",useDefineForClassFields:!0,verbatimModuleSyntax:!0,jsx:"react-jsx"}}},build:{outDir:e,emptyOutDir:!1,sourcemap:!1,minify:!1,target:"es2022",copyPublicDir:!1,chunkSizeWarningLimit,lib:{entry:"react/likec4.tsx",fileName(a,o){return t},formats:["es"]},rollupOptions:{output:{compact:!1,exports:"named"},external:["likec4/react","likec4/model","react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react-dom/client",/likec4\/icons\/.*/],onwarn(a,o){a.code!=="SOURCEMAP_ERROR"&&o(a)}}},plugins:[c__default({}),likec4Plugin({languageServices:i,useOverviewGraph:!1})]}}async function reactHandler({path:i,useDotBin:e,outfile:t}){const n=LikeC4.
|
|
428
|
-
${LikeC4.
|
|
424
|
+
${LikeC4.u.dim("How to use:")}
|
|
425
|
+
${LikeC4.u.underline("https://likec4.dev/tooling/code-generation/model/")}
|
|
426
|
+
`).trim(),style:{padding:2,borderColor:"green",borderStyle:"rounded"}}),s.stopAndLog()}async function viteReactConfig({languageServices:i,outDir:e,filename:t="likec4-react.mjs"}){const n=LikeC4.h("c4:react"),s=viteAppRoot();return n.info(`${LikeC4.u.cyan("likec4 app root")} ${LikeC4.u.dim(s)}`),n.info(LikeC4.u.cyan("outDir")+" "+LikeC4.u.dim(e)),{customLogger:n,root:s,configFile:!1,clearScreen:!1,publicDir:!1,mode:"production",resolve:{conditions:["production"],alias:viteAliases()},esbuild:{banner:`'use client'
|
|
427
|
+
`+JsBanners.banner,footer:JsBanners.footer,jsx:"transform",jsxDev:!1,jsxSideEffects:!1,minifyIdentifiers:!1,minifySyntax:!1,minifyWhitespace:!1,tsconfigRaw:{compilerOptions:{target:"ES2022",useDefineForClassFields:!0,verbatimModuleSyntax:!0,jsx:"react-jsx"}}},build:{outDir:e,emptyOutDir:!1,sourcemap:!1,minify:!1,target:"es2022",copyPublicDir:!1,chunkSizeWarningLimit,lib:{entry:"react/likec4.tsx",fileName(a,o){return t},formats:["es"]},rollupOptions:{output:{compact:!1,exports:"named"},external:["likec4/react","likec4/model","react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react-dom/client",/likec4\/icons\/.*/],onwarn(a,o){a.code!=="SOURCEMAP_ERROR"&&o(a)}}},plugins:[c__default({}),likec4Plugin({languageServices:i,useOverviewGraph:!1})]}}async function reactHandler({path:i,useDotBin:e,outfile:t}){const n=LikeC4.h("c4:codegen"),s=LikeC4.s(n),a=await LikeC4.L.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});n.info(`${LikeC4.u.dim("format")} ${LikeC4.u.green("react")}`);const o=await a.diagrams();if(o.length===0)throw process.exitCode=1,new Error("no views found");o.forEach(H=>{H.hasLayoutDrift&&n.warn(LikeC4.u.yellow("drift detected, manual layout can not be applied, view:")+" "+LikeC4.u.red(H.id))});let l=path$1.resolve(a.workspace,"likec4-views.js");if(t&&(l=path$1.isAbsolute(t)?t:path$1.resolve(t),fs.existsSync(t)&&(await fsPromises.stat(t)).isDirectory()))throw new Error(`output file is a directory: ${t}`);const f=path$1.dirname(l);n.info(`${LikeC4.u.dim("outdir")} ${f}`);const E=path$1.basename(l);n.info(`${LikeC4.u.dim("filename")} ${E}`);const w=path$1.extname(E).toLocaleLowerCase();if(![".js",".mjs",".jsx"].includes(w))throw n.error(`output file ${t} has extension "${w}"`),new Error(`output file ${t} must be a .js, .jsx or .mjs`);const y=await viteReactConfig({languageServices:a,outDir:f,filename:E});await vite.build({...y,logLevel:"warn"});const d=await a.layoutedModel();await fsPromises.writeFile(path$1.resolve(f,path$1.basename(l,w)+(w===".mjs"?".d.mts":".d.ts")),Y(d)),LikeC4.H.box({message:LikeC4.r(`
|
|
428
|
+
${LikeC4.u.dim("Source generated:")}
|
|
429
429
|
${path$1.relative(process$1.cwd(),l)}
|
|
430
430
|
|
|
431
|
-
${LikeC4.
|
|
432
|
-
${LikeC4.
|
|
433
|
-
`).trim(),style:{padding:2,borderColor:"green",borderStyle:"rounded"}}),s.stopAndLog()}async function webcomponentHandler({path:i,useDotBin:e,webcomponentPrefix:t="likec4",outfile:n}){const s=LikeC4.
|
|
434
|
-
${LikeC4.
|
|
431
|
+
${LikeC4.u.dim("How to use:")}
|
|
432
|
+
${LikeC4.u.underline("https://likec4.dev/tooling/code-generation/react/")}
|
|
433
|
+
`).trim(),style:{padding:2,borderColor:"green",borderStyle:"rounded"}}),s.stopAndLog()}async function webcomponentHandler({path:i,useDotBin:e,webcomponentPrefix:t="likec4",outfile:n}){const s=LikeC4.h("c4:codegen"),a=LikeC4.s(s),o=await LikeC4.L.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});s.info(`${LikeC4.u.dim("format")} ${LikeC4.u.green("webcomponent")}`);const l=await o.diagrams();if(!LikeC4.v(l,1))throw s.warn("no views found"),process.exitCode=1,new Error("no views found");l.forEach(Q=>{Q.hasLayoutDrift&&s.warn(LikeC4.u.yellow("drift detected, manual layout can not be applied, view:")+" "+LikeC4.u.red(Q.id))});let f=path$1.resolve(o.workspace,"likec4-views.js");if(n&&(f=path$1.isAbsolute(n)?n:path$1.resolve(n),fs.existsSync(n)&&(await fsPromises.stat(n)).isDirectory()))throw new Error(`output file is a directory: ${n}`);LikeC4.H.debug(`${LikeC4.u.dim("outfilepath")} ${f}`);const E=path$1.basename(f);LikeC4.H.debug(`${LikeC4.u.dim("filename")} ${E}`);const w=path$1.extname(E).toLocaleLowerCase();if(w!==".js"&&w!==".mjs")throw LikeC4.H.warn(`output file ${n} has extension "${w}"`),new Error(`output file ${n} must be a .js or .mjs`);const y=await mkTempPublicDir();LikeC4.H.debug(`${LikeC4.u.dim("created temp public")} ${y}`);const d=await viteWebcomponentConfig({languageServices:o,outDir:y,filename:E,webcomponentPrefix:t,base:"/"});LikeC4.H.debug(`${LikeC4.u.dim("vite build webcomponent")}`),await vite.build({...d,logLevel:"warn"});const H=path$1.resolve(y,E);if(!fs.existsSync(H))throw new Error(`output file not found: ${H}`);await fsPromises.mkdir(path$1.dirname(f),{recursive:!0}),await fsPromises.copyFile(H,f),s.info(`${LikeC4.u.dim("generated")} ${f}`),LikeC4.H.debug(`${LikeC4.u.dim("remove temp public")}`),await fsPromises.rm(y,{recursive:!0,force:!0}),LikeC4.H.box(LikeC4.r(`
|
|
434
|
+
${LikeC4.u.dim("Webcomponents generated to:")}
|
|
435
435
|
${path$1.relative(process$1.cwd(),f)}
|
|
436
436
|
|
|
437
|
-
${LikeC4.
|
|
438
|
-
${LikeC4.
|
|
439
|
-
`)),a.stopAndLog()}const codegenCmd={command:"codegen <command> [path]",aliases:["generate","gen"],describe:"Generate various artifacts from LikeC4 sources",builder:i=>i.positional("path",path).command("react [path]","generate react component to render likec4 view",e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.jsx, .mjs or .js)",normalize:!0,coerce:require$$0.resolve}).option("use-dot",useDotBin),async e=>{await reactHandler({useDotBin:e.useDotBin,path:e.path,outfile:e.outfile})}).command({command:"webcomponent [path]",aliases:["wc","webcomp"],describe:"generate js with webcomponents",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.mjs or .js)",normalize:!0,coerce:require$$0.resolve}).option("webcomponent-prefix",webcomponentPrefix).option("use-dot",useDotBin),handler:async e=>{await webcomponentHandler({useDotBin:e.useDotBin,path:e.path,outfile:e.outfile,webcomponentPrefix:e.webcomponentPrefix})}}).command({command:"model [path]",aliases:["ts"],describe:"generate LikeC4Model (.ts)",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.ts)",normalize:!0,coerce:require$$0.resolve}).option("use-dot",useDotBin),handler:async e=>{await modelHandler({path:e.path,useDotBin:e.useDotBin,outfile:e.outfile})}}).command({command:"views-data [path]",aliases:["views"],describe:"generate likec4 views data (.ts)",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> output .ts file",normalize:!0,coerce:require$$0.resolve}).option("use-dot",useDotBin),handler:async e=>{await legacyHandler({format:"views",path:e.path,useDotBin:e.useDotBin,outfile:e.outfile})}}).command({command:"dot [path]",describe:"generate graphviz files (.dot)",builder:e=>e.option("outdir",outdir).option("use-dot",useDotBin),handler:async e=>{await legacyHandler({format:"dot",path:e.path,useDotBin:e.useDotBin,outdir:e.outdir})}}).command({command:"d2 [path]",describe:"generate D2 files (.d2)",builder:e=>e.option("outdir",outdir).option("use-dot",useDotBin),handler:async e=>{await legacyHandler({format:"d2",path:e.path,useDotBin:e.useDotBin,outdir:e.outdir})}}).command({command:"mermaid [path]",aliases:["mmd"],describe:"generate Mermaid files (.mmd)",builder:e=>e.option("outdir",outdir).option("use-dot",useDotBin),handler:async e=>{await legacyHandler({format:"mermaid",useDotBin:e.useDotBin,path:e.path,outdir:e.outdir})}}).epilog(`${LikeC4.
|
|
437
|
+
${LikeC4.u.dim("Setup and usage instructions:")}
|
|
438
|
+
${LikeC4.u.blue("https://likec4.dev/tooling/code-generation/webcomponent/")}
|
|
439
|
+
`)),a.stopAndLog()}const codegenCmd={command:"codegen <command> [path]",aliases:["generate","gen"],describe:"Generate various artifacts from LikeC4 sources",builder:i=>i.positional("path",path).command("react [path]","generate react component to render likec4 view",e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.jsx, .mjs or .js)",normalize:!0,coerce:require$$0.resolve}).option("use-dot",useDotBin),async e=>{await reactHandler({useDotBin:e.useDotBin,path:e.path,outfile:e.outfile})}).command({command:"webcomponent [path]",aliases:["wc","webcomp"],describe:"generate js with webcomponents",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.mjs or .js)",normalize:!0,coerce:require$$0.resolve}).option("webcomponent-prefix",webcomponentPrefix).option("use-dot",useDotBin),handler:async e=>{await webcomponentHandler({useDotBin:e.useDotBin,path:e.path,outfile:e.outfile,webcomponentPrefix:e.webcomponentPrefix})}}).command({command:"model [path]",aliases:["ts"],describe:"generate LikeC4Model (.ts)",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.ts)",normalize:!0,coerce:require$$0.resolve}).option("use-dot",useDotBin),handler:async e=>{await modelHandler({path:e.path,useDotBin:e.useDotBin,outfile:e.outfile})}}).command({command:"views-data [path]",aliases:["views"],describe:"generate likec4 views data (.ts)",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> output .ts file",normalize:!0,coerce:require$$0.resolve}).option("use-dot",useDotBin),handler:async e=>{await legacyHandler({format:"views",path:e.path,useDotBin:e.useDotBin,outfile:e.outfile})}}).command({command:"dot [path]",describe:"generate graphviz files (.dot)",builder:e=>e.option("outdir",outdir).option("use-dot",useDotBin),handler:async e=>{await legacyHandler({format:"dot",path:e.path,useDotBin:e.useDotBin,outdir:e.outdir})}}).command({command:"d2 [path]",describe:"generate D2 files (.d2)",builder:e=>e.option("outdir",outdir).option("use-dot",useDotBin),handler:async e=>{await legacyHandler({format:"d2",path:e.path,useDotBin:e.useDotBin,outdir:e.outdir})}}).command({command:"mermaid [path]",aliases:["mmd"],describe:"generate Mermaid files (.mmd)",builder:e=>e.option("outdir",outdir).option("use-dot",useDotBin),handler:async e=>{await legacyHandler({format:"mermaid",useDotBin:e.useDotBin,path:e.path,outdir:e.outdir})}}).epilog(`${LikeC4.u.bold("Examples:")}
|
|
440
440
|
likec4 gen react -o dist/likec4-views.mjs ./src/likec4
|
|
441
441
|
likec4 gen model -o likec4-model.ts
|
|
442
442
|
likec4 gen webcomponent -o likec4.js --webcomponent-prefix c4 --use-dot-bin ./src
|
|
@@ -444,17 +444,17 @@ if (import.meta.hot) {
|
|
|
444
444
|
likec4 gen ts --outfile ../likec4.ts
|
|
445
445
|
likec4 gen mmd --outdir assets/
|
|
446
446
|
likec4 gen dot -o out .
|
|
447
|
-
`),handler:()=>{}};async function handler$2({path:i,useDotBin:e,outfile:t}){const n=LikeC4.
|
|
448
|
-
${LikeC4.
|
|
449
|
-
${LikeC4.
|
|
450
|
-
|
|
451
|
-
${LikeC4.
|
|
452
|
-
${LikeC4.
|
|
453
|
-
`),handler:async e=>{core.invariant(e.timeout>=1,"timeout must be >= 1"),core.invariant(e["max-attempts"]>=1,"max-attempts must be >= 1"),await pngHandler({path:e.path,useDotBin:e.useDotBin,output:e.output,timeoutMs:e.timeout*1e3,maxAttempts:e.maxAttempts,ignore:e.ignore===!0,outputType:e.flat?"flat":"relative",serverUrl:e.serverUrl,theme:e.theme??"light"})}}).command({command:"json [path]",describe:"export model to JSON",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> output .json file",default:"likec4.json",normalize:!0,coerce:path$1.resolve}).option("use-dot",useDotBin).epilog(`${LikeC4.
|
|
454
|
-
${LikeC4.
|
|
455
|
-
${LikeC4.
|
|
456
|
-
|
|
457
|
-
${LikeC4.
|
|
458
|
-
${LikeC4.
|
|
459
|
-
`),handler:async e=>{await handler$2({path:e.path,useDotBin:e.useDotBin,outfile:e.outfile})}}).updateStrings({"Commands:":LikeC4.
|
|
460
|
-
if not specified search in current directory`,normalize:!0}).options({output:{alias:"o",type:"string",desc:"output directory from production build",normalize:!0},base:{type:"string",desc:"base url the app is being served from"}}).coerce(["path","output"],require$$0.resolve).default("path",require$$0.resolve("."),"."),async handler(i){await handler$1(i)}};async function handler({path:i,useDotBin:e,webcomponentPrefix:t,useHashHistory:n,useOverview:s=!1,base:a}){const o=await LikeC4.L.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"}),l=await fsPromises.mkdtemp(path$1.join(os.tmpdir(),".likec4-assets-"));process.env.NODE_ENV="development";const f=await viteDev({buildWebcomponent:!0,hmr:!0,base:a,webcomponentPrefix:t,languageServices:o,useHashHistory:n,useOverviewGraph:s,likec4AssetsDir:l});if(f.config.logger.clearScreen("info"),printServerUrls(f),!s)return;const E=await o.diagrams();if(LikeC4.v(E,1)){const w=LikeC4.
|
|
447
|
+
`),handler:()=>{}};async function handler$2({path:i,useDotBin:e,outfile:t}){const n=LikeC4.h("c4:export"),s=LikeC4.s(n),a=await(await LikeC4.L.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"})).layoutedModel();path$1.extname(t)!==".json"&&(t=t+".json"),await fsPromises.mkdir(path$1.dirname(t),{recursive:!0});const o=JSON.stringify(a.$model,null,2);await fsPromises.writeFile(t,o),n.info(`${LikeC4.u.dim("generated")} ${path$1.relative(process.cwd(),t)}`),s.stopAndLog("\u2713 export in ")}const exportCmd={command:"export <format> [path]",describe:"Export to images or JSON",builder:i=>i.usage(`${LikeC4.u.bold("Usage:")} $0 export <format> [path]`).positional("path",path).command({command:"png [path]",describe:"export views to PNG",builder:e=>e.option("output",outdir).option("theme",{choices:["light","dark"],desc:"color-scheme to use, default is light"}).option("flat",{boolean:!0,type:"boolean",desc:"ignore sources structure and export all PNGs in output directory"}).option("use-dot",useDotBin).options({ignore:{boolean:!0,alias:"i",desc:"continue if some views failed to export"},timeout:{type:"number",alias:"t",desc:"(sec) timeout for playwright ",default:10},"max-attempts":{type:"number",describe:"",desc:"(number) max attempts to export failing view",default:3},"server-url":{type:"string",desc:"use this url instead of starting new likec4 server"}}).epilog(`${LikeC4.u.bold("Examples:")}
|
|
448
|
+
${LikeC4.u.green("$0 export png")}
|
|
449
|
+
${LikeC4.u.gray("Search for likec4 files in current directory and output PNG next to sources")}
|
|
450
|
+
|
|
451
|
+
${LikeC4.u.green("$0 export png --theme dark -o ./png src/likec4 ")}
|
|
452
|
+
${LikeC4.u.gray("Search for likec4 files in src/likec4 and output PNG with dark theme to png folder")}
|
|
453
|
+
`),handler:async e=>{core.invariant(e.timeout>=1,"timeout must be >= 1"),core.invariant(e["max-attempts"]>=1,"max-attempts must be >= 1"),await pngHandler({path:e.path,useDotBin:e.useDotBin,output:e.output,timeoutMs:e.timeout*1e3,maxAttempts:e.maxAttempts,ignore:e.ignore===!0,outputType:e.flat?"flat":"relative",serverUrl:e.serverUrl,theme:e.theme??"light"})}}).command({command:"json [path]",describe:"export model to JSON",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> output .json file",default:"likec4.json",normalize:!0,coerce:path$1.resolve}).option("use-dot",useDotBin).epilog(`${LikeC4.u.bold("Examples:")}
|
|
454
|
+
${LikeC4.u.green("$0 export json")}
|
|
455
|
+
${LikeC4.u.gray("Search for likec4 files in current directory and output JSON to likec4.json")}
|
|
456
|
+
|
|
457
|
+
${LikeC4.u.green("$0 export json -o ./generated/likec4.json src/likec4 ")}
|
|
458
|
+
${LikeC4.u.gray("Search for likec4 files in src/likec4 and output JSON to generated/likec4.json")}
|
|
459
|
+
`),handler:async e=>{await handler$2({path:e.path,useDotBin:e.useDotBin,outfile:e.outfile})}}).updateStrings({"Commands:":LikeC4.u.bold("Formats:")}),handler:()=>{}};async function vitePreview(i){const{isDev:e,...t}=await viteConfig({...i,likec4AssetsDir:"",webcomponentPrefix:void 0}),n=await getPorts({port:portNumbers(62001,62010)}),s=i?.open??!1;return await vite.preview({...t,mode:"production",preview:{host:"0.0.0.0",port:n,open:s}})}async function handler$1({path:i,output:e,base:t}){const n=await LikeC4.L.fromWorkspace(i,{logger:"vite"}),s=await vitePreview({base:t,languageServices:n,outputDir:e,open:!0});printServerUrls(s)}const previewCmd={command:"preview [path]",describe:"Start local server to preview production build",builder:i=>i.positional("path",{type:"string",desc:`Directory with LikeC4 source files
|
|
460
|
+
if not specified search in current directory`,normalize:!0}).options({output:{alias:"o",type:"string",desc:"output directory from production build",normalize:!0},base:{type:"string",desc:"base url the app is being served from"}}).coerce(["path","output"],require$$0.resolve).default("path",require$$0.resolve("."),"."),async handler(i){await handler$1(i)}};async function handler({path:i,useDotBin:e,webcomponentPrefix:t,useHashHistory:n,useOverview:s=!1,base:a}){const o=await LikeC4.L.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"}),l=await fsPromises.mkdtemp(path$1.join(os.tmpdir(),".likec4-assets-"));process.env.NODE_ENV="development";const f=await viteDev({buildWebcomponent:!0,hmr:!0,base:a,webcomponentPrefix:t,languageServices:o,useHashHistory:n,useOverviewGraph:s,likec4AssetsDir:l});if(f.config.logger.clearScreen("info"),printServerUrls(f),!s)return;const E=await o.diagrams();if(LikeC4.v(E,1)){const w=LikeC4.h("c4:export"),y=resolveServerUrl(f);if(!y){w.error("no preview server url");return}w.info(LikeC4.u.cyan("wait 5sec before generating previews")),await core.delay(5e3);try{await exportViewsToPNG({serverUrl:y,logger:w,views:E,theme:"light",output:l,outputType:"flat"}),await core.delay(1e3),w.info(LikeC4.u.yellow("Note: changes in sources do not trigger preview updates, restart is required"))}catch(d){w.error(LikeC4.u.red("Failed to generate previews")),w.error(d)}}else f.config.logger.warn("no views found, no previews generated")}const serveCmd={command:"start [path]",aliases:["serve","dev"],describe:"Start local dev server to preview LikeC4 views",builder:i=>i.positional("path",path).option("base",base).option("webcomponent-prefix",webcomponentPrefix).option("use-hash-history",useHashHistory).option("use-overview",useOverview).option("use-dot",useDotBin),handler:async i=>{await handler({path:i.path,useDotBin:i["use-dot"],base:i.base,useOverview:i["use-overview"]??!1,webcomponentPrefix:i["webcomponent-prefix"],useHashHistory:i["use-hash-history"]})}};LikeC4.H.level=LikeC4.x.debug,LikeC4.H.wrapConsole();const g=Yargs(hideBin(process$1.argv)).scriptName("likec4").usage("Usage: $0 <command>").command(serveCmd).command(buildCmd).command(codegenCmd).command(exportCmd).command(previewCmd).help("help").version(LikeC4.y).alias("v","version").alias("h","help").demandCommand(1,"Please run with valid command").strict().recommendCommands().showHelpOnFail(!0,"Something is wrong, run with --help").updateStrings({"Options:":LikeC4.u.bold("Options:"),"Positionals:":LikeC4.u.bold("Arguments:"),"Commands:":LikeC4.u.bold("Commands:"),"Examples:":LikeC4.u.bold("Examples:")}).wrap(LikeC4.o(process$1.stdout.columns-20,{min:80,max:120})).parseAsync();g.catch(()=>process$1.exit(1)),process.on("unhandledRejection",i=>{LikeC4.H.error(i)});
|