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.
Files changed (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +225 -0
  3. package/dist/api/api.assertions.d.ts +196 -0
  4. package/dist/api/api.assertions.d.ts.map +1 -0
  5. package/dist/api/api.assertions.js +462 -0
  6. package/dist/api/api.assertions.js.map +1 -0
  7. package/dist/api/api.builder.d.ts +134 -0
  8. package/dist/api/api.builder.d.ts.map +1 -0
  9. package/dist/api/api.builder.js +273 -0
  10. package/dist/api/api.builder.js.map +1 -0
  11. package/dist/api/api.client.d.ts +157 -0
  12. package/dist/api/api.client.d.ts.map +1 -0
  13. package/dist/api/api.client.js +493 -0
  14. package/dist/api/api.client.js.map +1 -0
  15. package/dist/api/index.d.ts +8 -0
  16. package/dist/api/index.d.ts.map +1 -0
  17. package/dist/api/index.js +17 -0
  18. package/dist/api/index.js.map +1 -0
  19. package/dist/core/base.driver.d.ts +130 -0
  20. package/dist/core/base.driver.d.ts.map +1 -0
  21. package/dist/core/base.driver.js +264 -0
  22. package/dist/core/base.driver.js.map +1 -0
  23. package/dist/core/driver.factory.d.ts +120 -0
  24. package/dist/core/driver.factory.d.ts.map +1 -0
  25. package/dist/core/driver.factory.js +222 -0
  26. package/dist/core/driver.factory.js.map +1 -0
  27. package/dist/core/element.actions.d.ts +119 -0
  28. package/dist/core/element.actions.d.ts.map +1 -0
  29. package/dist/core/element.actions.js +379 -0
  30. package/dist/core/element.actions.js.map +1 -0
  31. package/dist/core/hook.manager.d.ts +186 -0
  32. package/dist/core/hook.manager.d.ts.map +1 -0
  33. package/dist/core/hook.manager.js +297 -0
  34. package/dist/core/hook.manager.js.map +1 -0
  35. package/dist/core/index.d.ts +8 -0
  36. package/dist/core/index.d.ts.map +1 -0
  37. package/dist/core/index.js +22 -0
  38. package/dist/core/index.js.map +1 -0
  39. package/dist/index.d.ts +17 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +128 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/mobile/index.d.ts +7 -0
  44. package/dist/mobile/index.d.ts.map +1 -0
  45. package/dist/mobile/index.js +14 -0
  46. package/dist/mobile/index.js.map +1 -0
  47. package/dist/mobile/mobile.assertions.d.ts +146 -0
  48. package/dist/mobile/mobile.assertions.d.ts.map +1 -0
  49. package/dist/mobile/mobile.assertions.js +333 -0
  50. package/dist/mobile/mobile.assertions.js.map +1 -0
  51. package/dist/mobile/mobile.driver.d.ts +297 -0
  52. package/dist/mobile/mobile.driver.d.ts.map +1 -0
  53. package/dist/mobile/mobile.driver.js +808 -0
  54. package/dist/mobile/mobile.driver.js.map +1 -0
  55. package/dist/types/common.types.d.ts +200 -0
  56. package/dist/types/common.types.d.ts.map +1 -0
  57. package/dist/types/common.types.js +3 -0
  58. package/dist/types/common.types.js.map +1 -0
  59. package/dist/types/config.types.d.ts +192 -0
  60. package/dist/types/config.types.d.ts.map +1 -0
  61. package/dist/types/config.types.js +3 -0
  62. package/dist/types/config.types.js.map +1 -0
  63. package/dist/types/driver.types.d.ts +500 -0
  64. package/dist/types/driver.types.d.ts.map +1 -0
  65. package/dist/types/driver.types.js +3 -0
  66. package/dist/types/driver.types.js.map +1 -0
  67. package/dist/types/enums.d.ts +53 -0
  68. package/dist/types/enums.d.ts.map +1 -0
  69. package/dist/types/enums.js +62 -0
  70. package/dist/types/enums.js.map +1 -0
  71. package/dist/types/index.d.ts +8 -0
  72. package/dist/types/index.d.ts.map +1 -0
  73. package/dist/types/index.js +15 -0
  74. package/dist/types/index.js.map +1 -0
  75. package/dist/utils/config.manager.d.ts +144 -0
  76. package/dist/utils/config.manager.d.ts.map +1 -0
  77. package/dist/utils/config.manager.js +473 -0
  78. package/dist/utils/config.manager.js.map +1 -0
  79. package/dist/utils/errors.d.ts +149 -0
  80. package/dist/utils/errors.d.ts.map +1 -0
  81. package/dist/utils/errors.js +290 -0
  82. package/dist/utils/errors.js.map +1 -0
  83. package/dist/utils/helpers.d.ts +124 -0
  84. package/dist/utils/helpers.d.ts.map +1 -0
  85. package/dist/utils/helpers.js +421 -0
  86. package/dist/utils/helpers.js.map +1 -0
  87. package/dist/utils/index.d.ts +9 -0
  88. package/dist/utils/index.d.ts.map +1 -0
  89. package/dist/utils/index.js +78 -0
  90. package/dist/utils/index.js.map +1 -0
  91. package/dist/utils/logger.d.ts +145 -0
  92. package/dist/utils/logger.d.ts.map +1 -0
  93. package/dist/utils/logger.js +235 -0
  94. package/dist/utils/logger.js.map +1 -0
  95. package/dist/utils/wait.utils.d.ts +95 -0
  96. package/dist/utils/wait.utils.d.ts.map +1 -0
  97. package/dist/utils/wait.utils.js +306 -0
  98. package/dist/utils/wait.utils.js.map +1 -0
  99. package/dist/web/index.d.ts +8 -0
  100. package/dist/web/index.d.ts.map +1 -0
  101. package/dist/web/index.js +16 -0
  102. package/dist/web/index.js.map +1 -0
  103. package/dist/web/web.assertions.d.ts +164 -0
  104. package/dist/web/web.assertions.d.ts.map +1 -0
  105. package/dist/web/web.assertions.js +427 -0
  106. package/dist/web/web.assertions.js.map +1 -0
  107. package/dist/web/web.driver.d.ts +174 -0
  108. package/dist/web/web.driver.d.ts.map +1 -0
  109. package/dist/web/web.driver.js +571 -0
  110. package/dist/web/web.driver.js.map +1 -0
  111. package/dist/web/web.page.d.ts +286 -0
  112. package/dist/web/web.page.d.ts.map +1 -0
  113. package/dist/web/web.page.js +570 -0
  114. package/dist/web/web.page.js.map +1 -0
  115. 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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"}