@tamagui/static 2.0.0-rc.4 → 2.0.0-rc.40

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 (185) 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 +18 -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 +177 -101
  9. package/dist/extractor/bundleConfig.cjs +554 -167
  10. package/dist/extractor/concatClassName.cjs +41 -29
  11. package/dist/extractor/createEvaluator.cjs +54 -41
  12. package/dist/extractor/createExtractor.cjs +1400 -581
  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 -154
  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 +149 -104
  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 +38 -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 +167 -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 +26 -22
  53. package/src/checkDeps.ts +305 -68
  54. package/src/exports.ts +1 -0
  55. package/src/extractor/babelParse.ts +1 -0
  56. package/src/extractor/bundle.ts +140 -37
  57. package/src/extractor/bundleConfig.ts +435 -61
  58. package/src/extractor/createExtractor.ts +283 -48
  59. package/src/extractor/detectModuleFormat.ts +42 -0
  60. package/src/extractor/esbuildTsconfigPaths.ts +6 -1
  61. package/src/extractor/extractToClassNames.ts +15 -9
  62. package/src/extractor/extractToNative.ts +66 -33
  63. package/src/extractor/hasTopLevelAwait.ts +28 -0
  64. package/src/extractor/loadTamagui.ts +2 -2
  65. package/src/getPragmaOptions.ts +6 -1
  66. package/src/registerRequire.ts +88 -8
  67. package/types/checkDeps.d.ts.map +1 -1
  68. package/types/exports.d.ts +1 -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/getPragmaOptions.d.ts.map +1 -1
  85. package/types/registerRequire.d.ts.map +1 -1
  86. package/dist/check-dep-versions.js +0 -389
  87. package/dist/check-dep-versions.js.map +0 -6
  88. package/dist/checkDeps.js +0 -60
  89. package/dist/checkDeps.js.map +0 -6
  90. package/dist/constants.js +0 -34
  91. package/dist/constants.js.map +0 -6
  92. package/dist/exports.js +0 -34
  93. package/dist/exports.js.map +0 -6
  94. package/dist/extractor/accessSafe.js +0 -47
  95. package/dist/extractor/accessSafe.js.map +0 -6
  96. package/dist/extractor/babelParse.js +0 -59
  97. package/dist/extractor/babelParse.js.map +0 -6
  98. package/dist/extractor/buildClassName.js +0 -72
  99. package/dist/extractor/buildClassName.js.map +0 -6
  100. package/dist/extractor/bundle.js +0 -135
  101. package/dist/extractor/bundle.js.map +0 -6
  102. package/dist/extractor/bundleConfig.js +0 -352
  103. package/dist/extractor/bundleConfig.js.map +0 -6
  104. package/dist/extractor/concatClassName.js +0 -69
  105. package/dist/extractor/concatClassName.js.map +0 -6
  106. package/dist/extractor/createEvaluator.js +0 -66
  107. package/dist/extractor/createEvaluator.js.map +0 -6
  108. package/dist/extractor/createExtractor.js +0 -1215
  109. package/dist/extractor/createExtractor.js.map +0 -6
  110. package/dist/extractor/createLogger.js +0 -32
  111. package/dist/extractor/createLogger.js.map +0 -6
  112. package/dist/extractor/ensureImportingConcat.js +0 -50
  113. package/dist/extractor/ensureImportingConcat.js.map +0 -6
  114. package/dist/extractor/errors.js +0 -22
  115. package/dist/extractor/errors.js.map +0 -6
  116. package/dist/extractor/esbuildAliasPlugin.js +0 -36
  117. package/dist/extractor/esbuildAliasPlugin.js.map +0 -6
  118. package/dist/extractor/esbuildTsconfigPaths.js +0 -79
  119. package/dist/extractor/esbuildTsconfigPaths.js.map +0 -6
  120. package/dist/extractor/evaluateAstNode.js +0 -99
  121. package/dist/extractor/evaluateAstNode.js.map +0 -6
  122. package/dist/extractor/extractHelpers.js +0 -108
  123. package/dist/extractor/extractHelpers.js.map +0 -6
  124. package/dist/extractor/extractMediaStyle.js +0 -123
  125. package/dist/extractor/extractMediaStyle.js.map +0 -6
  126. package/dist/extractor/extractToClassNames.js +0 -351
  127. package/dist/extractor/extractToClassNames.js.map +0 -6
  128. package/dist/extractor/extractToNative.js +0 -286
  129. package/dist/extractor/extractToNative.js.map +0 -6
  130. package/dist/extractor/findTopmostFunction.js +0 -32
  131. package/dist/extractor/findTopmostFunction.js.map +0 -6
  132. package/dist/extractor/generatedUid.js +0 -42
  133. package/dist/extractor/generatedUid.js.map +0 -6
  134. package/dist/extractor/getPrefixLogs.js +0 -24
  135. package/dist/extractor/getPrefixLogs.js.map +0 -6
  136. package/dist/extractor/getPropValueFromAttributes.js +0 -65
  137. package/dist/extractor/getPropValueFromAttributes.js.map +0 -6
  138. package/dist/extractor/getSourceModule.js +0 -62
  139. package/dist/extractor/getSourceModule.js.map +0 -6
  140. package/dist/extractor/getStaticBindingsForScope.js +0 -145
  141. package/dist/extractor/getStaticBindingsForScope.js.map +0 -6
  142. package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.js +0 -32
  143. package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.js.map +0 -6
  144. package/dist/extractor/hoistClassNames.js +0 -63
  145. package/dist/extractor/hoistClassNames.js.map +0 -6
  146. package/dist/extractor/literalToAst.js +0 -90
  147. package/dist/extractor/literalToAst.js.map +0 -6
  148. package/dist/extractor/loadFile.js +0 -14
  149. package/dist/extractor/loadFile.js.map +0 -6
  150. package/dist/extractor/loadTamagui.js +0 -306
  151. package/dist/extractor/loadTamagui.js.map +0 -6
  152. package/dist/extractor/logLines.js +0 -30
  153. package/dist/extractor/logLines.js.map +0 -6
  154. package/dist/extractor/normalizeTernaries.js +0 -61
  155. package/dist/extractor/normalizeTernaries.js.map +0 -6
  156. package/dist/extractor/propsToFontFamilyCache.js +0 -33
  157. package/dist/extractor/propsToFontFamilyCache.js.map +0 -6
  158. package/dist/extractor/regenerateConfig.js +0 -123
  159. package/dist/extractor/regenerateConfig.js.map +0 -6
  160. package/dist/extractor/removeUnusedHooks.js +0 -72
  161. package/dist/extractor/removeUnusedHooks.js.map +0 -6
  162. package/dist/extractor/timer.js +0 -38
  163. package/dist/extractor/timer.js.map +0 -6
  164. package/dist/extractor/validHTMLAttributes.js +0 -72
  165. package/dist/extractor/validHTMLAttributes.js.map +0 -6
  166. package/dist/extractor/watchTamaguiConfig.js +0 -57
  167. package/dist/extractor/watchTamaguiConfig.js.map +0 -6
  168. package/dist/getPragmaOptions.js +0 -46
  169. package/dist/getPragmaOptions.js.map +0 -6
  170. package/dist/helpers/memoize.js +0 -33
  171. package/dist/helpers/memoize.js.map +0 -6
  172. package/dist/helpers/requireTamaguiCore.js +0 -30
  173. package/dist/helpers/requireTamaguiCore.js.map +0 -6
  174. package/dist/index.js +0 -30
  175. package/dist/index.js.map +0 -6
  176. package/dist/registerRequire.js +0 -100
  177. package/dist/registerRequire.js.map +0 -6
  178. package/dist/server.js +0 -58
  179. package/dist/server.js.map +0 -6
  180. package/dist/setup.js +0 -1
  181. package/dist/setup.js.map +0 -6
  182. package/dist/types.js +0 -14
  183. package/dist/types.js.map +0 -6
  184. package/dist/worker.js +0 -72
  185. 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,65 @@ __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,
75
79
  ...options
76
80
  }, 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",
81
+ if (process.env.DEBUG?.startsWith("tamagui")) console.info(`Building`, entryPoints);
82
+ const resolvedEntryPoints = !resolvePlatformSpecificEntries ? entryPoints : entryPoints.map(import_loadTamagui.resolveWebOrNativeSpecificEntry);
83
+ const detectedFormat = options.format || detectEntryFormat(resolvedEntryPoints[0]);
84
+ return {
85
+ bundle: true,
86
+ entryPoints: resolvedEntryPoints,
87
+ format: detectedFormat,
88
+ ...(detectedFormat === "esm" ? {
89
+ mainFields: ["module", "main"],
90
+ banner: {
91
+ js: "import { createRequire as __cr } from \"module\"; const require = __cr(import.meta.url);"
92
+ }
93
+ } : {}),
94
+ target: "node24",
82
95
  jsx: "transform",
83
96
  jsxFactory: "react",
84
- allowOverwrite: !0,
85
- keepNames: !0,
86
- resolveExtensions: [".web.tsx", ".web.ts", ".web.jsx", ".web.js", ".tsx", ".ts", ".jsx", ".js"],
97
+ allowOverwrite: true,
98
+ keepNames: true,
99
+ resolveExtensions: [...[".web.tsx", ".web.ts", ".web.jsx", ".web.js"], ".tsx", ".ts", ".jsx", ".js"],
87
100
  platform: "node",
88
101
  tsconfigRaw: {
89
102
  compilerOptions: {
@@ -92,35 +105,97 @@ function getESBuildConfig({
92
105
  },
93
106
  loader: esbuildLoaderConfig,
94
107
  logLevel: "warning",
95
- plugins: [(0, import_esbuildTsconfigPaths.TsconfigPathsPlugin)(), {
108
+ plugins: [(0, import_esbuildTsconfigPaths.TsconfigPathsPlugin)(),
109
+ // handle ESM-only features that can't be used with CJS output
110
+ {
111
+ name: "handle-esm-features",
112
+ setup(build) {
113
+ const isCjs = build.initialOptions.format === "cjs" || !build.initialOptions.format;
114
+ build.onLoad({
115
+ filter: /\.(ts|tsx|js|jsx|mjs)$/
116
+ }, args => {
117
+ if (!isCjs) return null;
118
+ if (args.path.includes("node_modules") && !args.path.includes("@tamagui")) return null;
119
+ let contents = (0, import_node_fs.readFileSync)(args.path, "utf8");
120
+ let modified = false;
121
+ if (contents.includes("import.meta.env")) {
122
+ contents = contents.replace(/import\.meta\.env/g, "process.env");
123
+ modified = true;
124
+ }
125
+ if (contents.includes("import.meta.url")) {
126
+ contents = contents.replace(/import\.meta\.url/g, "\"\"");
127
+ modified = true;
128
+ }
129
+ if (contents.includes("import.meta.main")) {
130
+ contents = contents.replace(/import\.meta\.main/g, "false");
131
+ modified = true;
132
+ }
133
+ if ((0, import_hasTopLevelAwait.hasTopLevelAwait)(contents, args.path)) {
134
+ if (process.env.DEBUG?.startsWith("tamagui")) console.info(`[tamagui] stubbing file with top-level await: ${args.path}`);
135
+ return {
136
+ contents: `// stubbed - contains top-level await
137
+ export default {}`,
138
+ loader: "js"
139
+ };
140
+ }
141
+ if (modified) return {
142
+ contents,
143
+ loader: args.path.endsWith(".tsx") ? "tsx" : args.path.endsWith(".ts") ? "ts" : args.path.endsWith(".jsx") ? "jsx" : "js"
144
+ };
145
+ return null;
146
+ });
147
+ }
148
+ }, {
96
149
  name: "external",
97
150
  setup(build) {
151
+ const proxyWormPath = require.resolve("@tamagui/proxy-worm");
152
+ build.onResolve({
153
+ filter: /^@tamagui\/(core|web)$/
154
+ }, args => {
155
+ if (args.kind === "entry-point") return null;
156
+ return {
157
+ path: platform === "native" ? "@tamagui/core/native" : args.path,
158
+ external: true
159
+ };
160
+ });
98
161
  build.onResolve({
99
- filter: /@tamagui\/core/
100
- }, args => ({
101
- path: platform === "native" ? "@tamagui/core/native" : "@tamagui/core",
102
- external: !0
103
- })), build.onResolve({
104
162
  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({
163
+ }, () => {
164
+ return {
165
+ path: "react-native/package.json",
166
+ external: true
167
+ };
168
+ });
169
+ build.onResolve({
114
170
  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
- }));
171
+ }, () => {
172
+ return {
173
+ path: "@tamagui/react-native-web-lite",
174
+ external: true
175
+ };
176
+ });
177
+ build.onResolve({
178
+ filter: /^react-native-reanimated(?:\/.*)?$/
179
+ }, () => {
180
+ return {
181
+ path: proxyWormPath
182
+ };
183
+ });
184
+ build.onResolve({
185
+ filter: /^react-native-worklets(?:\/.*)?$/
186
+ }, () => {
187
+ return {
188
+ path: proxyWormPath
189
+ };
190
+ });
191
+ build.onResolve({
192
+ filter: /^(framer-motion|motion)/
193
+ }, args => {
194
+ return {
195
+ path: args.path,
196
+ external: true
197
+ };
198
+ });
124
199
  }
125
200
  }, (0, import_esbuildAliasPlugin.esbuildAliasPlugin)({
126
201
  ...aliases
@@ -128,21 +203,22 @@ function getESBuildConfig({
128
203
  ...options
129
204
  };
130
205
  }
206
+ function detectEntryFormat(entryPoint) {
207
+ if (entryPoint.startsWith("/") || entryPoint.startsWith(".")) return (0, import_detectModuleFormat.detectModuleFormat)(entryPoint);
208
+ try {
209
+ const pkgJsonPath = require.resolve(entryPoint + "/package.json");
210
+ return JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf-8")).type === "module" ? "esm" : "cjs";
211
+ } catch {
212
+ return "cjs";
213
+ }
214
+ }
131
215
  async function esbundleTamaguiConfig(props, platform, aliases) {
132
- await asyncLock(props);
133
216
  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, "");
217
+ const tmpFile = props.outfile + ".tmp." + process.pid;
218
+ const result = await import_esbuild.default.build({
219
+ ...config,
220
+ outfile: tmpFile
221
+ });
222
+ await FS.rename(tmpFile, props.outfile);
223
+ return result;
148
224
  }