@craft-ts/dev-tools 0.7.0-beta.13 → 0.7.0-beta.16
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/README.md +60 -10
- package/package.json +8 -2
- package/src/bin/agent-selector.d.ts +22 -0
- package/src/bin/agent-selector.js +100 -0
- package/src/bin/agent-selector.js.map +1 -0
- package/src/bin/craft-graph.js +74 -8
- package/src/bin/craft-graph.js.map +1 -1
- package/src/bin/craft.d.ts +22 -0
- package/src/bin/craft.js +231 -28
- package/src/bin/craft.js.map +1 -1
- package/src/eslint-rules/anchor-has-href.cjs +37 -3
- package/src/eslint-rules/craft-computed-name-match.cjs +26 -5
- package/src/eslint-rules/craft-name-match-utils.cjs +18 -9
- package/src/eslint-rules/hyperscript-walk.cjs +3 -3
- package/src/eslint-rules/index.cjs +46 -1
- package/src/eslint-rules/no-auth-token-in-local-storage.cjs +17 -0
- package/src/eslint-rules/no-craft-computed-side-effects.cjs +12 -5
- package/src/eslint-rules/no-craft-service-component-same-file.cjs +138 -0
- package/src/eslint-rules/no-effect-import-in-frontend.cjs +52 -0
- package/src/eslint-rules/no-effect-in-params.cjs +31 -1
- package/src/eslint-rules/no-explicit-effect-type.cjs +137 -0
- package/src/eslint-rules/no-free-has.cjs +47 -0
- package/src/eslint-rules/no-heading-level-skip.cjs +6 -6
- package/src/eslint-rules/no-raw-class.cjs +76 -0
- package/src/eslint-rules/no-raw-css-value.cjs +163 -0
- package/src/eslint-rules/no-raw-user-url.cjs +114 -0
- package/src/eslint-rules/no-trust-forwarded-headers.cjs +43 -0
- package/src/eslint-rules/no-unsafe-html.cjs +93 -0
- package/src/eslint-rules/no-unsafe-transfer-state.cjs +54 -0
- package/src/eslint-rules/prefer-craft-template-blocks.cjs +8 -8
- package/src/eslint-rules/prefer-direct-yieldable-callback.cjs +57 -14
- package/src/eslint-rules/prefer-inline-effect-insertion.cjs +263 -0
- package/src/eslint-rules/prefer-inline-route-providers.cjs +138 -0
- package/src/eslint-rules/recommended-config.cjs +6 -0
- package/src/eslint-rules/require-reactive-template-bindings.cjs +8 -8
- package/src/eslint-rules/require-route-security-policy.cjs +87 -0
- package/src/eslint-rules/require-server-function-timeout.cjs +39 -0
- package/src/eslint-rules/security-config.cjs +14 -0
- package/src/eslint-rules/security-rule-utils.cjs +21 -0
- package/src/eslint-rules/style-file-boundary.cjs +75 -0
- package/src/eslint-rules/sync-effect-body.cjs +343 -0
- package/src/index.d.ts +4 -0
- package/src/index.js +4 -0
- package/src/index.js.map +1 -1
- package/src/scripts/architecture-graph.js +8 -2
- package/src/scripts/architecture-graph.js.map +1 -1
- package/src/scripts/create/create-project.d.ts +60 -1
- package/src/scripts/create/create-project.js +2082 -184
- package/src/scripts/create/create-project.js.map +1 -1
- package/src/scripts/data-flow-graph.d.ts +1 -1
- package/src/scripts/effect-dependency-graph.d.ts +1 -1
- package/src/scripts/security-check.d.ts +30 -0
- package/src/scripts/security-check.js +223 -0
- package/src/scripts/security-check.js.map +1 -0
- package/src/scripts/style-architecture.d.ts +56 -0
- package/src/scripts/style-architecture.js +142 -0
- package/src/scripts/style-architecture.js.map +1 -0
- package/src/scripts/style-graph.d.ts +99 -0
- package/src/scripts/style-graph.js +179 -0
- package/src/scripts/style-graph.js.map +1 -0
- package/src/scripts/style-report.d.ts +55 -0
- package/src/scripts/style-report.js +67 -0
- package/src/scripts/style-report.js.map +1 -0
- package/src/scripts/template/migrate-template.js +1 -1
- package/src/scripts/template/migrate-template.js.map +1 -1
- package/src/scripts/angular-brand-codemod.ts +0 -3985
- package/src/scripts/architecture/migrate-architecture.ts +0 -653
- package/src/scripts/architecture-graph.ts +0 -3136
- package/src/scripts/components/migrate-components.ts +0 -227
- package/src/scripts/components/migration-diagnostic.ts +0 -8
- package/src/scripts/create/create-project.ts +0 -849
- package/src/scripts/data-flow-graph.ts +0 -240
- package/src/scripts/dependency-graph.ts +0 -5908
- package/src/scripts/effect-dependency-graph.ts +0 -630
- package/src/scripts/migrate.ts +0 -162
- package/src/scripts/migration-workspace.ts +0 -93
- package/src/scripts/primitives/migrate-named-primitives.ts +0 -627
- package/src/scripts/primitives/migrate-primitive-generators.ts +0 -410
- package/src/scripts/primitives/migrate-primitives.ts +0 -655
- package/src/scripts/primitives/migrate-yieldable-reactive-reads.ts +0 -499
- package/src/scripts/primitives/migration-diagnostic.ts +0 -15
- package/src/scripts/routes/migrate-routes.ts +0 -895
- package/src/scripts/routes/migration-diagnostic.ts +0 -25
- package/src/scripts/routes/route-command.ts +0 -1807
- package/src/scripts/routes/verify-routes.ts +0 -1511
- package/src/scripts/services/config.ts +0 -60
- package/src/scripts/services/migrate-services.ts +0 -1348
- package/src/scripts/services/migration-diagnostic.ts +0 -28
- package/src/scripts/template/migrate-template.ts +0 -418
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Style nodes in the dependency graph.
|
|
3
|
+
*
|
|
4
|
+
* **One graph, two producers.** `craft graph` reads the AST and the types; the
|
|
5
|
+
* style plugin evaluates the sheets and emits a dump. They meet here, joined on
|
|
6
|
+
* the identity of a class. Re-deriving the style side from the AST instead
|
|
7
|
+
* would mean a second, approximate evaluation of the DSL — and two answers that
|
|
8
|
+
* disagree sooner or later.
|
|
9
|
+
*
|
|
10
|
+
* The queries worth having are the transverse ones: token → class → component →
|
|
11
|
+
* route. That is the whole reason this is not a separate graph.
|
|
12
|
+
*/
|
|
13
|
+
import type { DependencyGraph } from './dependency-graph.ts';
|
|
14
|
+
declare module './dependency-graph.ts' {
|
|
15
|
+
interface DependencyGraphNodeRegistry {
|
|
16
|
+
'style-class': Record<string, unknown>;
|
|
17
|
+
'style-atom': Record<string, unknown>;
|
|
18
|
+
'css-var': Record<string, unknown>;
|
|
19
|
+
axis: Record<string, unknown>;
|
|
20
|
+
obligation: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
interface DependencyGraphEdgeRegistry {
|
|
23
|
+
'styled-by': Record<string, unknown>;
|
|
24
|
+
'varies-on': Record<string, unknown>;
|
|
25
|
+
'declares-var': Record<string, unknown>;
|
|
26
|
+
'reads-var': Record<string, unknown>;
|
|
27
|
+
'emits-atom': Record<string, unknown>;
|
|
28
|
+
requires: Record<string, unknown>;
|
|
29
|
+
discharges: Record<string, unknown>;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export interface StyleDumpClass {
|
|
33
|
+
readonly key: string;
|
|
34
|
+
readonly className: string;
|
|
35
|
+
readonly axes: Readonly<Record<string, readonly string[]>>;
|
|
36
|
+
readonly atoms: readonly string[];
|
|
37
|
+
readonly unproven: readonly string[];
|
|
38
|
+
readonly requires: readonly string[];
|
|
39
|
+
readonly provides: readonly string[];
|
|
40
|
+
readonly violates: readonly string[];
|
|
41
|
+
readonly unusedAxes?: readonly string[];
|
|
42
|
+
}
|
|
43
|
+
export interface StyleDumpAtom {
|
|
44
|
+
readonly className: string;
|
|
45
|
+
readonly property: string;
|
|
46
|
+
readonly value: string;
|
|
47
|
+
readonly conditions: readonly string[];
|
|
48
|
+
readonly unproven: string;
|
|
49
|
+
}
|
|
50
|
+
export interface StyleDumpVar {
|
|
51
|
+
readonly name: string;
|
|
52
|
+
readonly syntax: string;
|
|
53
|
+
readonly inherits: boolean;
|
|
54
|
+
readonly initialValue: string;
|
|
55
|
+
readonly role: string;
|
|
56
|
+
}
|
|
57
|
+
export interface StyleDump {
|
|
58
|
+
readonly classes: readonly StyleDumpClass[];
|
|
59
|
+
readonly atoms: readonly StyleDumpAtom[];
|
|
60
|
+
readonly vars: readonly StyleDumpVar[];
|
|
61
|
+
}
|
|
62
|
+
export declare const styleClassId: (key: string) => string;
|
|
63
|
+
export declare const cssVarId: (name: string) => string;
|
|
64
|
+
export declare const axisId: (axis: string) => string;
|
|
65
|
+
export declare const obligationId: (id: string) => string;
|
|
66
|
+
/**
|
|
67
|
+
* Which component uses which sheet.
|
|
68
|
+
*
|
|
69
|
+
* The dump knows classes, not components — it never sees a template. The
|
|
70
|
+
* association is made by the AST producer, which does; this map is how the two
|
|
71
|
+
* halves are handed to the merge. A component that uses a sheet nobody recorded
|
|
72
|
+
* comes out as a diagnostic rather than as silence.
|
|
73
|
+
*/
|
|
74
|
+
export type ComponentStyleUsage = Readonly<Record<string, readonly string[]>>;
|
|
75
|
+
export interface MergeStyleOptions {
|
|
76
|
+
/** component node id → the sheet keys it renders. */
|
|
77
|
+
readonly usedBy?: ComponentStyleUsage;
|
|
78
|
+
/**
|
|
79
|
+
* Components the extraction is known not to cover — a component whose styles
|
|
80
|
+
* come from a global stylesheet, for instance. Listed explicitly so that the
|
|
81
|
+
* completeness rule can tell "not covered" from "forgotten".
|
|
82
|
+
*/
|
|
83
|
+
readonly uncovered?: readonly string[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Folds a style dump into an existing graph.
|
|
87
|
+
*
|
|
88
|
+
* Idempotent: merging the same dump twice gives the same graph. The merge is
|
|
89
|
+
* keyed on ids, not on array position, because the two producers do not walk
|
|
90
|
+
* the tree in the same order and never will.
|
|
91
|
+
*/
|
|
92
|
+
export declare function mergeStyleDump(graph: DependencyGraph, dump: StyleDump, options?: MergeStyleOptions): DependencyGraph;
|
|
93
|
+
/**
|
|
94
|
+
* The number of visual states a class produces, `base` included.
|
|
95
|
+
*
|
|
96
|
+
* The same arithmetic the matrix does, kept here so the graph can answer
|
|
97
|
+
* "what does this route cost to capture?" without loading the testing package.
|
|
98
|
+
*/
|
|
99
|
+
export declare function matrixSizeOf(registered: StyleDumpClass): number;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
export const styleClassId = (key) => `style-class:${key}`;
|
|
2
|
+
export const cssVarId = (name) => `css-var:${name}`;
|
|
3
|
+
export const axisId = (axis) => `axis:${axis}`;
|
|
4
|
+
export const obligationId = (id) => `obligation:${id}`;
|
|
5
|
+
const atomId = (className) => `style-atom:${className}`;
|
|
6
|
+
const VAR_READ = /var\((--[^),\s]+)/g;
|
|
7
|
+
/**
|
|
8
|
+
* Folds a style dump into an existing graph.
|
|
9
|
+
*
|
|
10
|
+
* Idempotent: merging the same dump twice gives the same graph. The merge is
|
|
11
|
+
* keyed on ids, not on array position, because the two producers do not walk
|
|
12
|
+
* the tree in the same order and never will.
|
|
13
|
+
*/
|
|
14
|
+
export function mergeStyleDump(graph, dump, options = {}) {
|
|
15
|
+
const nodes = new Map(graph.nodes.map((node) => [node.id, node]));
|
|
16
|
+
const edges = new Map(graph.edges.map((edge) => [`${edge.from}|${edge.kind}|${edge.to}`, edge]));
|
|
17
|
+
const diagnostics = [
|
|
18
|
+
...(graph.diagnostics ?? []),
|
|
19
|
+
];
|
|
20
|
+
const addNode = (node) => nodes.set(node.id, node);
|
|
21
|
+
const addEdge = (edge) => edges.set(`${edge.from}|${edge.kind}|${edge.to}`, edge);
|
|
22
|
+
for (const declaration of dump.vars) {
|
|
23
|
+
addNode({
|
|
24
|
+
id: cssVarId(declaration.name),
|
|
25
|
+
kind: 'css-var',
|
|
26
|
+
label: declaration.name,
|
|
27
|
+
details: {
|
|
28
|
+
syntax: declaration.syntax,
|
|
29
|
+
inherits: declaration.inherits,
|
|
30
|
+
initialValue: declaration.initialValue,
|
|
31
|
+
role: declaration.role,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const atomsByName = new Map(dump.atoms.map((atom) => [atom.className, atom]));
|
|
36
|
+
for (const atom of dump.atoms) {
|
|
37
|
+
addNode({
|
|
38
|
+
id: atomId(atom.className),
|
|
39
|
+
kind: 'style-atom',
|
|
40
|
+
label: `${atom.property}: ${atom.value}`,
|
|
41
|
+
details: {
|
|
42
|
+
property: atom.property,
|
|
43
|
+
value: atom.value,
|
|
44
|
+
conditions: atom.conditions,
|
|
45
|
+
unproven: atom.unproven,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
for (const condition of atom.conditions) {
|
|
49
|
+
const axis = condition.split(':')[0];
|
|
50
|
+
addNode({ id: axisId(axis), kind: 'axis', label: axis });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for (const registered of dump.classes) {
|
|
54
|
+
const id = styleClassId(registered.key);
|
|
55
|
+
addNode({
|
|
56
|
+
id,
|
|
57
|
+
kind: 'style-class',
|
|
58
|
+
label: registered.key,
|
|
59
|
+
details: {
|
|
60
|
+
className: registered.className,
|
|
61
|
+
axes: registered.axes,
|
|
62
|
+
matrixSize: matrixSizeOf(registered),
|
|
63
|
+
unproven: registered.unproven,
|
|
64
|
+
unusedAxes: registered.unusedAxes ?? [],
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
for (const className of registered.atoms) {
|
|
68
|
+
addEdge({
|
|
69
|
+
from: id,
|
|
70
|
+
to: atomId(className),
|
|
71
|
+
kind: 'emits-atom',
|
|
72
|
+
evidence: 'type',
|
|
73
|
+
});
|
|
74
|
+
const atom = atomsByName.get(className);
|
|
75
|
+
if (!atom)
|
|
76
|
+
continue;
|
|
77
|
+
if (atom.property.startsWith('--')) {
|
|
78
|
+
addEdge({
|
|
79
|
+
from: id,
|
|
80
|
+
to: cssVarId(atom.property),
|
|
81
|
+
kind: 'declares-var',
|
|
82
|
+
evidence: 'type',
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
for (const [, name] of atom.value.matchAll(VAR_READ)) {
|
|
86
|
+
addEdge({
|
|
87
|
+
from: id,
|
|
88
|
+
to: cssVarId(name),
|
|
89
|
+
kind: 'reads-var',
|
|
90
|
+
evidence: 'type',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
for (const axis of Object.keys(registered.axes)) {
|
|
95
|
+
addEdge({
|
|
96
|
+
from: id,
|
|
97
|
+
to: axisId(axis),
|
|
98
|
+
kind: 'varies-on',
|
|
99
|
+
evidence: 'type',
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
for (const requirement of registered.requires) {
|
|
103
|
+
addNode({
|
|
104
|
+
id: obligationId(requirement),
|
|
105
|
+
kind: 'obligation',
|
|
106
|
+
label: requirement,
|
|
107
|
+
});
|
|
108
|
+
addEdge({
|
|
109
|
+
from: id,
|
|
110
|
+
to: obligationId(requirement),
|
|
111
|
+
kind: 'requires',
|
|
112
|
+
evidence: 'type',
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
for (const discharge of registered.provides) {
|
|
116
|
+
addNode({
|
|
117
|
+
id: obligationId(discharge),
|
|
118
|
+
kind: 'obligation',
|
|
119
|
+
label: discharge,
|
|
120
|
+
});
|
|
121
|
+
addEdge({
|
|
122
|
+
from: id,
|
|
123
|
+
to: obligationId(discharge),
|
|
124
|
+
kind: 'discharges',
|
|
125
|
+
evidence: 'type',
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const known = new Set(dump.classes.map((registered) => registered.key));
|
|
130
|
+
const uncovered = new Set(options.uncovered ?? []);
|
|
131
|
+
for (const [componentId, keys] of Object.entries(options.usedBy ?? {})) {
|
|
132
|
+
for (const key of keys) {
|
|
133
|
+
if (!known.has(key)) {
|
|
134
|
+
// One producer saw a sheet the other did not. Swallowing it would make
|
|
135
|
+
// every rule downstream green on an incomplete graph, which is the same
|
|
136
|
+
// false confidence as a matrix that is not tight.
|
|
137
|
+
diagnostics.push({
|
|
138
|
+
code: 'style-class-missing-from-dump',
|
|
139
|
+
message: `'${componentId}' renders the sheet class '${key}', which the style dump does not contain. The graph is incomplete: regenerate the dump, or the rules that read it will pass on a partial picture.`,
|
|
140
|
+
});
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
addEdge({
|
|
144
|
+
from: componentId,
|
|
145
|
+
to: styleClassId(key),
|
|
146
|
+
kind: 'styled-by',
|
|
147
|
+
evidence: 'ast',
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
for (const node of graph.nodes) {
|
|
152
|
+
if (node.kind !== 'component')
|
|
153
|
+
continue;
|
|
154
|
+
if (uncovered.has(node.id))
|
|
155
|
+
continue;
|
|
156
|
+
if (options.usedBy?.[node.id]?.length)
|
|
157
|
+
continue;
|
|
158
|
+
diagnostics.push({
|
|
159
|
+
code: 'component-without-style-class',
|
|
160
|
+
message: `'${node.label}' is not styled by any sheet the graph knows about. Either it uses CSS from outside the model — list it as uncovered so the gap is visible — or the extraction missed it.`,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
...graph,
|
|
165
|
+
nodes: [...nodes.values()],
|
|
166
|
+
edges: [...edges.values()],
|
|
167
|
+
diagnostics,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* The number of visual states a class produces, `base` included.
|
|
172
|
+
*
|
|
173
|
+
* The same arithmetic the matrix does, kept here so the graph can answer
|
|
174
|
+
* "what does this route cost to capture?" without loading the testing package.
|
|
175
|
+
*/
|
|
176
|
+
export function matrixSizeOf(registered) {
|
|
177
|
+
return Object.values(registered.axes).reduce((total, points) => total * (points.length + 1), 1);
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=style-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-graph.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/style-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The three questions worth asking a style graph from outside.
|
|
3
|
+
*
|
|
4
|
+
* Pure: a dump in, an answer out. The CLI and the MCP tools are both thin
|
|
5
|
+
* wrappers over this, so a question asked from an editor and the same question
|
|
6
|
+
* asked in CI cannot give different answers.
|
|
7
|
+
*/
|
|
8
|
+
import { type MergeStyleOptions, type StyleDump } from './style-graph.ts';
|
|
9
|
+
export interface StyleImpactReport {
|
|
10
|
+
readonly changed: readonly string[];
|
|
11
|
+
/** Sheet classes a change to those variables can be seen in. */
|
|
12
|
+
readonly classes: readonly string[];
|
|
13
|
+
/**
|
|
14
|
+
* Whether the answer is a real narrowing or the conservative fallback.
|
|
15
|
+
*
|
|
16
|
+
* A name the graph does not know reaches everything: saying "all" out loud is
|
|
17
|
+
* the difference between a suite that skips captures on purpose and one that
|
|
18
|
+
* skips them by accident.
|
|
19
|
+
*/
|
|
20
|
+
readonly narrowed: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function styleImpact(dump: StyleDump, changed: readonly string[]): StyleImpactReport;
|
|
23
|
+
export interface StyleMatrixReport {
|
|
24
|
+
readonly bySheet: Readonly<Record<string, number>>;
|
|
25
|
+
readonly byComponent: Readonly<Record<string, number>>;
|
|
26
|
+
readonly total: number;
|
|
27
|
+
readonly median: number;
|
|
28
|
+
readonly largest: {
|
|
29
|
+
readonly key: string;
|
|
30
|
+
readonly size: number;
|
|
31
|
+
} | undefined;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* What the application costs to capture.
|
|
35
|
+
*
|
|
36
|
+
* The median and the largest are here because those are the two numbers the
|
|
37
|
+
* plan gates the reduction wave on — reading them off a list by hand is how a
|
|
38
|
+
* threshold quietly stops being checked.
|
|
39
|
+
*/
|
|
40
|
+
export declare function styleMatrix(dump: StyleDump, options?: MergeStyleOptions): StyleMatrixReport;
|
|
41
|
+
export interface StyleDebtReport {
|
|
42
|
+
/** Escape hatches taken, with the reason their author gave. */
|
|
43
|
+
readonly unproven: readonly string[];
|
|
44
|
+
/** Required somewhere, discharged nowhere. */
|
|
45
|
+
readonly undischarged: readonly string[];
|
|
46
|
+
readonly dischargers: readonly string[];
|
|
47
|
+
readonly unreadVars: readonly string[];
|
|
48
|
+
readonly undeclaredVars: readonly string[];
|
|
49
|
+
/** Components no sheet is known to style — read this before the rest. */
|
|
50
|
+
readonly extractionGaps: readonly string[];
|
|
51
|
+
/** Axes that move a box, by axis. An axis meant to repaint must be absent. */
|
|
52
|
+
readonly axesTouchingLayout: Readonly<Record<string, readonly string[]>>;
|
|
53
|
+
readonly axesWritingVars: Readonly<Record<string, readonly string[]>>;
|
|
54
|
+
}
|
|
55
|
+
export declare function styleDebt(dump: StyleDump, options?: MergeStyleOptions): StyleDebtReport;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The three questions worth asking a style graph from outside.
|
|
3
|
+
*
|
|
4
|
+
* Pure: a dump in, an answer out. The CLI and the MCP tools are both thin
|
|
5
|
+
* wrappers over this, so a question asked from an editor and the same question
|
|
6
|
+
* asked in CI cannot give different answers.
|
|
7
|
+
*/
|
|
8
|
+
import { mergeStyleDump, } from "./style-graph.js";
|
|
9
|
+
import { danglingVars, dischargers, extractionGaps, impactedClasses, matrixSize, matrixSizeByComponent, propertiesWrittenBy, undischargedObligations, unproven, varsWrittenBy, } from "./style-architecture.js";
|
|
10
|
+
const bare = (dump, options) => mergeStyleDump({
|
|
11
|
+
version: 1,
|
|
12
|
+
rootDir: '.',
|
|
13
|
+
tsConfigFilePath: '.',
|
|
14
|
+
nodes: [],
|
|
15
|
+
edges: [],
|
|
16
|
+
}, dump, options);
|
|
17
|
+
export function styleImpact(dump, changed) {
|
|
18
|
+
const graph = bare(dump, {});
|
|
19
|
+
const known = new Set(dump.vars.map((declaration) => declaration.name));
|
|
20
|
+
const unknown = changed.filter((name) => !known.has(name));
|
|
21
|
+
return {
|
|
22
|
+
changed: [...changed].sort(),
|
|
23
|
+
classes: unknown.length
|
|
24
|
+
? dump.classes.map((registered) => registered.key).sort()
|
|
25
|
+
: impactedClasses(graph, changed),
|
|
26
|
+
narrowed: unknown.length === 0,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* What the application costs to capture.
|
|
31
|
+
*
|
|
32
|
+
* The median and the largest are here because those are the two numbers the
|
|
33
|
+
* plan gates the reduction wave on — reading them off a list by hand is how a
|
|
34
|
+
* threshold quietly stops being checked.
|
|
35
|
+
*/
|
|
36
|
+
export function styleMatrix(dump, options = {}) {
|
|
37
|
+
const graph = bare(dump, options);
|
|
38
|
+
const bySheet = matrixSize(graph);
|
|
39
|
+
const sizes = Object.values(bySheet).sort((left, right) => left - right);
|
|
40
|
+
const largestEntry = Object.entries(bySheet).sort(([, left], [, right]) => right - left)[0];
|
|
41
|
+
return {
|
|
42
|
+
bySheet,
|
|
43
|
+
byComponent: matrixSizeByComponent(graph),
|
|
44
|
+
total: sizes.reduce((sum, size) => sum + size, 0),
|
|
45
|
+
median: sizes.length
|
|
46
|
+
? (sizes[(sizes.length - 1) >> 1] + sizes[sizes.length >> 1]) / 2
|
|
47
|
+
: 0,
|
|
48
|
+
largest: largestEntry
|
|
49
|
+
? { key: largestEntry[0], size: largestEntry[1] }
|
|
50
|
+
: undefined,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function styleDebt(dump, options = {}) {
|
|
54
|
+
const graph = bare(dump, options);
|
|
55
|
+
const dangling = danglingVars(graph);
|
|
56
|
+
return {
|
|
57
|
+
unproven: unproven(graph),
|
|
58
|
+
undischarged: undischargedObligations(graph),
|
|
59
|
+
dischargers: dischargers(graph),
|
|
60
|
+
unreadVars: dangling.unread,
|
|
61
|
+
undeclaredVars: dangling.undeclared,
|
|
62
|
+
extractionGaps: extractionGaps(graph),
|
|
63
|
+
axesTouchingLayout: propertiesWrittenBy(graph),
|
|
64
|
+
axesWritingVars: varsWrittenBy(graph),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=style-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-report.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/style-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ function renderAttributes(attributes, diagnostics) {
|
|
|
126
126
|
if (name.startsWith('*') || name.startsWith('@')) {
|
|
127
127
|
diagnostics.push({
|
|
128
128
|
code: 'UNSUPPORTED_ANGULAR_SYNTAX',
|
|
129
|
-
message: `Structural Angular syntax '${name}' needs a manual
|
|
129
|
+
message: `Structural Angular syntax '${name}' needs a manual ifNode/forNode conversion.`,
|
|
130
130
|
});
|
|
131
131
|
continue;
|
|
132
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate-template.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/scripts/template/migrate-template.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrate-template.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/scripts/template/migrate-template.ts"],"names":[],"mappings":"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"}
|