@limrun/appium-xcuitest-driver 10.4.3-lim.1 → 10.10.1-lim.10
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/CHANGELOG.md +84 -0
- package/build/lib/app-utils.d.ts +2 -2
- package/build/lib/app-utils.d.ts.map +1 -1
- package/build/lib/app-utils.js +4 -1
- package/build/lib/app-utils.js.map +1 -1
- package/build/lib/commands/app-management.js +2 -2
- package/build/lib/commands/app-management.js.map +1 -1
- package/build/lib/commands/appearance.js +2 -2
- package/build/lib/commands/appearance.js.map +1 -1
- package/build/lib/commands/bidi/models.d.ts.map +1 -1
- package/build/lib/commands/bidi/models.js +1 -0
- package/build/lib/commands/bidi/models.js.map +1 -1
- package/build/lib/commands/bidi/types.d.ts +1 -0
- package/build/lib/commands/bidi/types.d.ts.map +1 -1
- package/build/lib/commands/biometric.js +3 -3
- package/build/lib/commands/biometric.js.map +1 -1
- package/build/lib/commands/certificate.d.ts.map +1 -1
- package/build/lib/commands/certificate.js +9 -3
- package/build/lib/commands/certificate.js.map +1 -1
- package/build/lib/commands/condition.d.ts +2 -0
- package/build/lib/commands/condition.d.ts.map +1 -1
- package/build/lib/commands/condition.js +75 -2
- package/build/lib/commands/condition.js.map +1 -1
- package/build/lib/commands/context.d.ts +5 -5
- package/build/lib/commands/context.d.ts.map +1 -1
- package/build/lib/commands/context.js +6 -6
- package/build/lib/commands/context.js.map +1 -1
- package/build/lib/commands/file-movement.d.ts.map +1 -1
- package/build/lib/commands/file-movement.js +7 -7
- package/build/lib/commands/file-movement.js.map +1 -1
- package/build/lib/commands/general.js +1 -1
- package/build/lib/commands/general.js.map +1 -1
- package/build/lib/commands/gesture.js +1 -1
- package/build/lib/commands/gesture.js.map +1 -1
- package/build/lib/commands/keychains.js +1 -1
- package/build/lib/commands/keychains.js.map +1 -1
- package/build/lib/commands/localization.js +1 -1
- package/build/lib/commands/localization.js.map +1 -1
- package/build/lib/commands/location.d.ts +3 -2
- package/build/lib/commands/location.d.ts.map +1 -1
- package/build/lib/commands/location.js +10 -4
- package/build/lib/commands/location.js.map +1 -1
- package/build/lib/commands/log.js +9 -9
- package/build/lib/commands/log.js.map +1 -1
- package/build/lib/commands/memory.js +1 -1
- package/build/lib/commands/memory.js.map +1 -1
- package/build/lib/commands/notifications.js +1 -1
- package/build/lib/commands/notifications.js.map +1 -1
- package/build/lib/commands/pasteboard.js +2 -2
- package/build/lib/commands/pasteboard.js.map +1 -1
- package/build/lib/commands/pcap.js +1 -1
- package/build/lib/commands/pcap.js.map +1 -1
- package/build/lib/commands/performance.d.ts.map +1 -1
- package/build/lib/commands/performance.js +13 -4
- package/build/lib/commands/performance.js.map +1 -1
- package/build/lib/commands/permissions.js +2 -2
- package/build/lib/commands/permissions.js.map +1 -1
- package/build/lib/commands/proxy-helper.d.ts.map +1 -1
- package/build/lib/commands/proxy-helper.js +0 -3
- package/build/lib/commands/proxy-helper.js.map +1 -1
- package/build/lib/commands/screenshots.js +1 -1
- package/build/lib/commands/screenshots.js.map +1 -1
- package/build/lib/commands/simctl.d.ts +1 -1
- package/build/lib/commands/simctl.d.ts.map +1 -1
- package/build/lib/commands/simctl.js +1 -1
- package/build/lib/commands/simctl.js.map +1 -1
- package/build/lib/commands/web.js +1 -1
- package/build/lib/commands/web.js.map +1 -1
- package/build/lib/commands/xctest-record-screen.js +2 -2
- package/build/lib/commands/xctest-record-screen.js.map +1 -1
- package/build/lib/desired-caps.d.ts +392 -505
- package/build/lib/desired-caps.d.ts.map +1 -1
- package/build/lib/desired-caps.js +19 -10
- package/build/lib/desired-caps.js.map +1 -1
- package/build/lib/device/clients/base-device-client.d.ts +22 -0
- package/build/lib/device/clients/base-device-client.d.ts.map +1 -0
- package/build/lib/device/clients/base-device-client.js +14 -0
- package/build/lib/device/clients/base-device-client.js.map +1 -0
- package/build/lib/device/clients/py-ios-device-client.d.ts +21 -0
- package/build/lib/device/clients/py-ios-device-client.d.ts.map +1 -0
- package/build/lib/device/clients/py-ios-device-client.js +125 -0
- package/build/lib/device/clients/py-ios-device-client.js.map +1 -0
- package/build/lib/device/device-connections-factory.d.ts +18 -0
- package/build/lib/device/device-connections-factory.d.ts.map +1 -0
- package/build/lib/device/device-connections-factory.js +260 -0
- package/build/lib/device/device-connections-factory.js.map +1 -0
- package/build/lib/device/log/helpers.d.ts +10 -0
- package/build/lib/device/log/helpers.d.ts.map +1 -0
- package/build/lib/device/log/helpers.js +37 -0
- package/build/lib/device/log/helpers.js.map +1 -0
- package/build/lib/device/log/ios-crash-log.d.ts +34 -0
- package/build/lib/device/log/ios-crash-log.d.ts.map +1 -0
- package/build/lib/device/log/ios-crash-log.js +141 -0
- package/build/lib/device/log/ios-crash-log.js.map +1 -0
- package/build/lib/device/log/ios-device-log.d.ts +19 -0
- package/build/lib/device/log/ios-device-log.d.ts.map +1 -0
- package/build/lib/device/log/ios-device-log.js +42 -0
- package/build/lib/device/log/ios-device-log.js.map +1 -0
- package/build/lib/device/log/ios-log.d.ts +24 -0
- package/build/lib/device/log/ios-log.d.ts.map +1 -0
- package/build/lib/device/log/ios-log.js +50 -0
- package/build/lib/device/log/ios-log.js.map +1 -0
- package/build/lib/device/log/ios-performance-log.d.ts +18 -0
- package/build/lib/device/log/ios-performance-log.d.ts.map +1 -0
- package/build/lib/device/log/ios-performance-log.js +43 -0
- package/build/lib/device/log/ios-performance-log.js.map +1 -0
- package/build/lib/device/log/ios-simulator-log.d.ts +38 -0
- package/build/lib/device/log/ios-simulator-log.d.ts.map +1 -0
- package/build/lib/device/log/ios-simulator-log.js +184 -0
- package/build/lib/device/log/ios-simulator-log.js.map +1 -0
- package/build/lib/device/log/line-consuming-log.d.ts +9 -0
- package/build/lib/device/log/line-consuming-log.d.ts.map +1 -0
- package/build/lib/device/log/line-consuming-log.js +16 -0
- package/build/lib/device/log/line-consuming-log.js.map +1 -0
- package/build/lib/device/log/safari-console-log.d.ts +67 -0
- package/build/lib/device/log/safari-console-log.d.ts.map +1 -0
- package/build/lib/device/log/safari-console-log.js +81 -0
- package/build/lib/device/log/safari-console-log.js.map +1 -0
- package/build/lib/device/log/safari-network-log.d.ts +75 -0
- package/build/lib/device/log/safari-network-log.d.ts.map +1 -0
- package/build/lib/device/log/safari-network-log.js +47 -0
- package/build/lib/device/log/safari-network-log.js.map +1 -0
- package/build/lib/device/real-device-management.d.ts +146 -0
- package/build/lib/device/real-device-management.d.ts.map +1 -0
- package/build/lib/device/real-device-management.js +740 -0
- package/build/lib/device/real-device-management.js.map +1 -0
- package/build/lib/device/simulator-management.d.ts +65 -0
- package/build/lib/device/simulator-management.d.ts.map +1 -0
- package/build/lib/device/simulator-management.js +261 -0
- package/build/lib/device/simulator-management.js.map +1 -0
- package/build/lib/device-log/ios-crash-log.d.ts +1 -1
- package/build/lib/device-log/ios-crash-log.d.ts.map +1 -1
- package/build/lib/device-log/ios-simulator-log.d.ts +1 -1
- package/build/lib/device-log/ios-simulator-log.d.ts.map +1 -1
- package/build/lib/doctor/required-checks.js +1 -1
- package/build/lib/doctor/required-checks.js.map +1 -1
- package/build/lib/driver.d.ts +129 -1377
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +461 -573
- package/build/lib/driver.js.map +1 -1
- package/build/lib/method-map.d.ts +1 -1
- package/build/lib/method-map.d.ts.map +1 -1
- package/build/lib/method-map.js +2 -2
- package/build/lib/method-map.js.map +1 -1
- package/build/lib/simulator-management.d.ts +10 -0
- package/build/lib/simulator-management.d.ts.map +1 -1
- package/build/lib/simulator-management.js +9 -5
- package/build/lib/simulator-management.js.map +1 -1
- package/build/lib/utils.d.ts +2 -9
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +3 -47
- package/build/lib/utils.js.map +1 -1
- package/lib/app-utils.js +5 -1
- package/lib/commands/app-management.js +2 -2
- package/lib/commands/appearance.js +2 -2
- package/lib/commands/bidi/models.ts +1 -0
- package/lib/commands/bidi/types.ts +1 -0
- package/lib/commands/biometric.js +3 -3
- package/lib/commands/certificate.js +9 -3
- package/lib/commands/condition.js +85 -2
- package/lib/commands/context.js +6 -6
- package/lib/commands/file-movement.js +11 -7
- package/lib/commands/general.js +1 -1
- package/lib/commands/gesture.js +1 -1
- package/lib/commands/keychains.js +1 -1
- package/lib/commands/localization.js +1 -1
- package/lib/commands/location.js +11 -4
- package/lib/commands/log.js +9 -9
- package/lib/commands/memory.js +1 -1
- package/lib/commands/notifications.js +1 -1
- package/lib/commands/pasteboard.js +2 -2
- package/lib/commands/pcap.js +1 -1
- package/lib/commands/performance.js +12 -1
- package/lib/commands/permissions.js +2 -2
- package/lib/commands/proxy-helper.js +0 -3
- package/lib/commands/screenshots.js +1 -1
- package/lib/commands/simctl.js +1 -1
- package/lib/commands/web.js +1 -1
- package/lib/commands/xctest-record-screen.js +2 -2
- package/lib/{desired-caps.js → desired-caps.ts} +20 -6
- package/lib/{real-device-clients → device/clients}/py-ios-device-client.ts +1 -1
- package/lib/{device-connections-factory.js → device/device-connections-factory.ts} +96 -60
- package/lib/{device-log → device/log}/helpers.ts +1 -1
- package/lib/{device-log → device/log}/ios-crash-log.ts +4 -4
- package/lib/{device-log → device/log}/ios-log.ts +1 -1
- package/lib/{device-log → device/log}/ios-simulator-log.ts +9 -9
- package/lib/{device-log → device/log}/line-consuming-log.ts +1 -1
- package/lib/{device-log → device/log}/safari-console-log.ts +1 -1
- package/lib/device/real-device-management.ts +831 -0
- package/lib/{simulator-management.js → device/simulator-management.ts} +75 -64
- package/lib/doctor/required-checks.ts +1 -1
- package/lib/{driver.js → driver.ts} +623 -707
- package/lib/{method-map.js → method-map.ts} +5 -2
- package/lib/utils.js +3 -54
- package/package.json +17 -19
- package/scripts/build-wda.js +3 -3
- package/lib/ios-fs-helpers.js +0 -355
- package/lib/ios-generic-simulators.js +0 -11
- package/lib/real-device-management.js +0 -133
- package/lib/real-device.js +0 -347
- package/lib/xcrun.js +0 -16
- /package/lib/{real-device-clients → device/clients}/base-device-client.ts +0 -0
- /package/lib/{device-log → device/log}/ios-device-log.ts +0 -0
- /package/lib/{device-log → device/log}/ios-performance-log.ts +0 -0
- /package/lib/{device-log → device/log}/safari-network-log.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desired-caps.d.ts","sourceRoot":"","sources":["../../lib/desired-caps.
|
|
1
|
+
{"version":3,"file":"desired-caps.d.ts","sourceRoot":"","sources":["../../lib/desired-caps.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiZF,CAAC;AAEjC,MAAM,MAAM,yBAAyB,GAAG,OAAO,qBAAqB,CAAC"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.desiredCapConstraints = exports.PLATFORM_NAME_TVOS = exports.PLATFORM_NAME_IOS = void 0;
|
|
4
4
|
// These platform names should be valid in simulator name
|
|
5
|
-
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
exports.PLATFORM_NAME_TVOS = PLATFORM_NAME_TVOS;
|
|
9
|
-
const desiredCapConstraints = /** @type {const} */ ({
|
|
5
|
+
exports.PLATFORM_NAME_IOS = 'iOS';
|
|
6
|
+
exports.PLATFORM_NAME_TVOS = 'tvOS';
|
|
7
|
+
exports.desiredCapConstraints = {
|
|
10
8
|
platformName: {
|
|
11
9
|
// override
|
|
12
10
|
presence: true,
|
|
13
11
|
isString: true,
|
|
14
|
-
inclusionCaseInsensitive: [PLATFORM_NAME_IOS, PLATFORM_NAME_TVOS],
|
|
12
|
+
inclusionCaseInsensitive: [exports.PLATFORM_NAME_IOS, exports.PLATFORM_NAME_TVOS],
|
|
15
13
|
},
|
|
16
14
|
browserName: {
|
|
17
15
|
isString: true,
|
|
@@ -160,6 +158,7 @@ const desiredCapConstraints = /** @type {const} */ ({
|
|
|
160
158
|
},
|
|
161
159
|
launchWithIDB: {
|
|
162
160
|
isBoolean: true,
|
|
161
|
+
deprecated: true,
|
|
163
162
|
},
|
|
164
163
|
useNewWDA: {
|
|
165
164
|
isBoolean: true,
|
|
@@ -393,8 +392,18 @@ const desiredCapConstraints = /** @type {const} */ ({
|
|
|
393
392
|
pageLoadStrategy: {
|
|
394
393
|
isString: true,
|
|
395
394
|
inclusionCaseInsensitive: ['none', 'eager', 'normal']
|
|
395
|
+
},
|
|
396
|
+
// Lim Instance integration options
|
|
397
|
+
limInstanceApiUrl: {
|
|
398
|
+
isString: true,
|
|
399
|
+
},
|
|
400
|
+
limInstanceToken: {
|
|
401
|
+
isString: true,
|
|
402
|
+
},
|
|
403
|
+
// Custom headers to be sent with every request to WebDriverAgent
|
|
404
|
+
// Useful when WDA is behind a gateway that requires authentication headers
|
|
405
|
+
wdaRequestHeaders: {
|
|
406
|
+
isObject: true,
|
|
396
407
|
}
|
|
397
|
-
}
|
|
398
|
-
exports.desiredCapConstraints = desiredCapConstraints;
|
|
399
|
-
exports.default = desiredCapConstraints;
|
|
408
|
+
};
|
|
400
409
|
//# sourceMappingURL=desired-caps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desired-caps.js","sourceRoot":"","sources":["../../lib/desired-caps.
|
|
1
|
+
{"version":3,"file":"desired-caps.js","sourceRoot":"","sources":["../../lib/desired-caps.ts"],"names":[],"mappings":";;;AAEA,yDAAyD;AAC5C,QAAA,iBAAiB,GAAG,KAAK,CAAC;AAC1B,QAAA,kBAAkB,GAAG,MAAM,CAAC;AAE5B,QAAA,qBAAqB,GAAG;IACnC,YAAY,EAAE;QACZ,WAAW;QACX,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,CAAC,yBAAiB,EAAE,0BAAkB,CAAC;KAClE;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;KACf;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,IAAI;KACf;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;KAChB;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,IAAI;KAChB;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;KAChB;IACD,2BAA2B,EAAE;QAC3B,SAAS,EAAE,IAAI;KAChB;IACD,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;KAChB;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;IAChB,qBAAqB;IACrB,wDAAwD;KACzD;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;KAChB;IACD,2BAA2B,EAAE;QAC3B,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE;QACf,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,IAAI;KAChB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,IAAI;KAChB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;KAChB;IACD,wBAAwB,EAAE;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACjB;IACD,SAAS,EAAE;QACT,SAAS,EAAE,IAAI;KAChB;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,oBAAoB,EAAE;QACpB,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE;IACf,qBAAqB;IACrB,wDAAwD;KACzD;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,SAAS,EAAE,IAAI;KAChB;IACD,uBAAuB,EAAE;QACvB,SAAS,EAAE,IAAI;KAChB;IACD,oCAAoC,EAAE;QACpC,SAAS,EAAE,IAAI;KAChB;IACD,gCAAgC,EAAE;QAChC,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACjB;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACjB;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACjB;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,IAAI;KAChB;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,6BAA6B,EAAE;QAC7B,SAAS,EAAE,IAAI;KAChB;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;KAChB;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;KAChB;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf;IACD,qBAAqB,EAAE;QACrB,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;KAChB;IACD,6BAA6B,EAAE;QAC7B,SAAS,EAAE,IAAI;KAChB;IACD,uBAAuB,EAAE;QACvB,SAAS,EAAE,IAAI;KAChB;IACD,wBAAwB,EAAE;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,uBAAuB,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf;IACD,yBAAyB,EAAE;QACzB,SAAS,EAAE,IAAI;KAChB;IACD,gCAAgC,EAAE;QAChC,SAAS,EAAE,IAAI;KAChB;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;KAChB;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,SAAS,EAAE,IAAI;KAChB;IACD,0BAA0B,EAAE;IAC1B,2BAA2B;IAC3B,6CAA6C;KAC9C;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,IAAI;KACf;IACD,sBAAsB,EAAE;QACtB,QAAQ,EAAE,IAAI;KACf;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;KAChB;IACD,yBAAyB,EAAE;QACzB,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;KAChB;IACD,gCAAgC,EAAE;QAChC,QAAQ,EAAE,IAAI;KACf;IACD,mCAAmC,EAAE;QACnC,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,wBAAwB,EAAE;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,2BAA2B,EAAE;QAC3B,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,IAAI;KAChB;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC;KAC/D;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,kCAAkC,EAAE;QAClC,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,2BAA2B,EAAE;QAC3B,SAAS,EAAE,IAAI;KAChB;IACD,sCAAsC,EAAE;QACtC,SAAS,EAAE,IAAI;KAChB;IACD,wBAAwB,EAAE;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;KACtD;IACD,mCAAmC;IACnC,iBAAiB,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,iEAAiE;IACjE,2EAA2E;IAC3E,iBAAiB,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf;CAC6B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AppiumLogger } from '@appium/types';
|
|
2
|
+
import type { SubProcess } from 'teen_process';
|
|
3
|
+
export interface BaseDeviceClientOptions {
|
|
4
|
+
log: AppiumLogger;
|
|
5
|
+
}
|
|
6
|
+
export interface InstallProfileArgs {
|
|
7
|
+
profilePath?: string;
|
|
8
|
+
payload?: string | Buffer;
|
|
9
|
+
}
|
|
10
|
+
export declare abstract class BaseDeviceClient {
|
|
11
|
+
private readonly _log;
|
|
12
|
+
constructor(opts: BaseDeviceClientOptions);
|
|
13
|
+
get log(): AppiumLogger;
|
|
14
|
+
abstract assertExists(isStrict: boolean): Promise<boolean>;
|
|
15
|
+
abstract listProfiles(): Promise<object>;
|
|
16
|
+
abstract installProfile(args: InstallProfileArgs): Promise<void>;
|
|
17
|
+
abstract removeProfile(name: string): Promise<string>;
|
|
18
|
+
abstract listCrashes(): Promise<string[]>;
|
|
19
|
+
abstract exportCrash(name: string, dstFolder: string): Promise<void>;
|
|
20
|
+
abstract collectPcap(dstFile: string): Promise<SubProcess>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=base-device-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-device-client.d.ts","sourceRoot":"","sources":["../../../../lib/device/clients/base-device-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;CACzB;AAED,8BAAsB,gBAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;gBAEvB,IAAI,EAAE,uBAAuB;IAI1C,IAAI,GAAG,IAAI,YAAY,CAEtB;IAED,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1D,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAChE,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAErD,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpE,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAC3D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseDeviceClient = void 0;
|
|
4
|
+
class BaseDeviceClient {
|
|
5
|
+
_log;
|
|
6
|
+
constructor(opts) {
|
|
7
|
+
this._log = opts.log;
|
|
8
|
+
}
|
|
9
|
+
get log() {
|
|
10
|
+
return this._log;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.BaseDeviceClient = BaseDeviceClient;
|
|
14
|
+
//# sourceMappingURL=base-device-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-device-client.js","sourceRoot":"","sources":["../../../../lib/device/clients/base-device-client.ts"],"names":[],"mappings":";;;AAYA,MAAsB,gBAAgB;IACnB,IAAI,CAAe;IAEpC,YAAa,IAA6B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;IACvB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CAYF;AArBD,4CAqBC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SubProcess } from 'teen_process';
|
|
2
|
+
import { BaseDeviceClient } from './base-device-client';
|
|
3
|
+
import type { BaseDeviceClientOptions, InstallProfileArgs } from './base-device-client';
|
|
4
|
+
import type { CertificateList } from '../../commands/types';
|
|
5
|
+
export interface PyideviceOptions extends BaseDeviceClientOptions {
|
|
6
|
+
udid: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class Pyidevice extends BaseDeviceClient {
|
|
9
|
+
private readonly _udid;
|
|
10
|
+
private _binaryPath;
|
|
11
|
+
constructor(opts: PyideviceOptions);
|
|
12
|
+
assertExists(isStrict?: boolean): Promise<boolean>;
|
|
13
|
+
listProfiles(): Promise<CertificateList>;
|
|
14
|
+
installProfile(args: InstallProfileArgs): Promise<void>;
|
|
15
|
+
removeProfile(name: string): Promise<string>;
|
|
16
|
+
listCrashes(): Promise<string[]>;
|
|
17
|
+
exportCrash(name: string, dstFolder: string): Promise<void>;
|
|
18
|
+
collectPcap(dstFile: string): Promise<SubProcess>;
|
|
19
|
+
private execute;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=py-ios-device-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"py-ios-device-client.d.ts","sourceRoot":"","sources":["../../../../lib/device/clients/py-ios-device-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,UAAU,EAAC,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAExF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAO5D,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;IAC/D,IAAI,EAAE,MAAM,CAAC;CACd;AASD,qBAAa,SAAU,SAAQ,gBAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAgB;gBAEvB,IAAI,EAAE,gBAAgB;IAMnB,YAAY,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/C,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;IAKxC,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BvD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAWhC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAOlD,OAAO;CA6BtB"}
|
|
@@ -0,0 +1,125 @@
|
|
|
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.Pyidevice = void 0;
|
|
7
|
+
const teen_process_1 = require("teen_process");
|
|
8
|
+
const support_1 = require("appium/support");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const base_device_client_1 = require("./base-device-client");
|
|
11
|
+
// https://github.com/YueChen-C/py-ios-device
|
|
12
|
+
const BINARY_NAME = 'pyidevice';
|
|
13
|
+
const CRASH_REPORT_EXT = '.ips';
|
|
14
|
+
class Pyidevice extends base_device_client_1.BaseDeviceClient {
|
|
15
|
+
_udid;
|
|
16
|
+
_binaryPath;
|
|
17
|
+
constructor(opts) {
|
|
18
|
+
super({ log: opts.log });
|
|
19
|
+
this._udid = opts.udid;
|
|
20
|
+
this._binaryPath = null;
|
|
21
|
+
}
|
|
22
|
+
async assertExists(isStrict = true) {
|
|
23
|
+
if (this._binaryPath) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
this._binaryPath = await support_1.fs.which(BINARY_NAME);
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
if (isStrict) {
|
|
32
|
+
throw new Error(`${BINARY_NAME} binary cannot be found in PATH. ` +
|
|
33
|
+
`Please make sure it is installed. Visit https://github.com/YueChen-C/py-ios-device for ` +
|
|
34
|
+
`more details.`);
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async listProfiles() {
|
|
40
|
+
const { stdout } = await this.execute(['profiles', 'list']);
|
|
41
|
+
return JSON.parse(stdout);
|
|
42
|
+
}
|
|
43
|
+
async installProfile(args) {
|
|
44
|
+
const { profilePath, payload } = args;
|
|
45
|
+
if (!profilePath && !payload) {
|
|
46
|
+
throw new Error('Either the full path to the profile or its payload must be provided');
|
|
47
|
+
}
|
|
48
|
+
let tmpRoot;
|
|
49
|
+
let srcPath = profilePath;
|
|
50
|
+
try {
|
|
51
|
+
if (!srcPath) {
|
|
52
|
+
tmpRoot = await support_1.tempDir.openDir();
|
|
53
|
+
srcPath = path_1.default.join(tmpRoot, 'cert.pem');
|
|
54
|
+
if (Buffer.isBuffer(payload)) {
|
|
55
|
+
await support_1.fs.writeFile(srcPath, payload);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
await support_1.fs.writeFile(srcPath, payload, 'utf8');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
await this.execute(['profiles', 'install', '--path', srcPath], {
|
|
62
|
+
logStdout: true,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
if (tmpRoot) {
|
|
67
|
+
await support_1.fs.rimraf(tmpRoot);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async removeProfile(name) {
|
|
72
|
+
return (await this.execute(['profiles', 'remove', '--name', name], { logStdout: true })).stdout;
|
|
73
|
+
}
|
|
74
|
+
async listCrashes() {
|
|
75
|
+
const { stdout } = await this.execute(['crash', 'list']);
|
|
76
|
+
// Example output:
|
|
77
|
+
// ['.', '..', 'SiriSearchFeedback-2023-12-06-144043.ips', '
|
|
78
|
+
// SiriSearchFeedback-2024-05-22-194219.ips', 'JetsamEvent-2024-05-23-225056.ips',
|
|
79
|
+
// 'JetsamEvent-2023-09-18-090920.ips', 'JetsamEvent-2024-05-16-054529.ips',
|
|
80
|
+
// 'Assistant']
|
|
81
|
+
return JSON.parse(stdout.replace(/'/g, '"'))
|
|
82
|
+
.filter((x) => x.endsWith(CRASH_REPORT_EXT));
|
|
83
|
+
}
|
|
84
|
+
async exportCrash(name, dstFolder) {
|
|
85
|
+
await this.execute(['crash', 'export', '--name', name], {
|
|
86
|
+
logStdout: true,
|
|
87
|
+
// The tool exports crash reports to the current working dir
|
|
88
|
+
cwd: dstFolder,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
async collectPcap(dstFile) {
|
|
92
|
+
return await this.execute(['pcapd', dstFile], {
|
|
93
|
+
format: null,
|
|
94
|
+
asynchronous: true,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
async execute(args, opts = {}) {
|
|
98
|
+
await this.assertExists();
|
|
99
|
+
const { cwd, format = 'json', logStdout = false, asynchronous = false } = opts;
|
|
100
|
+
const finalArgs = [...args, '--udid', this._udid, '--network'];
|
|
101
|
+
if (format) {
|
|
102
|
+
finalArgs.push('--format', format);
|
|
103
|
+
}
|
|
104
|
+
const binaryPath = this._binaryPath;
|
|
105
|
+
const cmdStr = support_1.util.quote([binaryPath, ...finalArgs]);
|
|
106
|
+
this.log.debug(`Executing ${cmdStr}`);
|
|
107
|
+
try {
|
|
108
|
+
if (asynchronous) {
|
|
109
|
+
const result = new teen_process_1.SubProcess(binaryPath, finalArgs, { cwd });
|
|
110
|
+
await result.start(0);
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
const result = await (0, teen_process_1.exec)(binaryPath, finalArgs, { cwd });
|
|
114
|
+
if (logStdout) {
|
|
115
|
+
this.log.debug(`Command output: ${result.stdout}`);
|
|
116
|
+
}
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
catch (e) {
|
|
120
|
+
throw new Error(`'${cmdStr}' failed. Original error: ${e.stderr || e.stdout || e.message}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.Pyidevice = Pyidevice;
|
|
125
|
+
//# sourceMappingURL=py-ios-device-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"py-ios-device-client.js","sourceRoot":"","sources":["../../../../lib/device/clients/py-ios-device-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class DeviceConnectionsFactory {
|
|
2
|
+
private _connectionsMapping;
|
|
3
|
+
constructor();
|
|
4
|
+
listConnections(udid?: string | null, port?: string | number | null, strict?: boolean): string[];
|
|
5
|
+
requestConnection(udid?: string | null, port?: string | number | null, options?: RequestConnectionOptions): Promise<void>;
|
|
6
|
+
releaseConnection(udid?: string | null, port?: string | number | null): void;
|
|
7
|
+
private _udidAsToken;
|
|
8
|
+
private _portAsToken;
|
|
9
|
+
private _toKey;
|
|
10
|
+
private _releaseProxiedConnections;
|
|
11
|
+
}
|
|
12
|
+
export declare const DEVICE_CONNECTIONS_FACTORY: DeviceConnectionsFactory;
|
|
13
|
+
interface RequestConnectionOptions {
|
|
14
|
+
usePortForwarding?: boolean;
|
|
15
|
+
devicePort?: number | null;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=device-connections-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-connections-factory.d.ts","sourceRoot":"","sources":["../../../lib/device/device-connections-factory.ts"],"names":[],"mappings":"AAuHA,qBAAa,wBAAwB;IACnC,OAAO,CAAC,mBAAmB,CAAoB;;IAM/C,eAAe,CACb,IAAI,GAAE,MAAM,GAAG,IAAW,EAC1B,IAAI,GAAE,MAAM,GAAG,MAAM,GAAG,IAAW,EACnC,MAAM,GAAE,OAAe,GACtB,MAAM,EAAE;IAiBL,iBAAiB,CACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAC7B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,IAAI,CAAC;IA6FhB,iBAAiB,CAAC,IAAI,GAAE,MAAM,GAAG,IAAW,EAAE,IAAI,GAAE,MAAM,GAAG,MAAM,GAAG,IAAW,GAAG,IAAI;IAuBxF,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,0BAA0B;CAYnC;AAED,eAAO,MAAM,0BAA0B,0BAAiC,CAAC;AAQzE,UAAU,wBAAwB;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B"}
|
|
@@ -0,0 +1,260 @@
|
|
|
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.DEVICE_CONNECTIONS_FACTORY = exports.DeviceConnectionsFactory = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const net_1 = __importDefault(require("net"));
|
|
9
|
+
const bluebird_1 = __importDefault(require("bluebird"));
|
|
10
|
+
const support_1 = require("appium/support");
|
|
11
|
+
const appium_ios_device_1 = require("appium-ios-device");
|
|
12
|
+
const portscanner_1 = require("portscanner");
|
|
13
|
+
const asyncbox_1 = require("asyncbox");
|
|
14
|
+
const LOCALHOST = '127.0.0.1';
|
|
15
|
+
class iProxy {
|
|
16
|
+
localport;
|
|
17
|
+
deviceport;
|
|
18
|
+
udid;
|
|
19
|
+
localServer;
|
|
20
|
+
log;
|
|
21
|
+
onBeforeProcessExit;
|
|
22
|
+
constructor(udid, localport, deviceport) {
|
|
23
|
+
this.localport = parseInt(String(localport), 10);
|
|
24
|
+
this.deviceport = parseInt(String(deviceport), 10);
|
|
25
|
+
this.udid = udid;
|
|
26
|
+
this.localServer = null;
|
|
27
|
+
this.log = support_1.logger.getLogger(`iProxy@${udid.substring(0, 8)}:${this.localport}`);
|
|
28
|
+
this.onBeforeProcessExit = null;
|
|
29
|
+
}
|
|
30
|
+
async start() {
|
|
31
|
+
if (this.localServer) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.localServer = net_1.default.createServer(async (localSocket) => {
|
|
35
|
+
let remoteSocket;
|
|
36
|
+
try {
|
|
37
|
+
// We can only connect to the remote socket after the local socket connection succeeds
|
|
38
|
+
remoteSocket = await appium_ios_device_1.utilities.connectPort(this.udid, this.deviceport);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
this.log.debug(e.message);
|
|
42
|
+
localSocket.destroy();
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const destroyCommChannel = () => {
|
|
46
|
+
remoteSocket.unpipe(localSocket);
|
|
47
|
+
localSocket.unpipe(remoteSocket);
|
|
48
|
+
};
|
|
49
|
+
remoteSocket.once('close', () => {
|
|
50
|
+
destroyCommChannel();
|
|
51
|
+
localSocket.destroy();
|
|
52
|
+
});
|
|
53
|
+
// not all remote socket errors are critical for the user
|
|
54
|
+
remoteSocket.on('error', (e) => this.log.debug(e));
|
|
55
|
+
localSocket.once('end', destroyCommChannel);
|
|
56
|
+
localSocket.once('close', () => {
|
|
57
|
+
destroyCommChannel();
|
|
58
|
+
remoteSocket.destroy();
|
|
59
|
+
});
|
|
60
|
+
localSocket.on('error', (e) => this.log.warn(e.message));
|
|
61
|
+
localSocket.pipe(remoteSocket);
|
|
62
|
+
remoteSocket.pipe(localSocket);
|
|
63
|
+
});
|
|
64
|
+
const listeningPromise = new bluebird_1.default((resolve, reject) => {
|
|
65
|
+
if (this.localServer) {
|
|
66
|
+
this.localServer.once('listening', resolve);
|
|
67
|
+
this.localServer.once('error', reject);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
reject(new Error('Local server is not initialized'));
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
this.localServer.listen(this.localport);
|
|
74
|
+
try {
|
|
75
|
+
await listeningPromise;
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
this.localServer = null;
|
|
79
|
+
throw e;
|
|
80
|
+
}
|
|
81
|
+
this.localServer.on('error', (e) => this.log.warn(e.message));
|
|
82
|
+
this.localServer.once('close', (e) => {
|
|
83
|
+
if (e) {
|
|
84
|
+
this.log.info(`The connection has been closed with error ${e.message}`);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.log.info(`The connection has been closed`);
|
|
88
|
+
}
|
|
89
|
+
this.localServer = null;
|
|
90
|
+
});
|
|
91
|
+
this.onBeforeProcessExit = this._closeLocalServer.bind(this);
|
|
92
|
+
// Make sure we free up the socket on process exit
|
|
93
|
+
if (this.onBeforeProcessExit) {
|
|
94
|
+
process.on('beforeExit', this.onBeforeProcessExit);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
stop() {
|
|
98
|
+
if (this.onBeforeProcessExit) {
|
|
99
|
+
process.off('beforeExit', this.onBeforeProcessExit);
|
|
100
|
+
this.onBeforeProcessExit = null;
|
|
101
|
+
}
|
|
102
|
+
this._closeLocalServer();
|
|
103
|
+
}
|
|
104
|
+
_closeLocalServer() {
|
|
105
|
+
if (!this.localServer) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.log.debug(`Closing the connection`);
|
|
109
|
+
this.localServer.close();
|
|
110
|
+
this.localServer = null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const log = support_1.logger.getLogger('DevCon Factory');
|
|
114
|
+
const PORT_CLOSE_TIMEOUT = 15 * 1000; // 15 seconds
|
|
115
|
+
const SPLITTER = ':';
|
|
116
|
+
class DeviceConnectionsFactory {
|
|
117
|
+
_connectionsMapping;
|
|
118
|
+
constructor() {
|
|
119
|
+
this._connectionsMapping = {};
|
|
120
|
+
}
|
|
121
|
+
listConnections(udid = null, port = null, strict = false) {
|
|
122
|
+
if (!udid && !port) {
|
|
123
|
+
return [];
|
|
124
|
+
}
|
|
125
|
+
// `this._connectionMapping` keys have format `udid:port`
|
|
126
|
+
// the `strict` argument enforces to match keys having both `udid` and `port`
|
|
127
|
+
// if they are defined
|
|
128
|
+
// while in non-strict mode keys having any of these are going to be matched
|
|
129
|
+
return lodash_1.default.keys(this._connectionsMapping).filter((key) => strict && udid && port
|
|
130
|
+
? key === this._toKey(udid, port)
|
|
131
|
+
: (udid && key.startsWith(this._udidAsToken(udid))) ||
|
|
132
|
+
(port && key.endsWith(this._portAsToken(port))));
|
|
133
|
+
}
|
|
134
|
+
async requestConnection(udid, port, options = {}) {
|
|
135
|
+
if (!udid || !port) {
|
|
136
|
+
log.warn('Did not know how to request the connection:');
|
|
137
|
+
if (!udid) {
|
|
138
|
+
log.warn('- Device UDID is unset');
|
|
139
|
+
}
|
|
140
|
+
if (!port) {
|
|
141
|
+
log.warn('- The local port number is unset');
|
|
142
|
+
}
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const { usePortForwarding, devicePort } = options;
|
|
146
|
+
log.info(`Requesting connection for device ${udid} on local port ${port}` +
|
|
147
|
+
(devicePort ? `, device port ${devicePort}` : ''));
|
|
148
|
+
log.debug(`Cached connections count: ${lodash_1.default.size(this._connectionsMapping)}`);
|
|
149
|
+
const connectionsOnPort = this.listConnections(null, port);
|
|
150
|
+
if (!lodash_1.default.isEmpty(connectionsOnPort)) {
|
|
151
|
+
log.info(`Found cached connections on port #${port}: ${JSON.stringify(connectionsOnPort)}`);
|
|
152
|
+
}
|
|
153
|
+
if (usePortForwarding) {
|
|
154
|
+
let isPortBusy = (await (0, portscanner_1.checkPortStatus)(Number(port), LOCALHOST)) === 'open';
|
|
155
|
+
if (isPortBusy) {
|
|
156
|
+
log.warn(`Port #${port} is busy. Did you quit the previous driver session(s) properly?`);
|
|
157
|
+
if (!lodash_1.default.isEmpty(connectionsOnPort)) {
|
|
158
|
+
log.info('Trying to release the port');
|
|
159
|
+
for (const key of this._releaseProxiedConnections(connectionsOnPort)) {
|
|
160
|
+
delete this._connectionsMapping[key];
|
|
161
|
+
}
|
|
162
|
+
const timer = new support_1.timing.Timer().start();
|
|
163
|
+
try {
|
|
164
|
+
await (0, asyncbox_1.waitForCondition)(async () => {
|
|
165
|
+
try {
|
|
166
|
+
if ((await (0, portscanner_1.checkPortStatus)(Number(port), LOCALHOST)) !== 'open') {
|
|
167
|
+
log.info(`Port #${port} has been successfully released after ` +
|
|
168
|
+
`${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
|
|
169
|
+
isPortBusy = false;
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch { }
|
|
174
|
+
return false;
|
|
175
|
+
}, {
|
|
176
|
+
waitMs: PORT_CLOSE_TIMEOUT,
|
|
177
|
+
intervalMs: 300,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
log.warn(`Did not know how to release port #${port} in ` +
|
|
182
|
+
`${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (isPortBusy) {
|
|
187
|
+
throw new Error(`The port #${port} is occupied by an other process. ` +
|
|
188
|
+
`You can either quit that process or select another free port.`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const currentKey = this._toKey(udid, port);
|
|
192
|
+
if (usePortForwarding) {
|
|
193
|
+
if (!lodash_1.default.isInteger(devicePort)) {
|
|
194
|
+
throw new Error('devicePort is required when usePortForwarding is true');
|
|
195
|
+
}
|
|
196
|
+
const iproxy = new iProxy(udid, port, Number(devicePort));
|
|
197
|
+
try {
|
|
198
|
+
await iproxy.start();
|
|
199
|
+
this._connectionsMapping[currentKey] = { iproxy };
|
|
200
|
+
}
|
|
201
|
+
catch (e) {
|
|
202
|
+
try {
|
|
203
|
+
iproxy.stop();
|
|
204
|
+
}
|
|
205
|
+
catch (e1) {
|
|
206
|
+
log.debug(e1);
|
|
207
|
+
}
|
|
208
|
+
throw e;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
this._connectionsMapping[currentKey] = {};
|
|
213
|
+
}
|
|
214
|
+
log.info(`Successfully requested the connection for ${currentKey}`);
|
|
215
|
+
}
|
|
216
|
+
releaseConnection(udid = null, port = null) {
|
|
217
|
+
if (!udid && !port) {
|
|
218
|
+
log.warn('Neither device UDID nor local port is set. ' +
|
|
219
|
+
'Did not know how to release the connection');
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
log.info(`Releasing connections for ${udid || 'any'} device on ${port || 'any'} port number`);
|
|
223
|
+
const keys = this.listConnections(udid, port, true);
|
|
224
|
+
if (lodash_1.default.isEmpty(keys)) {
|
|
225
|
+
log.info('No cached connections have been found');
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
log.info(`Found cached connections to release: ${JSON.stringify(keys)}`);
|
|
229
|
+
this._releaseProxiedConnections(keys);
|
|
230
|
+
for (const key of keys) {
|
|
231
|
+
delete this._connectionsMapping[key];
|
|
232
|
+
}
|
|
233
|
+
log.debug(`Cached connections count: ${lodash_1.default.size(this._connectionsMapping)}`);
|
|
234
|
+
}
|
|
235
|
+
_udidAsToken(udid) {
|
|
236
|
+
return `${support_1.util.hasValue(udid) ? udid : ''}${SPLITTER}`;
|
|
237
|
+
}
|
|
238
|
+
_portAsToken(port) {
|
|
239
|
+
return `${SPLITTER}${support_1.util.hasValue(port) ? port : ''}`;
|
|
240
|
+
}
|
|
241
|
+
_toKey(udid = null, port = null) {
|
|
242
|
+
return `${support_1.util.hasValue(udid) ? udid : ''}${SPLITTER}${support_1.util.hasValue(port) ? port : ''}`;
|
|
243
|
+
}
|
|
244
|
+
_releaseProxiedConnections(connectionKeys) {
|
|
245
|
+
const keys = connectionKeys.filter((k) => lodash_1.default.has(this._connectionsMapping[k], 'iproxy'));
|
|
246
|
+
for (const key of keys) {
|
|
247
|
+
log.info(`Releasing the listener for '${key}'`);
|
|
248
|
+
try {
|
|
249
|
+
this._connectionsMapping[key].iproxy?.stop();
|
|
250
|
+
}
|
|
251
|
+
catch (e) {
|
|
252
|
+
log.debug(e);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return keys;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
exports.DeviceConnectionsFactory = DeviceConnectionsFactory;
|
|
259
|
+
exports.DEVICE_CONNECTIONS_FACTORY = new DeviceConnectionsFactory();
|
|
260
|
+
//# sourceMappingURL=device-connections-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-connections-factory.js","sourceRoot":"","sources":["../../../lib/device/device-connections-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LogEntry } from '../../commands/types';
|
|
2
|
+
export declare const DEFAULT_LOG_LEVEL = "ALL";
|
|
3
|
+
export declare const MAX_JSON_LOG_LENGTH = 200;
|
|
4
|
+
export declare const MAX_BUFFERED_EVENTS_COUNT = 5000;
|
|
5
|
+
export declare function toLogEntry(message: string, timestamp: number, level?: string): LogEntry;
|
|
6
|
+
export interface GrepOptions {
|
|
7
|
+
caseInsensitive?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function grepFile(fullPath: string, str: string, opts?: GrepOptions): Promise<boolean>;
|
|
10
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../lib/device/log/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAA0B,GAAG,QAAQ,CAM1G;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,OAAO,CAAC,CAclB"}
|