@tamagui/static 1.0.1-beta.151 → 1.0.1-beta.152

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 (226) hide show
  1. package/dist/{cjs/constants.js → constants.js} +4 -1
  2. package/dist/{esm/constants.js.map → constants.js.map} +3 -3
  3. package/dist/{cjs/extractor → extractor}/accessSafe.js +13 -2
  4. package/dist/{esm/extractor → extractor}/accessSafe.js.map +2 -2
  5. package/dist/{cjs/extractor → extractor}/babelParse.js +4 -1
  6. package/dist/{cjs/extractor → extractor}/babelParse.js.map +2 -2
  7. package/dist/{cjs/extractor → extractor}/buildClassName.js +19 -4
  8. package/dist/extractor/buildClassName.js.map +7 -0
  9. package/dist/{cjs/extractor → extractor}/createEvaluator.js +7 -4
  10. package/dist/extractor/createEvaluator.js.map +7 -0
  11. package/dist/{cjs/extractor → extractor}/createExtractor.js +186 -64
  12. package/dist/{esm/extractor → extractor}/createExtractor.js.map +4 -4
  13. package/dist/{cjs/extractor → extractor}/ensureImportingConcat.js +21 -6
  14. package/dist/extractor/ensureImportingConcat.js.map +7 -0
  15. package/dist/{cjs/extractor → extractor}/evaluateAstNode.js +13 -4
  16. package/dist/{esm/extractor → extractor}/evaluateAstNode.js.map +2 -2
  17. package/dist/{cjs/extractor → extractor}/extractHelpers.js +8 -3
  18. package/dist/extractor/extractHelpers.js.map +7 -0
  19. package/dist/{cjs/extractor → extractor}/extractMediaStyle.js +22 -6
  20. package/dist/extractor/extractMediaStyle.js.map +7 -0
  21. package/dist/{cjs/extractor → extractor}/extractToClassNames.js +87 -32
  22. package/dist/extractor/extractToClassNames.js.map +7 -0
  23. package/dist/{cjs/extractor → extractor}/findTopmostFunction.js +0 -0
  24. package/dist/{cjs/extractor → extractor}/findTopmostFunction.js.map +2 -2
  25. package/dist/{cjs/extractor → extractor}/generatedUid.js +8 -2
  26. package/dist/{cjs/extractor → extractor}/generatedUid.js.map +3 -3
  27. package/dist/{cjs/extractor → extractor}/getPrefixLogs.js +0 -0
  28. package/dist/extractor/getPrefixLogs.js.map +7 -0
  29. package/dist/{cjs/extractor → extractor}/getPropValueFromAttributes.js +23 -13
  30. package/dist/extractor/getPropValueFromAttributes.js.map +7 -0
  31. package/dist/{cjs/extractor → extractor}/getSourceModule.js +4 -1
  32. package/dist/{esm/extractor → extractor}/getSourceModule.js.map +2 -2
  33. package/dist/{cjs/extractor → extractor}/getStaticBindingsForScope.js +9 -4
  34. package/dist/extractor/getStaticBindingsForScope.js.map +7 -0
  35. package/dist/{cjs/extractor → extractor}/hoistClassNames.js +4 -1
  36. package/dist/{jsx/extractor → extractor}/hoistClassNames.js.map +3 -3
  37. package/dist/{cjs/extractor → extractor}/literalToAst.js +18 -10
  38. package/dist/{jsx/extractor → extractor}/literalToAst.js.map +2 -2
  39. package/dist/{cjs/extractor → extractor}/loadFile.js +0 -0
  40. package/dist/{cjs/extractor → extractor}/loadFile.js.map +1 -1
  41. package/dist/{cjs/extractor → extractor}/loadTamagui.js +34 -7
  42. package/dist/extractor/loadTamagui.js.map +7 -0
  43. package/dist/{cjs/extractor → extractor}/logLines.js +0 -0
  44. package/dist/{cjs/extractor → extractor}/logLines.js.map +2 -2
  45. package/dist/{cjs/extractor → extractor}/normalizeTernaries.js +8 -2
  46. package/dist/extractor/normalizeTernaries.js.map +7 -0
  47. package/dist/{cjs/extractor → extractor}/removeUnusedHooks.js +4 -1
  48. package/dist/{esm/extractor → extractor}/removeUnusedHooks.js.map +2 -2
  49. package/dist/{cjs/extractor → extractor}/timer.js +0 -0
  50. package/dist/{cjs/extractor → extractor}/timer.js.map +1 -1
  51. package/dist/{cjs/extractor → extractor}/validHTMLAttributes.js +0 -0
  52. package/dist/{cjs/extractor → extractor}/validHTMLAttributes.js.map +1 -1
  53. package/dist/{cjs/getPragmaOptions.js → getPragmaOptions.js} +0 -0
  54. package/dist/{cjs/getPragmaOptions.js.map → getPragmaOptions.js.map} +2 -2
  55. package/dist/{cjs/index.js → index.js} +9 -9
  56. package/dist/index.js.map +7 -0
  57. package/dist/{cjs/require.js → require.js} +10 -4
  58. package/dist/require.js.map +7 -0
  59. package/dist/{cjs/types.js → types.js} +0 -0
  60. package/dist/types.js.map +7 -0
  61. package/dist/{cjs/webpackPlugin.js → webpackPlugin.js} +0 -0
  62. package/dist/{cjs/webpackPlugin.js.map → webpackPlugin.js.map} +1 -1
  63. package/package.json +15 -15
  64. package/src/extractor/buildClassName.ts +1 -1
  65. package/src/extractor/createEvaluator.ts +3 -3
  66. package/src/extractor/createExtractor.ts +21 -15
  67. package/src/extractor/ensureImportingConcat.ts +1 -1
  68. package/src/extractor/extractHelpers.ts +4 -3
  69. package/src/extractor/extractMediaStyle.ts +3 -3
  70. package/src/extractor/extractToClassNames.ts +12 -12
  71. package/src/extractor/getPrefixLogs.ts +1 -1
  72. package/src/extractor/getPropValueFromAttributes.ts +2 -2
  73. package/src/extractor/getStaticBindingsForScope.ts +2 -2
  74. package/src/extractor/loadTamagui.ts +27 -5
  75. package/src/extractor/normalizeTernaries.ts +1 -1
  76. package/src/index.ts +9 -10
  77. package/src/require.ts +1 -1
  78. package/src/types.ts +4 -3
  79. package/tamagui.tsconfig.json +5 -0
  80. package/types/extractor/buildClassName.d.ts +1 -1
  81. package/types/extractor/createExtractor.d.ts +4 -4
  82. package/types/extractor/extractHelpers.d.ts +1 -1
  83. package/types/extractor/extractMediaStyle.d.ts +1 -1
  84. package/types/extractor/extractToClassNames.d.ts +2 -2
  85. package/types/extractor/getPrefixLogs.d.ts +1 -1
  86. package/types/extractor/normalizeTernaries.d.ts +1 -1
  87. package/types/index.d.ts +9 -9
  88. package/types/types.d.ts +4 -3
  89. package/dist/cjs/constants.js.map +0 -7
  90. package/dist/cjs/extractor/accessSafe.js.map +0 -7
  91. package/dist/cjs/extractor/buildClassName.js.map +0 -7
  92. package/dist/cjs/extractor/createEvaluator.js.map +0 -7
  93. package/dist/cjs/extractor/createExtractor.js.map +0 -7
  94. package/dist/cjs/extractor/ensureImportingConcat.js.map +0 -7
  95. package/dist/cjs/extractor/evaluateAstNode.js.map +0 -7
  96. package/dist/cjs/extractor/extractHelpers.js.map +0 -7
  97. package/dist/cjs/extractor/extractMediaStyle.js.map +0 -7
  98. package/dist/cjs/extractor/extractToClassNames.js.map +0 -7
  99. package/dist/cjs/extractor/getPrefixLogs.js.map +0 -7
  100. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +0 -7
  101. package/dist/cjs/extractor/getSourceModule.js.map +0 -7
  102. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +0 -7
  103. package/dist/cjs/extractor/hoistClassNames.js.map +0 -7
  104. package/dist/cjs/extractor/literalToAst.js.map +0 -7
  105. package/dist/cjs/extractor/loadTamagui.js.map +0 -7
  106. package/dist/cjs/extractor/normalizeTernaries.js.map +0 -7
  107. package/dist/cjs/extractor/removeUnusedHooks.js.map +0 -7
  108. package/dist/cjs/index.js.map +0 -7
  109. package/dist/cjs/require.js.map +0 -7
  110. package/dist/cjs/types.js.map +0 -7
  111. package/dist/esm/constants.js +0 -17
  112. package/dist/esm/extractor/accessSafe.js +0 -8
  113. package/dist/esm/extractor/babelParse.js +0 -28
  114. package/dist/esm/extractor/babelParse.js.map +0 -7
  115. package/dist/esm/extractor/buildClassName.js +0 -37
  116. package/dist/esm/extractor/buildClassName.js.map +0 -7
  117. package/dist/esm/extractor/createEvaluator.js +0 -52
  118. package/dist/esm/extractor/createEvaluator.js.map +0 -7
  119. package/dist/esm/extractor/createExtractor.js +0 -1374
  120. package/dist/esm/extractor/ensureImportingConcat.js +0 -21
  121. package/dist/esm/extractor/ensureImportingConcat.js.map +0 -7
  122. package/dist/esm/extractor/evaluateAstNode.js +0 -91
  123. package/dist/esm/extractor/extractHelpers.js +0 -97
  124. package/dist/esm/extractor/extractHelpers.js.map +0 -7
  125. package/dist/esm/extractor/extractMediaStyle.js +0 -146
  126. package/dist/esm/extractor/extractMediaStyle.js.map +0 -7
  127. package/dist/esm/extractor/extractToClassNames.js +0 -308
  128. package/dist/esm/extractor/extractToClassNames.js.map +0 -7
  129. package/dist/esm/extractor/findTopmostFunction.js +0 -20
  130. package/dist/esm/extractor/findTopmostFunction.js.map +0 -7
  131. package/dist/esm/extractor/generatedUid.js +0 -25
  132. package/dist/esm/extractor/generatedUid.js.map +0 -7
  133. package/dist/esm/extractor/getPrefixLogs.js +0 -8
  134. package/dist/esm/extractor/getPrefixLogs.js.map +0 -7
  135. package/dist/esm/extractor/getPropValueFromAttributes.js +0 -46
  136. package/dist/esm/extractor/getPropValueFromAttributes.js.map +0 -7
  137. package/dist/esm/extractor/getSourceModule.js +0 -66
  138. package/dist/esm/extractor/getStaticBindingsForScope.js +0 -172
  139. package/dist/esm/extractor/getStaticBindingsForScope.js.map +0 -7
  140. package/dist/esm/extractor/hoistClassNames.js +0 -40
  141. package/dist/esm/extractor/hoistClassNames.js.map +0 -7
  142. package/dist/esm/extractor/literalToAst.js +0 -75
  143. package/dist/esm/extractor/literalToAst.js.map +0 -7
  144. package/dist/esm/extractor/loadFile.js +0 -20
  145. package/dist/esm/extractor/loadFile.js.map +0 -7
  146. package/dist/esm/extractor/loadTamagui.js +0 -255
  147. package/dist/esm/extractor/loadTamagui.js.map +0 -7
  148. package/dist/esm/extractor/logLines.js +0 -20
  149. package/dist/esm/extractor/logLines.js.map +0 -7
  150. package/dist/esm/extractor/normalizeTernaries.js +0 -49
  151. package/dist/esm/extractor/normalizeTernaries.js.map +0 -7
  152. package/dist/esm/extractor/removeUnusedHooks.js +0 -76
  153. package/dist/esm/extractor/timer.js +0 -29
  154. package/dist/esm/extractor/timer.js.map +0 -7
  155. package/dist/esm/extractor/validHTMLAttributes.js +0 -102
  156. package/dist/esm/extractor/validHTMLAttributes.js.map +0 -7
  157. package/dist/esm/getPragmaOptions.js +0 -44
  158. package/dist/esm/getPragmaOptions.js.map +0 -7
  159. package/dist/esm/index.js +0 -17
  160. package/dist/esm/index.js.map +0 -7
  161. package/dist/esm/require.js +0 -62
  162. package/dist/esm/require.js.map +0 -7
  163. package/dist/esm/types.js +0 -1
  164. package/dist/esm/types.js.map +0 -7
  165. package/dist/esm/webpackPlugin.js +0 -11
  166. package/dist/esm/webpackPlugin.js.map +0 -7
  167. package/dist/jsx/constants.js +0 -16
  168. package/dist/jsx/constants.js.map +0 -7
  169. package/dist/jsx/extractor/accessSafe.js +0 -8
  170. package/dist/jsx/extractor/accessSafe.js.map +0 -7
  171. package/dist/jsx/extractor/babelParse.js +0 -28
  172. package/dist/jsx/extractor/babelParse.js.map +0 -7
  173. package/dist/jsx/extractor/buildClassName.js +0 -37
  174. package/dist/jsx/extractor/buildClassName.js.map +0 -7
  175. package/dist/jsx/extractor/createEvaluator.js +0 -52
  176. package/dist/jsx/extractor/createEvaluator.js.map +0 -7
  177. package/dist/jsx/extractor/createExtractor.js +0 -1367
  178. package/dist/jsx/extractor/createExtractor.js.map +0 -7
  179. package/dist/jsx/extractor/ensureImportingConcat.js +0 -21
  180. package/dist/jsx/extractor/ensureImportingConcat.js.map +0 -7
  181. package/dist/jsx/extractor/evaluateAstNode.js +0 -91
  182. package/dist/jsx/extractor/evaluateAstNode.js.map +0 -7
  183. package/dist/jsx/extractor/extractHelpers.js +0 -95
  184. package/dist/jsx/extractor/extractHelpers.js.map +0 -7
  185. package/dist/jsx/extractor/extractMediaStyle.js +0 -145
  186. package/dist/jsx/extractor/extractMediaStyle.js.map +0 -7
  187. package/dist/jsx/extractor/extractToClassNames.js +0 -307
  188. package/dist/jsx/extractor/extractToClassNames.js.map +0 -7
  189. package/dist/jsx/extractor/findTopmostFunction.js +0 -20
  190. package/dist/jsx/extractor/findTopmostFunction.js.map +0 -7
  191. package/dist/jsx/extractor/generatedUid.js +0 -25
  192. package/dist/jsx/extractor/generatedUid.js.map +0 -7
  193. package/dist/jsx/extractor/getPrefixLogs.js +0 -8
  194. package/dist/jsx/extractor/getPrefixLogs.js.map +0 -7
  195. package/dist/jsx/extractor/getPropValueFromAttributes.js +0 -46
  196. package/dist/jsx/extractor/getPropValueFromAttributes.js.map +0 -7
  197. package/dist/jsx/extractor/getSourceModule.js +0 -66
  198. package/dist/jsx/extractor/getSourceModule.js.map +0 -7
  199. package/dist/jsx/extractor/getStaticBindingsForScope.js +0 -172
  200. package/dist/jsx/extractor/getStaticBindingsForScope.js.map +0 -7
  201. package/dist/jsx/extractor/hoistClassNames.js +0 -40
  202. package/dist/jsx/extractor/literalToAst.js +0 -75
  203. package/dist/jsx/extractor/loadFile.js +0 -19
  204. package/dist/jsx/extractor/loadFile.js.map +0 -7
  205. package/dist/jsx/extractor/loadTamagui.js +0 -253
  206. package/dist/jsx/extractor/loadTamagui.js.map +0 -7
  207. package/dist/jsx/extractor/logLines.js +0 -20
  208. package/dist/jsx/extractor/logLines.js.map +0 -7
  209. package/dist/jsx/extractor/normalizeTernaries.js +0 -49
  210. package/dist/jsx/extractor/normalizeTernaries.js.map +0 -7
  211. package/dist/jsx/extractor/removeUnusedHooks.js +0 -75
  212. package/dist/jsx/extractor/removeUnusedHooks.js.map +0 -7
  213. package/dist/jsx/extractor/timer.js +0 -29
  214. package/dist/jsx/extractor/timer.js.map +0 -7
  215. package/dist/jsx/extractor/validHTMLAttributes.js +0 -102
  216. package/dist/jsx/extractor/validHTMLAttributes.js.map +0 -7
  217. package/dist/jsx/getPragmaOptions.js +0 -43
  218. package/dist/jsx/getPragmaOptions.js.map +0 -7
  219. package/dist/jsx/index.js +0 -17
  220. package/dist/jsx/index.js.map +0 -7
  221. package/dist/jsx/require.js +0 -62
  222. package/dist/jsx/require.js.map +0 -7
  223. package/dist/jsx/types.js +0 -1
  224. package/dist/jsx/types.js.map +0 -7
  225. package/dist/jsx/webpackPlugin.js +0 -11
  226. package/dist/jsx/webpackPlugin.js.map +0 -7
@@ -1,253 +0,0 @@
1
- import { basename, dirname, join, sep } from "path";
2
- import { getDefaultTamaguiConfig } from "@tamagui/config-default-node";
3
- import { createTamagui } from "@tamagui/core-node";
4
- import esbuild from "esbuild";
5
- import { ensureDir, pathExists, stat, writeFile } from "fs-extra";
6
- import { SHOULD_DEBUG } from "../constants";
7
- import { getNameToPaths, registerRequire, unregisterRequire } from "../require";
8
- const cache = {};
9
- async function loadTamagui(props) {
10
- const key = JSON.stringify(props);
11
- if (cache[key]) {
12
- if (cache[key] instanceof Promise) {
13
- return await cache[key];
14
- }
15
- return cache[key];
16
- }
17
- let resolver = () => {
18
- };
19
- cache[key] = new Promise((res) => {
20
- resolver = res;
21
- });
22
- const tmpDir = join(process.cwd(), "dist", "tamagui-node");
23
- const configOutPath = join(tmpDir, `tamagui.config.js`);
24
- const includesCore = props.components.includes("@tamagui/core");
25
- const baseComponents = props.components.filter((x) => x !== "@tamagui/core");
26
- const componentOutPaths = baseComponents.map((componentModule) => join(tmpDir, `${componentModule.split(sep).join("-").replace(/[^a-z0-9]+/gi, "")}-components.config.js`));
27
- const external = ["@tamagui/core", "@tamagui/core-node", "react", "react-dom"];
28
- const configEntry = props.config ? join(process.cwd(), props.config) : "";
29
- if (process.env.DEBUG?.startsWith("tamagui")) {
30
- console.log(`Building config entry`, configEntry);
31
- }
32
- try {
33
- await ensureDir(tmpDir);
34
- } catch {
35
- }
36
- await Promise.all([
37
- props.config ? buildTamaguiConfig(props, {
38
- entryPoints: [configEntry],
39
- external,
40
- outfile: configOutPath
41
- }) : null,
42
- ...baseComponents.map((componentModule, i) => {
43
- return buildTamaguiConfig(props, {
44
- entryPoints: [componentModule],
45
- external,
46
- outfile: componentOutPaths[i]
47
- });
48
- })
49
- ]);
50
- if (process.env.DEBUG?.startsWith("tamagui")) {
51
- console.log(`Built configs`);
52
- }
53
- const coreNode = require("@tamagui/core-node");
54
- registerRequire();
55
- const config = require(configOutPath).default;
56
- unregisterRequire();
57
- const components = {
58
- ...loadComponents(componentOutPaths),
59
- ...includesCore && gatherTamaguiComponentInfo([coreNode])
60
- };
61
- cache[key] = {
62
- components,
63
- nameToPaths: {},
64
- tamaguiConfig: config
65
- };
66
- createTamagui(cache[key].tamaguiConfig);
67
- resolver(cache[key]);
68
- return cache[key];
69
- }
70
- async function buildTamaguiConfig(props, options, aliases) {
71
- const alias = require("@tamagui/core-node").aliasPlugin;
72
- const lockFile = join(dirname(options.outfile), basename(options.outfile, ".lock"));
73
- const lockStat = await stat(lockFile).catch(() => {
74
- });
75
- const lockedMsAgo = !lockStat ? Infinity : new Date().getTime() - new Date(lockStat.mtime).getTime();
76
- if (lockedMsAgo < 500) {
77
- if (process.env.DEBUG?.startsWith("tamagui")) {
78
- console.log(`Waiting for existing build`, options.entryPoints);
79
- }
80
- let tries = 5;
81
- while (tries--) {
82
- if (await pathExists(options.outfile)) {
83
- return;
84
- } else {
85
- await new Promise((res) => setTimeout(res, 50));
86
- }
87
- }
88
- }
89
- writeFile(lockFile, "");
90
- if (process.env.DEBUG?.startsWith("tamagui")) {
91
- console.log(`Building`, options.entryPoints);
92
- }
93
- return esbuild.build({
94
- bundle: true,
95
- ...options,
96
- format: "cjs",
97
- target: "node18",
98
- keepNames: true,
99
- platform: "node",
100
- loader: {
101
- ".js": "jsx"
102
- },
103
- allowOverwrite: true,
104
- logLevel: "warning",
105
- plugins: [
106
- {
107
- name: "external",
108
- setup(build) {
109
- build.onResolve({ filter: /@tamagui\/core/ }, (args) => {
110
- return {
111
- path: "@tamagui/core-node",
112
- external: true
113
- };
114
- });
115
- build.onResolve({ filter: /^(react-native|react-native\/.*)$/ }, (args) => {
116
- return {
117
- path: "react-native-web-lite",
118
- external: true
119
- };
120
- });
121
- }
122
- },
123
- alias({
124
- "react-native-svg": require.resolve("@tamagui/react-native-svg"),
125
- "react-native-safe-area-context": require.resolve("@tamagui/fake-react-native"),
126
- "react-native-gesture-handler": require.resolve("@tamagui/proxy-worm"),
127
- "react-native-reanimated": require.resolve("@tamagui/proxy-worm"),
128
- ...aliases
129
- })
130
- ]
131
- });
132
- }
133
- function loadTamaguiSync(props) {
134
- const key = JSON.stringify(props);
135
- if (cache[key]) {
136
- return cache[key];
137
- }
138
- const { unregister } = require("esbuild-register/dist/node").register({
139
- target: "es2019",
140
- format: "cjs"
141
- });
142
- try {
143
- registerRequire();
144
- process.env.IS_STATIC = "is_static";
145
- if (typeof globalThis["__DEV__"] === "undefined") {
146
- globalThis["__DEV__"] = process.env.NODE_ENV === "development";
147
- }
148
- try {
149
- let tamaguiConfig = null;
150
- if (props.config) {
151
- const configPath = join(process.cwd(), props.config);
152
- const exp = require(configPath);
153
- tamaguiConfig = exp["default"] || exp;
154
- if (!tamaguiConfig || !tamaguiConfig.parsed) {
155
- const confPath = require.resolve(configPath);
156
- throw new Error(`Can't find valid config in ${confPath}`);
157
- }
158
- }
159
- const components = loadComponents(props.components);
160
- process.env.IS_STATIC = void 0;
161
- if (tamaguiConfig) {
162
- createTamagui(tamaguiConfig);
163
- }
164
- cache[key] = {
165
- components,
166
- tamaguiConfig,
167
- nameToPaths: getNameToPaths()
168
- };
169
- } catch (err) {
170
- if (err instanceof Error) {
171
- console.warn(`Error loading tamagui.config.ts (set DEBUG=tamagui to see full stack), running tamagui without custom config`);
172
- console.log(`
173
-
174
- ${err.message}
175
-
176
- `);
177
- if (SHOULD_DEBUG) {
178
- console.log(err.stack);
179
- }
180
- } else {
181
- console.error(`Error loading tamagui.config.ts`, err);
182
- }
183
- return {
184
- components: {},
185
- tamaguiConfig: getDefaultTamaguiConfig(),
186
- nameToPaths: {}
187
- };
188
- }
189
- return cache[key];
190
- } catch (err) {
191
- console.log("Error loading Tamagui", err);
192
- throw err;
193
- } finally {
194
- unregister();
195
- unregisterRequire();
196
- }
197
- }
198
- function interopDefaultExport(mod) {
199
- return mod?.default ?? mod;
200
- }
201
- const cacheComponents = {};
202
- function loadComponents(componentsModules) {
203
- const key = componentsModules.join("");
204
- if (cacheComponents[key]) {
205
- return cacheComponents[key];
206
- }
207
- try {
208
- const requiredModules = componentsModules.map((name) => {
209
- return interopDefaultExport(require(name));
210
- });
211
- const res = gatherTamaguiComponentInfo(requiredModules);
212
- cacheComponents[key] = res;
213
- return res;
214
- } catch (err) {
215
- console.log(`Tamagui error bundling components`, err.message, err.stack);
216
- }
217
- }
218
- function gatherTamaguiComponentInfo(packages) {
219
- const components = {};
220
- for (const exported of packages) {
221
- try {
222
- for (const componentName in exported) {
223
- const found = getTamaguiComponent(componentName, exported[componentName]);
224
- if (found) {
225
- const { Component, reactNativeWebComponent, ...sc } = found.staticConfig;
226
- Object.assign(components, { [componentName]: { staticConfig: sc } });
227
- }
228
- }
229
- } catch (err) {
230
- console.error(`Tamagui failed getting components`);
231
- if (err instanceof Error) {
232
- console.error(err.message, err.stack);
233
- } else {
234
- console.error(err);
235
- }
236
- }
237
- }
238
- return components;
239
- }
240
- function getTamaguiComponent(name, Component) {
241
- if (name[0].toUpperCase() !== name[0]) {
242
- return;
243
- }
244
- const staticConfig = Component?.staticConfig;
245
- if (staticConfig) {
246
- return Component;
247
- }
248
- }
249
- export {
250
- loadTamagui,
251
- loadTamaguiSync
252
- };
253
- //# sourceMappingURL=loadTamagui.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/loadTamagui.ts"],
4
- "sourcesContent": ["/* eslint-disable no-console */\nimport { basename, dirname, join, sep } from 'path'\n\nimport { getDefaultTamaguiConfig } from '@tamagui/config-default-node'\nimport type { StaticConfig, TamaguiComponent, TamaguiInternalConfig } from '@tamagui/core-node'\nimport { createTamagui } from '@tamagui/core-node'\nimport esbuild from 'esbuild'\nimport { ensureDir, pathExists, remove, stat, writeFile } from 'fs-extra'\n\nimport { SHOULD_DEBUG } from '../constants'\nimport { getNameToPaths, registerRequire, unregisterRequire } from '../require'\n\ntype NameToPaths = {\n [key: string]: Set<string>\n}\n\nexport type TamaguiProjectInfo = {\n components: Record<string, TamaguiComponent>\n tamaguiConfig: TamaguiInternalConfig\n nameToPaths: NameToPaths\n}\n\ntype Props = { components: string[]; config?: string }\n\nconst cache = {}\n\n// TODO needs a plugin for webpack / vite to run this once at startup and not again until changed...\n\nexport async function loadTamagui(props: Props): Promise<TamaguiProjectInfo> {\n const key = JSON.stringify(props)\n if (cache[key]) {\n if (cache[key] instanceof Promise) {\n return await cache[key]\n }\n return cache[key]\n }\n\n let resolver: Function = () => {}\n cache[key] = new Promise((res) => {\n resolver = res\n })\n\n const tmpDir = join(process.cwd(), 'dist', 'tamagui-node')\n const configOutPath = join(tmpDir, `tamagui.config.js`)\n const includesCore = props.components.includes('@tamagui/core')\n const baseComponents = props.components.filter((x) => x !== '@tamagui/core')\n const componentOutPaths = baseComponents.map((componentModule) =>\n join(\n tmpDir,\n `${componentModule\n .split(sep)\n .join('-')\n .replace(/[^a-z0-9]+/gi, '')}-components.config.js`\n )\n )\n\n const external = ['@tamagui/core', '@tamagui/core-node', 'react', 'react-dom']\n const configEntry = props.config ? join(process.cwd(), props.config) : ''\n\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Building config entry`, configEntry)\n }\n\n // build them to node-compat versions\n try {\n await ensureDir(tmpDir)\n } catch {\n //\n }\n\n await Promise.all([\n props.config\n ? buildTamaguiConfig(props, {\n entryPoints: [configEntry],\n external,\n outfile: configOutPath,\n })\n : null,\n ...baseComponents.map((componentModule, i) => {\n return buildTamaguiConfig(props, {\n entryPoints: [componentModule],\n external,\n outfile: componentOutPaths[i],\n })\n }),\n ])\n\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Built configs`)\n }\n\n const coreNode = require('@tamagui/core-node')\n\n registerRequire()\n const config = require(configOutPath).default\n unregisterRequire()\n\n const components = {\n ...loadComponents(componentOutPaths),\n ...(includesCore && gatherTamaguiComponentInfo([coreNode])),\n }\n\n cache[key] = {\n components,\n nameToPaths: {},\n tamaguiConfig: config,\n }\n\n // init core-node\n createTamagui(cache[key].tamaguiConfig)\n\n resolver(cache[key])\n\n return cache[key]\n}\n\nasync function buildTamaguiConfig(\n props: Props,\n options: Partial<esbuild.BuildOptions> & { outfile: string },\n aliases?: Record<string, string>\n) {\n const alias = require('@tamagui/core-node').aliasPlugin\n // until i do fancier things w plugins:\n const lockFile = join(dirname(options.outfile), basename(options.outfile, '.lock'))\n const lockStat = await stat(lockFile).catch(() => {\n // ok\n })\n const lockedMsAgo = !lockStat\n ? Infinity\n : new Date().getTime() - new Date(lockStat.mtime).getTime()\n if (lockedMsAgo < 500) {\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Waiting for existing build`, options.entryPoints)\n }\n let tries = 5\n while (tries--) {\n if (await pathExists(options.outfile)) {\n return\n } else {\n await new Promise((res) => setTimeout(res, 50))\n }\n }\n }\n writeFile(lockFile, '')\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Building`, options.entryPoints)\n }\n return esbuild.build({\n bundle: true,\n ...options,\n format: 'cjs',\n target: 'node18',\n keepNames: true,\n platform: 'node',\n loader: {\n '.js': 'jsx',\n },\n allowOverwrite: true,\n logLevel: 'warning',\n plugins: [\n {\n name: 'external',\n setup(build) {\n build.onResolve({ filter: /@tamagui\\/core/ }, (args) => {\n return {\n path: '@tamagui/core-node',\n external: true,\n }\n })\n\n build.onResolve({ filter: /^(react-native|react-native\\/.*)$/ }, (args) => {\n return {\n path: 'react-native-web-lite',\n external: true,\n }\n })\n },\n },\n alias({\n 'react-native-svg': require.resolve('@tamagui/react-native-svg'),\n 'react-native-safe-area-context': require.resolve('@tamagui/fake-react-native'),\n 'react-native-gesture-handler': require.resolve('@tamagui/proxy-worm'),\n 'react-native-reanimated': require.resolve('@tamagui/proxy-worm'),\n ...aliases,\n }),\n ],\n })\n}\n\n// loads in-process using esbuild-register\nexport function loadTamaguiSync(props: Props): TamaguiProjectInfo {\n const key = JSON.stringify(props)\n if (cache[key]) {\n return cache[key]\n }\n\n const { unregister } = require('esbuild-register/dist/node').register({\n target: 'es2019',\n format: 'cjs',\n })\n\n try {\n registerRequire()\n\n // lets shim require and avoid importing react-native + react-native-web\n // we just need to read the config around them\n process.env.IS_STATIC = 'is_static'\n // @ts-ignore\n if (typeof globalThis['__DEV__'] === 'undefined') {\n // @ts-ignore\n globalThis['__DEV__'] = process.env.NODE_ENV === 'development'\n }\n\n try {\n // import config\n let tamaguiConfig: TamaguiInternalConfig | null = null\n\n if (props.config) {\n const configPath = join(process.cwd(), props.config)\n const exp = require(configPath)\n tamaguiConfig = (exp['default'] || exp) as TamaguiInternalConfig\n if (!tamaguiConfig || !tamaguiConfig.parsed) {\n const confPath = require.resolve(configPath)\n throw new Error(`Can't find valid config in ${confPath}`)\n }\n }\n\n const components = loadComponents(props.components)\n\n // undo shims\n process.env.IS_STATIC = undefined\n\n // set up core-node\n if (tamaguiConfig) {\n createTamagui(tamaguiConfig)\n }\n\n cache[key] = {\n components,\n tamaguiConfig,\n nameToPaths: getNameToPaths(),\n }\n } catch (err) {\n if (err instanceof Error) {\n console.warn(\n `Error loading tamagui.config.ts (set DEBUG=tamagui to see full stack), running tamagui without custom config`\n )\n console.log(`\\n\\n ${err.message}\\n\\n`)\n if (SHOULD_DEBUG) {\n console.log(err.stack)\n }\n } else {\n console.error(`Error loading tamagui.config.ts`, err)\n }\n return {\n components: {},\n tamaguiConfig: getDefaultTamaguiConfig(),\n nameToPaths: {},\n }\n }\n\n return cache[key]\n } catch (err) {\n console.log('Error loading Tamagui', err)\n throw err\n } finally {\n unregister()\n unregisterRequire()\n }\n}\n\nfunction interopDefaultExport(mod: any) {\n return mod?.default ?? mod\n}\n\nconst cacheComponents = {}\n\nfunction loadComponents(componentsModules: string[]) {\n const key = componentsModules.join('')\n if (cacheComponents[key]) {\n return cacheComponents[key]\n }\n try {\n const requiredModules = componentsModules.map((name) => {\n return interopDefaultExport(require(name))\n })\n const res = gatherTamaguiComponentInfo(requiredModules)\n cacheComponents[key] = res\n return res\n } catch (err: any) {\n console.log(`Tamagui error bundling components`, err.message, err.stack)\n }\n}\n\nfunction gatherTamaguiComponentInfo(packages: any[]) {\n const components = {}\n for (const exported of packages) {\n try {\n for (const componentName in exported) {\n const found = getTamaguiComponent(componentName, exported[componentName])\n if (found) {\n // remove non-stringifyable\n const { Component, reactNativeWebComponent, ...sc } = found.staticConfig\n Object.assign(components, { [componentName]: { staticConfig: sc } })\n }\n }\n } catch (err) {\n console.error(`Tamagui failed getting components`)\n if (err instanceof Error) {\n console.error(err.message, err.stack)\n } else {\n console.error(err)\n }\n }\n }\n return components\n}\n\nfunction getTamaguiComponent(\n name: string,\n Component: any\n): undefined | { staticConfig: StaticConfig } {\n if (name[0].toUpperCase() !== name[0]) {\n return\n }\n const staticConfig = Component?.staticConfig as StaticConfig | undefined\n if (staticConfig) {\n return Component\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,20 +0,0 @@
1
- const prefix = " ";
2
- const logLines = (str, singleLine = false) => {
3
- if (singleLine) {
4
- return prefix + str.split(" ").join(`
5
- ${prefix}`);
6
- }
7
- let lines = [""];
8
- const items = str.split(" ");
9
- for (const item of items) {
10
- if (item.length + lines[lines.length - 1].length > 85) {
11
- lines.push("");
12
- }
13
- lines[lines.length - 1] += item + " ";
14
- }
15
- return lines.map((line, i) => prefix + (i == 0 ? "" : " ") + line.trim()).join("\n");
16
- };
17
- export {
18
- logLines
19
- };
20
- //# sourceMappingURL=logLines.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/logLines.ts"],
4
- "sourcesContent": ["const prefix = ' '\n\nexport const logLines = (str: string, singleLine = false) => {\n if (singleLine) {\n return prefix + str.split(' ').join(`\\n${prefix}`)\n }\n let lines: string[] = ['']\n const items = str.split(' ')\n for (const item of items) {\n if (item.length + lines[lines.length - 1].length > 85) {\n lines.push('')\n }\n lines[lines.length - 1] += item + ' '\n }\n return lines.map((line, i) => prefix + (i == 0 ? '' : ' ') + line.trim()).join('\\n')\n}\n"],
5
- "mappings": "AAAA,MAAM,SAAS;AAER,MAAM,WAAW,CAAC,KAAa,aAAa,UAAU;AAC3D,MAAI,YAAY;AACd,WAAO,SAAS,IAAI,MAAM,GAAG,EAAE,KAAK;AAAA,EAAK,QAAQ;AAAA,EACnD;AACA,MAAI,QAAkB,CAAC,EAAE;AACzB,QAAM,QAAQ,IAAI,MAAM,GAAG;AAC3B,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,SAAS,MAAM,MAAM,SAAS,GAAG,SAAS,IAAI;AACrD,YAAM,KAAK,EAAE;AAAA,IACf;AACA,UAAM,MAAM,SAAS,MAAM,OAAO;AAAA,EACpC;AACA,SAAO,MAAM,IAAI,CAAC,MAAM,MAAM,SAAU,MAAK,IAAI,KAAK,OAAO,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI;AACrF;",
6
- "names": []
7
- }
@@ -1,49 +0,0 @@
1
- import generate from "@babel/generator";
2
- import * as t from "@babel/types";
3
- import invariant from "invariant";
4
- function normalizeTernaries(ternaries) {
5
- invariant(Array.isArray(ternaries), "extractStaticTernaries expects param 1 to be an array of ternaries");
6
- if (ternaries.length === 0) {
7
- return [];
8
- }
9
- const ternariesByKey = {};
10
- for (let idx = -1, len = ternaries.length; ++idx < len; ) {
11
- const { test, consequent, alternate, remove, ...rest } = ternaries[idx];
12
- let ternaryTest = test;
13
- if (t.isExpressionStatement(test)) {
14
- ternaryTest = test.expression;
15
- }
16
- let shouldSwap = false;
17
- if (t.isUnaryExpression(test) && test.operator === "!") {
18
- ternaryTest = test.argument;
19
- shouldSwap = true;
20
- } else if (t.isBinaryExpression(test)) {
21
- if (test.operator === "!==" || test.operator === "!=") {
22
- ternaryTest = t.binaryExpression(test.operator, test.left, test.right);
23
- shouldSwap = true;
24
- }
25
- }
26
- const key = generate(ternaryTest).code;
27
- if (!ternariesByKey[key]) {
28
- ternariesByKey[key] = {
29
- ...rest,
30
- alternate: {},
31
- consequent: {},
32
- test: ternaryTest,
33
- remove
34
- };
35
- }
36
- const altStyle = (shouldSwap ? consequent : alternate) ?? {};
37
- const consStyle = (shouldSwap ? alternate : consequent) ?? {};
38
- Object.assign(ternariesByKey[key].alternate, altStyle);
39
- Object.assign(ternariesByKey[key].consequent, consStyle);
40
- }
41
- const ternaryExpression = Object.keys(ternariesByKey).map((key) => {
42
- return ternariesByKey[key];
43
- });
44
- return ternaryExpression;
45
- }
46
- export {
47
- normalizeTernaries
48
- };
49
- //# sourceMappingURL=normalizeTernaries.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/normalizeTernaries.ts"],
4
- "sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\nimport invariant from 'invariant'\n\nimport { Ternary } from '../types'\n\nexport function normalizeTernaries(ternaries: Ternary[]) {\n invariant(\n Array.isArray(ternaries),\n 'extractStaticTernaries expects param 1 to be an array of ternaries'\n )\n\n if (ternaries.length === 0) {\n return []\n }\n\n const ternariesByKey: { [key: string]: Ternary } = {}\n\n for (let idx = -1, len = ternaries.length; ++idx < len; ) {\n const { test, consequent, alternate, remove, ...rest } = ternaries[idx]\n\n let ternaryTest = test\n\n // strip parens\n if (t.isExpressionStatement(test)) {\n ternaryTest = (test as any).expression\n }\n\n // convert `!thing` to `thing` with swapped consequent and alternate\n let shouldSwap = false\n if (t.isUnaryExpression(test) && test.operator === '!') {\n ternaryTest = test.argument\n shouldSwap = true\n } else if (t.isBinaryExpression(test)) {\n if (test.operator === '!==' || test.operator === '!=') {\n ternaryTest = t.binaryExpression(test.operator, test.left, test.right)\n shouldSwap = true\n }\n }\n\n const key = generate(ternaryTest).code\n\n if (!ternariesByKey[key]) {\n ternariesByKey[key] = {\n ...rest,\n alternate: {},\n consequent: {},\n test: ternaryTest,\n remove,\n }\n }\n const altStyle = (shouldSwap ? consequent : alternate) ?? {}\n const consStyle = (shouldSwap ? alternate : consequent) ?? {}\n Object.assign(ternariesByKey[key].alternate!, altStyle)\n Object.assign(ternariesByKey[key].consequent!, consStyle)\n }\n\n const ternaryExpression = Object.keys(ternariesByKey).map((key) => {\n return ternariesByKey[key]\n })\n\n return ternaryExpression\n}\n"],
5
- "mappings": "AAAA;AACA;AACA;AAIO,4BAA4B,WAAsB;AACvD,YACE,MAAM,QAAQ,SAAS,GACvB,oEACF;AAEA,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,iBAA6C,CAAC;AAEpD,WAAS,MAAM,IAAI,MAAM,UAAU,QAAQ,EAAE,MAAM,OAAO;AACxD,UAAM,EAAE,MAAM,YAAY,WAAW,WAAW,SAAS,UAAU;AAEnE,QAAI,cAAc;AAGlB,QAAI,EAAE,sBAAsB,IAAI,GAAG;AACjC,oBAAe,KAAa;AAAA,IAC9B;AAGA,QAAI,aAAa;AACjB,QAAI,EAAE,kBAAkB,IAAI,KAAK,KAAK,aAAa,KAAK;AACtD,oBAAc,KAAK;AACnB,mBAAa;AAAA,IACf,WAAW,EAAE,mBAAmB,IAAI,GAAG;AACrC,UAAI,KAAK,aAAa,SAAS,KAAK,aAAa,MAAM;AACrD,sBAAc,EAAE,iBAAiB,KAAK,UAAU,KAAK,MAAM,KAAK,KAAK;AACrE,qBAAa;AAAA,MACf;AAAA,IACF;AAEA,UAAM,MAAM,SAAS,WAAW,EAAE;AAElC,QAAI,CAAC,eAAe,MAAM;AACxB,qBAAe,OAAO;AAAA,QACpB,GAAG;AAAA,QACH,WAAW,CAAC;AAAA,QACZ,YAAY,CAAC;AAAA,QACb,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF;AACA,UAAM,WAAY,cAAa,aAAa,cAAc,CAAC;AAC3D,UAAM,YAAa,cAAa,YAAY,eAAe,CAAC;AAC5D,WAAO,OAAO,eAAe,KAAK,WAAY,QAAQ;AACtD,WAAO,OAAO,eAAe,KAAK,YAAa,SAAS;AAAA,EAC1D;AAEA,QAAM,oBAAoB,OAAO,KAAK,cAAc,EAAE,IAAI,CAAC,QAAQ;AACjE,WAAO,eAAe;AAAA,EACxB,CAAC;AAED,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,75 +0,0 @@
1
- import * as t from "@babel/types";
2
- const hooks = {
3
- useMedia: true,
4
- useTheme: true
5
- };
6
- function removeUnusedHooks(compFn, shouldPrintDebug) {
7
- compFn.scope.crawl();
8
- let bodyStatements = compFn?.get("body");
9
- if (!bodyStatements) {
10
- console.log("no body statemnts?", compFn);
11
- return;
12
- }
13
- if (!Array.isArray(bodyStatements)) {
14
- if (bodyStatements.isFunctionExpression()) {
15
- bodyStatements = bodyStatements.scope.path.get("body");
16
- } else {
17
- bodyStatements = bodyStatements.get("body");
18
- }
19
- }
20
- if (!bodyStatements || !Array.isArray(bodyStatements)) {
21
- return;
22
- }
23
- const statements = bodyStatements;
24
- for (const statement of statements) {
25
- if (!statement.isVariableDeclaration()) {
26
- continue;
27
- }
28
- const declarations = statement.get("declarations");
29
- if (!Array.isArray(declarations)) {
30
- continue;
31
- }
32
- const isBindingReferenced = (name) => {
33
- return !!statement.scope.getBinding(name)?.referenced;
34
- };
35
- for (const declarator of declarations) {
36
- const id = declarator.get("id");
37
- const init = declarator.node.init;
38
- if (Array.isArray(id) || Array.isArray(init)) {
39
- continue;
40
- }
41
- const shouldRemove = (() => {
42
- const isHook = t.isCallExpression(init) && t.isIdentifier(init.callee) && hooks[init.callee.name];
43
- if (!isHook) {
44
- return false;
45
- }
46
- if (t.isIdentifier(id.node)) {
47
- const name = id.node.name;
48
- return !isBindingReferenced(name);
49
- } else if (t.isObjectPattern(id.node)) {
50
- const propPaths = id.get("properties");
51
- return propPaths.every((prop) => {
52
- if (!prop.isObjectProperty())
53
- return false;
54
- const value = prop.get("value");
55
- if (Array.isArray(value) || !value.isIdentifier())
56
- return false;
57
- const name = value.node.name;
58
- return !isBindingReferenced(name);
59
- });
60
- }
61
- return false;
62
- })();
63
- if (shouldRemove) {
64
- declarator.remove();
65
- if (shouldPrintDebug) {
66
- console.log(` [\u{1FA9D}] removed ${id.node["name"] ?? ""}`);
67
- }
68
- }
69
- }
70
- }
71
- }
72
- export {
73
- removeUnusedHooks
74
- };
75
- //# sourceMappingURL=removeUnusedHooks.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/removeUnusedHooks.ts"],
4
- "sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\n\nconst hooks = {\n useMedia: true,\n useTheme: true,\n}\n\nexport function removeUnusedHooks(compFn: NodePath<any>, shouldPrintDebug: boolean | 'verbose') {\n compFn.scope.crawl()\n // check the top level statements\n let bodyStatements = compFn?.get('body')\n if (!bodyStatements) {\n console.log('no body statemnts?', compFn)\n return\n }\n if (!Array.isArray(bodyStatements)) {\n if (bodyStatements.isFunctionExpression()) {\n bodyStatements = bodyStatements.scope.path.get('body')\n } else {\n bodyStatements = bodyStatements.get('body')\n }\n }\n if (!bodyStatements || !Array.isArray(bodyStatements)) {\n return\n }\n const statements = bodyStatements as NodePath<any>[]\n for (const statement of statements) {\n if (!statement.isVariableDeclaration()) {\n continue\n }\n const declarations = statement.get('declarations')\n if (!Array.isArray(declarations)) {\n continue\n }\n const isBindingReferenced = (name: string) => {\n return !!statement.scope.getBinding(name)?.referenced\n }\n for (const declarator of declarations) {\n const id = declarator.get('id')\n const init = declarator.node.init\n if (Array.isArray(id) || Array.isArray(init)) {\n continue\n }\n const shouldRemove = (() => {\n const isHook =\n t.isCallExpression(init) && t.isIdentifier(init.callee) && hooks[init.callee.name]\n if (!isHook) {\n return false\n }\n if (t.isIdentifier(id.node)) {\n // remove \"const media = useMedia()\"\n const name = id.node.name\n return !isBindingReferenced(name)\n } else if (t.isObjectPattern(id.node)) {\n // remove \"const { sm } = useMedia()\"\n const propPaths = id.get('properties') as NodePath<any>[]\n return propPaths.every((prop) => {\n if (!prop.isObjectProperty()) return false\n const value = prop.get('value')\n if (Array.isArray(value) || !value.isIdentifier()) return false\n const name = value.node.name\n return !isBindingReferenced(name)\n })\n }\n return false\n })()\n if (shouldRemove) {\n declarator.remove()\n if (shouldPrintDebug) {\n console.log(` [\uD83E\uDE9D] removed ${id.node['name'] ?? ''}`)\n }\n }\n }\n }\n}\n"],
5
- "mappings": "AACA;AAEA,MAAM,QAAQ;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AACZ;AAEO,2BAA2B,QAAuB,kBAAuC;AAC9F,SAAO,MAAM,MAAM;AAEnB,MAAI,iBAAiB,QAAQ,IAAI,MAAM;AACvC,MAAI,CAAC,gBAAgB;AACnB,YAAQ,IAAI,sBAAsB,MAAM;AACxC;AAAA,EACF;AACA,MAAI,CAAC,MAAM,QAAQ,cAAc,GAAG;AAClC,QAAI,eAAe,qBAAqB,GAAG;AACzC,uBAAiB,eAAe,MAAM,KAAK,IAAI,MAAM;AAAA,IACvD,OAAO;AACL,uBAAiB,eAAe,IAAI,MAAM;AAAA,IAC5C;AAAA,EACF;AACA,MAAI,CAAC,kBAAkB,CAAC,MAAM,QAAQ,cAAc,GAAG;AACrD;AAAA,EACF;AACA,QAAM,aAAa;AACnB,aAAW,aAAa,YAAY;AAClC,QAAI,CAAC,UAAU,sBAAsB,GAAG;AACtC;AAAA,IACF;AACA,UAAM,eAAe,UAAU,IAAI,cAAc;AACjD,QAAI,CAAC,MAAM,QAAQ,YAAY,GAAG;AAChC;AAAA,IACF;AACA,UAAM,sBAAsB,CAAC,SAAiB;AAC5C,aAAO,CAAC,CAAC,UAAU,MAAM,WAAW,IAAI,GAAG;AAAA,IAC7C;AACA,eAAW,cAAc,cAAc;AACrC,YAAM,KAAK,WAAW,IAAI,IAAI;AAC9B,YAAM,OAAO,WAAW,KAAK;AAC7B,UAAI,MAAM,QAAQ,EAAE,KAAK,MAAM,QAAQ,IAAI,GAAG;AAC5C;AAAA,MACF;AACA,YAAM,eAAgB,OAAM;AAC1B,cAAM,SACJ,EAAE,iBAAiB,IAAI,KAAK,EAAE,aAAa,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO;AAC/E,YAAI,CAAC,QAAQ;AACX,iBAAO;AAAA,QACT;AACA,YAAI,EAAE,aAAa,GAAG,IAAI,GAAG;AAE3B,gBAAM,OAAO,GAAG,KAAK;AACrB,iBAAO,CAAC,oBAAoB,IAAI;AAAA,QAClC,WAAW,EAAE,gBAAgB,GAAG,IAAI,GAAG;AAErC,gBAAM,YAAY,GAAG,IAAI,YAAY;AACrC,iBAAO,UAAU,MAAM,CAAC,SAAS;AAC/B,gBAAI,CAAC,KAAK,iBAAiB;AAAG,qBAAO;AACrC,kBAAM,QAAQ,KAAK,IAAI,OAAO;AAC9B,gBAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,aAAa;AAAG,qBAAO;AAC1D,kBAAM,OAAO,MAAM,KAAK;AACxB,mBAAO,CAAC,oBAAoB,IAAI;AAAA,UAClC,CAAC;AAAA,QACH;AACA,eAAO;AAAA,MACT,GAAG;AACH,UAAI,cAAc;AAChB,mBAAW,OAAO;AAClB,YAAI,kBAAkB;AACpB,kBAAQ,IAAI,yBAAkB,GAAG,KAAK,WAAW,IAAI;AAAA,QACvD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,29 +0,0 @@
1
- const timer = () => {
2
- const start = Date.now();
3
- let last = start;
4
- return {
5
- mark: (name, print = false) => {
6
- if (print) {
7
- const took = Date.now() - last;
8
- last = Date.now();
9
- console.log(`Time ${name}: ${took}ms`);
10
- if (took > 10) {
11
- console.log(" long timer");
12
- }
13
- }
14
- },
15
- done: (print = false) => {
16
- if (print) {
17
- const total = Date.now() - start;
18
- console.log(`Total time: ${total}ms`);
19
- if (total > 50) {
20
- console.log(" long timer");
21
- }
22
- }
23
- }
24
- };
25
- };
26
- export {
27
- timer
28
- };
29
- //# sourceMappingURL=timer.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/timer.ts"],
4
- "sourcesContent": ["export const timer = () => {\n const start = Date.now()\n let last = start\n return {\n mark: (name: string, print = false) => {\n if (print) {\n const took = Date.now() - last\n last = Date.now()\n // eslint-disable-next-line no-console\n console.log(`Time ${name}: ${took}ms`)\n if (took > 10) {\n // eslint-disable-next-line no-console\n console.log(' long timer')\n }\n }\n },\n done: (print = false) => {\n if (print) {\n const total = Date.now() - start\n // eslint-disable-next-line no-console\n console.log(`Total time: ${total}ms`)\n if (total > 50) {\n // eslint-disable-next-line no-console\n console.log(' long timer')\n }\n }\n },\n }\n}\n"],
5
- "mappings": "AAAO,MAAM,QAAQ,MAAM;AACzB,QAAM,QAAQ,KAAK,IAAI;AACvB,MAAI,OAAO;AACX,SAAO;AAAA,IACL,MAAM,CAAC,MAAc,QAAQ,UAAU;AACrC,UAAI,OAAO;AACT,cAAM,OAAO,KAAK,IAAI,IAAI;AAC1B,eAAO,KAAK,IAAI;AAEhB,gBAAQ,IAAI,QAAQ,SAAS,QAAQ;AACrC,YAAI,OAAO,IAAI;AAEb,kBAAQ,IAAI,cAAc;AAAA,QAC5B;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM,CAAC,QAAQ,UAAU;AACvB,UAAI,OAAO;AACT,cAAM,QAAQ,KAAK,IAAI,IAAI;AAE3B,gBAAQ,IAAI,eAAe,SAAS;AACpC,YAAI,QAAQ,IAAI;AAEd,kBAAQ,IAAI,cAAc;AAAA,QAC5B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,102 +0,0 @@
1
- const validHTMLAttributes = {
2
- autocomplete: true,
3
- border: true,
4
- contenteditable: true,
5
- crossorigin: true,
6
- dir: true,
7
- draggable: true,
8
- enctype: true,
9
- formenctype: true,
10
- formmethod: true,
11
- formtarget: true,
12
- inputmode: true,
13
- kind: true,
14
- link: true,
15
- method: true,
16
- preload: true,
17
- referrerpolicy: true,
18
- rel: true,
19
- rev: true,
20
- role: true,
21
- sandbox: true,
22
- shape: true,
23
- spellcheck: true,
24
- target: true,
25
- translate: true,
26
- type: true,
27
- wrap: true,
28
- "aria-autocomplete": true,
29
- "aria-busy": true,
30
- "aria-checked": true,
31
- "aria-current": true,
32
- "aria-disabled": true,
33
- "aria-expanded": true,
34
- "aria-haspopup": true,
35
- "aria-hidden": true,
36
- "aria-invalid": true,
37
- "aria-polite": true,
38
- "aria-modal": true,
39
- "aria-multiline": true,
40
- "aria-multiselectable": true,
41
- "aria-orientation": true,
42
- "aria-pressed": true,
43
- "aria-readonly": true,
44
- "aria-relevant": true,
45
- "aria-required": true,
46
- "aria-selected": true,
47
- "aria-sort": true
48
- };
49
- const validAccessibilityAttributes = {
50
- accessibilityRole: true,
51
- accessibilityActiveDescendant: true,
52
- accessibilityAtomic: true,
53
- accessibilityAutoComplete: true,
54
- accessibilityBusy: true,
55
- accessibilityChecked: true,
56
- accessibilityColumnCount: true,
57
- accessibilityColumnIndex: true,
58
- accessibilityColumnSpan: true,
59
- accessibilityControls: true,
60
- accessibilityCurrent: true,
61
- accessibilityDescribedBy: true,
62
- accessibilityDetails: true,
63
- disabled: true,
64
- accessibilityErrorMessage: true,
65
- accessibilityExpanded: true,
66
- accessibilityFlowTo: true,
67
- accessibilityHasPopup: true,
68
- accessibilityHidden: true,
69
- accessibilityInvalid: true,
70
- accessibilityKeyShortcuts: true,
71
- accessibilityLabel: true,
72
- accessibilityLabelledBy: true,
73
- accessibilityLevel: true,
74
- accessibilityLiveRegion: true,
75
- accessibilityModal: true,
76
- accessibilityMultiline: true,
77
- accessibilityMultiSelectable: true,
78
- accessibilityOrientation: true,
79
- accessibilityOwns: true,
80
- accessibilityPlaceholder: true,
81
- accessibilityPosInSet: true,
82
- accessibilityPressed: true,
83
- accessibilityReadOnly: true,
84
- accessibilityRequired: true,
85
- accessibilityRoleDescription: true,
86
- accessibilityRowCount: true,
87
- accessibilityRowIndex: true,
88
- accessibilityRowSpan: true,
89
- accessibilitySelected: true,
90
- accessibilitySetSize: true,
91
- accessibilitySort: true,
92
- accessibilityValueMax: true,
93
- accessibilityValueMin: true,
94
- accessibilityValueNow: true,
95
- accessibilityValueText: true,
96
- nativeID: true
97
- };
98
- export {
99
- validAccessibilityAttributes,
100
- validHTMLAttributes
101
- };
102
- //# sourceMappingURL=validHTMLAttributes.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extractor/validHTMLAttributes.ts"],
4
- "sourcesContent": ["export const validHTMLAttributes = {\n autocomplete: true,\n border: true,\n contenteditable: true,\n crossorigin: true,\n dir: true,\n draggable: true,\n enctype: true,\n formenctype: true,\n formmethod: true,\n formtarget: true,\n inputmode: true,\n kind: true,\n link: true,\n method: true,\n preload: true,\n referrerpolicy: true,\n rel: true,\n rev: true,\n role: true,\n sandbox: true,\n shape: true,\n spellcheck: true,\n target: true,\n translate: true,\n type: true,\n wrap: true,\n 'aria-autocomplete': true,\n 'aria-busy': true,\n 'aria-checked': true,\n 'aria-current': true,\n 'aria-disabled': true,\n 'aria-expanded': true,\n 'aria-haspopup': true,\n 'aria-hidden': true,\n 'aria-invalid': true,\n 'aria-polite': true,\n 'aria-modal': true,\n 'aria-multiline': true,\n 'aria-multiselectable': true,\n 'aria-orientation': true,\n 'aria-pressed': true,\n 'aria-readonly': true,\n 'aria-relevant': true,\n 'aria-required': true,\n 'aria-selected': true,\n 'aria-sort': true,\n}\n\n// for moving off react-native-web eventually (unused atm)\nexport const validAccessibilityAttributes = {\n accessibilityRole: true,\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n disabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true,\n nativeID: true,\n}\n"],
5
- "mappings": "AAAO,MAAM,sBAAsB;AAAA,EACjC,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,KAAK;AAAA,EACL,WAAW;AAAA,EACX,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,aAAa;AACf;AAGO,MAAM,+BAA+B;AAAA,EAC1C,mBAAmB;AAAA,EACnB,+BAA+B;AAAA,EAC/B,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,yBAAyB;AAAA,EACzB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,UAAU;AAAA,EACV,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EACxB,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,8BAA8B;AAAA,EAC9B,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,wBAAwB;AAAA,EACxB,UAAU;AACZ;",
6
- "names": []
7
- }