@tamagui/static 1.14.0 → 1.14.2

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 (195) hide show
  1. package/dist/cjs/constants.js +52 -1
  2. package/dist/cjs/constants.js.map +2 -2
  3. package/dist/cjs/extractor/accessSafe.js +52 -1
  4. package/dist/cjs/extractor/accessSafe.js.map +2 -2
  5. package/dist/cjs/extractor/babelParse.js +66 -1
  6. package/dist/cjs/extractor/babelParse.js.map +2 -2
  7. package/dist/cjs/extractor/buildClassName.js +99 -1
  8. package/dist/cjs/extractor/buildClassName.js.map +2 -2
  9. package/dist/cjs/extractor/bundle.js +126 -1
  10. package/dist/cjs/extractor/bundle.js.map +2 -2
  11. package/dist/cjs/extractor/createEvaluator.js +86 -1
  12. package/dist/cjs/extractor/createEvaluator.js.map +2 -2
  13. package/dist/cjs/extractor/createExtractor.js +1630 -15
  14. package/dist/cjs/extractor/createExtractor.js.map +2 -2
  15. package/dist/cjs/extractor/ensureImportingConcat.js +64 -1
  16. package/dist/cjs/extractor/ensureImportingConcat.js.map +2 -2
  17. package/dist/cjs/extractor/evaluateAstNode.js +130 -1
  18. package/dist/cjs/extractor/evaluateAstNode.js.map +2 -2
  19. package/dist/cjs/extractor/extractHelpers.js +207 -1
  20. package/dist/cjs/extractor/extractHelpers.js.map +2 -2
  21. package/dist/cjs/extractor/extractMediaStyle.js +193 -1
  22. package/dist/cjs/extractor/extractMediaStyle.js.map +2 -2
  23. package/dist/cjs/extractor/extractToClassNames.js +413 -13
  24. package/dist/cjs/extractor/extractToClassNames.js.map +2 -2
  25. package/dist/cjs/extractor/findTopmostFunction.js +43 -1
  26. package/dist/cjs/extractor/findTopmostFunction.js.map +2 -2
  27. package/dist/cjs/extractor/generatedUid.js +59 -1
  28. package/dist/cjs/extractor/generatedUid.js.map +2 -2
  29. package/dist/cjs/extractor/getPrefixLogs.js +31 -1
  30. package/dist/cjs/extractor/getPrefixLogs.js.map +2 -2
  31. package/dist/cjs/extractor/getPropValueFromAttributes.js +89 -1
  32. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +2 -2
  33. package/dist/cjs/extractor/getSourceModule.js +103 -1
  34. package/dist/cjs/extractor/getSourceModule.js.map +2 -2
  35. package/dist/cjs/extractor/getStaticBindingsForScope.js +225 -1
  36. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +2 -2
  37. package/dist/cjs/extractor/hoistClassNames.js +74 -1
  38. package/dist/cjs/extractor/hoistClassNames.js.map +2 -2
  39. package/dist/cjs/extractor/literalToAst.js +115 -1
  40. package/dist/cjs/extractor/literalToAst.js.map +2 -2
  41. package/dist/cjs/extractor/loadFile.js +20 -2
  42. package/dist/cjs/extractor/loadFile.js.map +2 -2
  43. package/dist/cjs/extractor/loadTamagui.js +432 -15
  44. package/dist/cjs/extractor/loadTamagui.js.map +2 -2
  45. package/dist/cjs/extractor/logLines.js +43 -3
  46. package/dist/cjs/extractor/logLines.js.map +2 -2
  47. package/dist/cjs/extractor/normalizeTernaries.js +85 -1
  48. package/dist/cjs/extractor/normalizeTernaries.js.map +2 -2
  49. package/dist/cjs/extractor/removeUnusedHooks.js +109 -1
  50. package/dist/cjs/extractor/removeUnusedHooks.js.map +2 -2
  51. package/dist/cjs/extractor/timer.js +52 -1
  52. package/dist/cjs/extractor/timer.js.map +2 -2
  53. package/dist/cjs/extractor/validHTMLAttributes.js +126 -1
  54. package/dist/cjs/extractor/validHTMLAttributes.js.map +2 -2
  55. package/dist/cjs/getPragmaOptions.js +67 -2
  56. package/dist/cjs/getPragmaOptions.js.map +2 -2
  57. package/dist/cjs/helpers/memoize.js +45 -1
  58. package/dist/cjs/helpers/memoize.js.map +2 -2
  59. package/dist/cjs/index.js +42 -1
  60. package/dist/cjs/index.js.map +2 -2
  61. package/dist/cjs/require.js +81 -5
  62. package/dist/cjs/require.js.map +2 -2
  63. package/dist/cjs/types.js +16 -1
  64. package/dist/cjs/types.js.map +2 -2
  65. package/dist/cjs/webpackPlugin.js +34 -1
  66. package/dist/cjs/webpackPlugin.js.map +2 -2
  67. package/dist/esm/constants.js +14 -1
  68. package/dist/esm/constants.js.map +2 -2
  69. package/dist/esm/constants.mjs +14 -1
  70. package/dist/esm/constants.mjs.map +2 -2
  71. package/dist/esm/extractor/accessSafe.js +18 -1
  72. package/dist/esm/extractor/accessSafe.js.map +2 -2
  73. package/dist/esm/extractor/accessSafe.mjs +18 -1
  74. package/dist/esm/extractor/accessSafe.mjs.map +2 -2
  75. package/dist/esm/extractor/babelParse.js +31 -1
  76. package/dist/esm/extractor/babelParse.js.map +2 -2
  77. package/dist/esm/extractor/babelParse.mjs +31 -1
  78. package/dist/esm/extractor/babelParse.mjs.map +2 -2
  79. package/dist/esm/extractor/buildClassName.js +64 -1
  80. package/dist/esm/extractor/buildClassName.js.map +2 -2
  81. package/dist/esm/extractor/buildClassName.mjs +64 -1
  82. package/dist/esm/extractor/buildClassName.mjs.map +2 -2
  83. package/dist/esm/extractor/bundle.js +91 -1
  84. package/dist/esm/extractor/bundle.js.map +2 -2
  85. package/dist/esm/extractor/bundle.mjs +91 -1
  86. package/dist/esm/extractor/bundle.mjs.map +2 -2
  87. package/dist/esm/extractor/createEvaluator.js +51 -1
  88. package/dist/esm/extractor/createEvaluator.js.map +2 -2
  89. package/dist/esm/extractor/createEvaluator.mjs +51 -1
  90. package/dist/esm/extractor/createEvaluator.mjs.map +2 -2
  91. package/dist/esm/extractor/createExtractor.js +1613 -15
  92. package/dist/esm/extractor/createExtractor.js.map +2 -2
  93. package/dist/esm/extractor/createExtractor.mjs +1613 -15
  94. package/dist/esm/extractor/createExtractor.mjs.map +2 -2
  95. package/dist/esm/extractor/ensureImportingConcat.js +30 -1
  96. package/dist/esm/extractor/ensureImportingConcat.js.map +2 -2
  97. package/dist/esm/extractor/ensureImportingConcat.mjs +30 -1
  98. package/dist/esm/extractor/ensureImportingConcat.mjs.map +2 -2
  99. package/dist/esm/extractor/evaluateAstNode.js +96 -1
  100. package/dist/esm/extractor/evaluateAstNode.js.map +2 -2
  101. package/dist/esm/extractor/evaluateAstNode.mjs +96 -1
  102. package/dist/esm/extractor/evaluateAstNode.mjs.map +2 -2
  103. package/dist/esm/extractor/extractHelpers.js +161 -1
  104. package/dist/esm/extractor/extractHelpers.js.map +2 -2
  105. package/dist/esm/extractor/extractHelpers.mjs +161 -1
  106. package/dist/esm/extractor/extractHelpers.mjs.map +2 -2
  107. package/dist/esm/extractor/extractMediaStyle.js +158 -1
  108. package/dist/esm/extractor/extractMediaStyle.js.map +2 -2
  109. package/dist/esm/extractor/extractMediaStyle.mjs +158 -1
  110. package/dist/esm/extractor/extractMediaStyle.mjs.map +2 -2
  111. package/dist/esm/extractor/extractToClassNames.js +379 -13
  112. package/dist/esm/extractor/extractToClassNames.js.map +2 -2
  113. package/dist/esm/extractor/extractToClassNames.mjs +379 -13
  114. package/dist/esm/extractor/extractToClassNames.mjs.map +2 -2
  115. package/dist/esm/extractor/findTopmostFunction.js +19 -1
  116. package/dist/esm/extractor/findTopmostFunction.js.map +2 -2
  117. package/dist/esm/extractor/findTopmostFunction.mjs +19 -1
  118. package/dist/esm/extractor/findTopmostFunction.mjs.map +2 -2
  119. package/dist/esm/extractor/generatedUid.js +25 -1
  120. package/dist/esm/extractor/generatedUid.js.map +2 -2
  121. package/dist/esm/extractor/generatedUid.mjs +25 -1
  122. package/dist/esm/extractor/generatedUid.mjs.map +2 -2
  123. package/dist/esm/extractor/getPrefixLogs.js +7 -1
  124. package/dist/esm/extractor/getPrefixLogs.js.map +2 -2
  125. package/dist/esm/extractor/getPrefixLogs.mjs +7 -1
  126. package/dist/esm/extractor/getPrefixLogs.mjs.map +2 -2
  127. package/dist/esm/extractor/getPropValueFromAttributes.js +55 -1
  128. package/dist/esm/extractor/getPropValueFromAttributes.js.map +2 -2
  129. package/dist/esm/extractor/getPropValueFromAttributes.mjs +55 -1
  130. package/dist/esm/extractor/getPropValueFromAttributes.mjs.map +2 -2
  131. package/dist/esm/extractor/getSourceModule.js +69 -1
  132. package/dist/esm/extractor/getSourceModule.js.map +2 -2
  133. package/dist/esm/extractor/getSourceModule.mjs +69 -1
  134. package/dist/esm/extractor/getSourceModule.mjs.map +2 -2
  135. package/dist/esm/extractor/getStaticBindingsForScope.js +190 -1
  136. package/dist/esm/extractor/getStaticBindingsForScope.js.map +2 -2
  137. package/dist/esm/extractor/getStaticBindingsForScope.mjs +190 -1
  138. package/dist/esm/extractor/getStaticBindingsForScope.mjs.map +2 -2
  139. package/dist/esm/extractor/hoistClassNames.js +40 -1
  140. package/dist/esm/extractor/hoistClassNames.js.map +2 -2
  141. package/dist/esm/extractor/hoistClassNames.mjs +40 -1
  142. package/dist/esm/extractor/hoistClassNames.mjs.map +2 -2
  143. package/dist/esm/extractor/literalToAst.js +80 -1
  144. package/dist/esm/extractor/literalToAst.js.map +2 -2
  145. package/dist/esm/extractor/literalToAst.mjs +80 -1
  146. package/dist/esm/extractor/literalToAst.mjs.map +2 -2
  147. package/dist/esm/extractor/loadFile.js +19 -2
  148. package/dist/esm/extractor/loadFile.js.map +2 -2
  149. package/dist/esm/extractor/loadFile.mjs +19 -2
  150. package/dist/esm/extractor/loadFile.mjs.map +2 -2
  151. package/dist/esm/extractor/loadTamagui.js +396 -15
  152. package/dist/esm/extractor/loadTamagui.js.map +2 -2
  153. package/dist/esm/extractor/loadTamagui.mjs +396 -15
  154. package/dist/esm/extractor/loadTamagui.mjs.map +2 -2
  155. package/dist/esm/extractor/logLines.js +19 -3
  156. package/dist/esm/extractor/logLines.js.map +2 -2
  157. package/dist/esm/extractor/logLines.mjs +19 -3
  158. package/dist/esm/extractor/logLines.mjs.map +2 -2
  159. package/dist/esm/extractor/normalizeTernaries.js +51 -1
  160. package/dist/esm/extractor/normalizeTernaries.js.map +2 -2
  161. package/dist/esm/extractor/normalizeTernaries.mjs +51 -1
  162. package/dist/esm/extractor/normalizeTernaries.mjs.map +2 -2
  163. package/dist/esm/extractor/removeUnusedHooks.js +75 -1
  164. package/dist/esm/extractor/removeUnusedHooks.js.map +2 -2
  165. package/dist/esm/extractor/removeUnusedHooks.mjs +75 -1
  166. package/dist/esm/extractor/removeUnusedHooks.mjs.map +2 -2
  167. package/dist/esm/extractor/timer.js +28 -1
  168. package/dist/esm/extractor/timer.js.map +2 -2
  169. package/dist/esm/extractor/timer.mjs +28 -1
  170. package/dist/esm/extractor/timer.mjs.map +2 -2
  171. package/dist/esm/extractor/validHTMLAttributes.js +101 -1
  172. package/dist/esm/extractor/validHTMLAttributes.js.map +2 -2
  173. package/dist/esm/extractor/validHTMLAttributes.mjs +101 -1
  174. package/dist/esm/extractor/validHTMLAttributes.mjs.map +2 -2
  175. package/dist/esm/getPragmaOptions.js +43 -2
  176. package/dist/esm/getPragmaOptions.js.map +2 -2
  177. package/dist/esm/getPragmaOptions.mjs +43 -2
  178. package/dist/esm/getPragmaOptions.mjs.map +2 -2
  179. package/dist/esm/helpers/memoize.js +21 -1
  180. package/dist/esm/helpers/memoize.js.map +2 -2
  181. package/dist/esm/helpers/memoize.mjs +21 -1
  182. package/dist/esm/helpers/memoize.mjs.map +2 -2
  183. package/dist/esm/index.js +15 -1
  184. package/dist/esm/index.js.map +2 -2
  185. package/dist/esm/index.mjs +15 -1
  186. package/dist/esm/index.mjs.map +2 -2
  187. package/dist/esm/require.js +55 -5
  188. package/dist/esm/require.js.map +2 -2
  189. package/dist/esm/require.mjs +55 -5
  190. package/dist/esm/require.mjs.map +2 -2
  191. package/dist/esm/webpackPlugin.js +10 -1
  192. package/dist/esm/webpackPlugin.js.map +2 -2
  193. package/dist/esm/webpackPlugin.mjs +10 -1
  194. package/dist/esm/webpackPlugin.mjs.map +2 -2
  195. package/package.json +14 -14
@@ -1,15 +1,381 @@
1
- import*as Z from"path";import{basename as K}from"path";import*as Y from"util";import D from"@babel/generator";import*as i from"@babel/types";import{getStylesAtomic as J}from"@tamagui/core-node";import{concatClassName as P}from"@tamagui/helpers";import{babelParse as ee}from"./babelParse.js";import{buildClassName as te}from"./buildClassName.js";import{ensureImportingConcat as se}from"./ensureImportingConcat.js";import{isSimpleSpread as R}from"./extractHelpers.js";import{extractMediaStyle as ie}from"./extractMediaStyle.js";import{getPrefixLogs as ae}from"./getPrefixLogs.js";import{hoistClassNames as ne}from"./hoistClassNames.js";import{logLines as re}from"./logLines.js";import{timer as oe}from"./timer.js";const V={shadowOpacity:!0,shadowRadius:!0,shadowColor:!0,shadowOffset:!0};async function je({extractor:j,source:T,sourcePath:n,options:g,shouldPrintDebug:c}){const X=oe();if(c&&console.log(`--- ${n} ---
1
+ import * as path from "path";
2
+ import { basename } from "path";
3
+ import * as util from "util";
4
+ import generate from "@babel/generator";
5
+ import * as t from "@babel/types";
6
+ import { getStylesAtomic } from "@tamagui/core-node";
7
+ import { concatClassName } from "@tamagui/helpers";
8
+ import { babelParse } from "./babelParse.js";
9
+ import { buildClassName } from "./buildClassName.js";
10
+ import { ensureImportingConcat } from "./ensureImportingConcat.js";
11
+ import { isSimpleSpread } from "./extractHelpers.js";
12
+ import { extractMediaStyle } from "./extractMediaStyle.js";
13
+ import { getPrefixLogs } from "./getPrefixLogs.js";
14
+ import { hoistClassNames } from "./hoistClassNames.js";
15
+ import { logLines } from "./logLines.js";
16
+ import { timer } from "./timer.js";
17
+ const mergeStyleGroups = {
18
+ shadowOpacity: true,
19
+ shadowRadius: true,
20
+ shadowColor: true,
21
+ shadowOffset: true
22
+ };
23
+ async function extractToClassNames({
24
+ extractor,
25
+ source,
26
+ sourcePath,
27
+ options,
28
+ shouldPrintDebug
29
+ }) {
30
+ const tm = timer();
31
+ if (shouldPrintDebug) {
32
+ console.log(`--- ${sourcePath} ---
2
33
 
3
- `),typeof T!="string")throw new Error("`source` must be a string of javascript");if(n&&!Z.isAbsolute(n))throw new Error("`sourcePath` must be an absolute path to a .js file");/.[tj]sx?$/i.test(n||"")||console.log(`${n==null?void 0:n.slice(0,100)} - bad filename.`),await j.loadTamagui(g);const k=g.logTimings??!0,z=Date.now(),F=k?process.memoryUsage():null;let S;try{S=ee(T)}catch(r){throw console.error("babel parse error:",n==null?void 0:n.slice(0,100)),r}X.mark("babel-parse",c==="verbose");const y=new Map,q={};let w=!1;const p=await j.parse(S,{shouldPrintDebug:c,...g,sourcePath:n,target:"html",extractStyledDefinitions:!0,onStyleRule(r,f){const d=f.join(";");c&&console.log(`adding styled() rule: .${r} ${d}`),y.set(`.${r}`,{css:d,commentTexts:[]})},getFlattenedNode:({tag:r})=>(w=!0,r),onExtractTag:({parserProps:r,attrs:f,node:d,attemptEval:h,jsxPath:x,originalNodeName:C,filePath:v,lineNumbers:_,programPath:L,isFlattened:$,completeProps:A,staticConfig:N})=>{var G;if(N.acceptsClassName===!1){c&&console.log("bail, acceptsClassName is false");return}const H=w;w=!1;let l=[];const M=[];let u=[],b={};for(const s of f)s.type==="style"&&(b={...b,...s.value});const Q=s=>{if(!Object.keys(s).some(e=>V[e]))return s;for(const e in V)e in b&&(s[e]=s[e]??b[e]);return s},O=s=>{if(!s)return[];const t=Q(s),e=J(t);return e.length&&(u=[...u,...e]),e};let B=1;for(const s of f)switch(s.type){case"style":{if($){const t=O(s.value),e=P(t.map(o=>o.identifier).join(" ")),a=l.find(o=>o.type=="StringLiteral");a?a.value=`${a.value} ${e}`:l=[...l,i.stringLiteral(e)]}else{const t=J(s.value);u=[...u,...t];for(const e of t){const a=e.pseudo?`${e.property}-${e.pseudo}`:e.property;M.push(i.jsxAttribute(i.jsxIdentifier(a),i.stringLiteral(e.identifier)))}}break}case"attr":{const t=s.value;if(i.isJSXSpreadAttribute(t))R(t)&&l.push(i.logicalExpression("&&",t.argument,i.memberExpression(t.argument,i.identifier("className"))));else if(t.name.name==="className"){const e=t.value;if(e)try{const a=h(e);l.push(i.stringLiteral(a))}catch{l.push(e.expression)}continue}M.push(t);break}case"ternary":{const t=ie(r,s.value,x,j.getTamagui(),n||"",B,c);if(c&&t&&console.log("ternary (mediaStyles)",((G=t.ternaryWithoutMedia)==null?void 0:G.inlineMediaQuery)??"",t.mediaStyles.map(e=>e.identifier).join(".")),!t){W(s.value,O(s.value.consequent),O(s.value.alternate));continue}B++,t.mediaStyles&&(u=[...u,...t.mediaStyles]),t.ternaryWithoutMedia?W(t.ternaryWithoutMedia,t.mediaStyles,[]):l=[...l,...t.mediaStyles.map(e=>i.stringLiteral(e.identifier))];break}}function W(s,t,e){const a=t.map(m=>m.identifier).join(" "),o=e.map(m=>m.identifier).join(" ");t.length&&e.length?l.push(i.conditionalExpression(s.test,i.stringLiteral(a),i.stringLiteral(o))):l.push(i.conditionalExpression(s.test,i.stringLiteral(" "+a),i.stringLiteral(" "+o)))}if(c&&console.log(` finalClassNames
4
- `,re(l.map(s=>s.value).join(" "))),d.attributes=M,l.length){const s=(()=>{let o="";if(!$)return o;if(process.env.TAMAGUI_DEBUG_OPTIMIZATIONS&&(o+="is_tamagui_flattened"),N.componentName&&(o+=` is_${N.componentName}`),N.isText){let m=A.fontFamily;m[0]==="$"&&(m=m.slice(1)),o+=` font_${m}`}return o})(),t=te(l,s),e=t?ne(x,q,t):null;let a=e;if(e&&!i.isIdentifier(e)&&H){se(L);const o=f.filter(m=>i.isJSXSpreadAttribute(m.value)&&R(m.value));a=i.callExpression(i.identifier("concatClassName"),[a,...o.map(m=>m.value.argument)])}d.attributes.push(i.jsxAttribute(i.jsxIdentifier("className"),i.jsxExpressionContainer(a)))}const I=Y.format("/* %s:%s (%s) */",v,_,C);for(const{identifier:s,rules:t}of u){const e=`.${s}`;if(y.has(e)){if(I){const a=y.get(e);a.commentTexts.push(I),y.set(e,a)}}else t.length&&y.set(e,{css:t.join(`
5
- `),commentTexts:[I]})}}});if(!p||!p.modified&&!p.optimized&&!p.flattened&&!p.styled)return c&&console.log("no res or none modified",p),null;const U=Array.from(y.values()).map(r=>r.css).join(`
6
- `).trim(),E=D(S,{concise:!1,filename:n,retainLines:!1,sourceFileName:n,sourceMaps:!0},T);if(c&&(console.log(`
7
- -------- output code -------
8
-
9
- `,E.code.split(`
10
- `).filter(r=>!r.startsWith("//")).join(`
11
- `)),console.log(`
12
- -------- output style --------
13
-
14
- `,U)),k){const r=F?Math.round((process.memoryUsage().heapUsed-F.heapUsed)/1024/1204*10)/10:0,f=K(n||"").replace(/\.[jt]sx?$/,"").slice(0,22).trim().padStart(24),d=`${p.styled}`.padStart(3),h=`${p.optimized}`.padStart(3),x=`${p.found}`.padStart(3),C=`${p.flattened}`.padStart(3),v=process.env.DEBUG&&r>10?` ${r}MB`:"",L=`${Date.now()-z}ms`.padStart(6),$=ae(g),A=v?`(${v})`:"";console.log(`${$} ${f} ${x} \xB7 ${h} \xB7 ${C} \xB7 ${d} ${L} ${A}`)}return{ast:S,styles:U,js:E.code,map:E.map}}export{je as extractToClassNames};
34
+ `);
35
+ }
36
+ if (typeof source !== "string") {
37
+ throw new Error("`source` must be a string of javascript");
38
+ }
39
+ if (sourcePath && !path.isAbsolute(sourcePath)) {
40
+ throw new Error("`sourcePath` must be an absolute path to a .js file");
41
+ }
42
+ if (!/.[tj]sx?$/i.test(sourcePath || "")) {
43
+ console.log(`${sourcePath == null ? void 0 : sourcePath.slice(0, 100)} - bad filename.`);
44
+ }
45
+ await extractor.loadTamagui(options);
46
+ const shouldLogTiming = options.logTimings ?? true;
47
+ const start = Date.now();
48
+ const mem = shouldLogTiming ? process.memoryUsage() : null;
49
+ let ast;
50
+ try {
51
+ ast = babelParse(source);
52
+ } catch (err) {
53
+ console.error("babel parse error:", sourcePath == null ? void 0 : sourcePath.slice(0, 100));
54
+ throw err;
55
+ }
56
+ tm.mark(`babel-parse`, shouldPrintDebug === "verbose");
57
+ const cssMap = /* @__PURE__ */ new Map();
58
+ const existingHoists = {};
59
+ let hasFlattened = false;
60
+ const res = await extractor.parse(ast, {
61
+ shouldPrintDebug,
62
+ ...options,
63
+ sourcePath,
64
+ target: "html",
65
+ extractStyledDefinitions: true,
66
+ onStyleRule(identifier, rules) {
67
+ const css = rules.join(";");
68
+ if (shouldPrintDebug) {
69
+ console.log(`adding styled() rule: .${identifier} ${css}`);
70
+ }
71
+ cssMap.set(`.${identifier}`, { css, commentTexts: [] });
72
+ },
73
+ getFlattenedNode: ({ tag }) => {
74
+ hasFlattened = true;
75
+ return tag;
76
+ },
77
+ onExtractTag: ({
78
+ parserProps,
79
+ attrs,
80
+ node,
81
+ attemptEval,
82
+ jsxPath,
83
+ originalNodeName,
84
+ filePath,
85
+ lineNumbers,
86
+ programPath,
87
+ isFlattened,
88
+ completeProps,
89
+ staticConfig
90
+ }) => {
91
+ var _a;
92
+ if (staticConfig.acceptsClassName === false) {
93
+ if (shouldPrintDebug) {
94
+ console.log(`bail, acceptsClassName is false`);
95
+ }
96
+ return;
97
+ }
98
+ const didFlattenThisTag = hasFlattened;
99
+ hasFlattened = false;
100
+ let finalClassNames = [];
101
+ const finalAttrs = [];
102
+ let finalStyles = [];
103
+ let viewStyles = {};
104
+ for (const attr of attrs) {
105
+ if (attr.type === "style") {
106
+ viewStyles = {
107
+ ...viewStyles,
108
+ ...attr.value
109
+ };
110
+ }
111
+ }
112
+ const ensureNeededPrevStyle = (style) => {
113
+ const keys = Object.keys(style);
114
+ if (!keys.some((key) => mergeStyleGroups[key])) {
115
+ return style;
116
+ }
117
+ for (const k in mergeStyleGroups) {
118
+ if (k in viewStyles) {
119
+ style[k] = style[k] ?? viewStyles[k];
120
+ }
121
+ }
122
+ return style;
123
+ };
124
+ const addStyles = (style) => {
125
+ if (!style)
126
+ return [];
127
+ const styleWithPrev = ensureNeededPrevStyle(style);
128
+ const res2 = getStylesAtomic(styleWithPrev);
129
+ if (res2.length) {
130
+ finalStyles = [...finalStyles, ...res2];
131
+ }
132
+ return res2;
133
+ };
134
+ let lastMediaImportance = 1;
135
+ for (const attr of attrs) {
136
+ switch (attr.type) {
137
+ case "style": {
138
+ if (!isFlattened) {
139
+ const styles2 = getStylesAtomic(attr.value);
140
+ finalStyles = [...finalStyles, ...styles2];
141
+ for (const style of styles2) {
142
+ const prop = style.pseudo ? `${style.property}-${style.pseudo}` : style.property;
143
+ finalAttrs.push(
144
+ t.jsxAttribute(t.jsxIdentifier(prop), t.stringLiteral(style.identifier))
145
+ );
146
+ }
147
+ } else {
148
+ const styles2 = addStyles(attr.value);
149
+ const newClassNames = concatClassName(
150
+ styles2.map((x) => x.identifier).join(" ")
151
+ );
152
+ const existing = finalClassNames.find(
153
+ (x) => x.type == "StringLiteral"
154
+ );
155
+ if (existing) {
156
+ existing.value = `${existing.value} ${newClassNames}`;
157
+ } else {
158
+ finalClassNames = [...finalClassNames, t.stringLiteral(newClassNames)];
159
+ }
160
+ }
161
+ break;
162
+ }
163
+ case "attr": {
164
+ const val = attr.value;
165
+ if (t.isJSXSpreadAttribute(val)) {
166
+ if (isSimpleSpread(val)) {
167
+ finalClassNames.push(
168
+ t.logicalExpression(
169
+ "&&",
170
+ val.argument,
171
+ t.memberExpression(val.argument, t.identifier("className"))
172
+ )
173
+ );
174
+ }
175
+ } else if (val.name.name === "className") {
176
+ const value = val.value;
177
+ if (value) {
178
+ try {
179
+ const evaluatedValue = attemptEval(value);
180
+ finalClassNames.push(t.stringLiteral(evaluatedValue));
181
+ } catch (e) {
182
+ finalClassNames.push(value["expression"]);
183
+ }
184
+ }
185
+ continue;
186
+ }
187
+ finalAttrs.push(val);
188
+ break;
189
+ }
190
+ case "ternary": {
191
+ const mediaExtraction = extractMediaStyle(
192
+ parserProps,
193
+ attr.value,
194
+ jsxPath,
195
+ extractor.getTamagui(),
196
+ sourcePath || "",
197
+ lastMediaImportance,
198
+ shouldPrintDebug
199
+ );
200
+ if (shouldPrintDebug) {
201
+ if (mediaExtraction) {
202
+ console.log(
203
+ "ternary (mediaStyles)",
204
+ ((_a = mediaExtraction.ternaryWithoutMedia) == null ? void 0 : _a.inlineMediaQuery) ?? "",
205
+ mediaExtraction.mediaStyles.map((x) => x.identifier).join(".")
206
+ );
207
+ }
208
+ }
209
+ if (!mediaExtraction) {
210
+ addTernaryStyle(
211
+ attr.value,
212
+ addStyles(attr.value.consequent),
213
+ addStyles(attr.value.alternate)
214
+ );
215
+ continue;
216
+ }
217
+ lastMediaImportance++;
218
+ if (mediaExtraction.mediaStyles) {
219
+ finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles];
220
+ }
221
+ if (mediaExtraction.ternaryWithoutMedia) {
222
+ addTernaryStyle(
223
+ mediaExtraction.ternaryWithoutMedia,
224
+ mediaExtraction.mediaStyles,
225
+ []
226
+ );
227
+ } else {
228
+ finalClassNames = [
229
+ ...finalClassNames,
230
+ ...mediaExtraction.mediaStyles.map((x) => t.stringLiteral(x.identifier))
231
+ ];
232
+ }
233
+ break;
234
+ }
235
+ }
236
+ }
237
+ function addTernaryStyle(ternary, a, b) {
238
+ const cCN = a.map((x) => x.identifier).join(" ");
239
+ const aCN = b.map((x) => x.identifier).join(" ");
240
+ if (a.length && b.length) {
241
+ finalClassNames.push(
242
+ t.conditionalExpression(
243
+ ternary.test,
244
+ t.stringLiteral(cCN),
245
+ t.stringLiteral(aCN)
246
+ )
247
+ );
248
+ } else {
249
+ finalClassNames.push(
250
+ t.conditionalExpression(
251
+ ternary.test,
252
+ t.stringLiteral(" " + cCN),
253
+ t.stringLiteral(" " + aCN)
254
+ )
255
+ );
256
+ }
257
+ }
258
+ if (shouldPrintDebug) {
259
+ console.log(
260
+ " finalClassNames\n",
261
+ logLines(finalClassNames.map((x) => x["value"]).join(" "))
262
+ );
263
+ }
264
+ node.attributes = finalAttrs;
265
+ if (finalClassNames.length) {
266
+ const extraClassNames = (() => {
267
+ let value = "";
268
+ if (!isFlattened) {
269
+ return value;
270
+ }
271
+ if (process.env.TAMAGUI_DEBUG_OPTIMIZATIONS) {
272
+ value += `is_tamagui_flattened`;
273
+ }
274
+ if (staticConfig.componentName) {
275
+ value += ` is_${staticConfig.componentName}`;
276
+ }
277
+ if (staticConfig.isText) {
278
+ let family = completeProps.fontFamily;
279
+ if (family[0] === "$") {
280
+ family = family.slice(1);
281
+ }
282
+ value += ` font_${family}`;
283
+ }
284
+ return value;
285
+ })();
286
+ const names = buildClassName(finalClassNames, extraClassNames);
287
+ const nameExpr = names ? hoistClassNames(jsxPath, existingHoists, names) : null;
288
+ let expr = nameExpr;
289
+ if (nameExpr && !t.isIdentifier(nameExpr)) {
290
+ if (!didFlattenThisTag) {
291
+ } else {
292
+ ensureImportingConcat(programPath);
293
+ const simpleSpreads = attrs.filter(
294
+ (x) => t.isJSXSpreadAttribute(x.value) && isSimpleSpread(x.value)
295
+ );
296
+ expr = t.callExpression(t.identifier("concatClassName"), [
297
+ expr,
298
+ ...simpleSpreads.map((val) => val.value["argument"])
299
+ ]);
300
+ }
301
+ }
302
+ node.attributes.push(
303
+ t.jsxAttribute(t.jsxIdentifier("className"), t.jsxExpressionContainer(expr))
304
+ );
305
+ }
306
+ const comment = util.format(
307
+ "/* %s:%s (%s) */",
308
+ filePath,
309
+ lineNumbers,
310
+ originalNodeName
311
+ );
312
+ for (const { identifier, rules } of finalStyles) {
313
+ const className = `.${identifier}`;
314
+ if (cssMap.has(className)) {
315
+ if (comment) {
316
+ const val = cssMap.get(className);
317
+ val.commentTexts.push(comment);
318
+ cssMap.set(className, val);
319
+ }
320
+ } else if (rules.length) {
321
+ cssMap.set(className, {
322
+ css: rules.join("\n"),
323
+ commentTexts: [comment]
324
+ });
325
+ }
326
+ }
327
+ }
328
+ });
329
+ if (!res || !res.modified && !res.optimized && !res.flattened && !res.styled) {
330
+ if (shouldPrintDebug) {
331
+ console.log("no res or none modified", res);
332
+ }
333
+ return null;
334
+ }
335
+ const styles = Array.from(cssMap.values()).map((x) => x.css).join("\n").trim();
336
+ const result = generate(
337
+ ast,
338
+ {
339
+ concise: false,
340
+ filename: sourcePath,
341
+ // this makes the debug output terrible, and i think sourcemap works already
342
+ retainLines: false,
343
+ sourceFileName: sourcePath,
344
+ sourceMaps: true
345
+ },
346
+ source
347
+ );
348
+ if (shouldPrintDebug) {
349
+ console.log(
350
+ "\n -------- output code ------- \n\n",
351
+ result.code.split("\n").filter((x) => !x.startsWith("//")).join("\n")
352
+ );
353
+ console.log("\n -------- output style -------- \n\n", styles);
354
+ }
355
+ if (shouldLogTiming) {
356
+ const memUsed = mem ? Math.round((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204 * 10) / 10 : 0;
357
+ const path2 = basename(sourcePath || "").replace(/\.[jt]sx?$/, "").slice(0, 22).trim().padStart(24);
358
+ const numStyled = `${res.styled}`.padStart(3);
359
+ const numOptimized = `${res.optimized}`.padStart(3);
360
+ const numFound = `${res.found}`.padStart(3);
361
+ const numFlattened = `${res.flattened}`.padStart(3);
362
+ const memory = process.env.DEBUG && memUsed > 10 ? ` ${memUsed}MB` : "";
363
+ const timing = Date.now() - start;
364
+ const timingStr = `${timing}ms`.padStart(6);
365
+ const pre = getPrefixLogs(options);
366
+ const memStr = memory ? `(${memory})` : "";
367
+ console.log(
368
+ `${pre} ${path2} ${numFound} \xB7 ${numOptimized} \xB7 ${numFlattened} \xB7 ${numStyled} ${timingStr} ${memStr}`
369
+ );
370
+ }
371
+ return {
372
+ ast,
373
+ styles,
374
+ js: result.code,
375
+ map: result.map
376
+ };
377
+ }
378
+ export {
379
+ extractToClassNames
380
+ };
15
381
  //# sourceMappingURL=extractToClassNames.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/extractToClassNames.ts"],
4
4
  "sourcesContent": ["import * as path from 'path'\nimport { basename } from 'path'\nimport * as util from 'util'\n\nimport generate from '@babel/generator'\nimport * as t from '@babel/types'\nimport { getStylesAtomic } from '@tamagui/core-node'\nimport { concatClassName } from '@tamagui/helpers'\nimport type { ViewStyle } from 'react-native'\n\nimport type { ClassNameObject, StyleObject, TamaguiOptions, Ternary } from '../types.js'\nimport { babelParse } from './babelParse.js'\nimport { buildClassName } from './buildClassName.js'\nimport { Extractor } from './createExtractor.js'\nimport { ensureImportingConcat } from './ensureImportingConcat.js'\nimport { isSimpleSpread } from './extractHelpers.js'\nimport { extractMediaStyle } from './extractMediaStyle.js'\nimport { getPrefixLogs } from './getPrefixLogs.js'\nimport { hoistClassNames } from './hoistClassNames.js'\nimport { logLines } from './logLines.js'\nimport { timer } from './timer.js'\n\nconst mergeStyleGroups = {\n shadowOpacity: true,\n shadowRadius: true,\n shadowColor: true,\n shadowOffset: true,\n}\n\nexport type ExtractedResponse = {\n js: string | Buffer\n styles: string\n stylesPath?: string\n ast: t.File\n map: any // RawSourceMap from 'source-map'\n}\n\nexport type ExtractToClassNamesProps = {\n extractor: Extractor\n source: string | Buffer\n sourcePath?: string\n options: TamaguiOptions\n shouldPrintDebug: boolean | 'verbose'\n}\n\nexport async function extractToClassNames({\n extractor,\n source,\n sourcePath,\n options,\n shouldPrintDebug,\n}: ExtractToClassNamesProps): Promise<ExtractedResponse | null> {\n const tm = timer()\n\n if (shouldPrintDebug) {\n console.log(`--- ${sourcePath} --- \\n\\n`)\n }\n\n if (typeof source !== 'string') {\n throw new Error('`source` must be a string of javascript')\n }\n if (sourcePath && !path.isAbsolute(sourcePath)) {\n throw new Error('`sourcePath` must be an absolute path to a .js file')\n }\n if (!/.[tj]sx?$/i.test(sourcePath || '')) {\n console.log(`${sourcePath?.slice(0, 100)} - bad filename.`)\n }\n\n // dont include loading in timing of parsing (one time cost)\n await extractor.loadTamagui(options)\n\n const shouldLogTiming = options.logTimings ?? true\n const start = Date.now()\n const mem = shouldLogTiming ? process.memoryUsage() : null\n\n // Using a map for (officially supported) guaranteed insertion order\n let ast: t.File\n\n try {\n ast = babelParse(source)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('babel parse error:', sourcePath?.slice(0, 100))\n throw err\n }\n\n tm.mark(`babel-parse`, shouldPrintDebug === 'verbose')\n\n const cssMap = new Map<string, { css: string; commentTexts: string[] }>()\n const existingHoists: { [key: string]: t.Identifier } = {}\n\n let hasFlattened = false\n\n const res = await extractor.parse(ast, {\n shouldPrintDebug,\n ...options,\n sourcePath,\n target: 'html',\n extractStyledDefinitions: true,\n onStyleRule(identifier, rules) {\n const css = rules.join(';')\n if (shouldPrintDebug) {\n // eslint-disable-next-line no-console\n console.log(`adding styled() rule: .${identifier} ${css}`)\n }\n cssMap.set(`.${identifier}`, { css, commentTexts: [] })\n },\n getFlattenedNode: ({ tag }) => {\n hasFlattened = true\n return tag\n },\n onExtractTag: ({\n parserProps,\n attrs,\n node,\n attemptEval,\n jsxPath,\n originalNodeName,\n filePath,\n lineNumbers,\n programPath,\n isFlattened,\n completeProps,\n staticConfig,\n }) => {\n // bail out of views that don't accept className (falls back to runtime + style={})\n if (staticConfig.acceptsClassName === false) {\n if (shouldPrintDebug) {\n // eslint-disable-next-line no-console\n console.log(`bail, acceptsClassName is false`)\n }\n return\n }\n\n // reset hasFlattened\n const didFlattenThisTag = hasFlattened\n hasFlattened = false\n\n let finalClassNames: ClassNameObject[] = []\n const finalAttrs: (t.JSXAttribute | t.JSXSpreadAttribute)[] = []\n let finalStyles: StyleObject[] = []\n\n let viewStyles = {}\n for (const attr of attrs) {\n if (attr.type === 'style') {\n viewStyles = {\n ...viewStyles,\n ...attr.value,\n }\n }\n }\n\n const ensureNeededPrevStyle = (style: ViewStyle) => {\n // ensure all group keys are merged\n const keys = Object.keys(style)\n if (!keys.some((key) => mergeStyleGroups[key])) {\n return style\n }\n for (const k in mergeStyleGroups) {\n if (k in viewStyles) {\n style[k] = style[k] ?? viewStyles[k]\n }\n }\n return style\n }\n\n const addStyles = (style: ViewStyle | null): StyleObject[] => {\n if (!style) return []\n const styleWithPrev = ensureNeededPrevStyle(style)\n const res = getStylesAtomic(styleWithPrev)\n if (res.length) {\n finalStyles = [...finalStyles, ...res]\n }\n return res\n }\n\n // 1 to start above any :hover styles\n let lastMediaImportance = 1\n for (const attr of attrs) {\n switch (attr.type) {\n case 'style': {\n if (!isFlattened) {\n const styles = getStylesAtomic(attr.value)\n\n finalStyles = [...finalStyles, ...styles]\n\n for (const style of styles) {\n // leave them as attributes\n const prop = style.pseudo\n ? `${style.property}-${style.pseudo}`\n : style.property\n finalAttrs.push(\n t.jsxAttribute(t.jsxIdentifier(prop), t.stringLiteral(style.identifier))\n )\n }\n } else {\n const styles = addStyles(attr.value)\n const newClassNames = concatClassName(\n styles.map((x) => x.identifier).join(' ')\n )\n const existing = finalClassNames.find(\n (x) => x.type == 'StringLiteral'\n ) as t.StringLiteral | null\n\n if (existing) {\n existing.value = `${existing.value} ${newClassNames}`\n } else {\n finalClassNames = [...finalClassNames, t.stringLiteral(newClassNames)]\n }\n }\n\n break\n }\n case 'attr': {\n const val = attr.value\n if (t.isJSXSpreadAttribute(val)) {\n if (isSimpleSpread(val)) {\n finalClassNames.push(\n t.logicalExpression(\n '&&',\n val.argument,\n t.memberExpression(val.argument, t.identifier('className'))\n )\n )\n }\n } else if (val.name.name === 'className') {\n const value = val.value\n if (value) {\n try {\n const evaluatedValue = attemptEval(value)\n finalClassNames.push(t.stringLiteral(evaluatedValue))\n } catch (e) {\n finalClassNames.push(value['expression'])\n }\n }\n continue\n }\n finalAttrs.push(val)\n break\n }\n case 'ternary': {\n const mediaExtraction = extractMediaStyle(\n parserProps,\n attr.value,\n jsxPath,\n extractor.getTamagui()!,\n sourcePath || '',\n lastMediaImportance,\n shouldPrintDebug\n )\n if (shouldPrintDebug) {\n if (mediaExtraction) {\n // eslint-disable-next-line no-console\n console.log(\n 'ternary (mediaStyles)',\n mediaExtraction.ternaryWithoutMedia?.inlineMediaQuery ?? '',\n mediaExtraction.mediaStyles.map((x) => x.identifier).join('.')\n )\n }\n }\n if (!mediaExtraction) {\n addTernaryStyle(\n attr.value,\n addStyles(attr.value.consequent),\n addStyles(attr.value.alternate)\n )\n continue\n }\n lastMediaImportance++\n if (mediaExtraction.mediaStyles) {\n finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles]\n }\n if (mediaExtraction.ternaryWithoutMedia) {\n addTernaryStyle(\n mediaExtraction.ternaryWithoutMedia,\n mediaExtraction.mediaStyles,\n []\n )\n } else {\n finalClassNames = [\n ...finalClassNames,\n ...mediaExtraction.mediaStyles.map((x) => t.stringLiteral(x.identifier)),\n ]\n }\n break\n }\n }\n }\n\n function addTernaryStyle(ternary: Ternary, a: any, b: any) {\n const cCN = a.map((x) => x.identifier).join(' ')\n const aCN = b.map((x) => x.identifier).join(' ')\n\n if (a.length && b.length) {\n finalClassNames.push(\n t.conditionalExpression(\n ternary.test,\n t.stringLiteral(cCN),\n t.stringLiteral(aCN)\n )\n )\n } else {\n finalClassNames.push(\n t.conditionalExpression(\n ternary.test,\n t.stringLiteral(' ' + cCN),\n t.stringLiteral(' ' + aCN)\n )\n )\n }\n }\n\n if (shouldPrintDebug) {\n // eslint-disable-next-line no-console\n console.log(\n ' finalClassNames\\n',\n logLines(finalClassNames.map((x) => x['value']).join(' '))\n )\n }\n\n node.attributes = finalAttrs\n\n if (finalClassNames.length) {\n const extraClassNames = (() => {\n let value = ''\n if (!isFlattened) {\n return value\n }\n\n // helper to see how many get flattened\n if (process.env.TAMAGUI_DEBUG_OPTIMIZATIONS) {\n value += `is_tamagui_flattened`\n }\n\n // add is_Component className\n if (staticConfig.componentName) {\n value += ` is_${staticConfig.componentName}`\n }\n\n if (staticConfig.isText) {\n let family = completeProps.fontFamily\n if (family[0] === '$') {\n family = family.slice(1)\n }\n value += ` font_${family}`\n }\n\n return value\n })()\n\n // inserts the _cn variable and uses it for className\n const names = buildClassName(finalClassNames, extraClassNames)\n\n const nameExpr = names ? hoistClassNames(jsxPath, existingHoists, names) : null\n let expr = nameExpr\n\n // if has some spreads, use concat helper\n if (nameExpr && !t.isIdentifier(nameExpr)) {\n if (!didFlattenThisTag) {\n // not flat\n } else {\n ensureImportingConcat(programPath)\n const simpleSpreads = attrs.filter(\n (x) => t.isJSXSpreadAttribute(x.value) && isSimpleSpread(x.value)\n )\n expr = t.callExpression(t.identifier('concatClassName'), [\n expr,\n ...simpleSpreads.map((val) => val.value['argument']),\n ])\n }\n }\n\n node.attributes.push(\n t.jsxAttribute(t.jsxIdentifier('className'), t.jsxExpressionContainer(expr))\n )\n }\n\n const comment = util.format(\n '/* %s:%s (%s) */',\n filePath,\n lineNumbers,\n originalNodeName\n )\n\n for (const { identifier, rules } of finalStyles) {\n const className = `.${identifier}`\n if (cssMap.has(className)) {\n if (comment) {\n const val = cssMap.get(className)!\n val.commentTexts.push(comment)\n cssMap.set(className, val)\n }\n } else if (rules.length) {\n cssMap.set(className, {\n css: rules.join('\\n'),\n commentTexts: [comment],\n })\n }\n }\n },\n })\n\n if (!res || (!res.modified && !res.optimized && !res.flattened && !res.styled)) {\n if (shouldPrintDebug) {\n // eslint-disable-next-line no-console\n console.log('no res or none modified', res)\n }\n return null\n }\n\n const styles = Array.from(cssMap.values())\n .map((x) => x.css)\n .join('\\n')\n .trim()\n\n // @ts-ignore\n const result = generate(\n ast as any,\n {\n concise: false,\n filename: sourcePath,\n // this makes the debug output terrible, and i think sourcemap works already\n retainLines: false,\n sourceFileName: sourcePath,\n sourceMaps: true,\n },\n source\n )\n\n if (shouldPrintDebug) {\n // eslint-disable-next-line no-console\n console.log(\n '\\n -------- output code ------- \\n\\n',\n result.code\n .split('\\n')\n .filter((x) => !x.startsWith('//'))\n .join('\\n')\n )\n // eslint-disable-next-line no-console\n console.log('\\n -------- output style -------- \\n\\n', styles)\n }\n\n if (shouldLogTiming) {\n const memUsed = mem\n ? Math.round(((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204) * 10) /\n 10\n : 0\n const path = basename(sourcePath || '')\n .replace(/\\.[jt]sx?$/, '')\n .slice(0, 22)\n .trim()\n .padStart(24)\n\n const numStyled = `${res.styled}`.padStart(3)\n const numOptimized = `${res.optimized}`.padStart(3)\n const numFound = `${res.found}`.padStart(3)\n const numFlattened = `${res.flattened}`.padStart(3)\n const memory = process.env.DEBUG && memUsed > 10 ? ` ${memUsed}MB` : ''\n const timing = Date.now() - start\n const timingStr = `${timing}ms`.padStart(6)\n const pre = getPrefixLogs(options)\n const memStr = memory ? `(${memory})` : ''\n // eslint-disable-next-line no-console\n console.log(\n `${pre} ${path} ${numFound} \u00B7 ${numOptimized} \u00B7 ${numFlattened} \u00B7 ${numStyled} ${timingStr} ${memStr}`\n )\n }\n\n return {\n ast,\n styles,\n js: result.code,\n map: result.map,\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["path", "basename", "util", "generate", "t", "getStylesAtomic", "concatClassName", "babelParse", "buildClassName", "ensureImportingConcat", "isSimpleSpread", "extractMediaStyle", "getPrefixLogs", "hoistClassNames", "logLines", "timer", "mergeStyleGroups", "extractToClassNames", "extractor", "source", "sourcePath", "options", "shouldPrintDebug", "tm", "shouldLogTiming", "start", "mem", "ast", "err", "cssMap", "existingHoists", "hasFlattened", "res", "identifier", "rules", "css", "tag", "parserProps", "attrs", "node", "attemptEval", "jsxPath", "originalNodeName", "filePath", "lineNumbers", "programPath", "isFlattened", "completeProps", "staticConfig", "_a", "didFlattenThisTag", "finalClassNames", "finalAttrs", "finalStyles", "viewStyles", "attr", "ensureNeededPrevStyle", "style", "key", "k", "addStyles", "styleWithPrev", "lastMediaImportance", "styles", "newClassNames", "x", "existing", "prop", "val", "value", "evaluatedValue", "mediaExtraction", "addTernaryStyle", "ternary", "a", "b", "cCN", "aCN", "extraClassNames", "family", "names", "nameExpr", "expr", "simpleSpreads", "comment", "className", "result", "memUsed", "numStyled", "numOptimized", "numFound", "numFlattened", "memory", "timingStr", "pre", "memStr"]
5
+ "mappings": "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",
6
+ "names": ["res", "styles", "path"]
7
7
  }
@@ -1,2 +1,20 @@
1
- function a(i){const t=n=>n.isArrowFunctionExpression()||n.isFunctionDeclaration()||n.isFunctionExpression();let o=i.findParent(t);for(;o;){const n=o.findParent(t);if(n)o=n;else break}return o||null}export{a as findTopmostFunction};
1
+ function findTopmostFunction(jsxPath) {
2
+ const isFunction = (path) => path.isArrowFunctionExpression() || path.isFunctionDeclaration() || path.isFunctionExpression();
3
+ let compFn = jsxPath.findParent(isFunction);
4
+ while (compFn) {
5
+ const parent = compFn.findParent(isFunction);
6
+ if (parent) {
7
+ compFn = parent;
8
+ } else {
9
+ break;
10
+ }
11
+ }
12
+ if (!compFn) {
13
+ return null;
14
+ }
15
+ return compFn;
16
+ }
17
+ export {
18
+ findTopmostFunction
19
+ };
2
20
  //# sourceMappingURL=findTopmostFunction.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/findTopmostFunction.ts"],
4
4
  "sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\n\nexport function findTopmostFunction(jsxPath: NodePath<t.JSXElement>) {\n // get topmost fn\n const isFunction = (path: NodePath<any>) =>\n path.isArrowFunctionExpression() || path.isFunctionDeclaration() || path.isFunctionExpression()\n let compFn: NodePath<any> | null = jsxPath.findParent(isFunction)\n while (compFn) {\n const parent = compFn.findParent(isFunction)\n if (parent) {\n compFn = parent\n } else {\n break\n }\n }\n if (!compFn) {\n // console.error(`Couldn't find a topmost function for media query extraction`)\n return null\n }\n return compFn\n}\n"],
5
- "mappings": "AAGO,SAASA,EAAoBC,EAAiC,CAEnE,MAAMC,EAAcC,GAClBA,EAAK,0BAA0B,GAAKA,EAAK,sBAAsB,GAAKA,EAAK,qBAAqB,EAChG,IAAIC,EAA+BH,EAAQ,WAAWC,CAAU,EAChE,KAAOE,GAAQ,CACb,MAAMC,EAASD,EAAO,WAAWF,CAAU,EAC3C,GAAIG,EACFD,EAASC,MAET,MAEJ,CACA,OAAKD,GAEI,IAGX",
6
- "names": ["findTopmostFunction", "jsxPath", "isFunction", "path", "compFn", "parent"]
5
+ "mappings": "AAGO,SAAS,oBAAoB,SAAiC;AAEnE,QAAM,aAAa,CAAC,SAClB,KAAK,0BAA0B,KAAK,KAAK,sBAAsB,KAAK,KAAK,qBAAqB;AAChG,MAAI,SAA+B,QAAQ,WAAW,UAAU;AAChE,SAAO,QAAQ;AACb,UAAM,SAAS,OAAO,WAAW,UAAU;AAC3C,QAAI,QAAQ;AACV,eAAS;AAAA,IACX,OAAO;AACL;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ;AAEX,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,20 @@
1
- function a(i){const t=n=>n.isArrowFunctionExpression()||n.isFunctionDeclaration()||n.isFunctionExpression();let o=i.findParent(t);for(;o;){const n=o.findParent(t);if(n)o=n;else break}return o||null}export{a as findTopmostFunction};
1
+ function findTopmostFunction(jsxPath) {
2
+ const isFunction = (path) => path.isArrowFunctionExpression() || path.isFunctionDeclaration() || path.isFunctionExpression();
3
+ let compFn = jsxPath.findParent(isFunction);
4
+ while (compFn) {
5
+ const parent = compFn.findParent(isFunction);
6
+ if (parent) {
7
+ compFn = parent;
8
+ } else {
9
+ break;
10
+ }
11
+ }
12
+ if (!compFn) {
13
+ return null;
14
+ }
15
+ return compFn;
16
+ }
17
+ export {
18
+ findTopmostFunction
19
+ };
2
20
  //# sourceMappingURL=findTopmostFunction.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/findTopmostFunction.ts"],
4
4
  "sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\n\nexport function findTopmostFunction(jsxPath: NodePath<t.JSXElement>) {\n // get topmost fn\n const isFunction = (path: NodePath<any>) =>\n path.isArrowFunctionExpression() || path.isFunctionDeclaration() || path.isFunctionExpression()\n let compFn: NodePath<any> | null = jsxPath.findParent(isFunction)\n while (compFn) {\n const parent = compFn.findParent(isFunction)\n if (parent) {\n compFn = parent\n } else {\n break\n }\n }\n if (!compFn) {\n // console.error(`Couldn't find a topmost function for media query extraction`)\n return null\n }\n return compFn\n}\n"],
5
- "mappings": "AAGO,SAASA,EAAoBC,EAAiC,CAEnE,MAAMC,EAAcC,GAClBA,EAAK,0BAA0B,GAAKA,EAAK,sBAAsB,GAAKA,EAAK,qBAAqB,EAChG,IAAIC,EAA+BH,EAAQ,WAAWC,CAAU,EAChE,KAAOE,GAAQ,CACb,MAAMC,EAASD,EAAO,WAAWF,CAAU,EAC3C,GAAIG,EACFD,EAASC,MAET,MAEJ,CACA,OAAKD,GAEI,IAGX",
6
- "names": ["findTopmostFunction", "jsxPath", "isFunction", "path", "compFn", "parent"]
5
+ "mappings": "AAGO,SAAS,oBAAoB,SAAiC;AAEnE,QAAM,aAAa,CAAC,SAClB,KAAK,0BAA0B,KAAK,KAAK,sBAAsB,KAAK,KAAK,qBAAqB;AAChG,MAAI,SAA+B,QAAQ,WAAW,UAAU;AAChE,SAAO,QAAQ;AACb,UAAM,SAAS,OAAO,WAAW,UAAU;AAC3C,QAAI,QAAQ;AACV,eAAS;AAAA,IACX,OAAO;AACL;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ;AAEX,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,26 @@
1
- import*as n from"@babel/types";function f(t,r){if(typeof t!="object")throw"generateUid expects a scope object as its first parameter";if(!(typeof r=="string"&&r!==""))throw"generateUid expects a valid name as its second parameter";r=n.toIdentifier(r).replace(/^_+/,"").replace(/[0-9]+$/g,"");let e,i=0;do i>1?e=r+i:e=r,i++;while(t.hasLabel(e)||t.hasBinding(e)||t.hasGlobal(e)||t.hasReference(e));const a=t.getProgramParent();return a.references[e]=!0,a.uids[e]=!0,e}export{f as generateUid};
1
+ import * as t from "@babel/types";
2
+ function generateUid(scope, name) {
3
+ if (!(typeof scope === "object"))
4
+ throw "generateUid expects a scope object as its first parameter";
5
+ if (!(typeof name === "string" && name !== ""))
6
+ throw "generateUid expects a valid name as its second parameter";
7
+ name = t.toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, "");
8
+ let uid;
9
+ let i = 0;
10
+ do {
11
+ if (i > 1) {
12
+ uid = name + i;
13
+ } else {
14
+ uid = name;
15
+ }
16
+ i++;
17
+ } while (scope.hasLabel(uid) || scope.hasBinding(uid) || scope.hasGlobal(uid) || scope.hasReference(uid));
18
+ const program = scope.getProgramParent();
19
+ program.references[uid] = true;
20
+ program.uids[uid] = true;
21
+ return uid;
22
+ }
23
+ export {
24
+ generateUid
25
+ };
2
26
  //# sourceMappingURL=generatedUid.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/generatedUid.ts"],
4
4
  "sourcesContent": ["import * as t from '@babel/types'\nimport invariant from 'invariant'\n\n// TODO: open a PR upstream\ndeclare module '@babel/types' {\n export function toIdentifier(input: string): string\n}\n\n// A clone of path.scope.generateUid that doesn't prepend underscores\nexport function generateUid(scope: any, name: string): string {\n if (!(typeof scope === 'object'))\n throw 'generateUid expects a scope object as its first parameter'\n if (!(typeof name === 'string' && name !== ''))\n throw 'generateUid expects a valid name as its second parameter'\n\n name = t\n .toIdentifier(name)\n .replace(/^_+/, '')\n .replace(/[0-9]+$/g, '')\n\n let uid\n let i = 0\n do {\n if (i > 1) {\n uid = name + i\n } else {\n uid = name\n }\n i++\n } while (\n scope.hasLabel(uid) ||\n scope.hasBinding(uid) ||\n scope.hasGlobal(uid) ||\n scope.hasReference(uid)\n )\n\n const program = scope.getProgramParent()\n program.references[uid] = true\n program.uids[uid] = true\n\n return uid\n}\n"],
5
- "mappings": "AAAA,UAAYA,MAAO,eASZ,SAASC,EAAYC,EAAYC,EAAsB,CAC5D,GAAM,OAAOD,GAAU,SACrB,KAAM,4DACR,GAAI,EAAE,OAAOC,GAAS,UAAYA,IAAS,IACzC,KAAM,2DAERA,EAAOH,EACJ,aAAaG,CAAI,EACjB,QAAQ,MAAO,EAAE,EACjB,QAAQ,WAAY,EAAE,EAEzB,IAAIC,EACA,EAAI,EACR,GACM,EAAI,EACNA,EAAMD,EAAO,EAEbC,EAAMD,EAER,UAEAD,EAAM,SAASE,CAAG,GAClBF,EAAM,WAAWE,CAAG,GACpBF,EAAM,UAAUE,CAAG,GACnBF,EAAM,aAAaE,CAAG,GAGxB,MAAMC,EAAUH,EAAM,iBAAiB,EACvC,OAAAG,EAAQ,WAAWD,CAAG,EAAI,GAC1BC,EAAQ,KAAKD,CAAG,EAAI,GAEbA,CACT",
6
- "names": ["t", "generateUid", "scope", "name", "uid", "program"]
5
+ "mappings": "AAAA,YAAY,OAAO;AASZ,SAAS,YAAY,OAAY,MAAsB;AAC5D,MAAI,EAAE,OAAO,UAAU;AACrB,UAAM;AACR,MAAI,EAAE,OAAO,SAAS,YAAY,SAAS;AACzC,UAAM;AAER,SAAO,EACJ,aAAa,IAAI,EACjB,QAAQ,OAAO,EAAE,EACjB,QAAQ,YAAY,EAAE;AAEzB,MAAI;AACJ,MAAI,IAAI;AACR,KAAG;AACD,QAAI,IAAI,GAAG;AACT,YAAM,OAAO;AAAA,IACf,OAAO;AACL,YAAM;AAAA,IACR;AACA;AAAA,EACF,SACE,MAAM,SAAS,GAAG,KAClB,MAAM,WAAW,GAAG,KACpB,MAAM,UAAU,GAAG,KACnB,MAAM,aAAa,GAAG;AAGxB,QAAM,UAAU,MAAM,iBAAiB;AACvC,UAAQ,WAAW,GAAG,IAAI;AAC1B,UAAQ,KAAK,GAAG,IAAI;AAEpB,SAAO;AACT;",
6
+ "names": []
7
7
  }