@hanzogui/static 8.3.0 → 8.3.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 (377) hide show
  1. package/dist/cjs/check-dep-versions.js +438 -0
  2. package/dist/cjs/check-dep-versions.js.map +1 -0
  3. package/dist/cjs/checkDeps.js +343 -0
  4. package/dist/cjs/checkDeps.js.map +1 -0
  5. package/dist/cjs/constants.js +13 -0
  6. package/dist/cjs/constants.js.map +1 -0
  7. package/dist/cjs/exports.js +27 -0
  8. package/dist/cjs/exports.js.map +1 -0
  9. package/dist/cjs/extractor/accessSafe.js +17 -0
  10. package/dist/cjs/extractor/accessSafe.js.map +1 -0
  11. package/dist/cjs/extractor/babelParse.js +27 -0
  12. package/dist/cjs/extractor/babelParse.js.map +1 -0
  13. package/dist/cjs/extractor/buildClassName.js +65 -0
  14. package/dist/cjs/extractor/buildClassName.js.map +1 -0
  15. package/dist/cjs/extractor/bundle.js +257 -0
  16. package/dist/cjs/extractor/bundle.js.map +1 -0
  17. package/dist/cjs/extractor/bundleConfig.js +794 -0
  18. package/dist/cjs/extractor/bundleConfig.js.map +1 -0
  19. package/dist/cjs/extractor/concatClassName.js +101 -0
  20. package/dist/cjs/extractor/concatClassName.js.map +1 -0
  21. package/dist/cjs/extractor/createEvaluator.js +56 -0
  22. package/dist/cjs/extractor/createEvaluator.js.map +1 -0
  23. package/dist/cjs/extractor/createExtractor.js +2285 -0
  24. package/dist/cjs/extractor/createExtractor.js.map +1 -0
  25. package/dist/cjs/extractor/createLogger.js +34 -0
  26. package/dist/cjs/extractor/createLogger.js.map +1 -0
  27. package/dist/cjs/extractor/detectModuleFormat.js +41 -0
  28. package/dist/cjs/extractor/detectModuleFormat.js.map +1 -0
  29. package/dist/cjs/extractor/ensureImportingConcat.js +23 -0
  30. package/dist/cjs/extractor/ensureImportingConcat.js.map +1 -0
  31. package/dist/cjs/extractor/errors.js +7 -0
  32. package/dist/cjs/extractor/errors.js.map +1 -0
  33. package/dist/cjs/extractor/esbuildAliasPlugin.js +43 -0
  34. package/dist/cjs/extractor/esbuildAliasPlugin.js.map +1 -0
  35. package/dist/cjs/extractor/esbuildTsconfigPaths.js +68 -0
  36. package/dist/cjs/extractor/esbuildTsconfigPaths.js.map +1 -0
  37. package/dist/cjs/extractor/evaluateAstNode.js +107 -0
  38. package/dist/cjs/extractor/evaluateAstNode.js.map +1 -0
  39. package/dist/cjs/extractor/extractHelpers.js +183 -0
  40. package/dist/cjs/extractor/extractHelpers.js.map +1 -0
  41. package/dist/cjs/extractor/extractMediaStyle.js +143 -0
  42. package/dist/cjs/extractor/extractMediaStyle.js.map +1 -0
  43. package/dist/cjs/extractor/extractToClassNames.js +541 -0
  44. package/dist/cjs/extractor/extractToClassNames.js.map +1 -0
  45. package/dist/cjs/extractor/extractToNative.js +404 -0
  46. package/dist/cjs/extractor/extractToNative.js.map +1 -0
  47. package/dist/cjs/extractor/extractablePath.js +89 -0
  48. package/dist/cjs/extractor/extractablePath.js.map +1 -0
  49. package/dist/cjs/extractor/findTopmostFunction.js +17 -0
  50. package/dist/cjs/extractor/findTopmostFunction.js.map +1 -0
  51. package/dist/cjs/extractor/generatedUid.js +35 -0
  52. package/dist/cjs/extractor/generatedUid.js.map +1 -0
  53. package/dist/cjs/extractor/getGuiConfigPathFromOptionsConfig.js +21 -0
  54. package/dist/cjs/extractor/getGuiConfigPathFromOptionsConfig.js.map +1 -0
  55. package/dist/cjs/extractor/getPrefixLogs.js +9 -0
  56. package/dist/cjs/extractor/getPrefixLogs.js.map +1 -0
  57. package/dist/cjs/extractor/getPropValueFromAttributes.js +75 -0
  58. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +1 -0
  59. package/dist/cjs/extractor/getSourceModule.js +81 -0
  60. package/dist/cjs/extractor/getSourceModule.js.map +1 -0
  61. package/dist/cjs/extractor/getStaticBindingsForScope.js +212 -0
  62. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +1 -0
  63. package/dist/cjs/extractor/hasTopLevelAwait.js +29 -0
  64. package/dist/cjs/extractor/hasTopLevelAwait.js.map +1 -0
  65. package/dist/cjs/extractor/hoistClassNames.js +47 -0
  66. package/dist/cjs/extractor/hoistClassNames.js.map +1 -0
  67. package/dist/cjs/extractor/literalToAst.js +83 -0
  68. package/dist/cjs/extractor/literalToAst.js.map +1 -0
  69. package/dist/cjs/extractor/loadFile.js +24 -0
  70. package/dist/cjs/extractor/loadFile.js.map +1 -0
  71. package/dist/cjs/extractor/loadGui.js +414 -0
  72. package/dist/cjs/extractor/loadGui.js.map +1 -0
  73. package/dist/cjs/extractor/logLines.js +20 -0
  74. package/dist/cjs/extractor/logLines.js.map +1 -0
  75. package/dist/cjs/extractor/normalizeTernaries.js +60 -0
  76. package/dist/cjs/extractor/normalizeTernaries.js.map +1 -0
  77. package/dist/cjs/extractor/propsToFontFamilyCache.js +20 -0
  78. package/dist/cjs/extractor/propsToFontFamilyCache.js.map +1 -0
  79. package/dist/cjs/extractor/regenerateConfig.js +151 -0
  80. package/dist/cjs/extractor/regenerateConfig.js.map +1 -0
  81. package/dist/cjs/extractor/removeUnusedHooks.js +84 -0
  82. package/dist/cjs/extractor/removeUnusedHooks.js.map +1 -0
  83. package/dist/cjs/extractor/timer.js +30 -0
  84. package/dist/cjs/extractor/timer.js.map +1 -0
  85. package/dist/cjs/extractor/validHTMLAttributes.js +56 -0
  86. package/dist/cjs/extractor/validHTMLAttributes.js.map +1 -0
  87. package/dist/cjs/extractor/watchGuiConfig.js +56 -0
  88. package/dist/cjs/extractor/watchGuiConfig.js.map +1 -0
  89. package/dist/cjs/getPragmaOptions.js +52 -0
  90. package/dist/cjs/getPragmaOptions.js.map +1 -0
  91. package/dist/cjs/helpers/memoize.js +24 -0
  92. package/dist/cjs/helpers/memoize.js.map +1 -0
  93. package/dist/cjs/helpers/nativeEntry.js +87 -0
  94. package/dist/cjs/helpers/nativeEntry.js.map +1 -0
  95. package/dist/cjs/helpers/requireGuiCore.js +25 -0
  96. package/dist/cjs/helpers/requireGuiCore.js.map +1 -0
  97. package/dist/cjs/here.js +8 -0
  98. package/dist/cjs/here.js.map +1 -0
  99. package/dist/cjs/index.js +8 -0
  100. package/dist/cjs/index.js.map +1 -0
  101. package/dist/cjs/package.json +1 -0
  102. package/dist/cjs/registerRequire.js +263 -0
  103. package/dist/cjs/registerRequire.js.map +1 -0
  104. package/dist/cjs/server.js +41 -0
  105. package/dist/cjs/server.js.map +1 -0
  106. package/dist/cjs/setup.js +2 -0
  107. package/dist/cjs/setup.js.map +1 -0
  108. package/dist/cjs/types.js +3 -0
  109. package/dist/cjs/types.js.map +1 -0
  110. package/dist/cjs/worker.js +95 -0
  111. package/dist/cjs/worker.js.map +1 -0
  112. package/dist/esm/check-dep-versions.js +433 -0
  113. package/dist/esm/check-dep-versions.js.map +1 -0
  114. package/dist/esm/checkDeps.js +339 -0
  115. package/dist/esm/checkDeps.js.map +1 -0
  116. package/dist/esm/constants.js +9 -0
  117. package/dist/esm/constants.js.map +1 -0
  118. package/dist/esm/exports.js +18 -0
  119. package/dist/esm/exports.js.map +1 -0
  120. package/dist/esm/extractor/accessSafe.js +13 -0
  121. package/dist/esm/extractor/accessSafe.js.map +1 -0
  122. package/dist/esm/extractor/babelParse.js +22 -0
  123. package/dist/esm/extractor/babelParse.js.map +1 -0
  124. package/dist/esm/extractor/buildClassName.js +59 -0
  125. package/dist/esm/extractor/buildClassName.js.map +1 -0
  126. package/dist/esm/extractor/bundle.js +252 -0
  127. package/dist/esm/extractor/bundle.js.map +1 -0
  128. package/dist/esm/extractor/bundleConfig.js +781 -0
  129. package/dist/esm/extractor/bundleConfig.js.map +1 -0
  130. package/dist/esm/extractor/concatClassName.js +98 -0
  131. package/dist/esm/extractor/concatClassName.js.map +1 -0
  132. package/dist/esm/extractor/createEvaluator.js +51 -0
  133. package/dist/esm/extractor/createEvaluator.js.map +1 -0
  134. package/dist/esm/extractor/createExtractor.js +2281 -0
  135. package/dist/esm/extractor/createExtractor.js.map +1 -0
  136. package/dist/esm/extractor/createLogger.js +31 -0
  137. package/dist/esm/extractor/createLogger.js.map +1 -0
  138. package/dist/esm/extractor/detectModuleFormat.js +37 -0
  139. package/dist/esm/extractor/detectModuleFormat.js.map +1 -0
  140. package/dist/esm/extractor/ensureImportingConcat.js +19 -0
  141. package/dist/esm/extractor/ensureImportingConcat.js.map +1 -0
  142. package/dist/esm/extractor/errors.js +3 -0
  143. package/dist/esm/extractor/errors.js.map +1 -0
  144. package/dist/esm/extractor/esbuildAliasPlugin.js +39 -0
  145. package/dist/esm/extractor/esbuildAliasPlugin.js.map +1 -0
  146. package/dist/esm/extractor/esbuildTsconfigPaths.js +63 -0
  147. package/dist/esm/extractor/esbuildTsconfigPaths.js.map +1 -0
  148. package/dist/esm/extractor/evaluateAstNode.js +103 -0
  149. package/dist/esm/extractor/evaluateAstNode.js.map +1 -0
  150. package/dist/esm/extractor/extractHelpers.js +166 -0
  151. package/dist/esm/extractor/extractHelpers.js.map +1 -0
  152. package/dist/esm/extractor/extractMediaStyle.js +138 -0
  153. package/dist/esm/extractor/extractMediaStyle.js.map +1 -0
  154. package/dist/esm/extractor/extractToClassNames.js +537 -0
  155. package/dist/esm/extractor/extractToClassNames.js.map +1 -0
  156. package/dist/esm/extractor/extractToNative.js +398 -0
  157. package/dist/esm/extractor/extractToNative.js.map +1 -0
  158. package/dist/esm/extractor/extractablePath.js +84 -0
  159. package/dist/esm/extractor/extractablePath.js.map +1 -0
  160. package/dist/esm/extractor/findTopmostFunction.js +14 -0
  161. package/dist/esm/extractor/findTopmostFunction.js.map +1 -0
  162. package/dist/esm/extractor/generatedUid.js +31 -0
  163. package/dist/esm/extractor/generatedUid.js.map +1 -0
  164. package/dist/esm/extractor/getGuiConfigPathFromOptionsConfig.js +18 -0
  165. package/dist/esm/extractor/getGuiConfigPathFromOptionsConfig.js.map +1 -0
  166. package/dist/esm/extractor/getPrefixLogs.js +6 -0
  167. package/dist/esm/extractor/getPrefixLogs.js.map +1 -0
  168. package/dist/esm/extractor/getPropValueFromAttributes.js +71 -0
  169. package/dist/esm/extractor/getPropValueFromAttributes.js.map +1 -0
  170. package/dist/esm/extractor/getSourceModule.js +77 -0
  171. package/dist/esm/extractor/getSourceModule.js.map +1 -0
  172. package/dist/esm/extractor/getStaticBindingsForScope.js +207 -0
  173. package/dist/esm/extractor/getStaticBindingsForScope.js.map +1 -0
  174. package/dist/esm/extractor/hasTopLevelAwait.js +25 -0
  175. package/dist/esm/extractor/hasTopLevelAwait.js.map +1 -0
  176. package/dist/esm/extractor/hoistClassNames.js +43 -0
  177. package/dist/esm/extractor/hoistClassNames.js.map +1 -0
  178. package/dist/esm/extractor/literalToAst.js +78 -0
  179. package/dist/esm/extractor/literalToAst.js.map +1 -0
  180. package/dist/esm/extractor/loadFile.js +22 -0
  181. package/dist/esm/extractor/loadFile.js.map +1 -0
  182. package/dist/esm/extractor/loadGui.js +402 -0
  183. package/dist/esm/extractor/loadGui.js.map +1 -0
  184. package/dist/esm/extractor/logLines.js +16 -0
  185. package/dist/esm/extractor/logLines.js.map +1 -0
  186. package/dist/esm/extractor/normalizeTernaries.js +56 -0
  187. package/dist/esm/extractor/normalizeTernaries.js.map +1 -0
  188. package/dist/esm/extractor/propsToFontFamilyCache.js +15 -0
  189. package/dist/esm/extractor/propsToFontFamilyCache.js.map +1 -0
  190. package/dist/esm/extractor/regenerateConfig.js +145 -0
  191. package/dist/esm/extractor/regenerateConfig.js.map +1 -0
  192. package/dist/esm/extractor/removeUnusedHooks.js +80 -0
  193. package/dist/esm/extractor/removeUnusedHooks.js.map +1 -0
  194. package/dist/esm/extractor/timer.js +26 -0
  195. package/dist/esm/extractor/timer.js.map +1 -0
  196. package/dist/esm/extractor/validHTMLAttributes.js +53 -0
  197. package/dist/esm/extractor/validHTMLAttributes.js.map +1 -0
  198. package/dist/esm/extractor/watchGuiConfig.js +53 -0
  199. package/dist/esm/extractor/watchGuiConfig.js.map +1 -0
  200. package/dist/esm/getPragmaOptions.js +49 -0
  201. package/dist/esm/getPragmaOptions.js.map +1 -0
  202. package/dist/esm/helpers/memoize.js +21 -0
  203. package/dist/esm/helpers/memoize.js.map +1 -0
  204. package/dist/esm/helpers/nativeEntry.js +82 -0
  205. package/dist/esm/helpers/nativeEntry.js.map +1 -0
  206. package/dist/esm/helpers/requireGuiCore.js +22 -0
  207. package/dist/esm/helpers/requireGuiCore.js.map +1 -0
  208. package/dist/esm/here.js +7 -0
  209. package/dist/esm/here.js.map +1 -0
  210. package/dist/esm/index.js +5 -0
  211. package/dist/esm/index.js.map +1 -0
  212. package/dist/esm/registerRequire.js +256 -0
  213. package/dist/esm/registerRequire.js.map +1 -0
  214. package/dist/esm/server.js +37 -0
  215. package/dist/esm/server.js.map +1 -0
  216. package/dist/esm/setup.js +2 -0
  217. package/dist/esm/setup.js.map +1 -0
  218. package/dist/esm/types.js +2 -0
  219. package/dist/esm/types.js.map +1 -0
  220. package/dist/esm/worker.js +92 -0
  221. package/dist/esm/worker.js.map +1 -0
  222. package/package.json +77 -56
  223. package/src/check-dep-versions.ts +2 -1
  224. package/src/checkDeps.ts +1 -1
  225. package/src/exports.ts +17 -17
  226. package/src/extractor/babelParse.ts +2 -11
  227. package/src/extractor/buildClassName.ts +1 -1
  228. package/src/extractor/bundle.ts +13 -9
  229. package/src/extractor/bundleConfig.ts +25 -21
  230. package/src/extractor/createEvaluator.ts +3 -3
  231. package/src/extractor/createExtractor.ts +59 -77
  232. package/src/extractor/createLogger.ts +2 -2
  233. package/src/extractor/esbuildTsconfigPaths.ts +55 -120
  234. package/src/extractor/evaluateAstNode.ts +2 -2
  235. package/src/extractor/extractHelpers.ts +3 -3
  236. package/src/extractor/extractMediaStyle.ts +3 -3
  237. package/src/extractor/extractToClassNames.ts +12 -12
  238. package/src/extractor/extractToNative.ts +20 -22
  239. package/src/extractor/findTopmostFunction.ts +5 -13
  240. package/src/extractor/getGuiConfigPathFromOptionsConfig.ts +1 -1
  241. package/src/extractor/getPrefixLogs.ts +1 -1
  242. package/src/extractor/getPropValueFromAttributes.ts +2 -2
  243. package/src/extractor/getStaticBindingsForScope.ts +6 -6
  244. package/src/extractor/hasTopLevelAwait.ts +1 -1
  245. package/src/extractor/literalToAst.ts +2 -2
  246. package/src/extractor/loadFile.ts +6 -1
  247. package/src/extractor/loadGui.ts +16 -12
  248. package/src/extractor/normalizeTernaries.ts +3 -3
  249. package/src/extractor/regenerateConfig.ts +10 -6
  250. package/src/extractor/watchGuiConfig.ts +7 -3
  251. package/src/helpers/nativeEntry.ts +92 -0
  252. package/src/helpers/requireGuiCore.ts +8 -3
  253. package/src/here.cjs.ts +6 -0
  254. package/src/here.ts +8 -0
  255. package/src/index.ts +2 -2
  256. package/src/registerRequire.ts +30 -14
  257. package/src/server.ts +1 -1
  258. package/src/types.ts +1 -1
  259. package/src/worker.ts +7 -7
  260. package/types/check-dep-versions.d.ts.map +1 -1
  261. package/types/constants.d.ts +1 -1
  262. package/types/constants.d.ts.map +1 -1
  263. package/types/exports.d.ts +17 -17
  264. package/types/exports.d.ts.map +1 -1
  265. package/types/extractor/babelParse.d.ts.map +1 -1
  266. package/types/extractor/buildClassName.d.ts +1 -1
  267. package/types/extractor/buildClassName.d.ts.map +1 -1
  268. package/types/extractor/bundle.d.ts +66 -66
  269. package/types/extractor/bundle.d.ts.map +1 -1
  270. package/types/extractor/bundleConfig.d.ts +2 -2
  271. package/types/extractor/bundleConfig.d.ts.map +1 -1
  272. package/types/extractor/createEvaluator.d.ts +1 -1
  273. package/types/extractor/createEvaluator.d.ts.map +1 -1
  274. package/types/extractor/createExtractor.d.ts +4 -4
  275. package/types/extractor/createExtractor.d.ts.map +1 -1
  276. package/types/extractor/createLogger.d.ts +1 -1
  277. package/types/extractor/createLogger.d.ts.map +1 -1
  278. package/types/extractor/esbuildAliasPlugin.d.ts.map +1 -1
  279. package/types/extractor/esbuildTsconfigPaths.d.ts +4 -9
  280. package/types/extractor/esbuildTsconfigPaths.d.ts.map +1 -1
  281. package/types/extractor/extractHelpers.d.ts +1 -1
  282. package/types/extractor/extractHelpers.d.ts.map +1 -1
  283. package/types/extractor/extractMediaStyle.d.ts +2 -3
  284. package/types/extractor/extractMediaStyle.d.ts.map +1 -1
  285. package/types/extractor/extractToClassNames.d.ts +2 -2
  286. package/types/extractor/extractToClassNames.d.ts.map +1 -1
  287. package/types/extractor/extractToNative.d.ts +4 -4
  288. package/types/extractor/extractToNative.d.ts.map +1 -1
  289. package/types/extractor/findTopmostFunction.d.ts +1 -1
  290. package/types/extractor/findTopmostFunction.d.ts.map +1 -1
  291. package/types/extractor/getGuiConfigPathFromOptionsConfig.d.ts +1 -1
  292. package/types/extractor/getGuiConfigPathFromOptionsConfig.d.ts.map +1 -1
  293. package/types/extractor/getPrefixLogs.d.ts +1 -1
  294. package/types/extractor/getPrefixLogs.d.ts.map +1 -1
  295. package/types/extractor/loadFile.d.ts +1 -0
  296. package/types/extractor/loadGui.d.ts +1 -1
  297. package/types/extractor/loadGui.d.ts.map +1 -1
  298. package/types/extractor/logLines.d.ts.map +1 -1
  299. package/types/extractor/normalizeTernaries.d.ts +1 -1
  300. package/types/extractor/normalizeTernaries.d.ts.map +1 -1
  301. package/types/extractor/regenerateConfig.d.ts +1 -1
  302. package/types/extractor/regenerateConfig.d.ts.map +1 -1
  303. package/types/extractor/timer.d.ts.map +1 -1
  304. package/types/extractor/validHTMLAttributes.d.ts.map +1 -1
  305. package/types/extractor/watchGuiConfig.d.ts.map +1 -1
  306. package/types/getPragmaOptions.d.ts +1 -1
  307. package/types/helpers/memoize.d.ts +1 -1
  308. package/types/helpers/memoize.d.ts.map +1 -1
  309. package/types/helpers/nativeEntry.d.ts +16 -0
  310. package/types/helpers/nativeEntry.d.ts.map +1 -0
  311. package/types/helpers/requireGuiCore.d.ts +1 -1
  312. package/types/helpers/requireGuiCore.d.ts.map +1 -1
  313. package/types/here.d.ts +3 -0
  314. package/types/here.d.ts.map +1 -0
  315. package/types/index.d.ts +2 -2
  316. package/types/index.d.ts.map +1 -1
  317. package/types/registerRequire.d.ts +1 -1
  318. package/types/registerRequire.d.ts.map +1 -1
  319. package/types/server.d.ts +1 -1
  320. package/types/server.d.ts.map +1 -1
  321. package/types/types.d.ts +1 -1
  322. package/types/types.d.ts.map +1 -1
  323. package/types/worker.d.ts +4 -4
  324. package/types/worker.d.ts.map +1 -1
  325. package/dist/check-dep-versions.cjs +0 -372
  326. package/dist/checkDeps.cjs +0 -271
  327. package/dist/constants.cjs +0 -51
  328. package/dist/exports.cjs +0 -49
  329. package/dist/extractor/accessSafe.cjs +0 -48
  330. package/dist/extractor/babelParse.cjs +0 -56
  331. package/dist/extractor/buildClassName.cjs +0 -86
  332. package/dist/extractor/bundle.cjs +0 -234
  333. package/dist/extractor/bundleConfig.cjs +0 -729
  334. package/dist/extractor/concatClassName.cjs +0 -121
  335. package/dist/extractor/createEvaluator.cjs +0 -88
  336. package/dist/extractor/createExtractor.cjs +0 -1935
  337. package/dist/extractor/createLogger.cjs +0 -50
  338. package/dist/extractor/detectModuleFormat.cjs +0 -55
  339. package/dist/extractor/ensureImportingConcat.cjs +0 -54
  340. package/dist/extractor/errors.cjs +0 -28
  341. package/dist/extractor/esbuildAliasPlugin.cjs +0 -56
  342. package/dist/extractor/esbuildTsconfigPaths.cjs +0 -126
  343. package/dist/extractor/evaluateAstNode.cjs +0 -128
  344. package/dist/extractor/extractHelpers.cjs +0 -182
  345. package/dist/extractor/extractMediaStyle.cjs +0 -169
  346. package/dist/extractor/extractToClassNames.cjs +0 -476
  347. package/dist/extractor/extractToNative.cjs +0 -369
  348. package/dist/extractor/extractablePath.cjs +0 -51
  349. package/dist/extractor/findTopmostFunction.cjs +0 -43
  350. package/dist/extractor/generatedUid.cjs +0 -58
  351. package/dist/extractor/getGuiConfigPathFromOptionsConfig.cjs +0 -41
  352. package/dist/extractor/getPrefixLogs.cjs +0 -31
  353. package/dist/extractor/getPropValueFromAttributes.cjs +0 -85
  354. package/dist/extractor/getSourceModule.cjs +0 -100
  355. package/dist/extractor/getStaticBindingsForScope.cjs +0 -213
  356. package/dist/extractor/hasTopLevelAwait.cjs +0 -62
  357. package/dist/extractor/hoistClassNames.cjs +0 -76
  358. package/dist/extractor/literalToAst.cjs +0 -109
  359. package/dist/extractor/loadFile.cjs +0 -17
  360. package/dist/extractor/loadGui.cjs +0 -373
  361. package/dist/extractor/logLines.cjs +0 -43
  362. package/dist/extractor/normalizeTernaries.cjs +0 -95
  363. package/dist/extractor/propsToFontFamilyCache.cjs +0 -42
  364. package/dist/extractor/regenerateConfig.cjs +0 -178
  365. package/dist/extractor/removeUnusedHooks.cjs +0 -108
  366. package/dist/extractor/timer.cjs +0 -52
  367. package/dist/extractor/validHTMLAttributes.cjs +0 -79
  368. package/dist/extractor/watchGuiConfig.cjs +0 -70
  369. package/dist/getPragmaOptions.cjs +0 -73
  370. package/dist/helpers/memoize.cjs +0 -45
  371. package/dist/helpers/requireGuiCore.cjs +0 -40
  372. package/dist/index.cjs +0 -42
  373. package/dist/registerRequire.cjs +0 -209
  374. package/dist/server.cjs +0 -82
  375. package/dist/setup.cjs +0 -0
  376. package/dist/types.cjs +0 -18
  377. package/dist/worker.cjs +0 -111
@@ -0,0 +1,537 @@
1
+ import generate from '@babel/generator';
2
+ import * as t from '@babel/types';
3
+ import { mergeProps, StyleObjectIdentifier, StyleObjectRules } from '@hanzogui/web';
4
+ import * as path from 'node:path';
5
+ import * as util from 'node:util';
6
+ import { requireGuiCore } from '../helpers/requireGuiCore.js';
7
+ import { babelParse } from './babelParse.js';
8
+ import { isExtractable } from './extractablePath.js';
9
+ import { createLogger } from './createLogger.js';
10
+ import { extractMediaStyle } from './extractMediaStyle.js';
11
+ import { normalizeTernaries } from './normalizeTernaries.js';
12
+ import { forwardFontFamilyName, getFontFamilyNameFromProps, } from './propsToFontFamilyCache.js';
13
+ import { timer } from './timer.js';
14
+ import { BailOptimizationError } from './errors.js';
15
+ import { concatClassName } from './concatClassName.js';
16
+ // we only expand into ternaries or plain attr, all style is turned into a always-true ternary
17
+ // this lets us more easily combine everything easily
18
+ // all ternaries in this array ONLY have consequent, they are normalized
19
+ const remove = () => { }; // we dont remove after this step
20
+ const spaceString = t.stringLiteral(' ');
21
+ export async function extractToClassNames({ extractor, source, sourcePath = '', options, shouldPrintDebug, }) {
22
+ const tm = timer();
23
+ const { getCSSStylesAtomic, createMediaStyle } = requireGuiCore('web');
24
+ if (!isExtractable(sourcePath, options.extractPackages)) {
25
+ return null;
26
+ }
27
+ if (shouldPrintDebug) {
28
+ console.warn(`--- ${sourcePath} --- \n\n`);
29
+ }
30
+ if (typeof source !== 'string') {
31
+ throw new Error('`source` must be a string of javascript');
32
+ }
33
+ if (!path.isAbsolute(sourcePath)) {
34
+ throw new Error('`sourcePath` must be an absolute path to a .js file, got: ' + sourcePath);
35
+ }
36
+ if (!/.[tj]sx?$/i.test(sourcePath || '')) {
37
+ console.warn(`${sourcePath.slice(0, 100)} - bad filename.`);
38
+ }
39
+ if (!options.disableExtraction && !options['_disableLoadGui']) {
40
+ // dont include loading in timing of parsing (one time cost)
41
+ await extractor.loadGui(options);
42
+ }
43
+ const printLog = createLogger(sourcePath, options);
44
+ // Using a map for (officially supported) guaranteed insertion order
45
+ let ast;
46
+ try {
47
+ ast = babelParse(source, sourcePath);
48
+ }
49
+ catch (err) {
50
+ console.error('babel parse error:', sourcePath.slice(0, 100));
51
+ throw err;
52
+ }
53
+ tm.mark(`babel-parse`, shouldPrintDebug === 'verbose');
54
+ const cssMap = new Map();
55
+ const hanzoguiConfig = extractor.getGui();
56
+ const res = await extractor.parse(ast, {
57
+ shouldPrintDebug,
58
+ ...options,
59
+ platform: 'web',
60
+ sourcePath,
61
+ extractStyledDefinitions: true,
62
+ onStyledDefinitionRule(identifier, rules) {
63
+ const css = rules.join('\n');
64
+ if (shouldPrintDebug) {
65
+ console.info(`adding styled() rule: .${identifier} ${css}`);
66
+ }
67
+ cssMap.set(`.${identifier}`, { css, commentTexts: [] });
68
+ },
69
+ getFlattenedNode: ({ tag }) => {
70
+ return tag;
71
+ },
72
+ onExtractTag: ({ parserProps, attrs, node, attemptEval, jsxPath, originalNodeName, filePath, lineNumbers, staticConfig, }) => {
73
+ // bail out of views that don't accept className (falls back to runtime + style={})
74
+ if (staticConfig.acceptsClassName === false) {
75
+ throw new BailOptimizationError();
76
+ }
77
+ // re-worked how we do this
78
+ // merging ternaries on top of base styles is not simple, because we need to ensure the final
79
+ // className has no duplicate style props and selector order is preserved
80
+ // before we tried to be smart and build a big binary expression
81
+ // instead, what we'll do now is pre-calculate the entire className for every possible path
82
+ // for super complex components that means we *will* output a lot of bigger classNames
83
+ // but its so much simpler than trying to implement a multi-stage solver here
84
+ // and in the end its just strings that gzip very well
85
+ // its also much easier to intuit/debug for end users and ourselves
86
+ // example:
87
+ // a ? 'a' : 'b'
88
+ // b ? 'c' : 'd'
89
+ // we want:
90
+ // a && b ? 'a c' : ''
91
+ // !a && b ? 'b c' : ''
92
+ // a && !b ? 'a d' : ''
93
+ // !a && !b ? 'b d' : ''
94
+ // we also simplified the compiler to only handle views that can be fully flattened
95
+ // this means we don't need to account for strange in-between spreads, so we can merge things
96
+ // fairly simply. first, we just merge forward all the non-ternary styles into ternaries.
97
+ // save for the end
98
+ const finalAttrs = [];
99
+ let mergeForwardBaseStyle = null;
100
+ let attrClassName = null;
101
+ let baseFontFamily = '';
102
+ let mediaStylesSeen = 1;
103
+ const comment = util.format('/* %s:%s (%s) */', filePath, lineNumbers, originalNodeName);
104
+ // detect static `group="<name>"` literal — runtime side normally emits the
105
+ // container-name/container-type CSS lazily via getSplitStyles (createComponent
106
+ // path), but extracted elements never go through that code, so we emit the
107
+ // equivalent CSS at compile time and add `t_group_<name>` to the className.
108
+ let staticGroupName = null;
109
+ for (const attr of jsxPath.node.openingElement.attributes) {
110
+ if (!t.isJSXAttribute(attr) || !t.isJSXIdentifier(attr.name))
111
+ continue;
112
+ if (attr.name.name !== 'group')
113
+ continue;
114
+ if (t.isStringLiteral(attr.value)) {
115
+ staticGroupName = attr.value.value;
116
+ }
117
+ else if (t.isJSXExpressionContainer(attr.value) &&
118
+ t.isStringLiteral(attr.value.expression)) {
119
+ staticGroupName = attr.value.expression.value;
120
+ }
121
+ // dynamic group={someProp} falls back to the runtime path.
122
+ break;
123
+ }
124
+ if (staticGroupName) {
125
+ const containerIdentifier = `t_group_${staticGroupName}`;
126
+ const containerType = hanzoguiConfig.settings?.webContainerType ||
127
+ 'inline-size';
128
+ const containerSelector = `.${containerIdentifier}`;
129
+ if (!cssMap.has(containerSelector)) {
130
+ cssMap.set(containerSelector, {
131
+ css: `${containerSelector} { container-name: ${staticGroupName}; container-type: ${containerType}; }`,
132
+ commentTexts: [comment],
133
+ });
134
+ }
135
+ else {
136
+ cssMap.get(containerSelector).commentTexts.push(comment);
137
+ }
138
+ }
139
+ // invariant guard for $group-/$theme- CSS extraction (below): those styles
140
+ // can only be extracted to static @container / theme CSS when a class toggle
141
+ // alone expresses the change. JS animation drivers (reanimated, motion, moti,
142
+ // react-native) interpolate in JS and need the runtime path to read hard
143
+ // values when the element animates — a static class can't drive them. gated
144
+ // on whether THIS element animates rather than on the driver, because motion
145
+ // is isReactNative:false yet still needs JS.
146
+ //
147
+ // in practice createExtractor's deoptProps already de-opts every animated
148
+ // element upstream except CSS-only transitions, which lower to ordinary
149
+ // CSS. it keeps the invariant local and correct regardless of future
150
+ // deoptProps changes — it only ever bails the animated case to runtime,
151
+ // never widens what extracts.
152
+ const hasCSSOnlyAnimationDriver = hanzoguiConfig.animations.outputStyle === 'css' &&
153
+ !hanzoguiConfig.animationDrivers;
154
+ let elementIsAnimated = false;
155
+ for (const attr of jsxPath.node.openingElement.attributes) {
156
+ if (!t.isJSXAttribute(attr) || !t.isJSXIdentifier(attr.name))
157
+ continue;
158
+ const n = attr.name.name;
159
+ if (n === 'transition' && hasCSSOnlyAnimationDriver)
160
+ continue;
161
+ if (n === 'animation' ||
162
+ n === 'transition' ||
163
+ n === 'animateOnly' ||
164
+ n === 'animatePresence' ||
165
+ n === 'animatedBy' ||
166
+ n === 'enterStyle' ||
167
+ n === 'exitStyle') {
168
+ elementIsAnimated = true;
169
+ break;
170
+ }
171
+ }
172
+ function addStyle(style) {
173
+ const identifier = style[StyleObjectIdentifier];
174
+ const rules = style[StyleObjectRules];
175
+ const selector = `.${identifier}`;
176
+ if (cssMap.has(selector)) {
177
+ const val = cssMap.get(selector);
178
+ val.commentTexts.push(comment);
179
+ }
180
+ else if (rules.length) {
181
+ cssMap.set(selector, {
182
+ css: rules.join('\n'),
183
+ commentTexts: [comment],
184
+ });
185
+ }
186
+ return identifier;
187
+ }
188
+ function addStyles(style) {
189
+ const cssStyles = getCSSStylesAtomic(style);
190
+ const classNames = [];
191
+ for (const style of cssStyles) {
192
+ const property = style[0];
193
+ const mediaName = property.slice(1);
194
+ // $group- styles extract through createMediaStyle which emits @container
195
+ // rules keyed on the parent's `t_group_<name>` className.
196
+ if (mediaName.startsWith('group-')) {
197
+ // a class toggle can't drive a JS animation driver's interpolation;
198
+ // keep animated elements on the runtime path (matches pre-extraction
199
+ // behavior for the group case).
200
+ if (elementIsAnimated) {
201
+ throw new BailOptimizationError();
202
+ }
203
+ const mediaStyle = createMediaStyle(style, mediaName, extractor.getGui().media, 'group', false, mediaStylesSeen);
204
+ const identifier = addStyle(mediaStyle);
205
+ classNames.push(identifier);
206
+ continue;
207
+ }
208
+ // Check for theme/platform media queries (e.g., $theme-dark, $platform-web)
209
+ const mediaTypeMatch = mediaName.match(/^(theme|platform)-/);
210
+ if (mediaTypeMatch) {
211
+ const mediaType = mediaTypeMatch[1];
212
+ // $theme- values can change at runtime (theme switch); if this
213
+ // element animates, a JS driver must interpolate the change, so keep
214
+ // it on the runtime path. $platform- is build-time static — never gated.
215
+ if (mediaType === 'theme' && elementIsAnimated) {
216
+ throw new BailOptimizationError();
217
+ }
218
+ // createMediaStyle internally calls getGroupPropParts(`theme-` + key)
219
+ // for theme, so we must pass the short key ("dark", not "theme-dark")
220
+ // to avoid double-prefixing. Platform stays as-is (runtime parity).
221
+ const innerKey = mediaType === 'theme' ? mediaName.slice('theme-'.length) : mediaName;
222
+ const mediaStyle = createMediaStyle(style, innerKey, extractor.getGui().media, mediaType, false, mediaStylesSeen);
223
+ const identifier = addStyle(mediaStyle);
224
+ classNames.push(identifier);
225
+ continue;
226
+ }
227
+ if (mediaName in hanzoguiConfig.media) {
228
+ const mediaStyle = createMediaStyle(style, mediaName, extractor.getGui().media, true, false, mediaStylesSeen);
229
+ const identifier = addStyle(mediaStyle);
230
+ classNames.push(identifier);
231
+ continue;
232
+ }
233
+ const identifier = addStyle(style);
234
+ classNames.push(identifier);
235
+ }
236
+ return classNames;
237
+ }
238
+ const onlyTernaries = attrs.flatMap((attr) => {
239
+ if (attr.type === 'attr') {
240
+ const value = attr.value;
241
+ if (t.isJSXSpreadAttribute(value)) {
242
+ // we only handle flattened stuff now so skip this
243
+ console.error(`Should never happen`);
244
+ return [];
245
+ }
246
+ if (value.name.name === 'className') {
247
+ let inner = value.value;
248
+ if (t.isJSXExpressionContainer(inner)) {
249
+ inner = inner.expression;
250
+ }
251
+ try {
252
+ const evaluatedValue = inner ? attemptEval(inner) : null;
253
+ if (typeof evaluatedValue === 'string') {
254
+ attrClassName = t.stringLiteral(evaluatedValue);
255
+ }
256
+ }
257
+ catch (e) {
258
+ if (inner) {
259
+ attrClassName || (attrClassName = inner);
260
+ }
261
+ }
262
+ return [];
263
+ }
264
+ finalAttrs.push(value);
265
+ return [];
266
+ }
267
+ if (attr.type === 'style') {
268
+ mergeForwardBaseStyle = mergeProps(mergeForwardBaseStyle || {}, attr.value);
269
+ baseFontFamily = getFontFamilyNameFromProps(attr.value) || '';
270
+ return [];
271
+ }
272
+ let ternary = attr.value;
273
+ if (ternary.inlineMediaQuery) {
274
+ const mediaExtraction = extractMediaStyle(parserProps, attr.value, jsxPath, extractor.getGui(), sourcePath || '', mediaStylesSeen++, shouldPrintDebug);
275
+ if (mediaExtraction) {
276
+ if (mediaExtraction.mediaStyles) {
277
+ mergeForwardBaseStyle = mergeProps(mergeForwardBaseStyle || {}, {
278
+ [`$${ternary.inlineMediaQuery}`]: attr.value.consequent,
279
+ });
280
+ }
281
+ if (mediaExtraction.ternaryWithoutMedia) {
282
+ ternary = mediaExtraction.ternaryWithoutMedia;
283
+ }
284
+ else {
285
+ return [];
286
+ }
287
+ }
288
+ }
289
+ let mergedAlternate;
290
+ let mergedConsequent;
291
+ if (ternary.alternate && Object.keys(ternary.alternate).length) {
292
+ mergedAlternate = mergeProps(mergeForwardBaseStyle || {}, ternary.alternate || {});
293
+ forwardFontFamilyName(ternary.alternate, mergedAlternate, baseFontFamily);
294
+ }
295
+ if (ternary.consequent && Object.keys(ternary.consequent).length) {
296
+ mergedConsequent = mergeProps(mergeForwardBaseStyle || {}, ternary.consequent || {});
297
+ forwardFontFamilyName(ternary.consequent, mergedConsequent, baseFontFamily);
298
+ }
299
+ // merge the base style forward into both sides
300
+ return {
301
+ ...ternary,
302
+ alternate: mergedAlternate,
303
+ consequent: mergedConsequent,
304
+ };
305
+ });
306
+ const hasTernaries = Boolean(onlyTernaries.length);
307
+ const baseClassNames = mergeForwardBaseStyle
308
+ ? addStyles(mergeForwardBaseStyle)
309
+ : null;
310
+ let baseClassNameStr = !baseClassNames ? '' : baseClassNames.join(' ');
311
+ if (baseFontFamily) {
312
+ baseClassNameStr = `font_${baseFontFamily}${baseClassNameStr ? ` ${baseClassNameStr}` : ''}`;
313
+ }
314
+ // add t_group_<name> for elements with a static group="<name>" literal so
315
+ // descendants' @container <name> rules can match (runtime path normally
316
+ // appends this class; extracted elements bypass it).
317
+ if (staticGroupName) {
318
+ baseClassNameStr = `t_group_${staticGroupName}${baseClassNameStr ? ` ${baseClassNameStr}` : ''}`;
319
+ }
320
+ // add is_View or is_Text base class matching runtime behavior
321
+ const baseTypeClass = staticConfig.isText ? 'is_Text' : 'is_View';
322
+ baseClassNameStr = `${baseTypeClass}${baseClassNameStr ? ` ${baseClassNameStr}` : ''}`;
323
+ // add component name class (skip 'Text' since is_Text already covers it)
324
+ const componentNameFinal = staticConfig.componentName;
325
+ let base = componentNameFinal && componentNameFinal !== 'Text'
326
+ ? t.stringLiteral(`is_${componentNameFinal}${baseClassNameStr ? ` ${baseClassNameStr}` : ''}`)
327
+ : t.stringLiteral(baseClassNameStr || '');
328
+ attrClassName = attrClassName; // actual typescript bug, flatMap doesn't update from never
329
+ const baseClassNameExpression = (() => {
330
+ if (attrClassName) {
331
+ if (t.isStringLiteral(attrClassName)) {
332
+ return t.stringLiteral(base.value ? `${base.value} ${attrClassName.value}` : attrClassName.value);
333
+ }
334
+ else {
335
+ // space after to ensure its a string and its spaced
336
+ return t.binaryExpression('+', t.binaryExpression('+', attrClassName, spaceString), base);
337
+ }
338
+ }
339
+ return base;
340
+ })();
341
+ const expandedTernaries = [];
342
+ if (onlyTernaries.length) {
343
+ // normalize tests to reduce duplicates
344
+ const normalizedTernaries = normalizeTernaries(onlyTernaries);
345
+ for (const ternary of normalizedTernaries) {
346
+ if (!expandedTernaries.length) {
347
+ expandTernary(ternary);
348
+ continue;
349
+ }
350
+ // snapshot current array before iterating - expandTernary mutates expandedTernaries
351
+ const prevTernaries = [...expandedTernaries];
352
+ for (const prev of prevTernaries) {
353
+ expandTernary(ternary, prev);
354
+ }
355
+ }
356
+ }
357
+ function expandTernary(ternary, prev) {
358
+ // need to diverge into two (or four if alternate)
359
+ if (ternary.consequent && Object.keys(ternary.consequent).length) {
360
+ const fontFamily = getFontFamilyNameFromProps(ternary.consequent);
361
+ expandedTernaries.push({
362
+ fontFamily,
363
+ // prevTest && test: merge consequent
364
+ test: prev
365
+ ? t.logicalExpression('&&', prev.test, ternary.test)
366
+ : ternary.test,
367
+ consequent: prev
368
+ ? mergeProps(prev.consequent, ternary.consequent)
369
+ : ternary.consequent,
370
+ remove,
371
+ alternate: null,
372
+ });
373
+ if (prev) {
374
+ expandedTernaries.push({
375
+ fontFamily,
376
+ // !prevTest && test: just consequent
377
+ test: t.logicalExpression('&&', t.unaryExpression('!', prev.test), ternary.test),
378
+ consequent: ternary.consequent,
379
+ alternate: null,
380
+ remove,
381
+ });
382
+ }
383
+ }
384
+ if (ternary.alternate && Object.keys(ternary.alternate).length) {
385
+ const fontFamily = getFontFamilyNameFromProps(ternary.alternate);
386
+ const negated = t.unaryExpression('!', ternary.test);
387
+ expandedTernaries.push({
388
+ fontFamily,
389
+ // prevTest && !test: merge alternate
390
+ test: prev ? t.logicalExpression('&&', prev.test, negated) : negated,
391
+ consequent: prev
392
+ ? mergeProps(prev.alternate, ternary.alternate)
393
+ : ternary.alternate,
394
+ remove,
395
+ alternate: null,
396
+ });
397
+ if (prev) {
398
+ expandedTernaries.push({
399
+ fontFamily,
400
+ test: t.logicalExpression('&&', t.unaryExpression('!', prev.test), ternary.test),
401
+ consequent: ternary.alternate,
402
+ remove,
403
+ alternate: null,
404
+ });
405
+ }
406
+ }
407
+ }
408
+ let ternaryClassNameExpr = null;
409
+ // next: create all CSS, build className strings and hoist, and create final node with props
410
+ if (hasTernaries) {
411
+ for (const ternary of expandedTernaries) {
412
+ if (!ternary.consequent)
413
+ continue;
414
+ const classNames = addStyles(ternary.consequent);
415
+ if (ternary.fontFamily) {
416
+ classNames.unshift(`font_${ternary.fontFamily}`);
417
+ }
418
+ const baseString = t.isStringLiteral(baseClassNameExpression)
419
+ ? baseClassNameExpression.value
420
+ : '';
421
+ const fullClassNameWithDups = (baseString ? `${baseString} ` : '') + classNames.join(' ');
422
+ // we concat here as the base could be conditionally overriden by our classNames
423
+ const fullClassName = concatClassName(fullClassNameWithDups);
424
+ const classNameLiteral = t.stringLiteral(fullClassName);
425
+ if (!ternaryClassNameExpr) {
426
+ ternaryClassNameExpr = t.conditionalExpression(ternary.test, classNameLiteral, baseClassNameExpression);
427
+ }
428
+ else {
429
+ ternaryClassNameExpr = t.conditionalExpression(ternary.test, classNameLiteral, ternaryClassNameExpr);
430
+ }
431
+ }
432
+ }
433
+ let finalExpression = ternaryClassNameExpr || baseClassNameExpression || null;
434
+ if (shouldPrintDebug) {
435
+ console.info('attrs', JSON.stringify(attrs, null, 2));
436
+ console.info('expandedTernaries', JSON.stringify(expandedTernaries, null, 2));
437
+ console.info('finalExpression', JSON.stringify(finalExpression, null, 2));
438
+ console.info({ hasTernaries, baseClassNameExpression });
439
+ }
440
+ if (finalExpression) {
441
+ // hoist to global variables
442
+ finalExpression = hoistClassNames(jsxPath, finalExpression);
443
+ // console.log('finalExpression', finalExpression)
444
+ const classNameProp = t.jsxAttribute(t.jsxIdentifier('className'), t.jsxExpressionContainer(finalExpression));
445
+ finalAttrs.unshift(classNameProp);
446
+ }
447
+ node.attributes = finalAttrs;
448
+ },
449
+ });
450
+ if (!res || (!res.modified && !res.optimized && !res.flattened && !res.styled)) {
451
+ if (shouldPrintDebug) {
452
+ console.info('no res or none modified', res);
453
+ }
454
+ return null;
455
+ }
456
+ const styles = Array.from(cssMap.values())
457
+ .map((x) => x.css)
458
+ .join('\n')
459
+ .trim();
460
+ // @ts-ignore
461
+ const result = generate(ast, {
462
+ concise: false,
463
+ filename: sourcePath,
464
+ // this makes the debug output terrible, and i think sourcemap works already
465
+ retainLines: false,
466
+ sourceFileName: sourcePath,
467
+ sourceMaps: true,
468
+ }, source);
469
+ if (shouldPrintDebug) {
470
+ console.info('\n -------- output code ------- \n\n', result.code
471
+ .split('\n')
472
+ .filter((x) => !x.startsWith('//'))
473
+ .join('\n'));
474
+ console.info('\n -------- output style -------- \n\n', styles);
475
+ }
476
+ printLog(res);
477
+ return {
478
+ ast,
479
+ styles,
480
+ js: result.code,
481
+ map: result.map,
482
+ stats: {
483
+ styled: res.styled,
484
+ flattened: res.flattened,
485
+ optimized: res.optimized,
486
+ found: res.found,
487
+ },
488
+ };
489
+ }
490
+ function hoistClassNames(path, expr) {
491
+ if (t.isStringLiteral(expr)) {
492
+ return hoistClassName(path, expr.value);
493
+ }
494
+ if (t.isLogicalExpression(expr)) {
495
+ const left = t.isStringLiteral(expr.left)
496
+ ? hoistClassName(path, expr.left.value)
497
+ : expr.left;
498
+ const right = t.isStringLiteral(expr.right)
499
+ ? hoistClassName(path, expr.right.value)
500
+ : hoistClassNames(path, expr.right);
501
+ return t.logicalExpression(expr.operator, left, right);
502
+ }
503
+ if (t.isConditionalExpression(expr)) {
504
+ const cons = t.isStringLiteral(expr.consequent)
505
+ ? hoistClassName(path, expr.consequent.value)
506
+ : hoistClassNames(path, expr.consequent);
507
+ const alt = t.isStringLiteral(expr.alternate)
508
+ ? hoistClassName(path, expr.alternate.value)
509
+ : hoistClassNames(path, expr.alternate);
510
+ return t.conditionalExpression(expr.test, cons, alt);
511
+ }
512
+ return expr;
513
+ }
514
+ function hoistClassName(path, str) {
515
+ const uid = path.scope.generateUidIdentifier('cn');
516
+ const parent = path.findParent((path) => path.isProgram());
517
+ if (!parent)
518
+ throw new Error(`no program?`);
519
+ const variable = t.variableDeclaration('const', [
520
+ t.variableDeclarator(uid, t.stringLiteral(cleanupClassName(str))),
521
+ ]);
522
+ // @ts-ignore
523
+ parent.unshiftContainer('body', variable);
524
+ return uid;
525
+ }
526
+ function cleanupClassName(inStr) {
527
+ const out = new Set();
528
+ for (const part of inStr.split(' ')) {
529
+ if (!part || part === ' ')
530
+ continue;
531
+ if (part === 'font_')
532
+ continue;
533
+ out.add(part);
534
+ }
535
+ return [...out].join(' ');
536
+ }
537
+ //# sourceMappingURL=extractToClassNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractToClassNames.js","sourceRoot":"","sources":["../../../src/extractor/extractToClassNames.ts"],"names":[],"mappings":"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"}