synthesisui 0.16.209 → 0.16.211
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/commands/sync.js +2 -0
- package/dist/doctor/style-ledger.js +24 -7
- package/dist/install-marks.js +3 -1
- package/dist/last-sync.js +27 -0
- package/package.json +1 -1
package/dist/commands/sync.js
CHANGED
|
@@ -363,6 +363,8 @@ export async function remeasure(args) {
|
|
|
363
363
|
?.declarations ?? 0,
|
|
364
364
|
seen: sum(led?.counted),
|
|
365
365
|
interpreted: sum(led?.interpreted),
|
|
366
|
+
/** O que não foi lido, por MOTIVO - ver `unread` em `SyncMark`. */
|
|
367
|
+
unread: Object.fromEntries((led?.unread ?? []).map((g) => [g.reason ?? "unknown", g.uses ?? 0])),
|
|
366
368
|
/** O que cada componente LÊ - ver `readings` em `SyncMark`, e o defeito que ele conserta. */
|
|
367
369
|
...(args.cli ? { cli: args.cli } : {}),
|
|
368
370
|
readings: fingerprintReadings(census.components),
|
|
@@ -50,6 +50,25 @@ const SHAPE_LABEL = {
|
|
|
50
50
|
styled: "styled-components",
|
|
51
51
|
runtime: "classes built at runtime",
|
|
52
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* OS MOTIVOS QUE UM LEITOR NOVO ALCANÇA - e por isso os fragmentos deles viajam com o TEXTO.
|
|
55
|
+
*
|
|
56
|
+
* CONJUNTO NOMEADO, e não uma comparação com um literal, porque a comparação já falhou. Isto era
|
|
57
|
+
* `reason === "shape-not-read"`, e em 0.16.209 aquele motivo foi DIVIDIDO em dois: as sete
|
|
58
|
+
* declarações da base tipográfica do repo do dono viraram `binding-not-read` e saíram, caladas, do
|
|
59
|
+
* único lugar que carrega o texto delas. A tela então mostrava UM exemplo de sete, embaixo de um
|
|
60
|
+
* prompt que promete *"the detail page carries each fragment with its file, its line AND the text"*
|
|
61
|
+
* (dono, 11/08).
|
|
62
|
+
*
|
|
63
|
+
* O que o texto compra: um leitor novo roda no servidor sobre o censo já guardado, e o conserto vira
|
|
64
|
+
* um deploy em vez de esperar aquele repositório publicar um CLI novo e re-medir.
|
|
65
|
+
*
|
|
66
|
+
* Um motivo novo que um leitor alcance entra AQUI. Fora daqui ele vira contagem sem lugar.
|
|
67
|
+
*/
|
|
68
|
+
const A_READER_REACHES = new Set([
|
|
69
|
+
"shape-not-read",
|
|
70
|
+
"binding-not-read",
|
|
71
|
+
]);
|
|
53
72
|
const BECAUSE = {
|
|
54
73
|
"shape-not-read": "no reader in this version understands this shape, so the styles it holds reach no recipe",
|
|
55
74
|
"value-not-read": "the shape is read and this value is not - a utility or property outside the scales this project declares",
|
|
@@ -97,13 +116,11 @@ export function buildLedger(cli, seen) {
|
|
|
97
116
|
text: f.text.replace(/\s+/g, " ").trim().slice(0, 160),
|
|
98
117
|
});
|
|
99
118
|
/**
|
|
100
|
-
* SÓ
|
|
119
|
+
* SÓ O QUE UM LEITOR ALCANÇA, E SÓ TEXTO DISTINTO - as duas restrições vieram de medir.
|
|
101
120
|
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* Sobra `shape-not-read`: "nenhum leitor desta versão entende esta forma", que é exatamente a
|
|
106
|
-
* frase que um leitor novo responde.
|
|
121
|
+
* `value-not-read` diz que a forma FOI lida e o valor está fora das escalas deles - texto não
|
|
122
|
+
* ensina nada a leitor nenhum. `computed` é montado em runtime e não existe na fonte.
|
|
123
|
+
* `component-not-admitted` é o portão, não a leitura. Sobram os dois de `A_READER_REACHES`.
|
|
107
124
|
*
|
|
108
125
|
* E TEXTO DISTINTO, porque a primeira versão disto reprovou no spec do repo vivo: guardar todo
|
|
109
126
|
* fragmento deu 723 215 bytes no dashboard dele, contra um teto de 65 536. Oito mil cópias da
|
|
@@ -112,7 +129,7 @@ export function buildLedger(cli, seen) {
|
|
|
112
129
|
* O teto de 512 é declarado e não mudo: `uses` continua contando tudo, então a diferença entre o
|
|
113
130
|
* contado e o que viajou é visível em vez de silenciosa.
|
|
114
131
|
*/
|
|
115
|
-
if (reason
|
|
132
|
+
if (A_READER_REACHES.has(reason) &&
|
|
116
133
|
group.unreadable.length < 512 &&
|
|
117
134
|
!group.unreadable.some((u) => u.text === f.text))
|
|
118
135
|
group.unreadable.push({
|
package/dist/install-marks.js
CHANGED
|
@@ -95,7 +95,9 @@ export const CHECKER_SINCE = "0.16.202";
|
|
|
95
95
|
* chamados de `computed` eram literais no fonte
|
|
96
96
|
* 0.16.209 uma declaração global cujo valor é token JÁ declarado deixou de ser arquivada
|
|
97
97
|
* como "nenhum leitor entende esta forma" - 7 das 13 da base tipográfica dele
|
|
98
|
+
* 0.16.210 e essas 7 voltaram a viajar com o TEXTO: o array `unreadable` era preenchido por
|
|
99
|
+
* comparação com UM literal, e a divisão do motivo as tirou dele em silêncio
|
|
98
100
|
*
|
|
99
101
|
* Um censo medido antes disto carrega as duas leituras erradas.
|
|
100
102
|
*/
|
|
101
|
-
export const READER_SINCE = "0.16.
|
|
103
|
+
export const READER_SINCE = "0.16.210";
|
package/dist/last-sync.js
CHANGED
|
@@ -66,6 +66,29 @@ export async function writeSyncMark(root, mark) {
|
|
|
66
66
|
* parecer um salto enorme. E quando nada mudou ela DIZ que nada mudou: é a resposta mais útil que uma
|
|
67
67
|
* re-medição pode dar, e é a que o relatório longo nunca conseguiu dar em seis execuções.
|
|
68
68
|
*/
|
|
69
|
+
/**
|
|
70
|
+
* OS MOTIVOS QUE MUDARAM DE TAMANHO, nomeados - ver `unread` em `SyncMark`.
|
|
71
|
+
*
|
|
72
|
+
* `undefined` de um lado é marca anterior a este campo, e ali silêncio é a resposta: comparar contra
|
|
73
|
+
* ausência produziria "tudo é novo" na primeira vez, para todo mundo.
|
|
74
|
+
*/
|
|
75
|
+
function unreadDelta(now, before) {
|
|
76
|
+
if (!now.unread || !before.unread)
|
|
77
|
+
return null;
|
|
78
|
+
const keys = [
|
|
79
|
+
...new Set([...Object.keys(before.unread), ...Object.keys(now.unread)]),
|
|
80
|
+
].sort();
|
|
81
|
+
const moved = keys
|
|
82
|
+
.map((k) => ({
|
|
83
|
+
k,
|
|
84
|
+
from: before.unread?.[k] ?? 0,
|
|
85
|
+
to: now.unread?.[k] ?? 0,
|
|
86
|
+
}))
|
|
87
|
+
.filter((m) => m.from !== m.to);
|
|
88
|
+
if (moved.length === 0)
|
|
89
|
+
return null;
|
|
90
|
+
return moved.map((m) => `${m.k} ${m.from} → ${m.to}`).join(", ");
|
|
91
|
+
}
|
|
69
92
|
export function describeDelta(now, before) {
|
|
70
93
|
if (!before)
|
|
71
94
|
return "first measurement recorded here - the next one compares against it";
|
|
@@ -89,6 +112,10 @@ export function describeDelta(now, before) {
|
|
|
89
112
|
const read = readingDelta(now, before);
|
|
90
113
|
if (read)
|
|
91
114
|
parts.push(read);
|
|
115
|
+
/** E o que não foi lido, por motivo - ver `unread` em `SyncMark`. */
|
|
116
|
+
const reasons = unreadDelta(now, before);
|
|
117
|
+
if (reasons)
|
|
118
|
+
parts.push(reasons);
|
|
92
119
|
const when = ago(before.at);
|
|
93
120
|
/**
|
|
94
121
|
* O INSTRUMENTO ANDOU, e isso vem junto do número em vez de depois dele. Ver `cli`.
|
package/package.json
CHANGED