c2cciutils 1.7.0.dev174__py3-none-any.whl → 1.7.3.dev2__py3-none-any.whl

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.

Potentially problematic release.


This version of c2cciutils might be problematic. Click here for more details.

c2cciutils/env.py CHANGED
@@ -43,7 +43,6 @@ def print_environment_variables() -> None:
43
43
  """
44
44
  Print the environment variables.
45
45
  """
46
-
47
46
  for name, value in sorted(os.environ.items()):
48
47
  if name != "GITHUB_EVENT":
49
48
  print(f"{name}: {value}")
@@ -53,7 +52,6 @@ def print_github_event_file() -> None:
53
52
  """
54
53
  Print the GitHub event file.
55
54
  """
56
-
57
55
  if "GITHUB_EVENT_PATH" in os.environ:
58
56
  with open(os.environ["GITHUB_EVENT_PATH"], encoding="utf-8") as event:
59
57
  print(event.read())
@@ -63,7 +61,6 @@ def print_github_event_object() -> None:
63
61
  """
64
62
  Print the GitHub event object.
65
63
  """
66
-
67
64
  github_event = json.loads(os.environ["GITHUB_EVENT"])
68
65
  print(yaml.dump(github_event, indent=2))
69
66
 
@@ -72,7 +69,6 @@ def print_python_package_version() -> None:
72
69
  """
73
70
  Print the version of the Python packages.
74
71
  """
75
-
76
72
  subprocess.run(["python3", "-m", "pip", "freeze", "--all"]) # pylint: disable=subprocess-run-check
77
73
 
78
74
 
@@ -80,7 +76,6 @@ def print_node_package_version() -> None:
80
76
  """
81
77
  Print the version of the Python packages.
82
78
  """
83
-
84
79
  subprocess.run(["npm", "list", "--global"]) # pylint: disable=subprocess-run-check
85
80
 
86
81
 
@@ -88,13 +83,11 @@ def print_debian_package_version() -> None:
88
83
  """
89
84
  Print the version of the Python packages.
90
85
  """
91
-
92
86
  subprocess.run(["dpkg", "--list"]) # pylint: disable=subprocess-run-check
93
87
 
94
88
 
95
89
  def print_environment(config: c2cciutils.configuration.Configuration, prefix: str = "Print ") -> None:
96
90
  """Print the GitHub environment information."""
97
-
98
91
  functions = [
99
92
  (
100
93
  "version",
c2cciutils/lib/docker.py CHANGED
@@ -26,7 +26,6 @@ def get_dpkg_packages_versions(
26
26
  Where `debian_11` corresponds on last path element for 'Debian 11'
27
27
  from https://repology.org/repositories/statistics
28
28
  """
29
-
30
29
  dpkg_configuration = c2cciutils.get_config().get("dpkg", {})
31
30
 
32
31
  os_release = {}
@@ -127,7 +126,6 @@ def check_versions(
127
126
  The versions of packages in the image should be present in the config file.
128
127
  The versions of packages in the image shouldn't be older than the versions of the config file.
129
128
  """
130
-
131
129
  result, versions_image = get_dpkg_packages_versions(image, default_distribution, default_release)
132
130
  if not result:
133
131
  return False
c2cciutils/lib/oidc.py ADDED
@@ -0,0 +1,186 @@
1
+ """
2
+ Manage OpenID Connect (OIDC) token exchange for external services.
3
+
4
+ Inspired by
5
+ https://github.com/pypa/gh-action-pypi-publish/blob/unstable/v1/oidc-exchange.py
6
+ """
7
+
8
+ import base64
9
+ import json
10
+ import os
11
+ import sys
12
+ from typing import NoReturn
13
+
14
+ import id as oidc_id
15
+ import requests
16
+
17
+
18
+ class _OidcError(Exception):
19
+ pass
20
+
21
+
22
+ def _fatal(message: str) -> NoReturn:
23
+ # HACK: GitHub Actions' annotations don't work across multiple lines naively;
24
+ # translating `\n` into `%0A` (i.e., HTML percent-encoding) is known to work.
25
+ # See: https://github.com/actions/toolkit/issues/193
26
+ message = message.replace("\n", "%0A")
27
+ print(f"::error::Trusted publishing exchange failure: {message}", file=sys.stderr)
28
+ raise _OidcError(message)
29
+
30
+
31
+ def _debug(message: str) -> None:
32
+ print(f"::debug::{message.title()}", file=sys.stderr)
33
+
34
+
35
+ def _render_claims(token: str) -> str:
36
+ _, payload, _ = token.split(".", 2)
37
+
38
+ # urlsafe_b64decode needs padding; JWT payloads don't contain any.
39
+ payload += "=" * (4 - (len(payload) % 4))
40
+ claims = json.loads(base64.urlsafe_b64decode(payload))
41
+
42
+ return f"""
43
+ The claims rendered below are **for debugging purposes only**. You should **not**
44
+ use them to configure a trusted publisher unless they already match your expectations.
45
+
46
+ If a claim is not present in the claim set, then it is rendered as `MISSING`.
47
+
48
+ * `sub`: `{claims.get('sub', 'MISSING')}`
49
+ * `repository`: `{claims.get('repository', 'MISSING')}`
50
+ * `repository_owner`: `{claims.get('repository_owner', 'MISSING')}`
51
+ * `repository_owner_id`: `{claims.get('repository_owner_id', 'MISSING')}`
52
+ * `job_workflow_ref`: `{claims.get('job_workflow_ref', 'MISSING')}`
53
+ * `ref`: `{claims.get('ref')}`
54
+
55
+ See https://docs.pypi.org/trusted-publishers/troubleshooting/ for more help.
56
+ """
57
+
58
+
59
+ def _get_token(hostname: str) -> str:
60
+ # Indices are expected to support `https://{hostname}/_/oidc/audience`,
61
+ # which tells OIDC exchange clients which audience to use.
62
+ audience_resp = requests.get(f"https://{hostname}/_/oidc/audience", timeout=5)
63
+ audience_resp.raise_for_status()
64
+
65
+ _debug(f"selected trusted publishing exchange endpoint: https://{hostname}/_/oidc/mint-token")
66
+
67
+ try:
68
+ oidc_token = oidc_id.detect_credential(audience=audience_resp.json()["audience"])
69
+ except oidc_id.IdentityError as identity_error:
70
+ _fatal(
71
+ f"""
72
+ OpenID Connect token retrieval failed: {identity_error}
73
+
74
+ This generally indicates a workflow configuration error, such as insufficient
75
+ permissions. Make sure that your workflow has `id-token: write` configured
76
+ at the job level, e.g.:
77
+
78
+ ```yaml
79
+ permissions:
80
+ id-token: write
81
+ ```
82
+
83
+ Learn more at https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#adding-permissions-settings.
84
+ """
85
+ )
86
+
87
+ # Now we can do the actual token exchange.
88
+ mint_token_resp = requests.post(
89
+ f"https://{hostname}/_/oidc/mint-token",
90
+ json={"token": oidc_token},
91
+ timeout=5,
92
+ )
93
+
94
+ try:
95
+ mint_token_payload = mint_token_resp.json()
96
+ except requests.JSONDecodeError:
97
+ # Token exchange failure normally produces a JSON error response, but
98
+ # we might have hit a server error instead.
99
+ _fatal(
100
+ f"""
101
+ Token request failed: the index produced an unexpected
102
+ {mint_token_resp.status_code} response.
103
+
104
+ This strongly suggests a server configuration or downtime issue; wait
105
+ a few minutes and try again.
106
+
107
+ You can monitor PyPI's status here: https://status.python.org/
108
+ """ # noqa: E702
109
+ )
110
+
111
+ # On failure, the JSON response includes the list of errors that
112
+ # occurred during minting.
113
+ if not mint_token_resp.ok:
114
+ reasons = "\n".join(
115
+ f'* `{error["code"]}`: {error["description"]}'
116
+ for error in mint_token_payload["errors"] # noqa: W604
117
+ )
118
+
119
+ rendered_claims = _render_claims(oidc_token)
120
+
121
+ _fatal(
122
+ f"""
123
+ Token request failed: the server refused the request for the following reasons:
124
+
125
+ {reasons}
126
+
127
+ This generally indicates a trusted publisher configuration error, but could
128
+ also indicate an internal error on GitHub or PyPI's part.
129
+
130
+ {rendered_claims}
131
+ """
132
+ )
133
+
134
+ pypi_token = mint_token_payload.get("token")
135
+ if not isinstance(pypi_token, str):
136
+ _fatal(
137
+ """
138
+ Token response error: the index gave us an invalid response.
139
+
140
+ This strongly suggests a server configuration or downtime issue; wait
141
+ a few minutes and try again.
142
+ """
143
+ )
144
+
145
+ # Mask the newly minted PyPI token, so that we don't accidentally leak it in logs.
146
+ print(f"::add-mask::{pypi_token}")
147
+
148
+ # This final print will be captured by the subshell in `twine-upload.sh`.
149
+ return pypi_token
150
+
151
+
152
+ def pypi_login() -> None:
153
+ """
154
+ Connect to PyPI using OpenID Connect and mint a token for the user.
155
+
156
+ See Also
157
+ - https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect
158
+ - https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-pypi
159
+ """
160
+ pypirc_filename = os.path.expanduser("~/.pypirc")
161
+
162
+ if os.path.exists(pypirc_filename):
163
+ print(f"::info::{pypirc_filename} already exists; consider as already logged in.") # noqa: E702
164
+ return
165
+
166
+ if "ACTIONS_ID_TOKEN_REQUEST_TOKEN" not in os.environ:
167
+ print(
168
+ """::error::Not available, you probably miss the permission `id-token: write`.
169
+ ```
170
+ permissions:
171
+ id-token: write
172
+ ```
173
+ See also: https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect"""
174
+ )
175
+ return
176
+
177
+ try:
178
+ token = _get_token("pypi.org")
179
+ with open(pypirc_filename, "w", encoding="utf-8") as pypirc_file:
180
+ pypirc_file.write("[pypi]\n")
181
+ pypirc_file.write("repository: https://upload.pypi.org/legacy/\n")
182
+ pypirc_file.write("username: __token__\n")
183
+ pypirc_file.write(f"password: {token}\n")
184
+ except _OidcError:
185
+ # Already visible in logs; no need to re-raise.
186
+ return
@@ -8,62 +8,83 @@
8
8
  "name": "c2ccicheck",
9
9
  "version": "1.0.0",
10
10
  "dependencies": {
11
- "snyk": "1.1283.0"
11
+ "snyk": "1.1293.1"
12
12
  }
13
13
  },
14
14
  "node_modules/@sentry-internal/tracing": {
15
- "version": "7.104.0",
16
- "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.104.0.tgz",
17
- "integrity": "sha512-2z7OijM1J5ndJUiJJElC3iH9qb/Eb8eYm2v8oJhM8WVdc5uCKfrQuYHNgGOnmY2FOCfEUlTmMQGpDw7DJ67L5w==",
15
+ "version": "7.119.0",
16
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.119.0.tgz",
17
+ "integrity": "sha512-oKdFJnn+56f0DHUADlL8o9l8jTib3VDLbWQBVkjD9EprxfaCwt2m8L5ACRBdQ8hmpxCEo4I8/6traZ7qAdBUqA==",
18
+ "license": "MIT",
18
19
  "dependencies": {
19
- "@sentry/core": "7.104.0",
20
- "@sentry/types": "7.104.0",
21
- "@sentry/utils": "7.104.0"
20
+ "@sentry/core": "7.119.0",
21
+ "@sentry/types": "7.119.0",
22
+ "@sentry/utils": "7.119.0"
22
23
  },
23
24
  "engines": {
24
25
  "node": ">=8"
25
26
  }
26
27
  },
27
28
  "node_modules/@sentry/core": {
28
- "version": "7.104.0",
29
- "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.104.0.tgz",
30
- "integrity": "sha512-XPndD6IGQGd07/EntvYVzOWQUo/Gd7L3DwYFeEKeBv6ByWjbBNmVZFRhU0GPPsCHKyW9yMU9OO9diLSS4ijsRg==",
29
+ "version": "7.119.0",
30
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.0.tgz",
31
+ "integrity": "sha512-CS2kUv9rAJJEjiRat6wle3JATHypB0SyD7pt4cpX5y0dN5dZ1JrF57oLHRMnga9fxRivydHz7tMTuBhSSwhzjw==",
32
+ "license": "MIT",
31
33
  "dependencies": {
32
- "@sentry/types": "7.104.0",
33
- "@sentry/utils": "7.104.0"
34
+ "@sentry/types": "7.119.0",
35
+ "@sentry/utils": "7.119.0"
36
+ },
37
+ "engines": {
38
+ "node": ">=8"
39
+ }
40
+ },
41
+ "node_modules/@sentry/integrations": {
42
+ "version": "7.119.0",
43
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.119.0.tgz",
44
+ "integrity": "sha512-OHShvtsRW0A+ZL/ZbMnMqDEtJddPasndjq+1aQXw40mN+zeP7At/V1yPZyFaURy86iX7Ucxw5BtmzuNy7hLyTA==",
45
+ "license": "MIT",
46
+ "dependencies": {
47
+ "@sentry/core": "7.119.0",
48
+ "@sentry/types": "7.119.0",
49
+ "@sentry/utils": "7.119.0",
50
+ "localforage": "^1.8.1"
34
51
  },
35
52
  "engines": {
36
53
  "node": ">=8"
37
54
  }
38
55
  },
39
56
  "node_modules/@sentry/node": {
40
- "version": "7.104.0",
41
- "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.104.0.tgz",
42
- "integrity": "sha512-Ixt8qg6IV8gywi4+H1cAtQeglAAww2nwLHybCxAvnu3czdF8w7ifF+o5BY1FmO5UYVCAfr8vEb+XG4CuRrFb7g==",
57
+ "version": "7.119.0",
58
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.119.0.tgz",
59
+ "integrity": "sha512-9PFzN8xS6U0oZCflpVxS2SSIsHkCaj7qYBlsvHj4CTGWfao9ImwrU6+smy4qoG6oxwPfoVb5pOOMb4WpWOvXcQ==",
60
+ "license": "MIT",
43
61
  "dependencies": {
44
- "@sentry-internal/tracing": "7.104.0",
45
- "@sentry/core": "7.104.0",
46
- "@sentry/types": "7.104.0",
47
- "@sentry/utils": "7.104.0"
62
+ "@sentry-internal/tracing": "7.119.0",
63
+ "@sentry/core": "7.119.0",
64
+ "@sentry/integrations": "7.119.0",
65
+ "@sentry/types": "7.119.0",
66
+ "@sentry/utils": "7.119.0"
48
67
  },
49
68
  "engines": {
50
69
  "node": ">=8"
51
70
  }
52
71
  },
53
72
  "node_modules/@sentry/types": {
54
- "version": "7.104.0",
55
- "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.104.0.tgz",
56
- "integrity": "sha512-5bs0xe0+GZR4QBm9Nrqw59o0sv3kBtCosrZDVxBru/dQbrfnB+/kVorvuM0rV3+coNITTKcKDegSZmK1d2uOGQ==",
73
+ "version": "7.119.0",
74
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.0.tgz",
75
+ "integrity": "sha512-27qQbutDBPKGbuJHROxhIWc1i0HJaGLA90tjMu11wt0E4UNxXRX+UQl4Twu68v4EV3CPvQcEpQfgsViYcXmq+w==",
76
+ "license": "MIT",
57
77
  "engines": {
58
78
  "node": ">=8"
59
79
  }
60
80
  },
61
81
  "node_modules/@sentry/utils": {
62
- "version": "7.104.0",
63
- "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.104.0.tgz",
64
- "integrity": "sha512-ZVg+xZirI9DlOi0NegNVocswdh/8p6QkzlQzDQY2LP2CC6JQdmwi64o0S4rPH4YIHNKQJTpIjduoxeKgd1EO5g==",
82
+ "version": "7.119.0",
83
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.0.tgz",
84
+ "integrity": "sha512-ZwyXexWn2ZIe2bBoYnXJVPc2esCSbKpdc6+0WJa8eutXfHq3FRKg4ohkfCBpfxljQGEfP1+kfin945lA21Ka+A==",
85
+ "license": "MIT",
65
86
  "dependencies": {
66
- "@sentry/types": "7.104.0"
87
+ "@sentry/types": "7.119.0"
67
88
  },
68
89
  "engines": {
69
90
  "node": ">=8"
@@ -72,12 +93,14 @@
72
93
  "node_modules/boolean": {
73
94
  "version": "3.2.0",
74
95
  "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
75
- "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="
96
+ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==",
97
+ "license": "MIT"
76
98
  },
77
99
  "node_modules/define-data-property": {
78
100
  "version": "1.1.4",
79
101
  "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
80
102
  "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
103
+ "license": "MIT",
81
104
  "dependencies": {
82
105
  "es-define-property": "^1.0.0",
83
106
  "es-errors": "^1.3.0",
@@ -94,6 +117,7 @@
94
117
  "version": "1.2.1",
95
118
  "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
96
119
  "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
120
+ "license": "MIT",
97
121
  "dependencies": {
98
122
  "define-data-property": "^1.0.1",
99
123
  "has-property-descriptors": "^1.0.0",
@@ -109,12 +133,14 @@
109
133
  "node_modules/detect-node": {
110
134
  "version": "2.1.0",
111
135
  "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
112
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
136
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
137
+ "license": "MIT"
113
138
  },
114
139
  "node_modules/es-define-property": {
115
140
  "version": "1.0.0",
116
141
  "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
117
142
  "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
143
+ "license": "MIT",
118
144
  "dependencies": {
119
145
  "get-intrinsic": "^1.2.4"
120
146
  },
@@ -126,6 +152,7 @@
126
152
  "version": "1.3.0",
127
153
  "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
128
154
  "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
155
+ "license": "MIT",
129
156
  "engines": {
130
157
  "node": ">= 0.4"
131
158
  }
@@ -133,12 +160,14 @@
133
160
  "node_modules/es6-error": {
134
161
  "version": "4.1.1",
135
162
  "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
136
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="
163
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
164
+ "license": "MIT"
137
165
  },
138
166
  "node_modules/escape-string-regexp": {
139
167
  "version": "4.0.0",
140
168
  "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
141
169
  "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
170
+ "license": "MIT",
142
171
  "engines": {
143
172
  "node": ">=10"
144
173
  },
@@ -150,6 +179,7 @@
150
179
  "version": "1.1.2",
151
180
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
152
181
  "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
182
+ "license": "MIT",
153
183
  "funding": {
154
184
  "url": "https://github.com/sponsors/ljharb"
155
185
  }
@@ -158,6 +188,7 @@
158
188
  "version": "1.2.4",
159
189
  "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
160
190
  "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
191
+ "license": "MIT",
161
192
  "dependencies": {
162
193
  "es-errors": "^1.3.0",
163
194
  "function-bind": "^1.1.2",
@@ -176,6 +207,7 @@
176
207
  "version": "3.0.0",
177
208
  "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
178
209
  "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==",
210
+ "license": "BSD-3-Clause",
179
211
  "dependencies": {
180
212
  "boolean": "^3.0.1",
181
213
  "es6-error": "^4.1.1",
@@ -189,11 +221,13 @@
189
221
  }
190
222
  },
191
223
  "node_modules/globalthis": {
192
- "version": "1.0.3",
193
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
194
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
224
+ "version": "1.0.4",
225
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
226
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
227
+ "license": "MIT",
195
228
  "dependencies": {
196
- "define-properties": "^1.1.3"
229
+ "define-properties": "^1.2.1",
230
+ "gopd": "^1.0.1"
197
231
  },
198
232
  "engines": {
199
233
  "node": ">= 0.4"
@@ -206,6 +240,7 @@
206
240
  "version": "1.0.1",
207
241
  "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
208
242
  "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
243
+ "license": "MIT",
209
244
  "dependencies": {
210
245
  "get-intrinsic": "^1.1.3"
211
246
  },
@@ -217,6 +252,7 @@
217
252
  "version": "1.0.2",
218
253
  "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
219
254
  "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
255
+ "license": "MIT",
220
256
  "dependencies": {
221
257
  "es-define-property": "^1.0.0"
222
258
  },
@@ -228,6 +264,7 @@
228
264
  "version": "1.0.3",
229
265
  "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
230
266
  "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
267
+ "license": "MIT",
231
268
  "engines": {
232
269
  "node": ">= 0.4"
233
270
  },
@@ -239,6 +276,7 @@
239
276
  "version": "1.0.3",
240
277
  "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
241
278
  "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
279
+ "license": "MIT",
242
280
  "engines": {
243
281
  "node": ">= 0.4"
244
282
  },
@@ -247,9 +285,10 @@
247
285
  }
248
286
  },
249
287
  "node_modules/hasown": {
250
- "version": "2.0.1",
251
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
252
- "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
288
+ "version": "2.0.2",
289
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
290
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
291
+ "license": "MIT",
253
292
  "dependencies": {
254
293
  "function-bind": "^1.1.2"
255
294
  },
@@ -257,26 +296,41 @@
257
296
  "node": ">= 0.4"
258
297
  }
259
298
  },
299
+ "node_modules/immediate": {
300
+ "version": "3.0.6",
301
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
302
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
303
+ "license": "MIT"
304
+ },
260
305
  "node_modules/json-stringify-safe": {
261
306
  "version": "5.0.1",
262
307
  "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
263
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
308
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
309
+ "license": "ISC"
310
+ },
311
+ "node_modules/lie": {
312
+ "version": "3.1.1",
313
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
314
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
315
+ "license": "MIT",
316
+ "dependencies": {
317
+ "immediate": "~3.0.5"
318
+ }
264
319
  },
265
- "node_modules/lru-cache": {
266
- "version": "6.0.0",
267
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
268
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
320
+ "node_modules/localforage": {
321
+ "version": "1.10.0",
322
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
323
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
324
+ "license": "Apache-2.0",
269
325
  "dependencies": {
270
- "yallist": "^4.0.0"
271
- },
272
- "engines": {
273
- "node": ">=10"
326
+ "lie": "3.1.1"
274
327
  }
275
328
  },
276
329
  "node_modules/matcher": {
277
330
  "version": "3.0.0",
278
331
  "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
279
332
  "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
333
+ "license": "MIT",
280
334
  "dependencies": {
281
335
  "escape-string-regexp": "^4.0.0"
282
336
  },
@@ -288,6 +342,7 @@
288
342
  "version": "1.1.1",
289
343
  "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
290
344
  "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
345
+ "license": "MIT",
291
346
  "engines": {
292
347
  "node": ">= 0.4"
293
348
  }
@@ -296,6 +351,7 @@
296
351
  "version": "2.15.4",
297
352
  "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
298
353
  "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
354
+ "license": "BSD-3-Clause",
299
355
  "dependencies": {
300
356
  "boolean": "^3.0.1",
301
357
  "detect-node": "^2.0.4",
@@ -309,12 +365,10 @@
309
365
  }
310
366
  },
311
367
  "node_modules/semver": {
312
- "version": "7.6.0",
313
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
314
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
315
- "dependencies": {
316
- "lru-cache": "^6.0.0"
317
- },
368
+ "version": "7.6.3",
369
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
370
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
371
+ "license": "ISC",
318
372
  "bin": {
319
373
  "semver": "bin/semver.js"
320
374
  },
@@ -325,12 +379,14 @@
325
379
  "node_modules/semver-compare": {
326
380
  "version": "1.0.0",
327
381
  "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
328
- "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow=="
382
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
383
+ "license": "MIT"
329
384
  },
330
385
  "node_modules/serialize-error": {
331
386
  "version": "7.0.1",
332
387
  "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
333
388
  "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
389
+ "license": "MIT",
334
390
  "dependencies": {
335
391
  "type-fest": "^0.13.1"
336
392
  },
@@ -342,10 +398,11 @@
342
398
  }
343
399
  },
344
400
  "node_modules/snyk": {
345
- "version": "1.1283.0",
346
- "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1283.0.tgz",
347
- "integrity": "sha512-uxdxDDK0hz52H6oqrMj0sfKuB4x1k4ErrlGlrqXB/CADxN4nMg7RvDJqs7st+425YoM+bkKaM04UlD2rHsUqBQ==",
401
+ "version": "1.1293.1",
402
+ "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1293.1.tgz",
403
+ "integrity": "sha512-CnbNrsEUMGfajfJ5/03BIgx1ixWKr9Kk+9xDw6sZqKy4K5K01DkyUp/V+WjbCfjr0li9+aE7u70s276KEOuiNA==",
348
404
  "hasInstallScript": true,
405
+ "license": "Apache-2.0",
349
406
  "dependencies": {
350
407
  "@sentry/node": "^7.36.0",
351
408
  "global-agent": "^3.0.0"
@@ -360,23 +417,20 @@
360
417
  "node_modules/sprintf-js": {
361
418
  "version": "1.1.3",
362
419
  "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
363
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
420
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
421
+ "license": "BSD-3-Clause"
364
422
  },
365
423
  "node_modules/type-fest": {
366
424
  "version": "0.13.1",
367
425
  "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
368
426
  "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
427
+ "license": "(MIT OR CC0-1.0)",
369
428
  "engines": {
370
429
  "node": ">=10"
371
430
  },
372
431
  "funding": {
373
432
  "url": "https://github.com/sponsors/sindresorhus"
374
433
  }
375
- },
376
- "node_modules/yallist": {
377
- "version": "4.0.0",
378
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
379
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
380
434
  }
381
435
  }
382
436
  }
c2cciutils/package.json CHANGED
@@ -4,6 +4,6 @@
4
4
  "description": "",
5
5
  "author": "",
6
6
  "dependencies": {
7
- "snyk": "1.1283.0"
7
+ "snyk": "1.1293.1"
8
8
  }
9
9
  }