@appium/types 0.4.1 → 0.6.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 (49) hide show
  1. package/build/{action.d.ts → lib/action.d.ts} +0 -0
  2. package/build/lib/action.d.ts.map +1 -0
  3. package/build/lib/action.js +85 -0
  4. package/build/lib/action.js.map +1 -0
  5. package/build/{appium-config.d.ts → lib/appium-config.d.ts} +39 -1
  6. package/build/lib/appium-config.d.ts.map +1 -0
  7. package/build/lib/appium-config.js +9 -0
  8. package/build/lib/appium-config.js.map +1 -0
  9. package/build/lib/capabilities.d.ts +126 -0
  10. package/build/lib/capabilities.d.ts.map +1 -0
  11. package/build/lib/capabilities.js +3 -0
  12. package/build/lib/capabilities.js.map +1 -0
  13. package/build/{config.d.ts → lib/config.d.ts} +0 -0
  14. package/build/lib/config.d.ts.map +1 -0
  15. package/build/lib/config.js +4 -0
  16. package/build/lib/config.js.map +1 -0
  17. package/build/lib/constraints.d.ts +65 -0
  18. package/build/lib/constraints.d.ts.map +1 -0
  19. package/build/lib/constraints.js +58 -0
  20. package/build/lib/constraints.js.map +1 -0
  21. package/build/{driver.d.ts → lib/driver.d.ts} +104 -71
  22. package/build/lib/driver.d.ts.map +1 -0
  23. package/build/lib/driver.js +3 -0
  24. package/build/lib/driver.js.map +1 -0
  25. package/build/{index.d.ts → lib/index.d.ts} +29 -24
  26. package/build/lib/index.d.ts.map +1 -0
  27. package/build/lib/index.js +26 -0
  28. package/build/lib/index.js.map +1 -0
  29. package/build/{plugin.d.ts → lib/plugin.d.ts} +6 -3
  30. package/build/lib/plugin.d.ts.map +1 -0
  31. package/build/lib/plugin.js +3 -0
  32. package/build/lib/plugin.js.map +1 -0
  33. package/build/tsconfig.tsbuildinfo +1 -0
  34. package/index.js +1 -0
  35. package/lib/appium-config.ts +39 -1
  36. package/lib/capabilities.ts +164 -32
  37. package/lib/constraints.js +55 -0
  38. package/lib/driver.ts +148 -88
  39. package/lib/index.ts +60 -45
  40. package/lib/plugin.ts +7 -3
  41. package/package.json +23 -17
  42. package/build/action.d.ts.map +0 -1
  43. package/build/appium-config.d.ts.map +0 -1
  44. package/build/capabilities.d.ts +0 -47
  45. package/build/capabilities.d.ts.map +0 -1
  46. package/build/config.d.ts.map +0 -1
  47. package/build/driver.d.ts.map +0 -1
  48. package/build/index.d.ts.map +0 -1
  49. package/build/plugin.d.ts.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /// <reference types="node" />
2
2
  import type { EventEmitter } from 'events';
3
3
  import { Element, ActionSequence } from './action';
4
- import { HTTPMethod, Capabilities, AppiumServer, UpdateServerCallback, Class, MethodMap, AppiumLogger } from '.';
5
- import { W3CCapabilities } from './capabilities';
4
+ import { HTTPMethod, AppiumServer, UpdateServerCallback, Class, MethodMap, AppiumLogger, StringRecord, ConstraintsToCaps, BaseDriverCapConstraints, W3CCapabilities, Capabilities } from '.';
6
5
  import { ServerArgs } from './config';
7
- export interface TimeoutCommands {
6
+ import { AsyncReturnType, ConditionalPick } from 'type-fest';
7
+ export interface ITimeoutCommands {
8
8
  timeouts(type: string, ms: number | string, script?: number, pageLoad?: number, implicit?: number | string): Promise<void>;
9
9
  setNewCommandTimeout(ms: number): void;
10
10
  implicitWait(ms: number | string): Promise<void>;
@@ -20,59 +20,87 @@ export interface TimeoutCommands {
20
20
  newCommandTimeout(ms: number): Promise<void>;
21
21
  parseTimeoutArgument(ms: number | string): number;
22
22
  }
23
- export interface EventCommands {
23
+ export interface IEventCommands {
24
24
  logCustomEvent(vendor: string, event: string): Promise<void>;
25
25
  getLogEvents(type?: string | string[]): Promise<EventHistory | Record<string, number>>;
26
26
  }
27
- export interface SessionCommands {
27
+ export interface ISessionCommands {
28
28
  getSessions(): Promise<MultiSessionData[]>;
29
29
  getSession(): Promise<SingularSessionData>;
30
30
  }
31
- export interface ExecuteCommands {
32
- executeMethod(script: string, args: [Record<string, any>] | []): Promise<any>;
31
+ export interface IExecuteCommands {
32
+ executeMethod(script: string, args: [StringRecord] | []): Promise<any>;
33
33
  }
34
- export interface ExecuteMethodDef {
35
- command: string;
34
+ export interface ExecuteMethodDef<D> {
35
+ command: keyof ConditionalPick<Required<D>, DriverCommand>;
36
36
  params?: {
37
- required?: string[];
38
- optional?: string[];
37
+ required?: ReadonlyArray<string>;
38
+ optional?: ReadonlyArray<string>;
39
39
  };
40
40
  }
41
- export declare type ExecuteMethodMap = Record<string, ExecuteMethodDef>;
42
- export interface MultiSessionData {
41
+ export declare type ExecuteMethodMap<D> = Readonly<Record<string, Readonly<ExecuteMethodDef<D>>>>;
42
+ export interface MultiSessionData<C extends Constraints = BaseDriverCapConstraints, Extra extends StringRecord | void = void> {
43
43
  id: string;
44
- capabilities: Capabilities;
44
+ capabilities: Capabilities<C, Extra>;
45
45
  }
46
- export declare type SingularSessionData = Capabilities & {
46
+ export declare type SingularSessionData<C extends Constraints = BaseDriverCapConstraints, Extra extends StringRecord | void = void> = Capabilities<C, Extra> & {
47
47
  events?: EventHistory;
48
+ error?: string;
48
49
  };
49
- export interface FindCommands {
50
+ export interface IFindCommands<Ctx = any> {
50
51
  findElement(strategy: string, selector: string): Promise<Element>;
51
52
  findElements(strategy: string, selector: string): Promise<Element[]>;
52
53
  findElementFromElement(strategy: string, selector: string, elementId: string): Promise<Element>;
53
54
  findElementsFromElement(strategy: string, selector: string, elementId: string): Promise<Element[]>;
54
- findElOrEls<Mult extends boolean>(strategy: string, selector: string, mult: Mult, context?: string): Promise<Mult extends true ? Element[] : Element>;
55
- findElOrElsWithProcessing<Mult extends boolean>(strategy: string, selector: string, mult: Mult, context?: string): Promise<Mult extends true ? Element[] : Element>;
55
+ findElOrEls<Mult extends boolean>(strategy: string, selector: string, mult: Mult, context?: Ctx): Promise<Mult extends true ? Element[] : Element>;
56
+ findElOrElsWithProcessing<Mult extends boolean>(strategy: string, selector: string, mult: Mult, context?: Ctx): Promise<Mult extends true ? Element[] : Element>;
56
57
  getPageSource(): Promise<string>;
57
58
  }
58
- export interface LogCommands {
59
- supportedLogTypes: Record<string, LogType<Driver>>;
60
- getLogTypes(): Promise<string[]>;
59
+ export interface ILogCommands<C extends Constraints> {
61
60
  /**
62
- * Gets logs
61
+ * Definition of the available log types
62
+ */
63
+ supportedLogTypes: Readonly<LogDefRecord<C>>;
64
+ /**
65
+ * Get available log types as a list of strings
66
+ */
67
+ getLogTypes(): Promise<(keyof ILogCommands<C>['supportedLogTypes'])[]>;
68
+ /**
69
+ * Get the log for a given log type.
63
70
  *
64
- * TODO: `logType` should be a key in `supportedLogTypes`, and the return value of this function
65
- * should be the associated `LogType` object's `LogEntry` parameterized type.
66
- * @param logType - Name/key of log type as defined in {@linkcode LogCommands.supportedLogTypes}.
71
+ * @param logType - Name/key of log type as defined in {@linkcode ILogCommands.supportedLogTypes}.
67
72
  */
68
- getLog(logType: string): Promise<any[]>;
73
+ getLog(logType: keyof ILogCommands<C>['supportedLogTypes']): Promise<AsyncReturnType<ILogCommands<C>['supportedLogTypes'][keyof ILogCommands<C>['supportedLogTypes']]['getter']>>;
69
74
  }
70
- export interface SettingsCommands {
71
- updateSettings: (settings: Record<string, any>) => Promise<void>;
72
- getSettings(): Promise<Record<string, any>>;
75
+ /**
76
+ * A record of {@linkcode LogDef} objects, keyed by the log type name.
77
+ * Used in {@linkcode ILogCommands.supportedLogTypes}
78
+ */
79
+ export declare type LogDefRecord<C extends Constraints> = Record<string, LogDef<C>>;
80
+ /**
81
+ * A definition of a log type
82
+ */
83
+ export interface LogDef<C extends Constraints, T = unknown> {
84
+ /**
85
+ * Description of the log type.
86
+ *
87
+ * The only place this is used is in error messages if the client provides an invalid log type
88
+ * via {@linkcode ILogCommands.getLog}.
89
+ */
90
+ description: string;
91
+ /**
92
+ * Returns all the log data for the given type
93
+ *
94
+ * This implementation *should* drain, truncate or otherwise reset the log buffer.
95
+ */
96
+ getter: (driver: Driver<C>) => Promise<T[]>;
97
+ }
98
+ export interface ISettingsCommands {
99
+ updateSettings: (settings: StringRecord) => Promise<void>;
100
+ getSettings(): Promise<StringRecord>;
73
101
  }
74
- export interface SessionHandler<CreateResult, DeleteResult> {
75
- createSession(w3cCaps1: W3CCapabilities, w3cCaps2?: W3CCapabilities, w3cCaps?: W3CCapabilities, driverData?: DriverData[]): Promise<CreateResult>;
102
+ export interface SessionHandler<CreateResult, DeleteResult, C extends Constraints = BaseDriverCapConstraints, Extra extends StringRecord | void = void> {
103
+ createSession(w3cCaps1: W3CCapabilities<C, Extra>, w3cCaps2?: W3CCapabilities<C, Extra>, w3cCaps?: W3CCapabilities<C, Extra>, driverData?: DriverData[]): Promise<CreateResult>;
76
104
  deleteSession(sessionId?: string, driverData?: DriverData[]): Promise<DeleteResult>;
77
105
  }
78
106
  /**
@@ -93,35 +121,31 @@ export declare type DriverData = Record<string, unknown>;
93
121
  * }
94
122
  */
95
123
  export interface Constraint {
96
- presence?: boolean | {
124
+ readonly presence?: boolean | Readonly<{
97
125
  allowEmpty: boolean;
98
- };
99
- isString?: boolean;
100
- isNumber?: boolean;
101
- isBoolean?: boolean;
102
- isObject?: boolean;
103
- isArray?: boolean;
104
- deprecated?: boolean;
105
- inclusion?: any[];
106
- inclusionCaseInsensitive?: any[];
126
+ }>;
127
+ readonly isString?: boolean;
128
+ readonly isNumber?: boolean;
129
+ readonly isBoolean?: boolean;
130
+ readonly isObject?: boolean;
131
+ readonly isArray?: boolean;
132
+ readonly deprecated?: boolean;
133
+ readonly inclusion?: Readonly<[any, ...any[]]>;
134
+ readonly inclusionCaseInsensitive?: Readonly<[any, ...any[]]>;
107
135
  }
108
- export declare type Constraints = Record<string, Constraint>;
109
- export interface DriverHelpers {
136
+ export declare type Constraints = Readonly<Record<string, Constraint>>;
137
+ export interface DriverHelpers<C extends Constraints> {
110
138
  configureApp: (app: string, supportedAppExtensions: string[]) => Promise<string>;
111
139
  isPackageOrBundle: (app: string) => boolean;
112
140
  duplicateKeys: <T>(input: T, firstKey: string, secondKey: string) => T;
113
141
  parseCapsArray: (cap: string | string[]) => string[];
114
- generateDriverLogPrefix: (obj: Core, sessionId?: string) => string;
142
+ generateDriverLogPrefix: (obj: Core<C>, sessionId?: string) => string;
115
143
  }
116
144
  export declare type SettingsUpdateListener<T extends Record<string, unknown> = Record<string, unknown>> = (prop: keyof T, newValue: unknown, curValue: unknown) => Promise<void>;
117
145
  export interface DeviceSettings<T = any> {
118
146
  update(newSettings: Record<string, T>): Promise<void>;
119
147
  getSettings(): Record<string, T>;
120
148
  }
121
- export interface LogType<TDriver, LogEntry = string> {
122
- description: string;
123
- getter: (driver: TDriver) => Promise<LogEntry[]>;
124
- }
125
149
  export interface Rect {
126
150
  x: number;
127
151
  y: number;
@@ -163,7 +187,7 @@ export declare type Position = Pick<Rect, 'x' | 'y'>;
163
187
  export interface Location {
164
188
  latitude: number;
165
189
  longitude: number;
166
- altitude: number;
190
+ altitude?: number;
167
191
  }
168
192
  export interface Rotation {
169
193
  x: number;
@@ -193,15 +217,13 @@ export interface EventHistoryCommand {
193
217
  *
194
218
  * This should not be used directly by external code.
195
219
  */
196
- export interface Core {
220
+ export interface Core<C extends Constraints = BaseDriverCapConstraints> {
197
221
  shouldValidateCaps: boolean;
198
222
  sessionId: string | null;
199
- opts: DriverOpts;
223
+ opts: DriverOpts<C>;
200
224
  initialOpts: ServerArgs;
201
- caps?: Capabilities;
202
- originalCaps?: W3CCapabilities;
203
225
  protocol?: string;
204
- helpers: DriverHelpers;
226
+ helpers: DriverHelpers<C>;
205
227
  basePath: string;
206
228
  relaxedSecurityEnabled: boolean;
207
229
  allowInsecure: string[];
@@ -232,32 +254,38 @@ export interface Core {
232
254
  getManagedDrivers(): Driver[];
233
255
  clearNewCommandTimeout(): Promise<void>;
234
256
  logEvent(eventName: string): void;
235
- driverForSession(sessionId: string): Core | null;
257
+ driverForSession(sessionId: string): Core<C> | null;
236
258
  }
237
259
  /**
238
260
  * `BaseDriver` implements this. It contains default behavior;
239
261
  * external drivers are expected to implement {@linkcode ExternalDriver} instead.
262
+ *
263
+ * `C` should be the constraints of the driver.
264
+ * `CArgs` would be the shape of `cliArgs`.
265
+ * `Ctx` would be the type of the element context (e.g., string, dictionary of some sort, etc.)
240
266
  */
241
- export interface Driver extends SessionCommands, LogCommands, FindCommands, SettingsCommands, TimeoutCommands, EventCommands, SessionHandler<[string, any], void>, ExecuteCommands, Core {
242
- cliArgs?: Record<string, any>;
267
+ export interface Driver<C extends Constraints = BaseDriverCapConstraints, CArgs extends StringRecord = StringRecord, Ctx = any> extends ISessionCommands, ILogCommands<C>, IFindCommands<Ctx>, ISettingsCommands, ITimeoutCommands, IEventCommands, IExecuteCommands, SessionHandler<[string, any], void, C>, Core {
268
+ cliArgs: CArgs;
243
269
  executeCommand(cmd: string, ...args: any[]): Promise<any>;
244
270
  startUnexpectedShutdown(err?: Error): Promise<void>;
245
271
  startNewCommandTimeout(): Promise<void>;
246
272
  reset(): Promise<void>;
247
- desiredCapConstraints: Constraints;
248
- validateDesiredCaps(caps: Capabilities): boolean;
249
- logExtraCaps(caps: Capabilities): void;
273
+ caps?: Capabilities<C>;
274
+ originalCaps?: W3CCapabilities<C>;
275
+ desiredCapConstraints: C;
276
+ validateDesiredCaps(caps: Capabilities<C>): boolean;
277
+ logExtraCaps(caps: Capabilities<C>): void;
250
278
  assignServer?(server: AppiumServer, host: string, port: number, path: string): void;
251
279
  }
252
280
  /**
253
281
  * External drivers must subclass `BaseDriver`, and can implement any of these methods.
254
282
  * None of these are implemented within Appium itself.
255
283
  */
256
- export interface ExternalDriver extends Driver {
257
- server: AppiumServer;
258
- serverHost: string;
259
- serverPort: number;
260
- serverPath: string;
284
+ export interface ExternalDriver<C extends Constraints = BaseDriverCapConstraints> extends Driver<C> {
285
+ server?: AppiumServer;
286
+ serverHost?: string;
287
+ serverPort?: number;
288
+ serverPath?: string;
261
289
  setUrl?(url: string): Promise<void>;
262
290
  getUrl?(): Promise<string>;
263
291
  back?(): Promise<void>;
@@ -405,31 +433,36 @@ export interface ExternalDriver extends Driver {
405
433
  removeAllAuthCredentials?(): Promise<void>;
406
434
  removeAuthCredential?(): Promise<void>;
407
435
  setUserAuthVerified?(isUserVerified: boolean): Promise<void>;
408
- proxyCommand?(url: string, method: HTTPMethod, body?: string): Promise<unknown>;
436
+ proxyCommand?<T = any>(url: string, method: HTTPMethod, body?: string): Promise<T>;
409
437
  }
410
438
  /**
411
439
  * Static members of a {@linkcode DriverClass}.
412
440
  *
413
441
  * This is likely unusable by external consumers, but YMMV!
414
442
  */
415
- export interface DriverStatic {
443
+ export interface DriverStatic<D extends Driver> {
416
444
  baseVersion: string;
417
445
  updateServer?: UpdateServerCallback;
418
- newMethodMap?: MethodMap<ExternalDriver>;
419
- executeMethodMap: ExecuteMethodMap;
446
+ newMethodMap?: MethodMap<D>;
447
+ executeMethodMap?: ExecuteMethodMap<D>;
420
448
  }
421
449
  /**
422
450
  * Represents a driver class, which is used internally by Appium.
423
451
  *
424
452
  * This is likely unusable by external consumers, but YMMV!
425
453
  */
426
- export declare type DriverClass<D extends Driver = ExternalDriver, S extends DriverStatic = DriverStatic> = Class<D, S, [] | [Partial<ServerArgs>] | [Partial<ServerArgs>, boolean]>;
454
+ export declare type DriverClass<D extends Driver = ExternalDriver> = Class<D, DriverStatic<D>, [
455
+ ] | [Partial<ServerArgs>] | [Partial<ServerArgs>, boolean]>;
456
+ export interface ExtraDriverOpts {
457
+ fastReset?: boolean;
458
+ skipUninstall?: boolean;
459
+ }
427
460
  /**
428
461
  * Options as passed into a driver constructor, which is just a union of {@linkcode ServerArgs} and {@linkcode Capabilities}.
429
462
  *
430
463
  * The combination happens within Appium prior to calling the constructor.
431
464
  */
432
- export declare type DriverOpts = ServerArgs & Capabilities;
465
+ export declare type DriverOpts<C extends Constraints = BaseDriverCapConstraints> = ServerArgs & ExtraDriverOpts & Partial<ConstraintsToCaps<C>>;
433
466
  export declare type DriverCommand<TArgs = any, TReturn = unknown> = (...args: TArgs[]) => Promise<TReturn>;
434
467
  export declare type DriverCommands<TArgs = any, TReturn = unknown> = Record<string, DriverCommand<TArgs, TReturn>>;
435
468
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":""}
@@ -1,21 +1,24 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
- import type { Server as WSServer } from 'ws';
4
- import type { Socket } from 'net';
3
+ import type { Express } from 'express';
5
4
  import type { Server } from 'http';
5
+ import type { Socket } from 'net';
6
+ import type { Logger } from 'npmlog';
6
7
  import type { Class as _Class, ConditionalPick, MultidimensionalReadonlyArray } from 'type-fest';
8
+ import type { Server as WSServer } from 'ws';
7
9
  import { ServerArgs } from './config';
8
- import { Capabilities, W3CCapabilities } from './capabilities';
9
- import type { Express } from 'express';
10
- import { ExternalDriver } from './driver';
11
- import type { Logger } from 'npmlog';
12
- export * from './driver';
13
10
  export * from './action';
14
- export * from './plugin';
15
- export { AppiumW3CCapabilities } from './capabilities';
16
- export { AppiumConfig, NormalizedAppiumConfig } from './config';
17
11
  export * from './appium-config';
18
- export { ServerArgs, Capabilities, W3CCapabilities };
12
+ export * from './capabilities';
13
+ export * from './config';
14
+ export { BASE_DESIRED_CAP_CONSTRAINTS } from './constraints';
15
+ export type { BaseDriverCapConstraints } from './constraints';
16
+ export * from './driver';
17
+ export * from './plugin';
18
+ /**
19
+ * Utility type for a object with string-only props
20
+ */
21
+ export declare type StringRecord = Record<string, any>;
19
22
  /**
20
23
  * A log prefix for {@linkcode AppiumLogger}
21
24
  *
@@ -72,43 +75,45 @@ export interface AppiumServerSocket extends Socket {
72
75
  * The definition of an extension method, which will be provided via Appium's API.
73
76
  *
74
77
  */
75
- export interface Method<T> {
78
+ export interface MethodDef<Ext> {
76
79
  /**
77
80
  * Name of the command.
78
81
  */
79
- command?: keyof ConditionalPick<Required<T>, DriverCommand>;
82
+ readonly command?: keyof ConditionalPick<Required<Ext>, DriverCommand>;
80
83
  /**
81
84
  * If true, this `Method` will never proxy.
82
85
  */
83
- neverProxy?: boolean;
86
+ readonly neverProxy?: boolean;
84
87
  /**
85
88
  * Specifies shape of payload
86
89
  */
87
- payloadParams?: PayloadParams;
90
+ readonly payloadParams?: PayloadParams;
88
91
  }
89
92
  /**
90
- * An instance method of a driver class, whose name may be referenced by {@linkcode Method.command}, and serves as an Appium command.
93
+ * An instance method of a driver class, whose name may be referenced by {@linkcode MethodDef.command}, and serves as an Appium command.
91
94
  *
92
95
  * Note that this signature differs from a `PluginCommand`.
93
96
  */
94
97
  export declare type DriverCommand<TArgs = any, TRetval = unknown> = (...args: TArgs[]) => Promise<TRetval>;
95
98
  /**
96
- * Defines the shape of a payload for a {@linkcode Method}.
99
+ * Defines the shape of a payload for a {@linkcode MethodDef}.
97
100
  */
98
101
  export interface PayloadParams {
99
102
  wrap?: string;
100
103
  unwrap?: string;
101
- required?: Readonly<string[]> | MultidimensionalReadonlyArray<string, 2>;
102
- optional?: Readonly<string[]> | MultidimensionalReadonlyArray<string, 2>;
104
+ required?: ReadonlyArray<string> | MultidimensionalReadonlyArray<string, 2>;
105
+ optional?: ReadonlyArray<string> | MultidimensionalReadonlyArray<string, 2>;
103
106
  validate?: (obj: any, protocol: string) => boolean | string | undefined;
104
107
  makeArgs?: (obj: any) => any;
105
108
  }
106
109
  /**
107
- * A mapping of URL paths to HTTP methods to {@linkcode Method}s.
108
- *
109
- * @todo Should use {@linkcode HTTPMethod} here
110
+ * A mapping of URL paths to HTTP methods to {@linkcode MethodDef}s.
110
111
  */
111
- export declare type MethodMap<Extension = ExternalDriver> = Record<string, Record<string, Method<Extension & ExternalDriver>>>;
112
+ export declare type MethodMap<Ext = any> = Readonly<Record<string, {
113
+ GET?: MethodDef<Ext>;
114
+ POST?: MethodDef<Ext>;
115
+ DELETE?: MethodDef<Ext>;
116
+ }>>;
112
117
  /**
113
118
  * Wraps {@linkcode _Class `type-fest`'s `Class`} to include static members.
114
119
  */
@@ -139,7 +144,7 @@ export declare type ExtensionType = DriverType | PluginType;
139
144
  * @param httpServer - the node HTTP server that hosts the app
140
145
  * @param cliArgs - Arguments from config files, CLI, etc.
141
146
  */
142
- export declare type UpdateServerCallback = (expressApp: Express, httpServer: AppiumServer, cliArgs: ServerArgs) => Promise<void>;
147
+ export declare type UpdateServerCallback = (expressApp: Express, httpServer: AppiumServer, cliArgs: Partial<ServerArgs>) => Promise<void>;
143
148
  /**
144
149
  * Possible HTTP methods, as stolen from `axios`.
145
150
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.BASE_DESIRED_CAP_CONSTRAINTS = void 0;
18
+ __exportStar(require("./action"), exports);
19
+ __exportStar(require("./appium-config"), exports);
20
+ __exportStar(require("./capabilities"), exports);
21
+ __exportStar(require("./config"), exports);
22
+ var constraints_1 = require("./constraints");
23
+ Object.defineProperty(exports, "BASE_DESIRED_CAP_CONSTRAINTS", { enumerable: true, get: function () { return constraints_1.BASE_DESIRED_CAP_CONSTRAINTS; } });
24
+ __exportStar(require("./driver"), exports);
25
+ __exportStar(require("./plugin"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,2CAAyB;AACzB,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,6CAA2D;AAAnD,2HAAA,4BAA4B,OAAA;AAEpC,2CAAyB;AACzB,2CAAyB"}
@@ -3,7 +3,7 @@ import { Driver, ExternalDriver } from './driver';
3
3
  /**
4
4
  * The interface describing the constructor and static properties of a Plugin.
5
5
  */
6
- export interface PluginStatic<T extends Plugin = Plugin> {
6
+ export interface PluginStatic<P extends Plugin> {
7
7
  /**
8
8
  * Allows a plugin to modify the Appium server instance.
9
9
  */
@@ -19,7 +19,7 @@ export interface PluginStatic<T extends Plugin = Plugin> {
19
19
  * }
20
20
  * }
21
21
  */
22
- newMethodMap?: MethodMap<T>;
22
+ newMethodMap?: MethodMap<P>;
23
23
  }
24
24
  /**
25
25
  * An instance of a "plugin" extension.
@@ -75,5 +75,8 @@ export declare type PluginCommand<TArgs = any> = (next: NextPluginCallback, driv
75
75
  *
76
76
  * The third parameter is the possible constructor signatures for the plugin class.
77
77
  */
78
- export declare type PluginClass = Class<Plugin, PluginStatic, [string, Record<string, unknown>]>;
78
+ export declare type PluginClass<P extends Plugin = Plugin> = Class<P, PluginStatic<P>, [
79
+ string,
80
+ Record<string, unknown>
81
+ ]>;
79
82
  //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,EAAa,MAAM,GAAG,CAAC;AACnF,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM;IAC5C;;OAEG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B;;OAEG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF;;;OAGG;IACH,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAErD;;GAEG;AACH,oBAAY,aAAa,CAAC,KAAK,GAAG,GAAG,IAAI,CACvC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,cAAc,EACtB,GAAG,IAAI,EAAE,KAAK,EAAE,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;GAIG;AACH,oBAAY,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CACxD,CAAC,EACD,YAAY,CAAC,CAAC,CAAC,EACf;IAAC,MAAM;IAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAC,CAClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":""}