99 │ ref={ref}
...
> 104 │ className="flex h-24 items-end justify-between p-4"
> 105 │ >
│ ^
106 │
107 │ {info && (
i Safe fix: Sort the JSX props.
97 97 │ >
98 98 │
106 106 │
Aa
.agents/skills/shadcn/assets/showcase/color-pair.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Formatter would have printed the following content:
1 │ - import·*·as·React·from·"react"
1 │ + import·*·as·React·from·"react";
2 2 │
3 │ - import·{·cn·}·from·"@/lib/utils"
3 │ + import·{·cn·}·from·"@/lib/utils";
4 4 │
5 5 │ // Resolves any CSS color (hex, rgb, oklch, color-mix) to sRGB by painting one pixel.
6 6 │ // Translucent colors are composited over the backdrop, as the browser would.
7 7 │ function toRgb(color: string, backdrop = "#fff") {
8 │ - ··const·canvas·=·document.createElement("canvas")
9 │ - ··canvas.width·=·canvas.height·=·1
10 │ - ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·})
8 │ + ··const·canvas·=·document.createElement("canvas");
9 │ + ··canvas.width·=·canvas.height·=·1;
10 │ + ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·});
11 11 │ if (!context) {
12 │ - ····return·null
12 │ + ····return·null;
13 13 │ }
14 │ - ··context.fillStyle·=·backdrop
15 │ - ··context.fillRect(0,·0,·1,·1)
16 │ - ··context.fillStyle·=·color
17 │ - ··context.fillRect(0,·0,·1,·1)
18 │ - ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data
19 │ - ··return·[r,·g,·b]
14 │ + ··context.fillStyle·=·backdrop;
15 │ + ··context.fillRect(0,·0,·1,·1);
16 │ + ··context.fillStyle·=·color;
17 │ + ··context.fillRect(0,·0,·1,·1);
18 │ + ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data;
19 │ + ··return·[r,·g,·b];
20 20 │ }
21 21 │
22 22 │ function toHex(rgb: number[]) {
23 │ - ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}`
23 │ + ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}`;
24 24 │ }
25 25 │
26 26 │ function luminance([r, g, b]: number[]) {
27 27 │ const [R, G, B] = [r, g, b].map((value) => {
28 │ - ····const·channel·=·value·/·255
29 │ - ····return·channel·<=·0.03928
30 │ - ······?·channel·/·12.92
31 │ - ······:·((channel·+·0.055)·/·1.055)·**·2.4
32 │ - ··})
33 │ - ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B
28 │ + ····const·channel·=·value·/·255;
29 │ + ····return·channel·<=·0.03928·?·channel·/·12.92·:·((channel·+·0.055)·/·1.055)·**·2.4;
30 │ + ··});
31 │ + ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B;
34 32 │ }
35 33 │
36 34 │ function contrast(a: number[], b: number[]) {
37 │ - ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x)
38 │ - ··return·(light·+·0.05)·/·(dark·+·0.05)
35 │ + ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x);
36 │ + ··return·(light·+·0.05)·/·(dark·+·0.05);
39 37 │ }
40 38 │
······· │
45 43 │ className,
46 44 │ }: {
47 │ - ··name:·string
48 │ - ··background:·string
49 │ - ··foreground:·string
50 │ - ··className?:·string
45 │ + ··name:·string;
46 │ + ··background:·string;
47 │ + ··foreground:·string;
48 │ + ··className?:·string;
51 49 │ }) {
52 │ - ··const·ref·=·React.useRef
(null)
53 │ - ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(
54 │ - ····null
55 │ - ··)
50 │ + ··const·ref·=·React.useRef(null);
51 │ + ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(null);
56 52 │
57 53 │ React.useEffect(() => {
58 │ - ····const·element·=·ref.current
54 │ + ····const·element·=·ref.current;
59 55 │ if (!element) {
60 │ - ······return
56 │ + ······return;
61 57 │ }
62 58 │ // Re-measure when the theme class on changes.
63 59 │ const measure = () => {
64 │ - ······const·style·=·getComputedStyle(element)
65 │ - ······const·page·=·getComputedStyle(document.body).backgroundColor
66 │ - ······const·bg·=·toRgb(style.backgroundColor,·page)
60 │ + ······const·style·=·getComputedStyle(element);
61 │ + ······const·page·=·getComputedStyle(document.body).backgroundColor;
62 │ + ······const·bg·=·toRgb(style.backgroundColor,·page);
67 63 │ if (!bg) {
68 │ - ········return
64 │ + ········return;
69 65 │ }
70 │ - ······const·fg·=·toRgb(style.color,·toHex(bg))
66 │ + ······const·fg·=·toRgb(style.color,·toHex(bg));
71 67 │ if (fg) {
72 │ - ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·})
68 │ + ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·});
73 69 │ }
74 │ - ····}
75 │ - ····measure()
76 │ - ····const·observer·=·new·MutationObserver(measure)
77 │ - ····observer.observe(document.documentElement,·{·attributes:·true·})
78 │ - ····return·()·=>·observer.disconnect()
79 │ - ··},·[])
70 │ + ····};
71 │ + ····measure();
72 │ + ····const·observer·=·new·MutationObserver(measure);
73 │ + ····observer.observe(document.documentElement,·{·attributes:·true·});
74 │ + ····return·()·=>·observer.disconnect();
75 │ + ··},·[]);
80 76 │
81 77 │ const level = !info
······· │
87 83 │ : info.ratio >= 3
88 84 │ ? "AA Large"
89 │ - ··········:·"Fail"
85 │ + ··········:·"Fail";
90 86 │
91 87 │ return (
92 │ - ····
88 │ + ····
98 89 │
118 │ - ········{info·&&·(
119 │ - ··········
120 │ - ············{info.bg}
121 │ - ··········
122 │ - ········)}
109 │ + ········{info·&&·{info.bg}}
123 110 │
124 111 │
125 │ - ··)
112 │ + ··);
126 113 │ }
127 114 │
.agents/skills/shadcn/assets/showcase/preview-states.css format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Formatter would have printed the following content:
11 11 │ }
12 12 │ }
13 │ - @custom-variant·focus-visible·(&:focus-visible,·&[data-preview~="focus"]);
14 │ - @custom-variant·active·(&:active,·&[data-preview~="active"]);
13 │ + @custom-variant·focus-visible·(&:focus-visible,
14 │ + &[data-preview~="focus"]);
15 │ + @custom-variant·active·(&:active,
16 │ + &[data-preview~="active"]);
15 17 │
.agents/skills/shadcn/assets/showcase/state-matrix.tsx:31:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━
× The attributes are not sorted.
29 │
|
30 │ {states.map((state) => (
> 31 │
32 │ key={state}
> 33 │ scope="col"
> 34 │ className="text-left font-mono text-xs font-normal text-muted-foreground"
> 35 │ >
│ ^
36 │ {state}
37 │ |
i Safe fix: Sort the JSX props.
30 30 │ {states.map((state) => (
31 31 │
36 36 │ {state}
.agents/skills/shadcn/assets/showcase/state-matrix.tsx:44:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━
× The attributes are not sorted.
42 │ {rows.map((row) => (
43 │ |
> 44 │ | 45 │ scope="row"
> 46 │ className="pr-4 text-left font-mono text-xs font-normal text-muted-foreground"
> 47 │ >
│ ^
48 │ {row}
49 │ |
i Safe fix: Sort the JSX props.
43 43 │
44 44 │ |
48 48 │ {row}
.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━
× All these imports are only used as types.
> 1 │ import * as React from "react"
│ ^^^^^^^^^^^^^^^^^^^^^^^
2 │
3 │ import { cn } from "@/lib/utils"
i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules.
i Safe fix: Use import type.
1 │ import·type·*·as·React·from·"react"
│ +++++
.agents/skills/shadcn/scripts/showcase-coverage.mjs:4:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━
× The imports and exports are not sorted.
2 │ // Lists installed UI components that no file in the showcase imports.
3 │ // Usage: node showcase-coverage.mjs
> 4 │ import { readdirSync, readFileSync, statSync } from "node:fs"
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5 │ import { basename, extname, join, resolve } from "node:path"
6 │
i Safe fix: Organize Imports (Biome)
1 1 │ #!/usr/bin/env node
2 │ +
2 3 │ // Lists installed UI components that no file in the showcase imports.
3 4 │ // Usage: node showcase-coverage.mjs
4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs"
5 │ + import·{·readFileSync,·readdirSync,·statSync·}·from·"node:fs"
5 6 │ import { basename, extname, join, resolve } from "node:path"
6 7 │
.agents/skills/shadcn/scripts/showcase-coverage.mjs format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Formatter would have printed the following content:
2 2 │ // Lists installed UI components that no file in the showcase imports.
3 3 │ // Usage: node showcase-coverage.mjs
4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs"
5 │ - import·{·basename,·extname,·join,·resolve·}·from·"node:path"
4 │ + import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs";
5 │ + import·{·basename,·extname,·join,·resolve·}·from·"node:path";
6 6 │
7 │ - const·[uiArg,·...roots]·=·process.argv.slice(2)
7 │ + const·[uiArg,·...roots]·=·process.argv.slice(2);
8 8 │
9 9 │ if (!uiArg || roots.length === 0) {
10 │ - ··console.error("Usage:·node·showcase-coverage.mjs··")
11 │ - ··process.exit(1)
10 │ + ··console.error("Usage:·node·showcase-coverage.mjs··");
11 │ + ··process.exit(1);
12 12 │ }
13 13 │
14 │ - const·uiDir·=·resolve(uiArg)
14 │ + const·uiDir·=·resolve(uiArg);
15 15 │
16 16 │ const components = readdirSync(uiDir)
17 17 │ .filter((file) => [".tsx", ".ts"].includes(extname(file)))
18 │ - ··.map((file)·=>·basename(file,·extname(file)))
18 │ + ··.map((file)·=>·basename(file,·extname(file)));
19 19 │
20 20 │ function walk(path) {
21 21 │ if (statSync(path).isFile()) {
22 │ - ····return·[path]
22 │ + ····return·[path];
23 23 │ }
24 24 │
25 25 │ return readdirSync(path).flatMap((entry) => {
26 │ - ····const·child·=·join(path,·entry)
26 │ + ····const·child·=·join(path,·entry);
27 27 │ // Skip the ui directory so components don't count as using each other.
28 28 │ if (entry === "node_modules" || child === uiDir) {
29 │ - ······return·[]
29 │ + ······return·[];
30 30 │ }
31 │ - ····return·walk(child)
32 │ - ··})
31 │ + ····return·walk(child);
32 │ + ··});
33 33 │ }
34 34 │
····· │
38 38 │ .filter((file) => /\.(tsx?|jsx?)$/.test(file))
39 39 │ .map((file) => readFileSync(file, "utf8"))
40 │ - ··.join("\n")
40 │ + ··.join("\n");
41 41 │
42 │ - const·missing·=·components.filter(
43 │ - ··(name)·=>·!new·RegExp(`/ui/${name}["']`).test(source)
44 │ - )
42 │ + const·missing·=·components.filter((name)·=>·!new·RegExp(`/ui/${name}["']`).test(source));
45 43 │
46 │ - console.log(
47 │ - ··`${components.length·-·missing.length}/${components.length}·components·shown.`
48 │ - )
44 │ + console.log(`${components.length·-·missing.length}/${components.length}·components·shown.`);
49 45 │
50 46 │ if (missing.length > 0) {
51 │ - ··console.log(`Missing:·${missing.join(",·")}`)
52 │ - ··process.exit(1)
47 │ + ··console.log(`Missing:·${missing.join(",·")}`);
48 │ + ··process.exit(1);
53 49 │ }
54 50 │
.agents/skills/ui-ux-pro-max/data/data-provenance.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Formatter would have printed the following content:
17 17 │ "verifiedAt": "2026-08-12",
18 18 │ "sla": "needs-review",
19 │ - ······"appliesTo":·[
20 │ - ········"design-system"
21 │ - ······],
19 │ + ······"appliesTo":·["design-system"],
22 20 │ "confidence": 0.88,
23 21 │ "sources": [
········· │
42 40 │ "verifiedAt": "2026-08-12",
43 41 │ "sla": "needs-review",
44 │ - ······"appliesTo":·[
45 │ - ········"design-system"
46 │ - ······],
42 │ + ······"appliesTo":·["design-system"],
47 43 │ "confidence": 0.92,
48 44 │ "sources": [
········· │
67 63 │ "verifiedAt": "2026-08-12",
68 64 │ "sla": "needs-review",
69 │ - ······"appliesTo":·[
70 │ - ········"design-system"
71 │ - ······],
65 │ + ······"appliesTo":·["design-system"],
72 66 │ "confidence": 0.93,
73 67 │ "sources": [
········· │
92 86 │ "verifiedAt": "2026-08-12",
93 87 │ "sla": "needs-review",
94 │ - ······"appliesTo":·[
95 │ - ········"design-system"
96 │ - ······],
88 │ + ······"appliesTo":·["design-system"],
97 89 │ "confidence": 0.93,
98 90 │ "sources": [
········· │
117 109 │ "verifiedAt": "2026-08-12",
118 110 │ "sla": "needs-review",
119 │ - ······"appliesTo":·[
120 │ - ········"design-system"
121 │ - ······],
111 │ + ······"appliesTo":·["design-system"],
122 112 │ "confidence": 0.94,
123 113 │ "sources": [
········· │
142 132 │ "verifiedAt": "2026-08-12",
143 133 │ "sla": "needs-review",
144 │ - ······"appliesTo":·[
145 │ - ········"design-system"
146 │ - ······],
134 │ + ······"appliesTo":·["design-system"],
147 135 │ "confidence": 0.91,
148 136 │ "sources": [
········· │
167 155 │ "verifiedAt": "2026-08-12",
168 156 │ "sla": "needs-review",
169 │ - ······"appliesTo":·[
170 │ - ········"design-system"
171 │ - ······],
157 │ + ······"appliesTo":·["design-system"],
172 158 │ "confidence": 0.93,
173 159 │ "sources": [
········· │
192 178 │ "verifiedAt": "2026-08-12",
193 179 │ "sla": "needs-review",
194 │ - ······"appliesTo":·[
195 │ - ········"design-system"
196 │ - ······],
180 │ + ······"appliesTo":·["design-system"],
197 181 │ "confidence": 0.9,
198 182 │ "sources": [
········· │
217 201 │ "verifiedAt": "2026-08-12",
218 202 │ "sla": "needs-review",
219 │ - ······"appliesTo":·[
220 │ - ········"design-system"
221 │ - ······],
203 │ + ······"appliesTo":·["design-system"],
222 204 │ "confidence": 0.89,
223 205 │ "sources": [
········· │
242 224 │ "verifiedAt": "2026-08-12",
243 225 │ "sla": "needs-review",
244 │ - ······"appliesTo":·[
245 │ - ········"design-system"
246 │ - ······],
226 │ + ······"appliesTo":·["design-system"],
247 227 │ "confidence": 0.93,
248 228 │ "sources": [
········· │
267 247 │ "verifiedAt": "2026-08-12",
268 248 │ "sla": "needs-review",
269 │ - ······"appliesTo":·[
270 │ - ········"design-system"
271 │ - ······],
249 │ + ······"appliesTo":·["design-system"],
272 250 │ "confidence": 0.9,
273 251 │ "sources": [
········· │
292 270 │ "verifiedAt": "2026-08-12",
293 271 │ "sla": "needs-review",
294 │ - ······"appliesTo":·[
295 │ - ········"design-system"
296 │ - ······],
272 │ + ······"appliesTo":·["design-system"],
297 273 │ "confidence": 0.92,
298 274 │ "sources": [
········· │
317 293 │ "verifiedAt": "2026-08-12",
318 294 │ "sla": "needs-review",
319 │ - ······"appliesTo":·[
320 │ - ········"design-system"
321 │ - ······],
295 │ + ······"appliesTo":·["design-system"],
322 296 │ "confidence": 0.88,
323 297 │ "sources": [
········· │
342 316 │ "verifiedAt": "2026-08-12",
343 317 │ "sla": "needs-review",
344 │ - ······"appliesTo":·[
345 │ - ········"design-system"
346 │ - ······],
318 │ + ······"appliesTo":·["design-system"],
347 319 │ "confidence": 0.93,
348 320 │ "sources": [
········· │
367 339 │ "verifiedAt": "2026-08-12",
368 340 │ "sla": "needs-review",
369 │ - ······"appliesTo":·[
370 │ - ········"design-system"
371 │ - ······],
341 │ + ······"appliesTo":·["design-system"],
372 342 │ "confidence": 0.91,
373 343 │ "sources": [
········· │
392 362 │ "verifiedAt": "2026-08-12",
393 363 │ "sla": "needs-review",
394 │ - ······"appliesTo":·[
395 │ - ········"design-system"
396 │ - ······],
364 │ + ······"appliesTo":·["design-system"],
397 365 │ "confidence": 0.95,
398 366 │ "sources": [
········· │
417 385 │ "verifiedAt": "2026-08-12",
418 386 │ "sla": "needs-review",
419 │ - ······"appliesTo":·[
420 │ - ········"design-system"
421 │ - ······],
387 │ + ······"appliesTo":·["design-system"],
422 388 │ "confidence": 0.92,
423 389 │ "sources": [
········· │
442 408 │ "verifiedAt": "2026-08-12",
443 409 │ "sla": "needs-review",
444 │ - ······"appliesTo":·[
445 │ - ········"design-system"
446 │ - ······],
410 │ + ······"appliesTo":·["design-system"],
447 411 │ "confidence": 0.93,
448 412 │ "sources": [
········· │
467 431 │ "verifiedAt": "2026-08-12",
468 432 │ "sla": "needs-review",
469 │ - ······"appliesTo":·[
470 │ - ········"design-system"
471 │ - ······],
433 │ + ······"appliesTo":·["design-system"],
278 more lines truncated
.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-api.json format ━━━━━━━━━━━━━━━━
× Formatter would have printed the following content:
29 29 │ "category": "sans-serif",
30 30 │ "kind": "webfonts#webfont",
31 │ - ······"axes":·[
32 │ - ········{"tag":·"wght",·"start":·100,·"end":·900}
33 │ - ······]
31 │ + ······"axes":·[{·"tag":·"wght",·"start":·100,·"end":·900·}]
34 32 │ }
35 33 │ ]
.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-catalog.json format ━━━━━━━━━━━━
× Formatter would have printed the following content:
3 3 │ "familyMetadataList": [
4 4 │ {
5 │ - ······"family":·"Zeta·Serif",·"displayName":·null,·"category":·"Serif",·"stroke":·"Serif",
6 │ - ······"classifications":·["Display"],·"size":·1000,·"subsets":·["menu",·"latin-ext",·"latin"],
5 │ + ······"family":·"Zeta·Serif",
6 │ + ······"displayName":·null,
7 │ + ······"category":·"Serif",
8 │ + ······"stroke":·"Serif",
9 │ + ······"classifications":·["Display"],
10 │ + ······"size":·1000,
11 │ + ······"subsets":·["menu",·"latin-ext",·"latin"],
7 12 │ "fonts": {
8 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2},
9 │ - ········"700":·{"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2},
10 │ - ········"700i":·{"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2}
11 │ - ······},·"axes":·[],·"designers":·["Zeta·Studio"],
12 │ - ······"lastModified":·"2025-06-02",·"dateAdded":·"2018-04-09",·"popularity":·90,
13 │ - ······"trending":·11,·"defaultSort":·9,·"androidFragment":·null,·"isNoto":·false,
14 │ - ······"colorCapabilities":·[],·"primaryScript":·"",·"primaryLanguage":·"",·"isOpenSource":·true,
15 │ - ······"isBrandFont":·false,·"languages":·[]
13 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·},
14 │ + ········"700":·{·"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2·},
15 │ + ········"700i":·{·"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2·}
16 │ + ······},
17 │ + ······"axes":·[],
18 │ + ······"designers":·["Zeta·Studio"],
19 │ + ······"lastModified":·"2025-06-02",
20 │ + ······"dateAdded":·"2018-04-09",
21 │ + ······"popularity":·90,
22 │ + ······"trending":·11,
23 │ + ······"defaultSort":·9,
24 │ + ······"androidFragment":·null,
25 │ + ······"isNoto":·false,
26 │ + ······"colorCapabilities":·[],
27 │ + ······"primaryScript":·"",
28 │ + ······"primaryLanguage":·"",
29 │ + ······"isOpenSource":·true,
30 │ + ······"isBrandFont":·false,
31 │ + ······"languages":·[]
16 32 │ },
17 33 │ {
18 │ - ······"family":·"Alpha·Sans",·"displayName":·null,·"category":·"Sans·Serif",·"stroke":·"Sans·Serif",
19 │ - ······"classifications":·["Geometric"],·"size":·2000,·"subsets":·["menu",·"vietnamese",·"latin"],
34 │ + ······"family":·"Alpha·Sans",
35 │ + ······"displayName":·null,
36 │ + ······"category":·"Sans·Serif",
37 │ + ······"stroke":·"Sans·Serif",
38 │ + ······"classifications":·["Geometric"],
39 │ + ······"size":·2000,
40 │ + ······"subsets":·["menu",·"vietnamese",·"latin"],
20 41 │ "fonts": {
21 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2},
22 │ - ········"400i":·{"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2},
23 │ - ········"500":·{"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2}
42 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·},
43 │ + ········"400i":·{·"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2·},
44 │ + ········"500":·{·"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}
24 45 │ },
25 │ - ······"axes":·[{"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0}],
26 │ - ······"designers":·["Ada·Type",·"Binh·Fonts"],·"lastModified":·"2025-01-03",
27 │ - ······"dateAdded":·"2020-02-20",·"popularity":·42,·"trending":·7,·"defaultSort":·4,
28 │ - ······"androidFragment":·null,·"isNoto":·false,·"colorCapabilities":·[],·"primaryScript":·"",
29 │ - ······"primaryLanguage":·"",·"isOpenSource":·true,·"isBrandFont":·false,·"languages":·[]
46 │ + ······"axes":·[{·"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0·}],
47 │ + ······"designers":·["Ada·Type",·"Binh·Fonts"],
48 │ + ······"lastModified":·"2025-01-03",
49 │ + ······"dateAdded":·"2020-02-20",
50 │ + ······"popularity":·42,
51 │ + ······"trending":·7,
52 │ + ······"defaultSort":·4,
53 │ + ······"androidFragment":·null,
54 │ + ······"isNoto":·false,
55 │ + ······"colorCapabilities":·[],
56 │ + ······"primaryScript":·"",
57 │ + ······"primaryLanguage":·"",
58 │ + ······"isOpenSource":·true,
59 │ + ······"isBrandFont":·false,
60 │ + ······"languages":·[]
30 61 │ }
31 62 │ ],
.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-core.json format ━━━━━━━━━━━━━
× Formatter would have printed the following content:
15 │ ····"alias":·{·"name":·"back-arrow",·"pascal_name":·"BackArrow"·},
│ + +
.artifacts/account-deletion/cleanup-test.mts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━
× The imports and exports are not sorted.
> 1 │ import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database';
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 │ const env=readDatabaseEnvironment(process.env);
3 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas');
i Safe fix: Organize Imports (Biome)
1 1 │ import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database';
2 │ +
2 3 │ const env=readDatabaseEnvironment(process.env);
3 4 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas');
.artifacts/account-deletion/cleanup-test.mts:3:1 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━
× Block statements are preferred in this position.
1 │ import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database';
2 │ const env=readDatabaseEnvironment(process.env);
> 3 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas');
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 │ const db=createDatabase(env);
5 │ const company='01a17cae-4bba-7070-a394-13f9009c5cfb';
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
3 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')·{·throw·Error('Solo·pruebas');·}
│ +++ ++
.artifacts/account-deletion/cleanup-test.mts:11:2 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
× Block statements are preferred in this position.
9 │ const rows=await db.query('SELECT i.kind,i.id FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction,type:'SELECT'});
10 │ console.info({fixtureCompany:company,items:rows});
> 11 │ for(const table of ['access_references','access_person_references']) await db.query(`DELETE r FROM ${table} r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction});
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12 │ await db.query('DELETE r FROM access_revisions r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction});
13 │ for(const table of ['access_account_values','access_system_values']) await db.query(`DELETE v FROM ${table} v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction});
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
11 │ ·for(const·table·of·['access_references','access_person_references'])·{·await·db.query(`DELETE·r·FROM·${table}·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction});·}
│ ++ ++
.artifacts/account-deletion/cleanup-test.mts:13:2 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
× Block statements are preferred in this position.
11 │ for(const table of ['access_references','access_person_references']) await db.query(`DELETE r FROM ${table} r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction});
12 │ await db.query('DELETE r FROM access_revisions r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction});
> 13 │ for(const table of ['access_account_values','access_system_values']) await db.query(`DELETE v FROM ${table} v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction});
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14 │ await db.query('DELETE i FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction});
15 │ await db.query('DELETE FROM access_workspaces WHERE companyId=:company',{replacements,transaction});
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
13 │ ·for(const·table·of·['access_account_values','access_system_values'])·{·await·db.query(`DELETE·v·FROM·${table}·v·JOIN·access_items·i·ON·i.id=v.ownerId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction});·}
│ ++ ++
.artifacts/account-deletion/cleanup-test.mts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Formatter would have printed the following content:
1 │ - import·{·createDatabase,·readDatabaseEnvironment·}·from·'../../apps/server/src/config/database';
2 │ - const·env=readDatabaseEnvironment(process.env);
3 │ - if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw·Error('Solo·pruebas');
4 │ - const·db=createDatabase(env);
5 │ - const·company='01a17cae-4bba-7070-a394-13f9009c5cfb';
1 │ + import·{·createDatabase,·readDatabaseEnvironment·}·from·"../../apps/server/src/config/database";
2 │ + const·env·=·readDatabaseEnvironment(process.env);
3 │ + if·(env.DB_NAME·!==·"metis_desk_test"·||·env.NODE_ENV·!==·"test")·throw·Error("Solo·pruebas");
4 │ + const·db·=·createDatabase(env);
5 │ + const·company·=·"01a17cae-4bba-7070-a394-13f9009c5cfb";
6 6 │ try {
7 │ - ·await·db.transaction(async·transaction=>{
8 │ - ·const·replacements={company};
9 │ - ·const·rows=await·db.query('SELECT·i.kind,i.id·FROM·access_items·i·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company',{replacements,transaction,type:'SELECT'});
10 │ - ·console.info({fixtureCompany:company,items:rows});
11 │ - ·for(const·table·of·['access_references','access_person_references'])·await·db.query(`DELETE·r·FROM·${table}·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction});
12 │ - ·await·db.query('DELETE·r·FROM·access_revisions·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company',{replacements,transaction});
13 │ - ·for(const·table·of·['access_account_values','access_system_values'])·await·db.query(`DELETE·v·FROM·${table}·v·JOIN·access_items·i·ON·i.id=v.ownerId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction});
14 │ - ·await·db.query('DELETE·i·FROM·access_items·i·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company',{replacements,transaction});
15 │ - ·await·db.query('DELETE·FROM·access_workspaces·WHERE·companyId=:company',{replacements,transaction});
16 │ - ·await·db.query('DELETE·FROM·companies·WHERE·id=:company',{replacements,transaction});
17 │ - ·});
18 │ - }finally·{await·db.close();}
7 │ + ··await·db.transaction(async·(transaction)·=>·{
8 │ + ····const·replacements·=·{·company·};
9 │ + ····const·rows·=·await·db.query(
10 │ + ······"SELECT·i.kind,i.id·FROM·access_items·i·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company",
11 │ + ······{·replacements,·transaction,·type:·"SELECT"·}
12 │ + ····);
13 │ + ····console.info({·fixtureCompany:·company,·items:·rows·});
14 │ + ····for·(const·table·of·["access_references",·"access_person_references"])
15 │ + ······await·db.query(
16 │ + ········`DELETE·r·FROM·${table}·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,
17 │ + ········{·replacements,·transaction·}
18 │ + ······);
19 │ + ····await·db.query(
20 │ + ······"DELETE·r·FROM·access_revisions·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company",
21 │ + ······{·replacements,·transaction·}
22 │ + ····);
23 │ + ····for·(const·table·of·["access_account_values",·"access_system_values"])
24 │ + ······await·db.query(
25 │ + ········`DELETE·v·FROM·${table}·v·JOIN·access_items·i·ON·i.id=v.ownerId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,
26 │ + ········{·replacements,·transaction·}
27 │ + ······);
28 │ + ····await·db.query(
29 │ + ······"DELETE·i·FROM·access_items·i·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company",
30 │ + ······{·replacements,·transaction·}
31 │ + ····);
32 │ + ····await·db.query("DELETE·FROM·access_workspaces·WHERE·companyId=:company",·{
33 │ + ······replacements,
34 │ + ······transaction,
35 │ + ····});
36 │ + ····await·db.query("DELETE·FROM·companies·WHERE·id=:company",·{·replacements,·transaction·});
37 │ + ··});
38 │ + }·finally·{
39 │ + ··await·db.close();
40 │ + }
19 41 │
.artifacts/resources-global-operating-systems-closure/closure-results.json format ━━━━━━━━━━━━━━━━━━
× Formatter would have printed the following content:
8 8 │ "id": "DB-SO-01",
9 9 │ "result": "pass",
10 │ - ······"http":·[
11 │ - ········201
12 │ - ······]
10 │ + ······"http":·[201]
13 11 │ },
14 12 │ {
15 13 │ "id": "DB-SO-02",
16 14 │ "result": "pass",
17 │ - ······"http":·[
18 │ - ········201
19 │ - ······]
15 │ + ······"http":·[201]
20 16 │ },
21 17 │ {
22 18 │ "id": "DB-SO-03",
23 19 │ "result": "pass",
24 │ - ······"http":·[
25 │ - ········409
26 │ - ······]
20 │ + ······"http":·[409]
27 21 │ },
28 22 │ {
29 23 │ "id": "DB-SO-04",
30 24 │ "result": "pass",
31 │ - ······"http":·[
32 │ - ········201
33 │ - ······]
25 │ + ······"http":·[201]
34 26 │ },
35 27 │ {
36 28 │ "id": "DB-SO-05",
37 29 │ "result": "pass",
38 │ - ······"http":·[
39 │ - ········201
40 │ - ······]
30 │ + ······"http":·[201]
41 31 │ },
42 32 │ {
43 33 │ "id": "DB-SO-06",
44 34 │ "result": "pass",
45 │ - ······"http":·[
46 │ - ········201
47 │ - ······]
35 │ + ······"http":·[201]
48 36 │ },
49 37 │ {
50 38 │ "id": "DB-SO-07",
51 39 │ "result": "pass",
52 │ - ······"http":·[
53 │ - ········201,
54 │ - ········200
55 │ - ······]
40 │ + ······"http":·[201,·200]
56 41 │ },
57 42 │ {
58 43 │ "id": "DB-SO-08",
59 44 │ "result": "pass",
60 │ - ······"http":·[
61 │ - ········200
62 │ - ······]
45 │ + ······"http":·[200]
63 46 │ },
64 47 │ {
65 48 │ "id": "DB-SO-09",
66 49 │ "result": "pass",
67 │ - ······"http":·[
68 │ - ········404
69 │ - ······]
50 │ + ······"http":·[404]
70 51 │ },
71 52 │ {
72 53 │ "id": "DB-SO-10",
73 54 │ "result": "pass",
74 │ - ······"http":·[
75 │ - ········404
76 │ - ······]
55 │ + ······"http":·[404]
77 56 │ },
78 57 │ {
79 58 │ "id": "DB-SO-11",
80 59 │ "result": "pass",
81 │ - ······"http":·[
82 │ - ········200
83 │ - ······]
60 │ + ······"http":·[200]
84 61 │ },
85 62 │ {
86 63 │ "id": "DB-SO-12",
87 64 │ "result": "pass",
88 │ - ······"http":·[
89 │ - ········409
90 │ - ······]
65 │ + ······"http":·[409]
91 66 │ },
92 67 │ {
93 68 │ "id": "DB-SO-13",
94 69 │ "result": "pass",
95 │ - ······"http":·[
96 │ - ········200,
97 │ - ········200
98 │ - ······]
70 │ + ······"http":·[200,·200]
99 71 │ },
100 72 │ {
101 73 │ "id": "DB-SO-14",
102 74 │ "result": "pass",
103 │ - ······"http":·[
104 │ - ········200,
105 │ - ········200
106 │ - ······]
75 │ + ······"http":·[200,·200]
107 76 │ },
108 77 │ {
109 78 │ "id": "DB-SO-15",
110 79 │ "result": "pass",
111 │ - ······"http":·[
112 │ - ········409
113 │ - ······]
80 │ + ······"http":·[409]
114 81 │ },
115 82 │ {
116 83 │ "id": "DB-SO-16",
117 84 │ "result": "pass",
118 │ - ······"http":·[
119 │ - ········200,
120 │ - ········200
121 │ - ······]
85 │ + ······"http":·[200,·200]
122 86 │ },
123 87 │ {
124 88 │ "id": "DB-SO-17",
125 89 │ "result": "pass",
126 │ - ······"http":·[
127 │ - ········200
128 │ - ······]
90 │ + ······"http":·[200]
129 91 │ },
130 92 │ {
131 93 │ "id": "DB-SO-18",
132 94 │ "result": "pass",
133 │ - ······"http":·[
134 │ - ········200,
135 │ - ········200
136 │ - ······]
95 │ + ······"http":·[200,·200]
137 96 │ },
138 97 │ {
139 98 │ "id": "DB-SO-19",
87 more lines truncated
.artifacts/resources-global-operating-systems-closure/legacy-evolution.json format ━━━━━━━━━━━━━━━━━
× Formatter would have printed the following content:
99 99 │ "customizationPreserved": true,
100 100 │ "availabilityPreserved": true
101 │ - }
101 │ + }
102 │ +
The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it.
Diagnostics not shown: 166.
Checked 2283 files in 2s. No fixes applied.
Found 179 errors.
Found 2 warnings.
Found 5 infos.
check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Some errors were emitted while running checks.
[ELIFECYCLE] Command failed with exit code 1.
|