cg-code-graph 0.23.3__tar.gz → 0.23.4__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.
Files changed (407) hide show
  1. {cg_code_graph-0.23.3/cg_code_graph.egg-info → cg_code_graph-0.23.4}/PKG-INFO +1 -1
  2. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/__init__.py +1 -1
  3. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/mcp_server.py +2 -0
  4. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/platforms.py +1 -1
  5. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/swift/plugin.py +24 -12
  6. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/query.py +2 -0
  7. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4/cg_code_graph.egg-info}/PKG-INFO +1 -1
  8. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph.egg-info/SOURCES.txt +1 -0
  9. cg_code_graph-0.23.4/tests/test_issue_219.py +125 -0
  10. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/LICENSE +0 -0
  11. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/MANIFEST.in +0 -0
  12. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/README.md +0 -0
  13. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/__main__.py +0 -0
  14. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/affected.py +0 -0
  15. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/agent_rules.py +0 -0
  16. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/agents.py +0 -0
  17. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/aitools.py +0 -0
  18. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/android_ipc.py +0 -0
  19. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/apple_ipc.py +0 -0
  20. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/apps.py +0 -0
  21. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/blindspots.py +0 -0
  22. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/bridges.py +0 -0
  23. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/brokers.py +0 -0
  24. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/cli.py +0 -0
  25. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/concepts.py +0 -0
  26. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/config.py +0 -0
  27. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/__init__.py +0 -0
  28. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/cache.py +0 -0
  29. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/detect.py +0 -0
  30. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/env.py +0 -0
  31. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/extractors.py +0 -0
  32. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/fsutil.py +0 -0
  33. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/generated.py +0 -0
  34. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/model.py +0 -0
  35. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/paths.py +0 -0
  36. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/plugin.py +0 -0
  37. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/redact.py +0 -0
  38. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/store.py +0 -0
  39. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/core/syntax_errors.py +0 -0
  40. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/coverage.py +0 -0
  41. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/dart_isolates.py +0 -0
  42. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/doctor.py +0 -0
  43. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/explore.py +0 -0
  44. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/external.py +0 -0
  45. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/graphql.py +0 -0
  46. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/guard_facts.py +0 -0
  47. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/hooks.py +0 -0
  48. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/indexer.py +0 -0
  49. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/insecure_transport.py +0 -0
  50. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/install_rules.py +0 -0
  51. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/jobs.py +0 -0
  52. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/link.py +0 -0
  53. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/lint_async.py +0 -0
  54. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/local_ipc.py +0 -0
  55. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/local_sockets.py +0 -0
  56. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/mcp_graphs.py +0 -0
  57. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/mcp_install.py +0 -0
  58. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/parity.py +0 -0
  59. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/parity_structure.py +0 -0
  60. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/payload.py +0 -0
  61. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plans.py +0 -0
  62. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/platform_scan.py +0 -0
  63. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/__init__.py +0 -0
  64. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/astro/__init__.py +0 -0
  65. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/astro/content.py +0 -0
  66. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/astro/plugin.py +0 -0
  67. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/cfamily/__init__.py +0 -0
  68. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/cfamily/plugin.py +0 -0
  69. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/cfamily/syntax.py +0 -0
  70. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/__init__.py +0 -0
  71. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/bridges.py +0 -0
  72. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/extractor/bin/extract.dart +0 -0
  73. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/extractor/pubspec.lock +0 -0
  74. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/extractor/pubspec.yaml +0 -0
  75. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/http.py +0 -0
  76. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/models.py +0 -0
  77. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/plugin.py +0 -0
  78. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/dart/program.py +0 -0
  79. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/django/__init__.py +0 -0
  80. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/django/extras.py +0 -0
  81. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/django/models.py +0 -0
  82. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/django/plugin.py +0 -0
  83. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/django/schemas.py +0 -0
  84. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/django/shapes.py +0 -0
  85. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/django/urls.py +0 -0
  86. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/express/__init__.py +0 -0
  87. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/express/plugin.py +0 -0
  88. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/flutter/__init__.py +0 -0
  89. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/flutter/plugin.py +0 -0
  90. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/java/__init__.py +0 -0
  91. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/java/exact.py +0 -0
  92. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/java/plugin.py +0 -0
  93. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/jvm/__init__.py +0 -0
  94. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/jvm/interop.py +0 -0
  95. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/jvm/spring.py +0 -0
  96. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/kotlin/__init__.py +0 -0
  97. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/kotlin/exact.py +0 -0
  98. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/kotlin/plugin.py +0 -0
  99. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/kotlin/reparse.py +0 -0
  100. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/laravel/__init__.py +0 -0
  101. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/laravel/broadcast.py +0 -0
  102. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/laravel/massassign.py +0 -0
  103. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/laravel/plugin.py +0 -0
  104. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/laravel/tests.py +0 -0
  105. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/laravel/values.py +0 -0
  106. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/native/__init__.py +0 -0
  107. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/native/gates.py +0 -0
  108. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/native/runner.py +0 -0
  109. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/native/scipread.py +0 -0
  110. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/native/ts.py +0 -0
  111. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/nest/__init__.py +0 -0
  112. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/nest/plugin.py +0 -0
  113. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/nextjs/__init__.py +0 -0
  114. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/nextjs/plugin.py +0 -0
  115. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/nuxt/__init__.py +0 -0
  116. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/nuxt/plugin.py +0 -0
  117. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/__init__.py +0 -0
  118. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/external.py +0 -0
  119. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/extractor/composer.json +0 -0
  120. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/extractor/composer.lock +0 -0
  121. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/extractor/extract.php +0 -0
  122. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/gating.py +0 -0
  123. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/http_client.py +0 -0
  124. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/inline_guards.py +0 -0
  125. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/plugin.py +0 -0
  126. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/php/strings.py +0 -0
  127. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/__init__.py +0 -0
  128. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/aitools.py +0 -0
  129. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/external.py +0 -0
  130. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/fields.py +0 -0
  131. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/plugin.py +0 -0
  132. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/refs.py +0 -0
  133. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/roots.py +0 -0
  134. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/socketio.py +0 -0
  135. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/subproc.py +0 -0
  136. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/tests.py +0 -0
  137. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/python/values.py +0 -0
  138. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/pyweb/__init__.py +0 -0
  139. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/pyweb/plugin.py +0 -0
  140. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/pyweb/values.py +0 -0
  141. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/rust/__init__.py +0 -0
  142. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/rust/cargo.py +0 -0
  143. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/rust/plugin.py +0 -0
  144. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/rust/syntax.py +0 -0
  145. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/scip/__init__.py +0 -0
  146. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/scip/importer.py +0 -0
  147. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/scip/scip.proto +0 -0
  148. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/scip/scip_pb2.py +0 -0
  149. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/stubs/__init__.py +0 -0
  150. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/stubs/plugins.py +0 -0
  151. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/swift/__init__.py +0 -0
  152. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/swift/baseurl.py +0 -0
  153. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/swift/exact.py +0 -0
  154. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/swift/indexstore.py +0 -0
  155. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/swift/packages.py +0 -0
  156. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/__init__.py +0 -0
  157. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/baseurl.py +0 -0
  158. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/extractor/extract.mjs +0 -0
  159. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/extractor/fw.mjs +0 -0
  160. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/extractor/package-lock.json +0 -0
  161. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/extractor/package.json +0 -0
  162. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/extractor/rr.mjs +0 -0
  163. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/nav.py +0 -0
  164. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/plugin.py +0 -0
  165. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/ts/react_router.py +0 -0
  166. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/tsweb/__init__.py +0 -0
  167. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/tsweb/common.py +0 -0
  168. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/plugins/tsweb/data.py +0 -0
  169. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/__init__.py +0 -0
  170. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/c_cpp.yaml +0 -0
  171. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/common.yaml +0 -0
  172. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/dart.yaml +0 -0
  173. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/django-ninja.yaml +0 -0
  174. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/django.yaml +0 -0
  175. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/djangorestframework.yaml +0 -0
  176. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/express.yaml +0 -0
  177. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/java.yaml +0 -0
  178. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/kotlin.yaml +0 -0
  179. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/laravel.yaml +0 -0
  180. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/nest.yaml +0 -0
  181. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/nextjs.yaml +0 -0
  182. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/nuxt.yaml +0 -0
  183. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/php.yaml +0 -0
  184. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/python.yaml +0 -0
  185. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/react-router.yaml +0 -0
  186. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/rust.yaml +0 -0
  187. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/spring.yaml +0 -0
  188. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/swift.yaml +0 -0
  189. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/presets/typescript.yaml +0 -0
  190. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/process_runs.py +0 -0
  191. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/protocols/__init__.py +0 -0
  192. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/protocols/builtin.py +0 -0
  193. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/protocols/matchers.py +0 -0
  194. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/protocols/view.py +0 -0
  195. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/realtime.py +0 -0
  196. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/realtime_events.py +0 -0
  197. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/realtime_native.py +0 -0
  198. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/realtime_ws.py +0 -0
  199. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/roundtrip.py +0 -0
  200. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/routes.py +0 -0
  201. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/rpc.py +0 -0
  202. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/sdk_systems.py +0 -0
  203. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/sockets.py +0 -0
  204. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/ssrf_input.py +0 -0
  205. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/starters.py +0 -0
  206. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/surface.py +0 -0
  207. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/tests_index.py +0 -0
  208. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/udp_apps.py +0 -0
  209. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/update_check.py +0 -0
  210. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/__init__.py +0 -0
  211. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/graph.py +0 -0
  212. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/server.py +0 -0
  213. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/app.css +0 -0
  214. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/app.js +0 -0
  215. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/index.html +0 -0
  216. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/layered.js +0 -0
  217. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/vendor/VERSIONS.txt +0 -0
  218. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/vendor/cose-base.js +0 -0
  219. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/vendor/cytoscape-fcose.js +0 -0
  220. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/vendor/cytoscape.min.js +0 -0
  221. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/static/vendor/layout-base.js +0 -0
  222. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/tools/package-lock.json +0 -0
  223. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/tools/package.json +0 -0
  224. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/viz/tools/shoot.mjs +0 -0
  225. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/watch.py +0 -0
  226. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/webhook_subs.py +0 -0
  227. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/webhooks.py +0 -0
  228. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph/xcode.py +0 -0
  229. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph.egg-info/dependency_links.txt +0 -0
  230. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph.egg-info/entry_points.txt +0 -0
  231. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph.egg-info/requires.txt +0 -0
  232. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/cg_code_graph.egg-info/top_level.txt +0 -0
  233. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/pyproject.toml +0 -0
  234. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/setup.cfg +0 -0
  235. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_affected.py +0 -0
  236. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_agents_install.py +0 -0
  237. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_agents_md.py +0 -0
  238. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ai_tools.py +0 -0
  239. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_android_ipc.py +0 -0
  240. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_apple_ipc.py +0 -0
  241. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_astro.py +0 -0
  242. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_astro_content.py +0 -0
  243. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_astro_server.py +0 -0
  244. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_bridges.py +0 -0
  245. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_bridges_pigeon_monorepo.py +0 -0
  246. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_brokers.py +0 -0
  247. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_cache_clean.py +0 -0
  248. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_cache_invalidation.py +0 -0
  249. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_cache_migration.py +0 -0
  250. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_channels_tests.py +0 -0
  251. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_cli_output.py +0 -0
  252. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_completeness.py +0 -0
  253. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_config_extras.py +0 -0
  254. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_coverage.py +0 -0
  255. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_coverage_ts_hint.py +0 -0
  256. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_dart_isolates.py +0 -0
  257. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_db_connections.py +0 -0
  258. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_dead_wrappers.py +0 -0
  259. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_dispatch_interfaces.py +0 -0
  260. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_django_flutter.py +0 -0
  261. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_docs_languages.py +0 -0
  262. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_docs_links.py +0 -0
  263. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_echo_ref.py +0 -0
  264. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_echo_wrapper.py +0 -0
  265. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_elysia.py +0 -0
  266. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_enum_constants.py +0 -0
  267. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_env.py +0 -0
  268. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_explore.py +0 -0
  269. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_external.py +0 -0
  270. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_fp_batch.py +0 -0
  271. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_gating.py +0 -0
  272. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_generated.py +0 -0
  273. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_graphql.py +0 -0
  274. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_hooks.py +0 -0
  275. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_impact_overrides.py +0 -0
  276. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_index_isolation.py +0 -0
  277. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_inherited_overrides.py +0 -0
  278. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_inline_guards.py +0 -0
  279. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_install_rules.py +0 -0
  280. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_192.py +0 -0
  281. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_201.py +0 -0
  282. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_202.py +0 -0
  283. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_203.py +0 -0
  284. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_204.py +0 -0
  285. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_205.py +0 -0
  286. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_206.py +0 -0
  287. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_207.py +0 -0
  288. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_208.py +0 -0
  289. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_209.py +0 -0
  290. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_210.py +0 -0
  291. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_211.py +0 -0
  292. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_211_used_at.py +0 -0
  293. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_issue_212.py +0 -0
  294. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_java.py +0 -0
  295. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_java_exact.py +0 -0
  296. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_jobs.py +0 -0
  297. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_js_refs.py +0 -0
  298. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_js_runtime.py +0 -0
  299. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_kotlin.py +0 -0
  300. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_kotlin_binding.py +0 -0
  301. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_kotlin_exact.py +0 -0
  302. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_kotlin_fields.py +0 -0
  303. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_kotlin_mixed.py +0 -0
  304. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_kotlin_nav_consts.py +0 -0
  305. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_kotlin_props.py +0 -0
  306. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_laravel_determinism.py +0 -0
  307. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_laravel_resources.py +0 -0
  308. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_link_origin.py +0 -0
  309. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_lint_async.py +0 -0
  310. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_listing_files.py +0 -0
  311. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_local_ipc.py +0 -0
  312. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_local_sockets.py +0 -0
  313. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_mass_assignment.py +0 -0
  314. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_mcp.py +0 -0
  315. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_mcp_index.py +0 -0
  316. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_mcp_install.py +0 -0
  317. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_mcp_instructions.py +0 -0
  318. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_mcp_multi_graph.py +0 -0
  319. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_native_cfamily.py +0 -0
  320. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_native_concurrency.py +0 -0
  321. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_native_rust.py +0 -0
  322. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_nuxt_i18n.py +0 -0
  323. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_nuxt_import_dirs.py +0 -0
  324. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_nuxt_nitro.py +0 -0
  325. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_nuxt_rootsrc.py +0 -0
  326. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_nuxt_side_dirs.py +0 -0
  327. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_packaging.py +0 -0
  328. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_parity.py +0 -0
  329. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_parity_structure.py +0 -0
  330. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_php_http.py +0 -0
  331. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_php_props.py +0 -0
  332. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_plain_js.py +0 -0
  333. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_plans.py +0 -0
  334. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_platform_gaps.py +0 -0
  335. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_platform_type_variants.py +0 -0
  336. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_platforms.py +0 -0
  337. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_platforms_apple.py +0 -0
  338. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_presets_config.py +0 -0
  339. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_process_ipc.py +0 -0
  340. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_process_runs.py +0 -0
  341. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_protocols.py +0 -0
  342. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_app_tests_module.py +0 -0
  343. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_collection_chains.py +0 -0
  344. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_compat.py +0 -0
  345. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_entry_refs.py +0 -0
  346. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_fields.py +0 -0
  347. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_infer_cycles.py +0 -0
  348. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_roots.py +0 -0
  349. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_subprocess_tests.py +0 -0
  350. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_tests.py +0 -0
  351. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_web_hosts.py +0 -0
  352. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_web_routes.py +0 -0
  353. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_python_web_routes_more.py +0 -0
  354. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_react_router.py +0 -0
  355. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_readers_writers_specs.py +0 -0
  356. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_realtime.py +0 -0
  357. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_realtime_native.py +0 -0
  358. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_redact_salt.py +0 -0
  359. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_request_keys.py +0 -0
  360. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_roundtrip.py +0 -0
  361. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_route_specs.py +0 -0
  362. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_route_tables.py +0 -0
  363. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_routes_search_explain.py +0 -0
  364. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_rpc.py +0 -0
  365. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_scip_health.py +0 -0
  366. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_sdk_external.py +0 -0
  367. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_sdk_external_infra.py +0 -0
  368. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_sdk_external_mail.py +0 -0
  369. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_snippet.py +0 -0
  370. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_sockets.py +0 -0
  371. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_spring.py +0 -0
  372. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ssrf.py +0 -0
  373. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_starters_budget.py +0 -0
  374. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_surface.py +0 -0
  375. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_surface_transport.py +0 -0
  376. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift.py +0 -0
  377. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_binding.py +0 -0
  378. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_exact.py +0 -0
  379. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_facts.py +0 -0
  380. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_fields.py +0 -0
  381. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_modules.py +0 -0
  382. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_more.py +0 -0
  383. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_nav_values.py +0 -0
  384. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_parse_errors.py +0 -0
  385. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_props.py +0 -0
  386. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_sdk.py +0 -0
  387. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_testing.py +0 -0
  388. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_swift_values.py +0 -0
  389. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_tests_scope.py +0 -0
  390. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ts_fields.py +0 -0
  391. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ts_fields_js_vue.py +0 -0
  392. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ts_file_specs.py +0 -0
  393. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ts_frameworks.py +0 -0
  394. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ts_node_http.py +0 -0
  395. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ts_nuxt.py +0 -0
  396. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_ts_src_tsconfig.py +0 -0
  397. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_unguarded.py +0 -0
  398. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_update_check.py +0 -0
  399. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_values.py +0 -0
  400. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_viz.py +0 -0
  401. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_vue_nav.py +0 -0
  402. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_watch.py +0 -0
  403. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_webhooks.py +0 -0
  404. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_webhooks_152.py +0 -0
  405. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_webhooks_152b.py +0 -0
  406. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/tests/test_websockets.py +0 -0
  407. {cg_code_graph-0.23.3 → cg_code_graph-0.23.4}/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.23.3
3
+ Version: 0.23.4
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
@@ -1,2 +1,2 @@
1
1
  """code-graph: deterministic code knowledge graph (beta)."""
2
- __version__ = "0.23.3"
2
+ __version__ = "0.23.4"
@@ -785,6 +785,8 @@ def _prop_lines(rows: list, limit: int) -> list[str]:
785
785
  for r in rows[:limit]:
786
786
  a = r.get("attrs") or {}
787
787
  ex = " ".join(f"{k}={a[k]}" for k in ("receiver", "accessor", "storage") if k in a)
788
+ if a.get("variant_platforms"): # one of a property's per-platform declarations (#219)
789
+ ex = f"{ex} platforms={','.join(a['variant_platforms'])}".strip()
788
790
  ek = ",".join(sorted(r["entry_kinds"])) or "-"
789
791
  out.append(f" {'[test] ' if r.get('test') else ''}{r['fqn']} @{os.path.basename(r['file'] or '?')}:{r['line']}"
790
792
  f" {ex} entries: {ek}")
@@ -995,7 +995,7 @@ def _alt_groups(builder, nvals: dict) -> dict[str, list[str]]:
995
995
  """Rust / C / C++ / Swift alternative definitions of one symbol (one per `cfg` / `#if` branch), keyed by _vkey."""
996
996
  alts: dict[str, list[str]] = defaultdict(list)
997
997
  for nid, n in builder.nodes.items():
998
- if n.lang in ("rust", "c", "cpp", "swift") and n.kind in ALT_KINDS:
998
+ if n.lang in ("rust", "c", "cpp", "swift") and n.kind in ALT_KINDS or n.lang == "swift" and n.kind == "field":
999
999
  alts[_vkey(nid, n, nvals)].append(nid)
1000
1000
  # a static C function and a macro / function of the same name visible in its file are variants too
1001
1001
  for k in [k for k in alts if k.startswith("c-fn:") and "#" in k]:
@@ -492,6 +492,8 @@ class SwiftPlugin(LanguagePlugin):
492
492
  self.stored_names: set[str] = set() # names of plain stored properties anywhere in the project
493
493
  self.stored_in: dict[str, set[str]] = defaultdict(set) # type fqn -> its stored property names
494
494
  self.fields: dict[str, dict[str, str]] = defaultdict(dict) # type fqn -> stored instance property -> field id
495
+ self._vfields: dict[tuple, str] = {} # (type decl id, stored property) -> field id of that `#if` variant
496
+ self._field_owner: dict[str, str | None] = {} # field id -> the variant type declaring it (#219)
495
497
  self.field_names: set[str] = set()
496
498
  self.mutating_names: set[str] = set()
497
499
  self.branch_of: dict[tuple, dict] = {} # (owner, line, type name) -> enclosing branch of a construction
@@ -929,9 +931,18 @@ class SwiftPlugin(LanguagePlugin):
929
931
  def _field(self, cls: Decl, nm: str, sf: SFile, c, attrs: list):
930
932
  """A stored instance property (`var count = 0`, `@State private var value`, `@Published var items`) is a
931
933
  `field:<Type>.<name>` node (#88): reads and writes of it are READS_PROP / WRITES_PROP edges, for `cg readers` /
932
- `cg writers Type.prop`. Its property wrapper, if any, is attrs.wrapper."""
933
- if nm in self.fields.get(cls.fqn, {}):
934
- return
934
+ `cg writers Type.prop`. Its property wrapper, if any, is attrs.wrapper. The same property declared again in
935
+ another `#if` branch (in the type, or in a per-branch variant of the type) is a node of its own,
936
+ `field:<Type>.<name>@<line>` (#219); the platform pass narrows references to the one built where they are."""
937
+ key = f"{cls.fqn}.{nm}"
938
+ line = c.start_point[0] + 1
939
+ prev_id = self.fields.get(cls.fqn, {}).get(nm)
940
+ if prev_id:
941
+ pn = self.b.nodes[prev_id]
942
+ prev = SimpleNamespace(file=pn.file, line=pn.line, owner=self._field_owner.get(prev_id))
943
+ if not self._branch_variant(prev, sf, c, cls):
944
+ return
945
+ key = f"{key}@{line}"
935
946
  kw = next((self.t(x).split()[0] for x in c.children if x.type == "value_binding_pattern" and self.t(x).strip()), "var")
936
947
  a = {"property": "stored", "binding": "let" if kw == "let" else "var"}
937
948
  wrappers = [x for x in attrs if x not in ("MainActor", "objc", "IBOutlet", "IBInspectable", "available", "nonobjc")]
@@ -943,15 +954,16 @@ class SwiftPlugin(LanguagePlugin):
943
954
  a["key"] = m.group(1)
944
955
  if sf.test:
945
956
  a["test"] = True
946
- fid = self.b.add_node("field", f"{cls.fqn}.{nm}", name=nm, fqn=f"{cls.fqn}.{nm}", file=sf.rel,
947
- line=c.start_point[0] + 1, end_line=c.end_point[0] + 1,
957
+ fid = self.b.add_node("field", key, name=nm, fqn=f"{cls.fqn}.{nm}", file=sf.rel,
958
+ line=line, end_line=c.end_point[0] + 1,
948
959
  module=getattr(self.b.nodes.get(cls.id), "module", None), lang="swift", attrs=a)
949
- self.b.add_edge(cls.id, fid, "CONTAINS", sf.rel, c.start_point[0] + 1, EXACT)
950
- self.fields[cls.fqn][nm] = fid
951
- self.field_names.add(nm)
952
- if wrappers: # `_value = State(initialValue: x)`: the wrapper's storage is the same property
953
- self.fields[cls.fqn]["_" + nm] = fid
954
- self.field_names.add("_" + nm)
960
+ self.b.add_edge(cls.id, fid, "CONTAINS", sf.rel, line, EXACT)
961
+ self._field_owner[fid] = self._owner(cls)
962
+ names = [nm] + (["_" + nm] if wrappers else []) # `_value = State(initialValue: x)`: the wrapper's storage
963
+ for x in names:
964
+ self.fields[cls.fqn].setdefault(x, fid)
965
+ self._vfields[(cls.id, x)] = fid
966
+ self.field_names.add(x)
955
967
  self.st["stored_property_nodes"] += 1
956
968
 
957
969
  def _prop_decl(self, c, nm: str, sf: SFile, cls: Decl):
@@ -2303,7 +2315,7 @@ class SwiftPlugin(LanguagePlugin):
2303
2315
  """The field node of a stored property `name` of a type or its superclasses."""
2304
2316
  if cls is None or depth > 6:
2305
2317
  return None
2306
- fid = self.fields.get(cls.fqn, {}).get(name)
2318
+ fid = self._vfields.get((cls.id, name)) or self.fields.get(cls.fqn, {}).get(name)
2307
2319
  if fid:
2308
2320
  return fid
2309
2321
  for s in cls.supers:
@@ -1781,6 +1781,8 @@ def prop_fields(st: GraphStore, spec: str) -> list[str]:
1781
1781
  spec = spec[len("property:"):] if spec.startswith("property:") else spec
1782
1782
  if ("." not in spec and "::" not in spec) or spec.startswith(("table:", "column:")):
1783
1783
  return []
1784
+ if "@" in spec: # `field:Type.prop@<line>`: one per-platform declaration (#219)
1785
+ return [r["id"] for r in st.q("SELECT id FROM nodes WHERE id=? AND kind='field'", (f"field:{spec}",))]
1784
1786
  # PHP: `User.name`, `User::$name`, `App\Models\User::$name` -> the `property:` node (fqn `App\Models\User::$name`)
1785
1787
  cls, _, prop = spec.replace("::$", "::").replace("::", ".").rpartition(".")
1786
1788
  php = f"{cls}::${prop.lstrip('$')}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cg-code-graph
3
- Version: 0.23.3
3
+ Version: 0.23.4
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
@@ -288,6 +288,7 @@ tests/test_issue_210.py
288
288
  tests/test_issue_211.py
289
289
  tests/test_issue_211_used_at.py
290
290
  tests/test_issue_212.py
291
+ tests/test_issue_219.py
291
292
  tests/test_java.py
292
293
  tests/test_java_exact.py
293
294
  tests/test_jobs.py
@@ -0,0 +1,125 @@
1
+ """Swift stored properties declared per `#if` branch: one node each, and reads / writes narrowed by platform (#219)."""
2
+ import sqlite3
3
+
4
+ import pytest
5
+
6
+ pytest.importorskip("tree_sitter_swift")
7
+ from cg_code_graph import mcp_server as M # noqa: E402
8
+ from cg_code_graph.indexer import index_project # noqa: E402
9
+
10
+ from test_issue_202 import PBX # noqa: E402
11
+
12
+ CANVAS = """\
13
+ import SwiftUI
14
+
15
+ struct CanvasView {
16
+ #if os(iOS)
17
+ final class Coordinator {
18
+ let scale: Double
19
+ var offset: Double = 0
20
+ init(scale: Double) { self.scale = scale }
21
+ func draw() {
22
+ print(scale)
23
+ offset = 1
24
+ }
25
+ }
26
+ #elseif os(macOS)
27
+ final class Coordinator {
28
+ let scale: Double
29
+ var offset: Double = 0
30
+ init(scale: Double) { self.scale = scale }
31
+ func render() {
32
+ print(scale)
33
+ offset = 2
34
+ }
35
+ }
36
+ #endif
37
+ }
38
+
39
+ final class Ruler {
40
+ #if os(iOS)
41
+ var unit: Int = 1
42
+ #else
43
+ var unit: Int = 2
44
+ #endif
45
+ var label: String = ""
46
+
47
+ #if os(macOS)
48
+ func macTick() {
49
+ print(unit)
50
+ }
51
+ #endif
52
+
53
+ func tick() {
54
+ unit = 3
55
+ label = "x"
56
+ }
57
+ }
58
+ """
59
+
60
+
61
+ @pytest.fixture(scope="module")
62
+ def graph(tmp_path_factory):
63
+ tmp = tmp_path_factory.mktemp("i219")
64
+ root = tmp / "app"
65
+ (root / "App.xcodeproj").mkdir(parents=True)
66
+ (root / "Sources" / "App").mkdir(parents=True)
67
+ (root / "App.xcodeproj" / "project.pbxproj").write_text(PBX, encoding="utf-8")
68
+ (root / "Sources" / "App" / "CanvasView.swift").write_text(CANVAS, encoding="utf-8")
69
+ db = tmp / "g.db"
70
+ index_project(root, db, "canvas")
71
+ old = M.STATE.get("db")
72
+ M.STATE["db"] = str(db)
73
+ yield db
74
+ M.STATE["db"] = old
75
+
76
+
77
+ def _ids(db, kind):
78
+ con = sqlite3.connect(db)
79
+ return {r[0] for r in con.execute("SELECT id FROM nodes WHERE kind=?", (kind,))}
80
+
81
+
82
+ def _edges(db, dst):
83
+ con = sqlite3.connect(db)
84
+ return {(s, k) for s, k in con.execute("SELECT src, kind FROM edges WHERE dst=?", (dst,))}
85
+
86
+
87
+ def test_each_branch_field_is_its_own_node(graph):
88
+ fields = _ids(graph, "field")
89
+ assert {"field:CanvasView.Coordinator.scale", "field:CanvasView.Coordinator.scale@16",
90
+ "field:CanvasView.Coordinator.offset", "field:CanvasView.Coordinator.offset@17"} <= fields
91
+ assert {"field:Ruler.unit", "field:Ruler.unit@31", "field:Ruler.label"} <= fields
92
+ assert not any(f.startswith("field:Ruler.label@") for f in fields)
93
+
94
+
95
+ def test_variant_type_members_bind_their_own_fields(graph):
96
+ ios, mac = "field:CanvasView.Coordinator.scale", "field:CanvasView.Coordinator.scale@16"
97
+ assert ("method:CanvasView.Coordinator.draw", "READS_PROP") in _edges(graph, ios)
98
+ assert ("method:CanvasView.Coordinator.render", "READS_PROP") in _edges(graph, mac)
99
+ assert ("method:CanvasView.Coordinator.render", "READS_PROP") not in _edges(graph, ios)
100
+ assert ("method:CanvasView.Coordinator.draw", "READS_PROP") not in _edges(graph, mac)
101
+ assert ("method:CanvasView.Coordinator.init@18", "WRITES_PROP") in _edges(graph, mac)
102
+ assert ("method:CanvasView.Coordinator.init@18", "WRITES_PROP") not in _edges(graph, ios)
103
+ assert ("method:CanvasView.Coordinator.render", "WRITES_PROP") in \
104
+ _edges(graph, "field:CanvasView.Coordinator.offset@17")
105
+ assert ("method:CanvasView.Coordinator.render", "WRITES_PROP") not in \
106
+ _edges(graph, "field:CanvasView.Coordinator.offset")
107
+
108
+
109
+ def test_platform_only_method_reads_the_field_built_there(graph):
110
+ assert ("method:Ruler.macTick", "READS_PROP") in _edges(graph, "field:Ruler.unit@31")
111
+ assert ("method:Ruler.macTick", "READS_PROP") not in _edges(graph, "field:Ruler.unit")
112
+
113
+
114
+ def test_unnarrowed_access_keeps_every_variant(graph):
115
+ assert ("method:Ruler.tick", "WRITES_PROP") in _edges(graph, "field:Ruler.unit")
116
+ assert ("method:Ruler.tick", "WRITES_PROP") in _edges(graph, "field:Ruler.unit@31")
117
+ assert ("method:Ruler.tick", "WRITES_PROP") in _edges(graph, "field:Ruler.label")
118
+
119
+
120
+ def test_readers_lists_only_the_platform_branch(graph):
121
+ out = M.readers("CanvasView.Coordinator.scale") # every declaration, each site with its platform
122
+ assert "Coordinator.draw @CanvasView.swift:10 receiver=self platforms=ios" in out, out
123
+ assert "Coordinator.render @CanvasView.swift:20 receiver=self platforms=macos" in out, out
124
+ out = M.readers("field:CanvasView.Coordinator.scale@16") # the macOS declaration alone
125
+ assert "render" in out and "draw" not in out, out
File without changes
File without changes