src2sink 2.1.0__tar.gz → 3.1.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.
Files changed (181) hide show
  1. {src2sink-2.1.0/src2sink.egg-info → src2sink-3.1.0}/PKG-INFO +1 -1
  2. {src2sink-2.1.0 → src2sink-3.1.0}/pyproject.toml +1 -1
  3. src2sink-3.1.0/src2sink/aggregators/api_client_discovery.py +750 -0
  4. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/auth_cards.py +6 -3
  5. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/crypto_cards.py +7 -2
  6. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/data_stores.py +55 -18
  7. src2sink-3.1.0/src2sink/aggregators/fleet_pass.py +120 -0
  8. src2sink-3.1.0/src2sink/aggregators/graphs.py +111 -0
  9. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/index_v2.py +15 -5
  10. src2sink-3.1.0/src2sink/aggregators/openapi_discovery.py +125 -0
  11. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/payload_producers.py +180 -62
  12. src2sink-3.1.0/src2sink/aggregators/phase3.py +48 -0
  13. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/pii_cross_repo.py +24 -6
  14. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/pii_flow_v2.py +40 -9
  15. src2sink-3.1.0/src2sink/aggregators/queues.py +264 -0
  16. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/ropa.py +3 -1
  17. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/service_call_report.py +12 -4
  18. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/build_metabase_v2.py +86 -4
  19. src2sink-3.1.0/src2sink/checkout_scan.py +187 -0
  20. src2sink-3.1.0/src2sink/constants.py +76 -0
  21. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/derive.py +153 -15
  22. src2sink-3.1.0/src2sink/extractors/ast_walk.py +539 -0
  23. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/patterns.py +67 -1
  24. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/regex_extractors.py +38 -1
  25. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/ts_extractors.py +182 -10
  26. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/unified.py +11 -0
  27. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/graph_common.py +81 -9
  28. src2sink-3.1.0/src2sink/index_store.py +370 -0
  29. src2sink-3.1.0/src2sink/paths.py +361 -0
  30. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/repo_utils.py +25 -1
  31. src2sink-3.1.0/src2sink/resolve.py +250 -0
  32. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/schema.py +1 -1
  33. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/trace.py +263 -84
  34. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/trace_batch.py +8 -1
  35. {src2sink-2.1.0 → src2sink-3.1.0/src2sink.egg-info}/PKG-INFO +1 -1
  36. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink.egg-info/SOURCES.txt +26 -0
  37. src2sink-3.1.0/tests/test_aggregate_output_golden.py +114 -0
  38. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_ast_walk.py +107 -19
  39. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_call_observations.py +31 -3
  40. src2sink-3.1.0/tests/test_call_resolution.py +341 -0
  41. src2sink-3.1.0/tests/test_checkout_scan.py +261 -0
  42. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_detection_input_coverage.py +8 -0
  43. src2sink-3.1.0/tests/test_discovery_scan_cost.py +214 -0
  44. src2sink-3.1.0/tests/test_entry_points.py +165 -0
  45. src2sink-3.1.0/tests/test_fleet_index.py +371 -0
  46. src2sink-3.1.0/tests/test_fleet_pass.py +222 -0
  47. src2sink-3.1.0/tests/test_import_style.py +88 -0
  48. src2sink-3.1.0/tests/test_method_structure.py +180 -0
  49. src2sink-3.1.0/tests/test_oi13_kotlin_parity.py +113 -0
  50. src2sink-3.1.0/tests/test_oi28_index_fast_path.py +126 -0
  51. src2sink-3.1.0/tests/test_oi33_canonical_repo_id.py +259 -0
  52. src2sink-3.1.0/tests/test_oi37_express_anchor.py +174 -0
  53. src2sink-3.1.0/tests/test_oi38_trace_index_freshness.py +171 -0
  54. src2sink-3.1.0/tests/test_oi39_test_path_classification.py +160 -0
  55. src2sink-3.1.0/tests/test_oi40_client_repo_target.py +206 -0
  56. src2sink-3.1.0/tests/test_oi42_promote_validation.py +241 -0
  57. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_output_neutralisation.py +15 -3
  58. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase4_extractor_snapshots.py +9 -0
  59. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase4_taint_caps.py +2 -1
  60. src2sink-3.1.0/tests/test_producer_scan_single_pass.py +250 -0
  61. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_redos_bounds.py +10 -1
  62. src2sink-3.1.0/tests/test_silent_failure_gate.py +284 -0
  63. src2sink-3.1.0/tests/test_tainted_paths.py +410 -0
  64. src2sink-3.1.0/tests/test_type_declarations.py +206 -0
  65. src2sink-2.1.0/src2sink/aggregators/api_client_discovery.py +0 -428
  66. src2sink-2.1.0/src2sink/aggregators/graphs.py +0 -36
  67. src2sink-2.1.0/src2sink/aggregators/openapi_discovery.py +0 -113
  68. src2sink-2.1.0/src2sink/aggregators/phase3.py +0 -30
  69. src2sink-2.1.0/src2sink/aggregators/queues.py +0 -141
  70. src2sink-2.1.0/src2sink/constants.py +0 -44
  71. src2sink-2.1.0/src2sink/extractors/ast_walk.py +0 -158
  72. {src2sink-2.1.0 → src2sink-3.1.0}/LICENSE +0 -0
  73. {src2sink-2.1.0 → src2sink-3.1.0}/README.md +0 -0
  74. {src2sink-2.1.0 → src2sink-3.1.0}/setup.cfg +0 -0
  75. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/__init__.py +0 -0
  76. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/__init__.py +0 -0
  77. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/library_source_map.py +0 -0
  78. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/openapi_edges.py +0 -0
  79. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/openapi_match.py +0 -0
  80. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/openapi_models.py +0 -0
  81. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/openapi_report.py +0 -0
  82. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/pii_lifecycle.py +0 -0
  83. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/pii_lifecycle_report.py +0 -0
  84. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/pii_touchpoint_collect.py +0 -0
  85. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/pii_touchpoint_utils.py +0 -0
  86. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/service_call_collect.py +0 -0
  87. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/service_call_index.py +0 -0
  88. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/service_call_models.py +0 -0
  89. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/service_calls.py +0 -0
  90. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/taint_buckets.py +0 -0
  91. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/taint_catalogs.py +0 -0
  92. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/taint_writers.py +0 -0
  93. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/aggregators/traces_index.py +0 -0
  94. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/curate_internal_libraries.py +0 -0
  95. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/dependencies.py +0 -0
  96. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/__init__.py +0 -0
  97. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/base.py +0 -0
  98. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/config.py +0 -0
  99. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/file_context.py +0 -0
  100. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/go.py +0 -0
  101. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/http_out.py +0 -0
  102. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/java.py +0 -0
  103. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/javascript.py +0 -0
  104. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/kotlin.py +0 -0
  105. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/node_factory.py +0 -0
  106. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/python_extractor.py +0 -0
  107. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/extractors/symbols.py +0 -0
  108. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/internal_groups.py +0 -0
  109. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/known_api_clients.py +0 -0
  110. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/library_taint_java.py +0 -0
  111. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/limits.py +0 -0
  112. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/maven.py +0 -0
  113. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/models/__init__.py +0 -0
  114. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/models/auth_model.py +0 -0
  115. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/models/crypto_agility.py +0 -0
  116. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/models/pii_lifecycle.py +0 -0
  117. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/models/ropa.py +0 -0
  118. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/prescreen.py +0 -0
  119. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/py.typed +0 -0
  120. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/record_fleet_baseline.py +0 -0
  121. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/renderers/__init__.py +0 -0
  122. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/renderers/markdown.py +0 -0
  123. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/renderers/mermaid.py +0 -0
  124. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/safe_paths.py +0 -0
  125. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/sanitize.py +0 -0
  126. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink/vocabulary.py +0 -0
  127. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink.egg-info/dependency_links.txt +0 -0
  128. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink.egg-info/entry_points.txt +0 -0
  129. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink.egg-info/requires.txt +0 -0
  130. {src2sink-2.1.0 → src2sink-3.1.0}/src2sink.egg-info/top_level.txt +0 -0
  131. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_aggregators_extra.py +0 -0
  132. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_api_client_discovery.py +0 -0
  133. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_build_internals.py +0 -0
  134. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_build_main.py +0 -0
  135. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_characterization.py +0 -0
  136. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_config_hygiene.py +0 -0
  137. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_cross_repo_caller_coverage.py +0 -0
  138. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_curate.py +0 -0
  139. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_demand_side_discovery.py +0 -0
  140. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_dependency_pinning.py +0 -0
  141. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_derive_pass.py +0 -0
  142. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_detection_fingerprint_gate.py +0 -0
  143. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_detection_version.py +0 -0
  144. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_field_precision.py +0 -0
  145. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_gradle_version_catalogs.py +0 -0
  146. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_graph_common.py +0 -0
  147. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_http_guard_evidence.py +0 -0
  148. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_import_graph.py +0 -0
  149. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_internal_groups.py +0 -0
  150. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_limits.py +0 -0
  151. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_maven_resolution.py +0 -0
  152. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_module_imports.py +0 -0
  153. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_oi26_receiver_scope.py +0 -0
  154. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_openapi.py +0 -0
  155. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_path_match_significance.py +0 -0
  156. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase0_smoke.py +0 -0
  157. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase1_config.py +0 -0
  158. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase1_extractors.py +0 -0
  159. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase2_graphs.py +0 -0
  160. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase3_pii.py +0 -0
  161. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase4_aggregators.py +0 -0
  162. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase4_fleet_regression.py +0 -0
  163. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_phase4_regression.py +0 -0
  164. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_polyglot_dependencies.py +0 -0
  165. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_post_phase4_backlog.py +0 -0
  166. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_prescreen.py +0 -0
  167. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_renderers.py +0 -0
  168. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_repo_utils_helpers.py +0 -0
  169. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_run_manifest.py +0 -0
  170. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_sanitize.py +0 -0
  171. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_security_input_handling.py +0 -0
  172. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_source_map_fix.py +0 -0
  173. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_sql_classifier.py +0 -0
  174. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_sql_payload_out.py +0 -0
  175. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_sql_sink_evidence.py +0 -0
  176. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_sql_source_construction.py +0 -0
  177. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_trace_batch.py +0 -0
  178. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_trace_fleet_scaling.py +0 -0
  179. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_trace_render.py +0 -0
  180. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_zz_security_coverage_gate.py +0 -0
  181. {src2sink-2.1.0 → src2sink-3.1.0}/tests/test_zz_untrusted_interpolation_guard.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: src2sink
3
- Version: 2.1.0
3
+ Version: 3.1.0
4
4
  Summary: Cross-repository source-to-sink metabase for LLM-assisted SAST
5
5
  Author: Brett Crawley
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "src2sink"
3
- version = "2.1.0"
3
+ version = "3.1.0"
4
4
  description = "Cross-repository source-to-sink metabase for LLM-assisted SAST"
5
5
  authors = [{ name = "Brett Crawley" }]
6
6
  readme = "README.md"