@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,398 @@
1
+ import { transformSync } from '@babel/core';
2
+ import generator from '@babel/generator';
3
+ import { declare } from '@babel/helper-plugin-utils';
4
+ import template from '@babel/template';
5
+ import * as t from '@babel/types';
6
+ import { basename } from 'node:path';
7
+ import { getPragmaOptions } from '../getPragmaOptions.js';
8
+ import { createExtractor } from './createExtractor.js';
9
+ import { createLogger } from './createLogger.js';
10
+ import { isSimpleSpread } from './extractHelpers.js';
11
+ import { literalToAst } from './literalToAst.js';
12
+ import { loadGuiBuildConfigSync } from './loadGui.js';
13
+ import { createRequire } from 'node:module';
14
+ import { url } from '../here.js';
15
+ const need = createRequire(url);
16
+ const importNativeView = template(`
17
+ const __ReactNativeView = need('react-native').View;
18
+ const __ReactNativeText = need('react-native').Text;
19
+ `);
20
+ const importStyleSheet = template(`
21
+ const __ReactNativeStyleSheet = need('react-native').StyleSheet;
22
+ `);
23
+ const importWithStyle = template.ast(`import { _withStableStyle } from '@hanzogui/core';`);
24
+ const extractor = createExtractor({ platform: 'native' });
25
+ let hanzoguiBuildOptionsLoaded;
26
+ export function extractToNative(sourceFileName, sourceCode, options) {
27
+ const out = transformSync(sourceCode, {
28
+ plugins: [[getBabelPlugin(), options]],
29
+ sourceType: 'module',
30
+ parserOpts: { plugins: ['jsx', 'typescript'] },
31
+ configFile: false,
32
+ sourceFileName,
33
+ filename: sourceFileName,
34
+ });
35
+ if (!out) {
36
+ throw new Error(`No output returned`);
37
+ }
38
+ return out;
39
+ }
40
+ export function getBabelPlugin() {
41
+ return declare((api, options) => {
42
+ api.assertVersion('^7.0.0 || ^8.0.0-0');
43
+ return getBabelParseDefinition(options);
44
+ });
45
+ }
46
+ export function getBabelParseDefinition(options) {
47
+ return {
48
+ name: 'hanzogui',
49
+ visitor: {
50
+ Program: {
51
+ enter(root) {
52
+ let sourcePath = this.file.opts.filename;
53
+ if (sourcePath?.includes('node_modules')) {
54
+ return;
55
+ }
56
+ // by default only pick up .jsx / .tsx
57
+ if (!sourcePath?.endsWith('.jsx') && !sourcePath?.endsWith('.tsx')) {
58
+ return;
59
+ }
60
+ // this filename comes back incorrect in react-native, it adds /ios/ for some reason
61
+ // adding a fix here, but it's a bit tentative...
62
+ if (process.env.SOURCE_ROOT?.endsWith('ios')) {
63
+ sourcePath = sourcePath.replace('/ios', '');
64
+ }
65
+ let hasImportedView = false;
66
+ let hasImportedViewWrapper = false;
67
+ let wrapperCount = 0;
68
+ const sheetStyles = {};
69
+ const sheetIdentifier = root.scope.generateUidIdentifier('sheet');
70
+ // babel doesnt append the `//` so we need to
71
+ const firstCommentContents = // join because you can join together multiple pragmas
72
+ root.node.body[0]?.leadingComments
73
+ ?.map((comment) => comment?.value || ' ')
74
+ .join(' ') ?? '';
75
+ const firstComment = firstCommentContents ? `//${firstCommentContents}` : '';
76
+ const { shouldPrintDebug, shouldDisable } = getPragmaOptions({
77
+ source: firstComment,
78
+ path: sourcePath,
79
+ });
80
+ if (shouldDisable) {
81
+ return;
82
+ }
83
+ if (!options.config && !options.components) {
84
+ // if no config/components given try and load from the hanzogui.build.ts file
85
+ hanzoguiBuildOptionsLoaded || (hanzoguiBuildOptionsLoaded = loadGuiBuildConfigSync({}));
86
+ }
87
+ const finalOptions = {
88
+ // @ts-ignore just in case they leave it out
89
+ platform: 'native',
90
+ ...hanzoguiBuildOptionsLoaded,
91
+ ...options,
92
+ };
93
+ const printLog = createLogger(sourcePath, finalOptions);
94
+ function addSheetStyle(style, node) {
95
+ const styleIndex = `${Object.keys(sheetStyles).length}`;
96
+ let key = `${styleIndex}`;
97
+ if (process.env.NODE_ENV === 'development') {
98
+ const lineNumbers = node.loc
99
+ ? node.loc.start.line +
100
+ (node.loc.start.line !== node.loc.end.line
101
+ ? `-${node.loc.end.line}`
102
+ : '')
103
+ : '';
104
+ key += `:${basename(sourcePath)}:${lineNumbers}`;
105
+ }
106
+ sheetStyles[key] = style;
107
+ return readStyleExpr(key);
108
+ }
109
+ function readStyleExpr(key) {
110
+ return template(`SHEET['KEY']`)({
111
+ SHEET: sheetIdentifier.name,
112
+ KEY: key,
113
+ })['expression'];
114
+ }
115
+ let res;
116
+ try {
117
+ res = extractor.parseSync(root, {
118
+ importsWhitelist: ['constants.js', 'colors.js'],
119
+ excludeProps: new Set([
120
+ 'className',
121
+ 'userSelect',
122
+ 'whiteSpace',
123
+ 'textOverflow',
124
+ 'cursor',
125
+ 'contain',
126
+ ]),
127
+ // native props that should pass through without preventing extraction
128
+ inlineProps: new Set([
129
+ 'testID',
130
+ 'nativeID',
131
+ 'accessibilityLabel',
132
+ 'accessibilityHint',
133
+ 'accessibilityRole',
134
+ 'accessibilityState',
135
+ 'accessibilityValue',
136
+ 'accessibilityActions',
137
+ 'accessibilityLabelledBy',
138
+ 'accessibilityLiveRegion',
139
+ 'accessibilityElementsHidden',
140
+ 'accessibilityViewIsModal',
141
+ 'importantForAccessibility',
142
+ 'onAccessibilityAction',
143
+ 'onAccessibilityEscape',
144
+ 'onAccessibilityTap',
145
+ 'onMagicTap',
146
+ 'collapsable',
147
+ 'needsOffscreenAlphaCompositing',
148
+ 'removeClippedSubviews',
149
+ 'renderToHardwareTextureAndroid',
150
+ 'shouldRasterizeIOS',
151
+ 'hitSlop',
152
+ 'pointerEvents',
153
+ ]),
154
+ shouldPrintDebug,
155
+ ...finalOptions,
156
+ // disable extracting variables as no native concept of them (only theme values)
157
+ disableExtractVariables: false,
158
+ sourcePath,
159
+ // disabling flattening for now
160
+ // it's flattening a plain <Paragraph>hello</Paragraph> which breaks things because themes
161
+ // thinking it's not really worth the effort to do much compilation on native
162
+ // for now just disable flatten as it can only run in narrow places on native
163
+ // disableFlattening: 'styled',
164
+ getFlattenedNode({ isTextView }) {
165
+ if (!hasImportedView) {
166
+ hasImportedView = true;
167
+ root.unshiftContainer('body', importNativeView());
168
+ }
169
+ return isTextView ? '__ReactNativeText' : '__ReactNativeView';
170
+ },
171
+ onExtractTag(props) {
172
+ assertValidTag(props.node);
173
+ const stylesExpr = t.arrayExpression([]);
174
+ const hocStylesExpr = t.arrayExpression([]);
175
+ const expressions = [];
176
+ const mediaExpressionIndexes = new Set();
177
+ const finalAttrs = [];
178
+ const themeKeysUsed = new Set();
179
+ function getStyleExpression(style, forTernary = false) {
180
+ if (!style)
181
+ return;
182
+ // split theme properties and leave them as props since RN has no concept of theme
183
+ const { plain, themed } = splitThemeStyles(style);
184
+ // TODO: themed is not a good name, because it's not just theme it also includes tokens
185
+ let themeExpr = null;
186
+ if (themed) {
187
+ for (const key in themed) {
188
+ themeKeysUsed.add(themed[key].split('$')[1]);
189
+ }
190
+ // make a sub-array
191
+ themeExpr = getThemedStyleExpression(themed);
192
+ }
193
+ const hasPlainKeys = Object.keys(plain).length > 0;
194
+ const ident = hasPlainKeys ? addSheetStyle(plain, props.node) : null;
195
+ if (themeExpr) {
196
+ if (forTernary) {
197
+ // for ternary branches, return combined expression
198
+ // without adding plain styles unconditionally
199
+ if (ident) {
200
+ return t.arrayExpression([ident, themeExpr]);
201
+ }
202
+ return themeExpr;
203
+ }
204
+ // for base styles, add unconditionally
205
+ if (ident) {
206
+ addStyleExpression(ident);
207
+ addStyleExpression(ident, true);
208
+ }
209
+ return themeExpr;
210
+ }
211
+ return ident;
212
+ }
213
+ function addStyleExpression(expr, HOC = false) {
214
+ if (Array.isArray(expr)) {
215
+ ;
216
+ (HOC ? hocStylesExpr : stylesExpr).elements.push(...expr);
217
+ }
218
+ else {
219
+ ;
220
+ (HOC ? hocStylesExpr : stylesExpr).elements.push(expr);
221
+ }
222
+ }
223
+ function getThemedStyleExpression(styles) {
224
+ const themedStylesAst = literalToAst(styles);
225
+ themedStylesAst.properties.forEach((_) => {
226
+ const prop = _;
227
+ if (prop.value.type === 'StringLiteral') {
228
+ const propVal = prop.value.value.slice(1);
229
+ const isComputed = !t.isValidIdentifier(propVal);
230
+ prop.value = t.callExpression(t.memberExpression(t.memberExpression(t.identifier('theme'), isComputed ? t.stringLiteral(propVal) : t.identifier(propVal), isComputed), t.identifier('get')), []);
231
+ }
232
+ });
233
+ return themedStylesAst;
234
+ }
235
+ let hasDynamicStyle = false;
236
+ let hasMediaKeys = false;
237
+ for (const attr of props.attrs) {
238
+ switch (attr.type) {
239
+ case 'style': {
240
+ let styleExpr = getStyleExpression(attr.value);
241
+ addStyleExpression(styleExpr);
242
+ addStyleExpression(styleExpr, true);
243
+ break;
244
+ }
245
+ case 'ternary': {
246
+ const { consequent, alternate } = attr.value;
247
+ const consExpr = getStyleExpression(consequent, true);
248
+ const altExpr = getStyleExpression(alternate, true);
249
+ if (attr.value.inlineMediaQuery) {
250
+ hasMediaKeys = true;
251
+ }
252
+ let expression = attr.value.test;
253
+ if (attr.value.inlineMediaQuery &&
254
+ t.isLogicalExpression(attr.value.test, { operator: '&&' }) &&
255
+ t.isStringLiteral(attr.value.test.left)) {
256
+ expression = t.arrayExpression([
257
+ t.stringLiteral(attr.value.inlineMediaQuery),
258
+ t.unaryExpression('!', t.unaryExpression('!', attr.value.test.right)),
259
+ ]);
260
+ mediaExpressionIndexes.add(expressions.length);
261
+ }
262
+ expressions.push(expression);
263
+ addStyleExpression(t.conditionalExpression(t.identifier(`_expressions[${expressions.length - 1}]`), consExpr || t.nullLiteral(), altExpr || t.nullLiteral()), true);
264
+ const styleExpr = t.conditionalExpression(attr.value.test, consExpr || t.nullLiteral(), altExpr || t.nullLiteral());
265
+ addStyleExpression(styleExpr);
266
+ break;
267
+ }
268
+ case 'attr': {
269
+ if (t.isJSXSpreadAttribute(attr.value)) {
270
+ if (isSimpleSpread(attr.value)) {
271
+ stylesExpr.elements.push(t.memberExpression(attr.value.argument, t.identifier('style')));
272
+ hocStylesExpr.elements.push(t.memberExpression(attr.value.argument, t.identifier('style')));
273
+ }
274
+ }
275
+ finalAttrs.push(attr.value);
276
+ break;
277
+ }
278
+ }
279
+ }
280
+ props.node.attributes = finalAttrs;
281
+ if (themeKeysUsed.size ||
282
+ hocStylesExpr.elements.length > 1 ||
283
+ hasDynamicStyle ||
284
+ hasMediaKeys) {
285
+ if (!hasImportedViewWrapper) {
286
+ root.unshiftContainer('body', importWithStyle);
287
+ hasImportedViewWrapper = true;
288
+ }
289
+ const name = props.flatNodeName || props.node.name['name'];
290
+ // Use a unique name that won't conflict with the base component
291
+ const wrapperName = `_${name.replace(/^_+/, '')}Styled${wrapperCount++}`;
292
+ // Use regular identifier for variable declarations, JSX identifier for JSX elements
293
+ const WrapperIdentifier = t.identifier(wrapperName);
294
+ const WrapperJSXIdentifier = t.jsxIdentifier(wrapperName);
295
+ const hasThemeKeysFlag = themeKeysUsed.size > 0;
296
+ root.pushContainer('body', t.variableDeclaration('const', [
297
+ t.variableDeclarator(WrapperIdentifier, t.callExpression(t.identifier('_withStableStyle'), [
298
+ t.identifier(name),
299
+ t.arrowFunctionExpression([t.identifier('theme'), t.identifier('_expressions')],
300
+ // return styles directly - no useMemo, theme changes must trigger style recalc
301
+ t.arrayExpression([...hocStylesExpr.elements])),
302
+ t.booleanLiteral(hasThemeKeysFlag),
303
+ t.booleanLiteral(hasMediaKeys),
304
+ ])),
305
+ ]));
306
+ // @ts-ignore - use JSX identifier for JSX elements
307
+ props.node.name = WrapperJSXIdentifier;
308
+ // Also set the opening element directly via the path
309
+ props.jsxPath.node.openingElement.name = WrapperJSXIdentifier;
310
+ if (props.jsxPath.node.closingElement) {
311
+ // @ts-ignore
312
+ props.jsxPath.node.closingElement.name = t.jsxIdentifier(wrapperName);
313
+ }
314
+ if (expressions.length) {
315
+ // coerce runtime expressions to boolean so they can't be
316
+ // confused with string media keys at runtime
317
+ const safeExpressions = expressions.map((expr, index) => t.isStringLiteral(expr) || mediaExpressionIndexes.has(index)
318
+ ? expr
319
+ : t.unaryExpression('!', t.unaryExpression('!', expr)));
320
+ props.node.attributes.push(t.jsxAttribute(t.jsxIdentifier('_expressions'), t.jsxExpressionContainer(t.arrayExpression(safeExpressions))));
321
+ }
322
+ }
323
+ else {
324
+ props.node.attributes.push(t.jsxAttribute(t.jsxIdentifier('style'), t.jsxExpressionContainer(stylesExpr.elements.length === 1
325
+ ? stylesExpr.elements[0]
326
+ : stylesExpr)));
327
+ }
328
+ },
329
+ });
330
+ }
331
+ catch (err) {
332
+ if (err instanceof Error) {
333
+ // metro doesn't show stack so we can
334
+ let message = `${shouldPrintDebug === 'verbose' ? err : err.message}`;
335
+ if (message.includes('Unexpected return value from visitor method')) {
336
+ message = 'Unexpected return value from visitor method';
337
+ }
338
+ console.warn('Error in Gui parse, skipping', message, err.stack);
339
+ return;
340
+ }
341
+ }
342
+ if (!Object.keys(sheetStyles).length) {
343
+ if (shouldPrintDebug) {
344
+ console.info('END no styles');
345
+ }
346
+ if (res)
347
+ printLog(res);
348
+ return;
349
+ }
350
+ const sheetObject = literalToAst(sheetStyles);
351
+ const sheetOuter = template('const SHEET = __ReactNativeStyleSheet.create(null)')({
352
+ SHEET: sheetIdentifier.name,
353
+ });
354
+ // replace the null with our object
355
+ sheetOuter.declarations[0].init.arguments[0] = sheetObject;
356
+ root.unshiftContainer('body', sheetOuter);
357
+ // add import
358
+ root.unshiftContainer('body', importStyleSheet());
359
+ if (shouldPrintDebug) {
360
+ console.info('\n -------- output code ------- \n');
361
+ console.info(generator(root.parent)
362
+ .code.split('\n')
363
+ .filter((x) => !x.startsWith('//'))
364
+ .join('\n'));
365
+ }
366
+ if (res)
367
+ printLog(res);
368
+ },
369
+ },
370
+ },
371
+ };
372
+ }
373
+ function assertValidTag(node) {
374
+ if (node.attributes.find((x) => x.type === 'JSXAttribute' && x.name.name === 'style')) {
375
+ // we can just deopt here instead and log warning
376
+ // need to make onExtractTag have a special catch error or similar
377
+ if (process.env.DEBUG?.startsWith('hanzogui')) {
378
+ console.warn('⚠️ Cannot pass style attribute to extracted style');
379
+ }
380
+ }
381
+ }
382
+ function splitThemeStyles(style) {
383
+ const themed = {};
384
+ const plain = {};
385
+ let noTheme = true;
386
+ for (const key in style) {
387
+ const val = style[key];
388
+ if (val && val[0] === '$') {
389
+ themed[key] = val;
390
+ noTheme = false;
391
+ }
392
+ else {
393
+ plain[key] = val;
394
+ }
395
+ }
396
+ return { themed: noTheme ? null : themed, plain };
397
+ }
398
+ //# sourceMappingURL=extractToNative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractToNative.js","sourceRoot":"","sources":["../../../src/extractor/extractToNative.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * One place decides which files the compiler may read styles out of.
3
+ *
4
+ * The compiler used to answer this with `sourcePath.includes('node_modules')`,
5
+ * in two places that had to agree by hand — the webpack loader and
6
+ * extractToClassNames. That answer was right about the cost and wrong about
7
+ * the design system: for a *consumer*, `@hanzo/ui` and every `@hanzogui/*`
8
+ * package IS node_modules, so no app could ask the compiler to look at them
9
+ * even if it wanted to.
10
+ *
11
+ * So this is a policy with a knob, not a hardcoded skip. The knob is
12
+ * `extractPackages`, and it is EMPTY by default, which is exactly the old
13
+ * behavior. What turning it on buys, measured on hanzo.one (Vite 5, @hanzo/ui
14
+ * 8.0.63 on @hanzo/gui 8.1, 5026 modules):
15
+ *
16
+ * extracted files 4 -> 54
17
+ * cached sheet 150,172 -> 151,151 B (+979)
18
+ * CSS injected at runtime 27,376 -> 27,376 B (unchanged, 356 rules both)
19
+ *
20
+ * Every one of those 979 bytes is a `styled()` DEFINITION rule, and the
21
+ * compiler deliberately leaves the definition in place ("the runtime needs
22
+ * real values for animations, context, and group styles"), so the runtime
23
+ * mints the same class again. 10 of the 20 new rules are delivered twice on
24
+ * the home route; the rest are for components that route never renders. The
25
+ * saving that would justify the cost — flattening a `<YStack p={10}>` usage
26
+ * site down to a className — cannot happen inside an installed package at all,
27
+ * because `module:jsx` currently emits the same JSX-lowered output as the ESM
28
+ * build (byte-identical, hardlinked), so there is no JSX left to flatten.
29
+ *
30
+ * Fix that, and turning this on becomes a real win. Until then, an app can opt
31
+ * in with `extractPackages: DEFAULT_EXTRACT_PACKAGES` and get a slightly
32
+ * bigger sheet for its trouble.
33
+ */
34
+ /** The design-system allowlist an app can opt into. Not the default. */
35
+ export const DEFAULT_EXTRACT_PACKAGES = ['@hanzo/ui', '@hanzo/gui', '@hanzogui/*'];
36
+ /**
37
+ * Generated icon sets: 1760 modules of react-native-svg elements wrapped in
38
+ * `themed()`, holding no `styled()` between them. Parsing them costs a full
39
+ * babel pass each and yields no CSS, installed or in a workspace — which is
40
+ * why the path is skipped rather than the package name. Measured on the same
41
+ * build: 1761 files that the allowlist would otherwise have to reject one at
42
+ * a time.
43
+ */
44
+ const NEVER_EXTRACT = ['lucide-icons'];
45
+ const NODE_MODULES = 'node_modules/';
46
+ /**
47
+ * The installed package a file belongs to, or '' when the file is app or
48
+ * workspace source. Reads the LAST `node_modules/` segment, so a nested
49
+ * install and pnpm's `.pnpm/<pkg>@<ver>/node_modules/<pkg>` both name the
50
+ * package that actually owns the file.
51
+ */
52
+ export function installedPackageOf(sourcePath) {
53
+ const normalized = sourcePath.replace(/\\/g, '/');
54
+ const at = normalized.lastIndexOf(NODE_MODULES);
55
+ if (at === -1)
56
+ return '';
57
+ const rest = normalized.slice(at + NODE_MODULES.length);
58
+ const parts = rest.split('/');
59
+ if (!parts[0])
60
+ return '';
61
+ return parts[0].startsWith('@') ? parts.slice(0, 2).join('/') : parts[0];
62
+ }
63
+ /**
64
+ * An entry names one package (`@hanzo/ui`) or a whole scope (`@hanzogui/*`,
65
+ * or the equivalent `@hanzogui/`).
66
+ */
67
+ function matches(entry, pkg) {
68
+ const prefix = entry.endsWith('/*')
69
+ ? entry.slice(0, -1)
70
+ : entry.endsWith('/')
71
+ ? entry
72
+ : '';
73
+ return prefix ? pkg.startsWith(prefix) : pkg === entry;
74
+ }
75
+ /** May the compiler read styles out of this file? */
76
+ export function isExtractable(sourcePath, extractPackages = []) {
77
+ if (NEVER_EXTRACT.some((name) => sourcePath.includes(name)))
78
+ return false;
79
+ const pkg = installedPackageOf(sourcePath);
80
+ if (!pkg)
81
+ return true;
82
+ return extractPackages.some((entry) => matches(entry, pkg));
83
+ }
84
+ //# sourceMappingURL=extractablePath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractablePath.js","sourceRoot":"","sources":["../../../src/extractor/extractablePath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAA;AAElF;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,CAAC,cAAc,CAAC,CAAA;AAEtC,MAAM,YAAY,GAAG,eAAe,CAAA;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IAC/C,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IACxB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,KAAa,EAAE,GAAW;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACnB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,EAAE,CAAA;IACR,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAA;AACxD,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,eAAe,GAAa,EAAE;IAE9B,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACzE,MAAM,GAAG,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;AAC7D,CAAC"}
@@ -0,0 +1,14 @@
1
+ export function findTopmostFunction(jsxPath) {
2
+ const isFunction = (path) => path.isArrowFunctionExpression() ||
3
+ path.isFunctionDeclaration() ||
4
+ path.isFunctionExpression();
5
+ let compFn = jsxPath.findParent(isFunction);
6
+ while (compFn) {
7
+ const parent = compFn.findParent(isFunction);
8
+ if (!parent)
9
+ break;
10
+ compFn = parent;
11
+ }
12
+ return compFn;
13
+ }
14
+ //# sourceMappingURL=findTopmostFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findTopmostFunction.js","sourceRoot":"","sources":["../../../src/extractor/findTopmostFunction.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,mBAAmB,CAAC,OAA+B;IACjE,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE,CACpC,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC7B,IAAI,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAC3C,OAAO,MAAM,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC5C,IAAI,CAAC,MAAM;YAAE,MAAK;QAClB,MAAM,GAAG,MAAM,CAAA;IACjB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,31 @@
1
+ import * as t from '@babel/types';
2
+ // A clone of path.scope.generateUid that doesn't prepend underscores
3
+ export function generateUid(scope, name) {
4
+ if (!(typeof scope === 'object'))
5
+ throw 'generateUid expects a scope object as its first parameter';
6
+ if (!(typeof name === 'string' && name !== ''))
7
+ throw 'generateUid expects a valid name as its second parameter';
8
+ name = t
9
+ .toIdentifier(name)
10
+ .replace(/^_+/, '')
11
+ .replace(/[0-9]+$/g, '');
12
+ let uid;
13
+ let i = 0;
14
+ do {
15
+ if (i > 1) {
16
+ uid = name + i;
17
+ }
18
+ else {
19
+ uid = name;
20
+ }
21
+ i++;
22
+ } while (scope.hasLabel(uid) ||
23
+ scope.hasBinding(uid) ||
24
+ scope.hasGlobal(uid) ||
25
+ scope.hasReference(uid));
26
+ const program = scope.getProgramParent();
27
+ program.references[uid] = true;
28
+ program.uids[uid] = true;
29
+ return uid;
30
+ }
31
+ //# sourceMappingURL=generatedUid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedUid.js","sourceRoot":"","sources":["../../../src/extractor/generatedUid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAOjC,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAC,KAAU,EAAE,IAAY;IAClD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QAC9B,MAAM,2DAA2D,CAAA;IACnE,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,CAAC;QAC5C,MAAM,0DAA0D,CAAA;IAElE,IAAI,GAAG,CAAC;SACL,YAAY,CAAC,IAAI,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAE1B,IAAI,GAAG,CAAA;IACP,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,GAAG,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,IAAI,CAAA;QACZ,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC,QACC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACnB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QACrB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;QACpB,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EACxB;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAA;IACxC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAExB,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { isAbsolute, join } from 'node:path';
2
+ import { statSync } from 'node:fs';
3
+ export function getGuiConfigPathFromOptionsConfig(config) {
4
+ if (isAbsolute(config)) {
5
+ return config;
6
+ }
7
+ const fullPath = join(process.cwd(), config);
8
+ try {
9
+ if (statSync(fullPath).isFile()) {
10
+ return fullPath;
11
+ }
12
+ }
13
+ catch {
14
+ //
15
+ }
16
+ return config;
17
+ }
18
+ //# sourceMappingURL=getGuiConfigPathFromOptionsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGuiConfigPathFromOptionsConfig.js","sourceRoot":"","sources":["../../../src/extractor/getGuiConfigPathFromOptionsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGlC,MAAM,UAAU,iCAAiC,CAC/C,MAAyC;IAEzC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;IAE5C,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAA;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,EAAE;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Color, colorString } from '@hanzogui/cli-color';
2
+ export function getPrefixLogs(options) {
3
+ return (options?.prefixLogs ??
4
+ ` 🐥 [hanzogui] ${colorString(Color.FgYellow, options?.platform || 'web')}`);
5
+ }
6
+ //# sourceMappingURL=getPrefixLogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPrefixLogs.js","sourceRoot":"","sources":["../../../src/extractor/getPrefixLogs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGxD,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,OAAO,CACL,OAAO,EAAE,UAAU;QACnB,mBAAmB,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC,EAAE,CAC7E,CAAA;AACH,CAAC"}