@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.
- package/build/lib/basedriver/capabilities.d.ts.map +1 -1
- package/build/lib/basedriver/capabilities.js +45 -45
- package/build/lib/basedriver/capabilities.js.map +1 -1
- package/build/lib/basedriver/commands/bidi.d.ts.map +1 -1
- package/build/lib/basedriver/commands/bidi.js +9 -13
- package/build/lib/basedriver/commands/bidi.js.map +1 -1
- package/build/lib/basedriver/commands/event.d.ts.map +1 -1
- package/build/lib/basedriver/commands/event.js +4 -7
- package/build/lib/basedriver/commands/event.js.map +1 -1
- package/build/lib/basedriver/commands/execute.js +3 -6
- package/build/lib/basedriver/commands/execute.js.map +1 -1
- package/build/lib/basedriver/commands/log.d.ts.map +1 -1
- package/build/lib/basedriver/commands/log.js +1 -5
- package/build/lib/basedriver/commands/log.js.map +1 -1
- package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
- package/build/lib/basedriver/commands/timeout.js +5 -9
- package/build/lib/basedriver/commands/timeout.js.map +1 -1
- package/build/lib/basedriver/core.js +12 -12
- package/build/lib/basedriver/core.js.map +1 -1
- package/build/lib/basedriver/device-settings.d.ts.map +1 -1
- package/build/lib/basedriver/device-settings.js +3 -7
- package/build/lib/basedriver/device-settings.js.map +1 -1
- package/build/lib/basedriver/driver.d.ts.map +1 -1
- package/build/lib/basedriver/driver.js +13 -16
- package/build/lib/basedriver/driver.js.map +1 -1
- package/build/lib/basedriver/extension-core.d.ts +4 -1
- package/build/lib/basedriver/extension-core.d.ts.map +1 -1
- package/build/lib/basedriver/extension-core.js +27 -9
- package/build/lib/basedriver/extension-core.js.map +1 -1
- package/build/lib/basedriver/helpers.d.ts.map +1 -1
- package/build/lib/basedriver/helpers.js +28 -30
- package/build/lib/basedriver/helpers.js.map +1 -1
- package/build/lib/basedriver/ipc.d.ts +36 -0
- package/build/lib/basedriver/ipc.d.ts.map +1 -0
- package/build/lib/basedriver/ipc.js +155 -0
- package/build/lib/basedriver/ipc.js.map +1 -0
- package/build/lib/basedriver/validation.js +25 -28
- package/build/lib/basedriver/validation.js.map +1 -1
- package/build/lib/express/express-logging.d.ts.map +1 -1
- package/build/lib/express/express-logging.js +2 -3
- package/build/lib/express/express-logging.js.map +1 -1
- package/build/lib/express/idempotency.js +3 -6
- package/build/lib/express/idempotency.js.map +1 -1
- package/build/lib/express/middleware.d.ts.map +1 -1
- package/build/lib/express/middleware.js +6 -10
- package/build/lib/express/middleware.js.map +1 -1
- package/build/lib/express/server.d.ts.map +1 -1
- package/build/lib/express/server.js +64 -54
- package/build/lib/express/server.js.map +1 -1
- package/build/lib/express/static.d.ts.map +1 -1
- package/build/lib/express/static.js +14 -7
- package/build/lib/express/static.js.map +1 -1
- package/build/lib/express/websocket.d.ts.map +1 -1
- package/build/lib/express/websocket.js +6 -9
- package/build/lib/express/websocket.js.map +1 -1
- package/build/lib/helpers/capabilities.d.ts.map +1 -1
- package/build/lib/helpers/capabilities.js +14 -17
- package/build/lib/helpers/capabilities.js.map +1 -1
- package/build/lib/helpers/extension-command-name.js +2 -5
- package/build/lib/helpers/extension-command-name.js.map +1 -1
- package/build/lib/helpers/levenshtein-match.d.ts.map +1 -1
- package/build/lib/helpers/levenshtein-match.js +2 -6
- package/build/lib/helpers/levenshtein-match.js.map +1 -1
- package/build/lib/index.d.ts +1 -0
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/index.js +3 -14
- package/build/lib/index.js.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.js +13 -17
- package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
- package/build/lib/jsonwp-proxy/proxy-request.d.ts +2 -2
- package/build/lib/jsonwp-proxy/proxy-request.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/proxy-request.js +25 -21
- package/build/lib/jsonwp-proxy/proxy-request.js.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.js +29 -26
- package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
- package/build/lib/protocol/errors.d.ts.map +1 -1
- package/build/lib/protocol/errors.js +25 -29
- package/build/lib/protocol/errors.js.map +1 -1
- package/build/lib/protocol/helpers.d.ts.map +1 -1
- package/build/lib/protocol/helpers.js +9 -8
- package/build/lib/protocol/helpers.js.map +1 -1
- package/build/lib/protocol/protocol.d.ts.map +1 -1
- package/build/lib/protocol/protocol.js +43 -48
- package/build/lib/protocol/protocol.js.map +1 -1
- package/build/lib/protocol/routes.d.ts +1 -1
- package/build/lib/protocol/routes.d.ts.map +1 -1
- package/build/lib/protocol/routes.js +9 -12
- package/build/lib/protocol/routes.js.map +1 -1
- package/build/lib/protocol/validators.d.ts.map +1 -1
- package/build/lib/protocol/validators.js +1 -5
- package/build/lib/protocol/validators.js.map +1 -1
- package/build/lib/utils.d.ts +16 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +71 -0
- package/build/lib/utils.js.map +1 -0
- package/lib/basedriver/capabilities.ts +60 -55
- package/lib/basedriver/commands/bidi.ts +10 -10
- package/lib/basedriver/commands/event.ts +11 -10
- package/lib/basedriver/commands/execute.ts +3 -3
- package/lib/basedriver/commands/log.ts +3 -2
- package/lib/basedriver/commands/timeout.ts +5 -6
- package/lib/basedriver/core.ts +12 -12
- package/lib/basedriver/device-settings.ts +3 -4
- package/lib/basedriver/driver.ts +15 -13
- package/lib/basedriver/extension-core.ts +33 -7
- package/lib/basedriver/helpers.ts +28 -30
- package/lib/basedriver/ipc.ts +179 -0
- package/lib/basedriver/validation.ts +26 -26
- package/lib/express/express-logging.ts +3 -4
- package/lib/express/idempotency.ts +3 -3
- package/lib/express/middleware.ts +6 -8
- package/lib/express/server.ts +67 -61
- package/lib/express/static.ts +15 -7
- package/lib/express/websocket.ts +8 -10
- package/lib/helpers/capabilities.ts +18 -14
- package/lib/helpers/extension-command-name.ts +2 -2
- package/lib/helpers/levenshtein-match.ts +2 -5
- package/lib/index.js +1 -11
- package/lib/jsonwp-proxy/protocol-converter.ts +14 -15
- package/lib/jsonwp-proxy/proxy-request.ts +26 -26
- package/lib/jsonwp-proxy/proxy.ts +36 -37
- package/lib/protocol/errors.ts +29 -28
- package/lib/protocol/helpers.ts +9 -5
- package/lib/protocol/protocol.ts +44 -46
- package/lib/protocol/routes.ts +9 -9
- package/lib/protocol/validators.ts +1 -3
- package/lib/utils.ts +85 -0
- 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 (
|
|
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 =
|
|
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 (
|
|
83
|
+
if (typeof options === 'string') {
|
|
86
84
|
supportedAppExtensions = [options];
|
|
87
85
|
}
|
|
88
|
-
else if (
|
|
86
|
+
else if (Array.isArray(options)) {
|
|
89
87
|
supportedAppExtensions = options;
|
|
90
88
|
}
|
|
91
|
-
else if (
|
|
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 (
|
|
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 (!
|
|
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:
|
|
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 (
|
|
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 (
|
|
233
|
+
if (typeof onPostProcess === 'function') {
|
|
236
234
|
const postProcessArg = {
|
|
237
|
-
cachedAppInfo:
|
|
235
|
+
cachedAppInfo: structuredClone(cachedAppInfo),
|
|
238
236
|
isUrl,
|
|
239
237
|
originalAppLink,
|
|
240
|
-
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 ||
|
|
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 (
|
|
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 (
|
|
277
|
+
if (support_1.util.isPlainObject(input)) {
|
|
280
278
|
const resultObj = {};
|
|
281
|
-
for (const [key, value] of
|
|
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 (
|
|
303
|
+
if (Array.isArray(capValue)) {
|
|
306
304
|
return capValue;
|
|
307
305
|
}
|
|
308
306
|
try {
|
|
309
307
|
const parsed = JSON.parse(capValue);
|
|
310
|
-
if (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
350
|
+
if (defaultValue !== null && support_1.util.isEmpty(value)) {
|
|
353
351
|
return defaultValue;
|
|
354
352
|
}
|
|
355
|
-
return !
|
|
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
|
|
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(
|
|
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 '${
|
|
463
|
-
resultingExt =
|
|
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(
|
|
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 ||
|
|
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 (
|
|
9
|
+
if (value === undefined || options == null) {
|
|
13
10
|
return null;
|
|
14
11
|
}
|
|
15
|
-
if (
|
|
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 (
|
|
18
|
+
if (value === undefined || options == null) {
|
|
22
19
|
return null;
|
|
23
20
|
}
|
|
24
|
-
if (
|
|
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 &&
|
|
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 (
|
|
32
|
+
if (value === undefined || options == null) {
|
|
36
33
|
return null;
|
|
37
34
|
}
|
|
38
|
-
if (
|
|
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 &&
|
|
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 (
|
|
45
|
+
if (value === undefined || options == null) {
|
|
49
46
|
return null;
|
|
50
47
|
}
|
|
51
|
-
if (
|
|
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 (
|
|
54
|
+
if (value === undefined || options == null) {
|
|
58
55
|
return null;
|
|
59
56
|
}
|
|
60
|
-
if (
|
|
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 (
|
|
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 (
|
|
70
|
+
if (value === undefined || !options) {
|
|
74
71
|
return null;
|
|
75
72
|
}
|
|
76
|
-
const optionsArr =
|
|
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 (
|
|
80
|
+
if (value === undefined || !options) {
|
|
84
81
|
return null;
|
|
85
82
|
}
|
|
86
|
-
const optionsArr =
|
|
87
|
-
if (optionsArr.some((opt) =>
|
|
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 (
|
|
90
|
+
if (value === undefined && options) {
|
|
94
91
|
return 'is required to be present';
|
|
95
92
|
}
|
|
96
93
|
if (!options?.allowEmpty &&
|
|
97
|
-
((
|
|
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
|
|
102
|
+
for (const [key, constraint] of Object.entries(constraints)) {
|
|
106
103
|
const value = values[key];
|
|
107
|
-
for (const [validatorName, options] of
|
|
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 (
|
|
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
|
|
120
|
+
return support_1.util.isEmpty(result) ? null : result;
|
|
124
121
|
}
|
|
125
122
|
}
|
|
126
123
|
exports.Validator = Validator;
|