Repository navigation
Releases: Dagel4k/mexicoapi
Releases · Dagel4k/mexicoapi
Release list
mexicoapi 0.2.0
Cambios de comportamiento. Revisa tu código si usas lo que nombran:
diasHabilesdel cliente revisatipoPlazoantes de ir a la red o al paquete: con el SAT sin él, con otra autoridad y con él, o con un valor que no esgeneralnideclaraciones_pagos, lanzaTypeError(que nombratipoPlazo) en lugar deMexicoApiError.consultar("/v1/dias-habiles", …)sigue dando elMexicoApiErrorde la API, contipo_plazo.- Las
advertenciasde primer nivel del cliente traen también las del cálculo (data.advertenciasdediasHabiles), al final y sin repetidos;data.advertenciasno cambia. Si las juntabas a mano ([...advertencias, ...data.advertencias]), tendrás repetidas: usa soloadvertencias. sumarDiasHabilesconcalendario("sat", "general")ypermitirIncompleto: truesigue con el respaldo del plazo, como la API: del 2026-12-23, 2 días hábiles dan el 2026-12-28 (antes, el 25, inhábil por el art. 12), con la advertencia de la API.- Cada validador tiene su propia
nota: la de la CLABE ya no nombra al SAT, RENAPO ni el IMSS y, sin catálogo de bancos, dice que no revisó el banco.NOTA_VALIDACIONsigue exportada, pero ningún validador la usa y queda obsoleta: usaNOTAS_VALIDACION. fixUltimo()respondido con los datos del paquete (sin red, confuente: "paquete"o de respaldo) trae siempre la advertenciaAVISO_SIN_API: pueden faltar publicaciones recientes.- Con el SAT y
declaraciones_pagos, advertencia nueva cuando el resultado cae fuera de las vacaciones publicadas: ese día podría ser de vacaciones y aplicaría la prórroga del art. 12. El resultado no cambia. - Los días de la LFT anteriores al 2024-10-01 (
diasDescansoLft,calendarioLfty el cliente) citan el texto del art. 74 vigente entonces, el de la reforma del DOF 17-01-2006 (fracción VII: "1o. de diciembre"), con sufecha_publicacion; antes citaban el texto actual. Las fechas no cambian. - El cliente ya no sigue redirecciones. Pide con
redirect: "manual"(también elInitFetchque recibe unfetchpropio) y una 3xx de la API, salvo 304, es unMexicoApiError"Respuesta inesperada de la API" con su estado HTTP (estado 0 si el navegador da una redirección opaca), sin reintentos; en las rutas que caducan responde el paquete con la advertencia de respaldo. Antesfetchseguía la redirección. - El cliente lee el cuerpo de la respuesta con un tope de 8 MB y revisa que
datasea una lista o un objeto según la ruta: lo que no cumple también es "Respuesta inesperada de la API".RespuestaFetchaceptabody(unReadableStream, para leer por partes) ytype. - CLI:
MEXICOAPI_SIN_REDacepta1,true,yes,siuonpara no usar la red y0,false,no,offo vacía para consultar la API, sin distinguir mayúsculas, como el servidor MCP. Antes solo1apagaba la red y cualquier otro valor la dejaba encendida; ahora otro valor es un error de configuración (sale con 2, sin el recordatorio de--help) en los comandos que usan el cliente, aunque haya--base. - CLI:
dias-habilesexige--autoridad(lft,cnbvosat), como la API y el servidor MCP; sin ella sale con 2. Antes usaba la LFT si no se daba. Si tus scripts la omitían, agrega--autoridad lftpara el mismo resultado. - CLI: un error de uso (código 2) termina con la ayuda de su comando,
Usa mexicoapi dias-habiles --help para ver su uso.(omexicoapi sepomex cp --help); solo sin comando, o con uno que no existe, conUsa mexicoapi --help para ver los comandos.Antes siempre con la general. - Textos más claros: el 422 del SAT
generalfuera de su cobertura sugierepermitir_incompleto=truey nombradeclaraciones_pagossolo para plazos de declaraciones o pagos; el 404 del FIX conpublicadoen un día sin publicación sugiereoperacion. La CLI muestra esos errores con sus opciones (--tipo-plazo,--permitir-incompleto) y rechaza con su nombre un--tipo-plazoque no existe. validarCurp: la posición 17 (el diferenciador) solo acepta un dígito o una letra de la A a la J, como dice el Instructivo Normativo de la CURP (DOF 18-06-2018). Con una letra de la K a la Z davalido: falseyerrores: ["estructura"]; antes se aceptaba cualquier letra.crearClientelanzaTypeErrorcon unabasehttp://que no sealocalhost,127.0.0.1o[::1], con puerto o sin él; para otro host, usahttps://. La CLI da el mismo error con--baseoMEXICOAPI_BASEasí, salvo en los comandos que no usan el cliente (los validadores,sepomexymunicipiocon un nombre) o, conMEXICOAPI_BASE, sin red (MEXICOAPI_SIN_RED). Sale con 2, como un error de configuración.TipoProblema(demexicoapiymexicoapi/cliente) yPROBLEMAS(demexicoapi/cliente) suman el tipohttps-requerido: la API responde 403 con él a una petición porhttp://a un host que no es local. Unswitchexhaustivo sobreTipoProblematiene un caso más.
Nuevo:
banco_revisadoen el resultado devalidarClabe(falsesi no se pasa el catálogo de bancos;bancos: nullcuenta como no pasarlo, como en la 0.1.0) y enclabe()del cliente (siempretrue, como la API). TipoResultadoValidacionClabe.- CLI:
fix [--operacion AAAA-MM-DD | --publicado AAAA-MM-DD](sin opciones, la publicación más reciente) yudi <AAAA-MM-DD>, con la fuente, el pie de origen y--json(la respuesta del cliente, con losavisos). Como los demás datos que caducan, consultan la API y, si no responde, usan el paquete y lo avisan. Un error de la API que sugiereoperacion=se muestra con--operacion. - CLI:
estados(las 32 entidades con su clave y abreviatura) ymunicipios <cve_ent>(todos los municipios de un estado, con el total), del paquete y sin red, en texto y con--json.municipio 25, que busca por nombre y no encuentra nada, sugieremexicoapi municipios 25. hoyEnMexico(): la fecha de hoy en la Ciudad de México, la zona de todas las fechas de MéxicoAPI.NOTAS_VALIDACION,AVISO_SIN_API, el tipoRespaldoCalendarioyCalendario.respaldo.avisosjunto a cadaadvertencias: las mismas, en el mismo orden, como{ codigo, texto }, con un código estable para decidir sin leer el texto. Están en las respuestas del cliente (y endata.avisosdediasHabiles), en el resultado desumarDiasHabiles(campo nuevo deResultadoDiasHabiles) y enresumen()demexicoapi/sepomex.CODIGOS_AVISOycodigoAviso()dan el catálogo y el código de un texto; tiposAvisoyCodigoAviso. Si la API manda el código de un aviso, el cliente lo conserva; si no, lo saca del texto. Los códigos del cliente y de SEPOMEX:api-fallo,respuesta-guardada,datos-viejos,datos-del-paquete,municipio-sin-inegi,cp-varios-municipiosyaviso-de-uso-sepomex-distinto.
Correcciones:
- Caché del cliente: descuenta de
max-agey de la ventana destale-if-errorla edad con la que llega la respuesta (Age), así que una respuesta que pasó por otra caché no se usa más tiempo del que permite la API. No guarda las respuestasno-cache, y una respuestano-storeono-cachedeja sin usar lo que había guardado de esa consulta, también parastale-if-error. - El aviso
transmision-poder-ejecutivo(SAT, 2030 y cada seis años) solo sale por el 1o. de octubre o el 1o. de diciembre que caen de lunes a viernes, y su texto nombra solo esos. En 2030 un cálculo que cruza el 1o. de diciembre, que es domingo, ya no lo trae, y el texto dice "no se descuenta el 1o. de octubre".codigoAvisoreconoce el texto nuevo y el anterior. - El
detaildel error por un parámetro desconocido da el nombre tal cual solo si tiene letras sin acento (A-Z, a-z), dígitos,_,.o-. Si no, lo da entre comillas y con lo invisible escapado (por ejemplo,): controles, caracteres de formato, separadores de línea y los que se ignoran por omisión (\p{Default_Ignorable_Code_Point}). La API, el cliente sin red y el servidor MCP dan el mismo texto.
mexicoapi-mcp 0.2.0
Cambios de comportamiento. Revisa tu configuración o tu uso si dependes de lo que nombran:
validar_curp: la posición 17 (el diferenciador) solo acepta un dígito o una letra de la A a la J, como dice el Instructivo Normativo de la CURP (DOF 18-06-2018). Con una letra de la K a la Z la CURP es inválida, con el errorestructura; antes se aceptaba cualquier letra.MEXICOAPI_BASEconhttp://solo se acepta paralocalhost,127.0.0.1o[::1], con puerto o sin él. Con otro host el servidor no arranca (código 2, con un mensaje en stderr que pidehttps://).MEXICOAPI_SIN_REDacepta1,true,yes,siuonpara no usar la red y0,false,no,offo vacía para consultar la API, sin distinguir mayúsculas. Otro valor hace que el servidor no arranque (código 2, con un mensaje en stderr). Antes solo1apagaba la red y cualquier otro valor la dejaba encendida sin avisar.
Otros cambios:
- Usa
mexicoapi0.2.0 (^0.2.0). validar_clabe: el resultado traebanco_revisado(siempretrue), requerido en suoutputSchema. La nota es la de la CLABE, sin el SAT, RENAPO ni el IMSS; cada validador tiene la suya.- Cambia el texto de la advertencia de los datos del paquete que pueden no estar al día: "Respuesta con los datos del paquete mexicoapi, no de la API: pueden faltar publicaciones recientes." Antes nombraba
MEXICOAPI_SIN_RED=1. Es la misma del cliente demexicoapiy sale una sola vez. tipo_de_cambio_fixdice que las fechas son días de America/Mexico_City; conpublicadoen un día sin publicación, el error sugiereoperacion.sumar_dias_habiles: condeclaraciones_pagos, advertencia nueva si el resultado cae fuera de las vacaciones publicadas del SAT; consatygeneralfuera de su cobertura, el error sugierepermitir_incompleto.- Si la API responde con una redirección, con un cuerpo de más de 8 MB o con
datade otro tipo, las herramientas de datos que caducan responden con los datos del paquete y la advertencia de respaldo. Antes la redirección se seguía ydatade otro tipo daba un error de la herramienta. dias_inhabilesysumar_dias_habilesconlft: los días anteriores al 2024-10-01 citan el texto del art. 74 vigente entonces, el de la reforma del DOF 17-01-2006, con sufecha_publicacion. Las fechas no cambian.- Nuevas herramientas, sin red y con los datos del paquete:
estados(las 32 entidades con su clave, nombre y abreviatura) ymunicipios_de_estado(todos los municipios y alcaldías de un estado, cada uno con sucvegeoy su nombre, contotaly el estado; el estado va porcve_ento por su nombre o abreviatura, sin distinguir mayúsculas ni acentos, también nombres de uso común como "Edomex", "Distrito Federal" o "Querétaro de Arteaga"; un nombre que no es de un solo estado da error, y "México" sin más también, porque puede ser el Estado de México o la Ciudad de México). Antes no había forma de listar los municipios de un estado ybuscar_municipiocon un texto corto daba solo parte de ellos. - Nuevo tipo de error
[sin-conexion], propio del servidor y no de la API: el cliente no llegó a la API (sin conexión o tiempo agotado) y los datos del paquete no bastan para responder. Antes era[error-interno]o, si el paquete no tenía el dato todavía, su tipo ([dato-no-disponible],[calendario-incompleto]), que no decía que la API no se pudo consultar; ahora el texto da primero la falla de conexión y después lo que dijo el paquete. Las respuestas definitivas del paquete ([no-encontrado],[parametro-invalido]) no cambian. - Nuevo:
avisosen elstructuredContentde cada herramienta (y endatosdesumar_dias_habiles), requerido en suoutputSchema: las mismas advertencias con un código estable, como en la API. El texto no cambia. dias_inhabilesysumar_dias_habilesconsat: el aviso de la transmisión del Poder Ejecutivo (2030 y cada seis años) solo sale por el 1o. de octubre o el 1o. de diciembre que caen de lunes a viernes, y su texto nombra solo esos. En 2030 un cálculo que cruza el 1o. de diciembre, que es domingo, ya no lo trae.- La caché de las respuestas de la API descuenta la edad con la que llegan (
Age), no guarda lasno-cachey deja de usar lo guardado de una consulta si la API respondeno-storeono-cache, también como respaldo cuando la API falla. - El error por un parámetro desconocido da el mismo texto que el
detailde la API: el nombre tal cual si solo tiene letras sin acento (A-Z, a-z), dígitos,_,.o-, y si no, entre comillas y con lo invisible escapado, también lo que se ignora por omisión (\p{Default_Ignorable_Code_Point}). Como los argumentos de cada herramienta son fijos, casi nunca se ve. - La fuente que citan los validadores es la página de
mexicoapien npm (https://www.npmjs.com/package/mexicoapi) en lugar del README demain, que puede describir otra versión. mcpNameen elpackage.jsonyserver.jsonen el repositorio, para el registro oficial de servidores MCP (io.github.Dagel4k/mexicoapi-mcp).