@applitools/core 4.56.2 → 4.56.3

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.
@@ -1,15 +0,0 @@
1
- import type { Ref, ServerSocket, UniversalSpecDriver } from './types';
2
- import type { SpecType, SpecDriver as BaseSpecDriver, CommonSelector } from '@applitools/driver';
3
- export type Driver = Ref;
4
- export type Context = Ref;
5
- export type Element = Ref;
6
- export type Selector = string | CommonSelector | Ref;
7
- export type UserFunction = Ref;
8
- export type PrimarySpecType = SpecType<Driver, Context, Element, Selector, never, UserFunction>;
9
- export type SpecDriver = BaseSpecDriver<PrimarySpecType>;
10
- type CommandName = keyof UniversalSpecDriver<PrimarySpecType>;
11
- export declare function makeSpec({ socket, spec, }: {
12
- socket: ServerSocket<PrimarySpecType, any>;
13
- spec: CommandName[];
14
- }): SpecDriver;
15
- export {};
@@ -1,205 +0,0 @@
1
- import type { Size, Region } from '@applitools/utils';
2
- import type { Emitter, Listener, Client, Server } from '@applitools/socket';
3
- import type { SpecType, DriverInfo, Cookie, WaitOptions } from '@applitools/driver';
4
- import type * as MainCore from '../types';
5
- /**
6
- * Wraps the type with a ref if it vas to be refed
7
- */
8
- type Refify<TValue> = TValue extends string | number | boolean | null | undefined ? TValue : TValue extends Array<infer TItem> ? Refify<TItem>[] : Extract<TValue[keyof TValue], (...args: any) => any> extends never ? TValue : Ref<TValue>;
9
- /**
10
- * Creates universalized object out of an ordinary interface:
11
- * - Filters out properties that are not of async function type
12
- * - Adds domain to the method names (`Domain.methodName`)
13
- * - Keep only first (`options`) argument of the methods
14
- * - Introduces additional option to the methods with a ref of the current instance
15
- * - Refifies return values of the methods
16
- */
17
- type Universalize<TTarget extends Record<string, any>, TDomain extends string, TRefKey extends string = never> = {
18
- [TKey in keyof TTarget as NonNullable<TTarget[TKey]> extends (...args: any[]) => Promise<any> ? `${TDomain}.${TKey & string}` : never]: NonNullable<TTarget[TKey]> extends (options: infer TOptions) => Promise<infer TResult> ? (options: TOptions & {
19
- [TKey in TRefKey]: Ref<TTarget>;
20
- }) => Promise<Refify<TResult>> : never;
21
- };
22
- export type Ref<TValue = never> = {
23
- 'applitools-ref-id': string;
24
- type?: string;
25
- };
26
- export type ClientSocket<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = unknown & Emitter<Universalize<UniversalCore<TSpec, TType>, 'Core'>> & Client<Universalize<MainCore.Core<TSpec, TType>, 'Core'>> & Client<Universalize<MainCore.EyesManager<TSpec, TType>, 'EyesManager', 'manager'>> & Client<Universalize<MainCore.Eyes<TSpec, TType>, 'Eyes', 'eyes'>> & Client<Universalize<UniversalDebug<TSpec>, 'Debug'>> & Server<Universalize<UniversalSpecDriver<TSpec>, 'Driver'>>;
27
- export type ServerSocket<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = unknown & Listener<Universalize<UniversalCore<TSpec, TType>, 'Core'>> & Emitter<Universalize<UniversalLogger, 'Logger'>> & Server<Universalize<MainCore.Core<TSpec, TType>, 'Core'>> & Server<Universalize<MainCore.EyesManager<TSpec, TType>, 'EyesManager', 'manager'>> & Server<Universalize<MainCore.Eyes<TSpec, TType>, 'Eyes', 'eyes'>> & Server<Universalize<UniversalDebug<TSpec>, 'Debug'>> & Client<Universalize<UniversalSpecDriver<TSpec>, 'Driver'>>;
28
- export interface UniversalCore<TSpec extends SpecType, TType extends 'classic' | 'ufg'> {
29
- makeCore(options: {
30
- spec: 'webdriver' | (keyof UniversalSpecDriver<TSpec>)[];
31
- agentId: string;
32
- environment?: Record<string, any>;
33
- cwd: string;
34
- }): Promise<MainCore.Core<TSpec, TType>>;
35
- }
36
- export interface UniversalLogger {
37
- log(options: {
38
- level: string;
39
- message: string;
40
- }): Promise<void>;
41
- }
42
- export interface UniversalDebug<TSpec extends SpecType> {
43
- getHistory(): Promise<any>;
44
- checkSpecDriver(options: {
45
- driver: TSpec['driver'];
46
- commands: (keyof UniversalSpecDriver<TSpec>)[];
47
- }): Promise<any>;
48
- }
49
- /**
50
- * Ideally would be transform SpecDriver type to the type with single object argument
51
- * but typescript doesn't have a possibility to convert named tuples to object types at the moment
52
- */
53
- export interface UniversalSpecDriver<T extends SpecType> {
54
- isEqualElements(options: {
55
- context: T['context'];
56
- element1: T['element'];
57
- element2: T['element'];
58
- }): Promise<boolean>;
59
- executeScript(options: {
60
- context: T['context'];
61
- script: string;
62
- arg?: any;
63
- }): Promise<any>;
64
- findElement(options: {
65
- context: T['context'];
66
- selector: T['selector'];
67
- parent?: T['element'];
68
- }): Promise<T['element'] | null>;
69
- findElements(options: {
70
- context: T['context'];
71
- selector: T['selector'];
72
- parent?: T['element'];
73
- }): Promise<T['element'][]>;
74
- waitForSelector(options: {
75
- context: T['context'];
76
- selector: T['selector'];
77
- parent?: T['element'];
78
- options?: WaitOptions;
79
- }): Promise<T['element'] | null>;
80
- getElementRegion(options: {
81
- context: T['context'];
82
- element: T['element'];
83
- }): Promise<Region>;
84
- getElementAttribute(options: {
85
- context: T['context'];
86
- element: T['element'];
87
- attr: string;
88
- }): Promise<string>;
89
- setElementText(options: {
90
- context: T['context'];
91
- element: T['element'];
92
- text: string;
93
- }): Promise<void>;
94
- getElementText(options: {
95
- context: T['context'];
96
- element: T['element'];
97
- }): Promise<string>;
98
- hover(options: {
99
- context: T['context'];
100
- element: T['element'];
101
- }): Promise<void>;
102
- click(options: {
103
- context: T['context'];
104
- element: T['element'];
105
- }): Promise<void>;
106
- mainContext(options: {
107
- context: T['context'];
108
- }): Promise<T['context']>;
109
- parentContext(options: {
110
- context: T['context'];
111
- }): Promise<T['context']>;
112
- childContext(options: {
113
- context: T['context'];
114
- element: T['element'];
115
- }): Promise<T['context']>;
116
- getDriverInfo(options: {
117
- driver: T['driver'];
118
- }): Promise<DriverInfo>;
119
- getCapabilities(options: {
120
- driver: T['driver'];
121
- }): Promise<Record<string, any>>;
122
- setWindowSize(options: {
123
- driver: T['driver'];
124
- size: Size;
125
- }): Promise<void>;
126
- getWindowSize(options: {
127
- driver: T['driver'];
128
- }): Promise<Size>;
129
- setViewportSize(options: {
130
- driver: T['driver'];
131
- size: Size;
132
- }): Promise<void>;
133
- getViewportSize(options: {
134
- driver: T['driver'];
135
- }): Promise<Size>;
136
- getSystemBars(options: {
137
- driver: T['driver'];
138
- }): Promise<{
139
- statusBar: {
140
- visible: boolean;
141
- x: number;
142
- y: number;
143
- height: number;
144
- width: number;
145
- };
146
- navigationBar: {
147
- visible: boolean;
148
- x: number;
149
- y: number;
150
- height: number;
151
- width: number;
152
- };
153
- }>;
154
- getOrientation(options: {
155
- driver: T['driver'];
156
- }): Promise<'portrait' | 'landscape' | 'portrait-secondary' | 'landscape-secondary'>;
157
- setOrientation(options: {
158
- driver: T['driver'];
159
- orientation: 'portrait' | 'landscape' | 'portrait-secondary' | 'landscape-secondary';
160
- }): Promise<void>;
161
- getCookies(options: {
162
- driver: T['driver'] | T['context'];
163
- context?: boolean;
164
- }): Promise<Cookie[]>;
165
- getTitle(options: {
166
- driver: T['driver'];
167
- }): Promise<string>;
168
- getUrl(options: {
169
- driver: T['driver'];
170
- }): Promise<string>;
171
- takeScreenshot(options: {
172
- driver: T['driver'];
173
- }): Promise<string>;
174
- performAction(options: {
175
- driver: T['driver'];
176
- steps: any[];
177
- }): Promise<void>;
178
- visit(options: {
179
- driver: T['driver'];
180
- url: string;
181
- }): Promise<void>;
182
- getCurrentWorld(options: {
183
- driver: T['driver'];
184
- }): Promise<string>;
185
- getWorlds(options: {
186
- driver: T['driver'];
187
- }): Promise<string[]>;
188
- switchWorld(options: {
189
- driver: T['driver'];
190
- name: string;
191
- }): Promise<void>;
192
- reload(options: {
193
- driver: T['driver'];
194
- }): Promise<void>;
195
- isUserFunction(ref: any): Promise<boolean>;
196
- executeUserFunction(userFunction: Ref): Promise<any>;
197
- executeBrowserCommands(options: {
198
- driver?: T['driver'];
199
- commands: any[];
200
- }): Promise<any>;
201
- bringToFront(options: {
202
- driver: T['driver'];
203
- }): Promise<void>;
204
- }
205
- export {};
@@ -1,15 +0,0 @@
1
- /// <reference types="node" />
2
- import { Server as WsServer } from 'ws';
3
- import { Logger } from '@applitools/logger';
4
- export type ServerOptions = {
5
- port?: number;
6
- singleton?: boolean;
7
- portResolutionMode?: 'next' | 'random' | 'lazy';
8
- debug?: boolean;
9
- key?: string | Buffer;
10
- cert?: string | Buffer;
11
- };
12
- export declare function makeServer(options: ServerOptions | undefined, logger: Logger): Promise<{
13
- server?: WsServer;
14
- port: number;
15
- }>;