socketsecurity 2.2.85__tar.gz → 2.2.86__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 (125) hide show
  1. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/PKG-INFO +2 -2
  2. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/pyproject.toml +2 -2
  3. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/__init__.py +1 -1
  4. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/classes.py +4 -2
  5. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/messages.py +20 -5
  6. socketsecurity-2.2.86/tests/unit/test_dependency_overview.py +67 -0
  7. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/uv.lock +5 -5
  8. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/CODEOWNERS +0 -0
  9. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/PULL_REQUEST_TEMPLATE/bug-fix.md +0 -0
  10. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
  11. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/PULL_REQUEST_TEMPLATE/improvement.md +0 -0
  12. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  13. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/workflows/docker-stable.yml +0 -0
  14. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/workflows/e2e-test.yml +0 -0
  15. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/workflows/pr-preview.yml +0 -0
  16. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/workflows/python-tests.yml +0 -0
  17. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/workflows/release.yml +0 -0
  18. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/workflows/version-check.yml +0 -0
  19. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.github/zizmor.yml +0 -0
  20. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.gitignore +0 -0
  21. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.hooks/sync_version.py +0 -0
  22. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.pre-commit-config.yaml +0 -0
  23. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/.python-version +0 -0
  24. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/CHANGELOG.md +0 -0
  25. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/Dockerfile +0 -0
  26. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/LICENSE +0 -0
  27. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/Makefile +0 -0
  28. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/README.md +0 -0
  29. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/docs/ci-cd.md +0 -0
  30. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/docs/cli-reference.md +0 -0
  31. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/docs/development.md +0 -0
  32. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/docs/troubleshooting.md +0 -0
  33. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/examples/config/sarif-dashboard-parity.json +0 -0
  34. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/examples/config/sarif-dashboard-parity.toml +0 -0
  35. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/examples/config/sarif-diff-ci-cd.json +0 -0
  36. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/examples/config/sarif-diff-ci-cd.toml +0 -0
  37. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/examples/config/sarif-instance-detail.json +0 -0
  38. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/examples/config/sarif-instance-detail.toml +0 -0
  39. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/instructions/gitlab-commit-status/uat.md +0 -0
  40. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/pytest.ini +0 -0
  41. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/scripts/build_container.sh +0 -0
  42. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/scripts/build_container_flexible.sh +0 -0
  43. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/scripts/deploy-test-docker.sh +0 -0
  44. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/scripts/deploy-test-pypi.sh +0 -0
  45. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/scripts/docker-entrypoint.sh +0 -0
  46. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/scripts/run.sh +0 -0
  47. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/session.md +0 -0
  48. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socket.yml +0 -0
  49. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/config.py +0 -0
  50. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/__init__.py +0 -0
  51. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/alert_selection.py +0 -0
  52. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/cli_client.py +0 -0
  53. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/exceptions.py +0 -0
  54. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/git_interface.py +0 -0
  55. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/helper/__init__.py +0 -0
  56. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/helper/socket_facts_loader.py +0 -0
  57. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/lazy_file_loader.py +0 -0
  58. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/logging.py +0 -0
  59. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/resource_utils.py +0 -0
  60. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/scm/__init__.py +0 -0
  61. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/scm/base.py +0 -0
  62. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/scm/client.py +0 -0
  63. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/scm/github.py +0 -0
  64. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/scm/gitlab.py +0 -0
  65. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/scm_comments.py +0 -0
  66. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/socket_config.py +0 -0
  67. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/tools/reachability.py +0 -0
  68. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/core/utils.py +0 -0
  69. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/output.py +0 -0
  70. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/__init__.py +0 -0
  71. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/base.py +0 -0
  72. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/formatters/__init__.py +0 -0
  73. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/formatters/slack.py +0 -0
  74. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/jira.py +0 -0
  75. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/manager.py +0 -0
  76. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/slack.py +0 -0
  77. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/teams.py +0 -0
  78. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/plugins/webhook.py +0 -0
  79. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/socketsecurity/socketcli.py +0 -0
  80. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/__init__.py +0 -0
  81. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/core/conftest.py +0 -0
  82. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/core/create_diff_input.json +0 -0
  83. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/core/test_diff_alerts.py +0 -0
  84. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/core/test_diff_generation.py +0 -0
  85. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/core/test_has_manifest_files.py +0 -0
  86. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/core/test_package_and_alerts.py +0 -0
  87. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/core/test_sdk_methods.py +0 -0
  88. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/core/test_supporting_methods.py +0 -0
  89. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/fullscans/create_response.json +0 -0
  90. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/fullscans/diff/stream_diff.json +0 -0
  91. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/fullscans/diff/stream_diff_full.json +0 -0
  92. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/fullscans/head_scan/metadata.json +0 -0
  93. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/fullscans/head_scan/stream_scan.json +0 -0
  94. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/fullscans/head_scan/stream_scan_full.json +0 -0
  95. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/fullscans/new_scan/metadata.json +0 -0
  96. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/fullscans/new_scan/stream_scan.json +0 -0
  97. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/repos/repo_info_error.json +0 -0
  98. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/repos/repo_info_no_head.json +0 -0
  99. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/repos/repo_info_success.json +0 -0
  100. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/data/settings/security-policy.json +0 -0
  101. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/e2e/fixtures/simple-npm/index.js +0 -0
  102. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/e2e/fixtures/simple-npm/package.json +0 -0
  103. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/e2e/fixtures/simple-pypi/requirements.txt +0 -0
  104. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/e2e/validate-gitlab.sh +0 -0
  105. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/e2e/validate-json.sh +0 -0
  106. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/e2e/validate-reachability.sh +0 -0
  107. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/e2e/validate-sarif.sh +0 -0
  108. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/e2e/validate-scan.sh +0 -0
  109. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/__init__.py +0 -0
  110. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_alert_selection.py +0 -0
  111. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_cli_config.py +0 -0
  112. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_client.py +0 -0
  113. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_config.py +0 -0
  114. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_disable_ignore.py +0 -0
  115. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_gitlab_auth.py +0 -0
  116. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_gitlab_auth_fallback.py +0 -0
  117. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_gitlab_commit_status.py +0 -0
  118. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_gitlab_format.py +0 -0
  119. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_ignore_telemetry_filtering.py +0 -0
  120. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_output.py +0 -0
  121. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/tests/unit/test_slack_plugin.py +0 -0
  122. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/workflows/bitbucket-pipelines.yml +0 -0
  123. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/workflows/buildkite.yml +0 -0
  124. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/workflows/github-actions.yml +0 -0
  125. {socketsecurity-2.2.85 → socketsecurity-2.2.86}/workflows/gitlab-ci.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: socketsecurity
3
- Version: 2.2.85
3
+ Version: 2.2.86
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>
@@ -41,7 +41,7 @@ Requires-Dist: packaging
41
41
  Requires-Dist: prettytable
42
42
  Requires-Dist: python-dotenv
43
43
  Requires-Dist: requests
44
- Requires-Dist: socketdev<4.0.0,>=3.0.32
44
+ Requires-Dist: socketdev<4.0.0,>=3.0.33
45
45
  Provides-Extra: dev
46
46
  Requires-Dist: hatch; extra == 'dev'
47
47
  Requires-Dist: pre-commit; extra == 'dev'
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "socketsecurity"
9
- version = "2.2.85"
9
+ version = "2.2.86"
10
10
  requires-python = ">= 3.11"
11
11
  license = {"file" = "LICENSE"}
12
12
  dependencies = [
@@ -16,7 +16,7 @@ dependencies = [
16
16
  'GitPython',
17
17
  'packaging',
18
18
  'python-dotenv',
19
- "socketdev>=3.0.32,<4.0.0",
19
+ "socketdev>=3.0.33,<4.0.0",
20
20
  "bs4>=0.0.2",
21
21
  "markdown>=3.10",
22
22
  ]
@@ -1,3 +1,3 @@
1
1
  __author__ = 'socket.dev'
2
- __version__ = '2.2.85'
2
+ __version__ = '2.2.86'
3
3
  USER_AGENT = f'SocketPythonCLI/{__version__}'
@@ -207,7 +207,7 @@ class Package():
207
207
  name=data["name"],
208
208
  version=data["version"],
209
209
  type=data["type"],
210
- score=data.get("score", data.get("scores", {})),
210
+ score=data.get("score") or data.get("scores") or {},
211
211
  alerts=data.get("alerts", []),
212
212
  author=data.get("author", []),
213
213
  size=data.get("size"),
@@ -236,7 +236,7 @@ class Package():
236
236
  name=data["name"],
237
237
  version=data["version"],
238
238
  type=data["type"],
239
- score=data.get("score", data.get("scores", {})),
239
+ score=data.get("score") or data.get("scores") or {},
240
240
  alerts=data.get("alerts", []),
241
241
  author=data.get("author", []),
242
242
  size=data.get("size"),
@@ -448,6 +448,8 @@ class Purl:
448
448
  self.capabilities = []
449
449
  if not hasattr(self, "is_new"):
450
450
  self.is_new = False
451
+ if not hasattr(self, "scores") or self.scores is None:
452
+ self.scores = {}
451
453
  self.author_url = Purl.generate_author_data(self.author, self.ecosystem)
452
454
 
453
455
  @staticmethod
@@ -1179,12 +1179,27 @@ class Messages:
1179
1179
  score_percent = int(score * 100) # Convert to integer percentage
1180
1180
  return f"[![{score_percent}](https://github-app-statics.socket.dev/score-{score_percent}.svg)]({added.url})"
1181
1181
 
1182
+ def get_score_for_badge(score_name: str) -> float:
1183
+ scores = getattr(added, "scores", None)
1184
+ if isinstance(scores, dict):
1185
+ raw_score = scores.get(score_name)
1186
+ else:
1187
+ raw_score = getattr(scores, score_name, None) if scores is not None else None
1188
+
1189
+ if raw_score is None:
1190
+ return 1.0
1191
+
1192
+ score = float(raw_score)
1193
+ if score > 1:
1194
+ score = score / 100
1195
+ return max(0.0, min(score, 1.0))
1196
+
1182
1197
  # Generate badges for each score type
1183
- supply_chain_risk_badge = score_to_badge(added.scores.get("supplyChain", 100))
1184
- vulnerability_badge = score_to_badge(added.scores.get("vulnerability", 100))
1185
- quality_badge = score_to_badge(added.scores.get("quality", 100))
1186
- maintenance_badge = score_to_badge(added.scores.get("maintenance", 100))
1187
- license_badge = score_to_badge(added.scores.get("license", 100))
1198
+ supply_chain_risk_badge = score_to_badge(get_score_for_badge("supplyChain"))
1199
+ vulnerability_badge = score_to_badge(get_score_for_badge("vulnerability"))
1200
+ quality_badge = score_to_badge(get_score_for_badge("quality"))
1201
+ maintenance_badge = score_to_badge(get_score_for_badge("maintenance"))
1202
+ license_badge = score_to_badge(get_score_for_badge("license"))
1188
1203
 
1189
1204
  # Add the row for this package
1190
1205
  row = [
@@ -0,0 +1,67 @@
1
+ from socketsecurity.core.classes import Diff, Package, Purl
2
+ from socketsecurity.core.messages import Messages
3
+
4
+
5
+ def _make_purl(name: str, scores) -> Purl:
6
+ return Purl(
7
+ id=f"pkg:npm/{name}@1.0.0",
8
+ name=name,
9
+ version="1.0.0",
10
+ ecosystem="npm",
11
+ direct=True,
12
+ introduced_by=[("direct", "package.json")],
13
+ author=["test-author"],
14
+ size=1000,
15
+ transitives=0,
16
+ url=f"https://socket.dev/npm/package/{name}/overview/1.0.0",
17
+ purl=f"pkg:npm/{name}@1.0.0",
18
+ scores=scores,
19
+ )
20
+
21
+
22
+ def test_package_from_diff_artifact_normalizes_null_score():
23
+ package = Package.from_diff_artifact(
24
+ {
25
+ "id": "pkg:npm/example@1.0.0",
26
+ "name": "example",
27
+ "version": "1.0.0",
28
+ "type": "npm",
29
+ "diffType": "added",
30
+ "score": None,
31
+ "alerts": [],
32
+ "author": [],
33
+ "topLevelAncestors": [],
34
+ "direct": True,
35
+ "manifestFiles": [],
36
+ }
37
+ )
38
+
39
+ assert package.score == {}
40
+
41
+
42
+ def test_dependency_overview_template_defaults_missing_or_null_scores(tmp_path, monkeypatch):
43
+ monkeypatch.chdir(tmp_path)
44
+
45
+ diff = Diff(
46
+ id="test-diff",
47
+ diff_url="https://socket.dev/test-diff",
48
+ new_packages=[
49
+ _make_purl("missing-scores", None),
50
+ _make_purl(
51
+ "partial-scores",
52
+ {
53
+ "supplyChain": 0.42,
54
+ "vulnerability": None,
55
+ },
56
+ ),
57
+ ],
58
+ removed_packages=[],
59
+ new_alerts=[],
60
+ )
61
+
62
+ comment = Messages.dependency_overview_template(diff)
63
+
64
+ assert "Socket Security: Dependency Overview" in comment
65
+ assert "score-42.svg" in comment
66
+ assert "score-100.svg" in comment
67
+ assert "score-10000.svg" not in comment
@@ -1155,20 +1155,20 @@ wheels = [
1155
1155
 
1156
1156
  [[package]]
1157
1157
  name = "socketdev"
1158
- version = "3.0.32"
1158
+ version = "3.0.33"
1159
1159
  source = { registry = "https://pypi.org/simple" }
1160
1160
  dependencies = [
1161
1161
  { name = "requests" },
1162
1162
  { name = "typing-extensions" },
1163
1163
  ]
1164
- sdist = { url = "https://files.pythonhosted.org/packages/06/03/95800661041781428cc753aea65d8e1bc44d108f4be29c6a0815d18fcdd3/socketdev-3.0.32.tar.gz", hash = "sha256:89167632834dcf222877d599e68ed87a3a08e7abe171759f54490712ea8aa89a", size = 170997, upload-time = "2026-02-27T17:59:58.554Z" }
1164
+ sdist = { url = "https://files.pythonhosted.org/packages/19/8c/b4608637bda66dd32cf9a421cee66e93d429f7445c8bd709032772e0f4ca/socketdev-3.0.33.tar.gz", hash = "sha256:704d672649f27390733cef4cbdad9ce8dc994794a4af56f77d2f2dc815bfe762", size = 172013, upload-time = "2026-04-24T17:02:48.616Z" }
1165
1165
  wheels = [
1166
- { url = "https://files.pythonhosted.org/packages/81/5c/58fa24c442d2bb8b8cab926c89cd4fb2613f73a35556e385d9bdb00abb72/socketdev-3.0.32-py3-none-any.whl", hash = "sha256:6a22356dadf4741eb731593b1d5ed4d708769f945998723bbfd1b613b8c968cc", size = 66868, upload-time = "2026-02-27T17:59:56.896Z" },
1166
+ { url = "https://files.pythonhosted.org/packages/07/78/4408ba21724ce0648e39bd17854b19186ab77f6baedbb8b98721d6dd287a/socketdev-3.0.33-py3-none-any.whl", hash = "sha256:642eebd0b01b884c6aba8b5264e749ff71310147104e8e8de02ab24e4eab5837", size = 66975, upload-time = "2026-04-24T17:02:46.439Z" },
1167
1167
  ]
1168
1168
 
1169
1169
  [[package]]
1170
1170
  name = "socketsecurity"
1171
- version = "2.2.84"
1171
+ version = "2.2.86"
1172
1172
  source = { editable = "." }
1173
1173
  dependencies = [
1174
1174
  { name = "bs4" },
@@ -1221,7 +1221,7 @@ requires-dist = [
1221
1221
  { name = "python-dotenv" },
1222
1222
  { name = "requests" },
1223
1223
  { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.3.0" },
1224
- { name = "socketdev", specifier = ">=3.0.32,<4.0.0" },
1224
+ { name = "socketdev", specifier = ">=3.0.33,<4.0.0" },
1225
1225
  { name = "twine", marker = "extra == 'dev'" },
1226
1226
  { name = "uv", marker = "extra == 'dev'", specifier = ">=0.1.0" },
1227
1227
  ]
File without changes