@appium/base-driver 9.3.2 → 9.3.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.
Files changed (105) hide show
  1. package/LICENSE +1 -1
  2. package/build/lib/basedriver/capabilities.d.ts +59 -36
  3. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  4. package/build/lib/basedriver/capabilities.js +57 -45
  5. package/build/lib/basedriver/capabilities.js.map +1 -1
  6. package/build/lib/basedriver/commands/event.d.ts +5 -9
  7. package/build/lib/basedriver/commands/event.d.ts.map +1 -1
  8. package/build/lib/basedriver/commands/event.js +28 -49
  9. package/build/lib/basedriver/commands/event.js.map +1 -1
  10. package/build/lib/basedriver/commands/execute.d.ts +5 -11
  11. package/build/lib/basedriver/commands/execute.d.ts.map +1 -1
  12. package/build/lib/basedriver/commands/execute.js +15 -39
  13. package/build/lib/basedriver/commands/execute.js.map +1 -1
  14. package/build/lib/basedriver/commands/find.d.ts +5 -12
  15. package/build/lib/basedriver/commands/find.d.ts.map +1 -1
  16. package/build/lib/basedriver/commands/find.js +38 -98
  17. package/build/lib/basedriver/commands/find.js.map +1 -1
  18. package/build/lib/basedriver/commands/index.d.ts +7 -3
  19. package/build/lib/basedriver/commands/index.d.ts.map +1 -1
  20. package/build/lib/basedriver/commands/index.js +7 -28
  21. package/build/lib/basedriver/commands/index.js.map +1 -1
  22. package/build/lib/basedriver/commands/log.d.ts +5 -10
  23. package/build/lib/basedriver/commands/log.d.ts.map +1 -1
  24. package/build/lib/basedriver/commands/log.js +17 -50
  25. package/build/lib/basedriver/commands/log.js.map +1 -1
  26. package/build/lib/basedriver/commands/mixin.d.ts +12 -0
  27. package/build/lib/basedriver/commands/mixin.d.ts.map +1 -0
  28. package/build/lib/basedriver/commands/mixin.js +18 -0
  29. package/build/lib/basedriver/commands/mixin.js.map +1 -0
  30. package/build/lib/basedriver/commands/session.d.ts +5 -11
  31. package/build/lib/basedriver/commands/session.d.ts.map +1 -1
  32. package/build/lib/basedriver/commands/session.js +18 -53
  33. package/build/lib/basedriver/commands/session.js.map +1 -1
  34. package/build/lib/basedriver/commands/settings.d.ts +5 -9
  35. package/build/lib/basedriver/commands/settings.d.ts.map +1 -1
  36. package/build/lib/basedriver/commands/settings.js +14 -34
  37. package/build/lib/basedriver/commands/settings.js.map +1 -1
  38. package/build/lib/basedriver/commands/timeout.d.ts +5 -9
  39. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
  40. package/build/lib/basedriver/commands/timeout.js +107 -129
  41. package/build/lib/basedriver/commands/timeout.js.map +1 -1
  42. package/build/lib/basedriver/core.d.ts +14 -20
  43. package/build/lib/basedriver/core.d.ts.map +1 -1
  44. package/build/lib/basedriver/core.js +32 -22
  45. package/build/lib/basedriver/core.js.map +1 -1
  46. package/build/lib/basedriver/device-settings.d.ts +11 -11
  47. package/build/lib/basedriver/device-settings.d.ts.map +1 -1
  48. package/build/lib/basedriver/device-settings.js +7 -8
  49. package/build/lib/basedriver/device-settings.js.map +1 -1
  50. package/build/lib/basedriver/driver.d.ts +23 -108
  51. package/build/lib/basedriver/driver.d.ts.map +1 -1
  52. package/build/lib/basedriver/driver.js +38 -135
  53. package/build/lib/basedriver/driver.js.map +1 -1
  54. package/build/lib/basedriver/helpers.d.ts +21 -98
  55. package/build/lib/basedriver/helpers.d.ts.map +1 -1
  56. package/build/lib/basedriver/helpers.js +178 -182
  57. package/build/lib/basedriver/helpers.js.map +1 -1
  58. package/build/lib/express/server.d.ts +3 -15
  59. package/build/lib/express/server.d.ts.map +1 -1
  60. package/build/lib/express/server.js +4 -2
  61. package/build/lib/express/server.js.map +1 -1
  62. package/build/lib/express/websocket.d.ts +5 -44
  63. package/build/lib/express/websocket.d.ts.map +1 -1
  64. package/build/lib/express/websocket.js +10 -39
  65. package/build/lib/express/websocket.js.map +1 -1
  66. package/build/lib/helpers/capabilities.d.ts +2 -2
  67. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  68. package/build/lib/helpers/capabilities.js +2 -3
  69. package/build/lib/helpers/capabilities.js.map +1 -1
  70. package/build/lib/protocol/protocol.d.ts +1 -1
  71. package/build/lib/protocol/protocol.d.ts.map +1 -1
  72. package/build/lib/protocol/protocol.js +10 -2
  73. package/build/lib/protocol/protocol.js.map +1 -1
  74. package/build/lib/protocol/routes.d.ts +1 -0
  75. package/build/lib/protocol/routes.d.ts.map +1 -1
  76. package/build/lib/protocol/routes.js +12 -10
  77. package/build/lib/protocol/routes.js.map +1 -1
  78. package/lib/basedriver/capabilities.js +70 -56
  79. package/lib/basedriver/commands/event.ts +49 -0
  80. package/lib/basedriver/commands/execute.ts +40 -0
  81. package/lib/basedriver/commands/find.ts +80 -0
  82. package/lib/basedriver/commands/index.ts +7 -0
  83. package/lib/basedriver/commands/log.ts +34 -0
  84. package/lib/basedriver/commands/mixin.ts +15 -0
  85. package/lib/basedriver/commands/session.ts +36 -0
  86. package/lib/basedriver/commands/settings.ts +26 -0
  87. package/lib/basedriver/commands/timeout.ts +155 -0
  88. package/lib/basedriver/core.js +11 -28
  89. package/lib/basedriver/device-settings.js +9 -11
  90. package/lib/basedriver/{driver.js → driver.ts} +71 -180
  91. package/lib/basedriver/helpers.js +214 -212
  92. package/lib/express/server.js +4 -2
  93. package/lib/express/websocket.js +10 -39
  94. package/lib/helpers/capabilities.js +2 -3
  95. package/lib/protocol/protocol.js +11 -2
  96. package/lib/protocol/routes.js +12 -13
  97. package/package.json +11 -7
  98. package/lib/basedriver/commands/event.js +0 -63
  99. package/lib/basedriver/commands/execute.js +0 -45
  100. package/lib/basedriver/commands/find.js +0 -108
  101. package/lib/basedriver/commands/index.js +0 -35
  102. package/lib/basedriver/commands/log.js +0 -64
  103. package/lib/basedriver/commands/session.js +0 -57
  104. package/lib/basedriver/commands/settings.js +0 -38
  105. package/lib/basedriver/commands/timeout.js +0 -168
@@ -2,24 +2,22 @@
2
2
  * Maximum size (in bytes) of a given driver's settings object (which is internal to {@linkcode DriverSettings}).
3
3
  */
4
4
  export const MAX_SETTINGS_SIZE: number;
5
- export default DeviceSettings;
6
- export type IDeviceSettings<T> = import('@appium/types').DeviceSettings<T>;
7
5
  /**
8
- * @template T
6
+ * @template {import('@appium/types').StringRecord} T
9
7
  * @implements {IDeviceSettings<T>}
10
8
  */
11
- export class DeviceSettings<T> implements IDeviceSettings<T> {
9
+ export class DeviceSettings<T extends import("@appium/types").StringRecord<any>> implements IDeviceSettings<T> {
12
10
  /**
13
11
  * Creates a _shallow copy_ of the `defaultSettings` parameter!
14
- * @param {Record<string,T>} [defaultSettings]
12
+ * @param {T} [defaultSettings]
15
13
  * @param {import('@appium/types').SettingsUpdateListener<T>} [onSettingsUpdate]
16
14
  */
17
- constructor(defaultSettings?: Record<string, T> | undefined, onSettingsUpdate?: import("@appium/types").SettingsUpdateListener<T> | undefined);
15
+ constructor(defaultSettings?: T | undefined, onSettingsUpdate?: import("@appium/types").SettingsUpdateListener<T> | undefined);
18
16
  /**
19
17
  * @protected
20
- * @type {Record<string,T>}
18
+ * @type {T}
21
19
  */
22
- protected _settings: Record<string, T>;
20
+ protected _settings: T;
23
21
  /**
24
22
  * @protected
25
23
  * @type {import('@appium/types').SettingsUpdateListener<T>}
@@ -27,9 +25,11 @@ export class DeviceSettings<T> implements IDeviceSettings<T> {
27
25
  protected _onSettingsUpdate: import('@appium/types').SettingsUpdateListener<T>;
28
26
  /**
29
27
  * calls updateSettings from implementing driver every time a setting is changed.
30
- * @param {Record<string,T>} newSettings
28
+ * @param {T} newSettings
31
29
  */
32
- update(newSettings: Record<string, T>): Promise<void>;
33
- getSettings(): Record<string, T>;
30
+ update(newSettings: T): Promise<void>;
31
+ getSettings(): T;
34
32
  }
33
+ export default DeviceSettings;
34
+ export type IDeviceSettings<T extends import("@appium/types").StringRecord<any> = import("@appium/types").StringRecord<any>> = import('@appium/types').IDeviceSettings<T>;
35
35
  //# sourceMappingURL=device-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-settings.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/device-settings.js"],"names":[],"mappings":"AAKA;;GAEG;AACH,uCAAkD;;iCAuErC,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;AArEtD;;;GAGG;AACH,0DAFgC,CAAC;IAe/B;;;;OAIG;IACH,+IAGC;IApBD;;;OAGG;IACH,qBAFU,OAAO,MAAM,EAAC,CAAC,CAAC,CAEhB;IAEV;;;OAGG;IACH,6BAFU,OAAO,eAAe,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAEzC;IAYlB;;;OAGG;IACH,oBAFW,OAAO,MAAM,EAAC,CAAC,CAAC,iBA4B1B;IAED,iCAEC;CACF"}
1
+ {"version":3,"file":"device-settings.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/device-settings.js"],"names":[],"mappings":"AAKA;;GAEG;AACH,uCAAkD;AAElD;;;GAGG;AACH,4GAFgC,CAAC;IAe/B;;;;OAIG;IACH,+HAGC;IApBD;;;OAGG;IACH,qBAFU,CAAC,CAED;IAEV;;;OAGG;IACH,6BAFU,OAAO,eAAe,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAEzC;IAYlB;;;OAGG;IACH,oBAFW,CAAC,iBA2BX;IAED,iBAEC;CACF;;+HAMY,OAAO,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC"}
@@ -13,22 +13,22 @@ const errors_1 = require("../protocol/errors");
13
13
  */
14
14
  exports.MAX_SETTINGS_SIZE = 20 * 1024 * 1024; // 20 MB
15
15
  /**
16
- * @template T
16
+ * @template {import('@appium/types').StringRecord} T
17
17
  * @implements {IDeviceSettings<T>}
18
18
  */
19
19
  class DeviceSettings {
20
20
  /**
21
21
  * Creates a _shallow copy_ of the `defaultSettings` parameter!
22
- * @param {Record<string,T>} [defaultSettings]
22
+ * @param {T} [defaultSettings]
23
23
  * @param {import('@appium/types').SettingsUpdateListener<T>} [onSettingsUpdate]
24
24
  */
25
- constructor(defaultSettings = {}, onSettingsUpdate = async () => { }) {
25
+ constructor(defaultSettings = /** @type {T} */ ({}), onSettingsUpdate = async () => { }) {
26
26
  this._settings = { ...defaultSettings };
27
27
  this._onSettingsUpdate = onSettingsUpdate;
28
28
  }
29
29
  /**
30
30
  * calls updateSettings from implementing driver every time a setting is changed.
31
- * @param {Record<string,T>} newSettings
31
+ * @param {T} newSettings
32
32
  */
33
33
  async update(newSettings) {
34
34
  if (!lodash_1.default.isPlainObject(newSettings)) {
@@ -39,8 +39,7 @@ class DeviceSettings {
39
39
  throw new errors_1.errors.InvalidArgumentError(`New settings cannot be applied, because the overall ` +
40
40
  `object size exceeds the allowed limit of ${support_1.util.toReadableSizeString(exports.MAX_SETTINGS_SIZE)}`);
41
41
  }
42
- const props = /** @type {(keyof T & string)[]} */ (lodash_1.default.keys(newSettings));
43
- for (const prop of props) {
42
+ for (const prop in newSettings) {
44
43
  if (!lodash_1.default.isUndefined(this._settings[prop])) {
45
44
  if (this._settings[prop] === newSettings[prop]) {
46
45
  logger_1.default.debug(`The value of '${prop}' setting did not change. Skipping the update for it`);
@@ -58,7 +57,7 @@ class DeviceSettings {
58
57
  exports.DeviceSettings = DeviceSettings;
59
58
  exports.default = DeviceSettings;
60
59
  /**
61
- * @template T
62
- * @typedef {import('@appium/types').DeviceSettings<T>} IDeviceSettings
60
+ * @template {import('@appium/types').StringRecord} [T=import('@appium/types').StringRecord]
61
+ * @typedef {import('@appium/types').IDeviceSettings<T>} IDeviceSettings
63
62
  */
64
63
  //# sourceMappingURL=device-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-settings.js","sourceRoot":"","sources":["../../../lib/basedriver/device-settings.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,sDAA2B;AAC3B,6CAA2C;AAC3C,+CAA0C;AAE1C;;GAEG;AACU,QAAA,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AAE3D;;;GAGG;AACH,MAAM,cAAc;IAalB;;;;OAIG;IACH,YAAY,eAAe,GAAG,EAAE,EAAE,gBAAgB,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,eAAe,EAAC,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,WAAW;QACtB,IAAI,CAAC,gBAAC,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACjC,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,wDAAwD;gBACtD,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAC3C,CAAC;SACH;QAED,IAAI,cAAI,CAAC,aAAa,CAAC,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,WAAW,EAAC,CAAC,IAAI,yBAAiB,EAAE;YAChF,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,sDAAsD;gBACpD,4CAA4C,cAAI,CAAC,oBAAoB,CAAC,yBAAiB,CAAC,EAAE,CAC7F,CAAC;SACH;QAED,MAAM,KAAK,GAAG,mCAAmC,CAAC,CAAC,gBAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;gBACxC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,EAAE;oBAC9C,gBAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,sDAAsD,CAAC,CAAC;oBACvF,SAAS;iBACV;aACF;YACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAGO,wCAAc;AADtB,kBAAe,cAAc,CAAC;AAG9B;;;GAGG"}
1
+ {"version":3,"file":"device-settings.js","sourceRoot":"","sources":["../../../lib/basedriver/device-settings.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,sDAA2B;AAC3B,6CAA2C;AAC3C,+CAA0C;AAE1C;;GAEG;AACU,QAAA,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AAE3D;;;GAGG;AACH,MAAa,cAAc;IAazB;;;;OAIG;IACH,YAAY,eAAe,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC;QACpF,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,eAAe,EAAC,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,WAAW;QACtB,IAAI,CAAC,gBAAC,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACjC,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,wDAAwD;gBACtD,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAC3C,CAAC;SACH;QAED,IAAI,cAAI,CAAC,aAAa,CAAC,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,WAAW,EAAC,CAAC,IAAI,yBAAiB,EAAE;YAChF,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,sDAAsD;gBACpD,4CAA4C,cAAI,CAAC,oBAAoB,CAAC,yBAAiB,CAAC,EAAE,CAC7F,CAAC;SACH;QAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;YAC9B,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;gBACxC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,EAAE;oBAC9C,gBAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,sDAAsD,CAAC,CAAC;oBACvF,SAAS;iBACV;aACF;YACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAzDD,wCAyDC;AAED,kBAAe,cAAc,CAAC;AAE9B;;;GAGG"}
@@ -1,132 +1,47 @@
1
- /**
2
- * @implements {SessionHandler<C>}
3
- * @template {Constraints} C
4
- * @template {StringRecord} [CArgs=StringRecord]
5
- * @extends {DriverCore<C>}
6
- */
7
- export class BaseDriverCore<C extends Readonly<Record<string, import("@appium/types").Constraint>>, CArgs extends import("@appium/types").StringRecord = import("@appium/types").StringRecord> extends DriverCore<C> implements SessionHandler<C> {
8
- /**
9
- *
10
- * @param {DriverOpts<C>} opts
11
- * @param {boolean} shouldValidateCaps
12
- */
13
- constructor(opts?: DriverOpts<C>, shouldValidateCaps?: boolean);
14
- /**
15
- * @type {CArgs & ServerArgs}
16
- */
1
+ import { DriverCore } from './core';
2
+ import { AppiumServer, BaseDriverCapConstraints, Capabilities, Constraints, DefaultCreateSessionResult, Driver, DriverCaps, DriverData, DriverOpts, ServerArgs, StringRecord, W3CDriverCaps } from '@appium/types';
3
+ export declare class BaseDriver<C extends Constraints, CArgs extends StringRecord = StringRecord, Settings extends StringRecord = StringRecord> extends DriverCore<C, Settings> implements Driver<C, CArgs> {
17
4
  cliArgs: CArgs & ServerArgs;
18
- /**
19
- * @type {Capabilities<C>}
20
- */
21
- caps: Capabilities<C>;
22
- /**
23
- * @type {W3CCapabilities<C>}
24
- */
25
- originalCaps: W3CCapabilities<C>;
26
- /**
27
- * @type {C}
28
- */
5
+ caps: DriverCaps<C>;
6
+ originalCaps: W3CDriverCaps<C>;
29
7
  desiredCapConstraints: C;
30
- /**
31
- * @type {DriverOpts<C> & DriverOpts<BaseDriverCapConstraints>}
32
- */
33
- opts: DriverOpts<C> & DriverOpts<BaseDriverCapConstraints>;
8
+ opts: DriverOpts<C>;
9
+ server?: AppiumServer;
10
+ serverHost?: string;
11
+ serverPort?: number;
12
+ serverPath?: string;
13
+ constructor(opts: DriverOpts<C>, shouldValidateCaps?: boolean);
34
14
  /**
35
15
  * Contains the base constraints plus whatever the subclass wants to add.
36
16
  *
37
17
  * Subclasses _shouldn't_ need to use this. If you need to use this, please create
38
18
  * an issue:
39
19
  * @see https://github.com/appium/appium/issues/new
40
- * @type {Readonly<BaseDriverCapConstraints & C>}
41
- * @protected
42
20
  */
43
- protected get _desiredCapConstraints(): Readonly<typeof BASE_DESIRED_CAP_CONSTRAINTS & C>;
21
+ protected get _desiredCapConstraints(): Readonly<BaseDriverCapConstraints & C>;
44
22
  /**
45
- * @param {string} cmd
46
- * @param {...any} args
47
- * @returns {Promise<any>}
23
+ * This is the main command handler for the driver. It wraps command
24
+ * execution with timeout logic, checking that we have a valid session,
25
+ * and ensuring that we execute commands one at a time. This method is called
26
+ * by MJSONWP's express router.
48
27
  */
49
- executeCommand(cmd: string, ...args: any[]): Promise<any>;
50
- /**
51
- *
52
- * @param {Error|import('../protocol/errors').NoSuchDriverError} err
53
- */
54
- startUnexpectedShutdown(err?: Error | import('../protocol/errors').NoSuchDriverError): Promise<void>;
28
+ executeCommand<T = unknown>(cmd: string, ...args: any[]): Promise<T>;
29
+ startUnexpectedShutdown(err?: Error): Promise<void>;
55
30
  startNewCommandTimeout(): Promise<void>;
56
- /**
57
- *
58
- * @param {import('@appium/types').AppiumServer} server
59
- * @param {string} host
60
- * @param {number} port
61
- * @param {string} path
62
- */
63
- assignServer(server: import('@appium/types').AppiumServer, host: string, port: number, path: string): void;
64
- server: import("@appium/types").AppiumServer | undefined;
65
- serverHost: string | undefined;
66
- serverPort: number | undefined;
67
- serverPath: string | undefined;
31
+ assignServer(server: AppiumServer, host: string, port: number, path: string): void;
68
32
  reset(): Promise<void>;
69
- resetOnUnexpectedShutdown: (() => void) | undefined;
70
33
  /**
71
34
  *
72
35
  * Historically the first two arguments were reserved for JSONWP capabilities.
73
36
  * Appium 2 has dropped the support of these, so now we only accept capability
74
37
  * objects in W3C format and thus allow any of the three arguments to represent
75
38
  * the latter.
76
- * @param {W3CCapabilities<C>} w3cCapabilities1
77
- * @param {W3CCapabilities<C>} [w3cCapabilities2]
78
- * @param {W3CCapabilities<C>} [w3cCapabilities]
79
- * @param {DriverData[]} [driverData]
80
- * @returns {Promise<[string,Capabilities<C>]>}
81
- */
82
- createSession(w3cCapabilities1: W3CCapabilities<C>, w3cCapabilities2?: W3CCapabilities<C, void> | undefined, w3cCapabilities?: W3CCapabilities<C, void> | undefined, driverData?: import("@appium/types").DriverData[] | undefined): Promise<[string, Capabilities<C>]>;
83
- /**
84
- *
85
- * @param {string} [sessionId]
86
- * @param {DriverData[]} [driverData]
87
- * @returns {Promise<void>}
88
- */
89
- deleteSession(sessionId?: string | undefined, driverData?: import("@appium/types").DriverData[] | undefined): Promise<void>;
90
- /**
91
- *
92
- * @param {Capabilities<C>} caps
93
39
  */
40
+ createSession(w3cCapabilities1: W3CDriverCaps<C>, w3cCapabilities2?: W3CDriverCaps<C>, w3cCapabilities?: W3CDriverCaps<C>, driverData?: DriverData[]): Promise<DefaultCreateSessionResult<C>>;
41
+ deleteSession(sessionId?: string | null): Promise<void>;
94
42
  logExtraCaps(caps: Capabilities<C>): void;
95
- /**
96
- *
97
- * @param {Capabilities<C>} caps
98
- * @returns {boolean}
99
- */
100
- validateDesiredCaps(caps: Capabilities<C>): boolean;
101
- }
102
- declare const BaseDriver_base: import("./commands/execute").ExecuteBase<any>;
103
- /**
104
- * This ensures that all of the mixins correctly implement the interface described in {@linkcode Driver}.
105
- * @template {Constraints} [C={}]
106
- * @implements {Driver<C>}
107
- */
108
- export class BaseDriver<C extends Readonly<Record<string, import("@appium/types").Constraint>> = {}> extends BaseDriver_base implements Driver<C> {
109
- constructor(...arguments_: any[]);
43
+ validateDesiredCaps(caps: any): caps is DriverCaps<C>;
110
44
  }
45
+ export * from './commands';
111
46
  export default BaseDriver;
112
- export type HTTPMethod = import('@appium/types').HTTPMethod;
113
- export type DriverData = import('@appium/types').DriverData;
114
- export type Constraints = import('@appium/types').Constraints;
115
- export type Constraint = import('@appium/types').Constraint;
116
- export type StringRecord = import('@appium/types').StringRecord;
117
- export type BaseDriverCapConstraints = import('@appium/types').BaseDriverCapConstraints;
118
- export type ServerArgs = import('@appium/types').ServerArgs;
119
- export type UpdateServerCallback = (app: import('express').Express, httpServer: import('@appium/types').AppiumServer) => import('type-fest').Promisable<void>;
120
- /**
121
- * This is used to extend {@linkcode BaseDriverCore } by the mixins and also external drivers.
122
- */
123
- export type BaseDriverBase<C extends Readonly<Record<string, import("@appium/types").Constraint>>, Proto = {}, Static = {}> = import('@appium/types').Class<BaseDriverCore<C> & Proto, import("@appium/types").DriverStatic<any> & Static>;
124
- export type SessionHandler<C extends Readonly<Record<string, import("@appium/types").Constraint>> = typeof BASE_DESIRED_CAP_CONSTRAINTS> = import('@appium/types').SessionHandler<[string, object], void, C>;
125
- export type Capabilities<C extends Readonly<Record<string, import("@appium/types").Constraint>> = typeof BASE_DESIRED_CAP_CONSTRAINTS, Extra extends void | import("@appium/types").StringRecord = void> = import('@appium/types').Capabilities<C, Extra>;
126
- export type W3CCapabilities<C extends Readonly<Record<string, import("@appium/types").Constraint>> = typeof BASE_DESIRED_CAP_CONSTRAINTS, Extra extends void | import("@appium/types").StringRecord = void> = import('@appium/types').W3CCapabilities<C, Extra>;
127
- export type Driver<C extends Readonly<Record<string, import("@appium/types").Constraint>> = typeof BASE_DESIRED_CAP_CONSTRAINTS, CArgs extends import("@appium/types").StringRecord = import("@appium/types").StringRecord> = import('@appium/types').Driver<C, CArgs>;
128
- export type ExternalDriver<C extends Readonly<Record<string, import("@appium/types").Constraint>>> = import('@appium/types').ExternalDriver<C>;
129
- export type DriverOpts<C extends Readonly<Record<string, import("@appium/types").Constraint>>> = import('@appium/types').DriverOpts<C>;
130
- import { DriverCore } from "./core";
131
- import { BASE_DESIRED_CAP_CONSTRAINTS } from "@appium/types";
132
47
  //# sourceMappingURL=driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/driver.js"],"names":[],"mappings":"AAoBA;;;;;GAKG;AACH,+OAL+B,CAAC;IA+B9B;;;;OAIG;IACH,mBAHW,WAAW,CAAC,CAAC,uBACb,OAAO,EAcjB;IA1CD;;OAEG;IACH,SAFU,KAAK,GAAG,UAAU,CAEpB;IAER;;OAEG;IACH,MAFU,aAAa,CAAC,CAAC,CAEpB;IAEL;;OAEG;IACH,cAFU,gBAAgB,CAAC,CAAC,CAEf;IAEb;;OAEG;IACH,uBAFU,CAAC,CAEW;IAEtB;;OAEG;IACH,MAFU,WAAW,CAAC,CAAC,GAAG,WAAW,wBAAwB,CAAC,CAEzD;IAqBL;;;;;;;;OAQG;IACH,0FAEC;IAMD;;;;OAIG;IACH,oBAJW,MAAM,WACF,GAAG,KACL,QAAQ,GAAG,CAAC,CAsExB;IAED;;;OAGG;IACH,8BAFW,KAAK,GAAC,OAAO,oBAAoB,EAAE,iBAAiB,iBAc9D;IAED,wCAmBC;IAED;;;;;;OAMG;IACH,qBALW,OAAO,eAAe,EAAE,YAAY,QACpC,MAAM,QACN,MAAM,QACN,MAAM,QAOhB;IAJC,yDAAoB;IACpB,+BAAsB;IACtB,+BAAsB;IACtB,+BAAsB;IAOxB,uBA+BC;IAfC,oDAAyC;IAiB3C;;;;;;;;;;;OAWG;IACH,gCANW,gBAAgB,CAAC,CAAC,mLAIhB,QAAQ,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAiF7C;IAED;;;;;OAKG;IACH,8GAFa,QAAQ,IAAI,CAAC,CAczB;IAED;;;OAGG;IACH,mBAFW,aAAa,CAAC,CAAC,QAYzB;IAED;;;;OAIG;IACH,0BAHW,aAAa,CAAC,CAAC,GACb,OAAO,CAqBnB;CACF;;AAED;;;;GAIG;AACH,+IAFuB,CAAC;IAlZF,kCACf;CAmZiE;;yBAI3D,OAAO,eAAe,EAAE,UAAU;yBAClC,OAAO,eAAe,EAAE,UAAU;0BAClC,OAAO,eAAe,EAAE,WAAW;yBACnC,OAAO,eAAe,EAAE,UAAU;2BAClC,OAAO,eAAe,EAAE,YAAY;uCACpC,OAAO,eAAe,EAAE,wBAAwB;yBAChD,OAAO,eAAe,EAAE,UAAU;yCAKpC,OAAO,SAAS,EAAE,OAAO,cACzB,OAAO,eAAe,EAAE,YAAY,KAClC,OAAO,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC;;;;8HAQpC,OAAO,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,KAAK,EAAC,4CAAuC,MAAM,CAAC;2IAKtG,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC;2MAMhE,OAAO,eAAe,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;8MAM9C,OAAO,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC;8NAMjD,OAAO,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;qGAKxC,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;iGAKzC,OAAO,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/driver.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAOlC,OAAO,EACL,YAAY,EACZ,wBAAwB,EAExB,YAAY,EACZ,WAAW,EACX,0BAA0B,EAC1B,MAAM,EACN,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,eAAe,CAAC;AAQvB,qBAAa,UAAU,CACnB,CAAC,SAAS,WAAW,EACrB,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,QAAQ,SAAS,YAAY,GAAG,YAAY,CAE9C,SAAQ,UAAU,CAAC,CAAC,EAAE,QAAQ,CAC9B,YAAW,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAE3B,OAAO,EAAE,KAAK,GAAG,UAAU,CAAC;IAE5B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,qBAAqB,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,kBAAkB,UAAO;IAQ1D;;;;;;OAMG;IACH,SAAS,KAAK,sBAAsB,IAAI,QAAQ,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAE7E;IAED;;;;;OAKG;IACG,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAsEpE,uBAAuB,CAC3B,GAAG,GAAE,KAA8E;IAa/E,sBAAsB;IAqB5B,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAWrE,KAAK;IA8BX;;;;;;OAMG;IACG,aAAa,CACjB,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,EAClC,gBAAgB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EACnC,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAElC,UAAU,CAAC,EAAE,UAAU,EAAE,GACxB,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAiFnC,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAc7C,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAYlC,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC;CAoBtD;AAED,cAAc,YAAY,CAAC;AAE3B,eAAe,UAAU,CAAC"}
@@ -1,11 +1,23 @@
1
1
  "use strict";
2
- /* eslint-disable require-await */
3
- /* eslint-disable no-unused-vars */
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
+ };
4
16
  var __importDefault = (this && this.__importDefault) || function (mod) {
5
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
6
18
  };
7
19
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.BaseDriver = exports.BaseDriverCore = void 0;
20
+ exports.BaseDriver = void 0;
9
21
  const capabilities_1 = require("./capabilities");
10
22
  const core_1 = require("./core");
11
23
  const support_1 = require("@appium/support");
@@ -13,7 +25,6 @@ const bluebird_1 = __importDefault(require("bluebird"));
13
25
  const lodash_1 = __importDefault(require("lodash"));
14
26
  const capabilities_2 = require("../helpers/capabilities");
15
27
  const protocol_1 = require("../protocol");
16
- const commands_1 = require("./commands");
17
28
  const helpers_1 = __importDefault(require("./helpers"));
18
29
  const types_1 = require("@appium/types");
19
30
  const EVENT_SESSION_INIT = 'newSessionRequested';
@@ -21,27 +32,11 @@ const EVENT_SESSION_START = 'newSessionStarted';
21
32
  const EVENT_SESSION_QUIT_START = 'quitSessionRequested';
22
33
  const EVENT_SESSION_QUIT_DONE = 'quitSessionFinished';
23
34
  const ON_UNEXPECTED_SHUTDOWN_EVENT = 'onUnexpectedShutdown';
24
- /**
25
- * @implements {SessionHandler<C>}
26
- * @template {Constraints} C
27
- * @template {StringRecord} [CArgs=StringRecord]
28
- * @extends {DriverCore<C>}
29
- */
30
- class BaseDriverCore extends core_1.DriverCore {
31
- /**
32
- *
33
- * @param {DriverOpts<C>} opts
34
- * @param {boolean} shouldValidateCaps
35
- */
36
- constructor(opts = /** @type {DriverOpts<C>} */ ({}), shouldValidateCaps = true) {
35
+ class BaseDriver extends core_1.DriverCore {
36
+ constructor(opts, shouldValidateCaps = true) {
37
37
  super(opts, shouldValidateCaps);
38
- /**
39
- * This must be assigned here because the declaration of {@linkcode BaseDriverCore.opts} above
40
- * blows away {@linkcode DriverCore.opts}.
41
- */
42
- this.opts = opts;
43
38
  this.caps = {};
44
- this.cliArgs = /** @type {CArgs & ServerArgs} */ ({});
39
+ this.cliArgs = {};
45
40
  }
46
41
  /**
47
42
  * Contains the base constraints plus whatever the subclass wants to add.
@@ -49,24 +44,19 @@ class BaseDriverCore extends core_1.DriverCore {
49
44
  * Subclasses _shouldn't_ need to use this. If you need to use this, please create
50
45
  * an issue:
51
46
  * @see https://github.com/appium/appium/issues/new
52
- * @type {Readonly<BaseDriverCapConstraints & C>}
53
- * @protected
54
47
  */
55
48
  get _desiredCapConstraints() {
56
49
  return Object.freeze(lodash_1.default.merge({}, types_1.BASE_DESIRED_CAP_CONSTRAINTS, this.desiredCapConstraints));
57
50
  }
58
- // This is the main command handler for the driver. It wraps command
59
- // execution with timeout logic, checking that we have a valid session,
60
- // and ensuring that we execute commands one at a time. This method is called
61
- // by MJSONWP's express router.
62
51
  /**
63
- * @param {string} cmd
64
- * @param {...any} args
65
- * @returns {Promise<any>}
52
+ * This is the main command handler for the driver. It wraps command
53
+ * execution with timeout logic, checking that we have a valid session,
54
+ * and ensuring that we execute commands one at a time. This method is called
55
+ * by MJSONWP's express router.
66
56
  */
67
57
  async executeCommand(cmd, ...args) {
68
58
  // get start time for this command, and log in special cases
69
- let startTime = Date.now();
59
+ const startTime = Date.now();
70
60
  if (cmd === 'createSession') {
71
61
  // If creating a session determine if W3C or MJSONWP protocol was requested and remember the choice
72
62
  this.protocol = (0, protocol_1.determineProtocol)(args);
@@ -123,10 +113,6 @@ class BaseDriverCore extends core_1.DriverCore {
123
113
  }
124
114
  return res;
125
115
  }
126
- /**
127
- *
128
- * @param {Error|import('../protocol/errors').NoSuchDriverError} err
129
- */
130
116
  async startUnexpectedShutdown(err = new protocol_1.errors.NoSuchDriverError('The driver was unexpectedly shut down!')) {
131
117
  this.eventEmitter.emit(ON_UNEXPECTED_SHUTDOWN_EVENT, err); // allow others to listen for this
132
118
  this.shutdownUnexpectedly = true;
@@ -155,13 +141,6 @@ class BaseDriverCore extends core_1.DriverCore {
155
141
  await this.startUnexpectedShutdown(new Error(errorMessage));
156
142
  }, this.newCommandTimeoutMs);
157
143
  }
158
- /**
159
- *
160
- * @param {import('@appium/types').AppiumServer} server
161
- * @param {string} host
162
- * @param {number} port
163
- * @param {string} path
164
- */
165
144
  assignServer(server, host, port, path) {
166
145
  this.server = server;
167
146
  this.serverHost = host;
@@ -176,8 +155,8 @@ class BaseDriverCore extends core_1.DriverCore {
176
155
  this.log.debug('Resetting app mid-session');
177
156
  this.log.debug('Running generic full reset');
178
157
  // preserving state
179
- let currentConfig = {};
180
- for (let property of [
158
+ const currentConfig = {};
159
+ for (const property of [
181
160
  'implicitWaitMs',
182
161
  'newCommandTimeoutMs',
183
162
  'sessionId',
@@ -185,8 +164,6 @@ class BaseDriverCore extends core_1.DriverCore {
185
164
  ]) {
186
165
  currentConfig[property] = this[property];
187
166
  }
188
- // We also need to preserve the unexpected shutdown, and make sure it is not cancelled during reset.
189
- this.resetOnUnexpectedShutdown = () => { };
190
167
  try {
191
168
  if (this.sessionId !== null) {
192
169
  await this.deleteSession(this.sessionId);
@@ -196,7 +173,7 @@ class BaseDriverCore extends core_1.DriverCore {
196
173
  }
197
174
  finally {
198
175
  // always restore state.
199
- for (let [key, value] of lodash_1.default.toPairs(currentConfig)) {
176
+ for (const [key, value] of lodash_1.default.toPairs(currentConfig)) {
200
177
  this[key] = value;
201
178
  }
202
179
  }
@@ -208,13 +185,10 @@ class BaseDriverCore extends core_1.DriverCore {
208
185
  * Appium 2 has dropped the support of these, so now we only accept capability
209
186
  * objects in W3C format and thus allow any of the three arguments to represent
210
187
  * the latter.
211
- * @param {W3CCapabilities<C>} w3cCapabilities1
212
- * @param {W3CCapabilities<C>} [w3cCapabilities2]
213
- * @param {W3CCapabilities<C>} [w3cCapabilities]
214
- * @param {DriverData[]} [driverData]
215
- * @returns {Promise<[string,Capabilities<C>]>}
216
188
  */
217
- async createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities, driverData) {
189
+ async createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities,
190
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
191
+ driverData) {
218
192
  if (this.sessionId !== null) {
219
193
  throw new protocol_1.errors.SessionNotCreatedError('Cannot create a new session while one is in progress');
220
194
  }
@@ -227,7 +201,6 @@ class BaseDriverCore extends core_1.DriverCore {
227
201
  this.setProtocolW3C();
228
202
  this.originalCaps = originalCaps;
229
203
  this.log.debug(`Creating session with W3C capabilities: ${JSON.stringify(originalCaps, null, 2)}`);
230
- /** @type {Capabilities<C>} */
231
204
  let caps;
232
205
  try {
233
206
  caps = (0, capabilities_1.processCapabilities)(originalCaps, this._desiredCapConstraints, this.shouldValidateCaps);
@@ -262,37 +235,28 @@ class BaseDriverCore extends core_1.DriverCore {
262
235
  delete this.opts.app;
263
236
  }
264
237
  if (!lodash_1.default.isUndefined(this.caps.newCommandTimeout)) {
265
- this.newCommandTimeoutMs = /** @type {number} */ (this.caps.newCommandTimeout) * 1000;
238
+ this.newCommandTimeoutMs = this.caps.newCommandTimeout * 1000;
266
239
  }
267
240
  this._log.prefix = helpers_1.default.generateDriverLogPrefix(this, this.sessionId);
268
241
  this.log.info(`Session created with session id: ${this.sessionId}`);
269
242
  return [this.sessionId, caps];
270
243
  }
271
- /**
272
- *
273
- * @param {string} [sessionId]
274
- * @param {DriverData[]} [driverData]
275
- * @returns {Promise<void>}
276
- */
277
- async deleteSession(sessionId, driverData) {
244
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
245
+ async deleteSession(sessionId) {
278
246
  await this.clearNewCommandTimeout();
279
247
  if (this.isCommandsQueueEnabled && this.commandsQueueGuard.isBusy()) {
280
248
  // simple hack to release pending commands if they exist
281
- // @ts-ignore
282
- for (const key of lodash_1.default.keys(this.commandsQueueGuard.queues)) {
283
- // @ts-ignore
284
- this.commandsQueueGuard.queues[key] = [];
249
+ // @ts-expect-error private API
250
+ const queues = this.commandsQueueGuard.queues;
251
+ for (const key of lodash_1.default.keys(queues)) {
252
+ queues[key] = [];
285
253
  }
286
254
  }
287
255
  this.sessionId = null;
288
256
  this._log.prefix = helpers_1.default.generateDriverLogPrefix(this);
289
257
  }
290
- /**
291
- *
292
- * @param {Capabilities<C>} caps
293
- */
294
258
  logExtraCaps(caps) {
295
- let extraCaps = lodash_1.default.difference(lodash_1.default.keys(caps), lodash_1.default.keys(this._desiredCapConstraints));
259
+ const extraCaps = lodash_1.default.difference(lodash_1.default.keys(caps), lodash_1.default.keys(this._desiredCapConstraints));
296
260
  if (extraCaps.length) {
297
261
  this.log.warn(`The following capabilities were provided, but are not ` + `recognized by Appium:`);
298
262
  for (const cap of extraCaps) {
@@ -300,11 +264,6 @@ class BaseDriverCore extends core_1.DriverCore {
300
264
  }
301
265
  }
302
266
  }
303
- /**
304
- *
305
- * @param {Capabilities<C>} caps
306
- * @returns {boolean}
307
- */
308
267
  validateDesiredCaps(caps) {
309
268
  if (!this.shouldValidateCaps) {
310
269
  return true;
@@ -320,63 +279,7 @@ class BaseDriverCore extends core_1.DriverCore {
320
279
  return true;
321
280
  }
322
281
  }
323
- exports.BaseDriverCore = BaseDriverCore;
324
- /**
325
- * This ensures that all of the mixins correctly implement the interface described in {@linkcode Driver}.
326
- * @template {Constraints} [C={}]
327
- * @implements {Driver<C>}
328
- */
329
- class BaseDriver extends (0, commands_1.createBaseDriverClass)(BaseDriverCore) {
330
- }
331
282
  exports.BaseDriver = BaseDriver;
283
+ __exportStar(require("./commands"), exports);
332
284
  exports.default = BaseDriver;
333
- /**
334
- * @typedef {import('@appium/types').HTTPMethod} HTTPMethod
335
- * @typedef {import('@appium/types').DriverData} DriverData
336
- * @typedef {import('@appium/types').Constraints} Constraints
337
- * @typedef {import('@appium/types').Constraint} Constraint
338
- * @typedef {import('@appium/types').StringRecord} StringRecord
339
- * @typedef {import('@appium/types').BaseDriverCapConstraints} BaseDriverCapConstraints
340
- * @typedef {import('@appium/types').ServerArgs} ServerArgs
341
- */
342
- /**
343
- * @callback UpdateServerCallback
344
- * @param {import('express').Express} app - Express app
345
- * @param {import('@appium/types').AppiumServer} httpServer - HTTP server
346
- * @returns {import('type-fest').Promisable<void>}
347
- */
348
- /**
349
- * This is used to extend {@linkcode BaseDriverCore} by the mixins and also external drivers.
350
- * @template {Constraints} C
351
- * @template [Proto={}]
352
- * @template [Static={}]
353
- * @typedef {import('@appium/types').Class<BaseDriverCore<C> & Proto,import('@appium/types').DriverStatic & Static>} BaseDriverBase
354
- */
355
- /**
356
- * @template {Constraints} [C=BaseDriverCapConstraints]
357
- * @typedef {import('@appium/types').SessionHandler<[string, object],void, C>} SessionHandler
358
- */
359
- /**
360
- * @template {Constraints} [C=BaseDriverCapConstraints]
361
- * @template {StringRecord|void} [Extra=void]
362
- * @typedef {import('@appium/types').Capabilities<C, Extra>} Capabilities
363
- */
364
- /**
365
- * @template {Constraints} [C=BaseDriverCapConstraints]
366
- * @template {StringRecord|void} [Extra=void]
367
- * @typedef {import('@appium/types').W3CCapabilities<C, Extra>} W3CCapabilities
368
- */
369
- /**
370
- * @template {Constraints} [C=BaseDriverCapConstraints]
371
- * @template {StringRecord} [CArgs=StringRecord]
372
- * @typedef {import('@appium/types').Driver<C, CArgs>} Driver
373
- */
374
- /**
375
- * @template {Constraints} C
376
- * @typedef {import('@appium/types').ExternalDriver<C>} ExternalDriver
377
- */
378
- /**
379
- * @template {Constraints} C
380
- * @typedef {import('@appium/types').DriverOpts<C>} DriverOpts
381
- */
382
285
  //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../lib/basedriver/driver.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../lib/basedriver/driver.ts"],"names":[],"mappings":"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"}