1005 lines
50 KiB
Plaintext
1005 lines
50 KiB
Plaintext
|
|
$ biome check .
|
|||
|
|
.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━
|
|||
|
|
|
|||
|
|
! Invert blocks when performing a negation test.
|
|||
|
|
|
|||
|
|
79 │ }, [])
|
|||
|
|
80 │
|
|||
|
|
> 81 │ const level = !info
|
|||
|
|
│ ^^^^^
|
|||
|
|
> 82 │ ? ""
|
|||
|
|
...
|
|||
|
|
> 88 │ ? "AA Large"
|
|||
|
|
> 89 │ : "Fail"
|
|||
|
|
│ ^^^^^^^^
|
|||
|
|
90 │
|
|||
|
|
91 │ return (
|
|||
|
|
|
|||
|
|
i Safe fix: Invert the condition and the blocks.
|
|||
|
|
|
|||
|
|
79 79 │ }, [])
|
|||
|
|
80 80 │
|
|||
|
|
81 │ - ··const·level·=·!info
|
|||
|
|
82 │ - ····?·""
|
|||
|
|
83 │ - ····:·info.ratio·>=·7
|
|||
|
|
81 │ + ··const·level·=·info
|
|||
|
|
82 │ + ····?·info.ratio·>=·7
|
|||
|
|
84 83 │ ? "AAA"
|
|||
|
|
85 84 │ : info.ratio >= 4.5
|
|||
|
|
······· │
|
|||
|
|
87 86 │ : info.ratio >= 3
|
|||
|
|
88 87 │ ? "AA Large"
|
|||
|
|
89 │ - ··········:·"Fail"
|
|||
|
|
88 │ + ··········:·"Fail"
|
|||
|
|
89 │ + ····:·""
|
|||
|
|
90 90 │
|
|||
|
|
91 91 │ return (
|
|||
|
|
|
|||
|
|
|
|||
|
|
.agents/skills/shadcn/assets/showcase/color-pair.tsx:98:7 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━
|
|||
|
|
|
|||
|
|
× The attributes are not sorted.
|
|||
|
|
|
|||
|
|
96 │ )}
|
|||
|
|
97 │ >
|
|||
|
|
> 98 │ <div
|
|||
|
|
│ ^^^^
|
|||
|
|
> 99 │ ref={ref}
|
|||
|
|
...
|
|||
|
|
> 104 │ className="flex h-24 items-end justify-between p-4"
|
|||
|
|
> 105 │ >
|
|||
|
|
│ ^
|
|||
|
|
106 │ <span className="text-2xl font-medium">Aa</span>
|
|||
|
|
107 │ {info && (
|
|||
|
|
|
|||
|
|
i Safe fix: Sort the JSX props.
|
|||
|
|
|
|||
|
|
97 97 │ >
|
|||
|
|
98 98 │ <div
|
|||
|
|
99 │ - ········ref={ref}
|
|||
|
|
100 │ - ········style={{
|
|||
|
|
101 │ - ··········backgroundColor:·`var(--${background})`,
|
|||
|
|
102 │ - ··········color:·`var(--${foreground})`,
|
|||
|
|
103 │ - ········}}
|
|||
|
|
104 │ - ········className="flex·h-24·items-end·justify-between·p-4"
|
|||
|
|
99 │ + ········className="flex·h-24·items-end·justify-between·p-4"
|
|||
|
|
100 │ + ········ref={ref}
|
|||
|
|
101 │ + ········style={{
|
|||
|
|
102 │ + ··········backgroundColor:·`var(--${background})`,
|
|||
|
|
103 │ + ··········color:·`var(--${foreground})`,
|
|||
|
|
104 │ + ········}}
|
|||
|
|
105 105 │ >
|
|||
|
|
106 106 │ <span className="text-2xl font-medium">Aa</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
.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<HTMLDivElement>(null)
|
|||
|
|
53 │ - ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(
|
|||
|
|
54 │ - ····null
|
|||
|
|
55 │ - ··)
|
|||
|
|
50 │ + ··const·ref·=·React.useRef<HTMLDivElement>(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 <html> 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 │ - ····<div
|
|||
|
|
93 │ - ······className={cn(
|
|||
|
|
94 │ - ········"flex·flex-col·overflow-hidden·rounded-xl·border",
|
|||
|
|
95 │ - ········className
|
|||
|
|
96 │ - ······)}
|
|||
|
|
97 │ - ····>
|
|||
|
|
88 │ + ····<div·className={cn("flex·flex-col·overflow-hidden·rounded-xl·border",·className)}>
|
|||
|
|
98 89 │ <div
|
|||
|
|
99 90 │ ref={ref}
|
|||
|
|
······· │
|
|||
|
|
116 107 │ --{background} / --{foreground}
|
|||
|
|
117 108 │ </span>
|
|||
|
|
118 │ - ········{info·&&·(
|
|||
|
|
119 │ - ··········<span·className="font-mono·text-xs·text-muted-foreground">
|
|||
|
|
120 │ - ············{info.bg}
|
|||
|
|
121 │ - ··········</span>
|
|||
|
|
122 │ - ········)}
|
|||
|
|
109 │ + ········{info·&&·<span·className="font-mono·text-xs·text-muted-foreground">{info.bg}</span>}
|
|||
|
|
123 110 │ </div>
|
|||
|
|
124 111 │ </div>
|
|||
|
|
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 │ <th />
|
|||
|
|
30 │ {states.map((state) => (
|
|||
|
|
> 31 │ <th
|
|||
|
|
│ ^^^
|
|||
|
|
> 32 │ key={state}
|
|||
|
|
> 33 │ scope="col"
|
|||
|
|
> 34 │ className="text-left font-mono text-xs font-normal text-muted-foreground"
|
|||
|
|
> 35 │ >
|
|||
|
|
│ ^
|
|||
|
|
36 │ {state}
|
|||
|
|
37 │ </th>
|
|||
|
|
|
|||
|
|
i Safe fix: Sort the JSX props.
|
|||
|
|
|
|||
|
|
30 30 │ {states.map((state) => (
|
|||
|
|
31 31 │ <th
|
|||
|
|
32 │ - ················key={state}
|
|||
|
|
33 │ - ················scope="col"
|
|||
|
|
34 │ - ················className="text-left·font-mono·text-xs·font-normal·text-muted-foreground"
|
|||
|
|
32 │ + ················className="text-left·font-mono·text-xs·font-normal·text-muted-foreground"
|
|||
|
|
33 │ + ················key={state}
|
|||
|
|
34 │ + ················scope="col"
|
|||
|
|
35 35 │ >
|
|||
|
|
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 │ <tr key={row}>
|
|||
|
|
> 44 │ <th
|
|||
|
|
│ ^^^
|
|||
|
|
> 45 │ scope="row"
|
|||
|
|
> 46 │ className="pr-4 text-left font-mono text-xs font-normal text-muted-foreground"
|
|||
|
|
> 47 │ >
|
|||
|
|
│ ^
|
|||
|
|
48 │ {row}
|
|||
|
|
49 │ </th>
|
|||
|
|
|
|||
|
|
i Safe fix: Sort the JSX props.
|
|||
|
|
|
|||
|
|
43 43 │ <tr key={row}>
|
|||
|
|
44 44 │ <th
|
|||
|
|
45 │ - ················scope="row"
|
|||
|
|
46 │ - ················className="pr-4·text-left·font-mono·text-xs·font-normal·text-muted-foreground"
|
|||
|
|
45 │ + ················className="pr-4·text-left·font-mono·text-xs·font-normal·text-muted-foreground"
|
|||
|
|
46 │ + ················scope="row"
|
|||
|
|
47 47 │ >
|
|||
|
|
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 <ui-dir> <showcase-dir...>
|
|||
|
|
> 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 <ui-dir> <showcase-dir...>
|
|||
|
|
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 <ui-dir> <showcase-dir...>
|
|||
|
|
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·<ui-dir>·<showcase-dir...>")
|
|||
|
|
11 │ - ··process.exit(1)
|
|||
|
|
10 │ + ··console.error("Usage:·node·showcase-coverage.mjs·<ui-dir>·<showcase-dir...>");
|
|||
|
|
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.
|