@appium/base-driver 10.1.2 → 10.2.1

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 (133) hide show
  1. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  2. package/build/lib/basedriver/capabilities.js +7 -7
  3. package/build/lib/basedriver/capabilities.js.map +1 -1
  4. package/build/lib/basedriver/commands/event.d.ts +1 -1
  5. package/build/lib/basedriver/commands/event.d.ts.map +1 -1
  6. package/build/lib/basedriver/commands/execute.d.ts +1 -1
  7. package/build/lib/basedriver/commands/execute.d.ts.map +1 -1
  8. package/build/lib/basedriver/commands/find.d.ts +1 -1
  9. package/build/lib/basedriver/commands/find.d.ts.map +1 -1
  10. package/build/lib/basedriver/commands/mixin.d.ts +1 -1
  11. package/build/lib/basedriver/commands/mixin.d.ts.map +1 -1
  12. package/build/lib/basedriver/commands/timeout.d.ts +1 -1
  13. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
  14. package/build/lib/basedriver/device-settings.d.ts +14 -23
  15. package/build/lib/basedriver/device-settings.d.ts.map +1 -1
  16. package/build/lib/basedriver/device-settings.js +11 -26
  17. package/build/lib/basedriver/device-settings.js.map +1 -1
  18. package/build/lib/basedriver/helpers.d.ts +36 -57
  19. package/build/lib/basedriver/helpers.d.ts.map +1 -1
  20. package/build/lib/basedriver/helpers.js +160 -248
  21. package/build/lib/basedriver/helpers.js.map +1 -1
  22. package/build/lib/basedriver/logger.d.ts +1 -2
  23. package/build/lib/basedriver/logger.d.ts.map +1 -1
  24. package/build/lib/basedriver/logger.js +2 -2
  25. package/build/lib/basedriver/logger.js.map +1 -1
  26. package/build/lib/basedriver/validation.d.ts.map +1 -1
  27. package/build/lib/basedriver/validation.js +3 -3
  28. package/build/lib/basedriver/validation.js.map +1 -1
  29. package/build/lib/constants.d.ts +1 -1
  30. package/build/lib/constants.d.ts.map +1 -1
  31. package/build/lib/express/crash.d.ts +8 -2
  32. package/build/lib/express/crash.d.ts.map +1 -1
  33. package/build/lib/express/crash.js +6 -0
  34. package/build/lib/express/crash.js.map +1 -1
  35. package/build/lib/express/express-logging.d.ts +12 -2
  36. package/build/lib/express/express-logging.d.ts.map +1 -1
  37. package/build/lib/express/express-logging.js +34 -26
  38. package/build/lib/express/express-logging.js.map +1 -1
  39. package/build/lib/express/idempotency.d.ts +4 -10
  40. package/build/lib/express/idempotency.d.ts.map +1 -1
  41. package/build/lib/express/idempotency.js +71 -75
  42. package/build/lib/express/idempotency.js.map +1 -1
  43. package/build/lib/express/logger.d.ts +1 -2
  44. package/build/lib/express/logger.d.ts.map +1 -1
  45. package/build/lib/express/logger.js +2 -2
  46. package/build/lib/express/logger.js.map +1 -1
  47. package/build/lib/express/middleware.d.ts +37 -41
  48. package/build/lib/express/middleware.d.ts.map +1 -1
  49. package/build/lib/express/middleware.js +48 -60
  50. package/build/lib/express/middleware.js.map +1 -1
  51. package/build/lib/express/server.d.ts +57 -101
  52. package/build/lib/express/server.d.ts.map +1 -1
  53. package/build/lib/express/server.js +55 -133
  54. package/build/lib/express/server.js.map +1 -1
  55. package/build/lib/express/static.d.ts +10 -5
  56. package/build/lib/express/static.d.ts.map +1 -1
  57. package/build/lib/express/static.js +33 -43
  58. package/build/lib/express/static.js.map +1 -1
  59. package/build/lib/express/websocket.d.ts +22 -6
  60. package/build/lib/express/websocket.d.ts.map +1 -1
  61. package/build/lib/express/websocket.js +10 -15
  62. package/build/lib/express/websocket.js.map +1 -1
  63. package/build/lib/helpers/capabilities.d.ts +4 -16
  64. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  65. package/build/lib/helpers/capabilities.js +36 -48
  66. package/build/lib/helpers/capabilities.js.map +1 -1
  67. package/build/lib/jsonwp-proxy/proxy.d.ts +4 -2
  68. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
  69. package/build/lib/jsonwp-proxy/proxy.js +9 -4
  70. package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
  71. package/build/lib/jsonwp-status/status.d.ts +113 -158
  72. package/build/lib/jsonwp-status/status.d.ts.map +1 -1
  73. package/build/lib/jsonwp-status/status.js +10 -14
  74. package/build/lib/jsonwp-status/status.js.map +1 -1
  75. package/build/lib/protocol/bidi-commands.d.ts +31 -36
  76. package/build/lib/protocol/bidi-commands.d.ts.map +1 -1
  77. package/build/lib/protocol/bidi-commands.js +5 -5
  78. package/build/lib/protocol/bidi-commands.js.map +1 -1
  79. package/build/lib/protocol/errors.d.ts.map +1 -1
  80. package/build/lib/protocol/errors.js.map +1 -1
  81. package/build/lib/protocol/helpers.d.ts +7 -11
  82. package/build/lib/protocol/helpers.d.ts.map +1 -1
  83. package/build/lib/protocol/helpers.js +5 -9
  84. package/build/lib/protocol/helpers.js.map +1 -1
  85. package/build/lib/protocol/index.d.ts +4 -21
  86. package/build/lib/protocol/index.d.ts.map +1 -1
  87. package/build/lib/protocol/index.js.map +1 -1
  88. package/build/lib/protocol/protocol.d.ts +15 -1
  89. package/build/lib/protocol/protocol.d.ts.map +1 -1
  90. package/build/lib/protocol/protocol.js +50 -20
  91. package/build/lib/protocol/protocol.js.map +1 -1
  92. package/build/lib/protocol/routes.d.ts +8 -15
  93. package/build/lib/protocol/routes.d.ts.map +1 -1
  94. package/build/lib/protocol/routes.js +18 -33
  95. package/build/lib/protocol/routes.js.map +1 -1
  96. package/lib/basedriver/capabilities.ts +2 -2
  97. package/lib/basedriver/commands/event.ts +2 -2
  98. package/lib/basedriver/commands/execute.ts +2 -2
  99. package/lib/basedriver/commands/find.ts +2 -2
  100. package/lib/basedriver/commands/mixin.ts +1 -1
  101. package/lib/basedriver/commands/timeout.ts +2 -2
  102. package/lib/basedriver/{device-settings.js → device-settings.ts} +24 -35
  103. package/lib/basedriver/{helpers.js → helpers.ts} +215 -270
  104. package/lib/basedriver/logger.ts +3 -0
  105. package/lib/basedriver/validation.ts +2 -2
  106. package/lib/constants.ts +1 -1
  107. package/lib/express/crash.ts +15 -0
  108. package/lib/express/express-logging.ts +84 -0
  109. package/lib/express/{idempotency.js → idempotency.ts} +106 -90
  110. package/lib/express/logger.ts +3 -0
  111. package/lib/express/middleware.ts +187 -0
  112. package/lib/express/{server.js → server.ts} +177 -170
  113. package/lib/express/static.ts +77 -0
  114. package/lib/express/websocket.ts +81 -0
  115. package/lib/helpers/capabilities.ts +83 -0
  116. package/lib/jsonwp-proxy/proxy.js +7 -2
  117. package/lib/jsonwp-status/{status.js → status.ts} +12 -15
  118. package/lib/protocol/{bidi-commands.js → bidi-commands.ts} +7 -5
  119. package/lib/protocol/errors.ts +4 -4
  120. package/lib/protocol/{helpers.js → helpers.ts} +8 -11
  121. package/lib/protocol/protocol.ts +57 -26
  122. package/lib/protocol/{routes.js → routes.ts} +29 -40
  123. package/package.json +15 -15
  124. package/tsconfig.json +3 -1
  125. package/lib/basedriver/logger.js +0 -4
  126. package/lib/express/crash.js +0 -11
  127. package/lib/express/express-logging.js +0 -60
  128. package/lib/express/logger.js +0 -4
  129. package/lib/express/middleware.js +0 -171
  130. package/lib/express/static.js +0 -76
  131. package/lib/express/websocket.js +0 -79
  132. package/lib/helpers/capabilities.js +0 -93
  133. /package/lib/protocol/{index.js → index.ts} +0 -0
@@ -1,45 +1,41 @@
1
1
  import _ from 'lodash';
2
- import log from './logger';
2
+ import {log} from './logger';
3
3
  import {node, util} from '@appium/support';
4
4
  import {errors} from '../protocol/errors';
5
+ import type {StringRecord, IDeviceSettings, SettingsUpdateListener} from '@appium/types';
5
6
 
6
7
  /**
7
- * Maximum size (in bytes) of a given driver's settings object (which is internal to {@linkcode DriverSettings}).
8
+ * Maximum size (in bytes) of a given driver's settings object (which is internal to {@linkcode DeviceSettings}).
8
9
  */
9
10
  export const MAX_SETTINGS_SIZE = 20 * 1024 * 1024; // 20 MB
10
11
 
11
12
  /**
12
- * @template {StringRecord} T
13
- * @implements {IDeviceSettings<T>}
13
+ * @template T - Settings object shape (string-keyed record)
14
14
  */
15
- export class DeviceSettings {
16
- /**
17
- * @protected
18
- * @type {T}
19
- */
20
- _settings;
21
-
22
- /**
23
- * @protected
24
- * @type {import('@appium/types').SettingsUpdateListener<T>}
25
- */
26
- _onSettingsUpdate;
15
+ export class DeviceSettings<T extends StringRecord = StringRecord> implements IDeviceSettings<T> {
16
+ protected _settings: T;
17
+ protected _onSettingsUpdate: SettingsUpdateListener<T>;
27
18
 
28
19
  /**
29
20
  * Creates a _shallow copy_ of the `defaultSettings` parameter!
30
- * @param {T} [defaultSettings]
31
- * @param {import('@appium/types').SettingsUpdateListener<T>} [onSettingsUpdate]
21
+ *
22
+ * @param defaultSettings - Initial settings (shallow-copied).
23
+ * @param onSettingsUpdate - Called when a setting is changed; receives (prop, newValue, curValue).
32
24
  */
33
- constructor(defaultSettings = /** @type {T} */ ({}), onSettingsUpdate = async () => {}) {
25
+ constructor(
26
+ defaultSettings: T = {} as T,
27
+ onSettingsUpdate: SettingsUpdateListener<T> = async () => {}
28
+ ) {
34
29
  this._settings = {...defaultSettings};
35
30
  this._onSettingsUpdate = onSettingsUpdate;
36
31
  }
37
32
 
38
33
  /**
39
- * calls updateSettings from implementing driver every time a setting is changed.
40
- * @param {T} newSettings
34
+ * Calls updateSettings from implementing driver every time a setting is changed.
35
+ *
36
+ * @param newSettings - New settings to merge (must be plain object; total size remains bounded).
41
37
  */
42
- async update(newSettings) {
38
+ async update(newSettings: T): Promise<void> {
43
39
  if (!_.isPlainObject(newSettings)) {
44
40
  throw new errors.InvalidArgumentError(
45
41
  `Settings update should be called with valid JSON. Got ` +
@@ -61,23 +57,16 @@ export class DeviceSettings {
61
57
  continue;
62
58
  }
63
59
  }
64
- await this._onSettingsUpdate(prop, newSettings[prop], this._settings[prop]);
60
+ await this._onSettingsUpdate(
61
+ prop as keyof T,
62
+ newSettings[prop],
63
+ this._settings[prop]
64
+ );
65
65
  this._settings[prop] = newSettings[prop];
66
66
  }
67
67
  }
68
68
 
69
- getSettings() {
69
+ getSettings(): T {
70
70
  return this._settings;
71
71
  }
72
72
  }
73
-
74
- export default DeviceSettings;
75
-
76
- /**
77
- * @typedef {import('@appium/types').StringRecord} StringRecord
78
- */
79
-
80
- /**
81
- * @template {StringRecord} [T=StringRecord]
82
- * @typedef {import('@appium/types').IDeviceSettings<T>} IDeviceSettings
83
- */