Improper handling of source maps with relative source roots
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- node.js, typescript
- Área
- devtools
Línea de trabajo
Comienza en src/hooks/instrument.ts, en la ubicación de transform() referenciada en el issue; después inspecciona la rama WIP source-map-relative-root y reproduce el ejemplo de TypeORM. Verifica que un sourceRoot relativo se resuelva con respecto a la URL del source map en lugar del directorio de trabajo, y confirma que el location.path resultante sea coherente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Source maps can have sourceRoot property; it's defined as a string that's prepended to every entry in the sources list. The specification doesn't put any constraints on this field; consequently, this can be a relative directory (eg. ..).
In my understanding, the intended semantics is that it's to be resolved relative to the URL of the source map itself, eg. given { sourceRoot: '..', sources: 'a.js' } and source map at file:///example/source.js.map the resolved source URL should be ../a.js => file:///a.js.
appmap-node does not handle this case correctly. Consider for example typeorm-0.3.20; metadata-args/MetadataArgsStorage.js.map contains:
$ jq '{sources, sourceRoot}' node_modules/typeorm/metadata-args/MetadataArgsStorage.js.map
{
"sources": [
"../../src/metadata-args/MetadataArgsStorage.ts"
],
"sourceRoot": ".."
}
However, when instrumenting the file, relevant location.path in transform() (as determined by the debugger) reads nonsensical ../home/divide/projects/tmp/NestJS-TypeORM-Example/node_modules/typeorm/metadata-args/src/metadata-args/MetadataArgsStorage.ts (note the working directory in this run is /home/divide/projects/tmp/NestJS-TypeORM-Example/).
(The path as indicated by the source map would be incorrect in any case (file:////home/divide/projects/tmp/NestJS-TypeORM-Example/src/metadata-args/MetadataArgsStorage.ts by my reading) which seems to be a bug in typeorm build, but that's beside the point.)
Note: I started working on this issue, here's a WIP branch: https://github.com/getappmap/appmap-node/tree/wip/source-map-relative-root
- Lenguaje dominante
- TypeScript
- Estrellas
- 13
- Forks
- 6
- Merge medio
- 4 d 14 h
- PR fusionados (30 d)
- 5
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 getappmap/appmap-node
-
Instrument pre-ES6 classesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
getappmap/appmap-node#183 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
getappmap/appmap-node#182 ·
Los mantenedores suelen responder en 1 día
-
Wrong parent in some async flowsAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
getappmap/appmap-node#180 ·
Los mantenedores suelen responder en 1 día
-
Support better-sqlite3Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
getappmap/appmap-node#179 ·
Los mantenedores suelen responder en 1 día
-
Support TypeORMAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
getappmap/appmap-node#178 ·
Los mantenedores suelen responder en 1 día
Todos los issues de getappmap/appmap-node
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
vercel/streamdown#673 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
docs(stream-protocol): document messageMetatadata on start/finish and the message-metadata chunkPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertofactory-active task-identify-harness-labels-done task-identify-issue-type-done
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
vercel/ai#23375 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
agilepathway/label-checker#721 ·
Los mantenedores suelen responder en 1 día
-
CLI Empathy needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
chromaui/chromatic-cli#1524 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día