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,186 @@
|
|
|
1
|
+
import { Platform, DriverStatus } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Hook event types
|
|
4
|
+
*/
|
|
5
|
+
export declare enum HookEvent {
|
|
6
|
+
BEFORE_DRIVER_INIT = "beforeDriverInit",
|
|
7
|
+
AFTER_DRIVER_INIT = "afterDriverInit",
|
|
8
|
+
BEFORE_DRIVER_QUIT = "beforeDriverQuit",
|
|
9
|
+
AFTER_DRIVER_QUIT = "afterDriverQuit",
|
|
10
|
+
BEFORE_NAVIGATE = "beforeNavigate",
|
|
11
|
+
AFTER_NAVIGATE = "afterNavigate",
|
|
12
|
+
BEFORE_CLICK = "beforeClick",
|
|
13
|
+
AFTER_CLICK = "afterClick",
|
|
14
|
+
BEFORE_TYPE = "beforeType",
|
|
15
|
+
AFTER_TYPE = "afterType",
|
|
16
|
+
BEFORE_REQUEST = "beforeRequest",
|
|
17
|
+
AFTER_REQUEST = "afterRequest",
|
|
18
|
+
BEFORE_SCREENSHOT = "beforeScreenshot",
|
|
19
|
+
AFTER_SCREENSHOT = "afterScreenshot",
|
|
20
|
+
ON_ERROR = "onError",
|
|
21
|
+
CUSTOM = "custom"
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Hook context containing event data
|
|
25
|
+
*/
|
|
26
|
+
export interface HookContext {
|
|
27
|
+
/** Event type */
|
|
28
|
+
event: HookEvent;
|
|
29
|
+
/** Platform */
|
|
30
|
+
platform: Platform;
|
|
31
|
+
/** Timestamp */
|
|
32
|
+
timestamp: Date;
|
|
33
|
+
/** Driver status */
|
|
34
|
+
driverStatus?: DriverStatus;
|
|
35
|
+
/** Additional data */
|
|
36
|
+
data?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Hook function type
|
|
40
|
+
*/
|
|
41
|
+
export type HookFunction = (context: HookContext) => Promise<void> | void;
|
|
42
|
+
/**
|
|
43
|
+
* Hook registration options
|
|
44
|
+
*/
|
|
45
|
+
export interface HookOptions {
|
|
46
|
+
/** Hook name for identification */
|
|
47
|
+
name?: string;
|
|
48
|
+
/** Priority (lower runs first) */
|
|
49
|
+
priority?: number;
|
|
50
|
+
/** Run only once */
|
|
51
|
+
once?: boolean;
|
|
52
|
+
/** Platform filter */
|
|
53
|
+
platforms?: Platform[];
|
|
54
|
+
/** Continue on error */
|
|
55
|
+
continueOnError?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Registered hook entry
|
|
59
|
+
*/
|
|
60
|
+
interface HookEntry {
|
|
61
|
+
id: string;
|
|
62
|
+
name: string;
|
|
63
|
+
fn: HookFunction;
|
|
64
|
+
options: Required<HookOptions>;
|
|
65
|
+
executed: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Hook system for extensibility.
|
|
69
|
+
* Allows registering callbacks for various framework events.
|
|
70
|
+
*/
|
|
71
|
+
export declare class HookManager {
|
|
72
|
+
/** Singleton instance */
|
|
73
|
+
private static instance;
|
|
74
|
+
/** Registered hooks by event */
|
|
75
|
+
private hooks;
|
|
76
|
+
/** Hook ID counter */
|
|
77
|
+
private idCounter;
|
|
78
|
+
/** Logger */
|
|
79
|
+
private logger;
|
|
80
|
+
/** Whether hooks are enabled */
|
|
81
|
+
private enabled;
|
|
82
|
+
constructor();
|
|
83
|
+
/**
|
|
84
|
+
* Get singleton instance
|
|
85
|
+
*/
|
|
86
|
+
static getInstance(): HookManager;
|
|
87
|
+
/**
|
|
88
|
+
* Reset singleton instance
|
|
89
|
+
*/
|
|
90
|
+
static resetInstance(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Register a hook
|
|
93
|
+
*/
|
|
94
|
+
register(event: HookEvent, fn: HookFunction, options?: HookOptions): string;
|
|
95
|
+
/**
|
|
96
|
+
* Register multiple hooks at once
|
|
97
|
+
*/
|
|
98
|
+
registerAll(registrations: Array<{
|
|
99
|
+
event: HookEvent;
|
|
100
|
+
fn: HookFunction;
|
|
101
|
+
options?: HookOptions;
|
|
102
|
+
}>): string[];
|
|
103
|
+
/**
|
|
104
|
+
* Unregister a hook by ID
|
|
105
|
+
*/
|
|
106
|
+
unregister(hookId: string): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Unregister all hooks for an event
|
|
109
|
+
*/
|
|
110
|
+
unregisterEvent(event: HookEvent): void;
|
|
111
|
+
/**
|
|
112
|
+
* Clear all hooks
|
|
113
|
+
*/
|
|
114
|
+
clearAll(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Execute hooks for an event
|
|
117
|
+
*/
|
|
118
|
+
execute(event: HookEvent, context: Omit<HookContext, "event" | "timestamp">): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Create a hook context
|
|
121
|
+
*/
|
|
122
|
+
createContext(platform: Platform, data?: Record<string, unknown>, driverStatus?: DriverStatus): Omit<HookContext, "event" | "timestamp">;
|
|
123
|
+
/**
|
|
124
|
+
* Enable hooks
|
|
125
|
+
*/
|
|
126
|
+
enable(): void;
|
|
127
|
+
/**
|
|
128
|
+
* Disable hooks
|
|
129
|
+
*/
|
|
130
|
+
disable(): void;
|
|
131
|
+
/**
|
|
132
|
+
* Check if hooks are enabled
|
|
133
|
+
*/
|
|
134
|
+
isEnabled(): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Get registered hooks for an event
|
|
137
|
+
*/
|
|
138
|
+
getHooks(event: HookEvent): HookEntry[];
|
|
139
|
+
/**
|
|
140
|
+
* Get all registered hooks
|
|
141
|
+
*/
|
|
142
|
+
getAllHooks(): Map<HookEvent, HookEntry[]>;
|
|
143
|
+
/**
|
|
144
|
+
* Get hook count
|
|
145
|
+
*/
|
|
146
|
+
getHookCount(event?: HookEvent): number;
|
|
147
|
+
/**
|
|
148
|
+
* Register before driver init hook
|
|
149
|
+
*/
|
|
150
|
+
beforeDriverInit(fn: HookFunction, options?: HookOptions): string;
|
|
151
|
+
/**
|
|
152
|
+
* Register after driver init hook
|
|
153
|
+
*/
|
|
154
|
+
afterDriverInit(fn: HookFunction, options?: HookOptions): string;
|
|
155
|
+
/**
|
|
156
|
+
* Register before driver quit hook
|
|
157
|
+
*/
|
|
158
|
+
beforeDriverQuit(fn: HookFunction, options?: HookOptions): string;
|
|
159
|
+
/**
|
|
160
|
+
* Register after driver quit hook
|
|
161
|
+
*/
|
|
162
|
+
afterDriverQuit(fn: HookFunction, options?: HookOptions): string;
|
|
163
|
+
/**
|
|
164
|
+
* Register error hook
|
|
165
|
+
*/
|
|
166
|
+
onError(fn: HookFunction, options?: HookOptions): string;
|
|
167
|
+
/**
|
|
168
|
+
* Register before navigate hook (web)
|
|
169
|
+
*/
|
|
170
|
+
beforeNavigate(fn: HookFunction, options?: HookOptions): string;
|
|
171
|
+
/**
|
|
172
|
+
* Register after navigate hook (web)
|
|
173
|
+
*/
|
|
174
|
+
afterNavigate(fn: HookFunction, options?: HookOptions): string;
|
|
175
|
+
/**
|
|
176
|
+
* Register before API request hook
|
|
177
|
+
*/
|
|
178
|
+
beforeRequest(fn: HookFunction, options?: HookOptions): string;
|
|
179
|
+
/**
|
|
180
|
+
* Register after API request hook
|
|
181
|
+
*/
|
|
182
|
+
afterRequest(fn: HookFunction, options?: HookOptions): string;
|
|
183
|
+
}
|
|
184
|
+
export declare const getHookManager: () => HookManager;
|
|
185
|
+
export {};
|
|
186
|
+
//# sourceMappingURL=hook.manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.manager.d.ts","sourceRoot":"","sources":["../../src/core/hook.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGlD;;GAEG;AACH,oBAAY,SAAS;IAEnB,kBAAkB,qBAAqB;IACvC,iBAAiB,oBAAoB;IACrC,kBAAkB,qBAAqB;IACvC,iBAAiB,oBAAoB;IAGrC,eAAe,mBAAmB;IAClC,cAAc,kBAAkB;IAGhC,YAAY,gBAAgB;IAC5B,WAAW,eAAe;IAC1B,WAAW,eAAe;IAC1B,UAAU,cAAc;IAGxB,cAAc,kBAAkB;IAChC,aAAa,iBAAiB;IAG9B,iBAAiB,qBAAqB;IACtC,gBAAgB,oBAAoB;IAGpC,QAAQ,YAAY;IAGpB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,oBAAoB;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,YAAY,CAAC;IACjB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IAEnD,gCAAgC;IAChC,OAAO,CAAC,KAAK,CAA0C;IAEvD,sBAAsB;IACtB,OAAO,CAAC,SAAS,CAAa;IAE9B,aAAa;IACb,OAAO,CAAC,MAAM,CAAS;IAEvB,gCAAgC;IAChC,OAAO,CAAC,OAAO,CAAiB;;IAMhC;;OAEG;WACW,WAAW,IAAI,WAAW;IAOxC;;OAEG;WACW,aAAa,IAAI,IAAI;IAInC;;OAEG;IACI,QAAQ,CACb,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,YAAY,EAChB,OAAO,GAAE,WAAgB,GACxB,MAAM;IA6BT;;OAEG;IACI,WAAW,CAChB,aAAa,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,SAAS,CAAC;QACjB,EAAE,EAAE,YAAY,CAAC;QACjB,OAAO,CAAC,EAAE,WAAW,CAAC;KACvB,CAAC,GACD,MAAM,EAAE;IAMX;;OAEG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAY1C;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK9C;;OAEG;IACI,QAAQ,IAAI,IAAI;IAKvB;;OAEG;IACU,OAAO,CAClB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,CAAC,GAChD,OAAO,CAAC,IAAI,CAAC;IAwDhB;;OAEG;IACI,aAAa,CAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,CAAC,EAAE,YAAY,GAC1B,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,CAAC;IAQ3C;;OAEG;IACI,MAAM,IAAI,IAAI;IAKrB;;OAEG;IACI,OAAO,IAAI,IAAI;IAKtB;;OAEG;IACI,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE;IAI9C;;OAEG;IACI,WAAW,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;IAIjD;;OAEG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM;IAY9C;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;IAIxE;;OAEG;IACI,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;IAIvE;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;IAIxE;;OAEG;IACI,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;IAIvE;;OAEG;IACI,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;IAI/D;;OAEG;IACI,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;IAOtE;;OAEG;IACI,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;IAOrE;;OAEG;IACI,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;IAOrE;;OAEG;IACI,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM;CAMrE;AAGD,eAAO,MAAM,cAAc,QAAO,WAAwC,CAAC"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getHookManager = exports.HookManager = exports.HookEvent = void 0;
|
|
4
|
+
const types_1 = require("../types");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
/**
|
|
7
|
+
* Hook event types
|
|
8
|
+
*/
|
|
9
|
+
var HookEvent;
|
|
10
|
+
(function (HookEvent) {
|
|
11
|
+
// Driver lifecycle
|
|
12
|
+
HookEvent["BEFORE_DRIVER_INIT"] = "beforeDriverInit";
|
|
13
|
+
HookEvent["AFTER_DRIVER_INIT"] = "afterDriverInit";
|
|
14
|
+
HookEvent["BEFORE_DRIVER_QUIT"] = "beforeDriverQuit";
|
|
15
|
+
HookEvent["AFTER_DRIVER_QUIT"] = "afterDriverQuit";
|
|
16
|
+
// Navigation (Web)
|
|
17
|
+
HookEvent["BEFORE_NAVIGATE"] = "beforeNavigate";
|
|
18
|
+
HookEvent["AFTER_NAVIGATE"] = "afterNavigate";
|
|
19
|
+
// Element actions
|
|
20
|
+
HookEvent["BEFORE_CLICK"] = "beforeClick";
|
|
21
|
+
HookEvent["AFTER_CLICK"] = "afterClick";
|
|
22
|
+
HookEvent["BEFORE_TYPE"] = "beforeType";
|
|
23
|
+
HookEvent["AFTER_TYPE"] = "afterType";
|
|
24
|
+
// API requests
|
|
25
|
+
HookEvent["BEFORE_REQUEST"] = "beforeRequest";
|
|
26
|
+
HookEvent["AFTER_REQUEST"] = "afterRequest";
|
|
27
|
+
// Screenshots
|
|
28
|
+
HookEvent["BEFORE_SCREENSHOT"] = "beforeScreenshot";
|
|
29
|
+
HookEvent["AFTER_SCREENSHOT"] = "afterScreenshot";
|
|
30
|
+
// Errors
|
|
31
|
+
HookEvent["ON_ERROR"] = "onError";
|
|
32
|
+
// Custom events
|
|
33
|
+
HookEvent["CUSTOM"] = "custom";
|
|
34
|
+
})(HookEvent || (exports.HookEvent = HookEvent = {}));
|
|
35
|
+
/**
|
|
36
|
+
* Hook system for extensibility.
|
|
37
|
+
* Allows registering callbacks for various framework events.
|
|
38
|
+
*/
|
|
39
|
+
class HookManager {
|
|
40
|
+
/** Singleton instance */
|
|
41
|
+
static instance = null;
|
|
42
|
+
/** Registered hooks by event */
|
|
43
|
+
hooks = new Map();
|
|
44
|
+
/** Hook ID counter */
|
|
45
|
+
idCounter = 0;
|
|
46
|
+
/** Logger */
|
|
47
|
+
logger;
|
|
48
|
+
/** Whether hooks are enabled */
|
|
49
|
+
enabled = true;
|
|
50
|
+
constructor() {
|
|
51
|
+
this.logger = utils_1.Logger.createLogger("HookManager");
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get singleton instance
|
|
55
|
+
*/
|
|
56
|
+
static getInstance() {
|
|
57
|
+
if (!HookManager.instance) {
|
|
58
|
+
HookManager.instance = new HookManager();
|
|
59
|
+
}
|
|
60
|
+
return HookManager.instance;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Reset singleton instance
|
|
64
|
+
*/
|
|
65
|
+
static resetInstance() {
|
|
66
|
+
HookManager.instance = null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Register a hook
|
|
70
|
+
*/
|
|
71
|
+
register(event, fn, options = {}) {
|
|
72
|
+
const id = `hook-${++this.idCounter}`;
|
|
73
|
+
const entry = {
|
|
74
|
+
id,
|
|
75
|
+
name: options.name || id,
|
|
76
|
+
fn,
|
|
77
|
+
options: {
|
|
78
|
+
name: options.name || id,
|
|
79
|
+
priority: options.priority ?? 100,
|
|
80
|
+
once: options.once ?? false,
|
|
81
|
+
platforms: options.platforms || [],
|
|
82
|
+
continueOnError: options.continueOnError ?? true,
|
|
83
|
+
},
|
|
84
|
+
executed: false,
|
|
85
|
+
};
|
|
86
|
+
const hooks = this.hooks.get(event) || [];
|
|
87
|
+
hooks.push(entry);
|
|
88
|
+
// Sort by priority
|
|
89
|
+
hooks.sort((a, b) => a.options.priority - b.options.priority);
|
|
90
|
+
this.hooks.set(event, hooks);
|
|
91
|
+
this.logger.debug(`Registered hook: ${entry.name} for event: ${event}`);
|
|
92
|
+
return id;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Register multiple hooks at once
|
|
96
|
+
*/
|
|
97
|
+
registerAll(registrations) {
|
|
98
|
+
return registrations.map(({ event, fn, options }) => this.register(event, fn, options));
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Unregister a hook by ID
|
|
102
|
+
*/
|
|
103
|
+
unregister(hookId) {
|
|
104
|
+
for (const [_event, hooks] of this.hooks.entries()) {
|
|
105
|
+
const index = hooks.findIndex((h) => h.id === hookId);
|
|
106
|
+
if (index !== -1) {
|
|
107
|
+
hooks.splice(index, 1);
|
|
108
|
+
this.logger.debug(`Unregistered hook: ${hookId}`);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Unregister all hooks for an event
|
|
116
|
+
*/
|
|
117
|
+
unregisterEvent(event) {
|
|
118
|
+
this.hooks.delete(event);
|
|
119
|
+
this.logger.debug(`Unregistered all hooks for event: ${event}`);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Clear all hooks
|
|
123
|
+
*/
|
|
124
|
+
clearAll() {
|
|
125
|
+
this.hooks.clear();
|
|
126
|
+
this.logger.debug("Cleared all hooks");
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Execute hooks for an event
|
|
130
|
+
*/
|
|
131
|
+
async execute(event, context) {
|
|
132
|
+
if (!this.enabled) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const hooks = this.hooks.get(event) || [];
|
|
136
|
+
if (hooks.length === 0) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const fullContext = {
|
|
140
|
+
...context,
|
|
141
|
+
event,
|
|
142
|
+
timestamp: new Date(),
|
|
143
|
+
};
|
|
144
|
+
this.logger.debug(`Executing ${hooks.length} hooks for event: ${event}`);
|
|
145
|
+
const toRemove = [];
|
|
146
|
+
for (const hook of hooks) {
|
|
147
|
+
// Check platform filter
|
|
148
|
+
if (hook.options.platforms.length > 0 &&
|
|
149
|
+
!hook.options.platforms.includes(context.platform)) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
// Check if already executed (for once-only hooks)
|
|
153
|
+
if (hook.options.once && hook.executed) {
|
|
154
|
+
toRemove.push(hook.id);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
this.logger.trace(`Executing hook: ${hook.name}`);
|
|
159
|
+
await hook.fn(fullContext);
|
|
160
|
+
hook.executed = true;
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
this.logger.error(`Hook error in ${hook.name}: ${error.message}`);
|
|
164
|
+
if (!hook.options.continueOnError) {
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Remove once-only hooks that have executed
|
|
170
|
+
for (const id of toRemove) {
|
|
171
|
+
this.unregister(id);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Create a hook context
|
|
176
|
+
*/
|
|
177
|
+
createContext(platform, data, driverStatus) {
|
|
178
|
+
return {
|
|
179
|
+
platform,
|
|
180
|
+
data,
|
|
181
|
+
driverStatus,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Enable hooks
|
|
186
|
+
*/
|
|
187
|
+
enable() {
|
|
188
|
+
this.enabled = true;
|
|
189
|
+
this.logger.debug("Hooks enabled");
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Disable hooks
|
|
193
|
+
*/
|
|
194
|
+
disable() {
|
|
195
|
+
this.enabled = false;
|
|
196
|
+
this.logger.debug("Hooks disabled");
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Check if hooks are enabled
|
|
200
|
+
*/
|
|
201
|
+
isEnabled() {
|
|
202
|
+
return this.enabled;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Get registered hooks for an event
|
|
206
|
+
*/
|
|
207
|
+
getHooks(event) {
|
|
208
|
+
return this.hooks.get(event) || [];
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Get all registered hooks
|
|
212
|
+
*/
|
|
213
|
+
getAllHooks() {
|
|
214
|
+
return new Map(this.hooks);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Get hook count
|
|
218
|
+
*/
|
|
219
|
+
getHookCount(event) {
|
|
220
|
+
if (event) {
|
|
221
|
+
return this.hooks.get(event)?.length || 0;
|
|
222
|
+
}
|
|
223
|
+
return Array.from(this.hooks.values()).reduce((sum, hookList) => sum + hookList.length, 0);
|
|
224
|
+
}
|
|
225
|
+
// Convenience methods for common hooks
|
|
226
|
+
/**
|
|
227
|
+
* Register before driver init hook
|
|
228
|
+
*/
|
|
229
|
+
beforeDriverInit(fn, options) {
|
|
230
|
+
return this.register(HookEvent.BEFORE_DRIVER_INIT, fn, options);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Register after driver init hook
|
|
234
|
+
*/
|
|
235
|
+
afterDriverInit(fn, options) {
|
|
236
|
+
return this.register(HookEvent.AFTER_DRIVER_INIT, fn, options);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Register before driver quit hook
|
|
240
|
+
*/
|
|
241
|
+
beforeDriverQuit(fn, options) {
|
|
242
|
+
return this.register(HookEvent.BEFORE_DRIVER_QUIT, fn, options);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Register after driver quit hook
|
|
246
|
+
*/
|
|
247
|
+
afterDriverQuit(fn, options) {
|
|
248
|
+
return this.register(HookEvent.AFTER_DRIVER_QUIT, fn, options);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Register error hook
|
|
252
|
+
*/
|
|
253
|
+
onError(fn, options) {
|
|
254
|
+
return this.register(HookEvent.ON_ERROR, fn, options);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Register before navigate hook (web)
|
|
258
|
+
*/
|
|
259
|
+
beforeNavigate(fn, options) {
|
|
260
|
+
return this.register(HookEvent.BEFORE_NAVIGATE, fn, {
|
|
261
|
+
...options,
|
|
262
|
+
platforms: [types_1.Platform.WEB],
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Register after navigate hook (web)
|
|
267
|
+
*/
|
|
268
|
+
afterNavigate(fn, options) {
|
|
269
|
+
return this.register(HookEvent.AFTER_NAVIGATE, fn, {
|
|
270
|
+
...options,
|
|
271
|
+
platforms: [types_1.Platform.WEB],
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Register before API request hook
|
|
276
|
+
*/
|
|
277
|
+
beforeRequest(fn, options) {
|
|
278
|
+
return this.register(HookEvent.BEFORE_REQUEST, fn, {
|
|
279
|
+
...options,
|
|
280
|
+
platforms: [types_1.Platform.API],
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Register after API request hook
|
|
285
|
+
*/
|
|
286
|
+
afterRequest(fn, options) {
|
|
287
|
+
return this.register(HookEvent.AFTER_REQUEST, fn, {
|
|
288
|
+
...options,
|
|
289
|
+
platforms: [types_1.Platform.API],
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
exports.HookManager = HookManager;
|
|
294
|
+
// Export convenience function
|
|
295
|
+
const getHookManager = () => HookManager.getInstance();
|
|
296
|
+
exports.getHookManager = getHookManager;
|
|
297
|
+
//# sourceMappingURL=hook.manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.manager.js","sourceRoot":"","sources":["../../src/core/hook.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Module - Base classes and factories for all platform drivers
|
|
3
|
+
*/
|
|
4
|
+
export { BaseDriver } from "./base.driver";
|
|
5
|
+
export { DriverFactory, DriverOptions, DriverClass, getDriverFactory, } from "./driver.factory";
|
|
6
|
+
export { ElementActions, LocatorResolver, ElementChecker, } from "./element.actions";
|
|
7
|
+
export { HookManager, HookEvent, HookContext, HookFunction, HookOptions, getHookManager, } from "./hook.manager";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Core Module - Base classes and factories for all platform drivers
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getHookManager = exports.HookEvent = exports.HookManager = exports.ElementActions = exports.getDriverFactory = exports.DriverFactory = exports.BaseDriver = void 0;
|
|
7
|
+
// Base Driver
|
|
8
|
+
var base_driver_1 = require("./base.driver");
|
|
9
|
+
Object.defineProperty(exports, "BaseDriver", { enumerable: true, get: function () { return base_driver_1.BaseDriver; } });
|
|
10
|
+
// Driver Factory
|
|
11
|
+
var driver_factory_1 = require("./driver.factory");
|
|
12
|
+
Object.defineProperty(exports, "DriverFactory", { enumerable: true, get: function () { return driver_factory_1.DriverFactory; } });
|
|
13
|
+
Object.defineProperty(exports, "getDriverFactory", { enumerable: true, get: function () { return driver_factory_1.getDriverFactory; } });
|
|
14
|
+
// Element Actions
|
|
15
|
+
var element_actions_1 = require("./element.actions");
|
|
16
|
+
Object.defineProperty(exports, "ElementActions", { enumerable: true, get: function () { return element_actions_1.ElementActions; } });
|
|
17
|
+
// Hook Manager
|
|
18
|
+
var hook_manager_1 = require("./hook.manager");
|
|
19
|
+
Object.defineProperty(exports, "HookManager", { enumerable: true, get: function () { return hook_manager_1.HookManager; } });
|
|
20
|
+
Object.defineProperty(exports, "HookEvent", { enumerable: true, get: function () { return hook_manager_1.HookEvent; } });
|
|
21
|
+
Object.defineProperty(exports, "getHookManager", { enumerable: true, get: function () { return hook_manager_1.getHookManager; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,cAAc;AACd,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAEnB,iBAAiB;AACjB,mDAK0B;AAJxB,+GAAA,aAAa,OAAA;AAGb,kHAAA,gBAAgB,OAAA;AAGlB,kBAAkB;AAClB,qDAI2B;AAHzB,iHAAA,cAAc,OAAA;AAKhB,eAAe;AACf,+CAOwB;AANtB,2GAAA,WAAW,OAAA;AACX,yGAAA,SAAS,OAAA;AAIT,8GAAA,cAAc,OAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playwright-Core Framework
|
|
3
|
+
*
|
|
4
|
+
* A unified automation framework supporting:
|
|
5
|
+
* - Web automation (Playwright)
|
|
6
|
+
* - API testing (Playwright Request)
|
|
7
|
+
* - Mobile automation (WebdriverIO + Appium)
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
11
|
+
export { Platform, BrowserType, MobilePlatform, AutomationEngine, LogLevel, HttpMethod, BaseConfig, ViewportConfig, WebConfig, ApiConfig, MobileConfig, FrameworkConfig, Locator, ActionOptions, ScreenshotOptions, WaitOptions, DriverStatus, IDriver, IWebDriver, IApiDriver, IMobileDriver, ApiRequestOptions, ApiResponse, SwipeOptions, ElementState, BoundingBox, ElementInfo, Cookie, NetworkRequest, NetworkResponse, ConsoleMessage, DialogInfo, FrameInfo, WindowInfo, DownloadInfo, FileChooserOptions, RetryOptions, OperationResult, AssertionOptions, PerformanceMetrics, } from "./types";
|
|
12
|
+
export { Logger, LoggerOptions, LogMetadata, getLogger, WaitUtils, WaitTimeoutError, RetryExhaustedError, ConditionFn, PredicateFn, waitUtils, sleep, waitFor, retry, ConfigManager, ConfigSource, ConfigLoadResult, getConfig, FrameworkError, DriverInitializationError, DriverNotInitializedError, ElementNotFoundError, ElementNotInteractableError, NavigationError, ApiRequestError, ApiValidationError, MobileOperationError, ConfigurationError, ScreenshotError, SessionError, ContextError, AssertionError, NetworkError, FileOperationError, wrapError, isFrameworkError, isErrorOfType, deepMerge, deepClone, isObject, generateId, generateUUID, formatTimestamp, ensureDir, saveJson, loadJson, formatBytes, formatDuration, truncate, escapeRegex, camelToKebab, kebabToCamel, toTitleCase, isCI, getOSPlatform, safeJsonParse, debounce, throttle, measureTime, mapToObject, objectToMap, pick, omit, deepEqual, flattenObject, getNestedValue, setNestedValue, } from "./utils";
|
|
13
|
+
export { BaseDriver, DriverFactory, DriverOptions, DriverClass, getDriverFactory, ElementActions, LocatorResolver, ElementChecker, HookManager, HookEvent, HookContext, HookFunction, HookOptions, getHookManager, } from "./core";
|
|
14
|
+
export { WebDriver, WebPage, TypeOptions, ClickOptions, SelectOption, DragDropOptions, WebAssertions, SoftAssertionResult, Page, Browser, BrowserContext, PlaywrightLocator, FrameLocator, ElementHandle, Response, Request, Route, Dialog, Download, FileChooser, PlaywrightConsoleMessage, } from "./web";
|
|
15
|
+
export { ApiClient, ApiAssertions, ApiSoftAssertionResult, JsonSchema, ApiRequestBuilder, createRequest, APIRequestContext, APIResponse, } from "./api";
|
|
16
|
+
export { MobileDriver, TouchPoint, GestureOptions, AppState, MobileAssertions, MobileSoftAssertionResult, WebdriverBrowser, WebdriverElement, } from "./mobile";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAEL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,UAAU,EAGV,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe,EAGf,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,YAAY,EAGZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,MAAM,EACN,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAEL,MAAM,EACN,aAAa,EACb,WAAW,EACX,SAAS,EAGT,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAAK,EAGL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,SAAS,EAGT,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,aAAa,EAGb,SAAS,EACT,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,cAAc,EACd,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,aAAa,EACb,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,OAAO,EAEL,UAAU,EAGV,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAGhB,cAAc,EACd,eAAe,EACf,cAAc,EAGd,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAEL,SAAS,EAGT,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EAGf,aAAa,EACb,mBAAmB,EAGnB,IAAI,EACJ,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,WAAW,EACX,wBAAwB,GACzB,MAAM,OAAO,CAAC;AAGf,OAAO,EAEL,SAAS,EAGT,aAAa,EACb,sBAAsB,EACtB,UAAU,EAGV,iBAAiB,EACjB,aAAa,EAGb,iBAAiB,EACjB,WAAW,GACZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAEL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,QAAQ,EAGR,gBAAgB,EAChB,yBAAyB,EAGzB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,UAAU,CAAC"}
|