@salty-css/core 0.4.5 → 0.4.6-feat-astro-css-collector.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/bin/index.cjs +1 -1
  2. package/dist/bin/index.js +1 -1
  3. package/dist/bin/main.cjs +1 -1
  4. package/dist/bin/main.js +1 -1
  5. package/dist/bin/templates.d.ts +7 -7
  6. package/dist/compiler/get-files.cjs +1 -1
  7. package/dist/compiler/get-files.js +4 -1
  8. package/dist/compiler/salty-compiler.cjs +1 -1
  9. package/dist/compiler/salty-compiler.js +1 -1
  10. package/dist/css/keyframes.cjs +1 -1
  11. package/dist/css/keyframes.js +1 -1
  12. package/dist/factories/index.cjs +1 -1
  13. package/dist/factories/index.js +1 -1
  14. package/dist/generators/index.cjs +1 -1
  15. package/dist/generators/index.js +1 -1
  16. package/dist/{generators-Drnkwo8s.js → generators-DAdl36fA.js} +5 -5
  17. package/dist/generators-DZKr85A5.cjs +1 -0
  18. package/dist/helpers/index.cjs +1 -1
  19. package/dist/instances/classname-instance.cjs +1 -1
  20. package/dist/instances/classname-instance.js +9 -3
  21. package/dist/{main-3GC2lwLY.js → main-BVs2D1Kc.js} +56 -52
  22. package/dist/main-D_Tzl7kF.cjs +11 -0
  23. package/dist/{parse-styles-iylx7U1R.js → parse-styles-Cz2VD8e7.js} +6 -4
  24. package/dist/parse-styles-rgixHoC7.cjs +3 -0
  25. package/dist/parsers/index.cjs +3 -3
  26. package/dist/parsers/index.js +16 -14
  27. package/dist/{chunk-CMqjfN_6.cjs → rolldown-runtime-BocRIvOZ.cjs} +1 -1
  28. package/dist/runtime/index.cjs +1 -1
  29. package/dist/runtime/index.js +1 -1
  30. package/dist/salty-compiler-B6rmZXo5.cjs +34 -0
  31. package/dist/{salty-compiler-CfYjQZDA.js → salty-compiler-DjKIsORy.js} +76 -54
  32. package/dist/util/index.cjs +1 -1
  33. package/dist/util/index.js +2 -4
  34. package/package.json +1 -1
  35. package/dist/generators-BVhdBePh.cjs +0 -1
  36. package/dist/main-wweiiOF1.cjs +0 -11
  37. package/dist/parse-styles-B51bN86A.cjs +0 -3
  38. package/dist/salty-compiler-CFuCIw5V.cjs +0 -34
@@ -1,34 +0,0 @@
1
- const e=require("./chunk-CMqjfN_6.cjs"),t=require("./compiler/helpers.cjs"),n=require("./util/index.cjs"),r=require("./factories/index.cjs"),i=require("./parse-styles-B51bN86A.cjs"),a=require("./css/merge.cjs"),o=require("./compiler/get-files.cjs"),s=require("./parsers/index.cjs");let c=require("fs"),l=require("esbuild");l=e.t(l,1);let u=require("path"),d=require("winston"),f=require("fs/promises"),p=require("child_process"),m=require("module");var h=(0,d.createLogger)({level:`debug`,format:d.format.combine(d.format.colorize(),d.format.cli()),transports:[new d.transports.Console({})]}),g=e=>{h.error(e)},_=/^(?:[a-z][a-z0-9+.-]*:)?\/\//i,v=e=>typeof e==`string`?{url:e}:e,y=e=>e.startsWith(`.`)||e.startsWith(`/`)?e:`./${e}`,b=e=>e.split(`\\`).join(`/`),x=(e,t)=>(0,m.createRequire)(t).resolve(e),S=(e,t)=>{let n=(0,u.dirname)(t);(0,c.existsSync)(n)||(0,c.mkdirSync)(n,{recursive:!0}),(0,c.copyFileSync)(e,t)},C=(e,{media:t,supports:n})=>{let r=`@import url('${e}')`;return n&&(r+=` supports(${n})`),t&&(r+=` ${t}`),`${r};`},w=(e,t,r,i={})=>{let a=v(e),{url:o}=a,s=i.resolveModule??x,c=i.copyAsset??S;if(_.test(o)||o.startsWith(`/`))return{rule:C(o,a)};if(o.startsWith(`./`)||o.startsWith(`../`)){let e=(0,u.resolve)((0,u.dirname)(t),o);return{rule:C(y(b((0,u.relative)((0,u.join)(r,`css`),e))),a)}}let l=s(o.startsWith(`~`)?o.slice(1):o,t),d=`${n.toHash(l,6)}-${(0,u.basename)(l)}`;return c(l,(0,u.join)(r,`imports`,d)),{rule:C(`../imports/${d}`,a)}},T=async e=>{let t=await o.getPackageJson(e);if(t)return t.type},E,D=async e=>{if(E)return E;let t=await T(e);return t===`module`?E=`esm`:(t===`commonjs`||{}.url.endsWith(`.cjs`))&&(E=`cjs`),E||`esm`};function O(e){return e?typeof e==`string`?e.replace(/[^\d\w]/g,`.`):O(String(e)):``}var k={"*, *::before, *::after":{boxSizing:`border-box`},"*":{margin:0},html:{lineHeight:1.15,textSizeAdjust:`100%`,WebkitFontSmoothing:`antialiased`},"img, picture, video, canvas, svg":{display:`block`,maxWidth:`100%`},"p, h1, h2, h3, h4, h5, h6":{overflowWrap:`break-word`},p:{textWrap:`pretty`},"h1, h2, h3, h4, h5, h6":{textWrap:`balance`},a:{color:`currentColor`},button:{lineHeight:`1em`,color:`currentColor`},"input, optgroup, select, textarea":{fontFamily:`inherit`,fontSize:`100%`,lineHeight:`1.15em`}},A=class{projectRootDir;options;importFile=e=>import(`${e}?t=${Date.now()}`);cache={rcFile:null,destDir:null,externalModules:[]};constructor(e,t={}){if(this.projectRootDir=e,this.options=t,typeof process>`u`)throw Error(`SaltyServer can only be used in a Node.js environment.`)}get isProduction(){if(this.options.mode)return this.options.mode===`production`;try{return process.env.NODE_ENV!==`development`}catch{return!1}}readRCFile=async(e=this.projectRootDir)=>{if(this.cache.rcFile)return this.cache.rcFile;if(e===`/`)throw Error(`Could not find .saltyrc.json file`);let t=await(0,f.readFile)((0,u.join)(e,`.saltyrc.json`),`utf-8`).then(JSON.parse).catch(()=>void 0);return t?(this.cache.rcFile=t,t):this.readRCFile((0,u.join)(e,`..`))};getRCProjectConfig=async e=>{let t=await this.readRCFile(e);return t.projects?.find(t=>e.endsWith(t.dir||``))||t.projects?.find(e=>e.dir===t.defaultProject)};getPathFilter=async()=>{let e=await this.getRCProjectConfig(this.projectRootDir);return{include:e?.include,exclude:e?.exclude}};isAllowedSaltyFile=(e,r)=>t.isSaltyFile(e)?n.isPathAllowed(n.normalizePath((0,u.relative)(this.projectRootDir,e)),r):!1;getExternalModules=e=>{if(this.cache.externalModules.length>0)return this.cache.externalModules;let t=(0,c.readFileSync)(e,`utf8`).match(/externalModules:\s?\[(.*)\]/);if(!t)return[];let n=t[1].split(`,`).map(e=>e.replace(/['"`]/g,``).trim());return this.cache.externalModules=n,n};getDestDir=async()=>{if(this.cache.destDir)return this.cache.destDir;let e=await this.getRCProjectConfig(this.projectRootDir),t=(0,u.join)(this.projectRootDir,e?.saltygenDir||`saltygen`);return this.cache.destDir=t,t};generateConfig=async()=>{let e=await this.getRCProjectConfig(this.projectRootDir),t=await this.getDestDir(),n=(0,u.join)(this.projectRootDir,e?.configDir||``,`salty.config.ts`),r=(0,u.join)(t,`salty.config.js`),i=await D(this.projectRootDir),a=this.getExternalModules(n);await l.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:r,format:i,external:a});let{config:o}=await this.importFile(r);return{config:o,path:r}};addConfigCache=e=>{try{let t=(0,c.readFileSync)((0,u.join)(this.projectRootDir,`saltygen/cache/config-cache.json`),`utf8`);return t?`globalThis.saltyConfig = ${t};\n\n${e}`:`globalThis.saltyConfig = {};\n\n${e}`}catch{return e}};getConfigCache=async()=>{let e=(0,c.readFileSync)((0,u.join)(await this.getDestDir(),`cache/config-cache.json`),`utf8`);if(!e)throw Error(`Could not find config cache file`);return JSON.parse(e)};getConfig=async()=>{let e=await this.getConfigCache(),t=(0,u.join)(await this.getDestDir(),`salty.config.js`),{config:n}=await this.importFile(t);return a.mergeObjects(n,e)};generateCss=async(e=!0)=>{try{let r=Date.now();this.isProduction?h.info(`Generating CSS in production mode! 🔥`):h.info(`Generating CSS in development mode! 🚀`);let i=[],a=[],o=await this.getDestDir(),s=(0,u.join)(o,`index.css`);e&&((0,c.existsSync)(o)&&(0,p.execSync)(`rm -rf `+o),(0,c.mkdirSync)(o,{recursive:!0}),(0,c.mkdirSync)((0,u.join)(o,`css`)),(0,c.mkdirSync)((0,u.join)(o,`types`)),(0,c.mkdirSync)((0,u.join)(o,`js`)),(0,c.mkdirSync)((0,u.join)(o,`cache`)),(0,c.mkdirSync)((0,u.join)(o,`imports`)));let l=new Set,d=new Set,f=await this.getPathFilter(),{exclude:m}=f,g=this.projectRootDir;async function _(e){let r=[`node_modules`,`saltygen`],i=(0,c.statSync)(e);if(i.isDirectory()){if(r.some(t=>e.includes(t)))return;if(m?.length){let t=n.normalizePath((0,u.relative)(g,e));if(t&&!n.isPathAllowed(t,{exclude:m}))return}let t=(0,c.readdirSync)(e);await Promise.all(t.map(t=>_((0,u.join)(e,t))))}else if(i.isFile()&&t.isSaltyFile(e)&&n.isPathAllowed(n.normalizePath((0,u.relative)(g,e)),f)){l.add(e);let t=(0,c.readFileSync)(e,`utf8`);/define[\w\d]+\(/.test(t)&&d.add(e)}}await _(this.projectRootDir),await this.generateConfigStyles(d);let v={keyframes:[],components:[],classNames:[]};await Promise.all([...l].map(async e=>{let{contents:n}=await this.compileSaltyFile(e,o);for(let[r,i]of Object.entries(n)){let n=await t.resolveExportValue(i,1);n.isKeyframes?v.keyframes.push({value:n,src:e,name:r}):n.isClassName?v.classNames.push({...i,src:e,name:r}):n.generator&&v.components.push({...i,src:e,name:r})}}));let y=await this.getConfig();for(let e of v.keyframes){let{value:t}=e,n=`a_${t.animationName}.css`,r=(0,u.join)(o,`css/${n}`);i.push(n),(0,c.writeFileSync)(r,t.css)}let b={};for(let e of v.components){let{src:t,name:n}=e;b[t]||(b[t]=[]);let r=e.generator._withBuildContext({callerName:n,isProduction:this.isProduction,config:y});a[r.priority]||(a[r.priority]=[]);let i=await r.css;i&&(a[r.priority].push(r.cssFileName),(0,c.writeFileSync)((0,u.join)(o,`css/${r.cssFileName}`),i),y.importStrategy===`component`&&b[t].push(r.cssFileName))}for(let e of v.classNames){let{src:t,name:n}=e;b[t]||(b[t]=[]);let r=e.generator._withBuildContext({callerName:n,isProduction:this.isProduction,config:y}),i=await r.css;i&&(a[r.priority]||(a[r.priority]=[]),a[r.priority].push(r.cssFileName),(0,c.writeFileSync)((0,u.join)(o,`css/${r.cssFileName}`),i),y.importStrategy===`component`&&b[t].push(r.cssFileName))}y.importStrategy===`component`&&Object.entries(b).forEach(([e,t])=>{let r=t.map(e=>`@import url('./${e}');`).join(`
2
- `),i=n.toHash(e,6);(0,c.writeFileSync)((0,u.join)(o,`css/f_${n.dashCase((0,u.parse)(e).name)}-${i}.css`),r||`/* Empty file */`)});let x=i.map(e=>`@import url('./css/${e}');`).join(`
3
- `),S=`/*!
4
- * Generated with Salty CSS (https://salty-css.dev)
5
- * Do not edit this file directly
6
- * Version 0.4.5
7
- */
8
- @layer imports, reset, global, templates, fonts, l0, l1, l2, l3, l4, l5, l6, l7, l8;\n\n${[`_imports.css`,`_variables.css`,`_reset.css`,`_global.css`,`_templates.css`,`_fonts.css`].filter(e=>{try{return(0,c.readFileSync)((0,u.join)(o,`css`,e),`utf8`).length>0}catch{return!1}}).map(e=>`@import url('./css/${e}')${e===`_imports.css`?` layer(imports)`:``};`).join(`
9
- `)}\n${x}`;if(y.importStrategy!==`component`){let e=a.reduce((e,t,r)=>{let i=t.reduce((e,t)=>{let r=(0,u.join)(o,`css`,t),i=(0,c.readFileSync)(r,`utf8`),a=/.*-([^-]+)-\d+.css/.exec(t)?.at(1)||n.toHash(r,6);return e.includes(a)?e:`${e}\n/*start:${a}-${t}*/\n${i}\n/*end:${a}*/\n`},``),a=`l_${r}.css`;return(0,c.writeFileSync)((0,u.join)(o,`css`,a),`@layer l${r} { ${i}\n }`),`${e}\n@import url('./css/${a}');`},``);S+=e}(0,c.writeFileSync)(s,S);let C=Date.now()-r,w=C<200?`🔥`:C<500?`🚀`:C<1e3?`🎉`:C<2e3?`🚗`:C<5e3?`🤔`:`🥴`;h.info(`Generated CSS in ${C}ms! ${w}`)}catch(e){console.error(e)}};generateConfigStyles=async e=>{let t=await this.getDestDir(),o={mediaQueries:[],globalStyles:[],variables:[],templates:[],imports:[],fonts:[]};await Promise.all([...e].map(async e=>{let{contents:n,outputFilePath:r}=await this.compileSaltyFile(e,t);Object.entries(n).forEach(([t,n])=>{n.isMedia?o.mediaQueries.push([t,n]):n.isGlobalDefine?o.globalStyles.push(n):n.isDefineVariables?o.variables.push(n):n.isDefineTemplates?o.templates.push(n._setPath(`${t};;${r}`)):n.isDefineImport?o.imports.push(n._setPath(e)):n.isDefineFont&&o.fonts.push(n)})}));let{config:l,path:d}=await this.generateConfig(),f={...l},{mediaQueries:p}=o;f.mediaQueries=Object.fromEntries(p.map(([e,t])=>[`@${e}`,t]));let m=p.map(([e])=>`'@${e}'`).join(` | `),g=new Set,_=async(e,t=[])=>{if(!e)return[];let r=Object.entries(e).map(async([e,r])=>{let a=async r=>{if(!r)return;if(r instanceof Promise)return await a(await r);if(typeof r==`function`)return await a(await r());if(typeof r==`object`)return await _(r,[...t,e]);let o=O(e),s=n.dashCase(e),c=[...t,o].join(`.`);g.add(`"${c}"`);let l=[...t.map(n.dashCase),s].join(`-`),u=i.s(r);return u?`--${l}: ${u.transformed};`:`--${l}: ${r};`};return await a(r)});return(await Promise.all(r)).flat()},v=async e=>{if(!e)return[];let t=Object.entries(e).map(async([e,t])=>{let n=await _(t);return e===`base`?n.join(``):f.mediaQueries[e]?`${f.mediaQueries[e]} { ${n.join(``)} }`:`${e} { ${n.join(``)} }`});return(await Promise.all(t)).flat()},y=async e=>{if(!e)return[];let t=Object.entries(e).map(async([e,t])=>{let n=Object.entries(t).map(async([t,n])=>{let r=await _(n,[e]);return`${`.${e}-${t}, [data-${e}="${t}"]`} { ${r.join(``)} }`});return(await Promise.all(n)).flat()});return(await Promise.all(t)).flat()},b=(e={})=>({...e,responsive:void 0,conditional:void 0}),x=e=>o.variables.map(t=>e===`static`?b(t._current):t._current[e]),S=a.mergeObjects(b(l.variables),x(`static`)),C=await _(S),T=await v(a.mergeObjects(l.variables?.responsive,x(`responsive`))),E=await y(a.mergeObjects(l.variables?.conditional,x(`conditional`)));(0,c.writeFileSync)((0,u.join)(t,`css/_variables.css`),`:root { ${C.join(``)} ${T.join(``)} } ${E.join(``)}`),f.staticVariables=S,(0,c.writeFileSync)((0,u.join)(t,`css/_global.css`),`@layer global { ${await i.t(a.mergeObjects(l.global,o.globalStyles),``)} }`);let D=(0,u.join)(t,`css/_reset.css`);(0,c.writeFileSync)(D,`@layer reset { ${await i.t(l.reset===`none`?{}:typeof l.reset==`object`?l.reset:k,``)} }`);let A=(0,u.join)(t,`css/_templates.css`),j=a.mergeObjects(l.templates,o.templates),M=await s.parseTemplates(j),N=s.getTemplateTypes(j),P=s.getTemplateVariantMaps(j);(0,c.writeFileSync)(A,`@layer templates { ${M} }`),f.templates=j;let F=(0,u.join)(t,`css/_imports.css`),I=[];for(let e of o.imports){let n=e._path;if(n)for(let r of e._current)try{let{rule:e}=w(r,n,t);I.push(e)}catch(e){let t=typeof r==`string`?r:r.url;h.error(`Failed to resolve defineImport(${JSON.stringify(t)}) from ${n}: ${e.message}`)}}(0,c.writeFileSync)(F,I.join(`
10
- `));let L=l.templates?[r.defineTemplates(l.templates)._setPath(`config;;${d}`)]:[],R=a.mergeFactories(o.templates,L);f.templatePaths=Object.fromEntries(Object.entries(R).map(([e,t])=>[e,t._path]));let z=(0,u.join)(t,`css/_fonts.css`);if(o.fonts.length===0)(0,c.writeFileSync)(z,``);else{let e=[],t=[];for(let n of o.fonts){let{imports:r,body:i}=n._toCss();e.push(...r),t.push(i)}(0,c.writeFileSync)(z,`${e.length?`${e.join(`
11
- `)}\n\n`:``}@layer fonts { ${t.join(` `)} }`)}let B=(0,u.join)(t,`types/css-tokens.d.ts`),V=[...g].join(`|`),H=e=>e.split(/[.\-_]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``),U=Object.entries(P),W=U.some(([,e])=>Object.keys(e).length>0)?`type TemplateVariantTokens = {
12
- ${U.filter(([,e])=>Object.keys(e).length>0).map(([e,t])=>`${e}: {\n ${Object.entries(t).map(([e,t])=>`'${e}': { ${Object.entries(t).map(([e,t])=>`${e}?: ${t}`).join(`; `)} }`).join(`;
13
- `)}\n }`).join(`;
14
- `)}
15
- }`:`type TemplateVariantTokens = Record<string, Record<string, Record<string, never>>>;`,G=U.flatMap(([e,t])=>Object.keys(t).map(t=>`type ${H(e)}${H(t)}Variants = TemplateVariantTokens['${e}']['${t}'];`)).join(`
16
- `);(0,c.writeFileSync)(B,`
17
- // Variable types
18
- type VariableTokens = ${V||`''`};
19
- type PropertyValueToken = \`{\${VariableTokens}}\`;
20
-
21
- // Template types
22
- type TemplateTokens = {
23
- ${Object.entries(N).map(([e,t])=>!t||t===`any`?`${e}?: ${t||`any`}`:`${e}?: ${t} | \`\${${t}}@\${string}\``).join(`
24
- `)}
25
- }
26
-
27
- // Template variant types (per docs/template-variants-spec.md §7)
28
- ${W}
29
- ${G}
30
-
31
- // Media query types
32
- type MediaQueryKeys = ${m||`''`};
33
- `),(0,c.writeFileSync)((0,u.join)(t,`cache/config-cache.json`),JSON.stringify(f,null,2))};compileSaltyFile=async(e,t)=>{let r=n.toHash(e),i=(0,u.join)(t,`./temp`);(0,c.existsSync)(i)||(0,c.mkdirSync)(i);let a=(0,u.parse)(e),o=(0,c.readFileSync)(e,`utf8`);o=this.replaceStyledTag(o),o=this.addConfigCache(o);let s=(0,u.join)(t,`js`,`${r}-${n.toHash(o)}.js`),d=await this.getRCProjectConfig(this.projectRootDir),f=(0,u.join)(this.projectRootDir,d?.configDir||``,`salty.config.ts`),p=this.getExternalModules(f),m=await D(this.projectRootDir);return await l.build({stdin:{contents:o,sourcefile:a.base,resolveDir:a.dir,loader:`tsx`},minify:!0,treeShaking:!0,bundle:!0,outfile:s,format:m,target:[`node20`],keepNames:!0,external:p,packages:`external`,plugins:[{name:`test`,setup:e=>{e.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},e=>{let t=(0,c.readFileSync)(e.path,`utf8`);return{contents:this.replaceStyledTag(t),loader:`ts`}})}}]}),{contents:await this.importFile(s),outputFilePath:s}};getFramework=async()=>(await this.getRCProjectConfig(this.projectRootDir))?.framework;generateFile=async e=>{try{let r=await this.getDestDir(),i=await this.getPathFilter();if(this.isAllowedSaltyFile(e,i)){let i=[],a=await this.getConfig(),{contents:o}=await this.compileSaltyFile(e,r);for(let[e,n]of Object.entries(o)){let o=await t.resolveExportValue(n,1);if(o.isKeyframes&&o.css){(0,c.writeFileSync)((0,u.join)(r,`css/${`a_${o.animationName}.css`}`),await o.css);continue}if(o.isClassName){let t=o.generator._withBuildContext({callerName:e,isProduction:this.isProduction,config:a}),n=await t.css;if(!n)continue;i[t.priority]||(i[t.priority]=[]),i[t.priority].push(t.cssFileName),(0,c.writeFileSync)((0,u.join)(r,`css/${t.cssFileName}`),n);continue}if(!o.generator)continue;let s=o.generator._withBuildContext({callerName:e,isProduction:this.isProduction,config:a}),l=await s.css;l&&((0,c.writeFileSync)((0,u.join)(r,`css/${s.cssFileName}`),l),i[s.priority]||(i[s.priority]=[]),i[s.priority].push(s.cssFileName))}if(a.importStrategy!==`component`)i.forEach((e,t)=>{let i=(0,u.join)(r,`css`,`l_${t}.css`),a=(0,c.readFileSync)(i,`utf8`);e.forEach(e=>{let t=(0,u.join)(r,`css`,e),i=/.*-([^-]+)-\d+.css/.exec(e)?.at(1)||n.toHash(t,6);if(!a.includes(i)){let n=`/*start:${i}-${e}*/\n${(0,c.readFileSync)(t,`utf8`)}\n/*end:${i}*/\n`;a=`${a.replace(/\}$/,``)}\n${n}\n}`}}),(0,c.writeFileSync)(i,a)});else{let t=i.flat().map(e=>`@import url('./${e}');`).join(`
34
- `),a=n.toHash(e,6);(0,c.writeFileSync)((0,u.join)(r,`css/f_${n.dashCase((0,u.parse)(e).name)}-${a}.css`),t||`/* Empty file */`)}}}catch(e){console.error(e)}};replaceStyledTag=e=>e.replace(/styled\(([^"'`{,]+),/g,(n,r)=>{if(/^['"`]/.test(r))return n;let i=RegExp(`import[^;]*${r}[,\\s{][^;]*from\\s?([^{};]+);`);if(!i.test(e))return n;let a=i.exec(e);if(a){let e=a.at(1);if(t.saltyFileExtensions.some(t=>e?.includes(t)))return n}return`styled('div',`})};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return A}});