@terra-symposium/standards-quality 0.0.0-stage → 0.6.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 (67) hide show
  1. package/README.md +89 -2
  2. package/dist/collapse.d.ts +13 -0
  3. package/dist/collapse.d.ts.map +1 -0
  4. package/dist/collapse.js +151 -0
  5. package/dist/collapse.js.map +1 -0
  6. package/dist/documentation.d.ts +84 -0
  7. package/dist/documentation.d.ts.map +1 -0
  8. package/dist/documentation.js +1244 -0
  9. package/dist/documentation.js.map +1 -0
  10. package/dist/files.d.ts +39 -0
  11. package/dist/files.d.ts.map +1 -0
  12. package/dist/files.js +90 -0
  13. package/dist/files.js.map +1 -0
  14. package/dist/github-report.d.ts +89 -0
  15. package/dist/github-report.d.ts.map +1 -0
  16. package/dist/github-report.js +469 -0
  17. package/dist/github-report.js.map +1 -0
  18. package/dist/history-report.d.ts +52 -0
  19. package/dist/history-report.d.ts.map +1 -0
  20. package/dist/history-report.js +317 -0
  21. package/dist/history-report.js.map +1 -0
  22. package/dist/imports.d.ts +19 -0
  23. package/dist/imports.d.ts.map +1 -0
  24. package/dist/imports.js +90 -0
  25. package/dist/imports.js.map +1 -0
  26. package/dist/index.d.ts +19 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +19 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/inline-if.d.ts +13 -0
  31. package/dist/inline-if.d.ts.map +1 -0
  32. package/dist/inline-if.js +48 -0
  33. package/dist/inline-if.js.map +1 -0
  34. package/dist/naming.d.ts +148 -0
  35. package/dist/naming.d.ts.map +1 -0
  36. package/dist/naming.js +673 -0
  37. package/dist/naming.js.map +1 -0
  38. package/dist/object-forwarding.d.ts +44 -0
  39. package/dist/object-forwarding.d.ts.map +1 -0
  40. package/dist/object-forwarding.js +182 -0
  41. package/dist/object-forwarding.js.map +1 -0
  42. package/dist/patterns.d.ts +85 -0
  43. package/dist/patterns.d.ts.map +1 -0
  44. package/dist/patterns.js +911 -0
  45. package/dist/patterns.js.map +1 -0
  46. package/dist/port.d.ts +21 -0
  47. package/dist/port.d.ts.map +1 -0
  48. package/dist/port.js +81 -0
  49. package/dist/port.js.map +1 -0
  50. package/dist/progress.d.ts +16 -0
  51. package/dist/progress.d.ts.map +1 -0
  52. package/dist/progress.js +30 -0
  53. package/dist/progress.js.map +1 -0
  54. package/dist/runner.d.ts +257 -0
  55. package/dist/runner.d.ts.map +1 -0
  56. package/dist/runner.js +2526 -0
  57. package/dist/runner.js.map +1 -0
  58. package/dist/security.d.ts +19 -0
  59. package/dist/security.d.ts.map +1 -0
  60. package/dist/security.js +76 -0
  61. package/dist/security.js.map +1 -0
  62. package/dist/single-use.d.ts +60 -0
  63. package/dist/single-use.d.ts.map +1 -0
  64. package/dist/single-use.js +1209 -0
  65. package/dist/single-use.js.map +1 -0
  66. package/package.json +45 -5
  67. package/quality.schema.json +131 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * packages/quality/src/object-forwarding.ts
3
+ * Finds object forwarding usages in the codebase.
4
+ * Suggests auto-destructuring or passing whole when manually destructuring the whole or near-whole object.
5
+ */
6
+ import type { QualityAnalysis, QualityCfg } from './runner.js';
7
+ /** A call-site object that repeats values from a source object. */
8
+ export type ObjectForwardingFinding = {
9
+ file: string;
10
+ line: number;
11
+ column: number;
12
+ callee: string;
13
+ source: string;
14
+ properties: string[];
15
+ recommendation: string;
16
+ };
17
+ /** Counts exact duplicate properties removed and conservative cases left untouched. */
18
+ export type ObjectForwardingFixResult = {
19
+ fixed: number;
20
+ skipped: number;
21
+ };
22
+ /**
23
+ * Finds call-site object literals that repeat several properties directly from one source object.
24
+ *
25
+ * This is intentionally advisory: narrowing projections, persistence payloads, and security
26
+ * boundaries can be valid even when they look like forwarding. Callers should review each finding.
27
+ *
28
+ * @param cfg Quality configuration controlling the source scope.
29
+ * @param analysis Optional shared parse context for the current quality run.
30
+ *
31
+ * @return Object-forwarding recommendations.
32
+ */
33
+ export declare function objectForwardingFindings(cfg: QualityCfg, analysis?: QualityAnalysis): ObjectForwardingFinding[];
34
+ /**
35
+ * Removes only redundant explicit properties from object literals that already spread the same source.
36
+ * Whole-object replacement and narrowing projections remain advisory because they can change object shape.
37
+ *
38
+ * @param cfg Quality configuration defining the source scope.
39
+ * @param analysis Optional shared analysis context used when available.
40
+ *
41
+ * @return Counts of exact duplicate properties removed and conservative cases left untouched.
42
+ */
43
+ export declare function fixObjectForwarding(cfg: QualityCfg, analysis?: QualityAnalysis): ObjectForwardingFixResult;
44
+ //# sourceMappingURL=object-forwarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-forwarding.d.ts","sourceRoot":"","sources":["../src/object-forwarding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM/D,mEAAmE;AACnE,MAAM,MAAM,uBAAuB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnK,uFAAuF;AACvF,MAAM,MAAM,yBAAyB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAqF3E;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,uBAAuB,EAAE,CAE/G;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,yBAAyB,CA6C1G"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * packages/quality/src/object-forwarding.ts
3
+ * Finds object forwarding usages in the codebase.
4
+ * Suggests auto-destructuring or passing whole when manually destructuring the whole or near-whole object.
5
+ */
6
+ /*//////////////////////////////////////////////////
7
+ IMPORTS
8
+ //////////////////////////////////////////////////*/
9
+ // API
10
+ import ts from 'typescript';
11
+ import { displayPath, srcFiles } from './files.js';
12
+ import { readFileSync, writeFileSync } from 'node:fs';
13
+ /*//////////////////////////////////////////////////
14
+ HELPERS
15
+ //////////////////////////////////////////////////*/
16
+ /**
17
+ * Selects the TypeScript parser mode that matches a source filename.
18
+ *
19
+ * @param fileName Source filename whose extension determines the parser mode.
20
+ *
21
+ * @return TypeScript compiler script kind for the filename.
22
+ */
23
+ function scriptKind(fileName) {
24
+ if (/\.[cm]?tsx$/.test(fileName))
25
+ return ts.ScriptKind.TSX;
26
+ if (/\.[cm]?jsx$/.test(fileName))
27
+ return ts.ScriptKind.JSX;
28
+ if (/\.[cm]?js$/.test(fileName))
29
+ return ts.ScriptKind.JS;
30
+ return ts.ScriptKind.TS;
31
+ }
32
+ /**
33
+ * Identifies mutating or collection-building calls where an object literal is a deliberate payload.
34
+ *
35
+ * @param expr Call expression to classify.
36
+ *
37
+ * @return `true` when the callee name indicates a payload boundary that should be ignored.
38
+ */
39
+ function isIgnoredCallee(expr) {
40
+ const text = expr.getText();
41
+ return /\.(?:insert|upsert|update|set|push|add|append|assign)$/.test(text);
42
+ }
43
+ /**
44
+ * Finds repeated property forwarding in call-site object literals within one source file.
45
+ *
46
+ * @param cfg Quality configuration used to render diagnostic paths.
47
+ * @param file Absolute path to the source file being inspected.
48
+ * @param analysis Optional shared parse context for avoiding repeated reads and AST construction.
49
+ *
50
+ * @return Object-forwarding findings discovered in the file.
51
+ */
52
+ function findingsForFile(cfg, file, analysis) {
53
+ const src = analysis?.texts.get(file) ?? readFileSync(file, 'utf8');
54
+ const parsed = analysis?.sources.get(file) ?? ts.createSourceFile(file, src, ts.ScriptTarget.Latest, true, scriptKind(file));
55
+ const findings = [];
56
+ const visit = (node) => {
57
+ if (ts.isCallExpression(node) && !isIgnoredCallee(node.expression)) {
58
+ for (const argument of node.arguments) {
59
+ if (!ts.isObjectLiteralExpression(argument))
60
+ continue;
61
+ const spreads = new Map();
62
+ for (let idx = 0; idx < argument.properties.length; idx++) {
63
+ const property = argument.properties[idx];
64
+ if (ts.isSpreadAssignment(property) && ts.isIdentifier(property.expression))
65
+ spreads.set(property.expression.text, idx);
66
+ }
67
+ const bySrc = new Map();
68
+ for (let idx = 0; idx < argument.properties.length; idx++) {
69
+ const property = argument.properties[idx];
70
+ if (!ts.isPropertyAssignment(property) || !ts.isIdentifier(property.name))
71
+ continue;
72
+ if (!ts.isPropertyAccessExpression(property.initializer) || !ts.isIdentifier(property.initializer.expression))
73
+ continue;
74
+ if (property.initializer.name.text !== property.name.text)
75
+ continue;
76
+ if ((spreads.get(property.initializer.expression.text) ?? idx) >= idx)
77
+ continue;
78
+ bySrc.set(property.initializer.expression.text, [...(bySrc.get(property.initializer.expression.text) ?? []), property.name.text]);
79
+ }
80
+ for (const [srcName, properties] of bySrc) {
81
+ if (!properties.length)
82
+ continue;
83
+ const pos = parsed.getLineAndCharacterOfPosition(argument.getStart(parsed));
84
+ const callee = node.expression.getText(parsed);
85
+ findings.push({
86
+ file: displayPath(cfg, file),
87
+ line: pos.line + 1,
88
+ column: pos.character + 1,
89
+ callee,
90
+ source: srcName,
91
+ properties,
92
+ recommendation: `remove exact properties already supplied by ...${srcName}`,
93
+ });
94
+ }
95
+ }
96
+ }
97
+ ts.forEachChild(node, visit);
98
+ };
99
+ visit(parsed);
100
+ return findings;
101
+ }
102
+ /**
103
+ * Finds call-site object literals that repeat several properties directly from one source object.
104
+ *
105
+ * This is intentionally advisory: narrowing projections, persistence payloads, and security
106
+ * boundaries can be valid even when they look like forwarding. Callers should review each finding.
107
+ *
108
+ * @param cfg Quality configuration controlling the source scope.
109
+ * @param analysis Optional shared parse context for the current quality run.
110
+ *
111
+ * @return Object-forwarding recommendations.
112
+ */
113
+ export function objectForwardingFindings(cfg, analysis) {
114
+ return (analysis?.files ?? srcFiles(cfg)).flatMap((f) => findingsForFile(cfg, f, analysis));
115
+ }
116
+ /**
117
+ * Removes only redundant explicit properties from object literals that already spread the same source.
118
+ * Whole-object replacement and narrowing projections remain advisory because they can change object shape.
119
+ *
120
+ * @param cfg Quality configuration defining the source scope.
121
+ * @param analysis Optional shared analysis context used when available.
122
+ *
123
+ * @return Counts of exact duplicate properties removed and conservative cases left untouched.
124
+ */
125
+ export function fixObjectForwarding(cfg, analysis) {
126
+ let fixed = 0;
127
+ let skipped = 0;
128
+ for (const file of analysis?.files ?? srcFiles(cfg)) {
129
+ if (!/\.[cm]?(?:js|jsx|ts|tsx)$/.test(file))
130
+ continue;
131
+ const src = analysis?.texts.get(file) ?? readFileSync(file, 'utf8');
132
+ const parsed = analysis?.sources.get(file) ?? ts.createSourceFile(file, src, ts.ScriptTarget.Latest, true, scriptKind(file));
133
+ const edits = [];
134
+ const visit = (node) => {
135
+ if (ts.isCallExpression(node) && !isIgnoredCallee(node.expression)) {
136
+ for (const argument of node.arguments) {
137
+ if (!ts.isObjectLiteralExpression(argument))
138
+ continue;
139
+ const spreads = new Map();
140
+ for (let i = 0; i < argument.properties.length; i++) {
141
+ const property = argument.properties[i];
142
+ if (ts.isSpreadAssignment(property) && ts.isIdentifier(property.expression))
143
+ spreads.set(property.expression.text, i);
144
+ }
145
+ for (let i = 0; i < argument.properties.length; i++) {
146
+ const property = argument.properties[i];
147
+ if (!ts.isPropertyAssignment(property) || !ts.isIdentifier(property.name))
148
+ continue;
149
+ if (!ts.isPropertyAccessExpression(property.initializer) || !ts.isIdentifier(property.initializer.expression))
150
+ continue;
151
+ if (property.initializer.name.text !== property.name.text || !spreads.has(property.initializer.expression.text))
152
+ continue;
153
+ if ((spreads.get(property.initializer.expression.text) ?? i) >= i)
154
+ continue;
155
+ let start = property.getFullStart();
156
+ while (/\s/.test(src[start - 1] ?? ''))
157
+ start--;
158
+ if (src[start - 1] === ',')
159
+ start--;
160
+ edits.push({ start, end: property.end });
161
+ fixed++;
162
+ }
163
+ }
164
+ }
165
+ ts.forEachChild(node, visit);
166
+ };
167
+ visit(parsed);
168
+ if (!edits.length)
169
+ continue;
170
+ let updated = src;
171
+ for (const edit of edits.sort((a, b) => b.start - a.start))
172
+ updated = `${updated.slice(0, edit.start)}${updated.slice(edit.end)}`;
173
+ if (ts.transpileModule(updated, { fileName: file, reportDiagnostics: true, compilerOptions: { allowJs: true, jsx: ts.JsxEmit.Preserve, target: ts.ScriptTarget.ESNext } }).diagnostics?.length) {
174
+ fixed -= edits.length;
175
+ skipped += edits.length;
176
+ continue;
177
+ }
178
+ writeFileSync(file, updated);
179
+ }
180
+ return { fixed, skipped };
181
+ }
182
+ //# sourceMappingURL=object-forwarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-forwarding.js","sourceRoot":"","sources":["../src/object-forwarding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;oDAEoD;AAEpD,MAAM;AACN,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAetD;;oDAEoD;AAEpD;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,QAAgB;IACnC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IAC3D,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IAC3D,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;IACzD,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,IAAmB;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,GAAe,EAAE,IAAY,EAAE,QAA0B;IACjF,MAAM,GAAG,GAAG,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7H,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACrC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAC1C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;oBAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAE,CAAC;oBAC3C,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACzH,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;gBAC1C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;oBAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAE,CAAC;oBAC3C,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAAE,SAAS;oBACpF,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC;wBAAE,SAAS;oBACxH,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI;wBAAE,SAAS;oBACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG;wBAAE,SAAS;oBAChF,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnI,CAAC;gBACD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,MAAM;wBAAE,SAAS;oBACjC,MAAM,GAAG,GAAG,MAAM,CAAC,6BAA6B,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC/C,QAAQ,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;wBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;wBAClB,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC;wBACzB,MAAM;wBACN,MAAM,EAAE,OAAO;wBACf,UAAU;wBACV,cAAc,EAAE,kDAAkD,OAAO,EAAE;qBAC3E,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,CAAC;IACd,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAe,EAAE,QAA0B;IACnF,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAe,EAAE,QAA0B;IAC9E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACtD,MAAM,GAAG,GAAG,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7H,MAAM,KAAK,GAA0C,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;YACrC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACvC,IAAI,CAAC,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC;wBAAE,SAAS;oBACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;oBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACxC,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;4BAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACvH,CAAC;oBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACxC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAAE,SAAS;wBACpF,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC;4BAAE,SAAS;wBACxH,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;4BAAE,SAAS;wBAC1H,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;4BAAE,SAAS;wBAC5E,IAAI,KAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;wBACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;4BAAE,KAAK,EAAE,CAAC;wBAChD,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;4BAAE,KAAK,EAAE,CAAC;wBACpC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;wBACzC,KAAK,EAAE,CAAC;oBACT,CAAC;gBACF,CAAC;YACF,CAAC;YACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAS;QAC5B,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClI,IAAI,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YAChM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;YACxB,SAAS;QACV,CAAC;QACD,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * packages/quality/src/patterns.ts
3
+ * Generic source-pattern checks: repeated static classes and forbidden UI patterns.
4
+ * Kept together because both are repository-wide text inventories.
5
+ */
6
+ import type { QualityAnalysis, QualityCfg } from './runner.js';
7
+ /** One repeated static class value and its source locations. */
8
+ export type RepeatedClassFinding = {
9
+ value: string;
10
+ count: number;
11
+ locations: string[];
12
+ };
13
+ /** A configured UI pattern and the file that contains it. */
14
+ export type UiPatternFinding = {
15
+ file: string;
16
+ pattern: string;
17
+ };
18
+ /** Counts exact edits applied and conservative candidates left for review. */
19
+ export type PatternFixResult = {
20
+ fixed: number;
21
+ skipped: number;
22
+ };
23
+ /** One repeated regular expression source and its source locations. */
24
+ export type RegexFinding = {
25
+ source: string;
26
+ count: number;
27
+ locations: string[];
28
+ };
29
+ /**
30
+ * Reports repeated static class strings without assuming a framework.
31
+ *
32
+ * @param cfg Quality configuration defining the source roots and repeated-class policy.
33
+ * @param analysis Optional shared analysis context for reusing source text.
34
+ *
35
+ * @return Repeated static class strings that meet the configured minimum count.
36
+ */
37
+ export declare function repeatedClassFindings(cfg: QualityCfg, analysis?: QualityAnalysis): RepeatedClassFinding[];
38
+ /**
39
+ * Replaces repeated static class attributes with file-local constants in the CONFIG/CLASSES group.
40
+ * Dynamic expressions, HTML files, and files without an existing CONFIG boundary are left unchanged.
41
+ *
42
+ * @param cfg Quality configuration defining the class threshold and source scope.
43
+ * @param analysis Optional shared analysis context used for discovery.
44
+ *
45
+ * @return Counts of replacements made and candidates deliberately left advisory.
46
+ */
47
+ export declare function fixRepeatedClasses(cfg: QualityCfg, analysis?: QualityAnalysis): PatternFixResult;
48
+ /**
49
+ * Reports configured UI patterns that should use a shared primitive.
50
+ *
51
+ * @param cfg Quality configuration defining forbidden UI patterns and source scope.
52
+ * @param analysis Optional shared analysis context for reusing discovered files and text.
53
+ *
54
+ * @return Matching file/pattern pairs that should use shared UI primitives.
55
+ */
56
+ export declare function uiPatternFindings(cfg: QualityCfg, analysis?: QualityAnalysis): UiPatternFinding[];
57
+ /**
58
+ * Runs the Tailwind v4 canonical-class diagnostic used by the quality CLI.
59
+ *
60
+ * @param cfg Quality configuration containing the Tailwind stylesheet and source roots.
61
+ * @param fix Whether canonical replacements should be written to source files.
62
+ *
63
+ * @return Promise resolving to zero after diagnostics or fixes complete.
64
+ */
65
+ export declare function runTailwindCanonical(cfg: QualityCfg, fix?: boolean): Promise<number>;
66
+ /**
67
+ * Reports exact duplicate regular-expression sources across source files.
68
+ *
69
+ * @param cfg Quality configuration defining regex extensions, exclusions, and threshold.
70
+ * @param analysis Optional shared analysis context for reusing source text and ASTs.
71
+ *
72
+ * @return Duplicate regular-expression sources and their source locations.
73
+ */
74
+ export declare function regexFindings(cfg: QualityCfg, analysis?: QualityAnalysis): RegexFinding[];
75
+ /**
76
+ * Replaces duplicate regex candidates with file-local constants or a configured shared ESM registry.
77
+ * Shared factories preserve a fresh RegExp instance at every original evaluation site.
78
+ *
79
+ * @param cfg Quality configuration defining the regex threshold, source scope, and optional registry.
80
+ * @param analysis Optional shared analysis context used for discovery.
81
+ *
82
+ * @return Counts of regex expressions replaced and candidates left advisory.
83
+ */
84
+ export declare function fixRegexDedup(cfg: QualityCfg, analysis?: QualityAnalysis): PatternFixResult;
85
+ //# sourceMappingURL=patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAuB/D,gEAAgE;AAChE,MAAM,MAAM,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzF,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AACjE,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAMlF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,oBAAoB,EAAE,CAoBzG;AAuGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAoDhG;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,gBAAgB,EAAE,CAajG;AAsHD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAqDxF;AAsHD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,YAAY,EAAE,CAWzF;AAkKD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAuC3F"}