UNPKG

imba

Version:

Intuitive and powerful language for building webapps that fly

17 lines (13 loc) 46.5 kB
var Ir=Object.create;var ne=Object.defineProperty;var Pr=Object.getOwnPropertyDescriptor;var Cr=Object.getOwnPropertyNames;var Er=Object.getPrototypeOf,jr=Object.prototype.hasOwnProperty;var Rr=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Fr=(t,e)=>{for(var r in e)ne(t,r,{get:e[r],enumerable:!0})},Xe=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Cr(e))!jr.call(t,i)&&i!==r&&ne(t,i,{get:()=>e[i],enumerable:!(n=Pr(e,i))||n.enumerable});return t};var y=(t,e,r)=>(r=t!=null?Ir(Er(t)):{},Xe(e||!t||!t.__esModule?ne(r,"default",{value:t,enumerable:!0}):r,t)),kr=t=>Xe(ne({},"__esModule",{value:!0}),t);var Xt=Rr((he,Qt)=>{(function(t,e){typeof he=="object"&&typeof Qt<"u"?e(he):typeof define=="function"&&define.amd?define(["exports"],e):(t=t||self,e(t.sourcemapCodec={}))})(he,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=[],p=[],f=[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(p,f,m),m=0;else if(v===59)s(p,f,m),m=0,c.push(p),p=[],f[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),f[m]+=b,m++,b=g=0}}}return s(p,f,m),c.push(p),c}function s(o,c,p){p===4?o.push([c[0],c[1],c[2],c[3]]):p===5?o.push([c[0],c[1],c[2],c[3],c[4]]):p===1&&o.push([c[0]])}function a(o){for(var c=0,p=0,f=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 S=A[x],I=l(S[0]-v);v=S[0],S.length>1&&(I+=l(S[1]-c)+l(S[2]-p)+l(S[3]-f),c=S[1],p=S[2],f=S[3]),S.length===5&&(I+=l(S[4]-m),m=S[4]),$.push(I)}d+=$.join(",")}}return d}function l(o){var c="";o=o<0?-o<<1|1:o<<1;do{var p=o&31;o>>>=5,o>0&&(p|=32),c+=r[p]}while(o>0);return c}t.decode=i,t.encode=a,Object.defineProperty(t,"__esModule",{value:!0})})});var ti={};Fr(ti,{default:()=>$r,getCacheDir:()=>_r,getImbaHash:()=>Or,setupVite:()=>gr,vitePluginEnvironment:()=>Ve});module.exports=kr(ti);var q=Symbol.for("#__init__"),Ze=Symbol.for("#__initor__"),Dr=Symbol.for("#__inited__"),Ye=Symbol.for("#__hooks__");var Ar=Symbol.for("#meta"),be=Symbol.for("imba");var Mr=Symbol.for("#matcher");var si={SUPERCALLS:1<<3,CONSTRUCTOR:1<<4},ie={IsExtension:1<<0,IsTag:1<<1,HasDescriptors:1<<2,HasSuperCalls:1<<3,HasConstructor:1<<4,HasFields:1<<5,HasMixins:1<<6,HasInitor:1<<7,HasDecorators:1<<8,IsObjectExtension:1<<9},L=new Map,Tr=globalThis[be]||(globalThis[be]={counter:0,classes:L});function K(t,e={}){return L.has(t)||L.set(t,{symbol:Symbol(t.name),parent:Object.getPrototypeOf(t.prototype)?.constructor,for:t,uses:null,inits:null,id:Tr.counter++,...e}),L.get(t)}function et(t,e){return t===e||e?.[Mr]?.(t)}function E(t){return t?.toIterable?.()||t}function Wr(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 tt(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=K(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 p=a.get(c);p||a.set(c,p={});let f=Object.getOwnPropertyDescriptor(c.prototype,l);f&&!Wr(o,f)?console.warn("wont extend",l,f,o):p[l]=r[l]}}for(let[l,o]of a)Object.keys(o).length&&tt(l.prototype,null,o)}return Object.defineProperties(t,r),t}function rt(t,e){let r=K(t),n=K(e);if(n.parent&&!(t.prototype instanceof n.parent))throw new Error(`Mixin ${e.name} has superclass not present in target class`);if(!n.augments){n.augments=new Set;let s=n.ref=Symbol(e.name),a=Object[Symbol.hasInstance];e.prototype[s]=!0,Object.defineProperty(e,Symbol.hasInstance,{value:function(l){return this===e?l&&!!l[s]:a.call(this,l)}})}if(t.prototype[n.ref])return t;if(n.uses)for(let s of n.uses)rt(t,s);n.augments.add(t),r.uses||(r.uses=[]),r.uses.push(e);let i=Object.getOwnPropertyDescriptors(e.prototype);return delete i.constructor,i[q]&&(r.inits||(r.inits=[]),r.inits.push(e.prototype[q]),delete i[q]),Object.defineProperties(t.prototype,i),e?.mixed instanceof Function&&e.mixed(t),t}var M={cache:{},self:null,target:null,proxy:new Proxy({},{apply:(t,e,...r)=>M.target[e].apply(M.self,r),get:(t,e)=>Reflect.get(M.target,e,M.self),set:(t,e,r,n)=>Reflect.set(M.target,e,r,M.self)})};function T(t,e,r,n,i=null){let s=Object.getPrototypeOf(t.prototype),a=n&ie.HasMixins,l;if(a&&(L.set(t,L.get(s.constructor)),s=Object.getPrototypeOf(s)),i){let c=n&ie.IsObjectExtension?i:i.prototype,p=K(t);if(p.uses){i===c&&console.warn("Cannot extend object with mixins");for(let f of p.uses)rt(i,f)}return n&ie.HasSuperCalls&&(M.cache[e]=Object.create(Object.getPrototypeOf(c),Object.getOwnPropertyDescriptors(c))),tt(c,t.prototype),i}let o=s?.constructor;if(l=K(t,{symbol:e}),Object.defineProperty(t,Ar,{value:l,enumerable:!1,configurable:!0}),r&&t.name!==r&&Object.defineProperty(t,"name",{value:r,configurable:!0}),l.flags=n,n&ie.HasConstructor&&(t.prototype[Ze]=e),l.uses)for(let c of l.uses)c.mixes?.(t);return o?.inherited instanceof Function&&o.inherited(t),t}function se(t,e){t[Ze]===e&&(t[Dr]?.(),t[Ye]&&t[Ye].inited(t))}var nt=require("fs"),it=require("imba/compiler");function Ur(t,e){let r,n=(0,it.parseAsset)({body:t});return r=`export default /* @__PURE__ */ Object.assign({ type: 'svg' },`+JSON.stringify(n)+")"}function ye(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,nt.readFileSync)(n,"utf-8");s=await Ur(a,n),e.set(n,s)}return s}}}}var br=require("vite"),yr=y(require("esbuild"));var F=require("path");var ot=y(require("picomatch"),1);function Lr(t){return Array.isArray(t)}function st(t){return Lr(t)?t:t==null?[]:[t]}var oe=function(e){return e.split(F.win32.sep).join(F.posix.sep)};function Nr(t,e){if(e===!1||(0,F.isAbsolute)(t)||t.startsWith("*"))return oe(t);let r=oe((0,F.resolve)(e||"")).replace(/[-^$*+?.()|[\]{}]/g,"\\$&");return F.posix.join(r,oe(t))}var at=function(e,r,n){let i=n&&n.resolve,s=o=>o instanceof RegExp?o:{test:c=>{let p=Nr(o,i);return(0,ot.default)(p,{dot:!0})(c)}},a=st(e).map(s),l=st(r).map(s);return function(c){if(typeof c!="string"||/\0/.test(c))return!1;let p=oe(c);for(let f=0;f<l.length;++f)if(l[f].test(p))return!1;for(let f=0;f<a.length;++f)if(a[f].test(p))return!0;return!a.length}},zr="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",Vr="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",Br=new Set(`${zr} ${Vr}`.split(" "));Br.add("");var ve=require("vite"),lt=y(require("fs")),J=require("url"),ae="/@fs/",Hr=process.platform==="win32";function qr(t){let e=t.split("?",2),r=e[0],n=e[1];return{filename:r,rawQuery:n}}function Kr(t,e,r,n,i,s){let a=Qr(r);if(a.url||a.raw)return;let l=Xr(e,n),o=Gr(e,n,"style");return{id:t,filename:e,normalizedFilename:l,cssId:o,query:a,timestamp:i,ssr:s}}var Jr=/\?(?!.*[\/|\}])/;function ct(t){let[e,r]=t.split(Jr,2);return r?Object.fromEntries(new J.URLSearchParams(r)):null}function Gr(t,e,r){let n=["imba",`type=${r}`];return r==="style"&&n.push("lang.css"),Yr(t,e)?t=e+t:t.startsWith(ae)&&(t=Hr?t.slice(ae.length):t.slice(ae.length-1)),`${t}?${n.join("&")}`}function Qr(t){let e=Object.fromEntries(new J.URLSearchParams(t));for(let r in e)e[r]===""&&(e[r]=!0);return e}function Xr(t,e){return Zr((0,ve.normalizePath)(t),e)}function Yr(t,e){return t.startsWith(ae)?!1:lt.existsSync(e+t)}function Zr(t,e){return t.startsWith(e+"/")?t.slice(e.length):t}function en(t,e,r){let n=at(t,e);return i=>n(i)&&r.some(s=>{let[a]=i.split("?",2);return a.endsWith(s)})}function ut(t){let{include:e,exclude:r,extensions:n,root:i}=t,s=(0,ve.normalizePath)(i),a=en(e,r,n);return(l,o,c=Date.now())=>{let{filename:p,rawQuery:f}=qr(l);if(a(p))return Kr(l,p,f,s,c,o)}}var le={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(le),r=e.length,n;t<r;t++){n=e[t];let[i,s]=le[n];pt[n]=function(a){return"\x1B["+i+"m"+a+"\x1B["+s+"m"}}var G=pt;for(let t=0,e=Object.keys(le),r=e.length,n;t<r;t++){n=e[t];let[i,s]=le[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 mt=y(require("debug")),xe=["debug","info","warn","error","silent"],dt="vite-plugin-imba",we={debug:{log:(0,mt.default)(`vite:${dt}`),enabled:!1,isDebug:!0},info:{color:G.cyan,log:console.log,enabled:!0},warn:{color:G.yellow,log:console.warn,enabled:!0},error:{color:G.red,log:console.error,enabled:!0},silent:{enabled:!1}},ft="info";function tn(t){if(t===ft)return;let e=xe.indexOf(t);if(e>-1){ft=t;for(let r=0;r<xe.length;r++)we[xe[r]].enabled=r>=e}else gt(we.error,`invalid log level: ${t} `)}function gt(t,e,r){!t.enabled||(t.isDebug?r!==void 0?t.log(e,r):t.log(e):(t.log(t.color(`${new Date().toLocaleTimeString()} [${dt}] ${e}`)),r&&t.log(r)))}function ce(t){let e=we[t],r=gt.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:ce("debug"),info:ce("info"),warn:ce("warn"),error:ce("error"),setLevel:tn};function ue(t,e,r){let{emitCss:n,onwarn:i,isBuild:s}=r,a=!s&&r.experimental?.sendWarningsToBrowser,l=s?on:sn,o=[],c=e?.filter(m=>!rn(m,s,n)),p=nn(e,s),f=[...c,...p];if(a){let m=l;l=d=>{o.push(d),m(d)}}if(f.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:f,rawWarnings:e};u.debug(`sending imba:warnings message for ${t.normalizedFilename}`),r.server?.ws?.send("imba:warnings",m)}}function rn(t,e,r){return!r&&t.code==="css-unused-selector"||!e&&ht(t)}function ht(t){return t.code==="css-unused-selector"&&t.message.includes('"*"')}function nn(t,e){let r=[];if(!e){let n=t.filter(i=>ht(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 sn(t){u.info.enabled&&u.info(Q(t))}function on(t){u.warn.enabled&&u.warn(Q(t),t.frame)}function Q(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 xt=require("imba/compiler"),_e=y(require("fs"));var bt=y(require("crypto")),Oe=Object.create(null),an=12;function yt(t){if(Oe[t])return Oe[t];let e=bt.createHash("md5");e.update(t);let r=cn(e.digest("base64")).slice(0,an);return Oe[t]=r,r}var vt={"+":"-","/":"_","=":""},ln=new RegExp(`[${Object.keys(vt).join("")}]`,"g");function cn(t){return t.replace(ln,e=>vt[e])}var un=/<script [^>]*lang=["']?([^"' >]+)["']?[^>]*>/,pn=(t,e)=>async function(n,i,s){let{filename:a,normalizedFilename:l,cssId:o,ssr:c}=n,{emitCss:p=!0}=s,f=[],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-${yt(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=_e.default.existsSync(a)?_e.default.statSync(a).mtimeMs:0,I=((h,_)=>{let O=(0,xt.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(I.erroredΦ)throw I;return p&&I.css.code&&(I.js.code+=` /*__css_import__*/import ${JSON.stringify(o)}; `),!c&&e&&(I.js.code=e({id:a,compiledCode:I.js.code,hotOptions:s.hot,compiled:I,originalCode:i,compileOptions:g})),I.js.dependencies=f,{filename:a,normalizedFilename:l,lang:i.match(un)?.[1]||"js",compiled:I,ssr:c,dependencies:f}};function wt(t,e){return pn(e)}var Mt=require("vite");var _t=require("module"),pe=y(require("path")),X=y(require("fs")),$e=require("url");var Ot={},fn,Se=["imba.config.js","imbaconfig.json","imba.config.json"],mn=new Function("path","timestamp",'return import(path + "?t=" + timestamp).then(m => m.default)'),dn=new Function("path","timestamp",'return import(path + "?t=" + timestamp, {assert: {type: "json"}}).then(m => m.default)');async function $t(t,e){if(e?.configFile===!1)return;let r=gn(t,e);if(r){let n;if(r.endsWith(".json"))try{let i=await dn((0,$e.pathToFileURL)(r).href,X.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 mn((0,$e.pathToFileURL)(r).href,X.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=Ot.url?fn??(fn=(0,_t.createRequire)(Ot.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 gn(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(!X.default.existsSync(n))throw new Error(`failed to find imba config file ${n}.`);return n}else{let n=Se.map(i=>pe.default.resolve(r,i)).filter(i=>X.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 hn=["module","jsnext:main","jsnext"],St=["imba",...hn],Ie=[],It=[];var Tt=y(require("path"));var W=y(require("path")),Pe=y(require("fs")),Pt=require("module");function Ce(t,e=!0){u.debug(`findImbaDependencies: searching imba dependencies in ${t}`);let r=W.default.join(t,"package.json");if(!Pe.default.existsSync(r)){if(e){let s=process.cwd();if(t!==s)return u.debug(`no package.json found in vite root ${t}`),Ce(s,!1)}return u.warn("no package.json found, findRootImbaDependencies failed"),[]}let n=jt(t);if(!n)return[];let i=[...Object.keys(n.dependencies||{}),...Object.keys(n.devDependencies||{})].filter(s=>!On(s));return Ct(i,t)}function Ct(t,e,r=[]){let n=[],i=(0,Pt.createRequire)(`${e}/package.json`),s=t.map(a=>Et(a,i)).filter(Boolean);for(let{pkg:a,dir:l}of s){let o=bn(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),p=c.filter(f=>r.includes(f));p.length>0&&(u.warn.enabled&&u.warn("skipping circular imba dependencies in automated vite optimizeDeps handling",p.map(f=>r.concat(f).join(">"))),c=c.filter(f=>!r.includes(f))),r.length===3&&u.debug.once(`encountered deep imba dependency tree: ${r.join(">")}`),n.push(...Ct(c,l,r.concat(a.name)))}}return n}function Et(t,e){try{let r=`${t}/package.json`,n=e(r);return{dir:W.default.dirname(e.resolve(r)),pkg:n}}catch(r){u.debug.once(`dependency ${t} does not export package.json`,r);try{let n=W.default.dirname(e.resolve(t));for(;n;){let i=jt(n,!0);if(i&&i.name===t)return{dir:n,pkg:i};let s=W.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 jt(t,e=!1){let r=W.default.join(t,"package.json");try{return JSON.parse(Pe.default.readFileSync(r,"utf-8"))}catch(n){!e&&u.warn.enabled&&u.warn(`failed to parse ${r}`,n)}}function bn(t){return yn(t)?"component-library":vn(t)?"js-library":void 0}function yn(t){return!!t.imba}function vn(t){return!!t.dependencies?.imba||!!t.peerDependencies?.imba}var xn=["@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"],wn=["@fontsource/","@postcss-plugins/","@rollup/","@imbajs/adapter-","@types/","@typescript-eslint/","eslint-","jest-","postcss-plugin-","prettier-plugin-","rollup-plugin-","vite-plugin-"];function On(t){return xn.includes(t)||wn.some(e=>e.startsWith("@")?t.startsWith(e):t.substring(t.lastIndexOf("/")+1).startsWith(e))}function Rt(t,e){let r=Et(t,e);if(!r)return!1;let n=r.pkg;if(n.module||n.exports)return!1;if(n.main){let s=W.default.extname(n.main);return!s||s===".js"||s===".cjs"}else try{return e.resolve(`${t}/index.js`),!0}catch{return!1}}var Wt=require("module");var $n=require("imba/compiler");var Ft="Compilation Error";function fe(t){if(!t?.errors?.length)return{name:"Compilation error",id:t._sourcePath,message:Q({message:`Compilation error: ${t.message}`})};let e=t?.errors?.length?t.errors[0]:{diagnostics:[{source:Ft}],options:{filename:t._sourcePath},range:{start:{line:1,column:1}},message:t?.toString},n=`${e.source||e?.diagnostics[0]?.source||Ft} error`,i=t.options.filename,{line:s,character:a}=e.range.start,l={line:s+1,column:a,file:i},o=Q({message:e.message}),c=t.sourceCode+` `,p=_n(c,l);return{name:n,message:o,id:i,frame:p,code:c,loc:l}}function _n(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 kt="vite-plugin-imba:facade";function Sn(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 At(t,e){let{prependPreprocessors:r,appendPreprocessors:n}=Sn(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)=>Dt(s,a)):Dt(t.preprocess,0))}function Dt(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 Ut=y(require("lodash.mergewith")),Ee=new Set(["include","exclude","emitCss","hot","ignorePluginPreprocessors","disableDependencyReinclusion","experimental","ssr"]),Lt=new Set(["extensions","compilerOptions","preprocess","onwarn"]),In=new Set(["configFile","kit",...Ee,...Lt]);function Nt(t){let e=Object.keys(t||{}).filter(r=>!In.has(r));e.length&&u.warn(`invalid plugin options "${e.join(", ")}" in inline config`,t)}function Pn(t){if(!t)return;let e=Object.keys(t).filter(o=>Ee.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=>Lt.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=>!Ee.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 zt(t={},e,r){let n={...e,root:Fn(e)},i={extensions:[".imba",".imba1"],emitCss:!0},s=Pn(await $t(n,t)),a={root:n.root,isBuild:r.command==="build",isServe:r.command==="serve",isDebug:process.env.DEBUG!=null},l=Vt(i,s,t,a);return s?.configFile&&(l.configFile=s.configFile,l.config=s),l}function Vt(...t){let e={};for(let r of t.filter(Boolean))e=(0,Ut.default)(e,r,{arrayMerge:(n,i)=>i??n});return e}function Bt(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=Vt(r,t,n);return jn(i),Rn(i),At(i,e),Cn(i),En(i),i}function Cn(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 En(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 jn(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 Rn(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 Fn(t){return(0,Mt.normalizePath)(t.root?Tt.default.resolve(t.root):process.cwd())}function Ht(t,e){let r=Ce(t.root),n={resolve:{mainFields:[...St],dedupe:[...Ie,...It]}};return n.optimizeDeps=kn(r,t,e.optimizeDeps),t.experimental?.prebundleImbaLibraries&&(n.optimizeDeps={...n.optimizeDeps,extensions:t.extensions??[".imba",".imba1"],esbuildOptions:{plugins:[{name:kt,setup:()=>{}}]}}),n.ssr=Dn(r,t,e,n),n}function kn(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=Ie.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(p=>!o.includes(p.name)&&a(p.name)).flatMap(p=>{let f=(0,Wt.createRequire)(`${p.dir}/package.json`);return Object.keys(p.pkg.dependencies||{}).filter(m=>!a(m)&&Rt(m,f)).map(m=>p.path.concat(p.name,m).join(" > "))});u.debug("reincluding transitive dependencies of excluded imba dependencies",c),n.push(...c)}return{include:n,exclude:i}}function Dn(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 me=class{constructor(){this._css=new Map;this._js=new Map;this._dependencies=new Map;this._dependants=new Map;this._resolvedImbaFields=new Map;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 je=y(require("fs"));var Re=y(require("path"));function qt(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=>{je.default.existsSync(b)&&(u.debug(`emitting virtual change event for "${b}" because depdendency "${d}" changed`),s.emit("change",b))})},p=d=>{let g=r(d,!1);g&&e.remove(g)&&u.debug(`cleared VitePluginImbaCache for deleted file ${d}`)},f=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:[p,c]};if(i!==!1){let d=Se.map(v=>Re.default.join(l,v)),g=v=>{d.includes(v)&&f(v)},b=v=>{v===i&&f(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 Kt(t,e,r){e&&!e.startsWith(r+"/")&&!e.includes("\0")&&je.default.existsSync(e)&&t.add(Re.default.resolve(e))}async function Jt(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(),p;try{i.compilerOptions.sourcemap=!1,p=await t(r,c,i),n.update(p)}catch(x){throw n.setError(r,x),x}let f=new Set,m=a.moduleGraph.getModuleById(r.cssId),d=a.moduleGraph.getModuleById(r.id);m&&Mn(o,p.compiled.css)&&(u.debug("handleHotUpdate css changed for "+r.cssId),f.add(m));let b=d&&Tn(l,p.compiled.js,r.filename);b&&(u.debug("handleHotUpdate js changed for "+r.id),f.add(d)),b||ue(r,p.compiled.warnings,i);let v=[...f].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 An(t,e){return!t&&!e?!0:!t&&e||t&&!e?!1:t===e}function Mn(t,e){return!An(t?.code,e?.code)}function Tn(t,e,r){try{return t=t.code.substring(0,t.code.lastIndexOf(` `)),e=e.code.substring(0,e.code.lastIndexOf(` `)),!et(e,t)}catch{return!0}}var vr=y(require("url")),H=y(require("path")),re=y(require("fs")),xr=y(require("crypto"));var N=y(require("path")),ge=y(require("fs")),Y=y(require("url"));var Gt=y(require("lodash.mergewith")),Un={},Wn=typeof __dirname<"u"?__dirname:N.default.dirname(Y.default.fileURLToPath(Un.url));var de=N.default.join(Wn,"..","bin","./imba.config.mjs"),Fe=["imba","ts","mts","js","mjs","cjs"];async function z(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(Fe),p=c.length;o<p;o++){let m="imba.config."+c[o],d=N.default.join(process.cwd(),m);ge.default.existsSync(d)&&(n=d)}if(!(e.vite||n))return{};if(t=="test"){for(let o=0,c=E(Fe),p=c.length;o<p;o++){let f=c[o];if(f=="imba")continue;let m="vitest.config."+f,d=N.default.join(process.cwd(),m);if(ge.default.existsSync(d))return d}for(let o=0,c=E(Fe),p=c.length;o<p;o++){let m="imba.config."+c[o],d=N.default.join(process.cwd(),m);if(ge.default.existsSync(d)){let{default:g}=await import(String(Y.default.pathToFileURL(d)));return typeof g=="function"&&(g=await g(e)),d}}return de}if(n||(n=de),n.endsWith("imba"))throw new Error(".imba config file not yet supported");let{default:i}=await import(String(Y.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==de)return s;let{default:a}=await import(String(Y.default.pathToFileURL(de)));typeof a=="function"&&(a=await a({command:globalThis.command,mode:globalThis.mode}));let l=a[t];return s?(0,Gt.default)(l,s,function(o,c,p){if(Array.isArray(o)&&Array.isArray(c)){let f=c.flat(),m=o.flat();return f.concat(m).filter(function(g,b,v){return v.findLastIndex(function(x){return p=="plugins"?x?.name===g?.name:x===g})==b})}}):l}var Le=y(require("path")),or=y(require("fs")),ar=require("crypto");var gs=y(Xt());function Yt(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 Me=require("perf_hooks"),V=Symbol.for("#spinner"),Ln=Symbol.for("#ctime"),Zt=Symbol.for("#IMBA_OPTIONS"),er=Symbol.for("#prefix"),ke=Symbol.for("#last"),Z=process.platform!=="win32"||process.env.CI||process.env.TERM==="xterm-256color",Nn={info:(Z?"ℹ":"i").brightΞyellow,success:(Z?"✔":"√").green,warning:(Z?"⚠":"!!").yellow,error:(Z?"×":"✖").red,debug:(Z?"ℹ":"i").blue},zn={"-1":"socket",4:"ip4",6:"ip6"},tr=["debug","info","success","warning","error","silent"];function Vn(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 De(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 Vn(i);if(n==="elapsed"){i!=null&&e.unshift(i);let a=Me.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(zn[i.addressType]).brightΞblue:i}),[t,...e]}var rr=null,Bn=null,nr=Symbol(),Te=class{static get main(){return Bn||(Bn=new this)}constructor({prefix:e=null,loglevel:r}={}){this[Ln]=Date.now(),this.prefix=e,this.loglevel=r||process.env.IMBA_LOGLEVEL||globalThis[Zt]&&globalThis[Zt].loglevel||"info",se(this,nr)}set prefix(e){this[er]=e?De(...e)[0]:""}get prefix(){return this[er]}write(e,...r){if(tr.indexOf(e)<tr.indexOf(this.loglevel))return this;if(!r.length)return console.log();let n=Nn[e]||e,[i,...s]=De(...r);return this.prefix&&(i=this.prefix+i),this[V]&&this[V].isSpinning?(e=="success"&&(this[V].clear(),console.log(n+" "+i,...s),this[V].frame()),this[V].text=i):console.log(n+" "+i,...s)}log(){let[e,...r]=De(...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=Me.performance.now(),r=this[ke]?e-this[ke]:0;return this.write("debug",...arguments,("+"+r.toFixed(1)+"ms").blue),this[ke]=e}spinner(){}get[V](){return rr}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}}},Ae=Te;(()=>{T(Te,nr,"Logger",16)})();var ir=new Ae().proxy;var Hn=Symbol.for("#key"),We={},Ue={},sr=Symbol(),Ne=class{constructor(e){this[Hn]=Symbol(),this.o=e,this.dir=this.o.cachedir,this.nodefs=this.o.volume||or.default,this.aliaspath=this.dir&&Le.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=Yt(),this.preload(),se(this,sr)}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(),ir.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(We[e])return We[e];let r=(0,ar.createHash)("sha1");return r.update(e),We[e]=r.digest("hex")}fullKeyPath(e){return Ue[e]||(Ue[e]=Le.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(p){return i.setKeyValue(s,p)})});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}},ee=Ne;(()=>{T(Ne,sr,"Cache",16)})();var ze=require("path"),lr=require("vite");function qn(t,e,r,n){return r.reduce((i,s)=>{let a=t[s]===void 0?n[s]:t[s];return a===void 0&&Jn(s),i[`${e}.${s}`]=JSON.stringify(a),i},{})}function Kn(t){return t===""?process.env:Object.fromEntries(Object.entries(process.env).filter(([e,r])=>e.startsWith(t)))}function Jn(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 Ve(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,ze.resolve)(s);a=a?(0,ze.resolve)(o,a):o;let c=i?(0,lr.loadEnv)(l,a,r):Kn(r),p=t==="all"?Object.keys(c):Array.isArray(t)?t:Object.keys(t),f=t==="all"||Array.isArray(t)?{}:t;return{define:qn(c,n,p,f)}}}}var Ke=y(require("path")),mr=y(require("vite"));var dr=y(require("fs")),Je=y(require("get-port"));var te=Symbol.for("#__listeners__");var Be=new Set,Gn=Symbol(),He=class{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}},cr=He;(()=>{T(He,Gn,"LazyProxy",16)})();var ur=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 fr(t,e,r,n){let i,s,a;return i=t[te]||(t[te]={}),s=i[e]||(i[e]={}),a=s.tail||(s.tail=s.next={}),a.listener=r,a.path=n,s.tail=a.next={},a}function Qn(t,e,r){let n=fr(t,e,r);return n.times=1,n}function Xn(t,e,r,n){if(!r)return;let i,s,a=t[te];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 Yn(t,e,r=null){let n;(n=t[te])&&(n[e]&&ur(e,r,n[e]),n.all&&ur(e,[e,r],n.all))}var Zn=Symbol(),qe=class{emit(e,...r){return Yn(this,e,r)}on(e,...r){return fr(this,e,...r)}once(e,...r){return Qn(this,e,...r)}un(e,...r){return Xn(this,e,...r)}},pr=qe;(()=>{T(qe,Zn,"Emitter",0)})();var B;async function gr(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(!B){let a=await(0,Je.default)({port:Je.default.makeRange(24e3,26e3)}),l=await z("server",{command:"server",mode:i}),o=e.serverOptions||{server:{hmr:{port:a}}},p={...await z("client",{mode:i,vite:!0}),...o,appType:"custom",server:{...l.server,...o.server,middlewareMode:!0}};B=await mr.createServer(p)}let s=Ke.default.join(B.config.root,e.outDir||"dist","public");return n?(B.close().then(function(){return B=null}),globalThis.__vite_manifest__||(globalThis.__vite_manifest__=JSON.parse(dr.default.readFileSync(Ke.default.join(s,"manifest.json"),"utf-8"))),globalThis.IMBA_PUBDIR=s,r&&r(s),s):(t.use(function(a,l,o){return Be.add(a.url),o()}),t.use(B.middlewares),t.use(function(a,l,o){return Be.delete(a.url),o()}),s)}var ri={};var wr="virtual:imba/*?css",hr="\0"+wr,Ge=vr.default.fileURLToPath(new URL(".",ri.url));function Or(){let t=xr.default.createHash("sha256"),e=re.default.readdirSync(Ge);e.sort();for(let r of E(e)){let n=H.default.join(Ge,r);if(H.default.extname(r)===".mjs"){let i=re.default.readFileSync(n);t.update(i)}}return t.digest("hex")}function _r(){let t=process.env.IMBA_CACHEDIR||H.default.resolve(Ge,".imba-cache");return re.default.existsSync(t)||(console.log("cache dir does not exist - create",t),re.default.mkdirSync(t)),t}var Js=Or(),ei=_r();globalThis.VITE_IMBA_CACHE=new ee({cachedir:ei});function $r(t={}){let e="vite-plugin-imba",r="pre",n,i,s,a,l={},o,c,p,f,m;Nt(t);let d=new me,g=[];async function b(h,_){process.env.DEBUG?u.setLevel("debug"):h.logLevel&&u.setLevel(h.logLevel),m||(m=await z("imba",{vite:!0})||{}),s=await zt(t,h,_);let O=Ht(s,h);return u.debug("additional vite config",O),c=_.mode==="test",p=_.mode==="production",f=_.mode==="development",O}function v(h){return s=Bt(s,h),n=ut(s),i=wt(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),fe(k)}let{warnings:D,errors:U}=R.compiled;if(Array.isArray(D)&&D.length>0&&ue(w,D,s),Array.isArray(U)&&U.length>0)throw fe({errors:U,options:{filename:_},sourceCode:h});if(d.update(R),R.dependencies.length&&s.server&&R.dependencies.forEach(function(k){return Kt(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 yr.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==wr||h=="*?css"||h=="*")return hr;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=ct(h,j);if(P?.external!==void 0){let C=[];for(let D=0,U=E(Object.keys(P)),Qe=U.length;D<Qe;D++){let k=U[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(H.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,br.normalizePath)(w.toString().replace("file://",""));return C=H.default.relative(a.root,C),"export default '"+C+"'"}}let j=n(h,!!O);if(hr==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 S(h){return s.server=h,qt(s,d,n)}async function I(h){if(!s.hot||!s.emitCss)return;let _=n(h.file,!1,h.timestamp);if(_)try{return await Jt(i,h,_,d,s)}catch(O){throw fe(O)}}return g.push(ye()),g.push({name:"vite-plugin-imba",enforce:"pre",api:l,config:b,configResolved:v,transform:$,load:A,resolveId:x,configureServer:S,handleHotUpdate:I}),g}0&&(module.exports={getCacheDir,getImbaHash,setupVite,vitePluginEnvironment});