anchorbrowser 0.1.0__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.
- anchorbrowser/__init__.py +100 -0
- anchorbrowser/_base_client.py +1995 -0
- anchorbrowser/_client.py +440 -0
- anchorbrowser/_compat.py +219 -0
- anchorbrowser/_constants.py +14 -0
- anchorbrowser/_exceptions.py +108 -0
- anchorbrowser/_files.py +123 -0
- anchorbrowser/_models.py +829 -0
- anchorbrowser/_qs.py +150 -0
- anchorbrowser/_resource.py +43 -0
- anchorbrowser/_response.py +832 -0
- anchorbrowser/_streaming.py +333 -0
- anchorbrowser/_types.py +219 -0
- anchorbrowser/_utils/__init__.py +57 -0
- anchorbrowser/_utils/_logs.py +25 -0
- anchorbrowser/_utils/_proxy.py +65 -0
- anchorbrowser/_utils/_reflection.py +42 -0
- anchorbrowser/_utils/_resources_proxy.py +24 -0
- anchorbrowser/_utils/_streams.py +12 -0
- anchorbrowser/_utils/_sync.py +86 -0
- anchorbrowser/_utils/_transform.py +447 -0
- anchorbrowser/_utils/_typing.py +151 -0
- anchorbrowser/_utils/_utils.py +422 -0
- anchorbrowser/_version.py +4 -0
- anchorbrowser/lib/.keep +4 -0
- anchorbrowser/lib/agent.py +69 -0
- anchorbrowser/lib/browser.py +186 -0
- anchorbrowser/py.typed +0 -0
- anchorbrowser/resources/__init__.py +61 -0
- anchorbrowser/resources/agent.py +305 -0
- anchorbrowser/resources/browser.py +152 -0
- anchorbrowser/resources/extensions.py +412 -0
- anchorbrowser/resources/profiles.py +553 -0
- anchorbrowser/resources/sessions/__init__.py +89 -0
- anchorbrowser/resources/sessions/all.py +192 -0
- anchorbrowser/resources/sessions/clipboard.py +252 -0
- anchorbrowser/resources/sessions/keyboard.py +298 -0
- anchorbrowser/resources/sessions/mouse.py +651 -0
- anchorbrowser/resources/sessions/recordings/__init__.py +33 -0
- anchorbrowser/resources/sessions/recordings/primary.py +176 -0
- anchorbrowser/resources/sessions/recordings/recordings.py +357 -0
- anchorbrowser/resources/sessions/sessions.py +1122 -0
- anchorbrowser/resources/tools.py +529 -0
- anchorbrowser/types/__init__.py +32 -0
- anchorbrowser/types/extension_delete_response.py +12 -0
- anchorbrowser/types/extension_list_response.py +31 -0
- anchorbrowser/types/extension_manifest.py +28 -0
- anchorbrowser/types/extension_retrieve_response.py +27 -0
- anchorbrowser/types/extension_upload_params.py +17 -0
- anchorbrowser/types/extension_upload_response.py +31 -0
- anchorbrowser/types/profile_create_params.py +31 -0
- anchorbrowser/types/profile_list_response.py +43 -0
- anchorbrowser/types/profile_retrieve_response.py +36 -0
- anchorbrowser/types/profile_update_params.py +27 -0
- anchorbrowser/types/session_copy_response.py +12 -0
- anchorbrowser/types/session_create_params.py +196 -0
- anchorbrowser/types/session_create_response.py +22 -0
- anchorbrowser/types/session_drag_and_drop_params.py +26 -0
- anchorbrowser/types/session_drag_and_drop_response.py +11 -0
- anchorbrowser/types/session_goto_params.py +12 -0
- anchorbrowser/types/session_goto_response.py +11 -0
- anchorbrowser/types/session_paste_params.py +12 -0
- anchorbrowser/types/session_paste_response.py +11 -0
- anchorbrowser/types/session_retrieve_downloads_response.py +51 -0
- anchorbrowser/types/session_scroll_params.py +26 -0
- anchorbrowser/types/session_scroll_response.py +11 -0
- anchorbrowser/types/sessions/__init__.py +25 -0
- anchorbrowser/types/sessions/all_status_response.py +30 -0
- anchorbrowser/types/sessions/clipboard_get_response.py +16 -0
- anchorbrowser/types/sessions/clipboard_set_params.py +12 -0
- anchorbrowser/types/sessions/clipboard_set_response.py +11 -0
- anchorbrowser/types/sessions/keyboard_shortcut_params.py +18 -0
- anchorbrowser/types/sessions/keyboard_shortcut_response.py +11 -0
- anchorbrowser/types/sessions/keyboard_type_params.py +15 -0
- anchorbrowser/types/sessions/keyboard_type_response.py +11 -0
- anchorbrowser/types/sessions/mouse_click_params.py +18 -0
- anchorbrowser/types/sessions/mouse_click_response.py +11 -0
- anchorbrowser/types/sessions/mouse_double_click_params.py +18 -0
- anchorbrowser/types/sessions/mouse_double_click_response.py +11 -0
- anchorbrowser/types/sessions/mouse_down_params.py +18 -0
- anchorbrowser/types/sessions/mouse_down_response.py +11 -0
- anchorbrowser/types/sessions/mouse_move_params.py +15 -0
- anchorbrowser/types/sessions/mouse_move_response.py +11 -0
- anchorbrowser/types/sessions/mouse_up_params.py +18 -0
- anchorbrowser/types/sessions/mouse_up_response.py +11 -0
- anchorbrowser/types/sessions/recording_list_response.py +46 -0
- anchorbrowser/types/sessions/recording_pause_response.py +12 -0
- anchorbrowser/types/sessions/recording_resume_response.py +12 -0
- anchorbrowser/types/sessions/recordings/__init__.py +3 -0
- anchorbrowser/types/shared/__init__.py +3 -0
- anchorbrowser/types/shared/success_response.py +15 -0
- anchorbrowser/types/tool_fetch_webpage_params.py +26 -0
- anchorbrowser/types/tool_fetch_webpage_response.py +7 -0
- anchorbrowser/types/tool_perform_web_task_params.py +30 -0
- anchorbrowser/types/tool_perform_web_task_response.py +16 -0
- anchorbrowser/types/tool_screenshot_webpage_params.py +48 -0
- anchorbrowser-0.1.0.dist-info/METADATA +449 -0
- anchorbrowser-0.1.0.dist-info/RECORD +100 -0
- anchorbrowser-0.1.0.dist-info/WHEEL +4 -0
- anchorbrowser-0.1.0.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from pydantic import Field as FieldInfo
|
|
7
|
+
|
|
8
|
+
from .._models import BaseModel
|
|
9
|
+
from .extension_manifest import ExtensionManifest
|
|
10
|
+
|
|
11
|
+
__all__ = ["ExtensionUploadResponse", "Data"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Data(BaseModel):
|
|
15
|
+
id: Optional[str] = None
|
|
16
|
+
"""Unique identifier for the extension"""
|
|
17
|
+
|
|
18
|
+
created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
|
|
19
|
+
"""Timestamp when the extension was created"""
|
|
20
|
+
|
|
21
|
+
manifest: Optional[ExtensionManifest] = None
|
|
22
|
+
|
|
23
|
+
name: Optional[str] = None
|
|
24
|
+
"""Extension name"""
|
|
25
|
+
|
|
26
|
+
updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None)
|
|
27
|
+
"""Timestamp when the extension was last updated"""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class ExtensionUploadResponse(BaseModel):
|
|
31
|
+
data: Optional[Data] = None
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["ProfileCreateParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ProfileCreateParams(TypedDict, total=False):
|
|
11
|
+
name: Required[str]
|
|
12
|
+
"""The name of the profile."""
|
|
13
|
+
|
|
14
|
+
description: str
|
|
15
|
+
"""A description of the profile."""
|
|
16
|
+
|
|
17
|
+
session_id: str
|
|
18
|
+
"""The browser session ID is required if the source is set to `session`.
|
|
19
|
+
|
|
20
|
+
The browser session must be running, and the profile will be stored once the
|
|
21
|
+
browser session terminates.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
source: Literal["session"]
|
|
25
|
+
"""The source of the profile data. currently only `session` is supported."""
|
|
26
|
+
|
|
27
|
+
store_cache: bool
|
|
28
|
+
"""
|
|
29
|
+
Indicates whether the browser session cache should be saved when the browser
|
|
30
|
+
session ends. Defaults to `false`.
|
|
31
|
+
"""
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from .._models import BaseModel
|
|
8
|
+
|
|
9
|
+
__all__ = ["ProfileListResponse", "Data", "DataItem"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class DataItem(BaseModel):
|
|
13
|
+
created_at: Optional[datetime] = None
|
|
14
|
+
"""The timestamp when the profile was created."""
|
|
15
|
+
|
|
16
|
+
description: Optional[str] = None
|
|
17
|
+
"""A description of the profile."""
|
|
18
|
+
|
|
19
|
+
name: Optional[str] = None
|
|
20
|
+
"""The name of the profile."""
|
|
21
|
+
|
|
22
|
+
session_id: Optional[str] = None
|
|
23
|
+
"""The browser session ID used to create this profile, if applicable."""
|
|
24
|
+
|
|
25
|
+
source: Optional[Literal["session"]] = None
|
|
26
|
+
"""The source of the profile data."""
|
|
27
|
+
|
|
28
|
+
status: Optional[str] = None
|
|
29
|
+
"""The current status of the profile."""
|
|
30
|
+
|
|
31
|
+
store_cache: Optional[bool] = None
|
|
32
|
+
"""Whether the profile stores browser cache."""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class Data(BaseModel):
|
|
36
|
+
count: Optional[int] = None
|
|
37
|
+
"""Total number of profiles"""
|
|
38
|
+
|
|
39
|
+
items: Optional[List[DataItem]] = None
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class ProfileListResponse(BaseModel):
|
|
43
|
+
data: Optional[Data] = None
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from .._models import BaseModel
|
|
8
|
+
|
|
9
|
+
__all__ = ["ProfileRetrieveResponse", "Data"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Data(BaseModel):
|
|
13
|
+
created_at: Optional[datetime] = None
|
|
14
|
+
"""The timestamp when the profile was created."""
|
|
15
|
+
|
|
16
|
+
description: Optional[str] = None
|
|
17
|
+
"""A description of the profile."""
|
|
18
|
+
|
|
19
|
+
name: Optional[str] = None
|
|
20
|
+
"""The name of the profile."""
|
|
21
|
+
|
|
22
|
+
session_id: Optional[str] = None
|
|
23
|
+
"""The browser session ID used to create this profile, if applicable."""
|
|
24
|
+
|
|
25
|
+
source: Optional[Literal["session"]] = None
|
|
26
|
+
"""The source of the profile data."""
|
|
27
|
+
|
|
28
|
+
status: Optional[str] = None
|
|
29
|
+
"""The current status of the profile."""
|
|
30
|
+
|
|
31
|
+
store_cache: Optional[bool] = None
|
|
32
|
+
"""Whether the profile stores browser cache."""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ProfileRetrieveResponse(BaseModel):
|
|
36
|
+
data: Optional[Data] = None
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Literal, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["ProfileUpdateParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ProfileUpdateParams(TypedDict, total=False):
|
|
11
|
+
description: str
|
|
12
|
+
"""The new description for the profile."""
|
|
13
|
+
|
|
14
|
+
session_id: str
|
|
15
|
+
"""The browser session ID is required if the source is set to `session`.
|
|
16
|
+
|
|
17
|
+
The browser session must belong to the user and be active.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
source: Literal["session"]
|
|
21
|
+
"""The source of the profile data. Currently, only `session` is supported."""
|
|
22
|
+
|
|
23
|
+
store_cache: bool
|
|
24
|
+
"""
|
|
25
|
+
Indicates whether the browser session cache should be saved when the browser
|
|
26
|
+
session ends. Defaults to `false`.
|
|
27
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["SessionCopyResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SessionCopyResponse(BaseModel):
|
|
11
|
+
text: Optional[str] = None
|
|
12
|
+
"""The text that was copied"""
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Union
|
|
6
|
+
from typing_extensions import Literal, Required, TypeAlias, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"SessionCreateParams",
|
|
10
|
+
"Browser",
|
|
11
|
+
"BrowserAdblock",
|
|
12
|
+
"BrowserCaptchaSolver",
|
|
13
|
+
"BrowserHeadless",
|
|
14
|
+
"BrowserP2pDownload",
|
|
15
|
+
"BrowserPopupBlocker",
|
|
16
|
+
"BrowserProfile",
|
|
17
|
+
"BrowserViewport",
|
|
18
|
+
"Session",
|
|
19
|
+
"SessionLiveView",
|
|
20
|
+
"SessionProxy",
|
|
21
|
+
"SessionProxyAnchorResidentialProxyType",
|
|
22
|
+
"SessionProxyAnchorMobileProxyType",
|
|
23
|
+
"SessionProxyCustomProxyType",
|
|
24
|
+
"SessionRecording",
|
|
25
|
+
"SessionTimeout",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class SessionCreateParams(TypedDict, total=False):
|
|
30
|
+
browser: Browser
|
|
31
|
+
"""Browser-specific configurations."""
|
|
32
|
+
|
|
33
|
+
session: Session
|
|
34
|
+
"""Session-related configurations."""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class BrowserAdblock(TypedDict, total=False):
|
|
38
|
+
active: bool
|
|
39
|
+
"""Enable or disable ad-blocking. Defaults to `true`."""
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class BrowserCaptchaSolver(TypedDict, total=False):
|
|
43
|
+
active: bool
|
|
44
|
+
"""Enable or disable captcha-solving.
|
|
45
|
+
|
|
46
|
+
Requires proxy to be active. Defaults to `false`.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class BrowserHeadless(TypedDict, total=False):
|
|
51
|
+
active: bool
|
|
52
|
+
"""Whether browser should be headless or headful. Defaults to `false`."""
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class BrowserP2pDownload(TypedDict, total=False):
|
|
56
|
+
active: bool
|
|
57
|
+
"""Enable or disable P2P downloads.
|
|
58
|
+
|
|
59
|
+
When enabled, the browser will capture downloads for direct data extraction,
|
|
60
|
+
instead of uploading them on Anchor's storage. Defaults to `false`.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class BrowserPopupBlocker(TypedDict, total=False):
|
|
65
|
+
active: bool
|
|
66
|
+
"""Blocks popups, including ads and CAPTCHA consent banners.
|
|
67
|
+
|
|
68
|
+
Requires adblock to be active. Defaults to `true`.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class BrowserProfile(TypedDict, total=False):
|
|
73
|
+
name: str
|
|
74
|
+
"""The name of the profile to be used during the browser session."""
|
|
75
|
+
|
|
76
|
+
persist: bool
|
|
77
|
+
"""
|
|
78
|
+
Indicates whether the browser session profile data should be saved when the
|
|
79
|
+
browser session ends. Defaults to `false`.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
store_cache: bool
|
|
83
|
+
"""
|
|
84
|
+
Indicates whether the browser session cache should be saved when the browser
|
|
85
|
+
session ends. Defaults to `false`.
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class BrowserViewport(TypedDict, total=False):
|
|
90
|
+
height: int
|
|
91
|
+
"""Height of the viewport in pixels. Defaults to `900`."""
|
|
92
|
+
|
|
93
|
+
width: int
|
|
94
|
+
"""Width of the viewport in pixels. Defaults to `1440`."""
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class Browser(TypedDict, total=False):
|
|
98
|
+
adblock: BrowserAdblock
|
|
99
|
+
"""Configuration for ad-blocking."""
|
|
100
|
+
|
|
101
|
+
captcha_solver: BrowserCaptchaSolver
|
|
102
|
+
"""Configuration for captcha-solving."""
|
|
103
|
+
|
|
104
|
+
headless: BrowserHeadless
|
|
105
|
+
"""Configuration for headless mode."""
|
|
106
|
+
|
|
107
|
+
p2p_download: BrowserP2pDownload
|
|
108
|
+
"""Configuration for peer-to-peer download capture functionality."""
|
|
109
|
+
|
|
110
|
+
popup_blocker: BrowserPopupBlocker
|
|
111
|
+
"""Configuration for popup blocking."""
|
|
112
|
+
|
|
113
|
+
profile: BrowserProfile
|
|
114
|
+
"""Options for managing and persisting browser session profiles."""
|
|
115
|
+
|
|
116
|
+
viewport: BrowserViewport
|
|
117
|
+
"""Configuration for the browser's viewport size."""
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
class SessionLiveView(TypedDict, total=False):
|
|
121
|
+
read_only: bool
|
|
122
|
+
"""Enable or disable read-only mode for live viewing. Defaults to `false`."""
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class SessionProxyAnchorResidentialProxyType(TypedDict, total=False):
|
|
126
|
+
type: Required[Literal["anchor_residential"]]
|
|
127
|
+
|
|
128
|
+
active: bool
|
|
129
|
+
"""Enable or disable proxy usage. Defaults to `false`."""
|
|
130
|
+
|
|
131
|
+
country_code: Literal["us", "uk", "fr", "it", "jp", "au", "de", "fi", "ca"]
|
|
132
|
+
"""Country code for residential proxy"""
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class SessionProxyAnchorMobileProxyType(TypedDict, total=False):
|
|
136
|
+
type: Required[Literal["anchor_mobile"]]
|
|
137
|
+
|
|
138
|
+
active: bool
|
|
139
|
+
"""Enable or disable proxy usage. Defaults to `false`."""
|
|
140
|
+
|
|
141
|
+
country_code: Literal["us", "uk", "fr", "it", "jp", "au", "de", "fi", "ca"]
|
|
142
|
+
"""Country code for mobile proxy"""
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
class SessionProxyCustomProxyType(TypedDict, total=False):
|
|
146
|
+
password: Required[str]
|
|
147
|
+
"""Proxy password"""
|
|
148
|
+
|
|
149
|
+
server: Required[str]
|
|
150
|
+
"""Proxy server address"""
|
|
151
|
+
|
|
152
|
+
type: Required[Literal["custom"]]
|
|
153
|
+
|
|
154
|
+
username: Required[str]
|
|
155
|
+
"""Proxy username"""
|
|
156
|
+
|
|
157
|
+
active: bool
|
|
158
|
+
"""Enable or disable proxy usage. Defaults to `false`."""
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
SessionProxy: TypeAlias = Union[
|
|
162
|
+
SessionProxyAnchorResidentialProxyType, SessionProxyAnchorMobileProxyType, SessionProxyCustomProxyType
|
|
163
|
+
]
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class SessionRecording(TypedDict, total=False):
|
|
167
|
+
active: bool
|
|
168
|
+
"""Enable or disable video recording of the browser session. Defaults to `true`."""
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class SessionTimeout(TypedDict, total=False):
|
|
172
|
+
idle_timeout: int
|
|
173
|
+
"""
|
|
174
|
+
The amount of time (in minutes) the browser session waits for new connections
|
|
175
|
+
after all others are closed before stopping. Defaults to `5`.
|
|
176
|
+
"""
|
|
177
|
+
|
|
178
|
+
max_duration: int
|
|
179
|
+
"""Maximum amount of time (in minutes) for the browser to run before terminating.
|
|
180
|
+
|
|
181
|
+
Defaults to `20`.
|
|
182
|
+
"""
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
class Session(TypedDict, total=False):
|
|
186
|
+
live_view: SessionLiveView
|
|
187
|
+
"""Configuration for live viewing the browser session."""
|
|
188
|
+
|
|
189
|
+
proxy: SessionProxy
|
|
190
|
+
"""Configuration options for proxy usage."""
|
|
191
|
+
|
|
192
|
+
recording: SessionRecording
|
|
193
|
+
"""Configuration for session recording."""
|
|
194
|
+
|
|
195
|
+
timeout: SessionTimeout
|
|
196
|
+
"""Timeout configurations for the browser session."""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["SessionCreateResponse", "Data"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Data(BaseModel):
|
|
11
|
+
id: Optional[str] = None
|
|
12
|
+
"""Unique identifier for the browser session"""
|
|
13
|
+
|
|
14
|
+
cdp_url: Optional[str] = None
|
|
15
|
+
"""The CDP websocket connection string"""
|
|
16
|
+
|
|
17
|
+
live_view_url: Optional[str] = None
|
|
18
|
+
"""The browser session live view url"""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SessionCreateResponse(BaseModel):
|
|
22
|
+
data: Optional[Data] = None
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
6
|
+
|
|
7
|
+
from .._utils import PropertyInfo
|
|
8
|
+
|
|
9
|
+
__all__ = ["SessionDragAndDropParams"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SessionDragAndDropParams(TypedDict, total=False):
|
|
13
|
+
end_x: Required[Annotated[int, PropertyInfo(alias="endX")]]
|
|
14
|
+
"""Ending X coordinate"""
|
|
15
|
+
|
|
16
|
+
end_y: Required[Annotated[int, PropertyInfo(alias="endY")]]
|
|
17
|
+
"""Ending Y coordinate"""
|
|
18
|
+
|
|
19
|
+
start_x: Required[Annotated[int, PropertyInfo(alias="startX")]]
|
|
20
|
+
"""Starting X coordinate"""
|
|
21
|
+
|
|
22
|
+
start_y: Required[Annotated[int, PropertyInfo(alias="startY")]]
|
|
23
|
+
"""Starting Y coordinate"""
|
|
24
|
+
|
|
25
|
+
button: Literal["left", "middle", "right"]
|
|
26
|
+
"""Mouse button to use"""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["SessionDragAndDropResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SessionDragAndDropResponse(BaseModel):
|
|
11
|
+
status: Optional[str] = None
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["SessionGotoParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SessionGotoParams(TypedDict, total=False):
|
|
11
|
+
url: Required[str]
|
|
12
|
+
"""The URL to navigate to"""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["SessionGotoResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SessionGotoResponse(BaseModel):
|
|
11
|
+
status: Optional[str] = None
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["SessionPasteParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SessionPasteParams(TypedDict, total=False):
|
|
11
|
+
text: Required[str]
|
|
12
|
+
"""Text to paste"""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["SessionPasteResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SessionPasteResponse(BaseModel):
|
|
11
|
+
status: Optional[str] = None
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["SessionRetrieveDownloadsResponse", "Data", "DataItem"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DataItem(BaseModel):
|
|
12
|
+
id: Optional[str] = None
|
|
13
|
+
"""The unique ID of the download record."""
|
|
14
|
+
|
|
15
|
+
created_at: Optional[datetime] = None
|
|
16
|
+
"""The timestamp when the file record was created."""
|
|
17
|
+
|
|
18
|
+
duration: Optional[int] = None
|
|
19
|
+
"""The time it took to process or download the file, in milliseconds."""
|
|
20
|
+
|
|
21
|
+
file_link: Optional[str] = None
|
|
22
|
+
"""The URL to download the file from anchorbrowser servers.
|
|
23
|
+
|
|
24
|
+
Requires api key authentication.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
origin_url: Optional[str] = None
|
|
28
|
+
"""The original URL where the file was found."""
|
|
29
|
+
|
|
30
|
+
original_download_url: Optional[str] = None
|
|
31
|
+
"""The URL used to download the file."""
|
|
32
|
+
|
|
33
|
+
original_file_name: Optional[str] = None
|
|
34
|
+
"""The original file name before any modification."""
|
|
35
|
+
|
|
36
|
+
size: Optional[int] = None
|
|
37
|
+
"""The size of the file in bytes."""
|
|
38
|
+
|
|
39
|
+
suggested_file_name: Optional[str] = None
|
|
40
|
+
"""The suggested file name for saving the file."""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class Data(BaseModel):
|
|
44
|
+
count: Optional[int] = None
|
|
45
|
+
"""Total number of downloads"""
|
|
46
|
+
|
|
47
|
+
items: Optional[List[DataItem]] = None
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class SessionRetrieveDownloadsResponse(BaseModel):
|
|
51
|
+
data: Optional[Data] = None
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
6
|
+
|
|
7
|
+
from .._utils import PropertyInfo
|
|
8
|
+
|
|
9
|
+
__all__ = ["SessionScrollParams"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SessionScrollParams(TypedDict, total=False):
|
|
13
|
+
delta_y: Required[Annotated[int, PropertyInfo(alias="deltaY")]]
|
|
14
|
+
"""Vertical scroll amount (positive is down, negative is up)"""
|
|
15
|
+
|
|
16
|
+
x: Required[int]
|
|
17
|
+
"""X coordinate"""
|
|
18
|
+
|
|
19
|
+
y: Required[int]
|
|
20
|
+
"""Y coordinate"""
|
|
21
|
+
|
|
22
|
+
delta_x: Annotated[int, PropertyInfo(alias="deltaX")]
|
|
23
|
+
"""Horizontal scroll amount (positive is right, negative is left)"""
|
|
24
|
+
|
|
25
|
+
steps: int
|
|
26
|
+
"""Number of steps to break the scroll into for smoother scrolling"""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["SessionScrollResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SessionScrollResponse(BaseModel):
|
|
11
|
+
status: Optional[str] = None
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from .mouse_up_params import MouseUpParams as MouseUpParams
|
|
6
|
+
from .mouse_down_params import MouseDownParams as MouseDownParams
|
|
7
|
+
from .mouse_move_params import MouseMoveParams as MouseMoveParams
|
|
8
|
+
from .mouse_up_response import MouseUpResponse as MouseUpResponse
|
|
9
|
+
from .mouse_click_params import MouseClickParams as MouseClickParams
|
|
10
|
+
from .all_status_response import AllStatusResponse as AllStatusResponse
|
|
11
|
+
from .mouse_down_response import MouseDownResponse as MouseDownResponse
|
|
12
|
+
from .mouse_move_response import MouseMoveResponse as MouseMoveResponse
|
|
13
|
+
from .clipboard_set_params import ClipboardSetParams as ClipboardSetParams
|
|
14
|
+
from .keyboard_type_params import KeyboardTypeParams as KeyboardTypeParams
|
|
15
|
+
from .mouse_click_response import MouseClickResponse as MouseClickResponse
|
|
16
|
+
from .clipboard_get_response import ClipboardGetResponse as ClipboardGetResponse
|
|
17
|
+
from .clipboard_set_response import ClipboardSetResponse as ClipboardSetResponse
|
|
18
|
+
from .keyboard_type_response import KeyboardTypeResponse as KeyboardTypeResponse
|
|
19
|
+
from .recording_list_response import RecordingListResponse as RecordingListResponse
|
|
20
|
+
from .keyboard_shortcut_params import KeyboardShortcutParams as KeyboardShortcutParams
|
|
21
|
+
from .recording_pause_response import RecordingPauseResponse as RecordingPauseResponse
|
|
22
|
+
from .mouse_double_click_params import MouseDoubleClickParams as MouseDoubleClickParams
|
|
23
|
+
from .recording_resume_response import RecordingResumeResponse as RecordingResumeResponse
|
|
24
|
+
from .keyboard_shortcut_response import KeyboardShortcutResponse as KeyboardShortcutResponse
|
|
25
|
+
from .mouse_double_click_response import MouseDoubleClickResponse as MouseDoubleClickResponse
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from ..._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["AllStatusResponse", "Data", "DataItem"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DataItem(BaseModel):
|
|
12
|
+
created_at: datetime
|
|
13
|
+
"""Timestamp when the browser session was created"""
|
|
14
|
+
|
|
15
|
+
session_id: str
|
|
16
|
+
"""Unique identifier for the browser session"""
|
|
17
|
+
|
|
18
|
+
status: str
|
|
19
|
+
"""Current status of the browser session"""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class Data(BaseModel):
|
|
23
|
+
count: Optional[int] = None
|
|
24
|
+
"""Total number of browser sessions"""
|
|
25
|
+
|
|
26
|
+
items: Optional[List[DataItem]] = None
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class AllStatusResponse(BaseModel):
|
|
30
|
+
data: Optional[Data] = None
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["ClipboardGetResponse", "Data"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Data(BaseModel):
|
|
11
|
+
text: Optional[str] = None
|
|
12
|
+
"""Text content of the clipboard"""
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ClipboardGetResponse(BaseModel):
|
|
16
|
+
data: Optional[Data] = None
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["ClipboardSetParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ClipboardSetParams(TypedDict, total=False):
|
|
11
|
+
text: Required[str]
|
|
12
|
+
"""Text to set in the clipboard"""
|