@noeva/analytics-core 0.3.0 → 0.3.1
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 +7 -0
- package/package.json +1 -1
- package/pubblica.js +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
Le versioni del pacchetto che i repository dei progetti installano (ADR 0005). Prima di
|
|
4
4
|
`analytics upgrade` si legge cosa cambia fra la versione installata e la nuova.
|
|
5
5
|
|
|
6
|
+
## 0.3.1 — 6 novembre 2026
|
|
7
|
+
|
|
8
|
+
- `analytics pubblica` non segue piu' i redirect: un contenitore senza la rotta
|
|
9
|
+
`/_pagine/` manda al login con un 302, e la 0.3.0 prendeva la pagina di login (200)
|
|
10
|
+
per una pubblicazione riuscita. Ora si ferma e dice che il contenitore va deployato;
|
|
11
|
+
una risposta vale solo se e' il `{ok: true}` del contenitore.
|
|
12
|
+
|
|
6
13
|
## 0.3.0 — 6 novembre 2026
|
|
7
14
|
|
|
8
15
|
Il repository del progetto basta a se stesso (ADR 0005): pubblica pagine e modello e
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noeva/analytics-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Gli strumenti di un progetto NOEVA Analytics nel suo repository: moduli di pagina, snapshot, verifica dello standard e kit dell'agente (ADR 0005).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/pubblica.js
CHANGED
|
@@ -145,9 +145,12 @@ export async function chiediBiglietto({ progetto, versione, workspace, tipo, env
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
async function chiama(fetchImpl, metodo, url, biglietto, corpo, tipo) {
|
|
148
|
+
// Niente redirect: un contenitore senza la rotta manda al login con un 302, e
|
|
149
|
+
// seguirlo darebbe un 200 (la pagina di login) scambiato per una pubblicazione.
|
|
148
150
|
const r = await fetchImpl(url, {
|
|
149
151
|
method: metodo,
|
|
150
152
|
body: corpo,
|
|
153
|
+
redirect: 'manual',
|
|
151
154
|
headers: {
|
|
152
155
|
Authorization: `Bearer ${biglietto}`,
|
|
153
156
|
'User-Agent': 'noeva-analytics-core',
|
|
@@ -157,9 +160,12 @@ async function chiama(fetchImpl, metodo, url, biglietto, corpo, tipo) {
|
|
|
157
160
|
const testo = await r.text();
|
|
158
161
|
let risposta;
|
|
159
162
|
try { risposta = JSON.parse(testo); } catch { risposta = { errore: testo.slice(0, 200) }; }
|
|
160
|
-
if (!r.ok) {
|
|
163
|
+
if (!r.ok || risposta.ok !== true) {
|
|
161
164
|
const dettaglio = risposta.mancanti ? ` (${risposta.mancanti.join(', ')})` : '';
|
|
162
|
-
|
|
165
|
+
const perche = r.status >= 300 && r.status < 400
|
|
166
|
+
? `rimanda a ${r.headers.get('Location') ?? '?'}: il contenitore non ha questa rotta (va deployato?)`
|
|
167
|
+
: (risposta.errore ?? '');
|
|
168
|
+
throw new ErroreConfig(`${metodo} ${new URL(url).pathname}: ${r.status} ${perche}${dettaglio}`);
|
|
163
169
|
}
|
|
164
170
|
return risposta;
|
|
165
171
|
}
|