From 3f808d98f0e4ea4c286721374e3b1ecf73af573f Mon Sep 17 00:00:00 2001 From: Mihai Blaga Date: Wed, 29 Nov 2023 19:16:59 +0100 Subject: [PATCH 1/8] move device logic from xcrun to appium --- packages/sdk-apple/package.json | 3 +- packages/sdk-apple/src/deviceManager.ts | 91 ++-- packages/sdk-apple/src/types.ts | 12 + yarn.lock | 564 +++++++++++++++++++++--- 4 files changed, 549 insertions(+), 121 deletions(-) diff --git a/packages/sdk-apple/package.json b/packages/sdk-apple/package.json index c4297650b5..33d4a65a19 100644 --- a/packages/sdk-apple/package.json +++ b/packages/sdk-apple/package.json @@ -33,6 +33,7 @@ "@react-native-community/cli": "^11.3.8", "@react-native-community/cli-platform-ios": "^11.3.8", "@rnv/sdk-react-native": "1.0.0-rc.0", + "appium-ios-device": "2.7.10", "compare-versions": "3.6.0", "ios-mobileprovision-finder": "1.1.0", "xcode": "2.1.0" @@ -45,4 +46,4 @@ "access": "public" }, "gitHead": "48ef244c6ec2e206cbfd72fe8770d8dc03387591" -} +} \ No newline at end of file diff --git a/packages/sdk-apple/src/deviceManager.ts b/packages/sdk-apple/src/deviceManager.ts index 0deddb5164..a5d1d0763b 100644 --- a/packages/sdk-apple/src/deviceManager.ts +++ b/packages/sdk-apple/src/deviceManager.ts @@ -1,4 +1,5 @@ import child_process from 'child_process'; +import { utilities } from 'appium-ios-device'; import { chalk, logToSummary, @@ -12,27 +13,25 @@ import { inquirerPrompt, RnvPlatform, } from '@rnv/core'; -import { AppleDevice } from './types'; +import { AppiumAppleDevice, AppleDevice } from './types'; export const getAppleDevices = async (c: RnvContext, ignoreDevices?: boolean, ignoreSimulators?: boolean) => { const { platform } = c; - logTask('getAppleDevices', `ignoreDevices:${ignoreDevices} ignoreSimulators${ignoreSimulators}`); + logTask('getAppleDevices', `ignoreDevices:${ignoreDevices} ignoreSimulators:${ignoreSimulators}`); const { program: { skipTargetCheck }, } = c; - let devicesAndSims; - let isXcode13 = false; - try { - // xcode >= 13 - isXcode13 = true; - devicesAndSims = await executeAsync('xcrun xctrace list devices'); - } catch { - // xcode < 13 - devicesAndSims = await executeAsync('xcrun instruments -s'); - } + const connectedDevicesIds = await utilities.getConnectedDevices(); + const connectedDevicesArray = await Promise.all(connectedDevicesIds.map(async (id: string) => { + const info = await utilities.getDeviceInfo(id); + return { + udid: id, + ...info + } + })); const res = await executeAsync('xcrun simctl list --json'); const simctl = JSON.parse(res.toString()); const availableSims: Array = []; @@ -50,14 +49,11 @@ export const getAppleDevices = async (c: RnvContext, ignoreDevices?: boolean, ig }); } - let parseFunction = _parseIOSDevicesList; - if (isXcode13) { - parseFunction = _parseNewIOSDevicesList; - } - const devicesArr = parseFunction(devicesAndSims, platform, ignoreDevices, ignoreSimulators); + const devicesArr = _parseNewIOSDevicesList(connectedDevicesArray, platform, ignoreDevices); const simulatorsArr = _parseIOSDevicesList(availableSims, platform, ignoreDevices, ignoreSimulators); let allDevices = [...devicesArr, ...simulatorsArr]; + console.log('allDevices', allDevices); if (!skipTargetCheck) { // filter watches @@ -71,55 +67,42 @@ export const getAppleDevices = async (c: RnvContext, ignoreDevices?: boolean, ig return false; }); } + console.log('allDevices', allDevices); return allDevices; }; const _parseNewIOSDevicesList = ( - rawDevices: string | Array, + rawDevices: Array, platform: RnvPlatform, ignoreDevices = false ) => { const devices: Array = []; if (ignoreDevices) return devices; - const decideIcon = (device: AppleDevice) => { - const { name, isDevice } = device; - switch (platform) { - case IOS: - if (name?.includes('iPhone') || name?.includes('iPad') || name?.includes('iPod')) { - let icon = 'Phone 📱'; - if (name.includes('iPad')) icon = 'Tablet 💊'; - return icon; - } - return undefined; - case TVOS: - if (name?.includes('TV') && !name?.includes('iPhone') && !name?.includes('iPad')) { - return 'TV 📺'; - } - return undefined; - default: - if (isDevice) { - return 'Apple Device'; - } - return undefined; + const decideIcon = (device: AppiumAppleDevice) => { + const { ProductName } = device; + if (ProductName?.includes('iPhone') || ProductName?.includes('iPad') || ProductName?.includes('iPod')) { + let icon = 'Phone 📱'; + if (ProductName.includes('iPad')) icon = 'Tablet 💊'; + return icon; } + if (ProductName?.includes('TV') && !ProductName?.includes('iPhone') && !ProductName?.includes('iPad')) { + return 'TV 📺'; + } + return 'Apple Device'; }; - if (typeof rawDevices === 'string') { - const lines = rawDevices.split('\n'); - const devicesOnly: Array = lines.slice(1, lines.indexOf('')); - devicesOnly.forEach((device) => { - const udid = device.match(/\(([^()]*)\)$/)?.[1]; - const name = device.split(' (').slice(0, -1).join(' ('); - const icon = decideIcon({ name, isDevice: true }); - devices.push({ - udid, - name, - icon, - isDevice: true, - }); - }); - } - return devices; + return rawDevices.map((device) => { + const { DeviceName, ProductVersion, udid } = device; + const version = ProductVersion; + const icon = decideIcon(device); + return { + udid, + name: DeviceName, + icon, + version, + isDevice: true, + }; + }); }; const _parseIOSDevicesList = ( diff --git a/packages/sdk-apple/src/types.ts b/packages/sdk-apple/src/types.ts index c261e99b75..2146297f99 100644 --- a/packages/sdk-apple/src/types.ts +++ b/packages/sdk-apple/src/types.ts @@ -9,6 +9,18 @@ export type AppleDevice = { isDevice?: boolean; }; +export type AppiumAppleDevice = { + udid: string; + CPUArchitecture: string; + DeviceName: string; + HardwareModel: string; + HumanReadableProductVersionString: string; + ProductName: string; + ProductType: string; + ProductVersion: string; + SupportedDeviceFamilies: number[] +} + export type Payload = { pluginConfigiOS: { exportOptions: string; diff --git a/yarn.lock b/yarn.lock index c9c8eede56..f4c9012bde 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,6 +34,95 @@ jsonpointer "^5.0.0" leven "^3.1.0" +"@appium/schema@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@appium/schema/-/schema-0.4.2.tgz#7435b944c7f2f5200d83cb654769b62190604cae" + integrity sha512-b2tC2sKAS8wnw8V7W7Rm6pXFt8QY4NTWvibprVYi1g8rZLnlmlIwUW0Gl6FhrWTUyK+u4rbF8vVIIBIU8C+i/g== + dependencies: + "@types/json-schema" "7.0.15" + json-schema "0.4.0" + source-map-support "0.5.21" + +"@appium/support@^4.0.0": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@appium/support/-/support-4.1.9.tgz#4017fff17cfa19604deb257a8a73aefda4a0b993" + integrity sha512-R2hNFeSWVmIWOKUintiEw+GEtwR4W4sbdUMdhIJ6ywnWzLAC0m7Nsn5WHGmCJQXVHheLTefRPMME9/C1UkXhzA== + dependencies: + "@appium/tsconfig" "^0.x" + "@appium/types" "^0.14.2" + "@colors/colors" "1.6.0" + "@types/archiver" "6.0.1" + "@types/base64-stream" "1.0.5" + "@types/find-root" "1.1.4" + "@types/jsftp" "2.1.5" + "@types/klaw" "3.0.6" + "@types/lockfile" "1.0.4" + "@types/mv" "2.1.4" + "@types/ncp" "2.0.8" + "@types/npmlog" "4.1.6" + "@types/pluralize" "0.0.33" + "@types/semver" "7.5.5" + "@types/shell-quote" "1.7.4" + "@types/supports-color" "8.1.3" + "@types/teen_process" "2.0.3" + "@types/uuid" "9.0.7" + "@types/which" "3.0.1" + archiver "6.0.1" + axios "1.6.1" + base64-stream "1.0.0" + bluebird "3.7.2" + bplist-creator "0.1.1" + bplist-parser "0.3.2" + form-data "4.0.0" + get-stream "6.0.1" + glob "10.3.10" + jsftp "2.1.3" + klaw "4.1.0" + lockfile "1.0.4" + lodash "4.17.21" + log-symbols "4.1.0" + moment "2.29.4" + mv "2.1.1" + ncp "2.0.0" + npmlog "7.0.1" + opencv-bindings "4.5.5" + pkg-dir "5.0.0" + plist "3.1.0" + pluralize "8.0.0" + read-pkg "5.2.0" + resolve-from "5.0.0" + sanitize-filename "1.6.3" + semver "7.5.4" + shell-quote "1.8.1" + source-map-support "0.5.21" + supports-color "8.1.1" + teen_process "2.0.84" + type-fest "3.13.1" + uuid "9.0.1" + which "4.0.0" + yauzl "2.10.0" + optionalDependencies: + sharp "0.32.6" + +"@appium/tsconfig@^0.x": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@appium/tsconfig/-/tsconfig-0.3.2.tgz#d2509193b334bb3f3fa8857681562b937c34974f" + integrity sha512-GPJKATPBHbOC1lRX3+mq4wPRHzilEsBDh64TFBa156BtBRPhKi2DoLv38I93gNAWPJ+StwqZ5YMndriuu/8jKQ== + dependencies: + "@tsconfig/node14" "14.1.0" + +"@appium/types@^0.14.2": + version "0.14.2" + resolved "https://registry.yarnpkg.com/@appium/types/-/types-0.14.2.tgz#70f40837f00b04569cd4e720d160a02f3c645451" + integrity sha512-sjekfbaych5Zpd+Y+bV6RYB4HzAAbLfgIXLZSbVgTM8O11qCjeDORxkuAOfFGeXUMNLEXCKiKzZ9Nnbjqm36Ww== + dependencies: + "@appium/schema" "^0.4.2" + "@appium/tsconfig" "^0.x" + "@types/express" "4.17.21" + "@types/npmlog" "4.1.6" + "@types/ws" "8.5.9" + type-fest "3.13.1" + "@azure/abort-controller@^1.0.0": version "1.1.0" resolved "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz#788ee78457a55af8a1ad342acb182383d2119249" @@ -1356,6 +1445,11 @@ resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@colors/colors@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" + integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== + "@csstools/normalize.css@*": version "12.0.0" resolved "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4" @@ -4440,6 +4534,11 @@ resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== +"@tsconfig/node14@14.1.0": + version "14.1.0" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-14.1.0.tgz#1f8611430002b2a08c68ec1b1e7aa40c03b8fcd2" + integrity sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w== + "@tufjs/canonical-json@1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz#eade9fd1f537993bc1f0949f3aea276ecc4fab31" @@ -4453,6 +4552,13 @@ "@tufjs/canonical-json" "1.0.0" minimatch "^9.0.0" +"@types/archiver@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-6.0.1.tgz#a95b3572d1e8c5bf0372ccd4ec5c82d639a31f91" + integrity sha512-F2+JkmDYvtQrtb2YldwL0apRB1/WB6ub+1zVF/bKp3TOygUMFqfOLuw5Fj62Q+DPwJUFz1eocMxJMu7yVpplZA== + dependencies: + "@types/readdir-glob" "*" + "@types/aria-query@^5.0.0": version "5.0.2" resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.2.tgz#6f1225829d89794fd9f891989c9ce667422d7f64" @@ -4491,6 +4597,13 @@ dependencies: "@babel/types" "^7.20.7" +"@types/base64-stream@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/base64-stream/-/base64-stream-1.0.5.tgz#069853db36e2857c2b9cef8cb05b1cc32d646d78" + integrity sha512-gXuo/a7pQ1EXlR5ksM2MccBLl6UUgAgnzR01r/QoHnkaSNinmzSdaGcCq5NAxn72dZ5A1zNYQIl+J9hPsBgBrA== + dependencies: + "@types/node" "*" + "@types/bluebird@^3.5.37": version "3.5.39" resolved "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.39.tgz#6aaf8bcbf005bb091d06ddaa0f620be078bf6a73" @@ -4621,6 +4734,21 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/express@4.17.21": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/find-root@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/find-root/-/find-root-1.1.4.tgz#17b46390319c8fdacd05807e90ad3668060ffb3c" + integrity sha512-2EXK/+gVhVgtt4JqThbEncORvpYJKzi9tQGmI3EkU2jTgMzQsrPm/hbd5xe5uPdeFzIW5gh2PRvvPjaUsI8vpg== + "@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.1", "@types/fs-extra@^9.0.11", "@types/fs-extra@^9.0.4": version "9.0.13" resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" @@ -4714,11 +4842,23 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" +"@types/jsftp@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@types/jsftp/-/jsftp-2.1.5.tgz#440c286ca8ca711ef76bd86732bea41e88068f43" + integrity sha512-g2W6f06wXWVYZw3f/z/N5VHRK69kb1nFaNcRnxs6YxwLph+G7ebd0+Aobd3jWu43oZuyHgycpJZPn+YdIU6qRw== + dependencies: + "@types/node" "*" + "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.13" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== +"@types/json-schema@7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -4739,6 +4879,18 @@ "@types/node" "*" shell-exec "^1" +"@types/klaw@3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/klaw/-/klaw-3.0.6.tgz#673989032a5e04ec5b3a51661979cda4454f3a8d" + integrity sha512-BErW5TrTz4nzt/c3VRGf0Bug4JyQJ1o807F4mAfXfvOzFZ8SKgFeHJ0T28Y1KtqlMEB+cUgN7S7CsyQDQ/qxqg== + dependencies: + "@types/node" "*" + +"@types/lockfile@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@types/lockfile/-/lockfile-1.0.4.tgz#9d6a6d1b6dbd4853cecc7f334bc53ea0ff363b8e" + integrity sha512-Q8oFIHJHr+htLrTXN2FuZfg+WXVHQRwU/hC2GpUu+Q8e3FUM9EDkS2pE3R2AO1ZGu56f479ybdMCNF1DAu8cAQ== + "@types/lodash.flattendeep@^4.4.6": version "4.4.7" resolved "https://registry.npmjs.org/@types/lodash.flattendeep/-/lodash.flattendeep-4.4.7.tgz#0ce3dccbe006826d58e9824b27df4b00ed3e90e6" @@ -4821,6 +4973,11 @@ resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== +"@types/mv@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types/mv/-/mv-2.1.4.tgz#398f39efaae99526e85231a76f8ba693a732ff6f" + integrity sha512-MgEHBpXnQo44Q43j8G0Bvp/Yi8LYbC8hxKrRFMgDEDZMmzDKZLgiyMWtW49B37ko+QupgZ3G5rtPUnOGe5ixLw== + "@types/ncp@2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@types/ncp/-/ncp-2.0.5.tgz#5c53b229a321946102a188b603306162137f4fb9" @@ -4828,6 +4985,13 @@ dependencies: "@types/node" "*" +"@types/ncp@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@types/ncp/-/ncp-2.0.8.tgz#938cb8bfd21da3b8cba33781e27a530eaea0e966" + integrity sha512-pLNWVLCVWBLVM4F2OPjjK6FWFtByFKD7LhHryF+MbVLws7ENj09mKxRFlhkGPOXfJuaBAG+2iADKJsZwnAbYDw== + dependencies: + "@types/node" "*" + "@types/node@*", "@types/node@>=10.0.0": version "20.6.4" resolved "https://registry.npmjs.org/@types/node/-/node-20.6.4.tgz#7882cb8b8adc3106c352dac9c02d4d3ebb95cf3e" @@ -4858,6 +5022,13 @@ resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz#9b0e3e8533fe5024ad32d6637eb9589988b6fdca" integrity sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A== +"@types/npmlog@4.1.6": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.6.tgz#792341665000209ee76997df8a16300fda6d77cb" + integrity sha512-0l3z16vnlJGl2Mi/rgJFrdwfLZ4jfNYgE6ZShEpjqhHuGTqdEzNles03NpYHwUMVYZa+Tj46UxKIEpE78lQ3DQ== + dependencies: + "@types/node" "*" + "@types/object-inspect@^1.8.0": version "1.8.2" resolved "https://registry.npmjs.org/@types/object-inspect/-/object-inspect-1.8.2.tgz#b97aecab62409c8ce753a9272fb9dc386bc80f83" @@ -4876,6 +5047,11 @@ "@types/node" "*" xmlbuilder ">=11.0.1" +"@types/pluralize@0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/pluralize/-/pluralize-0.0.33.tgz#8ad9018368c584d268667dd9acd5b3b806e8c82a" + integrity sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg== + "@types/prop-types@*": version "15.7.7" resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.7.tgz#f9361f7b87fd5d8188b2c998db0a1f47e9fb391a" @@ -4929,6 +5105,13 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/readdir-glob@*": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@types/readdir-glob/-/readdir-glob-1.1.5.tgz#21a4a98898fc606cb568ad815f2a0eedc24d412a" + integrity sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg== + dependencies: + "@types/node" "*" + "@types/recursive-readdir@^2.2.0": version "2.2.1" resolved "https://registry.npmjs.org/@types/recursive-readdir/-/recursive-readdir-2.2.1.tgz#330f5ec0b73e8aeaf267a6e056884e393f3543a3" @@ -4977,6 +5160,11 @@ dependencies: "@types/node" "*" +"@types/semver@7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" + integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== + "@types/semver@^7.3.12": version "7.5.2" resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.2.tgz#31f6eec1ed7ec23f4f05608d3a2d381df041f564" @@ -5011,6 +5199,11 @@ resolved "https://registry.npmjs.org/@types/shell-quote/-/shell-quote-1.7.1.tgz#2d059091214a02c29f003f591032172b2aff77e8" integrity sha512-SWZ2Nom1pkyXCDohRSrkSKvDh8QOG9RfAsrt5/NsPQC4UQJ55eG0qClA40I+Gkez4KTQ0uDUT8ELRXThf3J5jw== +"@types/shell-quote@1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@types/shell-quote/-/shell-quote-1.7.4.tgz#573b068217b7e0ff7f6e733cf076897549da2094" + integrity sha512-ifo7UZx1tZb4O/I7SjSOUJmPcXcXCMU7NQ/QkcYPGnDWZHX7ViGCPWyzZXk3ThD/WDxuJHr5Uieyb02Cyz7Yng== + "@types/shelljs@0.8.12": version "0.8.12" resolved "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.12.tgz#79dc9632af7d5ca1b5afb65a6bfc1422d79b5fa0" @@ -5043,6 +5236,11 @@ dependencies: "@types/node" "*" +"@types/supports-color@8.1.3": + version "8.1.3" + resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.3.tgz#b769cdce1d1bb1a3fa794e35b62c62acdf93c139" + integrity sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg== + "@types/supports-color@^8.1.0": version "8.1.1" resolved "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz#1b44b1b096479273adf7f93c75fc4ecc40a61ee4" @@ -5056,6 +5254,13 @@ "@types/node" "*" minipass "^4.0.0" +"@types/teen_process@2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/teen_process/-/teen_process-2.0.3.tgz#4bb74845d8fbfc0586e4832c2371dd8c6526ca69" + integrity sha512-JOBoIEwRLG0FPqLjFgPv4OiTWRIhxc+QInVjJfgw7IAMR2Dj1nzQB9GfWQMHjCwSH9piX7Do+RqHKISWeQ86Tg== + dependencies: + "@types/node" "*" + "@types/through@*": version "0.0.31" resolved "https://registry.npmjs.org/@types/through/-/through-0.0.31.tgz#eb410602641807e74a90c5e951f46686e75eed1c" @@ -5088,16 +5293,33 @@ resolved "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.37.tgz#2e45bf948a6a94391859a1b0682104ae3c13ba72" integrity sha512-4sOxS3ZWXC0uHJLYcWAaLMxTvjRX3hT96eF4YWUh1ovTaenvibaZOE5uXtIp4mksKMLRwo7YDiCBCw6vBiUPVg== +"@types/uuid@9.0.7": + version "9.0.7" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8" + integrity sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g== + "@types/verror@^1.10.3": version "1.10.6" resolved "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz#3e600c62d210c5826460858f84bcbb65805460bb" integrity sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ== +"@types/which@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/which/-/which-3.0.1.tgz#3feaf0cd752e5059c3fb2e9c5bffe584ae73f557" + integrity sha512-OJWjr4k8gS1HXuOnCmQbBrQez+xqt/zqfp5PhgbKtsmEFEuojAg23arr+TiTZZ1TORdUF9RKXb/WKEpT1dwgSg== + "@types/which@^1.3.2": version "1.3.2" resolved "https://registry.npmjs.org/@types/which/-/which-1.3.2.tgz#9c246fc0c93ded311c8512df2891fb41f6227fdf" integrity sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA== +"@types/ws@8.5.9": + version "8.5.9" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.9.tgz#384c489f99c83225a53f01ebc3eddf3b8e202a8c" + integrity sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg== + dependencies: + "@types/node" "*" + "@types/ws@^8.5.5": version "8.5.5" resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" @@ -6274,6 +6496,21 @@ appium-idb@^0.x: source-map-support "^0.5.5" teen_process "^1.11.0" +appium-ios-device@2.7.10: + version "2.7.10" + resolved "https://registry.yarnpkg.com/appium-ios-device/-/appium-ios-device-2.7.10.tgz#44e0961479d3573720d6acf88c36153e13a76e14" + integrity sha512-CeJSuzYxCvE0KlcdQ7vCWUORW7dBSmrs49qNY2QxKGFAMkmHJkOGmRehhicNPTImzKkYscy7HHJdtm435gah6w== + dependencies: + "@appium/support" "^4.0.0" + asyncbox "^3.0.0" + bluebird "^3.1.1" + bplist-creator "^0.x" + bplist-parser "^0.x" + lodash "^4.17.15" + semver "^7.0.0" + source-map-support "^0.x" + uuid "^9.0.0" + appium-ios-device@^0.10.0: version "0.10.5" resolved "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-0.10.5.tgz#6580a736981fee1138096fafc5e10f76f42ec1e4" @@ -6712,6 +6949,31 @@ archiver-utils@^3.0.4: normalize-path "^3.0.0" readable-stream "^3.6.0" +archiver-utils@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-4.0.1.tgz#66ad15256e69589a77f706c90c6dbcc1b2775d2a" + integrity sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg== + dependencies: + glob "^8.0.0" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash "^4.17.15" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +archiver@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-6.0.1.tgz#d56968d4c09df309435adb5a1bbfc370dae48133" + integrity sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ== + dependencies: + archiver-utils "^4.0.1" + async "^3.2.4" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.1.2" + tar-stream "^3.0.0" + zip-stream "^5.0.1" + archiver@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz#9db7819d4daf60aec10fe86b16cb9258ced66ea0" @@ -7028,6 +7290,15 @@ asyncbox@2.x, asyncbox@^2.0.2, asyncbox@^2.0.4, asyncbox@^2.3.0, asyncbox@^2.3.1 lodash "^4.17.4" source-map-support "^0.5.5" +asyncbox@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/asyncbox/-/asyncbox-3.0.0.tgz#70d096f46b89623c088513770722a1ef1da4be87" + integrity sha512-X7U0nedUMKV3nn9c4R0Zgvdvv6cw97tbDlHSZicq1snGPi/oX9DgGmFSURWtxDdnBWd3V0YviKhqAYAVvoWQ/A== + dependencies: + bluebird "^3.5.1" + lodash "^4.17.4" + source-map-support "^0.x" + asynciterator.prototype@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" @@ -7086,6 +7357,15 @@ axios@1.6.0, axios@^1.0.0: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.1.tgz#76550d644bf0a2d469a01f9244db6753208397d7" + integrity sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axios@^0.27.2, axios@^0.x: version "0.27.2" resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" @@ -7301,7 +7581,7 @@ base64-js@^1.1.2, base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64-stream@^1.0.0: +base64-stream@1.0.0, base64-stream@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/base64-stream/-/base64-stream-1.0.0.tgz#157ae00bc7888695e884e1fcc51c551fdfa8a1fa" integrity sha512-BQQZftaO48FcE1Kof9CmXMFaAdqkcNorgc8CxesZv9nMbbTF1EFyQe89UOuh//QMmdtfUDXyO8rgUalemL5ODA== @@ -7408,7 +7688,7 @@ bluebird-lst@^1.0.9: dependencies: bluebird "^3.5.5" -bluebird@3.x, bluebird@^3.1.1, bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.4, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@3.7.2, bluebird@3.x, bluebird@^3.1.1, bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.4, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -7481,7 +7761,7 @@ bplist-creator@0.1.0: dependencies: stream-buffers "2.2.x" -bplist-creator@^0: +bplist-creator@0.1.1, bplist-creator@^0, bplist-creator@^0.x: version "0.1.1" resolved "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.1.tgz#ef638af058a7021e10ebfd557ffd73d95e6799fc" integrity sha512-Ese7052fdWrxp/vqSJkydgx/1MdBnNOCV2XVfbmdGWD2H6EYza+Q4pyYSuVSnCUD22hfI/BFI4jHaC3NLXLlJQ== @@ -7495,7 +7775,7 @@ bplist-parser@0.3.1: dependencies: big-integer "1.6.x" -bplist-parser@^0.x: +bplist-parser@0.3.2, bplist-parser@^0.x: version "0.3.2" resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz#3ac79d67ec52c4c107893e0237eb787cbacbced7" integrity sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ== @@ -8265,7 +8545,7 @@ color-string@1.9.0: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-string@^1.6.0: +color-string@^1.6.0, color-string@^1.9.0: version "1.9.1" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== @@ -8286,6 +8566,14 @@ color@^3.1.3: color-convert "^1.9.3" color-string "^1.6.0" +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colord@^2.9.1: version "2.9.3" resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" @@ -8442,6 +8730,16 @@ compress-commons@^4.1.2: normalize-path "^3.0.0" readable-stream "^3.6.0" +compress-commons@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-5.0.1.tgz#e46723ebbab41b50309b27a0e0f6f3baed2d6590" + integrity sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag== + dependencies: + crc-32 "^1.2.0" + crc32-stream "^5.0.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + compressible@~2.0.16: version "2.0.18" resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -8766,6 +9064,14 @@ crc32-stream@^4.0.2: crc-32 "^1.2.0" readable-stream "^3.4.0" +crc32-stream@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-5.0.0.tgz#a97d3a802c8687f101c27cc17ca5253327354720" + integrity sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + crc@^3.4.4, crc@^3.8.0: version "3.8.0" resolved "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" @@ -9391,7 +9697,7 @@ detect-indent@^5.0.0: resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== -detect-libc@^2.0.0: +detect-libc@^2.0.0, detect-libc@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== @@ -10562,6 +10868,11 @@ exit@^0.1.2: resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expect-webdriverio@^3.0.0: version "3.6.0" resolved "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-3.6.0.tgz#529dd8a05cf952ed31c28541f8411f8d30182dc9" @@ -11068,6 +11379,15 @@ fork-ts-checker-webpack-plugin@^6.5.0: semver "^7.3.2" tapable "^1.0.0" +form-data@4.0.0, form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@^2.5.0: version "2.5.1" resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" @@ -11077,15 +11397,6 @@ form-data@^2.5.0: combined-stream "^1.0.6" mime-types "^2.1.12" -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@~2.3.2: version "2.3.3" resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -11393,6 +11704,11 @@ get-stream@6.0.0: resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== +get-stream@6.0.1, get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -11407,11 +11723,6 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -11499,6 +11810,11 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + glob-parent@5.1.2, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -11518,6 +11834,17 @@ glob-to-regexp@^0.4.1: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@10.3.10, glob@^10.3.7: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + glob@7.1.4: version "7.1.4" resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" @@ -11565,17 +11892,6 @@ glob@^10.2.2: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" -glob@^10.3.7: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - glob@^6.0.1: version "6.0.4" resolved "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" @@ -11599,7 +11915,7 @@ glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.1, glob@^8.0.3: +glob@^8.0.0, glob@^8.0.1, glob@^8.0.3: version "8.1.0" resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -13095,6 +13411,11 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + isobject@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" @@ -13854,7 +14175,7 @@ jsesc@~0.5.0: resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -jsftp@^2.1.2: +jsftp@2.1.3, jsftp@^2.1.2: version "2.1.3" resolved "https://registry.npmjs.org/jsftp/-/jsftp-2.1.3.tgz#3a0936b58d170441a0e74f27d34b53dda8dea9c1" integrity sha512-r79EVB8jaNAZbq8hvanL8e8JGu2ZNr2bXdHC4ZdQhRImpSPpnWwm5DYVzQ5QxJmtGtKhNNuvqGgbNaFl604fEQ== @@ -14050,6 +14371,11 @@ kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-4.1.0.tgz#5df608067d8cb62bbfb24374f8e5d956323338f3" + integrity sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw== + klaw@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" @@ -14433,7 +14759,7 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" -lockfile@^1.0.4: +lockfile@1.0.4, lockfile@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== @@ -14555,7 +14881,7 @@ lodash.zip@^4.2.0: resolved "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== -lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.17.9, lodash@^4.2.1, lodash@^4.6.1, lodash@~4.17.21: +lodash@4.17.21, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.17.9, lodash@^4.2.1, lodash@^4.6.1, lodash@~4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -15633,7 +15959,7 @@ minimist@0.0.8: resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q== -minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -15746,7 +16072,7 @@ mitt@3.0.1: resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== -mkdirp-classic@^0.5.2: +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== @@ -15858,7 +16184,7 @@ moment-timezone@^0.5.26, moment-timezone@^0.x: dependencies: moment "^2.29.4" -moment@^2.19.3, moment@^2.24.0, moment@^2.29.4, moment@~2.29.3: +moment@2.29.4, moment@^2.19.3, moment@^2.24.0, moment@^2.29.4, moment@~2.29.3: version "2.29.4" resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== @@ -15923,7 +16249,7 @@ mute-stream@0.0.8, mute-stream@~0.0.4: resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -mv@^2.1.1, mv@~2: +mv@2.1.1, mv@^2.1.1, mv@~2: version "2.1.1" resolved "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" integrity sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg== @@ -15961,6 +16287,11 @@ nanoid@^3.3.4, nanoid@^3.3.6: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -16061,6 +16392,13 @@ nocache@^3.0.1: resolved "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz#5b37a56ec6e09fc7d401dceaed2eab40c8bfdf79" integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== +node-abi@^3.3.0: + version "3.51.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.51.0.tgz#970bf595ef5a26a271307f8a4befa02823d4e87d" + integrity sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA== + dependencies: + semver "^7.3.5" + node-abort-controller@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" @@ -16076,6 +16414,11 @@ node-addon-api@^3.2.1: resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + node-dir@^0.1.17: version "0.1.17" resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -16431,6 +16774,16 @@ npmlog@6.0.2, npmlog@^6.0.0, npmlog@^6.0.2: gauge "^4.0.3" set-blocking "^2.0.0" +npmlog@7.0.1, npmlog@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" + integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== + dependencies: + are-we-there-yet "^4.0.0" + console-control-strings "^1.1.0" + gauge "^5.0.0" + set-blocking "^2.0.0" + npmlog@^5.0.0, npmlog@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" @@ -16441,16 +16794,6 @@ npmlog@^5.0.0, npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -npmlog@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" - integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== - dependencies: - are-we-there-yet "^4.0.0" - console-control-strings "^1.1.0" - gauge "^5.0.0" - set-blocking "^2.0.0" - nth-check@^2.0.1: version "2.1.1" resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" @@ -16685,6 +17028,11 @@ open@^8.0.9, open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" +opencv-bindings@4.5.5: + version "4.5.5" + resolved "https://registry.yarnpkg.com/opencv-bindings/-/opencv-bindings-4.5.5.tgz#0c1457238ff97ac9afd59ab04c5009d79b48a3af" + integrity sha512-FdYE9uqnoPKbAkZFEOpIh6RTtJIz1lz+W27xPCo1Ov6+d0OOgg+Hm9OT2MIGIG8V1Dp3fWlLvi7SIjDOpqO2XA== + opener@^1.5.1: version "1.5.2" resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -17331,6 +17679,13 @@ pkg-dir@4.2.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-dir@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -17352,7 +17707,7 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -plist@^3.0.1, plist@^3.0.4, plist@^3.0.5, plist@^3.0.6: +plist@3.1.0, plist@^3.0.1, plist@^3.0.4, plist@^3.0.5, plist@^3.0.6: version "3.1.0" resolved "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== @@ -17361,7 +17716,7 @@ plist@^3.0.1, plist@^3.0.4, plist@^3.0.5, plist@^3.0.6: base64-js "^1.5.1" xmlbuilder "^15.1.1" -pluralize@^8.0.0: +pluralize@8.0.0, pluralize@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== @@ -17977,6 +18332,24 @@ postcss@^8.1.7, postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4 picocolors "^1.0.0" source-map-js "^1.0.2" +prebuild-install@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + precinct@^8.1.0: version "8.3.1" resolved "https://registry.npmjs.org/precinct/-/precinct-8.3.1.tgz#94b99b623df144eed1ce40e0801c86078466f0dc" @@ -18857,6 +19230,16 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" +read-pkg@5.2.0, read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -18875,16 +19258,6 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - read@1, read@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" @@ -19554,7 +19927,7 @@ safe-stable-stringify@^2.3.1: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sanitize-filename@^1.6.1, sanitize-filename@^1.6.3: +sanitize-filename@1.6.3, sanitize-filename@^1.6.1, sanitize-filename@^1.6.3: version "1.6.3" resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== @@ -19898,6 +20271,20 @@ shared-preferences-builder@^0.x: lodash "^4.17.4" xmlbuilder "^9.0.1" +sharp@0.32.6: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== + dependencies: + color "^4.2.3" + detect-libc "^2.0.2" + node-addon-api "^6.1.0" + prebuild-install "^7.1.1" + semver "^7.5.4" + simple-get "^4.0.1" + tar-fs "^3.0.4" + tunnel-agent "^0.6.0" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -19995,6 +20382,15 @@ simple-get@^3.0.3: once "^1.3.1" simple-concat "^1.0.0" +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-git@^3.16.0: version "3.20.0" resolved "https://registry.npmjs.org/simple-git/-/simple-git-3.20.0.tgz#ff9c3f736d6b2bf0e3510209569d206aac84833d" @@ -20171,7 +20567,7 @@ source-map-loader@4.0.0: iconv-lite "^0.6.3" source-map-js "^1.0.2" -"source-map-support@0.3.2 - 1.0.0", source-map-support@^0.5.12, source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.3, source-map-support@^0.5.5, source-map-support@^0.5.9, source-map-support@^0.x, source-map-support@~0.5.20: +"source-map-support@0.3.2 - 1.0.0", source-map-support@0.5.21, source-map-support@^0.5.12, source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.3, source-map-support@^0.5.5, source-map-support@^0.5.9, source-map-support@^0.x, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -20854,7 +21250,7 @@ tar-fs@2.1.1, tar-fs@^2.0.0: pump "^3.0.0" tar-stream "^2.1.4" -tar-fs@3.0.4: +tar-fs@3.0.4, tar-fs@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== @@ -20883,7 +21279,7 @@ tar-stream@^2.1.0, tar-stream@^2.1.4, tar-stream@^2.2.0, tar-stream@~2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar-stream@^3.1.5: +tar-stream@^3.0.0, tar-stream@^3.1.5: version "3.1.6" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== @@ -20949,6 +21345,16 @@ teen_process@1.x, teen_process@^1.11.0, teen_process@^1.14.0, teen_process@^1.14 source-map-support "^0.5.3" which "^2.0.2" +teen_process@2.0.84: + version "2.0.84" + resolved "https://registry.yarnpkg.com/teen_process/-/teen_process-2.0.84.tgz#37b51997ccac921bae115b694bf5e4c17963679c" + integrity sha512-pedJy3y/Bp+dzq4CTNvaW4pOY74YLDiGaaiLfeCRgzLZwn2BR2x4WKfcUpS/oG6gYdrEbXxMDZhI1Xbt7OD33g== + dependencies: + bluebird "3.7.2" + lodash "4.17.21" + shell-quote "1.8.1" + source-map-support "0.5.21" + telnet-client@1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/telnet-client/-/telnet-client-1.2.8.tgz#946c0dadc8daa3f19bb40a3e898cb870403a4ca4" @@ -21365,6 +21771,11 @@ type-detect@4.0.8: resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== + type-fest@^0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" @@ -21783,6 +22194,11 @@ uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.2: resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@9.0.1, uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -22358,6 +22774,13 @@ which@2.0.2, which@^2.0.0, which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" +which@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -22982,7 +23405,7 @@ yarn-install@^1.0.0: chalk "^1.1.3" cross-spawn "^4.0.2" -yauzl@^2.10.0, yauzl@^2.7.0: +yauzl@2.10.0, yauzl@^2.10.0, yauzl@^2.7.0: version "2.10.0" resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== @@ -23018,6 +23441,15 @@ zip-stream@^4.1.0: compress-commons "^4.1.2" readable-stream "^3.6.0" +zip-stream@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-5.0.1.tgz#cf3293bba121cad98be2ec7f05991d81d9f18134" + integrity sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA== + dependencies: + archiver-utils "^4.0.1" + compress-commons "^5.0.1" + readable-stream "^3.6.0" + zod-to-json-schema@3.21.4: version "3.21.4" resolved "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.21.4.tgz#de97c5b6d4a25e9d444618486cb55c0c7fb949fd" From eb9656a301b48946acdb58cd00372d3b60fb0ed8 Mon Sep 17 00:00:00 2001 From: Mihai Blaga Date: Thu, 30 Nov 2023 18:56:43 +0100 Subject: [PATCH 2/8] removed cl, fix tests --- __mocks__/appium-ios-device.ts | 9 ++++++ packages/sdk-apple/src/__mocks__/data.ts | 23 --------------- .../sdk-apple/src/__tests__/index.test.ts | 29 ++++++++++--------- packages/sdk-apple/src/deviceManager.ts | 2 -- 4 files changed, 25 insertions(+), 38 deletions(-) create mode 100644 __mocks__/appium-ios-device.ts diff --git a/__mocks__/appium-ios-device.ts b/__mocks__/appium-ios-device.ts new file mode 100644 index 0000000000..0ae3e6e757 --- /dev/null +++ b/__mocks__/appium-ios-device.ts @@ -0,0 +1,9 @@ +// __mocks__/appium-ios-device.ts +const aid: any = { + utilities: { + getConnectedDevices: jest.fn(() => Promise.resolve(['1234'])), + getDeviceInfo: jest.fn(() => Promise.resolve({ name: 'iPhone 14 Pro Max', isAvailable: true })), + }, +}; + +module.exports = aid; diff --git a/packages/sdk-apple/src/__mocks__/data.ts b/packages/sdk-apple/src/__mocks__/data.ts index 79f0bcfccf..db116f1017 100644 --- a/packages/sdk-apple/src/__mocks__/data.ts +++ b/packages/sdk-apple/src/__mocks__/data.ts @@ -127,26 +127,3 @@ export const simctlSimJson = { ], } } - -export const xctraceDevices = ` -== Devices == -Mihai’s Jacket (741EF5F2-EC1A-352D-457F-2B8E5EA6C10A) - -== Simulators == -Apple TV Simulator (16.0) (9B1DE6B2-F79C-42FE-9924-B7B398B33419) -Apple TV Simulator (16.1) (741EF5F2-ACA2-440D-ABB4-99B10C0FFFAC) -Apple TV 4K (2nd generation) Simulator (16.0) (80DCD18A-92AB-4D04-BC23-670FA763091D) -Apple TV 4K (3rd generation) Simulator (16.1) (B6E2EF0C-EDBF-4FA8-8954-CFBEE7120E17) -Apple TV 4K (3rd generation) (at 1080p) Simulator (16.1) (501C0BBC-26B6-4642-B3FE-43B128FF6F4A) -Apple TV 4K (at 1080p) (2nd generation) Simulator (16.0) (4D5B6984-4B61-47F6-BFE2-4840E092A57B) -iPad (10th generation) Simulator (16.2) (ADE58171-412D-40B2-A02F-C8D9F4486776) -iPad Air (5th generation) Simulator (16.2) (E6B35619-9082-4F5C-AADE-F3D441A4182B) -iPad Pro (11-inch) (4th generation) Simulator (16.2) (CFEAB0D2-0E45-4287-ADB1-DEDBF690C13D) -iPad Pro (12.9-inch) (6th generation) Simulator (16.2) (6E1F3D1F-6B37-4415-B487-5C15E82292C7) -iPad mini (6th generation) Simulator (16.2) (88761714-71CC-4439-BED3-C4A9933A3C62) -iPhone 14 Simulator (16.2) (0BEDB188-352D-4215-8471-E9E27C670486) -iPhone 14 Plus Simulator (16.2) (F48330F4-FAF4-4DDE-B011-1B865B80403D) -iPhone 14 Pro Simulator (16.2) (5E37904F-F486-457F-BC42-6DA72F5435B6) -iPhone 14 Pro Max Simulator (16.2) (6AE9AC96-1150-4EF6-996B-BEBD0914C6A5) -iPhone SE (3rd generation) Simulator (16.2) (A3CE2617-4071-4759-BC87-2F687FEA50A7) -` diff --git a/packages/sdk-apple/src/__tests__/index.test.ts b/packages/sdk-apple/src/__tests__/index.test.ts index bdc3935143..022ea68316 100644 --- a/packages/sdk-apple/src/__tests__/index.test.ts +++ b/packages/sdk-apple/src/__tests__/index.test.ts @@ -1,13 +1,22 @@ import { createRnvApi, createRnvContext } from '@rnv/core'; import type { PromptParams } from "@rnv/core"; import { getIosDeviceToRunOn } from '../runner'; -import { simctlSimJson, xctraceDevices } from '../__mocks__/data'; +import { simctlSimJson } from '../__mocks__/data'; beforeEach(() => { createRnvContext({ program: { platform: 'ios' } }); createRnvApi(); }); +// jest.mock('appium-ios-device', () => { +// return { +// utilities: { +// getConnectedDevices: jest.fn(() => Promise.resolve(['1234'])), +// getDeviceInfo: jest.fn(() => Promise.resolve({ name: 'iPhone 14 Pro Max', isAvailable: true })), +// }, +// }; +// }); + const { executeAsync, inquirerPrompt, getContext } = require('@rnv/core'); afterEach(() => { @@ -21,9 +30,7 @@ describe('getIosDeviceToRunOn', () => { // configureRuntimeDefaults isn't called so setting it manually ctx.runtime.isTargetTrue = true; - executeAsync - .mockReturnValueOnce(Promise.resolve(xctraceDevices)) - .mockReturnValueOnce(Promise.resolve(JSON.stringify(simctlSimJson))); + executeAsync.mockReturnValueOnce(Promise.resolve(JSON.stringify(simctlSimJson))); inquirerPrompt.mockImplementation(async ({ type, name, choices }: PromptParams) => { if (type === 'confirm') { @@ -40,16 +47,14 @@ describe('getIosDeviceToRunOn', () => { }); const deviceArgs = await getIosDeviceToRunOn(ctx); - expect(executeAsync).toHaveBeenCalledTimes(2); + expect(executeAsync).toHaveBeenCalledTimes(1); expect(deviceArgs).toBe('--simulator iPhone\\ 14'); }); it('should return a device to run on without pick', async () => { const ctx = getContext(); - executeAsync - .mockReturnValueOnce(Promise.resolve(xctraceDevices)) - .mockReturnValueOnce(Promise.resolve(JSON.stringify(simctlSimJson))); + executeAsync.mockReturnValueOnce(Promise.resolve(JSON.stringify(simctlSimJson))); inquirerPrompt.mockImplementation(async ({ type, name, choices }: PromptParams) => { if (type === 'confirm') { @@ -66,7 +71,7 @@ describe('getIosDeviceToRunOn', () => { }); const deviceArgs = await getIosDeviceToRunOn(ctx); - expect(executeAsync).toHaveBeenCalledTimes(2); + expect(executeAsync).toHaveBeenCalledTimes(1); expect(deviceArgs).toBe('--simulator iPhone\\ SE\\ (3rd\\ generation)'); }); @@ -76,12 +81,10 @@ describe('getIosDeviceToRunOn', () => { // configureRuntimeDefaults isn't called so setting it manually ctx.runtime.target = 'iPhone 14 Pro Max'; - executeAsync - .mockReturnValueOnce(Promise.resolve(xctraceDevices)) - .mockReturnValueOnce(Promise.resolve(JSON.stringify(simctlSimJson))); + executeAsync.mockReturnValueOnce(Promise.resolve(JSON.stringify(simctlSimJson))); const deviceArgs = await getIosDeviceToRunOn(ctx); - expect(executeAsync).toHaveBeenCalledTimes(2); + expect(executeAsync).toHaveBeenCalledTimes(1); expect(deviceArgs).toContain('--simulator'); // expect(deviceArgs).toBe('--simulator iPhone\\ 14\\ Plus'); // FIXME: This is failing }); diff --git a/packages/sdk-apple/src/deviceManager.ts b/packages/sdk-apple/src/deviceManager.ts index a5d1d0763b..67b55c7ded 100644 --- a/packages/sdk-apple/src/deviceManager.ts +++ b/packages/sdk-apple/src/deviceManager.ts @@ -53,7 +53,6 @@ export const getAppleDevices = async (c: RnvContext, ignoreDevices?: boolean, ig const simulatorsArr = _parseIOSDevicesList(availableSims, platform, ignoreDevices, ignoreSimulators); let allDevices = [...devicesArr, ...simulatorsArr]; - console.log('allDevices', allDevices); if (!skipTargetCheck) { // filter watches @@ -67,7 +66,6 @@ export const getAppleDevices = async (c: RnvContext, ignoreDevices?: boolean, ig return false; }); } - console.log('allDevices', allDevices); return allDevices; }; From a150746fedfe9f6285d14e572b8bb3727b07c162 Mon Sep 17 00:00:00 2001 From: Mihai Blaga Date: Thu, 30 Nov 2023 19:00:22 +0100 Subject: [PATCH 3/8] cleanup --- packages/sdk-apple/src/__tests__/index.test.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/sdk-apple/src/__tests__/index.test.ts b/packages/sdk-apple/src/__tests__/index.test.ts index 022ea68316..ecd5289068 100644 --- a/packages/sdk-apple/src/__tests__/index.test.ts +++ b/packages/sdk-apple/src/__tests__/index.test.ts @@ -8,15 +8,6 @@ beforeEach(() => { createRnvApi(); }); -// jest.mock('appium-ios-device', () => { -// return { -// utilities: { -// getConnectedDevices: jest.fn(() => Promise.resolve(['1234'])), -// getDeviceInfo: jest.fn(() => Promise.resolve({ name: 'iPhone 14 Pro Max', isAvailable: true })), -// }, -// }; -// }); - const { executeAsync, inquirerPrompt, getContext } = require('@rnv/core'); afterEach(() => { From 4efea1a9196c08d0cb44e85fbe72cdbae61a4b0a Mon Sep 17 00:00:00 2001 From: Mihai Blaga Date: Tue, 5 Dec 2023 22:03:16 +0100 Subject: [PATCH 4/8] added appium-ios-device typings --- packages/sdk-apple/types.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sdk-apple/types.d.ts b/packages/sdk-apple/types.d.ts index e69de29bb2..b42222fde8 100644 --- a/packages/sdk-apple/types.d.ts +++ b/packages/sdk-apple/types.d.ts @@ -0,0 +1 @@ +declare module 'appium-ios-device' \ No newline at end of file From 7e96b987af722bdccc12f375a9451ec81c309c1e Mon Sep 17 00:00:00 2001 From: Mihai Blaga Date: Tue, 5 Dec 2023 22:14:27 +0100 Subject: [PATCH 5/8] fix ts, added back appium-ios-device --- packages/sdk-apple/package.json | 1 + packages/sdk-tizen/src/__tests__/runner.test.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/sdk-apple/package.json b/packages/sdk-apple/package.json index 00c45d7b67..69f29a3bab 100644 --- a/packages/sdk-apple/package.json +++ b/packages/sdk-apple/package.json @@ -31,6 +31,7 @@ }, "dependencies": { "@rnv/sdk-react-native": "1.0.0-rc.1", + "appium-ios-device": "2.7.10", "compare-versions": "3.6.0", "ios-mobileprovision-finder": "1.1.0", "xcode": "2.1.0" diff --git a/packages/sdk-tizen/src/__tests__/runner.test.ts b/packages/sdk-tizen/src/__tests__/runner.test.ts index 9d2f2afe97..40e7912019 100644 --- a/packages/sdk-tizen/src/__tests__/runner.test.ts +++ b/packages/sdk-tizen/src/__tests__/runner.test.ts @@ -1,4 +1,4 @@ -import { createRnvApi, createRnvContext, execCLI, getContext } from '@rnv/core'; +import { createRnvApi, createRnvContext, getContext } from '@rnv/core'; import { configureTizenGlobal, checkTizenStudioCert } from '../runner'; import path from 'path'; From 071eebb5dabfb9133d0453b6576ff9bb85069248 Mon Sep 17 00:00:00 2001 From: Mihai Blaga Date: Thu, 7 Dec 2023 10:19:32 +0100 Subject: [PATCH 6/8] don't filter devices on -t, remove -d device support --- packages/app-harness/package.json | 2 +- packages/sdk-apple/src/runner.ts | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/app-harness/package.json b/packages/app-harness/package.json index 038bd3dc90..803ef3bc27 100644 --- a/packages/app-harness/package.json +++ b/packages/app-harness/package.json @@ -62,4 +62,4 @@ "rnv": "1.0.0-rc.1" }, "private": true -} \ No newline at end of file +} diff --git a/packages/sdk-apple/src/runner.ts b/packages/sdk-apple/src/runner.ts index e5438e9341..8cb4e380d5 100644 --- a/packages/sdk-apple/src/runner.ts +++ b/packages/sdk-apple/src/runner.ts @@ -118,7 +118,7 @@ const runCocoaPods = async (c: Context) => { requiredPodPermissions = Array.from(new Set(requiredPodPermissions)); } - // new arch support + // new arch support const newArchEnabled = getConfigProp(c, c.platform, 'newArchEnabled', false); const env: any = { @@ -204,11 +204,11 @@ export const getIosDeviceToRunOn = async (c: Context) => { const { device } = c.program; let devicesArr: AppleDevice[] = []; - if (device === true) { - devicesArr = await getAppleDevices(c, false, true); - } else { - devicesArr = await getAppleDevices(c, true, false); - } + // if (device === true) { + devicesArr = await getAppleDevices(c, false, false); + // } else { + // devicesArr = await getAppleDevices(c, true, false); + // } let p = ''; @@ -266,8 +266,6 @@ export const getIosDeviceToRunOn = async (c: Context) => { } else { return Promise.reject(`No ${c.platform} devices connected!`); } - } else if (device) { - p = `--device ${device}`; } else if (c.runtime.isTargetTrue) { const devices = devicesArr.map((v) => ({ name: `${v.name} | ${v.icon} | v: ${chalk().green(v.version)} | udid: ${chalk().grey(v.udid)}${ @@ -288,7 +286,7 @@ export const getIosDeviceToRunOn = async (c: Context) => { } } else if (c.runtime.target) { // check if the default sim is available - const desiredSim = devicesArr.find((d) => d.name === c.runtime.target && !d.isDevice); + const desiredSim = devicesArr.find((d) => d.name === c.runtime.target); if (!desiredSim) { const { sim } = await inquirerPrompt({ name: 'sim', From e511a4afeeb62aab33aad136ad72e4133148d671 Mon Sep 17 00:00:00 2001 From: Mihai Blaga Date: Thu, 7 Dec 2023 10:46:29 +0100 Subject: [PATCH 7/8] revert to previous version --- packages/sdk-apple/src/runner.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/sdk-apple/src/runner.ts b/packages/sdk-apple/src/runner.ts index 8cb4e380d5..bc2269d57c 100644 --- a/packages/sdk-apple/src/runner.ts +++ b/packages/sdk-apple/src/runner.ts @@ -204,11 +204,11 @@ export const getIosDeviceToRunOn = async (c: Context) => { const { device } = c.program; let devicesArr: AppleDevice[] = []; - // if (device === true) { - devicesArr = await getAppleDevices(c, false, false); - // } else { - // devicesArr = await getAppleDevices(c, true, false); - // } + if (device === true) { + devicesArr = await getAppleDevices(c, false, true); + } else { + devicesArr = await getAppleDevices(c, true, false); + } let p = ''; @@ -266,6 +266,8 @@ export const getIosDeviceToRunOn = async (c: Context) => { } else { return Promise.reject(`No ${c.platform} devices connected!`); } + } else if (device) { + p = `--device ${device}`; } else if (c.runtime.isTargetTrue) { const devices = devicesArr.map((v) => ({ name: `${v.name} | ${v.icon} | v: ${chalk().green(v.version)} | udid: ${chalk().grey(v.udid)}${ @@ -286,7 +288,7 @@ export const getIosDeviceToRunOn = async (c: Context) => { } } else if (c.runtime.target) { // check if the default sim is available - const desiredSim = devicesArr.find((d) => d.name === c.runtime.target); + const desiredSim = devicesArr.find((d) => d.name === c.runtime.target && !d.isDevice); if (!desiredSim) { const { sim } = await inquirerPrompt({ name: 'sim', From dcd977d2f068e23218ed7feed33411a483ae9a4d Mon Sep 17 00:00:00 2001 From: Mihai Blaga Date: Thu, 7 Dec 2023 11:13:07 +0100 Subject: [PATCH 8/8] fix ipad detection --- packages/sdk-apple/src/deviceManager.ts | 20 +++++++++++--------- packages/sdk-apple/src/types.ts | 5 +++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/sdk-apple/src/deviceManager.ts b/packages/sdk-apple/src/deviceManager.ts index 67b55c7ded..7884653951 100644 --- a/packages/sdk-apple/src/deviceManager.ts +++ b/packages/sdk-apple/src/deviceManager.ts @@ -25,13 +25,15 @@ export const getAppleDevices = async (c: RnvContext, ignoreDevices?: boolean, ig } = c; const connectedDevicesIds = await utilities.getConnectedDevices(); - const connectedDevicesArray = await Promise.all(connectedDevicesIds.map(async (id: string) => { - const info = await utilities.getDeviceInfo(id); - return { - udid: id, - ...info - } - })); + const connectedDevicesArray = await Promise.all( + connectedDevicesIds.map(async (id: string) => { + const info = await utilities.getDeviceInfo(id); + return { + udid: id, + ...info, + }; + }) + ); const res = await executeAsync('xcrun simctl list --json'); const simctl = JSON.parse(res.toString()); const availableSims: Array = []; @@ -77,10 +79,10 @@ const _parseNewIOSDevicesList = ( const devices: Array = []; if (ignoreDevices) return devices; const decideIcon = (device: AppiumAppleDevice) => { - const { ProductName } = device; + const { ProductName, DeviceClass } = device; if (ProductName?.includes('iPhone') || ProductName?.includes('iPad') || ProductName?.includes('iPod')) { let icon = 'Phone 📱'; - if (ProductName.includes('iPad')) icon = 'Tablet 💊'; + if (DeviceClass?.includes('iPad')) icon = 'Tablet 💊'; return icon; } if (ProductName?.includes('TV') && !ProductName?.includes('iPhone') && !ProductName?.includes('iPad')) { diff --git a/packages/sdk-apple/src/types.ts b/packages/sdk-apple/src/types.ts index 2146297f99..80e0ff7197 100644 --- a/packages/sdk-apple/src/types.ts +++ b/packages/sdk-apple/src/types.ts @@ -18,8 +18,9 @@ export type AppiumAppleDevice = { ProductName: string; ProductType: string; ProductVersion: string; - SupportedDeviceFamilies: number[] -} + SupportedDeviceFamilies: number[]; + DeviceClass?: string; +}; export type Payload = { pluginConfigiOS: {