@absolutejs/absolute 0.20.0-beta.34 → 0.20.0-beta.35

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.
@@ -3851,6 +3851,18 @@ var requireRemoteSuccess = (result, label) => {
3851
3851
  throw new Error(`${label} failed: ${(result.stderr || result.stdout).trim() || `status ${result.exitCode}`}`);
3852
3852
  return result.stdout.trim();
3853
3853
  };
3854
+ var captureAbsoluteRemoteMacCommand = async (profile, command, transport) => {
3855
+ if (command.length === 0)
3856
+ throw new TypeError("A Remote Mac command cannot be empty.");
3857
+ if (command.some((argument) => /[\r\n\0]/u.test(argument)))
3858
+ throw new TypeError("Remote Mac command arguments cannot contain controls.");
3859
+ const capture = transport?.capture ?? defaultTransport.capture;
3860
+ return capture([
3861
+ ...absoluteRemoteMacSshBase(profile),
3862
+ "/bin/sh -lc",
3863
+ shellQuote(command.map((argument) => shellQuote(argument)).join(" "))
3864
+ ]);
3865
+ };
3854
3866
  var getAbsoluteRemoteMacProfile = async (name, profilePath) => {
3855
3867
  const store = await loadStore(profilePath);
3856
3868
  const selected = name ?? process.env.ABSOLUTE_IOS_REMOTE ?? store.defaultProfile;
@@ -4346,6 +4358,45 @@ var startAbsoluteRemoteIosDevSession = async (options) => {
4346
4358
  });
4347
4359
  return makeSession();
4348
4360
  };
4361
+ // src/mobile/iosDeviceAcceptance.ts
4362
+ var absoluteIosDeviceAcceptanceCommands = (options) => {
4363
+ const xcrun = options.xcrun ?? "/usr/bin/xcrun";
4364
+ const prefix = [xcrun, "devicectl", "device"];
4365
+ return {
4366
+ apps: [...prefix, "info", "apps", "--device", options.device],
4367
+ details: [...prefix, "info", "details", "--device", options.device],
4368
+ launch: [
4369
+ ...prefix,
4370
+ "process",
4371
+ "launch",
4372
+ "--terminate-existing",
4373
+ "--device",
4374
+ options.device,
4375
+ options.appId
4376
+ ]
4377
+ };
4378
+ };
4379
+ var requireSuccess3 = (result, message) => {
4380
+ if (result.exitCode !== 0)
4381
+ throw new Error(message);
4382
+ return result;
4383
+ };
4384
+ var testAbsoluteIosPhysicalDevice = async (options) => {
4385
+ const commands = absoluteIosDeviceAcceptanceCommands(options);
4386
+ requireSuccess3(await options.capture(commands.details), "The selected physical iOS device is unavailable. Pair it in Xcode Device Hub, trust this Mac, unlock it, and enable Developer Mode.");
4387
+ const apps = requireSuccess3(await options.capture(commands.apps), "AbsoluteJS could not inspect installed apps on the physical iOS device.");
4388
+ if (!apps.stdout.includes(options.appId))
4389
+ throw new Error("The AbsoluteJS app is not installed on the selected physical iOS device. Start bun dev with the same --ios-device value first.");
4390
+ const now = options.now ?? performance.now.bind(performance);
4391
+ const startedAt = now();
4392
+ requireSuccess3(await options.capture(commands.launch), "AbsoluteJS could not relaunch the app on the physical iOS device.");
4393
+ await options.waitForHmr();
4394
+ return {
4395
+ hmrConnected: true,
4396
+ installed: true,
4397
+ relaunchMs: Math.round(now() - startedAt)
4398
+ };
4399
+ };
4349
4400
  // src/mobile/associationFiles.ts
4350
4401
  import {
4351
4402
  access as access7,
@@ -7639,6 +7690,7 @@ export {
7639
7690
  verifyAbsoluteMobileAssociationFiles,
7640
7691
  validateAbsoluteSshDestination,
7641
7692
  validateAbsoluteRemoteMacProfileName,
7693
+ testAbsoluteIosPhysicalDevice,
7642
7694
  syncAbsoluteRemoteMacProject,
7643
7695
  startAbsoluteRemoteIosDevSession,
7644
7696
  startAbsoluteIosTcpRelay,
@@ -7729,6 +7781,7 @@ export {
7729
7781
  createAbsoluteMobileAssociationDocuments,
7730
7782
  createAbsoluteIosNativeWatcher,
7731
7783
  carryForwardAbsoluteMobileCompatibilityReleases,
7784
+ captureAbsoluteRemoteMacCommand,
7732
7785
  captureAbsoluteMobileRouteGraph,
7733
7786
  buildAbsoluteMobileCompatibilityRelease,
7734
7787
  buildAbsoluteIosRelease,
@@ -7741,6 +7794,7 @@ export {
7741
7794
  absoluteRemoteProjectSyncCommands,
7742
7795
  absoluteRemoteMacSshBase,
7743
7796
  absoluteMobilePreviewDocument,
7797
+ absoluteIosDeviceAcceptanceCommands,
7744
7798
  absoluteDeviceNativeRequirements,
7745
7799
  MOBILE_PAGE_REQUEST_HEADERS,
7746
7800
  AbsoluteMobilePageProtocolError,
@@ -7766,5 +7820,5 @@ export {
7766
7820
  ABSOLUTE_ANDROID_RELEASE_FORMAT
7767
7821
  };
7768
7822
 
7769
- //# debugId=ED7CBBBE08CD962364756E2164756E21
7823
+ //# debugId=D998DAA8591F90D464756E2164756E21
7770
7824
  //# sourceMappingURL=index.js.map