@tamagui/static 2.0.0-rc.8 → 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 -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 +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 +66 -33
  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
@@ -107,7 +107,7 @@ export async function extractToClassNames({
107
107
  sourcePath,
108
108
  extractStyledDefinitions: true,
109
109
  onStyledDefinitionRule(identifier, rules) {
110
- const css = rules.join(';')
110
+ const css = rules.join('\n')
111
111
  if (shouldPrintDebug) {
112
112
  console.info(`adding styled() rule: .${identifier} ${css}`)
113
113
  }
@@ -343,11 +343,18 @@ export async function extractToClassNames({
343
343
  baseClassNameStr = `font_${baseFontFamily}${baseClassNameStr ? ` ${baseClassNameStr}` : ''}`
344
344
  }
345
345
 
346
- let base = staticConfig.componentName
347
- ? t.stringLiteral(
348
- `is_${staticConfig.componentName}${baseClassNameStr ? ` ${baseClassNameStr}` : ''}`
349
- )
350
- : t.stringLiteral(baseClassNameStr || '')
346
+ // add is_View or is_Text base class matching runtime behavior
347
+ const baseTypeClass = staticConfig.isText ? 'is_Text' : 'is_View'
348
+ baseClassNameStr = `${baseTypeClass}${baseClassNameStr ? ` ${baseClassNameStr}` : ''}`
349
+
350
+ // add component name class (skip 'Text' since is_Text already covers it)
351
+ const componentNameFinal = staticConfig.componentName
352
+ let base =
353
+ componentNameFinal && componentNameFinal !== 'Text'
354
+ ? t.stringLiteral(
355
+ `is_${componentNameFinal}${baseClassNameStr ? ` ${baseClassNameStr}` : ''}`
356
+ )
357
+ : t.stringLiteral(baseClassNameStr || '')
351
358
 
352
359
  attrClassName = attrClassName as t.Expression | null // actual typescript bug, flatMap doesn't update from never
353
360
 
@@ -616,10 +623,9 @@ function hoistClassName(path: NodePath<t.JSXElement>, str: string) {
616
623
  function cleanupClassName(inStr: string) {
617
624
  const out = new Set<string>()
618
625
  for (const part of inStr.split(' ')) {
619
- if (part === ' ') continue
626
+ if (!part || part === ' ') continue
620
627
  if (part === 'font_') continue
621
628
  out.add(part)
622
629
  }
623
- // always a space after for joining
624
- return [...out].join(' ') + ' '
630
+ return [...out].join(' ')
625
631
  }
@@ -22,13 +22,7 @@ const importStyleSheet = template(`
22
22
  const __ReactNativeStyleSheet = require('react-native').StyleSheet;
23
23
  `)
24
24
 
25
- const importWithStyle = template(`
26
- const __withStableStyle = require('@tamagui/core')._withStableStyle;
27
- `)
28
-
29
- const importReactUseMemo = template(`
30
- const __ReactUseMemo = require('react').useMemo;
31
- `)
25
+ const importWithStyle = template.ast(`import { _withStableStyle } from '@tamagui/core';`)
32
26
 
33
27
  const extractor = createExtractor({ platform: 'native' })
34
28
 
@@ -161,6 +155,33 @@ export function getBabelParseDefinition(options: TamaguiOptions) {
161
155
  'cursor',
162
156
  'contain',
163
157
  ]),
158
+ // native props that should pass through without preventing extraction
159
+ inlineProps: new Set([
160
+ 'testID',
161
+ 'nativeID',
162
+ 'accessibilityLabel',
163
+ 'accessibilityHint',
164
+ 'accessibilityRole',
165
+ 'accessibilityState',
166
+ 'accessibilityValue',
167
+ 'accessibilityActions',
168
+ 'accessibilityLabelledBy',
169
+ 'accessibilityLiveRegion',
170
+ 'accessibilityElementsHidden',
171
+ 'accessibilityViewIsModal',
172
+ 'importantForAccessibility',
173
+ 'onAccessibilityAction',
174
+ 'onAccessibilityEscape',
175
+ 'onAccessibilityTap',
176
+ 'onMagicTap',
177
+ 'collapsable',
178
+ 'needsOffscreenAlphaCompositing',
179
+ 'removeClippedSubviews',
180
+ 'renderToHardwareTextureAndroid',
181
+ 'shouldRasterizeIOS',
182
+ 'hitSlop',
183
+ 'pointerEvents',
184
+ ]),
164
185
  shouldPrintDebug,
165
186
  ...finalOptions,
166
187
  // disable extracting variables as no native concept of them (only theme values)
@@ -189,7 +210,7 @@ export function getBabelParseDefinition(options: TamaguiOptions) {
189
210
  const finalAttrs: (t.JSXAttribute | t.JSXSpreadAttribute)[] = []
190
211
  const themeKeysUsed = new Set<string>()
191
212
 
192
- function getStyleExpression(style: object | null) {
213
+ function getStyleExpression(style: object | null, forTernary = false) {
193
214
  if (!style) return
194
215
 
195
216
  // split theme properties and leave them as props since RN has no concept of theme
@@ -205,13 +226,24 @@ export function getBabelParseDefinition(options: TamaguiOptions) {
205
226
  // make a sub-array
206
227
  themeExpr = getThemedStyleExpression(themed)
207
228
  }
208
- const ident = addSheetStyle(plain, props.node)
229
+ const hasPlainKeys = Object.keys(plain).length > 0
230
+ const ident = hasPlainKeys ? addSheetStyle(plain, props.node) : null
209
231
  if (themeExpr) {
210
- addStyleExpression(ident)
211
- addStyleExpression(ident, true)
232
+ if (forTernary) {
233
+ // for ternary branches, return combined expression
234
+ // without adding plain styles unconditionally
235
+ if (ident) {
236
+ return t.arrayExpression([ident, themeExpr])
237
+ }
238
+ return themeExpr
239
+ }
240
+ // for base styles, add unconditionally
241
+ if (ident) {
242
+ addStyleExpression(ident)
243
+ addStyleExpression(ident, true)
244
+ }
212
245
  return themeExpr
213
246
  }
214
- // since we only do flattened disabling this path
215
247
  return ident
216
248
  }
217
249
 
@@ -247,6 +279,7 @@ export function getBabelParseDefinition(options: TamaguiOptions) {
247
279
  }
248
280
 
249
281
  let hasDynamicStyle = false
282
+ let hasMediaKeys = false
250
283
 
251
284
  for (const attr of props.attrs) {
252
285
  switch (attr.type) {
@@ -259,8 +292,12 @@ export function getBabelParseDefinition(options: TamaguiOptions) {
259
292
 
260
293
  case 'ternary': {
261
294
  const { consequent, alternate } = attr.value
262
- const consExpr = getStyleExpression(consequent)
263
- const altExpr = getStyleExpression(alternate)
295
+ const consExpr = getStyleExpression(consequent, true)
296
+ const altExpr = getStyleExpression(alternate, true)
297
+
298
+ if (attr.value.inlineMediaQuery) {
299
+ hasMediaKeys = true
300
+ }
264
301
 
265
302
  expressions.push(attr.value.test)
266
303
  addStyleExpression(
@@ -306,8 +343,7 @@ export function getBabelParseDefinition(options: TamaguiOptions) {
306
343
  hasDynamicStyle
307
344
  ) {
308
345
  if (!hasImportedViewWrapper) {
309
- root.unshiftContainer('body', importWithStyle())
310
- root.unshiftContainer('body', importReactUseMemo())
346
+ root.unshiftContainer('body', importWithStyle)
311
347
  hasImportedViewWrapper = true
312
348
  }
313
349
 
@@ -318,31 +354,21 @@ export function getBabelParseDefinition(options: TamaguiOptions) {
318
354
  const WrapperIdentifier = t.identifier(wrapperName)
319
355
  const WrapperJSXIdentifier = t.jsxIdentifier(wrapperName)
320
356
 
357
+ const hasThemeKeysFlag = themeKeysUsed.size > 0
321
358
  root.pushContainer(
322
359
  'body',
323
360
  t.variableDeclaration('const', [
324
361
  t.variableDeclarator(
325
362
  WrapperIdentifier,
326
- t.callExpression(t.identifier('__withStableStyle'), [
363
+ t.callExpression(t.identifier('_withStableStyle'), [
327
364
  t.identifier(name),
328
365
  t.arrowFunctionExpression(
329
366
  [t.identifier('theme'), t.identifier('_expressions')],
330
- t.blockStatement([
331
- t.returnStatement(
332
- t.callExpression(t.identifier('__ReactUseMemo'), [
333
- t.arrowFunctionExpression(
334
- [],
335
- t.blockStatement([
336
- t.returnStatement(
337
- t.arrayExpression([...hocStylesExpr.elements])
338
- ),
339
- ])
340
- ),
341
- t.identifier('_expressions'),
342
- ])
343
- ),
344
- ])
367
+ // return styles directly - no useMemo, theme changes must trigger style recalc
368
+ t.arrayExpression([...hocStylesExpr.elements])
345
369
  ),
370
+ t.booleanLiteral(hasThemeKeysFlag),
371
+ t.booleanLiteral(hasMediaKeys),
346
372
  ])
347
373
  ),
348
374
  ])
@@ -358,10 +384,17 @@ export function getBabelParseDefinition(options: TamaguiOptions) {
358
384
  }
359
385
 
360
386
  if (expressions.length) {
387
+ // coerce runtime expressions to boolean so they can't be
388
+ // confused with string media keys at runtime
389
+ const safeExpressions = expressions.map((expr) =>
390
+ t.isStringLiteral(expr)
391
+ ? expr
392
+ : t.unaryExpression('!', t.unaryExpression('!', expr))
393
+ )
361
394
  props.node.attributes.push(
362
395
  t.jsxAttribute(
363
396
  t.jsxIdentifier('_expressions'),
364
- t.jsxExpressionContainer(t.arrayExpression(expressions))
397
+ t.jsxExpressionContainer(t.arrayExpression(safeExpressions))
365
398
  )
366
399
  )
367
400
  }
@@ -0,0 +1,28 @@
1
+ import traverse from '@babel/traverse'
2
+ import { babelParse } from './babelParse'
3
+
4
+ export function hasTopLevelAwait(contents: string, fileName?: string) {
5
+ if (!contents.includes('await')) {
6
+ return false
7
+ }
8
+
9
+ const ast = babelParse(contents, fileName)
10
+ let found = false
11
+
12
+ traverse(ast, {
13
+ AwaitExpression(path) {
14
+ if (!path.getFunctionParent()) {
15
+ found = true
16
+ path.stop()
17
+ }
18
+ },
19
+ ForOfStatement(path) {
20
+ if (path.node.await && !path.getFunctionParent()) {
21
+ found = true
22
+ path.stop()
23
+ }
24
+ },
25
+ })
26
+
27
+ return found
28
+ }
@@ -15,7 +15,7 @@ import {
15
15
  getBundledConfig,
16
16
  getLoadedConfig,
17
17
  hasBundledConfigChanged,
18
- loadComponents,
18
+ loadComponentsSync,
19
19
  writeTamaguiCSS,
20
20
  } from './bundleConfig'
21
21
  import { getTamaguiConfigPathFromOptionsConfig } from './getTamaguiConfigPathFromOptionsConfig'
@@ -288,7 +288,7 @@ export function loadTamaguiSync({
288
288
  }
289
289
 
290
290
  // components
291
- const components = loadComponents(props, forceExports)
291
+ const components = loadComponentsSync(props, forceExports)
292
292
  if (!components) {
293
293
  throw new Error(`No components loaded`)
294
294
  }
@@ -388,12 +388,13 @@ export async function getOptions({
388
388
  }
389
389
  }
390
390
 
391
- export function resolveWebOrNativeSpecificEntry(entry: string) {
391
+ export function resolveWebOrNativeSpecificEntry(entry: string, platform?: string) {
392
392
  const workspaceRoot = resolve()
393
393
  const resolved = require.resolve(entry, { paths: [workspaceRoot] })
394
394
  const ext = extname(resolved)
395
395
  const fileName = basename(resolved).replace(ext, '')
396
- const specificExt = process.env.TAMAGUI_TARGET === 'web' ? 'web' : 'native'
396
+ const target = platform || process.env.TAMAGUI_TARGET || 'web'
397
+ const specificExt = target === 'web' ? 'web' : 'native'
397
398
  const specificFile = join(dirname(resolved), fileName + '.' + specificExt + ext)
398
399
  if (fsExtra.existsSync(specificFile)) {
399
400
  return specificFile
@@ -23,6 +23,36 @@ export function setRequireResult(name: string, result: any) {
23
23
  compiled[name] = result
24
24
  }
25
25
 
26
+ function getStaticExtractionStub(path: string) {
27
+ switch (path) {
28
+ case 'expo-constants':
29
+ return {
30
+ __esModule: true,
31
+ default: {
32
+ executionEnvironment: null,
33
+ },
34
+ ExecutionEnvironment: {
35
+ Bare: 'bare',
36
+ Standalone: 'standalone',
37
+ StoreClient: 'storeClient',
38
+ },
39
+ }
40
+ case 'expo-updates':
41
+ return {
42
+ __esModule: true,
43
+ default: {
44
+ isEnabled: false,
45
+ isUsingEmbeddedAssets: true,
46
+ },
47
+ checkForUpdateAsync: async () => ({ isAvailable: false }),
48
+ fetchUpdateAsync: async () => ({ isNew: false }),
49
+ reloadAsync: async () => {},
50
+ }
51
+ default:
52
+ return null
53
+ }
54
+ }
55
+
26
56
  export function registerRequire(
27
57
  platform: TamaguiPlatform,
28
58
  { proxyWormImports } = {
@@ -37,10 +67,37 @@ export function registerRequire(
37
67
  }
38
68
  }
39
69
 
70
+ // capture original resolve BEFORE esbuild-register patches it
71
+ // so we can use Node's native exports resolution for @tamagui packages
72
+ const originalResolveFilename = Module._resolveFilename
73
+
40
74
  const { unregister } = register({
41
75
  hookIgnoreNodeModules: false,
76
+ // don't transform @tamagui packages - they have pre-built dist files
77
+ hookMatcher: (filename) => {
78
+ if (
79
+ filename.includes('@tamagui') ||
80
+ /\/tamagui\/code\/(core|ui|packages)\//.test(filename)
81
+ ) {
82
+ return false
83
+ }
84
+ return true
85
+ },
42
86
  })
43
87
 
88
+ // esbuild-register's registerTsconfigPaths replaces Module._resolveFilename
89
+ // but tsconfig paths resolution bypasses Node's package exports
90
+ // we need to restore Node's native resolution for @tamagui packages
91
+ const tsconfigPatchedResolve = Module._resolveFilename
92
+ Module._resolveFilename = function (request: string, ...args: any[]) {
93
+ // for @tamagui packages, use Node's native resolution (respects exports)
94
+ if (request.startsWith('@tamagui/')) {
95
+ return originalResolveFilename.call(this, request, ...args)
96
+ }
97
+ // for everything else, use tsconfig-paths resolution
98
+ return tsconfigPatchedResolve.call(this, request, ...args)
99
+ }
100
+
44
101
  if (!og) {
45
102
  og = Module.prototype.require // capture esbuild require
46
103
  }
@@ -50,6 +107,11 @@ export function registerRequire(
50
107
  Module.prototype.require = tamaguiRequire
51
108
 
52
109
  function tamaguiRequire(this: any, path: string) {
110
+ const staticExtractionStub = getStaticExtractionStub(path)
111
+ if (staticExtractionStub) {
112
+ return staticExtractionStub
113
+ }
114
+
53
115
  if (path === 'tamagui' && platform === 'native') {
54
116
  return og.apply(this, ['tamagui/native'])
55
117
  }
@@ -83,7 +145,9 @@ export function registerRequire(
83
145
  if (
84
146
  path === '@tamagui/react-native-web-lite' ||
85
147
  path === 'react-native' ||
86
- path.startsWith('react-native/')
148
+ path.startsWith('react-native/') ||
149
+ path === 'react-native-web' ||
150
+ path.startsWith('react-native-web/')
87
151
  ) {
88
152
  try {
89
153
  return og.apply('react-native')
@@ -94,7 +158,37 @@ export function registerRequire(
94
158
 
95
159
  if (!whitelisted[path]) {
96
160
  if (proxyWormImports && !path.includes('.tamagui-dynamic-eval')) {
97
- if (path === 'tamagui') {
161
+ // allow tamagui and its sub-packages through - they re-export components
162
+ // with staticConfig needed for dynamic eval optimization.
163
+ // also allow requires FROM within tamagui packages (relative imports like ./Separator.cjs)
164
+ const callerFile = this?.filename || this?.id || ''
165
+ const isFromTamaguiPkg =
166
+ callerFile.includes('@tamagui') ||
167
+ callerFile.includes('node_modules/tamagui/') ||
168
+ /\/tamagui\/code\/(core|ui|packages)\//.test(callerFile)
169
+ const isFromStaticLoader =
170
+ !callerFile ||
171
+ callerFile === '.' ||
172
+ callerFile === '[eval]' ||
173
+ callerFile.endsWith('/[eval]') ||
174
+ callerFile.includes('/code/compiler/static/') ||
175
+ callerFile.includes('/.tamagui/')
176
+ // relative requires from within a whitelisted package's own files
177
+ // (e.g. react/index.js does require('./cjs/react.development.js')).
178
+ // proxy-worming these breaks the package's own internals.
179
+ const isRelativeFromWhitelisted =
180
+ path.startsWith('.') &&
181
+ Object.keys(whitelisted).some((pkg) =>
182
+ callerFile.includes(`/node_modules/${pkg}/`)
183
+ )
184
+
185
+ if (
186
+ path === 'tamagui' ||
187
+ path.startsWith('@tamagui/') ||
188
+ isRelativeFromWhitelisted ||
189
+ isFromTamaguiPkg ||
190
+ isFromStaticLoader
191
+ ) {
98
192
  return og.apply(this, [path])
99
193
  }
100
194
  return proxyWorm
@@ -149,13 +243,8 @@ export function registerRequire(
149
243
  * We can't fix every problem, so just swap them out with proxyWorm which is a sort of generic object that can be read.
150
244
  */
151
245
 
152
- console.error(
153
- `Tamagui failed to require() "${path}"
154
-
155
- ${err.message}
156
- ${err.stack}
157
-
158
- `
246
+ console.warn(
247
+ ` [tamagui] skipped "${path}" (set TAMAGUI_IGNORE_BUNDLE_ERRORS="${path}" to silence)`
159
248
  )
160
249
  }
161
250
 
@@ -191,6 +280,10 @@ const knownIgnorableModules = {
191
280
  'expo-linear-gradient': true,
192
281
  '@expo/vector-icons': true,
193
282
  'tamagui/linear-gradient': true,
283
+ // animation libraries not needed for static extraction
284
+ '@emotion/is-prop-valid': true,
285
+ 'framer-motion': true,
286
+ motion: true,
194
287
  ...Object.fromEntries(extraIgnores?.map((k) => [k, true]) || []),
195
288
  }
196
289
 
@@ -1 +1 @@
1
- {"version":3,"file":"checkDeps.d.ts","sourceRoot":"","sources":["../src/checkDeps.ts"],"names":[],"mappings":"AAIA,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;CAC5B;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,eAAe,EAAE,EAAE,CAAA;IACzC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC,CAAA;AAqFD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,iBA2B3C"}
1
+ {"version":3,"file":"checkDeps.d.ts","sourceRoot":"","sources":["../src/checkDeps.ts"],"names":[],"mappings":"AAIA,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;CAC5B;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,eAAe,EAAE,EAAE,CAAA;IACzC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC,CAAA;AA+TD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,iBA8B3C"}
@@ -11,5 +11,7 @@ export * from './extractor/loadTamagui';
11
11
  export * from './extractor/watchTamaguiConfig';
12
12
  export * from './extractor/createLogger';
13
13
  export * from './registerRequire';
14
+ export { detectModuleFormat, clearFormatCache } from './extractor/detectModuleFormat';
15
+ export { esbundleTamaguiConfig } from './extractor/bundle';
14
16
  export * from './getPragmaOptions';
15
17
  //# sourceMappingURL=exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,cAAc,aAAa,CAAA;AAC3B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,cAAc,aAAa,CAAA;AAC3B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,cAAc,oBAAoB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"babelParse.d.ts","sourceRoot":"","sources":["../../src/extractor/babelParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAiBtC,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,aAGtC,CAAA;AAIF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,CAW3E"}
1
+ {"version":3,"file":"babelParse.d.ts","sourceRoot":"","sources":["../../src/extractor/babelParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAkBtC,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,aAGtC,CAAA;AAIF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,CAW3E"}
@@ -34,6 +34,88 @@ type Props = Omit<Partial<esbuild.BuildOptions>, 'entryPoints'> & {
34
34
  entryPoints: string[];
35
35
  resolvePlatformSpecificEntries?: boolean;
36
36
  };
37
- export declare function esbundleTamaguiConfig(props: Props, platform: TamaguiPlatform, aliases?: Record<string, string>): Promise<esbuild.BuildResult<esbuild.BuildOptions>>;
37
+ export declare function esbundleTamaguiConfig(props: Props, platform: TamaguiPlatform, aliases?: Record<string, string>): Promise<esbuild.BuildResult<{
38
+ outfile: string;
39
+ bundle?: boolean;
40
+ splitting?: boolean;
41
+ preserveSymlinks?: boolean;
42
+ metafile?: boolean;
43
+ outdir?: string;
44
+ outbase?: string;
45
+ external?: string[];
46
+ packages?: "bundle" | "external";
47
+ alias?: Record<string, string>;
48
+ loader?: {
49
+ [ext: string]: esbuild.Loader;
50
+ };
51
+ resolveExtensions?: string[];
52
+ mainFields?: string[];
53
+ conditions?: string[];
54
+ write?: boolean;
55
+ allowOverwrite?: boolean;
56
+ tsconfig?: string;
57
+ outExtension?: {
58
+ [ext: string]: string;
59
+ };
60
+ publicPath?: string;
61
+ entryNames?: string;
62
+ chunkNames?: string;
63
+ assetNames?: string;
64
+ inject?: string[];
65
+ banner?: {
66
+ [type: string]: string;
67
+ };
68
+ footer?: {
69
+ [type: string]: string;
70
+ };
71
+ entryPoints?: (string | {
72
+ in: string;
73
+ out: string;
74
+ })[] | Record<string, string>;
75
+ stdin?: esbuild.StdinOptions;
76
+ plugins?: esbuild.Plugin[];
77
+ absWorkingDir?: string;
78
+ nodePaths?: string[];
79
+ sourcemap?: boolean | "linked" | "inline" | "external" | "both";
80
+ legalComments?: "none" | "inline" | "eof" | "linked" | "external";
81
+ sourceRoot?: string;
82
+ sourcesContent?: boolean;
83
+ format?: esbuild.Format;
84
+ globalName?: string;
85
+ target?: string | string[];
86
+ supported?: Record<string, boolean>;
87
+ platform?: esbuild.Platform;
88
+ mangleProps?: RegExp;
89
+ reserveProps?: RegExp;
90
+ mangleQuoted?: boolean;
91
+ mangleCache?: Record<string, string | false>;
92
+ drop?: esbuild.Drop[];
93
+ dropLabels?: string[];
94
+ minify?: boolean;
95
+ minifyWhitespace?: boolean;
96
+ minifyIdentifiers?: boolean;
97
+ minifySyntax?: boolean;
98
+ lineLimit?: number;
99
+ charset?: esbuild.Charset;
100
+ treeShaking?: boolean;
101
+ ignoreAnnotations?: boolean;
102
+ jsx?: "transform" | "preserve" | "automatic";
103
+ jsxFactory?: string;
104
+ jsxFragment?: string;
105
+ jsxImportSource?: string;
106
+ jsxDev?: boolean;
107
+ jsxSideEffects?: boolean;
108
+ define?: {
109
+ [key: string]: string;
110
+ };
111
+ pure?: string[];
112
+ keepNames?: boolean;
113
+ absPaths?: esbuild.AbsPaths[];
114
+ color?: boolean;
115
+ logLevel?: esbuild.LogLevel;
116
+ logLimit?: number;
117
+ logOverride?: Record<string, esbuild.LogLevel>;
118
+ tsconfigRaw?: string | esbuild.TsconfigRaw;
119
+ }>>;
38
120
  export {};
39
121
  //# sourceMappingURL=bundle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/extractor/bundle.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK/C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;CAwBtB,CAAA;AAQV,eAAO,MAAM,uBAAuB,QAAqD,CAAA;AAEzF;;GAEG;AAEH,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,GAAG;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,CAAA;AA2FD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,sDAKjC"}
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/extractor/bundle.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAO/C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;CAwBtB,CAAA;AAQV,eAAO,MAAM,uBAAuB,QAAqD,CAAA;AAEzF;;GAEG;AAEH,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,GAAG;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,CAAA;AA0OD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBjC"}
@@ -1,4 +1,5 @@
1
1
  import { type StaticConfig, type TamaguiInternalConfig } from '@tamagui/web';
2
+ import esbuild from 'esbuild';
2
3
  import type { TamaguiOptions } from '../types';
3
4
  type NameToPaths = {
4
5
  [key: string]: Set<string>;
@@ -24,13 +25,25 @@ export declare const esbuildOptions: {
24
25
  jsx: "automatic";
25
26
  platform: "node";
26
27
  };
28
+ export declare const esbuildOptionsWithPlugins: {
29
+ plugins: esbuild.Plugin[];
30
+ define: {
31
+ __DEV__: string;
32
+ };
33
+ target: string;
34
+ format: "cjs";
35
+ jsx: "automatic";
36
+ platform: "node";
37
+ };
27
38
  export type BundledConfig = Exclude<Awaited<ReturnType<typeof bundleConfig>>, undefined>;
28
39
  export declare function hasBundledConfigChanged(): boolean;
29
40
  export declare const getLoadedConfig: () => TamaguiInternalConfig | null;
30
41
  export declare function getBundledConfig(props: TamaguiOptions, rebuild?: boolean): Promise<any>;
31
42
  export declare function bundleConfig(props: TamaguiOptions): Promise<any>;
32
43
  export declare function writeTamaguiCSS(outputCSS: string, config: TamaguiInternalConfig): Promise<void>;
33
- export declare function loadComponents(props: TamaguiOptions, forceExports?: boolean): LoadedComponents[];
34
- export declare function loadComponentsInner(props: TamaguiOptions, forceExports?: boolean): null | LoadedComponents[];
44
+ export declare function loadComponents(props: TamaguiOptions, forceExports?: boolean): Promise<LoadedComponents[]>;
45
+ export declare function loadComponentsSync(props: TamaguiOptions, forceExports?: boolean): LoadedComponents[];
46
+ export declare function loadComponentsInner(props: TamaguiOptions, forceExports?: boolean): Promise<null | LoadedComponents[]>;
47
+ export declare function loadComponentsInnerSync(props: TamaguiOptions, forceExports?: boolean): null | LoadedComponents[];
35
48
  export {};
36
49
  //# sourceMappingURL=bundleConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundleConfig.d.ts","sourceRoot":"","sources":["../../src/extractor/bundleConfig.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC3B,MAAM,cAAc,CAAA;AAKrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAM9C,KAAK,WAAW,GAAG;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QACE,YAAY,EAAE,YAAY,CAAA;KAC3B,CACF,CAAA;CACF,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAgBD,eAAO,MAAM,cAAc;;;;;;;;CAMK,CAAA;AAEhC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AAQxF,wBAAgB,uBAAuB,YAMtC;AAID,eAAO,MAAM,eAAe,oCAAqB,CAAA;AAEjD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,UAAQ,gBAS5E;AAgBD,wBAAsB,YAAY,CAAC,KAAK,EAAE,cAAc,gBA+LvD;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,iBAmBrF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,sBAIzE;AAqBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,UAAQ,GACnB,IAAI,GAAG,gBAAgB,EAAE,CA+H3B"}
1
+ {"version":3,"file":"bundleConfig.d.ts","sourceRoot":"","sources":["../../src/extractor/bundleConfig.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,OAAO,MAAM,SAAS,CAAA;AAI7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAyE9C,KAAK,WAAW,GAAG;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QACE,YAAY,EAAE,YAAY,CAAA;KAC3B,CACF,CAAA;CACF,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAgGD,eAAO,MAAM,cAAc;;;;;;;;CAEK,CAAA;AAGhC,eAAO,MAAM,yBAAyB;;;;;;;;;CAGN,CAAA;AAEhC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AASxF,wBAAgB,uBAAuB,YAMtC;AAID,eAAO,MAAM,eAAe,oCAAqB,CAAA;AAUjD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,UAAQ,gBAa5E;AAiBD,wBAAsB,YAAY,CAAC,KAAK,EAAE,cAAc,gBAyPvD;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,iBAmBrF;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,+BAI/E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,sBAI7E;AAqBD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,cAAc,EACrB,YAAY,UAAQ,GACnB,OAAO,CAAC,IAAI,GAAG,gBAAgB,EAAE,CAAC,CAyJpC;AAGD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EACrB,YAAY,UAAQ,GACnB,IAAI,GAAG,gBAAgB,EAAE,CAyI3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"createExtractor.d.ts","sourceRoot":"","sources":["../../src/extractor/createExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,iBAAiB,CAAA;AAEhE,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAiBjC,OAAO,KAAK,EAGV,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EAGf,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAcxD,OAAO,EAAE,iBAAiB,EAA6B,MAAM,6BAA6B,CAAA;AAkB1F,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAE1D,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAQ9C,wBAAgB,eAAe,CAC7B,EAAE,MAAgB,EAAE,QAAgB,EAAE,GAAE,gBAAsC;;;;;yBAsDnD,cAAc;6BAPhB,cAAc;;mBAwBtB,UAAU,SAAS,mBAAmB;;;;;;;eAKpC,UAAU,SAAS,mBAAmB;;;;;;;EAivE1D"}
1
+ {"version":3,"file":"createExtractor.d.ts","sourceRoot":"","sources":["../../src/extractor/createExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,iBAAiB,CAAA;AAEhE,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAmBjC,OAAO,KAAK,EAGV,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EAGf,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAc1E,OAAO,EAAE,iBAAiB,EAA6B,MAAM,6BAA6B,CAAA;AAwB1F,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAE1D,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAQ9C,wBAAgB,eAAe,CAC7B,EAAE,MAAgB,EAAE,QAAgB,EAAE,GAAE,gBAAsC;;;;;yBAsJnD,cAAc;6BAPhB,cAAc;;mBAwBtB,UAAU,SAAS,mBAAmB;;;;;;;eAKpC,UAAU,SAAS,mBAAmB;;;;;;;EAu5E1D"}
@@ -0,0 +1,5 @@
1
+ type ModuleFormat = 'cjs' | 'esm';
2
+ export declare function detectModuleFormat(filePath: string): ModuleFormat;
3
+ export declare function clearFormatCache(): void;
4
+ export {};
5
+ //# sourceMappingURL=detectModuleFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectModuleFormat.d.ts","sourceRoot":"","sources":["../../src/extractor/detectModuleFormat.ts"],"names":[],"mappings":"AAGA,KAAK,YAAY,GAAG,KAAK,GAAG,KAAK,CAAA;AAKjC,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CA6BjE;AAED,wBAAgB,gBAAgB,SAE/B"}
@@ -1,3 +1,11 @@
1
1
  import type { Plugin } from 'esbuild';
2
+ interface Tsconfig {
3
+ compilerOptions?: {
4
+ baseUrl?: string;
5
+ paths?: Record<string, string[]>;
6
+ };
7
+ }
2
8
  export declare function TsconfigPathsPlugin(): Plugin;
9
+ export declare function loadCompilerOptionsFromTsconfig(tsconfig?: Tsconfig | string): import("typescript").CompilerOptions;
10
+ export {};
3
11
  //# sourceMappingURL=esbuildTsconfigPaths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"esbuildTsconfigPaths.d.ts","sourceRoot":"","sources":["../../src/extractor/esbuildTsconfigPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAoBrC,wBAAgB,mBAAmB,IAAI,MAAM,CAuC5C"}
1
+ {"version":3,"file":"esbuildTsconfigPaths.d.ts","sourceRoot":"","sources":["../../src/extractor/esbuildTsconfigPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAarC,UAAU,QAAQ;IAChB,eAAe,CAAC,EAAE;QAChB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;KACjC,CAAA;CACF;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CA4C5C;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,wCAuB3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"extractToClassNames.d.ts","sourceRoot":"","sources":["../../src/extractor/extractToClassNames.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAKjC,OAAO,KAAK,EAAe,cAAc,EAAW,MAAM,UAAU,CAAA;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAYlD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAA;IACX,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAA;CACtC,CAAA;AAQD,wBAAsB,mBAAmB,CAAC,EACxC,SAAS,EACT,MAAM,EACN,UAAe,EACf,OAAO,EACP,gBAAgB,GACjB,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAogB9D"}
1
+ {"version":3,"file":"extractToClassNames.d.ts","sourceRoot":"","sources":["../../src/extractor/extractToClassNames.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAKjC,OAAO,KAAK,EAAe,cAAc,EAAW,MAAM,UAAU,CAAA;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAYlD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAA;IACX,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAA;CACtC,CAAA;AAQD,wBAAsB,mBAAmB,CAAC,EACxC,SAAS,EACT,MAAM,EACN,UAAe,EACf,OAAO,EACP,gBAAgB,GACjB,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA2gB9D"}