@tamagui/static 1.13.3 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/constants.js +1 -52
- package/dist/cjs/constants.js.map +2 -2
- package/dist/cjs/extractor/accessSafe.js +1 -52
- package/dist/cjs/extractor/accessSafe.js.map +2 -2
- package/dist/cjs/extractor/babelParse.js +1 -66
- package/dist/cjs/extractor/babelParse.js.map +2 -2
- package/dist/cjs/extractor/buildClassName.js +1 -99
- package/dist/cjs/extractor/buildClassName.js.map +2 -2
- package/dist/cjs/extractor/bundle.js +1 -126
- package/dist/cjs/extractor/bundle.js.map +2 -2
- package/dist/cjs/extractor/createEvaluator.js +1 -86
- package/dist/cjs/extractor/createEvaluator.js.map +2 -2
- package/dist/cjs/extractor/createExtractor.js +15 -1630
- package/dist/cjs/extractor/createExtractor.js.map +2 -2
- package/dist/cjs/extractor/ensureImportingConcat.js +1 -64
- package/dist/cjs/extractor/ensureImportingConcat.js.map +2 -2
- package/dist/cjs/extractor/evaluateAstNode.js +1 -130
- package/dist/cjs/extractor/evaluateAstNode.js.map +2 -2
- package/dist/cjs/extractor/extractHelpers.js +1 -207
- package/dist/cjs/extractor/extractHelpers.js.map +2 -2
- package/dist/cjs/extractor/extractMediaStyle.js +1 -193
- package/dist/cjs/extractor/extractMediaStyle.js.map +2 -2
- package/dist/cjs/extractor/extractToClassNames.js +13 -413
- package/dist/cjs/extractor/extractToClassNames.js.map +2 -2
- package/dist/cjs/extractor/findTopmostFunction.js +1 -43
- package/dist/cjs/extractor/findTopmostFunction.js.map +2 -2
- package/dist/cjs/extractor/generatedUid.js +1 -59
- package/dist/cjs/extractor/generatedUid.js.map +2 -2
- package/dist/cjs/extractor/getPrefixLogs.js +1 -31
- package/dist/cjs/extractor/getPrefixLogs.js.map +2 -2
- package/dist/cjs/extractor/getPropValueFromAttributes.js +1 -89
- package/dist/cjs/extractor/getPropValueFromAttributes.js.map +2 -2
- package/dist/cjs/extractor/getSourceModule.js +1 -103
- package/dist/cjs/extractor/getSourceModule.js.map +2 -2
- package/dist/cjs/extractor/getStaticBindingsForScope.js +1 -225
- package/dist/cjs/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/cjs/extractor/hoistClassNames.js +1 -74
- package/dist/cjs/extractor/hoistClassNames.js.map +2 -2
- package/dist/cjs/extractor/literalToAst.js +1 -115
- package/dist/cjs/extractor/literalToAst.js.map +2 -2
- package/dist/cjs/extractor/loadFile.js +2 -20
- package/dist/cjs/extractor/loadFile.js.map +2 -2
- package/dist/cjs/extractor/loadTamagui.js +15 -432
- package/dist/cjs/extractor/loadTamagui.js.map +2 -2
- package/dist/cjs/extractor/logLines.js +3 -43
- package/dist/cjs/extractor/logLines.js.map +2 -2
- package/dist/cjs/extractor/normalizeTernaries.js +1 -85
- package/dist/cjs/extractor/normalizeTernaries.js.map +2 -2
- package/dist/cjs/extractor/removeUnusedHooks.js +1 -109
- package/dist/cjs/extractor/removeUnusedHooks.js.map +2 -2
- package/dist/cjs/extractor/timer.js +1 -52
- package/dist/cjs/extractor/timer.js.map +2 -2
- package/dist/cjs/extractor/validHTMLAttributes.js +1 -126
- package/dist/cjs/extractor/validHTMLAttributes.js.map +2 -2
- package/dist/cjs/getPragmaOptions.js +2 -67
- package/dist/cjs/getPragmaOptions.js.map +2 -2
- package/dist/cjs/helpers/memoize.js +1 -45
- package/dist/cjs/helpers/memoize.js.map +2 -2
- package/dist/cjs/index.js +1 -42
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/require.js +5 -81
- package/dist/cjs/require.js.map +2 -2
- package/dist/cjs/types.js +1 -16
- package/dist/cjs/types.js.map +2 -2
- package/dist/cjs/webpackPlugin.js +1 -34
- package/dist/cjs/webpackPlugin.js.map +2 -2
- package/dist/esm/constants.js +1 -14
- package/dist/esm/constants.js.map +2 -2
- package/dist/esm/constants.mjs +1 -14
- package/dist/esm/constants.mjs.map +2 -2
- package/dist/esm/extractor/accessSafe.js +1 -18
- package/dist/esm/extractor/accessSafe.js.map +2 -2
- package/dist/esm/extractor/accessSafe.mjs +1 -18
- package/dist/esm/extractor/accessSafe.mjs.map +2 -2
- package/dist/esm/extractor/babelParse.js +1 -31
- package/dist/esm/extractor/babelParse.js.map +2 -2
- package/dist/esm/extractor/babelParse.mjs +1 -31
- package/dist/esm/extractor/babelParse.mjs.map +2 -2
- package/dist/esm/extractor/buildClassName.js +1 -64
- package/dist/esm/extractor/buildClassName.js.map +2 -2
- package/dist/esm/extractor/buildClassName.mjs +1 -64
- package/dist/esm/extractor/buildClassName.mjs.map +2 -2
- package/dist/esm/extractor/bundle.js +1 -91
- package/dist/esm/extractor/bundle.js.map +2 -2
- package/dist/esm/extractor/bundle.mjs +1 -91
- package/dist/esm/extractor/bundle.mjs.map +2 -2
- package/dist/esm/extractor/createEvaluator.js +1 -51
- package/dist/esm/extractor/createEvaluator.js.map +2 -2
- package/dist/esm/extractor/createEvaluator.mjs +1 -51
- package/dist/esm/extractor/createEvaluator.mjs.map +2 -2
- package/dist/esm/extractor/createExtractor.js +15 -1613
- package/dist/esm/extractor/createExtractor.js.map +2 -2
- package/dist/esm/extractor/createExtractor.mjs +15 -1613
- package/dist/esm/extractor/createExtractor.mjs.map +2 -2
- package/dist/esm/extractor/ensureImportingConcat.js +1 -30
- package/dist/esm/extractor/ensureImportingConcat.js.map +2 -2
- package/dist/esm/extractor/ensureImportingConcat.mjs +1 -30
- package/dist/esm/extractor/ensureImportingConcat.mjs.map +2 -2
- package/dist/esm/extractor/evaluateAstNode.js +1 -96
- package/dist/esm/extractor/evaluateAstNode.js.map +2 -2
- package/dist/esm/extractor/evaluateAstNode.mjs +1 -96
- package/dist/esm/extractor/evaluateAstNode.mjs.map +2 -2
- package/dist/esm/extractor/extractHelpers.js +1 -161
- package/dist/esm/extractor/extractHelpers.js.map +2 -2
- package/dist/esm/extractor/extractHelpers.mjs +1 -161
- package/dist/esm/extractor/extractHelpers.mjs.map +2 -2
- package/dist/esm/extractor/extractMediaStyle.js +1 -158
- package/dist/esm/extractor/extractMediaStyle.js.map +2 -2
- package/dist/esm/extractor/extractMediaStyle.mjs +1 -158
- package/dist/esm/extractor/extractMediaStyle.mjs.map +2 -2
- package/dist/esm/extractor/extractToClassNames.js +13 -379
- package/dist/esm/extractor/extractToClassNames.js.map +2 -2
- package/dist/esm/extractor/extractToClassNames.mjs +13 -379
- package/dist/esm/extractor/extractToClassNames.mjs.map +2 -2
- package/dist/esm/extractor/findTopmostFunction.js +1 -19
- package/dist/esm/extractor/findTopmostFunction.js.map +2 -2
- package/dist/esm/extractor/findTopmostFunction.mjs +1 -19
- package/dist/esm/extractor/findTopmostFunction.mjs.map +2 -2
- package/dist/esm/extractor/generatedUid.js +1 -25
- package/dist/esm/extractor/generatedUid.js.map +2 -2
- package/dist/esm/extractor/generatedUid.mjs +1 -25
- package/dist/esm/extractor/generatedUid.mjs.map +2 -2
- package/dist/esm/extractor/getPrefixLogs.js +1 -7
- package/dist/esm/extractor/getPrefixLogs.js.map +2 -2
- package/dist/esm/extractor/getPrefixLogs.mjs +1 -7
- package/dist/esm/extractor/getPrefixLogs.mjs.map +2 -2
- package/dist/esm/extractor/getPropValueFromAttributes.js +1 -55
- package/dist/esm/extractor/getPropValueFromAttributes.js.map +2 -2
- package/dist/esm/extractor/getPropValueFromAttributes.mjs +1 -55
- package/dist/esm/extractor/getPropValueFromAttributes.mjs.map +2 -2
- package/dist/esm/extractor/getSourceModule.js +1 -69
- package/dist/esm/extractor/getSourceModule.js.map +2 -2
- package/dist/esm/extractor/getSourceModule.mjs +1 -69
- package/dist/esm/extractor/getSourceModule.mjs.map +2 -2
- package/dist/esm/extractor/getStaticBindingsForScope.js +1 -190
- package/dist/esm/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/esm/extractor/getStaticBindingsForScope.mjs +1 -190
- package/dist/esm/extractor/getStaticBindingsForScope.mjs.map +2 -2
- package/dist/esm/extractor/hoistClassNames.js +1 -40
- package/dist/esm/extractor/hoistClassNames.js.map +2 -2
- package/dist/esm/extractor/hoistClassNames.mjs +1 -40
- package/dist/esm/extractor/hoistClassNames.mjs.map +2 -2
- package/dist/esm/extractor/literalToAst.js +1 -80
- package/dist/esm/extractor/literalToAst.js.map +2 -2
- package/dist/esm/extractor/literalToAst.mjs +1 -80
- package/dist/esm/extractor/literalToAst.mjs.map +2 -2
- package/dist/esm/extractor/loadFile.js +2 -19
- package/dist/esm/extractor/loadFile.js.map +2 -2
- package/dist/esm/extractor/loadFile.mjs +2 -19
- package/dist/esm/extractor/loadFile.mjs.map +2 -2
- package/dist/esm/extractor/loadTamagui.js +15 -396
- package/dist/esm/extractor/loadTamagui.js.map +2 -2
- package/dist/esm/extractor/loadTamagui.mjs +15 -396
- package/dist/esm/extractor/loadTamagui.mjs.map +2 -2
- package/dist/esm/extractor/logLines.js +3 -19
- package/dist/esm/extractor/logLines.js.map +2 -2
- package/dist/esm/extractor/logLines.mjs +3 -19
- package/dist/esm/extractor/logLines.mjs.map +2 -2
- package/dist/esm/extractor/normalizeTernaries.js +1 -51
- package/dist/esm/extractor/normalizeTernaries.js.map +2 -2
- package/dist/esm/extractor/normalizeTernaries.mjs +1 -51
- package/dist/esm/extractor/normalizeTernaries.mjs.map +2 -2
- package/dist/esm/extractor/removeUnusedHooks.js +1 -75
- package/dist/esm/extractor/removeUnusedHooks.js.map +2 -2
- package/dist/esm/extractor/removeUnusedHooks.mjs +1 -75
- package/dist/esm/extractor/removeUnusedHooks.mjs.map +2 -2
- package/dist/esm/extractor/timer.js +1 -28
- package/dist/esm/extractor/timer.js.map +2 -2
- package/dist/esm/extractor/timer.mjs +1 -28
- package/dist/esm/extractor/timer.mjs.map +2 -2
- package/dist/esm/extractor/validHTMLAttributes.js +1 -101
- package/dist/esm/extractor/validHTMLAttributes.js.map +2 -2
- package/dist/esm/extractor/validHTMLAttributes.mjs +1 -101
- package/dist/esm/extractor/validHTMLAttributes.mjs.map +2 -2
- package/dist/esm/getPragmaOptions.js +2 -43
- package/dist/esm/getPragmaOptions.js.map +2 -2
- package/dist/esm/getPragmaOptions.mjs +2 -43
- package/dist/esm/getPragmaOptions.mjs.map +2 -2
- package/dist/esm/helpers/memoize.js +1 -21
- package/dist/esm/helpers/memoize.js.map +2 -2
- package/dist/esm/helpers/memoize.mjs +1 -21
- package/dist/esm/helpers/memoize.mjs.map +2 -2
- package/dist/esm/index.js +1 -15
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/index.mjs +1 -15
- package/dist/esm/index.mjs.map +2 -2
- package/dist/esm/require.js +5 -55
- package/dist/esm/require.js.map +2 -2
- package/dist/esm/require.mjs +5 -55
- package/dist/esm/require.mjs.map +2 -2
- package/dist/esm/webpackPlugin.js +1 -10
- package/dist/esm/webpackPlugin.js.map +2 -2
- package/dist/esm/webpackPlugin.mjs +1 -10
- package/dist/esm/webpackPlugin.mjs.map +2 -2
- package/package.json +14 -14
|
@@ -1,52 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as t from "@babel/types";
|
|
3
|
-
import invariant from "invariant";
|
|
4
|
-
function normalizeTernaries(ternaries) {
|
|
5
|
-
invariant(
|
|
6
|
-
Array.isArray(ternaries),
|
|
7
|
-
"extractStaticTernaries expects param 1 to be an array of ternaries"
|
|
8
|
-
);
|
|
9
|
-
if (ternaries.length === 0) {
|
|
10
|
-
return [];
|
|
11
|
-
}
|
|
12
|
-
const ternariesByKey = {};
|
|
13
|
-
for (let idx = -1, len = ternaries.length; ++idx < len; ) {
|
|
14
|
-
const { test, consequent, alternate, remove, ...rest } = ternaries[idx];
|
|
15
|
-
let ternaryTest = test;
|
|
16
|
-
if (t.isExpressionStatement(test)) {
|
|
17
|
-
ternaryTest = test.expression;
|
|
18
|
-
}
|
|
19
|
-
let shouldSwap = false;
|
|
20
|
-
if (t.isUnaryExpression(test) && test.operator === "!") {
|
|
21
|
-
ternaryTest = test.argument;
|
|
22
|
-
shouldSwap = true;
|
|
23
|
-
} else if (t.isBinaryExpression(test)) {
|
|
24
|
-
if (test.operator === "!==" || test.operator === "!=") {
|
|
25
|
-
ternaryTest = t.binaryExpression(test.operator, test.left, test.right);
|
|
26
|
-
shouldSwap = true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
const key = generate(ternaryTest).code;
|
|
30
|
-
if (!ternariesByKey[key]) {
|
|
31
|
-
ternariesByKey[key] = {
|
|
32
|
-
...rest,
|
|
33
|
-
alternate: {},
|
|
34
|
-
consequent: {},
|
|
35
|
-
test: ternaryTest,
|
|
36
|
-
remove
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
const altStyle = (shouldSwap ? consequent : alternate) ?? {};
|
|
40
|
-
const consStyle = (shouldSwap ? alternate : consequent) ?? {};
|
|
41
|
-
Object.assign(ternariesByKey[key].alternate, altStyle);
|
|
42
|
-
Object.assign(ternariesByKey[key].consequent, consStyle);
|
|
43
|
-
}
|
|
44
|
-
const ternaryExpression = Object.keys(ternariesByKey).map((key) => {
|
|
45
|
-
return ternariesByKey[key];
|
|
46
|
-
});
|
|
47
|
-
return ternaryExpression;
|
|
48
|
-
}
|
|
49
|
-
export {
|
|
50
|
-
normalizeTernaries
|
|
51
|
-
};
|
|
1
|
+
import x from"@babel/generator";import*as i from"@babel/types";import g from"invariant";function d(n){if(g(Array.isArray(n),"extractStaticTernaries expects param 1 to be an array of ternaries"),n.length===0)return[];const r={};for(let a=-1,c=n.length;++a<c;){const{test:e,consequent:y,alternate:p,remove:l,...f}=n[a];let t=e;i.isExpressionStatement(e)&&(t=e.expression);let s=!1;i.isUnaryExpression(e)&&e.operator==="!"?(t=e.argument,s=!0):i.isBinaryExpression(e)&&(e.operator==="!=="||e.operator==="!=")&&(t=i.binaryExpression(e.operator,e.left,e.right),s=!0);const o=x(t).code;r[o]||(r[o]={...f,alternate:{},consequent:{},test:t,remove:l});const m=(s?y:p)??{},u=(s?p:y)??{};Object.assign(r[o].alternate,m),Object.assign(r[o].consequent,u)}return Object.keys(r).map(a=>r[a])}export{d as normalizeTernaries};
|
|
52
2
|
//# sourceMappingURL=normalizeTernaries.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/normalizeTernaries.ts"],
|
|
4
4
|
"sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\nimport invariant from 'invariant'\n\nimport { Ternary } from '../types.js'\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 // @ts-ignore\n const key = generate(ternaryTest as any).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,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAc,mBACrB,UAAYC,MAAO,eACnB,OAAOC,MAAe,YAIf,SAASC,EAAmBC,EAAsB,CAMvD,GALAF,EACE,MAAM,QAAQE,CAAS,EACvB,oEACF,EAEIA,EAAU,SAAW,EACvB,MAAO,CAAC,EAGV,MAAMC,EAA6C,CAAC,EAEpD,QAASC,EAAM,GAAIC,EAAMH,EAAU,OAAQ,EAAEE,EAAMC,GAAO,CACxD,KAAM,CAAE,KAAAC,EAAM,WAAAC,EAAY,UAAAC,EAAW,OAAAC,EAAQ,GAAGC,CAAK,EAAIR,EAAUE,CAAG,EAEtE,IAAIO,EAAcL,EAGdP,EAAE,sBAAsBO,CAAI,IAC9BK,EAAeL,EAAa,YAI9B,IAAIM,EAAa,GACbb,EAAE,kBAAkBO,CAAI,GAAKA,EAAK,WAAa,KACjDK,EAAcL,EAAK,SACnBM,EAAa,IACJb,EAAE,mBAAmBO,CAAI,IAC9BA,EAAK,WAAa,OAASA,EAAK,WAAa,QAC/CK,EAAcZ,EAAE,iBAAiBO,EAAK,SAAUA,EAAK,KAAMA,EAAK,KAAK,EACrEM,EAAa,IAKjB,MAAMC,EAAMf,EAASa,CAAkB,EAAE,KAEpCR,EAAeU,CAAG,IACrBV,EAAeU,CAAG,EAAI,CACpB,GAAGH,EACH,UAAW,CAAC,EACZ,WAAY,CAAC,EACb,KAAMC,EACN,OAAAF,CACF,GAEF,MAAMK,GAAYF,EAAaL,EAAaC,IAAc,CAAC,EACrDO,GAAaH,EAAaJ,EAAYD,IAAe,CAAC,EAC5D,OAAO,OAAOJ,EAAeU,CAAG,EAAE,UAAYC,CAAQ,EACtD,OAAO,OAAOX,EAAeU,CAAG,EAAE,WAAaE,CAAS,CAC1D,CAMA,OAJ0B,OAAO,KAAKZ,CAAc,EAAE,IAAKU,GAClDV,EAAeU,CAAG,CAC1B,CAGH",
|
|
6
|
+
"names": ["generate", "t", "invariant", "normalizeTernaries", "ternaries", "ternariesByKey", "idx", "len", "test", "consequent", "alternate", "remove", "rest", "ternaryTest", "shouldSwap", "key", "altStyle", "consStyle"]
|
|
7
7
|
}
|
|
@@ -1,52 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as t from "@babel/types";
|
|
3
|
-
import invariant from "invariant";
|
|
4
|
-
function normalizeTernaries(ternaries) {
|
|
5
|
-
invariant(
|
|
6
|
-
Array.isArray(ternaries),
|
|
7
|
-
"extractStaticTernaries expects param 1 to be an array of ternaries"
|
|
8
|
-
);
|
|
9
|
-
if (ternaries.length === 0) {
|
|
10
|
-
return [];
|
|
11
|
-
}
|
|
12
|
-
const ternariesByKey = {};
|
|
13
|
-
for (let idx = -1, len = ternaries.length; ++idx < len; ) {
|
|
14
|
-
const { test, consequent, alternate, remove, ...rest } = ternaries[idx];
|
|
15
|
-
let ternaryTest = test;
|
|
16
|
-
if (t.isExpressionStatement(test)) {
|
|
17
|
-
ternaryTest = test.expression;
|
|
18
|
-
}
|
|
19
|
-
let shouldSwap = false;
|
|
20
|
-
if (t.isUnaryExpression(test) && test.operator === "!") {
|
|
21
|
-
ternaryTest = test.argument;
|
|
22
|
-
shouldSwap = true;
|
|
23
|
-
} else if (t.isBinaryExpression(test)) {
|
|
24
|
-
if (test.operator === "!==" || test.operator === "!=") {
|
|
25
|
-
ternaryTest = t.binaryExpression(test.operator, test.left, test.right);
|
|
26
|
-
shouldSwap = true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
const key = generate(ternaryTest).code;
|
|
30
|
-
if (!ternariesByKey[key]) {
|
|
31
|
-
ternariesByKey[key] = {
|
|
32
|
-
...rest,
|
|
33
|
-
alternate: {},
|
|
34
|
-
consequent: {},
|
|
35
|
-
test: ternaryTest,
|
|
36
|
-
remove
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
const altStyle = (shouldSwap ? consequent : alternate) ?? {};
|
|
40
|
-
const consStyle = (shouldSwap ? alternate : consequent) ?? {};
|
|
41
|
-
Object.assign(ternariesByKey[key].alternate, altStyle);
|
|
42
|
-
Object.assign(ternariesByKey[key].consequent, consStyle);
|
|
43
|
-
}
|
|
44
|
-
const ternaryExpression = Object.keys(ternariesByKey).map((key) => {
|
|
45
|
-
return ternariesByKey[key];
|
|
46
|
-
});
|
|
47
|
-
return ternaryExpression;
|
|
48
|
-
}
|
|
49
|
-
export {
|
|
50
|
-
normalizeTernaries
|
|
51
|
-
};
|
|
1
|
+
import x from"@babel/generator";import*as i from"@babel/types";import g from"invariant";function d(n){if(g(Array.isArray(n),"extractStaticTernaries expects param 1 to be an array of ternaries"),n.length===0)return[];const r={};for(let a=-1,c=n.length;++a<c;){const{test:e,consequent:y,alternate:p,remove:l,...f}=n[a];let t=e;i.isExpressionStatement(e)&&(t=e.expression);let s=!1;i.isUnaryExpression(e)&&e.operator==="!"?(t=e.argument,s=!0):i.isBinaryExpression(e)&&(e.operator==="!=="||e.operator==="!=")&&(t=i.binaryExpression(e.operator,e.left,e.right),s=!0);const o=x(t).code;r[o]||(r[o]={...f,alternate:{},consequent:{},test:t,remove:l});const m=(s?y:p)??{},u=(s?p:y)??{};Object.assign(r[o].alternate,m),Object.assign(r[o].consequent,u)}return Object.keys(r).map(a=>r[a])}export{d as normalizeTernaries};
|
|
52
2
|
//# sourceMappingURL=normalizeTernaries.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/normalizeTernaries.ts"],
|
|
4
4
|
"sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\nimport invariant from 'invariant'\n\nimport { Ternary } from '../types.js'\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 // @ts-ignore\n const key = generate(ternaryTest as any).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,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAc,mBACrB,UAAYC,MAAO,eACnB,OAAOC,MAAe,YAIf,SAASC,EAAmBC,EAAsB,CAMvD,GALAF,EACE,MAAM,QAAQE,CAAS,EACvB,oEACF,EAEIA,EAAU,SAAW,EACvB,MAAO,CAAC,EAGV,MAAMC,EAA6C,CAAC,EAEpD,QAASC,EAAM,GAAIC,EAAMH,EAAU,OAAQ,EAAEE,EAAMC,GAAO,CACxD,KAAM,CAAE,KAAAC,EAAM,WAAAC,EAAY,UAAAC,EAAW,OAAAC,EAAQ,GAAGC,CAAK,EAAIR,EAAUE,CAAG,EAEtE,IAAIO,EAAcL,EAGdP,EAAE,sBAAsBO,CAAI,IAC9BK,EAAeL,EAAa,YAI9B,IAAIM,EAAa,GACbb,EAAE,kBAAkBO,CAAI,GAAKA,EAAK,WAAa,KACjDK,EAAcL,EAAK,SACnBM,EAAa,IACJb,EAAE,mBAAmBO,CAAI,IAC9BA,EAAK,WAAa,OAASA,EAAK,WAAa,QAC/CK,EAAcZ,EAAE,iBAAiBO,EAAK,SAAUA,EAAK,KAAMA,EAAK,KAAK,EACrEM,EAAa,IAKjB,MAAMC,EAAMf,EAASa,CAAkB,EAAE,KAEpCR,EAAeU,CAAG,IACrBV,EAAeU,CAAG,EAAI,CACpB,GAAGH,EACH,UAAW,CAAC,EACZ,WAAY,CAAC,EACb,KAAMC,EACN,OAAAF,CACF,GAEF,MAAMK,GAAYF,EAAaL,EAAaC,IAAc,CAAC,EACrDO,GAAaH,EAAaJ,EAAYD,IAAe,CAAC,EAC5D,OAAO,OAAOJ,EAAeU,CAAG,EAAE,UAAYC,CAAQ,EACtD,OAAO,OAAOX,EAAeU,CAAG,EAAE,WAAaE,CAAS,CAC1D,CAMA,OAJ0B,OAAO,KAAKZ,CAAc,EAAE,IAAKU,GAClDV,EAAeU,CAAG,CAC1B,CAGH",
|
|
6
|
+
"names": ["generate", "t", "invariant", "normalizeTernaries", "ternaries", "ternariesByKey", "idx", "len", "test", "consequent", "alternate", "remove", "rest", "ternaryTest", "shouldSwap", "key", "altStyle", "consStyle"]
|
|
7
7
|
}
|
|
@@ -1,76 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
const hooks = {
|
|
3
|
-
useMedia: true,
|
|
4
|
-
useTheme: true
|
|
5
|
-
};
|
|
6
|
-
function removeUnusedHooks(compFn, shouldPrintDebug) {
|
|
7
|
-
compFn.scope.crawl();
|
|
8
|
-
let bodyStatements = compFn == null ? void 0 : 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
|
-
var _a;
|
|
34
|
-
return !!((_a = statement.scope.getBinding(name)) == null ? void 0 : _a.referenced);
|
|
35
|
-
};
|
|
36
|
-
for (const declarator of declarations) {
|
|
37
|
-
const id = declarator.get("id");
|
|
38
|
-
const init = declarator.node.init;
|
|
39
|
-
if (Array.isArray(id) || Array.isArray(init)) {
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
const shouldRemove = (() => {
|
|
43
|
-
const isHook = t.isCallExpression(init) && t.isIdentifier(init.callee) && hooks[init.callee.name];
|
|
44
|
-
if (!isHook) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
if (t.isIdentifier(id.node)) {
|
|
48
|
-
const name = id.node.name;
|
|
49
|
-
return !isBindingReferenced(name);
|
|
50
|
-
} else if (t.isObjectPattern(id.node)) {
|
|
51
|
-
const propPaths = id.get("properties");
|
|
52
|
-
return propPaths.every((prop) => {
|
|
53
|
-
if (!prop.isObjectProperty())
|
|
54
|
-
return false;
|
|
55
|
-
const value = prop.get("value");
|
|
56
|
-
if (Array.isArray(value) || !value.isIdentifier())
|
|
57
|
-
return false;
|
|
58
|
-
const name = value.node.name;
|
|
59
|
-
return !isBindingReferenced(name);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
return false;
|
|
63
|
-
})();
|
|
64
|
-
if (shouldRemove) {
|
|
65
|
-
declarator.remove();
|
|
66
|
-
if (shouldPrintDebug) {
|
|
67
|
-
console.log(` [\u{1FA9D}] removed ${id.node["name"] ?? ""}`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
export {
|
|
74
|
-
removeUnusedHooks
|
|
75
|
-
};
|
|
1
|
+
import*as s from"@babel/types";const g={useMedia:!0,useTheme:!0};function p(t,u){t.scope.crawl();let e=t==null?void 0:t.get("body");if(!e){console.log("no body statemnts?",t);return}if(Array.isArray(e)||(e.isFunctionExpression()?e=e.scope.path.get("body"):e=e.get("body")),!e||!Array.isArray(e))return;const y=e;for(const i of y){if(!i.isVariableDeclaration())continue;const d=i.get("declarations");if(!Array.isArray(d))continue;const f=o=>{var r;return!!((r=i.scope.getBinding(o))!=null&&r.referenced)};for(const o of d){const r=o.get("id"),n=o.node.init;if(Array.isArray(r)||Array.isArray(n))continue;(()=>{if(!(s.isCallExpression(n)&&s.isIdentifier(n.callee)&&g[n.callee.name]))return!1;if(s.isIdentifier(r.node)){const c=r.node.name;return!f(c)}else if(s.isObjectPattern(r.node))return r.get("properties").every(l=>{if(!l.isObjectProperty())return!1;const a=l.get("value");if(Array.isArray(a)||!a.isIdentifier())return!1;const m=a.node.name;return!f(m)});return!1})()&&(o.remove(),u&&console.log(` [\u{1FA9D}] removed ${r.node.name??""}`))}}}export{p as removeUnusedHooks};
|
|
76
2
|
//# sourceMappingURL=removeUnusedHooks.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/removeUnusedHooks.ts"],
|
|
4
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 // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\n console.log(` [\uD83E\uDE9D] removed ${id.node['name'] ?? ''}`)\n }\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "AACA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AACA,UAAYA,MAAO,eAEnB,MAAMC,EAAQ,CACZ,SAAU,GACV,SAAU,EACZ,EAEO,SAASC,EAAkBC,EAAuBC,EAAuC,CAC9FD,EAAO,MAAM,MAAM,EAEnB,IAAIE,EAAiBF,GAAA,YAAAA,EAAQ,IAAI,QACjC,GAAI,CAACE,EAAgB,CAEnB,QAAQ,IAAI,qBAAsBF,CAAM,EACxC,MACF,CAQA,GAPK,MAAM,QAAQE,CAAc,IAC3BA,EAAe,qBAAqB,EACtCA,EAAiBA,EAAe,MAAM,KAAK,IAAI,MAAM,EAErDA,EAAiBA,EAAe,IAAI,MAAM,GAG1C,CAACA,GAAkB,CAAC,MAAM,QAAQA,CAAc,EAClD,OAEF,MAAMC,EAAaD,EACnB,UAAWE,KAAaD,EAAY,CAClC,GAAI,CAACC,EAAU,sBAAsB,EACnC,SAEF,MAAMC,EAAeD,EAAU,IAAI,cAAc,EACjD,GAAI,CAAC,MAAM,QAAQC,CAAY,EAC7B,SAEF,MAAMC,EAAuBC,GAAiB,CApClD,IAAAC,EAqCM,MAAO,CAAC,GAACA,EAAAJ,EAAU,MAAM,WAAWG,CAAI,IAA/B,MAAAC,EAAkC,WAC7C,EACA,UAAWC,KAAcJ,EAAc,CACrC,MAAMK,EAAKD,EAAW,IAAI,IAAI,EACxBE,EAAOF,EAAW,KAAK,KAC7B,GAAI,MAAM,QAAQC,CAAE,GAAK,MAAM,QAAQC,CAAI,EACzC,UAEoB,IAAM,CAG1B,GAAI,EADFd,EAAE,iBAAiBc,CAAI,GAAKd,EAAE,aAAac,EAAK,MAAM,GAAKb,EAAMa,EAAK,OAAO,IAAI,GAEjF,MAAO,GAET,GAAId,EAAE,aAAaa,EAAG,IAAI,EAAG,CAE3B,MAAMH,EAAOG,EAAG,KAAK,KACrB,MAAO,CAACJ,EAAoBC,CAAI,CAClC,SAAWV,EAAE,gBAAgBa,EAAG,IAAI,EAGlC,OADkBA,EAAG,IAAI,YAAY,EACpB,MAAOE,GAAS,CAC/B,GAAI,CAACA,EAAK,iBAAiB,EAAG,MAAO,GACrC,MAAMC,EAAQD,EAAK,IAAI,OAAO,EAC9B,GAAI,MAAM,QAAQC,CAAK,GAAK,CAACA,EAAM,aAAa,EAAG,MAAO,GAC1D,MAAMN,EAAOM,EAAM,KAAK,KACxB,MAAO,CAACP,EAAoBC,CAAI,CAClC,CAAC,EAEH,MAAO,EACT,GAAG,IAEDE,EAAW,OAAO,EACdR,GAEF,QAAQ,IAAI,yBAAkBS,EAAG,KAAK,MAAW,IAAI,EAG3D,CACF,CACF",
|
|
6
|
+
"names": ["t", "hooks", "removeUnusedHooks", "compFn", "shouldPrintDebug", "bodyStatements", "statements", "statement", "declarations", "isBindingReferenced", "name", "_a", "declarator", "id", "init", "prop", "value"]
|
|
7
7
|
}
|
|
@@ -1,76 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
const hooks = {
|
|
3
|
-
useMedia: true,
|
|
4
|
-
useTheme: true
|
|
5
|
-
};
|
|
6
|
-
function removeUnusedHooks(compFn, shouldPrintDebug) {
|
|
7
|
-
compFn.scope.crawl();
|
|
8
|
-
let bodyStatements = compFn == null ? void 0 : 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
|
-
var _a;
|
|
34
|
-
return !!((_a = statement.scope.getBinding(name)) == null ? void 0 : _a.referenced);
|
|
35
|
-
};
|
|
36
|
-
for (const declarator of declarations) {
|
|
37
|
-
const id = declarator.get("id");
|
|
38
|
-
const init = declarator.node.init;
|
|
39
|
-
if (Array.isArray(id) || Array.isArray(init)) {
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
const shouldRemove = (() => {
|
|
43
|
-
const isHook = t.isCallExpression(init) && t.isIdentifier(init.callee) && hooks[init.callee.name];
|
|
44
|
-
if (!isHook) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
if (t.isIdentifier(id.node)) {
|
|
48
|
-
const name = id.node.name;
|
|
49
|
-
return !isBindingReferenced(name);
|
|
50
|
-
} else if (t.isObjectPattern(id.node)) {
|
|
51
|
-
const propPaths = id.get("properties");
|
|
52
|
-
return propPaths.every((prop) => {
|
|
53
|
-
if (!prop.isObjectProperty())
|
|
54
|
-
return false;
|
|
55
|
-
const value = prop.get("value");
|
|
56
|
-
if (Array.isArray(value) || !value.isIdentifier())
|
|
57
|
-
return false;
|
|
58
|
-
const name = value.node.name;
|
|
59
|
-
return !isBindingReferenced(name);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
return false;
|
|
63
|
-
})();
|
|
64
|
-
if (shouldRemove) {
|
|
65
|
-
declarator.remove();
|
|
66
|
-
if (shouldPrintDebug) {
|
|
67
|
-
console.log(` [\u{1FA9D}] removed ${id.node["name"] ?? ""}`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
export {
|
|
74
|
-
removeUnusedHooks
|
|
75
|
-
};
|
|
1
|
+
import*as s from"@babel/types";const g={useMedia:!0,useTheme:!0};function p(t,u){t.scope.crawl();let e=t==null?void 0:t.get("body");if(!e){console.log("no body statemnts?",t);return}if(Array.isArray(e)||(e.isFunctionExpression()?e=e.scope.path.get("body"):e=e.get("body")),!e||!Array.isArray(e))return;const y=e;for(const i of y){if(!i.isVariableDeclaration())continue;const d=i.get("declarations");if(!Array.isArray(d))continue;const f=o=>{var r;return!!((r=i.scope.getBinding(o))!=null&&r.referenced)};for(const o of d){const r=o.get("id"),n=o.node.init;if(Array.isArray(r)||Array.isArray(n))continue;(()=>{if(!(s.isCallExpression(n)&&s.isIdentifier(n.callee)&&g[n.callee.name]))return!1;if(s.isIdentifier(r.node)){const c=r.node.name;return!f(c)}else if(s.isObjectPattern(r.node))return r.get("properties").every(l=>{if(!l.isObjectProperty())return!1;const a=l.get("value");if(Array.isArray(a)||!a.isIdentifier())return!1;const m=a.node.name;return!f(m)});return!1})()&&(o.remove(),u&&console.log(` [\u{1FA9D}] removed ${r.node.name??""}`))}}}export{p as removeUnusedHooks};
|
|
76
2
|
//# sourceMappingURL=removeUnusedHooks.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/removeUnusedHooks.ts"],
|
|
4
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 // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\n console.log(` [\uD83E\uDE9D] removed ${id.node['name'] ?? ''}`)\n }\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "AACA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AACA,UAAYA,MAAO,eAEnB,MAAMC,EAAQ,CACZ,SAAU,GACV,SAAU,EACZ,EAEO,SAASC,EAAkBC,EAAuBC,EAAuC,CAC9FD,EAAO,MAAM,MAAM,EAEnB,IAAIE,EAAiBF,GAAA,YAAAA,EAAQ,IAAI,QACjC,GAAI,CAACE,EAAgB,CAEnB,QAAQ,IAAI,qBAAsBF,CAAM,EACxC,MACF,CAQA,GAPK,MAAM,QAAQE,CAAc,IAC3BA,EAAe,qBAAqB,EACtCA,EAAiBA,EAAe,MAAM,KAAK,IAAI,MAAM,EAErDA,EAAiBA,EAAe,IAAI,MAAM,GAG1C,CAACA,GAAkB,CAAC,MAAM,QAAQA,CAAc,EAClD,OAEF,MAAMC,EAAaD,EACnB,UAAWE,KAAaD,EAAY,CAClC,GAAI,CAACC,EAAU,sBAAsB,EACnC,SAEF,MAAMC,EAAeD,EAAU,IAAI,cAAc,EACjD,GAAI,CAAC,MAAM,QAAQC,CAAY,EAC7B,SAEF,MAAMC,EAAuBC,GAAiB,CApClD,IAAAC,EAqCM,MAAO,CAAC,GAACA,EAAAJ,EAAU,MAAM,WAAWG,CAAI,IAA/B,MAAAC,EAAkC,WAC7C,EACA,UAAWC,KAAcJ,EAAc,CACrC,MAAMK,EAAKD,EAAW,IAAI,IAAI,EACxBE,EAAOF,EAAW,KAAK,KAC7B,GAAI,MAAM,QAAQC,CAAE,GAAK,MAAM,QAAQC,CAAI,EACzC,UAEoB,IAAM,CAG1B,GAAI,EADFd,EAAE,iBAAiBc,CAAI,GAAKd,EAAE,aAAac,EAAK,MAAM,GAAKb,EAAMa,EAAK,OAAO,IAAI,GAEjF,MAAO,GAET,GAAId,EAAE,aAAaa,EAAG,IAAI,EAAG,CAE3B,MAAMH,EAAOG,EAAG,KAAK,KACrB,MAAO,CAACJ,EAAoBC,CAAI,CAClC,SAAWV,EAAE,gBAAgBa,EAAG,IAAI,EAGlC,OADkBA,EAAG,IAAI,YAAY,EACpB,MAAOE,GAAS,CAC/B,GAAI,CAACA,EAAK,iBAAiB,EAAG,MAAO,GACrC,MAAMC,EAAQD,EAAK,IAAI,OAAO,EAC9B,GAAI,MAAM,QAAQC,CAAK,GAAK,CAACA,EAAM,aAAa,EAAG,MAAO,GAC1D,MAAMN,EAAOM,EAAM,KAAK,KACxB,MAAO,CAACP,EAAoBC,CAAI,CAClC,CAAC,EAEH,MAAO,EACT,GAAG,IAEDE,EAAW,OAAO,EACdR,GAEF,QAAQ,IAAI,yBAAkBS,EAAG,KAAK,MAAW,IAAI,EAG3D,CACF,CACF",
|
|
6
|
+
"names": ["t", "hooks", "removeUnusedHooks", "compFn", "shouldPrintDebug", "bodyStatements", "statements", "statement", "declarations", "isBindingReferenced", "name", "_a", "declarator", "id", "init", "prop", "value"]
|
|
7
7
|
}
|
|
@@ -1,29 +1,2 @@
|
|
|
1
|
-
const
|
|
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
|
-
};
|
|
1
|
+
const s=()=>{const e=Date.now();let n=e;return{mark:(t,o=!1)=>{if(o){const l=Date.now()-n;n=Date.now(),console.log(`Time ${t}: ${l}ms`),l>10&&console.log(" long timer")}},done:(t=!1)=>{if(t){const o=Date.now()-e;console.log(`Total time: ${o}ms`),o>50&&console.log(" long timer")}}}};export{s as timer};
|
|
29
2
|
//# sourceMappingURL=timer.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/timer.ts"],
|
|
4
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,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAO,MAAMA,EAAQ,IAAM,CACzB,MAAMC,EAAQ,KAAK,IAAI,EACvB,IAAIC,EAAOD,EACX,MAAO,CACL,KAAM,CAACE,EAAcC,EAAQ,KAAU,CACrC,GAAIA,EAAO,CACT,MAAMC,EAAO,KAAK,IAAI,EAAIH,EAC1BA,EAAO,KAAK,IAAI,EAEhB,QAAQ,IAAI,QAAQC,MAASE,KAAQ,EACjCA,EAAO,IAET,QAAQ,IAAI,cAAc,CAE9B,CACF,EACA,KAAM,CAACD,EAAQ,KAAU,CACvB,GAAIA,EAAO,CACT,MAAME,EAAQ,KAAK,IAAI,EAAIL,EAE3B,QAAQ,IAAI,eAAeK,KAAS,EAChCA,EAAQ,IAEV,QAAQ,IAAI,cAAc,CAE9B,CACF,CACF,CACF",
|
|
6
|
+
"names": ["timer", "start", "last", "name", "print", "took", "total"]
|
|
7
7
|
}
|
|
@@ -1,29 +1,2 @@
|
|
|
1
|
-
const
|
|
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
|
-
};
|
|
1
|
+
const s=()=>{const e=Date.now();let n=e;return{mark:(t,o=!1)=>{if(o){const l=Date.now()-n;n=Date.now(),console.log(`Time ${t}: ${l}ms`),l>10&&console.log(" long timer")}},done:(t=!1)=>{if(t){const o=Date.now()-e;console.log(`Total time: ${o}ms`),o>50&&console.log(" long timer")}}}};export{s as timer};
|
|
29
2
|
//# sourceMappingURL=timer.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/timer.ts"],
|
|
4
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,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAO,MAAMA,EAAQ,IAAM,CACzB,MAAMC,EAAQ,KAAK,IAAI,EACvB,IAAIC,EAAOD,EACX,MAAO,CACL,KAAM,CAACE,EAAcC,EAAQ,KAAU,CACrC,GAAIA,EAAO,CACT,MAAMC,EAAO,KAAK,IAAI,EAAIH,EAC1BA,EAAO,KAAK,IAAI,EAEhB,QAAQ,IAAI,QAAQC,MAASE,KAAQ,EACjCA,EAAO,IAET,QAAQ,IAAI,cAAc,CAE9B,CACF,EACA,KAAM,CAACD,EAAQ,KAAU,CACvB,GAAIA,EAAO,CACT,MAAME,EAAQ,KAAK,IAAI,EAAIL,EAE3B,QAAQ,IAAI,eAAeK,KAAS,EAChCA,EAAQ,IAEV,QAAQ,IAAI,cAAc,CAE9B,CACF,CACF,CACF",
|
|
6
|
+
"names": ["timer", "start", "last", "name", "print", "took", "total"]
|
|
7
7
|
}
|
|
@@ -1,102 +1,2 @@
|
|
|
1
|
-
const
|
|
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
|
-
};
|
|
1
|
+
const e={autocomplete:!0,border:!0,contenteditable:!0,crossorigin:!0,dir:!0,draggable:!0,enctype:!0,formenctype:!0,formmethod:!0,formtarget:!0,inputmode:!0,kind:!0,link:!0,method:!0,preload:!0,referrerpolicy:!0,rel:!0,rev:!0,role:!0,sandbox:!0,shape:!0,spellcheck:!0,target:!0,translate:!0,type:!0,wrap:!0,"aria-autocomplete":!0,"aria-busy":!0,"aria-checked":!0,"aria-current":!0,"aria-disabled":!0,"aria-expanded":!0,"aria-haspopup":!0,"aria-hidden":!0,"aria-invalid":!0,"aria-polite":!0,"aria-modal":!0,"aria-multiline":!0,"aria-multiselectable":!0,"aria-orientation":!0,"aria-pressed":!0,"aria-readonly":!0,"aria-relevant":!0,"aria-required":!0,"aria-selected":!0,"aria-sort":!0},t={accessibilityRole:!0,accessibilityActiveDescendant:!0,accessibilityAtomic:!0,accessibilityAutoComplete:!0,accessibilityBusy:!0,accessibilityChecked:!0,accessibilityColumnCount:!0,accessibilityColumnIndex:!0,accessibilityColumnSpan:!0,accessibilityControls:!0,accessibilityCurrent:!0,accessibilityDescribedBy:!0,accessibilityDetails:!0,disabled:!0,accessibilityErrorMessage:!0,accessibilityExpanded:!0,accessibilityFlowTo:!0,accessibilityHasPopup:!0,accessibilityHidden:!0,accessibilityInvalid:!0,accessibilityKeyShortcuts:!0,accessibilityLabel:!0,accessibilityLabelledBy:!0,accessibilityLevel:!0,accessibilityLiveRegion:!0,accessibilityModal:!0,accessibilityMultiline:!0,accessibilityMultiSelectable:!0,accessibilityOrientation:!0,accessibilityOwns:!0,accessibilityPlaceholder:!0,accessibilityPosInSet:!0,accessibilityPressed:!0,accessibilityReadOnly:!0,accessibilityRequired:!0,accessibilityRoleDescription:!0,accessibilityRowCount:!0,accessibilityRowIndex:!0,accessibilityRowSpan:!0,accessibilitySelected:!0,accessibilitySetSize:!0,accessibilitySort:!0,accessibilityValueMax:!0,accessibilityValueMin:!0,accessibilityValueNow:!0,accessibilityValueText:!0,nativeID:!0};export{t as validAccessibilityAttributes,e as validHTMLAttributes};
|
|
102
2
|
//# sourceMappingURL=validHTMLAttributes.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/validHTMLAttributes.ts"],
|
|
4
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,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAO,MAAMA,EAAsB,CACjC,aAAc,GACd,OAAQ,GACR,gBAAiB,GACjB,YAAa,GACb,IAAK,GACL,UAAW,GACX,QAAS,GACT,YAAa,GACb,WAAY,GACZ,WAAY,GACZ,UAAW,GACX,KAAM,GACN,KAAM,GACN,OAAQ,GACR,QAAS,GACT,eAAgB,GAChB,IAAK,GACL,IAAK,GACL,KAAM,GACN,QAAS,GACT,MAAO,GACP,WAAY,GACZ,OAAQ,GACR,UAAW,GACX,KAAM,GACN,KAAM,GACN,oBAAqB,GACrB,YAAa,GACb,eAAgB,GAChB,eAAgB,GAChB,gBAAiB,GACjB,gBAAiB,GACjB,gBAAiB,GACjB,cAAe,GACf,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,iBAAkB,GAClB,uBAAwB,GACxB,mBAAoB,GACpB,eAAgB,GAChB,gBAAiB,GACjB,gBAAiB,GACjB,gBAAiB,GACjB,gBAAiB,GACjB,YAAa,EACf,EAGaC,EAA+B,CAC1C,kBAAmB,GACnB,8BAA+B,GAC/B,oBAAqB,GACrB,0BAA2B,GAC3B,kBAAmB,GACnB,qBAAsB,GACtB,yBAA0B,GAC1B,yBAA0B,GAC1B,wBAAyB,GACzB,sBAAuB,GACvB,qBAAsB,GACtB,yBAA0B,GAC1B,qBAAsB,GACtB,SAAU,GACV,0BAA2B,GAC3B,sBAAuB,GACvB,oBAAqB,GACrB,sBAAuB,GACvB,oBAAqB,GACrB,qBAAsB,GACtB,0BAA2B,GAC3B,mBAAoB,GACpB,wBAAyB,GACzB,mBAAoB,GACpB,wBAAyB,GACzB,mBAAoB,GACpB,uBAAwB,GACxB,6BAA8B,GAC9B,yBAA0B,GAC1B,kBAAmB,GACnB,yBAA0B,GAC1B,sBAAuB,GACvB,qBAAsB,GACtB,sBAAuB,GACvB,sBAAuB,GACvB,6BAA8B,GAC9B,sBAAuB,GACvB,sBAAuB,GACvB,qBAAsB,GACtB,sBAAuB,GACvB,qBAAsB,GACtB,kBAAmB,GACnB,sBAAuB,GACvB,sBAAuB,GACvB,sBAAuB,GACvB,uBAAwB,GACxB,SAAU,EACZ",
|
|
6
|
+
"names": ["validHTMLAttributes", "validAccessibilityAttributes"]
|
|
7
7
|
}
|