@tamagui/static 1.0.11 → 1.0.12

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 (217) hide show
  1. package/dist/extractor/createExtractor.js +0 -46
  2. package/dist/extractor/createExtractor.js.map +2 -2
  3. package/dist/extractor/ensureImportingConcat.js +3 -1
  4. package/dist/extractor/ensureImportingConcat.js.map +2 -2
  5. package/dist/extractor/extractToClassNames.js +19 -2
  6. package/dist/extractor/extractToClassNames.js.map +2 -2
  7. package/dist/extractor/getStaticBindingsForScope.js +3 -5
  8. package/dist/extractor/getStaticBindingsForScope.js.map +2 -2
  9. package/package.json +13 -13
  10. package/src/extractor/createExtractor.ts +0 -59
  11. package/src/extractor/ensureImportingConcat.ts +36 -0
  12. package/src/extractor/extractToClassNames.ts +23 -2
  13. package/src/extractor/getStaticBindingsForScope.ts +3 -5
  14. package/dist/cjs/constants.js +0 -49
  15. package/dist/cjs/constants.js.map +0 -7
  16. package/dist/cjs/extractor/accessSafe.js +0 -35
  17. package/dist/cjs/extractor/accessSafe.js.map +0 -7
  18. package/dist/cjs/extractor/babelParse.js +0 -56
  19. package/dist/cjs/extractor/babelParse.js.map +0 -7
  20. package/dist/cjs/extractor/buildClassName.js +0 -64
  21. package/dist/cjs/extractor/buildClassName.js.map +0 -7
  22. package/dist/cjs/extractor/bundle.js +0 -137
  23. package/dist/cjs/extractor/bundle.js.map +0 -7
  24. package/dist/cjs/extractor/createEvaluator.js +0 -81
  25. package/dist/cjs/extractor/createEvaluator.js.map +0 -7
  26. package/dist/cjs/extractor/createExtractor.js +0 -1330
  27. package/dist/cjs/extractor/createExtractor.js.map +0 -7
  28. package/dist/cjs/extractor/defaultTamaguiConfig.js +0 -167
  29. package/dist/cjs/extractor/defaultTamaguiConfig.js.map +0 -7
  30. package/dist/cjs/extractor/ensureImportingConcat.js +0 -48
  31. package/dist/cjs/extractor/ensureImportingConcat.js.map +0 -7
  32. package/dist/cjs/extractor/evaluateAstNode.js +0 -118
  33. package/dist/cjs/extractor/evaluateAstNode.js.map +0 -7
  34. package/dist/cjs/extractor/extractHelpers.js +0 -131
  35. package/dist/cjs/extractor/extractHelpers.js.map +0 -7
  36. package/dist/cjs/extractor/extractMediaStyle.js +0 -174
  37. package/dist/cjs/extractor/extractMediaStyle.js.map +0 -7
  38. package/dist/cjs/extractor/extractToClassNames.js +0 -305
  39. package/dist/cjs/extractor/extractToClassNames.js.map +0 -7
  40. package/dist/cjs/extractor/findTopmostFunction.js +0 -44
  41. package/dist/cjs/extractor/findTopmostFunction.js.map +0 -7
  42. package/dist/cjs/extractor/generatedUid.js +0 -52
  43. package/dist/cjs/extractor/generatedUid.js.map +0 -7
  44. package/dist/cjs/extractor/getPrefixLogs.js +0 -32
  45. package/dist/cjs/extractor/getPrefixLogs.js.map +0 -7
  46. package/dist/cjs/extractor/getPropValueFromAttributes.js +0 -73
  47. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +0 -7
  48. package/dist/cjs/extractor/getSourceModule.js +0 -93
  49. package/dist/cjs/extractor/getSourceModule.js.map +0 -7
  50. package/dist/cjs/extractor/getStaticBindingsForScope.js +0 -184
  51. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +0 -7
  52. package/dist/cjs/extractor/hoistClassNames.js +0 -67
  53. package/dist/cjs/extractor/hoistClassNames.js.map +0 -7
  54. package/dist/cjs/extractor/literalToAst.js +0 -103
  55. package/dist/cjs/extractor/literalToAst.js.map +0 -7
  56. package/dist/cjs/extractor/loadFile.js +0 -21
  57. package/dist/cjs/extractor/loadFile.js.map +0 -7
  58. package/dist/cjs/extractor/loadTamagui.js +0 -105
  59. package/dist/cjs/extractor/loadTamagui.js.map +0 -7
  60. package/dist/cjs/extractor/logLines.js +0 -44
  61. package/dist/cjs/extractor/logLines.js.map +0 -7
  62. package/dist/cjs/extractor/normalizeTernaries.js +0 -76
  63. package/dist/cjs/extractor/normalizeTernaries.js.map +0 -7
  64. package/dist/cjs/extractor/removeUnusedHooks.js +0 -103
  65. package/dist/cjs/extractor/removeUnusedHooks.js.map +0 -7
  66. package/dist/cjs/extractor/timer.js +0 -46
  67. package/dist/cjs/extractor/timer.js.map +0 -7
  68. package/dist/cjs/extractor/validHTMLAttributes.js +0 -127
  69. package/dist/cjs/extractor/validHTMLAttributes.js.map +0 -7
  70. package/dist/cjs/getPragmaOptions.js +0 -67
  71. package/dist/cjs/getPragmaOptions.js.map +0 -7
  72. package/dist/cjs/helpers/memoize.js +0 -45
  73. package/dist/cjs/helpers/memoize.js.map +0 -7
  74. package/dist/cjs/index.js +0 -43
  75. package/dist/cjs/index.js.map +0 -7
  76. package/dist/cjs/require.js +0 -104
  77. package/dist/cjs/require.js.map +0 -7
  78. package/dist/cjs/types.js +0 -17
  79. package/dist/cjs/types.js.map +0 -7
  80. package/dist/cjs/webpackPlugin.js +0 -34
  81. package/dist/cjs/webpackPlugin.js.map +0 -7
  82. package/dist/esm/constants.js +0 -17
  83. package/dist/esm/constants.js.map +0 -7
  84. package/dist/esm/extractor/accessSafe.js +0 -8
  85. package/dist/esm/extractor/accessSafe.js.map +0 -7
  86. package/dist/esm/extractor/babelParse.js +0 -28
  87. package/dist/esm/extractor/babelParse.js.map +0 -7
  88. package/dist/esm/extractor/buildClassName.js +0 -37
  89. package/dist/esm/extractor/buildClassName.js.map +0 -7
  90. package/dist/esm/extractor/bundle.js +0 -112
  91. package/dist/esm/extractor/bundle.js.map +0 -7
  92. package/dist/esm/extractor/createEvaluator.js +0 -53
  93. package/dist/esm/extractor/createEvaluator.js.map +0 -7
  94. package/dist/esm/extractor/createExtractor.js +0 -1311
  95. package/dist/esm/extractor/createExtractor.js.map +0 -7
  96. package/dist/esm/extractor/defaultTamaguiConfig.js +0 -143
  97. package/dist/esm/extractor/defaultTamaguiConfig.js.map +0 -7
  98. package/dist/esm/extractor/ensureImportingConcat.js +0 -21
  99. package/dist/esm/extractor/ensureImportingConcat.js.map +0 -7
  100. package/dist/esm/extractor/evaluateAstNode.js +0 -91
  101. package/dist/esm/extractor/evaluateAstNode.js.map +0 -7
  102. package/dist/esm/extractor/extractHelpers.js +0 -97
  103. package/dist/esm/extractor/extractHelpers.js.map +0 -7
  104. package/dist/esm/extractor/extractMediaStyle.js +0 -146
  105. package/dist/esm/extractor/extractMediaStyle.js.map +0 -7
  106. package/dist/esm/extractor/extractToClassNames.js +0 -278
  107. package/dist/esm/extractor/extractToClassNames.js.map +0 -7
  108. package/dist/esm/extractor/findTopmostFunction.js +0 -20
  109. package/dist/esm/extractor/findTopmostFunction.js.map +0 -7
  110. package/dist/esm/extractor/generatedUid.js +0 -25
  111. package/dist/esm/extractor/generatedUid.js.map +0 -7
  112. package/dist/esm/extractor/getPrefixLogs.js +0 -8
  113. package/dist/esm/extractor/getPrefixLogs.js.map +0 -7
  114. package/dist/esm/extractor/getPropValueFromAttributes.js +0 -46
  115. package/dist/esm/extractor/getPropValueFromAttributes.js.map +0 -7
  116. package/dist/esm/extractor/getSourceModule.js +0 -66
  117. package/dist/esm/extractor/getSourceModule.js.map +0 -7
  118. package/dist/esm/extractor/getStaticBindingsForScope.js +0 -157
  119. package/dist/esm/extractor/getStaticBindingsForScope.js.map +0 -7
  120. package/dist/esm/extractor/hoistClassNames.js +0 -40
  121. package/dist/esm/extractor/hoistClassNames.js.map +0 -7
  122. package/dist/esm/extractor/literalToAst.js +0 -75
  123. package/dist/esm/extractor/literalToAst.js.map +0 -7
  124. package/dist/esm/extractor/loadFile.js +0 -20
  125. package/dist/esm/extractor/loadFile.js.map +0 -7
  126. package/dist/esm/extractor/loadTamagui.js +0 -81
  127. package/dist/esm/extractor/loadTamagui.js.map +0 -7
  128. package/dist/esm/extractor/logLines.js +0 -20
  129. package/dist/esm/extractor/logLines.js.map +0 -7
  130. package/dist/esm/extractor/normalizeTernaries.js +0 -49
  131. package/dist/esm/extractor/normalizeTernaries.js.map +0 -7
  132. package/dist/esm/extractor/removeUnusedHooks.js +0 -76
  133. package/dist/esm/extractor/removeUnusedHooks.js.map +0 -7
  134. package/dist/esm/extractor/timer.js +0 -22
  135. package/dist/esm/extractor/timer.js.map +0 -7
  136. package/dist/esm/extractor/validHTMLAttributes.js +0 -102
  137. package/dist/esm/extractor/validHTMLAttributes.js.map +0 -7
  138. package/dist/esm/getPragmaOptions.js +0 -44
  139. package/dist/esm/getPragmaOptions.js.map +0 -7
  140. package/dist/esm/helpers/memoize.js +0 -22
  141. package/dist/esm/helpers/memoize.js.map +0 -7
  142. package/dist/esm/index.js +0 -16
  143. package/dist/esm/index.js.map +0 -7
  144. package/dist/esm/require.js +0 -78
  145. package/dist/esm/require.js.map +0 -7
  146. package/dist/esm/types.js +0 -1
  147. package/dist/esm/types.js.map +0 -7
  148. package/dist/esm/webpackPlugin.js +0 -11
  149. package/dist/esm/webpackPlugin.js.map +0 -7
  150. package/dist/jsx/constants.js +0 -17
  151. package/dist/jsx/constants.js.map +0 -7
  152. package/dist/jsx/extractor/accessSafe.js +0 -8
  153. package/dist/jsx/extractor/accessSafe.js.map +0 -7
  154. package/dist/jsx/extractor/babelParse.js +0 -28
  155. package/dist/jsx/extractor/babelParse.js.map +0 -7
  156. package/dist/jsx/extractor/buildClassName.js +0 -37
  157. package/dist/jsx/extractor/buildClassName.js.map +0 -7
  158. package/dist/jsx/extractor/bundle.js +0 -86
  159. package/dist/jsx/extractor/bundle.js.map +0 -7
  160. package/dist/jsx/extractor/createEvaluator.js +0 -53
  161. package/dist/jsx/extractor/createEvaluator.js.map +0 -7
  162. package/dist/jsx/extractor/createExtractor.js +0 -1311
  163. package/dist/jsx/extractor/createExtractor.js.map +0 -7
  164. package/dist/jsx/extractor/defaultTamaguiConfig.js +0 -143
  165. package/dist/jsx/extractor/defaultTamaguiConfig.js.map +0 -7
  166. package/dist/jsx/extractor/ensureImportingConcat.js +0 -21
  167. package/dist/jsx/extractor/ensureImportingConcat.js.map +0 -7
  168. package/dist/jsx/extractor/evaluateAstNode.js +0 -91
  169. package/dist/jsx/extractor/evaluateAstNode.js.map +0 -7
  170. package/dist/jsx/extractor/extractHelpers.js +0 -97
  171. package/dist/jsx/extractor/extractHelpers.js.map +0 -7
  172. package/dist/jsx/extractor/extractMediaStyle.js +0 -146
  173. package/dist/jsx/extractor/extractMediaStyle.js.map +0 -7
  174. package/dist/jsx/extractor/extractToClassNames.js +0 -280
  175. package/dist/jsx/extractor/extractToClassNames.js.map +0 -7
  176. package/dist/jsx/extractor/findTopmostFunction.js +0 -20
  177. package/dist/jsx/extractor/findTopmostFunction.js.map +0 -7
  178. package/dist/jsx/extractor/generatedUid.js +0 -25
  179. package/dist/jsx/extractor/generatedUid.js.map +0 -7
  180. package/dist/jsx/extractor/getPrefixLogs.js +0 -9
  181. package/dist/jsx/extractor/getPrefixLogs.js.map +0 -7
  182. package/dist/jsx/extractor/getPropValueFromAttributes.js +0 -46
  183. package/dist/jsx/extractor/getPropValueFromAttributes.js.map +0 -7
  184. package/dist/jsx/extractor/getSourceModule.js +0 -66
  185. package/dist/jsx/extractor/getSourceModule.js.map +0 -7
  186. package/dist/jsx/extractor/getStaticBindingsForScope.js +0 -157
  187. package/dist/jsx/extractor/getStaticBindingsForScope.js.map +0 -7
  188. package/dist/jsx/extractor/hoistClassNames.js +0 -40
  189. package/dist/jsx/extractor/hoistClassNames.js.map +0 -7
  190. package/dist/jsx/extractor/literalToAst.js +0 -75
  191. package/dist/jsx/extractor/literalToAst.js.map +0 -7
  192. package/dist/jsx/extractor/loadFile.js +0 -20
  193. package/dist/jsx/extractor/loadFile.js.map +0 -7
  194. package/dist/jsx/extractor/loadTamagui.js +0 -81
  195. package/dist/jsx/extractor/loadTamagui.js.map +0 -7
  196. package/dist/jsx/extractor/logLines.js +0 -20
  197. package/dist/jsx/extractor/logLines.js.map +0 -7
  198. package/dist/jsx/extractor/normalizeTernaries.js +0 -50
  199. package/dist/jsx/extractor/normalizeTernaries.js.map +0 -7
  200. package/dist/jsx/extractor/removeUnusedHooks.js +0 -77
  201. package/dist/jsx/extractor/removeUnusedHooks.js.map +0 -7
  202. package/dist/jsx/extractor/timer.js +0 -22
  203. package/dist/jsx/extractor/timer.js.map +0 -7
  204. package/dist/jsx/extractor/validHTMLAttributes.js +0 -102
  205. package/dist/jsx/extractor/validHTMLAttributes.js.map +0 -7
  206. package/dist/jsx/getPragmaOptions.js +0 -44
  207. package/dist/jsx/getPragmaOptions.js.map +0 -7
  208. package/dist/jsx/helpers/memoize.js +0 -22
  209. package/dist/jsx/helpers/memoize.js.map +0 -7
  210. package/dist/jsx/index.js +0 -16
  211. package/dist/jsx/index.js.map +0 -7
  212. package/dist/jsx/require.js +0 -78
  213. package/dist/jsx/require.js.map +0 -7
  214. package/dist/jsx/types.js +0 -1
  215. package/dist/jsx/types.js.map +0 -7
  216. package/dist/jsx/webpackPlugin.js +0 -11
  217. package/dist/jsx/webpackPlugin.js.map +0 -7
@@ -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 { ViewStyle } from 'react-native'\n\nimport { CONCAT_CLASSNAME_IMPORT } from '../constants'\nimport { ClassNameObject, StyleObject, TamaguiOptions, Ternary } 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 { getPrefixLogs } from './getPrefixLogs'\nimport { hoistClassNames } from './hoistClassNames'\nimport { logLines } from './logLines'\nimport { timer } from './timer'\n\nconst mergeStyleGroups = {\n shadowOpacity: true,\n shadowRadius: true,\n shadowColor: true,\n shadowOffset: true,\n}\n\nexport type ExtractedResponse = {\n js: string | Buffer\n styles: string\n stylesPath?: string\n ast: t.File\n map: any // RawSourceMap from 'source-map'\n}\n\nexport function extractToClassNames({\n extractor,\n source,\n sourcePath,\n options,\n shouldPrintDebug,\n}: {\n extractor: Extractor\n source: string | Buffer\n sourcePath: string\n options: TamaguiOptions\n shouldPrintDebug: boolean | 'verbose'\n}): ExtractedResponse | null {\n const tm = timer()\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 = options.logTimings ?? true\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 ast = babelParse(source)\n } catch (err) {\n console.error('babel parse error:', sourcePath)\n throw err\n }\n\n tm.mark(`babel-parse`, shouldPrintDebug === 'verbose')\n\n const cssMap = new Map<string, { css: string; commentTexts: string[] }>()\n const existingHoists: { [key: string]: t.Identifier } = {}\n\n let hasFlattened = false\n\n const res = extractor.parse(ast, {\n sourcePath,\n shouldPrintDebug,\n ...options,\n target: 'html',\n extractStyledDefinitions: true,\n onStyleRule(identifier, rules) {\n cssMap.set(`.${identifier}`, { css: rules.join(';'), commentTexts: [] })\n },\n getFlattenedNode: ({ tag }) => {\n hasFlattened = true\n return tag\n },\n onExtractTag: ({\n attrs,\n node,\n attemptEval,\n jsxPath,\n originalNodeName,\n filePath,\n lineNumbers,\n programPath,\n isFlattened,\n }) => {\n // reset hasFlattened\n const didFlattenThisTag = hasFlattened\n hasFlattened = false\n\n let finalClassNames: ClassNameObject[] = []\n let finalAttrs: (t.JSXAttribute | t.JSXSpreadAttribute)[] = []\n let finalStyles: StyleObject[] = []\n\n let viewStyles = {}\n for (const attr of attrs) {\n if (attr.type === 'style') {\n viewStyles = {\n ...viewStyles,\n ...attr.value,\n }\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): StyleObject[] => {\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 if (!isFlattened) {\n const styles = getStylesAtomic(attr.value)\n\n finalStyles = [...finalStyles, ...styles]\n\n for (const style of styles) {\n // leave them as attributes\n const prop = style.pseudo ? `${style.property}-${style.pseudo}` : style.property\n finalAttrs.push(\n t.jsxAttribute(t.jsxIdentifier(prop), t.stringLiteral(style.identifier))\n )\n }\n } else {\n const styles = addStyles(attr.value)\n const newClassNames = concatClassName(styles.map((x) => x.identifier).join(' '))\n const existing = finalClassNames.find(\n (x) => x.type == 'StringLiteral'\n ) as t.StringLiteral | null\n\n if (existing) {\n existing.value = `${existing.value} ${newClassNames}`\n } else {\n finalClassNames = [...finalClassNames, t.stringLiteral(newClassNames)]\n }\n }\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 (shouldPrintDebug) {\n if (mediaExtraction) {\n // prettier-ignore\n console.log('ternary (mediaStyles)', mediaExtraction.ternaryWithoutMedia?.inlineMediaQuery ?? '', mediaExtraction.mediaStyles.map((x) => x.identifier).join('.'))\n }\n }\n if (!mediaExtraction) {\n addTernaryStyle(\n attr.value,\n addStyles(attr.value.consequent),\n addStyles(attr.value.alternate)\n )\n continue\n }\n lastMediaImportance++\n if (mediaExtraction.mediaStyles) {\n finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles]\n }\n if (mediaExtraction.ternaryWithoutMedia) {\n addTernaryStyle(mediaExtraction.ternaryWithoutMedia, mediaExtraction.mediaStyles, [])\n } else {\n finalClassNames = [\n ...finalClassNames,\n ...mediaExtraction.mediaStyles.map((x) => t.stringLiteral(x.identifier)),\n ]\n }\n break\n }\n }\n\n function addTernaryStyle(ternary: Ternary, a: any, b: any) {\n const cCN = a.map((x) => x.identifier).join(' ')\n const aCN = b.map((x) => x.identifier).join(' ')\n if (a.length && b.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 }\n\n if (shouldPrintDebug) {\n // prettier-ignore\n console.log(' finalClassNames\\n', logLines(finalClassNames.map(x => x['value']).join(' ')))\n }\n\n node.attributes = finalAttrs\n\n if (finalClassNames.length) {\n // inserts the _cn variable and uses it for className\n let names = buildClassName(finalClassNames)\n if (t.isStringLiteral(names)) {\n names.value = concatClassName(names.value)\n }\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 if (!didFlattenThisTag) {\n // not flat\n } else {\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\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 { identifier, rules } of finalStyles) {\n const className = `.${identifier}`\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 && !res.optimized && !res.flattened && !res.styled)) {\n if (shouldPrintDebug) {\n console.log('no res or none modified', res)\n }\n return null\n }\n\n const styles = Array.from(cssMap.values())\n .map((x) => x.css)\n .join('\\n')\n .trim()\n\n const result = generate(\n ast,\n {\n concise: false,\n filename: sourcePath,\n // this makes the debug output terrible, and i think sourcemap works already\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) {\n const memUsed = mem\n ? Math.round(((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204) * 10) / 10\n : 0\n const path = basename(sourcePath)\n .replace(/\\.[jt]sx?$/, '')\n .slice(0, 22)\n .trim()\n .padStart(24)\n\n const numStyled = `${res.styled}`.padStart(3)\n const numOptimized = `${res.optimized}`.padStart(3)\n const numFound = `${res.found}`.padStart(3)\n const numFlattened = `${res.flattened}`.padStart(3)\n const memory = process.env.DEBUG && memUsed > 10 ? ` ${memUsed}MB` : ''\n const timing = Date.now() - start\n const timingWarning = timing > 150 ? '\u26A0\uFE0F' : timing > 150 ? '\u2622\uFE0F' : ''\n const timingStr = `${timing}ms ${timingWarning}`.padStart(6)\n const pre = getPrefixLogs(options)\n const memStr = memory ? `(${memory})` : ''\n console.log(\n `${pre} ${path} ${numFound} \u00B7 ${numOptimized} \u00B7 ${numFlattened} \u00B7 ${numStyled} ${timingStr} ${memStr}`\n )\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
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var findTopmostFunction_exports = {};
20
- __export(findTopmostFunction_exports, {
21
- findTopmostFunction: () => findTopmostFunction
22
- });
23
- module.exports = __toCommonJS(findTopmostFunction_exports);
24
- function findTopmostFunction(jsxPath) {
25
- const isFunction = (path) => path.isArrowFunctionExpression() || path.isFunctionDeclaration() || path.isFunctionExpression();
26
- let compFn = jsxPath.findParent(isFunction);
27
- while (compFn) {
28
- const parent = compFn.findParent(isFunction);
29
- if (parent) {
30
- compFn = parent;
31
- } else {
32
- break;
33
- }
34
- }
35
- if (!compFn) {
36
- return null;
37
- }
38
- return compFn;
39
- }
40
- // Annotate the CommonJS export names for ESM import in node:
41
- 0 && (module.exports = {
42
- findTopmostFunction
43
- });
44
- //# sourceMappingURL=findTopmostFunction.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/findTopmostFunction.ts"],
4
- "sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\n\nexport function findTopmostFunction(jsxPath: NodePath<t.JSXElement>) {\n // get topmost fn\n const isFunction = (path: NodePath<any>) =>\n path.isArrowFunctionExpression() || path.isFunctionDeclaration() || path.isFunctionExpression()\n let compFn: NodePath<any> | null = jsxPath.findParent(isFunction)\n while (compFn) {\n const parent = compFn.findParent(isFunction)\n if (parent) {\n compFn = parent\n } else {\n break\n }\n }\n if (!compFn) {\n // console.error(`Couldn't find a topmost function for media query extraction`)\n return null\n }\n return compFn\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,6BAA6B,SAAiC;AAEnE,QAAM,aAAa,CAAC,SAClB,KAAK,0BAA0B,KAAK,KAAK,sBAAsB,KAAK,KAAK,qBAAqB;AAChG,MAAI,SAA+B,QAAQ,WAAW,UAAU;AAChE,SAAO,QAAQ;AACb,UAAM,SAAS,OAAO,WAAW,UAAU;AAC3C,QAAI,QAAQ;AACV,eAAS;AAAA,IACX,OAAO;AACL;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ;AAEX,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
21
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
- var generatedUid_exports = {};
23
- __export(generatedUid_exports, {
24
- generateUid: () => generateUid
25
- });
26
- module.exports = __toCommonJS(generatedUid_exports);
27
- var t = __toESM(require("@babel/types"));
28
- var import_invariant = __toESM(require("invariant"));
29
- function generateUid(scope, name) {
30
- (0, import_invariant.default)(typeof scope === "object", "generateUid expects a scope object as its first parameter");
31
- (0, import_invariant.default)(typeof name === "string" && name !== "", "generateUid expects a valid name as its second parameter");
32
- name = t.toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, "");
33
- let uid;
34
- let i = 0;
35
- do {
36
- if (i > 1) {
37
- uid = name + i;
38
- } else {
39
- uid = name;
40
- }
41
- i++;
42
- } while (scope.hasLabel(uid) || scope.hasBinding(uid) || scope.hasGlobal(uid) || scope.hasReference(uid));
43
- const program = scope.getProgramParent();
44
- program.references[uid] = true;
45
- program.uids[uid] = true;
46
- return uid;
47
- }
48
- // Annotate the CommonJS export names for ESM import in node:
49
- 0 && (module.exports = {
50
- generateUid
51
- });
52
- //# sourceMappingURL=generatedUid.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/generatedUid.ts"],
4
- "sourcesContent": ["import * as t from '@babel/types'\nimport invariant from 'invariant'\n\n// TODO: open a PR upstream\ndeclare module '@babel/types' {\n export function toIdentifier(input: string): string\n}\n\n// A clone of path.scope.generateUid that doesn't prepend underscores\nexport function generateUid(scope: any, name: string): string {\n invariant(typeof scope === 'object', 'generateUid expects a scope object as its first parameter')\n invariant(\n typeof name === 'string' && name !== '',\n 'generateUid expects a valid name as its second parameter'\n )\n\n name = t\n .toIdentifier(name)\n .replace(/^_+/, '')\n .replace(/[0-9]+$/g, '')\n\n let uid\n let i = 0\n do {\n if (i > 1) {\n uid = name + i\n } else {\n uid = name\n }\n i++\n } while (\n scope.hasLabel(uid) ||\n scope.hasBinding(uid) ||\n scope.hasGlobal(uid) ||\n scope.hasReference(uid)\n )\n\n const program = scope.getProgramParent()\n program.references[uid] = true\n program.uids[uid] = true\n\n return uid\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAmB;AACnB,uBAAsB;AAQf,qBAAqB,OAAY,MAAsB;AAC5D,gCAAU,OAAO,UAAU,UAAU,2DAA2D;AAChG,gCACE,OAAO,SAAS,YAAY,SAAS,IACrC,0DACF;AAEA,SAAO,EACJ,aAAa,IAAI,EACjB,QAAQ,OAAO,EAAE,EACjB,QAAQ,YAAY,EAAE;AAEzB,MAAI;AACJ,MAAI,IAAI;AACR,KAAG;AACD,QAAI,IAAI,GAAG;AACT,YAAM,OAAO;AAAA,IACf,OAAO;AACL,YAAM;AAAA,IACR;AACA;AAAA,EACF,SACE,MAAM,SAAS,GAAG,KAClB,MAAM,WAAW,GAAG,KACpB,MAAM,UAAU,GAAG,KACnB,MAAM,aAAa,GAAG;AAGxB,QAAM,UAAU,MAAM,iBAAiB;AACvC,UAAQ,WAAW,OAAO;AAC1B,UAAQ,KAAK,OAAO;AAEpB,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var getPrefixLogs_exports = {};
20
- __export(getPrefixLogs_exports, {
21
- getPrefixLogs: () => getPrefixLogs
22
- });
23
- module.exports = __toCommonJS(getPrefixLogs_exports);
24
- function getPrefixLogs(options) {
25
- const { TAMAGUI_TARGET } = process.env;
26
- return (options == null ? void 0 : options.prefixLogs) ?? ` ${TAMAGUI_TARGET} | `;
27
- }
28
- // Annotate the CommonJS export names for ESM import in node:
29
- 0 && (module.exports = {
30
- getPrefixLogs
31
- });
32
- //# sourceMappingURL=getPrefixLogs.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/getPrefixLogs.ts"],
4
- "sourcesContent": ["import { TamaguiOptions } from '../types'\n\nexport function getPrefixLogs(options?: TamaguiOptions) {\n const { TAMAGUI_TARGET } = process.env\n return options?.prefixLogs ?? ` ${TAMAGUI_TARGET} | `\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,uBAAuB,SAA0B;AACtD,QAAM,EAAE,mBAAmB,QAAQ;AACnC,SAAO,oCAAS,eAAc,IAAI;AACpC;",
6
- "names": []
7
- }
@@ -1,73 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
21
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
- var getPropValueFromAttributes_exports = {};
23
- __export(getPropValueFromAttributes_exports, {
24
- getPropValueFromAttributes: () => getPropValueFromAttributes
25
- });
26
- module.exports = __toCommonJS(getPropValueFromAttributes_exports);
27
- var import_generator = __toESM(require("@babel/generator"));
28
- var t = __toESM(require("@babel/types"));
29
- var import_accessSafe = require("./accessSafe");
30
- function getPropValueFromAttributes(propName, attrs) {
31
- let propIndex = -1;
32
- let jsxAttr = null;
33
- for (let idx = -1, len = attrs.length; ++idx < len; ) {
34
- const attr = attrs[idx];
35
- if (t.isJSXAttribute(attr) && attr.name && attr.name.name === propName) {
36
- propIndex = idx;
37
- jsxAttr = attr;
38
- break;
39
- }
40
- }
41
- if (!jsxAttr || jsxAttr.value == null) {
42
- return null;
43
- }
44
- let propValue = jsxAttr.value;
45
- if (t.isJSXExpressionContainer(propValue)) {
46
- propValue = propValue.expression;
47
- }
48
- if (t.isJSXEmptyExpression(propValue)) {
49
- console.error("encountered JSXEmptyExpression");
50
- return null;
51
- }
52
- const applicableSpreads = attrs.filter((attr, idx) => {
53
- if (t.isJSXSpreadAttribute(attr)) {
54
- if (t.isIdentifier(attr.argument) || t.isMemberExpression(attr.argument)) {
55
- return idx > propIndex;
56
- }
57
- if (t.isLogicalExpression(attr.argument)) {
58
- return false;
59
- }
60
- throw new Error(`unsupported spread of type "${attr.argument.type}": ${(0, import_generator.default)(attr).code}`);
61
- }
62
- return false;
63
- }).map((attr) => attr.argument);
64
- if (applicableSpreads.length > 0) {
65
- propValue = applicableSpreads.reduce((acc, val) => t.logicalExpression("||", (0, import_accessSafe.accessSafe)(val, propName), acc), propValue);
66
- }
67
- return propValue;
68
- }
69
- // Annotate the CommonJS export names for ESM import in node:
70
- 0 && (module.exports = {
71
- getPropValueFromAttributes
72
- });
73
- //# sourceMappingURL=getPropValueFromAttributes.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/getPropValueFromAttributes.ts"],
4
- "sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\n\nimport { accessSafe } from './accessSafe'\n\n/**\n * getPropValueFromAttributes gets a prop by name from a list of attributes and accounts for potential spread operators.\n * Here's an example. Given this component:\n * ```\n * <Block coolProp=\"wow\" {...spread1} neatProp=\"ok\" {...spread2} />```\n * getPropValueFromAttributes will return the following:\n * - for propName `coolProp`:\n * ```\n * accessSafe(spread1, 'coolProp') || accessSafe(spread2, 'coolProp') || 'wow'```\n * - for propName `neatProp`:\n * ```\n * accessSafe(spread2, 'neatProp') || 'ok'```\n * - for propName `notPresent`: `null`\n *\n * The returned value should (obviously) be placed after spread operators.\n */\nexport function getPropValueFromAttributes(\n propName: string,\n attrs: (t.JSXAttribute | t.JSXSpreadAttribute)[]\n): t.Expression | null {\n let propIndex: number = -1\n let jsxAttr: t.JSXAttribute | null = null\n for (let idx = -1, len = attrs.length; ++idx < len; ) {\n const attr = attrs[idx]\n if (t.isJSXAttribute(attr) && attr.name && attr.name.name === propName) {\n propIndex = idx\n jsxAttr = attr\n break\n }\n }\n\n if (!jsxAttr || jsxAttr.value == null) {\n return null\n }\n\n let propValue:\n | t.JSXElement\n | t.JSXFragment\n | t.StringLiteral\n | t.JSXExpressionContainer\n | t.JSXEmptyExpression\n | t.Expression = jsxAttr.value\n\n if (t.isJSXExpressionContainer(propValue)) {\n propValue = propValue.expression\n }\n\n // TODO how to handle this??\n if (t.isJSXEmptyExpression(propValue)) {\n console.error('encountered JSXEmptyExpression')\n return null\n }\n\n // filter out spread props that occur before propValue\n const applicableSpreads = attrs\n .filter(\n // 1. idx is greater than propValue prop index\n // 2. attr is a spread operator\n (attr, idx): attr is t.JSXSpreadAttribute => {\n if (t.isJSXSpreadAttribute(attr)) {\n if (t.isIdentifier(attr.argument) || t.isMemberExpression(attr.argument)) {\n return idx > propIndex\n }\n if (t.isLogicalExpression(attr.argument)) {\n return false\n }\n throw new Error(\n `unsupported spread of type \"${attr.argument.type}\": ${generate(attr).code}`\n )\n }\n return false\n }\n )\n .map((attr) => attr.argument)\n\n // if spread operators occur after propValue, create a binary expression for each operator\n // i.e. before1.propValue || before2.propValue || propValue\n // TODO: figure out how to do this without all the extra parens\n if (applicableSpreads.length > 0) {\n propValue = applicableSpreads.reduce<t.Expression>(\n (acc, val) => t.logicalExpression('||', accessSafe(val, propName), acc),\n propValue\n )\n }\n\n return propValue\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAqB;AACrB,QAAmB;AAEnB,wBAA2B;AAkBpB,oCACL,UACA,OACqB;AACrB,MAAI,YAAoB;AACxB,MAAI,UAAiC;AACrC,WAAS,MAAM,IAAI,MAAM,MAAM,QAAQ,EAAE,MAAM,OAAO;AACpD,UAAM,OAAO,MAAM;AACnB,QAAI,EAAE,eAAe,IAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,UAAU;AACtE,kBAAY;AACZ,gBAAU;AACV;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,WAAW,QAAQ,SAAS,MAAM;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,YAMe,QAAQ;AAE3B,MAAI,EAAE,yBAAyB,SAAS,GAAG;AACzC,gBAAY,UAAU;AAAA,EACxB;AAGA,MAAI,EAAE,qBAAqB,SAAS,GAAG;AACrC,YAAQ,MAAM,gCAAgC;AAC9C,WAAO;AAAA,EACT;AAGA,QAAM,oBAAoB,MACvB,OAGC,CAAC,MAAM,QAAsC;AAC3C,QAAI,EAAE,qBAAqB,IAAI,GAAG;AAChC,UAAI,EAAE,aAAa,KAAK,QAAQ,KAAK,EAAE,mBAAmB,KAAK,QAAQ,GAAG;AACxE,eAAO,MAAM;AAAA,MACf;AACA,UAAI,EAAE,oBAAoB,KAAK,QAAQ,GAAG;AACxC,eAAO;AAAA,MACT;AACA,YAAM,IAAI,MACR,+BAA+B,KAAK,SAAS,UAAU,8BAAS,IAAI,EAAE,MACxE;AAAA,IACF;AACA,WAAO;AAAA,EACT,CACF,EACC,IAAI,CAAC,SAAS,KAAK,QAAQ;AAK9B,MAAI,kBAAkB,SAAS,GAAG;AAChC,gBAAY,kBAAkB,OAC5B,CAAC,KAAK,QAAQ,EAAE,kBAAkB,MAAM,kCAAW,KAAK,QAAQ,GAAG,GAAG,GACtE,SACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
21
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
- var getSourceModule_exports = {};
23
- __export(getSourceModule_exports, {
24
- getSourceModule: () => getSourceModule
25
- });
26
- module.exports = __toCommonJS(getSourceModule_exports);
27
- var t = __toESM(require("@babel/types"));
28
- function getSourceModule(itemName, itemBinding) {
29
- if (!itemBinding.constant) {
30
- return null;
31
- }
32
- let sourceModule;
33
- let imported;
34
- let local;
35
- let destructured;
36
- let usesImportSyntax = false;
37
- const itemNode = itemBinding.path.node;
38
- if (t.isImportDefaultSpecifier(itemNode) || t.isImportSpecifier(itemNode)) {
39
- if (t.isImportDeclaration(itemBinding.path.parent)) {
40
- sourceModule = itemBinding.path.parent.source.value;
41
- local = itemNode.local.name;
42
- usesImportSyntax = true;
43
- if (t.isImportSpecifier(itemNode)) {
44
- imported = itemNode.imported["name"];
45
- destructured = true;
46
- } else {
47
- imported = itemNode.local.name;
48
- destructured = false;
49
- }
50
- }
51
- } else if (t.isVariableDeclarator(itemNode) && itemNode.init != null && t.isCallExpression(itemNode.init) && t.isIdentifier(itemNode.init.callee) && itemNode.init.callee.name === "require" && itemNode.init.arguments.length === 1) {
52
- const firstArg = itemNode.init.arguments[0];
53
- if (!t.isStringLiteral(firstArg)) {
54
- return null;
55
- }
56
- sourceModule = firstArg.value;
57
- if (t.isIdentifier(itemNode.id)) {
58
- local = itemNode.id.name;
59
- imported = itemNode.id.name;
60
- destructured = false;
61
- } else if (t.isObjectPattern(itemNode.id)) {
62
- for (const objProp of itemNode.id.properties) {
63
- if (t.isObjectProperty(objProp) && t.isIdentifier(objProp.value) && objProp.value.name === itemName) {
64
- local = objProp.value.name;
65
- imported = objProp.key.name;
66
- destructured = true;
67
- break;
68
- }
69
- }
70
- if (!local || !imported) {
71
- console.error("could not find prop with value `%s`", itemName);
72
- return null;
73
- }
74
- } else {
75
- console.error("Unhandled id type: %s", itemNode.id.type);
76
- return null;
77
- }
78
- } else {
79
- return null;
80
- }
81
- return {
82
- destructured,
83
- imported,
84
- local,
85
- sourceModule,
86
- usesImportSyntax
87
- };
88
- }
89
- // Annotate the CommonJS export names for ESM import in node:
90
- 0 && (module.exports = {
91
- getSourceModule
92
- });
93
- //# sourceMappingURL=getSourceModule.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/getSourceModule.ts"],
4
- "sourcesContent": ["import * as t from '@babel/types'\n\nexport interface SourceModule {\n sourceModule?: string\n imported?: string\n local?: string\n destructured?: boolean\n usesImportSyntax: boolean\n}\n\nexport function getSourceModule(\n itemName: string,\n itemBinding: {\n constant?: boolean\n path: { node: t.Node; parent: any }\n }\n): SourceModule | null {\n // TODO: deal with reassignment\n if (!itemBinding.constant) {\n return null\n }\n\n let sourceModule: string | undefined\n let imported: string | undefined\n let local: string | undefined\n let destructured: boolean | undefined\n let usesImportSyntax = false\n\n const itemNode = itemBinding.path.node\n\n if (\n // import x from 'y';\n t.isImportDefaultSpecifier(itemNode) ||\n // import {x} from 'y';\n t.isImportSpecifier(itemNode)\n ) {\n if (t.isImportDeclaration(itemBinding.path.parent)) {\n sourceModule = itemBinding.path.parent.source.value\n local = itemNode.local.name\n usesImportSyntax = true\n if (t.isImportSpecifier(itemNode)) {\n imported = itemNode.imported['name']\n destructured = true\n } else {\n imported = itemNode.local.name\n destructured = false\n }\n }\n } else if (\n t.isVariableDeclarator(itemNode) &&\n itemNode.init != null &&\n t.isCallExpression(itemNode.init) &&\n t.isIdentifier(itemNode.init.callee) &&\n itemNode.init.callee.name === 'require' &&\n itemNode.init.arguments.length === 1\n ) {\n const firstArg = itemNode.init.arguments[0]\n if (!t.isStringLiteral(firstArg)) {\n return null\n }\n sourceModule = firstArg.value\n\n if (t.isIdentifier(itemNode.id)) {\n local = itemNode.id.name\n imported = itemNode.id.name\n destructured = false\n } else if (t.isObjectPattern(itemNode.id)) {\n for (const objProp of itemNode.id.properties) {\n if (\n t.isObjectProperty(objProp) &&\n t.isIdentifier(objProp.value) &&\n objProp.value.name === itemName\n ) {\n local = objProp.value.name\n // @ts-ignore TODO remove this is only an issue on CI\n imported = objProp.key.name\n destructured = true\n break\n }\n }\n\n if (!local || !imported) {\n console.error('could not find prop with value `%s`', itemName)\n return null\n }\n } else {\n console.error('Unhandled id type: %s', itemNode.id.type)\n return null\n }\n } else {\n return null\n }\n\n return {\n destructured,\n imported,\n local,\n sourceModule,\n usesImportSyntax,\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAmB;AAUZ,yBACL,UACA,aAIqB;AAErB,MAAI,CAAC,YAAY,UAAU;AACzB,WAAO;AAAA,EACT;AAEA,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI,mBAAmB;AAEvB,QAAM,WAAW,YAAY,KAAK;AAElC,MAEE,EAAE,yBAAyB,QAAQ,KAEnC,EAAE,kBAAkB,QAAQ,GAC5B;AACA,QAAI,EAAE,oBAAoB,YAAY,KAAK,MAAM,GAAG;AAClD,qBAAe,YAAY,KAAK,OAAO,OAAO;AAC9C,cAAQ,SAAS,MAAM;AACvB,yBAAmB;AACnB,UAAI,EAAE,kBAAkB,QAAQ,GAAG;AACjC,mBAAW,SAAS,SAAS;AAC7B,uBAAe;AAAA,MACjB,OAAO;AACL,mBAAW,SAAS,MAAM;AAC1B,uBAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF,WACE,EAAE,qBAAqB,QAAQ,KAC/B,SAAS,QAAQ,QACjB,EAAE,iBAAiB,SAAS,IAAI,KAChC,EAAE,aAAa,SAAS,KAAK,MAAM,KACnC,SAAS,KAAK,OAAO,SAAS,aAC9B,SAAS,KAAK,UAAU,WAAW,GACnC;AACA,UAAM,WAAW,SAAS,KAAK,UAAU;AACzC,QAAI,CAAC,EAAE,gBAAgB,QAAQ,GAAG;AAChC,aAAO;AAAA,IACT;AACA,mBAAe,SAAS;AAExB,QAAI,EAAE,aAAa,SAAS,EAAE,GAAG;AAC/B,cAAQ,SAAS,GAAG;AACpB,iBAAW,SAAS,GAAG;AACvB,qBAAe;AAAA,IACjB,WAAW,EAAE,gBAAgB,SAAS,EAAE,GAAG;AACzC,iBAAW,WAAW,SAAS,GAAG,YAAY;AAC5C,YACE,EAAE,iBAAiB,OAAO,KAC1B,EAAE,aAAa,QAAQ,KAAK,KAC5B,QAAQ,MAAM,SAAS,UACvB;AACA,kBAAQ,QAAQ,MAAM;AAEtB,qBAAW,QAAQ,IAAI;AACvB,yBAAe;AACf;AAAA,QACF;AAAA,MACF;AAEA,UAAI,CAAC,SAAS,CAAC,UAAU;AACvB,gBAAQ,MAAM,uCAAuC,QAAQ;AAC7D,eAAO;AAAA,MACT;AAAA,IACF,OAAO;AACL,cAAQ,MAAM,yBAAyB,SAAS,GAAG,IAAI;AACvD,aAAO;AAAA,IACT;AAAA,EACF,OAAO;AACL,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,184 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
21
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
- var getStaticBindingsForScope_exports = {};
23
- __export(getStaticBindingsForScope_exports, {
24
- getStaticBindingsForScope: () => getStaticBindingsForScope
25
- });
26
- module.exports = __toCommonJS(getStaticBindingsForScope_exports);
27
- var import_child_process = require("child_process");
28
- var import_path = require("path");
29
- var t = __toESM(require("@babel/types"));
30
- var import_evaluateAstNode = require("./evaluateAstNode");
31
- var import_getSourceModule = require("./getSourceModule");
32
- const isLocalImport = (path) => path.startsWith(".") || path.startsWith("/");
33
- function resolveImportPath(sourcePath, path) {
34
- const sourceDir = (0, import_path.dirname)(sourcePath);
35
- if (isLocalImport(path)) {
36
- if ((0, import_path.extname)(path) === "") {
37
- path += ".js";
38
- }
39
- return (0, import_path.resolve)(sourceDir, path);
40
- }
41
- return path;
42
- }
43
- const cache = /* @__PURE__ */ new Map();
44
- const pending = /* @__PURE__ */ new Map();
45
- setInterval(() => {
46
- if (cache.size) {
47
- cache.clear();
48
- }
49
- }, 10);
50
- const loadCmd = `${(0, import_path.join)(__dirname, "loadFile.js")}`;
51
- const child = (0, import_child_process.fork)(loadCmd, [], {
52
- execArgv: ["-r", "esbuild-register"]
53
- });
54
- function importModule(path) {
55
- if (pending.has(path)) {
56
- return pending.get(path);
57
- }
58
- const promise = new Promise((res, rej) => {
59
- if (cache.has(path)) {
60
- return cache.get(path);
61
- }
62
- const listener = (msg) => {
63
- if (!msg)
64
- return;
65
- if (typeof msg !== "string")
66
- return;
67
- if (msg[0] === "-") {
68
- rej(new Error(msg.slice(1)));
69
- return;
70
- }
71
- child.removeListener("message", listener);
72
- const val = JSON.parse(msg);
73
- cache.set(path, val);
74
- res(val);
75
- };
76
- child.once("message", listener);
77
- child.send(`${path.replace(".js", "")}`);
78
- });
79
- pending.set(path, promise);
80
- return promise;
81
- }
82
- async function getStaticBindingsForScope(scope, whitelist = [], sourcePath, bindingCache, shouldPrintDebug) {
83
- const bindings = scope.getAllBindings();
84
- const ret = {};
85
- if (shouldPrintDebug) {
86
- console.log(" ", Object.keys(bindings).length, "variables in scope");
87
- }
88
- const program = scope.getProgramParent().block;
89
- for (const node of program.body) {
90
- if (t.isImportDeclaration(node)) {
91
- const importPath = node.source.value;
92
- if (!node.specifiers.length)
93
- continue;
94
- if (!isLocalImport(importPath)) {
95
- continue;
96
- }
97
- const moduleName = resolveImportPath(sourcePath, importPath);
98
- const isOnWhitelist = whitelist.some((test) => moduleName.endsWith(test));
99
- if (!isOnWhitelist)
100
- continue;
101
- try {
102
- const src = await importModule(moduleName);
103
- if (!src)
104
- continue;
105
- for (const specifier of node.specifiers) {
106
- if (t.isImportSpecifier(specifier) && t.isIdentifier(specifier.imported)) {
107
- if (typeof src[specifier.imported.name] !== "undefined") {
108
- const val = src[specifier.local.name];
109
- ret[specifier.local.name] = val;
110
- }
111
- }
112
- }
113
- } catch (err) {
114
- console.warn(`\u26A0\uFE0F Failed evaluating module, continuing: ${moduleName}`);
115
- }
116
- }
117
- }
118
- if (!bindingCache) {
119
- throw new Error("bindingCache is a required param");
120
- }
121
- for (const k in bindings) {
122
- const binding = bindings[k];
123
- const sourceModule = (0, import_getSourceModule.getSourceModule)(k, binding);
124
- if (sourceModule) {
125
- if (!sourceModule.sourceModule) {
126
- continue;
127
- }
128
- const moduleName = resolveImportPath(sourcePath, sourceModule.sourceModule);
129
- const isOnWhitelist = whitelist.some((test) => moduleName.endsWith(test));
130
- if (isOnWhitelist) {
131
- const src = importModule(moduleName);
132
- if (!src) {
133
- console.log(`\u26A0\uFE0F missing file ${moduleName} via ${sourcePath} import ${sourceModule.sourceModule}?`);
134
- return {};
135
- }
136
- if (sourceModule.destructured) {
137
- if (sourceModule.imported) {
138
- ret[k] = src[sourceModule.imported];
139
- }
140
- } else {
141
- ret[k] = src;
142
- }
143
- }
144
- continue;
145
- }
146
- const { parent, parentPath } = binding.path;
147
- if (!t.isVariableDeclaration(parent) || parent.kind !== "const") {
148
- continue;
149
- }
150
- const dec = parent.declarations.find((d) => t.isIdentifier(d.id) && d.id.name === k);
151
- if (!dec || !dec.init) {
152
- continue;
153
- }
154
- if (typeof dec.id.start !== "number" || typeof dec.id.end !== "number") {
155
- console.error("dec.id.start/end is not a number");
156
- continue;
157
- }
158
- if (!t.isIdentifier(dec.id)) {
159
- console.error("dec is not an identifier");
160
- continue;
161
- }
162
- const cacheKey = `${dec.id.name}_${dec.id.start}-${dec.id.end}`;
163
- if (bindingCache.hasOwnProperty(cacheKey)) {
164
- ret[k] = bindingCache[cacheKey];
165
- continue;
166
- }
167
- if (bindingCache.hasOwnProperty(cacheKey)) {
168
- ret[k] = bindingCache[cacheKey];
169
- continue;
170
- }
171
- try {
172
- ret[k] = (0, import_evaluateAstNode.evaluateAstNode)(dec.init, void 0, shouldPrintDebug);
173
- bindingCache[cacheKey] = ret[k];
174
- continue;
175
- } catch {
176
- }
177
- }
178
- return ret;
179
- }
180
- // Annotate the CommonJS export names for ESM import in node:
181
- 0 && (module.exports = {
182
- getStaticBindingsForScope
183
- });
184
- //# sourceMappingURL=getStaticBindingsForScope.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/getStaticBindingsForScope.ts"],
4
- "sourcesContent": ["import { fork, spawn } from 'child_process'\nimport { dirname, extname, join, resolve } from 'path'\n\nimport { Binding, NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\nimport esbuild from 'esbuild'\nimport { existsSync } from 'fs-extra'\n\nimport { evaluateAstNode } from './evaluateAstNode'\nimport { getSourceModule } from './getSourceModule'\n\nconst isLocalImport = (path: string) => path.startsWith('.') || path.startsWith('/')\n\nfunction resolveImportPath(sourcePath: string, path: string) {\n const sourceDir = dirname(sourcePath)\n if (isLocalImport(path)) {\n if (extname(path) === '') {\n path += '.js'\n }\n return resolve(sourceDir, path)\n }\n return path\n}\n\nconst cache = new Map()\nconst pending = new Map<string, Promise<any>>()\nsetInterval(() => {\n if (cache.size) {\n cache.clear()\n }\n}, 10)\n\nconst loadCmd = `${join(__dirname, 'loadFile.js')}`\nconst child = fork(loadCmd, [], {\n execArgv: ['-r', 'esbuild-register'],\n})\n\nfunction importModule(path: string) {\n if (pending.has(path)) {\n return pending.get(path)\n }\n const promise = new Promise((res, rej) => {\n if (cache.has(path)) {\n return cache.get(path)\n }\n const listener = (msg: any) => {\n if (!msg) return\n if (typeof msg !== 'string') return\n if (msg[0] === '-') {\n rej(new Error(msg.slice(1)))\n return\n }\n child.removeListener('message', listener)\n const val = JSON.parse(msg)\n cache.set(path, val)\n res(val)\n }\n child.once('message', listener)\n child.send(`${path.replace('.js', '')}`)\n })\n pending.set(path, promise)\n return promise\n}\n\nexport async function getStaticBindingsForScope(\n scope: NodePath<t.JSXElement>['scope'],\n whitelist: string[] = [],\n sourcePath: string,\n bindingCache: Record<string, string | null>,\n shouldPrintDebug: boolean | 'verbose'\n): Promise<Record<string, any>> {\n const bindings: Record<string, Binding> = scope.getAllBindings() as any\n const ret: Record<string, any> = {}\n\n if (shouldPrintDebug) {\n // prettier-ignore\n console.log(' ', Object.keys(bindings).length, 'variables in scope')\n // .map(x => bindings[x].identifier?.name).join(', ')\n }\n\n // on react native at least it doesnt find some bindings? not sure why\n // lets add in whitelisted imports if they exist\n const program = scope.getProgramParent().block as t.Program\n for (const node of program.body) {\n if (t.isImportDeclaration(node)) {\n const importPath = node.source.value\n if (!node.specifiers.length) continue\n if (!isLocalImport(importPath)) {\n continue\n }\n const moduleName = resolveImportPath(sourcePath, importPath)\n const isOnWhitelist = whitelist.some((test) => moduleName.endsWith(test))\n if (!isOnWhitelist) continue\n try {\n const src = await importModule(moduleName)\n if (!src) continue\n for (const specifier of node.specifiers) {\n if (t.isImportSpecifier(specifier) && t.isIdentifier(specifier.imported)) {\n if (typeof src[specifier.imported.name] !== 'undefined') {\n const val = src[specifier.local.name]\n ret[specifier.local.name] = val\n }\n }\n }\n } catch (err) {\n console.warn(`\u26A0\uFE0F Failed evaluating module, continuing: ${moduleName}`)\n }\n }\n }\n\n if (!bindingCache) {\n throw new Error('bindingCache is a required param')\n }\n\n for (const k in bindings) {\n const binding = bindings[k]\n\n // check to see if the item is a module\n const sourceModule = getSourceModule(k, binding)\n if (sourceModule) {\n if (!sourceModule.sourceModule) {\n continue\n }\n\n const moduleName = resolveImportPath(sourcePath, sourceModule.sourceModule)\n const isOnWhitelist = whitelist.some((test) => moduleName.endsWith(test))\n\n // TODO we could cache this at the file level.. and check if its been touched since\n\n if (isOnWhitelist) {\n const src = importModule(moduleName)\n if (!src) {\n console.log(\n `\u26A0\uFE0F missing file ${moduleName} via ${sourcePath} import ${sourceModule.sourceModule}?`\n )\n return {}\n }\n if (sourceModule.destructured) {\n if (sourceModule.imported) {\n ret[k] = src[sourceModule.imported]\n }\n } else {\n ret[k] = src\n }\n }\n continue\n }\n\n const { parent, parentPath } = binding.path\n\n if (!t.isVariableDeclaration(parent) || parent.kind !== 'const') {\n continue\n }\n\n // pick out the right variable declarator\n const dec = parent.declarations.find((d) => t.isIdentifier(d.id) && d.id.name === k)\n\n // if init is not set, there's nothing to evaluate\n // TODO: handle spread syntax\n if (!dec || !dec.init) {\n continue\n }\n\n // missing start/end will break caching\n if (typeof dec.id.start !== 'number' || typeof dec.id.end !== 'number') {\n console.error('dec.id.start/end is not a number')\n continue\n }\n\n if (!t.isIdentifier(dec.id)) {\n console.error('dec is not an identifier')\n continue\n }\n\n const cacheKey = `${dec.id.name}_${dec.id.start}-${dec.id.end}`\n\n // retrieve value from cache\n if (bindingCache.hasOwnProperty(cacheKey)) {\n ret[k] = bindingCache[cacheKey]\n continue\n }\n // retrieve value from cache\n if (bindingCache.hasOwnProperty(cacheKey)) {\n ret[k] = bindingCache[cacheKey]\n continue\n }\n\n // evaluate\n try {\n ret[k] = evaluateAstNode(dec.init, undefined, shouldPrintDebug)\n bindingCache[cacheKey] = ret[k]\n continue\n } catch {\n // skip\n }\n }\n\n return ret\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }