- README: format 3 in the table of contents and in the current
version, and the coverage thresholds as vitest.config.ts has them,
prefix.ts and the modules of the page included.
- /create: each path is a textarea of one row that grows with its
content where the browser can size it, so that a long path shows
its end, the file name, on a phone of 375 px too. Enter adds no line.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ -12,6 +12,7 @@ La implementación de referencia es la librería Go `g.activething.com/go/DateKe
| Página inspector, sin red | SvelteKit estático: `src/routes/`, `src/lib/inspector/`, `src/lib/components/` | 5 | hecho |
| Apertura de cápsulas en el navegador, y la acción "abrir" de la página | fase 2 (`PLAN_fase2_ibe_noble2.md`, en `../docs`) | 6 | hecho (pasos 2 a 8 de la fase 2) |
| Escritura de cápsulas en TypeScript | fase 3 (`PLAN_fase3_escritura.md`, en `../docs`) | 7 | hecho: la librería, su interoperabilidad con Go y la página `/create` (pasos 0 a 7 del plan) |
| Formato 3, especificación 0.10 (entrega 1) | `PLAN_formato3_ts.md`, en `../docs`, rama `v0.10` | — | hecho: la lectura y la escritura del formato 3, las reglas de las rutas, el ZIP de la página, `/inspect` y `/create` con ficheros y carpetas (pasos 0 a 8 del plan) |
## Versiones
@ -25,7 +26,7 @@ Hay tres números de versión, cada uno con su significado, como en la referenci
`version.test.ts` comprueba que `VERSION` coincide con `package.json` y con su lockfile, y que `SPEC_VERSION` es la versión que nombran los vectores y fixtures compartidos; `vectors.test.ts` exige esa versión a cada fichero. El pie de la página muestra las dos.
La versión actual es `0.2.0-dev`: la fase 3 añade la escritura de cápsulas de formato 2 y, en la rama `v0.10`, el plan del formato 3 (`PLAN_formato3_ts.md`, en `../docs`) añade la especificación 0.10: por ahora, la lectura del formato 3. La última publicada es `0.1.0`, del 29 de septiembre de 2026, con el tag `v0.1.0`, que cubre:
La versión actual es `0.2.0-dev`: la fase 3 añade la escritura de cápsulas de formato 2 y, en la rama `v0.10`, el plan del formato 3 (`PLAN_formato3_ts.md`, en `../docs`) añade la especificación 0.10: lee los formatos 1 a 3, escribe el 3, y el 2 solo como generador de vectores (§62.1, regla 1), y las páginas abren y crean cápsulas de formato 3 con ficheros y carpetas. El número de la versión que lo publique lo decide el autor. La última publicada es `0.1.0`, del 29 de septiembre de 2026, con el tag `v0.1.0`, que cubre:
- la especificación 0.9: lee los formatos de cápsula 1 y 2 (escribir, que solo escribirá el formato 2, llega en la fase 3);
- solo el scheme de Quicknet (`bls-unchained-g1-rfc9380`): un perfil de otro scheme se inspecciona, pero su release no se verifica (decisión 3 del plan de la fase 2);
- la inspección de los pasos 1 a 8 y la apertura de los pasos 9 a 18 (`open.ts`), desde un `Uint8Array` o un `Blob` y hacia memoria o hacia un stream de salida, como el de un fichero OPFS, también desde la página `/inspect`. Escribir cápsulas llega en la fase 3;
@ -244,7 +245,7 @@ npm run build:check # solo la comprobación del sitio ya construido
npm run verify # check, typecheck, coverage y build (con su comprobación)
```
Umbrales de cobertura (`vitest.config.ts`): `cbor.ts`, `ibe.ts`, `release.ts`, `tlock.ts`, `x25519.ts`, `bech32.ts`, `digest.ts`, `padding.ts`, `agefile.ts`, `recipient.ts`, `random.ts`, `writer.ts`, `encrypt.ts` y `lengths.ts`, y `localtime.ts`, `create-input.ts` y `creator.ts` de la página, al 100 % en líneas, ramas, funciones y sentencias; el conjunto de `src/lib/dkc` al 95/90/95/95, y el de `src/lib/inspector` también.
Umbrales de cobertura (`vitest.config.ts`), al 100 % en líneas, ramas, funciones y sentencias: de la librería, `cbor.ts`, `ibe.ts`, `release.ts`, `x25519.ts`, `bech32.ts`, `digest.ts`, `tlock.ts`, `prefix.ts`, `recipient.ts`, `random.ts`, `agefile.ts`, `padding.ts`, `writer.ts`, `encrypt.ts` y `lengths.ts`, y los del formato 3, `pathrule.ts`, `body.ts`, `security.ts`, `head.ts`, `open3.ts` y `sink.ts`; de la página, `fixtures.ts`, `opener.ts`, `opening.ts`, `release-input.ts`, `tempfile.ts`, `localtime.ts`, `create-input.ts` y `creator.ts`, y los del formato 3, `crc32.ts`, `zip.ts`, `zipsink.ts`, `files.ts`, `create-files.ts` y `create-check.ts`. El conjunto de `src/lib/dkc` al 95/90/95/95, y el de `src/lib/inspector` también.
`vitest.config.ts` es la configuración de los tests; `vite.config.ts`, la del sitio con el plugin de SvelteKit. Vitest prefiere la primera, así que los tests de `src/lib` corren sin SvelteKit, y `src/lib/inspector` importa la librería por rutas relativas, sin el alias `$lib`. `tsconfig.json` extiende el que genera `svelte-kit sync` (por eso `typecheck` y `check` lo ejecutan antes, y `npm install` también, con `prepare`).