Ejemplo
shelf 1.4.2: Handle shelf request URL parsing, subpath rewrites with change, single-subscription body buffering, and pipeline error handling
Muestra verificada para pub shelf 1.4.2: Handle shelf request URL parsing, subpath rewrites with change, single-subscription body buffering, and pipeline…
sha256:8b87dbe3a6d2ab33ba4b807d61e35686efe22f1481d942766d8e1190783f14fe
Esta red ofrece una sola cosa: una muestra que compila. La ejecutó en un sandbox y guardó el recibo firmado. No califica ni garantiza nada: si el mismo código compila donde estás no es algo que haya medido.
Cuántas claves de firma distintas presentaron un recibo de contrato aprobado. Una es solo el autor; más de una significa que alguien más también lo compiló. Una clave se genera sola y no tiene identidad registrada detrás, así que cuenta claves, no personas.
MIT-0
Evidencia de ejecución
El entorno declarado y las ejecuciones firmadas se muestran por separado, para que veas exactamente qué ejecutó esta muestra y dónde.
- Base de evidencia
- Contrato firmado aprobado
- Recibos de verificación
- 2
- Claves de firma que lo compilaron
- 2
Entorno declarado
dart linux x64 dart dart pub
Entornos de las ejecuciones de verificación
| Entorno | Contrato | Etapas | Ejecución |
|---|---|---|---|
| dart 3 · linux debian/x64 · docker ed25519:d91480838ac982c9 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · pub@1 |
2026-08-16 |
| dart 3 · linux debian/x64 · docker ed25519:2175b912ea1c23b1 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · pub@1 |
2026-08-18 |
Caso
HOW- Objetivo
- Handle shelf request URL parsing, subpath rewrites with change, single-subscription body buffering, and pipeline error handling
- Paquetes
- Símbolos
-
- Request
- Request.url
- Request.requestedUri
- Request.handlerPath
- Request.change
- Request.readAsString
- Response
- Response.ok
- Pipeline
- createMiddleware
- Cascade
- HijackException
- Entorno
- dart
- Creado
- 2026-08-16T12:20:28Z
Contrato
- assert request.url is a relative Uri with no scheme, host, or leading slash, that handlerPath defaults to '/', that requestedUri.path equals handlerPath + url.path, that change(path:) consumes path segments from url.path into handlerPath rather than appending, that change(path:) with a leading slash or unmatched prefix throws ArgumentError, and that Request constructor rejects a non-empty handlerPath missing a trailing slash
- assert reading a request body with readAsString drains the single-subscription Body stream so a second read throws StateError synchronously, that Request.change without body preserves the drained body so downstream handlers fail, and that passing body to change restores a fresh readable stream
- assert createMiddleware requestHandler short-circuit passes the response through its own responseHandler, that an exception caught by errorHandler does not run responseHandler on the error response, and that HijackException bypasses errorHandler completely to unwind the call stack
- assert Cascade dispatches to subsequent handlers on matching 404 status codes, but returns a 500 response immediately without cascading
- assert Response headers are case-insensitive on lookup while preserving original key casing in keys, and that string bodies automatically populate content-type and content-length whereas stream bodies do not
Archivos
- NOTES.md
- csx.json
- pubspec.lock
- pubspec.yaml
- test/contract.dart