@craft-ts/dev-tools 0.7.0-beta.13 → 0.7.0-beta.15

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 (89) hide show
  1. package/README.md +64 -10
  2. package/package.json +8 -2
  3. package/src/bin/agent-selector.d.ts +22 -0
  4. package/src/bin/agent-selector.js +100 -0
  5. package/src/bin/agent-selector.js.map +1 -0
  6. package/src/bin/craft-graph.js +74 -8
  7. package/src/bin/craft-graph.js.map +1 -1
  8. package/src/bin/craft.d.ts +23 -0
  9. package/src/bin/craft.js +245 -28
  10. package/src/bin/craft.js.map +1 -1
  11. package/src/eslint-rules/anchor-has-href.cjs +37 -3
  12. package/src/eslint-rules/craft-computed-name-match.cjs +26 -5
  13. package/src/eslint-rules/craft-name-match-utils.cjs +18 -9
  14. package/src/eslint-rules/hyperscript-walk.cjs +3 -3
  15. package/src/eslint-rules/index.cjs +46 -1
  16. package/src/eslint-rules/no-auth-token-in-local-storage.cjs +17 -0
  17. package/src/eslint-rules/no-craft-computed-side-effects.cjs +12 -5
  18. package/src/eslint-rules/no-craft-service-component-same-file.cjs +138 -0
  19. package/src/eslint-rules/no-effect-import-in-frontend.cjs +52 -0
  20. package/src/eslint-rules/no-effect-in-params.cjs +31 -1
  21. package/src/eslint-rules/no-explicit-effect-type.cjs +137 -0
  22. package/src/eslint-rules/no-free-has.cjs +47 -0
  23. package/src/eslint-rules/no-heading-level-skip.cjs +6 -6
  24. package/src/eslint-rules/no-raw-class.cjs +76 -0
  25. package/src/eslint-rules/no-raw-css-value.cjs +163 -0
  26. package/src/eslint-rules/no-raw-user-url.cjs +114 -0
  27. package/src/eslint-rules/no-trust-forwarded-headers.cjs +43 -0
  28. package/src/eslint-rules/no-unsafe-html.cjs +93 -0
  29. package/src/eslint-rules/no-unsafe-transfer-state.cjs +54 -0
  30. package/src/eslint-rules/prefer-craft-template-blocks.cjs +8 -8
  31. package/src/eslint-rules/prefer-direct-yieldable-callback.cjs +57 -14
  32. package/src/eslint-rules/prefer-inline-effect-insertion.cjs +263 -0
  33. package/src/eslint-rules/prefer-inline-route-providers.cjs +138 -0
  34. package/src/eslint-rules/recommended-config.cjs +6 -0
  35. package/src/eslint-rules/require-reactive-template-bindings.cjs +8 -8
  36. package/src/eslint-rules/require-route-security-policy.cjs +87 -0
  37. package/src/eslint-rules/require-server-function-timeout.cjs +39 -0
  38. package/src/eslint-rules/security-config.cjs +14 -0
  39. package/src/eslint-rules/security-rule-utils.cjs +21 -0
  40. package/src/eslint-rules/style-file-boundary.cjs +75 -0
  41. package/src/eslint-rules/sync-effect-body.cjs +343 -0
  42. package/src/index.d.ts +4 -0
  43. package/src/index.js +4 -0
  44. package/src/index.js.map +1 -1
  45. package/src/scripts/architecture-graph.js +8 -2
  46. package/src/scripts/architecture-graph.js.map +1 -1
  47. package/src/scripts/create/create-project.d.ts +71 -1
  48. package/src/scripts/create/create-project.js +1937 -176
  49. package/src/scripts/create/create-project.js.map +1 -1
  50. package/src/scripts/data-flow-graph.d.ts +1 -1
  51. package/src/scripts/effect-dependency-graph.d.ts +1 -1
  52. package/src/scripts/security-check.d.ts +30 -0
  53. package/src/scripts/security-check.js +223 -0
  54. package/src/scripts/security-check.js.map +1 -0
  55. package/src/scripts/style-architecture.d.ts +56 -0
  56. package/src/scripts/style-architecture.js +142 -0
  57. package/src/scripts/style-architecture.js.map +1 -0
  58. package/src/scripts/style-graph.d.ts +99 -0
  59. package/src/scripts/style-graph.js +179 -0
  60. package/src/scripts/style-graph.js.map +1 -0
  61. package/src/scripts/style-report.d.ts +55 -0
  62. package/src/scripts/style-report.js +67 -0
  63. package/src/scripts/style-report.js.map +1 -0
  64. package/src/scripts/template/migrate-template.js +1 -1
  65. package/src/scripts/template/migrate-template.js.map +1 -1
  66. package/src/scripts/angular-brand-codemod.ts +0 -3985
  67. package/src/scripts/architecture/migrate-architecture.ts +0 -653
  68. package/src/scripts/architecture-graph.ts +0 -3136
  69. package/src/scripts/components/migrate-components.ts +0 -227
  70. package/src/scripts/components/migration-diagnostic.ts +0 -8
  71. package/src/scripts/create/create-project.ts +0 -849
  72. package/src/scripts/data-flow-graph.ts +0 -240
  73. package/src/scripts/dependency-graph.ts +0 -5908
  74. package/src/scripts/effect-dependency-graph.ts +0 -630
  75. package/src/scripts/migrate.ts +0 -162
  76. package/src/scripts/migration-workspace.ts +0 -93
  77. package/src/scripts/primitives/migrate-named-primitives.ts +0 -627
  78. package/src/scripts/primitives/migrate-primitive-generators.ts +0 -410
  79. package/src/scripts/primitives/migrate-primitives.ts +0 -655
  80. package/src/scripts/primitives/migrate-yieldable-reactive-reads.ts +0 -499
  81. package/src/scripts/primitives/migration-diagnostic.ts +0 -15
  82. package/src/scripts/routes/migrate-routes.ts +0 -895
  83. package/src/scripts/routes/migration-diagnostic.ts +0 -25
  84. package/src/scripts/routes/route-command.ts +0 -1807
  85. package/src/scripts/routes/verify-routes.ts +0 -1511
  86. package/src/scripts/services/config.ts +0 -60
  87. package/src/scripts/services/migrate-services.ts +0 -1348
  88. package/src/scripts/services/migration-diagnostic.ts +0 -28
  89. package/src/scripts/template/migrate-template.ts +0 -418
@@ -1 +1 @@
1
- {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/scripts/create/create-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/scripts/create/create-project.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type SourceFile } from 'ts-morph';
2
- import type { DependencyGraphEdge, DependencyGraphNode } from './dependency-graph';
2
+ import type { DependencyGraphEdge, DependencyGraphNode } from './dependency-graph.js';
3
3
  export interface DataClassificationNodeDetails {
4
4
  readonly classification: string;
5
5
  readonly source: 'schema-annotation';
@@ -1,5 +1,5 @@
1
1
  import { Node, type SourceFile } from 'ts-morph';
2
- import type { DependencyGraphEdge, DependencyGraphNode } from './dependency-graph';
2
+ import type { DependencyGraphEdge, DependencyGraphNode } from './dependency-graph.js';
3
3
  export interface EffectServiceNodeDetails {
4
4
  readonly runtime: 'effect';
5
5
  readonly tag: string;
@@ -0,0 +1,30 @@
1
+ export type SecuritySeverity = 'error' | 'warning';
2
+ export type SecurityDiagnostic = Readonly<{
3
+ code: string;
4
+ file: string;
5
+ line: number;
6
+ message: string;
7
+ severity: SecuritySeverity;
8
+ }>;
9
+ export type SecurityCheckOptions = Readonly<{
10
+ rootDir?: string;
11
+ strict?: boolean;
12
+ }>;
13
+ export type SecurityCheckResult = Readonly<{
14
+ passed: boolean;
15
+ diagnostics: readonly SecurityDiagnostic[];
16
+ }>;
17
+ /**
18
+ * Fichier `craft-security.json` optionnel à la racine du projet vérifié.
19
+ * Sans échappatoire, un contrôle bruyant finit désactivé en entier : mieux
20
+ * vaut une exclusion nommée, visible en revue.
21
+ */
22
+ export type SecurityCheckConfig = Readonly<{
23
+ /** Chemins (fragments) exclus de l'analyse. */
24
+ exclude?: readonly string[];
25
+ /** Codes ramenés au niveau avertissement, avec une justification. */
26
+ allow?: Readonly<Record<string, string>>;
27
+ }>;
28
+ export declare function runSecurityCheck(options?: SecurityCheckOptions): SecurityCheckResult;
29
+ /** Remplace les commentaires par des espaces, en gardant les positions. */
30
+ export declare function stripComments(text: string): string;
@@ -0,0 +1,223 @@
1
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
2
+ import { join, relative, resolve } from 'node:path';
3
+ const SOURCE_EXTENSIONS = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']);
4
+ const IGNORED = new Set(['node_modules', '.git', 'dist', '.nx', '.angular', '.vitepress', 'coverage', 'test-results', 'tmp', 'temp']);
5
+ const CONFIG_FILE = 'craft-security.json';
6
+ /** Commentaire d'exemption ligne à ligne : `// craft-security-ignore <code>`. */
7
+ const IGNORE_COMMENT = /craft-security-ignore(?:\s+([A-Z_]+))?/;
8
+ export function runSecurityCheck(options = {}) {
9
+ const rootDir = resolve(options.rootDir ?? process.cwd());
10
+ const config = readConfig(rootDir);
11
+ const files = collectFiles(rootDir, config);
12
+ const diagnostics = [];
13
+ let hasPolicy = false;
14
+ for (const file of files) {
15
+ // Les commentaires décrivent souvent le risque qu'ils corrigent : les
16
+ // analyser produirait un bruit qui ferait désactiver l'outil.
17
+ const raw = readFileSync(file, 'utf8');
18
+ const text = stripComments(raw);
19
+ hasPolicy ||= /(?:provideCraftSecurityPolicy|CRAFT_SECURITY_POLICY|securityPolicy)/.test(text);
20
+ checkPattern(diagnostics, rootDir, file, text, /\b(?:localStorage|sessionStorage)\.setItem\s*\(\s*['"][^'"]*(?:token|jwt|password|auth|session)/gi, 'CRAFT_SECURITY_AUTH_STORAGE', 'Authentication material must not be stored in browser storage.', 'error', raw);
21
+ checkPattern(diagnostics, rootDir, file, text, /\.(?:innerHTML|outerHTML|srcdoc)\s*=/g, 'CRAFT_SECURITY_RAW_HTML', 'Raw HTML assignment requires sanitizedHtml or an audited exception.', 'error', raw);
22
+ checkPattern(diagnostics, rootDir, file, text, /\b(?:eval\s*\(|new\s+Function\s*\(|document\.write(?:ln)?\s*\()/g, 'CRAFT_SECURITY_DYNAMIC_CODE', 'Dynamic code evaluation and document.write are forbidden.', 'error', raw);
23
+ checkPattern(diagnostics, rootDir, file, text, /\b(?:x-forwarded-for|x-forwarded-host|x-forwarded-proto)\b/gi, 'CRAFT_SECURITY_FORWARDED_HEADER', 'Forwarded headers must be validated at a trusted proxy boundary.', 'error', raw);
24
+ checkPattern(diagnostics, rootDir, file, text, /\bunsafe-inline\b/g, 'CRAFT_SECURITY_CSP_UNSAFE_INLINE', "A production CSP must not rely on 'unsafe-inline'; use the request nonce.", 'error', raw);
25
+ checkPattern(diagnostics, rootDir, file, text, /mode\s*:\s*['"]legacy['"]/g, 'CRAFT_SECURITY_TRANSFER_LEGACY', 'The legacy transfer mode ships every serializable primitive; move to an allowlist.', 'warning', raw);
26
+ checkBlankTargets(diagnostics, rootDir, file, text, raw);
27
+ checkTransferSnapshot(diagnostics, rootDir, file, text, raw);
28
+ checkServerOptions(diagnostics, rootDir, file, text, raw);
29
+ checkExpiredExceptions(diagnostics, rootDir, file, text, raw);
30
+ }
31
+ if (options.strict && !hasPolicy) {
32
+ diagnostics.unshift({
33
+ code: 'CRAFT_SECURITY_POLICY_MISSING',
34
+ file: '.',
35
+ line: 1,
36
+ message: 'No Craft security policy was found in the checked source tree.',
37
+ severity: 'error',
38
+ });
39
+ }
40
+ const resolved = diagnostics.map((diagnostic) => config.allow && diagnostic.code in config.allow
41
+ ? { ...diagnostic, severity: 'warning' }
42
+ : diagnostic);
43
+ const failing = resolved.filter((diagnostic) => options.strict ? true : diagnostic.severity === 'error');
44
+ return {
45
+ passed: failing.every((diagnostic) => diagnostic.severity !== 'error'),
46
+ diagnostics: resolved,
47
+ };
48
+ }
49
+ /** Remplace les commentaires par des espaces, en gardant les positions. */
50
+ export function stripComments(text) {
51
+ let result = '';
52
+ let index = 0;
53
+ let state = 'code';
54
+ while (index < text.length) {
55
+ const character = text[index];
56
+ const next = text[index + 1];
57
+ if (state === 'code') {
58
+ if (character === '/' && next === '/') {
59
+ state = 'line';
60
+ result += ' ';
61
+ index += 2;
62
+ continue;
63
+ }
64
+ if (character === '/' && next === '*') {
65
+ state = 'block';
66
+ result += ' ';
67
+ index += 2;
68
+ continue;
69
+ }
70
+ if (character === "'")
71
+ state = 'single';
72
+ else if (character === '"')
73
+ state = 'double';
74
+ else if (character === '`')
75
+ state = 'template';
76
+ result += character;
77
+ index += 1;
78
+ continue;
79
+ }
80
+ if (state === 'line') {
81
+ if (character === '\n') {
82
+ state = 'code';
83
+ result += character;
84
+ }
85
+ else
86
+ result += ' ';
87
+ index += 1;
88
+ continue;
89
+ }
90
+ if (state === 'block') {
91
+ if (character === '*' && next === '/') {
92
+ state = 'code';
93
+ result += ' ';
94
+ index += 2;
95
+ continue;
96
+ }
97
+ result += character === '\n' ? '\n' : ' ';
98
+ index += 1;
99
+ continue;
100
+ }
101
+ // Chaînes : on les conserve telles quelles, en respectant l'échappement.
102
+ if (character === '\\') {
103
+ result += text.slice(index, index + 2);
104
+ index += 2;
105
+ continue;
106
+ }
107
+ if ((state === 'single' && character === "'") ||
108
+ (state === 'double' && character === '"') ||
109
+ (state === 'template' && character === '`')) {
110
+ state = 'code';
111
+ }
112
+ result += character;
113
+ index += 1;
114
+ }
115
+ return result;
116
+ }
117
+ function readConfig(rootDir) {
118
+ const file = join(rootDir, CONFIG_FILE);
119
+ if (!existsSync(file))
120
+ return {};
121
+ try {
122
+ return JSON.parse(readFileSync(file, 'utf8'));
123
+ }
124
+ catch {
125
+ return {};
126
+ }
127
+ }
128
+ function collectFiles(directory, config) {
129
+ const result = [];
130
+ for (const entry of readdirSync(directory, { withFileTypes: true })) {
131
+ if (entry.isDirectory() && IGNORED.has(entry.name))
132
+ continue;
133
+ const file = join(directory, entry.name);
134
+ if ((config.exclude ?? []).some((fragment) => file.includes(fragment))) {
135
+ continue;
136
+ }
137
+ if (entry.isDirectory())
138
+ result.push(...collectFiles(file, config));
139
+ else if (SOURCE_EXTENSIONS.has(entry.name.slice(entry.name.lastIndexOf('.'))) &&
140
+ !/(?:\.spec|\.test)\.[^.]+$/.test(entry.name) &&
141
+ !/(?:dependency-graph|security-check)\.[^.]+$/.test(entry.name))
142
+ result.push(file);
143
+ }
144
+ return result;
145
+ }
146
+ function checkPattern(diagnostics, rootDir, file, text, pattern, code, message, severity = 'error', raw = text) {
147
+ for (const match of text.matchAll(pattern)) {
148
+ push(diagnostics, rootDir, file, raw, match.index ?? 0, code, message, severity);
149
+ }
150
+ }
151
+ function push(diagnostics, rootDir, file, text, index, code, message, severity = 'error') {
152
+ if (isIgnored(text, index, code))
153
+ return;
154
+ diagnostics.push({
155
+ code,
156
+ file: relative(rootDir, file),
157
+ line: lineAt(text, index),
158
+ message,
159
+ severity,
160
+ });
161
+ }
162
+ /** Exemption ligne à ligne, sur la ligne concernée ou celle du dessus. */
163
+ function isIgnored(text, index, code) {
164
+ const lines = text.slice(0, index).split('\n');
165
+ const current = lines[lines.length - 1] ?? '';
166
+ const previous = lines[lines.length - 2] ?? '';
167
+ const rest = text.slice(index).split('\n')[0] ?? '';
168
+ for (const candidate of [current + rest, previous]) {
169
+ const match = IGNORE_COMMENT.exec(candidate);
170
+ if (match && (match[1] === undefined || match[1] === code))
171
+ return true;
172
+ }
173
+ return false;
174
+ }
175
+ /** Un `_blank` sans `rel` laisse la page ouverte piloter l'onglet d'origine. */
176
+ function checkBlankTargets(diagnostics, rootDir, file, text, raw) {
177
+ for (const match of text.matchAll(/\btarget\s*[:=]\s*['"]_blank['"]/g)) {
178
+ const index = match.index ?? 0;
179
+ const around = text.slice(Math.max(0, index - 200), index + 200);
180
+ if (/\brel\s*[:=]\s*['"][^'"]*(?:noopener|noreferrer)/.test(around))
181
+ continue;
182
+ push(diagnostics, rootDir, file, raw, index, 'CRAFT_SECURITY_BLANK_TARGET', 'A _blank target needs rel="noopener noreferrer".', 'warning');
183
+ }
184
+ }
185
+ function checkTransferSnapshot(diagnostics, rootDir, file, text, raw) {
186
+ for (const match of text.matchAll(/\bcaptureCraftTransferSnapshot\s*\(/g)) {
187
+ const call = text.slice(match.index ?? 0, (match.index ?? 0) + 400);
188
+ if (!/policy/.test(call)) {
189
+ push(diagnostics, rootDir, file, raw, match.index ?? 0, 'CRAFT_SECURITY_TRANSFER_IMPLICIT', 'SSR transfer requires an explicit policy.');
190
+ }
191
+ }
192
+ for (const match of text.matchAll(/\brenderCraft\s*\(\s*\{/g)) {
193
+ const call = text.slice(match.index ?? 0, (match.index ?? 0) + 600);
194
+ if (!/securityPolicy/.test(call)) {
195
+ push(diagnostics, rootDir, file, raw, match.index ?? 0, 'CRAFT_SECURITY_RENDER_POLICY_MISSING', 'renderCraft requires an explicit securityPolicy.', 'warning');
196
+ }
197
+ }
198
+ }
199
+ function checkServerOptions(diagnostics, rootDir, file, text, raw) {
200
+ for (const match of text.matchAll(/\bcreateServer\s*\(\s*\{/g)) {
201
+ const start = match.index ?? 0;
202
+ const end = text.indexOf('\n}', start);
203
+ const fragment = text.slice(start, end === -1 ? start + 2_000 : end);
204
+ // `createServer` de node:http ne prend pas de registre de fonctions.
205
+ if (!/functions\s*:/.test(fragment))
206
+ continue;
207
+ if (!/timeoutMs/.test(fragment) || !/maxBodyBytes/.test(fragment)) {
208
+ push(diagnostics, rootDir, file, text, start, 'CRAFT_SECURITY_SERVER_LIMITS_MISSING', 'Server functions require timeoutMs and maxBodyBytes limits.');
209
+ }
210
+ }
211
+ }
212
+ function checkExpiredExceptions(diagnostics, rootDir, file, text, raw) {
213
+ const today = new Date().toISOString().slice(0, 10);
214
+ for (const match of text.matchAll(/expires\s*:\s*['"](\d{4}-\d{2}-\d{2})['"]/g)) {
215
+ if (match[1] < today) {
216
+ push(diagnostics, rootDir, file, raw, match.index ?? 0, 'CRAFT_SECURITY_EXCEPTION_EXPIRED', `Security exception expired on ${match[1]}.`);
217
+ }
218
+ }
219
+ }
220
+ function lineAt(text, index) {
221
+ return text.slice(0, index).split('\n').length;
222
+ }
223
+ //# sourceMappingURL=security-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-check.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/security-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Architecture predicates over the style side of the graph.
3
+ *
4
+ * The **first** one to reach for is `extractionGaps`. A rule that comes back
5
+ * green on an incomplete graph gives exactly the false confidence of a matrix
6
+ * that is not tight: the answer looks like a guarantee and is an artefact of
7
+ * what was never looked at.
8
+ */
9
+ import type { DependencyGraph } from './dependency-graph.ts';
10
+ import { matrixSizeOf, type StyleDumpClass } from './style-graph.ts';
11
+ /** Components the graph knows nothing about, style-wise. Read this first. */
12
+ export declare const extractionGaps: (graph: DependencyGraph) => readonly string[];
13
+ /** How many captures a sheet class costs, by class id. */
14
+ export declare const matrixSize: (graph: DependencyGraph) => Readonly<Record<string, number>>;
15
+ /**
16
+ * What a component costs to capture: the product of the sheets it renders.
17
+ *
18
+ * The product, not the sum — the sheets are on screen together. This is the
19
+ * number the plan wants watched per route, because it is the CI bill.
20
+ */
21
+ export declare function matrixSizeByComponent(graph: DependencyGraph): Readonly<Record<string, number>>;
22
+ /** Obligations required somewhere and discharged nowhere in this graph. */
23
+ export declare function undischargedObligations(graph: DependencyGraph): readonly string[];
24
+ /** Sheet classes that discharge something — the layout layer, in practice. */
25
+ export declare const dischargers: (graph: DependencyGraph) => readonly string[];
26
+ /**
27
+ * The custom properties an axis writes, by axis.
28
+ *
29
+ * This is what makes "the colour-scheme axis only repaints" checkable instead
30
+ * of asserted: an axis that writes a length somewhere shows up here with it.
31
+ */
32
+ export declare function varsWrittenBy(graph: DependencyGraph): Readonly<Record<string, readonly string[]>>;
33
+ /**
34
+ * Properties an axis writes that are **not** custom properties.
35
+ *
36
+ * An axis constrained to colours must show up empty here. One entry means the
37
+ * axis moves a box, and every reduction that assumed otherwise is wrong.
38
+ */
39
+ export declare function propertiesWrittenBy(graph: DependencyGraph): Readonly<Record<string, readonly string[]>>;
40
+ /** Declared variables nothing reads, and read variables nothing declares. */
41
+ export declare function danglingVars(graph: DependencyGraph): {
42
+ readonly unread: readonly string[];
43
+ readonly undeclared: readonly string[];
44
+ };
45
+ /** Every escape hatch taken, with the reason its author gave. */
46
+ export declare function unproven(graph: DependencyGraph): readonly string[];
47
+ /**
48
+ * What a change to a token or a variable can be seen in.
49
+ *
50
+ * The gain that pays for the visual CI: changing one colour should recapture
51
+ * the scenarios reachable from it, not the whole suite. Conservative on
52
+ * purpose — a node the graph does not know reaches everything.
53
+ */
54
+ export declare function impactedClasses(graph: DependencyGraph, changed: readonly string[]): readonly string[];
55
+ export type { StyleDumpClass };
56
+ export { matrixSizeOf };
@@ -0,0 +1,142 @@
1
+ import { matrixSizeOf } from "./style-graph.js";
2
+ const nodesOf = (graph, kind) => graph.nodes.filter((node) => node.kind === kind);
3
+ const detailsOf = (node, key) => (node.details?.[key] ?? undefined);
4
+ const edgesOf = (graph, kind) => graph.edges.filter((edge) => edge.kind === kind);
5
+ /** Components the graph knows nothing about, style-wise. Read this first. */
6
+ export const extractionGaps = (graph) => (graph.diagnostics ?? [])
7
+ .filter((diagnostic) => diagnostic.code === 'component-without-style-class' ||
8
+ diagnostic.code === 'style-class-missing-from-dump')
9
+ .map((diagnostic) => diagnostic.message)
10
+ .sort();
11
+ /** How many captures a sheet class costs, by class id. */
12
+ export const matrixSize = (graph) => Object.fromEntries(nodesOf(graph, 'style-class').map((node) => [
13
+ node.label,
14
+ detailsOf(node, 'matrixSize') ?? 1,
15
+ ]));
16
+ /**
17
+ * What a component costs to capture: the product of the sheets it renders.
18
+ *
19
+ * The product, not the sum — the sheets are on screen together. This is the
20
+ * number the plan wants watched per route, because it is the CI bill.
21
+ */
22
+ export function matrixSizeByComponent(graph) {
23
+ const sizeById = new Map(nodesOf(graph, 'style-class').map((node) => [
24
+ node.id,
25
+ detailsOf(node, 'matrixSize') ?? 1,
26
+ ]));
27
+ const totals = new Map();
28
+ for (const edge of edgesOf(graph, 'styled-by')) {
29
+ totals.set(edge.from, (totals.get(edge.from) ?? 1) * (sizeById.get(edge.to) ?? 1));
30
+ }
31
+ return Object.fromEntries([...totals].map(([id, total]) => [
32
+ graph.nodes.find((node) => node.id === id)?.label ?? id,
33
+ total,
34
+ ]));
35
+ }
36
+ /** Obligations required somewhere and discharged nowhere in this graph. */
37
+ export function undischargedObligations(graph) {
38
+ const discharged = new Set(edgesOf(graph, 'discharges').map((edge) => edge.to));
39
+ return [
40
+ ...new Set(edgesOf(graph, 'requires')
41
+ .filter((edge) => !discharged.has(edge.to))
42
+ .map((edge) => edge.to.replace(/^obligation:/, ''))),
43
+ ].sort();
44
+ }
45
+ /** Sheet classes that discharge something — the layout layer, in practice. */
46
+ export const dischargers = (graph) => [
47
+ ...new Set(edgesOf(graph, 'discharges').map((edge) => graph.nodes.find((node) => node.id === edge.from)?.label ?? edge.from)),
48
+ ].sort();
49
+ /**
50
+ * The custom properties an axis writes, by axis.
51
+ *
52
+ * This is what makes "the colour-scheme axis only repaints" checkable instead
53
+ * of asserted: an axis that writes a length somewhere shows up here with it.
54
+ */
55
+ export function varsWrittenBy(graph) {
56
+ const byAxis = new Map();
57
+ for (const node of nodesOf(graph, 'style-atom')) {
58
+ const property = detailsOf(node, 'property');
59
+ const conditions = detailsOf(node, 'conditions') ?? [];
60
+ if (!property?.startsWith('--'))
61
+ continue;
62
+ for (const condition of conditions) {
63
+ const axis = condition.split(':')[0];
64
+ const known = byAxis.get(axis) ?? new Set();
65
+ known.add(property);
66
+ byAxis.set(axis, known);
67
+ }
68
+ }
69
+ return Object.fromEntries([...byAxis].map(([axis, names]) => [axis, [...names].sort()]));
70
+ }
71
+ /**
72
+ * Properties an axis writes that are **not** custom properties.
73
+ *
74
+ * An axis constrained to colours must show up empty here. One entry means the
75
+ * axis moves a box, and every reduction that assumed otherwise is wrong.
76
+ */
77
+ export function propertiesWrittenBy(graph) {
78
+ const byAxis = new Map();
79
+ for (const node of nodesOf(graph, 'style-atom')) {
80
+ const property = detailsOf(node, 'property');
81
+ const conditions = detailsOf(node, 'conditions') ?? [];
82
+ if (!property || property.startsWith('--'))
83
+ continue;
84
+ for (const condition of conditions) {
85
+ const axis = condition.split(':')[0];
86
+ const known = byAxis.get(axis) ?? new Set();
87
+ known.add(property);
88
+ byAxis.set(axis, known);
89
+ }
90
+ }
91
+ return Object.fromEntries([...byAxis].map(([axis, names]) => [axis, [...names].sort()]));
92
+ }
93
+ /** Declared variables nothing reads, and read variables nothing declares. */
94
+ export function danglingVars(graph) {
95
+ const declared = new Set(nodesOf(graph, 'css-var').map((node) => node.label));
96
+ const read = new Set(edgesOf(graph, 'reads-var').map((edge) => edge.to.replace(/^css-var:/, '')));
97
+ return {
98
+ unread: [...declared].filter((name) => !read.has(name)).sort(),
99
+ undeclared: [...read].filter((name) => !declared.has(name)).sort(),
100
+ };
101
+ }
102
+ /** Every escape hatch taken, with the reason its author gave. */
103
+ export function unproven(graph) {
104
+ const reasons = new Set();
105
+ for (const node of [
106
+ ...nodesOf(graph, 'style-class'),
107
+ ...nodesOf(graph, 'style-atom'),
108
+ ]) {
109
+ const value = node.details?.['unproven'];
110
+ if (typeof value === 'string' && value)
111
+ reasons.add(`${node.label}: ${value}`);
112
+ if (Array.isArray(value)) {
113
+ for (const reason of value)
114
+ reasons.add(`${node.label}: ${reason}`);
115
+ }
116
+ }
117
+ return [...reasons].sort();
118
+ }
119
+ /**
120
+ * What a change to a token or a variable can be seen in.
121
+ *
122
+ * The gain that pays for the visual CI: changing one colour should recapture
123
+ * the scenarios reachable from it, not the whole suite. Conservative on
124
+ * purpose — a node the graph does not know reaches everything.
125
+ */
126
+ export function impactedClasses(graph, changed) {
127
+ const wanted = new Set(changed);
128
+ const hit = new Set();
129
+ for (const edge of graph.edges) {
130
+ if (edge.kind !== 'reads-var' && edge.kind !== 'declares-var')
131
+ continue;
132
+ const name = edge.to.replace(/^css-var:/, '');
133
+ if (!wanted.has(name))
134
+ continue;
135
+ const node = graph.nodes.find((entry) => entry.id === edge.from);
136
+ if (node)
137
+ hit.add(node.label);
138
+ }
139
+ return [...hit].sort();
140
+ }
141
+ export { matrixSizeOf };
142
+ //# sourceMappingURL=style-architecture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-architecture.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/style-architecture.ts"],"names":[],"mappings":"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"}