Usamos Versionado Semántico 2.0.0 por lo que puedes usar esta librería sin temor a romper tu aplicación.
Pueden aparecer cambios no liberados que se integran a la rama principal, pero no ameritan una nueva liberación de versión, aunque sí su incorporación en la rama principal de trabajo, generalmente se tratan de cambios en el desarrollo.
- Se arregla el problema para CSF que traen localidad en lugar de colonia. Agradecimientos a @luffynando, @blacktrue y @eclipxe13 por sus aportes.
- Se actualiza la licencia. Feliz año 2024.
- Se arreglan algunos typos en el README.md
- Se actualizan las herramientas de desarrollo.
- Se consigue el 100% de cobertura de código.
- Se agrega el método
Scraper::getClient()
para obtener el cliente con el que fue construido el objeto. - Se corrige el nombre del método
PdfToTextConvertException::getOutput
, antesgetGetOutput
. - Se actualiza el año de licencia.
- Se corrige la liga del proyecto en el archivo
CONTRIBUTING.md
. - Se actualiza la insignia de construcción en el archivo
README.md
. - Se actualiza el archivo de configuración de SonarCloud para excluir correctamente los archivos en
tests/_files
. - Para los flujos de trabajo:
- Se permite ejecutarlos a petición.
- Los trabajos se ejecutan en PHP 8.0.
- No se instala
composer
cuando no es necesario. - Se sustituye la directiva
::set-output
con$GITHUB_OUTPUT
.
- Se actualizan las herramientas de desarrollo.
- En las pruebas:
- Se crean mejores casos para el manejo de excepciones provenientes de la lectura de un archivo PDF.
- Se consigue el 100% de cobertura de código.
Se elimina de regímenes el punto final, que viene en algunos regímenes como "Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas.".
El método setter mágico permite establecer cualquier tipo de datos en $data
.
El método getter mágico solo permitía devolver cadenas de caracteres.
Se cambió este comportamiento para devolver cualquier tipo de datos.
El método setter mágico daba prioridad al método compuesto set<Propiedad>()
(si existía).
El método getter solo devolvía datos del almacén local $data
.
Se cambió este comportamiento para también darle prioridad al método get<Propiedad>()
(si existe).
El método isset mágico cambia la comprobación a verificar que el resultado del método mágico getter no devuelva nulo. De esta forma se incluye la comprobación para propiedades del objeto.
- En los flujos de integración continua:
- Se agrega la versión de PHP 8.2 a la matriz del trabajo para pruebas.
- Se corrige la instalación de
poppler-utils
, se quedaba colgado ennektos/act
.
- Se modifican y simplifican varias anotaciones de PHPDoc.
- Se corrige el nombre del método
setfechaUltimoCambioSituacion
asetFechaUltimoCambioSituacion
. - Se actualiza el archivo de configuración de
php-cs-fixer
:- Cambiar la regla
no_trailing_comma_in_singleline_array
ano_trailing_comma_in_singleline
. - Se actualizan las reglas a PHP 8.0.
- Se activan las reglas
class_attributes_separation
,trailing_comma_in_multiline
yordered_imports
.
- Cambiar la regla
- Se hacen más estrictas las correcciones de los regímenes usando expresiones regulares.
- Se agregan pruebas para el método
Regimen::setFechaAlta
.
- El ejemplo del
README.md
mostraba que se obtenían los datos usando el método$scraper->data()
, sin embargo este método ya no existe más y el método usado es:$scraper->obtainFromRfcAndCif()
. - Se agrega a la documentación cómo obtener los datos usando la ruta local del archivo PDF a través del método
$scraper->obtainFromPdfPath()
. - Se elimina de regímenes la palabra PM, que viene en algunos regímenes como "Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras PM".
Se agrega el método para fabricar estáticamente un objeto Scraper
con la configuración de curl
adecuada.
Lamentablemente, el sitio del SAT utiliza un esquema de seguridad anticuado que requiere configuración especial.
Se agrega la excepción CifDownloadException
que se genera cuando no se pudo descargar la página web de datos fiscales.
Se agrega CsfScraperException
como una interfaz vacía para identificar las excepciones generadas por esta librería.
Se elimina ShellExecException
y se sustituye por PdfToTextConvertException
.
Se agregan las anotaciones @throws
a los métodos para identificar que generan excepciones.
Pequeñas limpiezas de código y a partes específicas:
- Se refactoriza el código de la clase interna
CsfExtractor
para mejorar su intención. - Se refactoriza el código de la clase
PdfToText
para que useShellExec
al buscar por el ejecutablepdftotext
.
Se usa Symfony/Process
en lugar de la clase interna ShellExec
.
Se agregan los datos de RFC
y IDCIF
a la clase base Persona
.
No eran accesibles si se obtenían los datos directamente de un archivo PDF.
Primera versión pública disponible.