[v2] URI template reserved expansions encode existing %HH sequences again
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 84/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- api
Línea de trabajo
Comienza por packages/core-internal/src/shared/uriTemplate.ts y ejecuta la repro.mjs proporcionada con Node.js 24 o posterior. Actualiza UriTemplate.expand() para que las expansiones reservadas y de fragmento conserven las secuencias %HH válidas existentes y sigan codificando los demás signos de porcentaje; repro debería producir las dos salidas esperadas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What happened?
UriTemplate.expand() encodes the percent sign in an existing escape during reserved (+) and fragment (#) expansion. A path containing My%20File.txt becomes My%2520File.txt.
What did you expect?
Expected output from the snippet below:
file:///docs/My%20File.txt
docs#Part%20One
RFC 6570 section 3.2.1 allows existing percent-encoded triplets in reserved and fragment values. An ordinary percent sign, or a percent sign without two following hex digits, still needs encoding.
Code to reproduce
Save this as repro.mjs at the SDK repository root and run node repro.mjs with Node.js 24 or later. It imports the source module directly.
import { UriTemplate } from './packages/core-internal/src/shared/uriTemplate.ts';
console.log(new UriTemplate('file://{+path}').expand({ path: '/docs/My%20File.txt' }));
console.log(new UriTemplate('docs{#section}').expand({ section: 'Part%20One' }));
Current output:
file:///docs/My%2520File.txt
docs#Part%2520One
SDK version
main at e16d27729ea2fae144a6d957fd0372d9eb0e6c58 (v2 source checkout). Tested with Node.js 24.12.0.
Area
Other
- Lenguaje dominante
- TypeScript
- Estrellas
- 13.5k
- Forks
- 2.3k
- Merge medio
- 2 d 18 h
- PR fusionados (30 d)
- 55
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de modelcontextprotocol/typescript-sdk
-
v1 v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
modelcontextprotocol/typescript-sdk#2946 ·
Los mantenedores suelen responder en 1 día
-
[v2] URI template strict expansions leave !'()* unencodedPosiblemente ocupada @takagibit18 la tomó hace 4 días. Abiertov1 v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
modelcontextprotocol/typescript-sdk#2919 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Malformed params on spec request methods return -32603 Internal error instead of -32602 Invalid paramsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertov1 v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
modelcontextprotocol/typescript-sdk#2916 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Unconditional `prompt=consent` (when `offline_access` in scope) blocks OAuth in Entra tenants with user consent disabled + admin consent grantedPosiblemente ocupada @dasjideepak la tomó hace 10 días. Abiertov1 v2
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
modelcontextprotocol/typescript-sdk#2867 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
v1 v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
modelcontextprotocol/typescript-sdk#2854 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de modelcontextprotocol/typescript-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
Signals (Failure Detector): a tool call and its own execution are reported as a repeated callAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
platformatic/mcp#208 ·
Los mantenedores suelen responder en 1 día
-
🐛 bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
margelo/react-native-vision-camera#4211 ·
Los mantenedores suelen responder en 4 días