UNPKG

imba

Version:

Intuitive and powerful language for building webapps that fly

17 lines (13 loc) 46.8 kB
var Pr=Object.create;var G=Object.defineProperty;var Cr=Object.getOwnPropertyDescriptor;var Er=Object.getOwnPropertyNames;var jr=Object.getPrototypeOf,Rr=Object.prototype.hasOwnProperty;var Fr=(t,e,r)=>e in t?G(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var kr=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Dr=(t,e)=>{for(var r in e)G(t,r,{get:e[r],enumerable:!0})},Ze=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Er(e))!Rr.call(t,i)&&i!==r&&G(t,i,{get:()=>e[i],enumerable:!(n=Cr(e,i))||n.enumerable});return t};var y=(t,e,r)=>(r=t!=null?Pr(jr(t)):{},Ze(e||!t||!t.__esModule?G(r,"default",{value:t,enumerable:!0}):r,t)),Ar=t=>Ze(G({},"__esModule",{value:!0}),t);var M=(t,e,r)=>Fr(t,typeof e!="symbol"?e+"":e,r);var Yt=kr((be,Xt)=>{(function(t,e){typeof be=="object"&&typeof Xt<"u"?e(be):typeof define=="function"&&define.amd?define(["exports"],e):(t=t||self,e(t.sourcemapCodec={}))})(be,function(t){"use strict";for(var e={},r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n=0;n<r.length;n++)e[r.charCodeAt(n)]=n;function i(o){for(var c=[],f=[],p=[0,0,0,0,0],m=0,d=0,g=0,b=0;d<o.length;d++){var v=o.charCodeAt(d);if(v===44)s(f,p,m),m=0;else if(v===59)s(f,p,m),m=0,c.push(f),f=[],p[0]=0;else{var $=e[v];if($===void 0)throw new Error("Invalid character ("+String.fromCharCode(v)+")");var x=$&32;if($&=31,b+=$<<g,x)g+=5;else{var A=b&1;b>>>=1,A&&(b=b===0?-2147483648:-b),p[m]+=b,m++,b=g=0}}}return s(f,p,m),c.push(f),c}function s(o,c,f){f===4?o.push([c[0],c[1],c[2],c[3]]):f===5?o.push([c[0],c[1],c[2],c[3],c[4]]):f===1&&o.push([c[0]])}function a(o){for(var c=0,f=0,p=0,m=0,d="",g=0;g<o.length;g++){var b=o[g];if(g>0&&(d+=";"),b.length!==0){for(var v=0,$=[],x=0,A=b;x<A.length;x++){var I=A[x],S=l(I[0]-v);v=I[0],I.length>1&&(S+=l(I[1]-c)+l(I[2]-f)+l(I[3]-p),c=I[1],f=I[2],p=I[3]),I.length===5&&(S+=l(I[4]-m),m=I[4]),$.push(S)}d+=$.join(",")}}return d}function l(o){var c="";o=o<0?-o<<1|1:o<<1;do{var f=o&31;o>>>=5,o>0&&(f|=32),c+=r[f]}while(o>0);return c}t.decode=i,t.encode=a,Object.defineProperty(t,"__esModule",{value:!0})})});var ni={};Dr(ni,{default:()=>Ir,getCacheDir:()=>$r,getImbaHash:()=>_r,setupVite:()=>hr,vitePluginEnvironment:()=>He});module.exports=Ar(ni);var Q=Symbol.for("#__init__"),tt=Symbol.for("#__initor__"),Mr=Symbol.for("#__inited__"),et=Symbol.for("#__hooks__");var Tr=Symbol.for("#meta"),ye=Symbol.for("imba");var Wr=Symbol.for("#matcher");var T={IsExtension:1,IsTag:2,HasDescriptors:4,HasSuperCalls:8,HasConstructor:16,HasFields:32,HasMixins:64,HasInitor:128,HasDecorators:256,IsObjectExtension:512,IsMixin:1024},z=new Map,Ur=globalThis[ye]||(globalThis[ye]={counter:0,classes:z});function V(t,e={}){return z.has(t)||z.set(t,{symbol:Symbol(t.name),parent:Object.getPrototypeOf(t.prototype)?.constructor,for:t,uses:null,inits:null,id:Ur.counter++,...e}),z.get(t)}function rt(t,e){return t==e||e?.[Wr]?.(t)}function E(t){return t?.toIterable?.()||t}function Lr(t,e){if(!t||!e)return!1;if(t.get)return e.get===t.get;if(t.set)return e.set===t.set;if(t.value)return t.value===e.value}function nt(t,e,r,n={}){let i=t.constructor;!r&&e&&(r=Object.getOwnPropertyDescriptors(e),delete r.constructor,r[Q]&&(console.warn(`Cannot define plain fields when extending class ${i.name}`),delete r[Q]));let s=V(i);if(s&&s.augments){let a=new Map;for(let l of Object.keys(r)){let o=Object.getOwnPropertyDescriptor(t,l);for(let c of s.augments){let f=a.get(c);f||a.set(c,f={});let p=Object.getOwnPropertyDescriptor(c.prototype,l);p&&!Lr(o,p)?console.warn("wont extend",l,p,o):f[l]=r[l]}}for(let[l,o]of a)Object.keys(o).length&&nt(l.prototype,null,o)}return Object.defineProperties(t,r),t}function ve(t,e){let r=V(t),n=V(e),i=n.parent;for(;i&&V(i)?.flags&T.IsMixin;){ve(t,i),i=null;break}if(i&&!(t.prototype instanceof i))throw new Error(`Mixin ${e.name} has superclass not present in target class`);if(!n.augments){n.augments=new Set;let a=n.ref=Symbol(e.name),l=Object[Symbol.hasInstance];e.prototype[a]=!0,Object.defineProperty(e,Symbol.hasInstance,{value:function(o){return this===e?o&&!!o[a]:l.call(this,o)}})}if(t.prototype[n.ref])return t;if(n.uses)for(let a of n.uses)ve(t,a);n.augments.add(t),r.uses||(r.uses=[]),r.uses.push(e);let s=Object.getOwnPropertyDescriptors(e.prototype);return delete s.constructor,s[Q]&&(r.inits||(r.inits=[]),r.inits.push(e.prototype[Q]),delete s[Q]),Object.defineProperties(t.prototype,s),e?.mixed instanceof Function&&e.mixed(t),t}var W={cache:{},self:null,target:null,proxy:new Proxy({},{apply:(t,e,r)=>Reflect.apply(W.target,e,r),get:(t,e)=>{let r=Reflect.get(W.target,e,W.self);return r instanceof Function?r.bind(W.self):r},set:(t,e,r,n)=>Reflect.set(W.target,e,r,W.self)})};function U(t,e,r,n,i=null){let s=Object.getPrototypeOf(t.prototype),a=(n&(T.HasMixins|T.IsExtension))==T.HasMixins,l;if(a&&(z.set(t,z.get(s.constructor)),s=Object.getPrototypeOf(s)),i){let c=n&T.IsObjectExtension?i:i.prototype,f=V(t);if(f.uses){i===c&&console.warn("Cannot extend object with mixins");for(let p of f.uses)ve(i,p)}return n&T.HasSuperCalls&&(W.cache[e]=Object.create(Object.getPrototypeOf(c),Object.getOwnPropertyDescriptors(c))),nt(c,t.prototype),i}let o=s?.constructor;if(l=V(t,{symbol:e}),Object.defineProperty(t,Tr,{value:l,enumerable:!1,configurable:!0}),r&&t.name!==r&&Object.defineProperty(t,"name",{value:r,configurable:!0}),l.flags=n,n&T.HasConstructor&&(t.prototype[tt]=e),l.uses)for(let c of l.uses)c.mixes?.(t);return o?.inherited instanceof Function&&o.inherited(t),t}function oe(t,e){t[tt]===e&&(t[Mr]?.(),t[et]&&t[et].inited(t))}var it=require("fs"),st=require("imba/compiler");function Nr(t,e){let r,n=(0,st.parseAsset)({body:t});return r=`export default /* @__PURE__ */ Object.assign({ type: 'svg' },`+JSON.stringify(n)+")"}function xe(t={}){let e=new Map;return{name:"vite-plugin-imba-svg",transform:async function(r,n,i){if(n.endsWith(".svg")){let s=e.get(n);if(!s){let a=(0,it.readFileSync)(n,"utf-8");s=await Nr(a,n),e.set(n,s)}return s}}}}var yr=require("vite"),vr=y(require("esbuild"));var F=require("path");var at=y(require("picomatch"),1);function zr(t){return Array.isArray(t)}function ot(t){return zr(t)?t:t==null?[]:[t]}var ae=function(e){return e.split(F.win32.sep).join(F.posix.sep)};function Vr(t,e){if(e===!1||(0,F.isAbsolute)(t)||t.startsWith("*"))return ae(t);let r=ae((0,F.resolve)(e||"")).replace(/[-^$*+?.()|[\]{}]/g,"\\$&");return F.posix.join(r,ae(t))}var lt=function(e,r,n){let i=n&&n.resolve,s=o=>o instanceof RegExp?o:{test:c=>{let f=Vr(o,i);return(0,at.default)(f,{dot:!0})(c)}},a=ot(e).map(s),l=ot(r).map(s);return function(c){if(typeof c!="string"||/\0/.test(c))return!1;let f=ae(c);for(let p=0;p<l.length;++p)if(l[p].test(f))return!1;for(let p=0;p<a.length;++p)if(a[p].test(f))return!0;return!a.length}},Br="break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public",Hr="arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl",qr=new Set(`${Br} ${Hr}`.split(" "));qr.add("");var we=require("vite"),ct=y(require("node:fs")),X=require("node:url"),le="/@fs/",Kr=process.platform==="win32";function Jr(t){let e=t.split("?",2),r=e[0],n=e[1];return{filename:r,rawQuery:n}}function Gr(t,e,r,n,i,s){let a=Yr(r);if(a.url||a.raw)return;let l=Zr(e,n),o=Xr(e,n,"style");return{id:t,filename:e,normalizedFilename:l,cssId:o,query:a,timestamp:i,ssr:s}}var Qr=/\?(?!.*[\/|\}])/;function ut(t){let[e,r]=t.split(Qr,2);return r?Object.fromEntries(new X.URLSearchParams(r)):null}function Xr(t,e,r){let n=["imba",`type=${r}`];return r==="style"&&n.push("lang.css"),en(t,e)?t=e+t:t.startsWith(le)&&(t=Kr?t.slice(le.length):t.slice(le.length-1)),`${t}?${n.join("&")}`}function Yr(t){let e=Object.fromEntries(new X.URLSearchParams(t));for(let r in e)e[r]===""&&(e[r]=!0);return e}function Zr(t,e){return tn((0,we.normalizePath)(t),e)}function en(t,e){return t.startsWith(le)?!1:ct.existsSync(e+t)}function tn(t,e){return t.startsWith(e+"/")?t.slice(e.length):t}function rn(t,e,r){let n=lt(t,e);return i=>n(i)&&r.some(s=>{let[a]=i.split("?",2);return a.endsWith(s)})}function ft(t){let{include:e,exclude:r,extensions:n,root:i}=t,s=(0,we.normalizePath)(i),a=rn(e,r,n);return(l,o,c=Date.now())=>{let{filename:f,rawQuery:p}=Jr(l);if(a(f))return Gr(l,f,p,s,c,o)}}var ce={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strike:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightΞred:[91,39],brightΞgreen:[92,39],brightΞyellow:[93,39],brightΞblue:[94,39],brightΞmagenta:[95,39],brightΞcyan:[96,39],brightΞwhite:[97,39],bgΞblack:[40,49],bgΞred:[41,49],bgΞgreen:[42,49],bgΞyellow:[43,49],bgΞblue:[44,49],bgΞmagenta:[45,49],bgΞcyan:[46,49],bgΞwhite:[47,49],bgΞgray:[100,49],bgΞgrey:[100,49],bgΞbrightΞred:[101,49],bgΞbrightΞgreen:[102,49],bgΞbrightΞyellow:[103,49],bgΞbrightΞblue:[104,49],bgΞbrightΞmagenta:[105,49],bgΞbrightΞcyan:[106,49],bgΞbrightΞwhite:[107,49]},pt={};for(let t=0,e=Object.keys(ce),r=e.length,n;t<r;t++){n=e[t];let[i,s]=ce[n];pt[n]=function(a){return"\x1B["+i+"m"+a+"\x1B["+s+"m"}}var Y=pt;for(let t=0,e=Object.keys(ce),r=e.length,n;t<r;t++){n=e[t];let[i,s]=ce[n];String.prototype.__defineGetter__(n,function(){return"\x1B["+i+"m"+this+"\x1B["+s+"m"})}String.prototype.f=function(t){return"\x1B[38;5;"+t+"m"+this+"\x1B[39m"};String.prototype.b=function(t){return"\x1B[48;5;"+t+"m"+this+"\x1B[49m"};var dt=y(require("debug")),Oe=["debug","info","warn","error","silent"],gt="vite-plugin-imba",_e={debug:{log:(0,dt.default)(`vite:${gt}`),enabled:!1,isDebug:!0},info:{color:Y.cyan,log:console.log,enabled:!0},warn:{color:Y.yellow,log:console.warn,enabled:!0},error:{color:Y.red,log:console.error,enabled:!0},silent:{enabled:!1}},mt="info";function nn(t){if(t===mt)return;let e=Oe.indexOf(t);if(e>-1){mt=t;for(let r=0;r<Oe.length;r++)_e[Oe[r]].enabled=r>=e}else ht(_e.error,`invalid log level: ${t} `)}function ht(t,e,r){t.enabled&&(t.isDebug?r!==void 0?t.log(e,r):t.log(e):(t.log(t.color(`${new Date().toLocaleTimeString()} [${gt}] ${e}`)),r&&t.log(r)))}function ue(t){let e=_e[t],r=ht.bind(null,e),n=new Set,i=function(s,a){n.has(s)||(n.add(s),r.apply(null,[s,a]))};return Object.defineProperty(r,"enabled",{get(){return e.enabled}}),Object.defineProperty(r,"once",{get(){return i}}),r}var u={debug:ue("debug"),info:ue("info"),warn:ue("warn"),error:ue("error"),setLevel:nn};function fe(t,e,r){let{emitCss:n,onwarn:i,isBuild:s}=r,a=!s&&r.experimental?.sendWarningsToBrowser,l=s?ln:an,o=[],c=e?.filter(m=>!sn(m,s,n)),f=on(e,s),p=[...c,...f];if(a){let m=l;l=d=>{o.push(d),m(d)}}if(p.forEach(m=>{i?i(m,l):l(m)}),a){let m={id:t.id,filename:t.filename,normalizedFilename:t.normalizedFilename,timestamp:t.timestamp,warnings:o,allWarnings:p,rawWarnings:e};u.debug(`sending imba:warnings message for ${t.normalizedFilename}`),r.server?.ws?.send("imba:warnings",m)}}function sn(t,e,r){return!r&&t.code==="css-unused-selector"||!e&&bt(t)}function bt(t){return t.code==="css-unused-selector"&&t.message.includes('"*"')}function on(t,e){let r=[];if(!e){let n=t.filter(i=>bt(i));if(n.length>0){let i=n[n.length-1];r.push({...i,code:"vite-plugin-imba-css-no-scopable-elements",message:"No scopable elements found in template. If you're using global styles in the style tag, you should move it into an external stylesheet file and import it in JS. See https://github.com/imbajs/vite-plugin-imba/blob/main/docs/faq.md#where-should-i-put-my-global-styles."})}}return r}function an(t){u.info.enabled&&u.info(Z(t))}function ln(t){u.warn.enabled&&u.warn(Z(t),t.frame)}function Z(t){let e=[];return t.filename&&e.push(t.filename),t.start&&e.push(":",t.start.line,":",t.start.column),t.message&&(e.length>0&&e.push(" "),e.push(t.message)),e.join("")}var wt=require("imba/compiler"),Ie=y(require("node:fs"));var yt=y(require("crypto")),$e=Object.create(null),cn=12;function vt(t){if($e[t])return $e[t];let e=yt.createHash("md5");e.update(t);let r=fn(e.digest("base64")).slice(0,cn);return $e[t]=r,r}var xt={"+":"-","/":"_","=":""},un=new RegExp(`[${Object.keys(xt).join("")}]`,"g");function fn(t){return t.replace(un,e=>xt[e])}var pn=/<script [^>]*lang=["']?([^"' >]+)["']?[^>]*>/,mn=(t,e)=>async function(n,i,s){let{filename:a,normalizedFilename:l,cssId:o,ssr:c}=n,{emitCss:f=!0}=s,p=[],m={...s.compilerOptions,filename:a,generate:c?"ssr":"dom",format:"esm",resolveColors:!0,sourcePath:a,vite:!0,sourcemap:s.compilerOptions.sourcemap??"extern",...t};if(s.hot&&s.emitCss){let h=`s-${vt(l)}`;u.debug(`setting cssHash ${h} for ${l}`),m.cssHash=()=>h}c&&m.enableSourcemap!==!1&&(typeof m.enableSourcemap=="object"?m.enableSourcemap.css=!1:m.enableSourcemap={js:!0,css:!1});let d=await s.experimental?.dynamicCompileOptions?.({filename:a,code:i,compileOptions:m});d&&u.debug.enabled&&u.debug(`dynamic compile options for ${a}: ${JSON.stringify(d)}`);let g=d?{...m,...d}:m;g.config=g,g.styles="extern",g.platform="browser",g.vite=!0;let b=n.query;g.platform=c?"node":"browser",b.worker?g.platform="worker":b.web&&(g.platform="browser"),s.server?.config?.mode=="test"&&s.server?.config?.test?.environment=="node"&&(g.platform="node");let v=globalThis.VITE_IMBA_CACHE,$=[],x=`${a}-${g.platform}-vite2`,A=Ie.default.existsSync(a)?Ie.default.statSync(a).mtimeMs:0,S=((h,_)=>{let O=(0,wt.compile)(h,_),j=O.sourcemap;return{js:{code:O.js,dependencies:[],map:j},css:{code:O.css},warnings:O.warnings,errors:O.errors}})(i,g);if(S.erroredΦ)throw S;return f&&S.css.code&&(S.js.code+=` /*__css_import__*/import ${JSON.stringify(o)}; `),!c&&e&&(S.js.code=e({id:a,compiledCode:S.js.code,hotOptions:s.hot,compiled:S,originalCode:i,compileOptions:g})),S.js.dependencies=p,{filename:a,normalizedFilename:l,lang:i.match(pn)?.[1]||"js",compiled:S,ssr:c,dependencies:p}};function Ot(t,e){return mn(e)}var Tt=require("vite");var $t=require("module"),pe=y(require("path")),ee=y(require("fs")),Se=require("url");var _t={},dn,Pe=["imba.config.mjs","imba.config.js","imbaconfig.json","imba.config.json"],gn=new Function("path","timestamp",'return import(path + "?t=" + timestamp).then(m => m.default)'),hn=new Function("path","timestamp",'return import(path + "?t=" + timestamp, {assert: {type: "json"}}).then(m => m.default)');async function It(t,e){if(e?.configFile===!1)return;let r=bn(t,e);if(r){let n;if(r.endsWith(".json"))try{let i=await hn((0,Se.pathToFileURL)(r).href,ee.default.statSync(r).mtimeMs);if(i!=null)return{...i,configFile:r};throw new Error(`invalid export in ${r}`)}catch(i){u.error(`failed to import config ${r}`,i),n=i}if(r.endsWith(".js")||r.endsWith(".mjs")||r.endsWith(".json"))try{let i=await gn((0,Se.pathToFileURL)(r).href,ee.default.statSync(r).mtimeMs);if(i!=null)return{...i,configFile:r};throw new Error(`invalid export in ${r}`)}catch(i){u.error(`failed to import config ${r}`,i),n=i}if(!r.endsWith(".mjs"))try{let i=_t.url?dn??(dn=(0,$t.createRequire)(_t.url)):require;delete i.cache[i.resolve(r)];let s=i(r);if(s!=null)return{...s,configFile:r};throw new Error(`invalid export in ${r}`)}catch(i){u.error(`failed to require config ${r}`,i),n||(n=i)}throw n}}function bn(t,e){let r=t?.root||process.cwd();if(e?.configFile){let n=pe.default.isAbsolute(e.configFile)?e.configFile:pe.default.resolve(r,e.configFile);if(!ee.default.existsSync(n))throw new Error(`failed to find imba config file ${n}.`);return n}else{let n=Pe.map(i=>pe.default.resolve(r,i)).filter(i=>ee.default.existsSync(i));if(n.length===0){u.debug(`no imba config found at ${r}`);return}else n.length>1&&u.warn(`found more than one imba config file, using ${n[0]}. you should only have one!`,n);return n[0]}}var yn=["module","jsnext:main","jsnext"],St=["imba",...yn],Ce=[],Pt=[];var Wt=y(require("path"));var L=y(require("path")),Ee=y(require("fs")),Ct=require("module");function je(t,e=!0){u.debug(`findImbaDependencies: searching imba dependencies in ${t}`);let r=L.default.join(t,"package.json");if(!Ee.default.existsSync(r)){if(e){let s=process.cwd();if(t!==s)return u.debug(`no package.json found in vite root ${t}`),je(s,!1)}return u.warn("no package.json found, findRootImbaDependencies failed"),[]}let n=Rt(t);if(!n)return[];let i=[...Object.keys(n.dependencies||{}),...Object.keys(n.devDependencies||{})].filter(s=>!$n(s));return Et(i,t)}function Et(t,e,r=[]){let n=[],i=(0,Ct.createRequire)(`${e}/package.json`),s=t.map(a=>jt(a,i)).filter(Boolean);for(let{pkg:a,dir:l}of s){let o=vn(a);if(o&&(n.push({name:a.name,type:o,pkg:a,dir:l,path:r}),o==="component-library"&&a.dependencies)){let c=Object.keys(a.dependencies),f=c.filter(p=>r.includes(p));f.length>0&&(u.warn.enabled&&u.warn("skipping circular imba dependencies in automated vite optimizeDeps handling",f.map(p=>r.concat(p).join(">"))),c=c.filter(p=>!r.includes(p))),r.length===3&&u.debug.once(`encountered deep imba dependency tree: ${r.join(">")}`),n.push(...Et(c,l,r.concat(a.name)))}}return n}function jt(t,e){try{let r=`${t}/package.json`,n=e(r);return{dir:L.default.dirname(e.resolve(r)),pkg:n}}catch(r){u.debug.once(`dependency ${t} does not export package.json`,r);try{let n=L.default.dirname(e.resolve(t));for(;n;){let i=Rt(n,!0);if(i&&i.name===t)return{dir:n,pkg:i};let s=L.default.dirname(n);if(s===n)break;n=s}}catch(n){u.debug.once(`error while trying to find package.json of ${t}`,n)}}u.debug.once(`failed to resolve ${t}`)}function Rt(t,e=!1){let r=L.default.join(t,"package.json");try{return JSON.parse(Ee.default.readFileSync(r,"utf-8"))}catch(n){!e&&u.warn.enabled&&u.warn(`failed to parse ${r}`,n)}}function vn(t){return xn(t)?"component-library":wn(t)?"js-library":void 0}function xn(t){return!!t.imba}function wn(t){return!!t.dependencies?.imba||!!t.peerDependencies?.imba}var On=["@lukeed/uuid","@playwright/test","@imbajs/vite-plugin-imba","@imbajs/kit","autoprefixer","cookie","dotenv","esbuild","eslint","jest","mdsvex","playwright","postcss","prettier","imba","imba-check","imba-hmr","imba-preprocess","tslib","typescript","vite","vitest","__vite-browser-external"],_n=["@fontsource/","@postcss-plugins/","@rollup/","@imbajs/adapter-","@types/","@typescript-eslint/","eslint-","jest-","postcss-plugin-","prettier-plugin-","rollup-plugin-","vite-plugin-"];function $n(t){return On.includes(t)||_n.some(e=>e.startsWith("@")?t.startsWith(e):t.substring(t.lastIndexOf("/")+1).startsWith(e))}function Ft(t,e){let r=jt(t,e);if(!r)return!1;let n=r.pkg;if(n.module||n.exports)return!1;if(n.main){let s=L.default.extname(n.main);return!s||s===".js"||s===".cjs"}else try{return e.resolve(`${t}/index.js`),!0}catch{return!1}}var Ut=require("module");var Sn=require("imba/compiler");var kt="Compilation Error";function me(t){if(!t?.errors?.length)return{name:"Compilation error",id:t._sourcePath,message:Z({message:`Compilation error: ${t.message}`})};let e=t?.errors?.length?t.errors[0]:{diagnostics:[{source:kt}],options:{filename:t._sourcePath},range:{start:{line:1,column:1}},message:t?.toString},n=`${e.source||e?.diagnostics[0]?.source||kt} error`,i=t.options.filename,{line:s,character:a}=e.range.start,l={line:s+1,column:a,file:i},o=Z({message:e.message}),c=t.sourceCode+` `,f=In(c,l);return{name:n,message:o,id:i,frame:f,code:c,loc:l}}function In(t,e){if(!t)return"";let n=t.split(` `).slice(e.line-2,e.line+2).map((i,s)=>`${e.line+s-2+1} |${i.replace(/\t/g," ")}`);return n.splice(2,0,`${" ".repeat(`${e.line}`.length)} |${" ".repeat(e.column)}^`),n.join(` `)}var Dt="vite-plugin-imba:facade";function Pn(t,e){let r=[],n=[],i=e.plugins.filter(o=>o?.imbaPreprocess);i.length>0&&(u.warn(`The following plugins use the deprecated 'plugin.imbaPreprocess' field. Please contact their maintainers and ask them to move it to 'plugin.api.imbaPreprocess': ${i.map(o=>o.name).join(", ")}`),i.forEach(o=>{o.api||(o.api={}),o.api.imbaPreprocess===void 0?o.api.imbaPreprocess=o.imbaPreprocess:u.error(`ignoring plugin.imbaPreprocess of ${o.name} because it already defined plugin.api.imbaPreprocess.`)}));let s=e.plugins.filter(o=>o?.api?.imbaPreprocess),a=[],l=[];for(let o of s)t.ignorePluginPreprocessors===!0||Array.isArray(t.ignorePluginPreprocessors)&&t.ignorePluginPreprocessors?.includes(o.name)?a.push(o):l.push(o);return a.length>0&&u.debug(`Ignoring imba preprocessors defined by these vite plugins: ${a.map(o=>o.name).join(", ")}`),l.length>0&&(u.debug(`Adding imba preprocessors defined by these vite plugins: ${l.map(o=>o.name).join(", ")}`),n.push(...s.map(o=>o.api.imbaPreprocess))),{prependPreprocessors:r,appendPreprocessors:n}}function Mt(t,e){let{prependPreprocessors:r,appendPreprocessors:n}=Pn(t,e);(r.length>0||n.length>0)&&(t.preprocess?Array.isArray(t.preprocess)?(t.preprocess.unshift(...r),t.preprocess.push(...n)):t.preprocess=[...r,t.preprocess,...n]:t.preprocess=[...r,...n]);let i=!!t.experimental?.generateMissingPreprocessorSourcemaps;t.preprocess&&i&&(t.preprocess=Array.isArray(t.preprocess)?t.preprocess.map((s,a)=>At(s,a)):At(t.preprocess,0))}function At(t,e){let r={};for(let[n,i]of Object.entries(t))r[n]=async s=>{let a=await i(s);if(a&&a.code!==s.content){let l=!1;a.map?a.map?.mappings===""&&(l=!0,u.warn.enabled&&u.warn.once(`preprocessor at index ${e} returned an invalid empty sourcemap for ${n} transform`,{filename:s.filename,type:n,processor:i.toString()})):(l=!0,u.warn.enabled&&u.warn.once(`preprocessor at index ${e} did not return a sourcemap for ${n} transform`,{filename:s.filename,type:n,processor:i.toString()}))}return a};return r}var Lt=y(require("lodash.mergewith")),Re=new Set(["include","exclude","emitCss","hot","ignorePluginPreprocessors","disableDependencyReinclusion","experimental","ssr"]),Nt=new Set(["extensions","compilerOptions","preprocess","onwarn"]),Cn=new Set(["configFile","kit",...Re,...Nt]);function zt(t){let e=Object.keys(t||{}).filter(r=>!Cn.has(r));e.length&&u.warn(`invalid plugin options "${e.join(", ")}" in inline config`,t)}function En(t){if(!t)return;let e=Object.keys(t).filter(o=>Re.has(o));if(e.length>0)throw new Error(`Invalid options in imba config. Move the following options into 'vitePlugin:{...}': ${e.join(", ")}`);if(!t.vitePlugin)return{compilerOptions:t};let r=t.vitePlugin,n=Object.keys(r),i=n.filter(o=>Nt.has(o));if(i.length>0)throw new Error(`Invalid options in imba config under vitePlugin:{...}', move them to the config root : ${i.join(", ")}`);let s=n.filter(o=>Object.prototype.hasOwnProperty.call(t,o));if(s.length>0)throw new Error(`Invalid duplicate options in imba config under vitePlugin:{...}', they are defined in root too and must only exist once: ${s.join(", ")}`);let a=n.filter(o=>!Re.has(o));a.length>0&&(u.warn(`ignoring unknown plugin options in imba config under vitePlugin:{...}: ${a.join(", ")}`),a.forEach(o=>{delete r[o]}));let l={...t,...r};return delete l.vitePlugin,{compilerOptions:l}}async function Vt(t={},e,r){let n={...e,root:Dn(e)},i={extensions:[".imba",".imba1"],emitCss:!0},s=En(await It(n,t)),a={root:n.root,isBuild:r.command==="build",isServe:r.command==="serve",isDebug:process.env.DEBUG!=null},l=Bt(i,s,t,a);return s?.configFile&&(l.configFile=s.configFile,l.config=s),l}function Bt(...t){let e={};for(let r of t.filter(Boolean))e=(0,Lt.default)(e,r,{arrayMerge:(n,i)=>i??n});return e}function Ht(t,e){let r={hot:e.isProduction?!1:{injectCss:!t.emitCss},compilerOptions:{css:!t.emitCss,dev:!e.isProduction}},n={root:e.root,isProduction:e.isProduction},i=Bt(r,t,n);return Fn(i),kn(i),Mt(i,e),jn(i),Rn(i),i}function jn(t){t.hot&&(t.compilerOptions.dev||(u.warn("hmr is enabled but compilerOptions.dev is false, forcing it to true"),t.compilerOptions.dev=!0),t.emitCss?(t.hot!==!0&&t.hot.injectCss&&(u.warn("hmr and emitCss are enabled but hot.injectCss is true, forcing it to false"),t.hot.injectCss=!1),t.compilerOptions.css&&(u.warn("hmr and emitCss are enabled but compilerOptions.css is true, forcing it to false"),t.compilerOptions.css=!1)):((t.hot===!0||!t.hot.injectCss)&&(u.warn("hmr with emitCss disabled requires option hot.injectCss to be enabled, forcing it to true"),t.hot===!0?t.hot={injectCss:!0}:t.hot.injectCss=!0),t.compilerOptions.css||(u.warn("hmr with emitCss disabled requires compilerOptions.css to be enabled, forcing it to true"),t.compilerOptions.css=!0)))}function Rn(t){t.isProduction&&(t.hot&&(u.warn("options.hot is enabled but does not work on production build, forcing it to false"),t.hot=!1),t.compilerOptions.dev&&(u.warn("you are building for production but compilerOptions.dev is true, forcing it to false"),t.compilerOptions.dev=!1))}function Fn(t){let e=["generate","format","filename"];t.hot&&t.emitCss&&e.push("cssHash");let n=Object.keys(t.compilerOptions||{}).filter(i=>e.includes(i));n.length&&(u.warn(`The following Imba compilerOptions are controlled by vite-plugin-imba and essential to its functionality. User-specified values are ignored. Please remove them from your configuration: ${n.join(", ")}`),n.forEach(i=>{delete t.compilerOptions[i]}))}function kn(t){if(t?.kit!=null){let e=t.kit.browser?.hydrate,r=e!==!1;t.compilerOptions.hydratable!=null&&t.compilerOptions.hydratable!==r&&u.warn(`Conflicting values "compilerOptions.hydratable: ${t.compilerOptions.hydratable}" and "kit.browser.hydrate: ${e}" in your imba config. You should remove "compilerOptions.hydratable".`),u.debug(`Setting compilerOptions.hydratable: ${r} for ImbaKit`),t.compilerOptions.hydratable=r}}function Dn(t){return(0,Tt.normalizePath)(t.root?Wt.default.resolve(t.root):process.cwd())}function qt(t,e){let r=je(t.root),n={resolve:{mainFields:[...St],dedupe:[...Ce,...Pt]}};return n.optimizeDeps=An(r,t,e.optimizeDeps),t.experimental?.prebundleImbaLibraries&&(n.optimizeDeps={...n.optimizeDeps,extensions:t.extensions??[".imba",".imba1"],esbuildOptions:{plugins:[{name:Dt,setup:()=>{}}]}}),n.ssr=Mn(r,t,e,n),n}function An(t,e,r){let n=[],i=["imba-hmr"],s=o=>n.includes(o)||r?.include?.includes(o),a=o=>i.includes(o)||r?.exclude?.some(c=>o===c||c.startsWith(`${o}/`));if(a("imba"))u.debug('"imba" is excluded in optimizeDeps.exclude, skipped adding it to include.');else{let o=Ce.filter(c=>c!=="imba/ssr");u.debug(`adding bare imba packages to optimizeDeps.include: ${o.join(", ")} `),n.push(...o.filter(c=>!s(c)))}if(e.experimental?.prebundleImbaLibraries)return{include:n,exclude:i};t=t.filter(o=>o.type==="component-library");let l=Array.from(new Set(t.map(o=>o.name))).filter(o=>!s(o));if(u.debug(`automatically excluding found imba dependencies: ${l.join(", ")}`),i.push(...l.filter(o=>!a(o))),e.disableDependencyReinclusion!==!0){let o=e.disableDependencyReinclusion||[];o.length>0&&u.debug("not reincluding transitive dependencies of",o);let c=t.filter(f=>!o.includes(f.name)&&a(f.name)).flatMap(f=>{let p=(0,Ut.createRequire)(`${f.dir}/package.json`);return Object.keys(f.pkg.dependencies||{}).filter(m=>!a(m)&&Ft(m,p)).map(m=>f.path.concat(f.name,m).join(" > "))});u.debug("reincluding transitive dependencies of excluded imba dependencies",c),n.push(...c)}return{include:n,exclude:i}}function Mn(t,e,r){let n=[];r.ssr?.external?.includes("imba")||n.push("imba",/^imba\//),n.push(...Array.from(new Set(t.map(s=>s.name))).filter(s=>!r.ssr?.external?.includes(s)));let i={noExternal:n,external:[]};return e.isServe&&(i.external=Array.from(new Set(t.flatMap(s=>Object.keys(s.pkg.dependencies||{})))).filter(s=>!i.noExternal.includes(s)&&!r.ssr?.external?.includes(s))),i}var de=class{constructor(){M(this,"_css",new Map);M(this,"_js",new Map);M(this,"_dependencies",new Map);M(this,"_dependants",new Map);M(this,"_resolvedImbaFields",new Map);M(this,"_errors",new Map)}update(e){this._errors.delete(e.normalizedFilename),this.updateCSS(e),this.updateJS(e),this.updateDependencies(e)}has(e){let r=e.normalizedFilename;return this._errors.has(r)||this._js.has(r)||this._css.has(r)}setError(e,r){this.remove(e,!0),this._errors.set(e.normalizedFilename,r)}updateCSS(e){this._css.set(e.normalizedFilename,e.compiled.css)}updateJS(e){e.ssr||this._js.set(e.normalizedFilename,e.compiled.js)}updateDependencies(e){let r=e.normalizedFilename,n=this._dependencies.get(r)||[],i=e.dependencies;this._dependencies.set(r,i);let s=n.filter(l=>!i.includes(l));i.filter(l=>!n.includes(l)).forEach(l=>{this._dependants.has(l)||this._dependants.set(l,new Set),this._dependants.get(l).add(e.filename)}),s.forEach(l=>{this._dependants.get(l).delete(e.filename)})}remove(e,r=!1){let n=e.normalizedFilename,i=!1;if(this._errors.delete(n)&&(i=!0),this._js.delete(n)&&(i=!0),this._css.delete(n)&&(i=!0),!r){let s=this._dependencies.get(n);s&&(i=!0,s.forEach(a=>{let l=this._dependants.get(a);l&&l.has(e.filename)&&l.delete(e.filename)}),this._dependencies.delete(n))}return i}getCSS(e){return this._css.get(e.normalizedFilename)}getJS(e){if(!e.ssr)return this._js.get(e.normalizedFilename)}getError(e){return this._errors.get(e.normalizedFilename)}getDependants(e){let r=this._dependants.get(e);return r?[...r]:[]}getResolvedImbaField(e,r){return this._resolvedImbaFields.get(this._getResolvedImbaFieldKey(e,r))}setResolvedImbaField(e,r=void 0,n){this._resolvedImbaFields.set(this._getResolvedImbaFieldKey(e,r),n)}_getResolvedImbaFieldKey(e,r){return r?`${r} > ${e}`:e}};var Fe=y(require("fs"));var ke=y(require("path"));function Kt(t,e,r){let{server:n,configFile:i}=t;if(!n)return;let{watcher:s,ws:a}=n,{root:l,server:o}=n.config,c=d=>{e.getDependants(d).forEach(b=>{Fe.default.existsSync(b)&&(u.debug(`emitting virtual change event for "${b}" because depdendency "${d}" changed`),s.emit("change",b))})},f=d=>{let g=r(d,!1);g&&e.remove(g)&&u.debug(`cleared VitePluginImbaCache for deleted file ${d}`)},p=d=>{if(o.middlewareMode){let g="Imba config change detected, restart your dev process to apply the changes.";u.info(g,d),a.send({type:"error",err:{message:g,stack:"",plugin:"vite-plugin-imba",id:d}})}else u.info(`imba config changed: restarting vite server. - file: ${d}`),n.restart()},m={add:[],change:[c],unlink:[f,c]};if(i!==!1){let d=Pe.map(v=>ke.default.join(l,v)),g=v=>{d.includes(v)&&p(v)},b=v=>{v===i&&p(v)};i?(m.change.push(b),m.unlink.push(b)):m.add.push(g)}Object.entries(m).forEach(([d,g])=>{g.length>0&&s.on(d,b=>g.forEach(v=>v(b)))})}function Jt(t,e,r){e&&!e.startsWith(r+"/")&&!e.includes("\0")&&Fe.default.existsSync(e)&&t.add(ke.default.resolve(e))}async function Gt(t,e,r,n,i){if(!n.has(r)){u.debug("handleHotUpdate called before initial transform for "+r.id);return}let{read:s,server:a}=e,l=n.getJS(r),o=n.getCSS(r),c=await s(),f;try{i.compilerOptions.sourcemap=!1,f=await t(r,c,i),n.update(f)}catch(x){throw n.setError(r,x),x}let p=new Set,m=a.moduleGraph.getModuleById(r.cssId),d=a.moduleGraph.getModuleById(r.id);m&&Wn(o,f.compiled.css)&&(u.debug("handleHotUpdate css changed for "+r.cssId),p.add(m));let b=d&&Un(l,f.compiled.js,r.filename);b&&(u.debug("handleHotUpdate js changed for "+r.id),p.add(d)),b||fe(r,f.compiled.warnings,i);let v=[...p].filter(Boolean),$=v.filter(function(x){return!!x.ssrTransformResult});return $.length>0&&(u.debug("invalidating modules "+$.map(function(x){return x.id}).join(", ")),$.forEach(function(x){return a.moduleGraph.invalidateModule(x)})),v.length>0&&u.debug("handleHotUpdate for "+r.id+" result: "+v.map(function(x){return x.id}).join(", ")),v}function Tn(t,e){return!t&&!e?!0:!t&&e||t&&!e?!1:t===e}function Wn(t,e){return!Tn(t?.code,e?.code)}function Un(t,e,r){try{return t=t.code.substring(0,t.code.lastIndexOf(` `)),e=e.code.substring(0,e.code.lastIndexOf(` `)),!rt(e,t)}catch{return!0}}var xr=y(require("node:url")),J=y(require("node:path")),se=y(require("node:fs")),wr=y(require("node:crypto"));var B=y(require("node:path")),he=y(require("node:fs")),te=y(require("node:url"));var Qt=y(require("lodash.mergewith")),Nn={},Ln=typeof __dirname<"u"?__dirname:B.default.dirname(te.default.fileURLToPath(Nn.url));var ge=B.default.join(Ln,"..","bin","./imba.config.mjs"),De=["imba","ts","mts","js","mjs","cjs"];async function H(t,e){e.command||(e.command="serve"),e.mode||(e.mode="development");let r=["client","server","test","testSetup","imba","root"];if(!r.includes(t))throw new Error("Unrecognized config type "+t+". Should be one of "+r);let n;for(let o=0,c=E(De),f=c.length;o<f;o++){let m="imba.config."+c[o],d=B.default.join(process.cwd(),m);he.default.existsSync(d)&&(n=d)}if(!(e.vite||n))return{};if(t=="test"){for(let o=0,c=E(De),f=c.length;o<f;o++){let p=c[o];if(p=="imba")continue;let m="vitest.config."+p,d=B.default.join(process.cwd(),m);if(he.default.existsSync(d))return d}for(let o=0,c=E(De),f=c.length;o<f;o++){let m="imba.config."+c[o],d=B.default.join(process.cwd(),m);if(he.default.existsSync(d)){let{default:g}=await import(String(te.default.pathToFileURL(d)));return typeof g=="function"&&(g=await g(e)),d}}return ge}if(n||(n=ge),n.endsWith("imba"))throw new Error(".imba config file not yet supported");let{default:i}=await import(String(te.default.pathToFileURL(n)));if(typeof i=="function"&&(i=await i({command:globalThis.command,mode:globalThis.mode})),t=="root")return i;let s=i[t];if(n==ge)return s;let{default:a}=await import(String(te.default.pathToFileURL(ge)));typeof a=="function"&&(a=await a({command:globalThis.command,mode:globalThis.mode}));let l=a[t];return s?(0,Qt.default)(l,s,function(o,c,f){if(Array.isArray(o)&&Array.isArray(c)){let p=c.flat(),m=o.flat();return p.concat(m).filter(function(g,b,v){return v.findLastIndex(function(x){return f=="plugins"?x?.name===g?.name:x===g})==b})}}):l}var ze=y(require("path")),ar=y(require("fs")),lr=require("crypto");var bs=y(Yt());function Zt(t="bcdefghijklmnopqrstuvwxyz"){let e={};for(let r=t.length,n=0,i=r-n;i>0?n<r:n>r;i>0?n++:n--)e[n.toString(t.length)]=t[n];return function(r){return r.toString(t.length).split("").map(function(n){return e[n]}).join("")}}var We=require("perf_hooks"),q=Symbol.for("#spinner"),zn=Symbol.for("#ctime"),er=Symbol.for("#IMBA_OPTIONS"),tr=Symbol.for("#prefix"),Ae=Symbol.for("#last"),re=process.platform!=="win32"||process.env.CI||process.env.TERM==="xterm-256color",Vn={info:(re?"ℹ":"i").brightΞyellow,success:(re?"✔":"√").green,warning:(re?"⚠":"!!").yellow,error:(re?"×":"✖").red,debug:(re?"ℹ":"i").blue},Bn={"-1":"socket",4:"ip4",6:"ip6"},rr=["debug","info","success","warning","error","silent"];function Hn(t){return t.replace(/https?\:[^\s\n\)\]]+/g,function(e){return e.brightΞblue}).replace(/^[\t\s]*\>[^\n]+/gm,function(e){return e.bold}).replace(/\t/g," ").replace(/^/gm," ")}function Me(t,...e){return t=t.replace(/\%([\w\.]+)/g,function(r,n){let i=e.shift(),s=String(i);if(n==="red")return s.brightΞred;if(n==="green")return s.green;if(n==="magenta")return s.brightΞmagenta;if(n==="cyan")return s.brightΞcyan;if(n==="dim")return s.dim;if(n==="d")return s.brightΞblue;if(n==="yellow"||n==="imba")return s.brightΞyellow;if(n==="path"||n==="bold")return s.bold;if(n==="ms")return(""+Math.round(i)+"ms").yellow;if(n==="kb")return(""+(i/1e3).toFixed(1)+"kb").dim;if(n==="ref")return("#"+(i.id||i)).brightΞyellow;if(n==="markdown")return Hn(i);if(n==="elapsed"){i!=null&&e.unshift(i);let a=We.performance.now();return(""+Math.round(a)+"ms").yellow}else return n==="heap"?(i!=null&&e.unshift(i),(""+(process.memoryUsage().heapUsed/1024/1024).toFixed(2)+"mb").yellow):n==="address"?i.port?[i.address||"http://localhost",i.port].join(":").brightΞblue:String(Bn[i.addressType]).brightΞblue:i}),[t,...e]}var nr=null,qn=null,ir=Symbol(),Ue=class Ue{static get main(){return qn||(qn=new this)}constructor({prefix:e=null,loglevel:r}={}){this[zn]=Date.now(),this.prefix=e,this.loglevel=r||process.env.IMBA_LOGLEVEL||globalThis[er]&&globalThis[er].loglevel||"info",oe(this,ir)}set prefix(e){this[tr]=e?Me(...e)[0]:""}get prefix(){return this[tr]}write(e,...r){if(rr.indexOf(e)<rr.indexOf(this.loglevel))return this;if(!r.length)return console.log();let n=Vn[e]||e,[i,...s]=Me(...r);return this.prefix&&(i=this.prefix+i),this[q]&&this[q].isSpinning?(e=="success"&&(this[q].clear(),console.log(n+" "+i,...s),this[q].frame()),this[q].text=i):console.log(n+" "+i,...s)}log(){let[e,...r]=Me(...arguments);return console.log(e,...r)}debug(){return this.write("debug",...arguments)}info(){return this.write("info",...arguments)}warn(){return this.write("warn",...arguments)}error(){return this.write("error",...arguments)}success(){return this.write("success",...arguments)}ts(){let e=We.performance.now(),r=this[Ae]?e-this[Ae]:0;return this.write("debug",...arguments,("+"+r.toFixed(1)+"ms").blue),this[Ae]=e}spinner(){}get[q](){return nr}get proxy(){let e=this.info;return e.info=this.info.bind(this),e.log=this.log.bind(this),e.warn=this.warn.bind(this),e.error=this.error.bind(this),e.debug=this.debug.bind(this),e.success=this.success.bind(this),e.ts=this.ts.bind(this),e.logger=this,e}async time(e,r){let n=Date.now();if(r){let i=await r();return this.info(""+e+" %ms",Date.now()-n),i}}};U(Ue,ir,"Logger",16);var Te=Ue,sr=new Te().proxy;var Kn=Symbol.for("#key"),Le={},Ne={},or=Symbol(),Ve=class Ve{constructor(e){this[Kn]=Symbol(),this.o=e,this.dir=this.o.cachedir,this.nodefs=this.o.volume||ar.default,this.aliaspath=this.dir&&ze.default.resolve(this.dir,".imba-aliases"),this.aliasmap=[],this.aliascache={},this.data={aliases:{},cache:{}},this.mintime=this.o.mtime||0,this.persistToDisk=!!this.dir,this.idFaucet=Zt(),this.preload(),oe(this,or)}preload(){if(!this.persistToDisk)return;this.nodefs.existsSync(this.dir)||this.nodefs.mkdirSync(this.dir);let e=this.nodefs.readdirSync(this.dir);for(let r=0,n=E(e),i=n.length;r<i;r++){let s=n[r];this.cache[s]={exists:1}}return this.nodefs.existsSync(this.aliaspath)||this.nodefs.appendFileSync(this.aliaspath,""),this.refreshAliasMap(),sr.ts("cache loaded"),this}setup(){return!0}save(){return this}deserialize(){return this}serialize(){return this}get cache(){var e;return(e=this.data).cache||(e.cache={})}get aliases(){var e;return(e=this.data).aliases||(e.aliases={})}alias(e){if(!this.aliases[e]){let r=Object.keys(this.aliases).length;this.aliases[e]=this.idFaucet(r)+"0"}return this.aliases[e]}normalizeKey(e){if(Le[e])return Le[e];let r=(0,lr.createHash)("sha1");return r.update(e),Le[e]=r.digest("hex")}fullKeyPath(e){return Ne[e]||(Ne[e]=ze.default.resolve(this.dir,e))}getKeyTime(e){e=this.normalizeKey(e);let r=this.cache[e];if(r&&r.time)return r.time;if(r&&r.exists&&this.persistToDisk){let n=this.fullKeyPath(e);return this.nodefs.statSync(n).mtimeMs}else return 0}refreshAliasMap(){return this.aliasmap=this.nodefs.readFileSync(this.aliaspath,"utf8").split(/\r?\n/)}getPathAlias(e){return this.getKeyAlias(e)}getKeyAlias(e){if(this.aliascache[e])return this.aliascache[e];let r=this.aliasmap.indexOf(e);if(r==-1&&(this.persistToDisk?(this.nodefs.appendFileSync(this.aliaspath,e+` `,"utf8"),this.refreshAliasMap()):this.aliasmap.push(e),r=this.aliasmap.indexOf(e)),r>=0)return this.aliascache[e]=this.idFaucet(r);throw console.log("key not added?",e,this.aliasmap),"could not add key to aliasmap"}async getKeyValue(e){let r=this.fullKeyPath(e),n=await this.nodefs.promises.readFile(r,"utf8");return JSON.parse(n)}setKeyValue(e,r){if(!this.persistToDisk)return;let n=this.fullKeyPath(e),i=JSON.stringify(r);return this.nodefs.promises.writeFile(n,i)}memo(e,r,n){var i=this;let s=this.normalizeKey(e);this.mintime>r&&(r=this.mintime);let a=this.cache[s];if(a&&a.time>=r)return a.promise;if(this.getKeyTime(e)>r&&!process.env.CI){let o=this.getKeyValue(s).catch(function(c){return console.warn("Error compiling file in getKeyValue name: "+e+", key: "+s,c),n().then(function(f){return i.setKeyValue(s,f)})});return a=this.cache[s]={time:Date.now(),promise:o},a.promise}else return a=this.cache[s]={time:Date.now(),promise:n()},a.promise.then(function(o){return i.setKeyValue(s,o)}),a.promise}};U(Ve,or,"Cache",16);var ne=Ve;var Be=require("path"),cr=require("vite");function Jn(t,e,r,n){return r.reduce((i,s)=>{let a=t[s]===void 0?n[s]:t[s];return a===void 0&&Qn(s),i[`${e}.${s}`]=JSON.stringify(a),i},{})}function Gn(t){return t===""?process.env:Object.fromEntries(Object.entries(process.env).filter(([e,r])=>e.startsWith(t)))}function Qn(t){throw new Error(`vite-plugin-environment: the \`${t}\` environment variable is undefined. You can pass an object with default values to suppress this warning. See https://github.com/ElMassimo/vite-plugin-environment for guidance.`)}function He(t,e={}){let{prefix:r="",defineOn:n="process.env",loadEnvFiles:i=!0}=e;return{name:"vite-plugin-environment",config({root:s=process.cwd(),envDir:a},{mode:l}){let o=(0,Be.resolve)(s);a=a?(0,Be.resolve)(o,a):o;let c=i?(0,cr.loadEnv)(l,a,r):Gn(r),f=t==="all"?Object.keys(c):Array.isArray(t)?t:Object.keys(t),p=t==="all"||Array.isArray(t)?{}:t;return{define:Jn(c,n,f,p)}}}}var Ge=y(require("path")),dr=y(require("vite"));var gr=y(require("node:fs")),Qe=y(require("get-port"));var ie=Symbol.for("#__listeners__");var qe=new Set,Xn=Symbol(),Ke=class Ke{static for(e){return new Proxy({},new this(e))}constructor(e){this.getter=e}get target(){return this.getter()}get(e,r){return this.target[r]}set(e,r,n){return this.target[r]=n,!0}};U(Ke,Xn,"LazyProxy",16);var ur=Ke;var fr=function(t,e,r){let n,i,s;for(;(n=r)&&(r=r.next);)(i=r.listener)&&(r.path&&i[r.path]?s=e?i[r.path].apply(i,e):i[r.path]():s=e?i.apply(r,e):i.call(r)),r.times&&--r.times<=0&&(n.next=r.next,r.listener=null)};function mr(t,e,r,n){let i,s,a;return i=t[ie]||(t[ie]={}),s=i[e]||(i[e]={}),a=s.tail||(s.tail=s.next={}),a.listener=r,a.path=n,s.tail=a.next={},a}function Yn(t,e,r){let n=mr(t,e,r);return n.times=1,n}function Zn(t,e,r,n){if(!r)return;let i,s,a=t[ie];if(a&&(i=a[e])){for(;(s=i)&&(i=i.next);)if(i==r||i.listener==r){s.next=i.next,i.listener=null;break}}}function ei(t,e,r=null){let n;(n=t[ie])&&(n[e]&&fr(e,r,n[e]),n.all&&fr(e,[e,r],n.all))}var ti=Symbol(),Je=class Je{emit(e,...r){return ei(this,e,r)}on(e,...r){return mr(this,e,...r)}once(e,...r){return Yn(this,e,...r)}un(e,...r){return Zn(this,e,...r)}};U(Je,ti,"Emitter",0);var pr=Je;var K;async function hr(t,e,r){globalThis.__vite__=!0,typeof e=="string"?e={mode:e}:typeof e=="function"&&(e={mode:"development"});let n=e.mode=="production"||e.prod==!0,i=n?"production":"development";if(!K){let a=await(0,Qe.default)({port:Qe.default.makeRange(24e3,26e3)}),l=await H("server",{command:"server",mode:i}),o=e.serverOptions||{server:{hmr:{port:a}}},f={...await H("client",{mode:i,vite:!0}),...o,appType:"custom",server:{...l.server,...o.server,middlewareMode:!0}};K=await dr.createServer(f)}let s=Ge.default.join(K.config.root,e.outDir||"dist","public");return n?(K.close().then(function(){return K=null}),globalThis.__vite_manifest__||(globalThis.__vite_manifest__=JSON.parse(gr.default.readFileSync(Ge.default.join(s,"manifest.json"),"utf-8"))),globalThis.IMBA_PUBDIR=s,r&&r(s),s):(t.use(function(a,l,o){return qe.add(a.url),o()}),t.use(K.middlewares),t.use(function(a,l,o){return qe.delete(a.url),o()}),s)}var ii={};var Or="virtual:imba/*?css",br="\0"+Or,Xe=xr.default.fileURLToPath(new URL(".",ii.url));function _r(){let t=wr.default.createHash("sha256"),e=se.default.readdirSync(Xe);e.sort();for(let r of E(e)){let n=J.default.join(Xe,r);if(J.default.extname(r)===".mjs"){let i=se.default.readFileSync(n);t.update(i)}}return t.digest("hex")}function $r(){let t=process.env.IMBA_CACHEDIR||J.default.resolve(Xe,".imba-cache");return se.default.existsSync(t)||(console.log("cache dir does not exist - create",t),se.default.mkdirSync(t)),t}var Qs=_r(),ri=$r();globalThis.VITE_IMBA_CACHE=new ne({cachedir:ri});function Ir(t={}){let e="vite-plugin-imba",r="pre",n,i,s,a,l={},o,c,f,p,m;zt(t);let d=new de,g=[];async function b(h,_){process.env.DEBUG?u.setLevel("debug"):h.logLevel&&u.setLevel(h.logLevel),m||(m=await H("imba",{vite:!0})||{}),s=await Vt(t,h,_);let O=qt(s,h);return u.debug("additional vite config",O),c=_.mode==="test",f=_.mode==="production",p=_.mode==="development",O}function v(h){return s=Ht(s,h),n=ft(s),i=Ot(s,m),a=h,l.options=s,u.debug("resolved options",s)}async function $(h,_,O){let j=!!O?.ssr,w=n(_,j);if(!w||w.query.imba)return;let P,C,R;try{R=await i(w,h,s)}catch(k){throw d.setError(w,k),me(k)}let{warnings:D,errors:N}=R.compiled;if(Array.isArray(D)&&D.length>0&&fe(w,D,s),Array.isArray(N)&&N.length>0)throw me({errors:N,options:{filename:_},sourceCode:h});if(d.update(R),R.dependencies.length&&s.server&&R.dependencies.forEach(function(k){return Jt(s.server.watcher,k,s.root)}),u.debug("transform returns compiled js for "+w.filename),w.query.iife){let k=R.compiled.js.code,Sr=(await vr.build({bundle:!0,platform:"browser",format:"iife",stdin:{contents:k,resolveDir:process.cwd()},write:!1})).outputFiles[0].text;R.compiled.js={code:"const body = "+JSON.stringify(Sr)+"; export default {body: body}; export {body}"}}return{...R.compiled.js,meta:{vite:{lang:R.lang}}}}async function x(h,_,O){let j=!!O?.ssr||s.ssr,w=n(h,j);if(h==Or||h=="*?css"||h=="*")return br;if(w?.query.imba)return w.query.type==="style"?(u.debug("resolveId resolved virtual css module "+w.cssId),w.cssId):(u.debug("resolveId resolved "+h),h);let P=ut(h,j);if(P?.external!==void 0){let C=[];for(let D=0,N=E(Object.keys(P)),Ye=N.length;D<Ye;D++){let k=N[D];k!="external"&&C.push(""+k+"="+D)}return C.length?h=h.split("?")[0]+("?"+C.join("&")):h=h.split("?")[0],{...await this.resolve(h,_,{skipSelf:!0,...O}),external:!0}}}function A(h,_){let O=!!_?.ssr;if(J.default.isAbsolute(h)){let w=new URL("file://"+h),P=new URLSearchParams(w.search);if(P.has("url")&&P.has("entry")){P.delete("url"),P.delete("entry"),w.search=P.toString();let C=(0,yr.normalizePath)(w.toString().replace("file://",""));return C=J.default.relative(a.root,C),"export default '"+C+"'"}}let j=n(h,!!O);if(br==h)return"export default ''";if(j){let{filename:w,query:P}=j;if(P.imba&&P.type==="style"){let C=d.getCSS(j);if(C)return u.debug("load returns css for "+w),C;console.log("cache empty: loading "+h)}if(a.assetsInclude(w))return u.debug("load returns raw content for "+w),fs.readFileSync(w,"utf-8")}}function I(h){return s.server=h,Kt(s,d,n)}async function S(h){if(!s.hot||!s.emitCss)return;let _=n(h.file,!1,h.timestamp);if(_)try{return await Gt(i,h,_,d,s)}catch(O){throw me(O)}}return g.push(xe()),g.push({name:"vite-plugin-imba",enforce:"pre",api:l,config:b,configResolved:v,transform:$,load:A,resolveId:x,configureServer:I,handleHotUpdate:S}),g}0&&(module.exports={getCacheDir,getImbaHash,setupVite,vitePluginEnvironment});