# sevenzip-wasm 26.5.0

Distribución original sin modificaciones. El Worker es una integración propia y se
usa por WORKERFS y para apartar la extracción del hilo principal.

## Correspondencia

- npm: `sevenzip-wasm-26.5.0.tgz`, SHA-256
  `5e8673dcc2de194e5c338c40d2e078415b0152430bbc581aa1a84b2cfe6b2d26`.
- Wrapper: https://github.com/arktronic/sevenzip-wasm,
  commit `7b53d4abf78da9eb06f9447730ae31eaf9acd7c3`.
- Submódulo de construcción de upstream: https://github.com/ip7z/7zip,
  commit `b88c6bc09339de32f7d18bbab900686b244f42ba`, 7-Zip 26.05.
- `npm-attestations.json` conserva la procedencia publicada por npm: vincula el
  SHA-512 de la distribución con ese commit y el workflow release.
- `provenance.json` registra hashes individuales de los assets y herramientas.
  Se contrastaron bytes de npm; no se afirma recompilación idéntica ni validación
  criptográfica independiente de la firma de procedencia.

## Contenido de sevenzip-sources.tar.gz

`upstream/` contiene el repositorio del wrapper, scripts, parches y avisos originales;
`upstream/7zip/` contiene las fuentes reales del commit de 7-Zip referenciado.
`integration/` contiene el Worker y los helpers propios necesarios para esta integración,
sin convertidores económicos ni código privado de la aplicación. Los helpers de
integración incluidos se ofrecen bajo MIT (véase `integration/LICENSE`).

## Construir

Herramientas upstream: Emscripten SDK 6.0.1 (imagen Docker fijada por digest en
`.devcontainer/Dockerfile`), GNU make, bash, git y Node.js 24.
Los workflow y Dockerfile originales incluidos describen la preparación del entorno.
No hace falta instalar estas herramientas para ejecutar la aplicación.

```sh
tar -xzf sevenzip-sources.tar.gz
cd sevenzip-sources/upstream
# Con Emscripten 6.0.1 inicializado en el PATH:
GITHUB_ACTIONS=true GITHUB_SHA=7b53d4abf78da9eb06f9447730ae31eaf9acd7c3 ./build.sh
# Alternativamente, construcción con el contenedor original:
docker build -t sevenzip-local .devcontainer
docker run --rm -v "$PWD:/workspace" sevenzip-local ./build.sh
```

El script aplica `7zip-26.05.patch` y genera `sevenzip-wasm/sevenzip-wasm.js` y
`sevenzip-wasm/sevenzip-wasm.wasm`. El nombre de compilación incorpora SHA/fecha;
una reconstrucción local puede diferir en bytes. No se ha ejecutado Docker como
parte de esta entrega.

Para sustituir el motor, copiar esos dos archivos a `public/sevenzip/`, conservando
la factoría `SevenZipWasm`, `callMain`, FS, WORKERFS y los nombres esperados por
`worker.js`; actualizar procedencia, hashes y fuentes. Ejecutar los checks DX de
file-processing y el journey de navegador. No existe selector ni loader configurable.
Los helpers TypeScript usan el alias del proyecto `@/`; sus imports relativos a la
integración y firma están incluidos con las mismas rutas en `integration/`.

LGPL, restricciones unRAR, avisos BSD y licencia original se distribuyen completos.
Estos materiales no constituyen una conclusión jurídica automática sobre toda la
aplicación ni sustituyen las condiciones de los textos originales.
