@teacss/vite 0.9.0-alpha.2 → 0.9.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{readFileSync as e}from"node:fs";import{prepareEasingStylesheet as t}from"@teacss/directives/internal/easing";import{composeVisitors as n,transform as r}from"lightningcss";const i=new Set([`animation`,`animation-timing-function`,`transition`,`transition-timing-function`]);function a(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function o(e){if(!a(e)||typeof e.type!=`string`||!a(e.value)||!a(e.value.loc))return;let{line:t,column:n}=e.value.loc;if(typeof t==`number`&&typeof n==`number`&&typeof e.value.loc.source_index==`number`)return{type:e.type,value:e.value,key:`${e.type}:${t}:${n}`}}function s(e,t=[]){if(Array.isArray(e))for(let n of e)s(n,t);else if(a(e)){let n=o(e);n&&t.push(n);for(let n of Object.values(e))s(n,t)}return t}function c(e,t=[]){if(Array.isArray(e))for(let n of e)c(n,t);else if(a(e)){if(o(e))return t;if(Array.isArray(e.declarations)&&Array.isArray(e.importantDeclarations))t.push(e);else for(let n of Object.values(e))c(n,t)}return t}function l(e){return a(e)&&typeof e.property==`string`&&i.has(e.property)}function u(e,t){return JSON.stringify(e)===JSON.stringify(t)}function d(e,t,n){let i=[];return r({...n,filename:t,code:Buffer.from(e),minify:!1,sourceMap:!1,visitor:{StyleSheet(e){i=s(e.rules)}}}),i}function f(n,r,i){let a=new Map;if(i===void 0&&!/\.css$/i.test(n))return a;let o=i??e(n,`utf8`),s=t(o);if(o===s)return a;let f=d(o,n,r),p=d(s,n,r);if(f.length!==p.length)return a;for(let e=0;e<f.length;e++){let t=f[e],n=p[e];if(t.type!==n.type)continue;let r=c(t.value),i=c(n.value);if(r.length!==i.length)continue;let o=[];for(let e=0;e<r.length;e++)for(let t of[`declarations`,`importantDeclarations`]){let n=r[e][t].filter(l),a=i[e][t].filter(l);n.length===a.length&&!u(n,a)&&o.push({before:n,after:a,block:e,field:t})}o.length&&a.set(t.key,o)}return a}function p(e,t=!1,r=()=>!1){return function(i){if(this&&r(this.filename))return typeof e.visitor==`function`?e.visitor.call(this,i):e.visitor??{};function d(e){if(t&&typeof e?.resolver?.read!=`function`&&!(e?.code instanceof Uint8Array))throw Error(`TeaCSS requires the Lightning CSS visitor factory to expose native source input before parsing.`)}d(this);let p=typeof e.visitor==`function`?e.visitor.call(this,i):e.visitor;d(this);let m=new Map;this?.code&&m.set(this.filename,Buffer.from(this.code).toString());let h=this?.resolver,g=h?.read;this&&h&&g&&(this.resolver={...h,resolve:h.resolve?.bind(h),async read(e){let t=await g.call(h,e);return m.set(e,t),t}});let _=n([{Rule(){},RuleExit(){},Declaration(){}},p??{}]),v=[],y=this,b=e,x=!1,S=[],C=new Map,w=[];function T(e){if(!a(e.value.loc))return;let n=e.value.loc.source_index;if(typeof n!=`number`)return;let r=m.get(v[n]);if(t&&r===void 0)throw Error(`TeaCSS did not capture Lightning CSS input for ${v[n]}. The native source boundary is incompatible.`);if(n===0&&r===void 0)return;let i=C.get(n);return i||(i=f(v[n],b,r),C.set(n,i)),i.get(e.key)}function E(e){let t=T(e);if(!t)return;let n=c(e.value);for(let e of t){let t=n[e.block]?.[e.field];if(!t||!u(t.filter(l),e.before))continue;let r=0;for(let n=0;n<t.length;n++)l(t[n])&&(t[n]=e.after[r++])}}return{...p,StyleSheet(t){v=t.sources;let n=/\.module\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/.test(v[0]);if(b=y?{...y,cssModules:y.cssModules??!1}:{...e,cssModules:n?e.cssModules??!0:!1},!p?.StyleSheet)return;for(let e of s(t.rules))E(e);let r=p.StyleSheet(t);return x=!!r,r},Rule(e){w=[];let t=x||S.at(-1)?.authoritative===!0;S.push({authoritative:t,exits:1});let n=o(e),r=!t&&n?T(n):void 0;if(n&&r){let e=c(n.value);for(let t=0;t<e.length;t++)for(let n of[`importantDeclarations`,`declarations`]){let i=e[t][n].filter(l),a=r.find(e=>e.block===t&&e.field===n&&u(i,e.before));for(let e=0;e<i.length;e++)w.push({before:i[e],after:a?.after[e]??i[e]})}}if(!p?.Rule)return;if(!t)for(let t of s(e))E(t);let i=_.Rule(e);if(i){w=[];let e=S[S.length-1];e.authoritative=!0,e.exits=Array.isArray(i)?i.length:1,e.exits===0&&S.pop()}return i},RuleExit(e){let t=S.at(-1);return t&&--t.exits===0&&S.pop(),_.RuleExit(e)},Declaration(e){let t=e;if(l(e)){let n=w.shift();n&&u(e,n.before)?t=n.after:w=[]}let n=_.Declaration(t);if(n)return n;if(!u(e,t))return t}}}}export{p as createEasingImportVisitor};
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createHash as e}from"node:crypto";import{mkdtempSync as t,realpathSync as n,rmSync as r,watch as i,writeFileSync as a}from"node:fs";import{tmpdir as o}from"node:os";import{basename as s,join as c,posix as l,resolve as u}from"node:path";import d from"node:process";import f from"@jridgewell/remapping";import{entryDiscoveryFiles as p}from"@teacss/config";import{SourceWatchRegistry as m,createSourceDeclarationCheck as h,planSourceWatches as g,probeSourceDeclarations as _,sourceDeclarationMemberPaths as v,sourceDeclarationStateOf as ee,sourceDeclarationWatchTargets as y}from"@teacss/config/internal/source-scan";import{CSS_PLACEHOLDER as b,isCssId as x}from"@teacss/core";import{prepareEasingCss as te,prepareEasingStylesheet as ne}from"@teacss/directives/internal/easing";import{applyTransformerPipeline as re,createContext as ie,getModuleOutput as ae}from"@teacss/runtime";import{bundledAssetName as S,collectBundledAssets as oe,rewriteBundledAssets as
|
|
2
|
-
`,r+2);if(t<0)return-1;r=t;continue}if(n===`/`&&e[r+1]===`*`){let t=e.indexOf(`*/`,r+2);if(t<0)return-1;r=t+1;continue}if(e.startsWith(t,r))return r}return-1}function ge(e,t,n){let r=A(e,`const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=`);if(r<0)return e;let i=r+56;if(e[i]!==`[`)return e;let a=k(e,i);if(a<0||!e.startsWith(`)))=>i.map(i=>d[i]);`,a+1)||A(e,`__vite__mapDeps([`,a+20+1)<0)return e;let o=JSON.stringify(t),s=e.slice(i,a+1),c=s.replaceAll(o,JSON.stringify(n));return c===s?e:`${e.slice(0,i)}${c}${e.slice(a+1)}`}const j={chrome:`chrome`,edge:`edge`,firefox:`firefox`,hermes:!1,ie:`ie`,ios:`ios_saf`,node:!1,opera:`opera`,rhino:!1,safari:`safari`},M={2015:[`chrome49`,`edge13`,`safari10`,`ios10`,`firefox44`,`opera36`],2016:[`chrome50`,`edge13`,`safari10`,`ios10`,`firefox43`,`opera37`],2017:[`chrome58`,`edge15`,`safari11`,`ios11`,`firefox52`,`opera45`],2018:[`chrome63`,`edge79`,`safari12`,`ios12`,`firefox58`,`opera50`],2019:[`chrome73`,`edge79`,`safari12.1`,`ios12.1`,`firefox64`,`opera60`],2020:[`chrome80`,`edge80`,`safari14.1`,`ios14.5`,`firefox80`,`opera67`],2021:[`chrome85`,`edge85`,`safari14.1`,`ios14.5`,`firefox80`,`opera71`],2022:[`chrome94`,`edge94`,`safari16.4`,`ios16.4`,`firefox93`,`opera80`],2023:[`chrome110`,`edge110`,`safari16.4`,`ios16.4`,`firefox146`,`opera96`],2024:[`chrome119`,`edge119`,`safari17.4`,`ios17.4`,`firefox145`,`opera105`],2025:[`chrome136`,`edge136`,`safari26.0`,`ios26.0`,`firefox138`,`opera121`]};function _e(e){let t={},n=(Array.isArray(e)?e:e?[e]:[]).flatMap(e=>{let t=/^es(6|\d{4})$/.exec(e);if(!t)return e;let n=t[1]===`6`?2015:Number(t[1]),r=M[n];if(!r)throw Error(`Unsupported target "${e}"`);return r});for(let e of n){if(e===`esnext`)continue;let n=/^([a-z_]+)(\d+)(?:\.(\d+))?$/i.exec(e),r=n&&j[n[1].toLowerCase()];if(r===!1)continue;if(!n||!r)throw Error(`Unsupported target "${e}"`);let i=Number(n[2])<<16|Number(n[3]??0)<<8;(!t[r]||i<t[r])&&(t[r]=i)}return t}function N(i,m={}){let h,g=i;if(i&&typeof i==`object`){h=i.lightningcss;let e={...i};delete e.lightningcss,delete e.mode,g=Object.keys(e).length?e:void 0}let _,y=ie(g,{envMode:d.env.NODE_ENV===`development`?`dev`:`build`,...m,transformers:[...m.transformers??[],de()]},e=>{_=ee(e)}),b=`/__tea.css`,x,w=!1,T,E,O=!1,k,A,j=new Set,M,N,P,ve=0;async function F(){M??=fe(()=>_,async()=>{w?await ze():P&&a(P,String(++ve))},e=>x?.logger.error(e instanceof Error?e.message:String(e)));try{await M.resolved()}catch(e){throw M.retire(),M=void 0,e}}async function I(){let e=M;M=void 0,await e?.close(),N&&r(N,{recursive:!0,force:!0}),N=void 0,P=void 0}function L(e){let t=new Set(v(_).map(C));for(let n of j)t.has(n)||e(n);P&&e(P)}let R=new Map,z=new Map,B=new Map,V=new Set,H,U,W=0,G=!1,K,q,J=0,Y=0,X,Z;function ye(){Z=void 0}function be(e=y.root){let t=y.getConfigFileList().map(C),n=new Set(t);if(typeof g==`object`){j=n;return}let r=C(typeof g==`string`?u(e,g):e);if(!t.includes(r))for(let e of p)n.add(C(c(r,e)));j=n}async function xe(){let{prefix:e}=await y.getVMPRegexes();return b=`/${e}.css`,b}let Se=new Map,Q=new WeakMap,$=new WeakMap;function Ce(e){let t=S(e);return Se.set(t,e),`${x?.base??`/`}__teacss_fonts/${t}`}async function we(){return(await se(await Te(),Ce)).toString()}async function Te(){await y.flushTasks();let e=Z;if(e&&e.config===y.generator.config&&e.tokens.length===y.tokens.size){let t=0,n=!0;for(let r of y.tokens)if(e.tokens[t++]!==r){n=!1;break}if(n)return await e.promise}let t=[...y.tokens],n={config:y.generator.config,promise:y.generator.generate(t,{minify:!1}).then(({css:e})=>e),tokens:t};Z=n;try{return await n.promise}catch(e){throw Z===n&&(Z=void 0),e}}async function Ee(){let e=await Te(),t=x;if(!t||!(`environments`in t))return e;let n=u(t.root,b.slice(1)),r=t.css.transformer===`lightningcss`,i=r?ne(e):e;if(r&&t.build.cssMinify===`lightningcss`&&!/@import/i.test(i))return De(i,n,t);let a=r&&t.build.cssMinify?{...t,build:{...t.build,cssMinify:!1}}:t,o=(await le(i,n,a)).code;if(!t.build.cssMinify)return o;if(t.build.cssMinify===`esbuild`){let e=t.esbuild||{},r={charset:e.charset,legalComments:e.legalComments,logLevel:e.logLevel,logLimit:e.logLimit,logOverride:e.logOverride},i=e.minifyIdentifiers!=null||e.minifySyntax!=null||e.minifyWhitespace!=null?{minifyIdentifiers:e.minifyIdentifiers??!0,minifySyntax:e.minifySyntax??!0,minifyWhitespace:e.minifyWhitespace??!0}:{minify:!0},a=await ue(o,n,{...r,...i,loader:`css`,sourcemap:!1,target:t.build.cssTarget||void 0},void 0,t,void 0,!0);for(let e of a.warnings)t.logger.warn(`[esbuild css minify] ${e.text}`);return a.code}return De(ne(o),n,t)}async function De(e,t,n){let{transform:r}=await import(`lightningcss`),i=r({...n.css.lightningcss,code:Buffer.from(e),cssModules:void 0,filename:t,minify:!0,targets:_e(n.build.cssTarget)});for(let e of i.warnings)n.logger.warn(`[lightningcss minify] ${e.message}`);return new TextDecoder().decode(i.code)}function Oe(){if(!T)return;let e=T;H&&clearTimeout(H),H=setTimeout(()=>{H=void 0;let t=U,n=(async()=>{if(t&&await t.catch(()=>{}),T!==e||(O?Y:J)>=W||(await Le(),await e.waitForRequestsIdle?.(),T!==e||(O?Y:J)>=W))return;let n=W,r=e.moduleGraph.getModuleById(b);if(!r){J=n,O&&(Y=n);return}O?(e.moduleGraph.invalidateModule(r),e.watcher.emit(`change`,r.file??b),Y=n,J=n):(e.moduleGraph.invalidateModule(r),J=n)})();U=n,n.then(()=>{U===n&&(U=void 0,T===e&&(O?Y:J)<W&&Oe())},t=>{U===n&&(U=void 0),e.config.logger.error(`TeaCSS failed to invalidate its virtual stylesheet`,{error:t})})},20)}function ke(){ye(),T&&(W++,Oe())}function Ae(e){if(!T)return;let t=!1;for(let n of e){let e=T.moduleGraph.getModuleById(n);e&&(T.moduleGraph.invalidateModule(e),t=!0)}t&&T.ws.send({type:`full-reload`})}function je(){H&&clearTimeout(H),H=void 0,O=!1,k?.(),k=void 0,A?.(),A=void 0,T=void 0,U=void 0}function Me(){E??=y.onInvalidate(ke)}function Ne(){ye(),je(),E?.(),E=void 0}async function Pe(e,t){let n={};R.set(t,n),z.set(t,e);try{let r=await re(y,e,t);return R.get(t)===n?(r?B.set(t,r.code):B.delete(t),y.filter(e,t)?await y.extract(r?.code??e,t):y.modules.has(t)&&await y.extract(``,t),r??null):r??null}finally{R.get(t)===n&&R.delete(t)}}async function Fe(e,t){X&&await X;let n=Pe(e,t),r=n.then(()=>{},()=>{});V.add(r);try{return await n}finally{V.delete(r)}}async function Ie(e){let t=new Set(e),n=new Set([...z.keys(),...B.keys()]),r=[];for(let e of n)t.has(e)||(R.delete(e),z.delete(e),B.delete(e),r.push(y.extract(``,e)));await Promise.all(r)}async function Le(){for(;V.size;)await Promise.all(V)}async function Re(){let e=Array.from(z),t=new Map(e.map(([e,t])=>[e,B.get(e)??t]));try{await y.reloadConfig()}finally{be(y.root),(T||P)&&await F()}await xe();let n=[];for(let[r,i]of e){let e=ae(y,r)??i;e===i?B.delete(r):B.set(r,e),e!==t.get(r)&&n.push(r)}Ae(n)}async function ze(){let e=X,t=(async()=>{e&&await e.catch(()=>{}),await Le(),await Re()})();X=t;try{await t}finally{X===t&&(X=void 0)}}let Be={name:`teacss`,enforce:`pre`,config(e){if(h===!1)return;let t=typeof h==`object`?h:void 0,n={};return e.css?.transformer===void 0&&(n.css={transformer:`lightningcss`,...t?{lightningcss:t}:{}}),e.build?.cssMinify===void 0&&(n.build={cssMinify:`lightningcss`}),n},async configResolved(e){if(x=e,e.css.transformer===`lightningcss`){let{createEasingImportVisitor:t}=await import(`./easing-imports-tv4xC-1o.js`),n=e.css.lightningcss??{};e.css.lightningcss={...n,visitor:t(n,!0)}}w=e.command===`serve`,await y.updateRoot(e.root),be(e.root),await xe(),Me()},async buildStart(){Q.set(this.environment??y,new Map),$.set(this.environment??y,new Set),G=!1,K=void 0,q=void 0,Me(),be(),!w&&x?.build?.watch?(P||(N=n(t(c(o(),`teacss-vite-watch-`))),P=c(N,`invalidate`),a(P,`0`)),L(e=>this.addWatchFile(e)),await F()):L(e=>this.addWatchFile(e))},async buildEnd(t){if(w||t)return;if(typeof this.getModuleIds==`function`&&await Ie(this.getModuleIds()),!(G||typeof this.getModuleInfo==`function`&&this.getModuleInfo(b)!=null)){q=void 0;return}K=await Ee();let n=Q.get(this.environment??y)??new Map;Q.set(this.environment??y,n);for(let{asset:e}of oe(K))n.has(e.digest)||n.set(e.digest,this.emitFile({type:`asset`,name:S(e),source:e.bytes}));q=e(`sha256`).update(K).digest(`hex`)},configureServer(e){je(),T=e,e.middlewares?.use((t,n,r)=>{let i=`${e.config.base}__teacss_fonts/`,a=t.url?.split(`?`,1)[0],o=a?.startsWith(i)?Se.get(a.slice(i.length)):void 0;if(!o)return r();n.setHeader(`Content-Type`,`font/woff2`),n.setHeader(`Cache-Control`,`public, max-age=31536000, immutable`),n.end(o.bytes)}),F().catch(t=>e.config?.logger.error(String(t))),Me();let t=()=>{T===e&&(O=!0,Y<W&&Oe())};if(e.hot?.on(me,t),k=()=>e.hot?.off(me,t),e.httpServer){let t=()=>{T===e&&(Ne(),I())};e.httpServer.once(`close`,t),A=()=>e.httpServer?.off(`close`,t)}},async closeBundle(){Ne(),(w||!x?.build?.watch)&&await I()},async closeWatcher(){Ne(),await I()},transformIndexHtml:{order:`pre`,async handler(e,{filename:t}){y.filter(e,t)?await y.extract(e,t):y.modules.has(t)&&await y.extract(``,t)}},async resolveId(e){return pe.has(e)||pe.has(e.replace(/^\//,``))||e.startsWith(`${b}?`)?b:null},async load(e){return e===b?w?await we():(G=!0,D):null},async transform(e,t){if(t===b)return null;let n=await Fe(e,t);if(!w||!/\.css(?:$|\?)/i.test(t))return n;let r=await se(n?.code??e,Ce);if(!r.hasChanged())return n;let i=r.generateMap({hires:!0,includeContent:!0,source:t});return{code:r.toString(),map:n?.map?f([i,n.map],()=>null).toString():i}},async watchChange(e,t){if(e===P||j.has(C(e)))try{await ze()}finally{L(e=>this.addWatchFile(e))}else X&&await X;if(t.event===`delete`){let t=new Set([e]);for(let n of[...y.modules.keys(),...R.keys(),...z.keys()])(n===e||n.startsWith(`${e}?`))&&t.add(n);for(let e of t)R.delete(e),z.delete(e),B.delete(e);await Promise.all(Array.from(t,e=>y.extract(``,e)))}},async generateBundle(e,t){if(w)return;let n,r=Q.get(this.environment??y)??new Map;for(let[i,a]of Object.entries(t)){if(a.type!==`asset`||!a.fileName.endsWith(`.css`))continue;let o=typeof a.source==`string`?a.source:new TextDecoder().decode(a.source);if(!o.includes(D)&&!o.includes(`;teacss=v1-`))continue;o.includes(D)&&(n??=K??await Ee());let c=new Set,u=async e=>(await se(o.replaceAll(D,n??``),t=>{let n=r.get(t.digest);n||(n=this.emitFile({type:`asset`,name:S(t),source:t.bytes}),r.set(t.digest,n));let i=this.getFileName(n);c.add(i);let a=x?.base??`/`;return a===`./`||a===``?`./${l.relative(l.dirname(e),i)}`:`${a}${i}`})).toString(),d=await u(a.fileName);for(let e of Object.values(t))if(e.type===`chunk`&&e.viteMetadata?.importedCss.has(a.fileName))for(let t of c)e.viteMetadata.importedAssets.add(t);let f=typeof e.assetFileNames!=`string`||e.assetFileNames.includes(`[hash`);if(typeof e.assetFileNames==`function`){let t={name:a.name,names:a.names,originalFileName:a.originalFileName??void 0,originalFileNames:a.originalFileNames,type:`asset`},n=e.assetFileNames({...t,source:a.source}),r=e.assetFileNames({...t,source:d});f=r.includes(`[hash`)||r!==n}if(!x||!(`environments`in x)||!f){a.source=d;continue}let p=e=>this.getFileName(this.emitFile({type:`asset`,name:a.name||s(a.fileName),...a.originalFileName?{originalFileName:a.originalFileName}:{},source:e})),m=p(d),h=await u(m);if(h!==d){let e=$.get(this.environment??y)??new Set;if(e.add(m),$.set(this.environment??y,e),d=h,m=p(d),await u(m)!==d)throw Error(`TeaCSS CSS output naming changes its font-relative directory after URL resolution`)}let g=new Set,_=x.build.manifest,v=x.build.ssrManifest;_&&g.add(typeof _==`string`?_:`.vite/manifest.json`),v&&g.add(typeof v==`string`?v:`.vite/ssr-manifest.json`);for(let e of Object.values(t))e.viteMetadata?.importedCss.delete(a.fileName)&&e.viteMetadata.importedCss.add(m),e.type===`chunk`?e.code=ge(e.code,a.fileName,m):e!==a&&typeof e.source==`string`&&g.has(e.fileName)&&(e.source=he(e.source,a.fileName,m));delete t[i]}}},Ve={name:`teacss:api`,enforce:`post`,api:{getContext:()=>y,getMode:()=>`global`},transform(e,t){return!w||t!==b||!e.includes(`import.meta.hot`)?null:`${e}\nimport.meta.hot.send(${JSON.stringify(me)});`},augmentChunkHash(){return q},generateBundle:{order:`post`,async handler(e,t){let n=Be.generateBundle;typeof n==`function`&&await n.call(this,e,t,!1);let r=$.get(this.environment??y);for(let e of r??[])delete t[e];r?.clear()}}};function He(e){return{name:e?`teacss:easing-source`:`teacss:easing-output`,enforce:e,transform(t,n){let r=x;if(!r||r.css.transformer!==`lightningcss`&&r.build.cssMinify!==`lightningcss`||!/\.(?:css|scss|sass|less|styl|stylus|sss)(?:$|\?)/i.test(n)||/[?&](?:raw|url)(?:&|$)/.test(n)||e&&(r.css.transformer!==`lightningcss`||!/\.css(?:$|\?)/i.test(n)))return null;let i=new ce(t);return te(i),i.hasChanged()?{code:i.toString(),map:i.generateMap({hires:!0,includeContent:!0,source:n})}:null}}}return[Be,Ve,He(`pre`),He()]}export{E as defineConfig,N as pluginTeacss};
|
|
1
|
+
import{createHash as e}from"node:crypto";import{mkdtempSync as t,realpathSync as n,rmSync as r,watch as i,writeFileSync as a}from"node:fs";import{tmpdir as o}from"node:os";import{basename as s,join as c,posix as l,resolve as u}from"node:path";import d from"node:process";import f from"@jridgewell/remapping";import{entryDiscoveryFiles as p}from"@teacss/config";import{SourceWatchRegistry as m,createSourceDeclarationCheck as h,planSourceWatches as g,probeSourceDeclarations as _,sourceDeclarationMemberPaths as v,sourceDeclarationStateOf as ee,sourceDeclarationWatchTargets as y}from"@teacss/config/internal/source-scan";import{CSS_PLACEHOLDER as b,isCssId as x}from"@teacss/core";import{prepareEasingCss as te,prepareEasingStylesheet as ne}from"@teacss/directives/internal/easing";import{applyTransformerPipeline as re,createContext as ie,getModuleOutput as ae}from"@teacss/runtime";import{bundledAssetName as S,collectBundledAssets as oe,rewriteBundledAssets as C}from"@teacss/runtime/internal/bundled-assets";import se from"magic-string";import{normalizePath as w,preprocessCSS as ce,transformWithEsbuild as le}from"vite";function T(e){return e.includes(`@apply`)||e.includes(`--at-apply`)||e.includes(`@screen`)||e.includes(`theme(`)||e.includes(`icon(`)}const ue=async()=>{let{default:e}=await import(`@teacss/directives`);return e()};function de(e=ue){let t;return{name:`@teacss/directives`,idFilter:x,async transform(n,r,i){if(T(n.original))return await(await(t??=e())).transform?.(n,r,i)}}}function fe(e,t,n){let r,a=!1,o=0,s,c=Promise.resolve(),l=new m((e,t,n)=>i(e,{recursive:n},t),()=>f(),n),u=h(e,async e=>{await c,!a&&e.signature!==r?.signature&&await f()},n);function d(){l.reconcile(g(y(e())))}function f(){if(!a)return c=c.then(async()=>{if(a)return;d();let n=o,i=s,c=await _(e()),l=await i;if(a||n!==o||(l&&(r=l),s=void 0,c.signature===r?.signature))return;let u=r;r=c;try{await t()}catch(e){throw r=u,e}!a&&n===o&&(r=c)}).catch(n),c}function p(){a=!0,u.retire(),l.retire()}return{resolved(){a||(d(),o++,s=_(e(),!0,r),s.catch(n),f())},retire:p,async close(){p(),await u.close(),await c}}}function E(e){return e}const pe=new Set([`virtual:teacss.css`,`teacss.css`]),D=`/*! ${b} */`,me=`teacss:css-ready`;function he(e,t,n){let r=e.lastIndexOf(t);return r<0||r+t.length!==e.length||r>0&&e[r-1]!==`/`?e:`${e.slice(0,r)}${n}`}function ge(e,t,n){let r;try{r=JSON.parse(e)}catch{return e}let i=!1,a=e=>{if(typeof e==`string`){let r=he(e,t,n);return i||=r!==e,r}if(Array.isArray(e))return e.map(a);if(e&&typeof e==`object`)for(let[t,n]of Object.entries(e))e[t]=a(n);return e};return a(r),i?JSON.stringify(r,void 0,2):e}function O(e,t){let n=0,r=``;for(let i=t;i<e.length;i++){let t=e[i];if(r){t===`\\`?i++:t===r&&(r=``);continue}if(t===`"`||t===`'`||t==="`")r=t;else if(t===`[`)n++;else if(t===`]`&&--n===0)return i}return-1}function k(e,t,n=0){for(let r=n;r<e.length;r++){let n=e[r];if(n===`'`||n===`"`||n==="`"){let t=n;for(r++;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t)break;continue}if(n===`/`&&e[r+1]===`/`){let t=e.indexOf(`
|
|
2
|
+
`,r+2);if(t<0)return-1;r=t;continue}if(n===`/`&&e[r+1]===`*`){let t=e.indexOf(`*/`,r+2);if(t<0)return-1;r=t+1;continue}if(e.startsWith(t,r))return r}return-1}function _e(e,t,n){let r=k(e,`const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=`);if(r<0)return e;let i=r+56;if(e[i]!==`[`)return e;let a=O(e,i);if(a<0||!e.startsWith(`)))=>i.map(i=>d[i]);`,a+1)||k(e,`__vite__mapDeps([`,a+20+1)<0)return e;let o=JSON.stringify(t),s=e.slice(i,a+1),c=s.replaceAll(o,JSON.stringify(n));return c===s?e:`${e.slice(0,i)}${c}${e.slice(a+1)}`}const A={chrome:`chrome`,edge:`edge`,firefox:`firefox`,hermes:!1,ie:`ie`,ios:`ios_saf`,node:!1,opera:`opera`,rhino:!1,safari:`safari`},j={2015:[`chrome49`,`edge13`,`safari10`,`ios10`,`firefox44`,`opera36`],2016:[`chrome50`,`edge13`,`safari10`,`ios10`,`firefox43`,`opera37`],2017:[`chrome58`,`edge15`,`safari11`,`ios11`,`firefox52`,`opera45`],2018:[`chrome63`,`edge79`,`safari12`,`ios12`,`firefox58`,`opera50`],2019:[`chrome73`,`edge79`,`safari12.1`,`ios12.1`,`firefox64`,`opera60`],2020:[`chrome80`,`edge80`,`safari14.1`,`ios14.5`,`firefox80`,`opera67`],2021:[`chrome85`,`edge85`,`safari14.1`,`ios14.5`,`firefox80`,`opera71`],2022:[`chrome94`,`edge94`,`safari16.4`,`ios16.4`,`firefox93`,`opera80`],2023:[`chrome110`,`edge110`,`safari16.4`,`ios16.4`,`firefox146`,`opera96`],2024:[`chrome119`,`edge119`,`safari17.4`,`ios17.4`,`firefox145`,`opera105`],2025:[`chrome136`,`edge136`,`safari26.0`,`ios26.0`,`firefox138`,`opera121`]};function ve(e){let t={},n=(Array.isArray(e)?e:e?[e]:[]).flatMap(e=>{let t=/^es(6|\d{4})$/.exec(e);if(!t)return e;let n=t[1]===`6`?2015:Number(t[1]),r=j[n];if(!r)throw Error(`Unsupported target "${e}"`);return r});for(let e of n){if(e===`esnext`)continue;let n=/^([a-z_]+)(\d+)(?:\.(\d+))?$/i.exec(e),r=n&&A[n[1].toLowerCase()];if(r===!1)continue;if(!n||!r)throw Error(`Unsupported target "${e}"`);let i=Number(n[2])<<16|Number(n[3]??0)<<8;(!t[r]||i<t[r])&&(t[r]=i)}return t}function M(i,m={}){let h,g=i;if(i&&typeof i==`object`){h=i.lightningcss;let e={...i};delete e.lightningcss,delete e.mode,g=Object.keys(e).length?e:void 0}let _,y=ie(g,{envMode:d.env.NODE_ENV===`development`?`dev`:`build`,...m,transformers:[...m.transformers??[],de()]},e=>{_=ee(e)}),b=`/__tea.css`,x,T=!1,ue=!0,E,he,O,k,A=!1,j,M,N=new Set,P,F,I,ye=0;async function be(){P??=fe(()=>_,async()=>{T?await He():I&&a(I,String(++ye))},e=>x?.logger.error(e instanceof Error?e.message:String(e)));try{await P.resolved()}catch(e){throw P.retire(),P=void 0,e}}async function xe(){let e=P;P=void 0,await e?.close(),F&&r(F,{recursive:!0,force:!0}),F=void 0,I=void 0}function Se(e){let t=new Set(v(_).map(w));for(let n of N)t.has(n)||e(n);I&&e(I)}let L=new Map,R=new Map,z=new Map,B=new Set,V,H,U=0,Ce=!1,W,G,K=0,q=0,J,Y;function we(){Y=void 0}function Te(e=y.root){let t=y.getConfigFileList().map(w),n=new Set(t);if(typeof g==`object`){N=n;return}let r=w(typeof g==`string`?u(e,g):e);if(!t.includes(r))for(let e of p)n.add(w(c(r,e)));N=n}async function Ee(){let{prefix:e}=await y.getVMPRegexes();return b=`/${e}.css`,b}let De=new Map,X=new WeakMap,Z=new WeakMap;function Oe(e){let t=S(e);return De.set(t,e),`${x?.base??`/`}__teacss_fonts/${t}`}async function ke(){let e=(await C(await Ae(),Oe)).toString();return ue=/@import/i.test(e),e}async function Ae(){await y.flushTasks();let e=Y;if(e&&e.config===y.generator.config&&e.tokens.length===y.tokens.size){let t=0,n=!0;for(let r of y.tokens)if(e.tokens[t++]!==r){n=!1;break}if(n)return await e.promise}let t=[...y.tokens],n={config:y.generator.config,promise:y.generator.generate(t,{minify:!1}).then(({css:e})=>e),tokens:t};Y=n;try{return await n.promise}catch(e){throw Y===n&&(Y=void 0),e}}async function je(){let e=await Ae(),t=x;if(!t||!(`environments`in t))return e;let n=u(t.root,b.slice(1)),r=t.css.transformer===`lightningcss`,i=r?ne(e):e;if(r&&t.build.cssMinify===`lightningcss`&&!/@import/i.test(i))return Me(i,n,t);let a=r&&t.build.cssMinify?{...t,build:{...t.build,cssMinify:!1}}:t,o=(await ce(i,n,a)).code;if(!t.build.cssMinify)return o;if(t.build.cssMinify===`esbuild`){let e=t.esbuild||{},r={charset:e.charset,legalComments:e.legalComments,logLevel:e.logLevel,logLimit:e.logLimit,logOverride:e.logOverride},i=e.minifyIdentifiers!=null||e.minifySyntax!=null||e.minifyWhitespace!=null?{minifyIdentifiers:e.minifyIdentifiers??!0,minifySyntax:e.minifySyntax??!0,minifyWhitespace:e.minifyWhitespace??!0}:{minify:!0},a=await le(o,n,{...r,...i,loader:`css`,sourcemap:!1,target:t.build.cssTarget||void 0},void 0,t,void 0,!0);for(let e of a.warnings)t.logger.warn(`[esbuild css minify] ${e.text}`);return a.code}return Me(ne(o),n,t)}async function Me(e,t,n){let{transform:r}=await import(`lightningcss`),i=n.css.lightningcss?.visitor,a=r({...n.css.lightningcss,visitor:i===E?he:i,code:Buffer.from(e),cssModules:void 0,filename:t,minify:!0,targets:ve(n.build.cssTarget)});for(let e of a.warnings)n.logger.warn(`[lightningcss minify] ${e.message}`);return new TextDecoder().decode(a.code)}function Ne(){if(!O)return;let e=O;V&&clearTimeout(V),V=setTimeout(()=>{V=void 0;let t=H,n=(async()=>{if(t&&await t.catch(()=>{}),O!==e||(A?q:K)>=U||(await Be(),await e.waitForRequestsIdle?.(),O!==e||(A?q:K)>=U))return;let n=U,r=e.moduleGraph.getModuleById(b);if(!r){K=n,A&&(q=n);return}A?(e.moduleGraph.invalidateModule(r),e.watcher.emit(`change`,r.file??b),q=n,K=n):(e.moduleGraph.invalidateModule(r),K=n)})();H=n,n.then(()=>{H===n&&(H=void 0,O===e&&(A?q:K)<U&&Ne())},t=>{H===n&&(H=void 0),e.config.logger.error(`TeaCSS failed to invalidate its virtual stylesheet`,{error:t})})},20)}function Pe(){we(),O&&(U++,Ne())}function Fe(e){if(!O)return;let t=!1;for(let n of e){let e=O.moduleGraph.getModuleById(n);e&&(O.moduleGraph.invalidateModule(e),t=!0)}t&&O.ws.send({type:`full-reload`})}function Ie(){V&&clearTimeout(V),V=void 0,A=!1,j?.(),j=void 0,M?.(),M=void 0,O=void 0,H=void 0}function Q(){k??=y.onInvalidate(Pe)}function $(){we(),Ie(),k?.(),k=void 0}async function Le(e,t){let n={};L.set(t,n),R.set(t,e);try{let r=await re(y,e,t);return L.get(t)===n?(r?z.set(t,r.code):z.delete(t),y.filter(e,t)?await y.extract(r?.code??e,t):y.modules.has(t)&&await y.extract(``,t),r??null):r??null}finally{L.get(t)===n&&L.delete(t)}}async function Re(e,t){J&&await J;let n=Le(e,t),r=n.then(()=>{},()=>{});B.add(r);try{return await n}finally{B.delete(r)}}async function ze(e){let t=new Set(e),n=new Set([...R.keys(),...z.keys()]),r=[];for(let e of n)t.has(e)||(L.delete(e),R.delete(e),z.delete(e),r.push(y.extract(``,e)));await Promise.all(r)}async function Be(){for(;B.size;)await Promise.all(B)}async function Ve(){let e=Array.from(R),t=new Map(e.map(([e,t])=>[e,z.get(e)??t]));try{await y.reloadConfig()}finally{Te(y.root),(O||I)&&await be()}await Ee();let n=[];for(let[r,i]of e){let e=ae(y,r)??i;e===i?z.delete(r):z.set(r,e),e!==t.get(r)&&n.push(r)}Fe(n)}async function He(){let e=J,t=(async()=>{e&&await e.catch(()=>{}),await Be(),await Ve()})();J=t;try{await t}finally{J===t&&(J=void 0)}}let Ue={name:`teacss`,enforce:`pre`,config(e){if(h===!1)return;let t=typeof h==`object`?h:void 0,n={};return e.css?.transformer===void 0&&(n.css={transformer:`lightningcss`,...t?{lightningcss:t}:{}}),e.build?.cssMinify===void 0&&(n.build={cssMinify:`lightningcss`}),n},async configResolved(e){if(x=e,e.css.transformer===`lightningcss`){let{createEasingImportVisitor:t}=await import(`./easing-imports-DvRhTc2n.js`),n=e.css.lightningcss??{};he=n.visitor,E=t(n,!0,e=>T&&e===b&&!ue),e.css.lightningcss={...n,visitor:E}}T=e.command===`serve`,await y.updateRoot(e.root),Te(e.root),await Ee(),Q()},async buildStart(){X.set(this.environment??y,new Map),Z.set(this.environment??y,new Set),Ce=!1,W=void 0,G=void 0,Q(),Te(),!T&&x?.build?.watch?(I||(F=n(t(c(o(),`teacss-vite-watch-`))),I=c(F,`invalidate`),a(I,`0`)),Se(e=>this.addWatchFile(e)),await be()):Se(e=>this.addWatchFile(e))},async buildEnd(t){if(T||t)return;if(typeof this.getModuleIds==`function`&&await ze(this.getModuleIds()),!(Ce||typeof this.getModuleInfo==`function`&&this.getModuleInfo(b)!=null)){G=void 0;return}W=await je();let n=X.get(this.environment??y)??new Map;X.set(this.environment??y,n);for(let{asset:e}of oe(W))n.has(e.digest)||n.set(e.digest,this.emitFile({type:`asset`,name:S(e),source:e.bytes}));G=e(`sha256`).update(W).digest(`hex`)},configureServer(e){Ie(),O=e,e.middlewares?.use((t,n,r)=>{let i=`${e.config.base}__teacss_fonts/`,a=t.url?.split(`?`,1)[0],o=a?.startsWith(i)?De.get(a.slice(i.length)):void 0;if(!o)return r();n.setHeader(`Content-Type`,`font/woff2`),n.setHeader(`Cache-Control`,`public, max-age=31536000, immutable`),n.end(o.bytes)}),be().catch(t=>e.config?.logger.error(String(t))),Q();let t=()=>{O===e&&(A=!0,q<U&&Ne())};if(e.hot?.on(me,t),j=()=>e.hot?.off(me,t),e.httpServer){let t=()=>{O===e&&($(),xe())};e.httpServer.once(`close`,t),M=()=>e.httpServer?.off(`close`,t)}},async closeBundle(){$(),(T||!x?.build?.watch)&&await xe()},async closeWatcher(){$(),await xe()},transformIndexHtml:{order:`pre`,async handler(e,{filename:t}){y.filter(e,t)?await y.extract(e,t):y.modules.has(t)&&await y.extract(``,t)}},async resolveId(e){return pe.has(e)||pe.has(e.replace(/^\//,``))||e.startsWith(`${b}?`)?b:null},async load(e){return e===b?T?await ke():(Ce=!0,D):null},async transform(e,t){if(t===b)return null;let n=await Re(e,t);if(!T||!/\.css(?:$|\?)/i.test(t))return n;let r=await C(n?.code??e,Oe);if(!r.hasChanged())return n;let i=r.generateMap({hires:!0,includeContent:!0,source:t});return{code:r.toString(),map:n?.map?f([i,n.map],()=>null).toString():i}},async watchChange(e,t){if(e===I||N.has(w(e)))try{await He()}finally{Se(e=>this.addWatchFile(e))}else J&&await J;if(t.event===`delete`){let t=new Set([e]);for(let n of[...y.modules.keys(),...L.keys(),...R.keys()])(n===e||n.startsWith(`${e}?`))&&t.add(n);for(let e of t)L.delete(e),R.delete(e),z.delete(e);await Promise.all(Array.from(t,e=>y.extract(``,e)))}},async generateBundle(e,t){if(T)return;let n,r=X.get(this.environment??y)??new Map;for(let[i,a]of Object.entries(t)){if(a.type!==`asset`||!a.fileName.endsWith(`.css`))continue;let o=typeof a.source==`string`?a.source:new TextDecoder().decode(a.source);if(!o.includes(D)&&!o.includes(`;teacss=v1-`))continue;o.includes(D)&&(n??=W??await je());let c=new Set,u=async e=>(await C(o.replaceAll(D,n??``),t=>{let n=r.get(t.digest);n||(n=this.emitFile({type:`asset`,name:S(t),source:t.bytes}),r.set(t.digest,n));let i=this.getFileName(n);c.add(i);let a=x?.base??`/`;return a===`./`||a===``?`./${l.relative(l.dirname(e),i)}`:`${a}${i}`})).toString(),d=await u(a.fileName);for(let e of Object.values(t))if(e.type===`chunk`&&e.viteMetadata?.importedCss.has(a.fileName))for(let t of c)e.viteMetadata.importedAssets.add(t);let f=typeof e.assetFileNames!=`string`||e.assetFileNames.includes(`[hash`);if(typeof e.assetFileNames==`function`){let t={name:a.name,names:a.names,originalFileName:a.originalFileName??void 0,originalFileNames:a.originalFileNames,type:`asset`},n=e.assetFileNames({...t,source:a.source}),r=e.assetFileNames({...t,source:d});f=r.includes(`[hash`)||r!==n}if(!x||!(`environments`in x)||!f){a.source=d;continue}let p=e=>this.getFileName(this.emitFile({type:`asset`,name:a.name||s(a.fileName),...a.originalFileName?{originalFileName:a.originalFileName}:{},source:e})),m=p(d),h=await u(m);if(h!==d){let e=Z.get(this.environment??y)??new Set;if(e.add(m),Z.set(this.environment??y,e),d=h,m=p(d),await u(m)!==d)throw Error(`TeaCSS CSS output naming changes its font-relative directory after URL resolution`)}let g=new Set,_=x.build.manifest,v=x.build.ssrManifest;_&&g.add(typeof _==`string`?_:`.vite/manifest.json`),v&&g.add(typeof v==`string`?v:`.vite/ssr-manifest.json`);for(let e of Object.values(t))e.viteMetadata?.importedCss.delete(a.fileName)&&e.viteMetadata.importedCss.add(m),e.type===`chunk`?e.code=_e(e.code,a.fileName,m):e!==a&&typeof e.source==`string`&&g.has(e.fileName)&&(e.source=ge(e.source,a.fileName,m));delete t[i]}}},We={name:`teacss:api`,enforce:`post`,api:{getContext:()=>y,getMode:()=>`global`},transform(e,t){return!T||t!==b||!e.includes(`import.meta.hot`)?null:`${e}\nimport.meta.hot.send(${JSON.stringify(me)});`},augmentChunkHash(){return G},generateBundle:{order:`post`,async handler(e,t){let n=Ue.generateBundle;typeof n==`function`&&await n.call(this,e,t,!1);let r=Z.get(this.environment??y);for(let e of r??[])delete t[e];r?.clear()}}};function Ge(e){return{name:e?`teacss:easing-source`:`teacss:easing-output`,enforce:e,transform(t,n){let r=x;if(!r||r.css.transformer!==`lightningcss`&&r.build.cssMinify!==`lightningcss`||!/\.(?:css|scss|sass|less|styl|stylus|sss)(?:$|\?)/i.test(n)||/[?&](?:raw|url)(?:&|$)/.test(n)||e&&(r.css.transformer!==`lightningcss`||!/\.css(?:$|\?)/i.test(n)))return null;let i=new se(t);return te(i),i.hasChanged()?{code:i.toString(),map:i.generateMap({hires:!0,includeContent:!0,source:n})}:null}}}return[Ue,We,Ge(`pre`),Ge()]}export{E as defineConfig,M as pluginTeacss};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teacss/vite",
|
|
3
|
-
"version": "0.9.0-alpha.
|
|
3
|
+
"version": "0.9.0-alpha.3",
|
|
4
4
|
"description": "Vite plugin for TeaCSS.",
|
|
5
5
|
"homepage": "https://css.teasim.com",
|
|
6
6
|
"funding": "https://github.com/sponsors/billgo",
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@jridgewell/remapping": "^2.3.5",
|
|
26
|
-
"@teacss/config": "0.9.0-alpha.
|
|
27
|
-
"@teacss/core": "0.9.0-alpha.
|
|
28
|
-
"@teacss/directives": "0.9.0-alpha.
|
|
29
|
-
"@teacss/engine": "0.
|
|
30
|
-
"@teacss/runtime": "0.9.0-alpha.
|
|
26
|
+
"@teacss/config": "0.9.0-alpha.3",
|
|
27
|
+
"@teacss/core": "0.9.0-alpha.3",
|
|
28
|
+
"@teacss/directives": "0.9.0-alpha.3",
|
|
29
|
+
"@teacss/engine": "0.9.0-alpha.3",
|
|
30
|
+
"@teacss/runtime": "0.9.0-alpha.3",
|
|
31
31
|
"lightningcss": "^1.33.0",
|
|
32
32
|
"magic-string": "^1.2.3"
|
|
33
33
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{readFileSync as e}from"node:fs";import{prepareEasingStylesheet as t}from"@teacss/directives/internal/easing";import{composeVisitors as n,transform as r}from"lightningcss";const i=new Set([`animation`,`animation-timing-function`,`transition`,`transition-timing-function`]);function a(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function o(e){if(!a(e)||typeof e.type!=`string`||!a(e.value)||!a(e.value.loc))return;let{line:t,column:n}=e.value.loc;if(typeof t==`number`&&typeof n==`number`&&typeof e.value.loc.source_index==`number`)return{type:e.type,value:e.value,key:`${e.type}:${t}:${n}`}}function s(e,t=[]){if(Array.isArray(e))for(let n of e)s(n,t);else if(a(e)){let n=o(e);n&&t.push(n);for(let n of Object.values(e))s(n,t)}return t}function c(e,t=[]){if(Array.isArray(e))for(let n of e)c(n,t);else if(a(e)){if(o(e))return t;if(Array.isArray(e.declarations)&&Array.isArray(e.importantDeclarations))t.push(e);else for(let n of Object.values(e))c(n,t)}return t}function l(e){return a(e)&&typeof e.property==`string`&&i.has(e.property)}function u(e,t){return JSON.stringify(e)===JSON.stringify(t)}function d(e,t,n){let i=[];return r({...n,filename:t,code:Buffer.from(e),minify:!1,sourceMap:!1,visitor:{StyleSheet(e){i=s(e.rules)}}}),i}function f(n,r,i){let a=new Map;if(i===void 0&&!/\.css$/i.test(n))return a;let o=i??e(n,`utf8`),s=t(o);if(o===s)return a;let f=d(o,n,r),p=d(s,n,r);if(f.length!==p.length)return a;for(let e=0;e<f.length;e++){let t=f[e],n=p[e];if(t.type!==n.type)continue;let r=c(t.value),i=c(n.value);if(r.length!==i.length)continue;let o=[];for(let e=0;e<r.length;e++)for(let t of[`declarations`,`importantDeclarations`]){let n=r[e][t].filter(l),a=i[e][t].filter(l);n.length===a.length&&!u(n,a)&&o.push({before:n,after:a,block:e,field:t})}o.length&&a.set(t.key,o)}return a}function p(e,t=!1){return function(r){function i(e){if(t&&typeof e?.resolver?.read!=`function`&&!(e?.code instanceof Uint8Array))throw Error(`TeaCSS requires the Lightning CSS visitor factory to expose native source input before parsing.`)}i(this);let d=typeof e.visitor==`function`?e.visitor.call(this,r):e.visitor;i(this);let p=new Map;this?.code&&p.set(this.filename,Buffer.from(this.code).toString());let m=this?.resolver,h=m?.read;this&&m&&h&&(this.resolver={...m,resolve:m.resolve?.bind(m),async read(e){let t=await h.call(m,e);return p.set(e,t),t}});let g=n([{Rule(){},RuleExit(){},Declaration(){}},d??{}]),_=[],v=this,y=e,b=!1,x=[],S=new Map,C=[];function w(e){if(!a(e.value.loc))return;let n=e.value.loc.source_index;if(typeof n!=`number`)return;let r=p.get(_[n]);if(t&&r===void 0)throw Error(`TeaCSS did not capture Lightning CSS input for ${_[n]}. The native source boundary is incompatible.`);if(n===0&&r===void 0)return;let i=S.get(n);return i||(i=f(_[n],y,r),S.set(n,i)),i.get(e.key)}function T(e){let t=w(e);if(!t)return;let n=c(e.value);for(let e of t){let t=n[e.block]?.[e.field];if(!t||!u(t.filter(l),e.before))continue;let r=0;for(let n=0;n<t.length;n++)l(t[n])&&(t[n]=e.after[r++])}}return{...d,StyleSheet(t){_=t.sources;let n=/\.module\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/.test(_[0]);if(y=v?{...v,cssModules:v.cssModules??!1}:{...e,cssModules:n?e.cssModules??!0:!1},!d?.StyleSheet)return;for(let e of s(t.rules))T(e);let r=d.StyleSheet(t);return b=!!r,r},Rule(e){C=[];let t=b||x.at(-1)?.authoritative===!0;x.push({authoritative:t,exits:1});let n=o(e),r=!t&&n?w(n):void 0;if(n&&r){let e=c(n.value);for(let t=0;t<e.length;t++)for(let n of[`importantDeclarations`,`declarations`]){let i=e[t][n].filter(l),a=r.find(e=>e.block===t&&e.field===n&&u(i,e.before));for(let e=0;e<i.length;e++)C.push({before:i[e],after:a?.after[e]??i[e]})}}if(!d?.Rule)return;if(!t)for(let t of s(e))T(t);let i=g.Rule(e);if(i){C=[];let e=x[x.length-1];e.authoritative=!0,e.exits=Array.isArray(i)?i.length:1,e.exits===0&&x.pop()}return i},RuleExit(e){let t=x.at(-1);return t&&--t.exits===0&&x.pop(),g.RuleExit(e)},Declaration(e){let t=e;if(l(e)){let n=C.shift();n&&u(e,n.before)?t=n.after:C=[]}let n=g.Declaration(t);if(n)return n;if(!u(e,t))return t}}}}export{p as createEasingImportVisitor};
|