@nitida/sdk 0.32.0 → 0.32.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/dist/index.d.ts +39 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/server.js +6 -0
- package/dist/server.js.map +1 -1
- package/dist/web.js +6 -0
- package/dist/web.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +45 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nitida/sdk",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.2",
|
|
4
4
|
"description": "nitida — the media SDK: browser and mobile upload with resume, client-side compression, on-the-fly transforms behind a CDN, video transcode, HLS ladders and AI proxies. Multi-tenant.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
75
|
"react": ">=18",
|
|
76
|
-
"@nitida/asset-client": "^0.20.
|
|
76
|
+
"@nitida/asset-client": "^0.20.3",
|
|
77
77
|
"@nitida/asset-compressor-web": "^0.6.1",
|
|
78
78
|
"@nitida/asset-compressor-native": "^0.2.1"
|
|
79
79
|
},
|
package/src/index.ts
CHANGED
|
@@ -1166,6 +1166,45 @@ export type UploadResult = {
|
|
|
1166
1166
|
* privado, servida sin una queja, que después da 404.
|
|
1167
1167
|
*/
|
|
1168
1168
|
visibility: "public" | "private";
|
|
1169
|
+
/**
|
|
1170
|
+
* La cadena compacta de variantes que EXISTEN (`"lmoqs"`, `"o"`, …).
|
|
1171
|
+
*
|
|
1172
|
+
* ⭐⭐ EL QUINTO DEFECTO DE LA MISMA FAMILIA
|
|
1173
|
+
*
|
|
1174
|
+
* `getAssetUrl` **cambia de estrategia según este campo**. Con él, un preset
|
|
1175
|
+
* de imagen ausente cae a `/t/…width=N/` y el borde lo genera al vuelo:
|
|
1176
|
+
* **200**. Sin él, el builder no sabe qué existe, asume que todo existe, y
|
|
1177
|
+
* devuelve la clave de variante — que da **404 en silencio**.
|
|
1178
|
+
*
|
|
1179
|
+
* Medido 2026-08-25 sobre un asset con `presets: "lmoqs"`:
|
|
1180
|
+
*
|
|
1181
|
+
* sin `presets` → /f/v/<sha>-x.webp 404
|
|
1182
|
+
* con `presets` → /t/format=webp,width=3840/<sha>.webp 200
|
|
1183
|
+
*
|
|
1184
|
+
* `UploadResult` no lo llevaba, así que `getAssetUrl(up, "xl")` —el patrón
|
|
1185
|
+
* que enseña toda la doc— caía del lado malo.
|
|
1186
|
+
*
|
|
1187
|
+
* ⚠️ Es el mismo error que `sha`, `mime` y `oext`, por cuarta vez: **un tipo
|
|
1188
|
+
* de retorno que omite lo que la próxima llamada necesita convierte la
|
|
1189
|
+
* llamada obvia en un 404 silencioso.** Y el guarda que escribí para esto
|
|
1190
|
+
* fijaba los tres *hints* de `original`; `presets` no es un hint, es lo que
|
|
1191
|
+
* gobierna el fallback, así que quedaba afuera de lo que el guarda miraba.
|
|
1192
|
+
*/
|
|
1193
|
+
presets: string;
|
|
1194
|
+
/**
|
|
1195
|
+
* La lista de variantes tal como el servidor las guardó.
|
|
1196
|
+
*
|
|
1197
|
+
* ⭐ **La SEXTA instancia del mismo defecto, y la primera que encontró un
|
|
1198
|
+
* guarda en vez de un usuario.**
|
|
1199
|
+
*
|
|
1200
|
+
* Para `original`, `getAssetUrl` prefiere la URL almacenada sobre cualquier
|
|
1201
|
+
* derivación — porque ESA es la clave real, y derivarla del mime es una
|
|
1202
|
+
* suposición que ya falló dos veces (`-o.bin`, `-o.jpeg`). Sin este campo, el
|
|
1203
|
+
* resultado de `upload()` obligaba a suponer.
|
|
1204
|
+
*
|
|
1205
|
+
* Sale gratis: `upload()` ya espera el DTO, que la trae.
|
|
1206
|
+
*/
|
|
1207
|
+
variants: AssetVariant[];
|
|
1169
1208
|
};
|
|
1170
1209
|
|
|
1171
1210
|
async function computeSha256(
|
|
@@ -1718,6 +1757,8 @@ export class NitidaClient {
|
|
|
1718
1757
|
// DTO does carry `sha` today — but relying on that is how the other
|
|
1719
1758
|
// branch broke, and the value we hashed ourselves is authoritative.
|
|
1720
1759
|
visibility: existing.visibility ?? "public",
|
|
1760
|
+
presets: existing.presets ?? "",
|
|
1761
|
+
variants: existing.variants ?? [],
|
|
1721
1762
|
cdnUrl: this.publicUrlOrNull(
|
|
1722
1763
|
{ ...existing, sha: sha.slice(0, 16) },
|
|
1723
1764
|
this.bestPresetForAsset(existing, mime),
|
|
@@ -1810,6 +1851,8 @@ export class NitidaClient {
|
|
|
1810
1851
|
// `defaultPresetForMime`, which is a guess made before anything exists.
|
|
1811
1852
|
// Guessing was safe only while this branch never ran.
|
|
1812
1853
|
visibility: settled.visibility ?? "public",
|
|
1854
|
+
presets: settled.presets ?? "",
|
|
1855
|
+
variants: settled.variants ?? [],
|
|
1813
1856
|
cdnUrl: this.publicUrlOrNull(
|
|
1814
1857
|
{ ...settled, sha: short },
|
|
1815
1858
|
this.bestPresetForAsset(settled, mime),
|
|
@@ -1867,6 +1910,8 @@ export class NitidaClient {
|
|
|
1867
1910
|
mime: final.mime ?? mime,
|
|
1868
1911
|
oext: final.oext ?? null,
|
|
1869
1912
|
visibility: final.visibility ?? "public",
|
|
1913
|
+
presets: final.presets ?? "",
|
|
1914
|
+
variants: final.variants ?? [],
|
|
1870
1915
|
cdnUrl: this.publicUrlOrNull(final, this.bestPresetForAsset(final, mime)),
|
|
1871
1916
|
};
|
|
1872
1917
|
}
|