playwright-automation-core 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +225 -0
- package/dist/api/api.assertions.d.ts +196 -0
- package/dist/api/api.assertions.d.ts.map +1 -0
- package/dist/api/api.assertions.js +462 -0
- package/dist/api/api.assertions.js.map +1 -0
- package/dist/api/api.builder.d.ts +134 -0
- package/dist/api/api.builder.d.ts.map +1 -0
- package/dist/api/api.builder.js +273 -0
- package/dist/api/api.builder.js.map +1 -0
- package/dist/api/api.client.d.ts +157 -0
- package/dist/api/api.client.d.ts.map +1 -0
- package/dist/api/api.client.js +493 -0
- package/dist/api/api.client.js.map +1 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +17 -0
- package/dist/api/index.js.map +1 -0
- package/dist/core/base.driver.d.ts +130 -0
- package/dist/core/base.driver.d.ts.map +1 -0
- package/dist/core/base.driver.js +264 -0
- package/dist/core/base.driver.js.map +1 -0
- package/dist/core/driver.factory.d.ts +120 -0
- package/dist/core/driver.factory.d.ts.map +1 -0
- package/dist/core/driver.factory.js +222 -0
- package/dist/core/driver.factory.js.map +1 -0
- package/dist/core/element.actions.d.ts +119 -0
- package/dist/core/element.actions.d.ts.map +1 -0
- package/dist/core/element.actions.js +379 -0
- package/dist/core/element.actions.js.map +1 -0
- package/dist/core/hook.manager.d.ts +186 -0
- package/dist/core/hook.manager.d.ts.map +1 -0
- package/dist/core/hook.manager.js +297 -0
- package/dist/core/hook.manager.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +22 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/dist/mobile/index.d.ts +7 -0
- package/dist/mobile/index.d.ts.map +1 -0
- package/dist/mobile/index.js +14 -0
- package/dist/mobile/index.js.map +1 -0
- package/dist/mobile/mobile.assertions.d.ts +146 -0
- package/dist/mobile/mobile.assertions.d.ts.map +1 -0
- package/dist/mobile/mobile.assertions.js +333 -0
- package/dist/mobile/mobile.assertions.js.map +1 -0
- package/dist/mobile/mobile.driver.d.ts +297 -0
- package/dist/mobile/mobile.driver.d.ts.map +1 -0
- package/dist/mobile/mobile.driver.js +808 -0
- package/dist/mobile/mobile.driver.js.map +1 -0
- package/dist/types/common.types.d.ts +200 -0
- package/dist/types/common.types.d.ts.map +1 -0
- package/dist/types/common.types.js +3 -0
- package/dist/types/common.types.js.map +1 -0
- package/dist/types/config.types.d.ts +192 -0
- package/dist/types/config.types.d.ts.map +1 -0
- package/dist/types/config.types.js +3 -0
- package/dist/types/config.types.js.map +1 -0
- package/dist/types/driver.types.d.ts +500 -0
- package/dist/types/driver.types.d.ts.map +1 -0
- package/dist/types/driver.types.js +3 -0
- package/dist/types/driver.types.js.map +1 -0
- package/dist/types/enums.d.ts +53 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/enums.js +62 -0
- package/dist/types/enums.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +15 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/config.manager.d.ts +144 -0
- package/dist/utils/config.manager.d.ts.map +1 -0
- package/dist/utils/config.manager.js +473 -0
- package/dist/utils/config.manager.js.map +1 -0
- package/dist/utils/errors.d.ts +149 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +290 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/helpers.d.ts +124 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +421 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +78 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +145 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +235 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/wait.utils.d.ts +95 -0
- package/dist/utils/wait.utils.d.ts.map +1 -0
- package/dist/utils/wait.utils.js +306 -0
- package/dist/utils/wait.utils.js.map +1 -0
- package/dist/web/index.d.ts +8 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +16 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/web.assertions.d.ts +164 -0
- package/dist/web/web.assertions.d.ts.map +1 -0
- package/dist/web/web.assertions.js +427 -0
- package/dist/web/web.assertions.js.map +1 -0
- package/dist/web/web.driver.d.ts +174 -0
- package/dist/web/web.driver.d.ts.map +1 -0
- package/dist/web/web.driver.js +571 -0
- package/dist/web/web.driver.js.map +1 -0
- package/dist/web/web.page.d.ts +286 -0
- package/dist/web/web.page.d.ts.map +1 -0
- package/dist/web/web.page.js +570 -0
- package/dist/web/web.page.js.map +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiRequestBuilder = void 0;
|
|
4
|
+
exports.createRequest = createRequest;
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
/**
|
|
7
|
+
* Fluent API request builder for constructing and executing HTTP requests.
|
|
8
|
+
*/
|
|
9
|
+
class ApiRequestBuilder {
|
|
10
|
+
client;
|
|
11
|
+
method = types_1.HttpMethod.GET;
|
|
12
|
+
endpoint = "/";
|
|
13
|
+
requestData = undefined;
|
|
14
|
+
requestOptions = {};
|
|
15
|
+
constructor(client) {
|
|
16
|
+
this.client = client;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Set request method to GET
|
|
20
|
+
*/
|
|
21
|
+
get(endpoint) {
|
|
22
|
+
this.method = types_1.HttpMethod.GET;
|
|
23
|
+
this.endpoint = endpoint;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Set request method to POST
|
|
28
|
+
*/
|
|
29
|
+
post(endpoint) {
|
|
30
|
+
this.method = types_1.HttpMethod.POST;
|
|
31
|
+
this.endpoint = endpoint;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Set request method to PUT
|
|
36
|
+
*/
|
|
37
|
+
put(endpoint) {
|
|
38
|
+
this.method = types_1.HttpMethod.PUT;
|
|
39
|
+
this.endpoint = endpoint;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set request method to PATCH
|
|
44
|
+
*/
|
|
45
|
+
patch(endpoint) {
|
|
46
|
+
this.method = types_1.HttpMethod.PATCH;
|
|
47
|
+
this.endpoint = endpoint;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Set request method to DELETE
|
|
52
|
+
*/
|
|
53
|
+
delete(endpoint) {
|
|
54
|
+
this.method = types_1.HttpMethod.DELETE;
|
|
55
|
+
this.endpoint = endpoint;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Set request method to HEAD
|
|
60
|
+
*/
|
|
61
|
+
head(endpoint) {
|
|
62
|
+
this.method = types_1.HttpMethod.HEAD;
|
|
63
|
+
this.endpoint = endpoint;
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Set request method to OPTIONS
|
|
68
|
+
*/
|
|
69
|
+
options(endpoint) {
|
|
70
|
+
this.method = types_1.HttpMethod.OPTIONS;
|
|
71
|
+
this.endpoint = endpoint;
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Set request body data
|
|
76
|
+
*/
|
|
77
|
+
body(data) {
|
|
78
|
+
this.requestData = data;
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Alias for body
|
|
83
|
+
*/
|
|
84
|
+
data(data) {
|
|
85
|
+
return this.body(data);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Set JSON body data
|
|
89
|
+
*/
|
|
90
|
+
json(data) {
|
|
91
|
+
this.requestData = data;
|
|
92
|
+
this.header("Content-Type", "application/json");
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Set form data
|
|
97
|
+
*/
|
|
98
|
+
form(data) {
|
|
99
|
+
this.requestOptions.form = data;
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Set multipart form data
|
|
104
|
+
*/
|
|
105
|
+
multipart(data) {
|
|
106
|
+
this.requestOptions.multipart = data;
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Add a single header
|
|
111
|
+
*/
|
|
112
|
+
header(name, value) {
|
|
113
|
+
if (!this.requestOptions.headers) {
|
|
114
|
+
this.requestOptions.headers = {};
|
|
115
|
+
}
|
|
116
|
+
this.requestOptions.headers[name] = value;
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Add multiple headers
|
|
121
|
+
*/
|
|
122
|
+
headers(headers) {
|
|
123
|
+
this.requestOptions.headers = {
|
|
124
|
+
...this.requestOptions.headers,
|
|
125
|
+
...headers,
|
|
126
|
+
};
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Set bearer token authorization
|
|
131
|
+
*/
|
|
132
|
+
bearerToken(token) {
|
|
133
|
+
return this.header("Authorization", `Bearer ${token}`);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Set basic auth authorization
|
|
137
|
+
*/
|
|
138
|
+
basicAuth(username, password) {
|
|
139
|
+
const credentials = Buffer.from(`${username}:${password}`).toString("base64");
|
|
140
|
+
return this.header("Authorization", `Basic ${credentials}`);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Add a single query parameter
|
|
144
|
+
*/
|
|
145
|
+
param(name, value) {
|
|
146
|
+
if (!this.requestOptions.params) {
|
|
147
|
+
this.requestOptions.params = {};
|
|
148
|
+
}
|
|
149
|
+
this.requestOptions.params[name] = value;
|
|
150
|
+
return this;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Add multiple query parameters
|
|
154
|
+
*/
|
|
155
|
+
params(params) {
|
|
156
|
+
this.requestOptions.params = {
|
|
157
|
+
...this.requestOptions.params,
|
|
158
|
+
...params,
|
|
159
|
+
};
|
|
160
|
+
return this;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Set request timeout
|
|
164
|
+
*/
|
|
165
|
+
timeout(ms) {
|
|
166
|
+
this.requestOptions.timeout = ms;
|
|
167
|
+
return this;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Set content type
|
|
171
|
+
*/
|
|
172
|
+
contentType(type) {
|
|
173
|
+
return this.header("Content-Type", type);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Set accept header
|
|
177
|
+
*/
|
|
178
|
+
accept(type) {
|
|
179
|
+
return this.header("Accept", type);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Don't fail on non-2xx status codes
|
|
183
|
+
*/
|
|
184
|
+
ignoreStatusCode() {
|
|
185
|
+
this.requestOptions.failOnStatusCode = false;
|
|
186
|
+
return this;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Fail on non-2xx status codes (default)
|
|
190
|
+
*/
|
|
191
|
+
failOnStatusCode() {
|
|
192
|
+
this.requestOptions.failOnStatusCode = true;
|
|
193
|
+
return this;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Ignore HTTPS errors
|
|
197
|
+
*/
|
|
198
|
+
ignoreHTTPS() {
|
|
199
|
+
this.requestOptions.ignoreHTTPSErrors = true;
|
|
200
|
+
return this;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Execute the request
|
|
204
|
+
*/
|
|
205
|
+
async send() {
|
|
206
|
+
switch (this.method) {
|
|
207
|
+
case types_1.HttpMethod.GET:
|
|
208
|
+
return await this.client.get(this.endpoint, this.requestOptions);
|
|
209
|
+
case types_1.HttpMethod.POST:
|
|
210
|
+
return await this.client.post(this.endpoint, this.requestData, this.requestOptions);
|
|
211
|
+
case types_1.HttpMethod.PUT:
|
|
212
|
+
return await this.client.put(this.endpoint, this.requestData, this.requestOptions);
|
|
213
|
+
case types_1.HttpMethod.PATCH:
|
|
214
|
+
return await this.client.patch(this.endpoint, this.requestData, this.requestOptions);
|
|
215
|
+
case types_1.HttpMethod.DELETE:
|
|
216
|
+
return await this.client.delete(this.endpoint, this.requestOptions);
|
|
217
|
+
case types_1.HttpMethod.HEAD:
|
|
218
|
+
return (await this.client.head(this.endpoint, this.requestOptions));
|
|
219
|
+
case types_1.HttpMethod.OPTIONS:
|
|
220
|
+
return await this.client.options(this.endpoint, this.requestOptions);
|
|
221
|
+
default:
|
|
222
|
+
throw new Error(`Unsupported HTTP method: ${this.method}`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Alias for send
|
|
227
|
+
*/
|
|
228
|
+
async execute() {
|
|
229
|
+
return this.send();
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Execute and return only the response data
|
|
233
|
+
*/
|
|
234
|
+
async fetchData() {
|
|
235
|
+
const response = await this.send();
|
|
236
|
+
return response.data;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Reset builder to initial state
|
|
240
|
+
*/
|
|
241
|
+
reset() {
|
|
242
|
+
this.method = types_1.HttpMethod.GET;
|
|
243
|
+
this.endpoint = "/";
|
|
244
|
+
this.requestData = undefined;
|
|
245
|
+
this.requestOptions = {};
|
|
246
|
+
return this;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Clone the builder
|
|
250
|
+
*/
|
|
251
|
+
clone() {
|
|
252
|
+
const builder = new ApiRequestBuilder(this.client);
|
|
253
|
+
builder.method = this.method;
|
|
254
|
+
builder.endpoint = this.endpoint;
|
|
255
|
+
builder.requestData = this.requestData;
|
|
256
|
+
builder.requestOptions = { ...this.requestOptions };
|
|
257
|
+
if (this.requestOptions.headers) {
|
|
258
|
+
builder.requestOptions.headers = { ...this.requestOptions.headers };
|
|
259
|
+
}
|
|
260
|
+
if (this.requestOptions.params) {
|
|
261
|
+
builder.requestOptions.params = { ...this.requestOptions.params };
|
|
262
|
+
}
|
|
263
|
+
return builder;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
exports.ApiRequestBuilder = ApiRequestBuilder;
|
|
267
|
+
/**
|
|
268
|
+
* Create a new request builder
|
|
269
|
+
*/
|
|
270
|
+
function createRequest(client) {
|
|
271
|
+
return new ApiRequestBuilder(client);
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=api.builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.builder.js","sourceRoot":"","sources":["../../src/api/api.builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { APIRequestContext } from "@playwright/test";
|
|
2
|
+
import { ApiConfig, IApiDriver, ApiRequestOptions, ApiResponse, ScreenshotOptions } from "../types";
|
|
3
|
+
import { BaseDriver } from "../core/base.driver";
|
|
4
|
+
import { Logger } from "../utils";
|
|
5
|
+
/**
|
|
6
|
+
* API Client implementation using Playwright's request context.
|
|
7
|
+
* Provides a clean interface for REST API testing.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ApiClient extends BaseDriver implements IApiDriver {
|
|
10
|
+
/** Playwright API request context */
|
|
11
|
+
private requestContext;
|
|
12
|
+
/** API-specific configuration */
|
|
13
|
+
protected config: ApiConfig;
|
|
14
|
+
/** Default headers for all requests */
|
|
15
|
+
private defaultHeaders;
|
|
16
|
+
/** Hook manager */
|
|
17
|
+
private hooks;
|
|
18
|
+
/** Wait utilities for retry logic */
|
|
19
|
+
private waitUtils;
|
|
20
|
+
/**
|
|
21
|
+
* Create a new ApiClient instance
|
|
22
|
+
*/
|
|
23
|
+
constructor(config: ApiConfig, logger?: Logger);
|
|
24
|
+
/**
|
|
25
|
+
* Initialize the API client
|
|
26
|
+
*/
|
|
27
|
+
initialize(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Get the underlying Playwright request context
|
|
30
|
+
*/
|
|
31
|
+
getDriver(): APIRequestContext;
|
|
32
|
+
/**
|
|
33
|
+
* Get the request context (alias for getDriver)
|
|
34
|
+
*/
|
|
35
|
+
getRequestContext(): APIRequestContext;
|
|
36
|
+
/**
|
|
37
|
+
* Perform GET request
|
|
38
|
+
*/
|
|
39
|
+
get<T = unknown>(endpoint: string, options?: ApiRequestOptions): Promise<ApiResponse<T>>;
|
|
40
|
+
/**
|
|
41
|
+
* Perform POST request
|
|
42
|
+
*/
|
|
43
|
+
post<T = unknown>(endpoint: string, data?: unknown, options?: ApiRequestOptions): Promise<ApiResponse<T>>;
|
|
44
|
+
/**
|
|
45
|
+
* Perform PUT request
|
|
46
|
+
*/
|
|
47
|
+
put<T = unknown>(endpoint: string, data?: unknown, options?: ApiRequestOptions): Promise<ApiResponse<T>>;
|
|
48
|
+
/**
|
|
49
|
+
* Perform PATCH request
|
|
50
|
+
*/
|
|
51
|
+
patch<T = unknown>(endpoint: string, data?: unknown, options?: ApiRequestOptions): Promise<ApiResponse<T>>;
|
|
52
|
+
/**
|
|
53
|
+
* Perform DELETE request
|
|
54
|
+
*/
|
|
55
|
+
delete<T = unknown>(endpoint: string, options?: ApiRequestOptions): Promise<ApiResponse<T>>;
|
|
56
|
+
/**
|
|
57
|
+
* Perform HEAD request
|
|
58
|
+
*/
|
|
59
|
+
head(endpoint: string, options?: ApiRequestOptions): Promise<ApiResponse<void>>;
|
|
60
|
+
/**
|
|
61
|
+
* Perform OPTIONS request
|
|
62
|
+
*/
|
|
63
|
+
options<T = unknown>(endpoint: string, options?: ApiRequestOptions): Promise<ApiResponse<T>>;
|
|
64
|
+
/**
|
|
65
|
+
* Internal request method
|
|
66
|
+
*/
|
|
67
|
+
private request;
|
|
68
|
+
/**
|
|
69
|
+
* Execute the actual HTTP request
|
|
70
|
+
*/
|
|
71
|
+
private executeRequest;
|
|
72
|
+
/**
|
|
73
|
+
* Execute request with retry logic
|
|
74
|
+
*/
|
|
75
|
+
private executeWithRetry;
|
|
76
|
+
/**
|
|
77
|
+
* Parse API response
|
|
78
|
+
*/
|
|
79
|
+
private parseResponse;
|
|
80
|
+
/**
|
|
81
|
+
* Build URL with query parameters
|
|
82
|
+
*/
|
|
83
|
+
private buildUrl;
|
|
84
|
+
/**
|
|
85
|
+
* Build headers for request
|
|
86
|
+
*/
|
|
87
|
+
private buildHeaders;
|
|
88
|
+
/**
|
|
89
|
+
* Sanitize headers for logging (hide sensitive values)
|
|
90
|
+
*/
|
|
91
|
+
private sanitizeHeaders;
|
|
92
|
+
/**
|
|
93
|
+
* Set a default header for all requests
|
|
94
|
+
*/
|
|
95
|
+
setHeader(key: string, value: string): void;
|
|
96
|
+
/**
|
|
97
|
+
* Remove a default header
|
|
98
|
+
*/
|
|
99
|
+
removeHeader(key: string): void;
|
|
100
|
+
/**
|
|
101
|
+
* Get all default headers
|
|
102
|
+
*/
|
|
103
|
+
getHeaders(): Record<string, string>;
|
|
104
|
+
/**
|
|
105
|
+
* Set bearer token for authentication
|
|
106
|
+
*/
|
|
107
|
+
setBearerToken(token: string): void;
|
|
108
|
+
/**
|
|
109
|
+
* Clear bearer token
|
|
110
|
+
*/
|
|
111
|
+
clearBearerToken(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Set basic auth credentials
|
|
114
|
+
*/
|
|
115
|
+
setBasicAuth(username: string, password: string): void;
|
|
116
|
+
/**
|
|
117
|
+
* Set API key header
|
|
118
|
+
*/
|
|
119
|
+
setApiKey(key: string, headerName?: string): void;
|
|
120
|
+
/**
|
|
121
|
+
* Set content type header
|
|
122
|
+
*/
|
|
123
|
+
setContentType(contentType: string): void;
|
|
124
|
+
/**
|
|
125
|
+
* Set accept header
|
|
126
|
+
*/
|
|
127
|
+
setAccept(accept: string): void;
|
|
128
|
+
/**
|
|
129
|
+
* Take screenshot - not applicable for API, returns empty buffer
|
|
130
|
+
*/
|
|
131
|
+
takeScreenshot(_options?: ScreenshotOptions): Promise<Buffer>;
|
|
132
|
+
/**
|
|
133
|
+
* Execute script - not applicable for API
|
|
134
|
+
*/
|
|
135
|
+
executeScript<T>(_script: string | ((...args: unknown[]) => T)): Promise<T>;
|
|
136
|
+
/**
|
|
137
|
+
* Dispose/quit the API client
|
|
138
|
+
*/
|
|
139
|
+
quit(): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Alias for quit
|
|
142
|
+
*/
|
|
143
|
+
dispose(): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Health check - perform a simple GET request
|
|
146
|
+
*/
|
|
147
|
+
healthCheck(endpoint?: string): Promise<boolean>;
|
|
148
|
+
/**
|
|
149
|
+
* Get base URL
|
|
150
|
+
*/
|
|
151
|
+
getBaseUrl(): string;
|
|
152
|
+
/**
|
|
153
|
+
* Create a new instance with different base URL
|
|
154
|
+
*/
|
|
155
|
+
withBaseUrl(baseURL: string): Promise<ApiClient>;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=api.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.client.d.ts","sourceRoot":"","sources":["../../src/api/api.client.ts"],"names":[],"mappings":"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"}
|