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