@tamagui/static 2.0.0-rc.9 → 2.0.0

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 (186) hide show
  1. package/dist/check-dep-versions.cjs +201 -96
  2. package/dist/checkDeps.cjs +250 -46
  3. package/dist/constants.cjs +32 -30
  4. package/dist/exports.cjs +20 -13
  5. package/dist/extractor/accessSafe.cjs +25 -23
  6. package/dist/extractor/babelParse.cjs +30 -28
  7. package/dist/extractor/buildClassName.cjs +59 -35
  8. package/dist/extractor/bundle.cjs +187 -101
  9. package/dist/extractor/bundleConfig.cjs +568 -168
  10. package/dist/extractor/concatClassName.cjs +73 -32
  11. package/dist/extractor/createEvaluator.cjs +54 -41
  12. package/dist/extractor/createExtractor.cjs +1405 -574
  13. package/dist/extractor/createLogger.cjs +30 -25
  14. package/dist/extractor/detectModuleFormat.cjs +55 -0
  15. package/dist/extractor/ensureImportingConcat.cjs +31 -25
  16. package/dist/extractor/errors.cjs +12 -10
  17. package/dist/extractor/esbuildAliasPlugin.cjs +28 -16
  18. package/dist/extractor/esbuildTsconfigPaths.cjs +60 -36
  19. package/dist/extractor/evaluateAstNode.cjs +104 -59
  20. package/dist/extractor/extractHelpers.cjs +130 -67
  21. package/dist/extractor/extractMediaStyle.cjs +110 -69
  22. package/dist/extractor/extractToClassNames.cjs +337 -229
  23. package/dist/extractor/extractToNative.cjs +248 -152
  24. package/dist/extractor/findTopmostFunction.cjs +22 -13
  25. package/dist/extractor/generatedUid.cjs +39 -28
  26. package/dist/extractor/getPrefixLogs.cjs +12 -10
  27. package/dist/extractor/getPropValueFromAttributes.cjs +52 -34
  28. package/dist/extractor/getSourceModule.cjs +73 -37
  29. package/dist/extractor/getStaticBindingsForScope.cjs +131 -68
  30. package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +20 -14
  31. package/dist/extractor/hasTopLevelAwait.cjs +62 -0
  32. package/dist/extractor/hoistClassNames.cjs +46 -32
  33. package/dist/extractor/literalToAst.cjs +67 -42
  34. package/dist/extractor/loadFile.cjs +9 -3
  35. package/dist/extractor/loadTamagui.cjs +151 -105
  36. package/dist/extractor/logLines.cjs +27 -19
  37. package/dist/extractor/normalizeTernaries.cjs +66 -44
  38. package/dist/extractor/propsToFontFamilyCache.cjs +15 -11
  39. package/dist/extractor/regenerateConfig.cjs +109 -81
  40. package/dist/extractor/removeUnusedHooks.cjs +73 -41
  41. package/dist/extractor/timer.cjs +23 -14
  42. package/dist/extractor/validHTMLAttributes.cjs +61 -59
  43. package/dist/extractor/watchTamaguiConfig.cjs +35 -23
  44. package/dist/getPragmaOptions.cjs +34 -19
  45. package/dist/helpers/memoize.cjs +24 -16
  46. package/dist/helpers/requireTamaguiCore.cjs +22 -15
  47. package/dist/index.cjs +26 -24
  48. package/dist/registerRequire.cjs +168 -65
  49. package/dist/server.cjs +35 -28
  50. package/dist/types.cjs +7 -5
  51. package/dist/worker.cjs +62 -40
  52. package/package.json +27 -24
  53. package/src/checkDeps.ts +305 -68
  54. package/src/exports.ts +2 -0
  55. package/src/extractor/babelParse.ts +1 -0
  56. package/src/extractor/bundle.ts +172 -40
  57. package/src/extractor/bundleConfig.ts +459 -65
  58. package/src/extractor/concatClassName.ts +37 -20
  59. package/src/extractor/createExtractor.ts +300 -30
  60. package/src/extractor/detectModuleFormat.ts +42 -0
  61. package/src/extractor/esbuildTsconfigPaths.ts +6 -1
  62. package/src/extractor/extractToClassNames.ts +15 -9
  63. package/src/extractor/extractToNative.ts +65 -32
  64. package/src/extractor/hasTopLevelAwait.ts +28 -0
  65. package/src/extractor/loadTamagui.ts +5 -4
  66. package/src/registerRequire.ts +102 -9
  67. package/types/checkDeps.d.ts.map +1 -1
  68. package/types/exports.d.ts +2 -0
  69. package/types/exports.d.ts.map +1 -1
  70. package/types/extractor/babelParse.d.ts.map +1 -1
  71. package/types/extractor/bundle.d.ts +83 -1
  72. package/types/extractor/bundle.d.ts.map +1 -1
  73. package/types/extractor/bundleConfig.d.ts +15 -2
  74. package/types/extractor/bundleConfig.d.ts.map +1 -1
  75. package/types/extractor/createExtractor.d.ts.map +1 -1
  76. package/types/extractor/detectModuleFormat.d.ts +5 -0
  77. package/types/extractor/detectModuleFormat.d.ts.map +1 -0
  78. package/types/extractor/esbuildTsconfigPaths.d.ts +8 -0
  79. package/types/extractor/esbuildTsconfigPaths.d.ts.map +1 -1
  80. package/types/extractor/extractToClassNames.d.ts.map +1 -1
  81. package/types/extractor/extractToNative.d.ts.map +1 -1
  82. package/types/extractor/hasTopLevelAwait.d.ts +2 -0
  83. package/types/extractor/hasTopLevelAwait.d.ts.map +1 -0
  84. package/types/extractor/loadTamagui.d.ts +1 -1
  85. package/types/extractor/loadTamagui.d.ts.map +1 -1
  86. package/types/registerRequire.d.ts.map +1 -1
  87. package/dist/check-dep-versions.js +0 -389
  88. package/dist/check-dep-versions.js.map +0 -6
  89. package/dist/checkDeps.js +0 -60
  90. package/dist/checkDeps.js.map +0 -6
  91. package/dist/constants.js +0 -34
  92. package/dist/constants.js.map +0 -6
  93. package/dist/exports.js +0 -34
  94. package/dist/exports.js.map +0 -6
  95. package/dist/extractor/accessSafe.js +0 -47
  96. package/dist/extractor/accessSafe.js.map +0 -6
  97. package/dist/extractor/babelParse.js +0 -59
  98. package/dist/extractor/babelParse.js.map +0 -6
  99. package/dist/extractor/buildClassName.js +0 -72
  100. package/dist/extractor/buildClassName.js.map +0 -6
  101. package/dist/extractor/bundle.js +0 -135
  102. package/dist/extractor/bundle.js.map +0 -6
  103. package/dist/extractor/bundleConfig.js +0 -352
  104. package/dist/extractor/bundleConfig.js.map +0 -6
  105. package/dist/extractor/concatClassName.js +0 -69
  106. package/dist/extractor/concatClassName.js.map +0 -6
  107. package/dist/extractor/createEvaluator.js +0 -66
  108. package/dist/extractor/createEvaluator.js.map +0 -6
  109. package/dist/extractor/createExtractor.js +0 -1212
  110. package/dist/extractor/createExtractor.js.map +0 -6
  111. package/dist/extractor/createLogger.js +0 -32
  112. package/dist/extractor/createLogger.js.map +0 -6
  113. package/dist/extractor/ensureImportingConcat.js +0 -50
  114. package/dist/extractor/ensureImportingConcat.js.map +0 -6
  115. package/dist/extractor/errors.js +0 -22
  116. package/dist/extractor/errors.js.map +0 -6
  117. package/dist/extractor/esbuildAliasPlugin.js +0 -36
  118. package/dist/extractor/esbuildAliasPlugin.js.map +0 -6
  119. package/dist/extractor/esbuildTsconfigPaths.js +0 -79
  120. package/dist/extractor/esbuildTsconfigPaths.js.map +0 -6
  121. package/dist/extractor/evaluateAstNode.js +0 -99
  122. package/dist/extractor/evaluateAstNode.js.map +0 -6
  123. package/dist/extractor/extractHelpers.js +0 -108
  124. package/dist/extractor/extractHelpers.js.map +0 -6
  125. package/dist/extractor/extractMediaStyle.js +0 -123
  126. package/dist/extractor/extractMediaStyle.js.map +0 -6
  127. package/dist/extractor/extractToClassNames.js +0 -351
  128. package/dist/extractor/extractToClassNames.js.map +0 -6
  129. package/dist/extractor/extractToNative.js +0 -286
  130. package/dist/extractor/extractToNative.js.map +0 -6
  131. package/dist/extractor/findTopmostFunction.js +0 -32
  132. package/dist/extractor/findTopmostFunction.js.map +0 -6
  133. package/dist/extractor/generatedUid.js +0 -42
  134. package/dist/extractor/generatedUid.js.map +0 -6
  135. package/dist/extractor/getPrefixLogs.js +0 -24
  136. package/dist/extractor/getPrefixLogs.js.map +0 -6
  137. package/dist/extractor/getPropValueFromAttributes.js +0 -65
  138. package/dist/extractor/getPropValueFromAttributes.js.map +0 -6
  139. package/dist/extractor/getSourceModule.js +0 -62
  140. package/dist/extractor/getSourceModule.js.map +0 -6
  141. package/dist/extractor/getStaticBindingsForScope.js +0 -145
  142. package/dist/extractor/getStaticBindingsForScope.js.map +0 -6
  143. package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.js +0 -32
  144. package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.js.map +0 -6
  145. package/dist/extractor/hoistClassNames.js +0 -63
  146. package/dist/extractor/hoistClassNames.js.map +0 -6
  147. package/dist/extractor/literalToAst.js +0 -90
  148. package/dist/extractor/literalToAst.js.map +0 -6
  149. package/dist/extractor/loadFile.js +0 -14
  150. package/dist/extractor/loadFile.js.map +0 -6
  151. package/dist/extractor/loadTamagui.js +0 -306
  152. package/dist/extractor/loadTamagui.js.map +0 -6
  153. package/dist/extractor/logLines.js +0 -30
  154. package/dist/extractor/logLines.js.map +0 -6
  155. package/dist/extractor/normalizeTernaries.js +0 -61
  156. package/dist/extractor/normalizeTernaries.js.map +0 -6
  157. package/dist/extractor/propsToFontFamilyCache.js +0 -33
  158. package/dist/extractor/propsToFontFamilyCache.js.map +0 -6
  159. package/dist/extractor/regenerateConfig.js +0 -123
  160. package/dist/extractor/regenerateConfig.js.map +0 -6
  161. package/dist/extractor/removeUnusedHooks.js +0 -72
  162. package/dist/extractor/removeUnusedHooks.js.map +0 -6
  163. package/dist/extractor/timer.js +0 -38
  164. package/dist/extractor/timer.js.map +0 -6
  165. package/dist/extractor/validHTMLAttributes.js +0 -72
  166. package/dist/extractor/validHTMLAttributes.js.map +0 -6
  167. package/dist/extractor/watchTamaguiConfig.js +0 -57
  168. package/dist/extractor/watchTamaguiConfig.js.map +0 -6
  169. package/dist/getPragmaOptions.js +0 -50
  170. package/dist/getPragmaOptions.js.map +0 -6
  171. package/dist/helpers/memoize.js +0 -33
  172. package/dist/helpers/memoize.js.map +0 -6
  173. package/dist/helpers/requireTamaguiCore.js +0 -30
  174. package/dist/helpers/requireTamaguiCore.js.map +0 -6
  175. package/dist/index.js +0 -30
  176. package/dist/index.js.map +0 -6
  177. package/dist/registerRequire.js +0 -100
  178. package/dist/registerRequire.js.map +0 -6
  179. package/dist/server.js +0 -58
  180. package/dist/server.js.map +0 -6
  181. package/dist/setup.js +0 -1
  182. package/dist/setup.js.map +0 -6
  183. package/dist/types.js +0 -14
  184. package/dist/types.js.map +0 -6
  185. package/dist/worker.js +0 -72
  186. package/dist/worker.js.map +0 -6
@@ -2,33 +2,35 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
- value: mod,
27
- enumerable: !0
28
- }) : target, mod)),
29
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
- value: !0
31
- }), mod);
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
32
34
  var buildClassName_exports = {};
33
35
  __export(buildClassName_exports, {
34
36
  buildClassName: () => buildClassName,
@@ -37,26 +39,48 @@ __export(buildClassName_exports, {
37
39
  module.exports = __toCommonJS(buildClassName_exports);
38
40
  var t = __toESM(require("@babel/types"));
39
41
  const buildClassName = (objectsIn, extras = "") => {
40
- let objects = buildClassNameLogic(objectsIn);
41
- return objects ? (t.isStringLiteral(objects) ? objects.value = `${extras} ${objects.value}` : objects = t.binaryExpression("+", t.stringLiteral(extras), objects), objects) : null;
42
- },
43
- buildClassNameLogic = objects => objects.reduce((acc, val) => {
44
- if (acc == null) return (
42
+ let objects = buildClassNameLogic(objectsIn);
43
+ if (!objects) return null;
44
+ if (t.isStringLiteral(objects)) {
45
+ objects.value = `${extras} ${objects.value}`;
46
+ } else {
47
+ objects = t.binaryExpression("+", t.stringLiteral(extras), objects);
48
+ }
49
+ return objects;
50
+ };
51
+ const buildClassNameLogic = objects => {
52
+ return objects.reduce((acc, val) => {
53
+ if (acc == null) {
54
+ if (
45
55
  // pass conditional expressions through
46
56
  t.isConditionalExpression(val) ||
47
57
  // pass non-null literals through
48
- t.isStringLiteral(val) || t.isNumericLiteral(val) ? val : t.logicalExpression("||", val, t.stringLiteral(""))
49
- );
58
+ t.isStringLiteral(val) || t.isNumericLiteral(val)) {
59
+ return val;
60
+ }
61
+ return t.logicalExpression("||", val, t.stringLiteral(""));
62
+ }
50
63
  let inner;
51
64
  if (t.isStringLiteral(val)) {
52
- if (t.isStringLiteral(acc)) return t.stringLiteral(`${acc.value} ${val.value}`);
65
+ if (t.isStringLiteral(acc)) {
66
+ return t.stringLiteral(`${acc.value} ${val.value}`);
67
+ }
53
68
  inner = t.stringLiteral(` ${val.value}`);
54
- } else if (t.isLiteral(val)) inner = t.binaryExpression("+", t.stringLiteral(" "), val);else if (t.isConditionalExpression(val) || t.isBinaryExpression(val)) {
55
- if (t.isStringLiteral(acc)) return t.binaryExpression("+", t.stringLiteral(`${acc.value} `), val);
69
+ } else if (t.isLiteral(val)) {
70
+ inner = t.binaryExpression("+", t.stringLiteral(" "), val);
71
+ } else if (t.isConditionalExpression(val) || t.isBinaryExpression(val)) {
72
+ if (t.isStringLiteral(acc)) {
73
+ return t.binaryExpression("+", t.stringLiteral(`${acc.value} `), val);
74
+ }
56
75
  inner = t.binaryExpression("+", t.stringLiteral(" "), val);
57
- } else if (t.isIdentifier(val) || t.isMemberExpression(val)) inner = t.conditionalExpression(val, t.binaryExpression("+", t.stringLiteral(" "), val), t.stringLiteral(""));else {
58
- if (t.isStringLiteral(acc)) return t.binaryExpression("+", t.stringLiteral(`${acc.value} `), t.logicalExpression("||", val, t.stringLiteral("")));
76
+ } else if (t.isIdentifier(val) || t.isMemberExpression(val)) {
77
+ inner = t.conditionalExpression(val, t.binaryExpression("+", t.stringLiteral(" "), val), t.stringLiteral(""));
78
+ } else {
79
+ if (t.isStringLiteral(acc)) {
80
+ return t.binaryExpression("+", t.stringLiteral(`${acc.value} `), t.logicalExpression("||", val, t.stringLiteral("")));
81
+ }
59
82
  inner = t.binaryExpression("+", t.stringLiteral(" "), t.logicalExpression("||", val, t.stringLiteral("")));
60
83
  }
61
84
  return t.binaryExpression("+", acc, inner);
62
- }, null);
85
+ }, null);
86
+ };
@@ -2,33 +2,35 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
- value: mod,
27
- enumerable: !0
28
- }) : target, mod)),
29
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
- value: !0
31
- }), mod);
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
32
34
  var bundle_exports = {};
33
35
  __export(bundle_exports, {
34
36
  esbuildIgnoreFilesRegex: () => esbuildIgnoreFilesRegex,
@@ -36,54 +38,75 @@ __export(bundle_exports, {
36
38
  esbundleTamaguiConfig: () => esbundleTamaguiConfig
37
39
  });
38
40
  module.exports = __toCommonJS(bundle_exports);
39
- var import_node_path = require("node:path"),
40
- import_esbuild = __toESM(require("esbuild")),
41
- FS = __toESM(require("fs-extra")),
42
- import_esbuildAliasPlugin = require("./esbuildAliasPlugin.cjs"),
43
- import_loadTamagui = require("./loadTamagui.cjs"),
44
- import_esbuildTsconfigPaths = require("./esbuildTsconfigPaths.cjs");
41
+ var import_node_fs = require("node:fs");
42
+ var import_esbuild = __toESM(require("esbuild"));
43
+ var FS = __toESM(require("fs-extra"));
44
+ var import_detectModuleFormat = require("./detectModuleFormat.cjs");
45
+ var import_esbuildAliasPlugin = require("./esbuildAliasPlugin.cjs");
46
+ var import_hasTopLevelAwait = require("./hasTopLevelAwait.cjs");
47
+ var import_loadTamagui = require("./loadTamagui.cjs");
48
+ var import_esbuildTsconfigPaths = require("./esbuildTsconfigPaths.cjs");
45
49
  const esbuildLoaderConfig = {
46
- ".js": "jsx",
47
- ".png": "dataurl",
48
- ".jpg": "dataurl",
49
- ".jpeg": "dataurl",
50
- ".svg": "dataurl",
51
- ".gif": "dataurl",
52
- ".webp": "dataurl",
53
- ".woff2": "dataurl",
54
- ".woff": "dataurl",
55
- ".eot": "dataurl",
56
- ".otf": "dataurl",
57
- ".ttf": "dataurl",
58
- ".mp4": "file",
59
- ".mpeg4": "file",
60
- ".mov": "file",
61
- ".avif": "file",
62
- ".wmv": "file",
63
- ".webm": "file",
64
- ".wav": "file",
65
- ".aac": "file",
66
- ".ogg": "file",
67
- ".flac": "file",
68
- ".node": "empty"
69
- },
70
- dataExtensions = Object.keys(esbuildLoaderConfig).filter(k => esbuildLoaderConfig[k] === "file" || esbuildLoaderConfig[k] === "dataurl").map(k => k.slice(1)),
71
- esbuildIgnoreFilesRegex = new RegExp(`.(${dataExtensions.join("|")})$`, "i");
50
+ ".js": "jsx",
51
+ ".png": "dataurl",
52
+ ".jpg": "dataurl",
53
+ ".jpeg": "dataurl",
54
+ ".svg": "dataurl",
55
+ ".gif": "dataurl",
56
+ ".webp": "dataurl",
57
+ ".woff2": "dataurl",
58
+ ".woff": "dataurl",
59
+ ".eot": "dataurl",
60
+ ".otf": "dataurl",
61
+ ".ttf": "dataurl",
62
+ ".mp4": "file",
63
+ ".mpeg4": "file",
64
+ ".mov": "file",
65
+ ".avif": "file",
66
+ ".wmv": "file",
67
+ ".webm": "file",
68
+ ".wav": "file",
69
+ ".aac": "file",
70
+ ".ogg": "file",
71
+ ".flac": "file",
72
+ ".node": "empty"
73
+ };
74
+ const dataExtensions = Object.keys(esbuildLoaderConfig).filter(k => esbuildLoaderConfig[k] === "file" || esbuildLoaderConfig[k] === "dataurl").map(k => k.slice(1));
75
+ const esbuildIgnoreFilesRegex = new RegExp(`.(${dataExtensions.join("|")})$`, "i");
72
76
  function getESBuildConfig({
73
77
  entryPoints,
74
78
  resolvePlatformSpecificEntries,
79
+ define: callerDefine,
75
80
  ...options
76
81
  }, platform, aliases) {
77
- return process.env.DEBUG?.startsWith("tamagui") && console.info("Building", entryPoints), {
78
- bundle: !0,
79
- entryPoints: resolvePlatformSpecificEntries ? entryPoints.map(import_loadTamagui.resolveWebOrNativeSpecificEntry) : entryPoints,
80
- format: "cjs",
81
- target: "node20",
82
+ if (process.env.DEBUG?.startsWith("tamagui")) console.info(`Building`, entryPoints);
83
+ const resolvedEntryPoints = !resolvePlatformSpecificEntries ? entryPoints : entryPoints.map(entry => (0, import_loadTamagui.resolveWebOrNativeSpecificEntry)(entry, platform));
84
+ const detectedFormat = options.format || detectEntryFormat(resolvedEntryPoints[0]);
85
+ return {
86
+ bundle: true,
87
+ entryPoints: resolvedEntryPoints,
88
+ format: detectedFormat,
89
+ define: {
90
+ ...(platform === "web" ? {
91
+ "process.env.TAMAGUI_TARGET": "\"web\"",
92
+ "process.env.EXPO_OS": "\"web\""
93
+ } : {
94
+ "process.env.TAMAGUI_TARGET": "\"native\""
95
+ }),
96
+ ...callerDefine
97
+ },
98
+ ...(detectedFormat === "esm" ? {
99
+ mainFields: ["module", "main"],
100
+ banner: {
101
+ js: "import { createRequire as __cr } from \"module\"; const require = __cr(import.meta.url);"
102
+ }
103
+ } : {}),
104
+ target: "node24",
82
105
  jsx: "transform",
83
106
  jsxFactory: "react",
84
- allowOverwrite: !0,
85
- keepNames: !0,
86
- resolveExtensions: [".web.tsx", ".web.ts", ".web.jsx", ".web.js", ".tsx", ".ts", ".jsx", ".js"],
107
+ allowOverwrite: true,
108
+ keepNames: true,
109
+ resolveExtensions: [...(platform === "web" ? [".web.tsx", ".web.ts", ".web.jsx", ".web.js"] : [".native.tsx", ".native.ts", ".native.jsx", ".native.js"]), ".tsx", ".ts", ".jsx", ".js"],
87
110
  platform: "node",
88
111
  tsconfigRaw: {
89
112
  compilerOptions: {
@@ -92,35 +115,97 @@ function getESBuildConfig({
92
115
  },
93
116
  loader: esbuildLoaderConfig,
94
117
  logLevel: "warning",
95
- plugins: [(0, import_esbuildTsconfigPaths.TsconfigPathsPlugin)(), {
118
+ plugins: [(0, import_esbuildTsconfigPaths.TsconfigPathsPlugin)(),
119
+ // handle ESM-only features that can't be used with CJS output
120
+ {
121
+ name: "handle-esm-features",
122
+ setup(build) {
123
+ const isCjs = build.initialOptions.format === "cjs" || !build.initialOptions.format;
124
+ build.onLoad({
125
+ filter: /\.(ts|tsx|js|jsx|mjs)$/
126
+ }, args => {
127
+ if (!isCjs) return null;
128
+ if (args.path.includes("node_modules") && !args.path.includes("@tamagui")) return null;
129
+ let contents = (0, import_node_fs.readFileSync)(args.path, "utf8");
130
+ let modified = false;
131
+ if (contents.includes("import.meta.env")) {
132
+ contents = contents.replace(/import\.meta\.env/g, "process.env");
133
+ modified = true;
134
+ }
135
+ if (contents.includes("import.meta.url")) {
136
+ contents = contents.replace(/import\.meta\.url/g, "\"\"");
137
+ modified = true;
138
+ }
139
+ if (contents.includes("import.meta.main")) {
140
+ contents = contents.replace(/import\.meta\.main/g, "false");
141
+ modified = true;
142
+ }
143
+ if ((0, import_hasTopLevelAwait.hasTopLevelAwait)(contents, args.path)) {
144
+ if (process.env.DEBUG?.startsWith("tamagui")) console.info(`[tamagui] stubbing file with top-level await: ${args.path}`);
145
+ return {
146
+ contents: `// stubbed - contains top-level await
147
+ export default {}`,
148
+ loader: "js"
149
+ };
150
+ }
151
+ if (modified) return {
152
+ contents,
153
+ loader: args.path.endsWith(".tsx") ? "tsx" : args.path.endsWith(".ts") ? "ts" : args.path.endsWith(".jsx") ? "jsx" : "js"
154
+ };
155
+ return null;
156
+ });
157
+ }
158
+ }, {
96
159
  name: "external",
97
160
  setup(build) {
161
+ const proxyWormPath = require.resolve("@tamagui/proxy-worm");
162
+ build.onResolve({
163
+ filter: /^@tamagui\/(core|web)$/
164
+ }, args => {
165
+ if (args.kind === "entry-point") return null;
166
+ return {
167
+ path: platform === "native" ? "@tamagui/core/native" : args.path,
168
+ external: true
169
+ };
170
+ });
98
171
  build.onResolve({
99
- filter: /@tamagui\/core/
100
- }, args => ({
101
- path: platform === "native" ? "@tamagui/core/native" : "@tamagui/core",
102
- external: !0
103
- })), build.onResolve({
104
172
  filter: /react-native\/package.json$/
105
- }, args => ({
106
- path: "react-native/package.json",
107
- external: !0
108
- })), build.onResolve({
109
- filter: /@tamagui\/web/
110
- }, args => ({
111
- path: platform === "native" ? "@tamagui/core/native" : "@tamagui/core",
112
- external: !0
113
- })), build.onResolve({
173
+ }, () => {
174
+ return {
175
+ path: "react-native/package.json",
176
+ external: true
177
+ };
178
+ });
179
+ build.onResolve({
114
180
  filter: /^(react-native|react-native\/.*)$/
115
- }, args => ({
116
- path: "@tamagui/react-native-web-lite",
117
- external: !0
118
- })), build.onResolve({
119
- filter: /react-native-reanimated/
120
- }, args => ({
121
- path: "react-native-reanimated",
122
- external: !0
123
- }));
181
+ }, () => {
182
+ return {
183
+ path: "@tamagui/react-native-web-lite",
184
+ external: true
185
+ };
186
+ });
187
+ build.onResolve({
188
+ filter: /^react-native-reanimated(?:\/.*)?$/
189
+ }, () => {
190
+ return {
191
+ path: proxyWormPath
192
+ };
193
+ });
194
+ build.onResolve({
195
+ filter: /^react-native-worklets(?:\/.*)?$/
196
+ }, () => {
197
+ return {
198
+ path: proxyWormPath
199
+ };
200
+ });
201
+ build.onResolve({
202
+ filter: /^(framer-motion|motion)/
203
+ }, args => {
204
+ return {
205
+ path: args.path,
206
+ external: true
207
+ };
208
+ });
124
209
  }
125
210
  }, (0, import_esbuildAliasPlugin.esbuildAliasPlugin)({
126
211
  ...aliases
@@ -128,21 +213,22 @@ function getESBuildConfig({
128
213
  ...options
129
214
  };
130
215
  }
216
+ function detectEntryFormat(entryPoint) {
217
+ if (entryPoint.startsWith("/") || entryPoint.startsWith(".")) return (0, import_detectModuleFormat.detectModuleFormat)(entryPoint);
218
+ try {
219
+ const pkgJsonPath = require.resolve(entryPoint + "/package.json");
220
+ return JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf-8")).type === "module" ? "esm" : "cjs";
221
+ } catch {
222
+ return "cjs";
223
+ }
224
+ }
131
225
  async function esbundleTamaguiConfig(props, platform, aliases) {
132
- await asyncLock(props);
133
226
  const config = getESBuildConfig(props, platform, aliases);
134
- return await import_esbuild.default.build(config);
135
- }
136
- async function asyncLock(props) {
137
- const lockFile = (0, import_node_path.join)((0, import_node_path.dirname)(props.outfile), (0, import_node_path.basename)(props.outfile, ".lock")),
138
- lockStat = await FS.stat(lockFile).catch(() => {});
139
- if ((lockStat ? (/* @__PURE__ */new Date()).getTime() - new Date(lockStat.mtime).getTime() : Number.POSITIVE_INFINITY) < 500) {
140
- process.env.DEBUG?.startsWith("tamagui") && console.info("Waiting for existing build", props.entryPoints);
141
- let tries = 5;
142
- for (; tries--;) {
143
- if (await FS.pathExists(props.outfile)) return;
144
- await new Promise(res => setTimeout(res, 50));
145
- }
146
- }
147
- FS.writeFile(lockFile, "");
227
+ const tmpFile = props.outfile + ".tmp." + process.pid;
228
+ const result = await import_esbuild.default.build({
229
+ ...config,
230
+ outfile: tmpFile
231
+ });
232
+ await FS.rename(tmpFile, props.outfile);
233
+ return result;
148
234
  }