uiaudit.js 1.0.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.
Files changed (52) hide show
  1. package/dist/auditor.d.ts +11 -0
  2. package/dist/auditor.d.ts.map +1 -0
  3. package/dist/auditor.js +70 -0
  4. package/dist/auditor.js.map +1 -0
  5. package/dist/auditors/accessibility.d.ts +8 -0
  6. package/dist/auditors/accessibility.d.ts.map +1 -0
  7. package/dist/auditors/accessibility.js +1769 -0
  8. package/dist/auditors/accessibility.js.map +1 -0
  9. package/dist/auditors/performance.d.ts +8 -0
  10. package/dist/auditors/performance.d.ts.map +1 -0
  11. package/dist/auditors/performance.js +168 -0
  12. package/dist/auditors/performance.js.map +1 -0
  13. package/dist/auditors/seo.d.ts +8 -0
  14. package/dist/auditors/seo.d.ts.map +1 -0
  15. package/dist/auditors/seo.js +171 -0
  16. package/dist/auditors/seo.js.map +1 -0
  17. package/dist/cli.d.ts +10 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +115 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/index.d.ts +13 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +12 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/parser/index.d.ts +18 -0
  26. package/dist/parser/index.d.ts.map +1 -0
  27. package/dist/parser/index.js +87 -0
  28. package/dist/parser/index.js.map +1 -0
  29. package/dist/parser/traverse.d.ts +10 -0
  30. package/dist/parser/traverse.d.ts.map +1 -0
  31. package/dist/parser/traverse.js +13 -0
  32. package/dist/parser/traverse.js.map +1 -0
  33. package/dist/reporter/terminal.d.ts +3 -0
  34. package/dist/reporter/terminal.d.ts.map +1 -0
  35. package/dist/reporter/terminal.js +200 -0
  36. package/dist/reporter/terminal.js.map +1 -0
  37. package/dist/types.d.ts +38 -0
  38. package/dist/types.d.ts.map +1 -0
  39. package/dist/types.js +3 -0
  40. package/dist/types.js.map +1 -0
  41. package/package.json +39 -0
  42. package/src/auditor.ts +100 -0
  43. package/src/auditors/accessibility.ts +2125 -0
  44. package/src/auditors/performance.ts +212 -0
  45. package/src/auditors/seo.ts +212 -0
  46. package/src/cli.ts +162 -0
  47. package/src/index.ts +22 -0
  48. package/src/parser/index.ts +106 -0
  49. package/src/parser/traverse.ts +14 -0
  50. package/src/reporter/terminal.ts +247 -0
  51. package/src/types.ts +51 -0
  52. package/tsconfig.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../src/auditors/accessibility.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ParsedFile } from '../parser/index.js';
2
+ import type { Issue } from '../types.js';
3
+ /**
4
+ * Audits parsed files for React performance anti-patterns.
5
+ * All checks are purely static — no browser, no runtime needed.
6
+ */
7
+ export declare function auditPerformance(parsedFiles: ParsedFile[]): Issue[];
8
+ //# sourceMappingURL=performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../src/auditors/performance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,CA8LnE"}
@@ -0,0 +1,168 @@
1
+ import { traverse } from '../parser/traverse.js';
2
+ /**
3
+ * Audits parsed files for React performance anti-patterns.
4
+ * All checks are purely static — no browser, no runtime needed.
5
+ */
6
+ export function auditPerformance(parsedFiles) {
7
+ const issues = [];
8
+ for (const { ast, filePath } of parsedFiles) {
9
+ traverse(ast, {
10
+ /**
11
+ * All CallExpression checks are merged into ONE visitor.
12
+ * Babel traverse does NOT support duplicate visitor keys —
13
+ * the last one silently wins. Always merge.
14
+ */
15
+ CallExpression(path) {
16
+ const node = path.node;
17
+ // ── Check 1: .map() returning JSX without a key prop ─────────────
18
+ //
19
+ // Why this matters: React uses keys to identify which items in a
20
+ // list changed. Without keys, React re-renders the entire list on
21
+ // every state change — O(n) DOM mutations instead of O(1).
22
+ if (node.callee.type === 'MemberExpression' &&
23
+ node.callee.property.type === 'Identifier' &&
24
+ node.callee.property.name === 'map' &&
25
+ node.arguments.length > 0) {
26
+ const callback = node.arguments[0];
27
+ if (callback.type === 'ArrowFunctionExpression' ||
28
+ callback.type === 'FunctionExpression') {
29
+ const body = callback.body;
30
+ let jsxEl = null;
31
+ // Arrow fn with implicit return: items.map(item => <div />)
32
+ if (body.type === 'JSXElement' || body.type === 'JSXFragment') {
33
+ jsxEl = body;
34
+ }
35
+ // Arrow fn with block body: items.map(item => { return <div /> })
36
+ if (body.type === 'BlockStatement') {
37
+ const ret = body.body.find((s) => s.type === 'ReturnStatement' &&
38
+ s.argument?.type === 'JSXElement');
39
+ jsxEl = ret?.argument ?? null;
40
+ }
41
+ if (jsxEl?.type === 'JSXElement') {
42
+ const attrs = jsxEl.openingElement.attributes;
43
+ const hasKey = attrs.some((a) => a.type === 'JSXAttribute' &&
44
+ a.name?.type === 'JSXIdentifier' &&
45
+ a.name.name === 'key');
46
+ if (!hasKey) {
47
+ issues.push({
48
+ id: 'missing-key-prop',
49
+ category: 'performance',
50
+ title: 'Missing key prop in list render',
51
+ description: 'React uses keys to identify which items changed, were added, or removed. Without a key, React re-renders the whole list on every state update — even when nothing changed.',
52
+ impact: 'major',
53
+ status: 'fail',
54
+ suggestion: 'Add a unique, stable key to the root element inside .map(). Use a real ID from your data — never the array index (index shifts when items are added/removed).',
55
+ codeSnippet: 'items.map(item => <Card>{item.name}</Card>)',
56
+ fixSnippet: 'items.map(item => <Card key={item.id}>{item.name}</Card>)',
57
+ file: filePath,
58
+ line: node.loc?.start.line,
59
+ });
60
+ }
61
+ }
62
+ }
63
+ }
64
+ // ── Check 2: useEffect with no dependency array ───────────────────
65
+ //
66
+ // Why this matters: No second argument = runs after EVERY render.
67
+ // This is almost always a bug — it creates fetch loops, causes
68
+ // infinite re-renders, and kills performance.
69
+ if (node.callee.type === 'Identifier' &&
70
+ node.callee.name === 'useEffect' &&
71
+ node.arguments.length === 1 // 2nd arg (dep array) is absent
72
+ ) {
73
+ issues.push({
74
+ id: 'useeffect-no-deps',
75
+ category: 'performance',
76
+ title: 'useEffect is missing a dependency array',
77
+ description: 'A useEffect with no second argument runs after every single render, including renders triggered by unrelated state changes. This almost always causes performance problems or infinite loops.',
78
+ impact: 'major',
79
+ status: 'fail',
80
+ suggestion: 'Add a dependency array as the second argument.\n [] — run once on mount (equivalent to componentDidMount)\n [value] — run whenever `value` changes\n [id, token] — run when either changes',
81
+ codeSnippet: 'useEffect(() => { fetchUser(id); })',
82
+ fixSnippet: 'useEffect(() => { fetchUser(id); }, [id])',
83
+ file: filePath,
84
+ line: node.loc?.start.line,
85
+ });
86
+ }
87
+ // ── Check 3: console.log/debug/info in component files ────────────
88
+ //
89
+ // Why this matters: Console calls shipped to production leak
90
+ // internal data to any user who opens DevTools, and they
91
+ // accumulate into thousands of log entries in long sessions.
92
+ if (node.callee.type === 'MemberExpression' &&
93
+ node.callee.object.type === 'Identifier' &&
94
+ node.callee.object.name === 'console' &&
95
+ node.callee.property.type === 'Identifier' &&
96
+ ['log', 'debug', 'info'].includes(node.callee.property.name)) {
97
+ const method = node.callee.property.name;
98
+ issues.push({
99
+ id: 'console-in-component',
100
+ category: 'performance',
101
+ title: `console.${method}() left in component`,
102
+ description: `console.${method} calls shipped to production expose internal data to end users and clutter the browser DevTools console.`,
103
+ impact: 'minor',
104
+ status: 'warning',
105
+ suggestion: 'Remove before shipping. For intentional debug logging, gate it:\nif (process.env.NODE_ENV !== "production") console.log(...)',
106
+ file: filePath,
107
+ line: node.loc?.start.line,
108
+ });
109
+ }
110
+ }, // end CallExpression
111
+ // ── Check 4: Complex inline function in event handler props ──────────
112
+ //
113
+ // Why this matters: () => { ... } inside JSX creates a NEW function
114
+ // object on every render. Any child component that receives this prop
115
+ // will always fail React.memo's shallow equality check and re-render.
116
+ JSXAttribute(path) {
117
+ const node = path.node;
118
+ const EVENT_HANDLERS = [
119
+ 'onClick', 'onChange', 'onSubmit', 'onBlur', 'onFocus', 'onKeyDown',
120
+ ];
121
+ if (node.name.type !== 'JSXIdentifier' ||
122
+ !EVENT_HANDLERS.includes(node.name.name))
123
+ return;
124
+ if (node.value?.type !== 'JSXExpressionContainer')
125
+ return;
126
+ const expr = node.value.expression;
127
+ if (expr.type !== 'ArrowFunctionExpression' &&
128
+ expr.type !== 'FunctionExpression')
129
+ return;
130
+ // Only flag truly inline logic — 2+ statements in the function body.
131
+ // A simple pass-through like onClick={() => onClick(item)} is fine.
132
+ const body = expr.body;
133
+ const isComplex = body?.type === 'BlockStatement' && body.body.length >= 2;
134
+ if (isComplex) {
135
+ const propName = node.name.name;
136
+ const handlerName = `handle${propName.slice(2)}`; // onClick → handleClick
137
+ issues.push({
138
+ id: 'inline-handler-in-jsx',
139
+ category: 'performance',
140
+ title: `Complex inline function in ${propName} prop`,
141
+ description: `This creates a new function reference on every render. Any child receiving this prop via React.memo or PureComponent will always re-render because the prop value is never referentially equal.`,
142
+ impact: 'minor',
143
+ status: 'warning',
144
+ suggestion: `Extract into a useCallback at the top of your component:\n\nconst ${handlerName} = useCallback(() => {\n // your logic here\n}, [/* list dependencies */]);\n\n// Then use:\n<Component ${propName}={${handlerName}} />`,
145
+ codeSnippet: `<Button ${propName}={() => { doA(); doB(); }}>`,
146
+ fixSnippet: `const ${handlerName} = useCallback(() => { doA(); doB(); }, []);\n<Button ${propName}={${handlerName}}>`,
147
+ file: filePath,
148
+ line: node.loc?.start.line,
149
+ });
150
+ }
151
+ }, // end JSXAttribute
152
+ }); // end traverse
153
+ }
154
+ return deduplicate(issues);
155
+ }
156
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
157
+ /** Drop exact duplicate issues (same rule, file, and line). */
158
+ function deduplicate(issues) {
159
+ const seen = new Set();
160
+ return issues.filter((issue) => {
161
+ const key = `${issue.id}::${issue.file}::${issue.line}`;
162
+ if (seen.has(key))
163
+ return false;
164
+ seen.add(key);
165
+ return true;
166
+ });
167
+ }
168
+ //# sourceMappingURL=performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/auditors/performance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ParsedFile } from '../parser/index.js';
2
+ import type { Issue } from '../types.js';
3
+ /**
4
+ * Audits parsed files for SEO issues detectable via static AST analysis.
5
+ * Focus: things that directly cost you search ranking or crawlability.
6
+ */
7
+ export declare function auditSEO(parsedFiles: ParsedFile[]): Issue[];
8
+ //# sourceMappingURL=seo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/auditors/seo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,CA+L3D"}
@@ -0,0 +1,171 @@
1
+ import { traverse } from '../parser/traverse.js';
2
+ /**
3
+ * Audits parsed files for SEO issues detectable via static AST analysis.
4
+ * Focus: things that directly cost you search ranking or crawlability.
5
+ */
6
+ export function auditSEO(parsedFiles) {
7
+ const issues = [];
8
+ for (const { ast, filePath } of parsedFiles) {
9
+ // Per-file state — we collect import info first, then use it in checks
10
+ const fileState = {
11
+ importsNextImage: false,
12
+ imgTagLines: [],
13
+ };
14
+ traverse(ast, {
15
+ // ── Track which packages this file imports ────────────────────────────
16
+ ImportDeclaration(path) {
17
+ if (path.node.source.value === 'next/image') {
18
+ fileState.importsNextImage = true;
19
+ }
20
+ },
21
+ // ── All JSXOpeningElement checks ──────────────────────────────────────
22
+ JSXOpeningElement(path) {
23
+ const node = path.node;
24
+ if (node.name.type !== 'JSXIdentifier')
25
+ return;
26
+ const tagName = node.name.name;
27
+ // Helper: check if an attribute exists on this element
28
+ const hasAttr = (name) => node.attributes.some((a) => a.type === 'JSXAttribute' &&
29
+ a.name.type === 'JSXIdentifier' &&
30
+ a.name.name === name);
31
+ // Helper: get an attribute's string value (returns null if dynamic/absent)
32
+ const getStringAttr = (name) => {
33
+ const attr = node.attributes.find((a) => a.type === 'JSXAttribute' &&
34
+ a.name.type === 'JSXIdentifier' &&
35
+ a.name.name === name);
36
+ return attr?.value?.type === 'StringLiteral'
37
+ ? attr.value.value
38
+ : null;
39
+ };
40
+ // ── Check 1: <img> without alt attribute ─────────────────────────
41
+ //
42
+ // Why this matters: Google uses alt text to understand image content
43
+ // for image search ranking. Missing alt = invisible to search engines.
44
+ if (tagName === 'img') {
45
+ fileState.imgTagLines.push(node.loc?.start.line ?? 0);
46
+ if (!hasAttr('alt')) {
47
+ issues.push({
48
+ id: 'img-missing-alt',
49
+ category: 'seo',
50
+ title: '<img> is missing an alt attribute',
51
+ description: 'Search engines use alt text to index image content. Missing alt attributes also break Google Image Search rankings and violate WCAG 1.1.1.',
52
+ impact: 'major',
53
+ status: 'fail',
54
+ suggestion: 'Add an alt attribute describing what the image shows.\nFor decorative images (pure visual flair, no meaning): alt=""\nFor meaningful images: alt="Two developers reviewing code on a laptop"',
55
+ codeSnippet: '<img src={hero} />',
56
+ fixSnippet: '<img src={hero} alt="Hero banner showing the product dashboard" />',
57
+ file: filePath,
58
+ line: node.loc?.start.line,
59
+ });
60
+ }
61
+ }
62
+ // ── Check 2: Self-closing <a> with no content or aria-label ──────
63
+ //
64
+ // Why this matters: Google uses anchor text to understand what the
65
+ // linked page is about. An empty link gives it nothing to rank on.
66
+ if (tagName === 'a' && node.selfClosing) {
67
+ const hasAriaLabel = hasAttr('aria-label');
68
+ const hasTitle = hasAttr('title');
69
+ if (!hasAriaLabel && !hasTitle) {
70
+ issues.push({
71
+ id: 'anchor-no-content',
72
+ category: 'seo',
73
+ title: '<a> tag has no content or accessible label',
74
+ description: 'Empty anchor tags give search engines no anchor text to rank with, and give screen readers nothing to announce. Both hurt you — one in rankings, one in accessibility.',
75
+ impact: 'major',
76
+ status: 'fail',
77
+ suggestion: 'Add descriptive text between <a> and </a>, or add aria-label if the link contains only an icon:\n<a href="/about">About us</a>\n// Icon-only link:\n<a href="/about" aria-label="About us"><Icon /></a>',
78
+ codeSnippet: '<a href="/about" />',
79
+ fixSnippet: '<a href="/about">About us</a>',
80
+ file: filePath,
81
+ line: node.loc?.start.line,
82
+ });
83
+ }
84
+ }
85
+ // ── Check 3: <div> used where a semantic HTML tag belongs ────────
86
+ //
87
+ // Why this matters: Semantic HTML is a direct ranking signal.
88
+ // Google's crawlers assign structural meaning to <nav>, <main>,
89
+ // <article>, etc. A <div> with className="nav" tells them nothing.
90
+ if (tagName === 'div') {
91
+ // Look at className and id for hints about intended semantics
92
+ const className = getStringAttr('className') ?? '';
93
+ const idVal = getStringAttr('id') ?? '';
94
+ const combined = `${className} ${idVal}`.toLowerCase();
95
+ const SEMANTIC_MAP = {
96
+ nav: 'nav',
97
+ navigation: 'nav',
98
+ header: 'header',
99
+ footer: 'footer',
100
+ main: 'main',
101
+ sidebar: 'aside',
102
+ aside: 'aside',
103
+ article: 'article',
104
+ section: 'section',
105
+ };
106
+ // Check each word in className/id against our semantic map
107
+ const words = combined.split(/[\s\-_/]+/);
108
+ const match = words.find((w) => SEMANTIC_MAP[w]);
109
+ if (match) {
110
+ const replacement = SEMANTIC_MAP[match];
111
+ issues.push({
112
+ id: 'non-semantic-html',
113
+ category: 'seo',
114
+ title: `Use <${replacement}> instead of <div className="${className || idVal}">`,
115
+ description: `Search engines assign structural roles to semantic HTML elements. <${replacement}> signals its purpose to Google's crawler and improves your document outline. A <div> is invisible to that system.`,
116
+ impact: 'minor',
117
+ status: 'warning',
118
+ suggestion: `Replace <div> with <${replacement}>. You can keep the existing className — the element name is what changes.\n<${replacement} className="${className || idVal}">...</${replacement}>`,
119
+ codeSnippet: `<div className="${className || idVal}">...</div>`,
120
+ fixSnippet: `<${replacement} className="${className || idVal}">...</${replacement}>`,
121
+ file: filePath,
122
+ line: node.loc?.start.line,
123
+ });
124
+ }
125
+ }
126
+ }, // end JSXOpeningElement
127
+ }); // end traverse
128
+ // ── Post-traverse: Check for raw <img> in Next.js component files ────────
129
+ //
130
+ // This runs AFTER traverse because we need to know both:
131
+ // (a) whether 'next/image' was imported (set in ImportDeclaration)
132
+ // (b) whether any <img> tags were used (set in JSXOpeningElement)
133
+ //
134
+ // Why this matters: next/image gives you automatic WebP, lazy-loading,
135
+ // responsive sizes, and CLS prevention — all Core Web Vitals wins.
136
+ // A raw <img> tag bypasses ALL of that.
137
+ const isComponentFile = filePath.endsWith('.tsx') || filePath.endsWith('.jsx');
138
+ if (isComponentFile &&
139
+ fileState.imgTagLines.length > 0 &&
140
+ !fileState.importsNextImage) {
141
+ for (const line of fileState.imgTagLines) {
142
+ issues.push({
143
+ id: 'use-next-image',
144
+ category: 'seo',
145
+ title: 'Use Next.js <Image> instead of <img>',
146
+ description: 'Next.js <Image> automatically converts to WebP, lazy-loads below-the-fold images, prevents layout shift (CLS), and serves correctly-sized images per viewport. Raw <img> gets none of this.',
147
+ impact: 'major',
148
+ status: 'warning',
149
+ suggestion: "Import and use the Next.js Image component:\nimport Image from 'next/image';\n\n// Replace:\n<img src={src} alt={alt} width={500} height={300} />",
150
+ codeSnippet: `import Image from 'next/image';`,
151
+ fixSnippet: `<Image src={src} alt="description" width={500} height={300} />`,
152
+ file: filePath,
153
+ line,
154
+ });
155
+ }
156
+ }
157
+ }
158
+ return deduplicate(issues);
159
+ }
160
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
161
+ function deduplicate(issues) {
162
+ const seen = new Set();
163
+ return issues.filter((i) => {
164
+ const key = `${i.id}::${i.file}::${i.line}`;
165
+ if (seen.has(key))
166
+ return false;
167
+ seen.add(key);
168
+ return true;
169
+ });
170
+ }
171
+ //# sourceMappingURL=seo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo.js","sourceRoot":"","sources":["../../src/auditors/seo.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * UIAudit CLI entry point.
4
+ * This file is what runs when someone types `uiaudit` in their terminal.
5
+ *
6
+ * The bin field in package.json points to `dist/cli.js` (compiled version).
7
+ * During development: `npx ts-node src/cli.ts audit ./src`
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}