sass-template-common 0.10.15 → 0.10.17

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/README.md CHANGED
@@ -1,36 +1,36 @@
1
- # sass-template-common
2
-
3
- Librería web, maqueta de configuración y componentes para proyectos sass.
4
-
5
- ## Publicar nueva versión
6
-
7
- Para que los cambios se reflejen al publicar:
8
-
9
- 1. **Subir versión** (obligatorio; si no, npm rechaza o se usa la misma versión):
10
- ```bash
11
- pnpm version:patch # 0.3.21 → 0.3.22
12
- # o
13
- pnpm version:minor # 0.3.21 → 0.4.0
14
- pnpm version:major # 0.3.21 → 1.0.0
15
- ```
16
-
17
- 2. **Build limpio + publicar**:
18
- ```bash
19
- pnpm run clean && pnpm run build && pnpm publish
20
- ```
21
- O en un solo paso (patch):
22
- ```bash
23
- pnpm release:patch
24
- ```
25
-
26
- 3. **`prepublishOnly`**: Antes de cada `pnpm publish` se ejecuta `clean` + `build`, así siempre se publica un build nuevo.
27
-
28
- 4. **En proyectos que consumen la lib**: Actualizar la dependencia y reinstalar:
29
- ```bash
30
- pnpm update sass-template-common
31
- # o cambiar la versión en package.json y luego
32
- pnpm install
33
- ```
34
- Si usan versión fija (`"0.3.21"`), hay que actualizarla a la nueva (p. ej. `"0.3.22"`).
35
-
36
- **Si no ves los cambios:** comprueba que subiste la versión (`version:patch` o similar), que hiciste `clean` + `build` antes de publicar, y que el proyecto consumidor tiene actualizada la dependencia (o `^0.3.21` y ha ejecutado `pnpm update`).
1
+ # sass-template-common
2
+
3
+ Librería web, maqueta de configuración y componentes para proyectos sass.
4
+
5
+ ## Publicar nueva versión
6
+
7
+ Para que los cambios se reflejen al publicar:
8
+
9
+ 1. **Subir versión** (obligatorio; si no, npm rechaza o se usa la misma versión):
10
+ ```bash
11
+ pnpm version:patch # 0.3.21 → 0.3.22
12
+ # o
13
+ pnpm version:minor # 0.3.21 → 0.4.0
14
+ pnpm version:major # 0.3.21 → 1.0.0
15
+ ```
16
+
17
+ 2. **Build limpio + publicar**:
18
+ ```bash
19
+ pnpm run clean && pnpm run build && pnpm publish
20
+ ```
21
+ O en un solo paso (patch):
22
+ ```bash
23
+ pnpm release:patch
24
+ ```
25
+
26
+ 3. **`prepublishOnly`**: Antes de cada `pnpm publish` se ejecuta `clean` + `build`, así siempre se publica un build nuevo.
27
+
28
+ 4. **En proyectos que consumen la lib**: Actualizar la dependencia y reinstalar:
29
+ ```bash
30
+ pnpm update sass-template-common
31
+ # o cambiar la versión en package.json y luego
32
+ pnpm install
33
+ ```
34
+ Si usan versión fija (`"0.3.21"`), hay que actualizarla a la nueva (p. ej. `"0.3.22"`).
35
+
36
+ **Si no ves los cambios:** comprueba que subiste la versión (`version:patch` o similar), que hiciste `clean` + `build` antes de publicar, y que el proyecto consumidor tiene actualizada la dependencia (o `^0.3.21` y ha ejecutado `pnpm update`).
@@ -1165,7 +1165,10 @@ export declare function fetchMaybeBatched(route: string, fetchFn: (size: number,
1165
1165
  * Cache in-memory + deduplicación de requests en vuelo (misma clave → misma promesa).
1166
1166
  * TTL corto pensado para SSR: evita 4–5 GETs repetidos de menú/banners por instancia.
1167
1167
  */
1168
- export declare function fetchWithConfigCache<T>(cacheKey: string, fetchFn: () => Promise<T>, ttlMs?: number): Promise<T>;
1168
+ export declare function fetchWithConfigCache<T>(cacheKey: string, fetchFn: () => Promise<T>, options?: number | {
1169
+ ttlMs?: number;
1170
+ shouldCache?: (value: T) => boolean;
1171
+ }): Promise<T>;
1169
1172
 
1170
1173
  export declare const Font: ({ config }: {
1171
1174
  config: Config;
@@ -3360,22 +3363,48 @@ export declare type ReportReasonKey = keyof typeof REPORT_REASONS;
3360
3363
  export declare type RequiredGroup = Exclude<keyof ImageSizesContract, 'squareLg'>;
3361
3364
 
3362
3365
  /**
3363
- * Reintenta `fn` con backoff exponencial, acotando cada intento con `timeoutMs`
3364
- * (un fetch a un bucket S3 colgado no debe bloquear el request indefinidamente).
3366
+ * Defaults alineados con AWS SDK JS v3 (`standard` retry + NodeHttpHandler):
3367
+ * - maxAttempts 3 1 intento + 2 reintentos (`retries = 2`)
3368
+ * - backoff exponencial con full jitter (base 100ms, cap 20s)
3369
+ * - timeout por intento (SSR): el SDK no lo pone por defecto; acá sí para no
3370
+ * colgar el render si el bucket no responde. El timeout ESCALA por intento
3371
+ * (2500 → 5000 → 10000): el primer request de una instancia SSR fría paga
3372
+ * DNS + TCP + TLS contra S3 y puede superar los 2500ms; sin escalado, los 3
3373
+ * intentos caen por timeout y la PRIMERA carga se sirve vacía.
3374
+ */
3375
+ export declare const RESILIENT_FETCH_DEFAULTS: {
3376
+ readonly retries: 2;
3377
+ readonly timeoutMs: 2500;
3378
+ readonly maxTimeoutMs: 10000;
3379
+ readonly baseDelayMs: 100;
3380
+ readonly maxDelayMs: 20000;
3381
+ };
3382
+
3383
+ /**
3384
+ * Reintenta `fn` con backoff exponencial + jitter (paridad SDK `standard`),
3385
+ * acotando cada intento con `timeoutMs` (un fetch a un bucket S3 colgado no
3386
+ * debe bloquear el request indefinidamente).
3365
3387
  * Si se agotan los reintentos (o el error no es reintentable, ej. 404), registra el
3366
3388
  * fallo en DebugStore y devuelve `fallback` en vez de rechazar: una falla del bucket
3367
3389
  * no debe tumbar el render del sitio consumidor.
3368
3390
  */
3369
- export declare function resilientFetch<T, F>(fn: () => Promise<T> | T, fallback: F, { label, endpoint, params, retries, timeoutMs, baseDelayMs, }: ResilientFetchOptions): Promise<T | F>;
3391
+ export declare function resilientFetch<T, F>(fn: () => Promise<T> | T, fallback: F, { label, endpoint, params, retries, timeoutMs, maxTimeoutMs, baseDelayMs, maxDelayMs, }: ResilientFetchOptions): Promise<T | F>;
3370
3392
 
3371
3393
  export declare interface ResilientFetchOptions {
3372
3394
  /** Identifica el fetch en logs y en el DebugStore (ej. '/news-list-zone', 'bucket:menu'). */
3373
3395
  label: string;
3374
3396
  endpoint?: string;
3375
3397
  params?: Record<string, any>;
3398
+ /**
3399
+ * Reintentos adicionales tras el primer intento.
3400
+ * Default 2 → 3 intentos totales (paridad con `maxAttempts: 3` del SDK).
3401
+ */
3376
3402
  retries?: number;
3403
+ /** Timeout del PRIMER intento; los reintentos lo duplican hasta `maxTimeoutMs`. */
3377
3404
  timeoutMs?: number;
3405
+ maxTimeoutMs?: number;
3378
3406
  baseDelayMs?: number;
3407
+ maxDelayMs?: number;
3379
3408
  }
3380
3409
 
3381
3410
  /**