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,462 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiAssertions = void 0;
4
+ const utils_1 = require("../utils");
5
+ /**
6
+ * Default assertion options
7
+ */
8
+ const DEFAULT_ASSERTION_OPTIONS = {
9
+ timeout: 5000,
10
+ message: "",
11
+ soft: false,
12
+ };
13
+ /**
14
+ * API Assertions class providing assertion methods for API responses.
15
+ */
16
+ class ApiAssertions {
17
+ logger;
18
+ softErrors = [];
19
+ constructor(logger) {
20
+ this.logger = logger || utils_1.Logger.getInstance();
21
+ }
22
+ /**
23
+ * Get soft assertion errors
24
+ */
25
+ getSoftErrors() {
26
+ return [...this.softErrors];
27
+ }
28
+ /**
29
+ * Clear soft assertion errors
30
+ */
31
+ clearSoftErrors() {
32
+ this.softErrors = [];
33
+ }
34
+ /**
35
+ * Check if all soft assertions passed
36
+ */
37
+ allSoftAssertionsPassed() {
38
+ return this.softErrors.length === 0;
39
+ }
40
+ /**
41
+ * Assert all soft assertions and throw if any failed
42
+ */
43
+ assertAllSoftAssertions() {
44
+ if (this.softErrors.length > 0) {
45
+ const messages = this.softErrors
46
+ .map((e, i) => `${i + 1}. ${e.message}`)
47
+ .join("\n");
48
+ const errorCount = this.softErrors.length;
49
+ this.softErrors = [];
50
+ throw new utils_1.AssertionError(`${errorCount} soft assertion(s) failed:\n${messages}`, "all passed", "some failed");
51
+ }
52
+ }
53
+ /**
54
+ * Handle assertion result
55
+ */
56
+ handleAssertion(passed, message, expected, actual, options) {
57
+ if (passed) {
58
+ this.logger.debug(`✓ API Assertion passed: ${message}`);
59
+ return;
60
+ }
61
+ const errorMessage = options.message || message;
62
+ const result = {
63
+ passed: false,
64
+ message: errorMessage,
65
+ expected,
66
+ actual,
67
+ };
68
+ if (options.soft) {
69
+ this.logger.warn(`✗ Soft API assertion failed: ${errorMessage}`);
70
+ this.softErrors.push(result);
71
+ }
72
+ else {
73
+ this.logger.error(`✗ API Assertion failed: ${errorMessage}`);
74
+ throw new utils_1.AssertionError(errorMessage, expected, actual);
75
+ }
76
+ }
77
+ // ============ Status Code Assertions ============
78
+ /**
79
+ * Assert response status code equals expected
80
+ */
81
+ assertStatus(response, expectedStatus, options = {}) {
82
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
83
+ const passed = response.status === expectedStatus;
84
+ this.handleAssertion(passed, `Expected status ${expectedStatus}, got ${response.status}`, expectedStatus, response.status, opts);
85
+ }
86
+ /**
87
+ * Assert response status is 200 OK
88
+ */
89
+ assertOk(response, options = {}) {
90
+ this.assertStatus(response, 200, options);
91
+ }
92
+ /**
93
+ * Assert response status is 201 Created
94
+ */
95
+ assertCreated(response, options = {}) {
96
+ this.assertStatus(response, 201, options);
97
+ }
98
+ /**
99
+ * Assert response status is 204 No Content
100
+ */
101
+ assertNoContent(response, options = {}) {
102
+ this.assertStatus(response, 204, options);
103
+ }
104
+ /**
105
+ * Assert response status is 400 Bad Request
106
+ */
107
+ assertBadRequest(response, options = {}) {
108
+ this.assertStatus(response, 400, options);
109
+ }
110
+ /**
111
+ * Assert response status is 401 Unauthorized
112
+ */
113
+ assertUnauthorized(response, options = {}) {
114
+ this.assertStatus(response, 401, options);
115
+ }
116
+ /**
117
+ * Assert response status is 403 Forbidden
118
+ */
119
+ assertForbidden(response, options = {}) {
120
+ this.assertStatus(response, 403, options);
121
+ }
122
+ /**
123
+ * Assert response status is 404 Not Found
124
+ */
125
+ assertNotFound(response, options = {}) {
126
+ this.assertStatus(response, 404, options);
127
+ }
128
+ /**
129
+ * Assert response status is 500 Internal Server Error
130
+ */
131
+ assertServerError(response, options = {}) {
132
+ this.assertStatus(response, 500, options);
133
+ }
134
+ /**
135
+ * Assert response status is in range
136
+ */
137
+ assertStatusInRange(response, min, max, options = {}) {
138
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
139
+ const passed = response.status >= min && response.status <= max;
140
+ this.handleAssertion(passed, `Expected status between ${min}-${max}, got ${response.status}`, `${min}-${max}`, response.status, opts);
141
+ }
142
+ /**
143
+ * Assert response is successful (2xx)
144
+ */
145
+ assertSuccess(response, options = {}) {
146
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
147
+ const passed = response.ok;
148
+ this.handleAssertion(passed, `Expected successful response (2xx), got ${response.status}`, "2xx", response.status, opts);
149
+ }
150
+ /**
151
+ * Assert response is client error (4xx)
152
+ */
153
+ assertClientError(response, options = {}) {
154
+ this.assertStatusInRange(response, 400, 499, {
155
+ ...options,
156
+ message: options.message ||
157
+ `Expected client error (4xx), got ${response.status}`,
158
+ });
159
+ }
160
+ /**
161
+ * Assert response is server error (5xx)
162
+ */
163
+ assertServerErrorRange(response, options = {}) {
164
+ this.assertStatusInRange(response, 500, 599, {
165
+ ...options,
166
+ message: options.message ||
167
+ `Expected server error (5xx), got ${response.status}`,
168
+ });
169
+ }
170
+ // ============ Header Assertions ============
171
+ /**
172
+ * Assert response has header
173
+ */
174
+ assertHasHeader(response, headerName, options = {}) {
175
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
176
+ const headerKey = Object.keys(response.headers).find((k) => k.toLowerCase() === headerName.toLowerCase());
177
+ const passed = headerKey !== undefined;
178
+ this.handleAssertion(passed, `Expected header "${headerName}" to be present`, "present", "not present", opts);
179
+ }
180
+ /**
181
+ * Assert response header equals value
182
+ */
183
+ assertHeader(response, headerName, expectedValue, options = {}) {
184
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
185
+ const headerKey = Object.keys(response.headers).find((k) => k.toLowerCase() === headerName.toLowerCase());
186
+ const actualValue = headerKey ? response.headers[headerKey] : undefined;
187
+ let passed;
188
+ if (expectedValue instanceof RegExp) {
189
+ passed = actualValue !== undefined && expectedValue.test(actualValue);
190
+ }
191
+ else {
192
+ passed = actualValue === expectedValue;
193
+ }
194
+ this.handleAssertion(passed, `Expected header "${headerName}" to be "${expectedValue}", got "${actualValue}"`, expectedValue, actualValue, opts);
195
+ }
196
+ /**
197
+ * Assert response header contains value
198
+ */
199
+ assertHeaderContains(response, headerName, expectedValue, options = {}) {
200
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
201
+ const headerKey = Object.keys(response.headers).find((k) => k.toLowerCase() === headerName.toLowerCase());
202
+ const actualValue = headerKey ? response.headers[headerKey] : "";
203
+ const passed = actualValue.includes(expectedValue);
204
+ this.handleAssertion(passed, `Expected header "${headerName}" to contain "${expectedValue}", got "${actualValue}"`, `contains "${expectedValue}"`, actualValue, opts);
205
+ }
206
+ /**
207
+ * Assert content type
208
+ */
209
+ assertContentType(response, expectedType, options = {}) {
210
+ this.assertHeaderContains(response, "content-type", expectedType, {
211
+ ...options,
212
+ message: options.message || `Expected content-type to contain "${expectedType}"`,
213
+ });
214
+ }
215
+ /**
216
+ * Assert JSON content type
217
+ */
218
+ assertJsonContentType(response, options = {}) {
219
+ this.assertContentType(response, "application/json", options);
220
+ }
221
+ // ============ Body Assertions ============
222
+ /**
223
+ * Assert response body equals expected
224
+ */
225
+ assertBody(response, expected, options = {}) {
226
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
227
+ const passed = JSON.stringify(response.data) === JSON.stringify(expected);
228
+ this.handleAssertion(passed, "Response body does not match expected", expected, response.data, opts);
229
+ }
230
+ /**
231
+ * Assert response body contains key
232
+ */
233
+ assertBodyHasKey(response, key, options = {}) {
234
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
235
+ const data = response.data;
236
+ const passed = data !== null && typeof data === "object" && key in data;
237
+ this.handleAssertion(passed, `Expected response body to have key "${key}"`, "has key", "missing key", opts);
238
+ }
239
+ /**
240
+ * Assert response body has nested key (dot notation)
241
+ */
242
+ assertBodyHasPath(response, path, options = {}) {
243
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
244
+ const value = this.getValueByPath(response.data, path);
245
+ const passed = value !== undefined;
246
+ this.handleAssertion(passed, `Expected response body to have path "${path}"`, "has path", "missing path", opts);
247
+ }
248
+ /**
249
+ * Assert response body value at path equals expected
250
+ */
251
+ assertBodyValue(response, path, expected, options = {}) {
252
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
253
+ const actual = this.getValueByPath(response.data, path);
254
+ const passed = JSON.stringify(actual) === JSON.stringify(expected);
255
+ this.handleAssertion(passed, `Expected "${path}" to be ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`, expected, actual, opts);
256
+ }
257
+ /**
258
+ * Assert response body value at path matches regex
259
+ */
260
+ assertBodyMatches(response, path, pattern, options = {}) {
261
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
262
+ const actual = this.getValueByPath(response.data, path);
263
+ const actualStr = String(actual);
264
+ const passed = pattern.test(actualStr);
265
+ this.handleAssertion(passed, `Expected "${path}" to match ${pattern}, got "${actualStr}"`, pattern, actualStr, opts);
266
+ }
267
+ /**
268
+ * Assert response body is array
269
+ */
270
+ assertBodyIsArray(response, options = {}) {
271
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
272
+ const passed = Array.isArray(response.data);
273
+ this.handleAssertion(passed, "Expected response body to be an array", "array", typeof response.data, opts);
274
+ }
275
+ /**
276
+ * Assert response body array length
277
+ */
278
+ assertBodyArrayLength(response, expectedLength, options = {}) {
279
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
280
+ const data = response.data;
281
+ const passed = Array.isArray(data) && data.length === expectedLength;
282
+ this.handleAssertion(passed, `Expected array length ${expectedLength}, got ${Array.isArray(data) ? data.length : "not an array"}`, expectedLength, Array.isArray(data) ? data.length : "not an array", opts);
283
+ }
284
+ /**
285
+ * Assert response body array length is greater than
286
+ */
287
+ assertBodyArrayLengthGreaterThan(response, minLength, options = {}) {
288
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
289
+ const data = response.data;
290
+ const passed = Array.isArray(data) && data.length > minLength;
291
+ this.handleAssertion(passed, `Expected array length > ${minLength}, got ${Array.isArray(data) ? data.length : "not an array"}`, `> ${minLength}`, Array.isArray(data) ? data.length : "not an array", opts);
292
+ }
293
+ /**
294
+ * Assert response body is not empty
295
+ */
296
+ assertBodyNotEmpty(response, options = {}) {
297
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
298
+ const data = response.data;
299
+ let passed = false;
300
+ if (Array.isArray(data)) {
301
+ passed = data.length > 0;
302
+ }
303
+ else if (typeof data === "object" && data !== null) {
304
+ passed = Object.keys(data).length > 0;
305
+ }
306
+ else if (typeof data === "string") {
307
+ passed = data.length > 0;
308
+ }
309
+ this.handleAssertion(passed, "Expected response body to not be empty", "not empty", data, opts);
310
+ }
311
+ // ============ Performance Assertions ============
312
+ /**
313
+ * Assert response time is less than expected
314
+ */
315
+ assertResponseTime(response, maxTimeMs, options = {}) {
316
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
317
+ const passed = response.responseTime < maxTimeMs;
318
+ this.handleAssertion(passed, `Expected response time < ${maxTimeMs}ms, got ${response.responseTime}ms`, `< ${maxTimeMs}ms`, `${response.responseTime}ms`, opts);
319
+ }
320
+ // ============ Schema Validation ============
321
+ /**
322
+ * Assert response body matches JSON schema (simplified)
323
+ */
324
+ assertSchema(response, schema, options = {}) {
325
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
326
+ const errors = this.validateSchema(response.data, schema, "");
327
+ const passed = errors.length === 0;
328
+ this.handleAssertion(passed, `Schema validation failed: ${errors.join(", ")}`, "valid schema", errors, opts);
329
+ }
330
+ /**
331
+ * Simple schema validation
332
+ */
333
+ validateSchema(data, schema, path) {
334
+ const errors = [];
335
+ const currentPath = path || "root";
336
+ // Type check
337
+ if (schema.type) {
338
+ const types = Array.isArray(schema.type) ? schema.type : [schema.type];
339
+ const actualType = Array.isArray(data) ? "array" : typeof data;
340
+ if (!types.includes(actualType) &&
341
+ !(data === null && types.includes("null"))) {
342
+ errors.push(`${currentPath}: expected type ${types.join("|")}, got ${actualType}`);
343
+ return errors;
344
+ }
345
+ }
346
+ // Enum check
347
+ if (schema.enum && !schema.enum.includes(data)) {
348
+ errors.push(`${currentPath}: value not in enum [${schema.enum.join(", ")}]`);
349
+ }
350
+ // Object validation
351
+ if (typeof data === "object" && data !== null && !Array.isArray(data)) {
352
+ const obj = data;
353
+ // Required properties
354
+ if (schema.required) {
355
+ for (const req of schema.required) {
356
+ if (!(req in obj)) {
357
+ errors.push(`${currentPath}: missing required property "${req}"`);
358
+ }
359
+ }
360
+ }
361
+ // Property validation
362
+ if (schema.properties) {
363
+ for (const [key, propSchema] of Object.entries(schema.properties)) {
364
+ if (key in obj) {
365
+ errors.push(...this.validateSchema(obj[key], propSchema, `${currentPath}.${key}`));
366
+ }
367
+ }
368
+ }
369
+ }
370
+ // Array validation
371
+ if (Array.isArray(data) && schema.items) {
372
+ data.forEach((item, index) => {
373
+ errors.push(...this.validateSchema(item, schema.items, `${currentPath}[${index}]`));
374
+ });
375
+ }
376
+ // String validation
377
+ if (typeof data === "string") {
378
+ if (schema.minLength !== undefined && data.length < schema.minLength) {
379
+ errors.push(`${currentPath}: string length ${data.length} < minLength ${schema.minLength}`);
380
+ }
381
+ if (schema.maxLength !== undefined && data.length > schema.maxLength) {
382
+ errors.push(`${currentPath}: string length ${data.length} > maxLength ${schema.maxLength}`);
383
+ }
384
+ if (schema.pattern && !new RegExp(schema.pattern).test(data)) {
385
+ errors.push(`${currentPath}: string does not match pattern ${schema.pattern}`);
386
+ }
387
+ }
388
+ // Number validation
389
+ if (typeof data === "number") {
390
+ if (schema.minimum !== undefined && data < schema.minimum) {
391
+ errors.push(`${currentPath}: number ${data} < minimum ${schema.minimum}`);
392
+ }
393
+ if (schema.maximum !== undefined && data > schema.maximum) {
394
+ errors.push(`${currentPath}: number ${data} > maximum ${schema.maximum}`);
395
+ }
396
+ }
397
+ return errors;
398
+ }
399
+ // ============ Utility Methods ============
400
+ /**
401
+ * Get value by dot notation path
402
+ */
403
+ getValueByPath(obj, path) {
404
+ const keys = path.split(".");
405
+ let current = obj;
406
+ for (const key of keys) {
407
+ if (current === null ||
408
+ current === undefined ||
409
+ typeof current !== "object") {
410
+ return undefined;
411
+ }
412
+ // Handle array index notation: items[0]
413
+ const arrayMatch = key.match(/^(\w+)\[(\d+)\]$/);
414
+ if (arrayMatch) {
415
+ const [, arrayKey, indexStr] = arrayMatch;
416
+ const arr = current[arrayKey];
417
+ if (!Array.isArray(arr)) {
418
+ return undefined;
419
+ }
420
+ current = arr[parseInt(indexStr, 10)];
421
+ }
422
+ else {
423
+ current = current[key];
424
+ }
425
+ }
426
+ return current;
427
+ }
428
+ // ============ Generic Assertions ============
429
+ /**
430
+ * Assert condition is true
431
+ */
432
+ assertTrue(condition, message, options = {}) {
433
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
434
+ this.handleAssertion(condition, message, true, condition, opts);
435
+ }
436
+ /**
437
+ * Assert condition is false
438
+ */
439
+ assertFalse(condition, message, options = {}) {
440
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
441
+ this.handleAssertion(!condition, message, false, condition, opts);
442
+ }
443
+ /**
444
+ * Assert values are equal
445
+ */
446
+ assertEqual(actual, expected, message, options = {}) {
447
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
448
+ const passed = JSON.stringify(actual) === JSON.stringify(expected);
449
+ const msg = message ||
450
+ `Expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`;
451
+ this.handleAssertion(passed, msg, expected, actual, opts);
452
+ }
453
+ /**
454
+ * Always fail with message
455
+ */
456
+ fail(message, options = {}) {
457
+ const opts = { ...DEFAULT_ASSERTION_OPTIONS, ...options };
458
+ this.handleAssertion(false, message, "pass", "fail", opts);
459
+ }
460
+ }
461
+ exports.ApiAssertions = ApiAssertions;
462
+ //# sourceMappingURL=api.assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.assertions.js","sourceRoot":"","sources":["../../src/api/api.assertions.ts"],"names":[],"mappings":";;;AACA,oCAAkD;AAElD;;GAEG;AACH,MAAM,yBAAyB,GAA+B;IAC5D,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,KAAK;CACZ,CAAC;AA6BF;;GAEG;AACH,MAAa,aAAa;IAChB,MAAM,CAAS;IACf,UAAU,GAA6B,EAAE,CAAC;IAElD,YAAY,MAAe;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,cAAM,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,uBAAuB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,uBAAuB;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;iBACvC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,sBAAc,CACtB,GAAG,UAAU,+BAA+B,QAAQ,EAAE,EACtD,YAAY,EACZ,aAAa,CACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,MAAe,EACf,OAAe,EACf,QAAiB,EACjB,MAAe,EACf,OAAyB;QAEzB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;QAChD,MAAM,MAAM,GAA2B;YACrC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,YAAY;YACrB,QAAQ;YACR,MAAM;SACP,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;YAC7D,MAAM,IAAI,sBAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,mDAAmD;IAEnD;;OAEG;IACI,YAAY,CACjB,QAAwB,EACxB,cAAsB,EACtB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,cAAc,CAAC;QAElD,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,mBAAmB,cAAc,SAAS,QAAQ,CAAC,MAAM,EAAE,EAC3D,cAAc,EACd,QAAQ,CAAC,MAAM,EACf,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,QAAQ,CACb,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,aAAa,CAClB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,eAAe,CACpB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,gBAAgB,CACrB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,kBAAkB,CACvB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,eAAe,CACpB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,cAAc,CACnB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,iBAAiB,CACtB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,mBAAmB,CACxB,QAAwB,EACxB,GAAW,EACX,GAAW,EACX,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;QAEhE,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,2BAA2B,GAAG,IAAI,GAAG,SAAS,QAAQ,CAAC,MAAM,EAAE,EAC/D,GAAG,GAAG,IAAI,GAAG,EAAE,EACf,QAAQ,CAAC,MAAM,EACf,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,aAAa,CAClB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC;QAE3B,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,2CAA2C,QAAQ,CAAC,MAAM,EAAE,EAC5D,KAAK,EACL,QAAQ,CAAC,MAAM,EACf,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,iBAAiB,CACtB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE;YAC3C,GAAG,OAAO;YACV,OAAO,EACL,OAAO,CAAC,OAAO;gBACf,oCAAoC,QAAQ,CAAC,MAAM,EAAE;SACxD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,sBAAsB,CAC3B,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE;YAC3C,GAAG,OAAO;YACV,OAAO,EACL,OAAO,CAAC,OAAO;gBACf,oCAAoC,QAAQ,CAAC,MAAM,EAAE;SACxD,CAAC,CAAC;IACL,CAAC;IAED,8CAA8C;IAE9C;;OAEG;IACI,eAAe,CACpB,QAAwB,EACxB,UAAkB,EAClB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CACpD,CAAC;QACF,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC;QAEvC,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,oBAAoB,UAAU,iBAAiB,EAC/C,SAAS,EACT,aAAa,EACb,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,YAAY,CACjB,QAAwB,EACxB,UAAkB,EAClB,aAA8B,EAC9B,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CACpD,CAAC;QACF,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAExE,IAAI,MAAe,CAAC;QACpB,IAAI,aAAa,YAAY,MAAM,EAAE,CAAC;YACpC,MAAM,GAAG,WAAW,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,WAAW,KAAK,aAAa,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,oBAAoB,UAAU,YAAY,aAAa,WAAW,WAAW,GAAG,EAChF,aAAa,EACb,WAAW,EACX,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,oBAAoB,CACzB,QAAwB,EACxB,UAAkB,EAClB,aAAqB,EACrB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CACpD,CAAC;QACF,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEnD,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,oBAAoB,UAAU,iBAAiB,aAAa,WAAW,WAAW,GAAG,EACrF,aAAa,aAAa,GAAG,EAC7B,WAAW,EACX,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,iBAAiB,CACtB,QAAwB,EACxB,YAAoB,EACpB,UAA4B,EAAE;QAE9B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE;YAChE,GAAG,OAAO;YACV,OAAO,EACL,OAAO,CAAC,OAAO,IAAI,qCAAqC,YAAY,GAAG;SAC1E,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,qBAAqB,CAC1B,QAAwB,EACxB,UAA4B,EAAE;QAE9B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,4CAA4C;IAE5C;;OAEG;IACI,UAAU,CACf,QAAwB,EACxB,QAAW,EACX,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE1E,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,uCAAuC,EACvC,QAAQ,EACR,QAAQ,CAAC,IAAI,EACb,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,gBAAgB,CACrB,QAAwB,EACxB,GAAW,EACX,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA+B,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC;QAExE,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,uCAAuC,GAAG,GAAG,EAC7C,SAAS,EACT,aAAa,EACb,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,iBAAiB,CACtB,QAAwB,EACxB,IAAY,EACZ,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC;QAEnC,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,wCAAwC,IAAI,GAAG,EAC/C,UAAU,EACV,cAAc,EACd,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,eAAe,CACpB,QAAwB,EACxB,IAAY,EACZ,QAAW,EACX,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEnE,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,aAAa,IAAI,WAAW,IAAI,CAAC,SAAS,CACxC,QAAQ,CACT,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAClC,QAAQ,EACR,MAAM,EACN,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,iBAAiB,CACtB,QAAwB,EACxB,IAAY,EACZ,OAAe,EACf,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvC,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,aAAa,IAAI,cAAc,OAAO,UAAU,SAAS,GAAG,EAC5D,OAAO,EACP,SAAS,EACT,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,iBAAiB,CACtB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,uCAAuC,EACvC,OAAO,EACP,OAAO,QAAQ,CAAC,IAAI,EACpB,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,qBAAqB,CAC1B,QAAwB,EACxB,cAAsB,EACtB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAiB,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC;QAErE,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,yBAAyB,cAAc,SACrC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cACtC,EAAE,EACF,cAAc,EACd,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,EAClD,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,gCAAgC,CACrC,QAAwB,EACxB,SAAiB,EACjB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAiB,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAE9D,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,2BAA2B,SAAS,SAClC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cACtC,EAAE,EACF,KAAK,SAAS,EAAE,EAChB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,EAClD,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,kBAAkB,CACvB,QAAwB,EACxB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,wCAAwC,EACxC,WAAW,EACX,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAAC;IAED,mDAAmD;IAEnD;;OAEG;IACI,kBAAkB,CACvB,QAAwB,EACxB,SAAiB,EACjB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC;QAEjD,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,4BAA4B,SAAS,WAAW,QAAQ,CAAC,YAAY,IAAI,EACzE,KAAK,SAAS,IAAI,EAClB,GAAG,QAAQ,CAAC,YAAY,IAAI,EAC5B,IAAI,CACL,CAAC;IACJ,CAAC;IAED,8CAA8C;IAE9C;;OAEG;IACI,YAAY,CACjB,QAAwB,EACxB,MAAkB,EAClB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAChD,cAAc,EACd,MAAM,EACN,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,IAAa,EACb,MAAkB,EAClB,IAAY;QAEZ,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,IAAI,MAAM,CAAC;QAEnC,aAAa;QACb,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC;YAE/D,IACE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC3B,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC1C,CAAC;gBACD,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,mBAAmB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,UAAU,EAAE,CACtE,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,aAAa;QACb,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,wBAAwB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChE,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,GAAG,GAAG,IAA+B,CAAC;YAE5C,sBAAsB;YACtB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAClC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,gCAAgC,GAAG,GAAG,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClE,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,cAAc,CACpB,GAAG,CAAC,GAAG,CAAC,EACR,UAAU,EACV,GAAG,WAAW,IAAI,GAAG,EAAE,CACxB,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC3B,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,cAAc,CACpB,IAAI,EACJ,MAAM,CAAC,KAAM,EACb,GAAG,WAAW,IAAI,KAAK,GAAG,CAC3B,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrE,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,mBAAmB,IAAI,CAAC,MAAM,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAC/E,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrE,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,mBAAmB,IAAI,CAAC,MAAM,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAC/E,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,mCAAmC,MAAM,CAAC,OAAO,EAAE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,YAAY,IAAI,cAAc,MAAM,CAAC,OAAO,EAAE,CAC7D,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,YAAY,IAAI,cAAc,MAAM,CAAC,OAAO,EAAE,CAC7D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,4CAA4C;IAE5C;;OAEG;IACK,cAAc,CAAC,GAAY,EAAE,IAAY;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAY,GAAG,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IACE,OAAO,KAAK,IAAI;gBAChB,OAAO,KAAK,SAAS;gBACrB,OAAO,OAAO,KAAK,QAAQ,EAC3B,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,wCAAwC;YACxC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACjD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC;gBAC1C,MAAM,GAAG,GAAI,OAAmC,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,+CAA+C;IAE/C;;OAEG;IACI,UAAU,CACf,SAAkB,EAClB,OAAe,EACf,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACI,WAAW,CAChB,SAAkB,EAClB,OAAe,EACf,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACI,WAAW,CAChB,MAAS,EACT,QAAW,EACX,OAAgB,EAChB,UAA4B,EAAE;QAE9B,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,GAAG,GACP,OAAO;YACP,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAe,EAAE,UAA4B,EAAE;QACzD,MAAM,IAAI,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;CACF;AApyBD,sCAoyBC"}
@@ -0,0 +1,134 @@
1
+ import { ApiResponse } from "../types";
2
+ import { ApiClient } from "./api.client";
3
+ /**
4
+ * Fluent API request builder for constructing and executing HTTP requests.
5
+ */
6
+ export declare class ApiRequestBuilder<T = unknown> {
7
+ private client;
8
+ private method;
9
+ private endpoint;
10
+ private requestData;
11
+ private requestOptions;
12
+ constructor(client: ApiClient);
13
+ /**
14
+ * Set request method to GET
15
+ */
16
+ get(endpoint: string): this;
17
+ /**
18
+ * Set request method to POST
19
+ */
20
+ post(endpoint: string): this;
21
+ /**
22
+ * Set request method to PUT
23
+ */
24
+ put(endpoint: string): this;
25
+ /**
26
+ * Set request method to PATCH
27
+ */
28
+ patch(endpoint: string): this;
29
+ /**
30
+ * Set request method to DELETE
31
+ */
32
+ delete(endpoint: string): this;
33
+ /**
34
+ * Set request method to HEAD
35
+ */
36
+ head(endpoint: string): this;
37
+ /**
38
+ * Set request method to OPTIONS
39
+ */
40
+ options(endpoint: string): this;
41
+ /**
42
+ * Set request body data
43
+ */
44
+ body(data: unknown): this;
45
+ /**
46
+ * Alias for body
47
+ */
48
+ data(data: unknown): this;
49
+ /**
50
+ * Set JSON body data
51
+ */
52
+ json(data: unknown): this;
53
+ /**
54
+ * Set form data
55
+ */
56
+ form(data: Record<string, string>): this;
57
+ /**
58
+ * Set multipart form data
59
+ */
60
+ multipart(data: Record<string, unknown>): this;
61
+ /**
62
+ * Add a single header
63
+ */
64
+ header(name: string, value: string): this;
65
+ /**
66
+ * Add multiple headers
67
+ */
68
+ headers(headers: Record<string, string>): this;
69
+ /**
70
+ * Set bearer token authorization
71
+ */
72
+ bearerToken(token: string): this;
73
+ /**
74
+ * Set basic auth authorization
75
+ */
76
+ basicAuth(username: string, password: string): this;
77
+ /**
78
+ * Add a single query parameter
79
+ */
80
+ param(name: string, value: string): this;
81
+ /**
82
+ * Add multiple query parameters
83
+ */
84
+ params(params: Record<string, string>): this;
85
+ /**
86
+ * Set request timeout
87
+ */
88
+ timeout(ms: number): this;
89
+ /**
90
+ * Set content type
91
+ */
92
+ contentType(type: string): this;
93
+ /**
94
+ * Set accept header
95
+ */
96
+ accept(type: string): this;
97
+ /**
98
+ * Don't fail on non-2xx status codes
99
+ */
100
+ ignoreStatusCode(): this;
101
+ /**
102
+ * Fail on non-2xx status codes (default)
103
+ */
104
+ failOnStatusCode(): this;
105
+ /**
106
+ * Ignore HTTPS errors
107
+ */
108
+ ignoreHTTPS(): this;
109
+ /**
110
+ * Execute the request
111
+ */
112
+ send(): Promise<ApiResponse<T>>;
113
+ /**
114
+ * Alias for send
115
+ */
116
+ execute(): Promise<ApiResponse<T>>;
117
+ /**
118
+ * Execute and return only the response data
119
+ */
120
+ fetchData(): Promise<T>;
121
+ /**
122
+ * Reset builder to initial state
123
+ */
124
+ reset(): this;
125
+ /**
126
+ * Clone the builder
127
+ */
128
+ clone(): ApiRequestBuilder<T>;
129
+ }
130
+ /**
131
+ * Create a new request builder
132
+ */
133
+ export declare function createRequest<T = unknown>(client: ApiClient): ApiRequestBuilder<T>;
134
+ //# sourceMappingURL=api.builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.builder.d.ts","sourceRoot":"","sources":["../../src/api/api.builder.ts"],"names":[],"mappings":"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"}