@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
@@ -1,372 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
23
- var check_dep_versions_exports = {};
24
- __export(check_dep_versions_exports, {
25
- CDVC: () => CDVC
26
- });
27
- module.exports = __toCommonJS(check_dep_versions_exports);
28
- var import_fast_glob = require("fast-glob");
29
- var import_js_yaml = require("js-yaml");
30
- var import_node_fs = require("node:fs");
31
- var import_node_path = require("node:path");
32
- function calculateVersionsForEachDependency(packages, depType = DEFAULT_DEP_TYPES) {
33
- const dependenciesToVersionsSeen = /* @__PURE__ */new Map();
34
- for (const package_ of packages) {
35
- recordDependencyVersionsForPackageJson(dependenciesToVersionsSeen, package_, depType);
36
- }
37
- return dependenciesToVersionsSeen;
38
- }
39
- function recordDependencyVersionsForPackageJson(dependenciesToVersionsSeen, package_, depType) {
40
- if (package_.packageJson.name && package_.packageJson.version) {
41
- recordDependencyVersion(dependenciesToVersionsSeen, package_.packageJson.name, package_.packageJson.version, package_, true);
42
- }
43
- if (depType.includes("dependencies" /* dependencies */) && package_.packageJson.dependencies) {
44
- for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.dependencies)) {
45
- if (dependencyVersion) {
46
- recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
47
- }
48
- }
49
- }
50
- if (depType.includes("devDependencies" /* devDependencies */) && package_.packageJson.devDependencies) {
51
- for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.devDependencies)) {
52
- if (dependencyVersion) {
53
- recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
54
- }
55
- }
56
- }
57
- if (depType.includes("optionalDependencies" /* optionalDependencies */) && package_.packageJson.optionalDependencies) {
58
- for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.optionalDependencies)) {
59
- if (dependencyVersion) {
60
- recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
61
- }
62
- }
63
- }
64
- if (depType.includes("peerDependencies" /* peerDependencies */) && package_.packageJson.peerDependencies) {
65
- for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.peerDependencies)) {
66
- if (dependencyVersion) {
67
- recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
68
- }
69
- }
70
- }
71
- if (depType.includes("resolutions" /* resolutions */) && package_.packageJson.resolutions) {
72
- for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.resolutions)) {
73
- if (dependencyVersion) {
74
- recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
75
- }
76
- }
77
- }
78
- }
79
- function recordDependencyVersion(dependenciesToVersionsSeen, dependency, version, package_, isLocalPackageVersion = false) {
80
- if (!dependenciesToVersionsSeen.has(dependency)) {
81
- dependenciesToVersionsSeen.set(dependency, []);
82
- }
83
- const list = dependenciesToVersionsSeen.get(dependency);
84
- if (list) {
85
- list.push({
86
- package: package_,
87
- version,
88
- isLocalPackageVersion
89
- });
90
- }
91
- }
92
- function calculateDependenciesAndVersions(dependencyVersions) {
93
- return [...dependencyVersions.entries()].sort((a, b) => a[0].localeCompare(b[0])).flatMap(([dependency, versionObjectsForDep]) => {
94
- if (!versionObjectsForDep) {
95
- return [];
96
- }
97
- let versions = versionObjectsForDep.filter(versionObject => !versionObject.isLocalPackageVersion).map(versionObject => versionObject.version);
98
- const localPackageVersions = versionObjectsForDep.filter(versionObject => versionObject.isLocalPackageVersion).map(versionObject => versionObject.version);
99
- const allVersionsHaveWorkspacePrefix = versions.every(version => version.startsWith("workspace:"));
100
- const hasIncompatibilityWithLocalPackageVersion = versions.some(version => localPackageVersions[0] !== version);
101
- if (localPackageVersions.length === 1 && !allVersionsHaveWorkspacePrefix && hasIncompatibilityWithLocalPackageVersion) {
102
- versions = [...versions, ...localPackageVersions];
103
- }
104
- const uniqueVersions = [...new Set(versions)];
105
- const uniqueVersionsWithInfo = versionsObjectsWithSortedPackages(uniqueVersions, versionObjectsForDep);
106
- return {
107
- dependency,
108
- versions: uniqueVersionsWithInfo
109
- };
110
- });
111
- }
112
- function versionsObjectsWithSortedPackages(versions, versionObjects) {
113
- return versions.map(version => {
114
- const matchingVersionObjects = versionObjects.filter(versionObject => versionObject.version === version);
115
- return {
116
- version,
117
- packages: matchingVersionObjects.map(object => object.package).sort((a, b) => Package.comparator(a, b))
118
- };
119
- });
120
- }
121
- const HARDCODED_IGNORED_DEPENDENCIES = /* @__PURE__ */new Set(["//"
122
- // May be used to add comments to package.json files.
123
- ]);
124
- function filterOutIgnoredDependencies(mismatchingVersions, ignoredDependencies, includedDependencyPatterns) {
125
- for (const ignoreDependency of ignoredDependencies) {
126
- if (!mismatchingVersions.some(mismatchingVersion => mismatchingVersion.dependency === ignoreDependency)) {
127
- throw new Error(`Specified option '--ignore-dep ${ignoreDependency}', but no version mismatches detected for this dependency.`);
128
- }
129
- }
130
- if (ignoredDependencies.length > 0 || includedDependencyPatterns.length > 0 || mismatchingVersions.some(mismatchingVersion => HARDCODED_IGNORED_DEPENDENCIES.has(mismatchingVersion.dependency))) {
131
- return mismatchingVersions.filter(mismatchingVersion => !ignoredDependencies.includes(mismatchingVersion.dependency) && includedDependencyPatterns.some(ignoreDependencyPattern => mismatchingVersion.dependency.match(ignoreDependencyPattern)) && !HARDCODED_IGNORED_DEPENDENCIES.has(mismatchingVersion.dependency));
132
- }
133
- return mismatchingVersions;
134
- }
135
- function getPackages(root, ignorePackages, ignorePackagePatterns, ignorePaths, ignorePathPatterns) {
136
- if (!Package.exists(root)) {
137
- throw new Error("No package.json found at provided path.");
138
- }
139
- const packages = accumulatePackages(root, ["."]);
140
- for (const ignoredPackage of ignorePackages) {
141
- if (!Package.some(packages, package_ => package_.name === ignoredPackage)) {
142
- throw new Error(`Specified option '--ignore-package ${ignoredPackage}', but no such package detected in workspace.`);
143
- }
144
- }
145
- for (const ignoredPackagePattern of ignorePackagePatterns) {
146
- if (
147
- // eslint-disable-next-line unicorn/no-array-method-this-argument,unicorn/no-array-callback-reference -- false positive
148
- !Package.some(packages, package_ => ignoredPackagePattern.test(package_.name))) {
149
- throw new Error(`Specified option '--ignore-package-pattern ${String(ignoredPackagePattern)}', but no matching packages detected in workspace.`);
150
- }
151
- }
152
- for (const ignoredPath of ignorePaths) {
153
- if (
154
- // eslint-disable-next-line unicorn/no-array-method-this-argument,unicorn/no-array-callback-reference -- false positive
155
- !Package.some(packages, package_ => package_.pathRelative.includes(ignoredPath))) {
156
- throw new Error(`Specified option '--ignore-path ${ignoredPath}', but no matching paths detected in workspace.`);
157
- }
158
- }
159
- for (const ignoredPathPattern of ignorePathPatterns) {
160
- if (
161
- // eslint-disable-next-line unicorn/no-array-method-this-argument,unicorn/no-array-callback-reference -- false positive
162
- !Package.some(packages, package_ => ignoredPathPattern.test(package_.pathRelative))) {
163
- throw new Error(`Specified option '--ignore-path-pattern ${String(ignoredPathPattern)}', but no matching paths detected in workspace.`);
164
- }
165
- }
166
- if (ignorePackages.length > 0 || ignorePackagePatterns.length > 0 || ignorePaths.length > 0 || ignorePathPatterns.length > 0) {
167
- return packages.filter(package_ => !ignorePackages.includes(package_.name) && !ignorePackagePatterns.some(ignorePackagePattern => package_.name.match(ignorePackagePattern)) && !ignorePaths.some(ignorePath => package_.pathRelative.includes(ignorePath)) && !ignorePathPatterns.some(ignorePathPattern => package_.pathRelative.match(ignorePathPattern)));
168
- }
169
- return packages;
170
- }
171
- function expandWorkspaces(root, workspacePatterns) {
172
- return workspacePatterns.flatMap(workspace => {
173
- if (!workspace.includes("*")) {
174
- return [workspace];
175
- }
176
- return (0, import_fast_glob.globSync)(workspace, {
177
- onlyDirectories: true,
178
- cwd: root,
179
- ignore: ["**/node_modules"]
180
- });
181
- });
182
- }
183
- function accumulatePackages(root, paths) {
184
- const results = [];
185
- for (const relativePath of paths) {
186
- const path = (0, import_node_path.join)(root, relativePath);
187
- if (Package.exists(path)) {
188
- const package_ = new Package(path, root);
189
- results.push(
190
- // Add the current package.
191
- package_, ...accumulatePackages(path, expandWorkspaces(path, package_.workspacePatterns)));
192
- }
193
- }
194
- return results;
195
- }
196
- class Package {
197
- /** Absolute path to package */
198
- path;
199
- /** Absolute path to workspace.*/
200
- pathWorkspace;
201
- /** Absolute path to package.json. */
202
- pathPackageJson;
203
- packageJson;
204
- packageJsonEndsInNewline;
205
- pnpmWorkspacePackages;
206
- constructor(path, pathWorkspace) {
207
- this.path = path;
208
- this.pathWorkspace = pathWorkspace;
209
- this.pathPackageJson = (0, import_node_path.join)(path, "package.json");
210
- const packageJsonContents = (0, import_node_fs.readFileSync)(this.pathPackageJson, "utf8");
211
- this.packageJsonEndsInNewline = packageJsonContents.endsWith("\n");
212
- this.packageJson = JSON.parse(packageJsonContents);
213
- const pnpmWorkspacePath = (0, import_node_path.join)(path, "pnpm-workspace.yaml");
214
- if ((0, import_node_fs.existsSync)(pnpmWorkspacePath)) {
215
- const pnpmWorkspaceContents = (0, import_node_fs.readFileSync)(pnpmWorkspacePath, "utf8");
216
- const pnpmWorkspaceYaml = (0, import_js_yaml.load)(pnpmWorkspaceContents);
217
- this.pnpmWorkspacePackages = pnpmWorkspaceYaml.packages;
218
- }
219
- }
220
- get name() {
221
- if (this.workspacePatterns.length > 0 && !this.packageJson.name) {
222
- return "(Root)";
223
- }
224
- if (!this.packageJson.name) {
225
- throw new Error(`${this.pathPackageJson} missing \`name\``);
226
- }
227
- return this.packageJson.name;
228
- }
229
- /** Relative to workspace root. */
230
- get pathRelative() {
231
- return (0, import_node_path.relative)(this.pathWorkspace, this.path);
232
- }
233
- get workspacePatterns() {
234
- if (this.packageJson.workspaces) {
235
- if (Array.isArray(this.packageJson.workspaces)) {
236
- return this.packageJson.workspaces;
237
- } else if (this.packageJson.workspaces.packages) {
238
- if (!Array.isArray(this.packageJson.workspaces.packages)) {
239
- throw new TypeError("package.json `workspaces.packages` is not a string array.");
240
- }
241
- return this.packageJson.workspaces.packages;
242
- } else {
243
- throw new TypeError("package.json `workspaces` is not a string array.");
244
- }
245
- }
246
- if (this.pnpmWorkspacePackages) {
247
- if (!Array.isArray(this.pnpmWorkspacePackages)) {
248
- throw new TypeError("pnpm-workspace.yaml `packages` is not a string array.");
249
- }
250
- return this.pnpmWorkspacePackages;
251
- }
252
- return [];
253
- }
254
- static exists(path) {
255
- const packageJsonPath = (0, import_node_path.join)(path, "package.json");
256
- return (0, import_node_fs.existsSync)(packageJsonPath);
257
- }
258
- static some(packages, callback) {
259
- return packages.some(package_ => callback(package_));
260
- }
261
- static comparator(package1, package2) {
262
- return package1.name.localeCompare(package2.name);
263
- }
264
- }
265
- var DEPENDENCY_TYPE = /* @__PURE__ */(DEPENDENCY_TYPE2 => {
266
- DEPENDENCY_TYPE2["dependencies"] = "dependencies";
267
- DEPENDENCY_TYPE2["devDependencies"] = "devDependencies";
268
- DEPENDENCY_TYPE2["optionalDependencies"] = "optionalDependencies";
269
- DEPENDENCY_TYPE2["peerDependencies"] = "peerDependencies";
270
- DEPENDENCY_TYPE2["resolutions"] = "resolutions";
271
- return DEPENDENCY_TYPE2;
272
- })(DEPENDENCY_TYPE || {});
273
- const DEFAULT_DEP_TYPES = ["dependencies" /* dependencies */, "devDependencies" /* devDependencies */, "optionalDependencies" /* optionalDependencies */, "resolutions" /* resolutions */
274
- // peerDependencies is not included by default, see discussion in: https://github.com/bmish/check-dependency-version-consistency/issues/402
275
- ];
276
- function check(path) {
277
- const options = {
278
- includeDepPattern: ["tamagui", "react-native-web-lite", "react-native-web-internals"]
279
- };
280
- if (options && options.depType && options.depType.some(dt => !Object.keys(DEPENDENCY_TYPE).includes(dt))) {
281
- throw new Error(`Invalid depType provided. Choices are: ${Object.keys(DEPENDENCY_TYPE).join(", ")}.`);
282
- }
283
- const optionsWithDefaults = {
284
- fix: false,
285
- ignoreDep: [],
286
- includeDepPattern: [],
287
- ignorePackage: [],
288
- ignorePackagePattern: [],
289
- ignorePath: [],
290
- ignorePathPattern: [],
291
- ...options,
292
- // Fallback to default if no depType(s) provided.
293
- depType: options && options.depType && options.depType.length > 0 ? options.depType : DEFAULT_DEP_TYPES
294
- };
295
- const packages = getPackages(path, optionsWithDefaults.ignorePackage, optionsWithDefaults.ignorePackagePattern.map(s => new RegExp(s)), optionsWithDefaults.ignorePath, optionsWithDefaults.ignorePathPattern.map(s => new RegExp(s)));
296
- const dependencies = calculateVersionsForEachDependency(packages, optionsWithDefaults.depType.map(dt => DEPENDENCY_TYPE[dt])
297
- // Convert string to enum.
298
- );
299
- const dependenciesAndVersions = calculateDependenciesAndVersions(dependencies);
300
- const dependenciesAndVersionsWithMismatches = dependenciesAndVersions.filter(({
301
- versions
302
- }) => versions.length > 1);
303
- const dependenciesAndVersionsWithoutIgnored = filterOutIgnoredDependencies(dependenciesAndVersions, optionsWithDefaults.ignoreDep, optionsWithDefaults.includeDepPattern.map(s => new RegExp(s)));
304
- const dependenciesAndVersionsMismatchesWithoutIgnored = filterOutIgnoredDependencies(dependenciesAndVersionsWithMismatches, optionsWithDefaults.ignoreDep, optionsWithDefaults.includeDepPattern.map(s => new RegExp(s)));
305
- return {
306
- // Information about all dependencies.
307
- dependencies: Object.fromEntries(dependenciesAndVersionsWithoutIgnored.map(({
308
- dependency,
309
- versions
310
- }) => {
311
- return [dependency, {
312
- isMismatching: dependenciesAndVersionsMismatchesWithoutIgnored.some(dep => dep.dependency === dependency),
313
- versions
314
- }];
315
- }))
316
- };
317
- }
318
- class CDVC {
319
- /** An object mapping each dependency in the workspace to information including the versions found of it. */
320
- dependencies;
321
- /**
322
- * @param path - path to the workspace root
323
- * @param options
324
- * @param options.fix - Whether to autofix inconsistencies (using latest version present)
325
- * @param options.ignoreDep - Dependency(s) to ignore mismatches for
326
- * @param options.includeDepPattern - RegExp(s) of dependency names to ignore mismatches for
327
- * @param options.ignorePackage - Workspace package(s) to ignore mismatches for
328
- * @param options.ignorePackagePattern - RegExp(s) of package names to ignore mismatches for
329
- * @param options.ignorePath - Workspace-relative path(s) of packages to ignore mismatches for
330
- * @param options.ignorePathPattern - RegExp(s) of workspace-relative path of packages to ignore mismatches for
331
- */
332
- constructor(path) {
333
- const {
334
- dependencies
335
- } = check(path);
336
- this.dependencies = dependencies;
337
- }
338
- toMismatchSummary() {
339
- return dependenciesToMismatchSummary(this.dependencies);
340
- }
341
- getDependencies() {
342
- return Object.keys(this.dependencies).map(dependency => this.getDependency(dependency));
343
- }
344
- getDependency(name) {
345
- return {
346
- name,
347
- isMismatching: this.dependencies[name].isMismatching,
348
- versions: this.dependencies[name].versions.map(version => ({
349
- version: version.version,
350
- packages: version.packages.map(package_ => ({
351
- pathRelative: package_.pathRelative
352
- }))
353
- }))
354
- };
355
- }
356
- get hasMismatchingDependencies() {
357
- return Object.values(this.dependencies).some(dep => dep.isMismatching);
358
- }
359
- }
360
- function dependenciesToMismatchSummary(dependencies) {
361
- const mismatchingDependencyVersions = Object.entries(dependencies).filter(([, value]) => value.isMismatching).map(([dependency, value]) => ({
362
- dependency,
363
- versions: value.versions
364
- }));
365
- if (mismatchingDependencyVersions.length === 0) {
366
- return "";
367
- }
368
- const tables = mismatchingDependencyVersions.map(object => {
369
- return `${object.dependency} - ${object.versions.map(v => `${v.version}`).join(", ")}`;
370
- }).join("");
371
- return [`Found ${mismatchingDependencyVersions.length} ${mismatchingDependencyVersions.length === 1 ? "dependency" : "dependencies"} with mismatching versions across the workspace.`, tables].join("\n");
372
- }
@@ -1,271 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
23
- var checkDeps_exports = {};
24
- __export(checkDeps_exports, {
25
- DEPENDENCY_TYPE: () => DEPENDENCY_TYPE,
26
- checkDeps: () => checkDeps
27
- });
28
- module.exports = __toCommonJS(checkDeps_exports);
29
- var import_node_fs = require("node:fs");
30
- var import_node_path = require("node:path");
31
- var import_check_dep_versions = require("./check-dep-versions.cjs");
32
- var DEPENDENCY_TYPE = /* @__PURE__ */(DEPENDENCY_TYPE2 => {
33
- DEPENDENCY_TYPE2["dependencies"] = "dependencies";
34
- DEPENDENCY_TYPE2["devDependencies"] = "devDependencies";
35
- DEPENDENCY_TYPE2["optionalDependencies"] = "optionalDependencies";
36
- DEPENDENCY_TYPE2["peerDependencies"] = "peerDependencies";
37
- DEPENDENCY_TYPE2["resolutions"] = "resolutions";
38
- return DEPENDENCY_TYPE2;
39
- })(DEPENDENCY_TYPE || {});
40
- const CRITICAL_PACKAGES = ["@tamagui/web", "@tamagui/core", "tamagui"];
41
- function checkDuplicateInstalls(root) {
42
- const nodeModules = (0, import_node_path.join)(root, "node_modules");
43
- if (!(0, import_node_fs.existsSync)(nodeModules)) return "";
44
- const duplicates = /* @__PURE__ */new Map();
45
- for (const pkg of CRITICAL_PACKAGES) {
46
- const locations = findAllInstances(nodeModules, pkg);
47
- if (locations.length > 1) {
48
- const realPaths = /* @__PURE__ */new Set();
49
- const distinctLocations = [];
50
- for (const loc of locations) {
51
- try {
52
- const real = (0, import_node_fs.realpathSync)(loc);
53
- if (!realPaths.has(real)) {
54
- realPaths.add(real);
55
- distinctLocations.push((0, import_node_path.relative)(root, loc));
56
- }
57
- } catch {
58
- distinctLocations.push((0, import_node_path.relative)(root, loc));
59
- }
60
- }
61
- if (distinctLocations.length > 1) {
62
- duplicates.set(pkg, distinctLocations);
63
- }
64
- }
65
- }
66
- if (duplicates.size === 0) return "";
67
- const lines = ["Found duplicate tamagui installations in node_modules:", "", "This causes multiple runtime instances, which breaks theme/config detection.", ""];
68
- for (const [pkg, locations] of duplicates) {
69
- lines.push(` ${pkg}:`);
70
- for (const loc of locations) {
71
- const pkgJsonPath = (0, import_node_path.join)(root, loc, "package.json");
72
- let version = "?";
73
- try {
74
- version = JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf8")).version;
75
- } catch {}
76
- lines.push(` ${version} at ${loc}`);
77
- }
78
- lines.push("");
79
- }
80
- lines.push("Fix: run your package manager's dedupe command:");
81
- lines.push(" bun install (bun auto-dedupes)");
82
- lines.push(" npx yarn-deduplicate && yarn install");
83
- lines.push(" npm dedupe");
84
- lines.push("");
85
- lines.push("If that doesn't help, delete node_modules and lockfile, then reinstall.");
86
- return lines.join("\n");
87
- }
88
- function findAllInstances(nodeModulesDir, packageName, found = [], depth = 0) {
89
- if (depth > 4 || !(0, import_node_fs.existsSync)(nodeModulesDir)) return found;
90
- const pkgDir = (0, import_node_path.join)(nodeModulesDir, ...packageName.split("/"));
91
- if ((0, import_node_fs.existsSync)((0, import_node_path.join)(pkgDir, "package.json"))) {
92
- found.push(pkgDir);
93
- }
94
- try {
95
- const entries = (0, import_node_fs.readdirSync)(nodeModulesDir);
96
- for (const entry of entries) {
97
- if (entry.startsWith(".")) continue;
98
- if (entry.startsWith("@")) {
99
- const scopeDir = (0, import_node_path.join)(nodeModulesDir, entry);
100
- try {
101
- const scopeEntries = (0, import_node_fs.readdirSync)(scopeDir);
102
- for (const scopeEntry of scopeEntries) {
103
- const nested = (0, import_node_path.join)(scopeDir, scopeEntry, "node_modules");
104
- if ((0, import_node_fs.existsSync)(nested)) {
105
- findAllInstances(nested, packageName, found, depth + 1);
106
- }
107
- }
108
- } catch {}
109
- } else {
110
- const nested = (0, import_node_path.join)(nodeModulesDir, entry, "node_modules");
111
- if ((0, import_node_fs.existsSync)(nested)) {
112
- findAllInstances(nested, packageName, found, depth + 1);
113
- }
114
- }
115
- }
116
- } catch {}
117
- return found;
118
- }
119
- function checkLockfileDuplicates(root) {
120
- const bunLock = (0, import_node_path.join)(root, "bun.lock");
121
- const yarnLock = (0, import_node_path.join)(root, "yarn.lock");
122
- const npmLock = (0, import_node_path.join)(root, "package-lock.json");
123
- if ((0, import_node_fs.existsSync)(bunLock)) return checkBunLockDuplicates(bunLock);
124
- if ((0, import_node_fs.existsSync)(yarnLock)) return checkYarnLockDuplicates(yarnLock);
125
- if ((0, import_node_fs.existsSync)(npmLock)) return checkNpmLockDuplicates(npmLock);
126
- return "";
127
- }
128
- function checkBunLockDuplicates(lockPath) {
129
- try {
130
- const content = (0, import_node_fs.readFileSync)(lockPath, "utf8");
131
- const duplicates = /* @__PURE__ */new Map();
132
- const criticalSet = new Set(CRITICAL_PACKAGES);
133
- const packagePattern = /["'](@tamagui\/[\w-]+|tamagui)@([^"'\s,]+)["']/g;
134
- let match;
135
- while ((match = packagePattern.exec(content)) !== null) {
136
- const name = match[1];
137
- const version = match[2];
138
- if (version.startsWith("workspace:")) continue;
139
- if (!criticalSet.has(name)) continue;
140
- if (!duplicates.has(name)) duplicates.set(name, /* @__PURE__ */new Set());
141
- duplicates.get(name).add(version);
142
- }
143
- return formatLockfileDuplicates(duplicates, "bun.lock");
144
- } catch {
145
- return "";
146
- }
147
- }
148
- function checkYarnLockDuplicates(lockPath) {
149
- try {
150
- const content = (0, import_node_fs.readFileSync)(lockPath, "utf8");
151
- const duplicates = /* @__PURE__ */new Map();
152
- const criticalSet = new Set(CRITICAL_PACKAGES);
153
- const entryPattern = /^"?(@tamagui\/[\w-]+|tamagui)@[^":\n]+[":]?\s*$/gm;
154
- const versionPattern = /^\s+version\s+"([^"]+)"/gm;
155
- let entryMatch;
156
- while ((entryMatch = entryPattern.exec(content)) !== null) {
157
- const name = entryMatch[1];
158
- if (!criticalSet.has(name)) continue;
159
- versionPattern.lastIndex = entryMatch.index;
160
- const verMatch = versionPattern.exec(content);
161
- if (verMatch) {
162
- if (!duplicates.has(name)) duplicates.set(name, /* @__PURE__ */new Set());
163
- duplicates.get(name).add(verMatch[1]);
164
- }
165
- }
166
- return formatLockfileDuplicates(duplicates, "yarn.lock");
167
- } catch {
168
- return "";
169
- }
170
- }
171
- function checkNpmLockDuplicates(lockPath) {
172
- try {
173
- const lock = JSON.parse((0, import_node_fs.readFileSync)(lockPath, "utf8"));
174
- const duplicates = /* @__PURE__ */new Map();
175
- const criticalSet = new Set(CRITICAL_PACKAGES);
176
- const packages = lock.packages || {};
177
- for (const [path, info] of Object.entries(packages)) {
178
- if (!path) continue;
179
- const name = info.name || path.split("node_modules/").pop();
180
- if (!name) continue;
181
- if (!criticalSet.has(name)) continue;
182
- const version = info.version;
183
- if (version) {
184
- if (!duplicates.has(name)) duplicates.set(name, /* @__PURE__ */new Set());
185
- duplicates.get(name).add(version);
186
- }
187
- }
188
- return formatLockfileDuplicates(duplicates, "package-lock.json");
189
- } catch {
190
- return "";
191
- }
192
- }
193
- function formatLockfileDuplicates(duplicates, lockfileName) {
194
- const multiVersion = /* @__PURE__ */new Map();
195
- for (const [name, versions] of duplicates) {
196
- if (versions.size > 1) {
197
- multiVersion.set(name, [...versions].sort());
198
- }
199
- }
200
- if (multiVersion.size === 0) return "";
201
- const lines = [`Found multiple resolved versions in ${lockfileName}:`, ""];
202
- for (const [name, versions] of multiVersion) {
203
- lines.push(` ${name}: ${versions.join(", ")}`);
204
- }
205
- lines.push("");
206
- lines.push("Multiple versions cause duplicate runtime instances, breaking config/theme detection.");
207
- lines.push("Fix: ensure all tamagui packages use the same version range, then dedupe.");
208
- return lines.join("\n");
209
- }
210
- function checkConfigExists(root) {
211
- const configNames = ["tamagui.config.ts", "tamagui.config.tsx", "tamagui.config.js", "tamagui.config.mjs", "tamagui.config.cjs"];
212
- const searchDirs = [root, (0, import_node_path.join)(root, "src"), (0, import_node_path.join)(root, "app"), (0, import_node_path.join)(root, "config")];
213
- for (const dir of searchDirs) {
214
- for (const name of configNames) {
215
- if ((0, import_node_fs.existsSync)((0, import_node_path.join)(dir, name))) {
216
- return "";
217
- }
218
- }
219
- }
220
- const buildConfigNames = ["tamagui.build.ts", "tamagui.build.js", "tamagui.build.mjs", "tamagui.build.cjs"];
221
- for (const name of buildConfigNames) {
222
- const buildPath = (0, import_node_path.join)(root, name);
223
- if ((0, import_node_fs.existsSync)(buildPath)) {
224
- try {
225
- const content = (0, import_node_fs.readFileSync)(buildPath, "utf8");
226
- const match = content.match(/config\s*:\s*['"`]([^'"`]+)['"`]/);
227
- if (match) {
228
- const configPath = (0, import_node_path.join)(root, match[1]);
229
- if ((0, import_node_fs.existsSync)(configPath)) return "";
230
- }
231
- } catch {}
232
- }
233
- }
234
- const pkgJsonPath = (0, import_node_path.join)(root, "package.json");
235
- if ((0, import_node_fs.existsSync)(pkgJsonPath)) {
236
- try {
237
- const pkg = JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf8"));
238
- if (pkg.tamagui?.config) {
239
- const configPath = (0, import_node_path.join)(root, pkg.tamagui.config);
240
- if ((0, import_node_fs.existsSync)(configPath)) return "";
241
- }
242
- } catch {}
243
- }
244
- if ((0, import_node_fs.existsSync)(pkgJsonPath)) {
245
- try {
246
- const pkg = JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf8"));
247
- if (pkg.workspaces) return "";
248
- } catch {}
249
- }
250
- return ["No tamagui.config file found.", "", "Tamagui requires a config file (e.g. tamagui.config.ts) that calls createTamagui().", `Without it, components will throw "Can't find Tamagui configuration" at runtime.`, "", "See: https://tamagui.dev/docs/core/configuration"].join("\n");
251
- }
252
- async function checkDeps(root) {
253
- const issues = [];
254
- const workspaceMismatchSummary = new import_check_dep_versions.CDVC(root).toMismatchSummary();
255
- if (workspaceMismatchSummary) issues.push(workspaceMismatchSummary);
256
- const lockfileSummary = checkLockfileDuplicates(root);
257
- if (lockfileSummary) issues.push(lockfileSummary);
258
- const duplicatesSummary = checkDuplicateInstalls(root);
259
- if (duplicatesSummary) issues.push(duplicatesSummary);
260
- const configSummary = checkConfigExists(root);
261
- if (configSummary) issues.push(configSummary);
262
- if (issues.length === 0) {
263
- console.info(`Tamagui dependencies look good \u2705`);
264
- process.exit(0);
265
- }
266
- for (let i = 0; i < issues.length; i++) {
267
- if (i > 0) console.error("");
268
- console.error(issues[i]);
269
- }
270
- process.exit(1);
271
- }