sass-template-common 0.10.41 → 0.10.42

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`).
@@ -853,20 +853,8 @@ export declare const ContentLayoutTema: FC<Props_38>;
853
853
  */
854
854
  export declare const contractWarn: (component: string, field: string, extra?: unknown) => void;
855
855
 
856
- export declare const createAssessment: ({ projectID, recaptchaKey, token, recaptchaAction, apiKey, userAgent, userIpAddress, }: CreateAssessmentParams) => Promise<number | null>;
856
+ export declare const createAssessment: ({ projectID, recaptchaKey, token, recaptchaAction, apiKey, userAgent, userIpAddress, config, }: CreateAssessmentParams) => Promise<number | null>;
857
857
 
858
- /**
859
- * Crea una evaluación para analizar el riesgo de una acción de la IU.
860
- * Usa la API REST de reCAPTCHA Enterprise (sin SDK, ~12MB menos en deploy).
861
- *
862
- * projectID: El ID del proyecto de Google Cloud.
863
- * recaptchaKey: La clave reCAPTCHA (site key) asociada con el sitio.
864
- * token: El token generado obtenido del cliente.
865
- * recaptchaAction: El nombre de la acción que corresponde al token.
866
- * apiKey: API key de Google Cloud para autenticar la petición REST.
867
- * userAgent: (opcional) User-Agent del request para mejor detección.
868
- * userIpAddress: (opcional) IP del usuario para mejor detección.
869
- */
870
858
  declare interface CreateAssessmentParams {
871
859
  projectID: string;
872
860
  recaptchaKey: string;
@@ -875,6 +863,7 @@ declare interface CreateAssessmentParams {
875
863
  apiKey: string;
876
864
  userAgent?: string;
877
865
  userIpAddress?: string;
866
+ config?: Pick<LibraryConfig, 'CONFIG_blockRecaptcha'>;
878
867
  }
879
868
 
880
869
  export declare const cutString: (text: string, length?: number) => string;
@@ -1328,9 +1317,11 @@ export declare function getBucketHttpClient(baseUrl: string, referer: string): A
1328
1317
  * <script src="https://www.google.com/recaptcha/enterprise.js?render=your_site_key"></script>
1329
1318
  * @param captchaAction Nombre de la acción para el captcha
1330
1319
  * @param siteKey La clave del sitio para el captcha
1320
+ * @param config Config del sitio (prop `API_ENV`) para leer el kill switch
1321
+ * `CONFIG_blockRecaptcha`. Si se omite se cae al singleton de `initLibrary`.
1331
1322
  * @returns Una promesa que se resuelve con el token del captcha
1332
1323
  */
1333
- export declare const getCaptchaToken: (captchaAction: captchaActionType, siteKey: string) => Promise<string>;
1324
+ export declare const getCaptchaToken: (captchaAction: captchaActionType, siteKey: string, config?: Pick<LibraryConfig, "CONFIG_blockRecaptcha">) => Promise<string>;
1334
1325
 
1335
1326
  export declare function getComments({ publication, path, size, sizereply, id, lastid, state, apiToken, API_ENV, }: GetCommentsParams): Promise<any>;
1336
1327
 
@@ -1735,6 +1726,21 @@ export declare const isHomePath: (pathname?: string) => boolean;
1735
1726
 
1736
1727
  export declare const isPhotoGallery: (news: NewListResponseData) => boolean | undefined;
1737
1728
 
1729
+ /**
1730
+ * ¿reCAPTCHA está desactivado? Fuente ÚNICA del kill switch
1731
+ * `CONFIG_blockRecaptcha`; la consumen todos los puntos de uso de reCAPTCHA de
1732
+ * la librería (script enterprise, widget v2, generación de token y las tres
1733
+ * verificaciones server-side).
1734
+ *
1735
+ * `cfg` explícito (típicamente el prop `API_ENV` de un componente cliente, o
1736
+ * las `COMMENTS_VARS` de un endpoint) GANA sobre el singleton de `initLibrary`,
1737
+ * que se usa como fallback: en el cliente el singleton puede no estar poblado
1738
+ * porque cada isla hidrata su propio grafo de módulos.
1739
+ *
1740
+ * Default `false` cuando nadie define el flag → comportamiento actual.
1741
+ */
1742
+ export declare function isRecaptchaBlocked(cfg?: Pick<LibraryConfig, 'CONFIG_blockRecaptcha'>): boolean;
1743
+
1738
1744
  export declare class IssuuServices {
1739
1745
  private issuuApi;
1740
1746
  private api;
@@ -1889,6 +1895,35 @@ export declare type LibraryConfig = {
1889
1895
  CAPTCHA_KEY?: string;
1890
1896
  COMMENTS_CAPTCHA_API_KEY?: string;
1891
1897
  CAPTCHA_KEY_V2?: string;
1898
+ /**
1899
+ * [kill switch] Desactiva TODOS los usos de reCAPTCHA de la librería en un
1900
+ * solo lugar. Con `true`:
1901
+ *
1902
+ * - no se inyecta el script de enterprise (`ReCaptchaRender`,
1903
+ * `CommentLazyLoader`),
1904
+ * - no se renderiza el widget v2 (`FormActions`, `ReportPop`),
1905
+ * - `getCaptchaToken` NO toca `window.grecaptcha` y devuelve el sentinel
1906
+ * `RECAPTCHA_DISABLED_TOKEN`,
1907
+ * - las verificaciones server-side (`createAssessment`,
1908
+ * `verifyCaptchaToken`, `verifyCaptchaTokenEnterprise`) cortan antes del
1909
+ * fetch a Google y devuelven "pasó" (score 1 / `true`),
1910
+ * - la validación de forms (`isFormValid`) deja de exigir token.
1911
+ *
1912
+ * Default `false`: el comportamiento es EXACTAMENTE el actual, así que subir
1913
+ * de versión sin declarar el flag no cambia nada en ningún repo (el flag es
1914
+ * puramente aditivo y retro-compatible).
1915
+ *
1916
+ * Es un flag de SEGURIDAD: en `true` los endpoints quedan sin protección
1917
+ * anti-bot, así que se usa para desbloquear un sitio (keys mal
1918
+ * configuradas, cuota agotada, captcha rompiendo el flujo), no como default.
1919
+ *
1920
+ * Los componentes cliente lo leen del prop `API_ENV` (el singleton de
1921
+ * `initLibrary` no está garantizado en cada isla de hidratación), por eso hay
1922
+ * que incluir `CONFIG_blockRecaptcha` en el `API_ENV_KEYS` de cada sitio que
1923
+ * pase config al cliente. Los helpers server-side lo leen del singleton, o
1924
+ * del parámetro explícito cuando lo reciben.
1925
+ */
1926
+ CONFIG_blockRecaptcha?: boolean;
1892
1927
  SHOW_TAG_BY_SECTION?: boolean;
1893
1928
  FETCH_SIZE_MORE_NEWS?: number;
1894
1929
  FETCH_SIZE_RELATED_NEWS?: number;
@@ -1998,9 +2033,11 @@ export declare class MainComponentServices {
1998
2033
  config: any;
1999
2034
  /**
2000
2035
  * @deprecated Ya no se lee: los tamaños salen de `this.contract` (§3). Bigfish
2001
- * pasa `imgSizesVideo` acá (quirk documentado en el snapshot de Fase 0), por eso
2002
- * `this.imgSizes.lg` valía `video.lg`; ahora eso se expresa como `contract.video.lg`.
2003
- * Se mantiene el parámetro posicional por retrocompat hasta Fase 3.
2036
+ * pasaba `imgSizesVideo` acá (quirk documentado en el snapshot de Fase 0), por
2037
+ * eso `this.imgSizes.lg` resolvía a `video.lg` dentro de los destacados. Ese
2038
+ * quirk quedó saldado: los destacados son de NOTAS y hoy leen slots de
2039
+ * `contract.note` (ver cada getter). Se mantiene el parámetro posicional por
2040
+ * retrocompat hasta Fase 3.
2004
2041
  */
2005
2042
  imgSizes: any;
2006
2043
  configVersion: string;
@@ -2807,6 +2844,8 @@ declare type Props_14 = {
2807
2844
  COGNITO_AUTH_PREFIX: string;
2808
2845
  PUBLIC_ENV: string;
2809
2846
  CAPTCHA_KEY: string;
2847
+ /** Kill switch de reCAPTCHA. Sin definir: captcha activo (como hoy). */
2848
+ CONFIG_blockRecaptcha?: boolean;
2810
2849
  PUBLIC_SERVICE_PREFIX?: string;
2811
2850
  PUBLIC_IS_SUB_PUBLICATION?: string;
2812
2851
  FORCE_SUB_PUBLICATION_PREFIX?: string;
@@ -2820,6 +2859,8 @@ declare type Props_15 = {
2820
2859
  COGNITO_AUTH_PREFIX: string;
2821
2860
  PUBLIC_ENV: string;
2822
2861
  CAPTCHA_KEY: string;
2862
+ /** Kill switch de reCAPTCHA. Sin definir: captcha activo (como hoy). */
2863
+ CONFIG_blockRecaptcha?: boolean;
2823
2864
  };
2824
2865
  termsAndConditionsUrl?: string;
2825
2866
  };
@@ -3239,9 +3280,17 @@ declare type Props_9 = {
3239
3280
 
3240
3281
  export declare const Readest: FC<Props_29>;
3241
3282
 
3283
+ /**
3284
+ * Token que devuelve `getCaptchaToken` cuando reCAPTCHA está desactivado por
3285
+ * `CONFIG_blockRecaptcha`. Es un placeholder no vacío a propósito: los call
3286
+ * sites cortan con "Captcha token no generado" ante un token falsy, y el
3287
+ * server ni lo mira porque su verificación también está gateada por el flag.
3288
+ */
3289
+ export declare const RECAPTCHA_DISABLED_TOKEN = "recaptcha-disabled";
3290
+
3242
3291
  export declare const ReCaptchaRender: ({ defaultRouteName }: {
3243
3292
  defaultRouteName: string;
3244
- }) => false | "" | JSX.Element | undefined;
3293
+ }) => false | "" | JSX.Element | null | undefined;
3245
3294
 
3246
3295
  export declare function RegisterForm({ texts, API_ENV, termsAndConditionsUrl }: Props_15): JSX.Element;
3247
3296
 
@@ -3875,14 +3924,17 @@ export declare const validateHttpUrl: (url: string) => string;
3875
3924
  * @param projectId El ID del proyecto de Google Cloud
3876
3925
  * @param captchaKey La clave del sitio de reCAPTCHA
3877
3926
  * @param captchaAction El nombre de la acción que corresponde al token
3927
+ * @param config Config del sitio para leer el kill switch
3928
+ * `CONFIG_blockRecaptcha`. Si se omite se cae al singleton de `initLibrary`.
3878
3929
  * @returns Una promesa que se resuelve con la puntuación de riesgo
3879
3930
  */
3880
- export declare const verifyCaptchaTokenEnterprise: ({ token, projectId, captchaKey, apiKey, captchaAction, }: {
3931
+ export declare const verifyCaptchaTokenEnterprise: ({ token, projectId, captchaKey, apiKey, captchaAction, config, }: {
3881
3932
  token: string;
3882
3933
  projectId: string;
3883
3934
  captchaKey: string;
3884
3935
  apiKey: string;
3885
3936
  captchaAction: captchaActionType;
3937
+ config?: Pick<LibraryConfig, "CONFIG_blockRecaptcha">;
3886
3938
  }) => Promise<number>;
3887
3939
 
3888
3940
  export declare const VideoBlock3: FC<Props_35>;