Releases: phpcfdi/cfdi-sat-scraper
Versión 3.3.3
- Se agrega la documentación principal para usar el resolvedor de captchas
phpcfdi/image-captcha-resolver-boxfactura-ai
. - Se agrega la documentación de
docs/EjemploConsumo.md
para usar el resolvedor de captchasBoxFacturaAIResolver
,
con todos los pasos para hacer correr el ejemplo. - En el archivo
composer.json
se recomiendaphpcfdi/image-captcha-resolver-boxfactura-ai
.
Los siguientes cambios aplican para el entorno de desarrollo:
- Se modifica el archivo
composer.json
para:- Requiere
phpcfdi/image-captcha-resolver-boxfactura-ai
. - Utiliza
phpcfdi/image-captcha-resolver-boxfactura-ai
para PHP 8.1 en adelante. - Desinstala
phpcfdi/image-captcha-resolver-boxfactura-ai
para menores de PHP 8.1.
- Requiere
- Se actualiza la documentación de
develop/TestIntegracion.md
donde se remueveeclipxe/captcha-local-resolver
y se mencionaphpcfdi/image-captcha-resolver-boxfactura-ai
. - Se cambian las pruebas de integración para usar
phpcfdi/image-captcha-resolver-boxfactura-ai
. - Se actualizan las herramientas de desarrollo.
Esta actualización únicamente se ha podido hacer gracias al trabajo de investigación y entrenamiento de un modelo Onnx de inteligencia artificial de nuestros amigos de BOX Factura. Su trabajo en el repositorio BoxFactura/sat-captcha-ai-model
permitió crear el resolvedor BoxFacturaAIResolver
, pero, sobre todo, simplificar la resolución de captchas, tanto en forma local como en producción. Muchas gracias.
Versión 3.3.2
- PHPStan encontró una comparación superflua que fue eliminada para corregir el proceso de integración continua.
- Se agregan comentarios a clases Null para mejorar la mantenibilidad.
- Se actualiza el año del archivo de licencia a 2024.
- Se corrige la variable
php-versions
porphp-version
en el flujo de trabajotests
. - Se actualizan las herramientas de desarrollo.
Versión 3.3.1
- PHPStan encontró un problema en una especificación de tipo en un método de prueba, se ha corregido solo para que el proceso de integración continua no falle.
- Se actualizan las dependencias de los componentes de Symfony para soportar la versión 7.
- Se actualizan los flujos de trabajo de GitHub para usar las acciones versión 4.
- Se usa
php-version
en singular, en lugar dephp-versions
. - Se actualizan las herramientas de desarrollo.
Versión 3.3.0
Se agregó la interfaz MetadataMessageHandler
que permite recibir notificaciones de la descarga de Metadata.
Dentro de las notificaciones se incluye la que ocurre cuando se encontraron 500 registros en un solo segundo.
Se deprecó la interfaz MaximumRecordsHandler
, es sustituida por MetadataMessageHandler
.
Se deprecó el método SatScraper::getMaximumRecordsHandler()
a favor de SatScraper::getMetadataMessageHandler()
.
Para no introducir un cambio que rompa la compatibilidad, el constructor de SatScraper
sigue soportando la creación del objeto con el argumento MaximumRecordsHandler $maximumRecordsHandler
.
En su lugar, debería enviar un objeto que implemente la interfaz MetadataMessageHandler
.
Se introduce el objeto NullMetadataMessageHandler
que implementa la interfaz MetadataMessageHandler
,
pero no realiza ninguna acción en sus métodos.
Otros cambios al entorno de desarrollo:
- Se actualizan las dependencias de desarrollo.
- Se agrega PHP 8.3 a la matrix de pruebas.
- Los trabajos se ejecutan con PHP 8.3.
- Para
php-cs-fixer
se sustituyefunction_typehint_space
contype_declaration_spaces
.
Versión 3.2.5
Algunos métodos intentaban atrapar una excepción RuntimeException
proveniente de Crawler
, sin embargo, la excepción no era correcta, se atrapa ahora Throwable
. Gracias a PHPStan por detectar el problema.
Se actualizan las dependencias de desarrollo.
Versión 3.2.4
Se corrige el mensaje relacionado con el envío de datos incorrectos al iniciar sesión usando CIEC.
Se corrige la dependencia de CaptchaImage
por CaptchaImageInterface
en CiecLoginException
.
Se extrae la lógica para hacer la petición de acceso vía CIEC a un método separado.
En una prueba de concepto esto ayuda a crear la sesión usando un valor conocido de Captcha.
Se agregan los siguientes cambios en el entorno de desarrollo:
- Se corrige la liga del proyecto en el archivo
CONTRIBUTING.md
. - Se actualizan las herramientas de desarrollo.
- Se agrega la herramienta
composer-normalize
. - En el flujo de trabajo de cobertura de código se ejecuta usando PHP 8.2.
- Se elimina
PHP_CS_FIXER_IGNORE_ENV
del flujo de trabajo principal en el trabajophp-cs-fixer
. - Se agrega la opción para ejecutar flujos de trabajo a solicitud.
Versión 3.2.3
- Se actualiza la dependencia de
guzzlehttp/promises
a versión mínima 2.0. - Se actualiza la dependencia de
psr/http-message
a versiones mínimas 1.1 o 2.0. - Se actualiza la dependencia de
phpcfdi/image-captcha-resolver
a versión mínima 0.2.3.
Los siguientes cambios aplican al entorno de desarrollo:
- La ejecución de
php-cs-fixer
dentro decomposer
se condiciona a mínimo PHP 8.0. - Se refactoriza la clase
RepositoryItem
para que las responsabilidades de la creación de una instancia a partir de un arreglo se realizen en la claseRepositoryItemFactory
. - Se corrigen las pruebas para usar
psr/http-message:^2.0
. - Se corrige el issue falso positivo encontrado por PHPStan al convertir un objeto a cadena de caracteres.
- Actualización de herramientas de desarrollo.
También se concluyen los siguientes cambios previos no liberados.
Cambios no liberados: 2023-02-13
- Actualización de herramientas de desarrollo.
- Se agrega la configuración en
composer.json
para no permitir el uso de plugins dephp-http/discovery
. - En las pruebas, se refactoriza
SatHttpGatewayTest::testMethodPostLoginDataIsDeprecated
para probar que el métodopostLoginData
está deprecado, dado que PHPUnit 9.6 descontinuó el métodoexpectDeprecation
.
Cambios no liberados: 2023-01-31
- Actualización de herramientas de desarrollo.
- En las pruebas, se elimina una anotación para PHPStan para ignorar un error al realizar
unset
sobre una variable indefinida en un objeto de tipoMetadata
.
Versión 3.2.2
Se regresa la lectura de Motivo de cancelación (motivoCancelacion
) y Folio de sustitución (folioSustitucion
).
Aparentemente, en la fecha 2023-01-12 el SAT ha regresado estas columnas.
Otros cambios:
- Los flujos de trabajo corren en PHP 8.0
- Se actualizan las herramientas de desarrollo
Versión 3.2.1
Quitar Motivo de cancelación y Folio de sustitución
Se elimina la lectura de Motivo de cancelación (motivoCancelacion
) y Folio de sustitución (folioSustitucion
).
Aparentemente, en la fecha 2023-01-04 el SAT ha eliminado estas columnas.
Otros cambios menores
- Actualización de licencia a 2023. ¡Feliz año!.
- Actualización de flujos de trabajo sustituyendo la directiva
::set-output
con$GITHUB_OUTPUT
. - Corrección de la insignia del flujo de construcción
build
.
Cambios previos
2022-11-09: Corrección de construcción de integración continua
- Se actualizaron las herramientas de desarrollo.
- Se agrega PHP 8.2 a la matriz de pruebas en el proceso de integración continua.
- Se corrige la firma (
phpdoc
) del métodoHttpLogger::bodyToVars
. - Se corrige el método
Repository::randomize
pues perdía las llaves del arreglo. - Se corrige el archivo de configuración de
php-cs-fixer
porque la reglano_trailing_comma_in_singleline_array
está deprecada.
2022-10-22: Corrección de construcción de integración continua
- Se actualizaron las herramientas de desarrollo.
- Se aplicó la corrección de
php-cs-fixer
. - Se corrigió el nombre de usuario de
@git-micotito
en este mismo archivo.
Versión 3.2.0
Agregar Motivo de cancelación y Folio de sustitución
Se agrega la lectura de Motivo de cancelación (motivoCancelacion
) y Folio de sustitución (folioSustitucion
) a Metadata
. Así como la extracción de estos datos en MetadataExtractor
. (PR #65)
Gracias @TheSpectroMx.