Skip to content

Commit 3972d70

Browse files
committed
feat: publicar PDF 2.2 beta para escritorio y móvil
1 parent c2a7ebb commit 3972d70

66 files changed

Lines changed: 6153 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/release.yml‎

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Validar y distribuir PDF
2+
on:
3+
push:
4+
branches: [main]
5+
pull_request:
6+
workflow_dispatch:
7+
permissions:
8+
contents: read
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
timeout-minutes: 20
13+
steps:
14+
- uses: actions/checkout@v4
15+
- uses: actions/setup-node@v4
16+
with:
17+
node-version: '24.19.0'
18+
cache: npm
19+
- uses: actions/setup-python@v5
20+
with:
21+
python-version: '3.14'
22+
- run: npm ci
23+
- run: npm run build
24+
- run: npm test
25+
- run: python -B -m unittest discover -s tests -p test_launcher.py
26+
- run: python scripts/package.py
27+
- uses: actions/upload-artifact@v4
28+
with:
29+
name: PDF-distributions
30+
path: artifacts/*
31+
if-no-files-found: error
32+
retention-days: 14
33+
release:
34+
needs: build
35+
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
36+
runs-on: ubuntu-latest
37+
permissions:
38+
contents: write
39+
steps:
40+
- uses: actions/checkout@v4
41+
- uses: actions/download-artifact@v4
42+
with:
43+
name: PDF-distributions
44+
path: artifacts
45+
- name: Publicar versión si todavía no existe
46+
env:
47+
GH_TOKEN: ${{ github.token }}
48+
shell: bash
49+
run: |
50+
TAG=$(node -p "require('./release.json').tag")
51+
VERSION=$(node -p "require('./package.json').version")
52+
test "$TAG" = "v$VERSION"
53+
if gh release view "$TAG" >/dev/null 2>&1; then
54+
echo "La versión $TAG ya existe; no se sustituye."
55+
exit 0
56+
fi
57+
FLAGS=()
58+
if [ "$(node -p "require('./release.json').prerelease")" = "true" ]; then
59+
FLAGS+=(--prerelease)
60+
fi
61+
gh release create "$TAG" artifacts/* --target "$GITHUB_SHA" --title "PDF $VERSION" --notes-file "docs/releases/$TAG.md" "${FLAGS[@]}"

‎.gitignore‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
node_modules/
2+
test-output/
3+
tmp/
4+
.DS_Store
5+
release-build/
6+
release-cache/
7+
artifacts/
8+
__pycache__/
9+
dist/vendor/
10+
.openai/

‎CHANGELOG.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Cambios
2+
3+
## 2.2.0-beta.1
4+
5+
- Código público con licencia MIT, portada y documentación en español.
6+
- Guías Windows, Mac Apple Silicon/Intel, Android e iOS/iPadOS.
7+
- Compartir archivos con el menú nativo cuando esté disponible.
8+
- Detección de instalación en iOS y ayuda de instalación móvil/escritorio.
9+
- Lanzador Mac y paquetes con runtimes verificados y licencias.
10+
- Construcción con lockfile, GitHub Actions y Releases con SHA-256.
11+
- Beta hasta validar instalación y descarga en dispositivos reales.
12+
13+
## 2.1.0
14+
15+
- Web pública, instalación web Android, iconos y adaptación móvil.
16+
17+
## 2.0.0
18+
19+
- 28 herramientas, OCR, formularios y firma RSA P12/PFX.
20+
- Apertura con contraseña conocida en visor y desbloqueo.
21+
- Revisión de enlaces, Guardar como y apertura alternativa.
22+
- Paquete local Windows con runtime y motores incluidos.

‎CONTRIBUTING.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Contribuir a PDF
2+
3+
Abre una issue o pull request describiendo problema, cambio y comprobación. Mantén los textos en español, el nombre PDF y la interfaz blanca y roja. Sigue [la guía técnica](docs/DESARROLLO.md).
4+
5+
Conserva el procesamiento local. Una función que envíe documentos a terceros debe plantearse expresamente antes de incorporarla. Evita telemetría y dependencias externas durante el uso.
6+
7+
No adjuntes documentos personales, claves, certificados ni contraseñas. Utiliza muestras mínimas ficticias y certificados temporales en pruebas.
8+
9+
Si cambias una operación, verifica contenido y páginas de salida; si cambias descargas, bytes, nombre y reutilización. El DOM simulado complementa la prueba real de navegador. Documenta límites sin prometer equivalencia total con productos comerciales.
10+
11+
Conserva licencias. Revisa lockfile, hashes y avisos al actualizar dependencias. No subas node_modules, cachés, paquetes de distribución o archivos de usuario.

‎LICENSE‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 PDF contributors
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

‎SECURITY.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Seguridad
2+
3+
Proyecto en beta, sin auditoría externa ni compromiso de soporte empresarial. Las correcciones se incorporan a la última versión.
4+
5+
No publiques documentos, claves, certificados ni contraseñas al reportar un problema. Usa reproducciones sintéticas. Si el repositorio ofrece reporte privado de vulnerabilidades, utilízalo; si no, abre una issue solicitando un canal privado sin datos sensibles ni detalles explotables.
6+
7+
Conserva los originales firmados. La firma local no valida confianza de CA, revocación o requisitos de un trámite. Revisa [límites](docs/FUNCIONES.md) y [privacidad](docs/PRIVACIDAD.md).

‎THIRD_PARTY_NOTICES.md‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Componentes de terceros
2+
3+
El código propio usa MIT. Esa licencia no sustituye las licencias de las dependencias. Los textos completos se conservan en `licenses/` y se copian a `dist/vendor/` durante la construcción (`app/vendor/` en paquetes de escritorio).
4+
5+
| Componente | Versión fijada | Licencia / origen |
6+
| --- | --- | --- |
7+
| pdf-lib | 1.17.1 | MIT — https://github.com/Hopding/pdf-lib |
8+
| PDF.js legacy | 5.6.205 | Apache-2.0 — https://github.com/mozilla/pdf.js |
9+
| JSZip | 3.10.1 | MIT (opción elegida) — https://github.com/Stuk/jszip |
10+
| Tesseract.js y core | 7.0.0 | Apache-2.0 — https://github.com/naptha/tesseract.js |
11+
| Modelos spa/eng | paquetes 1.0.0, best_int | Apache-2.0 — https://github.com/naptha/tessdata |
12+
| qpdf WASM | wrapper 0.3.0 / motor 12.2.0 | qpdf Apache-2.0 y NOTICE; wrapper declara ISC en su package.json — https://github.com/neslinesli93/qpdf-wasm |
13+
| @signpdf | 3.3.0 | MIT — https://github.com/vbuch/node-signpdf |
14+
| node-forge | 1.4.0 | BSD-3-Clause (opción elegida) — https://github.com/digitalbazaar/forge |
15+
| buffer / base64-js | 6.0.3 / versión del lockfile | MIT |
16+
| ieee754 | versión del lockfile | BSD-3-Clause |
17+
| Python Windows | 3.14.8 x64 | PSF y avisos incluidos en runtime/LICENSE.txt — https://www.python.org/ |
18+
| Node Mac | 24.19.0 arm64/x64 | MIT y avisos incluidos en runtime/LICENSE — https://nodejs.org/ |
19+
20+
PDF.js incluye fuentes, mapas y motores WASM con avisos adicionales dentro de sus carpetas. La construcción también conserva archivos LICENSE/NOTICE de paquetes instalados en `vendor/legal/`, con su versión y procedencia. Las herramientas de desarrollo y sus dependencias están fijadas en `package-lock.json` y conservan sus licencias originales.
21+
22+
El wrapper de qpdf declara ISC pero su paquete no incluye un archivo LICENSE independiente; se conserva su declaración en `vendor/qpdf/SOURCE.json`, además de la licencia y NOTICE de qpdf. No se atribuye autoría propia sobre estas bibliotecas.
23+
24+
La portada e icono vectorial del proyecto forman parte del código propio. No se incluyen logotipos, recursos gráficos o código de iLovePDF. No se distribuyen PDFs personales ni certificados de prueba privados.

0 commit comments

Comments
 (0)