Relative JS imports with a query string (`./foo.js?v=123`) are not resolved
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, python, typescript
Línea de trabajo
Lee extractors/resolution.py alrededor de _resolve_js_module_path (líneas 855–856) y compara su tratamiento con el de extractors/markdown.py alrededor de la línea 289. Comprueba cómo se resuelven los especificadores relativos de JavaScript y TypeScript con cadenas de consulta o fragmentos, y ejecuta las pruebas de resolución pertinentes. Se considera terminado cuando ./foo.js?v=123 se resuelve como ./foo.js sin crear un nodo fantasma; el issue no indica un archivo de prueba específico.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version: graphify 0.9.93 (graphifyy), extract --code-only, GRAPHIFY_BACKEND=none
Description
ES module imports that include a cache-busting query string are not resolved to the target file:
import { foo } from './lib/foo.js?v=134';
Instead of an imports_from edge to lib/foo.js, graphify creates a phantom node (e.g. ref_foo_js_v_134) and the real file gets no inbound edge. Symbol imports and cross-file calls are lost as well, since they depend on the module resolving.
Impact (real project, 93 JS files)
- Phantom
_v_nodes: 96 → 0 after stripping the suffix - Inbound imports_from edges for the most-used module: 0 → 29
- Symbol imports: 30 → 413
- About 400 cross-file
callsedges recovered
Root cause
extractors/resolution.py, lines 855-856 (_resolve_js_module_path): relative specifiers are resolved with start_dir / raw without stripping the ?query / #fragment part. The Markdown extractor already strips it (extractors/markdown.py:289), so applying the same normalization to relative JS/TS specifiers should fix it.
Also present on v8 (default branch) as of 0a8cd4e1e342235fe53e881fb5d591bf0460071f (resolution.py lines 868-869).
Current workaround
Copy the tree to a temp dir, strip the suffix with sed -E 's/(\.js)\?v=[0-9]+/\1/g', and extract from the copy.
Expected behavior
./foo.js?v=123 resolves to ./foo.js, as browsers and bundlers do for module resolution.
Related: #2849 lists one ../styles.css?url import under "Resource-query import is unresolved". It looks like the same root cause.
- Lenguaje dominante
- Python
- Estrellas
- 124k
- Forks
- 11.9k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 Graphify-Labs/graphify
-
Cache the claude backend system prompt via Anthropic prompt cachingPosiblemente ocupada @Jvxoq la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Graphify-Labs/graphify#4835 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
extract --out <dir>: semantic cache never saved, docs missing from manifest (relative source_file resolved against --out)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Graphify-Labs/graphify#4831 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 75/100
Graphify-Labs/graphify#4829 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
hooks: last-resort `python3` probe launches the Microsoft Store redirector on Windows (visible console flash, exit 9009)Posiblemente ocupada @Deepjyoti-Sarmah la tomó hace 10 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Graphify-Labs/graphify#4563 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
GRAPHIFY_DISABLE_THINKING is ignored by the claude backend, so thinking eats max_tokens and extraction truncatesPosiblemente ocupada @bercedev la tomó hace 11 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
Graphify-Labs/graphify#4546 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de Graphify-Labs/graphify
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
Validate finite output clamping limits in StepPredictor.prepare_clamping_params to prevent silent NaN/Inf propagationPosiblemente ocupada @muskan-creates352 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
mllam/neural-lam#848 ·
Los mantenedores suelen responder en 2 días
-
infra
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
fab-geocommuns/RNB-coeur#1166 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
deepspeedai/DeepSpeed#8951 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
aws/context-ontology-accelerator#343 ·
Los mantenedores suelen responder en 1 día