@ksmv/ui-checks 0.3.1 → 0.3.2
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/CHANGELOG.md +5 -0
- package/README.md +1 -1
- package/dist/evidence.js +12 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.2 - 2026-10-01
|
|
4
|
+
|
|
5
|
+
- **O hash das fontes do tema deixa de depender do fim de linha do checkout.** Num repositório sem regra de fim de linha, o mesmo commit sai com CRLF no Windows e com LF no Linux. Na 0.3.1 e anteriores o hash cobria os bytes do arquivo, então a evidência capturada num sistema era recusada no outro, com código 2: verde na máquina de quem capturou e vermelho no CI. `CRLF` passa a contar como `LF`; qualquer outra diferença continua mudando o hash.
|
|
6
|
+
- **Quem tem fontes de tema em CRLF precisa capturar a evidência de novo uma vez**, porque o hash delas mudou. Evidência de fontes em LF continua válida.
|
|
7
|
+
|
|
3
8
|
## 0.3.1 - 2026-09-30
|
|
4
9
|
|
|
5
10
|
- **O CLI volta a rodar quando é chamado por um link simbólico.** Na 0.3.0 e anteriores, pelo `npx`, por um script npm ou pelo `node_modules/.bin` no Linux e no macOS, e em qualquer sistema quando `node_modules` é um link ou uma junção, o comando não executava nada e saía com código `0`: uma verificação verde que não tinha acontecido. A detecção do ponto de entrada passa a comparar os caminhos reais. **Quem roda o verificador num CI Linux deve atualizar e conferir que o passo de fato imprime o relatório.**
|
package/README.md
CHANGED
|
@@ -82,7 +82,7 @@ A evidência não é uma exceção manual. O arquivo é recusado, com código `2
|
|
|
82
82
|
|
|
83
83
|
- `capturedAt` está no futuro;
|
|
84
84
|
- os seletores diferem dos configurados;
|
|
85
|
-
- o hash das fontes diverge, ou seja, o tema mudou depois da captura;
|
|
85
|
+
- o hash das fontes diverge, ou seja, o tema mudou depois da captura (o fim de linha não conta: o mesmo arquivo em CRLF e em LF tem o mesmo hash);
|
|
86
86
|
- a identidade de um dos contratos diverge da instalada, ou seja, o pacote React mudou depois da captura;
|
|
87
87
|
- falta algum token exigido, ou algum valor ainda contém `var(...)`.
|
|
88
88
|
|
package/dist/evidence.js
CHANGED
|
@@ -16,12 +16,23 @@ function normalizedFiles(root, files) {
|
|
|
16
16
|
return { absolute, path: fromRoot };
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* The same commit is checked out with CRLF on one machine and LF on another
|
|
21
|
+
* when the repository has no end-of-line rule. The hash says whether the theme
|
|
22
|
+
* changed since the capture, and a line ending is not a change: CRLF counts as
|
|
23
|
+
* LF. A lone CR is left alone, and so is everything else.
|
|
24
|
+
*/
|
|
25
|
+
function withLineFeeds(content) {
|
|
26
|
+
return content.includes("\r\n")
|
|
27
|
+
? Buffer.from(content.toString("latin1").replaceAll("\r\n", "\n"), "latin1")
|
|
28
|
+
: content;
|
|
29
|
+
}
|
|
19
30
|
export async function computeThemeSourceHash(root, files) {
|
|
20
31
|
const hash = createHash("sha256");
|
|
21
32
|
for (const file of normalizedFiles(root, files)) {
|
|
22
33
|
hash.update(file.path);
|
|
23
34
|
hash.update("\0");
|
|
24
|
-
hash.update(await readFile(file.absolute));
|
|
35
|
+
hash.update(withLineFeeds(await readFile(file.absolute)));
|
|
25
36
|
hash.update("\0");
|
|
26
37
|
}
|
|
27
38
|
return `sha256:${hash.digest("hex")}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ksmv/ui-checks",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Static and computed quality checks for semantic UI token contracts.",
|
|
5
5
|
"keywords": ["accessibility", "design-tokens", "quality", "static-analysis"],
|
|
6
6
|
"license": "Apache-2.0",
|