@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,794 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLoadedConfig = exports.esbuildOptionsWithPlugins = exports.esbuildOptions = void 0;
4
+ exports.hasBundledConfigChanged = hasBundledConfigChanged;
5
+ exports.getBundledConfig = getBundledConfig;
6
+ exports.bundleConfig = bundleConfig;
7
+ exports.writeGuiCSS = writeGuiCSS;
8
+ exports.loadComponents = loadComponents;
9
+ exports.loadComponentsSync = loadComponentsSync;
10
+ exports.loadComponentsInner = loadComponentsInner;
11
+ exports.loadComponentsInnerSync = loadComponentsInnerSync;
12
+ const tslib_1 = require("tslib");
13
+ const generator_1 = tslib_1.__importDefault(require("@babel/generator"));
14
+ const traverse_1 = tslib_1.__importDefault(require("@babel/traverse"));
15
+ const t = tslib_1.__importStar(require("@babel/types"));
16
+ const node_crypto_1 = require("node:crypto");
17
+ const node_fs_1 = require("node:fs");
18
+ const node_path_1 = require("node:path");
19
+ const node_module_1 = require("node:module");
20
+ const here_ts_1 = require("../here.js");
21
+ const need = (0, node_module_1.createRequire)(here_ts_1.url);
22
+ // @ts-ignore why
23
+ const cli_color_1 = require("@hanzogui/cli-color");
24
+ const esbuild_1 = tslib_1.__importDefault(require("esbuild"));
25
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
26
+ const promises_1 = require("node:fs/promises");
27
+ const registerRequire_ts_1 = require("../registerRequire.js");
28
+ const babelParse_ts_1 = require("./babelParse.js");
29
+ const bundle_ts_1 = require("./bundle.js");
30
+ const getGuiConfigPathFromOptionsConfig_ts_1 = require("./getGuiConfigPathFromOptionsConfig.js");
31
+ const hasTopLevelAwait_ts_1 = require("./hasTopLevelAwait.js");
32
+ const requireGuiCore_ts_1 = require("../helpers/requireGuiCore.js");
33
+ const detectModuleFormat_ts_1 = require("./detectModuleFormat.js");
34
+ // track temp files for cleanup on exit
35
+ const activeTempFiles = new Set();
36
+ function getDynamicEvalOutfile(name, format, contents) {
37
+ const ext = format === 'esm' ? 'mjs' : 'cjs';
38
+ const hash = (0, node_crypto_1.createHash)('sha1')
39
+ .update(name)
40
+ .update('\0')
41
+ .update(format)
42
+ .update('\0')
43
+ .update(contents)
44
+ .digest('hex')
45
+ .slice(0, 10);
46
+ return (0, node_path_1.join)(process.cwd(), '.hanzogui', `dynamic-eval-${hash}-${(0, node_path_1.basename)(name)}.${ext}`);
47
+ }
48
+ function getEsbuildStdinLoader(filePath) {
49
+ if (filePath.endsWith('.tsx'))
50
+ return 'tsx';
51
+ if (filePath.endsWith('.ts'))
52
+ return 'ts';
53
+ if (filePath.endsWith('.jsx'))
54
+ return 'jsx';
55
+ return 'js';
56
+ }
57
+ function resolvePackageEntry(packageName, format) {
58
+ if (format === 'cjs') {
59
+ return need.resolve(packageName);
60
+ }
61
+ const packageJsonPath = need.resolve(`${packageName}/package.json`);
62
+ const packageJson = JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, 'utf-8'));
63
+ const packageRoot = (0, node_path_1.dirname)(packageJsonPath);
64
+ const exportEntry = packageJson.exports?.['.'];
65
+ const esmEntry = exportEntry?.import ||
66
+ exportEntry?.module ||
67
+ exportEntry?.browser ||
68
+ packageJson.module;
69
+ if (typeof esmEntry === 'string') {
70
+ return (0, node_path_1.join)(packageRoot, esmEntry);
71
+ }
72
+ return need.resolve(packageName);
73
+ }
74
+ function cleanupTempFiles() {
75
+ for (const f of activeTempFiles) {
76
+ try {
77
+ (0, node_fs_1.unlinkSync)(f);
78
+ }
79
+ catch { }
80
+ }
81
+ activeTempFiles.clear();
82
+ }
83
+ process.on('exit', cleanupTempFiles);
84
+ process.on('SIGINT', () => {
85
+ cleanupTempFiles();
86
+ process.exit();
87
+ });
88
+ process.on('SIGTERM', () => {
89
+ cleanupTempFiles();
90
+ process.exit();
91
+ });
92
+ const external = [
93
+ '@hanzogui/core',
94
+ '@hanzogui/web',
95
+ 'react',
96
+ 'react-dom',
97
+ 'react-native-svg',
98
+ ];
99
+ const esbuildExtraOptions = {
100
+ define: {
101
+ __DEV__: `${process.env.NODE_ENV === 'development'}`,
102
+ },
103
+ };
104
+ // plugin to handle ESM-only features when bundling to CJS
105
+ const handleEsmFeaturesPlugin = {
106
+ name: 'handle-esm-features',
107
+ setup(build) {
108
+ // only apply transforms for CJS output - ESM supports these natively
109
+ const isCjs = build.initialOptions.format === 'cjs' || !build.initialOptions.format;
110
+ build.onLoad({ filter: /\.(ts|tsx|js|jsx|mjs)$/ }, (args) => {
111
+ // skip if ESM output - import.meta and top-level await work natively
112
+ if (!isCjs) {
113
+ return null;
114
+ }
115
+ // skip most node_modules
116
+ if (args.path.includes('node_modules') && !args.path.includes('@hanzogui')) {
117
+ return null;
118
+ }
119
+ let contents = (0, node_fs_1.readFileSync)(args.path, 'utf8');
120
+ let modified = false;
121
+ // transform import.meta.env -> process.env (Vite-style env vars)
122
+ if (contents.includes('import.meta.env')) {
123
+ contents = contents.replace(/import\.meta\.env/g, 'process.env');
124
+ modified = true;
125
+ }
126
+ // transform import.meta.url -> "" (not needed for static extraction)
127
+ if (contents.includes('import.meta.url')) {
128
+ contents = contents.replace(/import\.meta\.url/g, '""');
129
+ modified = true;
130
+ }
131
+ // transform import.meta.main -> false
132
+ if (contents.includes('import.meta.main')) {
133
+ contents = contents.replace(/import\.meta\.main/g, 'false');
134
+ modified = true;
135
+ }
136
+ // stub files with top-level await - they're typically runtime-only
137
+ if ((0, hasTopLevelAwait_ts_1.hasTopLevelAwait)(contents, args.path)) {
138
+ if (process.env.DEBUG?.startsWith('hanzogui')) {
139
+ console.info(`[hanzogui] stubbing file with top-level await: ${args.path}`);
140
+ }
141
+ return {
142
+ // Keep this as an ESM-shaped stub so esbuild doesn't inline a top-level
143
+ // `module.exports = {}` into the parent bundle and wipe its exports.
144
+ contents: `// stubbed - contains top-level await\nexport default {}`,
145
+ loader: 'js',
146
+ };
147
+ }
148
+ if (modified) {
149
+ return {
150
+ contents,
151
+ loader: args.path.endsWith('.tsx')
152
+ ? 'tsx'
153
+ : args.path.endsWith('.ts')
154
+ ? 'ts'
155
+ : args.path.endsWith('.jsx')
156
+ ? 'jsx'
157
+ : 'js',
158
+ };
159
+ }
160
+ return null;
161
+ });
162
+ },
163
+ };
164
+ // base options for transformSync (no plugins)
165
+ const esbuildTransformOptions = {
166
+ target: 'es2022',
167
+ format: 'cjs',
168
+ jsx: 'automatic',
169
+ platform: 'node',
170
+ ...esbuildExtraOptions,
171
+ };
172
+ // options for buildSync - NO plugins (buildSync doesn't support plugins)
173
+ exports.esbuildOptions = {
174
+ ...esbuildTransformOptions,
175
+ };
176
+ // options for async build (with plugins)
177
+ exports.esbuildOptionsWithPlugins = {
178
+ ...esbuildTransformOptions,
179
+ plugins: [handleEsmFeaturesPlugin],
180
+ };
181
+ // will use cached one if watching
182
+ let currentBundle = null;
183
+ let currentBundleKey = '';
184
+ let isBundling = false;
185
+ let lastBundle = null;
186
+ const waitForBundle = new Set();
187
+ function hasBundledConfigChanged() {
188
+ if (lastBundle === currentBundle) {
189
+ return false;
190
+ }
191
+ lastBundle = currentBundle;
192
+ return true;
193
+ }
194
+ let loadedConfig = null;
195
+ const getLoadedConfig = () => loadedConfig;
196
+ exports.getLoadedConfig = getLoadedConfig;
197
+ function getBundleKey(props) {
198
+ return JSON.stringify({
199
+ components: props.components,
200
+ config: props.config,
201
+ platform: props.platform,
202
+ });
203
+ }
204
+ async function getBundledConfig(props, rebuild = false) {
205
+ const bundleKey = getBundleKey(props);
206
+ if (isBundling) {
207
+ await new Promise((res) => {
208
+ waitForBundle.add(res);
209
+ });
210
+ }
211
+ if (!currentBundle || currentBundleKey !== bundleKey || rebuild) {
212
+ return await bundleConfig(props);
213
+ }
214
+ return currentBundle;
215
+ }
216
+ global.hanzoguiLastLoaded || (global.hanzoguiLastLoaded = 0);
217
+ function updateLastLoaded(config, bundleKey) {
218
+ global.hanzoguiLastLoaded = Date.now();
219
+ global.hanzoguiLastBundledConfig = config;
220
+ global.hanzoguiLastBundledConfigKey = bundleKey;
221
+ }
222
+ let hasBundledOnce = false;
223
+ // use global to dedupe logging - this works within a single process
224
+ // but may log multiple times if worker threads are recreated
225
+ // that's acceptable - better than nothing
226
+ let hasLoggedBuild = false;
227
+ async function bundleConfig(props) {
228
+ const bundleKey = getBundleKey(props);
229
+ // webpack is calling this a ton for no reason
230
+ if (global.hanzoguiLastBundledConfig &&
231
+ global.hanzoguiLastBundledConfigKey === bundleKey &&
232
+ Date.now() - global.hanzoguiLastLoaded < 3000) {
233
+ // just loaded recently
234
+ return global.hanzoguiLastBundledConfig;
235
+ }
236
+ try {
237
+ isBundling = true;
238
+ const configEntry = props.config
239
+ ? (0, getGuiConfigPathFromOptionsConfig_ts_1.getGuiConfigPathFromOptionsConfig)(props.config)
240
+ : '';
241
+ const tmpDir = (0, node_path_1.join)(process.cwd(), '.hanzogui');
242
+ // detect module format from config entry point
243
+ const configFormat = configEntry ? (0, detectModuleFormat_ts_1.detectModuleFormat)(configEntry) : 'cjs';
244
+ const configExt = configFormat === 'esm' ? '.mjs' : '.cjs';
245
+ const configOutPath = (0, node_path_1.join)(tmpDir, `hanzogui.config${configExt}`);
246
+ const baseComponents = (props.components || []).filter((x) => x !== '@hanzogui/core');
247
+ // detect format per component module
248
+ const componentFormats = baseComponents.map((mod) => {
249
+ try {
250
+ const pkgJson = need.resolve(mod + '/package.json');
251
+ const pkg = JSON.parse((0, node_fs_1.readFileSync)(pkgJson, 'utf-8'));
252
+ return pkg.type === 'module' ? 'esm' : 'cjs';
253
+ }
254
+ catch {
255
+ return 'cjs';
256
+ }
257
+ });
258
+ const componentOutPaths = baseComponents.map((componentModule, i) => {
259
+ const ext = componentFormats[i] === 'esm' ? '.mjs' : '.cjs';
260
+ return (0, node_path_1.join)(tmpDir, `${componentModule
261
+ .split(node_path_1.sep)
262
+ .join('-')
263
+ .replace(/[^a-z0-9]+/gi, '')}-components.config${ext}`);
264
+ });
265
+ if (process.env.NODE_ENV === 'development' &&
266
+ process.env.DEBUG?.startsWith('hanzogui')) {
267
+ console.info(`Building config entry`, configEntry);
268
+ }
269
+ // check if ALL output files (config + components) already exist and are recent
270
+ // (built by another worker) - this prevents duplicate builds across worker threads
271
+ // we must check ALL files, not just the config, to avoid a race where another
272
+ // worker has written the config but not yet finished writing component files
273
+ let shouldBuild = !props.disableInitialBuild;
274
+ if (shouldBuild && props.config) {
275
+ const allOutFiles = [configOutPath, ...componentOutPaths];
276
+ try {
277
+ const stats = await Promise.all(allOutFiles.map((f) => fs_extra_1.default.stat(f).catch(() => null)));
278
+ const allExistAndRecent = stats.every((s) => s !== null && Date.now() - s.mtimeMs < 3000);
279
+ if (allExistAndRecent) {
280
+ shouldBuild = false;
281
+ }
282
+ }
283
+ catch {
284
+ // something went wrong checking files, just build
285
+ }
286
+ }
287
+ if (shouldBuild) {
288
+ // build them to node-compat versions
289
+ try {
290
+ await fs_extra_1.default.ensureDir(tmpDir);
291
+ }
292
+ catch {
293
+ //
294
+ }
295
+ const start = Date.now();
296
+ await Promise.all([
297
+ props.config
298
+ ? (0, bundle_ts_1.esbundleGuiConfig)({
299
+ entryPoints: [configEntry],
300
+ external,
301
+ outfile: configOutPath,
302
+ target: 'node24',
303
+ format: configFormat,
304
+ ...esbuildExtraOptions,
305
+ }, props.platform || 'web')
306
+ : null,
307
+ ...baseComponents.map((componentModule, i) => {
308
+ return (0, bundle_ts_1.esbundleGuiConfig)({
309
+ entryPoints: [componentModule],
310
+ resolvePlatformSpecificEntries: true,
311
+ external,
312
+ outfile: componentOutPaths[i],
313
+ target: 'node24',
314
+ format: componentFormats[i],
315
+ ...esbuildExtraOptions,
316
+ }, props.platform || 'web');
317
+ }),
318
+ ]);
319
+ // only log once per process to avoid duplicate messages
320
+ // also skip if _skipBuildLog is set (used during worker recycle warmup)
321
+ if (!hasLoggedBuild && !props['_skipBuildLog']) {
322
+ hasLoggedBuild = true;
323
+ (0, cli_color_1.colorLog)(cli_color_1.Color.FgYellow, `
324
+ ➡ [hanzogui] built config, components, prompt (${Date.now() - start}ms)`);
325
+ if (process.env.DEBUG?.startsWith('hanzogui')) {
326
+ (0, cli_color_1.colorLog)(cli_color_1.Color.Dim, `
327
+ Config .${node_path_1.sep}${(0, node_path_1.relative)(process.cwd(), configOutPath)}
328
+ Components ${componentOutPaths.map((p) => `.${node_path_1.sep}${(0, node_path_1.relative)(process.cwd(), p)}`).join('\n ')}
329
+ `);
330
+ }
331
+ }
332
+ }
333
+ // clear specific output file caches so we pick up the fresh (or newly discovered) build
334
+ // only clear the built output files - not all require.cache entries, since that breaks
335
+ // external requires like @hanzogui/config/v3 that are externalized in the bundled CJS
336
+ if (hasBundledOnce) {
337
+ try {
338
+ delete need.cache[need.resolve(configOutPath)];
339
+ }
340
+ catch {
341
+ // file may not exist yet
342
+ }
343
+ for (const p of componentOutPaths) {
344
+ try {
345
+ delete need.cache[need.resolve(p)];
346
+ }
347
+ catch {
348
+ // file may not exist yet
349
+ }
350
+ }
351
+ }
352
+ else {
353
+ hasBundledOnce = true;
354
+ }
355
+ let out;
356
+ if (configFormat === 'esm') {
357
+ // use file:// URL for proper ESM resolution
358
+ out = await (0, here_ts_1.load)(configOutPath);
359
+ }
360
+ else {
361
+ out = need(configOutPath);
362
+ }
363
+ // try and find .config, even if on .default
364
+ let config = out.default || out || out.config;
365
+ if (config && config.config && !config.tokens) {
366
+ config = config.config;
367
+ }
368
+ if (!config) {
369
+ throw new Error(`No config: ${config}`);
370
+ }
371
+ // check for ProxyWorm - indicates a module loading error
372
+ if (config._isProxyWorm) {
373
+ throw new Error(`Got a proxied config - likely a module loading error. Set DEBUG=hanzogui for details.`);
374
+ }
375
+ loadedConfig = config;
376
+ if (!config.parsed) {
377
+ const { createGui } = (0, requireGuiCore_ts_1.requireGuiCore)(props.platform || 'web');
378
+ // need to create it
379
+ config = createGui(config);
380
+ }
381
+ if (props.outputCSS) {
382
+ await writeGuiCSS(props.outputCSS, config);
383
+ }
384
+ let components = await loadComponents({
385
+ ...props,
386
+ components: componentOutPaths,
387
+ });
388
+ if (!components) {
389
+ throw new Error(`No components found: ${componentOutPaths.join(', ')}`);
390
+ }
391
+ // map from built back to original module names
392
+ for (const component of components) {
393
+ component.moduleName =
394
+ baseComponents[componentOutPaths.indexOf(component.moduleName)] ||
395
+ component.moduleName;
396
+ if (!component.moduleName) {
397
+ if (process.env.DEBUG?.includes('hanzogui') || process.env.IS_GUI_DEV) {
398
+ console.warn(`⚠️ no module name found: ${component.moduleName} ${JSON.stringify(baseComponents)} in ${JSON.stringify(componentOutPaths)}`);
399
+ }
400
+ }
401
+ }
402
+ if (process.env.NODE_ENV === 'development' &&
403
+ process.env.DEBUG?.startsWith('hanzogui')) {
404
+ console.info('Loaded components', components);
405
+ }
406
+ const res = {
407
+ components,
408
+ nameToPaths: {},
409
+ hanzoguiConfig: config,
410
+ };
411
+ currentBundle = res;
412
+ currentBundleKey = bundleKey;
413
+ updateLastLoaded(res, bundleKey);
414
+ return res;
415
+ }
416
+ catch (err) {
417
+ console.error(`Error bundling hanzogui config: ${err?.message} (run with DEBUG=hanzogui to see stack)`);
418
+ if (process.env.DEBUG?.includes('hanzogui')) {
419
+ console.error(err.stack);
420
+ }
421
+ }
422
+ finally {
423
+ isBundling = false;
424
+ waitForBundle.forEach((cb) => cb());
425
+ waitForBundle.clear();
426
+ }
427
+ }
428
+ async function writeGuiCSS(outputCSS, config) {
429
+ const flush = async () => {
430
+ (0, cli_color_1.colorLog)(cli_color_1.Color.FgYellow, ` ➡ [hanzogui] output css: ${outputCSS}`);
431
+ await fs_extra_1.default.writeFile(outputCSS, css);
432
+ };
433
+ const css = config.getCSS();
434
+ if (typeof css !== 'string') {
435
+ throw new Error(`Invalid CSS: ${typeof css} ${css}`);
436
+ }
437
+ try {
438
+ if ((0, node_fs_1.existsSync)(outputCSS) && (await (0, promises_1.readFile)(outputCSS, 'utf8')) === css) {
439
+ // no change
440
+ }
441
+ else {
442
+ await flush();
443
+ }
444
+ }
445
+ catch (err) {
446
+ console.info('Error writing themes', err);
447
+ }
448
+ }
449
+ async function loadComponents(props, forceExports = false) {
450
+ const coreComponents = getCoreComponentsSync(props);
451
+ const otherComponents = await loadComponentsInner(props, forceExports);
452
+ return [...coreComponents, ...(otherComponents || [])];
453
+ }
454
+ function loadComponentsSync(props, forceExports = false) {
455
+ const coreComponents = getCoreComponentsSync(props);
456
+ const otherComponents = loadComponentsInnerSync(props, forceExports);
457
+ return [...coreComponents, ...(otherComponents || [])];
458
+ }
459
+ function getCoreComponentsSync(props) {
460
+ const loaded = loadComponentsInnerSync({
461
+ ...props,
462
+ components: ['@hanzogui/core'],
463
+ });
464
+ if (!loaded) {
465
+ throw new Error(`Core should always load`);
466
+ }
467
+ // always load core so we can optimize if directly importing
468
+ return [
469
+ {
470
+ ...loaded[0],
471
+ moduleName: '@hanzogui/core',
472
+ },
473
+ ];
474
+ }
475
+ async function loadComponentsInner(props, forceExports = false) {
476
+ const componentsModules = props.components || [];
477
+ const key = componentsModules.join('\0');
478
+ if (!forceExports && cacheComponents[key]) {
479
+ return cacheComponents[key];
480
+ }
481
+ const { unregister } = (0, registerRequire_ts_1.registerRequire)(props.platform || 'web', {
482
+ proxyWormImports: forceExports,
483
+ });
484
+ try {
485
+ const results = [];
486
+ for (const name of componentsModules) {
487
+ const extension = (0, node_path_1.extname)(name);
488
+ const isLocal = Boolean(extension);
489
+ const isDynamic = isLocal && forceExports;
490
+ const format = isLocal ? (0, detectModuleFormat_ts_1.detectModuleFormat)(name) : 'cjs';
491
+ const fileContents = isDynamic ? (0, node_fs_1.readFileSync)(name, 'utf-8') : '';
492
+ let loadModule = name;
493
+ let writtenContents = fileContents;
494
+ let didBabel = false;
495
+ const attemptLoad = async ({ forceExports = false } = {}) => {
496
+ if (isDynamic) {
497
+ writtenContents = forceExports
498
+ ? transformAddExports((0, babelParse_ts_1.babelParse)(esbuildit(fileContents, 'modern'), name))
499
+ : fileContents;
500
+ loadModule = getDynamicEvalOutfile(name, format, writtenContents);
501
+ fs_extra_1.default.ensureDirSync((0, node_path_1.dirname)(loadModule));
502
+ activeTempFiles.add(loadModule);
503
+ await esbuild_1.default.build({
504
+ ...exports.esbuildOptionsWithPlugins,
505
+ format,
506
+ outfile: loadModule,
507
+ stdin: {
508
+ contents: writtenContents,
509
+ resolveDir: (0, node_path_1.dirname)(name),
510
+ sourcefile: name,
511
+ loader: getEsbuildStdinLoader(name),
512
+ },
513
+ alias: {
514
+ 'react-native': resolvePackageEntry('@hanzogui/react-native-web-lite', format),
515
+ '@hanzogui/react-native-web-lite': resolvePackageEntry('@hanzogui/react-native-web-lite', format),
516
+ '@hanzogui/react-native-web-internals': resolvePackageEntry('@hanzogui/react-native-web-internals', format),
517
+ },
518
+ bundle: true,
519
+ packages: 'external',
520
+ allowOverwrite: true,
521
+ sourcemap: false,
522
+ loader: bundle_ts_1.esbuildLoaderConfig,
523
+ });
524
+ }
525
+ if (process.env.DEBUG === 'hanzogui') {
526
+ console.info(`loadModule`, loadModule, format);
527
+ }
528
+ let moduleResult;
529
+ if (format === 'esm') {
530
+ // use file:// URL for proper ESM resolution
531
+ moduleResult = await (0, here_ts_1.load)(loadModule);
532
+ }
533
+ else {
534
+ moduleResult = need(loadModule);
535
+ }
536
+ if (!forceExports) {
537
+ (0, registerRequire_ts_1.setRequireResult)(name, moduleResult);
538
+ }
539
+ const nameToInfo = getComponentStaticConfigByName(name, interopDefaultExport(moduleResult));
540
+ return {
541
+ moduleName: name,
542
+ nameToInfo,
543
+ };
544
+ };
545
+ const dispose = () => {
546
+ if (isDynamic) {
547
+ fs_extra_1.default.removeSync(loadModule);
548
+ activeTempFiles.delete(loadModule);
549
+ }
550
+ };
551
+ let loaded;
552
+ try {
553
+ loaded = await attemptLoad({ forceExports: true });
554
+ didBabel = true;
555
+ }
556
+ catch (err) {
557
+ console.info('babel err', err, writtenContents);
558
+ writtenContents = fileContents;
559
+ if (process.env.DEBUG?.startsWith('hanzogui')) {
560
+ console.info(`Error parsing babel likely`, err);
561
+ }
562
+ try {
563
+ loaded = await attemptLoad({ forceExports: false });
564
+ }
565
+ catch (err2) {
566
+ if (process.env.GUI_ENABLE_WARN_DYNAMIC_LOAD) {
567
+ console.info(`\nGui attempted but failed to dynamically optimize components in:\n ${name}\n`);
568
+ console.info(err2);
569
+ console.info(`At: ${loadModule}`, `\ndidBabel: ${didBabel}`, `\nIn:`, writtenContents, `\nisDynamic: `, isDynamic);
570
+ }
571
+ loaded = [];
572
+ }
573
+ }
574
+ finally {
575
+ dispose();
576
+ }
577
+ if (Array.isArray(loaded)) {
578
+ results.push(...loaded);
579
+ }
580
+ else if (loaded) {
581
+ results.push(loaded);
582
+ }
583
+ }
584
+ cacheComponents[key] = results;
585
+ return results;
586
+ }
587
+ catch (err) {
588
+ console.info(`Gui error bundling components`, err.message, err.stack);
589
+ return null;
590
+ }
591
+ finally {
592
+ unregister();
593
+ }
594
+ }
595
+ // sync version - uses cjs format for buildSync (no plugin support)
596
+ function loadComponentsInnerSync(props, forceExports = false) {
597
+ const componentsModules = props.components || [];
598
+ const key = componentsModules.join('\0');
599
+ if (!forceExports && cacheComponents[key]) {
600
+ return cacheComponents[key];
601
+ }
602
+ const { unregister } = (0, registerRequire_ts_1.registerRequire)(props.platform || 'web', {
603
+ proxyWormImports: forceExports,
604
+ });
605
+ try {
606
+ const info = componentsModules.flatMap((name) => {
607
+ const extension = (0, node_path_1.extname)(name);
608
+ const isLocal = Boolean(extension);
609
+ const isDynamic = isLocal && forceExports;
610
+ const fileContents = isDynamic ? (0, node_fs_1.readFileSync)(name, 'utf-8') : '';
611
+ let loadModule = name;
612
+ let writtenContents = fileContents;
613
+ let didBabel = false;
614
+ function attemptLoad({ forceExports = false } = {}) {
615
+ if (isDynamic) {
616
+ writtenContents = forceExports
617
+ ? transformAddExports((0, babelParse_ts_1.babelParse)(esbuildit(fileContents, 'modern'), name))
618
+ : fileContents;
619
+ loadModule = getDynamicEvalOutfile(name, 'cjs', writtenContents);
620
+ fs_extra_1.default.ensureDirSync((0, node_path_1.dirname)(loadModule));
621
+ activeTempFiles.add(loadModule);
622
+ esbuild_1.default.buildSync({
623
+ ...exports.esbuildOptions,
624
+ outfile: loadModule,
625
+ stdin: {
626
+ contents: writtenContents,
627
+ resolveDir: (0, node_path_1.dirname)(name),
628
+ sourcefile: name,
629
+ loader: getEsbuildStdinLoader(name),
630
+ },
631
+ alias: {
632
+ 'react-native': resolvePackageEntry('@hanzogui/react-native-web-lite', 'esm'),
633
+ '@hanzogui/react-native-web-lite': resolvePackageEntry('@hanzogui/react-native-web-lite', 'esm'),
634
+ '@hanzogui/react-native-web-internals': resolvePackageEntry('@hanzogui/react-native-web-internals', 'esm'),
635
+ },
636
+ bundle: true,
637
+ packages: 'external',
638
+ allowOverwrite: true,
639
+ sourcemap: false,
640
+ loader: bundle_ts_1.esbuildLoaderConfig,
641
+ });
642
+ }
643
+ if (process.env.DEBUG === 'hanzogui') {
644
+ console.info(`loadModule`, loadModule, need.resolve(loadModule));
645
+ }
646
+ const moduleResult = need(loadModule);
647
+ if (!forceExports) {
648
+ (0, registerRequire_ts_1.setRequireResult)(name, moduleResult);
649
+ }
650
+ const nameToInfo = getComponentStaticConfigByName(name, interopDefaultExport(moduleResult));
651
+ return {
652
+ moduleName: name,
653
+ nameToInfo,
654
+ };
655
+ }
656
+ const dispose = () => {
657
+ if (isDynamic) {
658
+ fs_extra_1.default.removeSync(loadModule);
659
+ activeTempFiles.delete(loadModule);
660
+ }
661
+ };
662
+ try {
663
+ const res = attemptLoad({ forceExports: true });
664
+ didBabel = true;
665
+ return res;
666
+ }
667
+ catch (err) {
668
+ console.info('babel err', err, writtenContents);
669
+ writtenContents = fileContents;
670
+ if (process.env.DEBUG?.startsWith('hanzogui')) {
671
+ console.info(`Error parsing babel likely`, err);
672
+ }
673
+ }
674
+ finally {
675
+ dispose();
676
+ }
677
+ try {
678
+ return attemptLoad({ forceExports: false });
679
+ }
680
+ catch (err) {
681
+ if (process.env.GUI_ENABLE_WARN_DYNAMIC_LOAD) {
682
+ console.info(`\nGui attempted but failed to dynamically optimize components in:\n ${name}\n`);
683
+ console.info(err);
684
+ console.info(`At: ${loadModule}`, `\ndidBabel: ${didBabel}`, `\nIn:`, writtenContents, `\nisDynamic: `, isDynamic);
685
+ }
686
+ return [];
687
+ }
688
+ finally {
689
+ dispose();
690
+ }
691
+ });
692
+ cacheComponents[key] = info;
693
+ return info;
694
+ }
695
+ catch (err) {
696
+ console.info(`Gui error bundling components`, err.message, err.stack);
697
+ return null;
698
+ }
699
+ finally {
700
+ unregister();
701
+ }
702
+ }
703
+ const esbuildit = (src, target) => {
704
+ return esbuild_1.default.transformSync(src, {
705
+ ...esbuildTransformOptions,
706
+ ...(target === 'modern' && {
707
+ target: 'es2022',
708
+ jsx: 'automatic',
709
+ loader: 'tsx',
710
+ platform: 'neutral',
711
+ format: 'esm',
712
+ }),
713
+ }).code;
714
+ };
715
+ function getComponentStaticConfigByName(name, exported) {
716
+ const components = {};
717
+ try {
718
+ if (!exported || typeof exported !== 'object' || Array.isArray(exported)) {
719
+ throw new Error(`Invalid export from package ${name}: ${typeof exported}`);
720
+ }
721
+ for (const key in exported) {
722
+ const found = getGuiComponent(key, exported[key]);
723
+ if (found) {
724
+ // remove non-stringifyable
725
+ const { Component, ...sc } = found.staticConfig;
726
+ components[key] = { staticConfig: sc };
727
+ }
728
+ }
729
+ }
730
+ catch (err) {
731
+ if (process.env.GUI_ENABLE_WARN_DYNAMIC_LOAD) {
732
+ console.error(`Gui failed getting components from ${name} (Disable error by setting environment variable GUI_ENABLE_WARN_DYNAMIC_LOAD=1)`);
733
+ console.error(err);
734
+ }
735
+ }
736
+ return components;
737
+ }
738
+ function getGuiComponent(name, Component) {
739
+ if (name[0].toUpperCase() !== name[0]) {
740
+ return;
741
+ }
742
+ const staticConfig = Component?.staticConfig;
743
+ if (staticConfig) {
744
+ return Component;
745
+ }
746
+ }
747
+ function interopDefaultExport(mod) {
748
+ return mod?.default ?? mod;
749
+ }
750
+ const cacheComponents = {};
751
+ function transformAddExports(ast) {
752
+ const usedNames = new Set();
753
+ // avoid clobbering
754
+ // @ts-ignore
755
+ (0, traverse_1.default)(ast, {
756
+ ExportNamedDeclaration(nodePath) {
757
+ if (nodePath.node.specifiers) {
758
+ for (const spec of nodePath.node.specifiers) {
759
+ usedNames.add(t.isIdentifier(spec.exported) ? spec.exported.name : spec.exported.value);
760
+ }
761
+ }
762
+ },
763
+ });
764
+ // @ts-ignore
765
+ (0, traverse_1.default)(ast, {
766
+ VariableDeclaration(nodePath) {
767
+ // top level only
768
+ if (!t.isProgram(nodePath.parent))
769
+ return;
770
+ const decs = nodePath.node.declarations;
771
+ if (decs.length > 1)
772
+ return;
773
+ const [dec] = decs;
774
+ if (!t.isIdentifier(dec.id))
775
+ return;
776
+ if (!dec.init)
777
+ return;
778
+ if (usedNames.has(dec.id.name))
779
+ return;
780
+ usedNames.add(dec.id.name);
781
+ nodePath.replaceWith(t.exportNamedDeclaration(t.variableDeclaration('let', [dec]), [
782
+ t.exportSpecifier(t.identifier(dec.id.name), t.identifier(dec.id.name)),
783
+ ]));
784
+ },
785
+ });
786
+ // @ts-ignore
787
+ return (0, generator_1.default)(ast, {
788
+ concise: false,
789
+ filename: 'test.tsx',
790
+ retainLines: false,
791
+ sourceMaps: false,
792
+ }).code;
793
+ }
794
+ //# sourceMappingURL=bundleConfig.js.map