@tamagui/static 2.7.7 → 3.0.0-beta.643.1

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 (329) hide show
  1. package/dist/cjs/check-dep-versions.cjs +355 -0
  2. package/dist/cjs/checkDeps.cjs +302 -0
  3. package/dist/cjs/compiler.cjs +286 -0
  4. package/dist/cjs/compilerHost.cjs +1695 -0
  5. package/dist/cjs/constants.cjs +33 -0
  6. package/dist/cjs/domStructuralPass.cjs +112 -0
  7. package/dist/cjs/exports.cjs +42 -0
  8. package/dist/cjs/extractor/addLocalExports.cjs +64 -0
  9. package/dist/cjs/extractor/bundle.cjs +203 -0
  10. package/dist/cjs/extractor/bundleConfig.cjs +747 -0
  11. package/dist/cjs/extractor/concatClassName.cjs +117 -0
  12. package/dist/cjs/extractor/detectModuleFormat.cjs +54 -0
  13. package/dist/cjs/extractor/esbuildAliasPlugin.cjs +47 -0
  14. package/dist/cjs/extractor/esbuildTsconfigPaths.cjs +92 -0
  15. package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +38 -0
  16. package/dist/cjs/extractor/loadTamagui.cjs +344 -0
  17. package/dist/cjs/extractor/regenerateConfig.cjs +161 -0
  18. package/dist/cjs/extractor/watchTamaguiConfig.cjs +64 -0
  19. package/dist/cjs/getPragmaOptions.cjs +67 -0
  20. package/dist/cjs/helpers/memoize.cjs +42 -0
  21. package/dist/cjs/helpers/requireTamaguiCore.cjs +40 -0
  22. package/dist/cjs/index.cjs +34 -0
  23. package/dist/cjs/registerRequire.cjs +220 -0
  24. package/dist/cjs/server.cjs +66 -0
  25. package/dist/cjs/staticEvaluationIgnoredModules.cjs +86 -0
  26. package/dist/cjs/types.cjs +17 -0
  27. package/dist/cjs/zero/artifact.cjs +145 -0
  28. package/dist/cjs/zero/graph.cjs +209 -0
  29. package/dist/cjs/zero/identity.cjs +61 -0
  30. package/dist/cjs/zero/index.cjs +26 -0
  31. package/dist/cjs/zero/islands.cjs +232 -0
  32. package/dist/cjs/zero/options.cjs +163 -0
  33. package/dist/cjs/zero/ownership.cjs +79 -0
  34. package/dist/cjs/zero/theme.cjs +328 -0
  35. package/dist/cjs/zero/transform.cjs +203 -0
  36. package/dist/esm/check-dep-versions.mjs +329 -0
  37. package/dist/esm/check-dep-versions.mjs.map +1 -0
  38. package/dist/esm/checkDeps.mjs +279 -0
  39. package/dist/esm/checkDeps.mjs.map +1 -0
  40. package/dist/esm/compiler.mjs +255 -0
  41. package/dist/esm/compiler.mjs.map +1 -0
  42. package/dist/esm/compilerHost.mjs +1675 -0
  43. package/dist/esm/compilerHost.mjs.map +1 -0
  44. package/dist/esm/constants.mjs +7 -0
  45. package/dist/esm/constants.mjs.map +1 -0
  46. package/dist/esm/domStructuralPass.mjs +92 -0
  47. package/dist/esm/domStructuralPass.mjs.map +1 -0
  48. package/dist/esm/exports.mjs +26 -0
  49. package/dist/esm/extractor/addLocalExports.mjs +44 -0
  50. package/dist/esm/extractor/addLocalExports.mjs.map +1 -0
  51. package/dist/esm/extractor/bundle.mjs +173 -0
  52. package/dist/esm/extractor/bundle.mjs.map +1 -0
  53. package/dist/esm/extractor/bundleConfig.mjs +706 -0
  54. package/dist/esm/extractor/bundleConfig.mjs.map +1 -0
  55. package/dist/esm/extractor/concatClassName.mjs +96 -0
  56. package/dist/esm/extractor/concatClassName.mjs.map +1 -0
  57. package/dist/esm/extractor/detectModuleFormat.mjs +31 -0
  58. package/dist/esm/extractor/detectModuleFormat.mjs.map +1 -0
  59. package/dist/esm/extractor/esbuildAliasPlugin.mjs +26 -0
  60. package/dist/esm/extractor/esbuildAliasPlugin.mjs.map +1 -0
  61. package/dist/esm/extractor/esbuildTsconfigPaths.mjs +63 -0
  62. package/dist/esm/extractor/esbuildTsconfigPaths.mjs.map +1 -0
  63. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs +18 -0
  64. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs.map +1 -0
  65. package/dist/esm/extractor/loadTamagui.mjs +306 -0
  66. package/dist/esm/extractor/loadTamagui.mjs.map +1 -0
  67. package/dist/esm/extractor/regenerateConfig.mjs +131 -0
  68. package/dist/esm/extractor/regenerateConfig.mjs.map +1 -0
  69. package/dist/esm/extractor/watchTamaguiConfig.mjs +43 -0
  70. package/dist/esm/extractor/watchTamaguiConfig.mjs.map +1 -0
  71. package/dist/esm/getPragmaOptions.mjs +46 -0
  72. package/dist/esm/getPragmaOptions.mjs.map +1 -0
  73. package/dist/esm/helpers/memoize.mjs +21 -0
  74. package/dist/esm/helpers/memoize.mjs.map +1 -0
  75. package/dist/esm/helpers/requireTamaguiCore.mjs +19 -0
  76. package/dist/esm/helpers/requireTamaguiCore.mjs.map +1 -0
  77. package/dist/esm/index.mjs +8 -0
  78. package/dist/esm/index.mjs.map +1 -0
  79. package/dist/esm/registerRequire.mjs +195 -0
  80. package/dist/esm/registerRequire.mjs.map +1 -0
  81. package/dist/esm/server.mjs +40 -0
  82. package/dist/esm/server.mjs.map +1 -0
  83. package/dist/esm/setup.mjs +0 -0
  84. package/dist/esm/staticEvaluationIgnoredModules.mjs +61 -0
  85. package/dist/esm/staticEvaluationIgnoredModules.mjs.map +1 -0
  86. package/dist/esm/types.mjs +0 -0
  87. package/dist/esm/zero/artifact.mjs +119 -0
  88. package/dist/esm/zero/artifact.mjs.map +1 -0
  89. package/dist/esm/zero/graph.mjs +170 -0
  90. package/dist/esm/zero/graph.mjs.map +1 -0
  91. package/dist/esm/zero/identity.mjs +36 -0
  92. package/dist/esm/zero/identity.mjs.map +1 -0
  93. package/dist/esm/zero/index.mjs +15 -0
  94. package/dist/esm/zero/islands.mjs +197 -0
  95. package/dist/esm/zero/islands.mjs.map +1 -0
  96. package/dist/esm/zero/options.mjs +129 -0
  97. package/dist/esm/zero/options.mjs.map +1 -0
  98. package/dist/esm/zero/ownership.mjs +48 -0
  99. package/dist/esm/zero/ownership.mjs.map +1 -0
  100. package/dist/esm/zero/theme.mjs +303 -0
  101. package/dist/esm/zero/theme.mjs.map +1 -0
  102. package/dist/esm/zero/transform.mjs +177 -0
  103. package/dist/esm/zero/transform.mjs.map +1 -0
  104. package/package.json +33 -43
  105. package/src/check-dep-versions.ts +2 -2
  106. package/src/checkDeps.ts +3 -2
  107. package/src/compiler.ts +425 -0
  108. package/src/compilerHost.ts +3125 -0
  109. package/src/constants.ts +0 -5
  110. package/src/domStructuralPass.ts +170 -0
  111. package/src/exports.ts +3 -6
  112. package/src/extractor/addLocalExports.ts +49 -0
  113. package/src/extractor/bundle.ts +20 -35
  114. package/src/extractor/bundleConfig.ts +334 -187
  115. package/src/extractor/concatClassName.ts +13 -20
  116. package/src/extractor/getTamaguiConfigPathFromOptionsConfig.ts +5 -4
  117. package/src/extractor/loadTamagui.ts +196 -143
  118. package/src/extractor/regenerateConfig.ts +65 -13
  119. package/src/extractor/watchTamaguiConfig.ts +6 -1
  120. package/src/helpers/requireTamaguiCore.ts +6 -1
  121. package/src/registerRequire.ts +94 -132
  122. package/src/staticEvaluationIgnoredModules.ts +74 -0
  123. package/src/types.ts +2 -107
  124. package/src/zero/artifact.ts +142 -0
  125. package/src/zero/graph.ts +359 -0
  126. package/src/zero/identity.ts +73 -0
  127. package/src/zero/index.ts +8 -0
  128. package/src/zero/islands.ts +262 -0
  129. package/src/zero/options.ts +239 -0
  130. package/src/zero/ownership.ts +113 -0
  131. package/src/zero/theme.ts +478 -0
  132. package/src/zero/transform.ts +320 -0
  133. package/types/check-dep-versions.d.ts.map +1 -1
  134. package/types/checkDeps.d.ts.map +1 -1
  135. package/types/compiler.d.ts +117 -0
  136. package/types/compiler.d.ts.map +1 -0
  137. package/types/compilerHost.d.ts +25 -0
  138. package/types/compilerHost.d.ts.map +1 -0
  139. package/types/constants.d.ts +0 -1
  140. package/types/constants.d.ts.map +1 -1
  141. package/types/domStructuralPass.d.ts +3 -0
  142. package/types/domStructuralPass.d.ts.map +1 -0
  143. package/types/exports.d.ts +3 -6
  144. package/types/exports.d.ts.map +1 -1
  145. package/types/extractor/addLocalExports.d.ts +3 -0
  146. package/types/extractor/addLocalExports.d.ts.map +1 -0
  147. package/types/extractor/bundle.d.ts +66 -65
  148. package/types/extractor/bundle.d.ts.map +1 -1
  149. package/types/extractor/bundleConfig.d.ts +19 -4
  150. package/types/extractor/bundleConfig.d.ts.map +1 -1
  151. package/types/extractor/esbuildAliasPlugin.d.ts.map +1 -1
  152. package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts +1 -1
  153. package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts.map +1 -1
  154. package/types/extractor/loadTamagui.d.ts +26 -3
  155. package/types/extractor/loadTamagui.d.ts.map +1 -1
  156. package/types/extractor/regenerateConfig.d.ts +1 -1
  157. package/types/extractor/regenerateConfig.d.ts.map +1 -1
  158. package/types/extractor/watchTamaguiConfig.d.ts.map +1 -1
  159. package/types/getPragmaOptions.d.ts +1 -1
  160. package/types/helpers/memoize.d.ts +1 -1
  161. package/types/helpers/memoize.d.ts.map +1 -1
  162. package/types/helpers/requireTamaguiCore.d.ts.map +1 -1
  163. package/types/index.d.ts.map +1 -1
  164. package/types/registerRequire.d.ts +2 -2
  165. package/types/registerRequire.d.ts.map +1 -1
  166. package/types/staticEvaluationIgnoredModules.d.ts +9 -0
  167. package/types/staticEvaluationIgnoredModules.d.ts.map +1 -0
  168. package/types/types.d.ts +2 -90
  169. package/types/types.d.ts.map +1 -1
  170. package/types/zero/artifact.d.ts +44 -0
  171. package/types/zero/artifact.d.ts.map +1 -0
  172. package/types/zero/graph.d.ts +139 -0
  173. package/types/zero/graph.d.ts.map +1 -0
  174. package/types/zero/identity.d.ts +33 -0
  175. package/types/zero/identity.d.ts.map +1 -0
  176. package/types/zero/index.d.ts +9 -0
  177. package/types/zero/index.d.ts.map +1 -0
  178. package/types/zero/islands.d.ts +56 -0
  179. package/types/zero/islands.d.ts.map +1 -0
  180. package/types/zero/options.d.ts +58 -0
  181. package/types/zero/options.d.ts.map +1 -0
  182. package/types/zero/ownership.d.ts +51 -0
  183. package/types/zero/ownership.d.ts.map +1 -0
  184. package/types/zero/theme.d.ts +83 -0
  185. package/types/zero/theme.d.ts.map +1 -0
  186. package/types/zero/transform.d.ts +53 -0
  187. package/types/zero/transform.d.ts.map +1 -0
  188. package/dist/check-dep-versions.cjs +0 -372
  189. package/dist/checkDeps.cjs +0 -271
  190. package/dist/constants.cjs +0 -51
  191. package/dist/exports.cjs +0 -48
  192. package/dist/extractor/accessSafe.cjs +0 -48
  193. package/dist/extractor/babelParse.cjs +0 -56
  194. package/dist/extractor/buildClassName.cjs +0 -86
  195. package/dist/extractor/bundle.cjs +0 -234
  196. package/dist/extractor/bundleConfig.cjs +0 -729
  197. package/dist/extractor/concatClassName.cjs +0 -129
  198. package/dist/extractor/createEvaluator.cjs +0 -88
  199. package/dist/extractor/createExtractor.cjs +0 -1968
  200. package/dist/extractor/createLogger.cjs +0 -50
  201. package/dist/extractor/detectModuleFormat.cjs +0 -55
  202. package/dist/extractor/ensureImportingConcat.cjs +0 -54
  203. package/dist/extractor/errors.cjs +0 -28
  204. package/dist/extractor/esbuildAliasPlugin.cjs +0 -56
  205. package/dist/extractor/esbuildTsconfigPaths.cjs +0 -108
  206. package/dist/extractor/evaluateAstNode.cjs +0 -128
  207. package/dist/extractor/extractHelpers.cjs +0 -182
  208. package/dist/extractor/extractMediaStyle.cjs +0 -169
  209. package/dist/extractor/extractToClassNames.cjs +0 -475
  210. package/dist/extractor/extractToNative.cjs +0 -369
  211. package/dist/extractor/findTopmostFunction.cjs +0 -43
  212. package/dist/extractor/generatedUid.cjs +0 -58
  213. package/dist/extractor/getPrefixLogs.cjs +0 -31
  214. package/dist/extractor/getPropValueFromAttributes.cjs +0 -85
  215. package/dist/extractor/getSourceModule.cjs +0 -100
  216. package/dist/extractor/getStaticBindingsForScope.cjs +0 -213
  217. package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +0 -41
  218. package/dist/extractor/hasTopLevelAwait.cjs +0 -62
  219. package/dist/extractor/hoistClassNames.cjs +0 -76
  220. package/dist/extractor/literalToAst.cjs +0 -109
  221. package/dist/extractor/loadFile.cjs +0 -17
  222. package/dist/extractor/loadTamagui.cjs +0 -373
  223. package/dist/extractor/logLines.cjs +0 -43
  224. package/dist/extractor/normalizeTernaries.cjs +0 -100
  225. package/dist/extractor/propsToFontFamilyCache.cjs +0 -42
  226. package/dist/extractor/regenerateConfig.cjs +0 -178
  227. package/dist/extractor/removeUnusedHooks.cjs +0 -108
  228. package/dist/extractor/timer.cjs +0 -52
  229. package/dist/extractor/validHTMLAttributes.cjs +0 -79
  230. package/dist/extractor/watchTamaguiConfig.cjs +0 -70
  231. package/dist/getPragmaOptions.cjs +0 -73
  232. package/dist/helpers/memoize.cjs +0 -45
  233. package/dist/helpers/requireTamaguiCore.cjs +0 -40
  234. package/dist/index.cjs +0 -42
  235. package/dist/registerRequire.cjs +0 -209
  236. package/dist/server.cjs +0 -82
  237. package/dist/types.cjs +0 -18
  238. package/dist/worker.cjs +0 -111
  239. package/src/extractor/accessSafe.ts +0 -22
  240. package/src/extractor/babelParse.ts +0 -38
  241. package/src/extractor/buildClassName.ts +0 -76
  242. package/src/extractor/createEvaluator.ts +0 -82
  243. package/src/extractor/createExtractor.ts +0 -2970
  244. package/src/extractor/createLogger.ts +0 -41
  245. package/src/extractor/ensureImportingConcat.ts +0 -36
  246. package/src/extractor/errors.ts +0 -1
  247. package/src/extractor/evaluateAstNode.ts +0 -136
  248. package/src/extractor/extractHelpers.ts +0 -211
  249. package/src/extractor/extractMediaStyle.ts +0 -194
  250. package/src/extractor/extractToClassNames.ts +0 -733
  251. package/src/extractor/extractToNative.ts +0 -506
  252. package/src/extractor/findTopmostFunction.ts +0 -24
  253. package/src/extractor/generatedUid.ts +0 -41
  254. package/src/extractor/getPrefixLogs.ts +0 -9
  255. package/src/extractor/getPropValueFromAttributes.ts +0 -95
  256. package/src/extractor/getSourceModule.ts +0 -96
  257. package/src/extractor/getStaticBindingsForScope.ts +0 -237
  258. package/src/extractor/hasTopLevelAwait.ts +0 -28
  259. package/src/extractor/hoistClassNames.ts +0 -52
  260. package/src/extractor/literalToAst.ts +0 -85
  261. package/src/extractor/loadFile.ts +0 -17
  262. package/src/extractor/logLines.ts +0 -16
  263. package/src/extractor/normalizeTernaries.ts +0 -89
  264. package/src/extractor/propsToFontFamilyCache.ts +0 -18
  265. package/src/extractor/removeUnusedHooks.ts +0 -83
  266. package/src/extractor/timer.ts +0 -25
  267. package/src/extractor/validHTMLAttributes.ts +0 -52
  268. package/src/worker.ts +0 -142
  269. package/types/extractor/accessSafe.d.ts +0 -3
  270. package/types/extractor/accessSafe.d.ts.map +0 -1
  271. package/types/extractor/babelParse.d.ts +0 -5
  272. package/types/extractor/babelParse.d.ts.map +0 -1
  273. package/types/extractor/buildClassName.d.ts +0 -7
  274. package/types/extractor/buildClassName.d.ts.map +0 -1
  275. package/types/extractor/createEvaluator.d.ts +0 -12
  276. package/types/extractor/createEvaluator.d.ts.map +0 -1
  277. package/types/extractor/createExtractor.d.ts +0 -32
  278. package/types/extractor/createExtractor.d.ts.map +0 -1
  279. package/types/extractor/createLogger.d.ts +0 -3
  280. package/types/extractor/createLogger.d.ts.map +0 -1
  281. package/types/extractor/ensureImportingConcat.d.ts +0 -4
  282. package/types/extractor/ensureImportingConcat.d.ts.map +0 -1
  283. package/types/extractor/errors.d.ts +0 -3
  284. package/types/extractor/errors.d.ts.map +0 -1
  285. package/types/extractor/evaluateAstNode.d.ts +0 -3
  286. package/types/extractor/evaluateAstNode.d.ts.map +0 -1
  287. package/types/extractor/extractHelpers.d.ts +0 -28
  288. package/types/extractor/extractHelpers.d.ts.map +0 -1
  289. package/types/extractor/extractMediaStyle.d.ts +0 -11
  290. package/types/extractor/extractMediaStyle.d.ts.map +0 -1
  291. package/types/extractor/extractToClassNames.d.ts +0 -25
  292. package/types/extractor/extractToClassNames.d.ts.map +0 -1
  293. package/types/extractor/extractToNative.d.ts +0 -13
  294. package/types/extractor/extractToNative.d.ts.map +0 -1
  295. package/types/extractor/findTopmostFunction.d.ts +0 -4
  296. package/types/extractor/findTopmostFunction.d.ts.map +0 -1
  297. package/types/extractor/generatedUid.d.ts +0 -5
  298. package/types/extractor/generatedUid.d.ts.map +0 -1
  299. package/types/extractor/getPrefixLogs.d.ts +0 -3
  300. package/types/extractor/getPrefixLogs.d.ts.map +0 -1
  301. package/types/extractor/getPropValueFromAttributes.d.ts +0 -19
  302. package/types/extractor/getPropValueFromAttributes.d.ts.map +0 -1
  303. package/types/extractor/getSourceModule.d.ts +0 -16
  304. package/types/extractor/getSourceModule.d.ts.map +0 -1
  305. package/types/extractor/getStaticBindingsForScope.d.ts +0 -5
  306. package/types/extractor/getStaticBindingsForScope.d.ts.map +0 -1
  307. package/types/extractor/hasTopLevelAwait.d.ts +0 -2
  308. package/types/extractor/hasTopLevelAwait.d.ts.map +0 -1
  309. package/types/extractor/hoistClassNames.d.ts +0 -6
  310. package/types/extractor/hoistClassNames.d.ts.map +0 -1
  311. package/types/extractor/literalToAst.d.ts +0 -4
  312. package/types/extractor/literalToAst.d.ts.map +0 -1
  313. package/types/extractor/loadFile.d.ts +0 -1
  314. package/types/extractor/loadFile.d.ts.map +0 -1
  315. package/types/extractor/logLines.d.ts +0 -2
  316. package/types/extractor/logLines.d.ts.map +0 -1
  317. package/types/extractor/normalizeTernaries.d.ts +0 -5
  318. package/types/extractor/normalizeTernaries.d.ts.map +0 -1
  319. package/types/extractor/propsToFontFamilyCache.d.ts +0 -4
  320. package/types/extractor/propsToFontFamilyCache.d.ts.map +0 -1
  321. package/types/extractor/removeUnusedHooks.d.ts +0 -3
  322. package/types/extractor/removeUnusedHooks.d.ts.map +0 -1
  323. package/types/extractor/timer.d.ts +0 -5
  324. package/types/extractor/timer.d.ts.map +0 -1
  325. package/types/extractor/validHTMLAttributes.d.ts +0 -52
  326. package/types/extractor/validHTMLAttributes.d.ts.map +0 -1
  327. package/types/worker.d.ts +0 -46
  328. package/types/worker.d.ts.map +0 -1
  329. /package/dist/{setup.cjs → cjs/setup.cjs} +0 -0
@@ -0,0 +1,306 @@
1
+ import { basename, dirname, extname, join, relative, resolve } from "node:path";
2
+ import { createRequire } from "node:module";
3
+ import { Color, colorLog } from "@tamagui/cli-color";
4
+ import esbuild from "esbuild";
5
+ import fsExtra from "fs-extra";
6
+ import { requireTamaguiCore } from "../helpers/requireTamaguiCore.mjs";
7
+ import { getNameToPaths, registerRequire, setRequireResult } from "../registerRequire.mjs";
8
+ import { getBundledConfig, getComponentStaticConfigByName, getLoadedConfig, hasBundledConfigChanged, loadComponentsSync, setLoadedConfig, writeTamaguiCSS } from "./bundleConfig.mjs";
9
+ import { getTamaguiConfigPathFromOptionsConfig } from "./getTamaguiConfigPathFromOptionsConfig.mjs";
10
+ import { generateTamaguiThemes, regenerateConfig, regenerateConfigSync } from "./regenerateConfig.mjs";
11
+
12
+ const nodeRequire = createRequire(typeof __filename === "string" ? __filename : import.meta.url);
13
+ const getFilledOptions = (propsIn) => ({
14
+ platform: "web",
15
+ config: "tamagui.config.ts",
16
+ components: ["tamagui"],
17
+ ...propsIn
18
+ });
19
+ let isLoadingPromise;
20
+ async function loadTamagui(propsIn, rebuild = false) {
21
+ if (isLoadingPromise) return await isLoadingPromise;
22
+ isLoadingPromise = (async () => {
23
+ const props = getFilledOptions(propsIn);
24
+ const bundleInfo = await getBundledConfig(props, rebuild);
25
+ if (!bundleInfo) throw new Error(`[tamagui] The config and component bundle completed without a project result`);
26
+ await generateThemesAndLog(props, rebuild);
27
+ const maybeTamaguiConfig = bundleInfo.tamaguiConfig;
28
+ if (maybeTamaguiConfig && !maybeTamaguiConfig.parsed) {
29
+ const { createTamagui } = requireTamaguiCore(props.platform || "web");
30
+ bundleInfo.tamaguiConfig = createTamagui(bundleInfo.tamaguiConfig);
31
+ }
32
+ if (!hasBundledConfigChanged()) return bundleInfo;
33
+ await regenerateConfig(props, bundleInfo);
34
+ return bundleInfo;
35
+ })();
36
+ try {
37
+ return await isLoadingPromise;
38
+ } finally {
39
+ isLoadingPromise = null;
40
+ }
41
+ }
42
+ async function loadTamaguiFromModules(propsIn, evaluated) {
43
+ const props = getFilledOptions(propsIn);
44
+ await generateThemesAndLog(props);
45
+ const configModule = evaluated.config;
46
+ let tamaguiConfig = configModule.default || configModule.config || configModule;
47
+ if ("config" in tamaguiConfig && tamaguiConfig.config && !("tokens" in tamaguiConfig)) tamaguiConfig = tamaguiConfig.config;
48
+ if (!tamaguiConfig) throw new Error(`The Vite module runner did not return a valid Tamagui config`);
49
+ const hostCore = requireTamaguiCore(props.platform || "web");
50
+ if (!tamaguiConfig.parsed) tamaguiConfig = hostCore.createTamagui(tamaguiConfig);
51
+ else hostCore.installTamaguiConfig(tamaguiConfig);
52
+ setLoadedConfig(tamaguiConfig);
53
+ const projectInfo = {
54
+ components: evaluated.components.map(({ moduleName, module }) => {
55
+ setRequireResult(moduleName, module);
56
+ return {
57
+ moduleName,
58
+ nameToInfo: getComponentStaticConfigByName(moduleName, module.default ?? module)
59
+ };
60
+ }),
61
+ nameToPaths: {},
62
+ tamaguiConfig,
63
+ stampSources: evaluated.stampSources
64
+ };
65
+ if (props.outputCSS) await writeTamaguiCSS(props.outputCSS, projectInfo.tamaguiConfig);
66
+ return projectInfo;
67
+ }
68
+ let waiting = false;
69
+ const generateThemesAndLog = async (options, force = false) => {
70
+ if (waiting) return;
71
+ if (!options.themeBuilder) return;
72
+ try {
73
+ waiting = true;
74
+ await new Promise((res) => setTimeout(res, 30));
75
+ if (await generateTamaguiThemes(options, force)) {
76
+ colorLog(Color.FgYellow, ` \u27A1 [tamagui] generated themes: ${relative(options.root || process.cwd(), options.themeBuilder.output)}`);
77
+ if (options.outputCSS) {
78
+ const loadedConfig = getLoadedConfig();
79
+ if (loadedConfig) await writeTamaguiCSS(options.outputCSS, loadedConfig);
80
+ }
81
+ }
82
+ } finally {
83
+ waiting = false;
84
+ }
85
+ };
86
+ const last = {};
87
+ const lastVersion = {};
88
+ const buildConfigDependencies = /* @__PURE__ */ new WeakMap();
89
+ function getTamaguiBuildConfigDependencies(options) {
90
+ return buildConfigDependencies.get(options) ?? [];
91
+ }
92
+ async function loadTamaguiBuildConfigAsync(tamaguiOptions) {
93
+ const buildFilePath = tamaguiOptions?.buildFile ?? "./tamagui.build.ts";
94
+ const root = tamaguiOptions?.root || process.cwd();
95
+ const absolutePath = resolve(root, buildFilePath);
96
+ if (fsExtra.existsSync(absolutePath)) try {
97
+ const result = await esbuild.build({
98
+ entryPoints: [absolutePath],
99
+ absWorkingDir: root,
100
+ bundle: true,
101
+ packages: "external",
102
+ platform: "node",
103
+ format: "cjs",
104
+ target: "node18",
105
+ write: false,
106
+ metafile: true
107
+ });
108
+ const module = { exports: {} };
109
+ const projectRequire = createRequire(absolutePath);
110
+ const code = result.outputFiles[0]?.text;
111
+ if (!code) throw new Error(`No output generated for ${buildFilePath}`);
112
+ new Function("module", "exports", "require", "process", code)(module, module.exports, projectRequire, process);
113
+ const out = module.exports.default || module.exports;
114
+ if (!out || typeof out !== "object") throw new Error(`No default export found in ${buildFilePath}: ${out}`);
115
+ const loadedOptions = {
116
+ ...tamaguiOptions,
117
+ ...out
118
+ };
119
+ const dependencies2 = Object.keys(result.metafile.inputs).map((input) => resolve(root, input));
120
+ buildConfigDependencies.set(loadedOptions, dependencies2);
121
+ tamaguiOptions = loadedOptions;
122
+ } catch (err) {
123
+ console.error(`[tamagui] Error loading ${buildFilePath}:`, err);
124
+ throw err;
125
+ }
126
+ if (!tamaguiOptions) throw new Error(`No tamagui build options found either via input props or at tamagui.build.ts`);
127
+ const options = {
128
+ config: "tamagui.config.ts",
129
+ components: ["tamagui", "@tamagui/core"],
130
+ ...tamaguiOptions
131
+ };
132
+ const dependencies = buildConfigDependencies.get(tamaguiOptions);
133
+ if (dependencies) buildConfigDependencies.set(options, dependencies);
134
+ return options;
135
+ }
136
+ function loadTamaguiBuildConfigSync(tamaguiOptions) {
137
+ const buildFilePath = tamaguiOptions?.buildFile ?? "./tamagui.build.ts";
138
+ const absolutePath = resolve(tamaguiOptions?.root || process.cwd(), buildFilePath);
139
+ if (fsExtra.existsSync(absolutePath)) {
140
+ const registered = registerRequire("web", { ignoredModules: tamaguiOptions?.dangerouslyIgnoreStaticEvaluationModules });
141
+ try {
142
+ const out = nodeRequire(absolutePath).default;
143
+ if (!out) throw new Error(`No default export found in ${buildFilePath}: ${out}`);
144
+ tamaguiOptions = {
145
+ ...tamaguiOptions,
146
+ ...out
147
+ };
148
+ } finally {
149
+ registered.unregister();
150
+ }
151
+ }
152
+ if (!tamaguiOptions) throw new Error(`No tamagui build options found either via input props or at tamagui.build.ts`);
153
+ return {
154
+ config: "tamagui.config.ts",
155
+ components: ["tamagui", "@tamagui/core"],
156
+ ...tamaguiOptions
157
+ };
158
+ }
159
+ function loadTamaguiSync({ forceExports, cacheKey, ...propsIn }) {
160
+ const key = JSON.stringify(propsIn);
161
+ if (last[key] && !hasBundledConfigChanged()) {
162
+ if (!lastVersion[key] || lastVersion[key] === cacheKey) return last[key];
163
+ }
164
+ lastVersion[key] = cacheKey || "";
165
+ const props = getFilledOptions(propsIn);
166
+ const previousIsStatic = process.env.IS_STATIC;
167
+ const previousIsServer = process.env.TAMAGUI_IS_SERVER;
168
+ const previousDev = globalThis["__DEV__"];
169
+ process.env.IS_STATIC = "is_static";
170
+ process.env.TAMAGUI_IS_SERVER = "true";
171
+ const { unregister } = registerRequire(props.platform || "web", { ignoredModules: props.dangerouslyIgnoreStaticEvaluationModules });
172
+ try {
173
+ globalThis["__DEV__"] = process.env.NODE_ENV === "development";
174
+ let tamaguiConfig = null;
175
+ if (propsIn.config) {
176
+ const configPath = getTamaguiConfigPathFromOptionsConfig(propsIn.config, propsIn.root);
177
+ const exp = nodeRequire(configPath);
178
+ if (!exp) throw new Error(`The Tamagui config module did not export a value`);
179
+ tamaguiConfig = exp["default"] || exp["config"] || exp;
180
+ if (!tamaguiConfig || !tamaguiConfig.parsed) {
181
+ const confPath = nodeRequire.resolve(configPath);
182
+ throw new Error(`Can't find valid config in ${confPath}:
183
+
184
+ Be sure you "export default" or "export const config" the config.`);
185
+ }
186
+ if (tamaguiConfig) {
187
+ const { createTamagui } = requireTamaguiCore(props.platform || "web");
188
+ createTamagui(tamaguiConfig);
189
+ }
190
+ }
191
+ const components = loadComponentsSync(props, forceExports);
192
+ if (!components) throw new Error(`No components loaded`);
193
+ if (process.env.DEBUG === "tamagui") console.info(`components`, components);
194
+ const info = {
195
+ components,
196
+ tamaguiConfig,
197
+ nameToPaths: getNameToPaths()
198
+ };
199
+ if (tamaguiConfig) {
200
+ const { outputCSS } = props;
201
+ if (outputCSS) writeTamaguiCSS(outputCSS, tamaguiConfig);
202
+ regenerateConfigSync(props, info);
203
+ }
204
+ last[key] = {
205
+ ...info,
206
+ cached: true
207
+ };
208
+ return info;
209
+ } finally {
210
+ if (previousIsStatic === void 0) delete process.env.IS_STATIC;
211
+ else process.env.IS_STATIC = previousIsStatic;
212
+ if (previousIsServer === void 0) delete process.env.TAMAGUI_IS_SERVER;
213
+ else process.env.TAMAGUI_IS_SERVER = previousIsServer;
214
+ globalThis["__DEV__"] = previousDev;
215
+ unregister();
216
+ }
217
+ }
218
+ async function getOptions({ root = process.cwd(), tsconfigPath = "tsconfig.json", tamaguiOptions, host, debug } = {}) {
219
+ const dotDir = join(root, ".tamagui");
220
+ let pkgJson = {};
221
+ try {
222
+ pkgJson = await fsExtra.readJSON(join(root, "package.json"));
223
+ } catch (err) {}
224
+ return {
225
+ mode: process.env.NODE_ENV === "production" ? "production" : "development",
226
+ root,
227
+ host: host || "127.0.0.1",
228
+ pkgJson,
229
+ debug,
230
+ tsconfigPath,
231
+ tamaguiOptions: {
232
+ platform: "web",
233
+ components: ["tamagui"],
234
+ ...tamaguiOptions,
235
+ config: tamaguiOptions?.config ?? await getDefaultTamaguiConfigPath(root, tamaguiOptions?.config)
236
+ },
237
+ paths: {
238
+ root,
239
+ dotDir,
240
+ conf: join(dotDir, "tamagui.config.json"),
241
+ types: join(dotDir, "types.json")
242
+ }
243
+ };
244
+ }
245
+ function resolveWebOrNativeSpecificEntry(entry, platform) {
246
+ const workspaceRoot = resolve();
247
+ const resolved = nodeRequire.resolve(entry, { paths: [workspaceRoot] });
248
+ const ext = extname(resolved);
249
+ const fileName = basename(resolved).replace(ext, "");
250
+ const specificExt = (platform || "web") === "web" ? "web" : "native";
251
+ const specificFile = join(dirname(resolved), fileName + "." + specificExt + ext);
252
+ if (fsExtra.existsSync(specificFile)) return specificFile;
253
+ return entry;
254
+ }
255
+ const defaultPaths = ["tamagui.config.ts", join("src", "tamagui.config.ts")];
256
+ let hasWarnedOnce = false;
257
+ async function getDefaultTamaguiConfigPath(root, configPath) {
258
+ const searchPaths = [...new Set([configPath, ...defaultPaths].filter(Boolean).map((p) => join(root, p)))];
259
+ for (const path of searchPaths) if (await fsExtra.pathExists(path)) return path;
260
+ if (!hasWarnedOnce) {
261
+ hasWarnedOnce = true;
262
+ console.warn(`Warning: couldn't find tamagui.config.ts in the following paths given configuration "${configPath}":
263
+ ${searchPaths.join(`
264
+ `)}
265
+ `);
266
+ }
267
+ }
268
+ async function esbuildWatchFiles(entry, onChanged) {
269
+ let hasRunOnce = false;
270
+ const context = await esbuild.context({
271
+ bundle: true,
272
+ entryPoints: [entry],
273
+ resolveExtensions: [
274
+ ".ts",
275
+ ".tsx",
276
+ ".js",
277
+ ".mjs"
278
+ ],
279
+ logLevel: "silent",
280
+ write: false,
281
+ alias: {
282
+ "react-native-web": "@tamagui/react-native-web-lite",
283
+ "react-native": "@tamagui/react-native-web-lite"
284
+ },
285
+ plugins: [{
286
+ name: `on-rebuild`,
287
+ setup({ onEnd, onResolve }) {
288
+ onResolve({ filter: /^[^./]|^\.[^./]|^\.\.[^/]/ }, (args) => ({
289
+ path: args.path,
290
+ external: true
291
+ }));
292
+ onEnd(() => {
293
+ if (!hasRunOnce) hasRunOnce = true;
294
+ else onChanged();
295
+ });
296
+ }
297
+ }]
298
+ });
299
+ context.watch();
300
+ return () => {
301
+ context.dispose();
302
+ };
303
+ }
304
+
305
+ export { esbuildWatchFiles, generateThemesAndLog, getOptions, getTamaguiBuildConfigDependencies, loadTamagui, loadTamaguiBuildConfigAsync, loadTamaguiBuildConfigSync, loadTamaguiFromModules, loadTamaguiSync, resolveWebOrNativeSpecificEntry };
306
+ //# sourceMappingURL=loadTamagui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadTamagui.js","names":[],"sources":["esm/extractor/loadTamagui.js"],"sourcesContent":["import { basename, dirname, extname, join, relative, resolve } from \"node:path\";\nimport { createRequire } from \"node:module\";\nimport { Color, colorLog } from \"@tamagui/cli-color\";\nimport esbuild from \"esbuild\";\nimport fsExtra from \"fs-extra\";\nimport { requireTamaguiCore } from \"../helpers/requireTamaguiCore\";\nimport { getNameToPaths, registerRequire, setRequireResult } from \"../registerRequire\";\nimport { getBundledConfig, getComponentStaticConfigByName, getLoadedConfig, hasBundledConfigChanged, loadComponentsSync, setLoadedConfig, writeTamaguiCSS } from \"./bundleConfig\";\nimport { getTamaguiConfigPathFromOptionsConfig } from \"./getTamaguiConfigPathFromOptionsConfig\";\nimport { generateTamaguiThemes, regenerateConfig, regenerateConfigSync } from \"./regenerateConfig\";\n\nconst nodeRequire = createRequire(typeof __filename === \"string\" ? __filename : import.meta.url);\nconst getFilledOptions = (propsIn) => ({\n\tplatform: \"web\",\n\tconfig: \"tamagui.config.ts\",\n\tcomponents: [\"tamagui\"],\n\t...propsIn\n});\nlet isLoadingPromise;\nasync function loadTamagui(propsIn, rebuild = false) {\n\tif (isLoadingPromise) return await isLoadingPromise;\n\tisLoadingPromise = (async () => {\n\t\tconst props = getFilledOptions(propsIn);\n\t\tconst bundleInfo = await getBundledConfig(props, rebuild);\n\t\tif (!bundleInfo) throw new Error(`[tamagui] The config and component bundle completed without a project result`);\n\t\tawait generateThemesAndLog(props, rebuild);\n\t\tconst maybeTamaguiConfig = bundleInfo.tamaguiConfig;\n\t\tif (maybeTamaguiConfig && !maybeTamaguiConfig.parsed) {\n\t\t\tconst { createTamagui } = requireTamaguiCore(props.platform || \"web\");\n\t\t\tbundleInfo.tamaguiConfig = createTamagui(bundleInfo.tamaguiConfig);\n\t\t}\n\t\tif (!hasBundledConfigChanged()) return bundleInfo;\n\t\tawait regenerateConfig(props, bundleInfo);\n\t\treturn bundleInfo;\n\t})();\n\ttry {\n\t\treturn await isLoadingPromise;\n\t} finally {\n\t\tisLoadingPromise = null;\n\t}\n}\nasync function loadTamaguiFromModules(propsIn, evaluated) {\n\tconst props = getFilledOptions(propsIn);\n\tawait generateThemesAndLog(props);\n\tconst configModule = evaluated.config;\n\tlet tamaguiConfig = configModule.default || configModule.config || configModule;\n\tif (\"config\" in tamaguiConfig && tamaguiConfig.config && !(\"tokens\" in tamaguiConfig)) tamaguiConfig = tamaguiConfig.config;\n\tif (!tamaguiConfig) throw new Error(`The Vite module runner did not return a valid Tamagui config`);\n\tconst hostCore = requireTamaguiCore(props.platform || \"web\");\n\tif (!tamaguiConfig.parsed) tamaguiConfig = hostCore.createTamagui(tamaguiConfig);\n\telse hostCore.installTamaguiConfig(tamaguiConfig);\n\tsetLoadedConfig(tamaguiConfig);\n\tconst projectInfo = {\n\t\tcomponents: evaluated.components.map(({ moduleName, module }) => {\n\t\t\tsetRequireResult(moduleName, module);\n\t\t\treturn {\n\t\t\t\tmoduleName,\n\t\t\t\tnameToInfo: getComponentStaticConfigByName(moduleName, module.default ?? module)\n\t\t\t};\n\t\t}),\n\t\tnameToPaths: {},\n\t\ttamaguiConfig,\n\t\tstampSources: evaluated.stampSources\n\t};\n\tif (props.outputCSS) await writeTamaguiCSS(props.outputCSS, projectInfo.tamaguiConfig);\n\treturn projectInfo;\n}\nlet waiting = false;\nconst generateThemesAndLog = async (options, force = false) => {\n\tif (waiting) return;\n\tif (!options.themeBuilder) return;\n\ttry {\n\t\twaiting = true;\n\t\tawait new Promise((res) => setTimeout(res, 30));\n\t\tif (await generateTamaguiThemes(options, force)) {\n\t\t\tcolorLog(Color.FgYellow, ` \\u27A1 [tamagui] generated themes: ${relative(options.root || process.cwd(), options.themeBuilder.output)}`);\n\t\t\tif (options.outputCSS) {\n\t\t\t\tconst loadedConfig = getLoadedConfig();\n\t\t\t\tif (loadedConfig) await writeTamaguiCSS(options.outputCSS, loadedConfig);\n\t\t\t}\n\t\t}\n\t} finally {\n\t\twaiting = false;\n\t}\n};\nconst last = {};\nconst lastVersion = {};\nconst buildConfigDependencies = /* @__PURE__ */ new WeakMap();\nfunction getTamaguiBuildConfigDependencies(options) {\n\treturn buildConfigDependencies.get(options) ?? [];\n}\nasync function loadTamaguiBuildConfigAsync(tamaguiOptions) {\n\tconst buildFilePath = tamaguiOptions?.buildFile ?? \"./tamagui.build.ts\";\n\tconst root = tamaguiOptions?.root || process.cwd();\n\tconst absolutePath = resolve(root, buildFilePath);\n\tif (fsExtra.existsSync(absolutePath)) try {\n\t\tconst result = await esbuild.build({\n\t\t\tentryPoints: [absolutePath],\n\t\t\tabsWorkingDir: root,\n\t\t\tbundle: true,\n\t\t\tpackages: \"external\",\n\t\t\tplatform: \"node\",\n\t\t\tformat: \"cjs\",\n\t\t\ttarget: \"node18\",\n\t\t\twrite: false,\n\t\t\tmetafile: true\n\t\t});\n\t\tconst module = { exports: {} };\n\t\tconst projectRequire = createRequire(absolutePath);\n\t\tconst code = result.outputFiles[0]?.text;\n\t\tif (!code) throw new Error(`No output generated for ${buildFilePath}`);\n\t\tnew Function(\"module\", \"exports\", \"require\", \"process\", code)(module, module.exports, projectRequire, process);\n\t\tconst out = module.exports.default || module.exports;\n\t\tif (!out || typeof out !== \"object\") throw new Error(`No default export found in ${buildFilePath}: ${out}`);\n\t\tconst loadedOptions = {\n\t\t\t...tamaguiOptions,\n\t\t\t...out\n\t\t};\n\t\tconst dependencies2 = Object.keys(result.metafile.inputs).map((input) => resolve(root, input));\n\t\tbuildConfigDependencies.set(loadedOptions, dependencies2);\n\t\ttamaguiOptions = loadedOptions;\n\t} catch (err) {\n\t\tconsole.error(`[tamagui] Error loading ${buildFilePath}:`, err);\n\t\tthrow err;\n\t}\n\tif (!tamaguiOptions) throw new Error(`No tamagui build options found either via input props or at tamagui.build.ts`);\n\tconst options = {\n\t\tconfig: \"tamagui.config.ts\",\n\t\tcomponents: [\"tamagui\", \"@tamagui/core\"],\n\t\t...tamaguiOptions\n\t};\n\tconst dependencies = buildConfigDependencies.get(tamaguiOptions);\n\tif (dependencies) buildConfigDependencies.set(options, dependencies);\n\treturn options;\n}\nfunction loadTamaguiBuildConfigSync(tamaguiOptions) {\n\tconst buildFilePath = tamaguiOptions?.buildFile ?? \"./tamagui.build.ts\";\n\tconst absolutePath = resolve(tamaguiOptions?.root || process.cwd(), buildFilePath);\n\tif (fsExtra.existsSync(absolutePath)) {\n\t\tconst registered = registerRequire(\"web\", { ignoredModules: tamaguiOptions?.dangerouslyIgnoreStaticEvaluationModules });\n\t\ttry {\n\t\t\tconst out = nodeRequire(absolutePath).default;\n\t\t\tif (!out) throw new Error(`No default export found in ${buildFilePath}: ${out}`);\n\t\t\ttamaguiOptions = {\n\t\t\t\t...tamaguiOptions,\n\t\t\t\t...out\n\t\t\t};\n\t\t} finally {\n\t\t\tregistered.unregister();\n\t\t}\n\t}\n\tif (!tamaguiOptions) throw new Error(`No tamagui build options found either via input props or at tamagui.build.ts`);\n\treturn {\n\t\tconfig: \"tamagui.config.ts\",\n\t\tcomponents: [\"tamagui\", \"@tamagui/core\"],\n\t\t...tamaguiOptions\n\t};\n}\nfunction loadTamaguiSync({ forceExports, cacheKey, ...propsIn }) {\n\tconst key = JSON.stringify(propsIn);\n\tif (last[key] && !hasBundledConfigChanged()) {\n\t\tif (!lastVersion[key] || lastVersion[key] === cacheKey) return last[key];\n\t}\n\tlastVersion[key] = cacheKey || \"\";\n\tconst props = getFilledOptions(propsIn);\n\tconst previousIsStatic = process.env.IS_STATIC;\n\tconst previousIsServer = process.env.TAMAGUI_IS_SERVER;\n\tconst previousDev = globalThis[\"__DEV__\"];\n\tprocess.env.IS_STATIC = \"is_static\";\n\tprocess.env.TAMAGUI_IS_SERVER = \"true\";\n\tconst { unregister } = registerRequire(props.platform || \"web\", { ignoredModules: props.dangerouslyIgnoreStaticEvaluationModules });\n\ttry {\n\t\tglobalThis[\"__DEV__\"] = process.env.NODE_ENV === \"development\";\n\t\tlet tamaguiConfig = null;\n\t\tif (propsIn.config) {\n\t\t\tconst configPath = getTamaguiConfigPathFromOptionsConfig(propsIn.config, propsIn.root);\n\t\t\tconst exp = nodeRequire(configPath);\n\t\t\tif (!exp) throw new Error(`The Tamagui config module did not export a value`);\n\t\t\ttamaguiConfig = exp[\"default\"] || exp[\"config\"] || exp;\n\t\t\tif (!tamaguiConfig || !tamaguiConfig.parsed) {\n\t\t\t\tconst confPath = nodeRequire.resolve(configPath);\n\t\t\t\tthrow new Error(`Can't find valid config in ${confPath}:\n \n Be sure you \"export default\" or \"export const config\" the config.`);\n\t\t\t}\n\t\t\tif (tamaguiConfig) {\n\t\t\t\tconst { createTamagui } = requireTamaguiCore(props.platform || \"web\");\n\t\t\t\tcreateTamagui(tamaguiConfig);\n\t\t\t}\n\t\t}\n\t\tconst components = loadComponentsSync(props, forceExports);\n\t\tif (!components) throw new Error(`No components loaded`);\n\t\tif (process.env.DEBUG === \"tamagui\") console.info(`components`, components);\n\t\tconst info = {\n\t\t\tcomponents,\n\t\t\ttamaguiConfig,\n\t\t\tnameToPaths: getNameToPaths()\n\t\t};\n\t\tif (tamaguiConfig) {\n\t\t\tconst { outputCSS } = props;\n\t\t\tif (outputCSS) writeTamaguiCSS(outputCSS, tamaguiConfig);\n\t\t\tregenerateConfigSync(props, info);\n\t\t}\n\t\tlast[key] = {\n\t\t\t...info,\n\t\t\tcached: true\n\t\t};\n\t\treturn info;\n\t} finally {\n\t\tif (previousIsStatic === void 0) delete process.env.IS_STATIC;\n\t\telse process.env.IS_STATIC = previousIsStatic;\n\t\tif (previousIsServer === void 0) delete process.env.TAMAGUI_IS_SERVER;\n\t\telse process.env.TAMAGUI_IS_SERVER = previousIsServer;\n\t\tglobalThis[\"__DEV__\"] = previousDev;\n\t\tunregister();\n\t}\n}\nasync function getOptions({ root = process.cwd(), tsconfigPath = \"tsconfig.json\", tamaguiOptions, host, debug } = {}) {\n\tconst dotDir = join(root, \".tamagui\");\n\tlet pkgJson = {};\n\ttry {\n\t\tpkgJson = await fsExtra.readJSON(join(root, \"package.json\"));\n\t} catch (err) {}\n\treturn {\n\t\tmode: process.env.NODE_ENV === \"production\" ? \"production\" : \"development\",\n\t\troot,\n\t\thost: host || \"127.0.0.1\",\n\t\tpkgJson,\n\t\tdebug,\n\t\ttsconfigPath,\n\t\ttamaguiOptions: {\n\t\t\tplatform: \"web\",\n\t\t\tcomponents: [\"tamagui\"],\n\t\t\t...tamaguiOptions,\n\t\t\tconfig: tamaguiOptions?.config ?? await getDefaultTamaguiConfigPath(root, tamaguiOptions?.config)\n\t\t},\n\t\tpaths: {\n\t\t\troot,\n\t\t\tdotDir,\n\t\t\tconf: join(dotDir, \"tamagui.config.json\"),\n\t\t\ttypes: join(dotDir, \"types.json\")\n\t\t}\n\t};\n}\nfunction resolveWebOrNativeSpecificEntry(entry, platform) {\n\tconst workspaceRoot = resolve();\n\tconst resolved = nodeRequire.resolve(entry, { paths: [workspaceRoot] });\n\tconst ext = extname(resolved);\n\tconst fileName = basename(resolved).replace(ext, \"\");\n\tconst specificExt = (platform || \"web\") === \"web\" ? \"web\" : \"native\";\n\tconst specificFile = join(dirname(resolved), fileName + \".\" + specificExt + ext);\n\tif (fsExtra.existsSync(specificFile)) return specificFile;\n\treturn entry;\n}\nconst defaultPaths = [\"tamagui.config.ts\", join(\"src\", \"tamagui.config.ts\")];\nlet hasWarnedOnce = false;\nasync function getDefaultTamaguiConfigPath(root, configPath) {\n\tconst searchPaths = [...new Set([configPath, ...defaultPaths].filter(Boolean).map((p) => join(root, p)))];\n\tfor (const path of searchPaths) if (await fsExtra.pathExists(path)) return path;\n\tif (!hasWarnedOnce) {\n\t\thasWarnedOnce = true;\n\t\tconsole.warn(`Warning: couldn't find tamagui.config.ts in the following paths given configuration \"${configPath}\":\n ${searchPaths.join(`\n `)}\n `);\n\t}\n}\nasync function esbuildWatchFiles(entry, onChanged) {\n\tlet hasRunOnce = false;\n\tconst context = await esbuild.context({\n\t\tbundle: true,\n\t\tentryPoints: [entry],\n\t\tresolveExtensions: [\n\t\t\t\".ts\",\n\t\t\t\".tsx\",\n\t\t\t\".js\",\n\t\t\t\".mjs\"\n\t\t],\n\t\tlogLevel: \"silent\",\n\t\twrite: false,\n\t\talias: {\n\t\t\t\"react-native-web\": \"@tamagui/react-native-web-lite\",\n\t\t\t\"react-native\": \"@tamagui/react-native-web-lite\"\n\t\t},\n\t\tplugins: [{\n\t\t\tname: `on-rebuild`,\n\t\t\tsetup({ onEnd, onResolve }) {\n\t\t\t\tonResolve({ filter: /^[^./]|^\\.[^./]|^\\.\\.[^/]/ }, (args) => ({\n\t\t\t\t\tpath: args.path,\n\t\t\t\t\texternal: true\n\t\t\t\t}));\n\t\t\t\tonEnd(() => {\n\t\t\t\t\tif (!hasRunOnce) hasRunOnce = true;\n\t\t\t\t\telse onChanged();\n\t\t\t\t});\n\t\t\t}\n\t\t}]\n\t});\n\tcontext.watch();\n\treturn () => {\n\t\tcontext.dispose();\n\t};\n}\n\nexport { esbuildWatchFiles, generateThemesAndLog, getOptions, getTamaguiBuildConfigDependencies, loadTamagui, loadTamaguiBuildConfigAsync, loadTamaguiBuildConfigSync, loadTamaguiFromModules, loadTamaguiSync, resolveWebOrNativeSpecificEntry };"],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ import { dirname, join } from "node:path";
2
+ import { createRequire } from "node:module";
3
+ import { generateThemes, writeGeneratedThemes } from "@tamagui/generate-themes";
4
+ import { stylePropsAll } from "@tamagui/helpers";
5
+ import { grammarEntries } from "@tamagui/style-grammar";
6
+ import FS from "fs-extra";
7
+ import { requireTamaguiCore } from "../helpers/requireTamaguiCore.mjs";
8
+ import { getBundledConfig } from "./bundleConfig.mjs";
9
+
10
+ async function regenerateConfig(tamaguiOptions, configIn, rebuild = false) {
11
+ try {
12
+ const config = configIn ?? await getBundledConfig(tamaguiOptions, rebuild);
13
+ if (!config) return;
14
+ const out = transformConfig(config, tamaguiOptions.platform || "web");
15
+ const confFile = getConfigFile(tamaguiOptions);
16
+ await FS.ensureDir(dirname(confFile));
17
+ await FS.writeJSON(confFile, out, { spaces: 2 });
18
+ } catch (err) {
19
+ if (process.env.DEBUG?.includes("tamagui") || process.env.IS_TAMAGUI_DEV) {
20
+ console.warn("regenerateConfig error", err);
21
+ }
22
+ }
23
+ }
24
+ function regenerateConfigSync(tamaguiOptions, config) {
25
+ try {
26
+ const confFile = getConfigFile(tamaguiOptions);
27
+ FS.ensureDirSync(dirname(confFile));
28
+ FS.writeJSONSync(confFile, transformConfig(config, tamaguiOptions.platform || "web"), { spaces: 2 });
29
+ } catch (err) {
30
+ if (process.env.DEBUG?.includes("tamagui") || process.env.IS_TAMAGUI_DEV) {
31
+ console.warn("regenerateConfig error", err);
32
+ }
33
+ }
34
+ }
35
+ async function generateTamaguiThemes(tamaguiOptions, force = false) {
36
+ if (!tamaguiOptions.themeBuilder) {
37
+ return;
38
+ }
39
+ const { input, output } = tamaguiOptions.themeBuilder;
40
+ const root = tamaguiOptions.root || process.cwd();
41
+ const tamaguiDir = join(root, ".tamagui");
42
+ const projectRequire = createRequire(join(root, "package.json"));
43
+ const inPath = resolveRelativePath(input, root, projectRequire);
44
+ const outPath = resolveRelativePath(output, root, projectRequire);
45
+ const generatedOutput = await generateThemes(inPath);
46
+ const hasChanged = force || await (async () => {
47
+ try {
48
+ if (!generatedOutput) return false;
49
+ const next = generatedOutput.generated;
50
+ const current = await FS.readFile(outPath, "utf-8");
51
+ return next !== current;
52
+ } catch (err) {}
53
+ return true;
54
+ })();
55
+ if (hasChanged) {
56
+ await writeGeneratedThemes(tamaguiDir, outPath, generatedOutput);
57
+ }
58
+ return hasChanged;
59
+ }
60
+ const getConfigFile = (options) => join(options.root || process.cwd(), ".tamagui", "tamagui.config.json");
61
+ const resolveRelativePath = (inputPath, root, projectRequire) => inputPath.startsWith(".") ? join(root, inputPath) : projectRequire.resolve(inputPath);
62
+ function cloneDeepSafe(x, excludeKeys = {}) {
63
+ if (!x) return x;
64
+ if (Array.isArray(x)) return x.map((_) => cloneDeepSafe(_));
65
+ if (typeof x === "function") return `Function`;
66
+ if (typeof x !== "object") return x;
67
+ if ("$$typeof" in x) return "Component";
68
+ return Object.fromEntries(Object.entries(x).flatMap(([k, v]) => excludeKeys[k] ? [] : [[k, cloneDeepSafe(v)]]));
69
+ }
70
+ function buildPropCategories() {
71
+ const out = {};
72
+ const byPrefix = {};
73
+ for (const entry of grammarEntries) {
74
+ if (entry.tokenCategory) out[entry.prop] = entry.tokenCategory;
75
+ if (entry.prefix) (byPrefix[entry.prefix] ||= /* @__PURE__ */ new Set()).add(entry.tokenCategory);
76
+ }
77
+ for (const [prefix, categories] of Object.entries(byPrefix)) {
78
+ if (categories.size !== 1) continue;
79
+ const [only] = categories;
80
+ if (only) out[prefix] = only;
81
+ }
82
+ return out;
83
+ }
84
+ function transformConfig(config, platform) {
85
+ if (!config) {
86
+ return null;
87
+ }
88
+ const { getVariableValue } = requireTamaguiCore(platform);
89
+ const next = cloneDeepSafe(config, { validStyles: true });
90
+ const { components, nameToPaths, tamaguiConfig } = next;
91
+ const { themes, tokens } = tamaguiConfig;
92
+ for (const key in themes) {
93
+ const theme = themes[key];
94
+ for (const tkey in theme) {
95
+ theme[tkey] = getVariableValue(theme[tkey]);
96
+ }
97
+ }
98
+ for (const key in tokens) {
99
+ const token = { ...tokens[key] };
100
+ for (const tkey in token) {
101
+ token[tkey] = getVariableValue(token[tkey]);
102
+ }
103
+ }
104
+ for (const component of components) {
105
+ for (const _ in component.nameToInfo) {
106
+ const compDefinition = { ...component.nameToInfo[_] };
107
+ component.nameToInfo[_] = compDefinition;
108
+ const { parentStaticConfig, ...rest } = compDefinition.staticConfig;
109
+ compDefinition.staticConfig = rest;
110
+ }
111
+ }
112
+ next.nameToPaths = {};
113
+ for (const key in nameToPaths) {
114
+ next.nameToPaths[key] = [...nameToPaths[key]];
115
+ }
116
+ const { fontsParsed, getCSS, tokensParsed, themeConfig, shorthands: _shorthands, userShorthands, ...cleanedConfig } = next.tamaguiConfig;
117
+ return {
118
+ components,
119
+ nameToPaths,
120
+ tamaguiConfigMetadata: { themeFields: "values-only" },
121
+ tamaguiConfig: {
122
+ ...cleanedConfig,
123
+ shorthands: userShorthands,
124
+ propCategories: buildPropCategories(),
125
+ styleProps: Object.keys(stylePropsAll)
126
+ }
127
+ };
128
+ }
129
+
130
+ export { generateTamaguiThemes, regenerateConfig, regenerateConfigSync };
131
+ //# sourceMappingURL=regenerateConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regenerateConfig.js","names":[],"sources":["esm/extractor/regenerateConfig.js"],"sourcesContent":["import { dirname, join } from \"node:path\";\nimport { createRequire } from \"node:module\";\nimport { generateThemes, writeGeneratedThemes } from \"@tamagui/generate-themes\";\nimport { stylePropsAll } from \"@tamagui/helpers\";\nimport { grammarEntries } from \"@tamagui/style-grammar\";\nimport FS from \"fs-extra\";\nimport { requireTamaguiCore } from \"../helpers/requireTamaguiCore\";\nimport { getBundledConfig } from \"./bundleConfig\";\nasync function regenerateConfig(tamaguiOptions, configIn, rebuild = false) {\n try {\n const config = configIn ?? await getBundledConfig(tamaguiOptions, rebuild);\n if (!config) return;\n const out = transformConfig(config, tamaguiOptions.platform || \"web\");\n const confFile = getConfigFile(tamaguiOptions);\n await FS.ensureDir(dirname(confFile));\n await FS.writeJSON(confFile, out, {\n spaces: 2\n });\n } catch (err) {\n if (process.env.DEBUG?.includes(\"tamagui\") || process.env.IS_TAMAGUI_DEV) {\n console.warn(\"regenerateConfig error\", err);\n }\n }\n}\nfunction regenerateConfigSync(tamaguiOptions, config) {\n try {\n const confFile = getConfigFile(tamaguiOptions);\n FS.ensureDirSync(dirname(confFile));\n FS.writeJSONSync(\n confFile,\n transformConfig(config, tamaguiOptions.platform || \"web\"),\n {\n spaces: 2\n }\n );\n } catch (err) {\n if (process.env.DEBUG?.includes(\"tamagui\") || process.env.IS_TAMAGUI_DEV) {\n console.warn(\"regenerateConfig error\", err);\n }\n }\n}\nasync function generateTamaguiThemes(tamaguiOptions, force = false) {\n if (!tamaguiOptions.themeBuilder) {\n return;\n }\n const { input, output } = tamaguiOptions.themeBuilder;\n const root = tamaguiOptions.root || process.cwd();\n const tamaguiDir = join(root, \".tamagui\");\n const projectRequire = createRequire(join(root, \"package.json\"));\n const inPath = resolveRelativePath(input, root, projectRequire);\n const outPath = resolveRelativePath(output, root, projectRequire);\n const generatedOutput = await generateThemes(inPath);\n const hasChanged = force || await (async () => {\n try {\n if (!generatedOutput) return false;\n const next = generatedOutput.generated;\n const current = await FS.readFile(outPath, \"utf-8\");\n return next !== current;\n } catch (err) {\n }\n return true;\n })();\n if (hasChanged) {\n await writeGeneratedThemes(tamaguiDir, outPath, generatedOutput);\n }\n return hasChanged;\n}\nconst getConfigFile = (options) => join(options.root || process.cwd(), \".tamagui\", \"tamagui.config.json\");\nconst resolveRelativePath = (inputPath, root, projectRequire) => inputPath.startsWith(\".\") ? join(root, inputPath) : projectRequire.resolve(inputPath);\nfunction cloneDeepSafe(x, excludeKeys = {}) {\n if (!x) return x;\n if (Array.isArray(x)) return x.map((_) => cloneDeepSafe(_));\n if (typeof x === \"function\") return `Function`;\n if (typeof x !== \"object\") return x;\n if (\"$$typeof\" in x) return \"Component\";\n return Object.fromEntries(\n Object.entries(x).flatMap(([k, v]) => excludeKeys[k] ? [] : [[k, cloneDeepSafe(v)]])\n );\n}\nfunction buildPropCategories() {\n const out = {};\n const byPrefix = {};\n for (const entry of grammarEntries) {\n if (entry.tokenCategory) out[entry.prop] = entry.tokenCategory;\n if (entry.prefix) (byPrefix[entry.prefix] ||= /* @__PURE__ */ new Set()).add(entry.tokenCategory);\n }\n for (const [prefix, categories] of Object.entries(byPrefix)) {\n if (categories.size !== 1) continue;\n const [only] = categories;\n if (only) out[prefix] = only;\n }\n return out;\n}\nfunction transformConfig(config, platform) {\n if (!config) {\n return null;\n }\n const { getVariableValue } = requireTamaguiCore(platform);\n const next = cloneDeepSafe(config, {\n validStyles: true\n });\n const { components, nameToPaths, tamaguiConfig } = next;\n const { themes, tokens } = tamaguiConfig;\n for (const key in themes) {\n const theme = themes[key];\n for (const tkey in theme) {\n theme[tkey] = getVariableValue(theme[tkey]);\n }\n }\n for (const key in tokens) {\n const token = { ...tokens[key] };\n for (const tkey in token) {\n token[tkey] = getVariableValue(token[tkey]);\n }\n }\n for (const component of components) {\n for (const _ in component.nameToInfo) {\n const compDefinition = { ...component.nameToInfo[_] };\n component.nameToInfo[_] = compDefinition;\n const { parentStaticConfig, ...rest } = compDefinition.staticConfig;\n compDefinition.staticConfig = rest;\n }\n }\n next.nameToPaths = {};\n for (const key in nameToPaths) {\n next.nameToPaths[key] = [...nameToPaths[key]];\n }\n const {\n fontsParsed,\n getCSS,\n tokensParsed,\n themeConfig,\n shorthands: _shorthands,\n userShorthands,\n ...cleanedConfig\n } = next.tamaguiConfig;\n return {\n components,\n nameToPaths,\n tamaguiConfigMetadata: {\n themeFields: \"values-only\"\n },\n tamaguiConfig: {\n ...cleanedConfig,\n // Output userShorthands as shorthands (excludes built-ins)\n shorthands: userShorthands,\n propCategories: buildPropCategories(),\n // every prop that can carry a style value. the shorthand tables alone\n // miss any long-form prop with no shorthand (`gap`, `backgroundColor`),\n // and the language server was silent inside exactly those.\n styleProps: Object.keys(stylePropsAll)\n }\n };\n}\nexport {\n generateTamaguiThemes,\n regenerateConfig,\n regenerateConfigSync\n};\n//# sourceMappingURL=regenerateConfig.js.map\n"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { createRequire } from "node:module";
2
+ import { esbuildWatchFiles, generateThemesAndLog, getOptions } from "./loadTamagui.mjs";
3
+ import { regenerateConfig } from "./regenerateConfig.mjs";
4
+
5
+ const nodeRequire = createRequire(typeof __filename === "string" ? __filename : import.meta.url);
6
+ let isWatching = false;
7
+ async function watchTamaguiConfig(tamaguiOptions) {
8
+ if (process.env.NODE_ENV === "production" || tamaguiOptions.disable) {
9
+ return { dispose() {} };
10
+ }
11
+ if (isWatching) {
12
+ return;
13
+ }
14
+ isWatching = true;
15
+ const options = await getOptions({ tamaguiOptions });
16
+ if (!options.tamaguiOptions.config) {
17
+ isWatching = false;
18
+ throw new Error(`No config`);
19
+ }
20
+ const disposeConfigWatcher = await esbuildWatchFiles(options.tamaguiOptions.config, async () => {
21
+ await generateThemesAndLog(options.tamaguiOptions);
22
+ await regenerateConfig(options.tamaguiOptions, null, true);
23
+ });
24
+ const themeBuilderInput = options.tamaguiOptions.themeBuilder?.input;
25
+ let disposeThemesWatcher;
26
+ if (themeBuilderInput) {
27
+ let inputPath = themeBuilderInput;
28
+ try {
29
+ inputPath = nodeRequire.resolve(themeBuilderInput);
30
+ } catch {}
31
+ disposeThemesWatcher = await esbuildWatchFiles(inputPath, async () => {
32
+ await generateThemesAndLog(options.tamaguiOptions);
33
+ });
34
+ }
35
+ return { dispose() {
36
+ isWatching = false;
37
+ disposeConfigWatcher();
38
+ disposeThemesWatcher?.();
39
+ } };
40
+ }
41
+
42
+ export { watchTamaguiConfig };
43
+ //# sourceMappingURL=watchTamaguiConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchTamaguiConfig.js","names":[],"sources":["esm/extractor/watchTamaguiConfig.js"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport { esbuildWatchFiles, generateThemesAndLog, getOptions } from \"./loadTamagui\";\nimport { regenerateConfig } from \"./regenerateConfig\";\nconst nodeRequire = createRequire(\n typeof __filename === \"string\" ? __filename : import.meta.url\n);\nlet isWatching = false;\nasync function watchTamaguiConfig(tamaguiOptions) {\n if (process.env.NODE_ENV === \"production\" || tamaguiOptions.disable) {\n return {\n dispose() {\n }\n };\n }\n if (isWatching) {\n return;\n }\n isWatching = true;\n const options = await getOptions({ tamaguiOptions });\n if (!options.tamaguiOptions.config) {\n isWatching = false;\n throw new Error(`No config`);\n }\n const disposeConfigWatcher = await esbuildWatchFiles(\n options.tamaguiOptions.config,\n async () => {\n await generateThemesAndLog(options.tamaguiOptions);\n await regenerateConfig(options.tamaguiOptions, null, true);\n }\n );\n const themeBuilderInput = options.tamaguiOptions.themeBuilder?.input;\n let disposeThemesWatcher;\n if (themeBuilderInput) {\n let inputPath = themeBuilderInput;\n try {\n inputPath = nodeRequire.resolve(themeBuilderInput);\n } catch {\n }\n disposeThemesWatcher = await esbuildWatchFiles(inputPath, async () => {\n await generateThemesAndLog(options.tamaguiOptions);\n });\n }\n return {\n dispose() {\n isWatching = false;\n disposeConfigWatcher();\n disposeThemesWatcher?.();\n }\n };\n}\nexport {\n watchTamaguiConfig\n};\n//# sourceMappingURL=watchTamaguiConfig.js.map\n"],"mappings":";;;;;AAGA,MAAM,cAAc,cAClB,OAAO,eAAe,WAAW,aAAa,OAAO,KAAK,GAC5D;AACA,IAAI,aAAa;AACjB,eAAe,mBAAmB,gBAAgB;CAChD,IAAI,QAAQ,IAAI,aAAa,gBAAgB,eAAe,SAAS;EACnE,OAAO,EACL,UAAU,CACV,EACF;CACF;CACA,IAAI,YAAY;EACd;CACF;CACA,aAAa;CACb,MAAM,UAAU,MAAM,WAAW,EAAE,eAAe,CAAC;CACnD,IAAI,CAAC,QAAQ,eAAe,QAAQ;EAClC,aAAa;EACb,MAAM,IAAI,MAAM,WAAW;CAC7B;CACA,MAAM,uBAAuB,MAAM,kBACjC,QAAQ,eAAe,QACvB,YAAY;EACV,MAAM,qBAAqB,QAAQ,cAAc;EACjD,MAAM,iBAAiB,QAAQ,gBAAgB,MAAM,IAAI;CAC3D,CACF;CACA,MAAM,oBAAoB,QAAQ,eAAe,cAAc;CAC/D,IAAI;CACJ,IAAI,mBAAmB;EACrB,IAAI,YAAY;EAChB,IAAI;GACF,YAAY,YAAY,QAAQ,iBAAiB;EACnD,QAAQ,CACR;EACA,uBAAuB,MAAM,kBAAkB,WAAW,YAAY;GACpE,MAAM,qBAAqB,QAAQ,cAAc;EACnD,CAAC;CACH;CACA,OAAO,EACL,UAAU;EACR,aAAa;EACb,qBAAqB;EACrB,uBAAuB;CACzB,EACF;AACF"}
@@ -0,0 +1,46 @@
1
+ function getPragmaOptions({ source, path }) {
2
+ let shouldPrintDebug = false;
3
+ let shouldDisable = false;
4
+ const firstLines = source.slice(0, 800);
5
+ let pragma = "";
6
+ for (const line of firstLines.split("\n")) {
7
+ const trimmed = line.trim();
8
+ if (trimmed && !trimmed.startsWith("//") && !trimmed.startsWith("/*")) {
9
+ break;
10
+ }
11
+ pragma = trimmed.match(/(\/\/|\/\*)\s?!?\s?(tamagui-ignore|debug|debug-verbose)(\n|\s|$).*/)?.[2].trim() || "";
12
+ if (pragma) {
13
+ pragma = pragma.replace("!", "").trim();
14
+ break;
15
+ }
16
+ }
17
+ switch (pragma) {
18
+ case "tamagui-ignore":
19
+ shouldDisable = true;
20
+ break;
21
+ case "debug":
22
+ shouldPrintDebug = true;
23
+ break;
24
+ case "debug-verbose":
25
+ shouldPrintDebug = "verbose";
26
+ break;
27
+ }
28
+ if (process.env.TAMAGUI_DEBUG_FILE) {
29
+ if (path.includes(process.env.TAMAGUI_DEBUG_FILE)) {
30
+ shouldPrintDebug = "verbose";
31
+ }
32
+ }
33
+ if (process.env.DEBUG?.includes("tamagui")) {
34
+ shouldPrintDebug ||= true;
35
+ }
36
+ if (process.env.DEBUG?.includes("tamagui-verbose")) {
37
+ shouldPrintDebug = "verbose";
38
+ }
39
+ return {
40
+ shouldPrintDebug,
41
+ shouldDisable
42
+ };
43
+ }
44
+
45
+ export { getPragmaOptions };
46
+ //# sourceMappingURL=getPragmaOptions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPragmaOptions.js","names":[],"sources":["esm/getPragmaOptions.js"],"sourcesContent":["function getPragmaOptions({ source, path }) {\n let shouldPrintDebug = false;\n let shouldDisable = false;\n const firstLines = source.slice(0, 800);\n let pragma = \"\";\n for (const line of firstLines.split(\"\\n\")) {\n const trimmed = line.trim();\n if (trimmed && !trimmed.startsWith(\"//\") && !trimmed.startsWith(\"/*\")) {\n break;\n }\n pragma = trimmed.match(/(\\/\\/|\\/\\*)\\s?!?\\s?(tamagui-ignore|debug|debug-verbose)(\\n|\\s|$).*/)?.[2].trim() || \"\";\n if (pragma) {\n pragma = pragma.replace(\"!\", \"\").trim();\n break;\n }\n }\n switch (pragma) {\n case \"tamagui-ignore\":\n shouldDisable = true;\n break;\n case \"debug\":\n shouldPrintDebug = true;\n break;\n case \"debug-verbose\":\n shouldPrintDebug = \"verbose\";\n break;\n }\n if (process.env.TAMAGUI_DEBUG_FILE) {\n if (path.includes(process.env.TAMAGUI_DEBUG_FILE)) {\n shouldPrintDebug = \"verbose\";\n }\n }\n if (process.env.DEBUG?.includes(\"tamagui\")) {\n shouldPrintDebug ||= true;\n }\n if (process.env.DEBUG?.includes(\"tamagui-verbose\")) {\n shouldPrintDebug = \"verbose\";\n }\n return {\n shouldPrintDebug,\n shouldDisable\n };\n}\nexport {\n getPragmaOptions\n};\n//# sourceMappingURL=getPragmaOptions.js.map\n"],"mappings":";AAAA,SAAS,iBAAiB,EAAE,QAAQ,QAAQ;CAC1C,IAAI,mBAAmB;CACvB,IAAI,gBAAgB;CACpB,MAAM,aAAa,OAAO,MAAM,GAAG,GAAG;CACtC,IAAI,SAAS;CACb,KAAK,MAAM,QAAQ,WAAW,MAAM,IAAI,GAAG;EACzC,MAAM,UAAU,KAAK,KAAK;EAC1B,IAAI,WAAW,CAAC,QAAQ,WAAW,IAAI,KAAK,CAAC,QAAQ,WAAW,IAAI,GAAG;GACrE;EACF;EACA,SAAS,QAAQ,MAAM,oEAAoE,IAAI,GAAG,KAAK,KAAK;EAC5G,IAAI,QAAQ;GACV,SAAS,OAAO,QAAQ,KAAK,EAAE,EAAE,KAAK;GACtC;EACF;CACF;CACA,QAAQ,QAAR;EACE,KAAK;GACH,gBAAgB;GAChB;EACF,KAAK;GACH,mBAAmB;GACnB;EACF,KAAK;GACH,mBAAmB;GACnB;CACJ;CACA,IAAI,QAAQ,IAAI,oBAAoB;EAClC,IAAI,KAAK,SAAS,QAAQ,IAAI,kBAAkB,GAAG;GACjD,mBAAmB;EACrB;CACF;CACA,IAAI,QAAQ,IAAI,OAAO,SAAS,SAAS,GAAG;EAC1C,qBAAqB;CACvB;CACA,IAAI,QAAQ,IAAI,OAAO,SAAS,iBAAiB,GAAG;EAClD,mBAAmB;CACrB;CACA,OAAO;EACL;EACA;CACF;AACF"}
@@ -0,0 +1,21 @@
1
+ function memoize(func, resolver) {
2
+ if (typeof func !== "function" || resolver != null && typeof resolver !== "function") {
3
+ throw new TypeError("Expected a function");
4
+ }
5
+ const memoized = function(...args) {
6
+ const key = resolver ? resolver.apply(this, args) : args[0];
7
+ const cache = memoized.cache;
8
+ if (cache.has(key)) {
9
+ return cache.get(key);
10
+ }
11
+ const result = func.apply(this, args);
12
+ memoized.cache = cache.set(key, result) || cache;
13
+ return result;
14
+ };
15
+ memoized.cache = new (memoize.Cache || Map)();
16
+ return memoized;
17
+ }
18
+ memoize.Cache = Map;
19
+
20
+ export { memoize };
21
+ //# sourceMappingURL=memoize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.js","names":[],"sources":["esm/helpers/memoize.js"],"sourcesContent":["function memoize(func, resolver) {\n if (typeof func !== \"function\" || resolver != null && typeof resolver !== \"function\") {\n throw new TypeError(\"Expected a function\");\n }\n const memoized = function(...args) {\n const key = resolver ? resolver.apply(this, args) : args[0];\n const cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || Map)();\n return memoized;\n}\nmemoize.Cache = Map;\nexport {\n memoize\n};\n//# sourceMappingURL=memoize.js.map\n"],"mappings":";AAAA,SAAS,QAAQ,MAAM,UAAU;CAC/B,IAAI,OAAO,SAAS,cAAc,YAAY,QAAQ,OAAO,aAAa,YAAY;EACpF,MAAM,IAAI,UAAU,qBAAqB;CAC3C;CACA,MAAM,WAAW,SAAS,GAAG,MAAM;EACjC,MAAM,MAAM,WAAW,SAAS,MAAM,MAAM,IAAI,IAAI,KAAK;EACzD,MAAM,QAAQ,SAAS;EACvB,IAAI,MAAM,IAAI,GAAG,GAAG;GAClB,OAAO,MAAM,IAAI,GAAG;EACtB;EACA,MAAM,SAAS,KAAK,MAAM,MAAM,IAAI;EACpC,SAAS,QAAQ,MAAM,IAAI,KAAK,MAAM,KAAK;EAC3C,OAAO;CACT;CACA,SAAS,QAAQ,KAAK,QAAQ,SAAS,KAAK;CAC5C,OAAO;AACT;AACA,QAAQ,QAAQ"}
@@ -0,0 +1,19 @@
1
+ import { createRequire } from "node:module";
2
+
3
+ const nodeRequire = createRequire(typeof __filename === "string" ? __filename : import.meta.url);
4
+ function requireTamaguiCore(platform, ogRequire = nodeRequire) {
5
+ if (!platform) {
6
+ throw new Error(`No platform given to requireTamaguiCore`);
7
+ }
8
+ const og1 = process.env.TAMAGUI_IS_SERVER;
9
+ const og2 = process.env.TAMAGUI_KEEP_THEMES;
10
+ process.env.TAMAGUI_IS_SERVER ||= "1";
11
+ process.env.TAMAGUI_KEEP_THEMES ||= "1";
12
+ const exported = ogRequire(platform === "native" ? "@tamagui/core/native" : "@tamagui/core");
13
+ process.env.TAMAGUI_IS_SERVER = og1;
14
+ process.env.TAMAGUI_KEEP_THEMES = og2;
15
+ return exported;
16
+ }
17
+
18
+ export { requireTamaguiCore };
19
+ //# sourceMappingURL=requireTamaguiCore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireTamaguiCore.js","names":[],"sources":["esm/helpers/requireTamaguiCore.js"],"sourcesContent":["import { createRequire } from \"node:module\";\nconst nodeRequire = createRequire(\n typeof __filename === \"string\" ? __filename : import.meta.url\n);\nfunction requireTamaguiCore(platform, ogRequire = nodeRequire) {\n if (!platform) {\n throw new Error(`No platform given to requireTamaguiCore`);\n }\n const og1 = process.env.TAMAGUI_IS_SERVER;\n const og2 = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_IS_SERVER ||= \"1\";\n process.env.TAMAGUI_KEEP_THEMES ||= \"1\";\n const exported = ogRequire(\n platform === \"native\" ? \"@tamagui/core/native\" : \"@tamagui/core\"\n );\n process.env.TAMAGUI_IS_SERVER = og1;\n process.env.TAMAGUI_KEEP_THEMES = og2;\n return exported;\n}\nexport {\n requireTamaguiCore\n};\n//# sourceMappingURL=requireTamaguiCore.js.map\n"],"mappings":";;;AACA,MAAM,cAAc,cAClB,OAAO,eAAe,WAAW,aAAa,OAAO,KAAK,GAC5D;AACA,SAAS,mBAAmB,UAAU,YAAY,aAAa;CAC7D,IAAI,CAAC,UAAU;EACb,MAAM,IAAI,MAAM,yCAAyC;CAC3D;CACA,MAAM,MAAM,QAAQ,IAAI;CACxB,MAAM,MAAM,QAAQ,IAAI;CACxB,QAAQ,IAAI,sBAAsB;CAClC,QAAQ,IAAI,wBAAwB;CACpC,MAAM,WAAW,UACf,aAAa,WAAW,yBAAyB,eACnD;CACA,QAAQ,IAAI,oBAAoB;CAChC,QAAQ,IAAI,sBAAsB;CAClC,OAAO;AACT"}