hyper-sdk 2.11.1__tar.gz → 2.12.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/PKG-INFO +26 -1
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/README.md +25 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/kasada_input.py +22 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/session.py +14 -1
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/session_async.py +14 -1
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk.egg-info/PKG-INFO +26 -1
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/pyproject.toml +1 -1
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/LICENSE +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/__init__.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/akamai/__init__.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/akamai/pixel.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/akamai/script_path.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/akamai/sec_cpt.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/akamai/stop_signal.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/akamai_input.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/datadome/__init__.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/datadome/parse.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/datadome_input.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/incapsula/__init__.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/incapsula/dynamic.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/incapsula/utmvc.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/incapsula_input.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/kasada/__init__.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/kasada/parse.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/shared.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk/trustdecision_input.py +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk.egg-info/SOURCES.txt +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk.egg-info/dependency_links.txt +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk.egg-info/requires.txt +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/hyper_sdk.egg-info/top_level.txt +0 -0
- {hyper_sdk-2.11.1 → hyper_sdk-2.12.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hyper_sdk
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.12.0
|
|
4
4
|
Summary: Hyper Solutions Python SDK
|
|
5
5
|
License: MIT License
|
|
6
6
|
|
|
@@ -280,6 +280,31 @@ pow_payload = session.generate_kasada_pow(KasadaPowInput(
|
|
|
280
280
|
))
|
|
281
281
|
```
|
|
282
282
|
|
|
283
|
+
## 🤖 Vercel BotID
|
|
284
|
+
|
|
285
|
+
Bypass **Vercel BotID** protection by generating the required `x-is-human` header.
|
|
286
|
+
|
|
287
|
+
### Generating the x-is-human Header
|
|
288
|
+
|
|
289
|
+
Create the **x-is-human header** for Vercel BotID bypass:
|
|
290
|
+
|
|
291
|
+
```python
|
|
292
|
+
from hyper_sdk import BotIDHeaderInput
|
|
293
|
+
|
|
294
|
+
header = session.generate_botid_header(BotIDHeaderInput(
|
|
295
|
+
script=script_body, # The c.js script content
|
|
296
|
+
user_agent="your-user-agent",
|
|
297
|
+
ip="your-proxy-ip",
|
|
298
|
+
accept_language="en-US,en;q=0.9",
|
|
299
|
+
))
|
|
300
|
+
|
|
301
|
+
# Use the header in your requests
|
|
302
|
+
headers = {
|
|
303
|
+
"x-is-human": header,
|
|
304
|
+
# ... other headers
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
283
308
|
### Script Path Extraction
|
|
284
309
|
|
|
285
310
|
Extract **Kasada script paths** from blocked pages (HTTP 429):
|
|
@@ -237,6 +237,31 @@ pow_payload = session.generate_kasada_pow(KasadaPowInput(
|
|
|
237
237
|
))
|
|
238
238
|
```
|
|
239
239
|
|
|
240
|
+
## 🤖 Vercel BotID
|
|
241
|
+
|
|
242
|
+
Bypass **Vercel BotID** protection by generating the required `x-is-human` header.
|
|
243
|
+
|
|
244
|
+
### Generating the x-is-human Header
|
|
245
|
+
|
|
246
|
+
Create the **x-is-human header** for Vercel BotID bypass:
|
|
247
|
+
|
|
248
|
+
```python
|
|
249
|
+
from hyper_sdk import BotIDHeaderInput
|
|
250
|
+
|
|
251
|
+
header = session.generate_botid_header(BotIDHeaderInput(
|
|
252
|
+
script=script_body, # The c.js script content
|
|
253
|
+
user_agent="your-user-agent",
|
|
254
|
+
ip="your-proxy-ip",
|
|
255
|
+
accept_language="en-US,en;q=0.9",
|
|
256
|
+
))
|
|
257
|
+
|
|
258
|
+
# Use the header in your requests
|
|
259
|
+
headers = {
|
|
260
|
+
"x-is-human": header,
|
|
261
|
+
# ... other headers
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
240
265
|
### Script Path Extraction
|
|
241
266
|
|
|
242
267
|
Extract **Kasada script paths** from blocked pages (HTTP 429):
|
|
@@ -43,3 +43,25 @@ class KasadaPayloadInput:
|
|
|
43
43
|
"ip": self.ip,
|
|
44
44
|
}
|
|
45
45
|
return result
|
|
46
|
+
|
|
47
|
+
class BotIDHeaderInput:
|
|
48
|
+
def __init__(self, script: str, user_agent: str, ip: str, accept_language: str):
|
|
49
|
+
# Script is the c.js script retrieved from the BotID script endpoint
|
|
50
|
+
self.script = script
|
|
51
|
+
|
|
52
|
+
# UserAgent must be a Chrome Windows User-Agent.
|
|
53
|
+
self.user_agent = user_agent
|
|
54
|
+
|
|
55
|
+
# IP is the IPV4 address of your network or proxy
|
|
56
|
+
self.ip = ip
|
|
57
|
+
|
|
58
|
+
# Your accept-language header
|
|
59
|
+
self.accept_language = accept_language
|
|
60
|
+
|
|
61
|
+
def to_dict(self):
|
|
62
|
+
return {
|
|
63
|
+
"script": self.script,
|
|
64
|
+
"userAgent": self.user_agent,
|
|
65
|
+
"ip": self.ip,
|
|
66
|
+
"acceptLanguage": self.accept_language,
|
|
67
|
+
}
|
|
@@ -7,7 +7,7 @@ import gzip
|
|
|
7
7
|
|
|
8
8
|
from .shared import generate_signature, build_headers, validate_response
|
|
9
9
|
from .akamai_input import SensorInput, PixelInput, SbsdInput
|
|
10
|
-
from .kasada_input import KasadaPowInput, KasadaPayloadInput
|
|
10
|
+
from .kasada_input import KasadaPowInput, KasadaPayloadInput, BotIDHeaderInput
|
|
11
11
|
from .datadome_input import DataDomeSliderInput, DataDomeInterstitialInput, DataDomeTagsInput
|
|
12
12
|
from .incapsula_input import UtmvcInput, ReeseInput
|
|
13
13
|
from .trustdecision_input import PayloadInput, DecodeInput, SignatureInput
|
|
@@ -226,6 +226,19 @@ class Session:
|
|
|
226
226
|
|
|
227
227
|
return response_data["payload"], response_data["headers"]
|
|
228
228
|
|
|
229
|
+
def generate_botid_header(self, input_data: BotIDHeaderInput) -> str:
|
|
230
|
+
"""
|
|
231
|
+
Returns the x-is-human header value for Vercel BotID using the Hyper Solutions API.
|
|
232
|
+
|
|
233
|
+
Args:
|
|
234
|
+
input_data (BotIDHeaderInput): An instance of BotIDHeaderInput containing the script,
|
|
235
|
+
user agent, IP, and accept language.
|
|
236
|
+
|
|
237
|
+
Returns:
|
|
238
|
+
str: The x-is-human header value as a string.
|
|
239
|
+
"""
|
|
240
|
+
return self._send_request("https://kasada.hypersolutions.co/botid", input_data.to_dict())
|
|
241
|
+
|
|
229
242
|
def generate_interstitial_payload(self, input_data: DataDomeInterstitialInput) -> Dict[str, Any]:
|
|
230
243
|
"""
|
|
231
244
|
Returns the DataDome interstitial payload value and response headers using the Hyper Solutions API.
|
|
@@ -7,7 +7,7 @@ import gzip
|
|
|
7
7
|
|
|
8
8
|
from .shared import generate_signature, build_headers, validate_response
|
|
9
9
|
from .akamai_input import SensorInput, PixelInput, SbsdInput
|
|
10
|
-
from .kasada_input import KasadaPowInput, KasadaPayloadInput
|
|
10
|
+
from .kasada_input import KasadaPowInput, KasadaPayloadInput, BotIDHeaderInput
|
|
11
11
|
from .datadome_input import DataDomeSliderInput, DataDomeInterstitialInput, DataDomeTagsInput
|
|
12
12
|
from .incapsula_input import UtmvcInput, ReeseInput
|
|
13
13
|
from .trustdecision_input import PayloadInput, DecodeInput, SignatureInput
|
|
@@ -232,6 +232,19 @@ class SessionAsync:
|
|
|
232
232
|
|
|
233
233
|
return response_data["payload"], response_data["headers"]
|
|
234
234
|
|
|
235
|
+
async def generate_botid_header(self, input_data: BotIDHeaderInput) -> str:
|
|
236
|
+
"""
|
|
237
|
+
Returns the x-is-human header value for Vercel BotID using the Hyper Solutions API.
|
|
238
|
+
|
|
239
|
+
Args:
|
|
240
|
+
input_data (BotIDHeaderInput): An instance of BotIDHeaderInput containing the script,
|
|
241
|
+
user agent, IP, and accept language.
|
|
242
|
+
|
|
243
|
+
Returns:
|
|
244
|
+
str: The x-is-human header value as a string.
|
|
245
|
+
"""
|
|
246
|
+
return await self._send_request("https://kasada.hypersolutions.co/botid", input_data.to_dict())
|
|
247
|
+
|
|
235
248
|
async def generate_interstitial_payload(self, input_data: DataDomeInterstitialInput) -> Dict[str, Any]:
|
|
236
249
|
"""
|
|
237
250
|
Returns the DataDome interstitial payload value and response headers using the Hyper Solutions API.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hyper_sdk
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.12.0
|
|
4
4
|
Summary: Hyper Solutions Python SDK
|
|
5
5
|
License: MIT License
|
|
6
6
|
|
|
@@ -280,6 +280,31 @@ pow_payload = session.generate_kasada_pow(KasadaPowInput(
|
|
|
280
280
|
))
|
|
281
281
|
```
|
|
282
282
|
|
|
283
|
+
## 🤖 Vercel BotID
|
|
284
|
+
|
|
285
|
+
Bypass **Vercel BotID** protection by generating the required `x-is-human` header.
|
|
286
|
+
|
|
287
|
+
### Generating the x-is-human Header
|
|
288
|
+
|
|
289
|
+
Create the **x-is-human header** for Vercel BotID bypass:
|
|
290
|
+
|
|
291
|
+
```python
|
|
292
|
+
from hyper_sdk import BotIDHeaderInput
|
|
293
|
+
|
|
294
|
+
header = session.generate_botid_header(BotIDHeaderInput(
|
|
295
|
+
script=script_body, # The c.js script content
|
|
296
|
+
user_agent="your-user-agent",
|
|
297
|
+
ip="your-proxy-ip",
|
|
298
|
+
accept_language="en-US,en;q=0.9",
|
|
299
|
+
))
|
|
300
|
+
|
|
301
|
+
# Use the header in your requests
|
|
302
|
+
headers = {
|
|
303
|
+
"x-is-human": header,
|
|
304
|
+
# ... other headers
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
283
308
|
### Script Path Extraction
|
|
284
309
|
|
|
285
310
|
Extract **Kasada script paths** from blocked pages (HTTP 429):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|