@appium/base-driver 10.5.1 → 10.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 (130) hide show
  1. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  2. package/build/lib/basedriver/capabilities.js +45 -45
  3. package/build/lib/basedriver/capabilities.js.map +1 -1
  4. package/build/lib/basedriver/commands/bidi.d.ts.map +1 -1
  5. package/build/lib/basedriver/commands/bidi.js +9 -13
  6. package/build/lib/basedriver/commands/bidi.js.map +1 -1
  7. package/build/lib/basedriver/commands/event.d.ts.map +1 -1
  8. package/build/lib/basedriver/commands/event.js +4 -7
  9. package/build/lib/basedriver/commands/event.js.map +1 -1
  10. package/build/lib/basedriver/commands/execute.js +3 -6
  11. package/build/lib/basedriver/commands/execute.js.map +1 -1
  12. package/build/lib/basedriver/commands/log.d.ts.map +1 -1
  13. package/build/lib/basedriver/commands/log.js +1 -5
  14. package/build/lib/basedriver/commands/log.js.map +1 -1
  15. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
  16. package/build/lib/basedriver/commands/timeout.js +5 -9
  17. package/build/lib/basedriver/commands/timeout.js.map +1 -1
  18. package/build/lib/basedriver/core.js +12 -12
  19. package/build/lib/basedriver/core.js.map +1 -1
  20. package/build/lib/basedriver/device-settings.d.ts.map +1 -1
  21. package/build/lib/basedriver/device-settings.js +3 -7
  22. package/build/lib/basedriver/device-settings.js.map +1 -1
  23. package/build/lib/basedriver/driver.d.ts.map +1 -1
  24. package/build/lib/basedriver/driver.js +13 -16
  25. package/build/lib/basedriver/driver.js.map +1 -1
  26. package/build/lib/basedriver/extension-core.d.ts +4 -1
  27. package/build/lib/basedriver/extension-core.d.ts.map +1 -1
  28. package/build/lib/basedriver/extension-core.js +27 -9
  29. package/build/lib/basedriver/extension-core.js.map +1 -1
  30. package/build/lib/basedriver/helpers.d.ts.map +1 -1
  31. package/build/lib/basedriver/helpers.js +28 -30
  32. package/build/lib/basedriver/helpers.js.map +1 -1
  33. package/build/lib/basedriver/ipc.d.ts +36 -0
  34. package/build/lib/basedriver/ipc.d.ts.map +1 -0
  35. package/build/lib/basedriver/ipc.js +155 -0
  36. package/build/lib/basedriver/ipc.js.map +1 -0
  37. package/build/lib/basedriver/validation.js +25 -28
  38. package/build/lib/basedriver/validation.js.map +1 -1
  39. package/build/lib/express/express-logging.d.ts.map +1 -1
  40. package/build/lib/express/express-logging.js +2 -3
  41. package/build/lib/express/express-logging.js.map +1 -1
  42. package/build/lib/express/idempotency.js +3 -6
  43. package/build/lib/express/idempotency.js.map +1 -1
  44. package/build/lib/express/middleware.d.ts.map +1 -1
  45. package/build/lib/express/middleware.js +6 -10
  46. package/build/lib/express/middleware.js.map +1 -1
  47. package/build/lib/express/server.d.ts.map +1 -1
  48. package/build/lib/express/server.js +64 -54
  49. package/build/lib/express/server.js.map +1 -1
  50. package/build/lib/express/static.d.ts.map +1 -1
  51. package/build/lib/express/static.js +14 -7
  52. package/build/lib/express/static.js.map +1 -1
  53. package/build/lib/express/websocket.d.ts.map +1 -1
  54. package/build/lib/express/websocket.js +6 -9
  55. package/build/lib/express/websocket.js.map +1 -1
  56. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  57. package/build/lib/helpers/capabilities.js +14 -17
  58. package/build/lib/helpers/capabilities.js.map +1 -1
  59. package/build/lib/helpers/extension-command-name.js +2 -5
  60. package/build/lib/helpers/extension-command-name.js.map +1 -1
  61. package/build/lib/helpers/levenshtein-match.d.ts.map +1 -1
  62. package/build/lib/helpers/levenshtein-match.js +2 -6
  63. package/build/lib/helpers/levenshtein-match.js.map +1 -1
  64. package/build/lib/index.d.ts +1 -0
  65. package/build/lib/index.d.ts.map +1 -1
  66. package/build/lib/index.js +3 -14
  67. package/build/lib/index.js.map +1 -1
  68. package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -1
  69. package/build/lib/jsonwp-proxy/protocol-converter.js +13 -17
  70. package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
  71. package/build/lib/jsonwp-proxy/proxy-request.d.ts +2 -2
  72. package/build/lib/jsonwp-proxy/proxy-request.d.ts.map +1 -1
  73. package/build/lib/jsonwp-proxy/proxy-request.js +25 -21
  74. package/build/lib/jsonwp-proxy/proxy-request.js.map +1 -1
  75. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
  76. package/build/lib/jsonwp-proxy/proxy.js +29 -26
  77. package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
  78. package/build/lib/protocol/errors.d.ts.map +1 -1
  79. package/build/lib/protocol/errors.js +25 -29
  80. package/build/lib/protocol/errors.js.map +1 -1
  81. package/build/lib/protocol/helpers.d.ts.map +1 -1
  82. package/build/lib/protocol/helpers.js +9 -8
  83. package/build/lib/protocol/helpers.js.map +1 -1
  84. package/build/lib/protocol/protocol.d.ts.map +1 -1
  85. package/build/lib/protocol/protocol.js +43 -48
  86. package/build/lib/protocol/protocol.js.map +1 -1
  87. package/build/lib/protocol/routes.d.ts +1 -1
  88. package/build/lib/protocol/routes.d.ts.map +1 -1
  89. package/build/lib/protocol/routes.js +9 -12
  90. package/build/lib/protocol/routes.js.map +1 -1
  91. package/build/lib/protocol/validators.d.ts.map +1 -1
  92. package/build/lib/protocol/validators.js +1 -5
  93. package/build/lib/protocol/validators.js.map +1 -1
  94. package/build/lib/utils.d.ts +16 -0
  95. package/build/lib/utils.d.ts.map +1 -0
  96. package/build/lib/utils.js +71 -0
  97. package/build/lib/utils.js.map +1 -0
  98. package/lib/basedriver/capabilities.ts +60 -55
  99. package/lib/basedriver/commands/bidi.ts +10 -10
  100. package/lib/basedriver/commands/event.ts +11 -10
  101. package/lib/basedriver/commands/execute.ts +3 -3
  102. package/lib/basedriver/commands/log.ts +3 -2
  103. package/lib/basedriver/commands/timeout.ts +5 -6
  104. package/lib/basedriver/core.ts +12 -12
  105. package/lib/basedriver/device-settings.ts +3 -4
  106. package/lib/basedriver/driver.ts +15 -13
  107. package/lib/basedriver/extension-core.ts +33 -7
  108. package/lib/basedriver/helpers.ts +28 -30
  109. package/lib/basedriver/ipc.ts +179 -0
  110. package/lib/basedriver/validation.ts +26 -26
  111. package/lib/express/express-logging.ts +3 -4
  112. package/lib/express/idempotency.ts +3 -3
  113. package/lib/express/middleware.ts +6 -8
  114. package/lib/express/server.ts +67 -61
  115. package/lib/express/static.ts +15 -7
  116. package/lib/express/websocket.ts +8 -10
  117. package/lib/helpers/capabilities.ts +18 -14
  118. package/lib/helpers/extension-command-name.ts +2 -2
  119. package/lib/helpers/levenshtein-match.ts +2 -5
  120. package/lib/index.js +1 -11
  121. package/lib/jsonwp-proxy/protocol-converter.ts +14 -15
  122. package/lib/jsonwp-proxy/proxy-request.ts +26 -26
  123. package/lib/jsonwp-proxy/proxy.ts +36 -37
  124. package/lib/protocol/errors.ts +29 -28
  125. package/lib/protocol/helpers.ts +9 -5
  126. package/lib/protocol/protocol.ts +44 -46
  127. package/lib/protocol/routes.ts +9 -9
  128. package/lib/protocol/validators.ts +1 -3
  129. package/lib/utils.ts +85 -0
  130. package/package.json +7 -9
@@ -9,14 +9,12 @@ exports.isPackageOrBundle = isPackageOrBundle;
9
9
  exports.duplicateKeys = duplicateKeys;
10
10
  exports.parseCapsArray = parseCapsArray;
11
11
  exports.generateDriverLogPrefix = generateDriverLogPrefix;
12
- const lodash_1 = __importDefault(require("lodash"));
13
12
  const node_path_1 = __importDefault(require("node:path"));
14
13
  const logger_1 = require("./logger");
15
14
  const support_1 = require("@appium/support");
16
15
  const lru_cache_1 = require("lru-cache");
17
16
  const async_lock_1 = __importDefault(require("async-lock"));
18
17
  const axios_1 = __importDefault(require("axios"));
19
- const bluebird_1 = __importDefault(require("bluebird"));
20
18
  // for compat with running tests transpiled and in-place
21
19
  exports.BASEDRIVER_VER = support_1.fs.readPackageJsonFrom(__dirname).version;
22
20
  const CACHED_APPS_MAX_AGE_MS = 1000 * 60 * toNaturalNumber(60 * 24, 'APPIUM_APPS_CACHE_MAX_AGE');
@@ -74,27 +72,27 @@ process.on('exit', () => {
74
72
  * @throws {Error} If supported extensions are missing, the app path/URL is invalid, or download fails.
75
73
  */
76
74
  async function configureApp(app, options = {}) {
77
- if (!lodash_1.default.isString(app)) {
75
+ if (typeof app !== 'string') {
78
76
  // immediately shortcircuit if not given an app
79
77
  return '';
80
78
  }
81
79
  let supportedAppExtensions;
82
- const opts = !lodash_1.default.isString(options) && !lodash_1.default.isArray(options) ? options : undefined;
80
+ const opts = typeof options !== 'string' && !Array.isArray(options) ? options : undefined;
83
81
  const onPostProcess = opts?.onPostProcess;
84
82
  const onDownload = opts?.onDownload;
85
- if (lodash_1.default.isString(options)) {
83
+ if (typeof options === 'string') {
86
84
  supportedAppExtensions = [options];
87
85
  }
88
- else if (lodash_1.default.isArray(options)) {
86
+ else if (Array.isArray(options)) {
89
87
  supportedAppExtensions = options;
90
88
  }
91
- else if (lodash_1.default.isPlainObject(options)) {
89
+ else if (support_1.util.isPlainObject(options)) {
92
90
  supportedAppExtensions = options.supportedExtensions ?? [];
93
91
  }
94
92
  else {
95
93
  supportedAppExtensions = [];
96
94
  }
97
- if (lodash_1.default.isEmpty(supportedAppExtensions)) {
95
+ if (support_1.util.isEmpty(supportedAppExtensions)) {
98
96
  throw new Error(`One or more supported app extensions must be provided`);
99
97
  }
100
98
  let newApp = app;
@@ -137,7 +135,7 @@ async function configureApp(app, options = {}) {
137
135
  let { stream, status } = result;
138
136
  logger_1.log.debug(`Response status: ${status}`);
139
137
  try {
140
- if (!lodash_1.default.isEmpty(headers)) {
138
+ if (!support_1.util.isEmpty(headers)) {
141
139
  if (headers.etag) {
142
140
  logger_1.log.debug(`Etag: ${headers.etag}`);
143
141
  remoteAppProps.etag = headers.etag;
@@ -175,7 +173,7 @@ async function configureApp(app, options = {}) {
175
173
  if (onDownload) {
176
174
  newApp = await onDownload({
177
175
  url: originalAppLink,
178
- headers: lodash_1.default.clone(headers),
176
+ headers: structuredClone(headers),
179
177
  stream,
180
178
  });
181
179
  }
@@ -200,7 +198,7 @@ async function configureApp(app, options = {}) {
200
198
  else {
201
199
  let errorMessage = `The application at '${newApp}' does not exist or is not accessible`;
202
200
  // protocol value for 'C:\\temp' is 'c:', so we check the length as well
203
- if (lodash_1.default.isString(protocol) && protocol.length > 2) {
201
+ if (typeof protocol === 'string' && protocol.length > 2) {
204
202
  errorMessage =
205
203
  `The protocol '${protocol}' used in '${newApp}' is not supported. ` +
206
204
  `Only http: and https: protocols are supported`;
@@ -232,12 +230,12 @@ async function configureApp(app, options = {}) {
232
230
  });
233
231
  return appPathToCache;
234
232
  };
235
- if (lodash_1.default.isFunction(onPostProcess)) {
233
+ if (typeof onPostProcess === 'function') {
236
234
  const postProcessArg = {
237
- cachedAppInfo: lodash_1.default.clone(cachedAppInfo),
235
+ cachedAppInfo: structuredClone(cachedAppInfo),
238
236
  isUrl,
239
237
  originalAppLink,
240
- headers: lodash_1.default.clone(headers),
238
+ headers: structuredClone(headers),
241
239
  appPath: newApp,
242
240
  };
243
241
  const result = await onPostProcess(postProcessArg);
@@ -246,7 +244,7 @@ async function configureApp(app, options = {}) {
246
244
  : await storeAppInCache(result.appPath);
247
245
  }
248
246
  verifyAppExtension(newApp, supportedAppExtensions);
249
- return appCacheKey !== toCacheKey(newApp) && (packageHash || lodash_1.default.values(remoteAppProps).some(Boolean))
247
+ return appCacheKey !== toCacheKey(newApp) && (packageHash || Object.values(remoteAppProps).some(Boolean))
250
248
  ? await storeAppInCache(newApp)
251
249
  : newApp;
252
250
  });
@@ -272,13 +270,13 @@ function isPackageOrBundle(app) {
272
270
  */
273
271
  function duplicateKeys(input, firstKey, secondKey) {
274
272
  // If array provided, recursively call on all elements
275
- if (lodash_1.default.isArray(input)) {
273
+ if (Array.isArray(input)) {
276
274
  return input.map((item) => duplicateKeys(item, firstKey, secondKey));
277
275
  }
278
276
  // If object, create duplicates for keys and then recursively call on values
279
- if (lodash_1.default.isPlainObject(input)) {
277
+ if (support_1.util.isPlainObject(input)) {
280
278
  const resultObj = {};
281
- for (const [key, value] of lodash_1.default.toPairs(input)) {
279
+ for (const [key, value] of Object.entries(input)) {
282
280
  const recursivelyCalledValue = duplicateKeys(value, firstKey, secondKey);
283
281
  if (key === firstKey) {
284
282
  resultObj[secondKey] = recursivelyCalledValue;
@@ -302,23 +300,23 @@ function duplicateKeys(input, firstKey, secondKey) {
302
300
  * @throws {TypeError} If value is not a string/array or JSON parsing fails for array-like input.
303
301
  */
304
302
  function parseCapsArray(capValue) {
305
- if (lodash_1.default.isArray(capValue)) {
303
+ if (Array.isArray(capValue)) {
306
304
  return capValue;
307
305
  }
308
306
  try {
309
307
  const parsed = JSON.parse(capValue);
310
- if (lodash_1.default.isArray(parsed)) {
308
+ if (Array.isArray(parsed)) {
311
309
  return parsed;
312
310
  }
313
311
  }
314
312
  catch (e) {
315
313
  const message = `Failed to parse capability as JSON array: ${e.message}`;
316
- if (lodash_1.default.isString(capValue) && lodash_1.default.startsWith(lodash_1.default.trimStart(capValue), '[')) {
314
+ if (typeof capValue === 'string' && capValue.trimStart().startsWith('[')) {
317
315
  throw new TypeError(message, { cause: e });
318
316
  }
319
317
  logger_1.log.warn(message);
320
318
  }
321
- if (lodash_1.default.isString(capValue)) {
319
+ if (typeof capValue === 'string') {
322
320
  return [capValue];
323
321
  }
324
322
  throw new TypeError(`Expected a string or a valid JSON array; received '${capValue}'`);
@@ -349,10 +347,10 @@ function parseAppLink(appLink) {
349
347
  }
350
348
  function isEnvOptionEnabled(optionName, defaultValue = null) {
351
349
  const value = process.env[optionName];
352
- if (!lodash_1.default.isNull(defaultValue) && lodash_1.default.isEmpty(value)) {
350
+ if (defaultValue !== null && support_1.util.isEmpty(value)) {
353
351
  return defaultValue;
354
352
  }
355
- return !lodash_1.default.isEmpty(value) && !['0', 'false', 'no'].includes(lodash_1.default.toLower(value));
353
+ return !support_1.util.isEmpty(value) && !['0', 'false', 'no'].includes(String(value).toLowerCase());
356
354
  }
357
355
  function isSupportedUrl(app) {
358
356
  try {
@@ -417,7 +415,7 @@ async function fetchApp(srcStream, dstPath) {
417
415
  try {
418
416
  const writer = support_1.fs.createWriteStream(dstPath);
419
417
  srcStream.pipe(writer);
420
- await new bluebird_1.default((resolve, reject) => {
418
+ await new Promise((resolve, reject) => {
421
419
  srcStream.once('error', reject);
422
420
  writer.once('finish', () => resolve());
423
421
  writer.once('error', (e) => {
@@ -457,15 +455,15 @@ function determineFilename(headers, pathname, supportedAppExtensions) {
457
455
  ? basename.substring(0, basename.length - extname.length)
458
456
  : DEFAULT_BASENAME;
459
457
  let resultingExt = extname;
460
- if (!supportedAppExtensions.map(lodash_1.default.toLower).includes(lodash_1.default.toLower(resultingExt))) {
458
+ if (!supportedAppExtensions.map((ext) => ext.toLowerCase()).includes(resultingExt.toLowerCase())) {
461
459
  logger_1.log.info(`The current file extension '${resultingExt}' is not supported. ` +
462
- `Defaulting to '${lodash_1.default.first(supportedAppExtensions)}'`);
463
- resultingExt = lodash_1.default.first(supportedAppExtensions);
460
+ `Defaulting to '${supportedAppExtensions[0]}'`);
461
+ resultingExt = supportedAppExtensions[0];
464
462
  }
465
463
  return `${resultingName}${resultingExt}`;
466
464
  }
467
465
  function verifyAppExtension(app, supportedAppExtensions) {
468
- if (supportedAppExtensions.map(lodash_1.default.toLower).includes(lodash_1.default.toLower(node_path_1.default.extname(app)))) {
466
+ if (supportedAppExtensions.map((ext) => ext.toLowerCase()).includes(node_path_1.default.extname(app).toLowerCase())) {
469
467
  return app;
470
468
  }
471
469
  throw new Error(`New app path '${app}' did not have ` +
@@ -494,7 +492,7 @@ async function isAppIntegrityOk(currentPath, expectedIntegrity = {}) {
494
492
  : (await calculateFileIntegrity(currentPath)) === expectedIntegrity?.file;
495
493
  }
496
494
  function toNaturalNumber(defaultValue, envVarName) {
497
- if (!envVarName || lodash_1.default.isUndefined(process.env[envVarName])) {
495
+ if (!envVarName || process.env[envVarName] === undefined) {
498
496
  return defaultValue;
499
497
  }
500
498
  const num = parseInt(`${process.env[envVarName]}`, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../lib/basedriver/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../lib/basedriver/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { StringRecord, IIpcSubscription, IAppiumIpc, IpcMessage, IpcEvent, AppiumLogger, IpcData } from '@appium/types';
2
+ import EventEmitter from 'node:events';
3
+ export declare const EVT_MESSAGE = "message";
4
+ export declare const EVT_UNSUBSCRIBED = "unsubscribed";
5
+ export type AppiumIpcOpts = {
6
+ maxObjSize?: number;
7
+ maxTopics?: number;
8
+ log?: AppiumLogger;
9
+ };
10
+ export declare class IpcSubscription<T extends IpcData> extends EventEmitter<IpcEvent<T>> implements IIpcSubscription<T> {
11
+ readonly subscriber: string;
12
+ readonly topic: string;
13
+ private readonly ipc;
14
+ constructor(subscriber: string, topic: string, ipc: AppiumIpc);
15
+ get isActive(): boolean;
16
+ getMessage(): IpcMessage<T> | undefined;
17
+ publish(data: T): Promise<void>;
18
+ unsubscribe(): boolean;
19
+ [Symbol.asyncIterator](): AsyncGenerator<IpcMessage<T>>;
20
+ }
21
+ export declare class AppiumIpc implements IAppiumIpc {
22
+ protected readonly messageByTopic: StringRecord<IpcMessage<any>>;
23
+ protected readonly subs: StringRecord<Array<IpcSubscription<any>>>;
24
+ protected readonly topics: Set<string>;
25
+ protected readonly maxObjSize: number;
26
+ protected readonly maxTopics: number;
27
+ protected readonly log: AppiumLogger;
28
+ constructor(opts?: AppiumIpcOpts);
29
+ subscribe<T extends IpcData>(topic: string, subscriber: string): IpcSubscription<T>;
30
+ unsubscribe(topic: string, subscriber: string): boolean;
31
+ publish<T extends IpcData>(topic: string, publisher: string, data: T): Promise<void>;
32
+ getMessage<T extends IpcData>(topic: string): IpcMessage<T> | undefined;
33
+ subscriptionExists(topic: string, subscriber: string): boolean;
34
+ protected ensureTopic(topic: string): void;
35
+ }
36
+ //# sourceMappingURL=ipc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/ipc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3H,OAAO,YAAY,MAAM,aAAa,CAAC;AAOvC,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB,CAAC;AAIF,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;aAG5F,UAAU,EAAE,MAAM;aAClB,KAAK,EAAE,MAAM;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFJ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACZ,GAAG,EAAE,SAAS;IAKjC,IAAI,QAAQ,YAEX;IAED,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAOjC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrC,WAAW,IAAI,OAAO;IAUf,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAqB/D;AAED,qBAAa,SAAU,YAAW,UAAU;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM;IACtE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAM;IACxE,SAAS,CAAC,QAAQ,CAAC,MAAM,cAAqB;IAC9C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;gBAExB,IAAI,GAAE,aAAkB;IAQrC,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;IAanF,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IASjD,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC1F,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAQvE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAI9D,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAW3C"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AppiumIpc = exports.IpcSubscription = exports.EVT_UNSUBSCRIBED = exports.EVT_MESSAGE = void 0;
7
+ const logger_1 = require("./logger");
8
+ const node_events_1 = __importDefault(require("node:events"));
9
+ const asyncbox_1 = require("asyncbox");
10
+ const support_1 = require("@appium/support");
11
+ const DEF_MAX_OBJ_SIZE_BYTES = 1024 * 1024; // 1mb seems like plenty for any plugin to pass a message
12
+ const DEF_MAX_TOPICS = 1000;
13
+ exports.EVT_MESSAGE = 'message';
14
+ exports.EVT_UNSUBSCRIBED = 'unsubscribed';
15
+ const ASYNC_ITERATOR_STOP = Symbol('asyncIteratorStop');
16
+ class IpcSubscription extends node_events_1.default {
17
+ subscriber;
18
+ topic;
19
+ ipc;
20
+ constructor(subscriber, topic, ipc) {
21
+ super();
22
+ this.subscriber = subscriber;
23
+ this.topic = topic;
24
+ this.ipc = ipc;
25
+ }
26
+ get isActive() {
27
+ return this.ipc.subscriptionExists(this.topic, this.subscriber);
28
+ }
29
+ getMessage() {
30
+ if (!this.isActive) {
31
+ throw new Error('Cannot get message from subscription after unsubscribing');
32
+ }
33
+ return this.ipc.getMessage(this.topic);
34
+ }
35
+ async publish(data) {
36
+ if (!this.isActive) {
37
+ throw new Error('Cannot publish data to topic from subscription after unsubscribing');
38
+ }
39
+ return await this.ipc.publish(this.topic, this.subscriber, data);
40
+ }
41
+ unsubscribe() {
42
+ if (!this.isActive) {
43
+ return false;
44
+ }
45
+ const unsubscribeRes = this.ipc.unsubscribe(this.topic, this.subscriber);
46
+ this.emit('unsubscribed');
47
+ this.removeAllListeners(exports.EVT_MESSAGE);
48
+ return unsubscribeRes;
49
+ }
50
+ async *[Symbol.asyncIterator]() {
51
+ // yield any messages that are emitted, but keep an eye out for an unsubscribed that happens
52
+ // while a caller is waiting on the loop, because we want to exit the loop in case of
53
+ // unsubscription, even if we were already waiting on the next message.
54
+ while (this.isActive) {
55
+ const val = await new Promise((resolve) => {
56
+ this.once(exports.EVT_MESSAGE, (message) => {
57
+ this.removeAllListeners(exports.EVT_UNSUBSCRIBED);
58
+ resolve(message);
59
+ });
60
+ this.once(exports.EVT_UNSUBSCRIBED, () => {
61
+ // EVT_MESSAGE listeners are already removed in unsubscribe()
62
+ resolve(ASYNC_ITERATOR_STOP);
63
+ });
64
+ });
65
+ if (val === ASYNC_ITERATOR_STOP) {
66
+ break;
67
+ }
68
+ yield val;
69
+ }
70
+ }
71
+ }
72
+ exports.IpcSubscription = IpcSubscription;
73
+ class AppiumIpc {
74
+ messageByTopic = {};
75
+ subs = {};
76
+ topics = new Set();
77
+ maxObjSize;
78
+ maxTopics;
79
+ log;
80
+ constructor(opts = {}) {
81
+ this.maxObjSize = opts.maxObjSize ?? DEF_MAX_OBJ_SIZE_BYTES;
82
+ this.maxTopics = opts.maxTopics ?? DEF_MAX_TOPICS;
83
+ this.log = opts.log ?? logger_1.log;
84
+ this.log.debug(`Initialized new IPC object with max object size of ${this.maxObjSize} bytes ` +
85
+ `and max topics of ${this.maxTopics}`);
86
+ }
87
+ subscribe(topic, subscriber) {
88
+ this.log.info(`Subscribing ${subscriber} to topic '${topic}'`);
89
+ if (this.subscriptionExists(topic, subscriber)) {
90
+ throw new Error(`Subscription already exists for topic "${topic}" and subscriber "${subscriber}"`);
91
+ }
92
+ this.ensureTopic(topic);
93
+ this.subs[topic] ??= [];
94
+ const sub = new IpcSubscription(subscriber, topic, this);
95
+ this.subs[topic].push(sub);
96
+ return sub;
97
+ }
98
+ unsubscribe(topic, subscriber) {
99
+ this.log.info(`Unsubscribing ${subscriber} from topic '${topic}'`);
100
+ if (this.subscriptionExists(topic, subscriber)) {
101
+ this.subs[topic] = this.subs[topic].filter((sub) => sub.subscriber !== subscriber);
102
+ return true;
103
+ }
104
+ return false;
105
+ }
106
+ async publish(topic, publisher, data) {
107
+ this.log.debug(`${publisher} is publishing a message to topic ${topic}`);
108
+ this.ensureTopic(topic);
109
+ const messageSize = support_1.node.getObjectSize(data);
110
+ if (messageSize > this.maxObjSize) {
111
+ throw new Error(`Error when ${publisher} is publishing to topic '${topic}': ` +
112
+ `Message with size ${messageSize} bytes is bigger than max size of ${this.maxObjSize} bytes`);
113
+ }
114
+ let clonedData;
115
+ try {
116
+ clonedData = structuredClone(data);
117
+ }
118
+ catch (e) {
119
+ throw new Error(`Could not clone data for IPC publish from ${publisher} on topic ${topic}`, { cause: e });
120
+ }
121
+ const message = { publisher, data: clonedData, topic, timestampMs: Date.now() };
122
+ this.messageByTopic[topic] = message;
123
+ const subs = this.subs[topic] ?
124
+ this.subs[topic].filter((sub) => sub.subscriber !== publisher) :
125
+ [];
126
+ for (const sub of subs) {
127
+ sub.emit(exports.EVT_MESSAGE, structuredClone(message));
128
+ }
129
+ // we don't want to return from publish until the async iterators on subscriptions have had
130
+ // a chance to observe the emitted value, otherwise some might get lost
131
+ await (0, asyncbox_1.sleep)(0);
132
+ }
133
+ getMessage(topic) {
134
+ if (!this.messageByTopic[topic]) {
135
+ return;
136
+ }
137
+ return structuredClone(this.messageByTopic[topic]);
138
+ }
139
+ subscriptionExists(topic, subscriber) {
140
+ return !!this.subs[topic]?.some((sub) => sub.subscriber === subscriber);
141
+ }
142
+ ensureTopic(topic) {
143
+ if (this.topics.has(topic)) {
144
+ return;
145
+ }
146
+ if (this.topics.size >= this.maxTopics) {
147
+ throw new Error(`Cannot create new IPC topic '${topic}': ` +
148
+ `maximum of ${this.maxTopics} topics per session reached. ` +
149
+ `Adjust with the --max-ipc-topics server arg.`);
150
+ }
151
+ this.topics.add(topic);
152
+ }
153
+ }
154
+ exports.AppiumIpc = AppiumIpc;
155
+ //# sourceMappingURL=ipc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../lib/basedriver/ipc.ts"],"names":[],"mappings":"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"}
@@ -1,100 +1,97 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.validator = exports.Validator = void 0;
4
+ const support_1 = require("@appium/support");
7
5
  const logger_1 = require("./logger");
8
- const lodash_1 = __importDefault(require("lodash"));
9
6
  class Validator {
10
7
  _validators = {
11
8
  isString: (value, options) => {
12
- if (lodash_1.default.isUndefined(value) || lodash_1.default.isNil(options)) {
9
+ if (value === undefined || options == null) {
13
10
  return null;
14
11
  }
15
- if (lodash_1.default.isString(value)) {
12
+ if (typeof value === 'string') {
16
13
  return options ? null : 'must not be of type string';
17
14
  }
18
15
  return options ? 'must be of type string' : null;
19
16
  },
20
17
  isNumber: (value, options) => {
21
- if (lodash_1.default.isUndefined(value) || lodash_1.default.isNil(options)) {
18
+ if (value === undefined || options == null) {
22
19
  return null;
23
20
  }
24
- if (lodash_1.default.isNumber(value)) {
21
+ if (typeof value === 'number') {
25
22
  return options ? null : 'must not be of type number';
26
23
  }
27
24
  // allow a string value
28
- if (options && lodash_1.default.isString(value) && !isNaN(Number(value))) {
25
+ if (options && typeof value === 'string' && !isNaN(Number(value))) {
29
26
  logger_1.log.warn('Number capability passed in as string. Functionality may be compromised.');
30
27
  return null;
31
28
  }
32
29
  return options ? 'must be of type number' : null;
33
30
  },
34
31
  isBoolean: (value, options) => {
35
- if (lodash_1.default.isUndefined(value) || lodash_1.default.isNil(options)) {
32
+ if (value === undefined || options == null) {
36
33
  return null;
37
34
  }
38
- if (lodash_1.default.isBoolean(value)) {
35
+ if (typeof value === 'boolean') {
39
36
  return options ? null : 'must not be of type boolean';
40
37
  }
41
38
  // allow a string value
42
- if (options && lodash_1.default.isString(value) && ['true', 'false', ''].includes(value)) {
39
+ if (options && typeof value === 'string' && ['true', 'false', ''].includes(value)) {
43
40
  return null;
44
41
  }
45
42
  return options ? 'must be of type boolean' : null;
46
43
  },
47
44
  isObject: (value, options) => {
48
- if (lodash_1.default.isUndefined(value) || lodash_1.default.isNil(options)) {
45
+ if (value === undefined || options == null) {
49
46
  return null;
50
47
  }
51
- if (lodash_1.default.isPlainObject(value)) {
48
+ if (support_1.util.isPlainObject(value)) {
52
49
  return options ? null : 'must not be a plain object';
53
50
  }
54
51
  return options ? 'must be a plain object' : null;
55
52
  },
56
53
  isArray: (value, options) => {
57
- if (lodash_1.default.isUndefined(value) || lodash_1.default.isNil(options)) {
54
+ if (value === undefined || options == null) {
58
55
  return null;
59
56
  }
60
- if (lodash_1.default.isArray(value)) {
57
+ if (Array.isArray(value)) {
61
58
  return options ? null : 'must not be of type array';
62
59
  }
63
60
  return options ? 'must be of type array' : null;
64
61
  },
65
62
  deprecated: (value, options, key) => {
66
- if (!lodash_1.default.isUndefined(value) && options) {
63
+ if (value !== undefined && options) {
67
64
  logger_1.log.warn(`The '${key}' capability has been deprecated and must not be used anymore. ` +
68
65
  `Please check the driver documentation for possible alternatives.`);
69
66
  }
70
67
  return null;
71
68
  },
72
69
  inclusion: (value, options) => {
73
- if (lodash_1.default.isUndefined(value) || !options) {
70
+ if (value === undefined || !options) {
74
71
  return null;
75
72
  }
76
- const optionsArr = lodash_1.default.isArray(options) ? options : [options];
73
+ const optionsArr = Array.isArray(options) ? options : [options];
77
74
  if (optionsArr.some((opt) => opt === value)) {
78
75
  return null;
79
76
  }
80
77
  return `must be contained by ${JSON.stringify(optionsArr)}`;
81
78
  },
82
79
  inclusionCaseInsensitive: (value, options) => {
83
- if (lodash_1.default.isUndefined(value) || !options) {
80
+ if (value === undefined || !options) {
84
81
  return null;
85
82
  }
86
- const optionsArr = lodash_1.default.isArray(options) ? options : [options];
87
- if (optionsArr.some((opt) => lodash_1.default.toLower(opt) === lodash_1.default.toLower(value))) {
83
+ const optionsArr = Array.isArray(options) ? options : [options];
84
+ if (optionsArr.some((opt) => String(opt).toLowerCase() === String(value).toLowerCase())) {
88
85
  return null;
89
86
  }
90
87
  return `must be contained by ${JSON.stringify(optionsArr)}`;
91
88
  },
92
89
  presence: (value, options) => {
93
- if (lodash_1.default.isUndefined(value) && options) {
90
+ if (value === undefined && options) {
94
91
  return 'is required to be present';
95
92
  }
96
93
  if (!options?.allowEmpty &&
97
- ((!lodash_1.default.isUndefined(value) && lodash_1.default.isEmpty(value)) || (lodash_1.default.isString(value) && !lodash_1.default.trim(value)))) {
94
+ ((value !== undefined && support_1.util.isEmpty(value)) || (typeof value === 'string' && !value.trim()))) {
98
95
  return 'must not be empty or blank';
99
96
  }
100
97
  return null;
@@ -102,14 +99,14 @@ class Validator {
102
99
  };
103
100
  validate(values, constraints) {
104
101
  const result = {};
105
- for (const [key, constraint] of lodash_1.default.toPairs(constraints)) {
102
+ for (const [key, constraint] of Object.entries(constraints)) {
106
103
  const value = values[key];
107
- for (const [validatorName, options] of lodash_1.default.toPairs(constraint)) {
104
+ for (const [validatorName, options] of Object.entries(constraint)) {
108
105
  if (!(validatorName in this._validators)) {
109
106
  continue;
110
107
  }
111
108
  const validationError = this._validators[validatorName](value, options, key);
112
- if (lodash_1.default.isNil(validationError)) {
109
+ if (validationError == null) {
113
110
  continue;
114
111
  }
115
112
  if (key in result) {
@@ -120,7 +117,7 @@ class Validator {
120
117
  }
121
118
  }
122
119
  }
123
- return lodash_1.default.isEmpty(result) ? null : result;
120
+ return support_1.util.isEmpty(result) ? null : result;
124
121
  }
125
122
  }
126
123
  exports.Validator = Validator;