synthesisui 0.16.275 → 0.16.276
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/dist/anatomy-read.js +6 -4
- package/dist/attr-shape.js +13 -0
- package/dist/doctor/sketch.js +12 -3
- package/dist/install-marks.js +1 -1
- package/dist/populations.spec-input.js +53 -0
- package/package.json +1 -1
package/dist/anatomy-read.js
CHANGED
|
@@ -214,11 +214,13 @@ function measuredAt(node, sketch) {
|
|
|
214
214
|
if (measured?.passes && Object.keys(measured.passes).length > 0) {
|
|
215
215
|
out.passes = measured.passes;
|
|
216
216
|
/**
|
|
217
|
-
* A FORMA VIAJA COM O VALOR,
|
|
218
|
-
*
|
|
217
|
+
* A FORMA VIAJA COM O VALOR, SEMPRE - inclusive vazia.
|
|
218
|
+
*
|
|
219
|
+
* Um `passes` sem `passesExpr` obriga quem emite a adivinhar entre aspas e chaves, e as duas
|
|
220
|
+
* adivinhações produzem código errado no arquivo dele. A lista vazia responde "nenhuma é
|
|
221
|
+
* expressão"; a AUSÊNCIA responde "este censo é velho", e são coisas diferentes.
|
|
219
222
|
*/
|
|
220
|
-
|
|
221
|
-
out.passesExpr = measured.passesExpr;
|
|
223
|
+
out.passesExpr = measured.passesExpr ?? [];
|
|
222
224
|
}
|
|
223
225
|
if (measured?.repeats)
|
|
224
226
|
out.repeats = measured.repeats;
|
package/dist/attr-shape.js
CHANGED
|
@@ -109,6 +109,19 @@ export function attrText(key, value, isExpression) {
|
|
|
109
109
|
* adaptar e pode citar o nome dela; um arquivo gerado é para compilar.
|
|
110
110
|
*/
|
|
111
111
|
export function emittableAttrs(node, opts) {
|
|
112
|
+
/**
|
|
113
|
+
* FORMA DESCONHECIDA SEGURA TUDO - e este é o caso do censo tirado antes de 22/08.
|
|
114
|
+
*
|
|
115
|
+
* `passesExpr` ausente não quer dizer "nenhuma é expressão": quer dizer que o leitor daquele dia
|
|
116
|
+
* não sabia responder. Tratar como literal escreveria `title="metric.label"` no arquivo dele onde
|
|
117
|
+
* ele escreveu `title={metric.label}` - uma string no lugar de uma variável, que é leitura errada
|
|
118
|
+
* virando código errado, exatamente o defeito que esta família de consertos existe para não
|
|
119
|
+
* cometer.
|
|
120
|
+
*
|
|
121
|
+
* A omissão, ao contrário, é reparável: um `sync` traz a forma e o atributo aparece.
|
|
122
|
+
*/
|
|
123
|
+
if (node.passes && Object.keys(node.passes).length > 0 && !node.passesExpr)
|
|
124
|
+
return { write: "", held: Object.keys(node.passes) };
|
|
112
125
|
const expr = new Set(node.passesExpr ?? []);
|
|
113
126
|
const write = [];
|
|
114
127
|
const held = [];
|
package/dist/doctor/sketch.js
CHANGED
|
@@ -563,9 +563,18 @@ export function sketchOf(source, name) {
|
|
|
563
563
|
const given = passedProps(event.body, conditional);
|
|
564
564
|
if (given) {
|
|
565
565
|
node.passes = given.props;
|
|
566
|
-
/**
|
|
567
|
-
|
|
568
|
-
|
|
566
|
+
/**
|
|
567
|
+
* A FORMA VIAJA SEMPRE QUE O VALOR VIAJA, inclusive VAZIA - e a lista vazia é o ponto.
|
|
568
|
+
*
|
|
569
|
+
* Se `passesExpr` só aparecesse quando há expressão, "ausente" significaria duas coisas ao
|
|
570
|
+
* mesmo tempo: *nenhuma delas é expressão* e *este censo é velho e não sabe responder*. Quem
|
|
571
|
+
* emite não tem como distinguir, e as duas exigem comportamentos OPOSTOS - escrever tudo como
|
|
572
|
+
* literal, ou não escrever nada.
|
|
573
|
+
*
|
|
574
|
+
* Com o array sempre presente, ausência quer dizer uma coisa só: censo tirado antes de
|
|
575
|
+
* 0.16.275. Ver `emittableAttrs`, que segura o atributo nesse caso em vez de adivinhar.
|
|
576
|
+
*/
|
|
577
|
+
node.passesExpr = given.expression;
|
|
569
578
|
}
|
|
570
579
|
const list = repeatOf(source, event.at);
|
|
571
580
|
if (list)
|
package/dist/install-marks.js
CHANGED
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
* é sempre o bump deste PR - nunca o número que o `package.json` já carrega, porque alguém pode
|
|
129
129
|
* publicar no meio.
|
|
130
130
|
*/
|
|
131
|
-
export const MATERIALISER_SINCE = "0.16.
|
|
131
|
+
export const MATERIALISER_SINCE = "0.16.276";
|
|
132
132
|
/**
|
|
133
133
|
* A ÚLTIMA VERSÃO EM QUE O QUE O HOOK RODA MUDOU.
|
|
134
134
|
*
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* ONDE ESTÃO AS POPULAÇÕES MEDIDAS - e por que elas não moram mais na máquina de ninguém.
|
|
5
|
+
*
|
|
6
|
+
* O QUÊ. 23 specs medem contra o censo de dois repositórios reais. Até 22/08 cada um apontava para
|
|
7
|
+
* `~/projects/frontend-hub` ou `~/personal/codelevel-monorepo` na home do dono.
|
|
8
|
+
*
|
|
9
|
+
* POR QUÊ ISSO ERA UM DEFEITO. Não porque quebrava - 35 dos 36 pulavam educadamente quando o
|
|
10
|
+
* arquivo sumia. Porque ficava VERDE. Medido em 22/08: três artefatos do `signalui` já não estavam
|
|
11
|
+
* no disco e 12 testes pulavam em silêncio havia sabe-se lá quanto tempo. Uma suíte que fica verde
|
|
12
|
+
* quando parou de medir é pior que uma vermelha, e essa é a única classe de defeito que esta
|
|
13
|
+
* esteira não pode aceitar num instrumento.
|
|
14
|
+
*
|
|
15
|
+
* E O SEGUNDO CUSTO, que é o do produto: sem a segunda população, toda régua nova passa a ser
|
|
16
|
+
* medida num repositório só. Três réguas escritas em 22/08 estariam erradas por isso.
|
|
17
|
+
*
|
|
18
|
+
* COMO. `fixtures/populations/`, versionado, compacto. `npm run populations:refresh` atualiza a
|
|
19
|
+
* partir dos repositórios vivos quando eles existem - e o que mudou aparece no `git diff`, que é
|
|
20
|
+
* onde uma mudança de insumo pode ser revisada em vez de sentida.
|
|
21
|
+
*
|
|
22
|
+
* GÊMEO de `apps/web/src/lib/ds/populations.ts`: o CLI é publicado standalone e não importa de lá. As
|
|
23
|
+
* duas cópias resolvem o mesmo diretório por caminho relativo, então elas não podem divergir de
|
|
24
|
+
* conteúdo - só de posição.
|
|
25
|
+
*/
|
|
26
|
+
/** A raiz do monorepo, a partir deste arquivo: `packages/cli/src` → 3 níveis acima. */
|
|
27
|
+
const ROOT = join(import.meta.dirname, "..", "..", "..");
|
|
28
|
+
const POPULATIONS = join(ROOT, "fixtures", "populations");
|
|
29
|
+
/**
|
|
30
|
+
* 323 componentes, escopo `apps/web-dashboard`. A população que derruba régua feita em cima da
|
|
31
|
+
* outra: ela não declara um `--animate-*` sequer, escreve o relógio literal na receita, e tem 62
|
|
32
|
+
* componentes cujo primeiro nó do sketch não é a raiz.
|
|
33
|
+
*/
|
|
34
|
+
export const FRONTEND_HUB_CENSUS = join(POPULATIONS, "frontend-hub.census.json");
|
|
35
|
+
/**
|
|
36
|
+
* 59 componentes, escopo `packages/ui`. O caso de teste vivo do dia a dia - é dele que saem os
|
|
37
|
+
* números do `triage` e é nele que a jornada é conferida na tela.
|
|
38
|
+
*/
|
|
39
|
+
export const CODELEVEL_CENSUS = join(POPULATIONS, "codelevel-ui.census.json");
|
|
40
|
+
/**
|
|
41
|
+
* OS REPOSITÓRIOS VIVOS - e estes NÃO estão congelados, de propósito.
|
|
42
|
+
*
|
|
43
|
+
* Um punhado de specs não mede o censo: eles varrem os `.tsx` de ORIGEM para exercitar o COLETOR -
|
|
44
|
+
* `sketchOf`, `rootTag`, o leitor de `cn()`. Congelar 69 arquivos de código de cliente dentro deste
|
|
45
|
+
* repositório é uma decisão diferente de congelar uma medição, e ela não foi tomada.
|
|
46
|
+
*
|
|
47
|
+
* Então estes caminhos continuam dependendo da máquina, e é aqui que isso está DITO. Todo spec que
|
|
48
|
+
* os usa tem que guardar com `existsSync` - sem o guard, a ausência derruba a suíte em vez de pular.
|
|
49
|
+
*
|
|
50
|
+
* Medido em 22/08: 5 specs no `apps/web` e no `packages/cli` estão nesta situação.
|
|
51
|
+
*/
|
|
52
|
+
export const CODELEVEL_REPO = join(homedir(), "personal", "codelevel-monorepo");
|
|
53
|
+
export const FRONTEND_HUB_REPO = join(homedir(), "projects", "frontend-hub");
|
package/package.json
CHANGED