appium-ios-simulator 5.0.1 → 5.0.3
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 +14 -0
- package/build/lib/extensions/permissions.js +4 -4
- package/build/lib/extensions/permissions.js.map +1 -1
- package/build/lib/simulator-xcode-9.3.js +16 -14
- package/build/lib/simulator-xcode-9.3.js.map +1 -1
- package/lib/extensions/permissions.js +4 -3
- package/lib/simulator-xcode-9.3.js +21 -27
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [5.0.3](https://github.com/appium/appium-ios-simulator/compare/v5.0.2...v5.0.3) (2023-01-04)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* retrieve an appropriate unix socket path ([#352](https://github.com/appium/appium-ios-simulator/issues/352)) ([de11bfc](https://github.com/appium/appium-ios-simulator/commit/de11bfc13b9f66252fe6f14865f6970c8950db63))
|
|
7
|
+
|
|
8
|
+
## [5.0.2](https://github.com/appium/appium-ios-simulator/compare/v5.0.1...v5.0.2) (2022-12-19)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* udid reference in setAccess ([#350](https://github.com/appium/appium-ios-simulator/issues/350)) ([73d12a4](https://github.com/appium/appium-ios-simulator/commit/73d12a4417b7e3ec75b850e948c6bd91e75f214f))
|
|
14
|
+
|
|
1
15
|
## [5.0.1](https://github.com/appium/appium-ios-simulator/compare/v5.0.0...v5.0.1) (2022-12-15)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -63,9 +63,9 @@ async function execWix(args) {
|
|
|
63
63
|
throw new Error(`Cannot execute "${WIX_SIM_UTILS} ${_support.util.quote(args)}". Original error: ${e.stderr || e.message}`);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
async function setAccess(bundleId, permissionsMapping) {
|
|
66
|
+
async function setAccess(udid, bundleId, permissionsMapping) {
|
|
67
67
|
const permissionsArg = _lodash.default.toPairs(permissionsMapping).map(x => `${x[0]}=${formatStatus(x[1])}`).join(',');
|
|
68
|
-
return await execWix(['--byId',
|
|
68
|
+
return await execWix(['--byId', udid, '--bundle', bundleId, '--setPermissions', permissionsArg]);
|
|
69
69
|
}
|
|
70
70
|
async function getAccess(bundleId, serviceName, simDataRoot) {
|
|
71
71
|
const internalServiceName = toInternalServiceName(serviceName);
|
|
@@ -87,7 +87,7 @@ extensions.setPermission = async function setPermission(bundleId, permission, va
|
|
|
87
87
|
};
|
|
88
88
|
extensions.setPermissions = async function setPermissions(bundleId, permissionsMapping) {
|
|
89
89
|
_logger.default.debug(`Setting access for '${bundleId}': ${JSON.stringify(permissionsMapping, null, 2)}`);
|
|
90
|
-
await setAccess(bundleId, permissionsMapping);
|
|
90
|
+
await setAccess(this.udid, bundleId, permissionsMapping);
|
|
91
91
|
};
|
|
92
92
|
extensions.getPermission = async function getPermission(bundleId, serviceName) {
|
|
93
93
|
const result = await getAccess(bundleId, serviceName, this.getDir());
|
|
@@ -96,4 +96,4 @@ extensions.getPermission = async function getPermission(bundleId, serviceName) {
|
|
|
96
96
|
};
|
|
97
97
|
var _default = extensions;
|
|
98
98
|
exports.default = _default;
|
|
99
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVEFUVVNfVU5TRVQiLCJTVEFUVVNfTk8iLCJTVEFUVVNfWUVTIiwiV0lYX1NJTV9VVElMUyIsIlNFUlZJQ0VTIiwiT2JqZWN0IiwiZnJlZXplIiwiY2FsZW5kYXIiLCJjYW1lcmEiLCJjb250YWN0cyIsImhvbWVraXQiLCJtaWNyb3Bob25lIiwicGhvdG9zIiwicmVtaW5kZXJzIiwibWVkaWFsaWJyYXJ5IiwibW90aW9uIiwiaGVhbHRoIiwic2lyaSIsInNwZWVjaCIsInRvSW50ZXJuYWxTZXJ2aWNlTmFtZSIsInNlcnZpY2VOYW1lIiwiXyIsImhhcyIsInRvTG93ZXIiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJrZXlzIiwiZm9ybWF0U3RhdHVzIiwic3RhdHVzIiwiaW5jbHVkZXMiLCJ0b1VwcGVyIiwiZXhlY1NRTGl0ZVF1ZXJ5IiwiZGIiLCJxdWVyeSIsImxvZyIsImRlYnVnIiwiZXhlYyIsInN0ZG91dCIsImVyciIsInN0ZGVyciIsImV4ZWNXaXgiLCJhcmdzIiwiZnMiLCJ3aGljaCIsImUiLCJ1dGlsIiwicXVvdGUiLCJtZXNzYWdlIiwic2V0QWNjZXNzIiwiYnVuZGxlSWQiLCJwZXJtaXNzaW9uc01hcHBpbmciLCJwZXJtaXNzaW9uc0FyZyIsInRvUGFpcnMiLCJtYXAiLCJ4Iiwiam9pbiIsInVkaWQiLCJnZXRBY2Nlc3MiLCJzaW1EYXRhUm9vdCIsImludGVybmFsU2VydmljZU5hbWUiLCJkYlBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsInNxbFZhbHVlIiwic3FsIiwiY291bnQiLCJwYXJzZUludCIsInNwbGl0IiwiZXh0ZW5zaW9ucyIsInNldFBlcm1pc3Npb24iLCJwZXJtaXNzaW9uIiwidmFsdWUiLCJzZXRQZXJtaXNzaW9ucyIsImdldFBlcm1pc3Npb24iLCJyZXN1bHQiLCJnZXREaXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXh0ZW5zaW9ucy9wZXJtaXNzaW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMsIHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3QgU1RBVFVTX1VOU0VUID0gJ3Vuc2V0JztcbmNvbnN0IFNUQVRVU19OTyA9ICdubyc7XG5jb25zdCBTVEFUVVNfWUVTID0gJ3llcyc7XG5jb25zdCBXSVhfU0lNX1VUSUxTID0gJ2FwcGxlc2ltdXRpbHMnO1xuY29uc3QgU0VSVklDRVMgPSBPYmplY3QuZnJlZXplKHtcbiAgY2FsZW5kYXI6ICdrVENDU2VydmljZUNhbGVuZGFyJyxcbiAgY2FtZXJhOiAna1RDQ1NlcnZpY2VDYW1lcmEnLFxuICBjb250YWN0czogJ2tUQ0NTZXJ2aWNlQWRkcmVzc0Jvb2snLFxuICBob21la2l0OiAna1RDQ1NlcnZpY2VXaWxsb3cnLFxuICBtaWNyb3Bob25lOiAna1RDQ1NlcnZpY2VNaWNyb3Bob25lJyxcbiAgcGhvdG9zOiAna1RDQ1NlcnZpY2VQaG90b3MnLFxuICByZW1pbmRlcnM6ICdrVENDU2VydmljZVJlbWluZGVycycsXG4gIG1lZGlhbGlicmFyeTogJ2tUQ0NTZXJ2aWNlTWVkaWFMaWJyYXJ5JyxcbiAgbW90aW9uOiAna1RDQ1NlcnZpY2VNb3Rpb24nLFxuICBoZWFsdGg6ICdrVENDU2VydmljZU1TTycsXG4gIHNpcmk6ICdrVENDU2VydmljZVNpcmknLFxuICBzcGVlY2g6ICdrVENDU2VydmljZVNwZWVjaFJlY29nbml0aW9uJyxcbn0pO1xuXG5mdW5jdGlvbiB0b0ludGVybmFsU2VydmljZU5hbWUgKHNlcnZpY2VOYW1lKSB7XG4gIGlmIChfLmhhcyhTRVJWSUNFUywgXy50b0xvd2VyKHNlcnZpY2VOYW1lKSkpIHtcbiAgICByZXR1cm4gU0VSVklDRVNbXy50b0xvd2VyKHNlcnZpY2VOYW1lKV07XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGAnJHtzZXJ2aWNlTmFtZX0nIGlzIHVua25vd24uIE9ubHkgdGhlIGZvbGxvd2luZyBzZXJ2aWNlIG5hbWVzIGFyZSBzdXBwb3J0ZWQ6ICR7SlNPTi5zdHJpbmdpZnkoXy5rZXlzKFNFUlZJQ0VTKSl9YFxuICApO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRTdGF0dXMgKHN0YXR1cykge1xuICByZXR1cm4gW1NUQVRVU19VTlNFVCwgU1RBVFVTX05PXS5pbmNsdWRlcyhzdGF0dXMpID8gXy50b1VwcGVyKHN0YXR1cykgOiBzdGF0dXM7XG59XG5cbi8qKlxuICogUnVucyBhIGNvbW1hbmQgbGluZSBzcWxpdGUzIHF1ZXJ5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGRiIC0gRnVsbCBwYXRoIHRvIHNxbGl0ZSBkYXRhYmFzZVxuICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5IC0gVGhlIGFjdHVhbCBxdWVyeSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHNxbGl0ZSBjb21tYW5kIHN0ZG91dFxuICovXG5hc3luYyBmdW5jdGlvbiBleGVjU1FMaXRlUXVlcnkgKGRiLCBxdWVyeSkge1xuICBsb2cuZGVidWcoYEV4ZWN1dGluZyBTUUwgcXVlcnkgXCIke3F1ZXJ5fVwiIG9uICcke2RifSdgKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKGF3YWl0IGV4ZWMoJ3NxbGl0ZTMnLCBbJy1saW5lJywgZGIsIHF1ZXJ5XSkpLnN0ZG91dDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBleGVjdXRlIFNRTGl0ZSBxdWVyeSBcIiR7cXVlcnl9XCIgdG8gJyR7ZGJ9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLnN0ZGVycn1gXG4gICAgKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBleGVjV2l4IChhcmdzKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMud2hpY2goV0lYX1NJTV9VVElMUyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHtXSVhfU0lNX1VUSUxTfSBiaW5hcnkgaGFzIG5vdCBiZWVuIGZvdW5kIGluIHlvdXIgUEFUSC4gYCArXG4gICAgICBgUGxlYXNlIGluc3RhbGwgaXQgKCdicmV3IHRhcCB3aXgvYnJldyAmJiBicmV3IGluc3RhbGwgd2l4L2JyZXcvYXBwbGVzaW11dGlscycpIHRvIGAgK1xuICAgICAgYGJlIGFibGUgdG8gY2hhbmdlIGFwcGxpY2F0aW9uIHBlcm1pc3Npb25zYFxuICAgICk7XG4gIH1cblxuICBsb2cuZGVidWcoYEV4ZWN1dGluZzogJHtXSVhfU0lNX1VUSUxTfSAke3V0aWwucXVvdGUoYXJncyl9YCk7XG4gIHRyeSB7XG4gICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCBleGVjKFdJWF9TSU1fVVRJTFMsIGFyZ3MpO1xuICAgIGxvZy5kZWJ1ZyhgQ29tbWFuZCBvdXRwdXQ6ICR7c3Rkb3V0fWApO1xuICAgIHJldHVybiBzdGRvdXQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBleGVjdXRlIFwiJHtXSVhfU0lNX1VUSUxTfSAke3V0aWwucXVvdGUoYXJncyl9XCIuIE9yaWdpbmFsIGVycm9yOiAke2Uuc3RkZXJyIHx8IGUubWVzc2FnZX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIFNldHMgcGVybWlzc2lvbnMgZm9yIHRoZSBnaXZlbiBhcHBsaWNhdGlvblxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBidW5kbGVJZCAtIGJ1bmRsZSBpZGVudGlmaWVyIG9mIHRoZSB0YXJnZXQgYXBwbGljYXRpb24uXG4gKiBAcGFyYW0ge09iamVjdH0gcGVybWlzc2lvbnNNYXBwaW5nIC0gQW4gb2JqZWN0LCB3aGVyZSBrZXlzIGFyICBzZXJ2aWNlIG5hbWVzXG4gKiBhbmQgdmFsdWVzIGFyZSBjb3JyZXNwb25kaW5nIHN0YXRlIHZhbHVlcy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93aXgvQXBwbGVTaW11bGF0b3JVdGlsc1xuICogZm9yIG1vcmUgZGV0YWlscyBvbiBhdmFpbGFibGUgc2VydmljZSBuYW1lcyBhbmQgc3RhdHVzZXMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGNoYW5naW5nIHBlcm1pc3Npb25zLlxuICovXG5hc3luYyBmdW5jdGlvbiBzZXRBY2Nlc3MgKGJ1bmRsZUlkLCBwZXJtaXNzaW9uc01hcHBpbmcpIHtcbiAgY29uc3QgcGVybWlzc2lvbnNBcmcgPSBfLnRvUGFpcnMocGVybWlzc2lvbnNNYXBwaW5nKVxuICAgIC5tYXAoKHgpID0+IGAke3hbMF19PSR7Zm9ybWF0U3RhdHVzKHhbMV0pfWApXG4gICAgLmpvaW4oJywnKTtcbiAgcmV0dXJuIGF3YWl0IGV4ZWNXaXgoW1xuICAgICctLWJ5SWQnLCB0aGlzLnVkaWQsXG4gICAgJy0tYnVuZGxlJywgYnVuZGxlSWQsXG4gICAgJy0tc2V0UGVybWlzc2lvbnMnLCBwZXJtaXNzaW9uc0FyZyxcbiAgXSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjdXJyZW50IHBlcm1pc3Npb24gc3RhdHVzIGZvciB0aGUgZ2l2ZW4gc2VydmljZSBhbmQgYXBwbGljYXRpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGJ1bmRsZUlkIC0gYnVuZGxlIGlkZW50aWZpZXIgb2YgdGhlIHRhcmdldCBhcHBsaWNhdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2aWNlTmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlLiBTaG91bGQgYmUgb25lIG9mXG4gKiBgU0VSVklDRVNgIGtleXMuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2ltRGF0YVJvb3QgLSB0aGUgcGF0aCB0byBTaW11bGF0b3IgYGRhdGFgIHJvb3RcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGN1cnJlbnQgc3RhdHVzOiB5ZXMvbm8vdW5zZXRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcmV0cmlldmluZyBwZXJtaXNzaW9ucy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjZXNzIChidW5kbGVJZCwgc2VydmljZU5hbWUsIHNpbURhdGFSb290KSB7XG4gIGNvbnN0IGludGVybmFsU2VydmljZU5hbWUgPSB0b0ludGVybmFsU2VydmljZU5hbWUoc2VydmljZU5hbWUpO1xuICBjb25zdCBkYlBhdGggPSBwYXRoLnJlc29sdmUoc2ltRGF0YVJvb3QsICdMaWJyYXJ5JywgJ1RDQycsICdUQ0MuZGInKTtcbiAgZm9yIChjb25zdCBbc3FsVmFsdWUsIHN0YXR1c10gb2YgW1snMCcsIFNUQVRVU19OT10sIFsnMScsIFNUQVRVU19ZRVNdXSkge1xuICAgIGNvbnN0IHNxbCA9IGBTRUxFQ1QgY291bnQoKikgRlJPTSAnYWNjZXNzJyBgICtcbiAgICAgIGBXSEVSRSBjbGllbnQ9JyR7YnVuZGxlSWR9JyBBTkQgYWxsb3dlZD0ke3NxbFZhbHVlfSBBTkQgc2VydmljZT0nJHtpbnRlcm5hbFNlcnZpY2VOYW1lfSdgO1xuICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgZXhlY1NRTGl0ZVF1ZXJ5KGRiUGF0aCwgc3FsKTtcbiAgICBpZiAocGFyc2VJbnQoY291bnQuc3BsaXQoJz0nKVsxXSwgMTApID4gMCkge1xuICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNUQVRVU19VTlNFVDtcbn1cblxuXG5jb25zdCBleHRlbnNpb25zID0ge307XG5cbi8qKlxuICogU2V0cyB0aGUgcGFydGljdWxhciBwZXJtaXNzaW9uIHRvIHRoZSBhcHBsaWNhdGlvbiBidW5kbGUuIFNlZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3dpeC9BcHBsZVNpbXVsYXRvclV0aWxzIGZvciBtb3JlIGRldGFpbHMgb25cbiAqIHRoZSBhdmFpbGFibGUgc2VydmljZSBuYW1lcyBhbmQgc3RhdHVzZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGJ1bmRsZUlkIC0gQXBwbGljYXRpb24gYnVuZGxlIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gcGVybWlzc2lvbiAtIFNlcnZpY2UgbmFtZSB0byBiZSBzZXQuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBUaGUgZGVzaXJlZCBzdGF0dXMgZm9yIHRoZSBzZXJ2aWNlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBjaGFuZ2luZyBwZXJtaXNzaW9uLlxuICovXG5leHRlbnNpb25zLnNldFBlcm1pc3Npb24gPSBhc3luYyBmdW5jdGlvbiBzZXRQZXJtaXNzaW9uIChidW5kbGVJZCwgcGVybWlzc2lvbiwgdmFsdWUpIHtcbiAgYXdhaXQgdGhpcy5zZXRQZXJtaXNzaW9ucyhidW5kbGVJZCwge1twZXJtaXNzaW9uXTogdmFsdWV9KTtcbn07XG5cbi8qKlxuICogU2V0cyB0aGUgcGVybWlzc2lvbnMgZm9yIHRoZSBwYXJ0aWN1bGFyIGFwcGxpY2F0aW9uIGJ1bmRsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYnVuZGxlSWQgLSBBcHBsaWNhdGlvbiBidW5kbGUgaWRlbnRpZmllci5cbiAqIEBwYXJhbSB7T2JqZWN0fSBwZXJtaXNzaW9uc01hcHBpbmcgLSBBIG1hcHBpbmcgd2hlcmUga2F5c1xuICogYXJlIHNlcnZpY2UgbmFtZXMgYW5kIHZhbHVlcyBhcmUgdGhlaXIgY29ycmVzcG9uZGluZyBzdGF0dXMgdmFsdWVzLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93aXgvQXBwbGVTaW11bGF0b3JVdGlsc1xuICogZm9yIG1vcmUgZGV0YWlscyBvbiBhdmFpbGFibGUgc2VydmljZSBuYW1lcyBhbmQgc3RhdHVzZXMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGNoYW5naW5nIHBlcm1pc3Npb25zLlxuICovXG5leHRlbnNpb25zLnNldFBlcm1pc3Npb25zID0gYXN5bmMgZnVuY3Rpb24gc2V0UGVybWlzc2lvbnMgKGJ1bmRsZUlkLCBwZXJtaXNzaW9uc01hcHBpbmcpIHtcbiAgbG9nLmRlYnVnKGBTZXR0aW5nIGFjY2VzcyBmb3IgJyR7YnVuZGxlSWR9JzogJHtKU09OLnN0cmluZ2lmeShwZXJtaXNzaW9uc01hcHBpbmcsIG51bGwsIDIpfWApO1xuICBhd2FpdCBzZXRBY2Nlc3MoYnVuZGxlSWQsIHBlcm1pc3Npb25zTWFwcGluZyk7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyBjdXJyZW50IHBlcm1pc3Npb24gc3RhdHVzIGZvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gYnVuZGxlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBidW5kbGVJZCAtIEFwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyLlxuICogQHBhcmFtIHtzdHJpbmd9IHNlcnZpY2VOYW1lIC0gT25lIG9mIGF2YWlsYWJsZSBzZXJ2aWNlIG5hbWVzLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSByZXRyaWV2aW5nIHBlcm1pc3Npb25zLlxuICovXG5leHRlbnNpb25zLmdldFBlcm1pc3Npb24gPSBhc3luYyBmdW5jdGlvbiBnZXRQZXJtaXNzaW9uIChidW5kbGVJZCwgc2VydmljZU5hbWUpIHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0QWNjZXNzKGJ1bmRsZUlkLCBzZXJ2aWNlTmFtZSwgdGhpcy5nZXREaXIoKSk7XG4gIGxvZy5kZWJ1ZyhgR290ICR7c2VydmljZU5hbWV9IGFjY2VzcyBzdGF0dXMgZm9yICcke2J1bmRsZUlkfSc6ICR7cmVzdWx0fWApO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsTUFBTUEsWUFBWSxHQUFHLE9BQU87QUFDNUIsTUFBTUMsU0FBUyxHQUFHLElBQUk7QUFDdEIsTUFBTUMsVUFBVSxHQUFHLEtBQUs7QUFDeEIsTUFBTUMsYUFBYSxHQUFHLGVBQWU7QUFDckMsTUFBTUMsUUFBUSxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQztFQUM3QkMsUUFBUSxFQUFFLHFCQUFxQjtFQUMvQkMsTUFBTSxFQUFFLG1CQUFtQjtFQUMzQkMsUUFBUSxFQUFFLHdCQUF3QjtFQUNsQ0MsT0FBTyxFQUFFLG1CQUFtQjtFQUM1QkMsVUFBVSxFQUFFLHVCQUF1QjtFQUNuQ0MsTUFBTSxFQUFFLG1CQUFtQjtFQUMzQkMsU0FBUyxFQUFFLHNCQUFzQjtFQUNqQ0MsWUFBWSxFQUFFLHlCQUF5QjtFQUN2Q0MsTUFBTSxFQUFFLG1CQUFtQjtFQUMzQkMsTUFBTSxFQUFFLGdCQUFnQjtFQUN4QkMsSUFBSSxFQUFFLGlCQUFpQjtFQUN2QkMsTUFBTSxFQUFFO0FBQ1YsQ0FBQyxDQUFDO0FBRUYsU0FBU0MscUJBQXFCLENBQUVDLFdBQVcsRUFBRTtFQUMzQyxJQUFJQyxlQUFDLENBQUNDLEdBQUcsQ0FBQ2xCLFFBQVEsRUFBRWlCLGVBQUMsQ0FBQ0UsT0FBTyxDQUFDSCxXQUFXLENBQUMsQ0FBQyxFQUFFO0lBQzNDLE9BQU9oQixRQUFRLENBQUNpQixlQUFDLENBQUNFLE9BQU8sQ0FBQ0gsV0FBVyxDQUFDLENBQUM7RUFDekM7RUFDQSxNQUFNLElBQUlJLEtBQUssQ0FDWixJQUFHSixXQUFZLGlFQUFnRUssSUFBSSxDQUFDQyxTQUFTLENBQUNMLGVBQUMsQ0FBQ00sSUFBSSxDQUFDdkIsUUFBUSxDQUFDLENBQUUsRUFBQyxDQUNuSDtBQUNIO0FBRUEsU0FBU3dCLFlBQVksQ0FBRUMsTUFBTSxFQUFFO0VBQzdCLE9BQU8sQ0FBQzdCLFlBQVksRUFBRUMsU0FBUyxDQUFDLENBQUM2QixRQUFRLENBQUNELE1BQU0sQ0FBQyxHQUFHUixlQUFDLENBQUNVLE9BQU8sQ0FBQ0YsTUFBTSxDQUFDLEdBQUdBLE1BQU07QUFDaEY7QUFTQSxlQUFlRyxlQUFlLENBQUVDLEVBQUUsRUFBRUMsS0FBSyxFQUFFO0VBQ3pDQyxlQUFHLENBQUNDLEtBQUssQ0FBRSx3QkFBdUJGLEtBQU0sU0FBUUQsRUFBRyxHQUFFLENBQUM7RUFDdEQsSUFBSTtJQUNGLE9BQU8sQ0FBQyxNQUFNLElBQUFJLGtCQUFJLEVBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxFQUFFSixFQUFFLEVBQUVDLEtBQUssQ0FBQyxDQUFDLEVBQUVJLE1BQU07RUFDN0QsQ0FBQyxDQUFDLE9BQU9DLEdBQUcsRUFBRTtJQUNaLE1BQU0sSUFBSWYsS0FBSyxDQUNaLGdDQUErQlUsS0FBTSxTQUFRRCxFQUFHLHNCQUFxQk0sR0FBRyxDQUFDQyxNQUFPLEVBQUMsQ0FDbkY7RUFDSDtBQUNGO0FBRUEsZUFBZUMsT0FBTyxDQUFFQyxJQUFJLEVBQUU7RUFDNUIsSUFBSTtJQUNGLE1BQU1DLFdBQUUsQ0FBQ0MsS0FBSyxDQUFDekMsYUFBYSxDQUFDO0VBQy9CLENBQUMsQ0FBQyxPQUFPMEMsQ0FBQyxFQUFFO0lBQ1YsTUFBTSxJQUFJckIsS0FBSyxDQUNaLEdBQUVyQixhQUFjLDJDQUEwQyxHQUMxRCxvRkFBbUYsR0FDbkYsMkNBQTBDLENBQzVDO0VBQ0g7RUFFQWdDLGVBQUcsQ0FBQ0MsS0FBSyxDQUFFLGNBQWFqQyxhQUFjLElBQUcyQyxhQUFJLENBQUNDLEtBQUssQ0FBQ0wsSUFBSSxDQUFFLEVBQUMsQ0FBQztFQUM1RCxJQUFJO0lBQ0YsTUFBTTtNQUFDSjtJQUFNLENBQUMsR0FBRyxNQUFNLElBQUFELGtCQUFJLEVBQUNsQyxhQUFhLEVBQUV1QyxJQUFJLENBQUM7SUFDaERQLGVBQUcsQ0FBQ0MsS0FBSyxDQUFFLG1CQUFrQkUsTUFBTyxFQUFDLENBQUM7SUFDdEMsT0FBT0EsTUFBTTtFQUNmLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7SUFDVixNQUFNLElBQUlyQixLQUFLLENBQUUsbUJBQWtCckIsYUFBYyxJQUFHMkMsYUFBSSxDQUFDQyxLQUFLLENBQUNMLElBQUksQ0FBRSxzQkFBcUJHLENBQUMsQ0FBQ0wsTUFBTSxJQUFJSyxDQUFDLENBQUNHLE9BQVEsRUFBQyxDQUFDO0VBQ3BIO0FBQ0Y7QUFXQSxlQUFlQyxTQUFTLENBQUVDLFFBQVEsRUFBRUMsa0JBQWtCLEVBQUU7RUFDdEQsTUFBTUMsY0FBYyxHQUFHL0IsZUFBQyxDQUFDZ0MsT0FBTyxDQUFDRixrQkFBa0IsQ0FBQyxDQUNqREcsR0FBRyxDQUFFQyxDQUFDLElBQU0sR0FBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFHM0IsWUFBWSxDQUFDMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLEVBQUMsQ0FBQyxDQUMzQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQztFQUNaLE9BQU8sTUFBTWYsT0FBTyxDQUFDLENBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUNnQixJQUFJLEVBQ25CLFVBQVUsRUFBRVAsUUFBUSxFQUNwQixrQkFBa0IsRUFBRUUsY0FBYyxDQUNuQyxDQUFDO0FBQ0o7QUFZQSxlQUFlTSxTQUFTLENBQUVSLFFBQVEsRUFBRTlCLFdBQVcsRUFBRXVDLFdBQVcsRUFBRTtFQUM1RCxNQUFNQyxtQkFBbUIsR0FBR3pDLHFCQUFxQixDQUFDQyxXQUFXLENBQUM7RUFDOUQsTUFBTXlDLE1BQU0sR0FBR0MsYUFBSSxDQUFDQyxPQUFPLENBQUNKLFdBQVcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztFQUNwRSxLQUFLLE1BQU0sQ0FBQ0ssUUFBUSxFQUFFbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRTVCLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFQyxVQUFVLENBQUMsQ0FBQyxFQUFFO0lBQ3RFLE1BQU0rRCxHQUFHLEdBQUksZ0NBQStCLEdBQ3pDLGlCQUFnQmYsUUFBUyxpQkFBZ0JjLFFBQVMsaUJBQWdCSixtQkFBb0IsR0FBRTtJQUMzRixNQUFNTSxLQUFLLEdBQUcsTUFBTWxDLGVBQWUsQ0FBQzZCLE1BQU0sRUFBRUksR0FBRyxDQUFDO0lBQ2hELElBQUlFLFFBQVEsQ0FBQ0QsS0FBSyxDQUFDRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFO01BQ3pDLE9BQU92QyxNQUFNO0lBQ2Y7RUFDRjtFQUNBLE9BQU83QixZQUFZO0FBQ3JCO0FBR0EsTUFBTXFFLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFZckJBLFVBQVUsQ0FBQ0MsYUFBYSxHQUFHLGVBQWVBLGFBQWEsQ0FBRXBCLFFBQVEsRUFBRXFCLFVBQVUsRUFBRUMsS0FBSyxFQUFFO0VBQ3BGLE1BQU0sSUFBSSxDQUFDQyxjQUFjLENBQUN2QixRQUFRLEVBQUU7SUFBQyxDQUFDcUIsVUFBVSxHQUFHQztFQUFLLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBWURILFVBQVUsQ0FBQ0ksY0FBYyxHQUFHLGVBQWVBLGNBQWMsQ0FBRXZCLFFBQVEsRUFBRUMsa0JBQWtCLEVBQUU7RUFDdkZoQixlQUFHLENBQUNDLEtBQUssQ0FBRSx1QkFBc0JjLFFBQVMsTUFBS3pCLElBQUksQ0FBQ0MsU0FBUyxDQUFDeUIsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBRSxFQUFDLENBQUM7RUFDN0YsTUFBTUYsU0FBUyxDQUFDQyxRQUFRLEVBQUVDLGtCQUFrQixDQUFDO0FBQy9DLENBQUM7QUFTRGtCLFVBQVUsQ0FBQ0ssYUFBYSxHQUFHLGVBQWVBLGFBQWEsQ0FBRXhCLFFBQVEsRUFBRTlCLFdBQVcsRUFBRTtFQUM5RSxNQUFNdUQsTUFBTSxHQUFHLE1BQU1qQixTQUFTLENBQUNSLFFBQVEsRUFBRTlCLFdBQVcsRUFBRSxJQUFJLENBQUN3RCxNQUFNLEVBQUUsQ0FBQztFQUNwRXpDLGVBQUcsQ0FBQ0MsS0FBSyxDQUFFLE9BQU1oQixXQUFZLHVCQUFzQjhCLFFBQVMsTUFBS3lCLE1BQU8sRUFBQyxDQUFDO0VBQzFFLE9BQU9BLE1BQU07QUFDZixDQUFDO0FBQUMsZUFFYU4sVUFBVTtBQUFBIn0=
|
|
99
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVEFUVVNfVU5TRVQiLCJTVEFUVVNfTk8iLCJTVEFUVVNfWUVTIiwiV0lYX1NJTV9VVElMUyIsIlNFUlZJQ0VTIiwiT2JqZWN0IiwiZnJlZXplIiwiY2FsZW5kYXIiLCJjYW1lcmEiLCJjb250YWN0cyIsImhvbWVraXQiLCJtaWNyb3Bob25lIiwicGhvdG9zIiwicmVtaW5kZXJzIiwibWVkaWFsaWJyYXJ5IiwibW90aW9uIiwiaGVhbHRoIiwic2lyaSIsInNwZWVjaCIsInRvSW50ZXJuYWxTZXJ2aWNlTmFtZSIsInNlcnZpY2VOYW1lIiwiXyIsImhhcyIsInRvTG93ZXIiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJrZXlzIiwiZm9ybWF0U3RhdHVzIiwic3RhdHVzIiwiaW5jbHVkZXMiLCJ0b1VwcGVyIiwiZXhlY1NRTGl0ZVF1ZXJ5IiwiZGIiLCJxdWVyeSIsImxvZyIsImRlYnVnIiwiZXhlYyIsInN0ZG91dCIsImVyciIsInN0ZGVyciIsImV4ZWNXaXgiLCJhcmdzIiwiZnMiLCJ3aGljaCIsImUiLCJ1dGlsIiwicXVvdGUiLCJtZXNzYWdlIiwic2V0QWNjZXNzIiwidWRpZCIsImJ1bmRsZUlkIiwicGVybWlzc2lvbnNNYXBwaW5nIiwicGVybWlzc2lvbnNBcmciLCJ0b1BhaXJzIiwibWFwIiwieCIsImpvaW4iLCJnZXRBY2Nlc3MiLCJzaW1EYXRhUm9vdCIsImludGVybmFsU2VydmljZU5hbWUiLCJkYlBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsInNxbFZhbHVlIiwic3FsIiwiY291bnQiLCJwYXJzZUludCIsInNwbGl0IiwiZXh0ZW5zaW9ucyIsInNldFBlcm1pc3Npb24iLCJwZXJtaXNzaW9uIiwidmFsdWUiLCJzZXRQZXJtaXNzaW9ucyIsImdldFBlcm1pc3Npb24iLCJyZXN1bHQiLCJnZXREaXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXh0ZW5zaW9ucy9wZXJtaXNzaW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMsIHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3QgU1RBVFVTX1VOU0VUID0gJ3Vuc2V0JztcbmNvbnN0IFNUQVRVU19OTyA9ICdubyc7XG5jb25zdCBTVEFUVVNfWUVTID0gJ3llcyc7XG5jb25zdCBXSVhfU0lNX1VUSUxTID0gJ2FwcGxlc2ltdXRpbHMnO1xuY29uc3QgU0VSVklDRVMgPSBPYmplY3QuZnJlZXplKHtcbiAgY2FsZW5kYXI6ICdrVENDU2VydmljZUNhbGVuZGFyJyxcbiAgY2FtZXJhOiAna1RDQ1NlcnZpY2VDYW1lcmEnLFxuICBjb250YWN0czogJ2tUQ0NTZXJ2aWNlQWRkcmVzc0Jvb2snLFxuICBob21la2l0OiAna1RDQ1NlcnZpY2VXaWxsb3cnLFxuICBtaWNyb3Bob25lOiAna1RDQ1NlcnZpY2VNaWNyb3Bob25lJyxcbiAgcGhvdG9zOiAna1RDQ1NlcnZpY2VQaG90b3MnLFxuICByZW1pbmRlcnM6ICdrVENDU2VydmljZVJlbWluZGVycycsXG4gIG1lZGlhbGlicmFyeTogJ2tUQ0NTZXJ2aWNlTWVkaWFMaWJyYXJ5JyxcbiAgbW90aW9uOiAna1RDQ1NlcnZpY2VNb3Rpb24nLFxuICBoZWFsdGg6ICdrVENDU2VydmljZU1TTycsXG4gIHNpcmk6ICdrVENDU2VydmljZVNpcmknLFxuICBzcGVlY2g6ICdrVENDU2VydmljZVNwZWVjaFJlY29nbml0aW9uJyxcbn0pO1xuXG5mdW5jdGlvbiB0b0ludGVybmFsU2VydmljZU5hbWUgKHNlcnZpY2VOYW1lKSB7XG4gIGlmIChfLmhhcyhTRVJWSUNFUywgXy50b0xvd2VyKHNlcnZpY2VOYW1lKSkpIHtcbiAgICByZXR1cm4gU0VSVklDRVNbXy50b0xvd2VyKHNlcnZpY2VOYW1lKV07XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGAnJHtzZXJ2aWNlTmFtZX0nIGlzIHVua25vd24uIE9ubHkgdGhlIGZvbGxvd2luZyBzZXJ2aWNlIG5hbWVzIGFyZSBzdXBwb3J0ZWQ6ICR7SlNPTi5zdHJpbmdpZnkoXy5rZXlzKFNFUlZJQ0VTKSl9YFxuICApO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRTdGF0dXMgKHN0YXR1cykge1xuICByZXR1cm4gW1NUQVRVU19VTlNFVCwgU1RBVFVTX05PXS5pbmNsdWRlcyhzdGF0dXMpID8gXy50b1VwcGVyKHN0YXR1cykgOiBzdGF0dXM7XG59XG5cbi8qKlxuICogUnVucyBhIGNvbW1hbmQgbGluZSBzcWxpdGUzIHF1ZXJ5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGRiIC0gRnVsbCBwYXRoIHRvIHNxbGl0ZSBkYXRhYmFzZVxuICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5IC0gVGhlIGFjdHVhbCBxdWVyeSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHNxbGl0ZSBjb21tYW5kIHN0ZG91dFxuICovXG5hc3luYyBmdW5jdGlvbiBleGVjU1FMaXRlUXVlcnkgKGRiLCBxdWVyeSkge1xuICBsb2cuZGVidWcoYEV4ZWN1dGluZyBTUUwgcXVlcnkgXCIke3F1ZXJ5fVwiIG9uICcke2RifSdgKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKGF3YWl0IGV4ZWMoJ3NxbGl0ZTMnLCBbJy1saW5lJywgZGIsIHF1ZXJ5XSkpLnN0ZG91dDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBleGVjdXRlIFNRTGl0ZSBxdWVyeSBcIiR7cXVlcnl9XCIgdG8gJyR7ZGJ9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLnN0ZGVycn1gXG4gICAgKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBleGVjV2l4IChhcmdzKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMud2hpY2goV0lYX1NJTV9VVElMUyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHtXSVhfU0lNX1VUSUxTfSBiaW5hcnkgaGFzIG5vdCBiZWVuIGZvdW5kIGluIHlvdXIgUEFUSC4gYCArXG4gICAgICBgUGxlYXNlIGluc3RhbGwgaXQgKCdicmV3IHRhcCB3aXgvYnJldyAmJiBicmV3IGluc3RhbGwgd2l4L2JyZXcvYXBwbGVzaW11dGlscycpIHRvIGAgK1xuICAgICAgYGJlIGFibGUgdG8gY2hhbmdlIGFwcGxpY2F0aW9uIHBlcm1pc3Npb25zYFxuICAgICk7XG4gIH1cblxuICBsb2cuZGVidWcoYEV4ZWN1dGluZzogJHtXSVhfU0lNX1VUSUxTfSAke3V0aWwucXVvdGUoYXJncyl9YCk7XG4gIHRyeSB7XG4gICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCBleGVjKFdJWF9TSU1fVVRJTFMsIGFyZ3MpO1xuICAgIGxvZy5kZWJ1ZyhgQ29tbWFuZCBvdXRwdXQ6ICR7c3Rkb3V0fWApO1xuICAgIHJldHVybiBzdGRvdXQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBleGVjdXRlIFwiJHtXSVhfU0lNX1VUSUxTfSAke3V0aWwucXVvdGUoYXJncyl9XCIuIE9yaWdpbmFsIGVycm9yOiAke2Uuc3RkZXJyIHx8IGUubWVzc2FnZX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIFNldHMgcGVybWlzc2lvbnMgZm9yIHRoZSBnaXZlbiBhcHBsaWNhdGlvblxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1ZGlkIC0gdWRpZCBvZiB0aGUgdGFyZ2V0IHNpbXVsYXRvciBkZXZpY2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gYnVuZGxlSWQgLSBidW5kbGUgaWRlbnRpZmllciBvZiB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uLlxuICogQHBhcmFtIHtPYmplY3R9IHBlcm1pc3Npb25zTWFwcGluZyAtIEFuIG9iamVjdCwgd2hlcmUga2V5cyBhciAgc2VydmljZSBuYW1lc1xuICogYW5kIHZhbHVlcyBhcmUgY29ycmVzcG9uZGluZyBzdGF0ZSB2YWx1ZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2l4L0FwcGxlU2ltdWxhdG9yVXRpbHNcbiAqIGZvciBtb3JlIGRldGFpbHMgb24gYXZhaWxhYmxlIHNlcnZpY2UgbmFtZXMgYW5kIHN0YXR1c2VzLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBjaGFuZ2luZyBwZXJtaXNzaW9ucy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2V0QWNjZXNzICh1ZGlkLCBidW5kbGVJZCwgcGVybWlzc2lvbnNNYXBwaW5nKSB7XG4gIGNvbnN0IHBlcm1pc3Npb25zQXJnID0gXy50b1BhaXJzKHBlcm1pc3Npb25zTWFwcGluZylcbiAgICAubWFwKCh4KSA9PiBgJHt4WzBdfT0ke2Zvcm1hdFN0YXR1cyh4WzFdKX1gKVxuICAgIC5qb2luKCcsJyk7XG4gIHJldHVybiBhd2FpdCBleGVjV2l4KFtcbiAgICAnLS1ieUlkJywgdWRpZCxcbiAgICAnLS1idW5kbGUnLCBidW5kbGVJZCxcbiAgICAnLS1zZXRQZXJtaXNzaW9ucycsIHBlcm1pc3Npb25zQXJnLFxuICBdKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgcGVybWlzc2lvbiBzdGF0dXMgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlIGFuZCBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYnVuZGxlSWQgLSBidW5kbGUgaWRlbnRpZmllciBvZiB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHNlcnZpY2VOYW1lIC0gdGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UuIFNob3VsZCBiZSBvbmUgb2ZcbiAqIGBTRVJWSUNFU2Aga2V5cy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzaW1EYXRhUm9vdCAtIHRoZSBwYXRoIHRvIFNpbXVsYXRvciBgZGF0YWAgcm9vdFxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgY3VycmVudCBzdGF0dXM6IHllcy9uby91bnNldFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSByZXRyaWV2aW5nIHBlcm1pc3Npb25zLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2Nlc3MgKGJ1bmRsZUlkLCBzZXJ2aWNlTmFtZSwgc2ltRGF0YVJvb3QpIHtcbiAgY29uc3QgaW50ZXJuYWxTZXJ2aWNlTmFtZSA9IHRvSW50ZXJuYWxTZXJ2aWNlTmFtZShzZXJ2aWNlTmFtZSk7XG4gIGNvbnN0IGRiUGF0aCA9IHBhdGgucmVzb2x2ZShzaW1EYXRhUm9vdCwgJ0xpYnJhcnknLCAnVENDJywgJ1RDQy5kYicpO1xuICBmb3IgKGNvbnN0IFtzcWxWYWx1ZSwgc3RhdHVzXSBvZiBbWycwJywgU1RBVFVTX05PXSwgWycxJywgU1RBVFVTX1lFU11dKSB7XG4gICAgY29uc3Qgc3FsID0gYFNFTEVDVCBjb3VudCgqKSBGUk9NICdhY2Nlc3MnIGAgK1xuICAgICAgYFdIRVJFIGNsaWVudD0nJHtidW5kbGVJZH0nIEFORCBhbGxvd2VkPSR7c3FsVmFsdWV9IEFORCBzZXJ2aWNlPScke2ludGVybmFsU2VydmljZU5hbWV9J2A7XG4gICAgY29uc3QgY291bnQgPSBhd2FpdCBleGVjU1FMaXRlUXVlcnkoZGJQYXRoLCBzcWwpO1xuICAgIGlmIChwYXJzZUludChjb3VudC5zcGxpdCgnPScpWzFdLCAxMCkgPiAwKSB7XG4gICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gU1RBVFVTX1VOU0VUO1xufVxuXG5cbmNvbnN0IGV4dGVuc2lvbnMgPSB7fTtcblxuLyoqXG4gKiBTZXRzIHRoZSBwYXJ0aWN1bGFyIHBlcm1pc3Npb24gdG8gdGhlIGFwcGxpY2F0aW9uIGJ1bmRsZS4gU2VlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vd2l4L0FwcGxlU2ltdWxhdG9yVXRpbHMgZm9yIG1vcmUgZGV0YWlscyBvblxuICogdGhlIGF2YWlsYWJsZSBzZXJ2aWNlIG5hbWVzIGFuZCBzdGF0dXNlcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYnVuZGxlSWQgLSBBcHBsaWNhdGlvbiBidW5kbGUgaWRlbnRpZmllci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwZXJtaXNzaW9uIC0gU2VydmljZSBuYW1lIHRvIGJlIHNldC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFRoZSBkZXNpcmVkIHN0YXR1cyBmb3IgdGhlIHNlcnZpY2UuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGNoYW5naW5nIHBlcm1pc3Npb24uXG4gKi9cbmV4dGVuc2lvbnMuc2V0UGVybWlzc2lvbiA9IGFzeW5jIGZ1bmN0aW9uIHNldFBlcm1pc3Npb24gKGJ1bmRsZUlkLCBwZXJtaXNzaW9uLCB2YWx1ZSkge1xuICBhd2FpdCB0aGlzLnNldFBlcm1pc3Npb25zKGJ1bmRsZUlkLCB7W3Blcm1pc3Npb25dOiB2YWx1ZX0pO1xufTtcblxuLyoqXG4gKiBTZXRzIHRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIHBhcnRpY3VsYXIgYXBwbGljYXRpb24gYnVuZGxlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBidW5kbGVJZCAtIEFwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyLlxuICogQHBhcmFtIHtPYmplY3R9IHBlcm1pc3Npb25zTWFwcGluZyAtIEEgbWFwcGluZyB3aGVyZSBrYXlzXG4gKiBhcmUgc2VydmljZSBuYW1lcyBhbmQgdmFsdWVzIGFyZSB0aGVpciBjb3JyZXNwb25kaW5nIHN0YXR1cyB2YWx1ZXMuXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dpeC9BcHBsZVNpbXVsYXRvclV0aWxzXG4gKiBmb3IgbW9yZSBkZXRhaWxzIG9uIGF2YWlsYWJsZSBzZXJ2aWNlIG5hbWVzIGFuZCBzdGF0dXNlcy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgY2hhbmdpbmcgcGVybWlzc2lvbnMuXG4gKi9cbmV4dGVuc2lvbnMuc2V0UGVybWlzc2lvbnMgPSBhc3luYyBmdW5jdGlvbiBzZXRQZXJtaXNzaW9ucyAoYnVuZGxlSWQsIHBlcm1pc3Npb25zTWFwcGluZykge1xuICBsb2cuZGVidWcoYFNldHRpbmcgYWNjZXNzIGZvciAnJHtidW5kbGVJZH0nOiAke0pTT04uc3RyaW5naWZ5KHBlcm1pc3Npb25zTWFwcGluZywgbnVsbCwgMil9YCk7XG4gIGF3YWl0IHNldEFjY2Vzcyh0aGlzLnVkaWQsIGJ1bmRsZUlkLCBwZXJtaXNzaW9uc01hcHBpbmcpO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgY3VycmVudCBwZXJtaXNzaW9uIHN0YXR1cyBmb3IgdGhlIGdpdmVuIGFwcGxpY2F0aW9uIGJ1bmRsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYnVuZGxlSWQgLSBBcHBsaWNhdGlvbiBidW5kbGUgaWRlbnRpZmllci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2aWNlTmFtZSAtIE9uZSBvZiBhdmFpbGFibGUgc2VydmljZSBuYW1lcy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcmV0cmlldmluZyBwZXJtaXNzaW9ucy5cbiAqL1xuZXh0ZW5zaW9ucy5nZXRQZXJtaXNzaW9uID0gYXN5bmMgZnVuY3Rpb24gZ2V0UGVybWlzc2lvbiAoYnVuZGxlSWQsIHNlcnZpY2VOYW1lKSB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdldEFjY2VzcyhidW5kbGVJZCwgc2VydmljZU5hbWUsIHRoaXMuZ2V0RGlyKCkpO1xuICBsb2cuZGVidWcoYEdvdCAke3NlcnZpY2VOYW1lfSBhY2Nlc3Mgc3RhdHVzIGZvciAnJHtidW5kbGVJZH0nOiAke3Jlc3VsdH1gKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFlBQVksR0FBRyxPQUFPO0FBQzVCLE1BQU1DLFNBQVMsR0FBRyxJ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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","names":["STATUS_UNSET","STATUS_NO","STATUS_YES","WIX_SIM_UTILS","SERVICES","Object","freeze","calendar","camera","contacts","homekit","microphone","photos","reminders","medialibrary","motion","health","siri","speech","toInternalServiceName","serviceName","_","has","toLower","Error","JSON","stringify","keys","formatStatus","status","includes","toUpper","execSQLiteQuery","db","query","log","debug","exec","stdout","err","stderr","execWix","args","fs","which","e","util","quote","message","setAccess","bundleId","permissionsMapping","permissionsArg","toPairs","map","x","join","udid","getAccess","simDataRoot","internalServiceName","dbPath","path","resolve","sqlValue","sql","count","parseInt","split","extensions","setPermission","permission","value","setPermissions","getPermission","result","getDir"],"sources":["../../../lib/extensions/permissions.js"],"sourcesContent":["import log from '../logger';\nimport _ from 'lodash';\nimport { fs, util } from '@appium/support';\nimport { exec } from 'teen_process';\nimport path from 'path';\n\nconst STATUS_UNSET = 'unset';\nconst STATUS_NO = 'no';\nconst STATUS_YES = 'yes';\nconst WIX_SIM_UTILS = 'applesimutils';\nconst SERVICES = Object.freeze({\n calendar: 'kTCCServiceCalendar',\n camera: 'kTCCServiceCamera',\n contacts: 'kTCCServiceAddressBook',\n homekit: 'kTCCServiceWillow',\n microphone: 'kTCCServiceMicrophone',\n photos: 'kTCCServicePhotos',\n reminders: 'kTCCServiceReminders',\n medialibrary: 'kTCCServiceMediaLibrary',\n motion: 'kTCCServiceMotion',\n health: 'kTCCServiceMSO',\n siri: 'kTCCServiceSiri',\n speech: 'kTCCServiceSpeechRecognition',\n});\n\nfunction toInternalServiceName (serviceName) {\n if (_.has(SERVICES, _.toLower(serviceName))) {\n return SERVICES[_.toLower(serviceName)];\n }\n throw new Error(\n `'${serviceName}' is unknown. Only the following service names are supported: ${JSON.stringify(_.keys(SERVICES))}`\n );\n}\n\nfunction formatStatus (status) {\n return [STATUS_UNSET, STATUS_NO].includes(status) ? _.toUpper(status) : status;\n}\n\n/**\n * Runs a command line sqlite3 query\n *\n * @param {string} db - Full path to sqlite database\n * @param {string} query - The actual query string\n * @returns {string} sqlite command stdout\n */\nasync function execSQLiteQuery (db, query) {\n log.debug(`Executing SQL query \"${query}\" on '${db}'`);\n try {\n return (await exec('sqlite3', ['-line', db, query])).stdout;\n } catch (err) {\n throw new Error(\n `Cannot execute SQLite query \"${query}\" to '${db}'. Original error: ${err.stderr}`\n );\n }\n}\n\nasync function execWix (args) {\n try {\n await fs.which(WIX_SIM_UTILS);\n } catch (e) {\n throw new Error(\n `${WIX_SIM_UTILS} binary has not been found in your PATH. ` +\n `Please install it ('brew tap wix/brew && brew install wix/brew/applesimutils') to ` +\n `be able to change application permissions`\n );\n }\n\n log.debug(`Executing: ${WIX_SIM_UTILS} ${util.quote(args)}`);\n try {\n const {stdout} = await exec(WIX_SIM_UTILS, args);\n log.debug(`Command output: ${stdout}`);\n return stdout;\n } catch (e) {\n throw new Error(`Cannot execute \"${WIX_SIM_UTILS} ${util.quote(args)}\". Original error: ${e.stderr || e.message}`);\n }\n}\n\n/**\n * Sets permissions for the given application\n *\n * @param {string} bundleId - bundle identifier of the target application.\n * @param {Object} permissionsMapping - An object, where keys ar service names\n * and values are corresponding state values. See https://github.com/wix/AppleSimulatorUtils\n * for more details on available service names and statuses.\n * @throws {Error} If there was an error while changing permissions.\n */\nasync function setAccess (bundleId, permissionsMapping) {\n const permissionsArg = _.toPairs(permissionsMapping)\n .map((x) => `${x[0]}=${formatStatus(x[1])}`)\n .join(',');\n return await execWix([\n '--byId', this.udid,\n '--bundle', bundleId,\n '--setPermissions', permissionsArg,\n ]);\n}\n\n/**\n * Retrieves the current permission status for the given service and application.\n *\n * @param {string} bundleId - bundle identifier of the target application.\n * @param {string} serviceName - the name of the service. Should be one of\n * `SERVICES` keys.\n * @param {string} simDataRoot - the path to Simulator `data` root\n * @returns {string} - The current status: yes/no/unset\n * @throws {Error} If there was an error while retrieving permissions.\n */\nasync function getAccess (bundleId, serviceName, simDataRoot) {\n const internalServiceName = toInternalServiceName(serviceName);\n const dbPath = path.resolve(simDataRoot, 'Library', 'TCC', 'TCC.db');\n for (const [sqlValue, status] of [['0', STATUS_NO], ['1', STATUS_YES]]) {\n const sql = `SELECT count(*) FROM 'access' ` +\n `WHERE client='${bundleId}' AND allowed=${sqlValue} AND service='${internalServiceName}'`;\n const count = await execSQLiteQuery(dbPath, sql);\n if (parseInt(count.split('=')[1], 10) > 0) {\n return status;\n }\n }\n return STATUS_UNSET;\n}\n\n\nconst extensions = {};\n\n/**\n * Sets the particular permission to the application bundle. See\n * https://github.com/wix/AppleSimulatorUtils for more details on\n * the available service names and statuses.\n *\n * @param {string} bundleId - Application bundle identifier.\n * @param {string} permission - Service name to be set.\n * @param {string} value - The desired status for the service.\n * @throws {Error} If there was an error while changing permission.\n */\nextensions.setPermission = async function setPermission (bundleId, permission, value) {\n await this.setPermissions(bundleId, {[permission]: value});\n};\n\n/**\n * Sets the permissions for the particular application bundle.\n *\n * @param {string} bundleId - Application bundle identifier.\n * @param {Object} permissionsMapping - A mapping where kays\n * are service names and values are their corresponding status values.\n * See https://github.com/wix/AppleSimulatorUtils\n * for more details on available service names and statuses.\n * @throws {Error} If there was an error while changing permissions.\n */\nextensions.setPermissions = async function setPermissions (bundleId, permissionsMapping) {\n log.debug(`Setting access for '${bundleId}': ${JSON.stringify(permissionsMapping, null, 2)}`);\n await setAccess(bundleId, permissionsMapping);\n};\n\n/**\n * Retrieves current permission status for the given application bundle.\n *\n * @param {string} bundleId - Application bundle identifier.\n * @param {string} serviceName - One of available service names.\n * @throws {Error} If there was an error while retrieving permissions.\n */\nextensions.getPermission = async function getPermission (bundleId, serviceName) {\n const result = await getAccess(bundleId, serviceName, this.getDir());\n log.debug(`Got ${serviceName} access status for '${bundleId}': ${result}`);\n return result;\n};\n\nexport default extensions;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"permissions.js","names":["STATUS_UNSET","STATUS_NO","STATUS_YES","WIX_SIM_UTILS","SERVICES","Object","freeze","calendar","camera","contacts","homekit","microphone","photos","reminders","medialibrary","motion","health","siri","speech","toInternalServiceName","serviceName","_","has","toLower","Error","JSON","stringify","keys","formatStatus","status","includes","toUpper","execSQLiteQuery","db","query","log","debug","exec","stdout","err","stderr","execWix","args","fs","which","e","util","quote","message","setAccess","udid","bundleId","permissionsMapping","permissionsArg","toPairs","map","x","join","getAccess","simDataRoot","internalServiceName","dbPath","path","resolve","sqlValue","sql","count","parseInt","split","extensions","setPermission","permission","value","setPermissions","getPermission","result","getDir"],"sources":["../../../lib/extensions/permissions.js"],"sourcesContent":["import log from '../logger';\nimport _ from 'lodash';\nimport { fs, util } from '@appium/support';\nimport { exec } from 'teen_process';\nimport path from 'path';\n\nconst STATUS_UNSET = 'unset';\nconst STATUS_NO = 'no';\nconst STATUS_YES = 'yes';\nconst WIX_SIM_UTILS = 'applesimutils';\nconst SERVICES = Object.freeze({\n calendar: 'kTCCServiceCalendar',\n camera: 'kTCCServiceCamera',\n contacts: 'kTCCServiceAddressBook',\n homekit: 'kTCCServiceWillow',\n microphone: 'kTCCServiceMicrophone',\n photos: 'kTCCServicePhotos',\n reminders: 'kTCCServiceReminders',\n medialibrary: 'kTCCServiceMediaLibrary',\n motion: 'kTCCServiceMotion',\n health: 'kTCCServiceMSO',\n siri: 'kTCCServiceSiri',\n speech: 'kTCCServiceSpeechRecognition',\n});\n\nfunction toInternalServiceName (serviceName) {\n if (_.has(SERVICES, _.toLower(serviceName))) {\n return SERVICES[_.toLower(serviceName)];\n }\n throw new Error(\n `'${serviceName}' is unknown. Only the following service names are supported: ${JSON.stringify(_.keys(SERVICES))}`\n );\n}\n\nfunction formatStatus (status) {\n return [STATUS_UNSET, STATUS_NO].includes(status) ? _.toUpper(status) : status;\n}\n\n/**\n * Runs a command line sqlite3 query\n *\n * @param {string} db - Full path to sqlite database\n * @param {string} query - The actual query string\n * @returns {string} sqlite command stdout\n */\nasync function execSQLiteQuery (db, query) {\n log.debug(`Executing SQL query \"${query}\" on '${db}'`);\n try {\n return (await exec('sqlite3', ['-line', db, query])).stdout;\n } catch (err) {\n throw new Error(\n `Cannot execute SQLite query \"${query}\" to '${db}'. Original error: ${err.stderr}`\n );\n }\n}\n\nasync function execWix (args) {\n try {\n await fs.which(WIX_SIM_UTILS);\n } catch (e) {\n throw new Error(\n `${WIX_SIM_UTILS} binary has not been found in your PATH. ` +\n `Please install it ('brew tap wix/brew && brew install wix/brew/applesimutils') to ` +\n `be able to change application permissions`\n );\n }\n\n log.debug(`Executing: ${WIX_SIM_UTILS} ${util.quote(args)}`);\n try {\n const {stdout} = await exec(WIX_SIM_UTILS, args);\n log.debug(`Command output: ${stdout}`);\n return stdout;\n } catch (e) {\n throw new Error(`Cannot execute \"${WIX_SIM_UTILS} ${util.quote(args)}\". Original error: ${e.stderr || e.message}`);\n }\n}\n\n/**\n * Sets permissions for the given application\n *\n * @param {string} udid - udid of the target simulator device.\n * @param {string} bundleId - bundle identifier of the target application.\n * @param {Object} permissionsMapping - An object, where keys ar service names\n * and values are corresponding state values. See https://github.com/wix/AppleSimulatorUtils\n * for more details on available service names and statuses.\n * @throws {Error} If there was an error while changing permissions.\n */\nasync function setAccess (udid, bundleId, permissionsMapping) {\n const permissionsArg = _.toPairs(permissionsMapping)\n .map((x) => `${x[0]}=${formatStatus(x[1])}`)\n .join(',');\n return await execWix([\n '--byId', udid,\n '--bundle', bundleId,\n '--setPermissions', permissionsArg,\n ]);\n}\n\n/**\n * Retrieves the current permission status for the given service and application.\n *\n * @param {string} bundleId - bundle identifier of the target application.\n * @param {string} serviceName - the name of the service. Should be one of\n * `SERVICES` keys.\n * @param {string} simDataRoot - the path to Simulator `data` root\n * @returns {string} - The current status: yes/no/unset\n * @throws {Error} If there was an error while retrieving permissions.\n */\nasync function getAccess (bundleId, serviceName, simDataRoot) {\n const internalServiceName = toInternalServiceName(serviceName);\n const dbPath = path.resolve(simDataRoot, 'Library', 'TCC', 'TCC.db');\n for (const [sqlValue, status] of [['0', STATUS_NO], ['1', STATUS_YES]]) {\n const sql = `SELECT count(*) FROM 'access' ` +\n `WHERE client='${bundleId}' AND allowed=${sqlValue} AND service='${internalServiceName}'`;\n const count = await execSQLiteQuery(dbPath, sql);\n if (parseInt(count.split('=')[1], 10) > 0) {\n return status;\n }\n }\n return STATUS_UNSET;\n}\n\n\nconst extensions = {};\n\n/**\n * Sets the particular permission to the application bundle. See\n * https://github.com/wix/AppleSimulatorUtils for more details on\n * the available service names and statuses.\n *\n * @param {string} bundleId - Application bundle identifier.\n * @param {string} permission - Service name to be set.\n * @param {string} value - The desired status for the service.\n * @throws {Error} If there was an error while changing permission.\n */\nextensions.setPermission = async function setPermission (bundleId, permission, value) {\n await this.setPermissions(bundleId, {[permission]: value});\n};\n\n/**\n * Sets the permissions for the particular application bundle.\n *\n * @param {string} bundleId - Application bundle identifier.\n * @param {Object} permissionsMapping - A mapping where kays\n * are service names and values are their corresponding status values.\n * See https://github.com/wix/AppleSimulatorUtils\n * for more details on available service names and statuses.\n * @throws {Error} If there was an error while changing permissions.\n */\nextensions.setPermissions = async function setPermissions (bundleId, permissionsMapping) {\n log.debug(`Setting access for '${bundleId}': ${JSON.stringify(permissionsMapping, null, 2)}`);\n await setAccess(this.udid, bundleId, permissionsMapping);\n};\n\n/**\n * Retrieves current permission status for the given application bundle.\n *\n * @param {string} bundleId - Application bundle identifier.\n * @param {string} serviceName - One of available service names.\n * @throws {Error} If there was an error while retrieving permissions.\n */\nextensions.getPermission = async function getPermission (bundleId, serviceName) {\n const result = await getAccess(bundleId, serviceName, this.getDir());\n log.debug(`Got ${serviceName} access status for '${bundleId}': ${result}`);\n return result;\n};\n\nexport default extensions;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA,MAAMA,YAAY,GAAG,OAAO;AAC5B,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,UAAU,GAAG,KAAK;AACxB,MAAMC,aAAa,GAAG,eAAe;AACrC,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAAC;EAC7BC,QAAQ,EAAE,qBAAqB;EAC/BC,MAAM,EAAE,mBAAmB;EAC3BC,QAAQ,EAAE,wBAAwB;EAClCC,OAAO,EAAE,mBAAmB;EAC5BC,UAAU,EAAE,uBAAuB;EACnCC,MAAM,EAAE,mBAAmB;EAC3BC,SAAS,EAAE,sBAAsB;EACjCC,YAAY,EAAE,yBAAyB;EACvCC,MAAM,EAAE,mBAAmB;EAC3BC,MAAM,EAAE,gBAAgB;EACxBC,IAAI,EAAE,iBAAiB;EACvBC,MAAM,EAAE;AACV,CAAC,CAAC;AAEF,SAASC,qBAAqB,CAAEC,WAAW,EAAE;EAC3C,IAAIC,eAAC,CAACC,GAAG,CAAClB,QAAQ,EAAEiB,eAAC,CAACE,OAAO,CAACH,WAAW,CAAC,CAAC,EAAE;IAC3C,OAAOhB,QAAQ,CAACiB,eAAC,CAACE,OAAO,CAACH,WAAW,CAAC,CAAC;EACzC;EACA,MAAM,IAAII,KAAK,CACZ,IAAGJ,WAAY,iEAAgEK,IAAI,CAACC,SAAS,CAACL,eAAC,CAACM,IAAI,CAACvB,QAAQ,CAAC,CAAE,EAAC,CACnH;AACH;AAEA,SAASwB,YAAY,CAAEC,MAAM,EAAE;EAC7B,OAAO,CAAC7B,YAAY,EAAEC,SAAS,CAAC,CAAC6B,QAAQ,CAACD,MAAM,CAAC,GAAGR,eAAC,CAACU,OAAO,CAACF,MAAM,CAAC,GAAGA,MAAM;AAChF;AASA,eAAeG,eAAe,CAAEC,EAAE,EAAEC,KAAK,EAAE;EACzCC,eAAG,CAACC,KAAK,CAAE,wBAAuBF,KAAM,SAAQD,EAAG,GAAE,CAAC;EACtD,IAAI;IACF,OAAO,CAAC,MAAM,IAAAI,kBAAI,EAAC,SAAS,EAAE,CAAC,OAAO,EAAEJ,EAAE,EAAEC,KAAK,CAAC,CAAC,EAAEI,MAAM;EAC7D,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAM,IAAIf,KAAK,CACZ,gCAA+BU,KAAM,SAAQD,EAAG,sBAAqBM,GAAG,CAACC,MAAO,EAAC,CACnF;EACH;AACF;AAEA,eAAeC,OAAO,CAAEC,IAAI,EAAE;EAC5B,IAAI;IACF,MAAMC,WAAE,CAACC,KAAK,CAACzC,aAAa,CAAC;EAC/B,CAAC,CAAC,OAAO0C,CAAC,EAAE;IACV,MAAM,IAAIrB,KAAK,CACZ,GAAErB,aAAc,2CAA0C,GAC1D,oFAAmF,GACnF,2CAA0C,CAC5C;EACH;EAEAgC,eAAG,CAACC,KAAK,CAAE,cAAajC,aAAc,IAAG2C,aAAI,CAACC,KAAK,CAACL,IAAI,CAAE,EAAC,CAAC;EAC5D,IAAI;IACF,MAAM;MAACJ;IAAM,CAAC,GAAG,MAAM,IAAAD,kBAAI,EAAClC,aAAa,EAAEuC,IAAI,CAAC;IAChDP,eAAG,CAACC,KAAK,CAAE,mBAAkBE,MAAO,EAAC,CAAC;IACtC,OAAOA,MAAM;EACf,CAAC,CAAC,OAAOO,CAAC,EAAE;IACV,MAAM,IAAIrB,KAAK,CAAE,mBAAkBrB,aAAc,IAAG2C,aAAI,CAACC,KAAK,CAACL,IAAI,CAAE,sBAAqBG,CAAC,CAACL,MAAM,IAAIK,CAAC,CAACG,OAAQ,EAAC,CAAC;EACpH;AACF;AAYA,eAAeC,SAAS,CAAEC,IAAI,EAAEC,QAAQ,EAAEC,kBAAkB,EAAE;EAC5D,MAAMC,cAAc,GAAGhC,eAAC,CAACiC,OAAO,CAACF,kBAAkB,CAAC,CACjDG,GAAG,CAAEC,CAAC,IAAM,GAAEA,CAAC,CAAC,CAAC,CAAE,IAAG5B,YAAY,CAAC4B,CAAC,CAAC,CAAC,CAAC,CAAE,EAAC,CAAC,CAC3CC,IAAI,CAAC,GAAG,CAAC;EACZ,OAAO,MAAMhB,OAAO,CAAC,CACnB,QAAQ,EAAES,IAAI,EACd,UAAU,EAAEC,QAAQ,EACpB,kBAAkB,EAAEE,cAAc,CACnC,CAAC;AACJ;AAYA,eAAeK,SAAS,CAAEP,QAAQ,EAAE/B,WAAW,EAAEuC,WAAW,EAAE;EAC5D,MAAMC,mBAAmB,GAAGzC,qBAAqB,CAACC,WAAW,CAAC;EAC9D,MAAMyC,MAAM,GAAGC,aAAI,CAACC,OAAO,CAACJ,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC;EACpE,KAAK,MAAM,CAACK,QAAQ,EAAEnC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE5B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAEC,UAAU,CAAC,CAAC,EAAE;IACtE,MAAM+D,GAAG,GAAI,gCAA+B,GACzC,iBAAgBd,QAAS,iBAAgBa,QAAS,iBAAgBJ,mBAAoB,GAAE;IAC3F,MAAMM,KAAK,GAAG,MAAMlC,eAAe,CAAC6B,MAAM,EAAEI,GAAG,CAAC;IAChD,IAAIE,QAAQ,CAACD,KAAK,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE;MACzC,OAAOvC,MAAM;IACf;EACF;EACA,OAAO7B,YAAY;AACrB;AAGA,MAAMqE,UAAU,GAAG,CAAC,CAAC;AAYrBA,UAAU,CAACC,aAAa,GAAG,eAAeA,aAAa,CAAEnB,QAAQ,EAAEoB,UAAU,EAAEC,KAAK,EAAE;EACpF,MAAM,IAAI,CAACC,cAAc,CAACtB,QAAQ,EAAE;IAAC,CAACoB,UAAU,GAAGC;EAAK,CAAC,CAAC;AAC5D,CAAC;AAYDH,UAAU,CAACI,cAAc,GAAG,eAAeA,cAAc,CAAEtB,QAAQ,EAAEC,kBAAkB,EAAE;EACvFjB,eAAG,CAACC,KAAK,CAAE,uBAAsBe,QAAS,MAAK1B,IAAI,CAACC,SAAS,CAAC0B,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAE,EAAC,CAAC;EAC7F,MAAMH,SAAS,CAAC,IAAI,CAACC,IAAI,EAAEC,QAAQ,EAAEC,kBAAkB,CAAC;AAC1D,CAAC;AASDiB,UAAU,CAACK,aAAa,GAAG,eAAeA,aAAa,CAAEvB,QAAQ,EAAE/B,WAAW,EAAE;EAC9E,MAAMuD,MAAM,GAAG,MAAMjB,SAAS,CAACP,QAAQ,EAAE/B,WAAW,EAAE,IAAI,CAACwD,MAAM,EAAE,CAAC;EACpEzC,eAAG,CAACC,KAAK,CAAE,OAAMhB,WAAY,uBAAsB+B,QAAS,MAAKwB,MAAO,EAAC,CAAC;EAC1E,OAAOA,MAAM;AACf,CAAC;AAAC,eAEaN,UAAU;AAAA"}
|
|
@@ -8,7 +8,7 @@ exports.default = void 0;
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
var _simulatorXcode = _interopRequireDefault(require("./simulator-xcode-9"));
|
|
10
10
|
var _teen_process = require("teen_process");
|
|
11
|
-
|
|
11
|
+
var _logger = _interopRequireDefault(require("./logger"));
|
|
12
12
|
class SimulatorXcode93 extends _simulatorXcode.default {
|
|
13
13
|
constructor(udid, xcodeVersion) {
|
|
14
14
|
super(udid, xcodeVersion);
|
|
@@ -18,23 +18,25 @@ class SimulatorXcode93 extends _simulatorXcode.default {
|
|
|
18
18
|
if (this.webInspectorSocket) {
|
|
19
19
|
return this.webInspectorSocket;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
const {
|
|
22
22
|
stdout
|
|
23
23
|
} = await (0, _teen_process.exec)('lsof', ['-aUc', 'launchd_sim']);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
const udidPattern = `([0-9]{1,5}).+${this.udid}`;
|
|
25
|
+
const udidMatch = stdout.match(new RegExp(udidPattern));
|
|
26
|
+
if (!udidMatch) {
|
|
27
|
+
_logger.default.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const pidPattern = `${udidMatch[1]}.+\\s+(\\S+com\\.apple\\.webinspectord_sim\\.socket)`;
|
|
31
|
+
const pidMatch = stdout.match(new RegExp(pidPattern));
|
|
32
|
+
if (!pidMatch) {
|
|
33
|
+
_logger.default.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);
|
|
34
|
+
return null;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
+
this.webInspectorSocket = pidMatch[1];
|
|
37
|
+
return this.webInspectorSocket;
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
var _default = SimulatorXcode93;
|
|
39
41
|
exports.default = _default;
|
|
40
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaW11bGF0b3JYY29kZTkzIiwiU2ltdWxhdG9yWGNvZGU5IiwiY29uc3RydWN0b3IiLCJ1ZGlkIiwieGNvZGVWZXJzaW9uIiwid2ViSW5zcGVjdG9yU29ja2V0IiwiZ2V0V2ViSW5zcGVjdG9yU29ja2V0Iiwic3Rkb3V0IiwiZXhlYyIsInVkaWRQYXR0ZXJuIiwidWRpZE1hdGNoIiwibWF0Y2giLCJSZWdFeHAiLCJsb2ciLCJkZWJ1ZyIsInBpZFBhdHRlcm4iLCJwaWRNYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9zaW11bGF0b3IteGNvZGUtOS4zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTaW11bGF0b3JYY29kZTkgZnJvbSAnLi9zaW11bGF0b3IteGNvZGUtOSc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5cbmNsYXNzIFNpbXVsYXRvclhjb2RlOTMgZXh0ZW5kcyBTaW11bGF0b3JYY29kZTkge1xuICBjb25zdHJ1Y3RvciAodWRpZCwgeGNvZGVWZXJzaW9uKSB7XG4gICAgc3VwZXIodWRpZCwgeGNvZGVWZXJzaW9uKTtcblxuICAgIHRoaXMud2ViSW5zcGVjdG9yU29ja2V0ID0gbnVsbDtcbiAgfVxuXG4gIC8qXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgYXN5bmMgZ2V0V2ViSW5zcGVjdG9yU29ja2V0ICgpIHtcbiAgICBpZiAodGhpcy53ZWJJbnNwZWN0b3JTb2NrZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLndlYkluc3BlY3RvclNvY2tldDtcbiAgICB9XG5cbiAgICAvLyBsc29mIC1hVWMgbGF1bmNoZF9zaW0gZ2l2ZXMgYSBzZXQgb2YgcmVjb3JkcyBsaWtlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0taW9zLXNpbXVsYXRvci9jb21taXQvYzAwOTAxYTlkZGVhMTc4YzU1ODFhN2E1N2Q5NmQ4Y2VlM2YxN2M1OSNkaWZmLTJiZTA5ZGQyZWEwMWNmZDZiYmJkNzNlMTBiYzQ2OGRhNzgyYTI5NzM2NWVlYzcwNjk5OWZjMzcwOWMwMTQ3OGRSMTAyXG4gICAgLy8gdGhlc2UgX2FwcGVhcl8gdG8gYWx3YXlzIGJlIGdyb3VwZWQgdG9nZXRoZXIgYnkgUElEIGZvciBlYWNoIHNpbXVsYXRvci5cbiAgICAvLyBUaGVyZWZvcmUsIGJ5IG9idGFpbmluZyBzaW11bGF0b3IgUElEIHdpdGggYW4gZXhwZWN0ZWQgc2ltdWxhdG9yIFVESUQsXG4gICAgLy8gd2UgY2FuIGdldCB0aGUgY29ycmVjdCBgY29tLmFwcGxlLndlYmluc3BlY3RvcmRfc2ltLnNvY2tldGBcbiAgICAvLyB3aXRob3V0IGRlcGVuZGluZyBvbiB0aGUgb3JkZXIgb2YgYGxzb2YgLWFVYyBsYXVuY2hkX3NpbWAgcmVzdWx0LlxuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgZXhlYygnbHNvZicsIFsnLWFVYycsICdsYXVuY2hkX3NpbSddKTtcbiAgICBjb25zdCB1ZGlkUGF0dGVybiA9IGAoWzAtOV17MSw1fSkuKyR7dGhpcy51ZGlkfWA7XG4gICAgY29uc3QgdWRpZE1hdGNoID0gc3Rkb3V0Lm1hdGNoKG5ldyBSZWdFeHAodWRpZFBhdHRlcm4pKTtcbiAgICBpZiAoIXVkaWRNYXRjaCkge1xuICAgICAgbG9nLmRlYnVnKGBGYWlsZWQgdG8gZ2V0IFdlYiBJbnNwZWN0b3Igc29ja2V0LiBsc29mIHJlc3VsdDogJHtzdGRvdXR9YCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwaWRQYXR0ZXJuID0gYCR7dWRpZE1hdGNoWzFdfS4rXFxcXHMrKFxcXFxTK2NvbVxcXFwuYXBwbGVcXFxcLndlYmluc3BlY3RvcmRfc2ltXFxcXC5zb2NrZXQpYDtcbiAgICBjb25zdCBwaWRNYXRjaCA9IHN0ZG91dC5tYXRjaChuZXcgUmVnRXhwKHBpZFBhdHRlcm4pKTtcbiAgICBpZiAoIXBpZE1hdGNoKSB7XG4gICAgICBsb2cuZGVidWcoYEZhaWxlZCB0byBnZXQgV2ViIEluc3BlY3RvciBzb2NrZXQuIGxzb2YgcmVzdWx0OiAke3N0ZG91dH1gKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0aGlzLndlYkluc3BlY3RvclNvY2tldCA9IHBpZE1hdGNoWzFdO1xuICAgIHJldHVybiB0aGlzLndlYkluc3BlY3RvclNvY2tldDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTaW11bGF0b3JYY29kZTkzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBLE1BQU1BLGdCQUFnQixTQUFTQyx1QkFBZSxDQUFDO0VBQzdDQyxXQUFXLENBQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFO0lBQy9CLEtBQUssQ0FBQ0QsSUFBSSxFQUFFQyxZQUFZLENBQUM7SUFFekIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBRyxJQUFJO0VBQ2hDO0VBS0EsTUFBTUMscUJBQXFCLEdBQUk7SUFDN0IsSUFBSSxJQUFJLENBQUNELGtCQUFrQixFQUFFO01BQzNCLE9BQU8sSUFBSSxDQUFDQSxrQkFBa0I7SUFDaEM7SUFRQSxNQUFNO01BQUNFO0lBQU0sQ0FBQyxHQUFHLE1BQU0sSUFBQUMsa0JBQUksRUFBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUQsTUFBTUMsV0FBVyxHQUFJLGlCQUFnQixJQUFJLENBQUNOLElBQUssRUFBQztJQUNoRCxNQUFNTyxTQUFTLEdBQUdILE1BQU0sQ0FBQ0ksS0FBSyxDQUFDLElBQUlDLE1BQU0sQ0FBQ0gsV0FBVyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDQyxTQUFTLEVBQUU7TUFDZEcsZUFBRyxDQUFDQyxLQUFLLENBQUUsb0RBQW1EUCxNQUFPLEVBQUMsQ0FBQztNQUN2RSxPQUFPLElBQUk7SUFDYjtJQUVBLE1BQU1RLFVBQVUsR0FBSSxHQUFFTCxTQUFTLENBQUMsQ0FBQyxDQUFFLHNEQUFxRDtJQUN4RixNQUFNTSxRQUFRLEdBQUdULE1BQU0sQ0FBQ0ksS0FBSyxDQUFDLElBQUlDLE1BQU0sQ0FBQ0csVUFBVSxDQUFDLENBQUM7SUFDckQsSUFBSSxDQUFDQyxRQUFRLEVBQUU7TUFDYkgsZUFBRyxDQUFDQyxLQUFLLENBQUUsb0RBQW1EUCxNQUFPLEVBQUMsQ0FBQztNQUN2RSxPQUFPLElBQUk7SUFDYjtJQUNBLElBQUksQ0FBQ0Ysa0JBQWtCLEdBQUdXLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckMsT0FBTyxJQUFJLENBQUNYLGtCQUFrQjtFQUNoQztBQUNGO0FBQUMsZUFFY0wsZ0JBQWdCO0FBQUEifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulator-xcode-9.3.js","names":["
|
|
1
|
+
{"version":3,"file":"simulator-xcode-9.3.js","names":["SimulatorXcode93","SimulatorXcode9","constructor","udid","xcodeVersion","webInspectorSocket","getWebInspectorSocket","stdout","exec","udidPattern","udidMatch","match","RegExp","log","debug","pidPattern","pidMatch"],"sources":["../../lib/simulator-xcode-9.3.js"],"sourcesContent":["import SimulatorXcode9 from './simulator-xcode-9';\nimport { exec } from 'teen_process';\nimport log from './logger';\n\n\nclass SimulatorXcode93 extends SimulatorXcode9 {\n constructor (udid, xcodeVersion) {\n super(udid, xcodeVersion);\n\n this.webInspectorSocket = null;\n }\n\n /*\n * @override\n */\n async getWebInspectorSocket () {\n if (this.webInspectorSocket) {\n return this.webInspectorSocket;\n }\n\n // lsof -aUc launchd_sim gives a set of records like\n // https://github.com/appium/appium-ios-simulator/commit/c00901a9ddea178c5581a7a57d96d8cee3f17c59#diff-2be09dd2ea01cfd6bbbd73e10bc468da782a297365eec706999fc3709c01478dR102\n // these _appear_ to always be grouped together by PID for each simulator.\n // Therefore, by obtaining simulator PID with an expected simulator UDID,\n // we can get the correct `com.apple.webinspectord_sim.socket`\n // without depending on the order of `lsof -aUc launchd_sim` result.\n const {stdout} = await exec('lsof', ['-aUc', 'launchd_sim']);\n const udidPattern = `([0-9]{1,5}).+${this.udid}`;\n const udidMatch = stdout.match(new RegExp(udidPattern));\n if (!udidMatch) {\n log.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);\n return null;\n }\n\n const pidPattern = `${udidMatch[1]}.+\\\\s+(\\\\S+com\\\\.apple\\\\.webinspectord_sim\\\\.socket)`;\n const pidMatch = stdout.match(new RegExp(pidPattern));\n if (!pidMatch) {\n log.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);\n return null;\n }\n this.webInspectorSocket = pidMatch[1];\n return this.webInspectorSocket;\n }\n}\n\nexport default SimulatorXcode93;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAGA,MAAMA,gBAAgB,SAASC,uBAAe,CAAC;EAC7CC,WAAW,CAAEC,IAAI,EAAEC,YAAY,EAAE;IAC/B,KAAK,CAACD,IAAI,EAAEC,YAAY,CAAC;IAEzB,IAAI,CAACC,kBAAkB,GAAG,IAAI;EAChC;EAKA,MAAMC,qBAAqB,GAAI;IAC7B,IAAI,IAAI,CAACD,kBAAkB,EAAE;MAC3B,OAAO,IAAI,CAACA,kBAAkB;IAChC;IAQA,MAAM;MAACE;IAAM,CAAC,GAAG,MAAM,IAAAC,kBAAI,EAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5D,MAAMC,WAAW,GAAI,iBAAgB,IAAI,CAACN,IAAK,EAAC;IAChD,MAAMO,SAAS,GAAGH,MAAM,CAACI,KAAK,CAAC,IAAIC,MAAM,CAACH,WAAW,CAAC,CAAC;IACvD,IAAI,CAACC,SAAS,EAAE;MACdG,eAAG,CAACC,KAAK,CAAE,oDAAmDP,MAAO,EAAC,CAAC;MACvE,OAAO,IAAI;IACb;IAEA,MAAMQ,UAAU,GAAI,GAAEL,SAAS,CAAC,CAAC,CAAE,sDAAqD;IACxF,MAAMM,QAAQ,GAAGT,MAAM,CAACI,KAAK,CAAC,IAAIC,MAAM,CAACG,UAAU,CAAC,CAAC;IACrD,IAAI,CAACC,QAAQ,EAAE;MACbH,eAAG,CAACC,KAAK,CAAE,oDAAmDP,MAAO,EAAC,CAAC;MACvE,OAAO,IAAI;IACb;IACA,IAAI,CAACF,kBAAkB,GAAGW,QAAQ,CAAC,CAAC,CAAC;IACrC,OAAO,IAAI,CAACX,kBAAkB;EAChC;AACF;AAAC,eAEcL,gBAAgB;AAAA"}
|
|
@@ -78,18 +78,19 @@ async function execWix (args) {
|
|
|
78
78
|
/**
|
|
79
79
|
* Sets permissions for the given application
|
|
80
80
|
*
|
|
81
|
+
* @param {string} udid - udid of the target simulator device.
|
|
81
82
|
* @param {string} bundleId - bundle identifier of the target application.
|
|
82
83
|
* @param {Object} permissionsMapping - An object, where keys ar service names
|
|
83
84
|
* and values are corresponding state values. See https://github.com/wix/AppleSimulatorUtils
|
|
84
85
|
* for more details on available service names and statuses.
|
|
85
86
|
* @throws {Error} If there was an error while changing permissions.
|
|
86
87
|
*/
|
|
87
|
-
async function setAccess (bundleId, permissionsMapping) {
|
|
88
|
+
async function setAccess (udid, bundleId, permissionsMapping) {
|
|
88
89
|
const permissionsArg = _.toPairs(permissionsMapping)
|
|
89
90
|
.map((x) => `${x[0]}=${formatStatus(x[1])}`)
|
|
90
91
|
.join(',');
|
|
91
92
|
return await execWix([
|
|
92
|
-
'--byId',
|
|
93
|
+
'--byId', udid,
|
|
93
94
|
'--bundle', bundleId,
|
|
94
95
|
'--setPermissions', permissionsArg,
|
|
95
96
|
]);
|
|
@@ -148,7 +149,7 @@ extensions.setPermission = async function setPermission (bundleId, permission, v
|
|
|
148
149
|
*/
|
|
149
150
|
extensions.setPermissions = async function setPermissions (bundleId, permissionsMapping) {
|
|
150
151
|
log.debug(`Setting access for '${bundleId}': ${JSON.stringify(permissionsMapping, null, 2)}`);
|
|
151
|
-
await setAccess(bundleId, permissionsMapping);
|
|
152
|
+
await setAccess(this.udid, bundleId, permissionsMapping);
|
|
152
153
|
};
|
|
153
154
|
|
|
154
155
|
/**
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import SimulatorXcode9 from './simulator-xcode-9';
|
|
2
2
|
import { exec } from 'teen_process';
|
|
3
|
+
import log from './logger';
|
|
3
4
|
|
|
4
5
|
|
|
5
|
-
// https://regex101.com/r/MEL55t/1
|
|
6
|
-
const WEBINSPECTOR_SOCKET_REGEXP = /\s+(\S+com\.apple\.webinspectord_sim\.socket)/;
|
|
7
|
-
|
|
8
6
|
class SimulatorXcode93 extends SimulatorXcode9 {
|
|
9
7
|
constructor (udid, xcodeVersion) {
|
|
10
8
|
super(udid, xcodeVersion);
|
|
@@ -20,32 +18,28 @@ class SimulatorXcode93 extends SimulatorXcode9 {
|
|
|
20
18
|
return this.webInspectorSocket;
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
// lsof -aUc launchd_sim
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
let {stdout} = await exec('lsof', ['-aUc', 'launchd_sim']);
|
|
36
|
-
for (let record of stdout.split('com.apple.CoreSimulator.SimDevice.')) {
|
|
37
|
-
if (!record.includes(this.udid)) {
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
const match = WEBINSPECTOR_SOCKET_REGEXP.exec(record);
|
|
41
|
-
if (!match) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
this.webInspectorSocket = match[1];
|
|
45
|
-
return this.webInspectorSocket;
|
|
21
|
+
// lsof -aUc launchd_sim gives a set of records like
|
|
22
|
+
// https://github.com/appium/appium-ios-simulator/commit/c00901a9ddea178c5581a7a57d96d8cee3f17c59#diff-2be09dd2ea01cfd6bbbd73e10bc468da782a297365eec706999fc3709c01478dR102
|
|
23
|
+
// these _appear_ to always be grouped together by PID for each simulator.
|
|
24
|
+
// Therefore, by obtaining simulator PID with an expected simulator UDID,
|
|
25
|
+
// we can get the correct `com.apple.webinspectord_sim.socket`
|
|
26
|
+
// without depending on the order of `lsof -aUc launchd_sim` result.
|
|
27
|
+
const {stdout} = await exec('lsof', ['-aUc', 'launchd_sim']);
|
|
28
|
+
const udidPattern = `([0-9]{1,5}).+${this.udid}`;
|
|
29
|
+
const udidMatch = stdout.match(new RegExp(udidPattern));
|
|
30
|
+
if (!udidMatch) {
|
|
31
|
+
log.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);
|
|
32
|
+
return null;
|
|
46
33
|
}
|
|
47
34
|
|
|
48
|
-
|
|
35
|
+
const pidPattern = `${udidMatch[1]}.+\\s+(\\S+com\\.apple\\.webinspectord_sim\\.socket)`;
|
|
36
|
+
const pidMatch = stdout.match(new RegExp(pidPattern));
|
|
37
|
+
if (!pidMatch) {
|
|
38
|
+
log.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
this.webInspectorSocket = pidMatch[1];
|
|
42
|
+
return this.webInspectorSocket;
|
|
49
43
|
}
|
|
50
44
|
}
|
|
51
45
|
|