[v2] URI template reserved expansions encode existing %HH sequences again
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 84/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- typescript
- Bereich
- api
Rechercherichtung
Beginne mit packages/core-internal/src/shared/uriTemplate.ts und führe die bereitgestellte repro.mjs mit Node.js 24 oder höher aus. Aktualisiere UriTemplate.expand() so, dass reservierte und Fragment-Erweiterungen bereits vorhandene gültige %HH-Sequenzen beibehalten und gleichzeitig andere Prozentzeichen codieren; repro sollte die beiden erwarteten Ausgaben erzeugen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- TypeScript
- Sterne
- 13.7k
- Forks
- 2.3k
- Ø Merge
- 1 T. 2 Std.
- Gemergte PRs (30 T.)
- 60
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus modelcontextprotocol/typescript-sdk
-
The `maxToolInputElements` refusal lacks the `Input validation error:` prefix that the schema refusal carriesEvtl. vergeben @barry166 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
modelcontextprotocol/typescript-sdk#3111 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
v2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 71/100
modelcontextprotocol/typescript-sdk#3109 ·
Maintainer antworten meist innerhalb von 1 Tag
-
server: registeredResource.update and registeredResourceTemplate.update desync title and metadata.title when updating metadata aloneEvtl. vergeben @FelixFangX hat das heute übernommen. Offenv1 v2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
modelcontextprotocol/typescript-sdk#3103 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
[v2] server/client 2.4.0 inline fast-uri 3.1.8; four advisories published after release are fixed in 3.1.9Evtl. vergeben @claude hat das heute übernommen. Offenv2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
modelcontextprotocol/typescript-sdk#3101 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[v1.x] Protocol.request keeps its abort listener after the request resolved, so a later abort sends notifications/cancelled for an answered request (1.30.0)Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenv1
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
modelcontextprotocol/typescript-sdk#3090 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in modelcontextprotocol/typescript-sdk
Ähnliche Issues
-
area: server priority: P3 type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
appandflow/stim#4538 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[BUG] Published Docker images lack the redis extra: HEADROOM_COMPRESS_SESSION_STORE stops startupEvtl. vergeben @AlessandroSpallina hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
headroomlabs-ai/headroom#4513 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug extension extension: obsidian platform: Windows
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
raycast/extensions#32838 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
copy design-review mac P3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
tosunlab/hisarapp-core#510 ·
-
bug priority-medium to-agent
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag