@appium/types 0.2.1 → 0.2.4

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/build/index.d.ts CHANGED
@@ -1,360 +1,46 @@
1
1
  /// <reference types="node" />
2
2
  import type { Method as _Method } from 'axios';
3
- import type { EventEmitter } from 'events';
4
3
  import type { Server } from 'http';
5
- import type { Logger } from 'npmlog';
6
- import type { Class as _Class, MultidimensionalReadonlyArray } from 'type-fest';
4
+ import type { Class as _Class, ConditionalPick, MultidimensionalReadonlyArray } from 'type-fest';
7
5
  import { ServerArgs } from './config';
8
6
  import { Capabilities, W3CCapabilities } from './capabilities';
7
+ import type { Express } from 'express';
8
+ import { ExternalDriver } from './driver';
9
+ import type { Logger } from 'npmlog';
10
+ export * from './driver';
11
+ export * from './plugin';
9
12
  export { AppiumW3CCapabilities } from './capabilities';
10
13
  export { AppiumConfig, NormalizedAppiumConfig } from './config';
11
14
  export * from './appium-config';
12
15
  export { ServerArgs, Capabilities, W3CCapabilities };
13
16
  /**
14
- * Methods and properties which both `AppiumDriver` and `BaseDriver` inherit.
17
+ * A log prefix for {@linkcode AppiumLogger}
18
+ *
19
+ * If a function, the function will return the prefix. Log messages will be prefixed with this value.
15
20
  */
16
- export interface Core {
17
- sessionId: string | null;
18
- opts: ServerArgs;
19
- initialOpts: ServerArgs;
20
- caps?: Capabilities;
21
- originalCaps?: W3CCapabilities;
22
- protocol?: string;
23
- helpers: DriverHelpers;
24
- basePath: string;
25
- relaxedSecurityEnabled: boolean;
26
- allowInsecure: string[];
27
- denyInsecure: string[];
28
- newCommandTimeoutMs: number;
29
- implicitWaitMs: number;
30
- locatorStrategies: string[];
31
- webLocatorStrategies: string[];
32
- eventEmitter: EventEmitter;
33
- settings: DeviceSettings;
34
- log: AppiumLogger;
35
- driverData?: DriverData;
36
- isCommandsQueueEnabled: boolean;
37
- eventHistory: EventHistory;
38
- desiredCapConstraints: Constraints;
39
- onUnexpectedShutdown(handler: () => any): void;
40
- getStatus(): Promise<unknown>;
41
- logExtraCaps(caps: Capabilities): void;
42
- sessionExists(sessionId: string): boolean;
43
- validateDesiredCaps(caps: Capabilities): boolean;
44
- isW3CProtocol(): boolean;
45
- isMjsonwpProtocol(): boolean;
46
- isFeatureEnabled(name: string): boolean;
47
- ensureFeatureEnabled(name: string): void;
48
- validateLocatorStrategy(strategy: string, webContext?: boolean): void;
49
- proxyActive(sessionId?: string): boolean;
50
- getProxyAvoidList(sessionId?: string): [string, RegExp][];
51
- canProxy(sessionId?: string): boolean;
52
- proxyRouteIsAvoided(sessionId: string, method: string, url: string): boolean;
53
- addManagedDriver(driver: Driver): void;
54
- getManagedDrivers(): Driver[];
55
- clearNewCommandTimeout(): Promise<void>;
56
- logEvent(eventName: string): void;
57
- }
58
- export interface Driver extends SessionCommands, LogCommands, FindCommands, SettingsCommands, TimeoutCommands, EventCommands, SessionHandler<[string, any], void>, Core {
59
- executeCommand(cmd: string, ...args: any[]): Promise<any>;
60
- startUnexpectedShutdown(err?: Error): Promise<void>;
61
- startNewCommandTimeout(): Promise<void>;
62
- reset(): Promise<void>;
63
- assignServer?(server: AppiumServer, host: string, port: number, path: string): void;
64
- }
21
+ export declare type AppiumLoggerPrefix = string | (() => string);
65
22
  /**
66
- * External drivers must subclass `BaseDriver`, and can implement any of these methods.
67
- * None of these are implemented within Appium itself.
23
+ * Possible "log levels" for {@linkcode AppiumLogger}.
24
+ *
25
+ * Extracted from `npmlog`.
26
+ */
27
+ export declare type AppiumLoggerLevel = 'silly' | 'verbose' | 'debug' | 'info' | 'http' | 'warn' | 'error';
28
+ /**
29
+ * Describes the `npmlog`-based internal logger.
30
+ *
31
+ * @see https://npm.im/npmlog
68
32
  */
69
- export interface ExternalDriver extends Driver {
70
- readonly server: AppiumServer;
71
- readonly serverHost: string;
72
- readonly serverPort: number;
73
- readonly serverPath: string;
74
- setUrl?(url: string): Promise<void>;
75
- getUrl?(): Promise<string>;
76
- back?(): Promise<void>;
77
- forward?(): Promise<void>;
78
- refresh?(): Promise<void>;
79
- title?(): Promise<string>;
80
- getWindowHandle?(): Promise<string>;
81
- closeWindow?(): Promise<string[]>;
82
- setWindow?(handle: string): Promise<void>;
83
- getWindowHandles?(): Promise<string[]>;
84
- setFrame?(id: null | number | string): Promise<void>;
85
- getWindowRect?(): Promise<Rect>;
86
- setWindowRect?(x: number, y: number, width: number, height: number): Promise<Rect>;
87
- maximizeWindow?(): Promise<Rect>;
88
- minimizeWindow?(): Promise<Rect>;
89
- fullScreenWindow?(): Promise<Rect>;
90
- createNewWindow?(type?: NewWindowType): Promise<NewWindow>;
91
- active?(): Promise<Element>;
92
- elementSelected?(elementId: string): Promise<boolean>;
93
- getAttribute?(name: string, elementId: string): Promise<string | null>;
94
- getProperty?(name: string, elementId: string): Promise<string | null>;
95
- getCssProperty?(name: string, elementId: string): Promise<string>;
96
- getText?(elementId: string): Promise<string>;
97
- getName?(elementId: string): Promise<string>;
98
- getElementRect?(elementId: string): Promise<Rect>;
99
- elementEnabled?(elementId: string): Promise<boolean>;
100
- elementDisplayed?(elementId: string): Promise<boolean>;
101
- click?(elementId: string): Promise<void>;
102
- clear?(elementId: string): Promise<void>;
103
- setValue?(text: string, elementId: string): Promise<void>;
104
- execute?(script: string, args: unknown[]): Promise<unknown>;
105
- executeAsync?(script: string, args: unknown[]): Promise<unknown>;
106
- getCookies?(): Promise<Cookie[]>;
107
- getCookie?(name: string): Promise<Cookie>;
108
- setCookie?(cookie: Cookie): Promise<void>;
109
- deleteCookie?(name: string): Promise<void>;
110
- deleteCookies?(): Promise<void>;
111
- performActions?(actions: Actions[]): Promise<void>;
112
- releaseActions?(): Promise<void>;
113
- postDismissAlert?(): Promise<void>;
114
- postAcceptAlert?(): Promise<void>;
115
- getAlertText?(): Promise<string | null>;
116
- setAlertText?(text: string): Promise<void>;
117
- getScreenshot?(): Promise<string>;
118
- getElementScreenshot?(elementId: string): Promise<string>;
119
- mobileShake?(): Promise<void>;
120
- getDeviceTime?(format?: string): Promise<string>;
121
- lock?(seconds?: number): Promise<void>;
122
- unlock?(): Promise<void>;
123
- isLocked?(): Promise<boolean>;
124
- startRecordingScreen?(options?: ScreenRecordOptions): Promise<void>;
125
- stopRecordingScreen?(options?: ScreenRecordOptions): Promise<string>;
126
- getPerformanceDataTypes?(): Promise<string[]>;
127
- getPerformanceData?(packageName: string, dataType: string, dataReadTimeout?: number): Promise<string[]>;
128
- pressKeyCode?(keycode: number, metastate?: number, flags?: number): Promise<void>;
129
- longPressKeyCode?(keycode: number, metastate?: number, flags?: number): Promise<void>;
130
- fingerprint?(fingerprintId: number): Promise<void>;
131
- sendSMS?(phoneNumber: string, message: string): Promise<void>;
132
- gsmCall?(phoneNumber: string, action: string): Promise<void>;
133
- gsmSignal?(signalStrength: string): Promise<void>;
134
- gsmVoice?(state: string): Promise<void>;
135
- powerCapacity?(percent: number): Promise<void>;
136
- powerAC?(state: string): Promise<void>;
137
- networkSpeed?(netspeed: string): Promise<void>;
138
- keyevent?(keycode: string, metastate?: string): Promise<void>;
139
- mobileRotation?(x: number, y: number, radius: number, rotation: number, touchCount: number, duration: string, elementId?: string): Promise<void>;
140
- getCurrentActivity?(): Promise<string>;
141
- getCurrentPackage?(): Promise<string>;
142
- installApp?(appPath: string, options?: unknown): Promise<void>;
143
- activateApp?(appId: string, options?: unknown): Promise<void>;
144
- removeApp?(appId: string, options?: unknown): Promise<void>;
145
- terminateApp?(appId: string, options?: unknown): Promise<void>;
146
- isAppInstalled?(appId: string): Promise<boolean>;
147
- queryAppState?(appId: string): Promise<number>;
148
- hideKeyboard?(strategy?: string, key?: string, keyCode?: string, keyName?: string): Promise<void>;
149
- isKeyboardShown?(): Promise<boolean>;
150
- pushFile?(path: string, data: string): Promise<void>;
151
- pullFile?(path: string): Promise<string>;
152
- pullFolder?(path: string): Promise<string>;
153
- toggleFlightMode?(): Promise<void>;
154
- toggleData?(): Promise<void>;
155
- toggleWiFi?(): Promise<void>;
156
- toggleLocationServices?(): Promise<void>;
157
- openNotifications?(): Promise<void>;
158
- startActivity?(appPackage: string, appActivity: string, appWaitPackage?: string, appWaitActivity?: string, intentAction?: string, intentCategory?: string, intentFlags?: string, optionalIntentArguments?: string, dontStopAppOnReset?: boolean): Promise<void>;
159
- getSystemBars?(): Promise<unknown[]>;
160
- getDisplayDensity?(): Promise<number>;
161
- touchId?(match: boolean): Promise<void>;
162
- toggleEnrollTouchId?(enabled: boolean): Promise<void>;
163
- launchApp?(): Promise<void>;
164
- closeApp?(): Promise<void>;
165
- background?(seconds: null | number): Promise<void>;
166
- endCoverage?(intent: string, path: string): Promise<void>;
167
- getStrings?(language?: string, stringFile?: string): Promise<Record<string, unknown>>;
168
- setValueImmediate?(value: string, elementId: string): Promise<void>;
169
- replaceValue?(value: string, elementId: string): Promise<void>;
170
- receiveAsyncResponse?(response: unknown): Promise<void>;
171
- setClipboard?(content: string, contentType?: string, label?: string): Promise<void>;
172
- getClipboard?(contentType?: string): Promise<string>;
173
- asyncScriptTimeout?(ms: number): Promise<void>;
174
- getWindowSize?(): Promise<Size>;
175
- getLocation?(elementId: string): Promise<Position>;
176
- getLocationInView?(elementId: string): Promise<Position>;
177
- getSize?(elementId: string): Promise<Size>;
178
- elementShadowRoot?(elementId: string): Promise<Element>;
179
- findElementFromShadowRoot?(strategy: string, selector: string, shadowId: string): Promise<Element>;
180
- findElementsFromShadowRoot?(strategy: string, selector: string, shadowId: string): Promise<Element[]>;
181
- equalsElement?(elementId: string, otherElementId: string): Promise<boolean>;
182
- submit?(elementId: string): Promise<void>;
183
- keys?(value: string[]): Promise<void>;
184
- availableIMEEngines?(): Promise<string[]>;
185
- getActiveIMEEngine?(): Promise<string>;
186
- isIMEActivated?(): Promise<boolean>;
187
- deactivateIMEEngine?(): Promise<void>;
188
- activateIMEEngine?(engine: string): Promise<void>;
189
- getOrientation?(): Promise<string>;
190
- setOrientation?(orientation: string): Promise<void>;
191
- moveTo?(element?: null | string, xOffset?: number, yOffset?: number): Promise<void>;
192
- buttonDown?(button?: number): Promise<void>;
193
- buttonUp?(button?: number): Promise<void>;
194
- clickCurrent?(button?: number): Promise<void>;
195
- doubleClick?(): Promise<void>;
196
- touchDown?(x: number, y: number): Promise<void>;
197
- touchUp?(x: number, y: number): Promise<void>;
198
- touchMove?(x: number, y: number): Promise<void>;
199
- touchLongClick?(elementId: string): Promise<void>;
200
- flick?(element?: string, xSpeed?: number, ySpeed?: number, xOffset?: number, yOffset?: number, speed?: number): Promise<void>;
201
- getGeoLocation?(): Promise<Location>;
202
- setGeoLocation?(location: Partial<Location>): Promise<void>;
203
- getCurrentContext?(): Promise<string | null>;
204
- setContext?(name: string): Promise<void>;
205
- getContexts?(): Promise<string[]>;
206
- getPageIndex?(elementId: string): Promise<string>;
207
- getNetworkConnection?(): Promise<number>;
208
- setNetworkConnection?(type: number): Promise<void>;
209
- performTouch?(actions: unknown): Promise<void>;
210
- performMultiAction?(actions: unknown, elementId: string): Promise<void>;
211
- getRotation?(): Promise<Rotation>;
212
- setRotation?(x: number, y: number, z: number): Promise<void>;
213
- executeCdp?(cmd: string, params: unknown): Promise<unknown>;
214
- addVirtualAuthenticator?(protocol: string, transport: string, hasResidentKey?: boolean, hasUserVerification?: boolean, isUserConsenting?: boolean, isUserVerified?: boolean): Promise<void>;
215
- removeVirtualAuthenticator?(): Promise<void>;
216
- addAuthCredential?(credentialId: string, isResidentCredential: boolean, rpId: string, privateKey: string, userHandle?: string, signCount?: number): Promise<void>;
217
- getAuthCredential?(): Promise<Credential[]>;
218
- removeAllAuthCredentials?(): Promise<void>;
219
- removeAuthCredential?(): Promise<void>;
220
- setUserAuthVerified?(isUserVerified: boolean): Promise<void>;
221
- proxyCommand?(url: string, method: HTTPMethod, body?: string): Promise<unknown>;
222
- }
223
- export interface Method<T extends ExternalDriver = ExternalDriver> {
224
- command?: keyof T;
225
- neverProxy?: boolean;
226
- payloadParams?: PayloadParams;
227
- }
228
- export interface PayloadParams {
229
- wrap?: string;
230
- unwrap?: string;
231
- required?: Readonly<string[]> | MultidimensionalReadonlyArray<string, 2>;
232
- optional?: Readonly<string[]> | MultidimensionalReadonlyArray<string, 2>;
233
- validate?: (obj: any, protocol: string) => boolean | string | undefined;
234
- makeArgs?: (obj: any) => any;
235
- }
236
- export declare type MethodMap<T extends ExternalDriver = ExternalDriver> = Record<string, Record<string, Method<T>>>;
237
- export interface Constraint {
238
- presence?: boolean | {
239
- allowEmpty: boolean;
240
- };
241
- isString?: boolean;
242
- isNumber?: boolean;
243
- isBoolean?: boolean;
244
- isObject?: boolean;
245
- isArray?: boolean;
246
- deprecated?: boolean;
247
- inclusion?: any[];
248
- }
249
- export declare type Constraints = Record<string, Constraint>;
250
- export interface Element {
251
- 'element-6066-11e4-a52e-4f735466cecf': string;
252
- }
253
- export interface DriverHelpers {
254
- configureApp: (app: string, supportedAppExtensions: string[]) => Promise<string>;
255
- isPackageOrBundle: (app: string) => boolean;
256
- duplicateKeys: <T>(input: T, firstKey: string, secondKey: string) => T;
257
- parseCapsArray: (cap: string | string[]) => string[];
258
- generateDriverLogPrefix: (obj: Core, sessionId?: string) => string;
259
- }
260
- export declare type SettingsUpdateListener<T extends Record<string, unknown> = Record<string, unknown>> = (prop: keyof T, newValue: unknown, curValue: unknown) => Promise<void>;
261
- export interface DeviceSettings<T extends Record<string, unknown> = Record<string, unknown>> {
262
- update(newSettings: T): Promise<void>;
263
- getSettings(): T;
264
- }
265
- export interface LogType<TDriver, LogEntry = string> {
266
- description: string;
267
- getter: (driver: TDriver) => Promise<LogEntry[]>;
268
- }
269
- export interface Rect {
270
- x: number;
271
- y: number;
272
- width: number;
273
- height: number;
274
- }
275
- export declare type NewWindowType = 'tab' | 'window';
276
- export interface NewWindow {
277
- handle: string;
278
- type: NewWindowType;
279
- }
280
- export interface Cookie {
281
- name: string;
282
- value: string;
283
- path?: string;
284
- domain?: string;
285
- secure?: boolean;
286
- httpOnly?: boolean;
287
- expiry?: number;
288
- sameSite?: 'Lax' | 'Strict';
289
- }
290
- export interface Actions {
291
- type?: string;
292
- actions: Action[];
293
- parameters?: {
294
- pointerType?: string;
295
- };
296
- }
297
- export interface Action {
298
- duration?: number;
299
- type: string;
300
- value?: string;
301
- x?: number;
302
- y?: number;
303
- button?: number;
304
- origin?: string;
305
- }
306
- export interface ScreenRecordOptions {
307
- remotePath?: string;
308
- username?: string;
309
- password?: string;
310
- method?: string;
311
- forceRestart?: boolean;
312
- timeLimit?: string;
313
- videoType?: string;
314
- videoQuality?: string;
315
- videoFps?: string;
316
- videoScale?: string;
317
- bitRate?: string;
318
- videoSize?: string;
319
- bugReport?: string;
320
- }
321
- export declare type Size = Pick<Rect, 'width' | 'height'>;
322
- export declare type Position = Pick<Rect, 'x' | 'y'>;
323
- export interface Location {
324
- latitude: number;
325
- longitude: number;
326
- altitude: number;
327
- }
328
- export interface Rotation {
329
- x: number;
330
- y: number;
331
- z: number;
332
- }
333
- export interface Credential {
334
- credentialId: string;
335
- isResidentCredential: boolean;
336
- rpId: string;
337
- privateKey: string;
338
- userHandle?: string;
339
- signCount: number;
340
- largeBlob?: string;
341
- }
342
- export interface EventHistory {
343
- commands: EventHistoryCommand[];
344
- [key: string]: any;
345
- }
346
- export interface EventHistoryCommand {
347
- cmd: string;
348
- startTime: number;
349
- endTime: number;
350
- }
351
- export declare type HTTPMethod = _Method;
352
- export declare type Prefix = string | (() => string);
353
33
  export interface AppiumLogger {
34
+ /**
35
+ * Returns the underlying `npmlog` {@link Logger}.
36
+ */
354
37
  unwrap(): Logger;
355
- level: string;
356
- levels: string[];
357
- prefix?: Prefix;
38
+ level: AppiumLoggerLevel;
39
+ levels: AppiumLoggerLevel[];
40
+ /**
41
+ * Log prefix, if applicable.
42
+ */
43
+ prefix?: AppiumLoggerPrefix;
358
44
  debug: (...args: any[]) => void;
359
45
  info: (...args: any[]) => void;
360
46
  warn: (...args: any[]) => void;
@@ -364,72 +50,87 @@ export interface AppiumLogger {
364
50
  http: (...args: any[]) => void;
365
51
  errorAndThrow: (...args: any[]) => never;
366
52
  }
53
+ /**
54
+ * Appium's slightly-modified {@linkcode Server http.Server}.
55
+ */
367
56
  export declare type AppiumServer = Omit<Server, 'close'> & {
368
57
  close: () => Promise<void>;
369
58
  };
370
- export interface TimeoutCommands {
371
- timeouts(type: string, ms: number | string, script?: number, pageLoad?: number, implicit?: number | string): Promise<void>;
372
- setNewCommandTimeout(ms: number): void;
373
- implicitWait(ms: number | string): Promise<void>;
374
- setImplicitWait(ms: number): void;
375
- implicitWaitForCondition(condition: () => Promise<any>): Promise<unknown>;
376
- getTimeouts(): Promise<Record<string, number>>;
377
- implicitWaitW3C(ms: number): Promise<void>;
378
- implicitWaitMJSONWP(ms: number): Promise<void>;
379
- pageLoadTimeoutW3C(ms: number): Promise<void>;
380
- pageLoadTimeoutMJSONWP(ms: number): Promise<void>;
381
- scriptTimeoutW3C(ms: number): Promise<void>;
382
- scriptTimeoutMJSONWP(ms: number): Promise<void>;
383
- newCommandTimeout(ms: number): Promise<void>;
384
- parseTimeoutArgument(ms: number | string): number;
385
- }
386
- export interface EventCommands {
387
- logCustomEvent(vendor: string, event: string): Promise<void>;
388
- getLogEvents(type?: string | string[]): Promise<EventHistory | Record<string, number>>;
389
- }
390
- export interface SessionCommands {
391
- getSessions(): Promise<MultiSessionData[]>;
392
- getSession(): Promise<SingularSessionData>;
393
- }
394
- export interface MultiSessionData {
395
- id: string;
396
- capabilities: Capabilities;
397
- }
398
- export declare type SingularSessionData = Capabilities & {
399
- events?: EventHistory;
400
- };
401
- export interface FindCommands {
402
- findElement(strategy: string, selector: string): Promise<Element>;
403
- findElements(strategy: string, selector: string): Promise<Element[]>;
404
- findElementFromElement(strategy: string, selector: string, elementId: string): Promise<Element>;
405
- findElementsFromElement(strategy: string, selector: string, elementId: string): Promise<Element[]>;
406
- findElOrEls<Mult extends boolean>(strategy: string, selector: string, mult: Mult, context?: string): Promise<Mult extends true ? Element[] : Element>;
407
- findElOrElsWithProcessing<Mult extends boolean>(strategy: string, selector: string, mult: Mult, context?: string): Promise<Mult extends true ? Element[] : Element>;
408
- getPageSource(): Promise<string>;
409
- }
410
- export interface LogCommands {
411
- supportedLogTypes: Record<string, LogType<Driver>>;
412
- getLogTypes(): Promise<string[]>;
59
+ /**
60
+ * The definition of an extension method, which will be provided via Appium's API.
61
+ *
62
+ */
63
+ export interface Method<T> {
413
64
  /**
414
- * Gets logs
415
- *
416
- * TODO: `logType` should be a key in `supportedLogTypes`, and the return value of this function
417
- * should be the associated `LogType` object's `LogEntry` parameterized type.
418
- * @param logType - Name/key of log type as defined in {@linkcode LogCommands.supportedLogTypes}.
65
+ * Name of the command.
419
66
  */
420
- getLog(logType: string): Promise<any[]>;
421
- }
422
- export interface SettingsCommands {
423
- updateSettings: (settings: Record<string, any>) => Promise<void>;
424
- getSettings(): Promise<Record<string, any>>;
67
+ command?: keyof ConditionalPick<Required<T>, DriverCommand>;
68
+ /**
69
+ * If true, this `Method` will never proxy.
70
+ */
71
+ neverProxy?: boolean;
72
+ /**
73
+ * Specifies shape of payload
74
+ */
75
+ payloadParams?: PayloadParams;
425
76
  }
426
- export interface SessionHandler<CreateResult, DeleteResult> {
427
- createSession(w3cCaps1: W3CCapabilities, w3cCaps2?: W3CCapabilities, w3cCaps?: W3CCapabilities, driverData?: DriverData[]): Promise<CreateResult>;
428
- deleteSession(sessionId?: string, driverData?: DriverData[]): Promise<DeleteResult>;
77
+ /**
78
+ * An instance method of a driver class, whose name may be referenced by {@linkcode Method.command}, and serves as an Appium command.
79
+ *
80
+ * Note that this signature differs from a `PluginCommand`.
81
+ */
82
+ export declare type DriverCommand<TArgs = any, TRetval = unknown> = (...args: TArgs[]) => Promise<TRetval>;
83
+ /**
84
+ * Defines the shape of a payload for a {@linkcode Method}.
85
+ */
86
+ export interface PayloadParams {
87
+ wrap?: string;
88
+ unwrap?: string;
89
+ required?: Readonly<string[]> | MultidimensionalReadonlyArray<string, 2>;
90
+ optional?: Readonly<string[]> | MultidimensionalReadonlyArray<string, 2>;
91
+ validate?: (obj: any, protocol: string) => boolean | string | undefined;
92
+ makeArgs?: (obj: any) => any;
429
93
  }
430
- export declare type DriverData = Record<string, unknown>;
94
+ /**
95
+ * A mapping of URL paths to HTTP methods to {@linkcode Method}s.
96
+ *
97
+ * @todo Should use {@linkcode HTTPMethod} here
98
+ */
99
+ export declare type MethodMap<Extension = ExternalDriver> = Record<string, Record<string, Method<Extension & ExternalDriver>>>;
431
100
  /**
432
101
  * Wraps {@linkcode _Class `type-fest`'s `Class`} to include static members.
433
102
  */
434
103
  export declare type Class<Proto, StaticMembers extends object = {}, Args extends unknown[] = any[]> = _Class<Proto, Args> & StaticMembers;
104
+ /**
105
+ * The string referring to a "driver"-type extension
106
+ */
107
+ export declare type DriverType = 'driver';
108
+ /**
109
+ * The string referring to a "plugin"-type extension
110
+ *
111
+ */
112
+ export declare type PluginType = 'plugin';
113
+ /**
114
+ * The strings referring to all extension types.
115
+ */
116
+ export declare type ExtensionType = DriverType | PluginType;
117
+ /**
118
+ * Optionally updates an Appium express app and http server, by calling
119
+ * methods that may mutate those objects. For example, you could call:
120
+ *
121
+ * `expressApp.get('/foo', handler)`
122
+ *
123
+ * In order to add a new route to Appium with this plugin. Or, you could add
124
+ * new listeners to the httpServer object.
125
+ *
126
+ * @param expressApp - the Express 'app' object used by Appium for route handling
127
+ * @param httpServer - the node HTTP server that hosts the app
128
+ */
129
+ export declare type UpdateServerCallback = (expressApp: Express, httpServer: AppiumServer) => Promise<void>;
130
+ /**
131
+ * Possible HTTP methods, as stolen from `axios`.
132
+ *
133
+ * @see https://npm.im/axios
134
+ */
135
+ export declare type HTTPMethod = _Method;
435
136
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { MethodMap, UpdateServerCallback, Class, AppiumLogger } from '.';
2
+ import { Driver, ExternalDriver } from './driver';
3
+ /**
4
+ * The interface describing the constructor and static properties of a Plugin.
5
+ */
6
+ export interface PluginStatic<T extends Plugin = Plugin> {
7
+ /**
8
+ * Allows a plugin to modify the Appium server instance.
9
+ */
10
+ updateServer?: UpdateServerCallback;
11
+ /**
12
+ * Plugins can define new methods for the Appium server to map to command names, of the same
13
+ * format as used in Appium's `routes.js`, for example, this would be a valid `newMethodMap`:
14
+ * @example
15
+ * {
16
+ * '/session/:sessionId/new_method': {
17
+ * GET: {command: 'getNewThing'},
18
+ * POST: {command: 'setNewThing', payloadParams: {required: ['someParam']}}
19
+ * }
20
+ * }
21
+ */
22
+ newMethodMap?: MethodMap<T>;
23
+ }
24
+ /**
25
+ * An instance of a "plugin" extension.
26
+ *
27
+ * Likewise, the `prototype` of a {@link PluginClass `Plugin` class}.
28
+ */
29
+ export interface Plugin {
30
+ /**
31
+ * Name of the plugin. Derived from the metadata.
32
+ */
33
+ name: string;
34
+ /**
35
+ * A logger with prefix identifying the plugin
36
+ */
37
+ logger: AppiumLogger;
38
+ /**
39
+ * CLI args for this plugin (if any are accepted and provided).
40
+ */
41
+ cliArgs: Record<string, any>;
42
+ /**
43
+ * Listener for unexpected server shutdown, which allows a plugin to do cleanup or take custom actions.
44
+ */
45
+ onUnexpectedShutdown?: (driver: Driver, cause: Error | string) => Promise<void>;
46
+ /**
47
+ * Handle an Appium command, optionally running and using or throwing away the value of the
48
+ * original Appium behavior (or the behavior of the next plugin in a plugin chain).
49
+ */
50
+ handle?: (next: NextPluginCallback, driver: Driver, cmdName: string, ...args: any[]) => Promise<void>;
51
+ }
52
+ /**
53
+ * A reference to an async function which encapsulates what would normally
54
+ * happen if this plugin were not handling a command. Used by {@link PluginInterface.handle}.
55
+ *
56
+ * Given `next()` is a `NextPluginCallback`: if this is the only plugin
57
+ * handling the command, `await next()` would therefore trigger the normal
58
+ * handling logic in the driver which is in use. If another plugin is
59
+ * registered, it would run *that* plugin's `handle` method and return the
60
+ * result for use here. Note that if this plugin does *not* call `await next()`,
61
+ * then the normal command logic will not be run, and this plugin is responsible
62
+ * for managing new command timeouts and command logging, for example:
63
+ * `driver.stopNewCommandTimeout()` -- before running plugin logic
64
+ * `driver.startNewCommandTimeout()` -- after running plugin logic
65
+ * `driver._eventHistory.commands.push({cmd: cmdName, startTime, endTime}) --
66
+ * after running plugin logic
67
+ */
68
+ export declare type NextPluginCallback = () => Promise<void>;
69
+ /**
70
+ * Implementation of a command within a plugin
71
+ */
72
+ export declare type PluginCommand<TArgs = any> = (next: NextPluginCallback, driver: ExternalDriver, ...args: TArgs[]) => Promise<void>;
73
+ /**
74
+ * Mainly for internal use.
75
+ *
76
+ * The third parameter is the possible constructor signatures for the plugin class.
77
+ */
78
+ export declare type PluginClass = Class<Plugin, PluginStatic, [string, Record<string, unknown>]>;
79
+ //# sourceMappingURL=plugin.d.ts.map