cg-code-graph 0.14.0__tar.gz → 0.16.0__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.
- {cg_code_graph-0.14.0/cg_code_graph.egg-info → cg_code_graph-0.16.0}/PKG-INFO +2 -2
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/README.md +1 -1
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0/cg_code_graph.egg-info}/PKG-INFO +2 -2
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/cg_code_graph.egg-info/SOURCES.txt +7 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/__init__.py +1 -1
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/blindspots.py +1 -1
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/config.py +1 -1
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/detect.py +3 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/extractors.py +58 -3
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/coverage.py +3 -3
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/doctor.py +23 -11
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/indexer.py +2 -1
- cg_code_graph-0.16.0/codegraph/plugins/astro/content.py +564 -0
- cg_code_graph-0.16.0/codegraph/plugins/astro/plugin.py +512 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/ts/extractor/extract.mjs +317 -23
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/ts/extractor/fw.mjs +7 -6
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/ts/plugin.py +15 -9
- cg_code_graph-0.16.0/codegraph/viz/__init__.py +0 -0
- cg_code_graph-0.16.0/tests/test_astro.py +407 -0
- cg_code_graph-0.16.0/tests/test_astro_content.py +356 -0
- cg_code_graph-0.16.0/tests/test_astro_server.py +342 -0
- cg_code_graph-0.16.0/tests/test_js_runtime.py +182 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_packaging.py +1 -1
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/LICENSE +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/MANIFEST.in +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/cg_code_graph.egg-info/dependency_links.txt +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/cg_code_graph.egg-info/entry_points.txt +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/cg_code_graph.egg-info/requires.txt +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/cg_code_graph.egg-info/top_level.txt +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/affected.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/agent_rules.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/agents.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/aitools.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/android_ipc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/apple_ipc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/apps.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/bridges.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/brokers.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/cli.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/concepts.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/cache.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/fsutil.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/generated.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/model.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/paths.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/store.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/core/syntax_errors.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/dart_isolates.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/explore.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/external.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/graphql.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/hooks.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/jobs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/link.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/lint_async.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/local_ipc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/local_sockets.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/mcp_server.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/parity.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/parity_structure.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/payload.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plans.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/platform_scan.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/platforms.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/__init__.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/cfamily → cg_code_graph-0.16.0/codegraph/plugins/astro}/__init__.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/dart → cg_code_graph-0.16.0/codegraph/plugins/cfamily}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/cfamily/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/cfamily/syntax.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/django → cg_code_graph-0.16.0/codegraph/plugins/dart}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/dart/bridges.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/dart/extractor/bin/extract.dart +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/dart/extractor/pubspec.lock +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/dart/extractor/pubspec.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/dart/http.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/dart/models.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/dart/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/dart/program.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/express → cg_code_graph-0.16.0/codegraph/plugins/django}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/django/extras.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/django/models.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/django/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/django/schemas.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/django/shapes.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/django/urls.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/flutter → cg_code_graph-0.16.0/codegraph/plugins/express}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/express/plugin.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/kotlin → cg_code_graph-0.16.0/codegraph/plugins/flutter}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/flutter/plugin.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/laravel → cg_code_graph-0.16.0/codegraph/plugins/kotlin}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/kotlin/exact.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/kotlin/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/kotlin/reparse.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/native → cg_code_graph-0.16.0/codegraph/plugins/laravel}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/laravel/broadcast.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/laravel/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/laravel/tests.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/laravel/values.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/nest → cg_code_graph-0.16.0/codegraph/plugins/native}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/native/gates.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/native/runner.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/native/scipread.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/native/ts.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/nextjs → cg_code_graph-0.16.0/codegraph/plugins/nest}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/nest/plugin.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/nuxt → cg_code_graph-0.16.0/codegraph/plugins/nextjs}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/nextjs/plugin.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/php → cg_code_graph-0.16.0/codegraph/plugins/nuxt}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/nuxt/plugin.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/python → cg_code_graph-0.16.0/codegraph/plugins/php}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/php/external.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/php/extractor/composer.json +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/php/extractor/composer.lock +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/php/extractor/extract.php +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/php/gating.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/php/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/php/strings.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/pyweb → cg_code_graph-0.16.0/codegraph/plugins/python}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/aitools.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/external.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/fields.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/refs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/roots.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/socketio.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/subproc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/tests.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/python/values.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/rust → cg_code_graph-0.16.0/codegraph/plugins/pyweb}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/pyweb/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/pyweb/values.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/scip → cg_code_graph-0.16.0/codegraph/plugins/rust}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/rust/cargo.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/rust/plugin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/rust/syntax.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/stubs → cg_code_graph-0.16.0/codegraph/plugins/scip}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/scip/importer.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/scip/scip.proto +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/scip/scip_pb2.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/swift → cg_code_graph-0.16.0/codegraph/plugins/stubs}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/stubs/plugins.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/ts → cg_code_graph-0.16.0/codegraph/plugins/swift}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/swift/baseurl.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/swift/exact.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/swift/indexstore.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/swift/packages.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/swift/plugin.py +0 -0
- {cg_code_graph-0.14.0/codegraph/plugins/tsweb → cg_code_graph-0.16.0/codegraph/plugins/ts}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/ts/baseurl.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/ts/extractor/package-lock.json +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/ts/extractor/package.json +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/ts/nav.py +0 -0
- {cg_code_graph-0.14.0/codegraph/viz → cg_code_graph-0.16.0/codegraph/plugins/tsweb}/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/tsweb/common.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/plugins/tsweb/data.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/c_cpp.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/common.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/dart.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/django-ninja.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/django.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/djangorestframework.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/express.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/kotlin.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/laravel.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/nest.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/nextjs.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/nuxt.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/php.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/python.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/rust.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/swift.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/presets/typescript.yaml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/process_runs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/protocols/__init__.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/protocols/builtin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/protocols/matchers.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/protocols/view.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/query.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/realtime.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/realtime_events.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/realtime_native.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/realtime_ws.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/roundtrip.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/routes.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/rpc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/sdk_systems.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/sockets.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/starters.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/tests_index.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/udp_apps.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/graph.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/server.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/app.css +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/app.js +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/index.html +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/layered.js +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/vendor/VERSIONS.txt +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/vendor/cose-base.js +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/vendor/cytoscape-fcose.js +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/vendor/cytoscape.min.js +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/static/vendor/layout-base.js +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/tools/package-lock.json +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/tools/package.json +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/viz/tools/shoot.mjs +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/watch.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/webhooks.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/codegraph/xcode.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/pyproject.toml +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/setup.cfg +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_affected.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_agents_install.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_agents_md.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_ai_tools.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_android_ipc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_apple_ipc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_bridges.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_bridges_pigeon_monorepo.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_brokers.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_cache_clean.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_cache_invalidation.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_channels_tests.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_cli_output.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_completeness.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_config_extras.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_coverage.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_coverage_ts_hint.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_dart_isolates.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_dispatch_interfaces.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_django_flutter.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_docs_links.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_enum_constants.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_explore.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_external.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_gating.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_generated.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_graphql.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_hooks.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_impact_overrides.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_index_isolation.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_inherited_overrides.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_jobs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_js_refs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_kotlin.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_kotlin_binding.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_kotlin_exact.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_kotlin_fields.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_kotlin_mixed.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_kotlin_nav_consts.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_kotlin_props.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_laravel_determinism.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_laravel_resources.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_lint_async.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_local_ipc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_local_sockets.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_mcp.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_mcp_index.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_native_cfamily.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_native_concurrency.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_native_rust.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_nuxt_import_dirs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_nuxt_rootsrc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_parity.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_parity_structure.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_php_props.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_plain_js.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_plans.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_platform_gaps.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_platform_type_variants.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_platforms.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_platforms_apple.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_presets_config.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_process_ipc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_process_runs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_protocols.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_app_tests_module.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_collection_chains.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_compat.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_entry_refs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_fields.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_infer_cycles.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_roots.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_subprocess_tests.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_tests.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_web_hosts.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_web_routes.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_python_web_routes_more.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_realtime.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_realtime_native.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_roundtrip.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_route_tables.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_routes_search_explain.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_rpc.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_scip_health.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_sdk_external.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_snippet.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_sockets.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_starters_budget.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_binding.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_exact.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_facts.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_fields.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_modules.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_more.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_nav_values.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_parse_errors.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_props.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_sdk.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_testing.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_swift_values.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_tests_scope.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_ts_fields.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_ts_fields_js_vue.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_ts_file_specs.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_ts_frameworks.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_ts_nuxt.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_ts_src_tsconfig.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_values.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_viz.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_vue_nav.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_watch.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_webhooks.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_websockets.py +0 -0
- {cg_code_graph-0.14.0 → cg_code_graph-0.16.0}/tests/test_workspace_link.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cg-code-graph
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.0
|
|
4
4
|
Summary: cg: a code graph of routes, calls, data access and platform boundaries for agents and humans (CLI + MCP server)
|
|
5
5
|
Author: cyberchronos00
|
|
6
6
|
License-Expression: MIT
|
|
@@ -72,7 +72,7 @@ dependents: 18 nodes (code: 6, entry points: 9, other: 3)
|
|
|
72
72
|
| Language | Frameworks and facts | Calls | Docs |
|
|
73
73
|
|---|---|---|---|
|
|
74
74
|
|  | Django (+ DRF, django-ninja), FastAPI / Starlette, Flask, Celery | exact (stdlib `ast`) | [Python](https://code-graph.cyberchronos00.workers.dev/docs/python) |
|
|
75
|
-
|   | Nuxt / Vue, NestJS, Next.js, Express, Fastify, Koa, Hono | exact (TypeScript compiler API) | [TS frameworks](https://code-graph.cyberchronos00.workers.dev/docs/ts-frameworks) |
|
|
75
|
+
|   | Nuxt / Vue, NestJS, Next.js, Astro, Express, Fastify, Koa, Hono | exact (TypeScript compiler API) | [TS frameworks](https://code-graph.cyberchronos00.workers.dev/docs/ts-frameworks) |
|
|
76
76
|
|  | Laravel (routes and middleware, queues, broadcasting) | exact (nikic/php-parser; needs PHP 8.2+) | [PHP](https://code-graph.cyberchronos00.workers.dev/docs/php) |
|
|
77
77
|
|  | Flutter | exact (Dart analyzer; needs the Dart SDK) | [Platforms](https://code-graph.cyberchronos00.workers.dev/docs/platforms) |
|
|
78
78
|
|  | Android, Kotlin Multiplatform | heuristic; exact with scip-java (opt-in) | [Kotlin](https://code-graph.cyberchronos00.workers.dev/docs/kotlin) |
|
|
@@ -46,7 +46,7 @@ dependents: 18 nodes (code: 6, entry points: 9, other: 3)
|
|
|
46
46
|
| Language | Frameworks and facts | Calls | Docs |
|
|
47
47
|
|---|---|---|---|
|
|
48
48
|
|  | Django (+ DRF, django-ninja), FastAPI / Starlette, Flask, Celery | exact (stdlib `ast`) | [Python](https://code-graph.cyberchronos00.workers.dev/docs/python) |
|
|
49
|
-
|   | Nuxt / Vue, NestJS, Next.js, Express, Fastify, Koa, Hono | exact (TypeScript compiler API) | [TS frameworks](https://code-graph.cyberchronos00.workers.dev/docs/ts-frameworks) |
|
|
49
|
+
|   | Nuxt / Vue, NestJS, Next.js, Astro, Express, Fastify, Koa, Hono | exact (TypeScript compiler API) | [TS frameworks](https://code-graph.cyberchronos00.workers.dev/docs/ts-frameworks) |
|
|
50
50
|
|  | Laravel (routes and middleware, queues, broadcasting) | exact (nikic/php-parser; needs PHP 8.2+) | [PHP](https://code-graph.cyberchronos00.workers.dev/docs/php) |
|
|
51
51
|
|  | Flutter | exact (Dart analyzer; needs the Dart SDK) | [Platforms](https://code-graph.cyberchronos00.workers.dev/docs/platforms) |
|
|
52
52
|
|  | Android, Kotlin Multiplatform | heuristic; exact with scip-java (opt-in) | [Kotlin](https://code-graph.cyberchronos00.workers.dev/docs/kotlin) |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cg-code-graph
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.0
|
|
4
4
|
Summary: cg: a code graph of routes, calls, data access and platform boundaries for agents and humans (CLI + MCP server)
|
|
5
5
|
Author: cyberchronos00
|
|
6
6
|
License-Expression: MIT
|
|
@@ -72,7 +72,7 @@ dependents: 18 nodes (code: 6, entry points: 9, other: 3)
|
|
|
72
72
|
| Language | Frameworks and facts | Calls | Docs |
|
|
73
73
|
|---|---|---|---|
|
|
74
74
|
|  | Django (+ DRF, django-ninja), FastAPI / Starlette, Flask, Celery | exact (stdlib `ast`) | [Python](https://code-graph.cyberchronos00.workers.dev/docs/python) |
|
|
75
|
-
|   | Nuxt / Vue, NestJS, Next.js, Express, Fastify, Koa, Hono | exact (TypeScript compiler API) | [TS frameworks](https://code-graph.cyberchronos00.workers.dev/docs/ts-frameworks) |
|
|
75
|
+
|   | Nuxt / Vue, NestJS, Next.js, Astro, Express, Fastify, Koa, Hono | exact (TypeScript compiler API) | [TS frameworks](https://code-graph.cyberchronos00.workers.dev/docs/ts-frameworks) |
|
|
76
76
|
|  | Laravel (routes and middleware, queues, broadcasting) | exact (nikic/php-parser; needs PHP 8.2+) | [PHP](https://code-graph.cyberchronos00.workers.dev/docs/php) |
|
|
77
77
|
|  | Flutter | exact (Dart analyzer; needs the Dart SDK) | [Platforms](https://code-graph.cyberchronos00.workers.dev/docs/platforms) |
|
|
78
78
|
|  | Android, Kotlin Multiplatform | heuristic; exact with scip-java (opt-in) | [Kotlin](https://code-graph.cyberchronos00.workers.dev/docs/kotlin) |
|
|
@@ -71,6 +71,9 @@ codegraph/core/plugin.py
|
|
|
71
71
|
codegraph/core/store.py
|
|
72
72
|
codegraph/core/syntax_errors.py
|
|
73
73
|
codegraph/plugins/__init__.py
|
|
74
|
+
codegraph/plugins/astro/__init__.py
|
|
75
|
+
codegraph/plugins/astro/content.py
|
|
76
|
+
codegraph/plugins/astro/plugin.py
|
|
74
77
|
codegraph/plugins/cfamily/__init__.py
|
|
75
78
|
codegraph/plugins/cfamily/plugin.py
|
|
76
79
|
codegraph/plugins/cfamily/syntax.py
|
|
@@ -206,6 +209,9 @@ tests/test_agents_md.py
|
|
|
206
209
|
tests/test_ai_tools.py
|
|
207
210
|
tests/test_android_ipc.py
|
|
208
211
|
tests/test_apple_ipc.py
|
|
212
|
+
tests/test_astro.py
|
|
213
|
+
tests/test_astro_content.py
|
|
214
|
+
tests/test_astro_server.py
|
|
209
215
|
tests/test_bridges.py
|
|
210
216
|
tests/test_bridges_pigeon_monorepo.py
|
|
211
217
|
tests/test_brokers.py
|
|
@@ -233,6 +239,7 @@ tests/test_index_isolation.py
|
|
|
233
239
|
tests/test_inherited_overrides.py
|
|
234
240
|
tests/test_jobs.py
|
|
235
241
|
tests/test_js_refs.py
|
|
242
|
+
tests/test_js_runtime.py
|
|
236
243
|
tests/test_kotlin.py
|
|
237
244
|
tests/test_kotlin_binding.py
|
|
238
245
|
tests/test_kotlin_exact.py
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""code-graph: deterministic code knowledge graph (beta)."""
|
|
2
|
-
__version__ = "0.
|
|
2
|
+
__version__ = "0.16.0"
|
|
@@ -34,7 +34,7 @@ KINDS = {
|
|
|
34
34
|
"nuxt_unevaluable_import_dirs": ("handler", "typescript",
|
|
35
35
|
"Nuxt imports.dirs entry that is not a literal path or glob"),
|
|
36
36
|
"vue_unresolved_navigation": ("route", "typescript",
|
|
37
|
-
"Nuxt / Vue navigation target that matches no page or several pages"),
|
|
37
|
+
"Nuxt / Vue / Astro navigation target that matches no page or several pages"),
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
|
|
@@ -61,7 +61,7 @@ KNOWN_KEYS = set(SCHEMA)
|
|
|
61
61
|
PYTHON_KEYS = SCHEMA["python"]
|
|
62
62
|
VIZ_MODES = ("reaches", "impact", "downstream", "path", "plan")
|
|
63
63
|
# framework plugins of codegraph/indexer.py FRAMEWORK_PLUGINS (frameworks.add / remove also take preset names)
|
|
64
|
-
FRAMEWORK_PLUGIN_NAMES = ("laravel", "nuxt", "django", "fastapi", "flask", "flutter", "nest", "nextjs", "express")
|
|
64
|
+
FRAMEWORK_PLUGIN_NAMES = ("laravel", "nuxt", "django", "fastapi", "flask", "flutter", "nest", "nextjs", "express", "astro")
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
class ConfigError(ValueError):
|
|
@@ -51,6 +51,9 @@ def detect(root: Path) -> dict:
|
|
|
51
51
|
deps = _pkg_deps(root)
|
|
52
52
|
if "nuxt" in deps or any((root / n).exists() for n in ("nuxt.config.ts", "nuxt.config.js")):
|
|
53
53
|
fw["nuxt"] = {"version": deps.get("nuxt")}
|
|
54
|
+
if "astro" in deps or any((root / n).exists() for n in (
|
|
55
|
+
"astro.config.mjs", "astro.config.js", "astro.config.ts", "astro.config.mts", "astro.config.cjs")):
|
|
56
|
+
fw["astro"] = {"version": deps.get("astro")}
|
|
54
57
|
if "vue" in deps:
|
|
55
58
|
fw["vue"] = {"version": deps.get("vue")}
|
|
56
59
|
from ..plugins.tsweb.common import SERVER_DEPS # TS / JS servers (NestJS, Next.js, Express / Koa / Fastify / Hono ...)
|
|
@@ -103,10 +103,64 @@ def status(lang: str) -> dict:
|
|
|
103
103
|
return {"installed": _installed(d, spec), "dir": str(d), "where": "cache"}
|
|
104
104
|
|
|
105
105
|
|
|
106
|
+
JS_RUNTIME_MISSING = (
|
|
107
|
+
"node not installed (the TypeScript extractor needs Node.js 20+ or Bun on PATH, "
|
|
108
|
+
"or CODEGRAPH_NODE=/path/to/node)"
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def _runtime_kind(path: str) -> str:
|
|
113
|
+
"""`bun` when the binary (or what a `node` symlink points at, as in Bun images) is Bun, else `node`."""
|
|
114
|
+
names = (Path(path).name, Path(os.path.realpath(path)).name)
|
|
115
|
+
return "bun" if any(n.lower().startswith("bun") for n in names) else "node"
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def _override() -> str | None:
|
|
119
|
+
v = (os.environ.get("CODEGRAPH_NODE") or "").strip()
|
|
120
|
+
return os.path.expanduser(v) if v else None
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def js_runtime() -> dict | None:
|
|
124
|
+
"""Node.js or Bun for the TypeScript extractor.
|
|
125
|
+
|
|
126
|
+
``CODEGRAPH_NODE`` (a name on PATH or a path) wins, then ``node`` on PATH, then ``bun``.
|
|
127
|
+
"""
|
|
128
|
+
override = _override()
|
|
129
|
+
if override:
|
|
130
|
+
path = shutil.which(override)
|
|
131
|
+
if not path:
|
|
132
|
+
return None
|
|
133
|
+
return {"path": path, "kind": _runtime_kind(path), "source": "CODEGRAPH_NODE"}
|
|
134
|
+
node = shutil.which("node")
|
|
135
|
+
if node:
|
|
136
|
+
return {"path": node, "kind": _runtime_kind(node), "source": "PATH"}
|
|
137
|
+
bun = shutil.which("bun")
|
|
138
|
+
if bun:
|
|
139
|
+
return {"path": bun, "kind": "bun", "source": "PATH"}
|
|
140
|
+
return None
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def js_runtime_problem() -> str | None:
|
|
144
|
+
"""Why the TypeScript extractor cannot start, or None when a runtime resolves."""
|
|
145
|
+
override = _override()
|
|
146
|
+
if override and not shutil.which(override):
|
|
147
|
+
return (f"CODEGRAPH_NODE={os.environ.get('CODEGRAPH_NODE')} is not an executable on PATH or a path to one "
|
|
148
|
+
"(set it to a node or bun binary, or unset it to use node / bun from PATH)")
|
|
149
|
+
if js_runtime() is None:
|
|
150
|
+
return JS_RUNTIME_MISSING
|
|
151
|
+
return None
|
|
152
|
+
|
|
153
|
+
|
|
106
154
|
def install_command(lang: str, dart: str | None = None) -> list[str]:
|
|
107
155
|
if lang == "typescript":
|
|
108
|
-
npm = shutil.which("npm")
|
|
109
|
-
|
|
156
|
+
npm = shutil.which("npm")
|
|
157
|
+
if npm:
|
|
158
|
+
return [npm, "ci", "--no-audit", "--no-fund", "--loglevel=error"]
|
|
159
|
+
rt = js_runtime()
|
|
160
|
+
bun = rt["path"] if rt and rt["kind"] == "bun" else shutil.which("bun")
|
|
161
|
+
if bun:
|
|
162
|
+
return [bun, "install", "--frozen-lockfile", "--no-progress"]
|
|
163
|
+
return ["npm", "ci", "--no-audit", "--no-fund", "--loglevel=error"]
|
|
110
164
|
if lang == "php":
|
|
111
165
|
return [shutil.which("composer") or "composer", "install", "--no-dev", "--no-interaction", "--no-progress", "--quiet"]
|
|
112
166
|
return [dart or shutil.which("dart") or "dart", "pub", "get"]
|
|
@@ -180,7 +234,8 @@ def prune(dry_run: bool = False) -> list[tuple[Path, int]]:
|
|
|
180
234
|
|
|
181
235
|
def _run(cmd: list[str], d: Path, spec: Spec) -> None:
|
|
182
236
|
if not shutil.which(cmd[0]) and not Path(cmd[0]).exists():
|
|
183
|
-
|
|
237
|
+
tool = "`npm` (or `bun`)" if spec.tool == "npm" else f"`{spec.tool}`"
|
|
238
|
+
raise RuntimeError(f"{spec.label} extractor dependencies missing and {tool} is not installed")
|
|
184
239
|
r = subprocess.run(cmd, cwd=d, capture_output=True, text=True)
|
|
185
240
|
if r.returncode != 0:
|
|
186
241
|
raise RuntimeError(f"{spec.label} extractor dependency install failed ({' '.join(cmd[:2])} in {d}): "
|
|
@@ -16,7 +16,7 @@ from pathlib import Path
|
|
|
16
16
|
# source extensions per language plugin (key = plugin name in stats["plugins"])
|
|
17
17
|
SUPPORTED = {
|
|
18
18
|
"php": (".php",),
|
|
19
|
-
"typescript": (".ts", ".tsx", ".mts", ".cts", ".js", ".jsx", ".mjs", ".cjs", ".vue"),
|
|
19
|
+
"typescript": (".ts", ".tsx", ".mts", ".cts", ".js", ".jsx", ".mjs", ".cjs", ".vue", ".astro"),
|
|
20
20
|
"python": (".py",),
|
|
21
21
|
"dart": (".dart",),
|
|
22
22
|
"rust": (".rs",),
|
|
@@ -33,7 +33,7 @@ UNSUPPORTED = {
|
|
|
33
33
|
".pl": "perl", ".pm": "perl", ".clj": "clojure", ".erl": "erlang", ".hrl": "erlang", ".hs": "haskell", ".fs": "fsharp",
|
|
34
34
|
".fsx": "fsharp", ".groovy": "groovy", ".r": "r", ".jl": "julia", ".zig": "zig", ".sol": "solidity",
|
|
35
35
|
".qml": "qml", ".sh": "sh", ".bash": "sh", ".zsh": "sh", ".ksh": "sh", ".fish": "fish", ".ps1": "powershell",
|
|
36
|
-
".psm1": "powershell", ".bat": "batch", ".cmd": "batch", ".svelte": "svelte",
|
|
36
|
+
".psm1": "powershell", ".bat": "batch", ".cmd": "batch", ".svelte": "svelte",
|
|
37
37
|
".coffee": "coffeescript", ".elm": "elm", ".ml": "ocaml", ".mli": "ocaml", ".nim": "nim", ".cr": "crystal",
|
|
38
38
|
".rkt": "racket", ".tcl": "tcl", ".vb": "visual-basic", ".cu": "cuda", ".cuh": "cuda", ".gd": "gdscript",
|
|
39
39
|
".hx": "haxe", ".pas": "pascal", ".f90": "fortran", ".f95": "fortran", ".adb": "ada", ".ads": "ada", ".vala": "vala",
|
|
@@ -58,7 +58,7 @@ MAX_PATHS = 500 # file paths stored per bucket in the index (counts are alw
|
|
|
58
58
|
SHOW_PATHS = 5 # shown per bucket by default (`cg coverage --all-files` / coverage(all_files=true) for all)
|
|
59
59
|
HINTS = {
|
|
60
60
|
"php": "install PHP 8.2+ and Composer, then run `cg setup php` (`cg doctor` checks the toolchains)",
|
|
61
|
-
"typescript": "install Node.js 20+ (with npm), then run `cg setup typescript` (`cg doctor` checks the toolchains)",
|
|
61
|
+
"typescript": "install Node.js 20+ (with npm) or Bun, or set CODEGRAPH_NODE, then run `cg setup typescript` (`cg doctor` checks the toolchains)",
|
|
62
62
|
"dart": "install the Dart SDK 3.x (`dart` on PATH or $DART), then run `cg setup dart`",
|
|
63
63
|
"rust": "exact mode needs rust-analyzer (`rustup component add rust-analyzer`){layer}",
|
|
64
64
|
"c_cpp": "exact mode needs scip-clang and a compile_commands.json (docs/native.md){layer}",
|
|
@@ -104,7 +104,8 @@ def _tools() -> dict:
|
|
|
104
104
|
from .plugins.swift.exact import find_swift
|
|
105
105
|
home = Path.home()
|
|
106
106
|
found = {
|
|
107
|
-
"node": shutil.which(
|
|
107
|
+
"node": shutil.which(extractors._override() or "node"),
|
|
108
|
+
"npm": shutil.which("npm"), "bun": shutil.which("bun"), "php": shutil.which("php"),
|
|
108
109
|
"composer": shutil.which("composer"), "dart": find_dart(),
|
|
109
110
|
"rust-analyzer": find_tool("CODEGRAPH_RUST_ANALYZER", ["rust-analyzer"], [home / ".cargo" / "bin"]),
|
|
110
111
|
"cargo": os.environ.get("CODEGRAPH_CARGO") or shutil.which("cargo") or
|
|
@@ -143,14 +144,17 @@ def _languages(tools: dict, root: Path | None, cfg: dict) -> list[dict]:
|
|
|
143
144
|
|
|
144
145
|
add("python", "exact", "built-in parser (Python ast)")
|
|
145
146
|
st = extractors.status("typescript")
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
147
|
+
rt = extractors.js_runtime()
|
|
148
|
+
if rt is None:
|
|
149
|
+
add("typescript", "unavailable", extractors.js_runtime_problem(),
|
|
150
|
+
"install Node.js 20+ or Bun (or set CODEGRAPH_NODE), then `cg setup typescript`")
|
|
151
|
+
elif not st["installed"] and not has("npm") and not has("bun"):
|
|
152
|
+
add("typescript", "unavailable", "extractor dependencies missing and npm not installed",
|
|
153
|
+
"install npm, then `cg setup typescript`")
|
|
151
154
|
else:
|
|
152
|
-
add("typescript", "exact", "TypeScript compiler API
|
|
153
|
-
"; its npm dependencies install on the first index (or now: `cg setup typescript`)")
|
|
155
|
+
add("typescript", "exact", f"TypeScript compiler API (runtime: {rt['kind']} {rt['path']})" + (
|
|
156
|
+
"" if st["installed"] else "; its npm dependencies install on the first index (or now: `cg setup typescript`)"),
|
|
157
|
+
runtime={"kind": rt["kind"], "path": rt["path"], "source": rt["source"]})
|
|
154
158
|
st = extractors.status("php")
|
|
155
159
|
if not has("php"):
|
|
156
160
|
add("php", "unavailable", "php not installed (PHP 8.2+ runs the PHP extractor)", "install PHP 8.2+ and Composer, then `cg setup php`")
|
|
@@ -434,9 +438,17 @@ def setup(langs: list[str] | None = None, quiet: bool = False) -> int:
|
|
|
434
438
|
tool = {"typescript": "npm", "php": "composer", "dart": None}[lang]
|
|
435
439
|
need = {"typescript": "node", "php": "php", "dart": None}[lang]
|
|
436
440
|
dart = find_dart() if lang == "dart" else None
|
|
437
|
-
if
|
|
438
|
-
|
|
439
|
-
|
|
441
|
+
if lang == "typescript":
|
|
442
|
+
rt = extractors.js_runtime()
|
|
443
|
+
can_install = extractors.status(lang)["installed"] or bool(shutil.which("npm") or shutil.which("bun"))
|
|
444
|
+
skip = rt is None or not can_install
|
|
445
|
+
detail = extractors.js_runtime_problem() if rt is None else "npm or bun not installed"
|
|
446
|
+
else:
|
|
447
|
+
skip = (need and not shutil.which(need)) or (tool and not shutil.which(tool) and not extractors.status(lang)["installed"]) \
|
|
448
|
+
or (lang == "dart" and not dart)
|
|
449
|
+
detail = f"{'dart' if lang == 'dart' else need if need and not shutil.which(need) else tool} not installed"
|
|
450
|
+
if skip:
|
|
451
|
+
msg = f"{lang}: skipped ({detail})"
|
|
440
452
|
print(msg, file=sys.stderr)
|
|
441
453
|
rc = rc or (1 if langs else 0)
|
|
442
454
|
continue
|
|
@@ -26,12 +26,13 @@ from .plugins.flutter.plugin import FlutterPlugin
|
|
|
26
26
|
from .plugins.nest.plugin import NestPlugin
|
|
27
27
|
from .plugins.nextjs.plugin import NextPlugin
|
|
28
28
|
from .plugins.express.plugin import ExpressPlugin
|
|
29
|
+
from .plugins.astro.plugin import AstroPlugin
|
|
29
30
|
from .plugins.kotlin.plugin import KotlinPlugin
|
|
30
31
|
from .plugins.swift.plugin import SwiftPlugin
|
|
31
32
|
|
|
32
33
|
LANGUAGE_PLUGINS = [PhpPlugin(), TypeScriptPlugin(), PythonPlugin(), DartPlugin(), RustPlugin(), CFamilyPlugin(), KotlinPlugin(), SwiftPlugin(),
|
|
33
34
|
*SCIP_PLUGINS]
|
|
34
|
-
FRAMEWORK_PLUGINS = [LaravelPlugin(), NuxtPlugin(), DjangoPlugin(), FastAPIPlugin(), FlaskPlugin(), FlutterPlugin(), NestPlugin(), NextPlugin(), ExpressPlugin()]
|
|
35
|
+
FRAMEWORK_PLUGINS = [LaravelPlugin(), NuxtPlugin(), DjangoPlugin(), FastAPIPlugin(), FlaskPlugin(), FlutterPlugin(), NestPlugin(), NextPlugin(), ExpressPlugin(), AstroPlugin()]
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
def _crash_site(ex: BaseException) -> str | None:
|