@tamagui/static 1.0.0-alpha.11 → 1.0.0-alpha.15

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 (182) hide show
  1. package/dist/cjs/constants.js +33 -0
  2. package/dist/cjs/constants.js.map +7 -0
  3. package/dist/cjs/extractor/accessSafe.js +33 -0
  4. package/dist/cjs/extractor/accessSafe.js.map +7 -0
  5. package/dist/cjs/extractor/babelParse.js +52 -0
  6. package/dist/cjs/extractor/babelParse.js.map +7 -0
  7. package/dist/cjs/extractor/buildClassName.js +62 -0
  8. package/dist/cjs/extractor/buildClassName.js.map +7 -0
  9. package/dist/cjs/extractor/createEvaluator.js +73 -0
  10. package/dist/cjs/extractor/createEvaluator.js.map +7 -0
  11. package/dist/cjs/extractor/createExtractor.js +903 -0
  12. package/dist/cjs/extractor/createExtractor.js.map +7 -0
  13. package/dist/cjs/extractor/ensureImportingConcat.js +46 -0
  14. package/dist/cjs/extractor/ensureImportingConcat.js.map +7 -0
  15. package/dist/cjs/extractor/evaluateAstNode.js +116 -0
  16. package/dist/cjs/extractor/evaluateAstNode.js.map +7 -0
  17. package/dist/cjs/extractor/extractHelpers.js +118 -0
  18. package/dist/cjs/extractor/extractHelpers.js.map +7 -0
  19. package/dist/cjs/extractor/extractMediaStyle.js +187 -0
  20. package/dist/cjs/extractor/extractMediaStyle.js.map +7 -0
  21. package/dist/cjs/extractor/extractToClassNames.js +279 -0
  22. package/dist/cjs/extractor/extractToClassNames.js.map +7 -0
  23. package/dist/cjs/extractor/findTopmostFunction.js +29 -0
  24. package/dist/cjs/extractor/findTopmostFunction.js.map +7 -0
  25. package/dist/cjs/extractor/generatedUid.js +50 -0
  26. package/dist/cjs/extractor/generatedUid.js.map +7 -0
  27. package/dist/cjs/extractor/getPropValueFromAttributes.js +71 -0
  28. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +7 -0
  29. package/dist/cjs/extractor/getSourceModule.js +91 -0
  30. package/dist/cjs/extractor/getSourceModule.js.map +7 -0
  31. package/dist/cjs/extractor/getStaticBindingsForScope.js +150 -0
  32. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +7 -0
  33. package/dist/cjs/extractor/hoistClassNames.js +66 -0
  34. package/dist/cjs/extractor/hoistClassNames.js.map +7 -0
  35. package/dist/cjs/extractor/literalToAst.js +56 -0
  36. package/dist/cjs/extractor/literalToAst.js.map +7 -0
  37. package/dist/cjs/extractor/loadTamagui.js +63 -0
  38. package/dist/cjs/extractor/loadTamagui.js.map +7 -0
  39. package/dist/cjs/extractor/logLines.js +23 -0
  40. package/dist/cjs/extractor/logLines.js.map +7 -0
  41. package/dist/cjs/extractor/normalizeTernaries.js +102 -0
  42. package/dist/cjs/extractor/normalizeTernaries.js.map +7 -0
  43. package/dist/cjs/extractor/removeUnusedHooks.js +101 -0
  44. package/dist/cjs/extractor/removeUnusedHooks.js.map +7 -0
  45. package/dist/cjs/index.js +37 -0
  46. package/dist/cjs/index.js.map +7 -0
  47. package/dist/cjs/patchReactNativeWeb.js +129 -0
  48. package/dist/cjs/patchReactNativeWeb.js.map +7 -0
  49. package/dist/cjs/types.js +4 -0
  50. package/dist/cjs/types.js.map +7 -0
  51. package/dist/{constants.js → esm/constants.js} +0 -0
  52. package/dist/{constants.js.map → esm/constants.js.map} +1 -1
  53. package/dist/{extractor → esm/extractor}/accessSafe.js +0 -0
  54. package/dist/{extractor → esm/extractor}/accessSafe.js.map +1 -1
  55. package/dist/{extractor → esm/extractor}/babelParse.js +0 -0
  56. package/dist/{extractor → esm/extractor}/babelParse.js.map +1 -1
  57. package/dist/{extractor → esm/extractor}/buildClassName.js +0 -0
  58. package/dist/{extractor → esm/extractor}/buildClassName.js.map +1 -1
  59. package/dist/{extractor → esm/extractor}/createEvaluator.js +0 -0
  60. package/dist/{extractor → esm/extractor}/createEvaluator.js.map +1 -1
  61. package/dist/{extractor → esm/extractor}/createExtractor.js +0 -0
  62. package/dist/{extractor → esm/extractor}/createExtractor.js.map +1 -1
  63. package/dist/{extractor → esm/extractor}/ensureImportingConcat.js +0 -0
  64. package/dist/{extractor → esm/extractor}/ensureImportingConcat.js.map +1 -1
  65. package/dist/{extractor → esm/extractor}/evaluateAstNode.js +0 -0
  66. package/dist/{extractor → esm/extractor}/evaluateAstNode.js.map +1 -1
  67. package/dist/{extractor → esm/extractor}/extractHelpers.js +1 -1
  68. package/dist/{extractor → esm/extractor}/extractHelpers.js.map +3 -3
  69. package/dist/{extractor → esm/extractor}/extractMediaStyle.js +0 -0
  70. package/dist/{extractor → esm/extractor}/extractMediaStyle.js.map +1 -1
  71. package/dist/{extractor → esm/extractor}/extractToClassNames.js +12 -5
  72. package/dist/esm/extractor/extractToClassNames.js.map +7 -0
  73. package/dist/{extractor → esm/extractor}/findTopmostFunction.js +0 -0
  74. package/dist/{extractor → esm/extractor}/findTopmostFunction.js.map +1 -1
  75. package/dist/{extractor → esm/extractor}/generatedUid.js +0 -0
  76. package/dist/{extractor → esm/extractor}/generatedUid.js.map +1 -1
  77. package/dist/{extractor → esm/extractor}/getPropValueFromAttributes.js +0 -0
  78. package/dist/{extractor → esm/extractor}/getPropValueFromAttributes.js.map +1 -1
  79. package/dist/{extractor → esm/extractor}/getSourceModule.js +0 -0
  80. package/dist/{extractor → esm/extractor}/getSourceModule.js.map +1 -1
  81. package/dist/{extractor → esm/extractor}/getStaticBindingsForScope.js +0 -0
  82. package/dist/{extractor → esm/extractor}/getStaticBindingsForScope.js.map +1 -1
  83. package/dist/{extractor → esm/extractor}/hoistClassNames.js +0 -0
  84. package/dist/{extractor → esm/extractor}/hoistClassNames.js.map +1 -1
  85. package/dist/{extractor → esm/extractor}/literalToAst.js +0 -0
  86. package/dist/{extractor → esm/extractor}/literalToAst.js.map +1 -1
  87. package/dist/{extractor → esm/extractor}/loadTamagui.js +0 -0
  88. package/dist/{extractor → esm/extractor}/loadTamagui.js.map +1 -1
  89. package/dist/{extractor → esm/extractor}/logLines.js +0 -0
  90. package/dist/{extractor → esm/extractor}/logLines.js.map +1 -1
  91. package/dist/{extractor → esm/extractor}/normalizeTernaries.js +0 -0
  92. package/dist/{extractor → esm/extractor}/normalizeTernaries.js.map +1 -1
  93. package/dist/{extractor → esm/extractor}/removeUnusedHooks.js +0 -0
  94. package/dist/{extractor → esm/extractor}/removeUnusedHooks.js.map +1 -1
  95. package/dist/{index.js → esm/index.js} +0 -0
  96. package/dist/{index.js.map → esm/index.js.map} +1 -1
  97. package/dist/{patchReactNativeWeb.js → esm/patchReactNativeWeb.js} +0 -0
  98. package/dist/{patchReactNativeWeb.js.map → esm/patchReactNativeWeb.js.map} +1 -1
  99. package/dist/{types.js → esm/types.js} +0 -0
  100. package/dist/{types.js.map → esm/types.js.map} +0 -0
  101. package/dist/jsx/constants.js +9 -0
  102. package/dist/jsx/extractor/accessSafe.js +10 -0
  103. package/dist/jsx/extractor/babelParse.js +29 -0
  104. package/dist/jsx/extractor/buildClassName.js +39 -0
  105. package/dist/jsx/extractor/createEvaluator.js +50 -0
  106. package/dist/jsx/extractor/createExtractor.js +839 -0
  107. package/dist/jsx/extractor/ensureImportingConcat.js +23 -0
  108. package/dist/jsx/extractor/evaluateAstNode.js +93 -0
  109. package/dist/jsx/extractor/extractHelpers.js +93 -0
  110. package/dist/jsx/extractor/extractMediaStyle.js +150 -0
  111. package/dist/jsx/extractor/extractToClassNames.js +239 -0
  112. package/dist/jsx/extractor/findTopmostFunction.js +22 -0
  113. package/dist/jsx/extractor/generatedUid.js +27 -0
  114. package/dist/jsx/extractor/getPropValueFromAttributes.js +48 -0
  115. package/dist/jsx/extractor/getSourceModule.js +68 -0
  116. package/dist/jsx/extractor/getStaticBindingsForScope.js +127 -0
  117. package/dist/jsx/extractor/hoistClassNames.js +43 -0
  118. package/dist/jsx/extractor/literalToAst.js +33 -0
  119. package/dist/jsx/extractor/loadTamagui.js +40 -0
  120. package/dist/jsx/extractor/logLines.js +16 -0
  121. package/dist/jsx/extractor/normalizeTernaries.js +51 -0
  122. package/dist/jsx/extractor/removeUnusedHooks.js +77 -0
  123. package/dist/jsx/index.js +13 -0
  124. package/dist/jsx/patchReactNativeWeb.js +106 -0
  125. package/dist/jsx/types.js +0 -0
  126. package/package.json +14 -13
  127. package/src/extractor/extractHelpers.ts +1 -1
  128. package/src/extractor/extractToClassNames.ts +16 -8
  129. package/types/constants.d.ts +4 -0
  130. package/types/constants.d.ts.map +1 -0
  131. package/types/extractor/accessSafe.d.ts +3 -0
  132. package/types/extractor/accessSafe.d.ts.map +1 -0
  133. package/types/extractor/babelParse.d.ts +5 -0
  134. package/types/extractor/babelParse.d.ts.map +1 -0
  135. package/types/extractor/buildClassName.d.ts +4 -0
  136. package/types/extractor/buildClassName.d.ts.map +1 -0
  137. package/types/extractor/createEvaluator.d.ts +12 -0
  138. package/types/extractor/createEvaluator.d.ts.map +1 -0
  139. package/types/extractor/createExtractor.d.ts +34 -0
  140. package/types/extractor/createExtractor.d.ts.map +1 -0
  141. package/types/extractor/ensureImportingConcat.d.ts +4 -0
  142. package/types/extractor/ensureImportingConcat.d.ts.map +1 -0
  143. package/types/extractor/evaluateAstNode.d.ts +3 -0
  144. package/types/extractor/evaluateAstNode.d.ts.map +1 -0
  145. package/types/extractor/extractHelpers.d.ts +12 -0
  146. package/types/extractor/extractHelpers.d.ts.map +1 -0
  147. package/types/extractor/extractMediaStyle.d.ts +10 -0
  148. package/types/extractor/extractMediaStyle.d.ts.map +1 -0
  149. package/types/extractor/extractToClassNames.d.ts +22 -0
  150. package/types/extractor/extractToClassNames.d.ts.map +1 -0
  151. package/types/extractor/findTopmostFunction.d.ts +4 -0
  152. package/types/extractor/findTopmostFunction.d.ts.map +1 -0
  153. package/types/extractor/generatedUid.d.ts +5 -0
  154. package/types/extractor/generatedUid.d.ts.map +1 -0
  155. package/types/extractor/getPropValueFromAttributes.d.ts +3 -0
  156. package/types/extractor/getPropValueFromAttributes.d.ts.map +1 -0
  157. package/types/extractor/getSourceModule.d.ts +16 -0
  158. package/types/extractor/getSourceModule.d.ts.map +1 -0
  159. package/types/extractor/getStaticBindingsForScope.d.ts +4 -0
  160. package/types/extractor/getStaticBindingsForScope.d.ts.map +1 -0
  161. package/types/extractor/hoistClassNames.d.ts +6 -0
  162. package/types/extractor/hoistClassNames.d.ts.map +1 -0
  163. package/types/extractor/literalToAst.d.ts +3 -0
  164. package/types/extractor/literalToAst.d.ts.map +1 -0
  165. package/types/extractor/loadTamagui.d.ts +9 -0
  166. package/types/extractor/loadTamagui.d.ts.map +1 -0
  167. package/types/extractor/logLines.d.ts +2 -0
  168. package/types/extractor/logLines.d.ts.map +1 -0
  169. package/types/extractor/normalizeTernaries.d.ts +3 -0
  170. package/types/extractor/normalizeTernaries.d.ts.map +1 -0
  171. package/types/extractor/removeUnusedHooks.d.ts +3 -0
  172. package/types/extractor/removeUnusedHooks.d.ts.map +1 -0
  173. package/types/index.d.ts +8 -0
  174. package/types/index.d.ts.map +1 -0
  175. package/types/patchReactNativeWeb.d.ts +2 -0
  176. package/types/patchReactNativeWeb.d.ts.map +1 -0
  177. package/types/types.d.ts +79 -0
  178. package/types/types.d.ts.map +1 -0
  179. package/dist/extractor/extractToClassNames.js.map +0 -7
  180. package/dist/index.cjs +0 -2139
  181. package/dist/index.cjs.map +0 -7
  182. package/types.d.ts +0 -220
@@ -98,5 +98,5 @@ export function isValidThemeHook(
98
98
  }
99
99
 
100
100
  export const isInsideTamagui = (srcName: string) => {
101
- return srcName.includes('/tamagui/_jsx') || srcName.includes('/core/src')
101
+ return srcName.includes('/dist/jsx') || srcName.includes('/core/src')
102
102
  }
@@ -62,7 +62,7 @@ export function extractToClassNames({
62
62
  '`sourcePath` must be an absolute path to a .js file'
63
63
  )
64
64
 
65
- const shouldLogTiming = shouldPrintDebug || options.logTimings
65
+ const shouldLogTiming = options.logTimings ?? true
66
66
  const start = Date.now()
67
67
  const mem = shouldLogTiming ? process.memoryUsage() : null
68
68
 
@@ -265,7 +265,10 @@ export function extractToClassNames({
265
265
  },
266
266
  })
267
267
 
268
- if (!res || !res.modified) {
268
+ if (!res || (!res.modified && !res.optimized && !res.flattened)) {
269
+ if (shouldPrintDebug) {
270
+ console.log('no res or none modified', res)
271
+ }
269
272
  return null
270
273
  }
271
274
 
@@ -306,12 +309,17 @@ export function extractToClassNames({
306
309
  console.log('\n -------- output style -------- \n\n', styles)
307
310
  }
308
311
 
309
- if (shouldLogTiming && mem) {
310
- // console.log(`${parseTime} / ${traverseTime} / ${generateTime}`)
311
- const memUsed =
312
- Math.round(((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204) * 10) / 10
313
- // prettier-ignore
314
- console.log(` 🥚 ${basename(sourcePath).padStart(40)} ${`${Date.now() - start}`.padStart(3)}ms ׁ· ${`${res.optimized}`.padStart(4)} optimized · ${res.flattened} flattened ${memUsed > 10 ? `used ${memUsed}MB` : ''}`)
312
+ if (shouldLogTiming) {
313
+ const memUsed = mem
314
+ ? Math.round(((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204) * 10) / 10
315
+ : 0
316
+ const timing = `${Date.now() - start}`.padStart(3)
317
+ const path = basename(sourcePath).padStart(40)
318
+ const numOptimized = `${res.optimized}`.padStart(4)
319
+ const memory = memUsed > 10 ? `used ${memUsed}MB` : ''
320
+ console.log(
321
+ ` 🥚 ${path} ${timing}ms ׁ· ${numOptimized} optimized · ${res.flattened} flattened ${memory}`
322
+ )
315
323
  }
316
324
 
317
325
  return {
@@ -0,0 +1,4 @@
1
+ export declare const CSS_FILE_NAME = "__snack.css";
2
+ export declare const MEDIA_SEP = "_";
3
+ export declare const cacheDir: any;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,gBAAgB,CAAA;AAI1C,eAAO,MAAM,SAAS,MAAM,CAAA;AAG5B,eAAO,MAAM,QAAQ,KAAkD,CAAA"}
@@ -0,0 +1,3 @@
1
+ import * as t from '@babel/types';
2
+ export declare function accessSafe(obj: t.Expression, member: string): t.LogicalExpression;
3
+ //# sourceMappingURL=accessSafe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessSafe.d.ts","sourceRoot":"","sources":["../../src/extractor/accessSafe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAIjC,wBAAgB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAajF"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ import * as babelParser from '@babel/parser';
3
+ export declare const parserOptions: babelParser.ParserOptions;
4
+ export declare function babelParse(code: string | Buffer): any;
5
+ //# sourceMappingURL=babelParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babelParse.d.ts","sourceRoot":"","sources":["../../src/extractor/babelParse.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAE5C,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,aAkBtC,CAAA;AAIF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAErD"}
@@ -0,0 +1,4 @@
1
+ import * as t from '@babel/types';
2
+ import { ClassNameObject } from '../types';
3
+ export declare function buildClassName(classNameObjects: ClassNameObject[]): t.Expression | t.StringLiteral | null;
4
+ //# sourceMappingURL=buildClassName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildClassName.d.ts","sourceRoot":"","sources":["../../src/extractor/buildClassName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,eAAe,EAAE,GAClC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,aAAa,GAAG,IAAI,CAsDvC"}
@@ -0,0 +1,12 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ import type { TamaguiConfig } from '@tamagui/core';
4
+ export declare function createEvaluator({ tamaguiConfig, staticNamespace, sourcePath, traversePath, shouldPrintDebug, }: {
5
+ tamaguiConfig: TamaguiConfig;
6
+ staticNamespace: Record<string, any>;
7
+ sourcePath: string;
8
+ traversePath: NodePath<t.JSXElement>;
9
+ shouldPrintDebug: boolean;
10
+ }): (n: t.Node) => any;
11
+ export declare function createSafeEvaluator(attemptEval: (n: t.Node) => any): (n: t.Node) => any;
12
+ //# sourceMappingURL=createEvaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEvaluator.d.ts","sourceRoot":"","sources":["../../src/extractor/createEvaluator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAMlD,wBAAgB,eAAe,CAAC,EAC9B,aAAa,EACb,eAAe,EACf,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,aAAa,EAAE,aAAa,CAAA;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACpC,gBAAgB,EAAE,OAAO,CAAA;CAC1B,OA+BY,MAAM,SAGlB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,OACtD,MAAM,SAOlB"}
@@ -0,0 +1,34 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ import type { TamaguiInternalConfig } from '@tamagui/core';
4
+ import { ExtractorParseProps } from '../types';
5
+ export declare const FAILED_EVAL: unique symbol;
6
+ export declare type Extractor = ReturnType<typeof createExtractor>;
7
+ export declare function createExtractor(): {
8
+ getTamagui(): TamaguiInternalConfig<import("@tamagui/core").CreateTokens<string | number | import("@tamagui/core").Variable>, {
9
+ [key: string]: {
10
+ bg: string | import("@tamagui/core").Variable;
11
+ bg2: string | import("@tamagui/core").Variable;
12
+ bg3: string | import("@tamagui/core").Variable;
13
+ bg4: string | import("@tamagui/core").Variable;
14
+ color: string | import("@tamagui/core").Variable;
15
+ color2: string | import("@tamagui/core").Variable;
16
+ color3: string | import("@tamagui/core").Variable;
17
+ color4: string | import("@tamagui/core").Variable;
18
+ borderColor: string | import("@tamagui/core").Variable;
19
+ borderColor2: string | import("@tamagui/core").Variable;
20
+ shadowColor: string | import("@tamagui/core").Variable;
21
+ shadowColor2: string | import("@tamagui/core").Variable;
22
+ };
23
+ }, {}, {
24
+ [x: string]: {
25
+ [key: string]: string | number;
26
+ };
27
+ }>;
28
+ parse: (fileOrPath: NodePath<t.Program> | t.File, { config, importsWhitelist, evaluateVars, shouldPrintDebug, sourcePath, onExtractTag, getFlattenedNode, disableExtraction, disableExtractInlineMedia, disableExtractVariables, disableDebugAttr, ...props }: ExtractorParseProps) => {
29
+ flattened: number;
30
+ optimized: number;
31
+ modified: number;
32
+ } | null;
33
+ };
34
+ //# sourceMappingURL=createExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createExtractor.d.ts","sourceRoot":"","sources":["../../src/extractor/createExtractor.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAE,QAAQ,EAAW,MAAM,iBAAiB,CAAA;AAC7D,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,EAAsB,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAK9E,OAAO,EAAoC,mBAAmB,EAAW,MAAM,UAAU,CAAA;AAczF,eAAO,MAAM,WAAW,eAA8B,CAAA;AActD,oBAAY,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAI1D,wBAAgB,eAAe;;;;;;;;;;;;;;;;;;;;;wBAsBb,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,+MAcrC,mBAAmB;;;;;EAojC3B"}
@@ -0,0 +1,4 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ export declare function ensureImportingConcat(path: NodePath<t.Program>): void;
4
+ //# sourceMappingURL=ensureImportingConcat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureImportingConcat.d.ts","sourceRoot":"","sources":["../../src/extractor/ensureImportingConcat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAMjC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAyB9D"}
@@ -0,0 +1,3 @@
1
+ import * as t from '@babel/types';
2
+ export declare function evaluateAstNode(exprNode: t.Node | undefined | null, evalFn?: (node: t.Node) => any, shouldPrintDebug?: boolean): any;
3
+ //# sourceMappingURL=evaluateAstNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluateAstNode.d.ts","sourceRoot":"","sources":["../../src/extractor/evaluateAstNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,EACnC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,EAC9B,gBAAgB,CAAC,EAAE,OAAO,GACzB,GAAG,CAkHL"}
@@ -0,0 +1,12 @@
1
+ import type { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ import { ExtractedAttr, Ternary } from '../types';
4
+ export declare function isPresent<T extends Object>(input: null | void | undefined | T): input is T;
5
+ export declare function isSimpleSpread(node: t.JSXSpreadAttribute): boolean;
6
+ export declare const attrStr: (attr: ExtractedAttr) => string | t.JSXIdentifier;
7
+ export declare const objToStr: (obj: any) => any;
8
+ export declare const ternaryStr: (x: Ternary) => string;
9
+ export declare function findComponentName(scope: any): string | undefined;
10
+ export declare function isValidThemeHook(jsxPath: NodePath<t.JSXElement>, n: t.MemberExpression, sourcePath: string): boolean;
11
+ export declare const isInsideTamagui: (srcName: string) => boolean;
12
+ //# sourceMappingURL=extractHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractHelpers.d.ts","sourceRoot":"","sources":["../../src/extractor/extractHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEjD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAE1F;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,kBAAkB,WAExD;AAED,eAAO,MAAM,OAAO,SAAU,aAAa,6BAM1C,CAAA;AAED,eAAO,MAAM,QAAQ,QAAS,GAAG,QAOhC,CAAA;AASD,eAAO,MAAM,UAAU,MAAO,OAAO,WAapC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,KAAA,sBAoBtC;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAC/B,CAAC,EAAE,CAAC,CAAC,gBAAgB,EACrB,UAAU,EAAE,MAAM,WAoBnB;AAED,eAAO,MAAM,eAAe,YAAa,MAAM,YAE9C,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ import type { TamaguiInternalConfig } from '@tamagui/core';
4
+ import { StyleObject, Ternary } from '../types';
5
+ export declare function extractMediaStyle(ternary: Ternary, jsxPath: NodePath<t.JSXElement>, tamaguiConfig: TamaguiInternalConfig, sourcePath: string, importance?: number, shouldPrintDebug?: boolean): {
6
+ mediaStyles: StyleObject[];
7
+ ternaryWithoutMedia: Ternary | null;
8
+ } | null;
9
+ export declare function isValidMediaCall(jsxPath: NodePath<t.JSXElement>, init: t.Expression, sourcePath: string): boolean;
10
+ //# sourceMappingURL=extractMediaStyle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractMediaStyle.d.ts","sourceRoot":"","sources":["../../src/extractor/extractMediaStyle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAK1D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAG/C,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAC/B,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,MAAM,EAClB,UAAU,SAAI,EACd,gBAAgB,UAAQ;;;SAyEzB;AAiFD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAC/B,IAAI,EAAE,CAAC,CAAC,UAAU,EAClB,UAAU,EAAE,MAAM,WAiBnB"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ import * as t from '@babel/types';
3
+ import { TamaguiOptions } from '../types';
4
+ import { Extractor } from './createExtractor';
5
+ export declare const CONCAT_CLASSNAME_IMPORT = "concatClassName";
6
+ export declare function extractToClassNames({ loader, extractor, source, sourcePath, options, shouldPrintDebug, threaded, cssPath, }: {
7
+ loader: any;
8
+ extractor: Extractor;
9
+ source: string | Buffer;
10
+ sourcePath: string;
11
+ options: TamaguiOptions;
12
+ shouldPrintDebug: boolean;
13
+ cssPath: string;
14
+ threaded?: boolean;
15
+ }): null | {
16
+ js: string | Buffer;
17
+ styles: string;
18
+ stylesPath?: string;
19
+ ast: t.File;
20
+ map: any;
21
+ };
22
+ //# sourceMappingURL=extractToClassNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractToClassNames.d.ts","sourceRoot":"","sources":["../../src/extractor/extractToClassNames.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAOjC,OAAO,EAAgC,cAAc,EAAE,MAAM,UAAU,CAAA;AAGvE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAO7C,eAAO,MAAM,uBAAuB,oBAAoB,CAAA;AASxD,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,OAAO,GACR,EAAE;IACD,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,GAAG;IACT,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;CACT,CAmRA"}
@@ -0,0 +1,4 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ export declare function findTopmostFunction(jsxPath: NodePath<t.JSXElement>): NodePath<any> | null;
4
+ //# sourceMappingURL=findTopmostFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findTopmostFunction.d.ts","sourceRoot":"","sources":["../../src/extractor/findTopmostFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,wBAkBlE"}
@@ -0,0 +1,5 @@
1
+ declare module '@babel/types' {
2
+ function toIdentifier(input: string): string;
3
+ }
4
+ export declare function generateUid(scope: any, name: string): string;
5
+ //# sourceMappingURL=generatedUid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedUid.d.ts","sourceRoot":"","sources":["../../src/extractor/generatedUid.ts"],"names":[],"mappings":"AAIA,OAAO,QAAQ,cAAc,CAAC;IAC5B,SAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACpD;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAiC5D"}
@@ -0,0 +1,3 @@
1
+ import * as t from '@babel/types';
2
+ export declare function getPropValueFromAttributes(propName: string, attrs: (t.JSXAttribute | t.JSXSpreadAttribute)[]): t.Expression | null;
3
+ //# sourceMappingURL=getPropValueFromAttributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPropValueFromAttributes.d.ts","sourceRoot":"","sources":["../../src/extractor/getPropValueFromAttributes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAoBjC,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAAE,GAC/C,CAAC,CAAC,UAAU,GAAG,IAAI,CAmErB"}
@@ -0,0 +1,16 @@
1
+ import * as t from '@babel/types';
2
+ export interface SourceModule {
3
+ sourceModule?: string;
4
+ imported?: string;
5
+ local?: string;
6
+ destructured?: boolean;
7
+ usesImportSyntax: boolean;
8
+ }
9
+ export declare function getSourceModule(itemName: string, itemBinding: {
10
+ constant?: boolean;
11
+ path: {
12
+ node: t.Node;
13
+ parent: any;
14
+ };
15
+ }): SourceModule | null;
16
+ //# sourceMappingURL=getSourceModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSourceModule.d.ts","sourceRoot":"","sources":["../../src/extractor/getSourceModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,CAAA;CACpC,GACA,YAAY,GAAG,IAAI,CAoFrB"}
@@ -0,0 +1,4 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ export declare function getStaticBindingsForScope(scope: NodePath<t.JSXElement>['scope'], whitelist: string[] | undefined, sourcePath: string, bindingCache: Record<string, string | null>, shouldPrintDebug: boolean): Record<string, any>;
4
+ //# sourceMappingURL=getStaticBindingsForScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStaticBindingsForScope.d.ts","sourceRoot":"","sources":["../../src/extractor/getStaticBindingsForScope.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AA8BjC,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EACtC,SAAS,sBAAe,EACxB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAC3C,gBAAgB,EAAE,OAAO,GACxB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAqIrB"}
@@ -0,0 +1,6 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ export declare function hoistClassNames(path: NodePath<t.JSXElement>, existing: {
4
+ [key: string]: t.Identifier;
5
+ }, expr: t.Expression): any;
6
+ //# sourceMappingURL=hoistClassNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hoistClassNames.d.ts","sourceRoot":"","sources":["../../src/extractor/hoistClassNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAC5B,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,CAAA;CAAE,EACzC,IAAI,EAAE,CAAC,CAAC,UAAU,OAsCnB"}
@@ -0,0 +1,3 @@
1
+ import * as t from '@babel/types';
2
+ export declare function literalToAst(literal: any): t.Expression;
3
+ //# sourceMappingURL=literalToAst.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literalToAst.d.ts","sourceRoot":"","sources":["../../src/extractor/literalToAst.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,UAAU,CA6BvD"}
@@ -0,0 +1,9 @@
1
+ import type { StaticComponent, TamaguiInternalConfig } from '@tamagui/core';
2
+ export declare function loadTamagui(props: {
3
+ components: string[];
4
+ config: string;
5
+ }): {
6
+ components: Record<string, StaticComponent>;
7
+ tamaguiConfig: TamaguiInternalConfig;
8
+ };
9
+ //# sourceMappingURL=loadTamagui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadTamagui.d.ts","sourceRoot":"","sources":["../../src/extractor/loadTamagui.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAK3E,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAC5E,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC3C,aAAa,EAAE,qBAAqB,CAAA;CACrC,CAkDA"}
@@ -0,0 +1,2 @@
1
+ export declare const logLines: (str: string) => string;
2
+ //# sourceMappingURL=logLines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logLines.d.ts","sourceRoot":"","sources":["../../src/extractor/logLines.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,QAAS,MAAM,WAUnC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Ternary } from '../types';
2
+ export declare function normalizeTernaries(ternaries: Ternary[]): Ternary[];
3
+ //# sourceMappingURL=normalizeTernaries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeTernaries.d.ts","sourceRoot":"","sources":["../../src/extractor/normalizeTernaries.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,aAqDtD"}
@@ -0,0 +1,3 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ export declare function removeUnusedHooks(compFn: NodePath<any>, shouldPrintDebug: boolean): void;
3
+ //# sourceMappingURL=removeUnusedHooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeUnusedHooks.d.ts","sourceRoot":"","sources":["../../src/extractor/removeUnusedHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAQ1C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,OAAO,QAmEjF"}
@@ -0,0 +1,8 @@
1
+ export { TamaguiOptions } from './types';
2
+ export { createExtractor } from './extractor/createExtractor';
3
+ export { literalToAst } from './extractor/literalToAst';
4
+ export * from './constants';
5
+ export * from './extractor/extractToClassNames';
6
+ export * from './extractor/extractHelpers';
7
+ export * from './patchReactNativeWeb';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,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,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function patchReactNativeWeb(): void;
2
+ //# sourceMappingURL=patchReactNativeWeb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patchReactNativeWeb.d.ts","sourceRoot":"","sources":["../src/patchReactNativeWeb.ts"],"names":[],"mappings":"AASA,wBAAgB,mBAAmB,SAqDlC"}
@@ -0,0 +1,79 @@
1
+ import { NodePath } from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ export declare type ClassNameObject = t.StringLiteral | t.Expression;
4
+ export interface CacheObject {
5
+ [key: string]: any;
6
+ }
7
+ export interface TamaguiOptions {
8
+ components: string[];
9
+ config?: string;
10
+ evaluateVars?: boolean;
11
+ importsWhitelist?: string[];
12
+ disableExtraction?: boolean;
13
+ disableDebugAttr?: boolean;
14
+ disableExtractInlineMedia?: boolean;
15
+ disableExtractVariables?: boolean;
16
+ exclude?: RegExp;
17
+ logTimings?: boolean;
18
+ cssPath?: string;
19
+ cssData?: any;
20
+ deoptProps?: Set<string>;
21
+ excludeProps?: string[];
22
+ }
23
+ export declare type ExtractedAttrAttr = {
24
+ type: 'attr';
25
+ value: t.JSXAttribute | t.JSXSpreadAttribute;
26
+ };
27
+ export declare type ExtractedAttrStyle = {
28
+ type: 'style';
29
+ value: Object;
30
+ attr?: t.JSXAttribute | t.JSXSpreadAttribute;
31
+ name?: string;
32
+ };
33
+ export declare type ExtractedAttr = ExtractedAttrAttr | {
34
+ type: 'ternary';
35
+ value: Ternary;
36
+ } | ExtractedAttrStyle;
37
+ export declare type ExtractTagProps = {
38
+ attrs: ExtractedAttr[];
39
+ node: t.JSXOpeningElement;
40
+ attemptEval: (exprNode: t.Node, evalFn?: ((node: t.Node) => any) | undefined) => any;
41
+ jsxPath: NodePath<t.JSXElement>;
42
+ programPath: NodePath<t.Program>;
43
+ originalNodeName: string;
44
+ lineNumbers: string;
45
+ filePath: string;
46
+ isFlattened: boolean;
47
+ };
48
+ export declare type ExtractorParseProps = TamaguiOptions & {
49
+ sourcePath?: string;
50
+ shouldPrintDebug?: boolean;
51
+ onExtractTag: (props: ExtractTagProps) => void;
52
+ getFlattenedNode: (props: {
53
+ isTextView: boolean;
54
+ tag: string;
55
+ }) => string;
56
+ };
57
+ export interface Ternary {
58
+ test: t.Expression;
59
+ inlineMediaQuery?: string;
60
+ remove: Function;
61
+ consequent: Object | null;
62
+ alternate: Object | null;
63
+ }
64
+ export declare type StyleObject = {
65
+ property: string;
66
+ value: string;
67
+ className: string;
68
+ identifier: string;
69
+ rules: string[];
70
+ };
71
+ export declare type ClassNameToStyleObj = {
72
+ [key: string]: StyleObject;
73
+ };
74
+ export interface PluginContext {
75
+ write: (path: string, rules: {
76
+ [key: string]: string;
77
+ }) => any;
78
+ }
79
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/extractor/extractToClassNames.ts"],
4
- "sourcesContent": ["import * as path from 'path'\nimport { basename } from 'path'\nimport * as util from 'util'\n\nimport generate from '@babel/generator'\nimport * as t from '@babel/types'\nimport { getStylesAtomic } from '@tamagui/core-node'\nimport { concatClassName } from '@tamagui/helpers'\nimport invariant from 'invariant'\nimport { getRemainingRequest } from 'loader-utils'\nimport { ViewStyle } from 'react-native'\n\nimport { ClassNameObject, StyleObject, TamaguiOptions } from '../types'\nimport { babelParse } from './babelParse'\nimport { buildClassName } from './buildClassName'\nimport { Extractor } from './createExtractor'\nimport { ensureImportingConcat } from './ensureImportingConcat'\nimport { isSimpleSpread } from './extractHelpers'\nimport { extractMediaStyle } from './extractMediaStyle'\nimport { hoistClassNames } from './hoistClassNames'\nimport { logLines } from './logLines'\n\nexport const CONCAT_CLASSNAME_IMPORT = 'concatClassName'\n\nconst mergeStyleGroups = {\n shadowOpacity: true,\n shadowRadius: true,\n shadowColor: true,\n shadowOffset: true,\n}\n\nexport function extractToClassNames({\n loader,\n extractor,\n source,\n sourcePath,\n options,\n shouldPrintDebug,\n threaded,\n cssPath,\n}: {\n loader: any\n extractor: Extractor\n source: string | Buffer\n sourcePath: string\n options: TamaguiOptions\n shouldPrintDebug: boolean\n cssPath: string\n threaded?: boolean\n}): null | {\n js: string | Buffer\n styles: string\n stylesPath?: string\n ast: t.File\n map: any // RawSourceMap from 'source-map'\n} {\n if (typeof source !== 'string') {\n throw new Error('`source` must be a string of javascript')\n }\n invariant(\n typeof sourcePath === 'string' && path.isAbsolute(sourcePath),\n '`sourcePath` must be an absolute path to a .js file'\n )\n\n const shouldLogTiming = shouldPrintDebug || options.logTimings\n const start = Date.now()\n const mem = shouldLogTiming ? process.memoryUsage() : null\n\n // Using a map for (officially supported) guaranteed insertion order\n let ast: t.File\n\n try {\n // @ts-ignore\n ast = babelParse(source)\n } catch (err) {\n console.error('babel parse error:', sourcePath)\n throw err\n }\n\n const cssMap = new Map<string, { css: string; commentTexts: string[] }>()\n const existingHoists: { [key: string]: t.Identifier } = {}\n\n const res = extractor.parse(ast, {\n sourcePath,\n shouldPrintDebug,\n ...options,\n getFlattenedNode: ({ tag }) => tag,\n onExtractTag: ({\n attrs,\n node,\n attemptEval,\n jsxPath,\n originalNodeName,\n filePath,\n lineNumbers,\n programPath,\n }) => {\n let finalClassNames: ClassNameObject[] = []\n let finalAttrs: (t.JSXAttribute | t.JSXSpreadAttribute)[] = []\n let finalStyles: StyleObject[] = []\n\n const viewStyles = {}\n for (const attr of attrs) {\n if (attr.type === 'style') {\n Object.assign(viewStyles, attr.value)\n }\n }\n\n const ensureNeededPrevStyle = (style: ViewStyle) => {\n // ensure all group keys are merged\n const keys = Object.keys(style)\n if (!keys.some((key) => mergeStyleGroups[key])) {\n return style\n }\n for (const k in mergeStyleGroups) {\n if (k in viewStyles) {\n style[k] = style[k] ?? viewStyles[k]\n }\n }\n return style\n }\n\n const addStyles = (style: ViewStyle | null) => {\n if (!style) return []\n const styleWithPrev = ensureNeededPrevStyle(style)\n const res = getStylesAtomic(styleWithPrev)\n if (res.length) {\n finalStyles = [...finalStyles, ...res]\n }\n return res\n }\n\n // 1 to start above any :hover styles\n let lastMediaImportance = 1\n for (const attr of attrs) {\n switch (attr.type) {\n case 'style':\n const styles = addStyles(attr.value)\n const newClassNames = concatClassName(styles.map((x) => x.identifier).join(' '))\n // prettier-ignore\n const existing = finalClassNames.find((x) => x.type == 'StringLiteral') as t.StringLiteral | null\n if (existing) {\n existing.value = `${existing.value} ${newClassNames}`\n } else {\n finalClassNames = [...finalClassNames, t.stringLiteral(newClassNames)]\n }\n if (shouldPrintDebug) {\n // prettier-ignore\n console.log(' classnames (after)\\n', logLines(finalClassNames.map(x => x['value']).join(' ')))\n }\n break\n case 'attr':\n const val = attr.value\n if (t.isJSXSpreadAttribute(val)) {\n if (isSimpleSpread(val)) {\n finalClassNames.push(\n t.logicalExpression(\n '&&',\n val.argument,\n t.memberExpression(val.argument, t.identifier('className'))\n )\n )\n }\n } else if (val.name.name === 'className') {\n const value = val.value\n if (value) {\n try {\n const evaluatedValue = attemptEval(value)\n finalClassNames.push(t.stringLiteral(evaluatedValue))\n } catch (e) {\n finalClassNames.push(value['expression'])\n }\n }\n continue\n }\n finalAttrs.push(val)\n break\n case 'ternary':\n const mediaExtraction = extractMediaStyle(\n attr.value,\n jsxPath,\n extractor.getTamagui(),\n sourcePath,\n lastMediaImportance,\n shouldPrintDebug\n )\n if (mediaExtraction) {\n lastMediaImportance++\n finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles]\n finalClassNames = [\n ...finalClassNames,\n ...mediaExtraction.mediaStyles.map((x) => t.stringLiteral(x.identifier)),\n ]\n if (!mediaExtraction.ternaryWithoutMedia) {\n continue\n }\n }\n const ternary = mediaExtraction?.ternaryWithoutMedia || attr.value\n const consInfo = addStyles(ternary.consequent)\n const altInfo = addStyles(ternary.alternate)\n const cCN = consInfo.map((x) => x.identifier).join(' ')\n const aCN = altInfo.map((x) => x.identifier).join(' ')\n if (consInfo.length && altInfo.length) {\n finalClassNames.push(\n t.conditionalExpression(ternary.test, t.stringLiteral(cCN), t.stringLiteral(aCN))\n )\n } else {\n finalClassNames.push(\n t.conditionalExpression(\n ternary.test,\n t.stringLiteral(' ' + cCN),\n t.stringLiteral(' ' + aCN)\n )\n )\n }\n break\n }\n }\n\n node.attributes = finalAttrs\n\n if (finalClassNames.length) {\n // inserts the _cn variable and uses it for className\n const names = buildClassName(finalClassNames)\n const nameExpr = names ? hoistClassNames(jsxPath, existingHoists, names) : null\n let expr = nameExpr\n\n // if has some spreads, use concat helper\n if (nameExpr && !t.isIdentifier(nameExpr)) {\n ensureImportingConcat(programPath)\n const simpleSpreads = attrs.filter(\n (x) => t.isJSXSpreadAttribute(x.value) && isSimpleSpread(x.value)\n )\n expr = t.callExpression(t.identifier(CONCAT_CLASSNAME_IMPORT), [\n expr,\n ...simpleSpreads.map((val) => val.value['argument']),\n ])\n }\n\n node.attributes.push(\n t.jsxAttribute(t.jsxIdentifier('className'), t.jsxExpressionContainer(expr))\n )\n }\n\n const comment = util.format('/* %s:%s (%s) */', filePath, lineNumbers, originalNodeName)\n\n for (const { className, rules } of finalStyles) {\n if (cssMap.has(className)) {\n if (comment) {\n const val = cssMap.get(className)!\n val.commentTexts.push(comment)\n cssMap.set(className, val)\n }\n } else if (rules.length) {\n if (rules.length > 1) {\n console.log(' rules error', { rules })\n throw new Error(`Shouldn't have more than one rule`)\n }\n cssMap.set(className, {\n css: rules[0],\n commentTexts: [comment],\n })\n }\n }\n },\n })\n\n if (!res || !res.modified) {\n return null\n }\n\n const styles = Array.from(cssMap.values())\n .map((x) => x.css)\n .join('\\n')\n .trim()\n\n if (styles) {\n const cssQuery = threaded\n ? `cssData=${Buffer.from(styles).toString('base64')}`\n : `cssPath=${cssPath}`\n const remReq = getRemainingRequest(loader)\n const importPath = `${cssPath}!=!tamagui-loader?${cssQuery}!${remReq}`\n ast.program.body.unshift(t.importDeclaration([], t.stringLiteral(importPath)))\n }\n\n const result = generate(\n ast,\n {\n concise: false,\n filename: sourcePath,\n retainLines: false,\n sourceFileName: sourcePath,\n sourceMaps: true,\n },\n source\n )\n\n if (shouldPrintDebug) {\n console.log(\n '\\n -------- output code ------- \\n\\n',\n result.code\n .split('\\n')\n .filter((x) => !x.startsWith('//'))\n .join('\\n')\n )\n console.log('\\n -------- output style -------- \\n\\n', styles)\n }\n\n if (shouldLogTiming && mem) {\n // console.log(`${parseTime} / ${traverseTime} / ${generateTime}`)\n const memUsed =\n Math.round(((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204) * 10) / 10\n // prettier-ignore\n console.log(` \uD83E\uDD5A ${basename(sourcePath).padStart(40)} ${`${Date.now() - start}`.padStart(3)}ms \u05C1\u00B7 ${`${res.optimized}`.padStart(4)} optimized \u00B7 ${res.flattened} flattened ${memUsed > 10 ? `used ${memUsed}MB` : ''}`)\n }\n\n return {\n ast,\n styles,\n js: result.code,\n map: result.map,\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }