@tamagui/static 1.74.3 → 1.74.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. package/dist/cjs/require.js +89 -0
  2. package/dist/cjs/require.js.map +6 -0
  3. package/dist/cjs/require.native.js +90 -0
  4. package/dist/cjs/require.native.js.map +6 -0
  5. package/dist/esm/constants.native.js +10 -0
  6. package/dist/esm/constants.native.js.map +6 -0
  7. package/dist/esm/extractor/accessSafe.native.js +23 -0
  8. package/dist/esm/extractor/accessSafe.native.js.map +6 -0
  9. package/dist/esm/extractor/babelParse.native.js +35 -0
  10. package/dist/esm/extractor/babelParse.native.js.map +6 -0
  11. package/dist/esm/extractor/buildClassName.native.js +48 -0
  12. package/dist/esm/extractor/buildClassName.native.js.map +6 -0
  13. package/dist/esm/extractor/bundle.native.js +93 -0
  14. package/dist/esm/extractor/bundle.native.js.map +6 -0
  15. package/dist/esm/extractor/bundleConfig.native.js +301 -0
  16. package/dist/esm/extractor/bundleConfig.native.js.map +6 -0
  17. package/dist/esm/extractor/createEvaluator.native.js +35 -0
  18. package/dist/esm/extractor/createEvaluator.native.js.map +6 -0
  19. package/dist/esm/extractor/createExtractor.native.js +1095 -0
  20. package/dist/esm/extractor/createExtractor.native.js.map +6 -0
  21. package/dist/esm/extractor/ensureImportingConcat.native.js +26 -0
  22. package/dist/esm/extractor/ensureImportingConcat.native.js.map +6 -0
  23. package/dist/esm/extractor/esbuildAliasPlugin.native.js +20 -0
  24. package/dist/esm/extractor/esbuildAliasPlugin.native.js.map +6 -0
  25. package/dist/esm/extractor/evaluateAstNode.native.js +75 -0
  26. package/dist/esm/extractor/evaluateAstNode.native.js.map +6 -0
  27. package/dist/esm/extractor/extractHelpers.native.js +93 -0
  28. package/dist/esm/extractor/extractHelpers.native.js.map +6 -0
  29. package/dist/esm/extractor/extractMediaStyle.native.js +100 -0
  30. package/dist/esm/extractor/extractMediaStyle.native.js.map +6 -0
  31. package/dist/esm/extractor/extractToClassNames.native.js +290 -0
  32. package/dist/esm/extractor/extractToClassNames.native.js.map +6 -0
  33. package/dist/esm/extractor/findTopmostFunction.native.js +16 -0
  34. package/dist/esm/extractor/findTopmostFunction.native.js.map +6 -0
  35. package/dist/esm/extractor/generateTamaguiStudioConfig.native.js +93 -0
  36. package/dist/esm/extractor/generateTamaguiStudioConfig.native.js.map +6 -0
  37. package/dist/esm/extractor/generatedUid.native.js +18 -0
  38. package/dist/esm/extractor/generatedUid.native.js.map +6 -0
  39. package/dist/esm/extractor/getPrefixLogs.native.js +7 -0
  40. package/dist/esm/extractor/getPrefixLogs.native.js.map +6 -0
  41. package/dist/esm/extractor/getPropValueFromAttributes.native.js +43 -0
  42. package/dist/esm/extractor/getPropValueFromAttributes.native.js.map +6 -0
  43. package/dist/esm/extractor/getSourceModule.native.js +42 -0
  44. package/dist/esm/extractor/getSourceModule.native.js.map +6 -0
  45. package/dist/esm/extractor/getStaticBindingsForScope.native.js +127 -0
  46. package/dist/esm/extractor/getStaticBindingsForScope.native.js.map +6 -0
  47. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.native.js +8 -0
  48. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.native.js.map +6 -0
  49. package/dist/esm/extractor/hoistClassNames.native.js +37 -0
  50. package/dist/esm/extractor/hoistClassNames.native.js.map +6 -0
  51. package/dist/esm/extractor/literalToAst.native.js +66 -0
  52. package/dist/esm/extractor/literalToAst.native.js.map +6 -0
  53. package/dist/esm/extractor/loadFile.native.js +14 -0
  54. package/dist/esm/extractor/loadFile.native.js.map +6 -0
  55. package/dist/esm/extractor/loadTamagui.native.js +248 -0
  56. package/dist/esm/extractor/loadTamagui.native.js.map +6 -0
  57. package/dist/esm/extractor/logLines.native.js +14 -0
  58. package/dist/esm/extractor/logLines.native.js.map +6 -0
  59. package/dist/esm/extractor/normalizeTernaries.native.js +37 -0
  60. package/dist/esm/extractor/normalizeTernaries.native.js.map +6 -0
  61. package/dist/esm/extractor/propsToFontFamilyCache.native.js +18 -0
  62. package/dist/esm/extractor/propsToFontFamilyCache.native.js.map +6 -0
  63. package/dist/esm/extractor/removeUnusedHooks.native.js +51 -0
  64. package/dist/esm/extractor/removeUnusedHooks.native.js.map +6 -0
  65. package/dist/esm/extractor/timer.native.js +22 -0
  66. package/dist/esm/extractor/timer.native.js.map +6 -0
  67. package/dist/esm/extractor/validHTMLAttributes.native.js +52 -0
  68. package/dist/esm/extractor/validHTMLAttributes.native.js.map +6 -0
  69. package/dist/esm/getPragmaOptions.native.js +22 -0
  70. package/dist/esm/getPragmaOptions.native.js.map +6 -0
  71. package/dist/esm/helpers/memoize.native.js +17 -0
  72. package/dist/esm/helpers/memoize.native.js.map +6 -0
  73. package/dist/esm/helpers/requireTamaguiCore.native.js +9 -0
  74. package/dist/esm/helpers/requireTamaguiCore.native.js.map +6 -0
  75. package/dist/esm/index.native.js +3 -0
  76. package/dist/esm/index.native.js.map +6 -0
  77. package/dist/esm/registerRequire.native.js +83 -0
  78. package/dist/esm/registerRequire.native.js.map +6 -0
  79. package/dist/esm/require.js +66 -0
  80. package/dist/esm/require.js.map +6 -0
  81. package/dist/esm/setup.native.js +2 -0
  82. package/dist/esm/setup.native.js.map +6 -0
  83. package/dist/esm/static.native.js +15 -0
  84. package/dist/esm/static.native.js.map +6 -0
  85. package/dist/esm/types.native.js +1 -0
  86. package/dist/esm/types.native.js.map +6 -0
  87. package/dist/esm/webpackPlugin.native.js +11 -0
  88. package/dist/esm/webpackPlugin.native.js.map +6 -0
  89. package/package.json +16 -16
@@ -0,0 +1,290 @@
1
+ import * as path from "path";
2
+ import { basename } from "path";
3
+ import * as util from "util";
4
+ import generate from "@babel/generator";
5
+ import * as t from "@babel/types";
6
+ import { concatClassName } from "@tamagui/helpers";
7
+ import { requireTamaguiCore } from "../helpers/requireTamaguiCore";
8
+ import { babelParse } from "./babelParse";
9
+ import { buildClassName } from "./buildClassName";
10
+ import { ensureImportingConcat } from "./ensureImportingConcat";
11
+ import { isSimpleSpread } from "./extractHelpers";
12
+ import { extractMediaStyle } from "./extractMediaStyle";
13
+ import { getPrefixLogs } from "./getPrefixLogs";
14
+ import { hoistClassNames } from "./hoistClassNames";
15
+ import { logLines } from "./logLines";
16
+ import { getFontFamilyClassNameFromProps } from "./propsToFontFamilyCache";
17
+ import { timer } from "./timer";
18
+ const mergeStyleGroups = {
19
+ shadowOpacity: !0,
20
+ shadowRadius: !0,
21
+ shadowColor: !0,
22
+ shadowOffset: !0
23
+ };
24
+ async function extractToClassNames({
25
+ extractor,
26
+ source,
27
+ sourcePath,
28
+ options,
29
+ shouldPrintDebug
30
+ }) {
31
+ const tm = timer(), { getStylesAtomic } = requireTamaguiCore("web");
32
+ if (sourcePath?.includes("node_modules"))
33
+ return null;
34
+ if (shouldPrintDebug && console.warn(`--- ${sourcePath} ---
35
+
36
+ `), typeof source != "string")
37
+ throw new Error("`source` must be a string of javascript");
38
+ if (sourcePath && !path.isAbsolute(sourcePath))
39
+ throw new Error("`sourcePath` must be an absolute path to a .js file");
40
+ /.[tj]sx?$/i.test(sourcePath || "") || console.warn(`${sourcePath?.slice(0, 100)} - bad filename.`), !options.disableExtraction && !options._disableLoadTamagui && await extractor.loadTamagui(options);
41
+ const shouldLogTiming = options.logTimings ?? !0, start = Date.now(), mem = process.env.TAMAGUI_SHOW_MEMORY_USAGE && shouldLogTiming ? process.memoryUsage() : null;
42
+ let ast;
43
+ try {
44
+ ast = babelParse(source, sourcePath);
45
+ } catch (err) {
46
+ throw console.error("babel parse error:", sourcePath?.slice(0, 100)), err;
47
+ }
48
+ tm.mark("babel-parse", shouldPrintDebug === "verbose");
49
+ const cssMap = /* @__PURE__ */ new Map(), existingHoists = {};
50
+ let hasFlattened = !1;
51
+ const res = await extractor.parse(ast, {
52
+ shouldPrintDebug,
53
+ ...options,
54
+ sourcePath,
55
+ extractStyledDefinitions: !0,
56
+ onStyleRule(identifier, rules) {
57
+ const css = rules.join(";");
58
+ shouldPrintDebug && console.log(`adding styled() rule: .${identifier} ${css}`), cssMap.set(`.${identifier}`, { css, commentTexts: [] });
59
+ },
60
+ getFlattenedNode: ({ tag }) => (hasFlattened = !0, tag),
61
+ onExtractTag: ({
62
+ parserProps,
63
+ attrs,
64
+ node,
65
+ attemptEval,
66
+ jsxPath,
67
+ originalNodeName,
68
+ filePath,
69
+ lineNumbers,
70
+ programPath,
71
+ isFlattened,
72
+ config,
73
+ completeProps,
74
+ staticConfig
75
+ }) => {
76
+ if (staticConfig.acceptsClassName === !1) {
77
+ shouldPrintDebug && console.log("bail, acceptsClassName is false");
78
+ return;
79
+ }
80
+ const didFlattenThisTag = hasFlattened;
81
+ hasFlattened = !1;
82
+ let finalClassNames = [];
83
+ const finalAttrs = [];
84
+ let finalStyles = [], viewStyles = {};
85
+ for (const attr of attrs)
86
+ attr.type === "style" && (viewStyles = {
87
+ ...viewStyles,
88
+ ...attr.value
89
+ });
90
+ const ensureNeededPrevStyle = (style) => {
91
+ if (!Object.keys(style).some((key) => mergeStyleGroups[key]))
92
+ return style;
93
+ for (const k in mergeStyleGroups)
94
+ k in viewStyles && (style[k] = style[k] ?? viewStyles[k]);
95
+ return style;
96
+ }, addStyles = (style) => {
97
+ if (!style)
98
+ return [];
99
+ const styleWithPrev = ensureNeededPrevStyle(style), res2 = getStylesAtomic(styleWithPrev);
100
+ return res2.length && (finalStyles = [...finalStyles, ...res2]), res2;
101
+ };
102
+ let lastMediaImportance = 1;
103
+ for (const attr of attrs)
104
+ switch (attr.type) {
105
+ case "style": {
106
+ if (isFlattened) {
107
+ const styles2 = addStyles(attr.value), newFontFamily = getFontFamilyClassNameFromProps(attr.value) || "", newClassNames = concatClassName(
108
+ styles2.map((x) => x.identifier).join(" ") + newFontFamily
109
+ ), existing = finalClassNames.find(
110
+ (x) => x.type == "StringLiteral"
111
+ );
112
+ if (existing) {
113
+ let previous = existing.value;
114
+ newFontFamily && (shouldPrintDebug && console.log(` newFontFamily: ${newFontFamily}`), previous = previous.replace(/font_[a-z]+/i, "")), existing.value = `${previous} ${newClassNames}`;
115
+ } else
116
+ finalClassNames = [...finalClassNames, t.stringLiteral(newClassNames)];
117
+ } else {
118
+ const styles2 = getStylesAtomic(attr.value);
119
+ finalStyles = [...finalStyles, ...styles2];
120
+ for (const style of styles2) {
121
+ const prop = style.pseudo ? `${style.property}-${style.pseudo}` : style.property;
122
+ finalAttrs.push(
123
+ t.jsxAttribute(t.jsxIdentifier(prop), t.stringLiteral(style.identifier))
124
+ );
125
+ }
126
+ }
127
+ break;
128
+ }
129
+ case "attr": {
130
+ const val = attr.value;
131
+ if (t.isJSXSpreadAttribute(val))
132
+ isSimpleSpread(val) && finalClassNames.push(
133
+ t.logicalExpression(
134
+ "&&",
135
+ val.argument,
136
+ t.memberExpression(val.argument, t.identifier("className"))
137
+ )
138
+ );
139
+ else if (val.name.name === "className") {
140
+ const value = val.value;
141
+ if (value)
142
+ try {
143
+ const evaluatedValue = attemptEval(value);
144
+ finalClassNames.push(t.stringLiteral(evaluatedValue));
145
+ } catch {
146
+ finalClassNames.push(value.expression);
147
+ }
148
+ continue;
149
+ }
150
+ finalAttrs.push(val);
151
+ break;
152
+ }
153
+ case "ternary": {
154
+ const mediaExtraction = extractMediaStyle(
155
+ parserProps,
156
+ attr.value,
157
+ jsxPath,
158
+ extractor.getTamagui(),
159
+ sourcePath || "",
160
+ lastMediaImportance,
161
+ shouldPrintDebug
162
+ );
163
+ if (shouldPrintDebug && mediaExtraction && console.log(
164
+ "ternary (mediaStyles)",
165
+ mediaExtraction.ternaryWithoutMedia?.inlineMediaQuery ?? "",
166
+ mediaExtraction.mediaStyles.map((x) => x.identifier).join(".")
167
+ ), !mediaExtraction) {
168
+ addTernaryStyle(
169
+ attr.value,
170
+ addStyles(attr.value.consequent),
171
+ addStyles(attr.value.alternate)
172
+ );
173
+ continue;
174
+ }
175
+ lastMediaImportance++, mediaExtraction.mediaStyles && (finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles]), mediaExtraction.ternaryWithoutMedia ? addTernaryStyle(
176
+ mediaExtraction.ternaryWithoutMedia,
177
+ mediaExtraction.mediaStyles,
178
+ []
179
+ ) : finalClassNames = [
180
+ ...finalClassNames,
181
+ ...mediaExtraction.mediaStyles.map((x) => t.stringLiteral(x.identifier))
182
+ ];
183
+ break;
184
+ }
185
+ }
186
+ function addTernaryStyle(ternary, a, b) {
187
+ const cCN = a.map((x) => x.identifier).join(" "), aCN = b.map((x) => x.identifier).join(" ");
188
+ a.length && b.length ? finalClassNames.push(
189
+ t.conditionalExpression(
190
+ ternary.test,
191
+ t.stringLiteral(cCN),
192
+ t.stringLiteral(aCN)
193
+ )
194
+ ) : finalClassNames.push(
195
+ t.conditionalExpression(
196
+ ternary.test,
197
+ t.stringLiteral(" " + cCN),
198
+ t.stringLiteral(" " + aCN)
199
+ )
200
+ );
201
+ }
202
+ if (shouldPrintDebug && console.log(
203
+ ` finalClassNames
204
+ `,
205
+ logLines(finalClassNames.map((x) => x.value).join(" "))
206
+ ), node.attributes = finalAttrs, finalClassNames.length) {
207
+ const extraClassNames = (() => {
208
+ let value = "";
209
+ return isFlattened && (process.env.TAMAGUI_DEBUG_OPTIMIZATIONS && (value += "is_tamagui_flattened"), staticConfig.componentName && (value += ` is_${staticConfig.componentName}`)), value;
210
+ })(), names = buildClassName(finalClassNames, extraClassNames), nameExpr = names ? hoistClassNames(jsxPath, existingHoists, names) : null;
211
+ let expr = nameExpr;
212
+ if (nameExpr && !t.isIdentifier(nameExpr) && didFlattenThisTag) {
213
+ ensureImportingConcat(programPath);
214
+ const simpleSpreads = attrs.filter(
215
+ (x) => t.isJSXSpreadAttribute(x.value) && isSimpleSpread(x.value)
216
+ );
217
+ expr = t.callExpression(t.identifier("concatClassName"), [
218
+ expr,
219
+ ...simpleSpreads.map((val) => val.value.argument)
220
+ ]);
221
+ }
222
+ node.attributes.push(
223
+ t.jsxAttribute(t.jsxIdentifier("className"), t.jsxExpressionContainer(expr))
224
+ );
225
+ }
226
+ const comment = util.format(
227
+ "/* %s:%s (%s) */",
228
+ filePath,
229
+ lineNumbers,
230
+ originalNodeName
231
+ );
232
+ for (const { identifier, rules } of finalStyles) {
233
+ const className = `.${identifier}`;
234
+ if (cssMap.has(className)) {
235
+ if (comment) {
236
+ const val = cssMap.get(className);
237
+ val.commentTexts.push(comment), cssMap.set(className, val);
238
+ }
239
+ } else
240
+ rules.length && cssMap.set(className, {
241
+ css: rules.join(`
242
+ `),
243
+ commentTexts: [comment]
244
+ });
245
+ }
246
+ }
247
+ });
248
+ if (!res || !res.modified && !res.optimized && !res.flattened && !res.styled)
249
+ return shouldPrintDebug && console.log("no res or none modified", res), null;
250
+ const styles = Array.from(cssMap.values()).map((x) => x.css).join(`
251
+ `).trim(), result = generate(
252
+ ast,
253
+ {
254
+ concise: !1,
255
+ filename: sourcePath,
256
+ // this makes the debug output terrible, and i think sourcemap works already
257
+ retainLines: !1,
258
+ sourceFileName: sourcePath,
259
+ sourceMaps: !0
260
+ },
261
+ source
262
+ );
263
+ if (shouldPrintDebug && (console.log(
264
+ `
265
+ -------- output code -------
266
+
267
+ `,
268
+ result.code.split(`
269
+ `).filter((x) => !x.startsWith("//")).join(`
270
+ `)
271
+ ), console.log(`
272
+ -------- output style --------
273
+
274
+ `, styles)), shouldLogTiming) {
275
+ const memUsed = mem ? Math.round((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204 * 10) / 10 : 0, path2 = basename(sourcePath || "").replace(/\.[jt]sx?$/, "").slice(0, 22).trim().padStart(24), numOptimized = `${res.optimized + res.styled}`.padStart(3), numFound = `${res.found + res.styled}`.padStart(3), numFlattened = `${res.flattened}`.padStart(3), memory = memUsed ? ` ${memUsed}MB` : "", timingStr = `${Date.now() - start}ms`.padStart(6), pre = getPrefixLogs(options), memStr = memory ? `(${memory})` : "";
276
+ console.log(
277
+ `${pre} ${path2} \xB7 ${numFound} found \xB7 ${numOptimized} opt \xB7 ${numFlattened} flat ${timingStr} ${memStr}`
278
+ );
279
+ }
280
+ return {
281
+ ast,
282
+ styles,
283
+ js: result.code,
284
+ map: result.map
285
+ };
286
+ }
287
+ export {
288
+ extractToClassNames
289
+ };
290
+ //# sourceMappingURL=extractToClassNames.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extractor/extractToClassNames.ts"],
4
+ "mappings": "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",
5
+ "names": ["res", "styles", "path"]
6
+ }
@@ -0,0 +1,16 @@
1
+ function findTopmostFunction(jsxPath) {
2
+ const isFunction = (path) => path.isArrowFunctionExpression() || path.isFunctionDeclaration() || path.isFunctionExpression();
3
+ let compFn = jsxPath.findParent(isFunction);
4
+ for (; compFn; ) {
5
+ const parent = compFn.findParent(isFunction);
6
+ if (parent)
7
+ compFn = parent;
8
+ else
9
+ break;
10
+ }
11
+ return compFn || null;
12
+ }
13
+ export {
14
+ findTopmostFunction
15
+ };
16
+ //# sourceMappingURL=findTopmostFunction.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extractor/findTopmostFunction.ts"],
4
+ "mappings": "AAGO,SAAS,oBAAoB,SAAiC;AAEnE,QAAM,aAAa,CAAC,SAClB,KAAK,0BAA0B,KAC/B,KAAK,sBAAsB,KAC3B,KAAK,qBAAqB;AAC5B,MAAI,SAA+B,QAAQ,WAAW,UAAU;AAChE,SAAO,UAAQ;AACb,UAAM,SAAS,OAAO,WAAW,UAAU;AAC3C,QAAI;AACF,eAAS;AAAA;AAET;AAAA,EAEJ;AACA,SAAK,UAEI;AAGX;",
5
+ "names": []
6
+ }
@@ -0,0 +1,93 @@
1
+ import { dirname, join } from "path";
2
+ import { generateThemes, writeGeneratedThemes } from "@tamagui/generate-themes";
3
+ import fs, { readFile } from "fs-extra";
4
+ import { requireTamaguiCore } from "../helpers/requireTamaguiCore";
5
+ import { getBundledConfig } from "./bundleConfig";
6
+ const tamaguiDir = join(process.cwd(), ".tamagui"), confFile = join(tamaguiDir, "tamagui.config.json");
7
+ async function generateTamaguiStudioConfig(tamaguiOptions, configIn, rebuild = !1) {
8
+ try {
9
+ const config = configIn ?? await getBundledConfig(tamaguiOptions, rebuild);
10
+ if (!config)
11
+ return;
12
+ const out = transformConfig(config, tamaguiOptions.platform);
13
+ await fs.ensureDir(dirname(confFile)), await fs.writeJSON(confFile, out, {
14
+ spaces: 2
15
+ });
16
+ } catch (err) {
17
+ (process.env.DEBUG?.includes("tamagui") || process.env.IS_TAMAGUI_DEV) && console.warn("generateTamaguiStudioConfig error", err);
18
+ }
19
+ }
20
+ function generateTamaguiStudioConfigSync(_tamaguiOptions, config) {
21
+ try {
22
+ fs.ensureDirSync(dirname(confFile)), fs.writeJSONSync(confFile, transformConfig(config, _tamaguiOptions.platform), {
23
+ spaces: 2
24
+ });
25
+ } catch (err) {
26
+ (process.env.DEBUG?.includes("tamagui") || process.env.IS_TAMAGUI_DEV) && console.warn("generateTamaguiStudioConfig error", err);
27
+ }
28
+ }
29
+ async function generateTamaguiThemes(tamaguiOptions) {
30
+ if (!tamaguiOptions.themeBuilder)
31
+ return;
32
+ const { input, output } = tamaguiOptions.themeBuilder, inPath = resolveRelativePath(input), outPath = resolveRelativePath(output), generatedOutput = await generateThemes(inPath), hasChanged = await (async () => {
33
+ try {
34
+ if (!await fs.pathExists(
35
+ join(tamaguiDir, "theme-builder.json")
36
+ ))
37
+ return !0;
38
+ if (!generatedOutput)
39
+ return !1;
40
+ const next = generatedOutput.generated, current = await readFile(outPath, "utf-8");
41
+ return next !== current;
42
+ } catch {
43
+ }
44
+ return !0;
45
+ })();
46
+ return hasChanged && await writeGeneratedThemes(tamaguiDir, outPath, generatedOutput), hasChanged;
47
+ }
48
+ const resolveRelativePath = (inputPath) => inputPath.startsWith(".") ? join(process.cwd(), inputPath) : require.resolve(inputPath);
49
+ function cloneDeepSafe(x, excludeKeys = {}) {
50
+ return x && (Array.isArray(x) ? x.map((_) => cloneDeepSafe(_)) : typeof x == "function" ? "Function" : typeof x != "object" ? x : "$$typeof" in x ? "Component" : Object.fromEntries(
51
+ Object.entries(x).flatMap(([k, v]) => excludeKeys[k] ? [] : [[k, cloneDeepSafe(v)]])
52
+ ));
53
+ }
54
+ function transformConfig(config, platform) {
55
+ if (!config)
56
+ return null;
57
+ const { getVariableValue } = requireTamaguiCore(platform), next = cloneDeepSafe(config, {
58
+ validStyles: !0
59
+ }), { components, nameToPaths, tamaguiConfig } = next, { themes, tokens } = tamaguiConfig;
60
+ for (const key in themes) {
61
+ const theme = themes[key];
62
+ theme.id = key;
63
+ for (const tkey in theme)
64
+ theme[tkey] = getVariableValue(theme[tkey]);
65
+ }
66
+ for (const key in tokens) {
67
+ const token = { ...tokens[key] };
68
+ for (const tkey in token)
69
+ token[tkey] = getVariableValue(token[tkey]);
70
+ }
71
+ for (const component of components)
72
+ for (const _ in component.nameToInfo) {
73
+ const compDefinition = { ...component.nameToInfo[_] };
74
+ component.nameToInfo[_] = compDefinition;
75
+ const { parentStaticConfig, ...rest } = compDefinition.staticConfig;
76
+ compDefinition.staticConfig = rest;
77
+ }
78
+ next.nameToPaths = {};
79
+ for (const key in nameToPaths)
80
+ next.nameToPaths[key] = [...nameToPaths[key]];
81
+ const { fontsParsed, getCSS, tokensParsed, themeConfig, ...cleanedConfig } = next.tamaguiConfig;
82
+ return {
83
+ components,
84
+ nameToPaths,
85
+ tamaguiConfig: cleanedConfig
86
+ };
87
+ }
88
+ export {
89
+ generateTamaguiStudioConfig,
90
+ generateTamaguiStudioConfigSync,
91
+ generateTamaguiThemes
92
+ };
93
+ //# sourceMappingURL=generateTamaguiStudioConfig.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extractor/generateTamaguiStudioConfig.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,18 @@
1
+ import * as t from "@babel/types";
2
+ function generateUid(scope, name) {
3
+ if (typeof scope != "object")
4
+ throw "generateUid expects a scope object as its first parameter";
5
+ if (!(typeof name == "string" && name !== ""))
6
+ throw "generateUid expects a valid name as its second parameter";
7
+ name = t.toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, "");
8
+ let uid, i = 0;
9
+ do
10
+ i > 1 ? uid = name + i : uid = name, i++;
11
+ while (scope.hasLabel(uid) || scope.hasBinding(uid) || scope.hasGlobal(uid) || scope.hasReference(uid));
12
+ const program = scope.getProgramParent();
13
+ return program.references[uid] = !0, program.uids[uid] = !0, uid;
14
+ }
15
+ export {
16
+ generateUid
17
+ };
18
+ //# sourceMappingURL=generatedUid.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extractor/generatedUid.ts"],
4
+ "mappings": "AAAA,YAAY,OAAO;AASZ,SAAS,YAAY,OAAY,MAAsB;AAC5D,MAAM,OAAO,SAAU;AACrB,UAAM;AACR,MAAI,EAAE,OAAO,QAAS,YAAY,SAAS;AACzC,UAAM;AAER,SAAO,EACJ,aAAa,IAAI,EACjB,QAAQ,OAAO,EAAE,EACjB,QAAQ,YAAY,EAAE;AAEzB,MAAI,KACA,IAAI;AACR;AACE,IAAI,IAAI,IACN,MAAM,OAAO,IAEb,MAAM,MAER;AAAA,SAEA,MAAM,SAAS,GAAG,KAClB,MAAM,WAAW,GAAG,KACpB,MAAM,UAAU,GAAG,KACnB,MAAM,aAAa,GAAG;AAGxB,QAAM,UAAU,MAAM,iBAAiB;AACvC,iBAAQ,WAAW,GAAG,IAAI,IAC1B,QAAQ,KAAK,GAAG,IAAI,IAEb;AACT;",
5
+ "names": []
6
+ }
@@ -0,0 +1,7 @@
1
+ function getPrefixLogs(options) {
2
+ return options?.prefixLogs ?? ` ${options?.platform || "web"} | `;
3
+ }
4
+ export {
5
+ getPrefixLogs
6
+ };
7
+ //# sourceMappingURL=getPrefixLogs.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extractor/getPrefixLogs.ts"],
4
+ "mappings": "AAEO,SAAS,cAAc,SAA0B;AACtD,SAAO,SAAS,cAAc,IAAI,SAAS,YAAY,KAAK;AAC9D;",
5
+ "names": []
6
+ }
@@ -0,0 +1,43 @@
1
+ import generate from "@babel/generator";
2
+ import * as t from "@babel/types";
3
+ import { accessSafe } from "./accessSafe";
4
+ function getPropValueFromAttributes(propName, attrs) {
5
+ let propIndex = -1, jsxAttr = null;
6
+ for (let idx = -1, len = attrs.length; ++idx < len; ) {
7
+ const attr = attrs[idx];
8
+ if (t.isJSXAttribute(attr) && attr.name && attr.name.name === propName) {
9
+ propIndex = idx, jsxAttr = attr;
10
+ break;
11
+ }
12
+ }
13
+ if (!jsxAttr || jsxAttr.value == null)
14
+ return null;
15
+ let propValue = jsxAttr.value;
16
+ if (t.isJSXExpressionContainer(propValue) && (propValue = propValue.expression), t.isJSXEmptyExpression(propValue))
17
+ return console.error("encountered JSXEmptyExpression"), null;
18
+ const applicableSpreads = attrs.filter(
19
+ // 1. idx is greater than propValue prop index
20
+ // 2. attr is a spread operator
21
+ (attr, idx) => {
22
+ if (t.isJSXSpreadAttribute(attr)) {
23
+ if (t.isIdentifier(attr.argument) || t.isMemberExpression(attr.argument))
24
+ return idx > propIndex;
25
+ if (t.isLogicalExpression(attr.argument))
26
+ return !1;
27
+ throw new Error(
28
+ `unsupported spread of type "${attr.argument.type}": ${// @ts-ignore
29
+ generate(attr).code}`
30
+ );
31
+ }
32
+ return !1;
33
+ }
34
+ ).map((attr) => attr.argument);
35
+ return applicableSpreads.length > 0 && (propValue = applicableSpreads.reduce(
36
+ (acc, val) => t.logicalExpression("||", accessSafe(val, propName), acc),
37
+ propValue
38
+ )), propValue;
39
+ }
40
+ export {
41
+ getPropValueFromAttributes
42
+ };
43
+ //# sourceMappingURL=getPropValueFromAttributes.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extractor/getPropValueFromAttributes.ts"],
4
+ "mappings": "AAAA,OAAO,cAAc;AACrB,YAAY,OAAO;AAEnB,SAAS,kBAAkB;AAkBpB,SAAS,2BACd,UACA,OACqB;AACrB,MAAI,YAAY,IACZ,UAAiC;AACrC,WAAS,MAAM,IAAI,MAAM,MAAM,QAAQ,EAAE,MAAM,OAAO;AACpD,UAAM,OAAO,MAAM,GAAG;AACtB,QAAI,EAAE,eAAe,IAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,UAAU;AACtE,kBAAY,KACZ,UAAU;AACV;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,WAAW,QAAQ,SAAS;AAC/B,WAAO;AAGT,MAAI,YAMe,QAAQ;AAO3B,MALI,EAAE,yBAAyB,SAAS,MACtC,YAAY,UAAU,aAIpB,EAAE,qBAAqB,SAAS;AAClC,mBAAQ,MAAM,gCAAgC,GACvC;AAIT,QAAM,oBAAoB,MACvB;AAAA;AAAA;AAAA,IAGC,CAAC,MAAM,QAAsC;AAC3C,UAAI,EAAE,qBAAqB,IAAI,GAAG;AAChC,YAAI,EAAE,aAAa,KAAK,QAAQ,KAAK,EAAE,mBAAmB,KAAK,QAAQ;AACrE,iBAAO,MAAM;AAEf,YAAI,EAAE,oBAAoB,KAAK,QAAQ;AACrC,iBAAO;AAET,cAAM,IAAI;AAAA,UACR,+BAA+B,KAAK,SAAS,IAAI;AAAA,UAE/C,SAAS,IAAW,EAAE,IACxB;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF,EACC,IAAI,CAAC,SAAS,KAAK,QAAQ;AAK9B,SAAI,kBAAkB,SAAS,MAC7B,YAAY,kBAAkB;AAAA,IAC5B,CAAC,KAAK,QAAQ,EAAE,kBAAkB,MAAM,WAAW,KAAK,QAAQ,GAAG,GAAG;AAAA,IACtE;AAAA,EACF,IAGK;AACT;",
5
+ "names": []
6
+ }
@@ -0,0 +1,42 @@
1
+ import * as t from "@babel/types";
2
+ function getSourceModule(itemName, itemBinding) {
3
+ if (!itemBinding.constant)
4
+ return null;
5
+ let sourceModule, imported, local, destructured, usesImportSyntax = !1;
6
+ const itemNode = itemBinding.path.node;
7
+ if (
8
+ // import x from 'y';
9
+ t.isImportDefaultSpecifier(itemNode) || // import {x} from 'y';
10
+ t.isImportSpecifier(itemNode)
11
+ )
12
+ t.isImportDeclaration(itemBinding.path.parent) && (sourceModule = itemBinding.path.parent.source.value, local = itemNode.local.name, usesImportSyntax = !0, t.isImportSpecifier(itemNode) ? (imported = itemNode.imported.name, destructured = !0) : (imported = itemNode.local.name, destructured = !1));
13
+ 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) {
14
+ const firstArg = itemNode.init.arguments[0];
15
+ if (!t.isStringLiteral(firstArg))
16
+ return null;
17
+ if (sourceModule = firstArg.value, t.isIdentifier(itemNode.id))
18
+ local = itemNode.id.name, imported = itemNode.id.name, destructured = !1;
19
+ else if (t.isObjectPattern(itemNode.id)) {
20
+ for (const objProp of itemNode.id.properties)
21
+ if (t.isObjectProperty(objProp) && t.isIdentifier(objProp.value) && objProp.value.name === itemName) {
22
+ local = objProp.value.name, imported = objProp.key.name, destructured = !0;
23
+ break;
24
+ }
25
+ if (!local || !imported)
26
+ return console.error("could not find prop with value `%s`", itemName), null;
27
+ } else
28
+ return console.error("Unhandled id type: %s", itemNode.id.type), null;
29
+ } else
30
+ return null;
31
+ return {
32
+ destructured,
33
+ imported,
34
+ local,
35
+ sourceModule,
36
+ usesImportSyntax
37
+ };
38
+ }
39
+ export {
40
+ getSourceModule
41
+ };
42
+ //# sourceMappingURL=getSourceModule.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extractor/getSourceModule.ts"],
4
+ "mappings": "AAAA,YAAY,OAAO;AAUZ,SAAS,gBACd,UACA,aAIqB;AAErB,MAAI,CAAC,YAAY;AACf,WAAO;AAGT,MAAI,cACA,UACA,OACA,cACA,mBAAmB;AAEvB,QAAM,WAAW,YAAY,KAAK;AAElC;AAAA;AAAA,IAEE,EAAE,yBAAyB,QAAQ;AAAA,IAEnC,EAAE,kBAAkB,QAAQ;AAAA;AAE5B,IAAI,EAAE,oBAAoB,YAAY,KAAK,MAAM,MAC/C,eAAe,YAAY,KAAK,OAAO,OAAO,OAC9C,QAAQ,SAAS,MAAM,MACvB,mBAAmB,IACf,EAAE,kBAAkB,QAAQ,KAC9B,WAAW,SAAS,SAAS,MAC7B,eAAe,OAEf,WAAW,SAAS,MAAM,MAC1B,eAAe;AAAA,WAInB,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,CAAC;AAC1C,QAAI,CAAC,EAAE,gBAAgB,QAAQ;AAC7B,aAAO;AAIT,QAFA,eAAe,SAAS,OAEpB,EAAE,aAAa,SAAS,EAAE;AAC5B,cAAQ,SAAS,GAAG,MACpB,WAAW,SAAS,GAAG,MACvB,eAAe;AAAA,aACN,EAAE,gBAAgB,SAAS,EAAE,GAAG;AACzC,iBAAW,WAAW,SAAS,GAAG;AAChC,YACE,EAAE,iBAAiB,OAAO,KAC1B,EAAE,aAAa,QAAQ,KAAK,KAC5B,QAAQ,MAAM,SAAS,UACvB;AACA,kBAAQ,QAAQ,MAAM,MAEtB,WAAW,QAAQ,IAAI,MACvB,eAAe;AACf;AAAA,QACF;AAGF,UAAI,CAAC,SAAS,CAAC;AACb,uBAAQ,MAAM,uCAAuC,QAAQ,GACtD;AAAA,IAEX;AACE,qBAAQ,MAAM,yBAAyB,SAAS,GAAG,IAAI,GAChD;AAAA,EAEX;AACE,WAAO;AAGT,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }