@tamagui/static 2.7.7 → 3.0.0-beta.1097.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 (335) hide show
  1. package/dist/cjs/check-dep-versions.cjs +354 -0
  2. package/dist/cjs/checkDeps.cjs +301 -0
  3. package/dist/cjs/compiler.cjs +349 -0
  4. package/dist/cjs/compilerHost.cjs +2287 -0
  5. package/dist/cjs/componentDiscovery.cjs +94 -0
  6. package/dist/cjs/constants.cjs +32 -0
  7. package/dist/cjs/domStructuralPass.cjs +121 -0
  8. package/dist/cjs/exports.cjs +44 -0
  9. package/dist/cjs/extractor/addLocalExports.cjs +63 -0
  10. package/dist/cjs/extractor/bundle.cjs +229 -0
  11. package/dist/cjs/extractor/bundleConfig.cjs +769 -0
  12. package/dist/cjs/extractor/concatClassName.cjs +120 -0
  13. package/dist/cjs/extractor/detectModuleFormat.cjs +53 -0
  14. package/dist/cjs/extractor/esbuildAliasPlugin.cjs +46 -0
  15. package/dist/cjs/extractor/esbuildTsconfigPaths.cjs +91 -0
  16. package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +42 -0
  17. package/dist/cjs/extractor/loadTamagui.cjs +394 -0
  18. package/dist/cjs/extractor/regenerateConfig.cjs +160 -0
  19. package/dist/cjs/extractor/watchTamaguiConfig.cjs +63 -0
  20. package/dist/cjs/getPragmaOptions.cjs +66 -0
  21. package/dist/cjs/helpers/memoize.cjs +41 -0
  22. package/dist/cjs/helpers/requireTamaguiCore.cjs +39 -0
  23. package/dist/cjs/index.cjs +33 -0
  24. package/dist/cjs/registerRequire.cjs +219 -0
  25. package/dist/cjs/server.cjs +65 -0
  26. package/dist/cjs/staticEvaluationIgnoredModules.cjs +85 -0
  27. package/dist/cjs/types.cjs +16 -0
  28. package/dist/cjs/zero/artifact.cjs +144 -0
  29. package/dist/cjs/zero/graph.cjs +208 -0
  30. package/dist/cjs/zero/identity.cjs +60 -0
  31. package/dist/cjs/zero/index.cjs +33 -0
  32. package/dist/cjs/zero/islands.cjs +235 -0
  33. package/dist/cjs/zero/options.cjs +162 -0
  34. package/dist/cjs/zero/ownership.cjs +78 -0
  35. package/dist/cjs/zero/theme.cjs +337 -0
  36. package/dist/cjs/zero/transform.cjs +207 -0
  37. package/dist/esm/check-dep-versions.mjs +329 -0
  38. package/dist/esm/check-dep-versions.mjs.map +1 -0
  39. package/dist/esm/checkDeps.mjs +279 -0
  40. package/dist/esm/checkDeps.mjs.map +1 -0
  41. package/dist/esm/compiler.mjs +319 -0
  42. package/dist/esm/compiler.mjs.map +1 -0
  43. package/dist/esm/compilerHost.mjs +2265 -0
  44. package/dist/esm/compilerHost.mjs.map +1 -0
  45. package/dist/esm/componentDiscovery.mjs +69 -0
  46. package/dist/esm/componentDiscovery.mjs.map +1 -0
  47. package/dist/esm/constants.mjs +7 -0
  48. package/dist/esm/constants.mjs.map +1 -0
  49. package/dist/esm/domStructuralPass.mjs +102 -0
  50. package/dist/esm/domStructuralPass.mjs.map +1 -0
  51. package/dist/esm/exports.mjs +29 -0
  52. package/dist/esm/extractor/addLocalExports.mjs +44 -0
  53. package/dist/esm/extractor/addLocalExports.mjs.map +1 -0
  54. package/dist/esm/extractor/bundle.mjs +199 -0
  55. package/dist/esm/extractor/bundle.mjs.map +1 -0
  56. package/dist/esm/extractor/bundleConfig.mjs +728 -0
  57. package/dist/esm/extractor/bundleConfig.mjs.map +1 -0
  58. package/dist/esm/extractor/concatClassName.mjs +100 -0
  59. package/dist/esm/extractor/concatClassName.mjs.map +1 -0
  60. package/dist/esm/extractor/detectModuleFormat.mjs +31 -0
  61. package/dist/esm/extractor/detectModuleFormat.mjs.map +1 -0
  62. package/dist/esm/extractor/esbuildAliasPlugin.mjs +26 -0
  63. package/dist/esm/extractor/esbuildAliasPlugin.mjs.map +1 -0
  64. package/dist/esm/extractor/esbuildTsconfigPaths.mjs +63 -0
  65. package/dist/esm/extractor/esbuildTsconfigPaths.mjs.map +1 -0
  66. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs +23 -0
  67. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs.map +1 -0
  68. package/dist/esm/extractor/loadTamagui.mjs +357 -0
  69. package/dist/esm/extractor/loadTamagui.mjs.map +1 -0
  70. package/dist/esm/extractor/regenerateConfig.mjs +131 -0
  71. package/dist/esm/extractor/regenerateConfig.mjs.map +1 -0
  72. package/dist/esm/extractor/watchTamaguiConfig.mjs +43 -0
  73. package/dist/esm/extractor/watchTamaguiConfig.mjs.map +1 -0
  74. package/dist/esm/getPragmaOptions.mjs +46 -0
  75. package/dist/esm/getPragmaOptions.mjs.map +1 -0
  76. package/dist/esm/helpers/memoize.mjs +21 -0
  77. package/dist/esm/helpers/memoize.mjs.map +1 -0
  78. package/dist/esm/helpers/requireTamaguiCore.mjs +19 -0
  79. package/dist/esm/helpers/requireTamaguiCore.mjs.map +1 -0
  80. package/dist/esm/index.mjs +8 -0
  81. package/dist/esm/index.mjs.map +1 -0
  82. package/dist/esm/registerRequire.mjs +195 -0
  83. package/dist/esm/registerRequire.mjs.map +1 -0
  84. package/dist/esm/server.mjs +40 -0
  85. package/dist/esm/server.mjs.map +1 -0
  86. package/dist/esm/setup.mjs +0 -0
  87. package/dist/esm/staticEvaluationIgnoredModules.mjs +61 -0
  88. package/dist/esm/staticEvaluationIgnoredModules.mjs.map +1 -0
  89. package/dist/esm/types.mjs +0 -0
  90. package/dist/esm/zero/artifact.mjs +119 -0
  91. package/dist/esm/zero/artifact.mjs.map +1 -0
  92. package/dist/esm/zero/graph.mjs +170 -0
  93. package/dist/esm/zero/graph.mjs.map +1 -0
  94. package/dist/esm/zero/identity.mjs +36 -0
  95. package/dist/esm/zero/identity.mjs.map +1 -0
  96. package/dist/esm/zero/index.mjs +19 -0
  97. package/dist/esm/zero/islands.mjs +201 -0
  98. package/dist/esm/zero/islands.mjs.map +1 -0
  99. package/dist/esm/zero/options.mjs +129 -0
  100. package/dist/esm/zero/options.mjs.map +1 -0
  101. package/dist/esm/zero/ownership.mjs +48 -0
  102. package/dist/esm/zero/ownership.mjs.map +1 -0
  103. package/dist/esm/zero/theme.mjs +313 -0
  104. package/dist/esm/zero/theme.mjs.map +1 -0
  105. package/dist/esm/zero/transform.mjs +182 -0
  106. package/dist/esm/zero/transform.mjs.map +1 -0
  107. package/package.json +38 -47
  108. package/src/check-dep-versions.ts +2 -2
  109. package/src/checkDeps.ts +3 -2
  110. package/src/compiler.ts +506 -0
  111. package/src/compilerHost.ts +3739 -0
  112. package/src/componentDiscovery.ts +105 -0
  113. package/src/constants.ts +0 -5
  114. package/src/domStructuralPass.ts +190 -0
  115. package/src/exports.ts +5 -6
  116. package/src/extractor/addLocalExports.ts +49 -0
  117. package/src/extractor/bundle.ts +38 -40
  118. package/src/extractor/bundleConfig.ts +368 -187
  119. package/src/extractor/concatClassName.ts +21 -24
  120. package/src/extractor/getTamaguiConfigPathFromOptionsConfig.ts +13 -5
  121. package/src/extractor/loadTamagui.ts +196 -143
  122. package/src/extractor/regenerateConfig.ts +65 -13
  123. package/src/extractor/watchTamaguiConfig.ts +6 -1
  124. package/src/helpers/requireTamaguiCore.ts +6 -1
  125. package/src/registerRequire.ts +94 -132
  126. package/src/staticEvaluationIgnoredModules.ts +74 -0
  127. package/src/types.ts +2 -107
  128. package/src/zero/artifact.ts +142 -0
  129. package/src/zero/graph.ts +359 -0
  130. package/src/zero/identity.ts +73 -0
  131. package/src/zero/index.ts +9 -0
  132. package/src/zero/islands.ts +266 -0
  133. package/src/zero/options.ts +239 -0
  134. package/src/zero/ownership.ts +113 -0
  135. package/src/zero/theme.ts +526 -0
  136. package/src/zero/transform.ts +329 -0
  137. package/types/check-dep-versions.d.ts.map +1 -1
  138. package/types/checkDeps.d.ts.map +1 -1
  139. package/types/compiler.d.ts +134 -0
  140. package/types/compiler.d.ts.map +1 -0
  141. package/types/compilerHost.d.ts +38 -0
  142. package/types/compilerHost.d.ts.map +1 -0
  143. package/types/componentDiscovery.d.ts +27 -0
  144. package/types/componentDiscovery.d.ts.map +1 -0
  145. package/types/constants.d.ts +0 -1
  146. package/types/constants.d.ts.map +1 -1
  147. package/types/domStructuralPass.d.ts +3 -0
  148. package/types/domStructuralPass.d.ts.map +1 -0
  149. package/types/exports.d.ts +5 -6
  150. package/types/exports.d.ts.map +1 -1
  151. package/types/extractor/addLocalExports.d.ts +3 -0
  152. package/types/extractor/addLocalExports.d.ts.map +1 -0
  153. package/types/extractor/bundle.d.ts +66 -65
  154. package/types/extractor/bundle.d.ts.map +1 -1
  155. package/types/extractor/bundleConfig.d.ts +26 -4
  156. package/types/extractor/bundleConfig.d.ts.map +1 -1
  157. package/types/extractor/esbuildAliasPlugin.d.ts.map +1 -1
  158. package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts +1 -1
  159. package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts.map +1 -1
  160. package/types/extractor/loadTamagui.d.ts +26 -3
  161. package/types/extractor/loadTamagui.d.ts.map +1 -1
  162. package/types/extractor/regenerateConfig.d.ts +1 -1
  163. package/types/extractor/regenerateConfig.d.ts.map +1 -1
  164. package/types/extractor/watchTamaguiConfig.d.ts.map +1 -1
  165. package/types/getPragmaOptions.d.ts +1 -1
  166. package/types/helpers/memoize.d.ts +1 -1
  167. package/types/helpers/memoize.d.ts.map +1 -1
  168. package/types/helpers/requireTamaguiCore.d.ts.map +1 -1
  169. package/types/index.d.ts.map +1 -1
  170. package/types/registerRequire.d.ts +2 -2
  171. package/types/registerRequire.d.ts.map +1 -1
  172. package/types/staticEvaluationIgnoredModules.d.ts +9 -0
  173. package/types/staticEvaluationIgnoredModules.d.ts.map +1 -0
  174. package/types/types.d.ts +2 -90
  175. package/types/types.d.ts.map +1 -1
  176. package/types/zero/artifact.d.ts +44 -0
  177. package/types/zero/artifact.d.ts.map +1 -0
  178. package/types/zero/graph.d.ts +139 -0
  179. package/types/zero/graph.d.ts.map +1 -0
  180. package/types/zero/identity.d.ts +33 -0
  181. package/types/zero/identity.d.ts.map +1 -0
  182. package/types/zero/index.d.ts +10 -0
  183. package/types/zero/index.d.ts.map +1 -0
  184. package/types/zero/islands.d.ts +56 -0
  185. package/types/zero/islands.d.ts.map +1 -0
  186. package/types/zero/options.d.ts +58 -0
  187. package/types/zero/options.d.ts.map +1 -0
  188. package/types/zero/ownership.d.ts +51 -0
  189. package/types/zero/ownership.d.ts.map +1 -0
  190. package/types/zero/theme.d.ts +85 -0
  191. package/types/zero/theme.d.ts.map +1 -0
  192. package/types/zero/transform.d.ts +53 -0
  193. package/types/zero/transform.d.ts.map +1 -0
  194. package/dist/check-dep-versions.cjs +0 -372
  195. package/dist/checkDeps.cjs +0 -271
  196. package/dist/constants.cjs +0 -51
  197. package/dist/exports.cjs +0 -48
  198. package/dist/extractor/accessSafe.cjs +0 -48
  199. package/dist/extractor/babelParse.cjs +0 -56
  200. package/dist/extractor/buildClassName.cjs +0 -86
  201. package/dist/extractor/bundle.cjs +0 -234
  202. package/dist/extractor/bundleConfig.cjs +0 -729
  203. package/dist/extractor/concatClassName.cjs +0 -129
  204. package/dist/extractor/createEvaluator.cjs +0 -88
  205. package/dist/extractor/createExtractor.cjs +0 -1968
  206. package/dist/extractor/createLogger.cjs +0 -50
  207. package/dist/extractor/detectModuleFormat.cjs +0 -55
  208. package/dist/extractor/ensureImportingConcat.cjs +0 -54
  209. package/dist/extractor/errors.cjs +0 -28
  210. package/dist/extractor/esbuildAliasPlugin.cjs +0 -56
  211. package/dist/extractor/esbuildTsconfigPaths.cjs +0 -108
  212. package/dist/extractor/evaluateAstNode.cjs +0 -128
  213. package/dist/extractor/extractHelpers.cjs +0 -182
  214. package/dist/extractor/extractMediaStyle.cjs +0 -169
  215. package/dist/extractor/extractToClassNames.cjs +0 -475
  216. package/dist/extractor/extractToNative.cjs +0 -369
  217. package/dist/extractor/findTopmostFunction.cjs +0 -43
  218. package/dist/extractor/generatedUid.cjs +0 -58
  219. package/dist/extractor/getPrefixLogs.cjs +0 -31
  220. package/dist/extractor/getPropValueFromAttributes.cjs +0 -85
  221. package/dist/extractor/getSourceModule.cjs +0 -100
  222. package/dist/extractor/getStaticBindingsForScope.cjs +0 -213
  223. package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +0 -41
  224. package/dist/extractor/hasTopLevelAwait.cjs +0 -62
  225. package/dist/extractor/hoistClassNames.cjs +0 -76
  226. package/dist/extractor/literalToAst.cjs +0 -109
  227. package/dist/extractor/loadFile.cjs +0 -17
  228. package/dist/extractor/loadTamagui.cjs +0 -373
  229. package/dist/extractor/logLines.cjs +0 -43
  230. package/dist/extractor/normalizeTernaries.cjs +0 -100
  231. package/dist/extractor/propsToFontFamilyCache.cjs +0 -42
  232. package/dist/extractor/regenerateConfig.cjs +0 -178
  233. package/dist/extractor/removeUnusedHooks.cjs +0 -108
  234. package/dist/extractor/timer.cjs +0 -52
  235. package/dist/extractor/validHTMLAttributes.cjs +0 -79
  236. package/dist/extractor/watchTamaguiConfig.cjs +0 -70
  237. package/dist/getPragmaOptions.cjs +0 -73
  238. package/dist/helpers/memoize.cjs +0 -45
  239. package/dist/helpers/requireTamaguiCore.cjs +0 -40
  240. package/dist/index.cjs +0 -42
  241. package/dist/registerRequire.cjs +0 -209
  242. package/dist/server.cjs +0 -82
  243. package/dist/types.cjs +0 -18
  244. package/dist/worker.cjs +0 -111
  245. package/src/extractor/accessSafe.ts +0 -22
  246. package/src/extractor/babelParse.ts +0 -38
  247. package/src/extractor/buildClassName.ts +0 -76
  248. package/src/extractor/createEvaluator.ts +0 -82
  249. package/src/extractor/createExtractor.ts +0 -2970
  250. package/src/extractor/createLogger.ts +0 -41
  251. package/src/extractor/ensureImportingConcat.ts +0 -36
  252. package/src/extractor/errors.ts +0 -1
  253. package/src/extractor/evaluateAstNode.ts +0 -136
  254. package/src/extractor/extractHelpers.ts +0 -211
  255. package/src/extractor/extractMediaStyle.ts +0 -194
  256. package/src/extractor/extractToClassNames.ts +0 -733
  257. package/src/extractor/extractToNative.ts +0 -506
  258. package/src/extractor/findTopmostFunction.ts +0 -24
  259. package/src/extractor/generatedUid.ts +0 -41
  260. package/src/extractor/getPrefixLogs.ts +0 -9
  261. package/src/extractor/getPropValueFromAttributes.ts +0 -95
  262. package/src/extractor/getSourceModule.ts +0 -96
  263. package/src/extractor/getStaticBindingsForScope.ts +0 -237
  264. package/src/extractor/hasTopLevelAwait.ts +0 -28
  265. package/src/extractor/hoistClassNames.ts +0 -52
  266. package/src/extractor/literalToAst.ts +0 -85
  267. package/src/extractor/loadFile.ts +0 -17
  268. package/src/extractor/logLines.ts +0 -16
  269. package/src/extractor/normalizeTernaries.ts +0 -89
  270. package/src/extractor/propsToFontFamilyCache.ts +0 -18
  271. package/src/extractor/removeUnusedHooks.ts +0 -83
  272. package/src/extractor/timer.ts +0 -25
  273. package/src/extractor/validHTMLAttributes.ts +0 -52
  274. package/src/worker.ts +0 -142
  275. package/types/extractor/accessSafe.d.ts +0 -3
  276. package/types/extractor/accessSafe.d.ts.map +0 -1
  277. package/types/extractor/babelParse.d.ts +0 -5
  278. package/types/extractor/babelParse.d.ts.map +0 -1
  279. package/types/extractor/buildClassName.d.ts +0 -7
  280. package/types/extractor/buildClassName.d.ts.map +0 -1
  281. package/types/extractor/createEvaluator.d.ts +0 -12
  282. package/types/extractor/createEvaluator.d.ts.map +0 -1
  283. package/types/extractor/createExtractor.d.ts +0 -32
  284. package/types/extractor/createExtractor.d.ts.map +0 -1
  285. package/types/extractor/createLogger.d.ts +0 -3
  286. package/types/extractor/createLogger.d.ts.map +0 -1
  287. package/types/extractor/ensureImportingConcat.d.ts +0 -4
  288. package/types/extractor/ensureImportingConcat.d.ts.map +0 -1
  289. package/types/extractor/errors.d.ts +0 -3
  290. package/types/extractor/errors.d.ts.map +0 -1
  291. package/types/extractor/evaluateAstNode.d.ts +0 -3
  292. package/types/extractor/evaluateAstNode.d.ts.map +0 -1
  293. package/types/extractor/extractHelpers.d.ts +0 -28
  294. package/types/extractor/extractHelpers.d.ts.map +0 -1
  295. package/types/extractor/extractMediaStyle.d.ts +0 -11
  296. package/types/extractor/extractMediaStyle.d.ts.map +0 -1
  297. package/types/extractor/extractToClassNames.d.ts +0 -25
  298. package/types/extractor/extractToClassNames.d.ts.map +0 -1
  299. package/types/extractor/extractToNative.d.ts +0 -13
  300. package/types/extractor/extractToNative.d.ts.map +0 -1
  301. package/types/extractor/findTopmostFunction.d.ts +0 -4
  302. package/types/extractor/findTopmostFunction.d.ts.map +0 -1
  303. package/types/extractor/generatedUid.d.ts +0 -5
  304. package/types/extractor/generatedUid.d.ts.map +0 -1
  305. package/types/extractor/getPrefixLogs.d.ts +0 -3
  306. package/types/extractor/getPrefixLogs.d.ts.map +0 -1
  307. package/types/extractor/getPropValueFromAttributes.d.ts +0 -19
  308. package/types/extractor/getPropValueFromAttributes.d.ts.map +0 -1
  309. package/types/extractor/getSourceModule.d.ts +0 -16
  310. package/types/extractor/getSourceModule.d.ts.map +0 -1
  311. package/types/extractor/getStaticBindingsForScope.d.ts +0 -5
  312. package/types/extractor/getStaticBindingsForScope.d.ts.map +0 -1
  313. package/types/extractor/hasTopLevelAwait.d.ts +0 -2
  314. package/types/extractor/hasTopLevelAwait.d.ts.map +0 -1
  315. package/types/extractor/hoistClassNames.d.ts +0 -6
  316. package/types/extractor/hoistClassNames.d.ts.map +0 -1
  317. package/types/extractor/literalToAst.d.ts +0 -4
  318. package/types/extractor/literalToAst.d.ts.map +0 -1
  319. package/types/extractor/loadFile.d.ts +0 -1
  320. package/types/extractor/loadFile.d.ts.map +0 -1
  321. package/types/extractor/logLines.d.ts +0 -2
  322. package/types/extractor/logLines.d.ts.map +0 -1
  323. package/types/extractor/normalizeTernaries.d.ts +0 -5
  324. package/types/extractor/normalizeTernaries.d.ts.map +0 -1
  325. package/types/extractor/propsToFontFamilyCache.d.ts +0 -4
  326. package/types/extractor/propsToFontFamilyCache.d.ts.map +0 -1
  327. package/types/extractor/removeUnusedHooks.d.ts +0 -3
  328. package/types/extractor/removeUnusedHooks.d.ts.map +0 -1
  329. package/types/extractor/timer.d.ts +0 -5
  330. package/types/extractor/timer.d.ts.map +0 -1
  331. package/types/extractor/validHTMLAttributes.d.ts +0 -52
  332. package/types/extractor/validHTMLAttributes.d.ts.map +0 -1
  333. package/types/worker.d.ts +0 -46
  334. package/types/worker.d.ts.map +0 -1
  335. /package/dist/{setup.cjs → cjs/setup.cjs} +0 -0
@@ -0,0 +1,102 @@
1
+ import { ATTRIBUTES, EVENTS, NATIVE_BACKING, TAGS } from "@tamagui/dom";
2
+ import { localBailout } from "@tamagui/compiler-core";
3
+ import { createHash } from "node:crypto";
4
+
5
+ const DOM_FRONTENDS = /* @__PURE__ */ new Set([
6
+ "tamagui",
7
+ "tamagui/dom",
8
+ "@tamagui/core",
9
+ "@tamagui/core/dom",
10
+ "@tamagui/tailwind"
11
+ ]);
12
+ const RUNTIME_STYLE_FRONTENDS = /* @__PURE__ */ new Set([
13
+ "tamagui",
14
+ "@tamagui/core",
15
+ "@tamagui/web"
16
+ ]);
17
+ const acceptsTag = (accepted, tag) => accepted === "*" || accepted.includes(tag);
18
+ function isDOMElement(element) {
19
+ const provenance = element.component.provenance;
20
+ return provenance?.importedName === "html" && DOM_FRONTENDS.has(provenance.specifier);
21
+ }
22
+ const versionHash = createHash("sha256").update(JSON.stringify({
23
+ ATTRIBUTES,
24
+ EVENTS,
25
+ NATIVE_BACKING,
26
+ TAGS
27
+ })).digest("hex");
28
+ const domStructuralPass = {
29
+ versionHash: `dom-structural-v4-${versionHash}`,
30
+ transform({ module, source, target }) {
31
+ const edits = [];
32
+ const diagnostics = [];
33
+ const domElements = module.elements.filter(isDOMElement);
34
+ const supportedDOMElements = domElements.filter((element) => element.component.name in TAGS);
35
+ const domBySpan = new Map(supportedDOMElements.map((element) => [`${element.span.start}:${element.span.end}`, element]));
36
+ for (const element of domElements) {
37
+ const tagName = element.component.name;
38
+ if (!(tagName in TAGS)) {
39
+ diagnostics.push(localBailout("local/unsupported-target", element.component.span, `html.${element.component.name} is not part of the Tamagui DOM contract`));
40
+ continue;
41
+ }
42
+ const tag = TAGS[tagName];
43
+ if (target === "native" && tag.native === "none") {
44
+ diagnostics.push(localBailout("local/unsupported-target", element.component.span, `html.${tagName} is not supported on native: ${tag.note ?? "no native backing"}`));
45
+ continue;
46
+ }
47
+ for (const entry of element.entries) {
48
+ if (entry.kind !== "prop") continue;
49
+ const attribute = (entry.name in ATTRIBUTES ? ATTRIBUTES[entry.name] : void 0) ?? (entry.name.startsWith("data-") ? ATTRIBUTES["data-*"] : void 0);
50
+ const event = entry.name in EVENTS ? EVENTS[entry.name] : void 0;
51
+ const row = attribute ?? event;
52
+ if (!row) continue;
53
+ if (!acceptsTag(row.tags, tagName)) {
54
+ diagnostics.push(localBailout("local/unsupported-prop-key", entry.span, `${entry.name} is not supported on html.${tagName}`));
55
+ continue;
56
+ }
57
+ if (target === "native" && row.native === "none") {
58
+ if (event) continue;
59
+ diagnostics.push(localBailout("local/unsupported-prop-key", entry.span, `${entry.name} is not supported on native html.${tagName}: ${row.note ?? "no native equivalent"}`));
60
+ }
61
+ }
62
+ for (const entry of element.entries) {
63
+ if (entry.kind !== "child" || entry.value.kind !== "element") continue;
64
+ const child = domBySpan.get(`${entry.value.span.start}:${entry.value.span.end}`);
65
+ if (!child) continue;
66
+ const childTag = child.component.name;
67
+ const invalid = tag.content === "void" || tag.content === "text" || tag.content === "phrasing" && TAGS[childTag].display === "block" || tag.content === "tags" && !tag.childTags?.includes(childTag);
68
+ if (invalid) {
69
+ diagnostics.push(localBailout("local/unsupported-child", child.component.span, `html.${childTag} cannot be nested directly inside html.${tagName}`));
70
+ }
71
+ }
72
+ }
73
+ for (const definition of module.domStyleDefinitions) {
74
+ if (definition.value.kind !== "static") {
75
+ diagnostics.push(localBailout("local/dynamic-style-value", definition.value.span, `style() definition ${definition.name} must be statically evaluable`));
76
+ continue;
77
+ }
78
+ const isRuntimeStyle = RUNTIME_STYLE_FRONTENDS.has(definition.factory.specifier);
79
+ if (isRuntimeStyle && (!definition.value.value || typeof definition.value.value !== "object" || Array.isArray(definition.value.value))) {
80
+ diagnostics.push(localBailout("local/dynamic-style-value", definition.value.span, `style() definition ${definition.name} must be an object literal`));
81
+ continue;
82
+ }
83
+ edits.push({
84
+ start: definition.span.start,
85
+ end: definition.span.end,
86
+ content: isRuntimeStyle ? `({ className: "", [Symbol.for("tamagui.stylePiece")]: { byKey: {}, styleObject: ${JSON.stringify(definition.value.value)} } })` : "undefined",
87
+ origin: definition.span
88
+ });
89
+ }
90
+ const nextModule = module;
91
+ return {
92
+ module: nextModule,
93
+ edits,
94
+ imports: [],
95
+ diagnostics,
96
+ dependencies: []
97
+ };
98
+ }
99
+ };
100
+
101
+ export { domStructuralPass };
102
+ //# sourceMappingURL=domStructuralPass.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domStructuralPass.js","names":[],"sources":["esm/domStructuralPass.js"],"sourcesContent":["import {\n ATTRIBUTES,\n EVENTS,\n NATIVE_BACKING,\n TAGS\n} from \"@tamagui/dom\";\nimport {\n localBailout\n} from \"@tamagui/compiler-core\";\nimport { createHash } from \"node:crypto\";\nconst DOM_FRONTENDS = /* @__PURE__ */ new Set([\n \"tamagui\",\n \"tamagui/dom\",\n \"@tamagui/core\",\n \"@tamagui/core/dom\",\n \"@tamagui/tailwind\"\n]);\nconst RUNTIME_STYLE_FRONTENDS = /* @__PURE__ */ new Set([\"tamagui\", \"@tamagui/core\", \"@tamagui/web\"]);\nconst acceptsTag = (accepted, tag) => accepted === \"*\" || accepted.includes(tag);\nfunction isDOMElement(element) {\n const provenance = element.component.provenance;\n return provenance?.importedName === \"html\" && DOM_FRONTENDS.has(provenance.specifier);\n}\nconst versionHash = createHash(\"sha256\").update(\n JSON.stringify({\n ATTRIBUTES,\n EVENTS,\n NATIVE_BACKING,\n TAGS\n })\n).digest(\"hex\");\nconst domStructuralPass = {\n versionHash: `dom-structural-v4-${versionHash}`,\n transform({ module, source, target }) {\n const edits = [];\n const diagnostics = [];\n const domElements = module.elements.filter(isDOMElement);\n const supportedDOMElements = domElements.filter(\n (element) => element.component.name in TAGS\n );\n const domBySpan = new Map(\n supportedDOMElements.map((element) => [\n `${element.span.start}:${element.span.end}`,\n element\n ])\n );\n for (const element of domElements) {\n const tagName = element.component.name;\n if (!(tagName in TAGS)) {\n diagnostics.push(\n localBailout(\n \"local/unsupported-target\",\n element.component.span,\n `html.${element.component.name} is not part of the Tamagui DOM contract`\n )\n );\n continue;\n }\n const tag = TAGS[tagName];\n if (target === \"native\" && tag.native === \"none\") {\n diagnostics.push(\n localBailout(\n \"local/unsupported-target\",\n element.component.span,\n `html.${tagName} is not supported on native: ${tag.note ?? \"no native backing\"}`\n )\n );\n continue;\n }\n for (const entry of element.entries) {\n if (entry.kind !== \"prop\") continue;\n const attribute = (entry.name in ATTRIBUTES ? ATTRIBUTES[entry.name] : void 0) ?? (entry.name.startsWith(\"data-\") ? ATTRIBUTES[\"data-*\"] : void 0);\n const event = entry.name in EVENTS ? EVENTS[entry.name] : void 0;\n const row = attribute ?? event;\n if (!row) continue;\n if (!acceptsTag(row.tags, tagName)) {\n diagnostics.push(\n localBailout(\n \"local/unsupported-prop-key\",\n entry.span,\n `${entry.name} is not supported on html.${tagName}`\n )\n );\n continue;\n }\n if (target === \"native\" && row.native === \"none\") {\n if (event) continue;\n diagnostics.push(\n localBailout(\n \"local/unsupported-prop-key\",\n entry.span,\n `${entry.name} is not supported on native html.${tagName}: ${row.note ?? \"no native equivalent\"}`\n )\n );\n }\n }\n for (const entry of element.entries) {\n if (entry.kind !== \"child\" || entry.value.kind !== \"element\") continue;\n const child = domBySpan.get(`${entry.value.span.start}:${entry.value.span.end}`);\n if (!child) continue;\n const childTag = child.component.name;\n const invalid = tag.content === \"void\" || tag.content === \"text\" || tag.content === \"phrasing\" && TAGS[childTag].display === \"block\" || tag.content === \"tags\" && !tag.childTags?.includes(childTag);\n if (invalid) {\n diagnostics.push(\n localBailout(\n \"local/unsupported-child\",\n child.component.span,\n `html.${childTag} cannot be nested directly inside html.${tagName}`\n )\n );\n }\n }\n }\n for (const definition of module.domStyleDefinitions) {\n if (definition.value.kind !== \"static\") {\n diagnostics.push(\n localBailout(\n \"local/dynamic-style-value\",\n definition.value.span,\n `style() definition ${definition.name} must be statically evaluable`\n )\n );\n continue;\n }\n const isRuntimeStyle = RUNTIME_STYLE_FRONTENDS.has(definition.factory.specifier);\n if (isRuntimeStyle && (!definition.value.value || typeof definition.value.value !== \"object\" || Array.isArray(definition.value.value))) {\n diagnostics.push(\n localBailout(\n \"local/dynamic-style-value\",\n definition.value.span,\n `style() definition ${definition.name} must be an object literal`\n )\n );\n continue;\n }\n edits.push({\n start: definition.span.start,\n end: definition.span.end,\n content: isRuntimeStyle ? `({ className: \"\", [Symbol.for(\"tamagui.stylePiece\")]: { byKey: {}, styleObject: ${JSON.stringify(definition.value.value)} } })` : \"undefined\",\n origin: definition.span\n });\n }\n const nextModule = module;\n return {\n module: nextModule,\n edits,\n imports: [],\n diagnostics,\n dependencies: []\n };\n }\n};\nexport {\n domStructuralPass\n};\n//# sourceMappingURL=domStructuralPass.js.map\n"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { evaluateComponentModule } from "./extractor/bundleConfig.mjs";
2
+ import { clearFormatCache, detectModuleFormat } from "./extractor/detectModuleFormat.mjs";
3
+ import { esbundleTamaguiConfig } from "./extractor/bundle.mjs";
4
+
5
+ export * from "./checkDeps.mjs"
6
+
7
+ export * from "./compilerHost.mjs"
8
+
9
+ export * from "./compiler.mjs"
10
+
11
+ export * from "./types.mjs"
12
+
13
+ export * from "./constants.mjs"
14
+
15
+ export * from "./extractor/concatClassName.mjs"
16
+
17
+ export * from "./extractor/loadTamagui.mjs"
18
+
19
+ export * from "./componentDiscovery.mjs"
20
+
21
+ export * from "./extractor/watchTamaguiConfig.mjs"
22
+
23
+ export * from "./registerRequire.mjs"
24
+
25
+ export * from "./getPragmaOptions.mjs"
26
+
27
+ export * from "./zero/index.mjs"
28
+
29
+ export { clearFormatCache, detectModuleFormat, esbundleTamaguiConfig, evaluateComponentModule };
@@ -0,0 +1,44 @@
1
+ import { childNode, childNodes, identifierName, parseModuleAst } from "@tamagui/compiler-core";
2
+
3
+ function declarationName(node) {
4
+ return identifierName(node ? childNode(node, "id") : null);
5
+ }
6
+ function addLocalExports(source, id) {
7
+ const program = parseModuleAst(source, id);
8
+ const usedNames = /* @__PURE__ */ new Set();
9
+ const candidates = [];
10
+ for (const statement of childNodes(program, "body")) {
11
+ if (statement.type === "ExportNamedDeclaration") {
12
+ for (const specifier of childNodes(statement, "specifiers")) {
13
+ const exported = childNode(specifier, "exported");
14
+ const name2 = identifierName(exported);
15
+ if (name2) usedNames.add(name2);
16
+ }
17
+ const declaration2 = childNode(statement, "declaration");
18
+ if (declaration2?.type === "VariableDeclaration") {
19
+ for (const declarator of childNodes(declaration2, "declarations")) {
20
+ const name2 = declarationName(declarator);
21
+ if (name2) usedNames.add(name2);
22
+ }
23
+ } else {
24
+ const name2 = declarationName(declaration2);
25
+ if (name2) usedNames.add(name2);
26
+ }
27
+ continue;
28
+ }
29
+ if (statement.type !== "VariableDeclaration") continue;
30
+ const declarations = childNodes(statement, "declarations");
31
+ if (declarations.length !== 1) continue;
32
+ const declaration = declarations[0];
33
+ const name = declarationName(declaration);
34
+ if (!name || !childNode(declaration, "init") || usedNames.has(name)) continue;
35
+ candidates.push(name);
36
+ }
37
+ const names = candidates.filter((name) => !usedNames.has(name));
38
+ return names.length ? `${source}
39
+ export { ${names.join(", ")} }
40
+ ` : source;
41
+ }
42
+
43
+ export { addLocalExports };
44
+ //# sourceMappingURL=addLocalExports.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addLocalExports.js","names":[],"sources":["esm/extractor/addLocalExports.js"],"sourcesContent":["import {\n childNode,\n childNodes,\n identifierName,\n parseModuleAst\n} from \"@tamagui/compiler-core\";\nfunction declarationName(node) {\n return identifierName(node ? childNode(node, \"id\") : null);\n}\nfunction addLocalExports(source, id) {\n const program = parseModuleAst(source, id);\n const usedNames = /* @__PURE__ */ new Set();\n const candidates = [];\n for (const statement of childNodes(program, \"body\")) {\n if (statement.type === \"ExportNamedDeclaration\") {\n for (const specifier of childNodes(statement, \"specifiers\")) {\n const exported = childNode(specifier, \"exported\");\n const name2 = identifierName(exported);\n if (name2) usedNames.add(name2);\n }\n const declaration2 = childNode(statement, \"declaration\");\n if (declaration2?.type === \"VariableDeclaration\") {\n for (const declarator of childNodes(declaration2, \"declarations\")) {\n const name2 = declarationName(declarator);\n if (name2) usedNames.add(name2);\n }\n } else {\n const name2 = declarationName(declaration2);\n if (name2) usedNames.add(name2);\n }\n continue;\n }\n if (statement.type !== \"VariableDeclaration\") continue;\n const declarations = childNodes(statement, \"declarations\");\n if (declarations.length !== 1) continue;\n const declaration = declarations[0];\n const name = declarationName(declaration);\n if (!name || !childNode(declaration, \"init\") || usedNames.has(name)) continue;\n candidates.push(name);\n }\n const names = candidates.filter((name) => !usedNames.has(name));\n return names.length ? `${source}\nexport { ${names.join(\", \")} }\n` : source;\n}\nexport {\n addLocalExports\n};\n//# sourceMappingURL=addLocalExports.js.map\n"],"mappings":";;;AAMA,SAAS,gBAAgB,MAAM;CAC7B,OAAO,eAAe,OAAO,UAAU,MAAM,IAAI,IAAI,IAAI;AAC3D;AACA,SAAS,gBAAgB,QAAQ,IAAI;CACnC,MAAM,UAAU,eAAe,QAAQ,EAAE;CACzC,MAAM,4BAA4B,IAAI,IAAI;CAC1C,MAAM,aAAa,CAAC;CACpB,KAAK,MAAM,aAAa,WAAW,SAAS,MAAM,GAAG;EACnD,IAAI,UAAU,SAAS,0BAA0B;GAC/C,KAAK,MAAM,aAAa,WAAW,WAAW,YAAY,GAAG;IAC3D,MAAM,WAAW,UAAU,WAAW,UAAU;IAChD,MAAM,QAAQ,eAAe,QAAQ;IACrC,IAAI,OAAO,UAAU,IAAI,KAAK;GAChC;GACA,MAAM,eAAe,UAAU,WAAW,aAAa;GACvD,IAAI,cAAc,SAAS,uBAAuB;IAChD,KAAK,MAAM,cAAc,WAAW,cAAc,cAAc,GAAG;KACjE,MAAM,QAAQ,gBAAgB,UAAU;KACxC,IAAI,OAAO,UAAU,IAAI,KAAK;IAChC;GACF,OAAO;IACL,MAAM,QAAQ,gBAAgB,YAAY;IAC1C,IAAI,OAAO,UAAU,IAAI,KAAK;GAChC;GACA;EACF;EACA,IAAI,UAAU,SAAS,uBAAuB;EAC9C,MAAM,eAAe,WAAW,WAAW,cAAc;EACzD,IAAI,aAAa,WAAW,GAAG;EAC/B,MAAM,cAAc,aAAa;EACjC,MAAM,OAAO,gBAAgB,WAAW;EACxC,IAAI,CAAC,QAAQ,CAAC,UAAU,aAAa,MAAM,KAAK,UAAU,IAAI,IAAI,GAAG;EACrE,WAAW,KAAK,IAAI;CACtB;CACA,MAAM,QAAQ,WAAW,QAAQ,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC;CAC9D,OAAO,MAAM,SAAS,GAAG,OAAO;WACvB,MAAM,KAAK,IAAI,EAAE;IACxB;AACJ"}
@@ -0,0 +1,199 @@
1
+ import { randomBytes } from "node:crypto";
2
+ import { readFileSync } from "node:fs";
3
+ import { createRequire } from "node:module";
4
+ import esbuild from "esbuild";
5
+ import FS from "fs-extra";
6
+ import { staticEvaluationIgnorePlugin } from "../staticEvaluationIgnoredModules.mjs";
7
+ import { detectModuleFormat } from "./detectModuleFormat.mjs";
8
+ import { esbuildAliasPlugin } from "./esbuildAliasPlugin.mjs";
9
+ import { resolveWebOrNativeSpecificEntry } from "./loadTamagui.mjs";
10
+ import { TsconfigPathsPlugin } from "./esbuildTsconfigPaths.mjs";
11
+
12
+ const nodeRequire = createRequire(typeof __filename === "string" ? __filename : import.meta.url);
13
+ const esbuildLoaderConfig = {
14
+ ".js": "jsx",
15
+ ".png": "dataurl",
16
+ ".jpg": "dataurl",
17
+ ".jpeg": "dataurl",
18
+ ".svg": "dataurl",
19
+ ".gif": "dataurl",
20
+ ".webp": "dataurl",
21
+ ".woff2": "dataurl",
22
+ ".woff": "dataurl",
23
+ ".eot": "dataurl",
24
+ ".otf": "dataurl",
25
+ ".ttf": "dataurl",
26
+ ".mp4": "file",
27
+ ".mpeg4": "file",
28
+ ".mov": "file",
29
+ ".avif": "file",
30
+ ".wmv": "file",
31
+ ".webm": "file",
32
+ ".wav": "file",
33
+ ".aac": "file",
34
+ ".ogg": "file",
35
+ ".flac": "file",
36
+ ".node": "empty"
37
+ };
38
+ const dataExtensions = Object.keys(esbuildLoaderConfig).filter((k) => esbuildLoaderConfig[k] === "file" || esbuildLoaderConfig[k] === "dataurl").map((k) => k.slice(1));
39
+ const esbuildIgnoreFilesRegex = new RegExp(`.(${dataExtensions.join("|")})$`, "i");
40
+ function getESBuildConfig({ entryPoints, resolvePlatformSpecificEntries, dangerouslyIgnoreStaticEvaluationModules = [], define: callerDefine, ...options }, platform, aliases) {
41
+ if (process.env.DEBUG?.startsWith("tamagui")) {
42
+ console.info(`Building`, entryPoints);
43
+ }
44
+ const resolvedEntryPoints = !resolvePlatformSpecificEntries ? entryPoints : entryPoints.map((entry) => resolveWebOrNativeSpecificEntry(entry, platform));
45
+ const detectedFormat = options.format || detectEntryFormat(resolvedEntryPoints[0]);
46
+ const platformDefines = platform === "web" ? {
47
+ "process.env.TAMAGUI_TARGET": "\"web\"",
48
+ "process.env.EXPO_OS": "\"web\""
49
+ } : { "process.env.TAMAGUI_TARGET": "\"native\"" };
50
+ const res = {
51
+ bundle: true,
52
+ entryPoints: resolvedEntryPoints,
53
+ format: detectedFormat,
54
+ define: {
55
+ ...platformDefines,
56
+ ...callerDefine
57
+ },
58
+ ...platform === "native" ? {
59
+ conditions: ["react-native"],
60
+ mainFields: [
61
+ "react-native",
62
+ "module",
63
+ "main"
64
+ ]
65
+ } : {},
66
+ ...detectedFormat === "esm" ? {
67
+ ...platform === "web" ? { mainFields: ["module", "main"] } : {},
68
+ banner: { js: "import { createRequire as __cr } from \"module\"; const require = __cr(import.meta.url);" }
69
+ } : {},
70
+ target: "node24",
71
+ jsx: "transform",
72
+ jsxFactory: "react",
73
+ allowOverwrite: true,
74
+ keepNames: true,
75
+ resolveExtensions: [
76
+ ...platform === "web" ? [
77
+ ".web.tsx",
78
+ ".web.ts",
79
+ ".web.jsx",
80
+ ".web.js"
81
+ ] : [
82
+ ".native.tsx",
83
+ ".native.ts",
84
+ ".native.jsx",
85
+ ".native.js"
86
+ ],
87
+ ".tsx",
88
+ ".ts",
89
+ ".jsx",
90
+ ".js"
91
+ ],
92
+ platform: "node",
93
+ tsconfigRaw: { compilerOptions: { jsx: "react-jsx" } },
94
+ loader: esbuildLoaderConfig,
95
+ logLevel: "warning",
96
+ plugins: [
97
+ TsconfigPathsPlugin(),
98
+ staticEvaluationIgnorePlugin(dangerouslyIgnoreStaticEvaluationModules),
99
+ {
100
+ name: "handle-esm-features",
101
+ setup(build) {
102
+ const isCjs = build.initialOptions.format === "cjs" || !build.initialOptions.format;
103
+ build.onLoad({ filter: /\.(ts|tsx|js|jsx|mjs)$/ }, (args) => {
104
+ if (!isCjs) {
105
+ return null;
106
+ }
107
+ if (args.path.includes("node_modules") && !args.path.includes("@tamagui")) {
108
+ return null;
109
+ }
110
+ let contents = readFileSync(args.path, "utf8");
111
+ let modified = false;
112
+ if (contents.includes("import.meta.env")) {
113
+ contents = contents.replace(/import\.meta\.env/g, "process.env");
114
+ modified = true;
115
+ }
116
+ if (contents.includes("import.meta.url")) {
117
+ contents = contents.replace(/import\.meta\.url/g, "\"\"");
118
+ modified = true;
119
+ }
120
+ if (contents.includes("import.meta.main")) {
121
+ contents = contents.replace(/import\.meta\.main/g, "false");
122
+ modified = true;
123
+ }
124
+ if (modified) {
125
+ return {
126
+ contents,
127
+ loader: args.path.endsWith(".tsx") ? "tsx" : args.path.endsWith(".ts") ? "ts" : args.path.endsWith(".jsx") ? "jsx" : "js"
128
+ };
129
+ }
130
+ return null;
131
+ });
132
+ }
133
+ },
134
+ {
135
+ name: "external",
136
+ setup(build) {
137
+ build.onResolve({ filter: /^@tamagui\/(core|web)$/ }, (args) => {
138
+ if (args.kind === "entry-point") {
139
+ return null;
140
+ }
141
+ return {
142
+ path: platform === "native" ? "@tamagui/core/native" : args.path,
143
+ external: true
144
+ };
145
+ });
146
+ build.onResolve({ filter: /react-native\/package.json$/ }, () => {
147
+ return {
148
+ path: "react-native/package.json",
149
+ external: true
150
+ };
151
+ });
152
+ build.onResolve({ filter: /^(react-native|react-native\/.*)$/ }, (args) => {
153
+ return {
154
+ path: args.path.replace(/^react-native/, "@tamagui/react-native-web-lite"),
155
+ external: true
156
+ };
157
+ });
158
+ build.onResolve({ filter: /^(framer-motion|motion)/ }, (args) => {
159
+ return {
160
+ path: args.path,
161
+ external: true
162
+ };
163
+ });
164
+ }
165
+ },
166
+ esbuildAliasPlugin({ ...aliases })
167
+ ],
168
+ ...options
169
+ };
170
+ return res;
171
+ }
172
+ function detectEntryFormat(entryPoint) {
173
+ if (entryPoint.startsWith("/") || entryPoint.startsWith(".")) {
174
+ return detectModuleFormat(entryPoint);
175
+ }
176
+ try {
177
+ const pkgJsonPath = nodeRequire.resolve(entryPoint + "/package.json");
178
+ const pkg = JSON.parse(readFileSync(pkgJsonPath, "utf-8"));
179
+ return pkg.type === "module" ? "esm" : "cjs";
180
+ } catch {
181
+ return "cjs";
182
+ }
183
+ }
184
+ async function esbundleTamaguiConfig(props, platform, aliases) {
185
+ const config = getESBuildConfig(props, platform, aliases);
186
+ const tmpFile = `${props.outfile}.tmp.${process.pid}-${randomBytes(6).toString("hex")}`;
187
+ const result = await esbuild.build({
188
+ ...config,
189
+ outfile: tmpFile
190
+ }).catch(async (err) => {
191
+ await FS.remove(tmpFile).catch(() => {});
192
+ throw err;
193
+ });
194
+ await FS.rename(tmpFile, props.outfile);
195
+ return result;
196
+ }
197
+
198
+ export { esbuildIgnoreFilesRegex, esbuildLoaderConfig, esbundleTamaguiConfig };
199
+ //# sourceMappingURL=bundle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","names":[],"sources":["esm/extractor/bundle.js"],"sourcesContent":["import { randomBytes } from \"node:crypto\";\nimport { readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport esbuild from \"esbuild\";\nimport FS from \"fs-extra\";\nimport { staticEvaluationIgnorePlugin } from \"../staticEvaluationIgnoredModules\";\nimport { detectModuleFormat } from \"./detectModuleFormat\";\nimport { esbuildAliasPlugin } from \"./esbuildAliasPlugin\";\nimport { resolveWebOrNativeSpecificEntry } from \"./loadTamagui\";\nimport { TsconfigPathsPlugin } from \"./esbuildTsconfigPaths\";\nconst nodeRequire = createRequire(\n typeof __filename === \"string\" ? __filename : import.meta.url\n);\nconst esbuildLoaderConfig = {\n \".js\": \"jsx\",\n \".png\": \"dataurl\",\n \".jpg\": \"dataurl\",\n \".jpeg\": \"dataurl\",\n \".svg\": \"dataurl\",\n \".gif\": \"dataurl\",\n \".webp\": \"dataurl\",\n \".woff2\": \"dataurl\",\n \".woff\": \"dataurl\",\n \".eot\": \"dataurl\",\n \".otf\": \"dataurl\",\n \".ttf\": \"dataurl\",\n \".mp4\": \"file\",\n \".mpeg4\": \"file\",\n \".mov\": \"file\",\n \".avif\": \"file\",\n \".wmv\": \"file\",\n \".webm\": \"file\",\n \".wav\": \"file\",\n \".aac\": \"file\",\n \".ogg\": \"file\",\n \".flac\": \"file\",\n \".node\": \"empty\"\n};\nconst dataExtensions = Object.keys(esbuildLoaderConfig).filter(\n (k) => esbuildLoaderConfig[k] === \"file\" || esbuildLoaderConfig[k] === \"dataurl\"\n).map((k) => k.slice(1));\nconst esbuildIgnoreFilesRegex = new RegExp(`.(${dataExtensions.join(\"|\")})$`, \"i\");\nfunction getESBuildConfig({\n entryPoints,\n resolvePlatformSpecificEntries,\n dangerouslyIgnoreStaticEvaluationModules = [],\n define: callerDefine,\n ...options\n}, platform, aliases) {\n if (process.env.DEBUG?.startsWith(\"tamagui\")) {\n console.info(`Building`, entryPoints);\n }\n const resolvedEntryPoints = !resolvePlatformSpecificEntries ? entryPoints : entryPoints.map((entry) => resolveWebOrNativeSpecificEntry(entry, platform));\n const detectedFormat = options.format || detectEntryFormat(resolvedEntryPoints[0]);\n const platformDefines = platform === \"web\" ? {\n \"process.env.TAMAGUI_TARGET\": '\"web\"',\n \"process.env.EXPO_OS\": '\"web\"'\n } : {\n \"process.env.TAMAGUI_TARGET\": '\"native\"'\n // EXPO_OS doesn't have a useful \"native\" value (it's ios/android),\n // so leave it alone here and let the consumer set it if needed.\n };\n const res = {\n bundle: true,\n entryPoints: resolvedEntryPoints,\n format: detectedFormat,\n define: {\n ...platformDefines,\n ...callerDefine\n },\n ...platform === \"native\" ? {\n conditions: [\"react-native\"],\n mainFields: [\"react-native\", \"module\", \"main\"]\n } : {},\n // for ESM: prefer \"module\" field for resolution, add require() shim for bundled CJS deps\n ...detectedFormat === \"esm\" ? {\n ...platform === \"web\" ? { mainFields: [\"module\", \"main\"] } : {},\n banner: {\n js: 'import { createRequire as __cr } from \"module\"; const require = __cr(import.meta.url);'\n }\n } : {},\n target: \"node24\",\n jsx: \"transform\",\n jsxFactory: \"react\",\n allowOverwrite: true,\n keepNames: true,\n resolveExtensions: [\n ...platform === \"web\" ? [\".web.tsx\", \".web.ts\", \".web.jsx\", \".web.js\"] : [\".native.tsx\", \".native.ts\", \".native.jsx\", \".native.js\"],\n \".tsx\",\n \".ts\",\n \".jsx\",\n \".js\"\n ],\n platform: \"node\",\n tsconfigRaw: {\n compilerOptions: {\n jsx: \"react-jsx\"\n }\n },\n loader: esbuildLoaderConfig,\n logLevel: \"warning\",\n plugins: [\n TsconfigPathsPlugin(),\n staticEvaluationIgnorePlugin(dangerouslyIgnoreStaticEvaluationModules),\n // handle ESM-only features that can't be used with CJS output\n {\n name: \"handle-esm-features\",\n setup(build) {\n const isCjs = build.initialOptions.format === \"cjs\" || !build.initialOptions.format;\n build.onLoad({ filter: /\\.(ts|tsx|js|jsx|mjs)$/ }, (args) => {\n if (!isCjs) {\n return null;\n }\n if (args.path.includes(\"node_modules\") && !args.path.includes(\"@tamagui\")) {\n return null;\n }\n let contents = readFileSync(args.path, \"utf8\");\n let modified = false;\n if (contents.includes(\"import.meta.env\")) {\n contents = contents.replace(/import\\.meta\\.env/g, \"process.env\");\n modified = true;\n }\n if (contents.includes(\"import.meta.url\")) {\n contents = contents.replace(/import\\.meta\\.url/g, '\"\"');\n modified = true;\n }\n if (contents.includes(\"import.meta.main\")) {\n contents = contents.replace(/import\\.meta\\.main/g, \"false\");\n modified = true;\n }\n if (modified) {\n return {\n contents,\n loader: args.path.endsWith(\".tsx\") ? \"tsx\" : args.path.endsWith(\".ts\") ? \"ts\" : args.path.endsWith(\".jsx\") ? \"jsx\" : \"js\"\n };\n }\n return null;\n });\n }\n },\n {\n name: \"external\",\n setup(build) {\n build.onResolve({ filter: /^@tamagui\\/(core|web)$/ }, (args) => {\n if (args.kind === \"entry-point\") {\n return null;\n }\n return {\n path: platform === \"native\" ? \"@tamagui/core/native\" : args.path,\n external: true\n };\n });\n build.onResolve({ filter: /react-native\\/package.json$/ }, () => {\n return {\n path: \"react-native/package.json\",\n external: true\n };\n });\n build.onResolve({ filter: /^(react-native|react-native\\/.*)$/ }, (args) => {\n return {\n path: args.path.replace(/^react-native/, \"@tamagui/react-native-web-lite\"),\n external: true\n };\n });\n build.onResolve({ filter: /^(framer-motion|motion)/ }, (args) => {\n return {\n path: args.path,\n external: true\n };\n });\n }\n },\n esbuildAliasPlugin({\n ...aliases\n })\n ],\n ...options\n };\n return res;\n}\nfunction detectEntryFormat(entryPoint) {\n if (entryPoint.startsWith(\"/\") || entryPoint.startsWith(\".\")) {\n return detectModuleFormat(entryPoint);\n }\n try {\n const pkgJsonPath = nodeRequire.resolve(entryPoint + \"/package.json\");\n const pkg = JSON.parse(readFileSync(pkgJsonPath, \"utf-8\"));\n return pkg.type === \"module\" ? \"esm\" : \"cjs\";\n } catch {\n return \"cjs\";\n }\n}\nasync function esbundleTamaguiConfig(props, platform, aliases) {\n const config = getESBuildConfig(props, platform, aliases);\n const tmpFile = `${props.outfile}.tmp.${process.pid}-${randomBytes(6).toString(\"hex\")}`;\n const result = await esbuild.build({\n ...config,\n outfile: tmpFile\n }).catch(async (err) => {\n await FS.remove(tmpFile).catch(() => {\n });\n throw err;\n });\n await FS.rename(tmpFile, props.outfile);\n return result;\n}\nexport {\n esbuildIgnoreFilesRegex,\n esbuildLoaderConfig,\n esbundleTamaguiConfig\n};\n//# sourceMappingURL=bundle.js.map\n"],"mappings":"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"}