entrygraph 0.1.34__tar.gz → 0.1.35__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.34 → entrygraph-0.1.35}/PKG-INFO +1 -1
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/_version.py +2 -2
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/ruby.py +8 -1
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_entrypoint_expansion.py +38 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/.github/workflows/ci.yml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/.github/workflows/release.yml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/.gitignore +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/LICENSE +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/README.md +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/RELEASING.md +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/pyproject.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/__main__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/api.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/cli/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/cli/main.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/cli/render.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/csharp.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/go.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/java.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/javascript.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/lib_javascript.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/lib_python.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/php.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/python.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/ruby.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/data/sinks/rust.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/db/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/db/engine.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/db/meta.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/db/models.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/db/queries.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/base.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/configs.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/csharp.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/golang.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/java.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/javascript.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/php.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/python.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/entrypoints/rust.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/frameworks.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/manifests.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/detect/taint.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/errors.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/base.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/csharp.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/golang.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/ir.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/java.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/javascript.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/php.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/python.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/registry.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/ruby.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/extract/rust.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/fs/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/fs/hashing.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/fs/lang.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/fs/walker.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/graph/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/graph/adjacency.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/graph/cte.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/graph/scoring.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/kinds.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/parsing/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/parsing/parsers.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/parsing/queries.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/pipeline/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/pipeline/scanner.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/pipeline/worker.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/pipeline/writer.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/py.typed +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/csharp/calls.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/csharp/definitions.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/csharp/imports.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/go/calls.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/go/definitions.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/go/imports.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/java/calls.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/java/definitions.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/java/imports.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/javascript/calls.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/javascript/definitions.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/javascript/imports.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/php/calls.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/php/definitions.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/php/imports.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/python/calls.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/python/definitions.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/python/imports.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/ruby/calls.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/ruby/definitions.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/ruby/imports.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/rust/calls.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/rust/definitions.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/queries/rust/imports.scm +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/resolve/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/resolve/externals.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/resolve/hierarchy.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/resolve/resolver.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/resolve/symbol_table.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/src/entrygraph/results.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/conftest.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/csharp/aspnet_app/Controllers/ReportsController.cs +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/csharp/aspnet_app/Program.cs +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/csharp/aspnet_app/Services/ReportService.cs +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/csharp/aspnet_app/app.csproj +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/csharp/minimalapi_app/Program.cs +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/csharp/minimalapi_app/app.csproj +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/go/gin_app/go.mod +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/go/gin_app/main.go +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/go/gin_app/service.go +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/go/nethttp_app/go.mod +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/go/nethttp_app/main.go +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/java/methodref_app/pom.xml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/java/methodref_app/src/main/java/com/example/App.java +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/java/spring_app/pom.xml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/java/spring_app/src/main/java/com/example/Application.java +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/java/spring_app/src/main/java/com/example/ReportRunner.java +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/java/spring_app/src/main/java/com/example/ReportService.java +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/java/spring_app/src/main/java/com/example/UserController.java +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/javascript/commonjs_app/server.js +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/javascript/express_app/package.json +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/javascript/express_app/src/routes.js +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/javascript/express_app/src/services.js +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/php/laravel_app/app/Http/Controllers/ReportController.php +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/php/laravel_app/artisan +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/php/laravel_app/composer.json +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/php/laravel_app/routes/web.php +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/chained_sinks/app.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/flask_app/app/__init__.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/flask_app/app/db.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/flask_app/app/routes.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/flask_app/app/services.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/flask_app/cli.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/flask_app/requirements.txt +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/fuzzy_sink/app.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/heal_fidelity/caller.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/heal_fidelity/worker.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/may_continue/app.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/sanitizer/app.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/python/taint_source/handler.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/ruby/sinatra_app/Gemfile +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/ruby/sinatra_app/app.rb +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/ruby/sinatra_app/services/runner.rb +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/rust/axum_app/Cargo.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/rust/axum_app/src/handlers.rs +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/rust/axum_app/src/main.rs +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/rust/axum_callback_app/Cargo.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/rust/axum_callback_app/src/main.rs +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/rust/scoped_sink_app/Cargo.toml +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/fixtures/rust/scoped_sink_app/src/main.rs +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_api.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_cli.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_commonjs.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_csharp_callbacks.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_cte_bounds.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_engine_pragmas.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_entrypoints.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_extract_csharp.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_extract_go.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_extract_java.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_extract_javascript.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_extract_php.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_extract_python.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_extract_ruby.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_extract_rust.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_frameworks.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_fuzzy_sink.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_go_callbacks.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_hardening.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_heal_fidelity.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_incremental.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_indexer.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_java_callbacks.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_lang.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_manifests.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_may_continue.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_models.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_pool.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_reachability.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_registry_cache.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_render.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_resolver.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_rust_callbacks.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_rust_scoped_sinks.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_sanitizer_languages.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_scoring.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_sink_catalog.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_taint.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_taint_sanitizers.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_taint_sources.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/tests/test_walker.py +0 -0
- {entrygraph-0.1.34 → entrygraph-0.1.35}/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.35
|
|
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.35'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 1, 35)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -21,6 +21,13 @@ _SINATRA_VERBS = frozenset({"get", "post", "put", "delete", "patch"})
|
|
|
21
21
|
_RAILS_VERBS = frozenset({"get", "post", "put", "patch", "delete", "resources", "resource", "root"})
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
def _is_rails_routes_file(path: str) -> bool:
|
|
25
|
+
"""The main `config/routes.rb` plus split route files loaded via `draw(:x)`
|
|
26
|
+
(`config/routes/api.rb`, `config/routes/admin.rb`, ...). Missing the split
|
|
27
|
+
files hid most of the route surface on large Rails apps (mastodon/forem)."""
|
|
28
|
+
return path.endswith("config/routes.rb") or "/config/routes/" in f"/{path}"
|
|
29
|
+
|
|
30
|
+
|
|
24
31
|
def _sinatra_routes(x: FileExtraction) -> list[EntrypointHint]:
|
|
25
32
|
hints = []
|
|
26
33
|
for ref in x.references:
|
|
@@ -46,7 +53,7 @@ def _sinatra_routes(x: FileExtraction) -> list[EntrypointHint]:
|
|
|
46
53
|
|
|
47
54
|
|
|
48
55
|
def _rails_routes(x: FileExtraction) -> list[EntrypointHint]:
|
|
49
|
-
if not x.path
|
|
56
|
+
if not _is_rails_routes_file(x.path):
|
|
50
57
|
return []
|
|
51
58
|
hints = []
|
|
52
59
|
for ref in x.references:
|
|
@@ -402,3 +402,41 @@ def test_nestjs_decorator_routes_with_controller_prefix():
|
|
|
402
402
|
hints = {h.http_methods[0]: h.route for h in rules["javascript.nestjs.route"].match(x)}
|
|
403
403
|
assert hints["GET"] == "/users/:id" # controller prefix + method path
|
|
404
404
|
assert hints["POST"] == "/users"
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
def _ruby_ext(references, path):
|
|
408
|
+
return FileExtraction(
|
|
409
|
+
path=path,
|
|
410
|
+
language="ruby",
|
|
411
|
+
module_path=path.replace("/", ".").removesuffix(".rb"),
|
|
412
|
+
parse_ok=True,
|
|
413
|
+
error_count=0,
|
|
414
|
+
symbols=[],
|
|
415
|
+
references=list(references),
|
|
416
|
+
)
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
def _ruby_route_ref(verb, route):
|
|
420
|
+
return RawReference(
|
|
421
|
+
kind="call",
|
|
422
|
+
callee_text=verb,
|
|
423
|
+
callee_name=verb,
|
|
424
|
+
receiver_text=None,
|
|
425
|
+
span=SPAN,
|
|
426
|
+
caller_qualified_name=None,
|
|
427
|
+
arg_preview=f"('{route}', to: 'x#y')",
|
|
428
|
+
)
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
def test_rails_routes_read_from_split_route_files():
|
|
432
|
+
# Rails apps split routes into config/routes/*.rb loaded via `draw(:api)`; the
|
|
433
|
+
# rule must read those, not only the top-level config/routes.rb (#37 / F-H22).
|
|
434
|
+
from entrygraph.detect.entrypoints import rules_for
|
|
435
|
+
|
|
436
|
+
rule = {r.id: r for r in rules_for("ruby", {"rails"})}["ruby.rails.routes"]
|
|
437
|
+
main = rule.match(_ruby_ext([_ruby_route_ref("get", "/health")], "config/routes.rb"))
|
|
438
|
+
split = rule.match(_ruby_ext([_ruby_route_ref("post", "/users")], "config/routes/api.rb"))
|
|
439
|
+
unrelated = rule.match(_ruby_ext([_ruby_route_ref("get", "/x")], "app/models/user.rb"))
|
|
440
|
+
assert [h.route for h in main] == ["/health"]
|
|
441
|
+
assert [h.route for h in split] == ["/users"] # the split file is now read
|
|
442
|
+
assert unrelated == [] # a non-routes file is still ignored
|
|
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.34 → entrygraph-0.1.35}/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.34 → entrygraph-0.1.35}/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
|