socketsecurity 2.8.0__tar.gz → 2.8.2__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 (164) hide show
  1. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/actions/setup-docker/action.yml +1 -1
  2. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/CHANGELOG.md +18 -0
  3. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/PKG-INFO +3 -3
  4. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/docs/cli-reference.md +1 -1
  5. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/pyproject.toml +3 -3
  6. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/__init__.py +1 -1
  7. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/tools/reachability.py +3 -3
  8. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/uv.lock +54 -54
  9. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/CODEOWNERS +0 -0
  10. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/PULL_REQUEST_TEMPLATE/bug-fix.md +0 -0
  11. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
  12. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/PULL_REQUEST_TEMPLATE/improvement.md +0 -0
  13. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  14. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/actions/setup-hatch/action.yml +0 -0
  15. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/actions/setup-sfw/action.yml +0 -0
  16. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/dependabot.yml +0 -0
  17. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/workflows/dependency-review.yml +0 -0
  18. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/workflows/docker-stable.yml +0 -0
  19. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/workflows/e2e-test.yml +0 -0
  20. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/workflows/package-check.yml +0 -0
  21. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/workflows/pr-preview.yml +0 -0
  22. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/workflows/python-tests.yml +0 -0
  23. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/workflows/release.yml +0 -0
  24. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/workflows/version-check.yml +0 -0
  25. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.github/zizmor.yml +0 -0
  26. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.gitignore +0 -0
  27. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.hooks/sync_version.py +0 -0
  28. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.pre-commit-config.yaml +0 -0
  29. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/.python-version +0 -0
  30. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/CONTRIBUTING.md +0 -0
  31. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/Dockerfile +0 -0
  32. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/Dockerfile.preview +0 -0
  33. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/LICENSE +0 -0
  34. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/Makefile +0 -0
  35. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/README.md +0 -0
  36. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/benchmarks/manifest_discovery.py +0 -0
  37. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/docs/ci-cd.md +0 -0
  38. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/docs/development.md +0 -0
  39. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/docs/troubleshooting.md +0 -0
  40. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/examples/config/sarif-dashboard-parity.json +0 -0
  41. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/examples/config/sarif-dashboard-parity.toml +0 -0
  42. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/examples/config/sarif-diff-ci-cd.json +0 -0
  43. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/examples/config/sarif-diff-ci-cd.toml +0 -0
  44. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/examples/config/sarif-instance-detail.json +0 -0
  45. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/examples/config/sarif-instance-detail.toml +0 -0
  46. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/instructions/gitlab-commit-status/uat.md +0 -0
  47. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/pytest.ini +0 -0
  48. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/scripts/build_container.sh +0 -0
  49. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/scripts/build_container_flexible.sh +0 -0
  50. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/scripts/deploy-test-docker.sh +0 -0
  51. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/scripts/deploy-test-pypi.sh +0 -0
  52. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/scripts/docker-entrypoint.sh +0 -0
  53. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/scripts/run.sh +0 -0
  54. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/session.md +0 -0
  55. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socket.yml +0 -0
  56. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/config.py +0 -0
  57. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/__init__.py +0 -0
  58. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/alert_selection.py +0 -0
  59. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/classes.py +0 -0
  60. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/cli_client.py +0 -0
  61. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/cli_run.py +0 -0
  62. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/exceptions.py +0 -0
  63. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/git_interface.py +0 -0
  64. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/helper/__init__.py +0 -0
  65. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/helper/socket_facts_loader.py +0 -0
  66. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/lazy_file_loader.py +0 -0
  67. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/log_uploader.py +0 -0
  68. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/logging.py +0 -0
  69. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/messages.py +0 -0
  70. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/resource_utils.py +0 -0
  71. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/scm/__init__.py +0 -0
  72. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/scm/base.py +0 -0
  73. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/scm/client.py +0 -0
  74. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/scm/github.py +0 -0
  75. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/scm/gitlab.py +0 -0
  76. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/scm_comments.py +0 -0
  77. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/socket_config.py +0 -0
  78. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/streaming.py +0 -0
  79. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/core/utils.py +0 -0
  80. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/fossa_compat.py +0 -0
  81. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/output.py +0 -0
  82. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/__init__.py +0 -0
  83. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/base.py +0 -0
  84. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/formatters/__init__.py +0 -0
  85. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/formatters/slack.py +0 -0
  86. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/jira.py +0 -0
  87. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/manager.py +0 -0
  88. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/slack.py +0 -0
  89. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/teams.py +0 -0
  90. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/plugins/webhook.py +0 -0
  91. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/socketsecurity/socketcli.py +0 -0
  92. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/__init__.py +0 -0
  93. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/conftest.py +0 -0
  94. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/create_diff_input.json +0 -0
  95. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_diff_alerts.py +0 -0
  96. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_diff_generation.py +0 -0
  97. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_diff_scan_polling.py +0 -0
  98. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_facts_compression.py +0 -0
  99. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_has_manifest_files.py +0 -0
  100. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_invalid_facts_marker.py +0 -0
  101. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_package_and_alerts.py +0 -0
  102. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_sdk_methods.py +0 -0
  103. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/core/test_supporting_methods.py +0 -0
  104. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/fullscans/create_response.json +0 -0
  105. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/fullscans/diff/stream_diff.json +0 -0
  106. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/fullscans/diff/stream_diff_full.json +0 -0
  107. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/fullscans/head_scan/metadata.json +0 -0
  108. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/fullscans/head_scan/stream_scan.json +0 -0
  109. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/fullscans/head_scan/stream_scan_full.json +0 -0
  110. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/fullscans/new_scan/metadata.json +0 -0
  111. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/fullscans/new_scan/stream_scan.json +0 -0
  112. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/repos/repo_info_error.json +0 -0
  113. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/repos/repo_info_no_head.json +0 -0
  114. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/repos/repo_info_success.json +0 -0
  115. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/data/settings/security-policy.json +0 -0
  116. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/fixtures/simple-npm/index.js +0 -0
  117. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/fixtures/simple-npm/package.json +0 -0
  118. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/fixtures/simple-pypi/requirements.txt +0 -0
  119. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/reach-facts-probe.sh +0 -0
  120. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/validate-gitlab.sh +0 -0
  121. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/validate-json.sh +0 -0
  122. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/validate-reachability.sh +0 -0
  123. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/validate-sarif.sh +0 -0
  124. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/e2e/validate-scan.sh +0 -0
  125. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/fixtures/fossa/README.md +0 -0
  126. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/fixtures/fossa/fossa-analyze-empty.json +0 -0
  127. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/fixtures/fossa/fossa-analyze-populated.json +0 -0
  128. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/fixtures/fossa/fossa-sbom-empty-deep.json +0 -0
  129. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/fixtures/fossa/fossa-sbom-populated.json +0 -0
  130. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/__init__.py +0 -0
  131. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_alert_selection.py +0 -0
  132. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_cli_config.py +0 -0
  133. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_cli_run.py +0 -0
  134. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_client.py +0 -0
  135. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_config.py +0 -0
  136. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_dependency_overview.py +0 -0
  137. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_disable_ignore.py +0 -0
  138. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_exclude_paths.py +0 -0
  139. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_fossa_compat.py +0 -0
  140. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_fossa_parity.py +0 -0
  141. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_full_scan_retry.py +0 -0
  142. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_git_interface.py +0 -0
  143. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_github_buildkite_config.py +0 -0
  144. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_gitlab_auth.py +0 -0
  145. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_gitlab_auth_fallback.py +0 -0
  146. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_gitlab_commit_status.py +0 -0
  147. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_gitlab_format.py +0 -0
  148. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_ignore_telemetry_filtering.py +0 -0
  149. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_include_dirs.py +0 -0
  150. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_log_uploader.py +0 -0
  151. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_manifest_discovery.py +0 -0
  152. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_output.py +0 -0
  153. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_pr_comment_rendering.py +0 -0
  154. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_reachability.py +0 -0
  155. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_scan_scope.py +0 -0
  156. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_slack_plugin.py +0 -0
  157. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_slack_severity_normalization.py +0 -0
  158. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_socketcli.py +0 -0
  159. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_streaming.py +0 -0
  160. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/tests/unit/test_tier1_finalize.py +0 -0
  161. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/workflows/bitbucket-pipelines.yml +0 -0
  162. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/workflows/buildkite.yml +0 -0
  163. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/workflows/github-actions.yml +0 -0
  164. {socketsecurity-2.8.0 → socketsecurity-2.8.2}/workflows/gitlab-ci.yml +0 -0
@@ -19,7 +19,7 @@ inputs:
19
19
  runs:
20
20
  using: "composite"
21
21
  steps:
22
- - uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
22
+ - uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
23
23
  if: inputs.enable-qemu == 'true'
24
24
  - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
25
25
  - uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.8.2
4
+
5
+ ### Changed: bump pinned @coana-tech/cli to 15.10.41
6
+
7
+ - Bumped the pinned reachability engine (`@coana-tech/cli`) from `15.10.40` to
8
+ `15.10.41`. See the
9
+ [reachability analysis changelog](https://docs.socket.dev/docs/reachability-analysis-changelog)
10
+ for engine changes.
11
+
12
+ ## 2.8.1
13
+
14
+ ### Changed: bump pinned @coana-tech/cli to 15.10.40
15
+
16
+ - Bumped the pinned reachability engine (`@coana-tech/cli`) from `15.10.39` to
17
+ `15.10.40`. See the
18
+ [reachability analysis changelog](https://docs.socket.dev/docs/reachability-analysis-changelog)
19
+ for engine changes.
20
+
3
21
  ## 2.8.0
4
22
 
5
23
  ### Changed: improve monorepo scan diagnostics and guidance
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: socketsecurity
3
- Version: 2.8.0
3
+ Version: 2.8.2
4
4
  Summary: Socket Security CLI for CI/CD
5
5
  Project-URL: Homepage, https://socket.dev
6
6
  Author-email: Douglas Coburn <douglas@socket.dev>
@@ -47,9 +47,9 @@ Requires-Dist: socketdev==3.6.0
47
47
  Provides-Extra: dev
48
48
  Requires-Dist: hatch==1.18.0; extra == 'dev'
49
49
  Requires-Dist: pre-commit==4.6.2; extra == 'dev'
50
- Requires-Dist: ruff==0.16.5; extra == 'dev'
50
+ Requires-Dist: ruff==0.16.6; extra == 'dev'
51
51
  Requires-Dist: twine==7.0.0; extra == 'dev'
52
- Requires-Dist: uv==0.12.8; extra == 'dev'
52
+ Requires-Dist: uv==0.12.9; extra == 'dev'
53
53
  Provides-Extra: test
54
54
  Requires-Dist: pytest-asyncio==1.4.0; extra == 'test'
55
55
  Requires-Dist: pytest-cov==7.1.0; extra == 'test'
@@ -338,7 +338,7 @@ If you don't want to provide the Socket API Token every time then you can use th
338
338
  | Parameter | Required | Default | Description |
339
339
  |:---------------------------------|:---------|:--------|:---------------------------------------------------------------------------------------------------------------------------|
340
340
  | `--reach` | False | False | Enable reachability analysis to identify which vulnerable functions are actually called by your code. Creates a full application reachability scan (`scan_type=socket_tier1`). |
341
- | `--reach-version` | False | 15.10.39 | Version of @coana-tech/cli to use. Defaults to the pinned version that ships with this CLI release, so the engine only changes when you upgrade the Socket CLI. Pass `latest` to always use the newest published version (opt-in auto-update), or an explicit version (e.g. `1.2.3`) to pin it. |
341
+ | `--reach-version` | False | 15.10.41 | Version of @coana-tech/cli to use. Defaults to the pinned version that ships with this CLI release, so the engine only changes when you upgrade the Socket CLI. Pass `latest` to always use the newest published version (opt-in auto-update), or an explicit version (e.g. `1.2.3`) to pin it. |
342
342
  | `--reach-analysis-timeout` | False | 10m | Timeout for each reachability analysis run, e.g. `90s`, `10m` or `1h`. Omitted by default, so coana applies its own default (`10m`). Alias: `--reach-timeout` |
343
343
  | `--reach-analysis-memory-limit` | False | 8GB | Memory limit for each reachability analysis run, e.g. `512MB` or `8GB`. Omitted by default, so coana applies its own default (`8GB`). Alias: `--reach-memory-limit` |
344
344
  | `--reach-concurrency` | False | 1 | Control parallel analysis execution (must be >= 1). Omitted by default, so coana applies its own default. |
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "socketsecurity"
9
- version = "2.8.0"
9
+ version = "2.8.2"
10
10
  requires-python = ">= 3.11"
11
11
  license = {"file" = "LICENSE"}
12
12
  dependencies = [
@@ -47,9 +47,9 @@ test = [
47
47
  "pytest-watch==4.2.0"
48
48
  ]
49
49
  dev = [
50
- "ruff==0.16.5",
50
+ "ruff==0.16.6",
51
51
  "twine==7.0.0", # for building
52
- "uv==0.12.8", # for dependency management
52
+ "uv==0.12.9", # for dependency management
53
53
  "pre-commit==4.6.2",
54
54
  "hatch==1.18.0"
55
55
  ]
@@ -1,3 +1,3 @@
1
1
  __author__ = 'socket.dev'
2
- __version__ = '2.8.0'
2
+ __version__ = '2.8.2'
3
3
  USER_AGENT = f'SocketPythonCLI/{__version__}'
@@ -19,7 +19,7 @@ log = logging.getLogger(__name__)
19
19
  # Pinned @coana-tech/cli version. Bumped deliberately per Python CLI release so the
20
20
  # reachability engine version only changes through a standard pip upgrade (advance notice).
21
21
  # Pass --reach-version latest to opt into the newest published version instead.
22
- DEFAULT_COANA_CLI_VERSION: Final = "15.10.39"
22
+ DEFAULT_COANA_CLI_VERSION: Final = "15.10.41"
23
23
 
24
24
  # Resolved @coana-tech/cli script paths from the npm-install fallback, keyed by version.
25
25
  # Lives for the process lifetime so repeated fallback invocations install only once
@@ -56,7 +56,7 @@ class ReachabilityAnalyzer:
56
56
 
57
57
  def _resolve_coana_package_spec(self, version: Optional[str] = None) -> str:
58
58
  """
59
- Resolve the @coana-tech/cli package spec to run (e.g. '@coana-tech/cli@15.10.39').
59
+ Resolve the @coana-tech/cli package spec to run (e.g. '@coana-tech/cli@15.10.41').
60
60
 
61
61
  Args:
62
62
  version: Coana CLI version to use.
@@ -65,7 +65,7 @@ class ReachabilityAnalyzer:
65
65
  - '<semver>': that exact version.
66
66
 
67
67
  Returns:
68
- str: The package specifier to use with npx (e.g. '@coana-tech/cli@15.10.39').
68
+ str: The package specifier to use with npx (e.g. '@coana-tech/cli@15.10.41').
69
69
  """
70
70
  return f"@coana-tech/cli@{self._resolve_coana_version(version)}"
71
71
 
@@ -12,8 +12,8 @@ name = "anyio"
12
12
  version = "4.12.0"
13
13
  source = { registry = "https://pypi.org/simple" }
14
14
  dependencies = [
15
- { name = "idna" },
16
- { name = "typing-extensions", marker = "python_full_version < '3.13'" },
15
+ { name = "idna", marker = "python_full_version != '3.12.*' or sys_platform != 'emscripten'" },
16
+ { name = "typing-extensions", marker = "(python_full_version < '3.13' and sys_platform != 'emscripten') or (python_full_version < '3.12' and sys_platform == 'emscripten')" },
17
17
  ]
18
18
  sdist = { url = "https://files.pythonhosted.org/packages/16/ce/8a777047513153587e5434fd752e89334ac33e379aa3497db860eeb60377/anyio-4.12.0.tar.gz", hash = "sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0", size = 228266, upload-time = "2025-11-28T23:37:38.911Z" }
19
19
  wheels = [
@@ -476,7 +476,7 @@ name = "cryptography"
476
476
  version = "50.0.0"
477
477
  source = { registry = "https://pypi.org/simple" }
478
478
  dependencies = [
479
- { name = "cffi", marker = "platform_python_implementation != 'PyPy'" },
479
+ { name = "cffi", marker = "(python_full_version != '3.12.*' and platform_python_implementation != 'PyPy') or (platform_python_implementation != 'PyPy' and sys_platform != 'emscripten')" },
480
480
  ]
481
481
  sdist = { url = "https://files.pythonhosted.org/packages/de/41/6cbdcf9142d00fe82836fbb51e503e58088575cf7a0fe1dbff6695bf0840/cryptography-50.0.0.tar.gz", hash = "sha256:eeac2acb5a20ed25e0ad6d1df9891a520b78b404266b6d11778f25d5d691a6c9", size = 880201, upload-time = "2026-07-31T14:25:10.11Z" }
482
482
  wheels = [
@@ -644,8 +644,8 @@ name = "httpcore2"
644
644
  version = "2.12.0"
645
645
  source = { registry = "https://pypi.org/simple" }
646
646
  dependencies = [
647
- { name = "h11" },
648
- { name = "truststore" },
647
+ { name = "h11", marker = "python_full_version != '3.12.*' or sys_platform != 'emscripten'" },
648
+ { name = "truststore", marker = "python_full_version != '3.12.*' or sys_platform != 'emscripten'" },
649
649
  ]
650
650
  sdist = { url = "https://files.pythonhosted.org/packages/be/ad/f4f0e57345f1870f3e8cb624e058d7eca6e5a27d33bcc3311d9b618734cd/httpcore2-2.12.0.tar.gz", hash = "sha256:9293522bba0aa7c4c8e9e3f040c16575bd8868e155a77fa30c7a9085a5eae648", size = 67548, upload-time = "2026-08-18T13:22:08.211Z" }
651
651
  wheels = [
@@ -725,7 +725,7 @@ name = "importlib-metadata"
725
725
  version = "8.7.1"
726
726
  source = { registry = "https://pypi.org/simple" }
727
727
  dependencies = [
728
- { name = "zipp" },
728
+ { name = "zipp", marker = "(python_full_version < '3.13' and sys_platform != 'emscripten') or (python_full_version < '3.12' and sys_platform == 'emscripten')" },
729
729
  ]
730
730
  sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" }
731
731
  wheels = [
@@ -1224,27 +1224,27 @@ wheels = [
1224
1224
 
1225
1225
  [[package]]
1226
1226
  name = "ruff"
1227
- version = "0.16.5"
1228
- source = { registry = "https://pypi.org/simple" }
1229
- sdist = { url = "https://files.pythonhosted.org/packages/f3/85/c8e12473c93018f92d19dd988a294202e1c27426c47ec4de53ffb847b8d8/ruff-0.16.5.tar.gz", hash = "sha256:1b88500f9ffbcab3dedb0082c9f9492e91ec3d618aac1236a3e0189938f7040b", size = 4912003, upload-time = "2026-08-27T16:34:18.258Z" }
1230
- wheels = [
1231
- { url = "https://files.pythonhosted.org/packages/c6/b6/77c90a970fe2dae17a723acbd011043ea97c98d7deacccefdc4ba74ec512/ruff-0.16.5-py3-none-linux_armv6l.whl", hash = "sha256:12e5f673e774c35fbb62f288809c7653b73445f8ecec6b6063fd6ea3521aa14b", size = 10011941, upload-time = "2026-08-27T16:33:41.287Z" },
1232
- { url = "https://files.pythonhosted.org/packages/4b/46/6cf67cf6411885a1d6f7f6d801682f155536a85176d10b605e2ceffed8bd/ruff-0.16.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:eda58a5802de40e7ed5b32b64e0b32539338cc6fcd2c78f61e3ad6a0d79f51c3", size = 10204049, upload-time = "2026-08-27T16:33:44.056Z" },
1233
- { url = "https://files.pythonhosted.org/packages/46/fd/c8720ca7a090abf0c2fef4abe8a5ef6e5127ed15196d8886ff75a2b370e2/ruff-0.16.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c5ae9a7b9a8875131f40f8fe967cc86abf899779efd663cb7ce3d572d01da7eb", size = 9809037, upload-time = "2026-08-27T16:33:46.257Z" },
1234
- { url = "https://files.pythonhosted.org/packages/43/45/a684caacdedaca180f52bacccc40bf0789d2c5a7c75f25324853e9eaedb5/ruff-0.16.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b719b0a1f4d59710d283ab2965f621684a108a9e41da622e3b23f0326cd0025", size = 9964129, upload-time = "2026-08-27T16:33:48.352Z" },
1235
- { url = "https://files.pythonhosted.org/packages/9e/f2/5d2bcdaca6b5b93d1b4dfc166cd2aebf7680143a1b38a28759df13a94d31/ruff-0.16.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2298f2780ed1be0c5cb1361e32ab7b1467f3cce7dabe101d2210a314f2fe42e9", size = 9821518, upload-time = "2026-08-27T16:33:50.57Z" },
1236
- { url = "https://files.pythonhosted.org/packages/aa/ff/011cce29accf9257d5974145b733fc653a37985ed6825413a3987cefbfe0/ruff-0.16.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:258f29035a2dd021e7861e631b227a5b3f14e50c1184c9a6a122c5f4576154d7", size = 10534835, upload-time = "2026-08-27T16:33:52.522Z" },
1237
- { url = "https://files.pythonhosted.org/packages/d7/5a/f0cf109bada9bba0e96c90c21c9f9251803f57225c32d293327a03c710d6/ruff-0.16.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9a4f0432966834019c74d1b7e5c51224305d7713f3d7faf3e7451f1a3be3cde", size = 11252550, upload-time = "2026-08-27T16:33:54.521Z" },
1238
- { url = "https://files.pythonhosted.org/packages/63/4d/1d481aaea2046c6a7ed7c291f9004c669cce3c087b6b376ed5b08271e3fe/ruff-0.16.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5eb3a8c3d0ade9cea42b591fd530368e8798380e30e0a308b85a5cf718f09ea", size = 10777949, upload-time = "2026-08-27T16:33:56.88Z" },
1239
- { url = "https://files.pythonhosted.org/packages/ee/34/ee245ca55f64443233034b3d02b03236b19242004281247c079390b7facd/ruff-0.16.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef0f69e191a13a3c9816f63163c88790cb12cd157bbbb384e9c44745702ab105", size = 10311656, upload-time = "2026-08-27T16:33:59.12Z" },
1240
- { url = "https://files.pythonhosted.org/packages/a7/4d/c33a333e341c0a2b96c715b52d89a606f5a34cd4ac493cd9b8d0187186b8/ruff-0.16.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:0eeab41fbea2c42f98dfb9822cdccda9d24ba38d49f6dc945b5c236d48f0ef29", size = 10532125, upload-time = "2026-08-27T16:34:01.166Z" },
1241
- { url = "https://files.pythonhosted.org/packages/30/e1/a64cef78b40192497bb98a27a8aa8f2c98ee9ee15bc97f7712d94ef32937/ruff-0.16.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f0768e9df4300713fff30733c87575f68b6f1d8de41184e505b7fdd9c0c95eaf", size = 10097648, upload-time = "2026-08-27T16:34:03.16Z" },
1242
- { url = "https://files.pythonhosted.org/packages/cc/4e/4cdc9ed3c3e109d2f71e62572a37457298d7bc7501ec3138babb7ed32bbd/ruff-0.16.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:95cc70cdc7aa80c338de356279d2adbeb2de0f520b9ecd8aba75b94e95e02f91", size = 9829344, upload-time = "2026-08-27T16:34:05.134Z" },
1243
- { url = "https://files.pythonhosted.org/packages/39/4a/31ed35ce31729955fc583ee0d176d6e784c1290cb0b0a75cb2134c1ab72a/ruff-0.16.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d185c8398ded1bfd91c0c2cb258346307571eccc473a8490af8c3977399c384a", size = 10277117, upload-time = "2026-08-27T16:34:07.425Z" },
1244
- { url = "https://files.pythonhosted.org/packages/a8/a0/60356d86687b4b666d593df213f4dc3041750d024cb7bf2cfa81cfd65c2e/ruff-0.16.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:fb8e3a3c4c6a784150a7ced53b015f4b253fc2bf97a610886419ead64b4756ef", size = 10711653, upload-time = "2026-08-27T16:34:09.712Z" },
1245
- { url = "https://files.pythonhosted.org/packages/ed/20/656d67f5b25ca9bda4e02b1de25867b2954e1d19e03648060f167ad0f4cc/ruff-0.16.5-py3-none-win32.whl", hash = "sha256:288b0a5f080492fe5635db849f9e2e84aa3cce7b7f0e955997d416c507c76a26", size = 10034250, upload-time = "2026-08-27T16:34:11.8Z" },
1246
- { url = "https://files.pythonhosted.org/packages/5b/42/ee8e68a207b9127fcde6c3d7e197def432f346cb1af159e1fa14ca0d1cdc/ruff-0.16.5-py3-none-win_amd64.whl", hash = "sha256:ddc6385fb2137f616357ca03d6c74f4be987f80fed4008566b754f6032b8546f", size = 10516714, upload-time = "2026-08-27T16:34:13.963Z" },
1247
- { url = "https://files.pythonhosted.org/packages/73/e3/7df5a396e445b9ba49ce9a9437439a4d80042c61c0ade199abf8d16de1ac/ruff-0.16.5-py3-none-win_arm64.whl", hash = "sha256:a64abe90968719b851bb7cedffaa8753fbdbdadab483089682db623f3edc587e", size = 10391564, upload-time = "2026-08-27T16:34:16.064Z" },
1227
+ version = "0.16.6"
1228
+ source = { registry = "https://pypi.org/simple" }
1229
+ sdist = { url = "https://files.pythonhosted.org/packages/a4/7c/6adb35d70e7c027e308274557901c7e00fb3407750faf3620c184ae058cb/ruff-0.16.6.tar.gz", hash = "sha256:dcf8a73d2ff77e99dde91244b4da16feba7f14e6beeb4015dee7c5a909e99050", size = 4921251, upload-time = "2026-09-03T16:57:29.037Z" }
1230
+ wheels = [
1231
+ { url = "https://files.pythonhosted.org/packages/a4/28/9cc1b79639e284ec103f43c88c644db4eb58cbd0ea1ca11f1193435369ac/ruff-0.16.6-py3-none-linux_armv6l.whl", hash = "sha256:61c368c26bf8e973e5ab14a2772de587bc068ea3f9a277f673380749b4898fb8", size = 10015638, upload-time = "2026-09-03T16:56:40.986Z" },
1232
+ { url = "https://files.pythonhosted.org/packages/71/11/627d342ef727ea7794edf74fe23d60a074b02c3acc2e9436684e782286ca/ruff-0.16.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ecf4f068e2e123e43a26e9db4e19524cc56563912404e83bbfca375757e45a32", size = 10220762, upload-time = "2026-09-03T16:56:44.681Z" },
1233
+ { url = "https://files.pythonhosted.org/packages/43/d9/b75668ce41e4c8d073d18d6d08672ba6906ce45d5c06ea4fdb2e84ce3853/ruff-0.16.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:99b62ea33baf130f50368798d841f0d95527b6d817bf31817b65dd058f1d314c", size = 9835082, upload-time = "2026-09-03T16:56:47.142Z" },
1234
+ { url = "https://files.pythonhosted.org/packages/99/97/123ab10b05cde889c107c20f5a9774955104b5552796a2a8584b089ae8eb/ruff-0.16.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fbf89013f2bb3f6835a6038ff658dc8a1b38c98dc8e724b964168ad4e881876", size = 9949304, upload-time = "2026-09-03T16:56:49.813Z" },
1235
+ { url = "https://files.pythonhosted.org/packages/3e/58/a4a2c59dd2e5b85929c912d9cac3056eb9ee8c7e75e9b9fe3e109174966b/ruff-0.16.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:56a67065e22efa6bc4d498299d3bb06c0c90aace8fac2068b5a12f9dc4d8d51d", size = 9840612, upload-time = "2026-09-03T16:56:52.368Z" },
1236
+ { url = "https://files.pythonhosted.org/packages/61/6a/ff8c8626a786c4f49d48ced4a752dadbca65f5263005f9c2416578194694/ruff-0.16.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e25cc89174874b176a157e4428d66761c2c0c006654419bf384f967f361ff1b1", size = 10543465, upload-time = "2026-09-03T16:56:55.089Z" },
1237
+ { url = "https://files.pythonhosted.org/packages/ad/bb/c47535923365f337b82e28192e4e9eef2176511007cfd99a62fc22df5dad/ruff-0.16.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0700580ed5303723cb3c11c2f1d2a8913ce77b7ea86646dddb887f5417a9ba70", size = 11267576, upload-time = "2026-09-03T16:56:57.791Z" },
1238
+ { url = "https://files.pythonhosted.org/packages/ba/50/e5119a5212b5cd63b51e1f4b25e7bd636a6668fc069a3160b108ad7e3c16/ruff-0.16.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15f1d0b6e165a6e56567befb6629f8209271311d990bae0f37e6d065035ef5f3", size = 10781993, upload-time = "2026-09-03T16:57:00.666Z" },
1239
+ { url = "https://files.pythonhosted.org/packages/8b/98/083d8b4ef3c51a0d19db84367791cbe9f44e4b53343d19dfa83556e1cd9a/ruff-0.16.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d72c591a96986ee4268860e2b7235082129ca5e4cb9cbba653a4b57c11893757", size = 10317748, upload-time = "2026-09-03T16:57:03.428Z" },
1240
+ { url = "https://files.pythonhosted.org/packages/9a/29/68f7ff2c5ad95f19f00627ac2de95644e25fe47371ea60b2db1fd952315e/ruff-0.16.6-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:65a006baa18f33324325814c864daef03541d51564b98c517610ea756ab7003e", size = 10540096, upload-time = "2026-09-03T16:57:06.182Z" },
1241
+ { url = "https://files.pythonhosted.org/packages/c4/f9/79a8f6de85968641d68a7863aeec577551924ef066a990a48ff93167beab/ruff-0.16.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:cd02a7bf1a21a8735228a3e8c95a9dc5cf86bd2a52194f4aaae2a5755b4de0f4", size = 10100494, upload-time = "2026-09-03T16:57:09.194Z" },
1242
+ { url = "https://files.pythonhosted.org/packages/d9/e8/b81a22d9b90c00b892ccf2fa2ac36fa95de4c13ab85aea3e73795cfe4651/ruff-0.16.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:31b36f1e5ad85e0737f09d2be4e512e2e283583c14015da3b9dc07359ac0fc88", size = 9843663, upload-time = "2026-09-03T16:57:12.168Z" },
1243
+ { url = "https://files.pythonhosted.org/packages/39/aa/54f516ec5e5a11c4afdceb1c454ebb054ffb96e4f4a1705580b4346abd35/ruff-0.16.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:61029b4ab4aa723fd3064fab96b1d814492596bf0c792679fffcbde1e1679953", size = 10282461, upload-time = "2026-09-03T16:57:15.077Z" },
1244
+ { url = "https://files.pythonhosted.org/packages/52/0b/38d0aa8aa32372b96dc44f97b22e576c4147808271aab7b2cb1e353d4445/ruff-0.16.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:9ac8998457832c2061709d900856b7ad271dace0cb41f346588d540162bfa718", size = 10728808, upload-time = "2026-09-03T16:57:17.797Z" },
1245
+ { url = "https://files.pythonhosted.org/packages/5e/e5/9e274e24eeb027640ffc7442f21239f16d17f47acec15ae34f32e03a5c79/ruff-0.16.6-py3-none-win32.whl", hash = "sha256:0b87d9d16fcb63e8018423ca1d50b7260f15cb2da33e30db4baad4183a948c25", size = 10049212, upload-time = "2026-09-03T16:57:20.55Z" },
1246
+ { url = "https://files.pythonhosted.org/packages/22/31/72472449414223ed1a2da236b992adbb1a2ae59e34794574810f60ce068e/ruff-0.16.6-py3-none-win_amd64.whl", hash = "sha256:10d21c51c3495d8eaea7b703a16592117ea6eb1d649e36335aa965ff1173eb39", size = 10556402, upload-time = "2026-09-03T16:57:23.501Z" },
1247
+ { url = "https://files.pythonhosted.org/packages/fc/07/d781f8f8e1ac24bef9f3269cf62ffb1407ca24c3a8f12e5e22874f90528c/ruff-0.16.6-py3-none-win_arm64.whl", hash = "sha256:7a976c79b958f94e50a022a19f0f8c87387448020935ec14fc74331bd0a7f2c5", size = 10412850, upload-time = "2026-09-03T16:57:26.416Z" },
1248
1248
  ]
1249
1249
 
1250
1250
  [[package]]
@@ -1252,8 +1252,8 @@ name = "secretstorage"
1252
1252
  version = "3.5.0"
1253
1253
  source = { registry = "https://pypi.org/simple" }
1254
1254
  dependencies = [
1255
- { name = "cryptography" },
1256
- { name = "jeepney" },
1255
+ { name = "cryptography", marker = "python_full_version != '3.12.*' or sys_platform != 'emscripten'" },
1256
+ { name = "jeepney", marker = "python_full_version != '3.12.*' or sys_platform != 'emscripten'" },
1257
1257
  ]
1258
1258
  sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" }
1259
1259
  wheels = [
@@ -1293,7 +1293,7 @@ wheels = [
1293
1293
 
1294
1294
  [[package]]
1295
1295
  name = "socketsecurity"
1296
- version = "2.8.0"
1296
+ version = "2.8.2"
1297
1297
  source = { editable = "." }
1298
1298
  dependencies = [
1299
1299
  { name = "beautifulsoup4" },
@@ -1349,10 +1349,10 @@ requires-dist = [
1349
1349
  { name = "pytest-watch", marker = "extra == 'test'", specifier = "==4.2.0" },
1350
1350
  { name = "python-dotenv", specifier = "==1.2.3" },
1351
1351
  { name = "requests", specifier = "==2.34.2" },
1352
- { name = "ruff", marker = "extra == 'dev'", specifier = "==0.16.5" },
1352
+ { name = "ruff", marker = "extra == 'dev'", specifier = "==0.16.6" },
1353
1353
  { name = "socketdev", specifier = "==3.6.0" },
1354
1354
  { name = "twine", marker = "extra == 'dev'", specifier = "==7.0.0" },
1355
- { name = "uv", marker = "extra == 'dev'", specifier = "==0.12.8" },
1355
+ { name = "uv", marker = "extra == 'dev'", specifier = "==0.12.9" },
1356
1356
  ]
1357
1357
  provides-extras = ["test", "dev"]
1358
1358
 
@@ -1505,28 +1505,28 @@ wheels = [
1505
1505
 
1506
1506
  [[package]]
1507
1507
  name = "uv"
1508
- version = "0.12.8"
1509
- source = { registry = "https://pypi.org/simple" }
1510
- sdist = { url = "https://files.pythonhosted.org/packages/b1/38/53754ae5033d0dbfe01976249e4b1b48539fe5080aeec162bc920f6244d6/uv-0.12.8.tar.gz", hash = "sha256:dc6a191265fed5102d9678958b3a157c81e61246316f07e7d980c3616032f49d", size = 7124914, upload-time = "2026-08-31T22:18:18.1Z" }
1511
- wheels = [
1512
- { url = "https://files.pythonhosted.org/packages/27/13/8e6984272962a273323c58113ae390eb709f7a74726009e1bcecbb7fe0fd/uv-0.12.8-py3-none-linux_armv6l.whl", hash = "sha256:e6c617d5674867653738eaec333025142e9de33410955f8f6ae40e2e8ac85e77", size = 22245394, upload-time = "2026-08-31T22:17:24.331Z" },
1513
- { url = "https://files.pythonhosted.org/packages/0d/38/18d7ae5d4b40714b8e2c474bfcac907a8dd27573044b60e808b895a07423/uv-0.12.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:edfb42bc830b4c473653ed5470ac4d967ae2cd40c1b7409ec4c7c8b655d04235", size = 20544653, upload-time = "2026-08-31T22:17:27.429Z" },
1514
- { url = "https://files.pythonhosted.org/packages/84/32/249b0ec1a62916b8e7c2638154b930daaf9eae2df8b0807ad455c8916b7e/uv-0.12.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:842e27b85ec85c32369919b6dc72a4ae0c737b4376165d34a6ebb8329ce9d744", size = 17363409, upload-time = "2026-08-31T22:17:30.309Z" },
1515
- { url = "https://files.pythonhosted.org/packages/62/4c/74ba60fbcda11be5aa5a7f139bc122834ec740d735e155ad9324aff3570a/uv-0.12.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:ff4d67a13a3283004e3b00e22c39922c27b0e1929f82f9d6873dc85dc8bf6dc7", size = 21484891, upload-time = "2026-08-31T22:17:33.144Z" },
1516
- { url = "https://files.pythonhosted.org/packages/4a/92/6817f8f705bcf0e6b51302a55a899faf2a29d9c3f056cb04f9f133a7192b/uv-0.12.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:a8a8129edee5591b09933b8387d3ccc250933a9cb39f98bde89d6e4f920a870d", size = 21731676, upload-time = "2026-08-31T22:17:36.323Z" },
1517
- { url = "https://files.pythonhosted.org/packages/6f/df/7ca009329a0b2194ca709f51e1f304b01086e0f99f3f8e0ea81460a193b9/uv-0.12.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ef0c05b39d8701b4bb8196aeaf2594147d8369a1026b0b731eead41cb1df1884", size = 21749846, upload-time = "2026-08-31T22:17:39.517Z" },
1518
- { url = "https://files.pythonhosted.org/packages/ba/46/1e73455d1c4d8f9eafaac19879ba3fc5b8c0743d1b04d11ad1ac24e1a522/uv-0.12.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddaa3ceb3f877cce42e75084d10ebe53148163aaa4b1d16432c3b952e9c7466c", size = 22469076, upload-time = "2026-08-31T22:17:43.016Z" },
1519
- { url = "https://files.pythonhosted.org/packages/1d/a3/f11be2600c67345bfb694fd7c68dad97d4133d54306d298a2690b21da66b/uv-0.12.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7e9b112000bd5ff8e8c97922f03acede7d1f2385b3261bc6a15d6b18871e9a25", size = 23653340, upload-time = "2026-08-31T22:17:46.23Z" },
1520
- { url = "https://files.pythonhosted.org/packages/3f/f9/09e1762b40451227fc944551c7ea62d13f9b29e4965bf23adffeaba0f29a/uv-0.12.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a2f848916a6e5b3111e5d4c9e6ac66d9e38c561da4fa3a4ff51691e3c55974c", size = 23346672, upload-time = "2026-08-31T22:17:49.145Z" },
1521
- { url = "https://files.pythonhosted.org/packages/19/e7/6e1797aec65defdc02a81444c2d8964101876097c461993fa1e14641782e/uv-0.12.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d63d046051d33b36260146df5aef03e9166b30b4546e9b6e554be152b69f9f9", size = 20068890, upload-time = "2026-08-31T22:17:52.225Z" },
1522
- { url = "https://files.pythonhosted.org/packages/62/b5/2662d5da5158e4db444a9e050f8f1eaecea2832311e2da27ac53a5d15ebb/uv-0.12.8-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:7db4fb5d559bab30ea2310db9119cfd44bc438c09f24cb33d6b9a518fd671143", size = 19434317, upload-time = "2026-08-31T22:17:55.008Z" },
1523
- { url = "https://files.pythonhosted.org/packages/f8/0f/fe154c14adc7af8e659784a59f34c2c0dda6462c1427ce6ac5fff2652391/uv-0.12.8-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:dc5990c941a7c064f761f13ddfd9a0de66a0063676e228403e13709e0254094f", size = 22454547, upload-time = "2026-08-31T22:17:58.008Z" },
1524
- { url = "https://files.pythonhosted.org/packages/77/d9/8e3bd5733290cd8428db0995d1b9ef633760cf12ae6cdd437eddcae95d93/uv-0.12.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:5e30eb88618e8ac315b6511bcd64bf4b40aa0737912ce9c2eb988dc6aa59473b", size = 22575842, upload-time = "2026-08-31T22:18:00.959Z" },
1525
- { url = "https://files.pythonhosted.org/packages/06/3f/c6c2331189bb92f72487d85c94d87af2b888f2fa9e95c4d3163247c2f850/uv-0.12.8-py3-none-musllinux_1_1_i686.whl", hash = "sha256:8d3bd25b02887fd437fc8b308101c89b651ac43870579bb1a498d139b096582d", size = 21585514, upload-time = "2026-08-31T22:18:03.892Z" },
1526
- { url = "https://files.pythonhosted.org/packages/8d/fa/094b6154e4fb624b3aeeb313fb6888e439e3d65092cf5fcbb4ea1e362c17/uv-0.12.8-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:b8b589f36222ed73f070598d9cd68f7dc706cf5d670a8c469b648287a97a590a", size = 22850849, upload-time = "2026-08-31T22:18:06.887Z" },
1527
- { url = "https://files.pythonhosted.org/packages/e9/aa/c0755ee526db93453b2a5b4079f46ece9819c9e26918be36187888c856c6/uv-0.12.8-py3-none-win32.whl", hash = "sha256:a9ddf59627e0718db0e84b329005462f335fe707723813036322f00133d992fa", size = 19862492, upload-time = "2026-08-31T22:18:09.864Z" },
1528
- { url = "https://files.pythonhosted.org/packages/d6/f2/3564ae1d1d37b66dc64e6be52f5e5fe00cfce235b6f60d0b708c6caf7588/uv-0.12.8-py3-none-win_amd64.whl", hash = "sha256:53984d68cddd227e6433b70b510d4b47fe82e658f22f4a6ca416b4e373406393", size = 18084781, upload-time = "2026-08-31T22:18:12.77Z" },
1529
- { url = "https://files.pythonhosted.org/packages/c4/b4/724322de5a51ec8c59e3e8d90eeaa8f7c7d0b3b58390805908b87dfd57d7/uv-0.12.8-py3-none-win_arm64.whl", hash = "sha256:71763f479286a9e3285642fba8fca710aea9596d56e72bc247ecdf882e05ebc4", size = 19526211, upload-time = "2026-08-31T22:18:15.521Z" },
1508
+ version = "0.12.9"
1509
+ source = { registry = "https://pypi.org/simple" }
1510
+ sdist = { url = "https://files.pythonhosted.org/packages/d7/42/6d2be569fd280ebd982a54ee2e3d3754fedde5cf557fd7f858eb40d161cf/uv-0.12.9.tar.gz", hash = "sha256:55b8920edb2a29eeef31e246fb60d2145985e17f51ad14b26643575b82759302", size = 7134801, upload-time = "2026-09-01T21:57:47.305Z" }
1511
+ wheels = [
1512
+ { url = "https://files.pythonhosted.org/packages/73/4a/208c1ed443a5024bdb83cedf1e09b322e68ccc9f7e11d1f53bb1f0690174/uv-0.12.9-py3-none-linux_armv6l.whl", hash = "sha256:97062b2160a97fcfa45f10bbbe02a9c6ba4f5a50cf4e02c0f2babb80b47c1ea8", size = 22183326, upload-time = "2026-09-01T21:57:01.443Z" },
1513
+ { url = "https://files.pythonhosted.org/packages/7a/4f/7cc3d45951bb01089bf948d91a89c5b433789df8ceeba4f4cbcce0b1ef5c/uv-0.12.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0cb7e8a732d81f25d364de8d6ac69f4d00d56b581918ac242eeaeffb53977588", size = 20481767, upload-time = "2026-09-01T21:57:04.573Z" },
1514
+ { url = "https://files.pythonhosted.org/packages/5f/2b/28f22620d336069038e850ff662be979866c4944126d17a19bed738e3dc1/uv-0.12.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:0af988f800778913d36f9bf6905eb21c917dccc403bb364ad739bfd383acf491", size = 17338955, upload-time = "2026-09-01T21:57:06.884Z" },
1515
+ { url = "https://files.pythonhosted.org/packages/cc/29/649ff920dcd2373a819a4e0d9c1989ae770698e634c277e5a6fbbe19e9b4/uv-0.12.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:cce6e716df290b7f4a31f76ef39866e1dc006e947520a660459dea00b5d55234", size = 21598566, upload-time = "2026-09-01T21:57:09.223Z" },
1516
+ { url = "https://files.pythonhosted.org/packages/35/0d/0db7cfdd5bf11ce91c53558449f0e753d3cc578d9e94bd350c10b43f17ef/uv-0.12.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:00ff9f34c04055ebc3e1599ee459f5ae0d42c17cd6a1d8d029f0389e64a1419c", size = 21690729, upload-time = "2026-09-01T21:57:11.866Z" },
1517
+ { url = "https://files.pythonhosted.org/packages/69/bf/a63391a9d0f930f5ec23ff6a1daa9f7806a430fe41fb1e3bfb6cb10ef737/uv-0.12.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d4a1d4c067f9e2edf703e181a71db8fc9d7af5fcdbd0053103d0a1260e04ce6", size = 21716103, upload-time = "2026-09-01T21:57:14.407Z" },
1518
+ { url = "https://files.pythonhosted.org/packages/f5/4c/4b1fea7c22abac3297fa7fc222f3703c33ffe45aa7553fa9d8bd2b0b70bb/uv-0.12.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cafa85338ce1d27b7caa4aadc83ab21f350e2cd2185462fbb10a232b6e93152e", size = 22340621, upload-time = "2026-09-01T21:57:17.109Z" },
1519
+ { url = "https://files.pythonhosted.org/packages/25/57/7ac6fd2b97ea9f608b65bb9b47d686e5d64f8142b190d3c4590d74cf8524/uv-0.12.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbdcb9db8b44d80e3fcebc4205604d52ea145404efb179958560bb2a0157743a", size = 23586367, upload-time = "2026-09-01T21:57:19.494Z" },
1520
+ { url = "https://files.pythonhosted.org/packages/ff/87/3ef6bf32db7af74e7c230ef6c06c387d9be2363dfa63eb524065031c010a/uv-0.12.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cfb512d0e284e9fc42c3bbe9b701f430083fca23dbb67a20daeea897fb793069", size = 23279627, upload-time = "2026-09-01T21:57:22.146Z" },
1521
+ { url = "https://files.pythonhosted.org/packages/37/4b/cd04809c7ad5149faac55160925bd67aab43f803f6c01be1c32aec7d24d9/uv-0.12.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5badfd805fd88bf99b4b4f044f6e8f762f1892cab27477f4427bb473e93dd049", size = 20056367, upload-time = "2026-09-01T21:57:24.49Z" },
1522
+ { url = "https://files.pythonhosted.org/packages/29/6b/59cddb48c47124428d329ac3ed4ce91ccd8ab757ebeed3d482115d8b82ef/uv-0.12.9-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:c0f7e2b46e4c503f9497c0f41bba3570aa233685db814cd011225118f2d72b6a", size = 19383069, upload-time = "2026-09-01T21:57:27.019Z" },
1523
+ { url = "https://files.pythonhosted.org/packages/99/a6/22e4650cc9a2d018165fda5a53ca7addedc6d4f083ab7c833acc12fbe1e1/uv-0.12.9-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:445c572202243229043abaeab2fecb1b3691477c71c79feb07f638ce34febd39", size = 22392774, upload-time = "2026-09-01T21:57:29.323Z" },
1524
+ { url = "https://files.pythonhosted.org/packages/d4/37/68166b0acb7f8ff30316bf74c0e9840c7c6cbc86ee3e236382bb107d42db/uv-0.12.9-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:ce4ad780d3cefe5a8f965f3ddf942c01e71aa37e36f4fc431e72e4ee8ce5f378", size = 22517532, upload-time = "2026-09-01T21:57:31.758Z" },
1525
+ { url = "https://files.pythonhosted.org/packages/28/ac/8801d60db574aa15fba53944e0ee2e298605bf9076a5389f5e56ed51206a/uv-0.12.9-py3-none-musllinux_1_1_i686.whl", hash = "sha256:f639f8415f08918fb4ba2022bfd94d039e01c6c1eca28583125d439f7bd635fb", size = 21498480, upload-time = "2026-09-01T21:57:34.402Z" },
1526
+ { url = "https://files.pythonhosted.org/packages/ec/47/663bbc05f26c6c518c086da5df1e38fc5b2650fa6768cb36c6418d3f9559/uv-0.12.9-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:5f9325495fa0bf3e71e6b09f72e68b0d4a000067888b48a659536a8c7191a112", size = 22889848, upload-time = "2026-09-01T21:57:37.284Z" },
1527
+ { url = "https://files.pythonhosted.org/packages/58/ce/a4b1ae2a80264231a4dd0a070ffd0fe7f2bdf1d78e99d3c0c68ce315262b/uv-0.12.9-py3-none-win32.whl", hash = "sha256:f4ab95475562884fc8e72fbbf0c3da0e025d3bb25e7348544cd02b19bf77f3e1", size = 19858143, upload-time = "2026-09-01T21:57:39.571Z" },
1528
+ { url = "https://files.pythonhosted.org/packages/f5/b2/55c7fdbdacb0b110f92804cceea449dfcd5be4354ae1e997aca700145a65/uv-0.12.9-py3-none-win_amd64.whl", hash = "sha256:871e884c3329f69c12bb7426edb9e727745c3bb2db6d9e0538ce0e1bdfb64916", size = 17991226, upload-time = "2026-09-01T21:57:42.282Z" },
1529
+ { url = "https://files.pythonhosted.org/packages/85/67/cac985492192ff4a95a76b3854143062f1b3290aca3a404a812b7aadc9cf/uv-0.12.9-py3-none-win_arm64.whl", hash = "sha256:31fddf25d756a51fe33f7831ff697a122628dd3121c37c435c39c678428f937b", size = 19472343, upload-time = "2026-09-01T21:57:44.877Z" },
1530
1530
  ]
1531
1531
 
1532
1532
  [[package]]
File without changes
File without changes
File without changes