@razorwind/core 0.0.46 → 0.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{config-25eDAKIq.d.cts → config-BtscEr7S.d.cts} +17 -5
- package/dist/config-BtscEr7S.d.cts.map +1 -0
- package/dist/{config-rgbP9zhp.d.mts → config-CNTGHrST.d.mts} +16 -4
- package/dist/config-CNTGHrST.d.mts.map +1 -0
- package/dist/flatten-tokens-CMlVe_J6.d.cts +54 -0
- package/dist/flatten-tokens-CMlVe_J6.d.cts.map +1 -0
- package/dist/flatten-tokens-DgTPHEhI.d.mts +54 -0
- package/dist/flatten-tokens-DgTPHEhI.d.mts.map +1 -0
- package/dist/fonts-B0ESWBBC.mjs +2 -0
- package/dist/fonts-B0ESWBBC.mjs.map +1 -0
- package/dist/fonts-BiuIJVev.mjs +10 -0
- package/dist/fonts-BiuIJVev.mjs.map +1 -0
- package/dist/fonts-CkBPEFie.cjs +9 -0
- package/dist/fonts-vhz5FAsy.cjs +1 -0
- package/dist/{index-D1ayVOTE.d.mts → index-B7MsziQp.d.cts} +4 -4
- package/dist/{index-Dk-i27fI.d.cts.map → index-B7MsziQp.d.cts.map} +1 -1
- package/dist/{index-BjSOzDOH.d.cts → index-CwN0c1Q4.d.cts} +1 -1
- package/dist/index-CzbZzpnz.d.mts +100 -0
- package/dist/index-CzbZzpnz.d.mts.map +1 -0
- package/dist/{index-Dk-i27fI.d.cts → index-CzjDptav.d.mts} +5 -5
- package/dist/{index-D1ayVOTE.d.mts.map → index-CzjDptav.d.mts.map} +1 -1
- package/dist/{index-DM8vit-J.d.mts → index-D5L2WXYk.d.mts} +1 -1
- package/dist/index-Di7vqmsi.d.cts +100 -0
- package/dist/index-Di7vqmsi.d.cts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +82 -15
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +82 -15
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/lib/fonts/index.cjs +1 -0
- package/dist/lib/fonts/index.d.cts +2 -0
- package/dist/lib/fonts/index.d.mts +2 -0
- package/dist/lib/fonts/index.mjs +1 -0
- package/dist/lib/tokens/index.cjs +1 -1
- package/dist/lib/tokens/index.d.cts +1 -1
- package/dist/lib/tokens/index.d.mts +1 -1
- package/dist/lib/tokens/index.mjs +1 -1
- package/dist/{plugin-CAoFfyMa.d.mts → plugin-0UYp_yIy.d.cts} +2 -2
- package/dist/{plugin-m5Bm4WrK.d.cts.map → plugin-0UYp_yIy.d.cts.map} +1 -1
- package/dist/{plugin-m5Bm4WrK.d.cts → plugin-CH6vFnxu.d.mts} +2 -2
- package/dist/plugin-CH6vFnxu.d.mts.map +1 -0
- package/dist/plugin.d.cts +2 -2
- package/dist/plugin.d.mts +2 -2
- package/dist/schema/index.cjs +1 -1
- package/dist/schema/index.d.cts +3 -3
- package/dist/schema/index.d.mts +3 -3
- package/dist/schema/index.mjs +1 -1
- package/dist/schema-BCofDJWf.cjs +1 -0
- package/dist/schema-BwOBgJIM.d.cts +545 -0
- package/dist/schema-BwOBgJIM.d.cts.map +1 -0
- package/dist/schema-BwOBgJIM.d.mts +545 -0
- package/dist/schema-BwOBgJIM.d.mts.map +1 -0
- package/dist/schema-CXK5pVmJ.mjs +2 -0
- package/dist/schema-CXK5pVmJ.mjs.map +1 -0
- package/dist/tokens-By75va9Y.cjs +7 -0
- package/dist/tokens-DFYNBFFR.mjs +8 -0
- package/dist/tokens-DFYNBFFR.mjs.map +1 -0
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +78 -92
- package/dist/utils/index.d.cts.map +1 -1
- package/dist/utils/index.d.mts +78 -92
- package/dist/utils/index.d.mts.map +1 -1
- package/dist/utils/index.mjs +1 -1
- package/dist/utils-CDYdsyyW.mjs +2 -0
- package/dist/utils-CDYdsyyW.mjs.map +1 -0
- package/dist/utils-DyK4l_bT.cjs +1 -0
- package/package.json +16 -2
- package/dist/config-25eDAKIq.d.cts.map +0 -1
- package/dist/config-rgbP9zhp.d.mts.map +0 -1
- package/dist/plugin-CAoFfyMa.d.mts.map +0 -1
- package/dist/schema-93daQRSN.cjs +0 -1
- package/dist/schema-CsbyELyn.d.cts +0 -263
- package/dist/schema-CsbyELyn.d.cts.map +0 -1
- package/dist/schema-CsbyELyn.d.mts +0 -263
- package/dist/schema-CsbyELyn.d.mts.map +0 -1
- package/dist/schema-buR6a6IP.mjs +0 -2
- package/dist/schema-buR6a6IP.mjs.map +0 -1
- package/dist/tokens-CFh9AQab.mjs +0 -2
- package/dist/tokens-CFh9AQab.mjs.map +0 -1
- package/dist/tokens-pHmukPOW.cjs +0 -1
- package/dist/utils-B5uabOd5.mjs +0 -2
- package/dist/utils-B5uabOd5.mjs.map +0 -1
- package/dist/utils-BiL8zQzg.cjs +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./schema-93daQRSN.cjs"),n=require("./tokens-pHmukPOW.cjs"),r=require("./plugin.cjs");let i=require("@power-plant/core"),a=require("defu"),o=require("@stryke/fs/exists"),s=require("@stryke/fs/is-file"),c=require("@stryke/fs/json"),l=require("@stryke/fs/list-files"),u=require("@stryke/path/append"),d=require("@stryke/path/file-path-fns"),f=require("@stryke/path/join"),p=require("@stryke/string-format/title-case"),m=require("@stryke/type-checks/is-set-object"),h=require("@stryke/type-checks/is-set-string"),g=require("node:fs/promises"),_=require("node:path"),ee=require("@stryke/env/get-env-paths"),v=require("@stryke/path/find"),y=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),b=require("c12"),ne=require("jiti"),x=require("node:fs"),S=require("node:os");S=e.t(S,1);var re=`0.0.46`;function C(e){return!!((0,h.isSetString)(e)||(0,m.isSetObject)(e)&&`url`in e&&(0,h.isSetString)(e.url))}function w(e){if((0,h.isSetString)(e))return e;if((0,m.isSetObject)(e)&&`url`in e&&(0,h.isSetString)(e.url))return e.url}const ie=t.o.partial(),T=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),E=(0,a.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function D(e,t){return(0,_.isAbsolute)(t)?t:(0,_.resolve)(e,t)}function ae(e){return Array.isArray(e)?e.filter(h.isSetString):(0,h.isSetString)(e)?[e]:[]}function O(e){let t=e.toLowerCase();if(T.has(t))return t}function oe(e){let t=(0,d.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&T.has(t))}function k(e){if(!e)return;let n=t.a.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.a.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function A(e){if(!e)return;let n=t.s.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){if((0,h.isSetString)(n)){let e=(0,d.findFileName)(n,{withExtension:!1})||n,i=t.s.safeParse({name:e,path:n});i.success&&r.push(i.data);continue}let e=t.s.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function j(e){if(!(0,m.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=ie.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function M(e){return(0,m.isSetObject)(e)&&`path`in e}async function se(e){let t=(0,f.joinPaths)(e,`package.json`);if(!(0,o.existsSync)(t))return;let n;try{n=await(0,c.readJsonFile)(t)}catch{return}let r={};(0,h.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,h.isSetString)(n.description)&&(r.description=n.description),(0,h.isSetString)(n.version)&&(r.version=n.version),(0,h.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=w(n.repository);if(i&&(r.repository=i),(0,m.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,m.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(h.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,s,l,u;M(a)?l=k(a):(0,m.isSetObject)(a)&&(s=j(a),`files`in a&&(l=k(a.files)),`usage`in a&&(u=A(a.usage)));let d=E(s??{},r);return l?.length&&(d.files=l),u?.length&&(d.usage=u),Object.keys(d).length>0?d:void 0}async function ce(e){let t=(0,f.joinPaths)(e,`component.json`);if(!(0,o.existsSync)(t))return;let n;try{n=await(0,c.readJsonFile)(t)}catch{return}if(M(n)||Array.isArray(n)){let e=k(n);if(e)return{files:e}}if(!(0,m.isSetObject)(n))return;let r=j(n)??{},i=`files`in n?k(n.files):void 0,a=`usage`in n?A(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function le(e){try{return(await(0,g.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&oe(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function ue(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,u.appendPath)(t.path,e),r=(0,d.findFileExtensionSafe)(t.path)??``,i=t.language??O(r),a=t.name||(0,d.findFileName)(t.path,{withExtension:!1})||t.path,s=t.content===void 0?(0,o.existsSync)(n)?await(0,g.readFile)(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...s===void 0?{}:{content:s}}}));let n=(0,f.joinPaths)(e,`usage`);if(!(0,o.existsSync)(n)||!(0,s.isDirectory)(n))return;let r=await le(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,f.joinPaths)(n,e),r=O((0,d.findFileExtensionSafe)(e)??``),i=(0,d.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,p.titleCase)(i),path:t,content:await(0,g.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function de(e,t){let n=t??(await(0,l.listFiles)(e)).filter(e=>(0,d.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,d.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,g.readFile)((0,u.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,d.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,g.readFile)((0,u.appendPath)(t.path,e),`utf8`):void 0,path:(0,u.appendPath)(t.path,e)}))}async function fe(e){let n=await se(e),r=await ce(e);if(!n&&!r)return;let i=E(r??{},n??{}),a=(0,h.isSetString)(i.name)?i.name:(0,d.findFolderName)(e),o=(0,h.isSetString)(i.title)?i.title:(0,p.titleCase)(a),s=t.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await ue(e,s.data.usage);return{...s.data,files:await de(e,s.data.files),...c?.length?{usage:c}:{}}}async function N(e){let t={},n=ae(e.options.componentsPath);for(let r of n){let n=D(e.cwd,r);if(!(!(0,o.existsSync)(n)||!(0,s.isDirectory)(n)))try{let e=await(0,g.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await fe((0,f.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const pe=t.r.partial(),P=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),F=(0,a.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function me(e,t){return(0,_.isAbsolute)(t)?t:(0,_.resolve)(e,t)}function he(e){return Array.isArray(e)?e.filter(h.isSetString):(0,h.isSetString)(e)?[e]:[]}function I(e){let t=e.toLowerCase();if(P.has(t))return t}function L(e){let t=(0,d.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&P.has(t))}function ge(e){return n.b.test(e)}async function R(e){try{return(await(0,g.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&L(e.name)).map(e=>e.name)}catch{return[]}}function z(e){if(!e)return;let n=t.n.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.n.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function B(e){if(!(0,m.isSetObject)(e))return;let t=pe.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function V(e){return(0,m.isSetObject)(e)&&`path`in e}async function H(e,t,n){let r=(0,u.appendPath)(e,t),i=I((0,d.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,g.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function _e(e){let t=(0,f.joinPaths)(e,`package.json`);if(!(0,o.existsSync)(t))return;let n;try{n=await(0,c.readJsonFile)(t)}catch{return}let r={};(0,h.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,h.isSetString)(n.description)&&(r.description=n.description),(0,h.isSetString)(n.version)&&(r.version=n.version),(0,h.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=w(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(h.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,s,l;V(a)?l=z(a):(0,m.isSetObject)(a)&&(s=B(a),`files`in a&&(l=z(a.files)));let u=F(s??{},r);return l?.length&&(u.files=l),Object.keys(u).length>0?u:void 0}async function ve(e){let t=(0,f.joinPaths)(e,`icon.json`);if(!(0,o.existsSync)(t))return;let n;try{n=await(0,c.readJsonFile)(t)}catch{return}if(V(n)||Array.isArray(n)){let e=z(n);if(e)return{files:e}}return B(n)}async function ye(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,u.appendPath)(t.path,e),r=(0,d.findFileExtensionSafe)(t.path)??``,i=t.type??I(r)??`file`,a=t.content===void 0?i===`svg`?await(0,g.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await R(e);return Promise.all(n.map(t=>H(t,e)))}async function be(e){let n=await _e(e),r=await ve(e),i=await R(e);if(!n&&!r&&i.length===0)return;let a=F(r??{},n??{}),o=(0,h.isSetString)(a.name)?a.name:(0,d.findFolderName)(e),s=(0,h.isSetString)(a.title)?a.title:(0,p.titleCase)(o),c=t.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await ye(e,c.data.files)}}function U(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,p.titleCase)(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function xe(e,t,n){let r=await R(e);for(let i of r){let r=(0,d.findFileName)(i,{withExtension:!1});r&&U(n,r,await H(i,e,t))}}async function W(e){let t={},n=he(e.options.iconsPath);for(let r of n){let n=me(e.cwd,r);if(!(!(0,o.existsSync)(n)||!(0,s.isDirectory)(n)))try{let e=await(0,g.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,f.joinPaths)(n,r.name);if(r.isDirectory()){if(ge(r.name)){await xe(e,r.name,t);continue}let n=await be(e);if(n){let e=t[n.name];t[n.name]=e?F(n,e):n}continue}if(r.isFile()&&L(r.name)){let e=(0,d.findFileName)(r.name,{withExtension:!1});if(!e)continue;U(t,e,await H(r.name,n))}}}catch{continue}}return t}function G(e,t){let n=e[t];return(0,h.isSetString)(n)?n:void 0}function K(e){let t={};(0,h.isSetString)(e.name)&&(t.name=e.name),(0,h.isSetString)(e.description)&&(t.description=e.description),(0,h.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=w(e.repository);n&&(t.repository=n),(0,h.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,m.isSetObject)(r)){let t=r,n=G(t,`title`),a=G(t,`name`),o=G(t,`description`),s=G(t,`homepage`),c=G(t,`logo`),l=w(t.repository);a?i.name=a:(0,h.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,h.isSetString)(i.name)&&(i.title=(0,p.titleCase)(i.name)),o?i.description=o:(0,h.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:C(e.homepage)?i.homepage=w(e.homepage):C(e.author)?i.homepage=w(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&C(e.maintainers[0])?i.homepage=w(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&C(e.contributors[0])?i.homepage=w(e.contributors[0]):C(e.bugs)&&(i.homepage=w(e.bugs)),c&&(i.logo=c),l?i.repository=l:C(e.repository)&&(i.repository=w(e.repository))}return(0,a.defu)(i,t)}function q(e){let t={};return(0,h.isSetString)(e.name)&&(t.name=e.name),(0,h.isSetString)(e.title)&&(t.title=e.title),(0,h.isSetString)(e.description)&&(t.description=e.description),(0,h.isSetString)(e.repository)&&(t.repository=e.repository),(0,h.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,h.isSetString)(e.logo)&&(t.logo=e.logo),t}async function J(e){let t=(0,f.joinPaths)(e,`package.json`);if(!(0,o.existsSync)(t))return{};let n;try{n=await(0,c.readJsonFile)(t)}catch{return{}}return K(n)}async function Y(e,t){let n=await J(e),r=q(t);return(0,a.defu)(r,n)}function X(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Z=S.default.homedir();async function Q(e,t){let n=t.configFile&&(0,x.existsSync)((0,y.replacePath)(t.configFile,e))?(0,y.replacePath)(t.configFile,e):t.configFile&&(0,x.existsSync)(t.configFile)?t.configFile:(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.js`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.json`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,f.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.ts`))?(0,f.joinPaths)(e,`razorwind.config.ts`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.js`))?(0,f.joinPaths)(e,`razorwind.config.js`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.mts`))?(0,f.joinPaths)(e,`razorwind.config.mts`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.mjs`))?(0,f.joinPaths)(e,`razorwind.config.mjs`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.cjs`))?(0,f.joinPaths)(e,`razorwind.config.cjs`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.cts`))?(0,f.joinPaths)(e,`razorwind.config.cts`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.json`))?(0,f.joinPaths)(e,`razorwind.config.json`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.yaml`))?(0,f.joinPaths)(e,`razorwind.config.yaml`):(0,x.existsSync)((0,f.joinPaths)(e,`razorwind.config.yml`))?(0,f.joinPaths)(e,`razorwind.config.yml`):void 0,r=(0,ee.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},o=(0,ne.createJiti)(e,i),s={};if(n){let r=(0,_.isAbsolute)(n)?n:(0,_.resolve)(e,n),i=await o.import(r,{default:!0});if(i){let r={};(0,te.isFunction)(i)?r=await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):((0,m.isSetObject)(i)||Array.isArray(i))&&(r=i),((0,m.isSetObject)(r)||Array.isArray(r))&&(s={...r,configFile:n})}}let[c,l,u]=await Promise.all([(0,b.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,b.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,b.loadConfig)({cwd:Z,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=(0,m.isSetObject)(c?.config)?{...c.config}:{},p=n?(0,_.isAbsolute)(n)?n:(0,_.resolve)(e,n):void 0,g=typeof c?.configFile==`string`?c.configFile:void 0;p&&g&&(0,_.resolve)(e,g)===p&&delete d.plugins;let S=(0,a.defu)({cwd:e,envPaths:{...r,home:Z}},t,s,d,(0,m.isSetObject)(l?.config)?{...l.config}:{},(0,m.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,iconsPath:(0,f.joinPaths)(e,`assets/icons`),plugins:[]});if(Array.isArray(S.componentsPath)){let t=S.componentsPath.filter(h.isSetString).map(e=>(0,v.findFilePath)(e));S.componentsPath=t.length>0?t:e}else S.componentsPath=(0,h.isSetString)(S.componentsPath)?(0,v.findFilePath)(S.componentsPath):e;if(Array.isArray(S.iconsPath)){let t=S.iconsPath.filter(h.isSetString).map(e=>(0,v.findFilePath)(e));S.iconsPath=t.length>0?t:(0,f.joinPaths)(e,`assets/icons`)}else S.iconsPath=(0,h.isSetString)(S.iconsPath)?(0,v.findFilePath)(S.iconsPath):(0,f.joinPaths)(e,`assets/icons`);return S.plugins=X(Array.isArray(S.plugins)?S.plugins:[]),S}async function $(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=(0,_.isAbsolute)(e)?e:(0,_.resolve)(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await(0,g.mkdir)((0,_.dirname)(a),{recursive:!0}),await(0,g.writeFile)(a,o,`utf8`),n.push(a)}return n}function Se(e){return e}const Ce=(0,i.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, and icons.`,version:re,tags:[`razorwind`,`dtcg`]},schema:(0,i.defineSchema)({schema:t.t}),input:async e=>{let t=(0,i.useExecution)();if(t.options=await Q(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let r=t.options.tokens;(!r||n.t(r))&&(r=await n.n(t));let o={...await Y(t.cwd,t.options),tokens:r??{},components:(0,a.defu)(t.options.components??{},await N(t)??{}),icons:(0,a.defu)(t.options.icons??{},await W(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))o=await e.extract(o,t.options);if(!o.tokens||n.t(o.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(o,t.options);return o},output:async(e,t,n)=>{await $(n,(0,i.useExecution)().cwd)},generator:async e=>{let t=(0,i.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=(0,a.defu)(i,n)}return n}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=n.y,exports.RAZORWIND_INFER_PREPROCESSOR=n.o,exports.THEME_BASENAME_PATTERN=n.b,exports.TOKEN_DIRECTORY_GLOB=n.x,exports.TOKEN_FILE_EXTENSIONS=n.S,exports.TYPE_PATH_HINTS=n.w,exports.WINDIE_PARSERS=n.C,exports.razorwindParsers=n.C,exports.defineConfig=Se,exports.definePlugin=r.definePlugin,exports.generator=Ce,exports.getExtractionHooks=n.s,exports.getRazorwindParserHooks=n.c,exports.getRazorwindPreprocessorHooks=n.l,exports.inferTypeFromPath=n.h,exports.inferValue=n.g,exports.isEmptyTokens=n.t,exports.loadComponents=N,exports.loadIcons=W,exports.loadSchemaMetaFromPackageJson=J,exports.loadTokens=n.n,exports.loadTokensOrThrow=n.r,exports.nestFlatTokens=n._,exports.normalizeRepository=w,exports.normalizeTokenTree=n.v,exports.parseCssCustomProperties=n.m,exports.razorwindInferPreprocessor=n.u,exports.registerRazorwindHooks=n.d,exports.registerRazorwindParsers=n.f,exports.resolveConfig=Q,exports.resolveSchemaMeta=Y,exports.resolveTokensSource=n.i,exports.schemaMetaFromConfig=q,exports.schemaMetaFromPackageJson=K,exports.styleDictionaryLogOptions=n.p,exports.themeKeyFromPath=n.a,exports.uniquePlugins=X,exports.writeGeneratedDocuments=$;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-DyK4l_bT.cjs"),n=require("./schema-BCofDJWf.cjs"),r=require("./fonts-CkBPEFie.cjs"),i=require("./tokens-By75va9Y.cjs"),a=require("./plugin.cjs");let o=require("@power-plant/core"),s=require("defu"),c=require("node:path"),l=require("@stryke/string-format/title-case"),u=require("@stryke/fs/exists"),d=require("@stryke/fs/is-file"),f=require("@stryke/fs/json"),p=require("@stryke/fs/list-files"),m=require("@stryke/path/append"),h=require("@stryke/path/file-path-fns"),g=require("@stryke/path/join"),_=require("@stryke/type-checks/is-set-object"),v=require("@stryke/type-checks/is-set-string"),y=require("node:fs/promises"),ee=require("@stryke/env/get-env-paths"),b=require("@stryke/path/find"),x=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),S=require("c12"),ne=require("jiti"),C=require("node:fs"),w=require("node:os");w=e.t(w,1);var re=`0.0.48`;const T=`base`;function E(e){let n=t.h(e).filter(e=>e.id!==T);return n.length>1?n:[]}function ie(e,n){let r=e.find(e=>e.id===T);return!r||n.id===T?n.tokens:t.d(n.tokens,r.tokens)}function ae(e,n,r){return{...e,theme:n.id,title:t.c(e.title,n.id)??e.title,tokens:ie(r,n)}}function oe(e,n){let r=t.c(e.title,n.id);return r?{...e,title:r}:e}async function se(e,t){let n={};for(let r of t.plugins.filter(e=>e.generate)){let i=await r.generate(e,t);n=(0,s.defu)(i,n)}return n}async function D(e,n){let r=t.h(e.tokens),i=E(e.tokens);if(i.length===0)return se(e,n);let a={};for(let o of i){let i=await se(ae(e,o,r),oe(n,o));a=(0,s.defu)(t.s(i,o.id),a)}return a}async function O(e){let t={};for(let n of e)Object.assign(t,await D(n.spec,n.config));return t}function k(e){return!!((0,v.isSetString)(e)||(0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))}function A(e){if((0,v.isSetString)(e))return e;if((0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))return e.url}const ce=n.o.partial(),j=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),M=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function le(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function ue(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function de(e){let t=e.toLowerCase();if(j.has(t))return t}function fe(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&j.has(t))}function N(e){if(!e)return;let t=n.a.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.a.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function pe(e){if(!e)return;let t=n.s.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){if((0,v.isSetString)(t)){let e=(0,h.findFileName)(t,{withExtension:!1})||t,i=n.s.safeParse({name:e,path:t});i.success&&r.push(i.data);continue}let e=n.s.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function P(e){if(!(0,_.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=ce.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function F(e){return(0,_.isSetObject)(e)&&`path`in e}async function me(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}let r={};(0,v.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,v.isSetString)(n.description)&&(r.description=n.description),(0,v.isSetString)(n.version)&&(r.version=n.version),(0,v.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=A(n.repository);if(i&&(r.repository=i),(0,_.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,_.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(v.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;F(a)?s=N(a):(0,_.isSetObject)(a)&&(o=P(a),`files`in a&&(s=N(a.files)),`usage`in a&&(c=pe(a.usage)));let l=M(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function he(e){let t=(0,g.joinPaths)(e,`component.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}if(F(n)||Array.isArray(n)){let e=N(n);if(e)return{files:e}}if(!(0,_.isSetObject)(n))return;let r=P(n)??{},i=`files`in n?N(n.files):void 0,a=`usage`in n?pe(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function ge(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&fe(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function _e(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,m.appendPath)(t.path,e),r=(0,h.findFileExtensionSafe)(t.path)??``,i=t.language??de(r),a=t.name||(0,h.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content===void 0?(0,u.existsSync)(n)?await(0,y.readFile)(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,g.joinPaths)(e,`usage`);if(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n))return;let r=await ge(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,g.joinPaths)(n,e),r=de((0,h.findFileExtensionSafe)(e)??``),i=(0,h.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,l.titleCase)(i),path:t,content:await(0,y.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function ve(e,t){let n=t??(await(0,p.listFiles)(e)).filter(e=>(0,h.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,h.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,y.readFile)((0,m.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,h.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,y.readFile)((0,m.appendPath)(t.path,e),`utf8`):void 0,path:(0,m.appendPath)(t.path,e)}))}async function ye(e){let t=await me(e),r=await he(e);if(!t&&!r)return;let i=M(r??{},t??{}),a=(0,v.isSetString)(i.name)?i.name:(0,h.findFolderName)(e),o=(0,v.isSetString)(i.title)?i.title:(0,l.titleCase)(a),s=n.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await _e(e,s.data.usage);return{...s.data,files:await ve(e,s.data.files),...c?.length?{usage:c}:{}}}async function I(e){let t={},n=ue(e.options.componentsPath);for(let r of n){let n=le(e.cwd,r);if(!(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n)))try{let e=await(0,y.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await ye((0,g.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const be=n.r.partial(),L=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),R=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function xe(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function Se(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function z(e){let t=e.toLowerCase();if(L.has(t))return t}function B(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&L.has(t))}function Ce(e){return i.b.test(e)}async function V(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&B(e.name)).map(e=>e.name)}catch{return[]}}function H(e){if(!e)return;let t=n.n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function U(e){if(!(0,_.isSetObject)(e))return;let t=be.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function W(e){return(0,_.isSetObject)(e)&&`path`in e}async function G(e,t,n){let r=(0,m.appendPath)(e,t),i=z((0,h.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,y.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function we(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}let r={};(0,v.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,v.isSetString)(n.description)&&(r.description=n.description),(0,v.isSetString)(n.version)&&(r.version=n.version),(0,v.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=A(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(v.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;W(a)?s=H(a):(0,_.isSetObject)(a)&&(o=U(a),`files`in a&&(s=H(a.files)));let c=R(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Te(e){let t=(0,g.joinPaths)(e,`icon.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}if(W(n)||Array.isArray(n)){let e=H(n);if(e)return{files:e}}return U(n)}async function Ee(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,m.appendPath)(t.path,e),r=(0,h.findFileExtensionSafe)(t.path)??``,i=t.type??z(r)??`file`,a=t.content===void 0?i===`svg`?await(0,y.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await V(e);return Promise.all(n.map(t=>G(t,e)))}async function De(e){let t=await we(e),r=await Te(e),i=await V(e);if(!t&&!r&&i.length===0)return;let a=R(r??{},t??{}),o=(0,v.isSetString)(a.name)?a.name:(0,h.findFolderName)(e),s=(0,v.isSetString)(a.title)?a.title:(0,l.titleCase)(o),c=n.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await Ee(e,c.data.files)}}function K(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,l.titleCase)(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function Oe(e,t,n){let r=await V(e);for(let i of r){let r=(0,h.findFileName)(i,{withExtension:!1});r&&K(n,r,await G(i,e,t))}}async function q(e){let t={},n=Se(e.options.iconsPath);for(let r of n){let n=xe(e.cwd,r);if(!(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n)))try{let e=await(0,y.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,g.joinPaths)(n,r.name);if(r.isDirectory()){if(Ce(r.name)){await Oe(e,r.name,t);continue}let n=await De(e);if(n){let e=t[n.name];t[n.name]=e?R(n,e):n}continue}if(r.isFile()&&B(r.name)){let e=(0,h.findFileName)(r.name,{withExtension:!1});if(!e)continue;K(t,e,await G(r.name,n))}}}catch{continue}}return t}function J(e,t){let n=e[t];return(0,v.isSetString)(n)?n:void 0}function Y(e){let t={};(0,v.isSetString)(e.name)&&(t.name=e.name),(0,v.isSetString)(e.description)&&(t.description=e.description),(0,v.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=A(e.repository);n&&(t.repository=n),(0,v.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,_.isSetObject)(r)){let t=r,n=J(t,`title`),a=J(t,`name`),o=J(t,`description`),s=J(t,`homepage`),c=J(t,`logo`),u=A(t.repository);a?i.name=a:(0,v.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,v.isSetString)(i.name)&&(i.title=(0,l.titleCase)(i.name)),o?i.description=o:(0,v.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:k(e.homepage)?i.homepage=A(e.homepage):k(e.author)?i.homepage=A(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&k(e.maintainers[0])?i.homepage=A(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&k(e.contributors[0])?i.homepage=A(e.contributors[0]):k(e.bugs)&&(i.homepage=A(e.bugs)),c&&(i.logo=c),u?i.repository=u:k(e.repository)&&(i.repository=A(e.repository))}return(0,s.defu)(i,t)}function X(e){let t={};return(0,v.isSetString)(e.name)&&(t.name=e.name),(0,v.isSetString)(e.title)&&(t.title=e.title),(0,v.isSetString)(e.description)&&(t.description=e.description),(0,v.isSetString)(e.repository)&&(t.repository=e.repository),(0,v.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,v.isSetString)(e.logo)&&(t.logo=e.logo),t}async function Z(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return{};let n;try{n=await(0,f.readJsonFile)(t)}catch{return{}}return Y(n)}async function ke(e,t){let n=await Z(e),r=X(t);return(0,s.defu)(r,n)}function Ae(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const je=w.default.homedir();function Me(e){return Array.isArray(e)?e.filter(e=>(0,_.isSetObject)(e)):[]}function Q(e){return Array.isArray(e)||!(0,_.isSetObject)(e)?{}:{...e}}const Ne=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Pe(e,t){let n={...e};for(let e of Ne)t[e]!=null&&delete n[e];return n}function Fe(e,t,n,r){let i=(0,s.defu)({cwd:e,envPaths:r.envPaths},Pe(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:(0,g.joinPaths)(e,`assets/icons`),fontsPath:(0,g.joinPaths)(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=(0,v.isSetString)(i.componentsPath)?(0,b.findFilePath)(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.iconsPath=t.length>0?t:(0,g.joinPaths)(e,`assets/icons`)}else i.iconsPath=(0,v.isSetString)(i.iconsPath)?(0,b.findFilePath)(i.iconsPath):(0,g.joinPaths)(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.fontsPath=t.length>0?t:(0,g.joinPaths)(e,`assets/fonts`)}else i.fontsPath=(0,v.isSetString)(i.fontsPath)?(0,b.findFilePath)(i.fontsPath):(0,g.joinPaths)(e,`assets/fonts`);return i.plugins=Ae(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function $(e,t){let n=t.configFile&&(0,C.existsSync)((0,x.replacePath)(t.configFile,e))?(0,x.replacePath)(t.configFile,e):t.configFile&&(0,C.existsSync)(t.configFile)?t.configFile:(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.js`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.json`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.ts`))?(0,g.joinPaths)(e,`razorwind.config.ts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.js`))?(0,g.joinPaths)(e,`razorwind.config.js`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.mts`))?(0,g.joinPaths)(e,`razorwind.config.mts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.mjs`))?(0,g.joinPaths)(e,`razorwind.config.mjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.cjs`))?(0,g.joinPaths)(e,`razorwind.config.cjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.cts`))?(0,g.joinPaths)(e,`razorwind.config.cts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.json`))?(0,g.joinPaths)(e,`razorwind.config.json`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.yaml`))?(0,g.joinPaths)(e,`razorwind.config.yaml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.yml`))?(0,g.joinPaths)(e,`razorwind.config.yml`):void 0,r=(0,ee.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=(0,ne.createJiti)(e,i),o=[{}];if(n){let r=(0,c.isAbsolute)(n)?n:(0,c.resolve)(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=(0,te.isFunction)(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=Me(r);if(e.length===0)throw Error(`Razorwind config array is empty. Provide at least one configuration object.`);o=e.map(e=>({...e,configFile:n}))}else(0,_.isSetObject)(r)&&(o=[{...r,configFile:n}])}}let[s,l,u]=await Promise.all([(0,S.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:je,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=Q(s?.config),f=n?(0,c.isAbsolute)(n)?n:(0,c.resolve)(e,n):void 0,p=typeof s?.configFile==`string`?s.configFile:void 0;f&&p&&(0,c.resolve)(e,p)===f&&delete d.plugins;let m={envPaths:{...r,home:je},workspaceLayer:d,environmentLayer:Q(l?.config),homeLayer:Q(u?.config)};return o.map(n=>Fe(e,t,n,m))}async function Ie(e,t){let n=(await $(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Le(e){if(e.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let t=e.options.tokens;(!t||i.t(t))&&(t=await i.n(e));let n={...await ke(e.cwd,e.options),tokens:t??{},components:(0,s.defu)(e.options.components??{},await I(e)??{}),icons:(0,s.defu)(e.options.icons??{},await q(e)??{}),fonts:(0,s.defu)(e.options.fonts??{},await r.a(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(!n.tokens||i.t(n.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Re(e,t){let n=await $(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Le(e),config:t});return r}async function ze(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=(0,c.isAbsolute)(e)?e:(0,c.resolve)(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await(0,y.mkdir)((0,c.dirname)(a),{recursive:!0}),await(0,y.writeFile)(a,o,`utf8`),n.push(a)}return n}function Be(e){return e}const Ve=(0,o.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:re,tags:[`razorwind`,`dtcg`]},schema:(0,o.defineSchema)({schema:n.t}),input:async e=>{let t=(0,o.useExecution)(),n=await Re(t,e),r=n[0];if(!r)throw Error(`Unable to resolve Razorwind configuration.`);return t.generationRuns=n,t.options=r.config,r.spec},output:async(e,t,n)=>{await ze(n,(0,o.useExecution)().cwd)},generator:async e=>{let t=(0,o.useExecution)();return O(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=i.y,exports.FONT_EXTENSIONS=r.h,exports.FONT_FORMAT_FROM_EXTENSION=r.g,exports.GENERIC_FALLBACK_FROM_ROLE=r._,exports.MONO_ROLES=r.v,exports.RAZORWIND_INFER_PREPROCESSOR=i.o,exports.SANS_ROLES=r.y,exports.THEME_BASENAME_PATTERN=i.b,exports.TOKEN_DIRECTORY_GLOB=i.x,exports.TOKEN_FILE_EXTENSIONS=i.S,exports.TYPE_PATH_HINTS=i.w,exports.WEIGHT_FROM_SUFFIX=r.b,exports.WINDIE_PARSERS=i.C,exports.razorwindParsers=i.C,exports.copyFontFiles=r.m,exports.cssFontFamily=r.s,exports.defineConfig=Be,exports.definePlugin=a.definePlugin,exports.fontFamilyName=r.c,exports.generateAllPluginDocuments=O,exports.generatePluginDocuments=D,exports.generator=Ve,exports.getExtractionHooks=i.s,exports.getRazorwindParserHooks=i.c,exports.getRazorwindPreprocessorHooks=i.l,exports.inferTypeFromPath=i.h,exports.inferValue=i.g,exports.isEmptyFonts=r.t,exports.isEmptyTokens=i.t,exports.loadComponents=I,exports.loadFonts=r.a,exports.loadIcons=q,exports.loadSchemaMetaFromPackageJson=Z,exports.loadTokens=i.n,exports.loadTokensOrThrow=i.r,exports.mergeFonts=r.n,exports.nestFlatTokens=i._,exports.normalizeRepository=A,exports.normalizeTokenTree=i.v,exports.parseCssCustomProperties=i.m,exports.parseCssFonts=r.r,exports.parseFontFilename=r.o,exports.pickFontByRole=r.i,exports.prepareGenerationRuns=Re,exports.prepareSpec=Le,exports.prependFontCss=r.l,exports.razorwindInferPreprocessor=i.u,exports.registerRazorwindHooks=i.d,exports.registerRazorwindParsers=i.f,exports.renderFontCss=r.u,exports.renderGoogleFontImports=r.d,exports.renderLocalFontFaces=r.f,exports.resolveConfig=Ie,exports.resolveConfigs=$,exports.resolveSchemaMeta=ke,exports.resolveTokensSource=i.i,exports.schemaMetaFromConfig=X,exports.schemaMetaFromPackageJson=Y,exports.styleDictionaryLogOptions=i.p,exports.themeKeyFromPath=i.a,exports.themesForGeneration=E,exports.toGoogleFontsCssUrl=r.p,exports.uniquePlugins=Ae,exports.writeGeneratedDocuments=ze;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,10 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./index-
|
|
3
|
-
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { O as Components, a as Icons, t as Schema } from "./schema-BwOBgJIM.cjs";
|
|
2
|
+
import "./index-CwN0c1Q4.cjs";
|
|
3
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-BtscEr7S.cjs";
|
|
4
|
+
import { i as TokenSet } from "./flatten-tokens-CMlVe_J6.cjs";
|
|
5
|
+
import { t as definePlugin } from "./plugin-0UYp_yIy.cjs";
|
|
6
|
+
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "./index-Di7vqmsi.cjs";
|
|
7
|
+
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "./index-B7MsziQp.cjs";
|
|
6
8
|
import StyleDictionary from "style-dictionary";
|
|
7
9
|
import { ExecutionContext, GeneratedDocument, GeneratorConfig } from "@power-plant/core";
|
|
10
|
+
//#region src/lib/generate.d.ts
|
|
11
|
+
/**
|
|
12
|
+
* One generation pass: a resolved {@link Schema} plus the {@link Config}
|
|
13
|
+
* that produced it.
|
|
14
|
+
*
|
|
15
|
+
* Array `defineConfig([...])` exports become one {@link GenerationRun} each.
|
|
16
|
+
*/
|
|
17
|
+
interface GenerationRun {
|
|
18
|
+
spec: Schema;
|
|
19
|
+
config: Config;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Theme sets that should each receive a dedicated generator pass.
|
|
23
|
+
*
|
|
24
|
+
* Returns an empty array when tokens are a single tree (or only one real
|
|
25
|
+
* theme), so callers run plugins once against the original spec.
|
|
26
|
+
*/
|
|
27
|
+
declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
|
|
28
|
+
/**
|
|
29
|
+
* Run configured plugin `generate` hooks.
|
|
30
|
+
*
|
|
31
|
+
* When {@link Schema.tokens} is a multi-theme record, each theme is generated
|
|
32
|
+
* separately: titles gain ` (<Theme>)`, and output file paths gain
|
|
33
|
+
* `-<theme>` before the extension (`tokens.css` → `tokens-dark.css`).
|
|
34
|
+
*/
|
|
35
|
+
declare function generatePluginDocuments(spec: Schema, config: Config): Promise<Record<string, GeneratedDocument>>;
|
|
36
|
+
/**
|
|
37
|
+
* Run plugin generators for each {@link GenerationRun} as a separate pass.
|
|
38
|
+
*
|
|
39
|
+
* Document records are shallow-merged in array order. Later runs replace
|
|
40
|
+
* earlier ones when output paths collide. Plugin `outputPath` values on each
|
|
41
|
+
* config should already be distinct (for example `generated/dark` vs
|
|
42
|
+
* `generated/light`).
|
|
43
|
+
*/
|
|
44
|
+
declare function generateAllPluginDocuments(runs: GenerationRun[]): Promise<Record<string, GeneratedDocument>>;
|
|
45
|
+
//#endregion
|
|
8
46
|
//#region src/lib/resolve-config.d.ts
|
|
9
47
|
/**
|
|
10
48
|
* Keep the first plugin for each {@link Plugin.name}.
|
|
@@ -16,15 +54,31 @@ declare function uniquePlugins(plugins: Plugin[]): Plugin[];
|
|
|
16
54
|
/**
|
|
17
55
|
* Loads the user configuration file for the project.
|
|
18
56
|
*
|
|
57
|
+
* Array exports (`defineConfig([...])`) resolve to one {@link Config} per
|
|
58
|
+
* item. Each item is a separate generation run.
|
|
59
|
+
*
|
|
19
60
|
* @param cwd - The current working directory.
|
|
20
61
|
* @param options - The options for the configuration.
|
|
21
|
-
* @returns
|
|
62
|
+
* @returns Resolved configurations, one per exported config object.
|
|
63
|
+
*/
|
|
64
|
+
declare function resolveConfigs(cwd: string, options: Options): Promise<Config[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Loads the user configuration file for the project.
|
|
67
|
+
*
|
|
68
|
+
* When the file exports an array of configs, this returns the first resolved
|
|
69
|
+
* {@link Config}. Use {@link resolveConfigs} to run every array item.
|
|
70
|
+
*
|
|
71
|
+
* @param cwd - The current working directory.
|
|
72
|
+
* @param options - The options for the configuration.
|
|
73
|
+
* @returns The first resolved configuration.
|
|
22
74
|
*/
|
|
23
75
|
declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
24
76
|
//#endregion
|
|
25
77
|
//#region src/config.d.ts
|
|
26
78
|
/**
|
|
27
|
-
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a
|
|
79
|
+
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a
|
|
80
|
+
* {@link UserConfig} object, an array of those objects, or a function that
|
|
81
|
+
* returns either. Array items are independent generation runs.
|
|
28
82
|
*
|
|
29
83
|
* @example
|
|
30
84
|
* ```ts
|
|
@@ -34,13 +88,11 @@ declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
|
34
88
|
* // Your configuration here
|
|
35
89
|
* });
|
|
36
90
|
*
|
|
37
|
-
* //
|
|
38
|
-
* export default defineConfig(
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* };
|
|
43
|
-
* });
|
|
91
|
+
* // Separate runs (e.g. dark vs light token sources and output paths)
|
|
92
|
+
* export default defineConfig([
|
|
93
|
+
* { name: "dark", tokensPath: "tokens/dark.json", plugins: [css()] },
|
|
94
|
+
* { name: "light", tokensPath: "tokens/light.json", plugins: [css()] }
|
|
95
|
+
* ]);
|
|
44
96
|
* ```
|
|
45
97
|
*/
|
|
46
98
|
declare function defineConfig(config: UserConfig): UserConfig;
|
|
@@ -103,6 +155,18 @@ declare function resolveSchemaMeta(cwd: string, config: UserConfig): Promise<Sch
|
|
|
103
155
|
*/
|
|
104
156
|
declare function normalizeUrl(value: unknown): string | undefined;
|
|
105
157
|
//#endregion
|
|
158
|
+
//#region src/lib/prepare.d.ts
|
|
159
|
+
/**
|
|
160
|
+
* Load tokens, extract, and validate for the current {@link Config} on
|
|
161
|
+
* `context.options`.
|
|
162
|
+
*/
|
|
163
|
+
declare function prepareSpec(context: ExecutionContext<Schema, Config, void>): Promise<Schema>;
|
|
164
|
+
/**
|
|
165
|
+
* Resolve config (including array exports) and prepare a {@link GenerationRun}
|
|
166
|
+
* per item. Each run loads tokens and runs extract/validate independently.
|
|
167
|
+
*/
|
|
168
|
+
declare function prepareGenerationRuns(context: ExecutionContext<Schema, Config, void>, options: Options): Promise<GenerationRun[]>;
|
|
169
|
+
//#endregion
|
|
106
170
|
//#region src/lib/write-documents.d.ts
|
|
107
171
|
/**
|
|
108
172
|
* Persist generator documents to disk.
|
|
@@ -132,6 +196,7 @@ type Generator<TOptions extends object = object> = GeneratorConfig<Schema, TOpti
|
|
|
132
196
|
declare module "@power-plant/core" {
|
|
133
197
|
interface Context {
|
|
134
198
|
sd: StyleDictionary;
|
|
199
|
+
generationRuns?: GenerationRun[];
|
|
135
200
|
}
|
|
136
201
|
}
|
|
137
202
|
/**
|
|
@@ -139,8 +204,10 @@ declare module "@power-plant/core" {
|
|
|
139
204
|
*
|
|
140
205
|
* Orchestrates configured {@link Plugin}s: extraction hooks, then
|
|
141
206
|
* `extract` → `validate` on input, then `generate`.
|
|
207
|
+
*
|
|
208
|
+
* Array `defineConfig([...])` exports run that pipeline once per item.
|
|
142
209
|
*/
|
|
143
210
|
declare const generator: import("@power-plant/core").GeneratorConfigObject<Schema, Options, any>;
|
|
144
211
|
//#endregion
|
|
145
|
-
export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, type Options, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, defineConfig, definePlugin, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadComponents, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveConfig, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, uniquePlugins, writeGeneratedDocuments };
|
|
212
|
+
export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, GenerationRun, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generateAllPluginDocuments, generatePluginDocuments, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prepareGenerationRuns, prepareSpec, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveConfigs, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, themesForGeneration, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
|
|
146
213
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/generate.ts","../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/prepare.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;UAoCiB;EACf,MAAM;EACN,QAAQ;;;;;;;;iBAeM,oBAAoB,QAAQ,mBAAmB;;;;;;;;iBAqDzC,wBACpB,MAAM,QACN,QAAQ,SACP,QAAQ,eAAe;;;;;;;;;iBA6BJ,2BACpB,MAAM,kBACL,QAAQ,eAAe;;;;;;;;;iBC/FV,cAAc,SAAS,WAAW;;;;;;;;;;;iBAsJ5B,eACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;iBA6MW,cACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;iBCnWK,aAAa,QAAQ,aAAa;iBAClC,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,QAAQ,cAAc,QAAQ;iBACnD,aACd,QAAQ,QAAQ,gBACf,QAAQ;iBACK,aAAa,QAAQ,qBAAqB;iBAC1C,aAAa,QAAQ,sBAAsB;iBAC3C,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,mBAAmB;;;;;;;;;;;;;iBCqalC,eACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;;iBCjGW,UACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;KCtWC,aAAa,KACvB;;;;;iBAgBc,0BACd,KAAK,0BACJ;;;;iBAqFa,qBAAqB,QAAQ,aAAa;;;;iBA4BpC,8BACpB,cACC,QAAQ;;;;iBAmBW,kBACpB,aACA,QAAQ,aACP,QAAQ;;;;;;iBCtJK,aAAa;;;;;;;iBCIP,YACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;iBA+CW,sBACpB,SAAS,iBAAiB,QAAQ,eAClC,SAAS,UACR,QAAQ;;;;;;;;;;;;;iBC5DW,wBACpB,WAAW,eAAe,gCAC1B,cACC;;;KCdS,UAAU,oCAAoC,gBACxD,QACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;YCDU;IACR,IAAI;IACJ,iBAAiB;;;;;;;;;;;cAgBR,uCAAS,sBAAA,QAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,10 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./index-
|
|
3
|
-
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { O as Components, a as Icons, t as Schema } from "./schema-BwOBgJIM.mjs";
|
|
2
|
+
import "./index-D5L2WXYk.mjs";
|
|
3
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-CNTGHrST.mjs";
|
|
4
|
+
import { i as TokenSet } from "./flatten-tokens-DgTPHEhI.mjs";
|
|
5
|
+
import { t as definePlugin } from "./plugin-CH6vFnxu.mjs";
|
|
6
|
+
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "./index-CzbZzpnz.mjs";
|
|
7
|
+
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "./index-CzjDptav.mjs";
|
|
6
8
|
import { ExecutionContext, GeneratedDocument, GeneratorConfig } from "@power-plant/core";
|
|
7
9
|
import StyleDictionary from "style-dictionary";
|
|
10
|
+
//#region src/lib/generate.d.ts
|
|
11
|
+
/**
|
|
12
|
+
* One generation pass: a resolved {@link Schema} plus the {@link Config}
|
|
13
|
+
* that produced it.
|
|
14
|
+
*
|
|
15
|
+
* Array `defineConfig([...])` exports become one {@link GenerationRun} each.
|
|
16
|
+
*/
|
|
17
|
+
interface GenerationRun {
|
|
18
|
+
spec: Schema;
|
|
19
|
+
config: Config;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Theme sets that should each receive a dedicated generator pass.
|
|
23
|
+
*
|
|
24
|
+
* Returns an empty array when tokens are a single tree (or only one real
|
|
25
|
+
* theme), so callers run plugins once against the original spec.
|
|
26
|
+
*/
|
|
27
|
+
declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
|
|
28
|
+
/**
|
|
29
|
+
* Run configured plugin `generate` hooks.
|
|
30
|
+
*
|
|
31
|
+
* When {@link Schema.tokens} is a multi-theme record, each theme is generated
|
|
32
|
+
* separately: titles gain ` (<Theme>)`, and output file paths gain
|
|
33
|
+
* `-<theme>` before the extension (`tokens.css` → `tokens-dark.css`).
|
|
34
|
+
*/
|
|
35
|
+
declare function generatePluginDocuments(spec: Schema, config: Config): Promise<Record<string, GeneratedDocument>>;
|
|
36
|
+
/**
|
|
37
|
+
* Run plugin generators for each {@link GenerationRun} as a separate pass.
|
|
38
|
+
*
|
|
39
|
+
* Document records are shallow-merged in array order. Later runs replace
|
|
40
|
+
* earlier ones when output paths collide. Plugin `outputPath` values on each
|
|
41
|
+
* config should already be distinct (for example `generated/dark` vs
|
|
42
|
+
* `generated/light`).
|
|
43
|
+
*/
|
|
44
|
+
declare function generateAllPluginDocuments(runs: GenerationRun[]): Promise<Record<string, GeneratedDocument>>;
|
|
45
|
+
//#endregion
|
|
8
46
|
//#region src/lib/resolve-config.d.ts
|
|
9
47
|
/**
|
|
10
48
|
* Keep the first plugin for each {@link Plugin.name}.
|
|
@@ -16,15 +54,31 @@ declare function uniquePlugins(plugins: Plugin[]): Plugin[];
|
|
|
16
54
|
/**
|
|
17
55
|
* Loads the user configuration file for the project.
|
|
18
56
|
*
|
|
57
|
+
* Array exports (`defineConfig([...])`) resolve to one {@link Config} per
|
|
58
|
+
* item. Each item is a separate generation run.
|
|
59
|
+
*
|
|
19
60
|
* @param cwd - The current working directory.
|
|
20
61
|
* @param options - The options for the configuration.
|
|
21
|
-
* @returns
|
|
62
|
+
* @returns Resolved configurations, one per exported config object.
|
|
63
|
+
*/
|
|
64
|
+
declare function resolveConfigs(cwd: string, options: Options): Promise<Config[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Loads the user configuration file for the project.
|
|
67
|
+
*
|
|
68
|
+
* When the file exports an array of configs, this returns the first resolved
|
|
69
|
+
* {@link Config}. Use {@link resolveConfigs} to run every array item.
|
|
70
|
+
*
|
|
71
|
+
* @param cwd - The current working directory.
|
|
72
|
+
* @param options - The options for the configuration.
|
|
73
|
+
* @returns The first resolved configuration.
|
|
22
74
|
*/
|
|
23
75
|
declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
24
76
|
//#endregion
|
|
25
77
|
//#region src/config.d.ts
|
|
26
78
|
/**
|
|
27
|
-
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a
|
|
79
|
+
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a
|
|
80
|
+
* {@link UserConfig} object, an array of those objects, or a function that
|
|
81
|
+
* returns either. Array items are independent generation runs.
|
|
28
82
|
*
|
|
29
83
|
* @example
|
|
30
84
|
* ```ts
|
|
@@ -34,13 +88,11 @@ declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
|
34
88
|
* // Your configuration here
|
|
35
89
|
* });
|
|
36
90
|
*
|
|
37
|
-
* //
|
|
38
|
-
* export default defineConfig(
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* };
|
|
43
|
-
* });
|
|
91
|
+
* // Separate runs (e.g. dark vs light token sources and output paths)
|
|
92
|
+
* export default defineConfig([
|
|
93
|
+
* { name: "dark", tokensPath: "tokens/dark.json", plugins: [css()] },
|
|
94
|
+
* { name: "light", tokensPath: "tokens/light.json", plugins: [css()] }
|
|
95
|
+
* ]);
|
|
44
96
|
* ```
|
|
45
97
|
*/
|
|
46
98
|
declare function defineConfig(config: UserConfig): UserConfig;
|
|
@@ -103,6 +155,18 @@ declare function resolveSchemaMeta(cwd: string, config: UserConfig): Promise<Sch
|
|
|
103
155
|
*/
|
|
104
156
|
declare function normalizeUrl(value: unknown): string | undefined;
|
|
105
157
|
//#endregion
|
|
158
|
+
//#region src/lib/prepare.d.ts
|
|
159
|
+
/**
|
|
160
|
+
* Load tokens, extract, and validate for the current {@link Config} on
|
|
161
|
+
* `context.options`.
|
|
162
|
+
*/
|
|
163
|
+
declare function prepareSpec(context: ExecutionContext<Schema, Config, void>): Promise<Schema>;
|
|
164
|
+
/**
|
|
165
|
+
* Resolve config (including array exports) and prepare a {@link GenerationRun}
|
|
166
|
+
* per item. Each run loads tokens and runs extract/validate independently.
|
|
167
|
+
*/
|
|
168
|
+
declare function prepareGenerationRuns(context: ExecutionContext<Schema, Config, void>, options: Options): Promise<GenerationRun[]>;
|
|
169
|
+
//#endregion
|
|
106
170
|
//#region src/lib/write-documents.d.ts
|
|
107
171
|
/**
|
|
108
172
|
* Persist generator documents to disk.
|
|
@@ -132,6 +196,7 @@ type Generator<TOptions extends object = object> = GeneratorConfig<Schema, TOpti
|
|
|
132
196
|
declare module "@power-plant/core" {
|
|
133
197
|
interface Context {
|
|
134
198
|
sd: StyleDictionary;
|
|
199
|
+
generationRuns?: GenerationRun[];
|
|
135
200
|
}
|
|
136
201
|
}
|
|
137
202
|
/**
|
|
@@ -139,8 +204,10 @@ declare module "@power-plant/core" {
|
|
|
139
204
|
*
|
|
140
205
|
* Orchestrates configured {@link Plugin}s: extraction hooks, then
|
|
141
206
|
* `extract` → `validate` on input, then `generate`.
|
|
207
|
+
*
|
|
208
|
+
* Array `defineConfig([...])` exports run that pipeline once per item.
|
|
142
209
|
*/
|
|
143
210
|
declare const generator: import("@power-plant/core").GeneratorConfigObject<Schema, Options, any>;
|
|
144
211
|
//#endregion
|
|
145
|
-
export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, type Options, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, defineConfig, definePlugin, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadComponents, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveConfig, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, uniquePlugins, writeGeneratedDocuments };
|
|
212
|
+
export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, GenerationRun, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generateAllPluginDocuments, generatePluginDocuments, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prepareGenerationRuns, prepareSpec, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveConfigs, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, themesForGeneration, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
|
|
146
213
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/lib/generate.ts","../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/prepare.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":""}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,c as t,i as n,l as r,r as i,s as a}from"./schema-buR6a6IP.mjs";import{C as o,S as s,_ as c,a as l,b as u,c as d,d as f,f as p,g as ee,h as te,i as ne,l as re,m as ie,n as m,o as ae,p as oe,r as se,s as ce,t as h,u as le,v as ue,w as de,x as fe,y as pe}from"./tokens-CFh9AQab.mjs";import{definePlugin as me}from"./plugin.mjs";import{defineGenerator as he,defineSchema as ge,useExecution as g}from"@power-plant/core";import{createDefu as _,defu as v}from"defu";import{existsSync as y}from"@stryke/fs/exists";import{isDirectory as b}from"@stryke/fs/is-file";import{readJsonFile as x}from"@stryke/fs/json";import{listFiles as _e}from"@stryke/fs/list-files";import{appendPath as S}from"@stryke/path/append";import{findFileExtensionSafe as C,findFileName as w,findFolderName as ve}from"@stryke/path/file-path-fns";import{joinPaths as T}from"@stryke/path/join";import{titleCase as E}from"@stryke/string-format/title-case";import{isSetObject as D}from"@stryke/type-checks/is-set-object";import{isSetString as O}from"@stryke/type-checks/is-set-string";import{mkdir as ye,readFile as k,readdir as A,writeFile as be}from"node:fs/promises";import{dirname as xe,isAbsolute as j,resolve as M}from"node:path";import{getEnvPaths as Se}from"@stryke/env/get-env-paths";import{findFilePath as N}from"@stryke/path/find";import{replacePath as P}from"@stryke/path/replace";import{isFunction as Ce}from"@stryke/type-checks/is-function";import{loadConfig as F}from"c12";import{createJiti as we}from"jiti";import{existsSync as I}from"node:fs";import Te from"node:os";var Ee=`0.0.46`;function L(e){return!!(O(e)||D(e)&&`url`in e&&O(e.url))}function R(e){if(O(e))return e;if(D(e)&&`url`in e&&O(e.url))return e.url}const De=t.partial(),Oe=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),ke=_((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Ae(e,t){return j(t)?t:M(e,t)}function je(e){return Array.isArray(e)?e.filter(O):O(e)?[e]:[]}function Me(e){let t=e.toLowerCase();if(Oe.has(t))return t}function Ne(e){let t=C(e)?.toLowerCase();return!!(t&&Oe.has(t))}function z(e){if(!e)return;let t=a.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=a.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function B(e){if(!e)return;let t=r.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){if(O(t)){let e=w(t,{withExtension:!1})||t,i=r.safeParse({name:e,path:t});i.success&&n.push(i.data);continue}let e=r.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function V(e){if(!D(e))return;let{files:t,usage:n,...r}=e,i=De.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function H(e){return D(e)&&`path`in e}async function Pe(e){let t=T(e,`package.json`);if(!y(t))return;let n;try{n=await x(t)}catch{return}let r={};O(n.name)&&(r.name=n.name,r.title=n.name),O(n.description)&&(r.description=n.description),O(n.version)&&(r.version=n.version),O(n.homepage)&&(r.homepage=n.homepage);let i=R(n.repository);if(i&&(r.repository=i),D(n.dependencies)&&(r.dependencies=n.dependencies),D(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(O);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;H(a)?s=z(a):D(a)&&(o=V(a),`files`in a&&(s=z(a.files)),`usage`in a&&(c=B(a.usage)));let l=ke(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function Fe(e){let t=T(e,`component.json`);if(!y(t))return;let n;try{n=await x(t)}catch{return}if(H(n)||Array.isArray(n)){let e=z(n);if(e)return{files:e}}if(!D(n))return;let r=V(n)??{},i=`files`in n?z(n.files):void 0,a=`usage`in n?B(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function Ie(e){try{return(await A(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&Ne(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function Le(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=S(t.path,e),r=C(t.path)??``,i=t.language??Me(r),a=t.name||w(t.path,{withExtension:!1})||t.path,o=t.content===void 0?y(n)?await k(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=T(e,`usage`);if(!y(n)||!b(n))return;let r=await Ie(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=T(n,e),r=Me(C(e)??``),i=w(e,{withExtension:!1})||e;return{name:i,title:E(i),path:t,content:await k(t,`utf8`),...r?{language:r}:{}}}))}async function Re(e,t){let n=t??(await _e(e)).filter(e=>w(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(C(t))?`component`:`file`,path:t,content:await k(S(t,e),`utf8`)}:{type:/[tj]sx$/.test(C(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await k(S(t.path,e),`utf8`):void 0,path:S(t.path,e)}))}async function ze(e){let n=await Pe(e),r=await Fe(e);if(!n&&!r)return;let i=ke(r??{},n??{}),a=O(i.name)?i.name:ve(e),o=O(i.title)?i.title:E(a),s=t.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await Le(e,s.data.usage);return{...s.data,files:await Re(e,s.data.files),...c?.length?{usage:c}:{}}}async function U(e){let t={},n=je(e.options.componentsPath);for(let r of n){let n=Ae(e.cwd,r);if(!(!y(n)||!b(n)))try{let e=await A(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await ze(T(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const Be=e.partial(),W=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),G=_((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Ve(e,t){return j(t)?t:M(e,t)}function He(e){return Array.isArray(e)?e.filter(O):O(e)?[e]:[]}function K(e){let t=e.toLowerCase();if(W.has(t))return t}function q(e){let t=C(e)?.toLowerCase();return!!(t&&W.has(t))}function Ue(e){return u.test(e)}async function J(e){try{return(await A(e,{withFileTypes:!0})).filter(e=>e.isFile()&&q(e.name)).map(e=>e.name)}catch{return[]}}function Y(e){if(!e)return;let t=n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function X(e){if(!D(e))return;let t=Be.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function We(e){return D(e)&&`path`in e}async function Z(e,t,n){let r=S(e,t),i=K(C(e)??``)??`file`,a=i===`svg`?await k(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Ge(e){let t=T(e,`package.json`);if(!y(t))return;let n;try{n=await x(t)}catch{return}let r={};O(n.name)&&(r.name=n.name,r.title=n.name),O(n.description)&&(r.description=n.description),O(n.version)&&(r.version=n.version),O(n.homepage)&&(r.homepage=n.homepage);let i=R(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(O);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;We(a)?s=Y(a):D(a)&&(o=X(a),`files`in a&&(s=Y(a.files)));let c=G(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Ke(e){let t=T(e,`icon.json`);if(!y(t))return;let n;try{n=await x(t)}catch{return}if(We(n)||Array.isArray(n)){let e=Y(n);if(e)return{files:e}}return X(n)}async function qe(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=S(t.path,e),r=C(t.path)??``,i=t.type??K(r)??`file`,a=t.content===void 0?i===`svg`?await k(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await J(e);return Promise.all(n.map(t=>Z(t,e)))}async function Je(t){let n=await Ge(t),r=await Ke(t),i=await J(t);if(!n&&!r&&i.length===0)return;let a=G(r??{},n??{}),o=O(a.name)?a.name:ve(t),s=O(a.title)?a.title:E(o),c=e.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await qe(t,c.data.files)}}function Ye(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:E(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function Xe(e,t,n){let r=await J(e);for(let i of r){let r=w(i,{withExtension:!1});r&&Ye(n,r,await Z(i,e,t))}}async function Ze(e){let t={},n=He(e.options.iconsPath);for(let r of n){let n=Ve(e.cwd,r);if(!(!y(n)||!b(n)))try{let e=await A(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=T(n,r.name);if(r.isDirectory()){if(Ue(r.name)){await Xe(e,r.name,t);continue}let n=await Je(e);if(n){let e=t[n.name];t[n.name]=e?G(n,e):n}continue}if(r.isFile()&&q(r.name)){let e=w(r.name,{withExtension:!1});if(!e)continue;Ye(t,e,await Z(r.name,n))}}}catch{continue}}return t}function Q(e,t){let n=e[t];return O(n)?n:void 0}function Qe(e){let t={};O(e.name)&&(t.name=e.name),O(e.description)&&(t.description=e.description),O(e.homepage)&&(t.homepage=e.homepage);let n=R(e.repository);n&&(t.repository=n),O(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(D(r)){let t=r,n=Q(t,`title`),a=Q(t,`name`),o=Q(t,`description`),s=Q(t,`homepage`),c=Q(t,`logo`),l=R(t.repository);a?i.name=a:O(e.name)&&(i.name=e.name),n?i.title=n:O(i.name)&&(i.title=E(i.name)),o?i.description=o:O(e.description)&&(i.description=e.description),s?i.homepage=s:L(e.homepage)?i.homepage=R(e.homepage):L(e.author)?i.homepage=R(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&L(e.maintainers[0])?i.homepage=R(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&L(e.contributors[0])?i.homepage=R(e.contributors[0]):L(e.bugs)&&(i.homepage=R(e.bugs)),c&&(i.logo=c),l?i.repository=l:L(e.repository)&&(i.repository=R(e.repository))}return v(i,t)}function $(e){let t={};return O(e.name)&&(t.name=e.name),O(e.title)&&(t.title=e.title),O(e.description)&&(t.description=e.description),O(e.repository)&&(t.repository=e.repository),O(e.homepage)&&(t.homepage=e.homepage),O(e.logo)&&(t.logo=e.logo),t}async function $e(e){let t=T(e,`package.json`);if(!y(t))return{};let n;try{n=await x(t)}catch{return{}}return Qe(n)}async function et(e,t){let n=await $e(e),r=$(t);return v(r,n)}function tt(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const nt=Te.homedir();async function rt(e,t){let n=t.configFile&&I(P(t.configFile,e))?P(t.configFile,e):t.configFile&&I(t.configFile)?t.configFile:I(T(e,`razorwind.${t.mode}.ts`))?T(e,`razorwind.${t.mode}.ts`):I(T(e,`razorwind.${t.mode}.js`))?T(e,`razorwind.${t.mode}.js`):I(T(e,`razorwind.${t.mode}.mts`))?T(e,`razorwind.${t.mode}.mts`):I(T(e,`razorwind.${t.mode}.mjs`))?T(e,`razorwind.${t.mode}.mjs`):I(T(e,`razorwind.${t.mode}.cjs`))?T(e,`razorwind.${t.mode}.cjs`):I(T(e,`razorwind.${t.mode}.cts`))?T(e,`razorwind.${t.mode}.cts`):I(T(e,`razorwind.${t.mode}.json`))?T(e,`razorwind.${t.mode}.json`):I(T(e,`razorwind.${t.mode}.yaml`))?T(e,`razorwind.${t.mode}.yaml`):I(T(e,`razorwind.${t.mode}.yml`))?T(e,`razorwind.${t.mode}.yml`):I(T(e,`razorwind.config.ts`))?T(e,`razorwind.config.ts`):I(T(e,`razorwind.config.js`))?T(e,`razorwind.config.js`):I(T(e,`razorwind.config.mts`))?T(e,`razorwind.config.mts`):I(T(e,`razorwind.config.mjs`))?T(e,`razorwind.config.mjs`):I(T(e,`razorwind.config.cjs`))?T(e,`razorwind.config.cjs`):I(T(e,`razorwind.config.cts`))?T(e,`razorwind.config.cts`):I(T(e,`razorwind.config.json`))?T(e,`razorwind.config.json`):I(T(e,`razorwind.config.yaml`))?T(e,`razorwind.config.yaml`):I(T(e,`razorwind.config.yml`))?T(e,`razorwind.config.yml`):void 0,r=Se({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=we(e,i),o={};if(n){let r=j(n)?n:M(e,n),i=await a.import(r,{default:!0});if(i){let r={};Ce(i)?r=await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):(D(i)||Array.isArray(i))&&(r=i),(D(r)||Array.isArray(r))&&(o={...r,configFile:n})}}let[s,c,l]=await Promise.all([F({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),F({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),F({cwd:nt,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=D(s?.config)?{...s.config}:{},d=n?j(n)?n:M(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&M(e,f)===d&&delete u.plugins;let p=v({cwd:e,envPaths:{...r,home:nt}},t,o,u,D(c?.config)?{...c.config}:{},D(l?.config)?{...l.config}:{},{componentsPath:e,iconsPath:T(e,`assets/icons`),plugins:[]});if(Array.isArray(p.componentsPath)){let t=p.componentsPath.filter(O).map(e=>N(e));p.componentsPath=t.length>0?t:e}else p.componentsPath=O(p.componentsPath)?N(p.componentsPath):e;if(Array.isArray(p.iconsPath)){let t=p.iconsPath.filter(O).map(e=>N(e));p.iconsPath=t.length>0?t:T(e,`assets/icons`)}else p.iconsPath=O(p.iconsPath)?N(p.iconsPath):T(e,`assets/icons`);return p.plugins=tt(Array.isArray(p.plugins)?p.plugins:[]),p}async function it(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=j(e)?e:M(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await ye(xe(a),{recursive:!0}),await be(a,o,`utf8`),n.push(a)}return n}function at(e){return e}const ot=he({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, and icons.`,version:Ee,tags:[`razorwind`,`dtcg`]},schema:ge({schema:i}),input:async e=>{let t=g();if(t.options=await rt(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let n=t.options.tokens;(!n||h(n))&&(n=await m(t));let r={...await et(t.cwd,t.options),tokens:n??{},components:v(t.options.components??{},await U(t)??{}),icons:v(t.options.icons??{},await Ze(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))r=await e.extract(r,t.options);if(!r.tokens||h(r.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(r,t.options);return r},output:async(e,t,n)=>{await it(n,g().cwd)},generator:async e=>{let t=g(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=v(i,n)}return n}});export{pe as DEFAULT_TOKEN_PATH_CANDIDATES,ae as RAZORWIND_INFER_PREPROCESSOR,u as THEME_BASENAME_PATTERN,fe as TOKEN_DIRECTORY_GLOB,s as TOKEN_FILE_EXTENSIONS,de as TYPE_PATH_HINTS,o as WINDIE_PARSERS,o as razorwindParsers,at as defineConfig,me as definePlugin,ot as generator,ce as getExtractionHooks,d as getRazorwindParserHooks,re as getRazorwindPreprocessorHooks,te as inferTypeFromPath,ee as inferValue,h as isEmptyTokens,U as loadComponents,Ze as loadIcons,$e as loadSchemaMetaFromPackageJson,m as loadTokens,se as loadTokensOrThrow,c as nestFlatTokens,R as normalizeRepository,ue as normalizeTokenTree,ie as parseCssCustomProperties,le as razorwindInferPreprocessor,f as registerRazorwindHooks,p as registerRazorwindParsers,rt as resolveConfig,et as resolveSchemaMeta,ne as resolveTokensSource,$ as schemaMetaFromConfig,Qe as schemaMetaFromPackageJson,oe as styleDictionaryLogOptions,l as themeKeyFromPath,tt as uniquePlugins,it as writeGeneratedDocuments};
|
|
1
|
+
import{c as e,d as t,h as n,s as r}from"./utils-CDYdsyyW.mjs";import{a as i,c as a,i as o,l as s,r as c,s as l}from"./schema-CXK5pVmJ.mjs";import{_ as u,a as d,b as f,c as p,d as ee,f as te,g as ne,h as re,i as ie,l as ae,m as oe,n as se,o as ce,p as le,r as ue,s as de,t as fe,u as pe,v as me,y as he}from"./fonts-BiuIJVev.mjs";import{C as m,S as ge,_ as _e,a as ve,b as ye,c as be,d as xe,f as Se,g as Ce,h as we,i as Te,l as Ee,m as De,n as Oe,o as ke,p as Ae,r as je,s as Me,t as h,u as Ne,v as Pe,w as Fe,x as Ie,y as Le}from"./tokens-DFYNBFFR.mjs";import{definePlugin as Re}from"./plugin.mjs";import{defineGenerator as ze,defineSchema as Be,useExecution as g}from"@power-plant/core";import{createDefu as _,defu as v}from"defu";import{dirname as Ve,isAbsolute as y,resolve as b}from"node:path";import{titleCase as x}from"@stryke/string-format/title-case";import{existsSync as S}from"@stryke/fs/exists";import{isDirectory as C}from"@stryke/fs/is-file";import{readJsonFile as w}from"@stryke/fs/json";import{listFiles as He}from"@stryke/fs/list-files";import{appendPath as T}from"@stryke/path/append";import{findFileExtensionSafe as E,findFileName as D,findFolderName as O}from"@stryke/path/file-path-fns";import{joinPaths as k}from"@stryke/path/join";import{isSetObject as A}from"@stryke/type-checks/is-set-object";import{isSetString as j}from"@stryke/type-checks/is-set-string";import{mkdir as Ue,readFile as M,readdir as N,writeFile as We}from"node:fs/promises";import{getEnvPaths as Ge}from"@stryke/env/get-env-paths";import{findFilePath as P}from"@stryke/path/find";import{replacePath as F}from"@stryke/path/replace";import{isFunction as Ke}from"@stryke/type-checks/is-function";import{loadConfig as I}from"c12";import{createJiti as qe}from"jiti";import{existsSync as L}from"node:fs";import Je from"node:os";var Ye=`0.0.48`;const R=`base`;function z(e){let t=n(e).filter(e=>e.id!==R);return t.length>1?t:[]}function Xe(e,n){let r=e.find(e=>e.id===R);return!r||n.id===R?n.tokens:t(n.tokens,r.tokens)}function Ze(t,n,r){return{...t,theme:n.id,title:e(t.title,n.id)??t.title,tokens:Xe(r,n)}}function Qe(t,n){let r=e(t.title,n.id);return r?{...t,title:r}:t}async function B(e,t){let n={};for(let r of t.plugins.filter(e=>e.generate)){let i=await r.generate(e,t);n=v(i,n)}return n}async function V(e,t){let i=n(e.tokens),a=z(e.tokens);if(a.length===0)return B(e,t);let o={};for(let n of a){let a=await B(Ze(e,n,i),Qe(t,n));o=v(r(a,n.id),o)}return o}async function H(e){let t={};for(let n of e)Object.assign(t,await V(n.spec,n.config));return t}function U(e){return!!(j(e)||A(e)&&`url`in e&&j(e.url))}function W(e){if(j(e))return e;if(A(e)&&`url`in e&&j(e.url))return e.url}const $e=a.partial(),et=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),tt=_((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function nt(e,t){return y(t)?t:b(e,t)}function rt(e){return Array.isArray(e)?e.filter(j):j(e)?[e]:[]}function it(e){let t=e.toLowerCase();if(et.has(t))return t}function at(e){let t=E(e)?.toLowerCase();return!!(t&&et.has(t))}function G(e){if(!e)return;let t=l.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=l.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function ot(e){if(!e)return;let t=s.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){if(j(t)){let e=D(t,{withExtension:!1})||t,r=s.safeParse({name:e,path:t});r.success&&n.push(r.data);continue}let e=s.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function st(e){if(!A(e))return;let{files:t,usage:n,...r}=e,i=$e.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function ct(e){return A(e)&&`path`in e}async function lt(e){let t=k(e,`package.json`);if(!S(t))return;let n;try{n=await w(t)}catch{return}let r={};j(n.name)&&(r.name=n.name,r.title=n.name),j(n.description)&&(r.description=n.description),j(n.version)&&(r.version=n.version),j(n.homepage)&&(r.homepage=n.homepage);let i=W(n.repository);if(i&&(r.repository=i),A(n.dependencies)&&(r.dependencies=n.dependencies),A(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(j);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;ct(a)?s=G(a):A(a)&&(o=st(a),`files`in a&&(s=G(a.files)),`usage`in a&&(c=ot(a.usage)));let l=tt(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function ut(e){let t=k(e,`component.json`);if(!S(t))return;let n;try{n=await w(t)}catch{return}if(ct(n)||Array.isArray(n)){let e=G(n);if(e)return{files:e}}if(!A(n))return;let r=st(n)??{},i=`files`in n?G(n.files):void 0,a=`usage`in n?ot(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function dt(e){try{return(await N(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&at(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function ft(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=T(t.path,e),r=E(t.path)??``,i=t.language??it(r),a=t.name||D(t.path,{withExtension:!1})||t.path,o=t.content===void 0?S(n)?await M(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=k(e,`usage`);if(!S(n)||!C(n))return;let r=await dt(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=k(n,e),r=it(E(e)??``),i=D(e,{withExtension:!1})||e;return{name:i,title:x(i),path:t,content:await M(t,`utf8`),...r?{language:r}:{}}}))}async function pt(e,t){let n=t??(await He(e)).filter(e=>D(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(E(t))?`component`:`file`,path:t,content:await M(T(t,e),`utf8`)}:{type:/[tj]sx$/.test(E(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await M(T(t.path,e),`utf8`):void 0,path:T(t.path,e)}))}async function mt(e){let t=await lt(e),n=await ut(e);if(!t&&!n)return;let r=tt(n??{},t??{}),i=j(r.name)?r.name:O(e),o=j(r.title)?r.title:x(i),s=a.safeParse({...r,name:i,title:o});if(!s.success)return;let c=await ft(e,s.data.usage);return{...s.data,files:await pt(e,s.data.files),...c?.length?{usage:c}:{}}}async function ht(e){let t={},n=rt(e.options.componentsPath);for(let r of n){let n=nt(e.cwd,r);if(!(!S(n)||!C(n)))try{let e=await N(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await mt(k(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const gt=i.partial(),_t=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),K=_((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function vt(e,t){return y(t)?t:b(e,t)}function yt(e){return Array.isArray(e)?e.filter(j):j(e)?[e]:[]}function bt(e){let t=e.toLowerCase();if(_t.has(t))return t}function xt(e){let t=E(e)?.toLowerCase();return!!(t&&_t.has(t))}function St(e){return ye.test(e)}async function q(e){try{return(await N(e,{withFileTypes:!0})).filter(e=>e.isFile()&&xt(e.name)).map(e=>e.name)}catch{return[]}}function J(e){if(!e)return;let t=o.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=o.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function Ct(e){if(!A(e))return;let t=gt.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function wt(e){return A(e)&&`path`in e}async function Y(e,t,n){let r=T(e,t),i=bt(E(e)??``)??`file`,a=i===`svg`?await M(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Tt(e){let t=k(e,`package.json`);if(!S(t))return;let n;try{n=await w(t)}catch{return}let r={};j(n.name)&&(r.name=n.name,r.title=n.name),j(n.description)&&(r.description=n.description),j(n.version)&&(r.version=n.version),j(n.homepage)&&(r.homepage=n.homepage);let i=W(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(j);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;wt(a)?s=J(a):A(a)&&(o=Ct(a),`files`in a&&(s=J(a.files)));let c=K(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Et(e){let t=k(e,`icon.json`);if(!S(t))return;let n;try{n=await w(t)}catch{return}if(wt(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Ct(n)}async function Dt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=T(t.path,e),r=E(t.path)??``,i=t.type??bt(r)??`file`,a=t.content===void 0?i===`svg`?await M(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await q(e);return Promise.all(n.map(t=>Y(t,e)))}async function Ot(e){let t=await Tt(e),n=await Et(e),r=await q(e);if(!t&&!n&&r.length===0)return;let a=K(n??{},t??{}),o=j(a.name)?a.name:O(e),s=j(a.title)?a.title:x(o),c=i.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await Dt(e,c.data.files)}}function X(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:x(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function kt(e,t,n){let r=await q(e);for(let i of r){let r=D(i,{withExtension:!1});r&&X(n,r,await Y(i,e,t))}}async function At(e){let t={},n=yt(e.options.iconsPath);for(let r of n){let n=vt(e.cwd,r);if(!(!S(n)||!C(n)))try{let e=await N(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=k(n,r.name);if(r.isDirectory()){if(St(r.name)){await kt(e,r.name,t);continue}let n=await Ot(e);if(n){let e=t[n.name];t[n.name]=e?K(n,e):n}continue}if(r.isFile()&&xt(r.name)){let e=D(r.name,{withExtension:!1});if(!e)continue;X(t,e,await Y(r.name,n))}}}catch{continue}}return t}function Z(e,t){let n=e[t];return j(n)?n:void 0}function jt(e){let t={};j(e.name)&&(t.name=e.name),j(e.description)&&(t.description=e.description),j(e.homepage)&&(t.homepage=e.homepage);let n=W(e.repository);n&&(t.repository=n),j(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(A(r)){let t=r,n=Z(t,`title`),a=Z(t,`name`),o=Z(t,`description`),s=Z(t,`homepage`),c=Z(t,`logo`),l=W(t.repository);a?i.name=a:j(e.name)&&(i.name=e.name),n?i.title=n:j(i.name)&&(i.title=x(i.name)),o?i.description=o:j(e.description)&&(i.description=e.description),s?i.homepage=s:U(e.homepage)?i.homepage=W(e.homepage):U(e.author)?i.homepage=W(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&U(e.maintainers[0])?i.homepage=W(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&U(e.contributors[0])?i.homepage=W(e.contributors[0]):U(e.bugs)&&(i.homepage=W(e.bugs)),c&&(i.logo=c),l?i.repository=l:U(e.repository)&&(i.repository=W(e.repository))}return v(i,t)}function Mt(e){let t={};return j(e.name)&&(t.name=e.name),j(e.title)&&(t.title=e.title),j(e.description)&&(t.description=e.description),j(e.repository)&&(t.repository=e.repository),j(e.homepage)&&(t.homepage=e.homepage),j(e.logo)&&(t.logo=e.logo),t}async function Nt(e){let t=k(e,`package.json`);if(!S(t))return{};let n;try{n=await w(t)}catch{return{}}return jt(n)}async function Pt(e,t){let n=await Nt(e),r=Mt(t);return v(r,n)}function Ft(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const It=Je.homedir();function Lt(e){return Array.isArray(e)?e.filter(e=>A(e)):[]}function Q(e){return Array.isArray(e)||!A(e)?{}:{...e}}const Rt=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function zt(e,t){let n={...e};for(let e of Rt)t[e]!=null&&delete n[e];return n}function Bt(e,t,n,r){let i=v({cwd:e,envPaths:r.envPaths},zt(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:k(e,`assets/icons`),fontsPath:k(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(j).map(e=>P(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=j(i.componentsPath)?P(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(j).map(e=>P(e));i.iconsPath=t.length>0?t:k(e,`assets/icons`)}else i.iconsPath=j(i.iconsPath)?P(i.iconsPath):k(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(j).map(e=>P(e));i.fontsPath=t.length>0?t:k(e,`assets/fonts`)}else i.fontsPath=j(i.fontsPath)?P(i.fontsPath):k(e,`assets/fonts`);return i.plugins=Ft(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function $(e,t){let n=t.configFile&&L(F(t.configFile,e))?F(t.configFile,e):t.configFile&&L(t.configFile)?t.configFile:L(k(e,`razorwind.${t.mode}.ts`))?k(e,`razorwind.${t.mode}.ts`):L(k(e,`razorwind.${t.mode}.js`))?k(e,`razorwind.${t.mode}.js`):L(k(e,`razorwind.${t.mode}.mts`))?k(e,`razorwind.${t.mode}.mts`):L(k(e,`razorwind.${t.mode}.mjs`))?k(e,`razorwind.${t.mode}.mjs`):L(k(e,`razorwind.${t.mode}.cjs`))?k(e,`razorwind.${t.mode}.cjs`):L(k(e,`razorwind.${t.mode}.cts`))?k(e,`razorwind.${t.mode}.cts`):L(k(e,`razorwind.${t.mode}.json`))?k(e,`razorwind.${t.mode}.json`):L(k(e,`razorwind.${t.mode}.yaml`))?k(e,`razorwind.${t.mode}.yaml`):L(k(e,`razorwind.${t.mode}.yml`))?k(e,`razorwind.${t.mode}.yml`):L(k(e,`razorwind.config.ts`))?k(e,`razorwind.config.ts`):L(k(e,`razorwind.config.js`))?k(e,`razorwind.config.js`):L(k(e,`razorwind.config.mts`))?k(e,`razorwind.config.mts`):L(k(e,`razorwind.config.mjs`))?k(e,`razorwind.config.mjs`):L(k(e,`razorwind.config.cjs`))?k(e,`razorwind.config.cjs`):L(k(e,`razorwind.config.cts`))?k(e,`razorwind.config.cts`):L(k(e,`razorwind.config.json`))?k(e,`razorwind.config.json`):L(k(e,`razorwind.config.yaml`))?k(e,`razorwind.config.yaml`):L(k(e,`razorwind.config.yml`))?k(e,`razorwind.config.yml`):void 0,r=Ge({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=qe(e,i),o=[{}];if(n){let r=y(n)?n:b(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=Ke(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=Lt(r);if(e.length===0)throw Error(`Razorwind config array is empty. Provide at least one configuration object.`);o=e.map(e=>({...e,configFile:n}))}else A(r)&&(o=[{...r,configFile:n}])}}let[s,c,l]=await Promise.all([I({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),I({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),I({cwd:It,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=Q(s?.config),d=n?y(n)?n:b(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&b(e,f)===d&&delete u.plugins;let p={envPaths:{...r,home:It},workspaceLayer:u,environmentLayer:Q(c?.config),homeLayer:Q(l?.config)};return o.map(n=>Bt(e,t,n,p))}async function Vt(e,t){let n=(await $(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Ht(e){if(e.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let t=e.options.tokens;(!t||h(t))&&(t=await Oe(e));let n={...await Pt(e.cwd,e.options),tokens:t??{},components:v(e.options.components??{},await ht(e)??{}),icons:v(e.options.icons??{},await At(e)??{}),fonts:v(e.options.fonts??{},await d(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(!n.tokens||h(n.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Ut(e,t){let n=await $(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Ht(e),config:t});return r}async function Wt(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=y(e)?e:b(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await Ue(Ve(a),{recursive:!0}),await We(a,o,`utf8`),n.push(a)}return n}function Gt(e){return e}const Kt=ze({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:Ye,tags:[`razorwind`,`dtcg`]},schema:Be({schema:c}),input:async e=>{let t=g(),n=await Ut(t,e),r=n[0];if(!r)throw Error(`Unable to resolve Razorwind configuration.`);return t.generationRuns=n,t.options=r.config,r.spec},output:async(e,t,n)=>{await Wt(n,g().cwd)},generator:async e=>{let t=g();return H(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});export{Le as DEFAULT_TOKEN_PATH_CANDIDATES,re as FONT_EXTENSIONS,ne as FONT_FORMAT_FROM_EXTENSION,u as GENERIC_FALLBACK_FROM_ROLE,me as MONO_ROLES,ke as RAZORWIND_INFER_PREPROCESSOR,he as SANS_ROLES,ye as THEME_BASENAME_PATTERN,Ie as TOKEN_DIRECTORY_GLOB,ge as TOKEN_FILE_EXTENSIONS,Fe as TYPE_PATH_HINTS,f as WEIGHT_FROM_SUFFIX,m as WINDIE_PARSERS,m as razorwindParsers,oe as copyFontFiles,de as cssFontFamily,Gt as defineConfig,Re as definePlugin,p as fontFamilyName,H as generateAllPluginDocuments,V as generatePluginDocuments,Kt as generator,Me as getExtractionHooks,be as getRazorwindParserHooks,Ee as getRazorwindPreprocessorHooks,we as inferTypeFromPath,Ce as inferValue,fe as isEmptyFonts,h as isEmptyTokens,ht as loadComponents,d as loadFonts,At as loadIcons,Nt as loadSchemaMetaFromPackageJson,Oe as loadTokens,je as loadTokensOrThrow,se as mergeFonts,_e as nestFlatTokens,W as normalizeRepository,Pe as normalizeTokenTree,De as parseCssCustomProperties,ue as parseCssFonts,ce as parseFontFilename,ie as pickFontByRole,Ut as prepareGenerationRuns,Ht as prepareSpec,ae as prependFontCss,Ne as razorwindInferPreprocessor,xe as registerRazorwindHooks,Se as registerRazorwindParsers,pe as renderFontCss,ee as renderGoogleFontImports,te as renderLocalFontFaces,Vt as resolveConfig,$ as resolveConfigs,Pt as resolveSchemaMeta,Te as resolveTokensSource,Mt as schemaMetaFromConfig,jt as schemaMetaFromPackageJson,Ae as styleDictionaryLogOptions,ve as themeKeyFromPath,z as themesForGeneration,le as toGoogleFontsCssUrl,Ft as uniquePlugins,Wt as writeGeneratedDocuments};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../fonts-CkBPEFie.cjs");exports.FONT_EXTENSIONS=e.h,exports.FONT_FORMAT_FROM_EXTENSION=e.g,exports.GENERIC_FALLBACK_FROM_ROLE=e._,exports.MONO_ROLES=e.v,exports.SANS_ROLES=e.y,exports.WEIGHT_FROM_SUFFIX=e.b,exports.copyFontFiles=e.m,exports.cssFontFamily=e.s,exports.fontFamilyName=e.c,exports.isEmptyFonts=e.t,exports.loadFonts=e.a,exports.mergeFonts=e.n,exports.parseCssFonts=e.r,exports.parseFontFilename=e.o,exports.pickFontByRole=e.i,exports.prependFontCss=e.l,exports.renderFontCss=e.u,exports.renderGoogleFontImports=e.d,exports.renderLocalFontFaces=e.f,exports.toGoogleFontsCssUrl=e.p;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-Di7vqmsi.cjs";
|
|
2
|
+
export { FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, MONO_ROLES, type ParsedFontFilename, type RenderFontCssOptions, SANS_ROLES, WEIGHT_FROM_SUFFIX, copyFontFiles, cssFontFamily, fontFamilyName, isEmptyFonts, loadFonts, mergeFonts, parseCssFonts, parseFontFilename, pickFontByRole, prependFontCss, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, toGoogleFontsCssUrl };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-CzbZzpnz.mjs";
|
|
2
|
+
export { FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, MONO_ROLES, type ParsedFontFilename, type RenderFontCssOptions, SANS_ROLES, WEIGHT_FROM_SUFFIX, copyFontFiles, cssFontFamily, fontFamilyName, isEmptyFonts, loadFonts, mergeFonts, parseCssFonts, parseFontFilename, pickFontByRole, prependFontCss, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, toGoogleFontsCssUrl };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,y}from"../../fonts-BiuIJVev.mjs";export{s as FONT_EXTENSIONS,o as FONT_FORMAT_FROM_EXTENSION,e as GENERIC_FALLBACK_FROM_ROLE,v as MONO_ROLES,y as SANS_ROLES,n as WEIGHT_FROM_SUFFIX,u as copyFontFiles,h as cssFontFamily,r as fontFamilyName,g as isEmptyFonts,t as loadFonts,d as mergeFonts,m as parseCssFonts,f as parseFontFilename,c as pickFontByRole,l as prependFontCss,_ as renderFontCss,i as renderGoogleFontImports,a as renderLocalFontFaces,p as toGoogleFontsCssUrl};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-By75va9Y.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.y,exports.RAZORWIND_INFER_PREPROCESSOR=e.o,exports.THEME_BASENAME_PATTERN=e.b,exports.TOKEN_DIRECTORY_GLOB=e.x,exports.TOKEN_FILE_EXTENSIONS=e.S,exports.TYPE_PATH_HINTS=e.w,exports.WINDIE_PARSERS=e.C,exports.razorwindParsers=e.C,exports.getExtractionHooks=e.s,exports.getRazorwindParserHooks=e.c,exports.getRazorwindPreprocessorHooks=e.l,exports.inferTypeFromPath=e.h,exports.inferValue=e.g,exports.isEmptyTokens=e.t,exports.loadTokens=e.n,exports.loadTokensOrThrow=e.r,exports.nestFlatTokens=e._,exports.normalizeTokenTree=e.v,exports.parseCssCustomProperties=e.m,exports.razorwindInferPreprocessor=e.u,exports.registerRazorwindHooks=e.d,exports.registerRazorwindParsers=e.f,exports.resolveTokensSource=e.i,exports.styleDictionaryLogOptions=e.p,exports.themeKeyFromPath=e.a;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-
|
|
1
|
+
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-B7MsziQp.cjs";
|
|
2
2
|
export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-
|
|
1
|
+
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-CzjDptav.mjs";
|
|
2
2
|
export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"../../tokens-
|
|
1
|
+
import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"../../tokens-DFYNBFFR.mjs";export{C as DEFAULT_TOKEN_PATH_CANDIDATES,m as RAZORWIND_INFER_PREPROCESSOR,i as THEME_BASENAME_PATTERN,S as TOKEN_DIRECTORY_GLOB,t as TOKEN_FILE_EXTENSIONS,x as TYPE_PATH_HINTS,e as WINDIE_PARSERS,e as razorwindParsers,_ as getExtractionHooks,a as getRazorwindParserHooks,d as getRazorwindPreprocessorHooks,l as inferTypeFromPath,c as inferValue,v as isEmptyTokens,p as loadTokens,g as loadTokensOrThrow,n as nestFlatTokens,b as normalizeTokenTree,f as parseCssCustomProperties,y as razorwindInferPreprocessor,o as registerRazorwindHooks,s as registerRazorwindParsers,u as resolveTokensSource,h as styleDictionaryLogOptions,r as themeKeyFromPath};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as Plugin } from "./config-
|
|
1
|
+
import { l as Plugin } from "./config-BtscEr7S.cjs";
|
|
2
2
|
//#region src/plugin.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Type helper for Razorwind plugins (`parsers` / `preprocessors` + `extract` / `validate` / `generate`).
|
|
@@ -46,4 +46,4 @@ declare function definePlugin<TOptions>(factory: (options: TOptions) => Plugin,
|
|
|
46
46
|
declare function definePlugin(plugin: Plugin, overrides?: Partial<Plugin>): Plugin;
|
|
47
47
|
//#endregion
|
|
48
48
|
export { definePlugin as t };
|
|
49
|
-
//# sourceMappingURL=plugin-
|
|
49
|
+
//# sourceMappingURL=plugin-0UYp_yIy.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-
|
|
1
|
+
{"version":3,"file":"plugin-0UYp_yIy.d.cts","names":[],"sources":["../src/plugin.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiEgB,aAAa,UAC3B,UAAU,SAAS,aAAa,QAChC,YAAY,QAAQ,WAClB,UAAU,aAAa;iBACX,aACd,QAAQ,QACR,YAAY,QAAQ,UACnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as Plugin } from "./config-
|
|
1
|
+
import { l as Plugin } from "./config-CNTGHrST.mjs";
|
|
2
2
|
//#region src/plugin.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Type helper for Razorwind plugins (`parsers` / `preprocessors` + `extract` / `validate` / `generate`).
|
|
@@ -46,4 +46,4 @@ declare function definePlugin<TOptions>(factory: (options: TOptions) => Plugin,
|
|
|
46
46
|
declare function definePlugin(plugin: Plugin, overrides?: Partial<Plugin>): Plugin;
|
|
47
47
|
//#endregion
|
|
48
48
|
export { definePlugin as t };
|
|
49
|
-
//# sourceMappingURL=plugin-
|
|
49
|
+
//# sourceMappingURL=plugin-CH6vFnxu.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-CH6vFnxu.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
|
package/dist/plugin.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-
|
|
2
|
-
import { t as definePlugin } from "./plugin-
|
|
1
|
+
import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-BtscEr7S.cjs";
|
|
2
|
+
import { t as definePlugin } from "./plugin-0UYp_yIy.cjs";
|
|
3
3
|
export { type Plugin, type TokensParser, type TokensPreprocessor, definePlugin };
|