Skip to content

Releases: phpcfdi/cfdi-cleaner

Versión 1.1.3

05 Aug 09:49
c9944a4
Compare
Choose a tag to compare

Error al tratar espacios de nombres predefinidos

Se encontraron casos en los que el CFDI firmado por un PAC tiene severos errores de espacios de nombres XML, específicamente al redefinir un prefijo en uso por otro espacio de nombres. Si bien esto es correcto en XML, no es correcto en un CFDI.

En este caso el limpiador MoveNamespaceDeclarationToRoot estaba generando una salida de XML no válida.

Se corrigió MoveNamespaceDeclarationToRoot para que utilice una estrategia alternativa en el caso de encontrar espacios de nombres con prefijos sobrepuestos y entregue una salida correcta.

tests/clean.php

Se agregó el archivo tests/clean.php para limpiar un archivo CFDI y entregar la respuesta en la salida estándar.

Versión 1.1.2

23 Jul 21:56
1bd39bc
Compare
Choose a tag to compare

Se encontró un error interno en el que, después de eliminar espacios de nombres no usados, se caía en un error
al momento de volver a iterar sobre los nodos de espacios de nombre. Lo que terminaba en una excepción.

Es importante actualizar si se está observando un error parecido a este:

TypeError: Argument 1 passed to PhpCfdi\CfdiCleaner\XmlDocumentCleaners\MoveNamespaceDeclarationToRoot::isNamespaceReserved()
must be of the type string, null given, called in .../vendor/phpcfdi/cfdi-cleaner/src/Internal/XmlNamespaceMethodsTrait.php on line 28

Version 1.1.1

12 Jul 19:36
c778ba1
Compare
Choose a tag to compare

Se modifica RemoveNonXmlStrings porque en algunos CFDI retornaba una cadena de caracteres vacía.

Version 1.1.0

29 Jun 01:56
b87c6c6
Compare
Choose a tag to compare

Se agrega el limpiador de texto XML SplitXmlDeclarationFromDocument que separa la declaración XML del resto del
documento XML utilizando uno y solo un caracter LF. Por ejemplo:

--- <?xml version="1.0"?><root />
+++ <?xml version="1.0"?>
+++ <root />

Además, se incluyen los siguientes cambios previamente no liberados:

2021-06-28: Se reconfiguró PHPUnit para que fallara con un test incompleto o un test suite vacío,
pasara con un test riesgoso y no fuera verbose.

2021-06-28: Se corrigió el título del código de conducta.

2021-06-28: Se corrigió el nombre de la prueba AddXmlDeclarationTest a AppendXmlDeclarationTest.

2021-05-18: Se reconfiguró el proyecto para el uso de php-cs-fixer: ^3.0.

2021-05-18: Se corrigieron las extensiones usadas por la acción build.yml/setup-php.

2021-05-18: Se actualiza la configuración de PHPUnit con la ubicación del caché.

2021-04-28: Las pruebas no funcionaban correctamente con LibXML < 2.9.10.
Presumiblemente por la canonicalización y recarga realizada por PHPUnit sebastian/comparator.
Esto provocaba que los test no pasaran en sistemas con estas versiones, por ejemplo, Scrutinizer.
La solución más simple fue cambiar los espacios de nombres urn:foo a http://tempuri.org/foo.

Versión 1.0.0

26 Apr 22:42
5b4f5f1
Compare
Choose a tag to compare
  • Versión inicial.