@mcesystems/apple-kit 1.0.90 → 1.0.91

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/dist/index.js CHANGED
@@ -1219,24 +1219,24 @@ var import_debug = __toESM2(require_src());
1219
1219
  function createLoggers(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
1220
1220
  const logInfo8 = (0, import_debug.default)(`${namespace}:info`);
1221
1221
  const logTask5 = (0, import_debug.default)(`${namespace}:task`);
1222
- const logError3 = (0, import_debug.default)(`${namespace}:error`);
1222
+ const logError4 = (0, import_debug.default)(`${namespace}:error`);
1223
1223
  const logDetail3 = (0, import_debug.default)(`${namespace}:detail`);
1224
1224
  const logDebug = (0, import_debug.default)(`${namespace}:debug`);
1225
- const logWarning3 = (0, import_debug.default)(`${namespace}:warning`);
1225
+ const logWarning2 = (0, import_debug.default)(`${namespace}:warning`);
1226
1226
  const logColor = (0, import_debug.default)(`${namespace}:color`);
1227
1227
  logInfo8.color = "19";
1228
1228
  logTask5.color = "25";
1229
- logError3.color = "1";
1229
+ logError4.color = "1";
1230
1230
  logDetail3.color = "199";
1231
- logWarning3.color = "186";
1231
+ logWarning2.color = "186";
1232
1232
  logDebug.color = "211";
1233
1233
  logColor.enabled = true;
1234
1234
  function setNamespace7(namespace2) {
1235
1235
  logInfo8.namespace = `${namespace2}:info`;
1236
1236
  logTask5.namespace = `${namespace2}:task`;
1237
- logError3.namespace = `${namespace2}:error`;
1237
+ logError4.namespace = `${namespace2}:error`;
1238
1238
  logDetail3.namespace = `${namespace2}:detail`;
1239
- logWarning3.namespace = `${namespace2}:warning`;
1239
+ logWarning2.namespace = `${namespace2}:warning`;
1240
1240
  logDebug.namespace = `${namespace2}:debug`;
1241
1241
  }
1242
1242
  function setLogLevel(level) {
@@ -1244,24 +1244,24 @@ function createLoggers(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
1244
1244
  case "info":
1245
1245
  logInfo8.enabled = true;
1246
1246
  logTask5.enabled = true;
1247
- logError3.enabled = true;
1248
- logWarning3.enabled = true;
1247
+ logError4.enabled = true;
1248
+ logWarning2.enabled = true;
1249
1249
  logDetail3.enabled = false;
1250
1250
  logDebug.enabled = false;
1251
1251
  break;
1252
1252
  case "debug":
1253
1253
  logInfo8.enabled = true;
1254
1254
  logTask5.enabled = true;
1255
- logError3.enabled = true;
1256
- logWarning3.enabled = true;
1255
+ logError4.enabled = true;
1256
+ logWarning2.enabled = true;
1257
1257
  logDetail3.enabled = true;
1258
1258
  logDebug.enabled = true;
1259
1259
  break;
1260
1260
  case "none":
1261
1261
  logInfo8.enabled = false;
1262
1262
  logTask5.enabled = false;
1263
- logError3.enabled = false;
1264
- logWarning3.enabled = false;
1263
+ logError4.enabled = false;
1264
+ logWarning2.enabled = false;
1265
1265
  logDetail3.enabled = false;
1266
1266
  logDebug.enabled = false;
1267
1267
  break;
@@ -1277,13 +1277,13 @@ function createLoggers(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
1277
1277
  logTask5.color = color;
1278
1278
  break;
1279
1279
  case "error":
1280
- logError3.color = color;
1280
+ logError4.color = color;
1281
1281
  break;
1282
1282
  case "detail":
1283
1283
  logDetail3.color = color;
1284
1284
  break;
1285
1285
  case "warning":
1286
- logWarning3.color = color;
1286
+ logWarning2.color = color;
1287
1287
  break;
1288
1288
  case "debug":
1289
1289
  logDebug.color = color;
@@ -1338,7 +1338,7 @@ ${" ".repeat(padding)}${"=".repeat(80)}`;
1338
1338
  function logHeader(title) {
1339
1339
  logInfo8(`${header(title, 2)}`);
1340
1340
  }
1341
- function logDataObject3(title, ...args) {
1341
+ function logDataObject2(title, ...args) {
1342
1342
  const stack = new Error().stack?.split("\n")[2] || "";
1343
1343
  const stackMatch = stack.match(/\((.*):(\d+):(\d+)\)$/) || stack.match(/at (.*):(\d+):(\d+)$/);
1344
1344
  let callerDetails = "";
@@ -1355,29 +1355,29 @@ ${"=".repeat(80)}`);
1355
1355
  }
1356
1356
  function logErrorObject(error, extraDetails) {
1357
1357
  if (error instanceof Error) {
1358
- logError3(`${extraDetails ? header(extraDetails, 1) : header(error.message, 1)}
1358
+ logError4(`${extraDetails ? header(extraDetails, 1) : header(error.message, 1)}
1359
1359
  Error Message:
1360
1360
  ${error.message}
1361
1361
  Error Stack:
1362
1362
  ${error.stack}
1363
1363
  ${"=".repeat(80)}`);
1364
1364
  } else {
1365
- logError3(`${extraDetails ? header(extraDetails, 1) : header(String(error), 1)}
1365
+ logError4(`${extraDetails ? header(extraDetails, 1) : header(String(error), 1)}
1366
1366
  ${"=".repeat(80)}`);
1367
1367
  }
1368
1368
  }
1369
1369
  return {
1370
1370
  logInfo: logInfo8,
1371
1371
  logTask: logTask5,
1372
- logError: logError3,
1372
+ logError: logError4,
1373
1373
  logDetail: logDetail3,
1374
1374
  logDebug,
1375
- logWarning: logWarning3,
1375
+ logWarning: logWarning2,
1376
1376
  logColor,
1377
1377
  setColors,
1378
1378
  printColors,
1379
1379
  logHeader,
1380
- logDataObject: logDataObject3,
1380
+ logDataObject: logDataObject2,
1381
1381
  logErrorObject,
1382
1382
  setLogLevel,
1383
1383
  setNamespace: setNamespace7
@@ -1646,13 +1646,29 @@ var DeviceActions = class {
1646
1646
  const startTime = Date.now();
1647
1647
  while (Date.now() - startTime < timeout2) {
1648
1648
  throwIfAborted(signal);
1649
- await new Promise((resolve2) => setTimeout(resolve2, pollInterval));
1650
- if (await this.pair()) {
1649
+ if (await this.isPairedViaInfo()) {
1651
1650
  return true;
1652
1651
  }
1652
+ await new Promise((resolve2) => setTimeout(resolve2, pollInterval));
1653
1653
  }
1654
1654
  throw new Error(`Timeout waiting for device pairing after ${timeout2}ms`);
1655
1655
  }
1656
+ /**
1657
+ * Returns true if device is paired and trusted.
1658
+ * Uses info() which only succeeds when full pairing is established (user has accepted Trust).
1659
+ * Prefer this over lockdown file check since file location/timing can vary by platform.
1660
+ */
1661
+ async isPairedViaInfo() {
1662
+ try {
1663
+ const result = await this.iosClient.info();
1664
+ if (result.exitCode === 0 && result.output[0]) {
1665
+ const info = result.output[0];
1666
+ return info?.ActivationState !== void 0;
1667
+ }
1668
+ } catch {
1669
+ }
1670
+ return false;
1671
+ }
1656
1672
  async isWifiConnected(timeoutMs = 5e3) {
1657
1673
  logInfo(`Checking WiFi connection for device ${this.udid}`);
1658
1674
  const combined = (out) => `${out.stdout}
@@ -36999,13 +37015,13 @@ function createLoggers2(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
36999
37015
  const logError22 = (0, import_debug2.default)(`${namespace}:error`);
37000
37016
  const logDetail3 = (0, import_debug2.default)(`${namespace}:detail`);
37001
37017
  const logDebug = (0, import_debug2.default)(`${namespace}:debug`);
37002
- const logWarning22 = (0, import_debug2.default)(`${namespace}:warning`);
37018
+ const logWarning2 = (0, import_debug2.default)(`${namespace}:warning`);
37003
37019
  const logColor = (0, import_debug2.default)(`${namespace}:color`);
37004
37020
  logInfo222.color = "19";
37005
37021
  logTask5.color = "25";
37006
37022
  logError22.color = "1";
37007
37023
  logDetail3.color = "199";
37008
- logWarning22.color = "186";
37024
+ logWarning2.color = "186";
37009
37025
  logDebug.color = "211";
37010
37026
  logColor.enabled = true;
37011
37027
  function setNamespace7(namespace2) {
@@ -37013,7 +37029,7 @@ function createLoggers2(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
37013
37029
  logTask5.namespace = `${namespace2}:task`;
37014
37030
  logError22.namespace = `${namespace2}:error`;
37015
37031
  logDetail3.namespace = `${namespace2}:detail`;
37016
- logWarning22.namespace = `${namespace2}:warning`;
37032
+ logWarning2.namespace = `${namespace2}:warning`;
37017
37033
  logDebug.namespace = `${namespace2}:debug`;
37018
37034
  }
37019
37035
  function setLogLevel(level) {
@@ -37022,7 +37038,7 @@ function createLoggers2(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
37022
37038
  logInfo222.enabled = true;
37023
37039
  logTask5.enabled = true;
37024
37040
  logError22.enabled = true;
37025
- logWarning22.enabled = true;
37041
+ logWarning2.enabled = true;
37026
37042
  logDetail3.enabled = false;
37027
37043
  logDebug.enabled = false;
37028
37044
  break;
@@ -37030,7 +37046,7 @@ function createLoggers2(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
37030
37046
  logInfo222.enabled = true;
37031
37047
  logTask5.enabled = true;
37032
37048
  logError22.enabled = true;
37033
- logWarning22.enabled = true;
37049
+ logWarning2.enabled = true;
37034
37050
  logDetail3.enabled = true;
37035
37051
  logDebug.enabled = true;
37036
37052
  break;
@@ -37038,7 +37054,7 @@ function createLoggers2(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
37038
37054
  logInfo222.enabled = false;
37039
37055
  logTask5.enabled = false;
37040
37056
  logError22.enabled = false;
37041
- logWarning22.enabled = false;
37057
+ logWarning2.enabled = false;
37042
37058
  logDetail3.enabled = false;
37043
37059
  logDebug.enabled = false;
37044
37060
  break;
@@ -37060,7 +37076,7 @@ function createLoggers2(namespace, logLevel = process.env.LOG_LEVEL ?? "none") {
37060
37076
  logDetail3.color = color;
37061
37077
  break;
37062
37078
  case "warning":
37063
- logWarning22.color = color;
37079
+ logWarning2.color = color;
37064
37080
  break;
37065
37081
  case "debug":
37066
37082
  logDebug.color = color;
@@ -37115,7 +37131,7 @@ ${" ".repeat(padding)}${"=".repeat(80)}`;
37115
37131
  function logHeader(title) {
37116
37132
  logInfo222(`${header(title, 2)}`);
37117
37133
  }
37118
- function logDataObject22(title, ...args) {
37134
+ function logDataObject2(title, ...args) {
37119
37135
  const stack = new Error().stack?.split("\n")[2] || "";
37120
37136
  const stackMatch = stack.match(/\((.*):(\d+):(\d+)\)$/) || stack.match(/at (.*):(\d+):(\d+)$/);
37121
37137
  let callerDetails = "";
@@ -37149,12 +37165,12 @@ ${"=".repeat(80)}`);
37149
37165
  logError: logError22,
37150
37166
  logDetail: logDetail3,
37151
37167
  logDebug,
37152
- logWarning: logWarning22,
37168
+ logWarning: logWarning2,
37153
37169
  logColor,
37154
37170
  setColors,
37155
37171
  printColors,
37156
37172
  logHeader,
37157
- logDataObject: logDataObject22,
37173
+ logDataObject: logDataObject2,
37158
37174
  logErrorObject,
37159
37175
  setLogLevel,
37160
37176
  setNamespace: setNamespace7
@@ -38096,13 +38112,13 @@ function createLoggers22(namespace, logLevel = process.env.LOG_LEVEL ?? "none")
38096
38112
  const logError22 = (0, import_debug22.default)(`${namespace}:error`);
38097
38113
  const logDetail3 = (0, import_debug22.default)(`${namespace}:detail`);
38098
38114
  const logDebug = (0, import_debug22.default)(`${namespace}:debug`);
38099
- const logWarning22 = (0, import_debug22.default)(`${namespace}:warning`);
38115
+ const logWarning2 = (0, import_debug22.default)(`${namespace}:warning`);
38100
38116
  const logColor = (0, import_debug22.default)(`${namespace}:color`);
38101
38117
  logInfo32.color = "19";
38102
38118
  logTask5.color = "25";
38103
38119
  logError22.color = "1";
38104
38120
  logDetail3.color = "199";
38105
- logWarning22.color = "186";
38121
+ logWarning2.color = "186";
38106
38122
  logDebug.color = "211";
38107
38123
  logColor.enabled = true;
38108
38124
  function setNamespace7(namespace2) {
@@ -38110,7 +38126,7 @@ function createLoggers22(namespace, logLevel = process.env.LOG_LEVEL ?? "none")
38110
38126
  logTask5.namespace = `${namespace2}:task`;
38111
38127
  logError22.namespace = `${namespace2}:error`;
38112
38128
  logDetail3.namespace = `${namespace2}:detail`;
38113
- logWarning22.namespace = `${namespace2}:warning`;
38129
+ logWarning2.namespace = `${namespace2}:warning`;
38114
38130
  logDebug.namespace = `${namespace2}:debug`;
38115
38131
  }
38116
38132
  function setLogLevel(level) {
@@ -38119,7 +38135,7 @@ function createLoggers22(namespace, logLevel = process.env.LOG_LEVEL ?? "none")
38119
38135
  logInfo32.enabled = true;
38120
38136
  logTask5.enabled = true;
38121
38137
  logError22.enabled = true;
38122
- logWarning22.enabled = true;
38138
+ logWarning2.enabled = true;
38123
38139
  logDetail3.enabled = false;
38124
38140
  logDebug.enabled = false;
38125
38141
  break;
@@ -38127,7 +38143,7 @@ function createLoggers22(namespace, logLevel = process.env.LOG_LEVEL ?? "none")
38127
38143
  logInfo32.enabled = true;
38128
38144
  logTask5.enabled = true;
38129
38145
  logError22.enabled = true;
38130
- logWarning22.enabled = true;
38146
+ logWarning2.enabled = true;
38131
38147
  logDetail3.enabled = true;
38132
38148
  logDebug.enabled = true;
38133
38149
  break;
@@ -38135,7 +38151,7 @@ function createLoggers22(namespace, logLevel = process.env.LOG_LEVEL ?? "none")
38135
38151
  logInfo32.enabled = false;
38136
38152
  logTask5.enabled = false;
38137
38153
  logError22.enabled = false;
38138
- logWarning22.enabled = false;
38154
+ logWarning2.enabled = false;
38139
38155
  logDetail3.enabled = false;
38140
38156
  logDebug.enabled = false;
38141
38157
  break;
@@ -38157,7 +38173,7 @@ function createLoggers22(namespace, logLevel = process.env.LOG_LEVEL ?? "none")
38157
38173
  logDetail3.color = color;
38158
38174
  break;
38159
38175
  case "warning":
38160
- logWarning22.color = color;
38176
+ logWarning2.color = color;
38161
38177
  break;
38162
38178
  case "debug":
38163
38179
  logDebug.color = color;
@@ -38212,7 +38228,7 @@ ${" ".repeat(padding)}${"=".repeat(80)}`;
38212
38228
  function logHeader(title) {
38213
38229
  logInfo32(`${header(title, 2)}`);
38214
38230
  }
38215
- function logDataObject22(title, ...args) {
38231
+ function logDataObject2(title, ...args) {
38216
38232
  const stack = new Error().stack?.split("\n")[2] || "";
38217
38233
  const stackMatch = stack.match(/\((.*):(\d+):(\d+)\)$/) || stack.match(/at (.*):(\d+):(\d+)$/);
38218
38234
  let callerDetails = "";
@@ -38246,12 +38262,12 @@ ${"=".repeat(80)}`);
38246
38262
  logError: logError22,
38247
38263
  logDetail: logDetail3,
38248
38264
  logDebug,
38249
- logWarning: logWarning22,
38265
+ logWarning: logWarning2,
38250
38266
  logColor,
38251
38267
  setColors,
38252
38268
  printColors,
38253
38269
  logHeader,
38254
- logDataObject: logDataObject22,
38270
+ logDataObject: logDataObject2,
38255
38271
  logErrorObject,
38256
38272
  setLogLevel,
38257
38273
  setNamespace: setNamespace7
@@ -38740,7 +38756,7 @@ var ActivationFlow = class {
38740
38756
  }
38741
38757
  }
38742
38758
  await this.retryActivateCommand("activate device", () => this.iosClient.activate(), signal);
38743
- events.emit(ACTIVATION_FLOW_EVENT_ACTIVATION_DONE, { attempt: 1 });
38759
+ events.emit(ACTIVATION_FLOW_EVENT_ACTIVATION_DONE);
38744
38760
  throwIfAborted2(signal);
38745
38761
  let wifiProfileIdentifier;
38746
38762
  if (config?.withMdm) {
@@ -38754,7 +38770,9 @@ var ActivationFlow = class {
38754
38770
  const expectedSsid = config.wifiProfileConfig?.ssid;
38755
38771
  if (expectedSsid) {
38756
38772
  if (await this.deviceActions.isWifiConnected(15e3) !== expectedSsid) {
38757
- throw new Error("WiFi profile not installed correctly");
38773
+ throw new Error(
38774
+ `WiFi profile not installed correctly, expected ${expectedSsid} but got ${await this.deviceActions.isWifiConnected(15e3)}`
38775
+ );
38758
38776
  }
38759
38777
  }
38760
38778
  await this.installMdmProfile(events, signal);
@@ -38803,7 +38821,7 @@ var ActivationFlow = class {
38803
38821
  () => this.iosClient.installProfile(profilePath),
38804
38822
  signal
38805
38823
  );
38806
- events.emit(ACTIVATION_FLOW_EVENT_MDM_PROFILE_INSTALLED, { retries: 0 });
38824
+ events.emit(ACTIVATION_FLOW_EVENT_MDM_PROFILE_INSTALLED);
38807
38825
  await removeTempFile(profilePath, "mdm profile");
38808
38826
  }
38809
38827
  async retryMdmEnrollmentProfile(signal) {
@@ -39304,30 +39322,10 @@ var IosClient = class {
39304
39322
  };
39305
39323
 
39306
39324
  // src/logic/appleDeviceKit.ts
39307
- var { logInfo: logInfo7, setNamespace: setNamespace6, logDataObject: logDataObject2, logWarning: logWarning2 } = createLoggers("apple-kit");
39325
+ var { logInfo: logInfo7, setNamespace: setNamespace6, logError: logError3 } = createLoggers("apple-kit");
39308
39326
  var AppleDeviceKit = class {
39309
39327
  constructor(udid, logicalPort, usbmuxdAddress) {
39310
39328
  this.logicalPort = logicalPort;
39311
- const requiredEnvVars = {
39312
- USBIPD_PATH: process.env.USBIPD_PATH,
39313
- LOCKDOWN_WINDOWS_PATH: process.env.LOCKDOWN_WINDOWS_PATH,
39314
- MDM_ENDPOINT: process.env.MDM_ENDPOINT,
39315
- AUTH_API_URL: process.env.AUTH_API_URL,
39316
- CREDENTIALS_PATH: process.env.CREDENTIALS_PATH,
39317
- RESOURCES_PATH: process.env.RESOURCES_PATH,
39318
- WIFI_SSID: process.env.WIFI_SSID,
39319
- WIFI_PASSWORD: process.env.WIFI_PASSWORD,
39320
- WIFI_ENCRYPTION: process.env.WIFI_ENCRYPTION,
39321
- WIFI_HIDDEN: process.env.WIFI_HIDDEN,
39322
- WIFI_ENTERPRISE: process.env.WIFI_ENTERPRISE,
39323
- WIFI_EAP_TYPE: process.env.WIFI_EAP_TYPE,
39324
- CERT_FILE: process.env.CERT_FILE,
39325
- ORGANIZATION_NAME: process.env.ORGANIZATION_NAME
39326
- };
39327
- if (Object.values(requiredEnvVars).some((value) => !value)) {
39328
- logWarning2("Required environment variables are not set");
39329
- logDataObject2("Required Env Variables", requiredEnvVars);
39330
- }
39331
39329
  this.deviceId = udid;
39332
39330
  setNamespace6(`apple-${udid}`);
39333
39331
  logInfo7(
@@ -39342,6 +39340,11 @@ var AppleDeviceKit = class {
39342
39340
  this.installActions = new InstallActions(this.deviceId, this.iosClient);
39343
39341
  this.activationFlow = new ActivationFlow(this.deviceId, this.iosClient, this.deviceActions);
39344
39342
  this.proxyActions = new ProxyActions(this.deviceId, this.iosClient);
39343
+ this.iosClient.tunnelStart(true).then((process3) => {
39344
+ this.tunnelProcess = process3;
39345
+ }).catch((error) => {
39346
+ logError3(`Failed to start tunnel: ${error.message}`);
39347
+ });
39345
39348
  }
39346
39349
  deviceId;
39347
39350
  proxyProcess = null;
@@ -39381,7 +39384,11 @@ var AppleDeviceKit = class {
39381
39384
  */
39382
39385
  async waitForPairing(timeout2 = 12e4, pollInterval = 1e3, signal) {
39383
39386
  this.ensureNotDisposed();
39384
- return this.deviceActions.waitForPairing({ timeout: timeout2, pollInterval, signal });
39387
+ return this.deviceActions.waitForPairing({
39388
+ timeout: timeout2,
39389
+ pollInterval,
39390
+ signal
39391
+ });
39385
39392
  }
39386
39393
  /**
39387
39394
  * Attempt to pair/trust the device