ngx-dsxlibrary 2.21.13 → 2.21.14
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.
|
@@ -893,6 +893,79 @@ function validateEnvironmentConfig(environment) {
|
|
|
893
893
|
console.warn(`[ENVIRONMENT] Valor no reconocido para 'sweetAlertTheme': '${environment.sweetAlertTheme}'. Temas válidos: ${allowedThemes.join(', ')}. Se usará el tema por defecto de SweetAlert2.`);
|
|
894
894
|
}
|
|
895
895
|
}
|
|
896
|
+
// Validar cookieDomain si está definido
|
|
897
|
+
if (environment.cookieDomain !== undefined) {
|
|
898
|
+
validateCookieDomain(environment.cookieDomain);
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* Valida que cookieDomain tenga un formato correcto para cookies.
|
|
903
|
+
*
|
|
904
|
+
* Reglas de validación:
|
|
905
|
+
* - Debe ser un string no vacío
|
|
906
|
+
* - Debe empezar con un punto (.)
|
|
907
|
+
* - No puede contener espacios en blanco
|
|
908
|
+
* - Solo puede contener caracteres alfanuméricos, puntos y guiones
|
|
909
|
+
* - Debe tener al menos dos partes separadas por puntos (ej: .inalsa.local)
|
|
910
|
+
*
|
|
911
|
+
* Ejemplos válidos:
|
|
912
|
+
* - `.inalsa.local`
|
|
913
|
+
* - `.express.local`
|
|
914
|
+
* - `.example.com`
|
|
915
|
+
* - `.site.co.uk`
|
|
916
|
+
*
|
|
917
|
+
* Ejemplos inválidos:
|
|
918
|
+
* - `inalsa.local` (falta el punto inicial)
|
|
919
|
+
* - `.inalsa` (necesita al menos dos partes)
|
|
920
|
+
* - `. inalsa.local` (contiene espacios)
|
|
921
|
+
* - `.inalsa..local` (puntos consecutivos)
|
|
922
|
+
*
|
|
923
|
+
* @param cookieDomain - Dominio a validar
|
|
924
|
+
* @throws Error si el dominio tiene un formato inválido
|
|
925
|
+
*/
|
|
926
|
+
function validateCookieDomain(cookieDomain) {
|
|
927
|
+
// Validar tipo de dato
|
|
928
|
+
if (typeof cookieDomain !== 'string') {
|
|
929
|
+
throw new Error(`[ENVIRONMENT] El campo 'cookieDomain' debe ser una cadena de texto. ` +
|
|
930
|
+
`Tipo recibido: ${typeof cookieDomain}. Valor: ${cookieDomain}`);
|
|
931
|
+
}
|
|
932
|
+
const domain = cookieDomain.trim();
|
|
933
|
+
// Validar que no esté vacío
|
|
934
|
+
if (domain.length === 0) {
|
|
935
|
+
throw new Error("[ENVIRONMENT] El campo 'cookieDomain' no puede estar vacío. " +
|
|
936
|
+
'Si no necesitas un dominio compartido, omite este campo.');
|
|
937
|
+
}
|
|
938
|
+
// Validar que empiece con un punto
|
|
939
|
+
if (!domain.startsWith('.')) {
|
|
940
|
+
throw new Error(`[ENVIRONMENT] El campo 'cookieDomain' debe empezar con un punto (.). ` +
|
|
941
|
+
`Valor inválido: '${domain}'. ` +
|
|
942
|
+
"Ejemplo correcto: '.inalsa.local'");
|
|
943
|
+
}
|
|
944
|
+
// Validar que no contenga espacios
|
|
945
|
+
if (/\s/.test(domain)) {
|
|
946
|
+
throw new Error(`[ENVIRONMENT] El campo 'cookieDomain' no puede contener espacios en blanco. ` +
|
|
947
|
+
`Valor inválido: '${domain}'`);
|
|
948
|
+
}
|
|
949
|
+
// Validar caracteres permitidos: alfanuméricos, puntos y guiones
|
|
950
|
+
if (!/^(\.[a-zA-Z0-9-]+)+$/.test(domain)) {
|
|
951
|
+
throw new Error(`[ENVIRONMENT] El campo 'cookieDomain' contiene caracteres no permitidos. ` +
|
|
952
|
+
`Valor inválido: '${domain}'. ` +
|
|
953
|
+
'Solo se permiten caracteres alfanuméricos, puntos (.) y guiones (-). ' +
|
|
954
|
+
"Ejemplo correcto: '.inalsa.local'");
|
|
955
|
+
}
|
|
956
|
+
// Validar que tenga al menos dos partes (ej: .inalsa.local)
|
|
957
|
+
const parts = domain.split('.').filter((part) => part.length > 0);
|
|
958
|
+
if (parts.length < 2) {
|
|
959
|
+
throw new Error(`[ENVIRONMENT] El campo 'cookieDomain' debe tener al menos dos partes separadas por puntos. ` +
|
|
960
|
+
`Valor inválido: '${domain}'. ` +
|
|
961
|
+
"Ejemplos correctos: '.inalsa.local', '.express.local'");
|
|
962
|
+
}
|
|
963
|
+
// Validar que no haya puntos consecutivos
|
|
964
|
+
if (domain.includes('..')) {
|
|
965
|
+
throw new Error(`[ENVIRONMENT] El campo 'cookieDomain' no puede tener puntos consecutivos. ` +
|
|
966
|
+
`Valor inválido: '${domain}'. ` +
|
|
967
|
+
"Ejemplo correcto: '.inalsa.local'");
|
|
968
|
+
}
|
|
896
969
|
}
|
|
897
970
|
/**
|
|
898
971
|
* Valida que una URL tenga un formato válido.
|