@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.
- package/README.md +64 -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 +23 -0
- package/src/bin/craft.js +245 -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 +71 -1
- package/src/scripts/create/create-project.js +1937 -176
- 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
|
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACtI,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,iFAAiF;AACjF,MAAM,cAAc,GAAG,wCAAwC,CAAC;AAEhE,MAAM,UAAU,gBAAgB,CAC9B,UAAgC,EAAE;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,sEAAsE;QACtE,8DAA8D;QAC9D,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,SAAS,KAAK,qEAAqE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/F,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,mGAAmG,EAAE,6BAA6B,EAAE,gEAAgE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACnQ,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,uCAAuC,EAAE,yBAAyB,EAAE,qEAAqE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACxM,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,kEAAkE,EAAE,6BAA6B,EAAE,2DAA2D,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7N,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,8DAA8D,EAAE,iCAAiC,EAAE,kEAAkE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpO,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,kCAAkC,EAAE,2EAA2E,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpM,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,oFAAoF,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACrN,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACzD,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7D,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1D,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,WAAW,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,gEAAgE;YACzE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9C,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK;QAC7C,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,SAAkB,EAAE;QACjD,CAAC,CAAC,UAAU,CACf,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAC7C,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CACxD,CAAC;IACF,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;QACtE,WAAW,EAAE,QAAQ;KACtB,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAiE,MAAM,CAAC;IACjF,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACtC,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,IAAI,IAAI,CAAC;gBACf,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACtC,KAAK,GAAG,OAAO,CAAC;gBAChB,MAAM,IAAI,IAAI,CAAC;gBACf,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,SAAS,KAAK,GAAG;gBAAE,KAAK,GAAG,QAAQ,CAAC;iBACnC,IAAI,SAAS,KAAK,GAAG;gBAAE,KAAK,GAAG,QAAQ,CAAC;iBACxC,IAAI,SAAS,KAAK,GAAG;gBAAE,KAAK,GAAG,UAAU,CAAC;YAC/C,MAAM,IAAI,SAAS,CAAC;YACpB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,IAAI,SAAS,CAAC;YACtB,CAAC;;gBAAM,MAAM,IAAI,GAAG,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACtC,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,IAAI,IAAI,CAAC;gBACf,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YACD,MAAM,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1C,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,yEAAyE;QACzE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACvC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IACE,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,KAAK,GAAG,CAAC;YACzC,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,KAAK,GAAG,CAAC;YACzC,CAAC,KAAK,KAAK,UAAU,IAAI,SAAS,KAAK,GAAG,CAAC,EAC3C,CAAC;YACD,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,SAAS,CAAC;QACpB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAwB,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,MAA2B;IAClE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACvE,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;aAC/D,IACH,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7C,CAAC,6CAA6C,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,WAAiC,EACjC,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,OAAe,EACf,WAA6B,OAAO,EACpC,MAAc,IAAI;IAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CACX,WAAiC,EACjC,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,IAAY,EACZ,OAAe,EACf,WAA6B,OAAO;IAEpC,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;QAAE,OAAO;IACzC,WAAW,CAAC,IAAI,CAAC;QACf,IAAI;QACJ,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;QACzB,OAAO;QACP,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,KAAK,MAAM,SAAS,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gFAAgF;AAChF,SAAS,iBAAiB,CACxB,WAAiC,EACjC,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,GAAW;IAEX,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;QACjE,IAAI,kDAAkD,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,SAAS;QAC9E,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,6BAA6B,EAAE,kDAAkD,EAAE,SAAS,CAAC,CAAC;IAC7I,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAiC,EACjC,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,GAAW;IAEX,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,kCAAkC,EAAE,2CAA2C,CAAC,CAAC;QAC3I,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,sCAAsC,EAAE,kDAAkD,EAAE,SAAS,CAAC,CAAC;QACjK,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,WAAiC,EACjC,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,GAAW;IAEX,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,qEAAqE;QACrE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,sCAAsC,EAAE,6DAA6D,CAAC,CAAC;QACvJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,WAAiC,EACjC,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,GAAW;IAEX,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,4CAA4C,CAAC,EAAE,CAAC;QAChF,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,kCAAkC,EAAE,iCAAiC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5I,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,KAAa;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC"}
|
|
@@ -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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"}
|