entrygraph 0.1.41__tar.gz → 0.1.42__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {entrygraph-0.1.41 → entrygraph-0.1.42}/PKG-INFO +1 -1
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/_version.py +2 -2
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/javascript.py +50 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_entrypoints_javascript.py +52 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/.github/workflows/ci.yml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/.github/workflows/release.yml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/.gitignore +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/LICENSE +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/README.md +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/RELEASING.md +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/pyproject.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/__main__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/api.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/cli/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/cli/main.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/cli/render.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/csharp.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/go.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/java.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/javascript.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/lib_javascript.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/lib_python.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/php.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/python.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/ruby.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/data/sinks/rust.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/db/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/db/engine.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/db/meta.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/db/models.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/db/queries.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/base.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/configs.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/csharp.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/golang.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/java.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/php.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/python.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/ruby.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/entrypoints/rust.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/frameworks.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/manifests.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/detect/taint.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/errors.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/base.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/csharp.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/golang.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/ir.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/java.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/javascript.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/php.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/python.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/registry.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/ruby.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/extract/rust.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/fs/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/fs/hashing.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/fs/lang.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/fs/walker.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/graph/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/graph/adjacency.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/graph/cte.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/graph/scoring.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/kinds.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/parsing/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/parsing/parsers.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/parsing/queries.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/pipeline/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/pipeline/scanner.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/pipeline/worker.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/pipeline/writer.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/py.typed +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/csharp/calls.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/csharp/definitions.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/csharp/imports.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/go/calls.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/go/definitions.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/go/imports.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/java/calls.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/java/definitions.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/java/imports.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/javascript/calls.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/javascript/definitions.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/javascript/imports.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/php/calls.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/php/definitions.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/php/imports.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/python/calls.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/python/definitions.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/python/imports.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/ruby/calls.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/ruby/definitions.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/ruby/imports.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/rust/calls.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/rust/definitions.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/queries/rust/imports.scm +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/resolve/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/resolve/externals.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/resolve/hierarchy.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/resolve/resolver.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/resolve/symbol_table.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/src/entrygraph/results.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/conftest.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/csharp/aspnet_app/Controllers/ReportsController.cs +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/csharp/aspnet_app/Program.cs +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/csharp/aspnet_app/Services/ReportService.cs +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/csharp/aspnet_app/app.csproj +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/csharp/minimalapi_app/Program.cs +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/csharp/minimalapi_app/app.csproj +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/go/gin_app/go.mod +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/go/gin_app/main.go +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/go/gin_app/service.go +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/go/nethttp_app/go.mod +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/go/nethttp_app/main.go +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/java/methodref_app/pom.xml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/java/methodref_app/src/main/java/com/example/App.java +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/java/spring_app/pom.xml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/java/spring_app/src/main/java/com/example/Application.java +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/java/spring_app/src/main/java/com/example/ReportRunner.java +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/java/spring_app/src/main/java/com/example/ReportService.java +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/java/spring_app/src/main/java/com/example/UserController.java +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/javascript/commonjs_app/server.js +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/javascript/express_app/package.json +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/javascript/express_app/src/routes.js +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/javascript/express_app/src/services.js +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/php/laravel_app/app/Http/Controllers/ReportController.php +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/php/laravel_app/artisan +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/php/laravel_app/composer.json +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/php/laravel_app/routes/web.php +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/chained_sinks/app.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/flask_app/app/__init__.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/flask_app/app/db.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/flask_app/app/routes.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/flask_app/app/services.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/flask_app/cli.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/flask_app/requirements.txt +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/fuzzy_sink/app.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/heal_fidelity/caller.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/heal_fidelity/worker.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/may_continue/app.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/sanitizer/app.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/python/taint_source/handler.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/ruby/sinatra_app/Gemfile +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/ruby/sinatra_app/app.rb +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/ruby/sinatra_app/services/runner.rb +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/rust/axum_app/Cargo.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/rust/axum_app/src/handlers.rs +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/rust/axum_app/src/main.rs +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/rust/axum_callback_app/Cargo.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/rust/axum_callback_app/src/main.rs +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/rust/scoped_sink_app/Cargo.toml +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/rust/scoped_sink_app/src/main.rs +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_api.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_cli.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_commonjs.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_csharp_callbacks.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_cte_bounds.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_engine_pragmas.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_entrypoint_expansion.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_entrypoints.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_entrypoints_go.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_extract_csharp.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_extract_go.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_extract_java.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_extract_javascript.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_extract_php.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_extract_python.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_extract_ruby.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_extract_rust.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_frameworks.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_fuzzy_sink.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_go_callbacks.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_hardening.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_heal_fidelity.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_incremental.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_indexer.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_java_callbacks.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_lang.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_manifests.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_may_continue.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_models.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_pool.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_reachability.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_registry_cache.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_render.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_resolver.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_rust_callbacks.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_rust_scoped_sinks.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_sanitizer_languages.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_scoring.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_sink_catalog.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_taint.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_taint_sanitizers.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_taint_sources.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/tests/test_walker.py +0 -0
- {entrygraph-0.1.41 → entrygraph-0.1.42}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: entrygraph
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.42
|
|
4
4
|
Summary: Language-agnostic code graph: query symbols, entrypoints, and source-to-sink call paths from a SQLite index
|
|
5
5
|
Project-URL: Repository, https://github.com/brettbergin/entrygraph
|
|
6
6
|
Author-email: Brett Bergin <brettberginbc@yahoo.com>
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.1.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 1,
|
|
21
|
+
__version__ = version = '0.1.42'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 1, 42)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -239,6 +239,47 @@ def _next_handlers(x: FileExtraction) -> list[EntrypointHint]:
|
|
|
239
239
|
|
|
240
240
|
|
|
241
241
|
_HTTP_METHODS_UPPER = frozenset(m.upper() for m in _HTTP_METHODS)
|
|
242
|
+
_NEXT_PAGES_EXTS = (".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs")
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
def _next_pages_handlers(x: FileExtraction) -> list[EntrypointHint]:
|
|
246
|
+
"""Next.js Pages Router API routes: every file under `pages/api/**` is a route
|
|
247
|
+
(file-based routing), whatever the default-export shape — a named `handler`
|
|
248
|
+
function, a `createNextApiHandler(router)` wrapper, or a bare arrow. The IR has
|
|
249
|
+
no `export default` marker to key on, so we rely on the file convention itself.
|
|
250
|
+
|
|
251
|
+
The handler dispatches on `req.method` internally, so the route carries no
|
|
252
|
+
specific verb. Bind to a `handler`-named function when present (the Pages
|
|
253
|
+
Router convention) so taint reaches the real body; otherwise the module.
|
|
254
|
+
"""
|
|
255
|
+
normalized = f"/{x.path}" # leading slash so a top-level `pages/` dir also matches
|
|
256
|
+
if "/pages/api/" not in normalized or not x.path.endswith(_NEXT_PAGES_EXTS):
|
|
257
|
+
return []
|
|
258
|
+
if x.path.endswith(".d.ts") or ".test." in x.path or ".spec." in x.path:
|
|
259
|
+
return [] # type decls and colocated tests aren't routes (#33)
|
|
260
|
+
tail = normalized.split("/pages/api/", 1)[1].rsplit(".", 1)[0] # after prefix, no ext
|
|
261
|
+
if tail == "index":
|
|
262
|
+
tail = ""
|
|
263
|
+
elif tail.endswith("/index"):
|
|
264
|
+
tail = tail[: -len("/index")]
|
|
265
|
+
route = "/api" + (f"/{tail}" if tail else "")
|
|
266
|
+
handler = next(
|
|
267
|
+
(
|
|
268
|
+
s.qualified_name
|
|
269
|
+
for s in x.symbols
|
|
270
|
+
if s.kind in (SymbolKind.FUNCTION, SymbolKind.METHOD) and s.name == "handler"
|
|
271
|
+
),
|
|
272
|
+
None,
|
|
273
|
+
)
|
|
274
|
+
return [
|
|
275
|
+
EntrypointHint(
|
|
276
|
+
rule_id="javascript.next.pages-route",
|
|
277
|
+
kind=EntrypointKind.HTTP_ROUTE,
|
|
278
|
+
handler_qualified_name=handler,
|
|
279
|
+
route=route,
|
|
280
|
+
framework="next",
|
|
281
|
+
)
|
|
282
|
+
]
|
|
242
283
|
|
|
243
284
|
|
|
244
285
|
register(
|
|
@@ -323,3 +364,12 @@ register(
|
|
|
323
364
|
"javascript.next.route", "javascript", "next", EntrypointKind.HTTP_ROUTE, _next_handlers
|
|
324
365
|
)
|
|
325
366
|
)
|
|
367
|
+
register(
|
|
368
|
+
EntrypointRule(
|
|
369
|
+
"javascript.next.pages-route",
|
|
370
|
+
"javascript",
|
|
371
|
+
"next",
|
|
372
|
+
EntrypointKind.HTTP_ROUTE,
|
|
373
|
+
_next_pages_handlers,
|
|
374
|
+
)
|
|
375
|
+
)
|
|
@@ -73,3 +73,55 @@ def test_next_ignores_non_method_symbols_and_non_route_files():
|
|
|
73
73
|
assert _next_rule().match(_js_ext([_sym("helper", SymbolKind.VARIABLE)])) == []
|
|
74
74
|
off_route = _js_ext([_sym("GET", SymbolKind.VARIABLE)], path="apps/web/app/api/me/page.ts")
|
|
75
75
|
assert _next_rule().match(off_route) == []
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def _pages_rule():
|
|
79
|
+
return {r.id: r for r in rules_for("javascript", {"next"})}["javascript.next.pages-route"]
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def _handler_sym(qname="apps.web.pages.api.book.event.handler"):
|
|
83
|
+
return RawSymbol(
|
|
84
|
+
kind=SymbolKind.FUNCTION, name="handler", qualified_name=qname, span=Span(1, 0, 1, 40)
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def test_next_pages_route_binds_named_handler():
|
|
89
|
+
# Pages Router is file-based: pages/api/book/event.ts is the route /api/book/event,
|
|
90
|
+
# and the conventional `export default function handler` binds it (#37).
|
|
91
|
+
ext = _js_ext([_handler_sym()], path="apps/web/pages/api/book/event.ts")
|
|
92
|
+
hints = _pages_rule().match(ext)
|
|
93
|
+
assert len(hints) == 1
|
|
94
|
+
h = hints[0]
|
|
95
|
+
assert h.kind is EntrypointKind.HTTP_ROUTE
|
|
96
|
+
assert h.route == "/api/book/event"
|
|
97
|
+
assert h.http_methods == [] # method dispatched inside the handler
|
|
98
|
+
assert h.handler_qualified_name == "apps.web.pages.api.book.event.handler"
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def test_next_pages_route_without_handler_falls_back_to_module():
|
|
102
|
+
# `export default createNextApiHandler(router)` (tRPC) defines no handler symbol;
|
|
103
|
+
# the route is still detected, left unbound for the scanner to anchor on module.
|
|
104
|
+
ext = _js_ext(path="apps/web/pages/api/trpc/[trpc].ts")
|
|
105
|
+
hint = _pages_rule().match(ext)[0]
|
|
106
|
+
assert hint.route == "/api/trpc/[trpc]"
|
|
107
|
+
assert hint.handler_qualified_name is None
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def test_next_pages_index_files_map_to_parent():
|
|
111
|
+
foo = _pages_rule().match(_js_ext(path="apps/web/pages/api/foo/index.ts"))[0]
|
|
112
|
+
assert foo.route == "/api/foo"
|
|
113
|
+
assert _pages_rule().match(_js_ext(path="pages/api/index.ts"))[0].route == "/api"
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def test_next_pages_excludes_tests_and_type_decls():
|
|
117
|
+
for path in (
|
|
118
|
+
"apps/web/pages/api/book/recurring-event.test.ts",
|
|
119
|
+
"apps/web/pages/api/foo.spec.ts",
|
|
120
|
+
"apps/web/pages/api/types.d.ts",
|
|
121
|
+
):
|
|
122
|
+
assert _pages_rule().match(_js_ext(path=path)) == []
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def test_next_pages_ignores_non_api_pages():
|
|
126
|
+
# A React page under pages/ (not pages/api/) is not an API route.
|
|
127
|
+
assert _pages_rule().match(_js_ext(path="apps/web/pages/about.tsx")) == []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/csharp/aspnet_app/Services/ReportService.cs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{entrygraph-0.1.41 → entrygraph-0.1.42}/tests/fixtures/javascript/express_app/src/services.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|