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

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/constants.ts", "../src/utils/getDurationString.ts", "../src/utils/startupBanner.ts", "../src/utils/stringModifiers.ts", "../node_modules/@absolutejs/sync/dist/client/index.js", "../src/mobile/syncSchema.ts", "../src/mobile/deviceCapabilities.ts", "../src/cli/scripts/telemetry.ts", "../src/cli/telemetryEvent.ts", "../src/mobile/artifactStore.ts", "../src/mobile/releaseArtifact.ts", "../src/mobile/androidRelease.ts", "../src/mobile/emulatorDoctor.ts", "../src/cli/utils.ts", "../src/mobile/androidEmulatorController.ts", "../src/mobile/capacitorProject.ts", "../src/mobile/androidUpgradeConformance.ts", "../src/mobile/iosRelease.ts", "../src/mobile/iosConformance.ts", "../src/mobile/iosSimulatorController.ts", "../src/mobile/iosNativeWatcher.ts", "../src/mobile/remoteMacProtocol.ts", "../src/mobile/remoteMacWire.ts", "../src/mobile/associationFiles.ts", "../src/mobile/config.ts", "../src/mobile/buildMetadata.ts", "../src/mobile/buildPipeline.ts", "../src/mobile/buildRelease.ts", "../src/mobile/capacitorBundle.ts", "../src/mobile/routeMatcher.ts", "../src/mobile/producerContextState.ts", "../src/mobile/pageProtocol.ts", "../src/mobile/client.ts", "../src/mobile/transport.ts", "../src/mobile/materializedBundle.ts", "../src/mobile/nativeAuth.ts", "../src/mobile/index.ts", "../node_modules/@absolutejs/sync/dist/client/runtimeTransport.js", "../src/mobile/syncRemediation.ts", "../src/mobile/compatibilityDispatcher.ts", "../src/mobile/producerContext.ts", "../src/mobile/mobilePreview.ts", "../src/mobile/nativeDeepLinks.ts", "../src/mobile/nativeDeviceCapabilities.ts", "../src/mobile/releasePublisher.ts", "../src/mobile/routeMetadataTransform.ts", "../node_modules/@absolutejs/http/dist/index.js", "../src/mobile/shellHttp.ts"],
3
+ "sources": ["../src/constants.ts", "../src/utils/getDurationString.ts", "../src/utils/startupBanner.ts", "../src/utils/stringModifiers.ts", "../node_modules/@absolutejs/sync/dist/client/index.js", "../src/mobile/syncSchema.ts", "../src/mobile/deviceCapabilities.ts", "../src/cli/scripts/telemetry.ts", "../src/cli/telemetryEvent.ts", "../src/mobile/artifactStore.ts", "../src/mobile/releaseArtifact.ts", "../src/mobile/androidRelease.ts", "../src/mobile/emulatorDoctor.ts", "../src/cli/utils.ts", "../src/mobile/androidEmulatorController.ts", "../src/mobile/capacitorProject.ts", "../src/mobile/androidUpgradeConformance.ts", "../src/mobile/iosRelease.ts", "../src/mobile/iosConformance.ts", "../src/mobile/iosSimulatorController.ts", "../src/mobile/iosPhysicalDeviceTransport.ts", "../src/mobile/iosNativeWatcher.ts", "../src/mobile/remoteMacProtocol.ts", "../src/mobile/remoteMacWire.ts", "../src/mobile/associationFiles.ts", "../src/mobile/config.ts", "../src/mobile/buildMetadata.ts", "../src/mobile/buildPipeline.ts", "../src/mobile/buildRelease.ts", "../src/mobile/capacitorBundle.ts", "../src/mobile/routeMatcher.ts", "../src/mobile/producerContextState.ts", "../src/mobile/pageProtocol.ts", "../src/mobile/client.ts", "../src/mobile/transport.ts", "../src/mobile/materializedBundle.ts", "../src/mobile/nativeAuth.ts", "../src/mobile/index.ts", "../node_modules/@absolutejs/sync/dist/client/runtimeTransport.js", "../src/mobile/syncRemediation.ts", "../src/mobile/compatibilityDispatcher.ts", "../src/mobile/producerContext.ts", "../src/mobile/mobilePreview.ts", "../src/mobile/nativeDeepLinks.ts", "../src/mobile/nativeDeviceCapabilities.ts", "../src/mobile/releasePublisher.ts", "../src/mobile/routeMetadataTransform.ts", "../node_modules/@absolutejs/http/dist/index.js", "../src/mobile/shellHttp.ts"],
4
4
  "sourcesContent": [
5
5
  "export const ANGULAR_INIT_TIMEOUT_MS = 500;\nexport const ANSI_ESCAPE_CODE = 27;\nexport const ANSI_ESCAPE_LENGTH = 3;\nexport const ASCII_SPACE = 32;\nexport const BASE_36_RADIX = 36;\nexport const BUN_BUILD_WARNING_SUPPRESSION =\n\t'wildcard sideEffects are not supported yet';\n/* Tailwind v4 at-rules that Bun's native CSS parser doesn't recognize.\n When a user imports their Tailwind entry CSS from a TS/TSX file, Bun's\n bundler walks it and warns about each unknown at-rule even though the\n actual Tailwind output is produced via the separate tailwindcss compile()\n pipeline (see compileTailwind.ts). The warnings are noise — suppress them. */\nexport const TAILWIND_BUN_CSS_WARNING_PATTERN =\n\t/invalid @ rule encountered: '@(theme|tailwind|source|utility|variant|custom-variant|apply|reference|plugin|config)'/;\nexport const BODY_SLICE_LENGTH = 2000;\nexport const BYTES_PER_KILOBYTE = 1024;\nexport const CLI_ARGS_OFFSET = 3;\nexport const CSS_ERROR_RESOLVE_DELAY_MS = 50;\nexport const CSS_MAX_CHECK_ATTEMPTS = 10;\nexport const CSS_MAX_PARSE_TIMEOUT_MS = 500;\nexport const CSS_SHEET_READY_TIMEOUT_MS = 100;\nexport const DEFAULT_CHUNK_SIZE = 16_384;\nexport const DEFAULT_DEBOUNCE_MS = 15;\nexport const DEFAULT_PORT = 3000;\nexport const DEV_SERVER_RESTART_DEBOUNCE_MS = 100;\nexport const DOM_UPDATE_DELAY_MS = 50;\nexport const FILE_PROTOCOL_PREFIX_LENGTH = 7;\nexport const FOCUS_ID_PREFIX_LENGTH = 3;\nexport const FOCUS_IDX_PREFIX_LENGTH = 4;\nexport const FOCUS_NAME_PREFIX_LENGTH = 5;\nexport const ESLINT_STUDIO_DEFAULT_HOST = 'eslint.absolute.localhost';\nexport const ESLINT_STUDIO_DEFAULT_PORT = 4099;\nexport const CONFIG_DEFAULT_HOST = 'config.absolute.localhost';\nexport const CONFIG_DEFAULT_PORT = 4099;\nexport const HMR_UPDATE_TIMEOUT_MS = 2000;\nexport const HOOK_SIGNATURE_LENGTH = 12;\nexport const EXCLUDE_LAST_OFFSET = -1;\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_BAD_REQUEST = 400;\nexport const HTTP_STATUS_NOT_FOUND = 404;\nexport const HOURS_IN_DAY = 24;\nexport const HOURS_IN_HALF_DAY = 12;\nexport const IMAGE_DEFAULT_DEVICE_SIZES = [\n\t640, 750, 828, 1080, 1200, 1920, 2048, 3840\n];\nexport const IMAGE_DEFAULT_IMAGE_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];\nexport const IMAGE_DEFAULT_QUALITY = 75;\nexport const IMAGE_GLOB_SUFFIX_LENGTH = 2;\nexport const INSTANCE_PROBE_TIMEOUT_MS = 250;\nexport const MAX_ERROR_LENGTH = 200;\nexport const MAX_RECONNECT_ATTEMPTS = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_DAY;\nexport const OVERLAY_FADE_DURATION_MS = 150;\nexport const PING_INTERVAL_MS = 30_000;\nexport const LIST_LOG_TAIL_MAX_BYTES = 65_536;\nexport const LIST_TUI_COLUMN_GAP = 2;\nexport const LIST_TUI_DEFAULT_HEIGHT = 28;\nexport const LIST_TUI_DEFAULT_WIDTH = 100;\nexport const LIST_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30;\nexport const LIST_TUI_FOOTER_LINE_COUNT = 2;\nexport const LIST_TUI_MARKER_WIDTH = 2;\nexport const LIST_TUI_MIN_LOG_HEIGHT = 3;\nexport const LIST_TUI_MIN_URL_WIDTH = 16;\nexport const LIST_TUI_RENDER_DEBOUNCE_MS = 16;\nexport const LIST_TUI_STATUS_MESSAGE_TIMEOUT_MS = 4000;\nexport const LIST_WATCH_REFRESH_MS = 1000;\nexport const RAF_BATCH_COUNT = 3;\nexport const RANDOM_ID_END_INDEX = 11;\nexport const REBUILD_BATCH_DELAY_MS = 10;\nexport const REBUILD_RELOAD_DELAY_MS = 200;\nexport const RECONNECT_INITIAL_DELAY_MS = 500;\nexport const RECONNECT_POLL_INTERVAL_MS = 300;\nexport const REACT_STREAM_SLOT_FAST_DELAY_MS = 5;\nexport const REACT_STREAM_SLOT_SLOW_DELAY_MS = 20;\nexport const SIGINT_EXIT_CODE = 130;\nexport const SIGTERM_EXIT_CODE = 143;\nexport const SVELTE_CSS_LOAD_TIMEOUT_MS = 500;\nexport const TIME_PRECISION = 2;\nexport const TWO_THIRDS = 2 / 3;\nexport const UNFOUND_INDEX = -1;\nexport const WEBSOCKET_NORMAL_CLOSURE = 1000;\n// Default Bun WebSocket idleTimeout (seconds) applied to every absolute server.\n// Long-lived sockets (voice intake, referee, realtime sync) sit idle during\n// greeting playback or while a user listens silently — no client→server frames.\n// Without an explicit value the WS idleTimeout falls back to Elysia's small\n// top-level serve default (~30s, closing at ~60s), which kills these sessions\n// mid-call with INACTIVE_CLIENT. 240s outlasts any greeting or think-pause and\n// gives a briefly-suspended tab time to wake and reconnect. Paired with Bun's\n// `sendPings` (protocol-level keepalive the browser answers without JS, so a\n// throttled background tab still responds). Bun's hard ceiling is 960s.\nexport const DEFAULT_WEBSOCKET_IDLE_TIMEOUT_SECONDS = 240;\n// HTTP idleTimeout for Bun.serve. Bun's DEFAULT is a hostile 10s for a\n// framework meant to host streaming/AI workloads: a long-lived SSE response\n// (or any long poll) that stays silent past 10s — e.g. an agentic AI turn\n// waiting on the model's first token after a large tool result inflates the\n// prompt — gets its socket reaped with no error, and the client hangs. 240s\n// mirrors the WS default and outlasts realistic model think-pauses; Bun's\n// hard ceiling for HTTP idleTimeout is 255s. Override per-app with the\n// ABSOLUTE_IDLE_TIMEOUT env var (seconds; 0 disables the timeout entirely).\nexport const DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS = 240;\nexport const MAX_HTTP_IDLE_TIMEOUT_SECONDS = 255;\nexport const WORKSPACE_COMMAND_ARGS_OFFSET = 3;\nexport const WORKSPACE_FAILURE_LOG_PRINT_LIMIT = 30;\nexport const WORKSPACE_FAILURE_RECENT_LOG_LIMIT = 60;\nexport const WORKSPACE_READY_ATTEMPT_TIMEOUT_MS = 5_000;\nexport const WORKSPACE_READY_PROBE_INTERVAL_MS = 250;\nexport const WORKSPACE_READY_TIMEOUT_MS = 30_000;\nexport const WORKSPACE_SHUTDOWN_TIMEOUT_MS = 10_000;\nexport const WORKSPACE_TUI_DEFAULT_HEIGHT = 28;\nexport const WORKSPACE_TUI_DEFAULT_WIDTH = 100;\nexport const WORKSPACE_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30;\nexport const WORKSPACE_TUI_FOOTER_LINE_COUNT = 3;\nexport const WORKSPACE_TUI_MIN_LOG_HEIGHT = 3;\nexport const WORKSPACE_TUI_MIN_SERVICE_NAME_WIDTH = 7;\nexport const WORKSPACE_TUI_MIN_TARGET_WIDTH = 8;\nexport const WORKSPACE_TUI_MIN_WRAP_WIDTH = 12;\nexport const WORKSPACE_TUI_PROMPT_CURSOR_OFFSET = 3;\nexport const WORKSPACE_TUI_RECENT_LOG_LIMIT = 40;\nexport const WORKSPACE_TUI_RENDER_DEBOUNCE_MS = 16;\nexport const WORKSPACE_TUI_STATUS_WIDTH = 10;\nexport const WORKSPACE_TUI_TARGET_PADDING_WIDTH = 6;\nexport const WORKSPACE_TUI_VISIBILITY_WIDTH = 8;\n",
6
6
  "import {\n\tMILLISECONDS_IN_A_SECOND,\n\tTIME_PRECISION,\n\tMILLISECONDS_IN_A_MINUTE\n} from '../constants';\n\nexport const getDurationString = (duration: number) => {\n\tlet durationString;\n\n\tif (duration < MILLISECONDS_IN_A_SECOND) {\n\t\tdurationString = `${duration.toFixed(TIME_PRECISION)}ms`;\n\t} else if (duration < MILLISECONDS_IN_A_MINUTE) {\n\t\tdurationString = `${(duration / MILLISECONDS_IN_A_SECOND).toFixed(TIME_PRECISION)}s`;\n\t} else {\n\t\tconst totalSeconds = Math.round(duration / MILLISECONDS_IN_A_SECOND);\n\t\tconst minutes = Math.floor(totalSeconds / 60);\n\t\tconst seconds = totalSeconds % 60;\n\t\tdurationString =\n\t\t\tseconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`;\n\t}\n\n\treturn durationString;\n};\n",
@@ -16,14 +16,15 @@
16
16
  "import { createHash } from 'node:crypto';\nimport {\n\taccess,\n\tcopyFile,\n\tmkdir,\n\tmkdtemp,\n\treadFile,\n\trename,\n\trm,\n\tstat,\n\twriteFile\n} from 'node:fs/promises';\nimport { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';\nimport {\n\tabsoluteManagedAndroidSdkRoot,\n\tdetectAbsoluteMobileHost,\n\ttype AbsoluteMobileHost\n} from './emulatorDoctor';\nimport {\n\tbuildAbsoluteAndroidGradleArtifact,\n\tfingerprintAbsoluteAndroidNativeProject,\n\ttype AbsoluteAndroidCommandOptions,\n\ttype AbsoluteAndroidCommandResult\n} from './androidEmulatorController';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\n\nexport const ABSOLUTE_ANDROID_RELEASE_FORMAT = 1 as const;\n\nexport type AbsoluteAndroidReleaseMetadata = {\n\tappBuild: string;\n\tappId: string;\n\tartifact: string;\n\tbytes: number;\n\tengine: 'capacitor';\n\tformat: typeof ABSOLUTE_ANDROID_RELEASE_FORMAT;\n\tplatform: 'android';\n\treleaseId: string;\n\truntime: string;\n\tsha256: string;\n\tsigned: boolean;\n\ttype: 'aab';\n\tversionCode?: number;\n};\n\ntype MobileClientManifest = {\n\tappBuild: string;\n\tappId: string;\n\truntime: string;\n};\n\nexport type BuildAbsoluteAndroidReleaseOptions = {\n\tallowUnsigned?: boolean;\n\tandroidRoot?: string;\n\tcapture?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => AbsoluteAndroidCommandResult;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\thost?: AbsoluteMobileHost;\n\tjarsigner?: string | null;\n\toutputDirectory?: string;\n\tprojectRoot: string;\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => Promise<number>;\n\tprepareVersionCode?: (buildIdentity: string) => Promise<number>;\n\tversionCode?: number;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst requireManifest = (value: unknown): MobileClientManifest => {\n\tif (\n\t\t!isRecord(value) ||\n\t\ttypeof value.appBuild !== 'string' ||\n\t\ttypeof value.appId !== 'string' ||\n\t\ttypeof value.runtime !== 'string'\n\t) {\n\t\tthrow new TypeError('Invalid embedded AbsoluteJS mobile manifest.');\n\t}\n\n\treturn {\n\t\tappBuild: value.appBuild,\n\t\tappId: value.appId,\n\t\truntime: value.runtime\n\t};\n};\n\nconst pathExists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst defaultCapture = (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions = {}\n) => {\n\ttry {\n\t\tconst result = Bun.spawnSync(command, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: options.env,\n\t\t\tstderr: 'pipe',\n\t\t\tstdin: 'ignore',\n\t\t\tstdout: 'pipe'\n\t\t});\n\n\t\treturn {\n\t\t\texitCode: result.exitCode,\n\t\t\tstderr: result.stderr.toString(),\n\t\t\tstdout: result.stdout.toString()\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\texitCode: 1,\n\t\t\tstderr: error instanceof Error ? error.message : String(error),\n\t\t\tstdout: ''\n\t\t};\n\t}\n};\n\nconst verifyAabSignature = (\n\tartifactPath: string,\n\tcapture: NonNullable<BuildAbsoluteAndroidReleaseOptions['capture']>,\n\tjarsigner: string | null | undefined\n) => {\n\tconst executable =\n\t\tjarsigner === undefined ? Bun.which('jarsigner') : jarsigner;\n\tif (!executable) return null;\n\tconst result = capture([\n\t\texecutable,\n\t\t'-J-Duser.language=en',\n\t\t'-J-Duser.country=US',\n\t\t'-verify',\n\t\tartifactPath\n\t]);\n\n\treturn result.exitCode === 0 && /jar verified/iu.test(result.stdout);\n};\n\nconst sha256File = async (path: string) =>\n\tcreateHash('sha256')\n\t\t.update(await readFile(path))\n\t\t.digest('hex');\n\nconst safeOutputDirectory = (projectRoot: string, requested?: string) => {\n\tconst root = resolve(projectRoot);\n\tconst output = resolve(\n\t\troot,\n\t\trequested ?? '.absolutejs/mobile/releases/android'\n\t);\n\tconst projectRelative = relative(root, output);\n\tif (\n\t\tprojectRelative === '..' ||\n\t\tprojectRelative.startsWith(`..${sep}`) ||\n\t\tisAbsolute(projectRelative)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'mobile build --outdir must remain inside the project.'\n\t\t);\n\t}\n\n\treturn output;\n};\n\nconst installRelease = async (\n\tartifactPath: string,\n\tmetadata: Omit<AbsoluteAndroidReleaseMetadata, 'artifact'>,\n\toutputRoot: string\n) => {\n\tconst releaseRoot = join(outputRoot, metadata.releaseId);\n\tconst artifactName = 'app-release.aab';\n\tconst destination = join(releaseRoot, artifactName);\n\tif (await pathExists(releaseRoot)) {\n\t\tconst existing = requireManifestIdentity(\n\t\t\tJSON.parse(\n\t\t\t\tawait readFile(join(releaseRoot, 'release.json'), 'utf8')\n\t\t\t),\n\t\t\tmetadata\n\t\t);\n\t\tconst [installedBytes, installedSha256] = await Promise.all([\n\t\t\tstat(destination).then(({ size }) => size),\n\t\t\tsha256File(destination)\n\t\t]);\n\t\tif (\n\t\t\tinstalledBytes !== metadata.bytes ||\n\t\t\tinstalledSha256 !== metadata.sha256\n\t\t) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`Immutable Android release ${metadata.releaseId} artifact is missing or modified.`\n\t\t\t);\n\t\t}\n\n\t\treturn { artifactPath: destination, metadata: existing, releaseRoot };\n\t}\n\tawait mkdir(dirname(releaseRoot), { recursive: true });\n\tconst staging = await mkdtemp(\n\t\tjoin(dirname(releaseRoot), '.android-stage-')\n\t);\n\ttry {\n\t\tawait copyFile(artifactPath, join(staging, artifactName));\n\t\tconst complete = {\n\t\t\t...metadata,\n\t\t\tartifact: artifactName\n\t\t} satisfies AbsoluteAndroidReleaseMetadata;\n\t\tawait writeFile(\n\t\t\tjoin(staging, 'release.json'),\n\t\t\t`${JSON.stringify(complete, null, '\\t')}\\n`,\n\t\t\t{ flag: 'wx' }\n\t\t);\n\t\tawait rename(staging, releaseRoot);\n\n\t\treturn { artifactPath: destination, metadata: complete, releaseRoot };\n\t} finally {\n\t\tawait rm(staging, { force: true, recursive: true }).catch(\n\t\t\t() => undefined\n\t\t);\n\t}\n};\n\nconst requireManifestIdentity = (\n\tvalue: unknown,\n\texpected: Omit<AbsoluteAndroidReleaseMetadata, 'artifact'>\n) => {\n\tif (!isRecord(value)) {\n\t\tthrow new TypeError('Existing Android release metadata is invalid.');\n\t}\n\tconst { artifact } = value;\n\tif (\n\t\tartifact !== 'app-release.aab' ||\n\t\tObject.entries(expected).some(\n\t\t\t([key, expectedValue]) => Reflect.get(value, key) !== expectedValue\n\t\t)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t`Immutable Android release ${expected.releaseId} does not match its content.`\n\t\t);\n\t}\n\n\treturn { ...expected, artifact } satisfies AbsoluteAndroidReleaseMetadata;\n};\n\nexport const buildAbsoluteAndroidRelease = async (\n\toptions: BuildAbsoluteAndroidReleaseOptions\n) => {\n\tif (options.versionCode !== undefined && options.prepareVersionCode) {\n\t\tthrow new TypeError(\n\t\t\t'Android release versionCode and prepareVersionCode cannot be combined.'\n\t\t);\n\t}\n\tif (\n\t\toptions.versionCode !== undefined &&\n\t\t(!Number.isSafeInteger(options.versionCode) ||\n\t\t\toptions.versionCode < 1 ||\n\t\t\toptions.versionCode > 2_100_000_000)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'Android versionCode must be an integer from 1 through 2100000000.'\n\t\t);\n\t}\n\tconst projectRoot = resolve(options.projectRoot);\n\tconst host = options.host ?? detectAbsoluteMobileHost();\n\tconst androidRoot =\n\t\toptions.androidRoot ??\n\t\tprocess.env.ANDROID_HOME ??\n\t\tprocess.env.ANDROID_SDK_ROOT ??\n\t\tabsoluteManagedAndroidSdkRoot(host);\n\tconst nativeDirectory = join(\n\t\toptions.config.nativeProjectDirectory,\n\t\t'android'\n\t);\n\tconst manifest = requireManifest(\n\t\tJSON.parse(\n\t\t\tawait readFile(\n\t\t\t\tjoin(\n\t\t\t\t\toptions.config.bundleDirectory,\n\t\t\t\t\t'absolute-mobile-manifest.json'\n\t\t\t\t),\n\t\t\t\t'utf8'\n\t\t\t)\n\t\t)\n\t);\n\tif (manifest.appId !== options.config.appId) {\n\t\tthrow new TypeError(\n\t\t\t'Embedded mobile manifest appId does not match mobile.appId.'\n\t\t);\n\t}\n\tlet { versionCode } = options;\n\tif (options.prepareVersionCode) {\n\t\tconst nativeFingerprint = await fingerprintAbsoluteAndroidNativeProject(\n\t\t\t{ nativeDirectory }\n\t\t);\n\t\tconst buildIdentity = createHash('sha256')\n\t\t\t.update(`${manifest.appBuild}\\0${nativeFingerprint}`)\n\t\t\t.digest('hex');\n\t\tversionCode = await options.prepareVersionCode(buildIdentity);\n\t}\n\tif (\n\t\tversionCode !== undefined &&\n\t\t(!Number.isSafeInteger(versionCode) ||\n\t\t\tversionCode < 1 ||\n\t\t\tversionCode > 2_100_000_000)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'Android versionCode must be an integer from 1 through 2100000000.'\n\t\t);\n\t}\n\tconst { artifactPath } = await buildAbsoluteAndroidGradleArtifact({\n\t\tcapture: options.capture,\n\t\tgradleArguments:\n\t\t\tversionCode === undefined\n\t\t\t\t? []\n\t\t\t\t: [`-Pandroid.injected.version.code=${versionCode}`],\n\t\tproject: {\n\t\t\tandroidRoot,\n\t\t\tconfig: options.config,\n\t\t\thost,\n\t\t\tnativeDirectory,\n\t\t\tprojectRoot\n\t\t},\n\t\trun: options.run,\n\t\ttask: 'bundleRelease'\n\t});\n\tif (!(await pathExists(artifactPath))) {\n\t\tthrow new TypeError(\n\t\t\t`Android Gradle did not produce the expected App Bundle: ${artifactPath}`\n\t\t);\n\t}\n\tconst capture = options.capture ?? defaultCapture;\n\tconst signed = verifyAabSignature(artifactPath, capture, options.jarsigner);\n\tif (signed === null && !options.allowUnsigned) {\n\t\tthrow new TypeError(\n\t\t\t'Could not verify the Android App Bundle signature because jarsigner is unavailable. Install a JDK, or use --unsigned only for a non-publishable build.'\n\t\t);\n\t}\n\tif (!signed && !options.allowUnsigned) {\n\t\tthrow new TypeError(\n\t\t\t'Android Gradle produced an unsigned App Bundle. Configure the release signingConfig in the source-owned Android project (prefer external Gradle properties), or pass --unsigned only for a non-publishable build.'\n\t\t);\n\t}\n\tconst [bytes, sha256] = await Promise.all([\n\t\tstat(artifactPath).then(({ size }) => size),\n\t\tsha256File(artifactPath)\n\t]);\n\tconst releaseId = `amobile_android_${sha256}`;\n\tconst metadata = {\n\t\tappBuild: manifest.appBuild,\n\t\tappId: manifest.appId,\n\t\tbytes,\n\t\tengine: 'capacitor',\n\t\tformat: ABSOLUTE_ANDROID_RELEASE_FORMAT,\n\t\tplatform: 'android',\n\t\treleaseId,\n\t\truntime: manifest.runtime,\n\t\tsha256,\n\t\tsigned: signed === true,\n\t\ttype: 'aab',\n\t\t...(versionCode === undefined ? {} : { versionCode })\n\t} satisfies Omit<AbsoluteAndroidReleaseMetadata, 'artifact'>;\n\n\treturn installRelease(\n\t\tartifactPath,\n\t\tmetadata,\n\t\tsafeOutputDirectory(projectRoot, options.outputDirectory)\n\t);\n};\n",
17
17
  "import { access } from 'node:fs/promises';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport { isWSLEnvironment } from '../cli/utils';\n\nexport type AbsoluteMobileHost = 'macos' | 'windows' | 'linux' | 'wsl';\nexport type AbsoluteMobileDoctorStatus = 'pass' | 'warn' | 'fail' | 'skip';\nexport const ABSOLUTE_ANDROID_AVD_NAME = 'AbsoluteJS_API_36';\n\nexport type AbsoluteMobileDoctorCheck = {\n\tid: string;\n\tlabel: string;\n\tpath?: string;\n\tplatform: 'host' | 'android' | 'ios';\n\tremediation?: string;\n\tstatus: AbsoluteMobileDoctorStatus;\n};\n\nexport type InspectAbsoluteMobileToolchainOptions = {\n\tandroidRoot?: string | null;\n\tcapture?: (command: string[]) => { exitCode: number; stdout: string };\n\tenv?: Record<string, string | undefined>;\n\texists?: (path: string) => Promise<boolean>;\n\thost?: AbsoluteMobileHost;\n\twhich?: (command: string) => string | null;\n};\n\nconst captureCommand = (command: string[]) => {\n\ttry {\n\t\tconst result = Bun.spawnSync(command, {\n\t\t\tstderr: 'ignore',\n\t\t\tstdout: 'pipe'\n\t\t});\n\n\t\treturn {\n\t\t\texitCode: result.exitCode,\n\t\t\tstdout: result.stdout.toString()\n\t\t};\n\t} catch {\n\t\treturn { exitCode: 1, stdout: '' };\n\t}\n};\n\nconst hasAvailableIosRuntime = (output: string) => {\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(output);\n\t\tif (typeof parsed !== 'object' || parsed === null) return false;\n\t\tconst runtimes = Reflect.get(parsed, 'runtimes');\n\t\tif (!Array.isArray(runtimes)) return false;\n\n\t\treturn runtimes.some(\n\t\t\t(runtime) =>\n\t\t\t\ttypeof runtime === 'object' &&\n\t\t\t\truntime !== null &&\n\t\t\t\tReflect.get(runtime, 'isAvailable') === true &&\n\t\t\t\ttypeof Reflect.get(runtime, 'identifier') === 'string' &&\n\t\t\t\tString(Reflect.get(runtime, 'identifier')).includes('iOS')\n\t\t);\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst windowsPathToWsl = (path: string) => {\n\tconst match = /^([a-z]):[\\\\/](.*)$/i.exec(path.trim());\n\tif (!match) return path.trim().replaceAll('\\\\', '/');\n\n\treturn `/mnt/${match[1]?.toLowerCase()}/${match[2]?.replaceAll('\\\\', '/')}`;\n};\n\nconst windowsLocalAppDataFromWsl = () => {\n\ttry {\n\t\tconst result = Bun.spawnSync(\n\t\t\t['cmd.exe', '/d', '/c', 'echo', '%LOCALAPPDATA%'],\n\t\t\t{ stderr: 'ignore', stdout: 'pipe' }\n\t\t);\n\t\tif (result.exitCode !== 0) return undefined;\n\t\tconst output = result.stdout.toString().trim();\n\t\tif (!output || output === '%LOCALAPPDATA%') return undefined;\n\n\t\treturn windowsPathToWsl(output);\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n\nexport const absoluteManagedAndroidSdkRoot = (\n\thost: AbsoluteMobileHost,\n\tenv: Record<string, string | undefined> = process.env\n) => {\n\tif (host === 'windows') {\n\t\treturn join(\n\t\t\tenv.LOCALAPPDATA ?? join(homedir(), 'AppData', 'Local'),\n\t\t\t'AbsoluteJS',\n\t\t\t'Android',\n\t\t\t'Sdk'\n\t\t);\n\t}\n\tif (host === 'wsl') {\n\t\tconst localAppData = windowsLocalAppDataFromWsl();\n\t\tif (localAppData) {\n\t\t\treturn join(localAppData, 'AbsoluteJS', 'Android', 'Sdk');\n\t\t}\n\t}\n\n\treturn join(homedir(), '.absolutejs', 'android-sdk');\n};\n\nconst pathExists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const detectAbsoluteMobileHost = (\n\tplatform = process.platform,\n\twsl = isWSLEnvironment()\n) => {\n\tif (platform === 'darwin') return 'macos';\n\tif (platform === 'win32') return 'windows';\n\tif (platform === 'linux' && wsl) return 'wsl';\n\n\treturn 'linux';\n};\n\nconst executableNames = (host: AbsoluteMobileHost, name: string) => {\n\tif (host === 'wsl') return [`${name}.exe`, `${name}.bat`, name];\n\tif (host === 'windows') return [name, `${name}.exe`, `${name}.bat`];\n\n\treturn [name];\n};\n\nconst findExecutable = async (\n\tname: string,\n\tpaths: string[],\n\toptions: Required<\n\t\tPick<InspectAbsoluteMobileToolchainOptions, 'exists' | 'which'>\n\t>,\n\thost: AbsoluteMobileHost\n) => {\n\tconst existing = await Promise.all(\n\t\tpaths.map(async (path) =>\n\t\t\t(await options.exists(path)) ? path : undefined\n\t\t)\n\t);\n\tconst configured = existing.find((path) => path !== undefined);\n\tif (configured) return configured;\n\tfor (const candidate of executableNames(host, name)) {\n\t\tconst path = options.which(candidate);\n\t\tif (path) return path;\n\t}\n\n\treturn undefined;\n};\n\nconst toolCheck = (\n\tid: string,\n\tlabel: string,\n\tplatform: 'android' | 'ios',\n\tpath: string | undefined,\n\tremediation: string\n) =>\n\tpath\n\t\t? ({\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\tpath,\n\t\t\t\tplatform,\n\t\t\t\tstatus: 'pass'\n\t\t\t} satisfies AbsoluteMobileDoctorCheck)\n\t\t: ({\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\tplatform,\n\t\t\t\tremediation,\n\t\t\t\tstatus: 'fail'\n\t\t\t} satisfies AbsoluteMobileDoctorCheck);\n\nexport const inspectAbsoluteMobileToolchain = async (\n\tinput: InspectAbsoluteMobileToolchainOptions = {}\n) => {\n\tconst env = input.env ?? process.env;\n\tconst host = input.host ?? detectAbsoluteMobileHost();\n\tconst exists = input.exists ?? pathExists;\n\tconst which = input.which ?? ((command: string) => Bun.which(command));\n\tconst capture = input.capture ?? captureCommand;\n\tconst androidRoot =\n\t\tinput.androidRoot === null\n\t\t\t? undefined\n\t\t\t: (input.androidRoot ??\n\t\t\t\tenv.ANDROID_HOME ??\n\t\t\t\tenv.ANDROID_SDK_ROOT ??\n\t\t\t\tabsoluteManagedAndroidSdkRoot(host, env));\n\tconst windowsAndroidTools = host === 'windows' || host === 'wsl';\n\tconst android = (segments: string[]) =>\n\t\tandroidRoot ? join(androidRoot, ...segments) : undefined;\n\tconst paths = (values: Array<string | undefined>) =>\n\t\tvalues.filter((value): value is string => Boolean(value));\n\tconst adb = await findExecutable(\n\t\t'adb',\n\t\tpaths([\n\t\t\tandroid(['platform-tools', windowsAndroidTools ? 'adb.exe' : 'adb'])\n\t\t]),\n\t\t{ exists, which },\n\t\thost\n\t);\n\tconst emulator = await findExecutable(\n\t\t'emulator',\n\t\tpaths([\n\t\t\tandroid([\n\t\t\t\t'emulator',\n\t\t\t\twindowsAndroidTools ? 'emulator.exe' : 'emulator'\n\t\t\t])\n\t\t]),\n\t\t{ exists, which },\n\t\thost\n\t);\n\tconst sdkmanager = await findExecutable(\n\t\t'sdkmanager',\n\t\tpaths([\n\t\t\tandroid([\n\t\t\t\t'cmdline-tools',\n\t\t\t\t'latest',\n\t\t\t\t'bin',\n\t\t\t\twindowsAndroidTools ? 'sdkmanager.bat' : 'sdkmanager'\n\t\t\t])\n\t\t]),\n\t\t{ exists, which },\n\t\thost\n\t);\n\tconst avdmanager = await findExecutable(\n\t\t'avdmanager',\n\t\tpaths([\n\t\t\tandroid([\n\t\t\t\t'cmdline-tools',\n\t\t\t\t'latest',\n\t\t\t\t'bin',\n\t\t\t\twindowsAndroidTools ? 'avdmanager.bat' : 'avdmanager'\n\t\t\t])\n\t\t]),\n\t\t{ exists, which },\n\t\thost\n\t);\n\tconst java = await findExecutable('java', [], { exists, which }, host);\n\tconst checks: AbsoluteMobileDoctorCheck[] = [\n\t\t{\n\t\t\tid: 'host',\n\t\t\tlabel: `Development host: ${host}`,\n\t\t\tplatform: 'host',\n\t\t\tstatus: 'pass'\n\t\t},\n\t\ttoolCheck(\n\t\t\t'android.adb',\n\t\t\t'Android Debug Bridge',\n\t\t\t'android',\n\t\t\tadb,\n\t\t\t'Install Android SDK Platform Tools or expose adb on PATH.'\n\t\t),\n\t\ttoolCheck(\n\t\t\t'android.emulator',\n\t\t\t'Android Emulator',\n\t\t\t'android',\n\t\t\temulator,\n\t\t\t'Install the Android Emulator from Android Studio SDK Manager.'\n\t\t),\n\t\ttoolCheck(\n\t\t\t'android.sdkmanager',\n\t\t\t'Android SDK Manager',\n\t\t\t'android',\n\t\t\tsdkmanager,\n\t\t\t'Install Android SDK Command-line Tools (latest).'\n\t\t),\n\t\ttoolCheck(\n\t\t\t'android.avdmanager',\n\t\t\t'Android Virtual Device Manager',\n\t\t\t'android',\n\t\t\tavdmanager,\n\t\t\t'Install Android SDK Command-line Tools (latest).'\n\t\t),\n\t\ttoolCheck(\n\t\t\t'android.java',\n\t\t\t'Java runtime',\n\t\t\t'android',\n\t\t\tjava,\n\t\t\t'Install the JDK required by the configured Android Gradle plugin.'\n\t\t)\n\t];\n\tif (emulator) {\n\t\tconst avds = capture([emulator, '-list-avds']);\n\t\tconst hasManagedAvd =\n\t\t\tavds.exitCode === 0 &&\n\t\t\tavds.stdout.split(/\\r?\\n/).includes(ABSOLUTE_ANDROID_AVD_NAME);\n\t\tchecks.push({\n\t\t\tid: 'android.avd',\n\t\t\tlabel: `AbsoluteJS Android emulator (${ABSOLUTE_ANDROID_AVD_NAME})`,\n\t\t\tplatform: 'android',\n\t\t\tremediation: hasManagedAvd\n\t\t\t\t? undefined\n\t\t\t\t: 'Run absolute mobile doctor android --fix to provision the managed emulator.',\n\t\t\tstatus: hasManagedAvd ? 'pass' : 'fail'\n\t\t});\n\t}\n\n\tif (host === 'wsl') {\n\t\tchecks.push({\n\t\t\tid: 'android.virtualization',\n\t\t\tlabel: adb?.endsWith('.exe')\n\t\t\t\t? 'Windows-host Android bridge available to WSL'\n\t\t\t\t: 'WSL requires a Windows-host emulator bridge or Linux KVM',\n\t\t\tplatform: 'android',\n\t\t\tremediation: adb?.endsWith('.exe')\n\t\t\t\t? undefined\n\t\t\t\t: 'Expose the Windows Android SDK adb.exe to WSL, or enable /dev/kvm for a Linux SDK.',\n\t\t\tstatus: adb?.endsWith('.exe') ? 'pass' : 'warn'\n\t\t});\n\t} else if (host === 'linux') {\n\t\tconst hasKvm = await exists('/dev/kvm');\n\t\tchecks.push({\n\t\t\tid: 'android.virtualization',\n\t\t\tlabel: 'Linux KVM acceleration',\n\t\t\tplatform: 'android',\n\t\t\tremediation: hasKvm\n\t\t\t\t? undefined\n\t\t\t\t: 'Enable KVM and grant the current user access to /dev/kvm.',\n\t\t\tstatus: hasKvm ? 'pass' : 'warn'\n\t\t});\n\t}\n\n\tif (host !== 'macos') {\n\t\tchecks.push({\n\t\t\tid: 'ios.simulator',\n\t\t\tlabel: 'iOS Simulator requires macOS and Xcode',\n\t\t\tplatform: 'ios',\n\t\t\tstatus: 'skip'\n\t\t});\n\n\t\treturn checks;\n\t}\n\n\tconst xcrun = await findExecutable('xcrun', [], { exists, which }, host);\n\tconst xcodebuild = await findExecutable(\n\t\t'xcodebuild',\n\t\t[],\n\t\t{ exists, which },\n\t\thost\n\t);\n\tchecks.push(\n\t\ttoolCheck(\n\t\t\t'ios.xcrun',\n\t\t\t'Xcode command runner',\n\t\t\t'ios',\n\t\t\txcrun,\n\t\t\t'Install Xcode and select it with xcode-select.'\n\t\t),\n\t\ttoolCheck(\n\t\t\t'ios.xcodebuild',\n\t\t\t'Xcode build system',\n\t\t\t'ios',\n\t\t\txcodebuild,\n\t\t\t'Install Xcode and select it with xcode-select.'\n\t\t)\n\t);\n\tif (xcrun) {\n\t\tconst runtimes = capture([\n\t\t\txcrun,\n\t\t\t'simctl',\n\t\t\t'list',\n\t\t\t'runtimes',\n\t\t\t'--json'\n\t\t]);\n\t\tconst hasRuntime =\n\t\t\truntimes.exitCode === 0 && hasAvailableIosRuntime(runtimes.stdout);\n\t\tchecks.push({\n\t\t\tid: 'ios.runtime',\n\t\t\tlabel: 'iOS Simulator runtime',\n\t\t\tplatform: 'ios',\n\t\t\tremediation: hasRuntime\n\t\t\t\t? undefined\n\t\t\t\t: 'Run absolute mobile doctor ios --fix to download an iOS Simulator runtime.',\n\t\t\tstatus: hasRuntime ? 'pass' : 'fail'\n\t\t});\n\t}\n\n\treturn checks;\n};\n",
18
18
  "import { $ } from 'bun';\nimport { execSync } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { createServer } from 'node:net';\nimport { resolve } from 'node:path';\nimport type { DbScripts } from '../../types/cli';\nimport { MILLISECONDS_IN_A_SECOND } from '../constants';\nimport { formatTimestamp } from '../utils/startupBanner';\n\nexport const COMPOSE_PATH = 'db/docker-compose.db.yml';\nexport const DEFAULT_SERVER_ENTRY = 'src/backend/server.ts';\nexport const isWSLEnvironment = () => {\n\ttry {\n\t\tconst release = readFileSync('/proc/version', 'utf-8');\n\n\t\treturn /microsoft|wsl/i.test(release);\n\t} catch {\n\t\treturn false;\n\t}\n};\nconst safeKill = (pid: number) => {\n\ttry {\n\t\tprocess.kill(pid, 'SIGTERM');\n\t} catch {\n\t\t/* already exited */\n\t}\n};\n\n// Ask the OS for an unused TCP port (bind :0, read the assigned port, release it).\n// Used to pick a collision-proof port for the compile pre-render server: the old\n// `DEFAULT_PORT + 1` is frequently occupied on CI runners, and the `lsof`-based\n// stale-process cleanup is a no-op on minimal images where `lsof` isn't installed —\n// together those produced an EADDRINUSE that failed every runner compile.\nexport const findFreePort = () =>\n\tnew Promise<number>((_resolve, reject) => {\n\t\tconst server = createServer();\n\t\tserver.unref();\n\t\tserver.once('error', reject);\n\t\tserver.listen(0, '127.0.0.1', () => {\n\t\t\tconst address = server.address();\n\t\t\tif (!address || typeof address === 'string') {\n\t\t\t\tserver.close();\n\t\t\t\treject(new Error('Failed to allocate a free port'));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tserver.close((error) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t_resolve(address.port);\n\t\t\t});\n\t\t});\n\t});\n\nexport const killStaleProcesses = (\n\tport: number,\n\tlogMessage?: (message: string) => void\n) => {\n\tlet output: string;\n\ttry {\n\t\toutput = execSync(`lsof -ti tcp:${port} -sTCP:LISTEN 2>/dev/null`, {\n\t\t\tencoding: 'utf-8'\n\t\t}).trim();\n\t} catch {\n\t\treturn;\n\t}\n\tif (!output) {\n\t\treturn;\n\t}\n\n\tconst pids = output\n\t\t.split('\\n')\n\t\t.map(Number)\n\t\t.filter((pid) => pid !== process.pid && pid > 0);\n\tif (pids.length === 0) {\n\t\treturn;\n\t}\n\n\tpids.forEach(safeKill);\n\tconst message = `Killed ${pids.length} stale ${pids.length === 1 ? 'process' : 'processes'} on port ${port}.`;\n\tif (logMessage) {\n\t\tlogMessage(message);\n\n\t\treturn;\n\t}\n\tconsole.log(\n\t\t`\\x1b[2m${formatTimestamp()}\\x1b[0m \\x1b[33m[cli]\\x1b[0m \\x1b[33m${message}\\x1b[0m`\n\t);\n};\nexport const openUrlInBrowser = (\n\turl: string,\n\tonError?: (message: string) => void\n) => {\n\tif (process.env.ABSOLUTE_NO_OPEN) return false;\n\n\tconst { platform } = process;\n\tconst isWSL = platform === 'linux' && isWSLEnvironment();\n\tlet command: string;\n\tif (isWSL) {\n\t\tcommand = 'cmd.exe';\n\t} else if (platform === 'darwin') {\n\t\tcommand = 'open';\n\t} else if (platform === 'win32') {\n\t\tcommand = 'start';\n\t} else {\n\t\tcommand = 'xdg-open';\n\t}\n\tconst commandArgs = isWSL ? ['/c', 'start', url] : [url];\n\ttry {\n\t\tBun.spawn([command, ...commandArgs], {\n\t\t\tstderr: 'ignore',\n\t\t\tstdout: 'ignore'\n\t\t});\n\n\t\treturn true;\n\t} catch {\n\t\tonError?.(`Could not open browser automatically. Visit ${url}`);\n\n\t\treturn false;\n\t}\n};\n\nexport const printHelp = (subject = 'server', mobile = false) => {\n\tconst title = subject === 'workspace' ? 'workspace' : subject;\n\tconsole.log('');\n\tconsole.log('\\x1b[1mShortcuts:\\x1b[0m');\n\tconsole.log(` \\x1b[36mr\\x1b[0m / restart — Restart ${title}`);\n\tconsole.log(` \\x1b[36mp\\x1b[0m / pause — Pause/resume ${title}`);\n\tconsole.log(' \\x1b[36mo\\x1b[0m / open — Open in browser');\n\tconsole.log(' \\x1b[36mc\\x1b[0m / clear — Clear terminal');\n\tconsole.log(' \\x1b[36mm\\x1b[0m / heap — Write a heap snapshot');\n\tif (mobile) {\n\t\tconsole.log(\n\t\t\t' \\x1b[36md\\x1b[0m / device — Show mobile target status'\n\t\t);\n\t\tconsole.log(' relaunch — Relaunch the mobile app');\n\t}\n\tconsole.log(' \\x1b[36mq\\x1b[0m / quit — Graceful shutdown');\n\tconsole.log(' \\x1b[36mh\\x1b[0m / help — Show this help');\n\tconsole.log(' \\x1b[36m$\\x1b[0m — Run a shell command');\n\tconsole.log(\n\t\t' \\x1b[36m↑\\x1b[0m / \\x1b[36m↓\\x1b[0m — Command history'\n\t);\n\tconsole.log('');\n};\nexport const printHint = () => {\n\tconsole.log('\\x1b[90mpress h + enter to show shortcuts\\x1b[0m');\n};\nexport const readDbScripts = async () => {\n\tconst pkgPath = resolve('package.json');\n\tif (!existsSync(pkgPath)) return null;\n\n\tconst pkg = await Bun.file(pkgPath).json();\n\tconst upCommand: string | undefined = pkg.scripts?.['db:up'];\n\tconst downCommand: string | undefined = pkg.scripts?.['db:down'];\n\n\tif (!upCommand || !downCommand) return null;\n\n\treturn { downCommand, upCommand };\n};\nexport const startDatabase = async (scripts: DbScripts) => {\n\tawait timed('Starting database container...', async () => {\n\t\tconst { exitCode } = await $`${{ raw: scripts.upCommand }}`\n\t\t\t.quiet()\n\t\t\t.nothrow();\n\t\tif (exitCode !== 0) process.exit(exitCode);\n\t});\n};\nexport const stopDatabase = async (scripts: DbScripts) => {\n\tconsole.log('\\nStopping database container...');\n\tawait $`${{ raw: scripts.downCommand }}`.quiet().nothrow();\n};\nexport const timed = async (label: string, task: () => Promise<void>) => {\n\tprocess.stdout.write(label);\n\tconst start = performance.now();\n\tawait task();\n\tconst duration = (\n\t\t(performance.now() - start) /\n\t\tMILLISECONDS_IN_A_SECOND\n\t).toFixed(2);\n\tprocess.stdout.write(` \\x1b[90m${duration}s\\x1b[0m\\n`);\n};\n",
19
- "import {\n\taccess,\n\tcopyFile,\n\tlstat,\n\tmkdir,\n\treadFile,\n\treaddir,\n\treadlink,\n\trealpath,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { createHash, randomUUID } from 'node:crypto';\nimport {\n\tdirname,\n\tisAbsolute,\n\tjoin,\n\trelative,\n\tresolve,\n\tsep,\n\twin32\n} from 'node:path';\nimport {\n\tABSOLUTE_ANDROID_AVD_NAME,\n\tabsoluteManagedAndroidSdkRoot,\n\tdetectAbsoluteMobileHost,\n\tinspectAbsoluteMobileToolchain,\n\ttype AbsoluteMobileHost\n} from './emulatorDoctor';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport { writeAbsoluteCapacitorConfig } from './capacitorProject';\nimport { getDurationString } from '../utils/getDurationString';\n\nconst ANDROID_BOOT_TIMEOUT_MS = 180_000;\nconst ANDROID_BOOT_POLL_MS = 1_000;\nconst DEV_JOURNAL_FORMAT = 1;\nconst NATIVE_CACHE_FORMAT = 1;\nconst HASH_RADIX = 16;\nconst EXECUTABLE_MODE_MASK = 0o111;\nconst NATIVE_PUBLIC_PATH_SEGMENTS = 5;\nconst CAPACITOR_PROJECT_DIRECTORY_PATTERN =\n\t/project\\(['\"](:[^'\"]+)['\"]\\)\\.projectDir\\s*=\\s*new File\\(['\"]([^'\"]+)['\"]\\)/gu;\n\nexport type AbsoluteAndroidCommandOptions = {\n\tcwd?: string;\n\tenv?: Record<string, string | undefined>;\n\tsignal?: AbortSignal;\n};\n\nexport type AbsoluteAndroidCommandResult = {\n\texitCode: number;\n\tstderr: string;\n\tstdout: string;\n};\n\nexport type AbsoluteAndroidDevState =\n\t| 'booting'\n\t| 'building'\n\t| 'closed'\n\t| 'closing'\n\t| 'configuring'\n\t| 'connecting'\n\t| 'failed'\n\t| 'forwarding'\n\t| 'installing'\n\t| 'checking-native'\n\t| 'launching'\n\t| 'ready'\n\t| 'streaming-logs'\n\t| 'syncing';\n\nexport type AbsoluteAndroidNativeLogEntry = {\n\tlevel: 'debug' | 'error' | 'fatal' | 'info' | 'verbose' | 'warn';\n\tmessage: string;\n\ttag: string;\n};\n\ntype AbsoluteAndroidLogStream = {\n\tclose: () => Promise<void>;\n};\n\ntype AndroidDevJournal = {\n\tbackupPath: string;\n\tformat: number;\n\tmanifestBackupPath?: string;\n\tnativeConfigPath: string;\n\tnativeManifestPath?: string;\n};\n\ntype AndroidNativeCache = {\n\tappId: string;\n\tfingerprint: string;\n\tformat: number;\n\tinstallations: Record<string, string>;\n};\n\ntype AndroidInstalledPackage = {\n\tidentity: string;\n\tuid?: string;\n};\n\nexport type AbsoluteAndroidDevProject = {\n\tadb: string;\n\tandroidRoot: string;\n\tcap: string;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\temulator: string;\n\thost: AbsoluteMobileHost;\n\tnativeDirectory: string;\n\tprojectRoot: string;\n};\n\nexport type AbsoluteAndroidDevSession = {\n\tclose: () => Promise<void>;\n\tnativeCacheHit: boolean;\n\trebuild: () => Promise<AbsoluteAndroidDevSession>;\n\trelaunch: () => Promise<void>;\n\tserial: string;\n\tstate: AbsoluteAndroidDevState;\n\tstartedEmulator: boolean;\n\ttimings: Record<string, number>;\n};\n\nexport type AbsoluteAndroidDevPhaseTiming = {\n\tdurationMs: number;\n\tphase: AbsoluteAndroidDevState;\n\ttotalMs: number;\n};\n\nconst ANDROID_TIMING_PHASES: Array<[string, string]> = [\n\t['syncing', 'Capacitor sync'],\n\t['configuring', 'dev config'],\n\t['fingerprinting', 'fingerprint'],\n\t['booting', 'emulator'],\n\t['connecting', 'device ready'],\n\t['forwarding', 'ADB reverse'],\n\t['checking-native', 'package check'],\n\t['building', 'Gradle'],\n\t['installing', 'install'],\n\t['launching', 'launch'],\n\t['streaming-logs', 'logs']\n];\n\nconst androidTimingSummary = (timings: Record<string, number>) =>\n\tANDROID_TIMING_PHASES.map(([phase, label]) => {\n\t\tconst duration = timings[phase];\n\t\tif (duration === undefined || label === undefined) return null;\n\n\t\treturn `${label} ${getDurationString(duration)}`;\n\t})\n\t\t.filter((value): value is string => value !== null)\n\t\t.join(', ');\n\nexport type PrepareAbsoluteAndroidDevOptions = {\n\tcreateNativeProject: boolean;\n\tprojectRoot: string;\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => Promise<number>;\n};\n\nexport type StartAbsoluteAndroidDevOptions = {\n\tcapture?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => AbsoluteAndroidCommandResult;\n\tlog?: (message: string) => void;\n\tnativeLog?: (entry: AbsoluteAndroidNativeLogEntry) => void;\n\tonPhaseTiming?: (timing: AbsoluteAndroidDevPhaseTiming) => void;\n\tonStateChange?: (state: AbsoluteAndroidDevState) => void;\n\thttps?: boolean;\n\t/** Launch the locally embedded production web bundle while forwarding\n\t * `port` only for its configured backend. No dev-server URL is written. */\n\tembeddedBundle?: boolean;\n\tport: number;\n\tproject: AbsoluteAndroidDevProject;\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => Promise<number>;\n\tsignal?: AbortSignal;\n\tsleep?: (milliseconds: number) => Promise<void>;\n\tspawn?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => void;\n\tstartNativeLogs?: (\n\t\tcommand: string[],\n\t\toptions: AbsoluteAndroidCommandOptions,\n\t\tonLine: (line: string) => void\n\t) => AbsoluteAndroidLogStream;\n};\n\nconst pathExists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst forwardCommandOutput = (\n\tstream: ReadableStream<Uint8Array>,\n\tdestination: NodeJS.WriteStream\n) =>\n\tstream.pipeTo(\n\t\tnew WritableStream({\n\t\t\twrite: (chunk) => {\n\t\t\t\tdestination.write(chunk);\n\t\t\t}\n\t\t})\n\t);\n\nconst runCommand = async (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions = {}\n) => {\n\tconst subprocess = Bun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tsignal: options.signal,\n\t\tstderr: 'pipe',\n\t\tstdin: 'ignore',\n\t\tstdout: 'pipe'\n\t});\n\tconst [exitCode] = await Promise.all([\n\t\tsubprocess.exited,\n\t\tforwardCommandOutput(subprocess.stdout, process.stdout),\n\t\tforwardCommandOutput(subprocess.stderr, process.stderr)\n\t]);\n\n\treturn exitCode;\n};\n\nconst captureCommand = (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions = {}\n) => {\n\ttry {\n\t\tconst result = Bun.spawnSync(command, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: options.env,\n\t\t\tstderr: 'pipe',\n\t\t\tstdout: 'pipe'\n\t\t});\n\n\t\treturn {\n\t\t\texitCode: result.exitCode,\n\t\t\tstderr: result.stderr.toString(),\n\t\t\tstdout: result.stdout.toString()\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\texitCode: 1,\n\t\t\tstderr: error instanceof Error ? error.message : String(error),\n\t\t\tstdout: ''\n\t\t};\n\t}\n};\n\nconst spawnCommand = (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions = {}\n) => {\n\tBun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tstderr: 'ignore',\n\t\tstdin: 'ignore',\n\t\tstdout: 'ignore'\n\t});\n};\n\nconst LOGCAT_LINE_PATTERN =\n\t/^\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}\\.\\d+\\s+\\d+\\s+\\d+\\s+([VDIWEF])\\s+([^:]+):\\s?(.*)$/u;\nconst ASCII_CONTROL_END = 31;\nconst ASCII_DELETE = 127;\nconst ASCII_ESCAPE = 27;\nconst ASCII_HORIZONTAL_TAB = 9;\nconst LOGCAT_MESSAGE_CAPTURE = 3;\nconst UNFOUND_INDEX = -1;\nconst ANSI_SEQUENCE_PATTERN = new RegExp(\n\t`${String.fromCharCode(ASCII_ESCAPE)}(?:\\\\[[0-?]*[ -/]*[@-~]|[@-_])`,\n\t'gu'\n);\nconst AUTHORIZATION_SECRET_PATTERN =\n\t/([\"']?(?:authorization|proxy-authorization)[\"']?\\s*[:=]\\s*)(?:Bearer|Basic)\\s+[^\\s,;]+/giu;\nconst BEARER_SECRET_PATTERN = /\\b(Bearer)\\s+[^\\s,;]+/giu;\nconst COOKIE_SECRET_PATTERN =\n\t/([\"']?(?:cookie|set-cookie)[\"']?\\s*[:=]\\s*).*/giu;\nconst NAMED_SECRET_PATTERN =\n\t/([\"']?(?:access_token|refresh_token|id_token|client_secret|password|code|token)[\"']?\\s*[:=]\\s*)(\"[^\"]*\"|'[^']*'|[^\\s&,;]+)/giu;\nconst QUERY_SECRET_PATTERN = /([?&](?:code|token)=)[^&\\s]+/giu;\n\nexport const redactAbsoluteAndroidLog = (value: string) =>\n\tvalue\n\t\t.replace(ANSI_SEQUENCE_PATTERN, '')\n\t\t.split('')\n\t\t.filter((character) => {\n\t\t\tconst code = character.charCodeAt(0);\n\n\t\t\treturn (\n\t\t\t\tcode === ASCII_HORIZONTAL_TAB ||\n\t\t\t\t(code > ASCII_CONTROL_END && code !== ASCII_DELETE)\n\t\t\t);\n\t\t})\n\t\t.join('')\n\t\t.replace(AUTHORIZATION_SECRET_PATTERN, '$1[REDACTED]')\n\t\t.replace(BEARER_SECRET_PATTERN, '$1 [REDACTED]')\n\t\t.replace(COOKIE_SECRET_PATTERN, '$1[REDACTED]')\n\t\t.replace(NAMED_SECRET_PATTERN, '$1[REDACTED]')\n\t\t.replace(QUERY_SECRET_PATTERN, '$1[REDACTED]');\n\nconst androidLogLevel = (level: string) => {\n\tif (level === 'V') return 'verbose';\n\tif (level === 'D') return 'debug';\n\tif (level === 'W') return 'warn';\n\tif (level === 'E') return 'error';\n\tif (level === 'F') return 'fatal';\n\n\treturn 'info';\n};\n\nconst emitCompleteLogLines = (\n\tvalue: string,\n\tonLine: (line: string) => void\n) => {\n\tlet buffered = value;\n\tlet newlineIndex = buffered.indexOf('\\n');\n\twhile (newlineIndex !== UNFOUND_INDEX) {\n\t\tonLine(buffered.slice(0, newlineIndex).replace(/\\r$/u, ''));\n\t\tbuffered = buffered.slice(newlineIndex + 1);\n\t\tnewlineIndex = buffered.indexOf('\\n');\n\t}\n\n\treturn buffered;\n};\n\nconst decodeLogStream = () => {\n\tconst decoder = new TextDecoder();\n\n\treturn new TransformStream<Uint8Array, string>({\n\t\tflush: (controller) => {\n\t\t\tconst remaining = decoder.decode();\n\t\t\tif (remaining) controller.enqueue(remaining);\n\t\t},\n\t\ttransform: (chunk, controller) => {\n\t\t\tconst decoded = decoder.decode(chunk, { stream: true });\n\t\t\tif (decoded) controller.enqueue(decoded);\n\t\t}\n\t});\n};\n\nexport const isIgnorableAbsoluteAndroidLog = (\n\tentry: AbsoluteAndroidNativeLogEntry\n) =>\n\tentry.tag === 'Capacitor/Console' &&\n\tentry.message.includes('Error injecting safe area CSS:') &&\n\tentry.message.includes(\"Cannot read properties of null (reading 'style')\");\nexport const parseAbsoluteAndroidLogLine = (\n\tline: string\n): AbsoluteAndroidNativeLogEntry | null => {\n\tconst sanitized = redactAbsoluteAndroidLog(line).trim();\n\tif (!sanitized) return null;\n\tconst match = LOGCAT_LINE_PATTERN.exec(sanitized);\n\tif (!match) {\n\t\treturn { level: 'info', message: sanitized, tag: 'logcat' };\n\t}\n\n\treturn {\n\t\tlevel: androidLogLevel(match[1] ?? 'I'),\n\t\tmessage: match[LOGCAT_MESSAGE_CAPTURE] ?? '',\n\t\ttag: match[2]?.trim() || 'android'\n\t};\n};\n\nconst consumeLogLines = async (\n\tstream: ReadableStream<Uint8Array>,\n\tonLine: (line: string) => void\n) => {\n\tlet buffered = '';\n\tawait stream.pipeThrough(decodeLogStream()).pipeTo(\n\t\tnew WritableStream({\n\t\t\twrite: (chunk) => {\n\t\t\t\tbuffered = emitCompleteLogLines(buffered + chunk, onLine);\n\t\t\t}\n\t\t})\n\t);\n\tif (buffered) {\n\t\tonLine(buffered.replace(/\\r$/u, ''));\n\t}\n};\n\nconst startNativeLogStream = (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions,\n\tonLine: (line: string) => void\n): AbsoluteAndroidLogStream => {\n\tconst subprocess = Bun.spawn(command, {\n\t\tenv: options.env,\n\t\tstderr: 'pipe',\n\t\tstdin: 'ignore',\n\t\tstdout: 'pipe'\n\t});\n\tconst output = Promise.all([\n\t\tconsumeLogLines(subprocess.stdout, onLine),\n\t\tconsumeLogLines(subprocess.stderr, onLine)\n\t]);\n\tvoid output.catch(() => undefined);\n\n\treturn {\n\t\tclose: async () => {\n\t\t\ttry {\n\t\t\t\tsubprocess.kill();\n\t\t\t} catch {\n\t\t\t\t/* logcat already exited */\n\t\t\t}\n\t\t\tawait Promise.all([\n\t\t\t\tsubprocess.exited.catch(() => undefined),\n\t\t\t\toutput.catch(() => undefined)\n\t\t\t]);\n\t\t}\n\t};\n};\n\nconst requireSuccess = async (\n\tcommand: string[],\n\tlabel: string,\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>,\n\toptions?: AbsoluteAndroidCommandOptions\n) => {\n\tconst exitCode = await run(command, options);\n\tthrowIfAborted(options?.signal);\n\tif (exitCode !== 0) throw new Error(`${label} failed (exit ${exitCode}).`);\n};\n\nconst throwIfAborted = (signal?: AbortSignal) => {\n\tif (!signal?.aborted) return;\n\tthrow new DOMException(\n\t\t'Android development startup was cancelled.',\n\t\t'AbortError'\n\t);\n};\n\nconst journalPaths = (projectRoot: string) => {\n\tconst root = join(projectRoot, '.absolutejs', 'mobile', 'dev-session');\n\n\treturn {\n\t\tbackup: join(root, 'capacitor.config.backup.json'),\n\t\tjournal: join(root, 'journal.json'),\n\t\tmanifestBackup: join(root, 'AndroidManifest.backup.xml'),\n\t\troot\n\t};\n};\n\nconst isInside = (root: string, path: string) => {\n\tconst resolvedRoot = resolve(root);\n\tconst resolvedPath = resolve(path);\n\tconst relativePath = relative(resolvedRoot, resolvedPath);\n\n\treturn (\n\t\trelativePath === '' ||\n\t\t(relativePath !== '..' &&\n\t\t\t!relativePath.startsWith(`..${sep}`) &&\n\t\t\t!isAbsolute(relativePath))\n\t);\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst nativeCachePath = (projectRoot: string) =>\n\tjoin(projectRoot, '.absolutejs', 'mobile', 'cache', 'android-debug.json');\n\nconst parseNativeCache = (value: unknown): AndroidNativeCache | null => {\n\tif (!isRecord(value)) return null;\n\tconst { appId, fingerprint, format, installations } = value;\n\tif (\n\t\tformat !== NATIVE_CACHE_FORMAT ||\n\t\ttypeof appId !== 'string' ||\n\t\ttypeof fingerprint !== 'string' ||\n\t\t!isRecord(installations) ||\n\t\t!Object.values(installations).every(\n\t\t\t(identity) => typeof identity === 'string'\n\t\t)\n\t) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tappId,\n\t\tfingerprint,\n\t\tformat,\n\t\tinstallations: Object.fromEntries(\n\t\t\tObject.entries(installations).map(([serial, identity]) => [\n\t\t\t\tserial,\n\t\t\t\tString(identity)\n\t\t\t])\n\t\t)\n\t};\n};\n\nconst readNativeCache = async (projectRoot: string) =>\n\treadFile(nativeCachePath(projectRoot), 'utf8')\n\t\t.then((source) => parseNativeCache(JSON.parse(source)))\n\t\t.catch(() => null);\n\nconst writeNativeCache = async (\n\tprojectRoot: string,\n\tcache: AndroidNativeCache\n) => {\n\tconst destination = nativeCachePath(projectRoot);\n\tconst temporary = `${destination}.${process.pid}.${randomUUID()}.tmp`;\n\tawait mkdir(dirname(destination), { recursive: true });\n\ttry {\n\t\tawait writeFile(temporary, `${JSON.stringify(cache, null, '\\t')}\\n`, {\n\t\t\tflag: 'wx'\n\t\t});\n\t\tawait rename(temporary, destination);\n\t} finally {\n\t\tawait rm(temporary, { force: true }).catch(() => undefined);\n\t}\n};\n\nconst nativeDependencySources = async (nativeDirectory: string) => {\n\tconst settings = await readFile(\n\t\tjoin(nativeDirectory, 'capacitor.settings.gradle'),\n\t\t'utf8'\n\t);\n\tconst pattern = new RegExp(\n\t\tCAPACITOR_PROJECT_DIRECTORY_PATTERN.source,\n\t\tCAPACITOR_PROJECT_DIRECTORY_PATTERN.flags\n\t);\n\tconst dependencies = [...settings.matchAll(pattern)].map((match) => ({\n\t\tname: (match[1] ?? '').slice(1).replaceAll(/[^a-zA-Z0-9_.-]/gu, '_'),\n\t\tsource: resolve(nativeDirectory, match[2] ?? '')\n\t}));\n\tif (dependencies.length === 0) {\n\t\tthrow new Error(\n\t\t\t'Capacitor Android settings did not declare any native dependencies.'\n\t\t);\n\t}\n\n\treturn { dependencies, settings };\n};\n\nconst shouldIgnoreNativePath = (\n\trelativePath: string,\n\tignorePublicBundle: boolean\n) => {\n\tconst parts = relativePath.split(sep);\n\tif (\n\t\tparts.includes('.gradle') ||\n\t\tparts.includes('build') ||\n\t\tparts.includes('.absolutejs-dependencies')\n\t) {\n\t\treturn true;\n\t}\n\n\treturn (\n\t\tignorePublicBundle &&\n\t\tparts.slice(0, NATIVE_PUBLIC_PATH_SEGMENTS).join('/') ===\n\t\t\t'app/src/main/assets/public'\n\t);\n};\n\ntype NativeDirectoryCollector = (\n\troot: string,\n\tlabel: string,\n\tdirectory: string,\n\tignorePublicBundle: boolean\n) => Promise<string[]>;\n\nconst collectNativePath = async (\n\troot: string,\n\tlabel: string,\n\tpath: string,\n\tisDirectory: boolean,\n\tisFile: boolean,\n\tisSymbolicLink: boolean,\n\tignorePublicBundle: boolean\n) => {\n\tconst relativePath = relative(root, path);\n\tif (shouldIgnoreNativePath(relativePath, ignorePublicBundle)) return [];\n\tconst identity = `${label}:${relativePath.split(sep).join('/')}\\0`;\n\tif (isDirectory) {\n\t\treturn collectNativeDirectory(root, label, path, ignorePublicBundle);\n\t}\n\tif (isSymbolicLink) {\n\t\treturn [`link\\0${identity}${await readlink(path)}\\0`];\n\t}\n\tif (!isFile) return [];\n\tconst [metadata, contents] = await Promise.all([\n\t\tlstat(path),\n\t\treadFile(path)\n\t]);\n\tconst contentDigest = createHash('sha256').update(contents).digest('hex');\n\n\treturn [\n\t\t`file\\0${identity}${metadata.mode & EXECUTABLE_MODE_MASK}\\0${contentDigest}\\0`\n\t];\n};\n\nconst collectNativeDirectory: NativeDirectoryCollector = async (\n\troot,\n\tlabel,\n\tdirectory,\n\tignorePublicBundle\n) => {\n\tconst entries = await readdir(directory, { withFileTypes: true });\n\tentries.sort((left, right) => left.name.localeCompare(right.name));\n\tconst records = await Promise.all(\n\t\tentries.map((entry) =>\n\t\t\tcollectNativePath(\n\t\t\t\troot,\n\t\t\t\tlabel,\n\t\t\t\tjoin(directory, entry.name),\n\t\t\t\tentry.isDirectory(),\n\t\t\t\tentry.isFile(),\n\t\t\t\tentry.isSymbolicLink(),\n\t\t\t\tignorePublicBundle\n\t\t\t)\n\t\t)\n\t);\n\n\treturn records.flat();\n};\n\nconst hashNativeTree = async (\n\troot: string,\n\tlabel: string,\n\tignorePublicBundle: boolean\n) => {\n\tconst resolvedRoot = await realpath(root);\n\tconst records = await collectNativeDirectory(\n\t\tresolvedRoot,\n\t\tlabel,\n\t\tresolvedRoot,\n\t\tignorePublicBundle\n\t);\n\n\treturn createHash('sha256').update(records.join('')).digest('hex');\n};\n\ntype NativeFingerprintRoot = {\n\tignorePublicBundle: boolean;\n\tlabel: string;\n\tsource: string;\n};\n\nexport const fingerprintAbsoluteAndroidNativeProject = async (\n\tproject: Pick<AbsoluteAndroidDevProject, 'nativeDirectory'>,\n\toptions: { includePublicBundle?: boolean } = {}\n) => {\n\tconst { dependencies } = await nativeDependencySources(\n\t\tproject.nativeDirectory\n\t);\n\tconst roots: NativeFingerprintRoot[] = [\n\t\t{\n\t\t\tignorePublicBundle: options.includePublicBundle !== true,\n\t\t\tlabel: 'android',\n\t\t\tsource: project.nativeDirectory\n\t\t},\n\t\t...dependencies\n\t\t\t.sort((left, right) => left.name.localeCompare(right.name))\n\t\t\t.map((dependency) => ({\n\t\t\t\tignorePublicBundle: false,\n\t\t\t\tlabel: `dependency:${dependency.name}`,\n\t\t\t\tsource: dependency.source\n\t\t\t}))\n\t];\n\tconst treeDigests = await Promise.all(\n\t\troots.map((root) =>\n\t\t\thashNativeTree(root.source, root.label, root.ignorePublicBundle)\n\t\t)\n\t);\n\n\treturn createHash('sha256').update(treeDigests.join('\\0')).digest('hex');\n};\n\nconst parseJournal = (value: unknown): AndroidDevJournal | null => {\n\tif (typeof value !== 'object' || value === null) return null;\n\tconst backupPath = Reflect.get(value, 'backupPath');\n\tconst format = Reflect.get(value, 'format');\n\tconst manifestBackupPath = Reflect.get(value, 'manifestBackupPath');\n\tconst nativeConfigPath = Reflect.get(value, 'nativeConfigPath');\n\tconst nativeManifestPath = Reflect.get(value, 'nativeManifestPath');\n\tif (\n\t\ttypeof backupPath !== 'string' ||\n\t\tformat !== DEV_JOURNAL_FORMAT ||\n\t\ttypeof nativeConfigPath !== 'string'\n\t) {\n\t\treturn null;\n\t}\n\tif (\n\t\t(manifestBackupPath !== undefined ||\n\t\t\tnativeManifestPath !== undefined) &&\n\t\t(typeof manifestBackupPath !== 'string' ||\n\t\t\ttypeof nativeManifestPath !== 'string')\n\t) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tbackupPath,\n\t\tformat,\n\t\tmanifestBackupPath,\n\t\tnativeConfigPath,\n\t\tnativeManifestPath\n\t};\n};\n\nexport const repairAbsoluteAndroidDevSession = async (projectRoot: string) => {\n\tconst paths = journalPaths(projectRoot);\n\tif (!(await pathExists(paths.journal))) {\n\t\tawait rm(paths.root, { force: true, recursive: true });\n\n\t\treturn false;\n\t}\n\tconst journal = await readFile(paths.journal, 'utf8')\n\t\t.then((source) => parseJournal(JSON.parse(source)))\n\t\t.catch(() => null);\n\tif (\n\t\t!journal ||\n\t\t!isInside(projectRoot, journal.nativeConfigPath) ||\n\t\t!isInside(paths.root, journal.backupPath) ||\n\t\t(journal.nativeManifestPath !== undefined &&\n\t\t\t!isInside(projectRoot, journal.nativeManifestPath)) ||\n\t\t(journal.manifestBackupPath !== undefined &&\n\t\t\t!isInside(paths.root, journal.manifestBackupPath))\n\t) {\n\t\tthrow new Error(\n\t\t\t`Refusing unsafe or invalid mobile dev journal at ${paths.journal}.`\n\t\t);\n\t}\n\tif (await pathExists(journal.backupPath)) {\n\t\tawait mkdir(dirname(journal.nativeConfigPath), { recursive: true });\n\t\tawait copyFile(journal.backupPath, journal.nativeConfigPath);\n\t}\n\tif (\n\t\tjournal.manifestBackupPath &&\n\t\tjournal.nativeManifestPath &&\n\t\t(await pathExists(journal.manifestBackupPath))\n\t) {\n\t\tawait mkdir(dirname(journal.nativeManifestPath), { recursive: true });\n\t\tawait copyFile(journal.manifestBackupPath, journal.nativeManifestPath);\n\t}\n\tawait rm(paths.root, { force: true, recursive: true });\n\n\treturn true;\n};\n\nconst androidDevelopmentManifest = (source: string, cleartext: boolean) => {\n\tif (!cleartext) return source;\n\tif (/android:usesCleartextTraffic=[\"'][^\"']*[\"']/u.test(source)) {\n\t\treturn source.replace(\n\t\t\t/android:usesCleartextTraffic=[\"'][^\"']*[\"']/u,\n\t\t\t'android:usesCleartextTraffic=\"true\"'\n\t\t);\n\t}\n\n\treturn source.replace(\n\t\t'<application',\n\t\t'<application\\n android:usesCleartextTraffic=\"true\"'\n\t);\n};\n\nconst writeDevConfig = async (\n\tprojectRoot: string,\n\tnativeConfigPath: string,\n\tnativeManifestPath: string,\n\tport: number,\n\thttps: boolean,\n\tentry: string,\n\tembeddedBundle: boolean\n) => {\n\tconst paths = journalPaths(projectRoot);\n\tawait repairAbsoluteAndroidDevSession(projectRoot);\n\tconst source = await readFile(nativeConfigPath, 'utf8');\n\tconst manifestSource = await readFile(nativeManifestPath, 'utf8');\n\tconst parsed: unknown = JSON.parse(source);\n\tif (!isRecord(parsed)) {\n\t\tthrow new Error(\n\t\t\t`Invalid Capacitor native config at ${nativeConfigPath}.`\n\t\t);\n\t}\n\tawait mkdir(paths.root, { recursive: true });\n\tawait writeFile(paths.backup, source, { flag: 'wx' });\n\tawait writeFile(paths.manifestBackup, manifestSource, { flag: 'wx' });\n\tconst journal: AndroidDevJournal = {\n\t\tbackupPath: paths.backup,\n\t\tformat: DEV_JOURNAL_FORMAT,\n\t\tmanifestBackupPath: paths.manifestBackup,\n\t\tnativeConfigPath,\n\t\tnativeManifestPath\n\t};\n\tawait writeFile(paths.journal, `${JSON.stringify(journal, null, '\\t')}\\n`, {\n\t\tflag: 'wx'\n\t});\n\tif (!embeddedBundle) {\n\t\tconst currentServer = parsed.server;\n\t\tconst developmentUrl = new URL(\n\t\t\t`${https ? 'https' : 'http'}://localhost:${port}${entry}`\n\t\t);\n\t\tdevelopmentUrl.searchParams.set(\n\t\t\t'__absolute_target',\n\t\t\t'capacitor-android'\n\t\t);\n\t\tparsed.server = {\n\t\t\t...(typeof currentServer === 'object' && currentServer !== null\n\t\t\t\t? currentServer\n\t\t\t\t: {}),\n\t\t\tcleartext: !https,\n\t\t\turl: developmentUrl.href\n\t\t};\n\t}\n\tawait writeFile(\n\t\tnativeConfigPath,\n\t\t`${JSON.stringify(parsed, null, '\\t')}\\n`\n\t);\n\tawait writeFile(\n\t\tnativeManifestPath,\n\t\tandroidDevelopmentManifest(manifestSource, !https)\n\t);\n};\n\nexport const parseAdbDevices = (output: string) =>\n\toutput\n\t\t.split(/\\r?\\n/)\n\t\t.slice(1)\n\t\t.map((line) => line.trim().split(/\\s+/, 2))\n\t\t.filter(\n\t\t\t(parts): parts is [string, string] =>\n\t\t\t\tparts.length === 2 && parts[1] === 'device'\n\t\t)\n\t\t.map(([serial]) => serial);\n\nconst isManagedEmulatorSerial = (\n\tserial: string,\n\tadb: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tif (!serial.startsWith('emulator-')) return false;\n\tconst avd = capture([adb, '-s', serial, 'emu', 'avd', 'name'], { env });\n\n\treturn (\n\t\tavd.exitCode === 0 &&\n\t\tavd.stdout\n\t\t\t.split(/\\r?\\n/)\n\t\t\t.map((value) => value.trim())\n\t\t\t.includes(ABSOLUTE_ANDROID_AVD_NAME)\n\t);\n};\n\nconst managedEmulatorSerial = (\n\tadb: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst devices = capture([adb, 'devices'], { env });\n\tif (devices.exitCode !== 0) return undefined;\n\n\treturn parseAdbDevices(devices.stdout).find((serial) =>\n\t\tisManagedEmulatorSerial(serial, adb, capture, env)\n\t);\n};\n\nconst completedBootSerial = (\n\tproject: AbsoluteAndroidDevProject,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst serial = managedEmulatorSerial(project.adb, capture, env);\n\tif (!serial) return undefined;\n\tconst booted = capture(\n\t\t[project.adb, '-s', serial, 'shell', 'getprop', 'sys.boot_completed'],\n\t\t{ env }\n\t);\n\n\treturn booted.exitCode === 0 && booted.stdout.trim() === '1'\n\t\t? serial\n\t\t: undefined;\n};\n\nconst preferredCompletedBootSerial = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst booted = capture(\n\t\t[project.adb, '-s', serial, 'shell', 'getprop', 'sys.boot_completed'],\n\t\t{ env }\n\t);\n\n\treturn booted.exitCode === 0 && booted.stdout.trim() === '1'\n\t\t? serial\n\t\t: undefined;\n};\n\nconst waitForManagedEmulator = async (\n\tproject: AbsoluteAndroidDevProject,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tsleep: NonNullable<StartAbsoluteAndroidDevOptions['sleep']>,\n\tenv: Record<string, string | undefined>,\n\tsignal?: AbortSignal,\n\tpreferredSerial?: string\n) => {\n\tconst deadline = Date.now() + ANDROID_BOOT_TIMEOUT_MS;\n\tlet firstSerial = preferredSerial;\n\tconst poll = async () => {\n\t\tthrowIfAborted(signal);\n\t\tconst serial = firstSerial\n\t\t\t? preferredCompletedBootSerial(project, firstSerial, capture, env)\n\t\t\t: completedBootSerial(project, capture, env);\n\t\tfirstSerial = undefined;\n\t\tif (serial) return serial;\n\t\tif (Date.now() >= deadline) {\n\t\t\tthrow new Error(\n\t\t\t\t`Android emulator ${ABSOLUTE_ANDROID_AVD_NAME} did not finish booting within ${ANDROID_BOOT_TIMEOUT_MS / ANDROID_BOOT_POLL_MS}s.`\n\t\t\t);\n\t\t}\n\t\tawait sleep(ANDROID_BOOT_POLL_MS);\n\n\t\treturn poll();\n\t};\n\n\treturn poll();\n};\n\nconst windowsPathFromWsl = (\n\tpath: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>\n) => {\n\tconst result = capture(['wslpath', '-w', path]);\n\tif (result.exitCode !== 0 || !result.stdout.trim()) {\n\t\tthrow new Error(`Could not translate WSL path for Windows: ${path}`);\n\t}\n\n\treturn result.stdout.trim();\n};\n\ntype WindowsGradleDependency = {\n\tname: string;\n\twindowsSource: string;\n};\n\nconst mirroredCapacitorDependencies = async (\n\tproject: Pick<AbsoluteAndroidDevProject, 'nativeDirectory'>,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>\n) => {\n\tconst settingsPath = join(\n\t\tproject.nativeDirectory,\n\t\t'capacitor.settings.gradle'\n\t);\n\tconst settings = await readFile(settingsPath, 'utf8');\n\tconst dependencies: WindowsGradleDependency[] = [];\n\tconst rewrittenSettings = settings.replace(\n\t\tCAPACITOR_PROJECT_DIRECTORY_PATTERN,\n\t\t(_statement, projectName: string, sourcePath: string) => {\n\t\t\tconst name = projectName\n\t\t\t\t.slice(1)\n\t\t\t\t.replaceAll(/[^a-zA-Z0-9_.-]/gu, '_');\n\t\t\tconst source = resolve(project.nativeDirectory, sourcePath);\n\t\t\tdependencies.push({\n\t\t\t\tname,\n\t\t\t\twindowsSource: windowsPathFromWsl(source, capture)\n\t\t\t});\n\n\t\t\treturn `project('${projectName}').projectDir = new File('./.absolutejs-dependencies/${name}')`;\n\t\t}\n\t);\n\tif (dependencies.length === 0) {\n\t\tthrow new Error(\n\t\t\t'Capacitor Android settings did not declare any native dependencies.'\n\t\t);\n\t}\n\n\treturn { dependencies, rewrittenSettings };\n};\n\nconst encodedWindowsGradleCommand = (\n\twindowsSource: string,\n\twindowsDirectory: string,\n\twindowsAndroidRoot: string,\n\tdependencies: WindowsGradleDependency[],\n\trewrittenSettings: string,\n\ttask: AbsoluteAndroidGradleTask,\n\tgradleArguments: readonly string[]\n) => {\n\tconst sourceDirectory = Buffer.from(windowsSource, 'utf8').toString(\n\t\t'base64'\n\t);\n\tconst buildDirectory = Buffer.from(windowsDirectory, 'utf8').toString(\n\t\t'base64'\n\t);\n\tconst androidRoot = Buffer.from(windowsAndroidRoot, 'utf8').toString(\n\t\t'base64'\n\t);\n\tconst dependencyData = Buffer.from(\n\t\tJSON.stringify(dependencies),\n\t\t'utf8'\n\t).toString('base64');\n\tconst settingsData = Buffer.from(rewrittenSettings, 'utf8').toString(\n\t\t'base64'\n\t);\n\tconst argumentsData = Buffer.from(\n\t\tJSON.stringify(gradleArguments),\n\t\t'utf8'\n\t).toString('base64');\n\tconst source = [\n\t\t\"$ErrorActionPreference = 'Stop'\",\n\t\t`$source = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${sourceDirectory}'))`,\n\t\t`$directory = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${buildDirectory}'))`,\n\t\t`$androidHome = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${androidRoot}'))`,\n\t\t`$dependencies = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${dependencyData}')) | ConvertFrom-Json`,\n\t\t`$settings = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${settingsData}'))`,\n\t\t`$gradleArguments = @([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${argumentsData}')) | ConvertFrom-Json)`,\n\t\t'$env:ANDROID_HOME = $androidHome',\n\t\t'$env:ANDROID_SDK_ROOT = $androidHome',\n\t\t'New-Item -ItemType Directory -Force -Path $directory | Out-Null',\n\t\t'& robocopy.exe $source $directory /MIR /XD .gradle build .absolutejs-dependencies /NFL /NDL /NJH /NJS /NP',\n\t\t'$copyExit = $LASTEXITCODE',\n\t\t'if ($copyExit -ge 8) { exit $copyExit }',\n\t\t\"foreach ($dependency in @($dependencies)) { $target = Join-Path $directory ('.absolutejs-dependencies\\\\' + $dependency.name); New-Item -ItemType Directory -Force -Path $target | Out-Null; & robocopy.exe $dependency.windowsSource $target /MIR /XD .gradle build /NFL /NDL /NJH /NJS /NP; if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } }\",\n\t\t\"[IO.File]::WriteAllText((Join-Path $directory 'capacitor.settings.gradle'), $settings)\",\n\t\t\"$wrapper = Join-Path $directory 'gradlew.bat'\",\n\t\t`& $wrapper --no-daemon --console=plain -p $directory @gradleArguments ${task}`,\n\t\t'if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }',\n\t\t'exit 0'\n\t].join('; ');\n\n\treturn Buffer.from(source, 'utf16le').toString('base64');\n};\n\nexport type AbsoluteAndroidGradleTask =\n\t| 'assembleDebug'\n\t| 'assembleRelease'\n\t| 'bundleRelease';\n\nexport type BuildAbsoluteAndroidGradleOptions = {\n\tcapture?: NonNullable<StartAbsoluteAndroidDevOptions['capture']>;\n\tenv?: Record<string, string | undefined>;\n\tgradleArguments?: readonly string[];\n\tproject: Pick<\n\t\tAbsoluteAndroidDevProject,\n\t\t'androidRoot' | 'config' | 'host' | 'nativeDirectory' | 'projectRoot'\n\t>;\n\trun?: NonNullable<StartAbsoluteAndroidDevOptions['run']>;\n\tsignal?: AbortSignal;\n\ttask: AbsoluteAndroidGradleTask;\n};\n\nconst gradleArtifactPath = (\n\tnativeDirectory: string,\n\ttask: AbsoluteAndroidGradleTask,\n\twindows = false\n) => {\n\tconst pathJoin = windows ? win32.join : join;\n\tif (task === 'assembleDebug') {\n\t\treturn pathJoin(\n\t\t\tnativeDirectory,\n\t\t\t'app',\n\t\t\t'build',\n\t\t\t'outputs',\n\t\t\t'apk',\n\t\t\t'debug',\n\t\t\t'app-debug.apk'\n\t\t);\n\t}\n\tif (task === 'assembleRelease') {\n\t\treturn pathJoin(\n\t\t\tnativeDirectory,\n\t\t\t'app',\n\t\t\t'build',\n\t\t\t'outputs',\n\t\t\t'apk',\n\t\t\t'release',\n\t\t\t'app-release.apk'\n\t\t);\n\t}\n\n\treturn pathJoin(\n\t\tnativeDirectory,\n\t\t'app',\n\t\t'build',\n\t\t'outputs',\n\t\t'bundle',\n\t\t'release',\n\t\t'app-release.aab'\n\t);\n};\n\nconst resolveGradleArtifactPath = async (\n\tnativeDirectory: string,\n\ttask: AbsoluteAndroidGradleTask\n) => {\n\tconst primary = gradleArtifactPath(nativeDirectory, task);\n\tif (task !== 'assembleRelease' || (await pathExists(primary))) {\n\t\treturn primary;\n\t}\n\n\treturn join(\n\t\tnativeDirectory,\n\t\t'app',\n\t\t'build',\n\t\t'outputs',\n\t\t'apk',\n\t\t'release',\n\t\t'app-release-unsigned.apk'\n\t);\n};\n\nexport const buildAbsoluteAndroidGradleArtifact = async (\n\toptions: BuildAbsoluteAndroidGradleOptions\n) => {\n\tconst { project, task } = options;\n\tconst capture = options.capture ?? captureCommand;\n\tconst run = options.run ?? runCommand;\n\tconst env = options.env ?? process.env;\n\tconst gradleArguments = options.gradleArguments ?? [];\n\tif (project.host === 'wsl') {\n\t\tconst windowsSource = windowsPathFromWsl(\n\t\t\tproject.nativeDirectory,\n\t\t\tcapture\n\t\t);\n\t\tconst buildId = Bun.hash(project.projectRoot).toString(HASH_RADIX);\n\t\tconst managedBuildDirectory = resolve(\n\t\t\tproject.androidRoot,\n\t\t\t'..',\n\t\t\t'..',\n\t\t\t'Builds',\n\t\t\t`${project.config.appId}-${buildId}`\n\t\t);\n\t\tconst windowsDirectory = windowsPathFromWsl(\n\t\t\tmanagedBuildDirectory,\n\t\t\tcapture\n\t\t);\n\t\tconst windowsAndroidRoot = windowsPathFromWsl(\n\t\t\tproject.androidRoot,\n\t\t\tcapture\n\t\t);\n\t\tconst { dependencies, rewrittenSettings } =\n\t\t\tawait mirroredCapacitorDependencies(project, capture);\n\t\tawait requireSuccess(\n\t\t\t[\n\t\t\t\t'powershell.exe',\n\t\t\t\t'-NoProfile',\n\t\t\t\t'-EncodedCommand',\n\t\t\t\tencodedWindowsGradleCommand(\n\t\t\t\t\twindowsSource,\n\t\t\t\t\twindowsDirectory,\n\t\t\t\t\twindowsAndroidRoot,\n\t\t\t\t\tdependencies,\n\t\t\t\t\trewrittenSettings,\n\t\t\t\t\ttask,\n\t\t\t\t\tgradleArguments\n\t\t\t\t)\n\t\t\t],\n\t\t\t'Android Gradle build',\n\t\t\trun,\n\t\t\t{ env, signal: options.signal }\n\t\t);\n\n\t\tconst artifactPath = await resolveGradleArtifactPath(\n\t\t\tmanagedBuildDirectory,\n\t\t\ttask\n\t\t);\n\t\tconst unsigned = artifactPath.endsWith('-unsigned.apk');\n\n\t\treturn {\n\t\t\tartifactPath,\n\t\t\tinstallPath: unsigned\n\t\t\t\t? win32.join(\n\t\t\t\t\t\twindowsDirectory,\n\t\t\t\t\t\t'app',\n\t\t\t\t\t\t'build',\n\t\t\t\t\t\t'outputs',\n\t\t\t\t\t\t'apk',\n\t\t\t\t\t\t'release',\n\t\t\t\t\t\t'app-release-unsigned.apk'\n\t\t\t\t\t)\n\t\t\t\t: gradleArtifactPath(windowsDirectory, task, true)\n\t\t};\n\t}\n\tconst wrapper = project.host === 'windows' ? 'gradlew.bat' : './gradlew';\n\tawait requireSuccess(\n\t\t[wrapper, '--no-daemon', '--console=plain', ...gradleArguments, task],\n\t\t'Android Gradle build',\n\t\trun,\n\t\t{ cwd: project.nativeDirectory, env, signal: options.signal }\n\t);\n\n\tconst artifactPath = await resolveGradleArtifactPath(\n\t\tproject.nativeDirectory,\n\t\ttask\n\t);\n\n\treturn { artifactPath, installPath: artifactPath };\n};\n\nconst buildAndroidDebugApp = async (\n\tproject: AbsoluteAndroidDevProject,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>,\n\tenv: Record<string, string | undefined>,\n\tsignal?: AbortSignal\n) =>\n\t(\n\t\tawait buildAbsoluteAndroidGradleArtifact({\n\t\t\tcapture,\n\t\t\tenv,\n\t\t\tproject,\n\t\t\trun,\n\t\t\tsignal,\n\t\t\ttask: 'assembleDebug'\n\t\t})\n\t).installPath;\n\ntype EnsureAndroidDebugAppOptions = {\n\tcache: AndroidNativeCache | null;\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>;\n\tenv: Record<string, string | undefined>;\n\tfingerprint: string;\n\tlog: NonNullable<StartAbsoluteAndroidDevOptions['log']>;\n\tproject: AbsoluteAndroidDevProject;\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>;\n\tserial: string;\n\tsignal?: AbortSignal;\n\ttransition: (state: AbsoluteAndroidDevState) => void;\n};\n\nconst persistInstalledAndroidNativeCache = async (\n\toptions: EnsureAndroidDebugAppOptions,\n\tinstalled: AndroidInstalledPackage | undefined\n) => {\n\tif (!installed) {\n\t\toptions.log(\n\t\t\t'Android package identity was unavailable; the next session will rebuild safely.'\n\t\t);\n\n\t\treturn;\n\t}\n\tconst installations =\n\t\toptions.cache?.appId === options.project.config.appId &&\n\t\toptions.cache.fingerprint === options.fingerprint\n\t\t\t? { ...options.cache.installations }\n\t\t\t: {};\n\tinstallations[options.serial] = installed.identity;\n\tawait writeNativeCache(options.project.projectRoot, {\n\t\tappId: options.project.config.appId,\n\t\tfingerprint: options.fingerprint,\n\t\tformat: NATIVE_CACHE_FORMAT,\n\t\tinstallations\n\t}).catch((error) => {\n\t\toptions.log(\n\t\t\t`Android native cache could not be saved: ${error instanceof Error ? error.message : String(error)}`\n\t\t);\n\t});\n};\n\nconst ensureAndroidDebugApp = async (options: EnsureAndroidDebugAppOptions) => {\n\tconst installed = androidInstalledPackageIdentity(\n\t\toptions.project,\n\t\toptions.serial,\n\t\toptions.capture,\n\t\toptions.env\n\t);\n\tconst cacheHit =\n\t\toptions.cache?.appId === options.project.config.appId &&\n\t\toptions.cache.fingerprint === options.fingerprint &&\n\t\tinstalled !== undefined &&\n\t\toptions.cache.installations[options.serial] === installed.identity;\n\tif (cacheHit) {\n\t\toptions.log(\n\t\t\t`Android native app is unchanged on ${options.serial}; skipped Gradle build and APK install.`\n\t\t);\n\n\t\treturn { nativeCacheHit: true, uid: installed.uid };\n\t}\n\toptions.log(\n\t\t'Android native inputs changed or the installed app is stale; rebuilding.'\n\t);\n\toptions.transition('building');\n\tconst installPath = await buildAndroidDebugApp(\n\t\toptions.project,\n\t\toptions.capture,\n\t\toptions.run,\n\t\toptions.env,\n\t\toptions.signal\n\t);\n\tthrowIfAborted(options.signal);\n\toptions.transition('installing');\n\tawait requireSuccess(\n\t\t[\n\t\t\toptions.project.adb,\n\t\t\t'-s',\n\t\t\toptions.serial,\n\t\t\t'install',\n\t\t\t'-r',\n\t\t\t'-d',\n\t\t\tinstallPath\n\t\t],\n\t\t'Android app installation',\n\t\toptions.run,\n\t\t{ env: options.env, signal: options.signal }\n\t);\n\tconst updated = androidInstalledPackageIdentity(\n\t\toptions.project,\n\t\toptions.serial,\n\t\toptions.capture,\n\t\toptions.env\n\t);\n\tawait persistInstalledAndroidNativeCache(options, updated);\n\n\treturn { nativeCacheHit: false, uid: updated?.uid };\n};\n\nconst startManagedEmulatorIfNeeded = (\n\tproject: AbsoluteAndroidDevProject,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tspawn: NonNullable<StartAbsoluteAndroidDevOptions['spawn']>,\n\tlog: NonNullable<StartAbsoluteAndroidDevOptions['log']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst serial = managedEmulatorSerial(project.adb, capture, env);\n\tif (serial) return { serial, started: false };\n\tlog(`Starting Android emulator ${ABSOLUTE_ANDROID_AVD_NAME}...`);\n\tspawn(\n\t\t[\n\t\t\tproject.emulator,\n\t\t\t'-avd',\n\t\t\tABSOLUTE_ANDROID_AVD_NAME,\n\t\t\t'-netdelay',\n\t\t\t'none',\n\t\t\t'-netspeed',\n\t\t\t'full'\n\t\t],\n\t\t{ env }\n\t);\n\n\treturn { serial: undefined, started: true };\n};\n\nconst logHttpsCertificateRequirement = (\n\thttps: boolean | undefined,\n\tlog: NonNullable<StartAbsoluteAndroidDevOptions['log']>\n) => {\n\tif (https !== true) return;\n\tlog(\n\t\t'Android HMR is using HTTPS; the emulator must trust the local development certificate authority.'\n\t);\n};\n\nconst removeAdbReverse = async (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string | undefined,\n\tport: number,\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tif (!serial) return;\n\tawait run(\n\t\t[project.adb, '-s', serial, 'reverse', '--remove', `tcp:${port}`],\n\t\t{ env }\n\t).catch(() => undefined);\n};\n\nconst androidLaunchCommand = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string\n) => [\n\tproject.adb,\n\t'-s',\n\tserial,\n\t'shell',\n\t'monkey',\n\t'-p',\n\tproject.config.appId,\n\t'-c',\n\t'android.intent.category.LAUNCHER',\n\t'1'\n];\n\nconst stopAndroidAppCommand = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string\n) => [\n\tproject.adb,\n\t'-s',\n\tserial,\n\t'shell',\n\t'am',\n\t'force-stop',\n\tproject.config.appId\n];\n\nconst launchAndroidApp = async (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tdescription: string,\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>,\n\toptions: {\n\t\tenv: Record<string, string | undefined>;\n\t\tsignal?: AbortSignal;\n\t}\n) => {\n\tawait requireSuccess(\n\t\tstopAndroidAppCommand(project, serial),\n\t\t`${description} reset`,\n\t\trun,\n\t\toptions\n\t);\n\tawait requireSuccess(\n\t\tandroidLaunchCommand(project, serial),\n\t\tdescription,\n\t\trun,\n\t\toptions\n\t);\n};\n\nconst androidPackageUid = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst result = capture(\n\t\t[\n\t\t\tproject.adb,\n\t\t\t'-s',\n\t\t\tserial,\n\t\t\t'shell',\n\t\t\t'cmd',\n\t\t\t'package',\n\t\t\t'list',\n\t\t\t'packages',\n\t\t\t'-U',\n\t\t\tproject.config.appId\n\t\t],\n\t\t{ env }\n\t);\n\tif (result.exitCode !== 0) return undefined;\n\tconst escapedAppId = project.config.appId.replace(\n\t\t/[.*+?^${}()|[\\]\\\\]/gu,\n\t\t'\\\\$&'\n\t);\n\tconst match = new RegExp(`package:${escapedAppId}\\\\s+uid:(\\\\d+)`, 'u').exec(\n\t\tresult.stdout\n\t);\n\n\treturn match?.[1];\n};\n\nconst androidInstalledPackageIdentity = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst result = capture(\n\t\t[\n\t\t\tproject.adb,\n\t\t\t'-s',\n\t\t\tserial,\n\t\t\t'shell',\n\t\t\t'dumpsys',\n\t\t\t'package',\n\t\t\tproject.config.appId\n\t\t],\n\t\t{ env }\n\t);\n\tif (result.exitCode !== 0) return undefined;\n\tconst codePath = /^\\s*codePath=(.+)$/mu.exec(result.stdout)?.[1]?.trim();\n\tconst lastUpdateTime = /^\\s*lastUpdateTime=(.+)$/mu\n\t\t.exec(result.stdout)?.[1]\n\t\t?.trim();\n\tif (!codePath || !lastUpdateTime) return undefined;\n\tconst uid = /^\\s*appId=(\\d+)$/mu.exec(result.stdout)?.[1];\n\n\treturn { identity: `${codePath}\\0${lastUpdateTime}`, uid };\n};\n\nconst attachAndroidNativeLogs = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>,\n\toptions: StartAbsoluteAndroidDevOptions,\n\tknownUid?: string\n) => {\n\tif (!options.nativeLog) return null;\n\tconst uid = knownUid ?? androidPackageUid(project, serial, capture, env);\n\tif (!uid) {\n\t\toptions.log?.(\n\t\t\t`Android app logs unavailable: could not resolve the package UID for ${project.config.appId}.`\n\t\t);\n\n\t\treturn null;\n\t}\n\tconst onLine = (line: string) => {\n\t\tconst entry = parseAbsoluteAndroidLogLine(line);\n\t\t// Capacitor 8 SystemBars can run before documentElement exists. A later\n\t\t// inset pass applies the values; keep the plugin enabled because disabling\n\t\t// it breaks edge-to-edge layout on Android 16. Remove this narrow filter\n\t\t// when https://github.com/ionic-team/capacitor/issues/8530 is fixed.\n\t\tif (entry && !isIgnorableAbsoluteAndroidLog(entry)) {\n\t\t\toptions.nativeLog?.(entry);\n\t\t}\n\t};\n\n\treturn (options.startNativeLogs ?? startNativeLogStream)(\n\t\t[\n\t\t\tproject.adb,\n\t\t\t'-s',\n\t\t\tserial,\n\t\t\t'logcat',\n\t\t\t`--uid=${uid}`,\n\t\t\t'-v',\n\t\t\t'threadtime',\n\t\t\t'-T',\n\t\t\t'1',\n\t\t\t'*:W',\n\t\t\t'Capacitor:V',\n\t\t\t'Capacitor/Console:V',\n\t\t\t'chromium:I'\n\t\t],\n\t\t{ env },\n\t\tonLine\n\t);\n};\n\nexport const prepareAbsoluteAndroidDevProject = async (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\toptions: PrepareAbsoluteAndroidDevOptions\n): Promise<AbsoluteAndroidDevProject> => {\n\tconst projectRoot = resolve(options.projectRoot);\n\tconst host = detectAbsoluteMobileHost();\n\tconst androidRoot =\n\t\tprocess.env.ANDROID_HOME ??\n\t\tprocess.env.ANDROID_SDK_ROOT ??\n\t\tabsoluteManagedAndroidSdkRoot(host);\n\tconst checks = await inspectAbsoluteMobileToolchain({ androidRoot, host });\n\tconst failed = checks.filter(\n\t\t(check) =>\n\t\t\tcheck.platform === 'android' &&\n\t\t\t(check.status === 'fail' || check.status === 'warn')\n\t);\n\tif (failed.length > 0) {\n\t\tthrow new Error(\n\t\t\t`Android emulation is not ready: ${failed.map(({ label }) => label).join(', ')}.`\n\t\t);\n\t}\n\tconst adb = checks.find((check) => check.id === 'android.adb')?.path;\n\tconst emulator = checks.find(\n\t\t(check) => check.id === 'android.emulator'\n\t)?.path;\n\tif (!adb || !emulator) {\n\t\tthrow new Error(\n\t\t\t'Android SDK tools disappeared after readiness checks.'\n\t\t);\n\t}\n\tconst cap = join(\n\t\tprojectRoot,\n\t\t'node_modules',\n\t\t'.bin',\n\t\thost === 'windows' ? 'cap.cmd' : 'cap'\n\t);\n\tif (!(await pathExists(cap))) {\n\t\tthrow new Error(\n\t\t\t'Capacitor CLI is not installed. Run absolute mobile init first.'\n\t\t);\n\t}\n\tawait writeAbsoluteCapacitorConfig(config, { projectRoot });\n\tawait mkdir(config.bundleDirectory, { recursive: true });\n\tconst placeholder = join(config.bundleDirectory, 'index.html');\n\tif (!(await pathExists(placeholder))) {\n\t\tawait writeFile(\n\t\t\tplaceholder,\n\t\t\t'<!doctype html><title>AbsoluteJS mobile development</title>\\n'\n\t\t);\n\t}\n\tconst nativeDirectory = join(config.nativeProjectDirectory, 'android');\n\tif (!(await pathExists(nativeDirectory))) {\n\t\tif (!options.createNativeProject) {\n\t\t\tthrow new Error('Android native project has not been created.');\n\t\t}\n\t\tconst run = options.run ?? runCommand;\n\t\tif (\n\t\t\t(await run([cap, 'add', 'android'], {\n\t\t\t\tcwd: projectRoot\n\t\t\t})) !== 0\n\t\t) {\n\t\t\tthrow new Error('Capacitor Android project creation failed.');\n\t\t}\n\t}\n\n\treturn {\n\t\tadb,\n\t\tandroidRoot,\n\t\tcap,\n\t\tconfig,\n\t\temulator,\n\t\thost,\n\t\tnativeDirectory,\n\t\tprojectRoot\n\t};\n};\n\nexport const startAbsoluteAndroidDevSession = async (\n\toptions: StartAbsoluteAndroidDevOptions\n) => {\n\tconst { project } = options;\n\tconst startupStartedAt = performance.now();\n\tlet phaseStartedAt = performance.now();\n\tconst phaseDurations: Record<string, number> = {};\n\tlet state: AbsoluteAndroidDevState = 'syncing';\n\tconst transition = (next: AbsoluteAndroidDevState) => {\n\t\tif (next === state) {\n\t\t\toptions.onStateChange?.(next);\n\n\t\t\treturn;\n\t\t}\n\t\tconst now = performance.now();\n\t\tconst durationMs = now - phaseStartedAt;\n\t\tphaseDurations[state] = (phaseDurations[state] ?? 0) + durationMs;\n\t\toptions.onPhaseTiming?.({\n\t\t\tdurationMs,\n\t\t\tphase: state,\n\t\t\ttotalMs: now - startupStartedAt\n\t\t});\n\t\tstate = next;\n\t\tphaseStartedAt = now;\n\t\toptions.onStateChange?.(next);\n\t};\n\tconst capture = options.capture ?? captureCommand;\n\tconst run = options.run ?? runCommand;\n\tconst sleep = options.sleep ?? Bun.sleep;\n\tconst spawn = options.spawn ?? spawnCommand;\n\tconst log = options.log ?? console.log;\n\tconst androidHome =\n\t\tproject.host === 'wsl'\n\t\t\t? windowsPathFromWsl(project.androidRoot, capture)\n\t\t\t: project.androidRoot;\n\tconst env: Record<string, string | undefined> = {\n\t\t...process.env,\n\t\tANDROID_HOME: androidHome\n\t};\n\ttransition('syncing');\n\tawait repairAbsoluteAndroidDevSession(project.projectRoot);\n\tthrowIfAborted(options.signal);\n\tawait requireSuccess(\n\t\t[project.cap, 'sync', 'android'],\n\t\t'Capacitor Android synchronization',\n\t\trun,\n\t\t{ cwd: project.projectRoot, env, signal: options.signal }\n\t);\n\tthrowIfAborted(options.signal);\n\ttransition('configuring');\n\tconst nativeConfigPath = join(\n\t\tproject.nativeDirectory,\n\t\t'app',\n\t\t'src',\n\t\t'main',\n\t\t'assets',\n\t\t'capacitor.config.json'\n\t);\n\tconst nativeManifestPath = join(\n\t\tproject.nativeDirectory,\n\t\t'app',\n\t\t'src',\n\t\t'main',\n\t\t'AndroidManifest.xml'\n\t);\n\tlet connectedSerial: string | undefined;\n\tlet nativeLogs: AbsoluteAndroidLogStream | null = null;\n\tconst closeNativeLogs = async () => {\n\t\tconst stream = nativeLogs;\n\t\tnativeLogs = null;\n\t\tawait stream?.close().catch(() => undefined);\n\t};\n\ttry {\n\t\tawait writeDevConfig(\n\t\t\tproject.projectRoot,\n\t\t\tnativeConfigPath,\n\t\t\tnativeManifestPath,\n\t\t\toptions.port,\n\t\t\toptions.https === true,\n\t\t\tproject.config.entry,\n\t\t\toptions.embeddedBundle === true\n\t\t);\n\t\tthrowIfAborted(options.signal);\n\t\tlogHttpsCertificateRequirement(options.https, log);\n\t\tconst fingerprintStartedAt = performance.now();\n\t\tconst nativeFingerprintPromise =\n\t\t\tfingerprintAbsoluteAndroidNativeProject(project, {\n\t\t\t\tincludePublicBundle: options.embeddedBundle === true\n\t\t\t}).then((fingerprint) => {\n\t\t\t\tphaseDurations.fingerprinting =\n\t\t\t\t\tperformance.now() - fingerprintStartedAt;\n\n\t\t\t\treturn fingerprint;\n\t\t\t});\n\t\ttransition('booting');\n\t\tconst emulator = startManagedEmulatorIfNeeded(\n\t\t\tproject,\n\t\t\tcapture,\n\t\t\tspawn,\n\t\t\tlog,\n\t\t\tenv\n\t\t);\n\t\tconst { started: startedEmulator } = emulator;\n\t\ttransition('connecting');\n\t\tconst serial = await waitForManagedEmulator(\n\t\t\tproject,\n\t\t\tcapture,\n\t\t\tsleep,\n\t\t\tenv,\n\t\t\toptions.signal,\n\t\t\temulator.serial\n\t\t);\n\t\tconnectedSerial = serial;\n\t\ttransition('forwarding');\n\t\tawait requireSuccess(\n\t\t\t[\n\t\t\t\tproject.adb,\n\t\t\t\t'-s',\n\t\t\t\tserial,\n\t\t\t\t'reverse',\n\t\t\t\t`tcp:${options.port}`,\n\t\t\t\t`tcp:${options.port}`\n\t\t\t],\n\t\t\t'ADB reverse port forwarding',\n\t\t\trun,\n\t\t\t{ env, signal: options.signal }\n\t\t);\n\t\tthrowIfAborted(options.signal);\n\t\tconst nativeFingerprint = await nativeFingerprintPromise;\n\t\tthrowIfAborted(options.signal);\n\t\ttransition('checking-native');\n\t\tconst cache = await readNativeCache(project.projectRoot);\n\t\tconst installedApp = await ensureAndroidDebugApp({\n\t\t\tcache,\n\t\t\tcapture,\n\t\t\tenv,\n\t\t\tfingerprint: nativeFingerprint,\n\t\t\tlog,\n\t\t\tproject,\n\t\t\trun,\n\t\t\tserial,\n\t\t\tsignal: options.signal,\n\t\t\ttransition\n\t\t});\n\t\tconst { nativeCacheHit, uid } = installedApp;\n\t\tthrowIfAborted(options.signal);\n\t\ttransition('launching');\n\t\tawait launchAndroidApp(project, serial, 'Android app launch', run, {\n\t\t\tenv,\n\t\t\tsignal: options.signal\n\t\t});\n\t\tthrowIfAborted(options.signal);\n\t\tif (options.nativeLog) transition('streaming-logs');\n\t\tnativeLogs = attachAndroidNativeLogs(\n\t\t\tproject,\n\t\t\tserial,\n\t\t\tcapture,\n\t\t\tenv,\n\t\t\toptions,\n\t\t\tuid\n\t\t);\n\t\ttransition('ready');\n\t\tphaseDurations.total = performance.now() - startupStartedAt;\n\t\tlog(\n\t\t\toptions.embeddedBundle === true\n\t\t\t\t? `Android emulator connected (${serial}) with the embedded bundle and backend on port ${options.port} in ${getDurationString(phaseDurations.total)} (${nativeCacheHit ? 'native cache hit' : 'native build installed'}).`\n\t\t\t\t: `Android emulator connected (${serial}) with HMR on port ${options.port} in ${getDurationString(phaseDurations.total)} (${nativeCacheHit ? 'native cache hit' : 'native build installed'}).`\n\t\t);\n\t\tlog(`Android startup: ${androidTimingSummary(phaseDurations)}.`);\n\t\tlet closed = false;\n\t\tconst close = async () => {\n\t\t\tif (closed) return;\n\t\t\tclosed = true;\n\t\t\ttransition('closing');\n\t\t\tawait closeNativeLogs();\n\t\t\tawait removeAdbReverse(project, serial, options.port, run, env);\n\t\t\tawait repairAbsoluteAndroidDevSession(project.projectRoot);\n\t\t\ttransition('closed');\n\t\t};\n\n\t\treturn {\n\t\t\tclose,\n\t\t\tnativeCacheHit,\n\t\t\tserial,\n\t\t\tstartedEmulator,\n\t\t\ttimings: { ...phaseDurations },\n\t\t\trebuild: async () => {\n\t\t\t\tif (closed) {\n\t\t\t\t\tthrow new Error('Android development session is closed.');\n\t\t\t\t}\n\t\t\t\tlog(\n\t\t\t\t\t'Android native inputs changed; rebuilding without restarting the dev server.'\n\t\t\t\t);\n\t\t\t\tawait close();\n\n\t\t\t\treturn startAbsoluteAndroidDevSession(options);\n\t\t\t},\n\t\t\trelaunch: async () => {\n\t\t\t\tif (closed) {\n\t\t\t\t\tthrow new Error('Android development session is closed.');\n\t\t\t\t}\n\t\t\t\ttransition('launching');\n\t\t\t\ttry {\n\t\t\t\t\tawait launchAndroidApp(\n\t\t\t\t\t\tproject,\n\t\t\t\t\t\tserial,\n\t\t\t\t\t\t'Android app relaunch',\n\t\t\t\t\t\trun,\n\t\t\t\t\t\t{ env, signal: options.signal }\n\t\t\t\t\t);\n\t\t\t\t\ttransition('ready');\n\t\t\t\t\tlog(`Android app relaunched on ${serial}.`);\n\t\t\t\t} catch (error) {\n\t\t\t\t\ttransition('failed');\n\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t\tget state() {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\ttransition('failed');\n\t\tawait closeNativeLogs();\n\t\tawait removeAdbReverse(\n\t\t\tproject,\n\t\t\tconnectedSerial,\n\t\t\toptions.port,\n\t\t\trun,\n\t\t\tenv\n\t\t);\n\t\tawait repairAbsoluteAndroidDevSession(project.projectRoot);\n\n\t\tthrow error;\n\t}\n};\n",
19
+ "import {\n\taccess,\n\tcopyFile,\n\tlstat,\n\tmkdir,\n\treadFile,\n\treaddir,\n\treadlink,\n\trealpath,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { createHash, randomUUID } from 'node:crypto';\nimport {\n\tdirname,\n\tisAbsolute,\n\tjoin,\n\trelative,\n\tresolve,\n\tsep,\n\twin32\n} from 'node:path';\nimport {\n\tABSOLUTE_ANDROID_AVD_NAME,\n\tabsoluteManagedAndroidSdkRoot,\n\tdetectAbsoluteMobileHost,\n\tinspectAbsoluteMobileToolchain,\n\ttype AbsoluteMobileHost\n} from './emulatorDoctor';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport { writeAbsoluteCapacitorConfig } from './capacitorProject';\nimport { getDurationString } from '../utils/getDurationString';\n\nconst ANDROID_BOOT_TIMEOUT_MS = 180_000;\nconst ANDROID_BOOT_POLL_MS = 1_000;\nconst DEV_JOURNAL_FORMAT = 1;\nconst NATIVE_CACHE_FORMAT = 1;\nconst HASH_RADIX = 16;\nconst EXECUTABLE_MODE_MASK = 0o111;\nconst NATIVE_PUBLIC_PATH_SEGMENTS = 5;\nconst CAPACITOR_PROJECT_DIRECTORY_PATTERN =\n\t/project\\(['\"](:[^'\"]+)['\"]\\)\\.projectDir\\s*=\\s*new File\\(['\"]([^'\"]+)['\"]\\)/gu;\n\nexport type AbsoluteAndroidCommandOptions = {\n\tcwd?: string;\n\tenv?: Record<string, string | undefined>;\n\tsignal?: AbortSignal;\n};\n\nexport type AbsoluteAndroidCommandResult = {\n\texitCode: number;\n\tstderr: string;\n\tstdout: string;\n};\n\nexport type AbsoluteAndroidDevState =\n\t| 'booting'\n\t| 'building'\n\t| 'closed'\n\t| 'closing'\n\t| 'configuring'\n\t| 'connecting'\n\t| 'failed'\n\t| 'forwarding'\n\t| 'installing'\n\t| 'checking-native'\n\t| 'launching'\n\t| 'ready'\n\t| 'streaming-logs'\n\t| 'syncing';\n\nexport type AbsoluteAndroidNativeLogEntry = {\n\tlevel: 'debug' | 'error' | 'fatal' | 'info' | 'verbose' | 'warn';\n\tmessage: string;\n\ttag: string;\n};\n\ntype AbsoluteAndroidLogStream = {\n\tclose: () => Promise<void>;\n};\n\ntype AndroidDevJournal = {\n\tbackupPath: string;\n\tformat: number;\n\tmanifestBackupPath?: string;\n\tnativeConfigPath: string;\n\tnativeManifestPath?: string;\n\tprojectedFiles?: Array<{\n\t\tbackupPath?: string;\n\t\tpath: string;\n\t}>;\n};\n\ntype AndroidNativeCache = {\n\tappId: string;\n\tfingerprint: string;\n\tformat: number;\n\tinstallations: Record<string, string>;\n};\n\ntype AndroidInstalledPackage = {\n\tidentity: string;\n\tuid?: string;\n};\n\nexport type AbsoluteAndroidDevProject = {\n\tadb: string;\n\tandroidRoot: string;\n\tcap: string;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\temulator?: string;\n\thost: AbsoluteMobileHost;\n\tnativeDirectory: string;\n\tprojectRoot: string;\n};\n\nexport type AbsoluteAndroidDevSession = {\n\tclose: () => Promise<void>;\n\tnativeCacheHit: boolean;\n\trebuild: () => Promise<AbsoluteAndroidDevSession>;\n\trelaunch: () => Promise<void>;\n\tserial: string;\n\tstate: AbsoluteAndroidDevState;\n\tstartedEmulator: boolean;\n\ttimings: Record<string, number>;\n};\n\nexport type AbsoluteAndroidDevPhaseTiming = {\n\tdurationMs: number;\n\tphase: AbsoluteAndroidDevState;\n\ttotalMs: number;\n};\n\nconst ANDROID_TIMING_PHASES: Array<[string, string]> = [\n\t['syncing', 'Capacitor sync'],\n\t['configuring', 'dev config'],\n\t['fingerprinting', 'fingerprint'],\n\t['booting', 'emulator'],\n\t['connecting', 'device ready'],\n\t['forwarding', 'ADB reverse'],\n\t['checking-native', 'package check'],\n\t['building', 'Gradle'],\n\t['installing', 'install'],\n\t['launching', 'launch'],\n\t['streaming-logs', 'logs']\n];\n\nconst androidTimingSummary = (\n\ttimings: Record<string, number>,\n\tphysicalDevice = false\n) =>\n\tANDROID_TIMING_PHASES.map(([phase, label]) => {\n\t\tconst duration = timings[phase];\n\t\tif (duration === undefined || label === undefined) return null;\n\t\tlet phaseLabel = label;\n\t\tif (physicalDevice && phase === 'booting')\n\t\t\tphaseLabel = 'device selection';\n\t\tif (physicalDevice && phase === 'forwarding')\n\t\t\tphaseLabel = 'LAN transport';\n\n\t\treturn `${phaseLabel} ${getDurationString(duration)}`;\n\t})\n\t\t.filter((value): value is string => value !== null)\n\t\t.join(', ');\n\nexport type PrepareAbsoluteAndroidDevOptions = {\n\tcreateNativeProject: boolean;\n\tprojectRoot: string;\n\ttarget?: 'device' | 'emulator';\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => Promise<number>;\n};\n\nexport type StartAbsoluteAndroidDevOptions = {\n\tcapture?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => AbsoluteAndroidCommandResult;\n\tlog?: (message: string) => void;\n\tnativeLog?: (entry: AbsoluteAndroidNativeLogEntry) => void;\n\tonPhaseTiming?: (timing: AbsoluteAndroidDevPhaseTiming) => void;\n\tonStateChange?: (state: AbsoluteAndroidDevState) => void;\n\thttps?: boolean;\n\t/** Launch the locally embedded production web bundle while forwarding\n\t * `port` only for its configured backend. No dev-server URL is written. */\n\tembeddedBundle?: boolean;\n\t/** A connected physical device selected explicitly by ADB serial. */\n\tdeviceSerial?: string;\n\t/** CA certificate temporarily trusted only by this development app. */\n\tcertificateAuthorityPath?: string;\n\tport: number;\n\tproject: AbsoluteAndroidDevProject;\n\t/** Hostname or LAN address loaded by the physical device. */\n\tserverHost?: string;\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => Promise<number>;\n\tsignal?: AbortSignal;\n\tsleep?: (milliseconds: number) => Promise<void>;\n\tspawn?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteAndroidCommandOptions\n\t) => void;\n\tstartNativeLogs?: (\n\t\tcommand: string[],\n\t\toptions: AbsoluteAndroidCommandOptions,\n\t\tonLine: (line: string) => void\n\t) => AbsoluteAndroidLogStream;\n};\n\nconst pathExists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst forwardCommandOutput = (\n\tstream: ReadableStream<Uint8Array>,\n\tdestination: NodeJS.WriteStream\n) =>\n\tstream.pipeTo(\n\t\tnew WritableStream({\n\t\t\twrite: (chunk) => {\n\t\t\t\tdestination.write(chunk);\n\t\t\t}\n\t\t})\n\t);\n\nconst runCommand = async (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions = {}\n) => {\n\tconst subprocess = Bun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tsignal: options.signal,\n\t\tstderr: 'pipe',\n\t\tstdin: 'ignore',\n\t\tstdout: 'pipe'\n\t});\n\tconst [exitCode] = await Promise.all([\n\t\tsubprocess.exited,\n\t\tforwardCommandOutput(subprocess.stdout, process.stdout),\n\t\tforwardCommandOutput(subprocess.stderr, process.stderr)\n\t]);\n\n\treturn exitCode;\n};\n\nconst captureCommand = (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions = {}\n) => {\n\ttry {\n\t\tconst result = Bun.spawnSync(command, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: options.env,\n\t\t\tstderr: 'pipe',\n\t\t\tstdout: 'pipe'\n\t\t});\n\n\t\treturn {\n\t\t\texitCode: result.exitCode,\n\t\t\tstderr: result.stderr.toString(),\n\t\t\tstdout: result.stdout.toString()\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\texitCode: 1,\n\t\t\tstderr: error instanceof Error ? error.message : String(error),\n\t\t\tstdout: ''\n\t\t};\n\t}\n};\n\nconst spawnCommand = (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions = {}\n) => {\n\tBun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tstderr: 'ignore',\n\t\tstdin: 'ignore',\n\t\tstdout: 'ignore'\n\t});\n};\n\nconst LOGCAT_LINE_PATTERN =\n\t/^\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}\\.\\d+\\s+\\d+\\s+\\d+\\s+([VDIWEF])\\s+([^:]+):\\s?(.*)$/u;\nconst ASCII_CONTROL_END = 31;\nconst ASCII_DELETE = 127;\nconst ASCII_ESCAPE = 27;\nconst ASCII_HORIZONTAL_TAB = 9;\nconst LOGCAT_MESSAGE_CAPTURE = 3;\nconst UNFOUND_INDEX = -1;\nconst ANSI_SEQUENCE_PATTERN = new RegExp(\n\t`${String.fromCharCode(ASCII_ESCAPE)}(?:\\\\[[0-?]*[ -/]*[@-~]|[@-_])`,\n\t'gu'\n);\nconst AUTHORIZATION_SECRET_PATTERN =\n\t/([\"']?(?:authorization|proxy-authorization)[\"']?\\s*[:=]\\s*)(?:Bearer|Basic)\\s+[^\\s,;]+/giu;\nconst BEARER_SECRET_PATTERN = /\\b(Bearer)\\s+[^\\s,;]+/giu;\nconst COOKIE_SECRET_PATTERN =\n\t/([\"']?(?:cookie|set-cookie)[\"']?\\s*[:=]\\s*).*/giu;\nconst NAMED_SECRET_PATTERN =\n\t/([\"']?(?:access_token|refresh_token|id_token|client_secret|password|code|token)[\"']?\\s*[:=]\\s*)(\"[^\"]*\"|'[^']*'|[^\\s&,;]+)/giu;\nconst QUERY_SECRET_PATTERN = /([?&](?:code|token)=)[^&\\s]+/giu;\n\nexport const redactAbsoluteAndroidLog = (value: string) =>\n\tvalue\n\t\t.replace(ANSI_SEQUENCE_PATTERN, '')\n\t\t.split('')\n\t\t.filter((character) => {\n\t\t\tconst code = character.charCodeAt(0);\n\n\t\t\treturn (\n\t\t\t\tcode === ASCII_HORIZONTAL_TAB ||\n\t\t\t\t(code > ASCII_CONTROL_END && code !== ASCII_DELETE)\n\t\t\t);\n\t\t})\n\t\t.join('')\n\t\t.replace(AUTHORIZATION_SECRET_PATTERN, '$1[REDACTED]')\n\t\t.replace(BEARER_SECRET_PATTERN, '$1 [REDACTED]')\n\t\t.replace(COOKIE_SECRET_PATTERN, '$1[REDACTED]')\n\t\t.replace(NAMED_SECRET_PATTERN, '$1[REDACTED]')\n\t\t.replace(QUERY_SECRET_PATTERN, '$1[REDACTED]');\n\nconst androidLogLevel = (level: string) => {\n\tif (level === 'V') return 'verbose';\n\tif (level === 'D') return 'debug';\n\tif (level === 'W') return 'warn';\n\tif (level === 'E') return 'error';\n\tif (level === 'F') return 'fatal';\n\n\treturn 'info';\n};\n\nconst emitCompleteLogLines = (\n\tvalue: string,\n\tonLine: (line: string) => void\n) => {\n\tlet buffered = value;\n\tlet newlineIndex = buffered.indexOf('\\n');\n\twhile (newlineIndex !== UNFOUND_INDEX) {\n\t\tonLine(buffered.slice(0, newlineIndex).replace(/\\r$/u, ''));\n\t\tbuffered = buffered.slice(newlineIndex + 1);\n\t\tnewlineIndex = buffered.indexOf('\\n');\n\t}\n\n\treturn buffered;\n};\n\nconst decodeLogStream = () => {\n\tconst decoder = new TextDecoder();\n\n\treturn new TransformStream<Uint8Array, string>({\n\t\tflush: (controller) => {\n\t\t\tconst remaining = decoder.decode();\n\t\t\tif (remaining) controller.enqueue(remaining);\n\t\t},\n\t\ttransform: (chunk, controller) => {\n\t\t\tconst decoded = decoder.decode(chunk, { stream: true });\n\t\t\tif (decoded) controller.enqueue(decoded);\n\t\t}\n\t});\n};\n\nexport const isIgnorableAbsoluteAndroidLog = (\n\tentry: AbsoluteAndroidNativeLogEntry\n) =>\n\tentry.tag === 'Capacitor/Console' &&\n\tentry.message.includes('Error injecting safe area CSS:') &&\n\tentry.message.includes(\"Cannot read properties of null (reading 'style')\");\nexport const parseAbsoluteAndroidLogLine = (\n\tline: string\n): AbsoluteAndroidNativeLogEntry | null => {\n\tconst sanitized = redactAbsoluteAndroidLog(line).trim();\n\tif (!sanitized) return null;\n\tconst match = LOGCAT_LINE_PATTERN.exec(sanitized);\n\tif (!match) {\n\t\treturn { level: 'info', message: sanitized, tag: 'logcat' };\n\t}\n\n\treturn {\n\t\tlevel: androidLogLevel(match[1] ?? 'I'),\n\t\tmessage: match[LOGCAT_MESSAGE_CAPTURE] ?? '',\n\t\ttag: match[2]?.trim() || 'android'\n\t};\n};\n\nconst consumeLogLines = async (\n\tstream: ReadableStream<Uint8Array>,\n\tonLine: (line: string) => void\n) => {\n\tlet buffered = '';\n\tawait stream.pipeThrough(decodeLogStream()).pipeTo(\n\t\tnew WritableStream({\n\t\t\twrite: (chunk) => {\n\t\t\t\tbuffered = emitCompleteLogLines(buffered + chunk, onLine);\n\t\t\t}\n\t\t})\n\t);\n\tif (buffered) {\n\t\tonLine(buffered.replace(/\\r$/u, ''));\n\t}\n};\n\nconst startNativeLogStream = (\n\tcommand: string[],\n\toptions: AbsoluteAndroidCommandOptions,\n\tonLine: (line: string) => void\n): AbsoluteAndroidLogStream => {\n\tconst subprocess = Bun.spawn(command, {\n\t\tenv: options.env,\n\t\tstderr: 'pipe',\n\t\tstdin: 'ignore',\n\t\tstdout: 'pipe'\n\t});\n\tconst output = Promise.all([\n\t\tconsumeLogLines(subprocess.stdout, onLine),\n\t\tconsumeLogLines(subprocess.stderr, onLine)\n\t]);\n\tvoid output.catch(() => undefined);\n\n\treturn {\n\t\tclose: async () => {\n\t\t\ttry {\n\t\t\t\tsubprocess.kill();\n\t\t\t} catch {\n\t\t\t\t/* logcat already exited */\n\t\t\t}\n\t\t\tawait Promise.all([\n\t\t\t\tsubprocess.exited.catch(() => undefined),\n\t\t\t\toutput.catch(() => undefined)\n\t\t\t]);\n\t\t}\n\t};\n};\n\nconst requireSuccess = async (\n\tcommand: string[],\n\tlabel: string,\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>,\n\toptions?: AbsoluteAndroidCommandOptions\n) => {\n\tconst exitCode = await run(command, options);\n\tthrowIfAborted(options?.signal);\n\tif (exitCode !== 0) throw new Error(`${label} failed (exit ${exitCode}).`);\n};\n\nconst throwIfAborted = (signal?: AbortSignal) => {\n\tif (!signal?.aborted) return;\n\tthrow new DOMException(\n\t\t'Android development startup was cancelled.',\n\t\t'AbortError'\n\t);\n};\n\nconst journalPaths = (projectRoot: string) => {\n\tconst root = join(projectRoot, '.absolutejs', 'mobile', 'dev-session');\n\n\treturn {\n\t\tbackup: join(root, 'capacitor.config.backup.json'),\n\t\tcaBackup: join(root, 'absolutejs_dev_ca.backup.pem'),\n\t\tjournal: join(root, 'journal.json'),\n\t\tmanifestBackup: join(root, 'AndroidManifest.backup.xml'),\n\t\tnetworkConfigBackup: join(\n\t\t\troot,\n\t\t\t'absolutejs_dev_network_security.backup.xml'\n\t\t),\n\t\troot\n\t};\n};\n\nconst isInside = (root: string, path: string) => {\n\tconst resolvedRoot = resolve(root);\n\tconst resolvedPath = resolve(path);\n\tconst relativePath = relative(resolvedRoot, resolvedPath);\n\n\treturn (\n\t\trelativePath === '' ||\n\t\t(relativePath !== '..' &&\n\t\t\t!relativePath.startsWith(`..${sep}`) &&\n\t\t\t!isAbsolute(relativePath))\n\t);\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst nativeCachePath = (projectRoot: string) =>\n\tjoin(projectRoot, '.absolutejs', 'mobile', 'cache', 'android-debug.json');\n\nconst parseNativeCache = (value: unknown): AndroidNativeCache | null => {\n\tif (!isRecord(value)) return null;\n\tconst { appId, fingerprint, format, installations } = value;\n\tif (\n\t\tformat !== NATIVE_CACHE_FORMAT ||\n\t\ttypeof appId !== 'string' ||\n\t\ttypeof fingerprint !== 'string' ||\n\t\t!isRecord(installations) ||\n\t\t!Object.values(installations).every(\n\t\t\t(identity) => typeof identity === 'string'\n\t\t)\n\t) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tappId,\n\t\tfingerprint,\n\t\tformat,\n\t\tinstallations: Object.fromEntries(\n\t\t\tObject.entries(installations).map(([serial, identity]) => [\n\t\t\t\tserial,\n\t\t\t\tString(identity)\n\t\t\t])\n\t\t)\n\t};\n};\n\nconst readNativeCache = async (projectRoot: string) =>\n\treadFile(nativeCachePath(projectRoot), 'utf8')\n\t\t.then((source) => parseNativeCache(JSON.parse(source)))\n\t\t.catch(() => null);\n\nconst writeNativeCache = async (\n\tprojectRoot: string,\n\tcache: AndroidNativeCache\n) => {\n\tconst destination = nativeCachePath(projectRoot);\n\tconst temporary = `${destination}.${process.pid}.${randomUUID()}.tmp`;\n\tawait mkdir(dirname(destination), { recursive: true });\n\ttry {\n\t\tawait writeFile(temporary, `${JSON.stringify(cache, null, '\\t')}\\n`, {\n\t\t\tflag: 'wx'\n\t\t});\n\t\tawait rename(temporary, destination);\n\t} finally {\n\t\tawait rm(temporary, { force: true }).catch(() => undefined);\n\t}\n};\n\nconst nativeDependencySources = async (nativeDirectory: string) => {\n\tconst settings = await readFile(\n\t\tjoin(nativeDirectory, 'capacitor.settings.gradle'),\n\t\t'utf8'\n\t);\n\tconst pattern = new RegExp(\n\t\tCAPACITOR_PROJECT_DIRECTORY_PATTERN.source,\n\t\tCAPACITOR_PROJECT_DIRECTORY_PATTERN.flags\n\t);\n\tconst dependencies = [...settings.matchAll(pattern)].map((match) => ({\n\t\tname: (match[1] ?? '').slice(1).replaceAll(/[^a-zA-Z0-9_.-]/gu, '_'),\n\t\tsource: resolve(nativeDirectory, match[2] ?? '')\n\t}));\n\tif (dependencies.length === 0) {\n\t\tthrow new Error(\n\t\t\t'Capacitor Android settings did not declare any native dependencies.'\n\t\t);\n\t}\n\n\treturn { dependencies, settings };\n};\n\nconst shouldIgnoreNativePath = (\n\trelativePath: string,\n\tignorePublicBundle: boolean\n) => {\n\tconst parts = relativePath.split(sep);\n\tif (\n\t\tparts.includes('.gradle') ||\n\t\tparts.includes('build') ||\n\t\tparts.includes('.absolutejs-dependencies')\n\t) {\n\t\treturn true;\n\t}\n\n\treturn (\n\t\tignorePublicBundle &&\n\t\tparts.slice(0, NATIVE_PUBLIC_PATH_SEGMENTS).join('/') ===\n\t\t\t'app/src/main/assets/public'\n\t);\n};\n\ntype NativeDirectoryCollector = (\n\troot: string,\n\tlabel: string,\n\tdirectory: string,\n\tignorePublicBundle: boolean\n) => Promise<string[]>;\n\nconst collectNativePath = async (\n\troot: string,\n\tlabel: string,\n\tpath: string,\n\tisDirectory: boolean,\n\tisFile: boolean,\n\tisSymbolicLink: boolean,\n\tignorePublicBundle: boolean\n) => {\n\tconst relativePath = relative(root, path);\n\tif (shouldIgnoreNativePath(relativePath, ignorePublicBundle)) return [];\n\tconst identity = `${label}:${relativePath.split(sep).join('/')}\\0`;\n\tif (isDirectory) {\n\t\treturn collectNativeDirectory(root, label, path, ignorePublicBundle);\n\t}\n\tif (isSymbolicLink) {\n\t\treturn [`link\\0${identity}${await readlink(path)}\\0`];\n\t}\n\tif (!isFile) return [];\n\tconst [metadata, contents] = await Promise.all([\n\t\tlstat(path),\n\t\treadFile(path)\n\t]);\n\tconst contentDigest = createHash('sha256').update(contents).digest('hex');\n\n\treturn [\n\t\t`file\\0${identity}${metadata.mode & EXECUTABLE_MODE_MASK}\\0${contentDigest}\\0`\n\t];\n};\n\nconst collectNativeDirectory: NativeDirectoryCollector = async (\n\troot,\n\tlabel,\n\tdirectory,\n\tignorePublicBundle\n) => {\n\tconst entries = await readdir(directory, { withFileTypes: true });\n\tentries.sort((left, right) => left.name.localeCompare(right.name));\n\tconst records = await Promise.all(\n\t\tentries.map((entry) =>\n\t\t\tcollectNativePath(\n\t\t\t\troot,\n\t\t\t\tlabel,\n\t\t\t\tjoin(directory, entry.name),\n\t\t\t\tentry.isDirectory(),\n\t\t\t\tentry.isFile(),\n\t\t\t\tentry.isSymbolicLink(),\n\t\t\t\tignorePublicBundle\n\t\t\t)\n\t\t)\n\t);\n\n\treturn records.flat();\n};\n\nconst hashNativeTree = async (\n\troot: string,\n\tlabel: string,\n\tignorePublicBundle: boolean\n) => {\n\tconst resolvedRoot = await realpath(root);\n\tconst records = await collectNativeDirectory(\n\t\tresolvedRoot,\n\t\tlabel,\n\t\tresolvedRoot,\n\t\tignorePublicBundle\n\t);\n\n\treturn createHash('sha256').update(records.join('')).digest('hex');\n};\n\ntype NativeFingerprintRoot = {\n\tignorePublicBundle: boolean;\n\tlabel: string;\n\tsource: string;\n};\n\nexport const fingerprintAbsoluteAndroidNativeProject = async (\n\tproject: Pick<AbsoluteAndroidDevProject, 'nativeDirectory'>,\n\toptions: { includePublicBundle?: boolean } = {}\n) => {\n\tconst { dependencies } = await nativeDependencySources(\n\t\tproject.nativeDirectory\n\t);\n\tconst roots: NativeFingerprintRoot[] = [\n\t\t{\n\t\t\tignorePublicBundle: options.includePublicBundle !== true,\n\t\t\tlabel: 'android',\n\t\t\tsource: project.nativeDirectory\n\t\t},\n\t\t...dependencies\n\t\t\t.sort((left, right) => left.name.localeCompare(right.name))\n\t\t\t.map((dependency) => ({\n\t\t\t\tignorePublicBundle: false,\n\t\t\t\tlabel: `dependency:${dependency.name}`,\n\t\t\t\tsource: dependency.source\n\t\t\t}))\n\t];\n\tconst treeDigests = await Promise.all(\n\t\troots.map((root) =>\n\t\t\thashNativeTree(root.source, root.label, root.ignorePublicBundle)\n\t\t)\n\t);\n\n\treturn createHash('sha256').update(treeDigests.join('\\0')).digest('hex');\n};\n\nconst parseJournal = (value: unknown): AndroidDevJournal | null => {\n\tif (typeof value !== 'object' || value === null) return null;\n\tconst backupPath = Reflect.get(value, 'backupPath');\n\tconst format = Reflect.get(value, 'format');\n\tconst manifestBackupPath = Reflect.get(value, 'manifestBackupPath');\n\tconst nativeConfigPath = Reflect.get(value, 'nativeConfigPath');\n\tconst nativeManifestPath = Reflect.get(value, 'nativeManifestPath');\n\tconst projectedFiles = Reflect.get(value, 'projectedFiles');\n\tif (\n\t\ttypeof backupPath !== 'string' ||\n\t\tformat !== DEV_JOURNAL_FORMAT ||\n\t\ttypeof nativeConfigPath !== 'string'\n\t) {\n\t\treturn null;\n\t}\n\tif (\n\t\t(manifestBackupPath !== undefined ||\n\t\t\tnativeManifestPath !== undefined) &&\n\t\t(typeof manifestBackupPath !== 'string' ||\n\t\t\ttypeof nativeManifestPath !== 'string')\n\t) {\n\t\treturn null;\n\t}\n\tif (\n\t\tprojectedFiles !== undefined &&\n\t\t(!Array.isArray(projectedFiles) ||\n\t\t\t!projectedFiles.every(\n\t\t\t\t(file) =>\n\t\t\t\t\tisRecord(file) &&\n\t\t\t\t\ttypeof file.path === 'string' &&\n\t\t\t\t\t(file.backupPath === undefined ||\n\t\t\t\t\t\ttypeof file.backupPath === 'string')\n\t\t\t))\n\t) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tbackupPath,\n\t\tformat,\n\t\tmanifestBackupPath,\n\t\tnativeConfigPath,\n\t\tnativeManifestPath,\n\t\tprojectedFiles\n\t};\n};\n\nconst restoreAndroidProjectedFile = async (\n\tfile: NonNullable<AndroidDevJournal['projectedFiles']>[number]\n) => {\n\tif (!file.backupPath || !(await pathExists(file.backupPath))) {\n\t\tawait rm(file.path, { force: true });\n\n\t\treturn;\n\t}\n\tawait mkdir(dirname(file.path), { recursive: true });\n\tawait copyFile(file.backupPath, file.path);\n};\n\nexport const repairAbsoluteAndroidDevSession = async (projectRoot: string) => {\n\tconst paths = journalPaths(projectRoot);\n\tif (!(await pathExists(paths.journal))) {\n\t\tawait rm(paths.root, { force: true, recursive: true });\n\n\t\treturn false;\n\t}\n\tconst journal = await readFile(paths.journal, 'utf8')\n\t\t.then((source) => parseJournal(JSON.parse(source)))\n\t\t.catch(() => null);\n\tif (\n\t\t!journal ||\n\t\t!isInside(projectRoot, journal.nativeConfigPath) ||\n\t\t!isInside(paths.root, journal.backupPath) ||\n\t\t(journal.nativeManifestPath !== undefined &&\n\t\t\t!isInside(projectRoot, journal.nativeManifestPath)) ||\n\t\t(journal.manifestBackupPath !== undefined &&\n\t\t\t!isInside(paths.root, journal.manifestBackupPath)) ||\n\t\tjournal.projectedFiles?.some(\n\t\t\t(file) =>\n\t\t\t\t!isInside(projectRoot, file.path) ||\n\t\t\t\t(file.backupPath !== undefined &&\n\t\t\t\t\t!isInside(paths.root, file.backupPath))\n\t\t)\n\t) {\n\t\tthrow new Error(\n\t\t\t`Refusing unsafe or invalid mobile dev journal at ${paths.journal}.`\n\t\t);\n\t}\n\tif (await pathExists(journal.backupPath)) {\n\t\tawait mkdir(dirname(journal.nativeConfigPath), { recursive: true });\n\t\tawait copyFile(journal.backupPath, journal.nativeConfigPath);\n\t}\n\tif (\n\t\tjournal.manifestBackupPath &&\n\t\tjournal.nativeManifestPath &&\n\t\t(await pathExists(journal.manifestBackupPath))\n\t) {\n\t\tawait mkdir(dirname(journal.nativeManifestPath), { recursive: true });\n\t\tawait copyFile(journal.manifestBackupPath, journal.nativeManifestPath);\n\t}\n\tawait Promise.all(\n\t\t(journal.projectedFiles ?? []).map(restoreAndroidProjectedFile)\n\t);\n\tawait rm(paths.root, { force: true, recursive: true });\n\n\treturn true;\n};\n\nconst setAndroidApplicationAttribute = (\n\tsource: string,\n\tattribute: string,\n\tvalue: string\n) => {\n\tconst pattern = new RegExp(`android:${attribute}=[\"'][^\"']*[\"']`, 'u');\n\tif (pattern.test(source))\n\t\treturn source.replace(pattern, `android:${attribute}=\"${value}\"`);\n\n\treturn source.replace(\n\t\t'<application',\n\t\t`<application\\n android:${attribute}=\"${value}\"`\n\t);\n};\n\nconst androidDevelopmentManifest = (\n\tsource: string,\n\tcleartext: boolean,\n\tdevelopmentNetworkConfig?: string\n) => {\n\tlet projected = source;\n\tif (developmentNetworkConfig) {\n\t\tprojected = setAndroidApplicationAttribute(\n\t\t\tprojected,\n\t\t\t'networkSecurityConfig',\n\t\t\t`@xml/${developmentNetworkConfig}`\n\t\t);\n\t}\n\tif (!cleartext) return projected;\n\tif (/android:usesCleartextTraffic=[\"'][^\"']*[\"']/u.test(source)) {\n\t\treturn projected.replace(\n\t\t\t/android:usesCleartextTraffic=[\"'][^\"']*[\"']/u,\n\t\t\t'android:usesCleartextTraffic=\"true\"'\n\t\t);\n\t}\n\n\treturn setAndroidApplicationAttribute(\n\t\tprojected,\n\t\t'usesCleartextTraffic',\n\t\t'true'\n\t);\n};\n\nconst withAndroidDebugCertificateAuthority = (source: string) => {\n\tif (source.includes('@raw/absolutejs_dev_ca')) return source;\n\tconst debugOverrides =\n\t\t/<debug-overrides(?:\\s[^>]*)?>([\\s\\S]*?)<\\/debug-overrides>/u;\n\tconst match = source.match(debugOverrides);\n\tif (match) {\n\t\tconst [block] = match;\n\t\tconst trustAnchors = /<trust-anchors(?:\\s[^>]*)?>/u;\n\t\tconst projectedBlock = trustAnchors.test(block)\n\t\t\t? block.replace(\n\t\t\t\t\ttrustAnchors,\n\t\t\t\t\t'$&\\n\\t\\t\\t<certificates src=\"@raw/absolutejs_dev_ca\" />'\n\t\t\t\t)\n\t\t\t: block.replace(\n\t\t\t\t\t'</debug-overrides>',\n\t\t\t\t\t'\\t<trust-anchors>\\n\\t\\t\\t<certificates src=\"@raw/absolutejs_dev_ca\" />\\n\\t\\t</trust-anchors>\\n\\t</debug-overrides>'\n\t\t\t\t);\n\n\t\treturn source.replace(block, projectedBlock);\n\t}\n\tif (!source.includes('</network-security-config>')) {\n\t\tthrow new Error('Android Network Security Configuration is invalid.');\n\t}\n\n\treturn source.replace(\n\t\t'</network-security-config>',\n\t\t'\\t<debug-overrides>\\n\\t\\t<trust-anchors>\\n\\t\\t\\t<certificates src=\"@raw/absolutejs_dev_ca\" />\\n\\t\\t</trust-anchors>\\n\\t</debug-overrides>\\n</network-security-config>'\n\t);\n};\n\nconst writeDevConfig = async (\n\tprojectRoot: string,\n\tnativeConfigPath: string,\n\tnativeManifestPath: string,\n\tport: number,\n\thttps: boolean,\n\tentry: string,\n\tembeddedBundle: boolean,\n\tserverHost: string,\n\tcertificateAuthorityPath?: string\n) => {\n\tconst paths = journalPaths(projectRoot);\n\tawait repairAbsoluteAndroidDevSession(projectRoot);\n\tconst source = await readFile(nativeConfigPath, 'utf8');\n\tconst manifestSource = await readFile(nativeManifestPath, 'utf8');\n\tconst parsed: unknown = JSON.parse(source);\n\tif (!isRecord(parsed)) {\n\t\tthrow new Error(\n\t\t\t`Invalid Capacitor native config at ${nativeConfigPath}.`\n\t\t);\n\t}\n\tawait mkdir(paths.root, { recursive: true });\n\tawait writeFile(paths.backup, source, { flag: 'wx' });\n\tawait writeFile(paths.manifestBackup, manifestSource, { flag: 'wx' });\n\tconst resourceRoot = join(dirname(nativeManifestPath), 'res');\n\tconst caPath = join(resourceRoot, 'raw', 'absolutejs_dev_ca.pem');\n\tconst existingNetworkConfig = manifestSource.match(\n\t\t/android:networkSecurityConfig=[\"']@xml\\/([a-z0-9_]+)[\"']/u\n\t)?.[1];\n\tconst networkConfigName =\n\t\texistingNetworkConfig ?? 'absolutejs_dev_network_security';\n\tconst networkConfigPath = join(\n\t\tresourceRoot,\n\t\t'xml',\n\t\t`${networkConfigName}.xml`\n\t);\n\tconst backupProjectedFile = async ([path, backupPath]: readonly [\n\t\tstring,\n\t\tstring\n\t]) => {\n\t\tif (!(await pathExists(path))) return { path };\n\t\tawait copyFile(path, backupPath);\n\n\t\treturn { backupPath, path };\n\t};\n\tconst projectedFiles: AndroidDevJournal['projectedFiles'] =\n\t\thttps && certificateAuthorityPath\n\t\t\t? await Promise.all(\n\t\t\t\t\t(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[caPath, paths.caBackup],\n\t\t\t\t\t\t\t[networkConfigPath, paths.networkConfigBackup]\n\t\t\t\t\t\t] as const\n\t\t\t\t\t).map(backupProjectedFile)\n\t\t\t\t)\n\t\t\t: [];\n\tconst journal: AndroidDevJournal = {\n\t\tbackupPath: paths.backup,\n\t\tformat: DEV_JOURNAL_FORMAT,\n\t\tmanifestBackupPath: paths.manifestBackup,\n\t\tnativeConfigPath,\n\t\tnativeManifestPath,\n\t\tprojectedFiles\n\t};\n\tawait writeFile(paths.journal, `${JSON.stringify(journal, null, '\\t')}\\n`, {\n\t\tflag: 'wx'\n\t});\n\tif (!embeddedBundle) {\n\t\tconst currentServer = parsed.server;\n\t\tconst developmentUrl = new URL(\n\t\t\t`${https ? 'https' : 'http'}://${serverHost}:${port}${entry}`\n\t\t);\n\t\tdevelopmentUrl.searchParams.set(\n\t\t\t'__absolute_target',\n\t\t\t'capacitor-android'\n\t\t);\n\t\tparsed.server = {\n\t\t\t...(typeof currentServer === 'object' && currentServer !== null\n\t\t\t\t? currentServer\n\t\t\t\t: {}),\n\t\t\tcleartext: !https,\n\t\t\turl: developmentUrl.href\n\t\t};\n\t}\n\tawait writeFile(\n\t\tnativeConfigPath,\n\t\t`${JSON.stringify(parsed, null, '\\t')}\\n`\n\t);\n\tif (https && certificateAuthorityPath) {\n\t\tawait Promise.all([\n\t\t\tmkdir(dirname(caPath), { recursive: true }),\n\t\t\tmkdir(dirname(networkConfigPath), { recursive: true })\n\t\t]);\n\t\tawait copyFile(certificateAuthorityPath, caPath);\n\t\tconst existingNetworkConfigSource = existingNetworkConfig\n\t\t\t? await readFile(networkConfigPath, 'utf8')\n\t\t\t: '<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n<network-security-config>\\n</network-security-config>\\n';\n\t\tawait writeFile(\n\t\t\tnetworkConfigPath,\n\t\t\twithAndroidDebugCertificateAuthority(existingNetworkConfigSource)\n\t\t);\n\t}\n\tawait writeFile(\n\t\tnativeManifestPath,\n\t\tandroidDevelopmentManifest(\n\t\t\tmanifestSource,\n\t\t\t!https,\n\t\t\thttps && certificateAuthorityPath !== undefined\n\t\t\t\t? networkConfigName\n\t\t\t\t: undefined\n\t\t)\n\t);\n};\n\nexport const parseAdbDevices = (output: string) =>\n\toutput\n\t\t.split(/\\r?\\n/)\n\t\t.slice(1)\n\t\t.map((line) => line.trim().split(/\\s+/, 2))\n\t\t.filter(\n\t\t\t(parts): parts is [string, string] =>\n\t\t\t\tparts.length === 2 && parts[1] === 'device'\n\t\t)\n\t\t.map(([serial]) => serial);\n\nconst isManagedEmulatorSerial = (\n\tserial: string,\n\tadb: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tif (!serial.startsWith('emulator-')) return false;\n\tconst avd = capture([adb, '-s', serial, 'emu', 'avd', 'name'], { env });\n\n\treturn (\n\t\tavd.exitCode === 0 &&\n\t\tavd.stdout\n\t\t\t.split(/\\r?\\n/)\n\t\t\t.map((value) => value.trim())\n\t\t\t.includes(ABSOLUTE_ANDROID_AVD_NAME)\n\t);\n};\n\nconst managedEmulatorSerial = (\n\tadb: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst devices = capture([adb, 'devices'], { env });\n\tif (devices.exitCode !== 0) return undefined;\n\n\treturn parseAdbDevices(devices.stdout).find((serial) =>\n\t\tisManagedEmulatorSerial(serial, adb, capture, env)\n\t);\n};\n\nconst requireConnectedAndroidDevice = (\n\tadb: string,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst devices = capture([adb, 'devices'], { env });\n\tif (\n\t\tdevices.exitCode !== 0 ||\n\t\t!parseAdbDevices(devices.stdout).includes(serial)\n\t) {\n\t\tthrow new Error(\n\t\t\t`Android device ${serial} is not connected and authorized. Confirm the USB debugging prompt, then retry.`\n\t\t);\n\t}\n};\n\nconst completedBootSerial = (\n\tproject: AbsoluteAndroidDevProject,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst serial = managedEmulatorSerial(project.adb, capture, env);\n\tif (!serial) return undefined;\n\tconst booted = capture(\n\t\t[project.adb, '-s', serial, 'shell', 'getprop', 'sys.boot_completed'],\n\t\t{ env }\n\t);\n\n\treturn booted.exitCode === 0 && booted.stdout.trim() === '1'\n\t\t? serial\n\t\t: undefined;\n};\n\nconst preferredCompletedBootSerial = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst booted = capture(\n\t\t[project.adb, '-s', serial, 'shell', 'getprop', 'sys.boot_completed'],\n\t\t{ env }\n\t);\n\n\treturn booted.exitCode === 0 && booted.stdout.trim() === '1'\n\t\t? serial\n\t\t: undefined;\n};\n\nconst waitForManagedEmulator = async (\n\tproject: AbsoluteAndroidDevProject,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tsleep: NonNullable<StartAbsoluteAndroidDevOptions['sleep']>,\n\tenv: Record<string, string | undefined>,\n\tsignal?: AbortSignal,\n\tpreferredSerial?: string\n) => {\n\tconst deadline = Date.now() + ANDROID_BOOT_TIMEOUT_MS;\n\tconst poll = async () => {\n\t\tthrowIfAborted(signal);\n\t\tconst serial = preferredSerial\n\t\t\t? preferredCompletedBootSerial(\n\t\t\t\t\tproject,\n\t\t\t\t\tpreferredSerial,\n\t\t\t\t\tcapture,\n\t\t\t\t\tenv\n\t\t\t\t)\n\t\t\t: completedBootSerial(project, capture, env);\n\t\tif (serial) return serial;\n\t\tif (Date.now() >= deadline) {\n\t\t\tthrow new Error(\n\t\t\t\t`Android ${preferredSerial ? `target ${preferredSerial}` : `emulator ${ABSOLUTE_ANDROID_AVD_NAME}`} did not finish booting within ${ANDROID_BOOT_TIMEOUT_MS / ANDROID_BOOT_POLL_MS}s.`\n\t\t\t);\n\t\t}\n\t\tawait sleep(ANDROID_BOOT_POLL_MS);\n\n\t\treturn poll();\n\t};\n\n\treturn poll();\n};\n\nconst windowsPathFromWsl = (\n\tpath: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>\n) => {\n\tconst result = capture(['wslpath', '-w', path]);\n\tif (result.exitCode !== 0 || !result.stdout.trim()) {\n\t\tthrow new Error(`Could not translate WSL path for Windows: ${path}`);\n\t}\n\n\treturn result.stdout.trim();\n};\n\ntype WindowsGradleDependency = {\n\tname: string;\n\twindowsSource: string;\n};\n\nconst mirroredCapacitorDependencies = async (\n\tproject: Pick<AbsoluteAndroidDevProject, 'nativeDirectory'>,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>\n) => {\n\tconst settingsPath = join(\n\t\tproject.nativeDirectory,\n\t\t'capacitor.settings.gradle'\n\t);\n\tconst settings = await readFile(settingsPath, 'utf8');\n\tconst dependencies: WindowsGradleDependency[] = [];\n\tconst rewrittenSettings = settings.replace(\n\t\tCAPACITOR_PROJECT_DIRECTORY_PATTERN,\n\t\t(_statement, projectName: string, sourcePath: string) => {\n\t\t\tconst name = projectName\n\t\t\t\t.slice(1)\n\t\t\t\t.replaceAll(/[^a-zA-Z0-9_.-]/gu, '_');\n\t\t\tconst source = resolve(project.nativeDirectory, sourcePath);\n\t\t\tdependencies.push({\n\t\t\t\tname,\n\t\t\t\twindowsSource: windowsPathFromWsl(source, capture)\n\t\t\t});\n\n\t\t\treturn `project('${projectName}').projectDir = new File('./.absolutejs-dependencies/${name}')`;\n\t\t}\n\t);\n\tif (dependencies.length === 0) {\n\t\tthrow new Error(\n\t\t\t'Capacitor Android settings did not declare any native dependencies.'\n\t\t);\n\t}\n\n\treturn { dependencies, rewrittenSettings };\n};\n\nconst encodedWindowsGradleCommand = (\n\twindowsSource: string,\n\twindowsDirectory: string,\n\twindowsAndroidRoot: string,\n\tdependencies: WindowsGradleDependency[],\n\trewrittenSettings: string,\n\ttask: AbsoluteAndroidGradleTask,\n\tgradleArguments: readonly string[]\n) => {\n\tconst sourceDirectory = Buffer.from(windowsSource, 'utf8').toString(\n\t\t'base64'\n\t);\n\tconst buildDirectory = Buffer.from(windowsDirectory, 'utf8').toString(\n\t\t'base64'\n\t);\n\tconst androidRoot = Buffer.from(windowsAndroidRoot, 'utf8').toString(\n\t\t'base64'\n\t);\n\tconst dependencyData = Buffer.from(\n\t\tJSON.stringify(dependencies),\n\t\t'utf8'\n\t).toString('base64');\n\tconst settingsData = Buffer.from(rewrittenSettings, 'utf8').toString(\n\t\t'base64'\n\t);\n\tconst argumentsData = Buffer.from(\n\t\tJSON.stringify(gradleArguments),\n\t\t'utf8'\n\t).toString('base64');\n\tconst source = [\n\t\t\"$ErrorActionPreference = 'Stop'\",\n\t\t`$source = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${sourceDirectory}'))`,\n\t\t`$directory = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${buildDirectory}'))`,\n\t\t`$androidHome = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${androidRoot}'))`,\n\t\t`$dependencies = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${dependencyData}')) | ConvertFrom-Json`,\n\t\t`$settings = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${settingsData}'))`,\n\t\t`$gradleArguments = @([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${argumentsData}')) | ConvertFrom-Json)`,\n\t\t'$env:ANDROID_HOME = $androidHome',\n\t\t'$env:ANDROID_SDK_ROOT = $androidHome',\n\t\t'New-Item -ItemType Directory -Force -Path $directory | Out-Null',\n\t\t'& robocopy.exe $source $directory /MIR /XD .gradle build .absolutejs-dependencies /NFL /NDL /NJH /NJS /NP',\n\t\t'$copyExit = $LASTEXITCODE',\n\t\t'if ($copyExit -ge 8) { exit $copyExit }',\n\t\t\"foreach ($dependency in @($dependencies)) { $target = Join-Path $directory ('.absolutejs-dependencies\\\\' + $dependency.name); New-Item -ItemType Directory -Force -Path $target | Out-Null; & robocopy.exe $dependency.windowsSource $target /MIR /XD .gradle build /NFL /NDL /NJH /NJS /NP; if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } }\",\n\t\t\"[IO.File]::WriteAllText((Join-Path $directory 'capacitor.settings.gradle'), $settings)\",\n\t\t\"$wrapper = Join-Path $directory 'gradlew.bat'\",\n\t\t`& $wrapper --no-daemon --console=plain -p $directory @gradleArguments ${task}`,\n\t\t'if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }',\n\t\t'exit 0'\n\t].join('; ');\n\n\treturn Buffer.from(source, 'utf16le').toString('base64');\n};\n\nexport type AbsoluteAndroidGradleTask =\n\t| 'assembleDebug'\n\t| 'assembleRelease'\n\t| 'bundleRelease';\n\nexport type BuildAbsoluteAndroidGradleOptions = {\n\tcapture?: NonNullable<StartAbsoluteAndroidDevOptions['capture']>;\n\tenv?: Record<string, string | undefined>;\n\tgradleArguments?: readonly string[];\n\tproject: Pick<\n\t\tAbsoluteAndroidDevProject,\n\t\t'androidRoot' | 'config' | 'host' | 'nativeDirectory' | 'projectRoot'\n\t>;\n\trun?: NonNullable<StartAbsoluteAndroidDevOptions['run']>;\n\tsignal?: AbortSignal;\n\ttask: AbsoluteAndroidGradleTask;\n};\n\nconst gradleArtifactPath = (\n\tnativeDirectory: string,\n\ttask: AbsoluteAndroidGradleTask,\n\twindows = false\n) => {\n\tconst pathJoin = windows ? win32.join : join;\n\tif (task === 'assembleDebug') {\n\t\treturn pathJoin(\n\t\t\tnativeDirectory,\n\t\t\t'app',\n\t\t\t'build',\n\t\t\t'outputs',\n\t\t\t'apk',\n\t\t\t'debug',\n\t\t\t'app-debug.apk'\n\t\t);\n\t}\n\tif (task === 'assembleRelease') {\n\t\treturn pathJoin(\n\t\t\tnativeDirectory,\n\t\t\t'app',\n\t\t\t'build',\n\t\t\t'outputs',\n\t\t\t'apk',\n\t\t\t'release',\n\t\t\t'app-release.apk'\n\t\t);\n\t}\n\n\treturn pathJoin(\n\t\tnativeDirectory,\n\t\t'app',\n\t\t'build',\n\t\t'outputs',\n\t\t'bundle',\n\t\t'release',\n\t\t'app-release.aab'\n\t);\n};\n\nconst resolveGradleArtifactPath = async (\n\tnativeDirectory: string,\n\ttask: AbsoluteAndroidGradleTask\n) => {\n\tconst primary = gradleArtifactPath(nativeDirectory, task);\n\tif (task !== 'assembleRelease' || (await pathExists(primary))) {\n\t\treturn primary;\n\t}\n\n\treturn join(\n\t\tnativeDirectory,\n\t\t'app',\n\t\t'build',\n\t\t'outputs',\n\t\t'apk',\n\t\t'release',\n\t\t'app-release-unsigned.apk'\n\t);\n};\n\nexport const buildAbsoluteAndroidGradleArtifact = async (\n\toptions: BuildAbsoluteAndroidGradleOptions\n) => {\n\tconst { project, task } = options;\n\tconst capture = options.capture ?? captureCommand;\n\tconst run = options.run ?? runCommand;\n\tconst env = options.env ?? process.env;\n\tconst gradleArguments = options.gradleArguments ?? [];\n\tif (project.host === 'wsl') {\n\t\tconst windowsSource = windowsPathFromWsl(\n\t\t\tproject.nativeDirectory,\n\t\t\tcapture\n\t\t);\n\t\tconst buildId = Bun.hash(project.projectRoot).toString(HASH_RADIX);\n\t\tconst managedBuildDirectory = resolve(\n\t\t\tproject.androidRoot,\n\t\t\t'..',\n\t\t\t'..',\n\t\t\t'Builds',\n\t\t\t`${project.config.appId}-${buildId}`\n\t\t);\n\t\tconst windowsDirectory = windowsPathFromWsl(\n\t\t\tmanagedBuildDirectory,\n\t\t\tcapture\n\t\t);\n\t\tconst windowsAndroidRoot = windowsPathFromWsl(\n\t\t\tproject.androidRoot,\n\t\t\tcapture\n\t\t);\n\t\tconst { dependencies, rewrittenSettings } =\n\t\t\tawait mirroredCapacitorDependencies(project, capture);\n\t\tawait requireSuccess(\n\t\t\t[\n\t\t\t\t'powershell.exe',\n\t\t\t\t'-NoProfile',\n\t\t\t\t'-EncodedCommand',\n\t\t\t\tencodedWindowsGradleCommand(\n\t\t\t\t\twindowsSource,\n\t\t\t\t\twindowsDirectory,\n\t\t\t\t\twindowsAndroidRoot,\n\t\t\t\t\tdependencies,\n\t\t\t\t\trewrittenSettings,\n\t\t\t\t\ttask,\n\t\t\t\t\tgradleArguments\n\t\t\t\t)\n\t\t\t],\n\t\t\t'Android Gradle build',\n\t\t\trun,\n\t\t\t{ env, signal: options.signal }\n\t\t);\n\n\t\tconst artifactPath = await resolveGradleArtifactPath(\n\t\t\tmanagedBuildDirectory,\n\t\t\ttask\n\t\t);\n\t\tconst unsigned = artifactPath.endsWith('-unsigned.apk');\n\n\t\treturn {\n\t\t\tartifactPath,\n\t\t\tinstallPath: unsigned\n\t\t\t\t? win32.join(\n\t\t\t\t\t\twindowsDirectory,\n\t\t\t\t\t\t'app',\n\t\t\t\t\t\t'build',\n\t\t\t\t\t\t'outputs',\n\t\t\t\t\t\t'apk',\n\t\t\t\t\t\t'release',\n\t\t\t\t\t\t'app-release-unsigned.apk'\n\t\t\t\t\t)\n\t\t\t\t: gradleArtifactPath(windowsDirectory, task, true)\n\t\t};\n\t}\n\tconst wrapper = project.host === 'windows' ? 'gradlew.bat' : './gradlew';\n\tawait requireSuccess(\n\t\t[wrapper, '--no-daemon', '--console=plain', ...gradleArguments, task],\n\t\t'Android Gradle build',\n\t\trun,\n\t\t{ cwd: project.nativeDirectory, env, signal: options.signal }\n\t);\n\n\tconst artifactPath = await resolveGradleArtifactPath(\n\t\tproject.nativeDirectory,\n\t\ttask\n\t);\n\n\treturn { artifactPath, installPath: artifactPath };\n};\n\nconst buildAndroidDebugApp = async (\n\tproject: AbsoluteAndroidDevProject,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>,\n\tenv: Record<string, string | undefined>,\n\tsignal?: AbortSignal\n) =>\n\t(\n\t\tawait buildAbsoluteAndroidGradleArtifact({\n\t\t\tcapture,\n\t\t\tenv,\n\t\t\tproject,\n\t\t\trun,\n\t\t\tsignal,\n\t\t\ttask: 'assembleDebug'\n\t\t})\n\t).installPath;\n\ntype EnsureAndroidDebugAppOptions = {\n\tcache: AndroidNativeCache | null;\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>;\n\tenv: Record<string, string | undefined>;\n\tfingerprint: string;\n\tlog: NonNullable<StartAbsoluteAndroidDevOptions['log']>;\n\tproject: AbsoluteAndroidDevProject;\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>;\n\tserial: string;\n\tsignal?: AbortSignal;\n\ttransition: (state: AbsoluteAndroidDevState) => void;\n};\n\nconst persistInstalledAndroidNativeCache = async (\n\toptions: EnsureAndroidDebugAppOptions,\n\tinstalled: AndroidInstalledPackage | undefined\n) => {\n\tif (!installed) {\n\t\toptions.log(\n\t\t\t'Android package identity was unavailable; the next session will rebuild safely.'\n\t\t);\n\n\t\treturn;\n\t}\n\tconst installations =\n\t\toptions.cache?.appId === options.project.config.appId &&\n\t\toptions.cache.fingerprint === options.fingerprint\n\t\t\t? { ...options.cache.installations }\n\t\t\t: {};\n\tinstallations[options.serial] = installed.identity;\n\tawait writeNativeCache(options.project.projectRoot, {\n\t\tappId: options.project.config.appId,\n\t\tfingerprint: options.fingerprint,\n\t\tformat: NATIVE_CACHE_FORMAT,\n\t\tinstallations\n\t}).catch((error) => {\n\t\toptions.log(\n\t\t\t`Android native cache could not be saved: ${error instanceof Error ? error.message : String(error)}`\n\t\t);\n\t});\n};\n\nconst ensureAndroidDebugApp = async (options: EnsureAndroidDebugAppOptions) => {\n\tconst installed = androidInstalledPackageIdentity(\n\t\toptions.project,\n\t\toptions.serial,\n\t\toptions.capture,\n\t\toptions.env\n\t);\n\tconst cacheHit =\n\t\toptions.cache?.appId === options.project.config.appId &&\n\t\toptions.cache.fingerprint === options.fingerprint &&\n\t\tinstalled !== undefined &&\n\t\toptions.cache.installations[options.serial] === installed.identity;\n\tif (cacheHit) {\n\t\toptions.log(\n\t\t\t`Android native app is unchanged on ${options.serial}; skipped Gradle build and APK install.`\n\t\t);\n\n\t\treturn { nativeCacheHit: true, uid: installed.uid };\n\t}\n\toptions.log(\n\t\t'Android native inputs changed or the installed app is stale; rebuilding.'\n\t);\n\toptions.transition('building');\n\tconst installPath = await buildAndroidDebugApp(\n\t\toptions.project,\n\t\toptions.capture,\n\t\toptions.run,\n\t\toptions.env,\n\t\toptions.signal\n\t);\n\tthrowIfAborted(options.signal);\n\toptions.transition('installing');\n\tawait requireSuccess(\n\t\t[\n\t\t\toptions.project.adb,\n\t\t\t'-s',\n\t\t\toptions.serial,\n\t\t\t'install',\n\t\t\t'-r',\n\t\t\t'-d',\n\t\t\tinstallPath\n\t\t],\n\t\t'Android app installation',\n\t\toptions.run,\n\t\t{ env: options.env, signal: options.signal }\n\t);\n\tconst updated = androidInstalledPackageIdentity(\n\t\toptions.project,\n\t\toptions.serial,\n\t\toptions.capture,\n\t\toptions.env\n\t);\n\tawait persistInstalledAndroidNativeCache(options, updated);\n\n\treturn { nativeCacheHit: false, uid: updated?.uid };\n};\n\nconst startManagedEmulatorIfNeeded = (\n\tproject: AbsoluteAndroidDevProject,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tspawn: NonNullable<StartAbsoluteAndroidDevOptions['spawn']>,\n\tlog: NonNullable<StartAbsoluteAndroidDevOptions['log']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tif (!project.emulator) {\n\t\tthrow new Error(\n\t\t\t'Android Emulator is unavailable. Select a physical device or run `absolute mobile doctor android --fix`.'\n\t\t);\n\t}\n\tconst serial = managedEmulatorSerial(project.adb, capture, env);\n\tif (serial) return { serial, started: false };\n\tlog(`Starting Android emulator ${ABSOLUTE_ANDROID_AVD_NAME}...`);\n\tspawn(\n\t\t[\n\t\t\tproject.emulator,\n\t\t\t'-avd',\n\t\t\tABSOLUTE_ANDROID_AVD_NAME,\n\t\t\t'-netdelay',\n\t\t\t'none',\n\t\t\t'-netspeed',\n\t\t\t'full'\n\t\t],\n\t\t{ env }\n\t);\n\n\treturn { serial: undefined, started: true };\n};\n\nconst logHttpsCertificateRequirement = (\n\thttps: boolean | undefined,\n\tlog: NonNullable<StartAbsoluteAndroidDevOptions['log']>\n) => {\n\tif (https !== true) return;\n\tlog(\n\t\t'Android HMR is using HTTPS; AbsoluteJS is projecting the local development CA into this debug app only.'\n\t);\n};\n\nconst removeAdbReverse = async (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string | undefined,\n\tport: number,\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tif (!serial) return;\n\tawait run(\n\t\t[project.adb, '-s', serial, 'reverse', '--remove', `tcp:${port}`],\n\t\t{ env }\n\t).catch(() => undefined);\n};\n\nconst androidLaunchCommand = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string\n) => [\n\tproject.adb,\n\t'-s',\n\tserial,\n\t'shell',\n\t'monkey',\n\t'-p',\n\tproject.config.appId,\n\t'-c',\n\t'android.intent.category.LAUNCHER',\n\t'1'\n];\n\nconst stopAndroidAppCommand = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string\n) => [\n\tproject.adb,\n\t'-s',\n\tserial,\n\t'shell',\n\t'am',\n\t'force-stop',\n\tproject.config.appId\n];\n\nconst launchAndroidApp = async (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tdescription: string,\n\trun: NonNullable<StartAbsoluteAndroidDevOptions['run']>,\n\toptions: {\n\t\tenv: Record<string, string | undefined>;\n\t\tsignal?: AbortSignal;\n\t}\n) => {\n\tawait requireSuccess(\n\t\tstopAndroidAppCommand(project, serial),\n\t\t`${description} reset`,\n\t\trun,\n\t\toptions\n\t);\n\tawait requireSuccess(\n\t\tandroidLaunchCommand(project, serial),\n\t\tdescription,\n\t\trun,\n\t\toptions\n\t);\n};\n\nconst androidPackageUid = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst result = capture(\n\t\t[\n\t\t\tproject.adb,\n\t\t\t'-s',\n\t\t\tserial,\n\t\t\t'shell',\n\t\t\t'cmd',\n\t\t\t'package',\n\t\t\t'list',\n\t\t\t'packages',\n\t\t\t'-U',\n\t\t\tproject.config.appId\n\t\t],\n\t\t{ env }\n\t);\n\tif (result.exitCode !== 0) return undefined;\n\tconst escapedAppId = project.config.appId.replace(\n\t\t/[.*+?^${}()|[\\]\\\\]/gu,\n\t\t'\\\\$&'\n\t);\n\tconst match = new RegExp(`package:${escapedAppId}\\\\s+uid:(\\\\d+)`, 'u').exec(\n\t\tresult.stdout\n\t);\n\n\treturn match?.[1];\n};\n\nconst androidInstalledPackageIdentity = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>\n) => {\n\tconst result = capture(\n\t\t[\n\t\t\tproject.adb,\n\t\t\t'-s',\n\t\t\tserial,\n\t\t\t'shell',\n\t\t\t'dumpsys',\n\t\t\t'package',\n\t\t\tproject.config.appId\n\t\t],\n\t\t{ env }\n\t);\n\tif (result.exitCode !== 0) return undefined;\n\tconst codePath = /^\\s*codePath=(.+)$/mu.exec(result.stdout)?.[1]?.trim();\n\tconst lastUpdateTime = /^\\s*lastUpdateTime=(.+)$/mu\n\t\t.exec(result.stdout)?.[1]\n\t\t?.trim();\n\tif (!codePath || !lastUpdateTime) return undefined;\n\tconst uid = /^\\s*appId=(\\d+)$/mu.exec(result.stdout)?.[1];\n\n\treturn { identity: `${codePath}\\0${lastUpdateTime}`, uid };\n};\n\nconst attachAndroidNativeLogs = (\n\tproject: AbsoluteAndroidDevProject,\n\tserial: string,\n\tcapture: NonNullable<StartAbsoluteAndroidDevOptions['capture']>,\n\tenv: Record<string, string | undefined>,\n\toptions: StartAbsoluteAndroidDevOptions,\n\tknownUid?: string\n) => {\n\tif (!options.nativeLog) return null;\n\tconst uid = knownUid ?? androidPackageUid(project, serial, capture, env);\n\tif (!uid) {\n\t\toptions.log?.(\n\t\t\t`Android app logs unavailable: could not resolve the package UID for ${project.config.appId}.`\n\t\t);\n\n\t\treturn null;\n\t}\n\tconst onLine = (line: string) => {\n\t\tconst entry = parseAbsoluteAndroidLogLine(line);\n\t\t// Capacitor 8 SystemBars can run before documentElement exists. A later\n\t\t// inset pass applies the values; keep the plugin enabled because disabling\n\t\t// it breaks edge-to-edge layout on Android 16. Remove this narrow filter\n\t\t// when https://github.com/ionic-team/capacitor/issues/8530 is fixed.\n\t\tif (entry && !isIgnorableAbsoluteAndroidLog(entry)) {\n\t\t\toptions.nativeLog?.(entry);\n\t\t}\n\t};\n\n\treturn (options.startNativeLogs ?? startNativeLogStream)(\n\t\t[\n\t\t\tproject.adb,\n\t\t\t'-s',\n\t\t\tserial,\n\t\t\t'logcat',\n\t\t\t`--uid=${uid}`,\n\t\t\t'-v',\n\t\t\t'threadtime',\n\t\t\t'-T',\n\t\t\t'1',\n\t\t\t'*:W',\n\t\t\t'Capacitor:V',\n\t\t\t'Capacitor/Console:V',\n\t\t\t'chromium:I'\n\t\t],\n\t\t{ env },\n\t\tonLine\n\t);\n};\n\nexport const prepareAbsoluteAndroidDevProject = async (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\toptions: PrepareAbsoluteAndroidDevOptions\n): Promise<AbsoluteAndroidDevProject> => {\n\tconst projectRoot = resolve(options.projectRoot);\n\tconst host = detectAbsoluteMobileHost();\n\tconst androidRoot =\n\t\tprocess.env.ANDROID_HOME ??\n\t\tprocess.env.ANDROID_SDK_ROOT ??\n\t\tabsoluteManagedAndroidSdkRoot(host);\n\tconst checks = await inspectAbsoluteMobileToolchain({ androidRoot, host });\n\tconst deviceOnlyChecks = new Set([\n\t\t'android.avd',\n\t\t'android.avdmanager',\n\t\t'android.emulator',\n\t\t'android.virtualization'\n\t]);\n\tconst failed = checks.filter(\n\t\t(check) =>\n\t\t\tcheck.platform === 'android' &&\n\t\t\t(check.status === 'fail' || check.status === 'warn') &&\n\t\t\t(options.target !== 'device' || !deviceOnlyChecks.has(check.id))\n\t);\n\tif (failed.length > 0) {\n\t\tthrow new Error(\n\t\t\t`Android ${options.target === 'device' ? 'device development' : 'emulation'} is not ready: ${failed.map(({ label }) => label).join(', ')}.`\n\t\t);\n\t}\n\tconst adb = checks.find((check) => check.id === 'android.adb')?.path;\n\tconst emulator = checks.find(\n\t\t(check) => check.id === 'android.emulator'\n\t)?.path;\n\tif (!adb || (options.target !== 'device' && !emulator)) {\n\t\tthrow new Error(\n\t\t\t'Android SDK tools disappeared after readiness checks.'\n\t\t);\n\t}\n\tconst cap = join(\n\t\tprojectRoot,\n\t\t'node_modules',\n\t\t'.bin',\n\t\thost === 'windows' ? 'cap.cmd' : 'cap'\n\t);\n\tif (!(await pathExists(cap))) {\n\t\tthrow new Error(\n\t\t\t'Capacitor CLI is not installed. Run absolute mobile init first.'\n\t\t);\n\t}\n\tawait writeAbsoluteCapacitorConfig(config, { projectRoot });\n\tawait mkdir(config.bundleDirectory, { recursive: true });\n\tconst placeholder = join(config.bundleDirectory, 'index.html');\n\tif (!(await pathExists(placeholder))) {\n\t\tawait writeFile(\n\t\t\tplaceholder,\n\t\t\t'<!doctype html><title>AbsoluteJS mobile development</title>\\n'\n\t\t);\n\t}\n\tconst nativeDirectory = join(config.nativeProjectDirectory, 'android');\n\tif (!(await pathExists(nativeDirectory))) {\n\t\tif (!options.createNativeProject) {\n\t\t\tthrow new Error('Android native project has not been created.');\n\t\t}\n\t\tconst run = options.run ?? runCommand;\n\t\tif (\n\t\t\t(await run([cap, 'add', 'android'], {\n\t\t\t\tcwd: projectRoot\n\t\t\t})) !== 0\n\t\t) {\n\t\t\tthrow new Error('Capacitor Android project creation failed.');\n\t\t}\n\t}\n\n\treturn {\n\t\tadb,\n\t\tandroidRoot,\n\t\tcap,\n\t\tconfig,\n\t\t...(emulator ? { emulator } : {}),\n\t\thost,\n\t\tnativeDirectory,\n\t\tprojectRoot\n\t};\n};\n\nexport const startAbsoluteAndroidDevSession = async (\n\toptions: StartAbsoluteAndroidDevOptions\n) => {\n\tconst { project } = options;\n\tconst startupStartedAt = performance.now();\n\tlet phaseStartedAt = performance.now();\n\tconst phaseDurations: Record<string, number> = {};\n\tlet state: AbsoluteAndroidDevState = 'syncing';\n\tconst transition = (next: AbsoluteAndroidDevState) => {\n\t\tif (next === state) {\n\t\t\toptions.onStateChange?.(next);\n\n\t\t\treturn;\n\t\t}\n\t\tconst now = performance.now();\n\t\tconst durationMs = now - phaseStartedAt;\n\t\tphaseDurations[state] = (phaseDurations[state] ?? 0) + durationMs;\n\t\toptions.onPhaseTiming?.({\n\t\t\tdurationMs,\n\t\t\tphase: state,\n\t\t\ttotalMs: now - startupStartedAt\n\t\t});\n\t\tstate = next;\n\t\tphaseStartedAt = now;\n\t\toptions.onStateChange?.(next);\n\t};\n\tconst capture = options.capture ?? captureCommand;\n\tconst run = options.run ?? runCommand;\n\tconst sleep = options.sleep ?? Bun.sleep;\n\tconst spawn = options.spawn ?? spawnCommand;\n\tconst log = options.log ?? console.log;\n\tconst androidHome =\n\t\tproject.host === 'wsl'\n\t\t\t? windowsPathFromWsl(project.androidRoot, capture)\n\t\t\t: project.androidRoot;\n\tconst env: Record<string, string | undefined> = {\n\t\t...process.env,\n\t\tANDROID_HOME: androidHome\n\t};\n\ttransition('syncing');\n\tawait repairAbsoluteAndroidDevSession(project.projectRoot);\n\tthrowIfAborted(options.signal);\n\tawait requireSuccess(\n\t\t[project.cap, 'sync', 'android'],\n\t\t'Capacitor Android synchronization',\n\t\trun,\n\t\t{ cwd: project.projectRoot, env, signal: options.signal }\n\t);\n\tthrowIfAborted(options.signal);\n\ttransition('configuring');\n\tconst nativeConfigPath = join(\n\t\tproject.nativeDirectory,\n\t\t'app',\n\t\t'src',\n\t\t'main',\n\t\t'assets',\n\t\t'capacitor.config.json'\n\t);\n\tconst nativeManifestPath = join(\n\t\tproject.nativeDirectory,\n\t\t'app',\n\t\t'src',\n\t\t'main',\n\t\t'AndroidManifest.xml'\n\t);\n\tlet connectedSerial: string | undefined;\n\tlet nativeLogs: AbsoluteAndroidLogStream | null = null;\n\tconst closeNativeLogs = async () => {\n\t\tconst stream = nativeLogs;\n\t\tnativeLogs = null;\n\t\tawait stream?.close().catch(() => undefined);\n\t};\n\ttry {\n\t\tconst physicalDevice = options.deviceSerial !== undefined;\n\t\tif (options.https && !options.certificateAuthorityPath) {\n\t\t\tthrow new Error(\n\t\t\t\t'Android HTTPS development requires the AbsoluteJS development CA certificate.'\n\t\t\t);\n\t\t}\n\t\tawait writeDevConfig(\n\t\t\tproject.projectRoot,\n\t\t\tnativeConfigPath,\n\t\t\tnativeManifestPath,\n\t\t\toptions.port,\n\t\t\toptions.https === true,\n\t\t\tproject.config.entry,\n\t\t\toptions.embeddedBundle === true,\n\t\t\toptions.serverHost ?? 'localhost',\n\t\t\toptions.certificateAuthorityPath\n\t\t);\n\t\tthrowIfAborted(options.signal);\n\t\tlogHttpsCertificateRequirement(options.https, log);\n\t\tconst fingerprintStartedAt = performance.now();\n\t\tconst nativeFingerprintPromise =\n\t\t\tfingerprintAbsoluteAndroidNativeProject(project, {\n\t\t\t\tincludePublicBundle: options.embeddedBundle === true\n\t\t\t}).then((fingerprint) => {\n\t\t\t\tphaseDurations.fingerprinting =\n\t\t\t\t\tperformance.now() - fingerprintStartedAt;\n\n\t\t\t\treturn fingerprint;\n\t\t\t});\n\t\ttransition('booting');\n\t\tif (options.deviceSerial)\n\t\t\trequireConnectedAndroidDevice(\n\t\t\t\tproject.adb,\n\t\t\t\toptions.deviceSerial,\n\t\t\t\tcapture,\n\t\t\t\tenv\n\t\t\t);\n\t\tconst emulator = options.deviceSerial\n\t\t\t? { serial: options.deviceSerial, started: false }\n\t\t\t: startManagedEmulatorIfNeeded(project, capture, spawn, log, env);\n\t\tconst { started: startedEmulator } = emulator;\n\t\ttransition('connecting');\n\t\tconst serial = await waitForManagedEmulator(\n\t\t\tproject,\n\t\t\tcapture,\n\t\t\tsleep,\n\t\t\tenv,\n\t\t\toptions.signal,\n\t\t\temulator.serial\n\t\t);\n\t\tconnectedSerial = serial;\n\t\ttransition('forwarding');\n\t\tif (!physicalDevice)\n\t\t\tawait requireSuccess(\n\t\t\t\t[\n\t\t\t\t\tproject.adb,\n\t\t\t\t\t'-s',\n\t\t\t\t\tserial,\n\t\t\t\t\t'reverse',\n\t\t\t\t\t`tcp:${options.port}`,\n\t\t\t\t\t`tcp:${options.port}`\n\t\t\t\t],\n\t\t\t\t'ADB reverse port forwarding',\n\t\t\t\trun,\n\t\t\t\t{ env, signal: options.signal }\n\t\t\t);\n\t\tthrowIfAborted(options.signal);\n\t\tconst nativeFingerprint = await nativeFingerprintPromise;\n\t\tthrowIfAborted(options.signal);\n\t\ttransition('checking-native');\n\t\tconst cache = await readNativeCache(project.projectRoot);\n\t\tconst installedApp = await ensureAndroidDebugApp({\n\t\t\tcache,\n\t\t\tcapture,\n\t\t\tenv,\n\t\t\tfingerprint: nativeFingerprint,\n\t\t\tlog,\n\t\t\tproject,\n\t\t\trun,\n\t\t\tserial,\n\t\t\tsignal: options.signal,\n\t\t\ttransition\n\t\t});\n\t\tconst { nativeCacheHit, uid } = installedApp;\n\t\tthrowIfAborted(options.signal);\n\t\ttransition('launching');\n\t\tawait launchAndroidApp(project, serial, 'Android app launch', run, {\n\t\t\tenv,\n\t\t\tsignal: options.signal\n\t\t});\n\t\tthrowIfAborted(options.signal);\n\t\tif (options.nativeLog) transition('streaming-logs');\n\t\tnativeLogs = attachAndroidNativeLogs(\n\t\t\tproject,\n\t\t\tserial,\n\t\t\tcapture,\n\t\t\tenv,\n\t\t\toptions,\n\t\t\tuid\n\t\t);\n\t\ttransition('ready');\n\t\tphaseDurations.total = performance.now() - startupStartedAt;\n\t\tlog(\n\t\t\toptions.embeddedBundle === true\n\t\t\t\t? `Android ${physicalDevice ? 'device' : 'emulator'} connected (${serial}) with the embedded bundle and backend on port ${options.port} in ${getDurationString(phaseDurations.total)} (${nativeCacheHit ? 'native cache hit' : 'native build installed'}).`\n\t\t\t\t: `Android ${physicalDevice ? 'device' : 'emulator'} connected (${serial}) with HMR on port ${options.port} in ${getDurationString(phaseDurations.total)} (${nativeCacheHit ? 'native cache hit' : 'native build installed'}).`\n\t\t);\n\t\tlog(\n\t\t\t`Android startup: ${androidTimingSummary(phaseDurations, physicalDevice)}.`\n\t\t);\n\t\tlet closed = false;\n\t\tconst close = async () => {\n\t\t\tif (closed) return;\n\t\t\tclosed = true;\n\t\t\ttransition('closing');\n\t\t\tawait closeNativeLogs();\n\t\t\tif (!physicalDevice)\n\t\t\t\tawait removeAdbReverse(project, serial, options.port, run, env);\n\t\t\tawait repairAbsoluteAndroidDevSession(project.projectRoot);\n\t\t\ttransition('closed');\n\t\t};\n\n\t\treturn {\n\t\t\tclose,\n\t\t\tnativeCacheHit,\n\t\t\tserial,\n\t\t\tstartedEmulator,\n\t\t\ttimings: { ...phaseDurations },\n\t\t\trebuild: async () => {\n\t\t\t\tif (closed) {\n\t\t\t\t\tthrow new Error('Android development session is closed.');\n\t\t\t\t}\n\t\t\t\tlog(\n\t\t\t\t\t'Android native inputs changed; rebuilding without restarting the dev server.'\n\t\t\t\t);\n\t\t\t\tawait close();\n\n\t\t\t\treturn startAbsoluteAndroidDevSession(options);\n\t\t\t},\n\t\t\trelaunch: async () => {\n\t\t\t\tif (closed) {\n\t\t\t\t\tthrow new Error('Android development session is closed.');\n\t\t\t\t}\n\t\t\t\ttransition('launching');\n\t\t\t\ttry {\n\t\t\t\t\tawait launchAndroidApp(\n\t\t\t\t\t\tproject,\n\t\t\t\t\t\tserial,\n\t\t\t\t\t\t'Android app relaunch',\n\t\t\t\t\t\trun,\n\t\t\t\t\t\t{ env, signal: options.signal }\n\t\t\t\t\t);\n\t\t\t\t\ttransition('ready');\n\t\t\t\t\tlog(`Android app relaunched on ${serial}.`);\n\t\t\t\t} catch (error) {\n\t\t\t\t\ttransition('failed');\n\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t\tget state() {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\ttransition('failed');\n\t\tawait closeNativeLogs();\n\t\tif (!options.deviceSerial)\n\t\t\tawait removeAdbReverse(\n\t\t\t\tproject,\n\t\t\t\tconnectedSerial,\n\t\t\t\toptions.port,\n\t\t\t\trun,\n\t\t\t\tenv\n\t\t\t);\n\t\tawait repairAbsoluteAndroidDevSession(project.projectRoot);\n\n\t\tthrow error;\n\t}\n};\n",
20
20
  "import { access, readFile, rename, writeFile } from 'node:fs/promises';\nimport { relative, resolve } from 'node:path';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\n\nexport type WriteAbsoluteCapacitorConfigOptions = {\n\tforce?: boolean;\n\tprojectRoot: string;\n};\n\nconst CONFIG_FILE = 'capacitor.config.ts';\n\nconst portableRelative = (root: string, path: string) =>\n\trelative(root, path).replaceAll('\\\\', '/');\n\nconst capacitorConfigSource = (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\tprojectRoot: string\n) => `import type { CapacitorConfig } from '@capacitor/cli';\n\nconst config: CapacitorConfig = {\n\tappId: ${JSON.stringify(config.appId)},\n\tappName: ${JSON.stringify(config.appName)},\n\twebDir: ${JSON.stringify(portableRelative(projectRoot, config.bundleDirectory))},\n\tandroid: {\n\t\tpath: ${JSON.stringify(portableRelative(projectRoot, `${config.nativeProjectDirectory}/android`))}\n\t},\n\tios: {\n\t\tpath: ${JSON.stringify(portableRelative(projectRoot, `${config.nativeProjectDirectory}/ios`))}\n\t}\n};\n\nexport default config;\n`;\n\nconst exists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const writeAbsoluteCapacitorConfig = async (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\toptions: WriteAbsoluteCapacitorConfigOptions\n) => {\n\tconst projectRoot = resolve(options.projectRoot);\n\tconst destination = resolve(projectRoot, CONFIG_FILE);\n\tconst source = capacitorConfigSource(config, projectRoot);\n\tif (await exists(destination)) {\n\t\tconst current = await readFile(destination, 'utf8');\n\t\tif (current === source) return { changed: false, path: destination };\n\t\tif (!options.force) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`${CONFIG_FILE} already exists and differs; rerun with --force only after reviewing it.`\n\t\t\t);\n\t\t}\n\t}\n\tconst temporary = `${destination}.${crypto.randomUUID()}.tmp`;\n\tawait writeFile(temporary, source, { flag: 'wx' });\n\tawait rename(temporary, destination);\n\n\treturn { changed: true, path: destination };\n};\n",
21
21
  "import { performance } from 'node:perf_hooks';\n\nexport type AbsoluteAndroidInstalledApp = {\n\tappId: string;\n\tdataDirectory?: string;\n\tfirstInstallTime?: string;\n\tlastUpdateTime?: string;\n\tuid?: string;\n\tversionCode?: number;\n\tversionName?: string;\n};\n\nexport type AbsoluteAndroidUpgradeState = {\n\tauthCredential: boolean;\n\tpendingOperations: boolean;\n\tsyncDatabase: boolean;\n};\n\nexport type AbsoluteAndroidCompatibilityMatrix = {\n\tnPlusOne: 'compatible' | 'upgrade-required';\n\tnPlusTwo: 'compatible' | 'upgrade-required';\n\tnPlusThree: 'compatible' | 'upgrade-required';\n\trollback: 'compatible' | 'failed';\n};\n\nexport type AbsoluteAndroidUpgradeConformanceResult = {\n\tafter: AbsoluteAndroidInstalledApp;\n\tbefore: AbsoluteAndroidInstalledApp;\n\tcompatibility?: AbsoluteAndroidCompatibilityMatrix;\n\tdurationMs: number;\n\tinstallMs: number;\n\toutcome: 'fail' | 'pass';\n\tstate: AbsoluteAndroidUpgradeState;\n};\n\nexport type AbsoluteAndroidUpgradeCommandResult = {\n\texitCode: number;\n\tstderr: string;\n\tstdout: string;\n};\n\nexport type RunAbsoluteAndroidUpgradeConformanceOptions = {\n\tadb: string;\n\tafterInstall?: (installed: AbsoluteAndroidInstalledApp) => Promise<void>;\n\tapkPath: string;\n\tappId: string;\n\tcompatibility?: AbsoluteAndroidCompatibilityMatrix;\n\trun?: (command: string[]) => Promise<AbsoluteAndroidUpgradeCommandResult>;\n\tserial: string;\n\tverifyState: () => Promise<AbsoluteAndroidUpgradeState>;\n};\n\nconst captureCommand = async (command: string[]) => {\n\tconst process = Bun.spawn(command, { stderr: 'pipe', stdout: 'pipe' });\n\tconst [exitCode, stderr, stdout] = await Promise.all([\n\t\tprocess.exited,\n\t\tnew Response(process.stderr).text(),\n\t\tnew Response(process.stdout).text()\n\t]);\n\n\treturn { exitCode, stderr, stdout };\n};\n\nconst field = (output: string, name: string) =>\n\tnew RegExp(`^\\\\s*${name}=([^\\\\r\\\\n]+)$`, 'mu').exec(output)?.[1]?.trim();\n\nexport const inspectAbsoluteAndroidInstalledApp = async (\n\tadb: string,\n\tserial: string,\n\tappId: string,\n\trun: (\n\t\tcommand: string[]\n\t) => Promise<AbsoluteAndroidUpgradeCommandResult> = captureCommand\n) => {\n\tconst result = await run([\n\t\tadb,\n\t\t'-s',\n\t\tserial,\n\t\t'shell',\n\t\t'dumpsys',\n\t\t'package',\n\t\tappId\n\t]);\n\tif (result.exitCode !== 0)\n\t\tthrow new Error(\n\t\t\t`Could not inspect installed Android app ${appId}: ${result.stderr.trim() || result.stdout.trim()}`\n\t\t);\n\tconst installed = parseAbsoluteAndroidInstalledApp(appId, result.stdout);\n\tif (!installed)\n\t\tthrow new Error(`Android app ${appId} is not installed on ${serial}.`);\n\n\treturn installed;\n};\nexport const parseAbsoluteAndroidInstalledApp = (\n\tappId: string,\n\toutput: string\n): AbsoluteAndroidInstalledApp | null => {\n\tconst packageName = /^\\s*Package \\[([^\\]]+)\\]/mu.exec(output)?.[1];\n\tif (packageName !== appId && !output.includes(`package:${appId}`))\n\t\treturn null;\n\tconst versionCodeText = /^\\s*versionCode=(\\d+)/mu.exec(output)?.[1];\n\n\treturn {\n\t\tappId,\n\t\t...(field(output, 'dataDir')\n\t\t\t? { dataDirectory: field(output, 'dataDir') }\n\t\t\t: {}),\n\t\t...(field(output, 'firstInstallTime')\n\t\t\t? { firstInstallTime: field(output, 'firstInstallTime') }\n\t\t\t: {}),\n\t\t...(field(output, 'lastUpdateTime')\n\t\t\t? { lastUpdateTime: field(output, 'lastUpdateTime') }\n\t\t\t: {}),\n\t\t...(field(output, 'userId') || field(output, 'appId')\n\t\t\t? { uid: field(output, 'userId') ?? field(output, 'appId') }\n\t\t\t: {}),\n\t\t...(versionCodeText ? { versionCode: Number(versionCodeText) } : {}),\n\t\t...(field(output, 'versionName')\n\t\t\t? { versionName: field(output, 'versionName') }\n\t\t\t: {})\n\t};\n};\n\nconst unchanged = (\n\tname: string,\n\tbefore: string | undefined,\n\tafter: string | undefined\n) => {\n\tif (!before || !after)\n\t\tthrow new Error(\n\t\t\t`Android did not report ${name} for the upgrade proof.`\n\t\t);\n\tif (before !== after)\n\t\tthrow new Error(`Android ${name} changed during the in-place upgrade.`);\n};\n\nexport const runAbsoluteAndroidUpgradeConformance = async (\n\toptions: RunAbsoluteAndroidUpgradeConformanceOptions\n): Promise<AbsoluteAndroidUpgradeConformanceResult> => {\n\tconst run = options.run ?? captureCommand;\n\tconst startedAt = performance.now();\n\tconst before = await inspectAbsoluteAndroidInstalledApp(\n\t\toptions.adb,\n\t\toptions.serial,\n\t\toptions.appId,\n\t\trun\n\t);\n\tconst installStartedAt = performance.now();\n\tconst installed = await run([\n\t\toptions.adb,\n\t\t'-s',\n\t\toptions.serial,\n\t\t'install',\n\t\t'-r',\n\t\toptions.apkPath\n\t]);\n\tconst installMs = Math.round(performance.now() - installStartedAt);\n\tif (installed.exitCode !== 0 || !installed.stdout.includes('Success'))\n\t\tthrow new Error(\n\t\t\t`Android in-place upgrade failed: ${installed.stderr.trim() || installed.stdout.trim()}`\n\t\t);\n\tconst after = await inspectAbsoluteAndroidInstalledApp(\n\t\toptions.adb,\n\t\toptions.serial,\n\t\toptions.appId,\n\t\trun\n\t);\n\tunchanged('application UID', before.uid, after.uid);\n\tunchanged('data directory', before.dataDirectory, after.dataDirectory);\n\tunchanged(\n\t\t'first install timestamp',\n\t\tbefore.firstInstallTime,\n\t\tafter.firstInstallTime\n\t);\n\tif (\n\t\tbefore.versionCode !== undefined &&\n\t\tafter.versionCode !== undefined &&\n\t\tafter.versionCode <= before.versionCode\n\t)\n\t\tthrow new Error(\n\t\t\t`Android versionCode did not increase (${before.versionCode} -> ${after.versionCode}).`\n\t\t);\n\tawait options.afterInstall?.(after);\n\tconst state = await options.verifyState();\n\tconst compatibilityPass =\n\t\t!options.compatibility ||\n\t\t(options.compatibility.nPlusOne === 'compatible' &&\n\t\t\toptions.compatibility.nPlusTwo === 'compatible' &&\n\t\t\toptions.compatibility.nPlusThree === 'upgrade-required' &&\n\t\t\toptions.compatibility.rollback === 'compatible');\n\tconst outcome =\n\t\tObject.values(state).every(Boolean) && compatibilityPass\n\t\t\t? 'pass'\n\t\t\t: 'fail';\n\n\treturn {\n\t\tafter,\n\t\tbefore,\n\t\t...(options.compatibility\n\t\t\t? { compatibility: options.compatibility }\n\t\t\t: {}),\n\t\tdurationMs: Math.round(performance.now() - startedAt),\n\t\tinstallMs,\n\t\toutcome,\n\t\tstate\n\t};\n};\n",
22
22
  "import { createHash } from 'node:crypto';\nimport {\n\taccess,\n\tcopyFile,\n\tmkdir,\n\tmkdtemp,\n\treaddir,\n\treadFile,\n\trename,\n\trm,\n\tstat,\n\twriteFile\n} from 'node:fs/promises';\nimport { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport {\n\tdetectAbsoluteMobileHost,\n\ttype AbsoluteMobileHost\n} from './emulatorDoctor';\n\nexport const ABSOLUTE_IOS_RELEASE_FORMAT = 1 as const;\n\nexport type AbsoluteIosReleaseMetadata = {\n\tappBuild: string;\n\tappId: string;\n\tartifact: 'App.ipa';\n\tbuildNumber?: number;\n\tbytes: number;\n\tengine: 'capacitor';\n\tformat: typeof ABSOLUTE_IOS_RELEASE_FORMAT;\n\tmarketingVersion: string;\n\tplatform: 'ios';\n\treleaseId: string;\n\truntime: string;\n\tsha256: string;\n\tsigned: boolean;\n\ttype: 'ipa';\n};\n\ntype MobileClientManifest = {\n\tappBuild: string;\n\tappId: string;\n\truntime: string;\n};\ntype CommandOptions = {\n\tcwd?: string;\n\tenv?: Record<string, string | undefined>;\n};\ntype CommandResult = { exitCode: number; stderr: string; stdout: string };\n\nexport type BuildAbsoluteIosReleaseOptions = {\n\tallowUnsigned?: boolean;\n\tcapture?: (command: string[], options?: CommandOptions) => CommandResult;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\thost?: AbsoluteMobileHost;\n\toutputDirectory?: string;\n\tprepareBuildNumber?: (buildIdentity: string) => Promise<number>;\n\tprojectRoot: string;\n\trun?: (command: string[], options?: CommandOptions) => Promise<number>;\n\tbuildNumber?: number;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst requireManifest = (value: unknown): MobileClientManifest => {\n\tif (\n\t\t!isRecord(value) ||\n\t\ttypeof value.appBuild !== 'string' ||\n\t\ttypeof value.appId !== 'string' ||\n\t\ttypeof value.runtime !== 'string'\n\t) {\n\t\tthrow new TypeError('Invalid embedded AbsoluteJS mobile manifest.');\n\t}\n\n\treturn {\n\t\tappBuild: value.appBuild,\n\t\tappId: value.appId,\n\t\truntime: value.runtime\n\t};\n};\n\nconst pathExists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst defaultRun = async (command: string[], options: CommandOptions = {}) => {\n\tconst process = Bun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tstderr: 'inherit',\n\t\tstdin: 'inherit',\n\t\tstdout: 'inherit'\n\t});\n\n\treturn process.exited;\n};\n\nconst defaultCapture = (command: string[], options: CommandOptions = {}) => {\n\ttry {\n\t\tconst result = Bun.spawnSync(command, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: options.env,\n\t\t\tstderr: 'pipe',\n\t\t\tstdin: 'ignore',\n\t\t\tstdout: 'pipe'\n\t\t});\n\n\t\treturn {\n\t\t\texitCode: result.exitCode,\n\t\t\tstderr: result.stderr.toString(),\n\t\t\tstdout: result.stdout.toString()\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\texitCode: 1,\n\t\t\tstderr: error instanceof Error ? error.message : String(error),\n\t\t\tstdout: ''\n\t\t};\n\t}\n};\n\nconst ignoredFingerprintDirectories = new Set([\n\t'Pods',\n\t'DerivedData',\n\t'build',\n\t'xcuserdata'\n]);\n\nconst fingerprintFiles = async (\n\troot: string,\n\tcurrent = root\n): Promise<string[]> => {\n\tconst entries = await readdir(current, { withFileTypes: true });\n\tconst nested = await Promise.all(\n\t\tentries\n\t\t\t.sort((left, right) => left.name.localeCompare(right.name))\n\t\t\t.map(async (entry) => {\n\t\t\t\tconst path = join(current, entry.name);\n\t\t\t\tconst projectRelative = relative(root, path).replaceAll(\n\t\t\t\t\t'\\\\',\n\t\t\t\t\t'/'\n\t\t\t\t);\n\t\t\t\tconst ignored =\n\t\t\t\t\tentry.isDirectory() &&\n\t\t\t\t\t(ignoredFingerprintDirectories.has(entry.name) ||\n\t\t\t\t\t\tprojectRelative === 'App/App/public');\n\t\t\t\tif (ignored) return [];\n\t\t\t\tif (entry.isDirectory()) return fingerprintFiles(root, path);\n\n\t\t\t\treturn entry.isFile() ? [path] : [];\n\t\t\t})\n\t);\n\n\treturn nested.flat();\n};\n\nexport const fingerprintAbsoluteIosNativeProject = async (\n\tnativeDirectory: string\n) => {\n\tconst hasher = createHash('sha256');\n\tconst files = await fingerprintFiles(nativeDirectory);\n\tconst contents = await Promise.all(files.map((file) => readFile(file)));\n\tfiles.forEach((file, index) => {\n\t\thasher.update(relative(nativeDirectory, file).replaceAll('\\\\', '/'));\n\t\thasher.update('\\0');\n\t\thasher.update(contents[index] ?? new Uint8Array());\n\t\thasher.update('\\0');\n\t});\n\n\treturn hasher.digest('hex');\n};\n\nconst safeOutputDirectory = (projectRoot: string, requested?: string) => {\n\tconst root = resolve(projectRoot);\n\tconst output = resolve(\n\t\troot,\n\t\trequested ?? '.absolutejs/mobile/releases/ios'\n\t);\n\tconst projectRelative = relative(root, output);\n\tif (\n\t\tprojectRelative === '..' ||\n\t\tprojectRelative.startsWith(`..${sep}`) ||\n\t\tisAbsolute(projectRelative)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'mobile build --outdir must remain inside the project.'\n\t\t);\n\t}\n\n\treturn output;\n};\n\nconst sha256File = async (path: string) =>\n\tcreateHash('sha256')\n\t\t.update(await readFile(path))\n\t\t.digest('hex');\n\nconst findByExtension = async (\n\troot: string,\n\textension: string\n): Promise<string | undefined> => {\n\tif (!(await pathExists(root))) return undefined;\n\tconst entries = await readdir(root, { withFileTypes: true });\n\tconst matches = await Promise.all(\n\t\tentries.map(async (entry) => {\n\t\t\tconst path = join(root, entry.name);\n\t\t\tif (entry.isDirectory() && entry.name.endsWith(extension))\n\t\t\t\treturn path;\n\t\t\tif (entry.isFile() && entry.name.endsWith(extension)) return path;\n\n\t\t\treturn entry.isDirectory()\n\t\t\t\t? findByExtension(path, extension)\n\t\t\t\t: undefined;\n\t\t})\n\t);\n\n\treturn matches.find((match) => match !== undefined);\n};\n\nconst exportOptions = () => `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\"><dict>\n\t<key>destination</key><string>export</string>\n\t<key>manageAppVersionAndBuildNumber</key><false/>\n\t<key>method</key><string>app-store-connect</string>\n\t<key>signingStyle</key><string>automatic</string>\n\t<key>stripSwiftSymbols</key><true/>\n\t<key>uploadSymbols</key><true/>\n</dict></plist>\n`;\n\nconst requireBuildNumber = (value: number | undefined) => {\n\tif (value !== undefined && (!Number.isSafeInteger(value) || value < 1))\n\t\tthrow new TypeError('iOS build number must be a positive integer.');\n\n\treturn value;\n};\n\nconst installRelease = async (\n\tartifactPath: string,\n\tmetadata: Omit<AbsoluteIosReleaseMetadata, 'artifact'>,\n\toutputRoot: string\n) => {\n\tconst releaseRoot = join(outputRoot, metadata.releaseId);\n\tconst destination = join(releaseRoot, 'App.ipa');\n\tif (await pathExists(releaseRoot)) {\n\t\tconst value: unknown = JSON.parse(\n\t\t\tawait readFile(join(releaseRoot, 'release.json'), 'utf8')\n\t\t);\n\t\tif (\n\t\t\t!isRecord(value) ||\n\t\t\tvalue.artifact !== 'App.ipa' ||\n\t\t\tObject.entries(metadata).some(\n\t\t\t\t([key, expected]) => Reflect.get(value, key) !== expected\n\t\t\t)\n\t\t) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`Immutable iOS release ${metadata.releaseId} does not match its content.`\n\t\t\t);\n\t\t}\n\t\tconst [bytes, sha256] = await Promise.all([\n\t\t\tstat(destination).then(({ size }) => size),\n\t\t\tsha256File(destination)\n\t\t]);\n\t\tif (bytes !== metadata.bytes || sha256 !== metadata.sha256)\n\t\t\tthrow new TypeError(\n\t\t\t\t`Immutable iOS release ${metadata.releaseId} artifact is missing or modified.`\n\t\t\t);\n\n\t\treturn {\n\t\t\tartifactPath: destination,\n\t\t\tmetadata: {\n\t\t\t\t...metadata,\n\t\t\t\tartifact: 'App.ipa'\n\t\t\t} satisfies AbsoluteIosReleaseMetadata,\n\t\t\treleaseRoot\n\t\t};\n\t}\n\tawait mkdir(dirname(releaseRoot), { recursive: true });\n\tconst staging = await mkdtemp(join(dirname(releaseRoot), '.ios-stage-'));\n\ttry {\n\t\tawait copyFile(artifactPath, join(staging, 'App.ipa'));\n\t\tconst complete = {\n\t\t\t...metadata,\n\t\t\tartifact: 'App.ipa'\n\t\t} satisfies AbsoluteIosReleaseMetadata;\n\t\tawait writeFile(\n\t\t\tjoin(staging, 'release.json'),\n\t\t\t`${JSON.stringify(complete, null, '\\t')}\\n`,\n\t\t\t{ flag: 'wx' }\n\t\t);\n\t\tawait rename(staging, releaseRoot);\n\n\t\treturn { artifactPath: destination, metadata: complete, releaseRoot };\n\t} finally {\n\t\tawait rm(staging, { force: true, recursive: true }).catch(\n\t\t\t() => undefined\n\t\t);\n\t}\n};\n\nexport const buildAbsoluteIosRelease = async (\n\toptions: BuildAbsoluteIosReleaseOptions\n) => {\n\tif (options.buildNumber !== undefined && options.prepareBuildNumber)\n\t\tthrow new TypeError(\n\t\t\t'iOS release buildNumber and prepareBuildNumber cannot be combined.'\n\t\t);\n\tif ((options.host ?? detectAbsoluteMobileHost()) !== 'macos')\n\t\tthrow new TypeError('iOS release builds require macOS and Xcode.');\n\tconst marketingVersion = options.config.iosVersion;\n\tif (!marketingVersion)\n\t\tthrow new TypeError(\n\t\t\t'iOS release builds require mobile.ios.version in absolutejs.config.ts.'\n\t\t);\n\tconst manifest = requireManifest(\n\t\tJSON.parse(\n\t\t\tawait readFile(\n\t\t\t\tjoin(\n\t\t\t\t\toptions.config.bundleDirectory,\n\t\t\t\t\t'absolute-mobile-manifest.json'\n\t\t\t\t),\n\t\t\t\t'utf8'\n\t\t\t)\n\t\t)\n\t);\n\tif (manifest.appId !== options.config.appId)\n\t\tthrow new TypeError(\n\t\t\t'Embedded mobile manifest appId does not match mobile.appId.'\n\t\t);\n\tconst nativeDirectory = join(options.config.nativeProjectDirectory, 'ios');\n\tlet buildNumber = requireBuildNumber(options.buildNumber);\n\tif (options.prepareBuildNumber) {\n\t\tconst nativeFingerprint =\n\t\t\tawait fingerprintAbsoluteIosNativeProject(nativeDirectory);\n\t\tconst buildIdentity = createHash('sha256')\n\t\t\t.update(\n\t\t\t\t`${manifest.appBuild}\\0${nativeFingerprint}\\0${marketingVersion}`\n\t\t\t)\n\t\t\t.digest('hex');\n\t\tbuildNumber = requireBuildNumber(\n\t\t\tawait options.prepareBuildNumber(buildIdentity)\n\t\t);\n\t}\n\tconst stagingParent = resolve(options.projectRoot, '.absolutejs/mobile');\n\tawait mkdir(stagingParent, { recursive: true });\n\tconst staging = await mkdtemp(join(stagingParent, '.ios-build-'));\n\tconst archivePath = join(staging, 'App.xcarchive');\n\tconst exportPath = join(staging, 'export');\n\tconst exportPlist = join(staging, 'ExportOptions.plist');\n\tawait mkdir(exportPath, { recursive: true });\n\tawait writeFile(exportPlist, exportOptions());\n\tconst run = options.run ?? defaultRun;\n\ttry {\n\t\tconst versionArguments = [\n\t\t\t`MARKETING_VERSION=${marketingVersion}`,\n\t\t\t...(buildNumber === undefined\n\t\t\t\t? []\n\t\t\t\t: [`CURRENT_PROJECT_VERSION=${buildNumber}`])\n\t\t];\n\t\tconst archiveExit = await run(\n\t\t\t[\n\t\t\t\t'xcodebuild',\n\t\t\t\t'-workspace',\n\t\t\t\tjoin(nativeDirectory, 'App', 'App.xcworkspace'),\n\t\t\t\t'-scheme',\n\t\t\t\t'App',\n\t\t\t\t'-configuration',\n\t\t\t\t'Release',\n\t\t\t\t'-destination',\n\t\t\t\t'generic/platform=iOS',\n\t\t\t\t'-archivePath',\n\t\t\t\tarchivePath,\n\t\t\t\t...versionArguments,\n\t\t\t\t'archive'\n\t\t\t],\n\t\t\t{ cwd: nativeDirectory }\n\t\t);\n\t\tif (archiveExit !== 0)\n\t\t\tthrow new TypeError('Xcode failed to archive the iOS app.');\n\t\tconst archivedApp = await findByExtension(\n\t\t\tjoin(archivePath, 'Products', 'Applications'),\n\t\t\t'.app'\n\t\t);\n\t\tconst capture = options.capture ?? defaultCapture;\n\t\tconst signed = archivedApp\n\t\t\t? capture([\n\t\t\t\t\t'codesign',\n\t\t\t\t\t'--verify',\n\t\t\t\t\t'--deep',\n\t\t\t\t\t'--strict',\n\t\t\t\t\tarchivedApp\n\t\t\t\t]).exitCode === 0\n\t\t\t: false;\n\t\tif (!signed && !options.allowUnsigned)\n\t\t\tthrow new TypeError(\n\t\t\t\t'Xcode produced an unsigned iOS archive. Configure signing in the source-owned Xcode project, or pass --unsigned only for a non-publishable build.'\n\t\t\t);\n\t\tconst exportExit = await run(\n\t\t\t[\n\t\t\t\t'xcodebuild',\n\t\t\t\t'-exportArchive',\n\t\t\t\t'-archivePath',\n\t\t\t\tarchivePath,\n\t\t\t\t'-exportPath',\n\t\t\t\texportPath,\n\t\t\t\t'-exportOptionsPlist',\n\t\t\t\texportPlist\n\t\t\t],\n\t\t\t{ cwd: nativeDirectory }\n\t\t);\n\t\tif (exportExit !== 0)\n\t\t\tthrow new TypeError('Xcode failed to export the App Store IPA.');\n\t\tconst artifactPath = await findByExtension(exportPath, '.ipa');\n\t\tif (!artifactPath)\n\t\t\tthrow new TypeError('Xcode did not produce an exported IPA.');\n\t\tconst [bytes, sha256] = await Promise.all([\n\t\t\tstat(artifactPath).then(({ size }) => size),\n\t\t\tsha256File(artifactPath)\n\t\t]);\n\t\tconst releaseId = `amobile_ios_${sha256}`;\n\n\t\treturn await installRelease(\n\t\t\tartifactPath,\n\t\t\t{\n\t\t\t\tappBuild: manifest.appBuild,\n\t\t\t\tappId: manifest.appId,\n\t\t\t\t...(buildNumber === undefined ? {} : { buildNumber }),\n\t\t\t\tbytes,\n\t\t\t\tengine: 'capacitor',\n\t\t\t\tformat: 1,\n\t\t\t\tmarketingVersion,\n\t\t\t\tplatform: 'ios',\n\t\t\t\treleaseId,\n\t\t\t\truntime: manifest.runtime,\n\t\t\t\tsha256,\n\t\t\t\tsigned,\n\t\t\t\ttype: 'ipa'\n\t\t\t},\n\t\t\tsafeOutputDirectory(options.projectRoot, options.outputDirectory)\n\t\t);\n\t} finally {\n\t\tawait rm(staging, { force: true, recursive: true }).catch(\n\t\t\t() => undefined\n\t\t);\n\t}\n};\n",
23
23
  "import { readFile, stat } from 'node:fs/promises';\n\nconst HMR_LINE = new RegExp(\n\tString.raw`\\[hmr:ios\\]\\s+([^\\n]*?)\\s+(applied in|falling back to reload after|failed after)\\s+(\\d+)ms(?:; server\\s+(\\d+)ms, client\\s+(\\d+)ms)?`,\n\t'u'\n);\n\nexport type AbsoluteIosHmrApply = {\n\tclientMs?: number;\n\tduration: number;\n\tline: string;\n\toutcome: 'applied' | 'failed' | 'reloaded';\n\tserverMs?: number;\n};\n\nexport const parseAbsoluteIosHmrLog = (\n\tline: string\n): AbsoluteIosHmrApply | null => {\n\tconst match = HMR_LINE.exec(line);\n\tif (!match) return null;\n\tconst [, , action, durationValue, serverValue, clientValue] = match;\n\tlet outcome: AbsoluteIosHmrApply['outcome'] = 'reloaded';\n\tif (action === 'applied in') outcome = 'applied';\n\tif (action === 'failed after') outcome = 'failed';\n\tconst serverMs =\n\t\tserverValue === undefined ? undefined : Number(serverValue);\n\tconst clientMs =\n\t\tclientValue === undefined ? undefined : Number(clientValue);\n\n\treturn {\n\t\t...(clientMs === undefined ? {} : { clientMs }),\n\t\tduration: Number(durationValue),\n\t\tline: match[0],\n\t\toutcome,\n\t\t...(serverMs === undefined ? {} : { serverMs })\n\t};\n};\n\nconst findHmrApply = (lines: string[]) => {\n\tconst apply = lines\n\t\t.map((line) => parseAbsoluteIosHmrLog(line))\n\t\t.find((candidate) => candidate !== null);\n\tif (apply?.outcome === 'failed')\n\t\tthrow new Error(\n\t\t\t`iOS HMR client reported a failed apply: ${apply.line}`\n\t\t);\n\n\treturn apply;\n};\n\nexport const waitForAbsoluteIosHmrLog = async (options: {\n\tlogPath: string;\n\tsignal?: AbortSignal;\n\tsleep?: (milliseconds: number) => Promise<void>;\n\tstartOffset?: number;\n\ttimeoutMs?: number;\n}) => {\n\tconst sleep = options.sleep ?? Bun.sleep;\n\tconst timeoutMs = options.timeoutMs ?? 30_000;\n\tconst deadline = Date.now() + timeoutMs;\n\tlet offset =\n\t\toptions.startOffset ??\n\t\t(await stat(options.logPath)\n\t\t\t.then(({ size }) => size)\n\t\t\t.catch(() => 0));\n\tlet buffered = '';\n\tconst poll = async (): Promise<AbsoluteIosHmrApply> => {\n\t\tif (Date.now() > deadline)\n\t\t\tthrow new Error(\n\t\t\t\t`No iOS native HMR acknowledgement was observed within ${timeoutMs}ms.`\n\t\t\t);\n\t\toptions.signal?.throwIfAborted();\n\t\tconst contents = await readFile(options.logPath).catch(() =>\n\t\t\tBuffer.alloc(0)\n\t\t);\n\t\tif (contents.byteLength < offset) {\n\t\t\toffset = 0;\n\t\t\tbuffered = '';\n\t\t}\n\t\tif (contents.byteLength > offset) {\n\t\t\tbuffered += contents.subarray(offset).toString('utf8');\n\t\t\toffset = contents.byteLength;\n\t\t\tconst lines = buffered.split(/\\r?\\n/u);\n\t\t\tbuffered = lines.pop() ?? '';\n\t\t\tconst apply = findHmrApply(lines);\n\t\t\tif (apply) return apply;\n\t\t}\n\t\tawait sleep(100);\n\n\t\treturn poll();\n\t};\n\n\treturn poll();\n};\n",
24
- "import { createHash, randomUUID } from 'node:crypto';\nimport {\n\taccess,\n\tcopyFile,\n\tmkdir,\n\treadFile,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport {\n\tdetectAbsoluteMobileHost,\n\tinspectAbsoluteMobileToolchain\n} from './emulatorDoctor';\nimport { writeAbsoluteCapacitorConfig } from './capacitorProject';\nimport { fingerprintAbsoluteIosNativeProject } from './iosRelease';\nimport { getDurationString } from '../utils/getDurationString';\n\nexport const ABSOLUTE_IOS_SIMULATOR_NAME = 'AbsoluteJS iPhone';\n\nconst BOOT_TIMEOUT_MS = 180_000;\nconst BOOT_POLL_MS = 1_000;\nconst DEV_JOURNAL_FORMAT = 1;\nconst NATIVE_CACHE_FORMAT = 1;\n\nexport type AbsoluteIosCommandOptions = {\n\tcwd?: string;\n\tenv?: Record<string, string | undefined>;\n\tsignal?: AbortSignal;\n};\n\nexport type AbsoluteIosCommandResult = {\n\texitCode: number;\n\tstderr: string;\n\tstdout: string;\n};\n\nexport type AbsoluteIosDevState =\n\t| 'booting'\n\t| 'building'\n\t| 'checking-native'\n\t| 'closed'\n\t| 'closing'\n\t| 'configuring'\n\t| 'connecting'\n\t| 'failed'\n\t| 'installing'\n\t| 'launching'\n\t| 'ready'\n\t| 'streaming-logs'\n\t| 'syncing';\n\nexport type AbsoluteIosNativeLogEntry = {\n\tlevel: 'debug' | 'error' | 'fault' | 'info' | 'notice';\n\tmessage: string;\n\ttag: string;\n};\n\ntype AbsoluteIosLogStream = { close: () => Promise<void> };\n\nexport type AbsoluteIosDevProject = {\n\tcap: string;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\tnativeDirectory: string;\n\tprojectRoot: string;\n\txcodebuild: string;\n\txcrun: string;\n};\n\nexport type AbsoluteIosDevSession = {\n\tclose: () => Promise<void>;\n\tnativeCacheHit: boolean;\n\trebuild: () => Promise<AbsoluteIosDevSession>;\n\trelaunch: () => Promise<void>;\n\tscreenshot: (destination: string) => Promise<string>;\n\tstartedSimulator: boolean;\n\tstate: AbsoluteIosDevState;\n\ttimings: Record<string, number>;\n\tudid: string;\n};\n\nexport type AbsoluteIosDevPhaseTiming = {\n\tdurationMs: number;\n\tphase: AbsoluteIosDevState;\n\ttotalMs: number;\n};\n\nexport type PrepareAbsoluteIosDevOptions = {\n\tcreateNativeProject: boolean;\n\tprojectRoot: string;\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteIosCommandOptions\n\t) => Promise<number>;\n};\n\nexport type StartAbsoluteIosDevOptions = {\n\tcapture?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteIosCommandOptions\n\t) => AbsoluteIosCommandResult;\n\thttps?: boolean;\n\tlog?: (message: string) => void;\n\tnativeLog?: (entry: AbsoluteIosNativeLogEntry) => void;\n\tonPhaseTiming?: (timing: AbsoluteIosDevPhaseTiming) => void;\n\tonStateChange?: (state: AbsoluteIosDevState) => void;\n\tport: number;\n\tproject: AbsoluteIosDevProject;\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteIosCommandOptions\n\t) => Promise<number>;\n\tsignal?: AbortSignal;\n\tsleep?: (milliseconds: number) => Promise<void>;\n\tspawn?: (command: string[], options?: AbsoluteIosCommandOptions) => void;\n\tstartNativeLogs?: (\n\t\tcommand: string[],\n\t\toptions: AbsoluteIosCommandOptions,\n\t\tonLine: (line: string) => void\n\t) => AbsoluteIosLogStream;\n};\n\ntype IosRuntime = {\n\tidentifier: string;\n\tisAvailable: boolean;\n\tname: string;\n\tversion: string;\n};\n\ntype IosDeviceType = { identifier: string; name: string };\n\ntype IosDevJournal = {\n\tconfigBackupPath: string;\n\tformat: number;\n\tinfoBackupPath: string;\n\tinfoPath: string;\n\tnativeConfigPath: string;\n};\n\ntype IosNativeCache = {\n\tappId: string;\n\tfingerprint: string;\n\tformat: number;\n\tinstallations: Record<string, string>;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst pathExists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst throwIfAborted = (signal?: AbortSignal) => signal?.throwIfAborted();\n\nconst defaultCapture = (\n\tcommand: string[],\n\toptions: AbsoluteIosCommandOptions = {}\n) => {\n\ttry {\n\t\tconst result = Bun.spawnSync(command, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: options.env,\n\t\t\tstderr: 'pipe',\n\t\t\tstdin: 'ignore',\n\t\t\tstdout: 'pipe'\n\t\t});\n\n\t\treturn {\n\t\t\texitCode: result.exitCode,\n\t\t\tstderr: result.stderr.toString(),\n\t\t\tstdout: result.stdout.toString()\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\texitCode: 1,\n\t\t\tstderr: error instanceof Error ? error.message : String(error),\n\t\t\tstdout: ''\n\t\t};\n\t}\n};\n\nconst defaultRun = async (\n\tcommand: string[],\n\toptions: AbsoluteIosCommandOptions = {}\n) => {\n\tconst process = Bun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tsignal: options.signal,\n\t\tstderr: 'inherit',\n\t\tstdin: 'inherit',\n\t\tstdout: 'inherit'\n\t});\n\n\treturn process.exited;\n};\n\nconst defaultSpawn = (\n\tcommand: string[],\n\toptions: AbsoluteIosCommandOptions = {}\n) => {\n\tBun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tsignal: options.signal,\n\t\tstderr: 'ignore',\n\t\tstdin: 'ignore',\n\t\tstdout: 'ignore'\n\t});\n};\n\nconst consumeLines = async (\n\tstream: ReadableStream<Uint8Array>,\n\tonLine: (line: string) => void\n) => {\n\tconst reader = stream.getReader();\n\tconst decoder = new TextDecoder();\n\tlet buffered = '';\n\tconst pump = async (): Promise<void> => {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) return;\n\t\tbuffered += decoder.decode(value, { stream: true });\n\t\tconst lines = buffered.split(/\\r?\\n/u);\n\t\tbuffered = lines.pop() ?? '';\n\t\tlines.forEach(onLine);\n\n\t\tawait pump();\n\t};\n\ttry {\n\t\tawait pump();\n\t\tbuffered += decoder.decode();\n\t\tif (buffered) onLine(buffered);\n\t} finally {\n\t\treader.releaseLock();\n\t}\n};\n\nconst defaultStartNativeLogs = (\n\tcommand: string[],\n\toptions: AbsoluteIosCommandOptions,\n\tonLine: (line: string) => void\n): AbsoluteIosLogStream => {\n\tconst process = Bun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tsignal: options.signal,\n\t\tstderr: 'pipe',\n\t\tstdin: 'ignore',\n\t\tstdout: 'pipe'\n\t});\n\tvoid consumeLines(process.stdout, onLine);\n\tvoid consumeLines(process.stderr, onLine);\n\n\treturn {\n\t\tclose: async () => {\n\t\t\ttry {\n\t\t\t\tprocess.kill();\n\t\t\t} catch {\n\t\t\t\t/* already closed */\n\t\t\t}\n\t\t\tawait process.exited.catch(() => undefined);\n\t\t}\n\t};\n};\n\nconst requireSuccess = async (\n\tcommand: string[],\n\tlabel: string,\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>,\n\toptions?: AbsoluteIosCommandOptions\n) => {\n\tconst exitCode = await run(command, options);\n\tif (exitCode !== 0)\n\t\tthrow new Error(`${label} failed with status ${exitCode}.`);\n};\n\nconst requireCapturedSuccess = (\n\tresult: AbsoluteIosCommandResult,\n\tlabel: string\n) => {\n\tif (result.exitCode !== 0) {\n\t\tthrow new Error(\n\t\t\t`${label} failed: ${result.stderr.trim() || result.stdout.trim() || `status ${result.exitCode}`}`\n\t\t);\n\t}\n\n\treturn result.stdout.trim();\n};\n\nconst parseJson = (source: string, label: string) => {\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(source);\n\t\tif (isRecord(parsed)) return parsed;\n\t} catch {\n\t\t/* normalized below */\n\t}\n\tthrow new Error(`Invalid ${label} JSON from simctl.`);\n};\n\nexport const parseIosDeviceTypes = (source: string) => {\n\tconst parsed = parseJson(source, 'device type');\n\tconst types = parsed.devicetypes;\n\tif (!Array.isArray(types)) return [];\n\n\treturn types.flatMap((type) => {\n\t\tif (!isRecord(type)) return [];\n\t\tconst { identifier } = type;\n\t\tconst { name } = type;\n\n\t\treturn typeof identifier === 'string' && typeof name === 'string'\n\t\t\t? [{ identifier, name }]\n\t\t\t: [];\n\t});\n};\nexport const parseIosRuntimes = (source: string) => {\n\tconst parsed = parseJson(source, 'runtime');\n\tconst { runtimes } = parsed;\n\tif (!Array.isArray(runtimes)) return [];\n\n\treturn runtimes.flatMap((runtime) => {\n\t\tif (!isRecord(runtime)) return [];\n\t\tconst { identifier } = runtime;\n\t\tconst { name } = runtime;\n\t\tconst { version } = runtime;\n\t\tif (\n\t\t\ttypeof identifier !== 'string' ||\n\t\t\ttypeof name !== 'string' ||\n\t\t\ttypeof version !== 'string'\n\t\t)\n\t\t\treturn [];\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tidentifier,\n\t\t\t\tisAvailable: runtime.isAvailable !== false,\n\t\t\t\tname,\n\t\t\t\tversion\n\t\t\t}\n\t\t];\n\t});\n};\nexport const parseIosSimulators = (source: string) => {\n\tconst parsed = parseJson(source, 'device');\n\tconst { devices } = parsed;\n\tif (!isRecord(devices)) return [];\n\n\treturn Object.entries(devices).flatMap(([runtime, values]) => {\n\t\tif (!Array.isArray(values)) return [];\n\n\t\treturn values.flatMap((device) => {\n\t\t\tif (!isRecord(device)) return [];\n\t\t\tconst { name } = device;\n\t\t\tconst { state } = device;\n\t\t\tconst { udid } = device;\n\t\t\tif (\n\t\t\t\ttypeof name !== 'string' ||\n\t\t\t\ttypeof state !== 'string' ||\n\t\t\t\ttypeof udid !== 'string'\n\t\t\t)\n\t\t\t\treturn [];\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tisAvailable: device.isAvailable !== false,\n\t\t\t\t\tname,\n\t\t\t\t\truntime,\n\t\t\t\t\tstate,\n\t\t\t\t\tudid\n\t\t\t\t}\n\t\t\t];\n\t\t});\n\t});\n};\n\nconst versionParts = (version: string) =>\n\tversion.split('.').map((part) => Number(part));\n\nconst compareVersions = (left: string, right: string) => {\n\tconst leftParts = versionParts(left);\n\tconst rightParts = versionParts(right);\n\tconst length = Math.max(leftParts.length, rightParts.length);\n\tfor (let index = 0; index < length; index++) {\n\t\tconst difference = (leftParts[index] ?? 0) - (rightParts[index] ?? 0);\n\t\tif (difference !== 0) return difference;\n\t}\n\n\treturn 0;\n};\n\nconst latestIosRuntime = (runtimes: IosRuntime[]) =>\n\truntimes\n\t\t.filter(\n\t\t\t(runtime) =>\n\t\t\t\truntime.isAvailable &&\n\t\t\t\truntime.identifier.includes('SimRuntime.iOS-')\n\t\t)\n\t\t.sort((left, right) => compareVersions(right.version, left.version))[0];\n\nconst iphoneGeneration = (name: string) =>\n\tNumber(/iPhone\\s+(\\d+)/u.exec(name)?.[1] ?? 0);\n\nconst preferredIphoneType = (types: IosDeviceType[]) =>\n\ttypes\n\t\t.filter((type) => type.name.startsWith('iPhone'))\n\t\t.sort((left, right) => {\n\t\t\tconst generation =\n\t\t\t\tiphoneGeneration(right.name) - iphoneGeneration(left.name);\n\t\t\tif (generation !== 0) return generation;\n\t\t\tconst rightPro = right.name.includes('Pro') ? 1 : 0;\n\t\t\tconst leftPro = left.name.includes('Pro') ? 1 : 0;\n\n\t\t\treturn rightPro - leftPro;\n\t\t})[0];\n\nconst journalPaths = (projectRoot: string) => {\n\tconst root = join(projectRoot, '.absolutejs', 'mobile', 'ios-dev-session');\n\n\treturn {\n\t\tconfigBackup: join(root, 'capacitor-config.backup'),\n\t\tinfoBackup: join(root, 'Info.plist.backup'),\n\t\tjournal: join(root, 'journal.json'),\n\t\troot\n\t};\n};\n\nconst nativeCachePath = (projectRoot: string) =>\n\tjoin(projectRoot, '.absolutejs', 'mobile', 'ios-native-cache.json');\n\nconst isInside = (root: string, path: string) => {\n\tconst value = relative(resolve(root), resolve(path));\n\n\treturn (\n\t\tvalue === '' ||\n\t\t(!value.startsWith(`..${sep}`) && value !== '..' && !isAbsolute(value))\n\t);\n};\n\nconst parseJournal = (value: unknown): IosDevJournal | null => {\n\tif (!isRecord(value) || value.format !== DEV_JOURNAL_FORMAT) return null;\n\tconst { configBackupPath } = value;\n\tconst { infoBackupPath } = value;\n\tconst { infoPath } = value;\n\tconst { nativeConfigPath } = value;\n\tif (\n\t\ttypeof configBackupPath !== 'string' ||\n\t\ttypeof infoBackupPath !== 'string' ||\n\t\ttypeof infoPath !== 'string' ||\n\t\ttypeof nativeConfigPath !== 'string'\n\t)\n\t\treturn null;\n\n\treturn {\n\t\tconfigBackupPath,\n\t\tformat: DEV_JOURNAL_FORMAT,\n\t\tinfoBackupPath,\n\t\tinfoPath,\n\t\tnativeConfigPath\n\t};\n};\n\nexport const repairAbsoluteIosDevSession = async (projectRoot: string) => {\n\tconst paths = journalPaths(projectRoot);\n\tif (!(await pathExists(paths.journal))) {\n\t\tawait rm(paths.root, { force: true, recursive: true });\n\n\t\treturn false;\n\t}\n\tconst journal = await readFile(paths.journal, 'utf8')\n\t\t.then((source) => parseJournal(JSON.parse(source)))\n\t\t.catch(() => null);\n\tif (\n\t\t!journal ||\n\t\t!isInside(projectRoot, journal.nativeConfigPath) ||\n\t\t!isInside(projectRoot, journal.infoPath) ||\n\t\t!isInside(paths.root, journal.configBackupPath) ||\n\t\t!isInside(paths.root, journal.infoBackupPath)\n\t) {\n\t\tthrow new Error(\n\t\t\t`Refusing unsafe or invalid iOS dev journal at ${paths.journal}.`\n\t\t);\n\t}\n\tif (await pathExists(journal.configBackupPath))\n\t\tawait copyFile(journal.configBackupPath, journal.nativeConfigPath);\n\tif (await pathExists(journal.infoBackupPath))\n\t\tawait copyFile(journal.infoBackupPath, journal.infoPath);\n\tawait rm(paths.root, { force: true, recursive: true });\n\n\treturn true;\n};\n\nconst iosDevelopmentInfoPlist = (source: string, cleartext: boolean) => {\n\tif (!cleartext) return source;\n\tconst arbitraryLoads =\n\t\t/(<key>NSAllowsArbitraryLoads<\\/key>\\s*)<false\\s*\\/>/u;\n\tif (arbitraryLoads.test(source))\n\t\treturn source.replace(arbitraryLoads, '$1<true/>');\n\tif (/<key>NSAllowsArbitraryLoads<\\/key>\\s*<true\\s*\\/>/u.test(source))\n\t\treturn source;\n\tconst transport = /(<key>NSAppTransportSecurity<\\/key>\\s*<dict>)/u;\n\tif (transport.test(source))\n\t\treturn source.replace(\n\t\t\ttransport,\n\t\t\t'$1\\n\\t\\t<key>NSAllowsArbitraryLoads</key>\\n\\t\\t<true/>'\n\t\t);\n\n\treturn source.replace(\n\t\t/<dict>/u,\n\t\t'<dict>\\n\\t<key>NSAppTransportSecurity</key>\\n\\t<dict>\\n\\t\\t<key>NSAllowsArbitraryLoads</key>\\n\\t\\t<true/>\\n\\t</dict>'\n\t);\n};\n\nconst writeDevProjection = async (\n\tproject: AbsoluteIosDevProject,\n\tport: number,\n\thttps: boolean\n) => {\n\tconst paths = journalPaths(project.projectRoot);\n\tawait repairAbsoluteIosDevSession(project.projectRoot);\n\tconst nativeConfigPath = join(\n\t\tproject.nativeDirectory,\n\t\t'App',\n\t\t'App',\n\t\t'capacitor.config.json'\n\t);\n\tconst infoPath = join(project.nativeDirectory, 'App', 'App', 'Info.plist');\n\tconst [configSource, infoSource] = await Promise.all([\n\t\treadFile(nativeConfigPath, 'utf8'),\n\t\treadFile(infoPath, 'utf8')\n\t]);\n\tconst parsed: unknown = JSON.parse(configSource);\n\tif (!isRecord(parsed))\n\t\tthrow new Error(\n\t\t\t`Invalid Capacitor native config at ${nativeConfigPath}.`\n\t\t);\n\tawait mkdir(paths.root, { recursive: true });\n\tawait Promise.all([\n\t\twriteFile(paths.configBackup, configSource, { flag: 'wx' }),\n\t\twriteFile(paths.infoBackup, infoSource, { flag: 'wx' })\n\t]);\n\tconst journal: IosDevJournal = {\n\t\tconfigBackupPath: paths.configBackup,\n\t\tformat: DEV_JOURNAL_FORMAT,\n\t\tinfoBackupPath: paths.infoBackup,\n\t\tinfoPath,\n\t\tnativeConfigPath\n\t};\n\tawait writeFile(paths.journal, `${JSON.stringify(journal, null, '\\t')}\\n`, {\n\t\tflag: 'wx'\n\t});\n\tconst developmentUrl = new URL(\n\t\t`${https ? 'https' : 'http'}://localhost:${port}${project.config.entry}`\n\t);\n\tdevelopmentUrl.searchParams.set('__absolute_target', 'capacitor-ios');\n\tconst existingServer = parsed.server;\n\tparsed.server = {\n\t\t...(isRecord(existingServer) ? existingServer : {}),\n\t\tcleartext: !https,\n\t\turl: developmentUrl.href\n\t};\n\tawait Promise.all([\n\t\twriteFile(nativeConfigPath, `${JSON.stringify(parsed, null, '\\t')}\\n`),\n\t\twriteFile(infoPath, iosDevelopmentInfoPlist(infoSource, !https))\n\t]);\n};\n\nconst parseNativeCache = (value: unknown): IosNativeCache | null => {\n\tif (!isRecord(value)) return null;\n\tconst { appId, fingerprint, format, installations } = value;\n\tif (\n\t\tformat !== NATIVE_CACHE_FORMAT ||\n\t\ttypeof appId !== 'string' ||\n\t\ttypeof fingerprint !== 'string' ||\n\t\t!isRecord(installations) ||\n\t\t!Object.values(installations).every(\n\t\t\t(identity) => typeof identity === 'string'\n\t\t)\n\t)\n\t\treturn null;\n\n\treturn {\n\t\tappId,\n\t\tfingerprint,\n\t\tformat,\n\t\tinstallations: Object.fromEntries(\n\t\t\tObject.entries(installations).map(([udid, identity]) => [\n\t\t\t\tudid,\n\t\t\t\tString(identity)\n\t\t\t])\n\t\t)\n\t};\n};\n\nconst readNativeCache = (projectRoot: string) =>\n\treadFile(nativeCachePath(projectRoot), 'utf8')\n\t\t.then((source) => parseNativeCache(JSON.parse(source)))\n\t\t.catch(() => null);\n\nconst writeNativeCache = async (projectRoot: string, cache: IosNativeCache) => {\n\tconst destination = nativeCachePath(projectRoot);\n\tconst temporary = `${destination}.${process.pid}.${randomUUID()}.tmp`;\n\tawait mkdir(dirname(destination), { recursive: true });\n\ttry {\n\t\tawait writeFile(temporary, `${JSON.stringify(cache, null, '\\t')}\\n`, {\n\t\t\tflag: 'wx'\n\t\t});\n\t\tawait rename(temporary, destination);\n\t} finally {\n\t\tawait rm(temporary, { force: true }).catch(() => undefined);\n\t}\n};\n\nexport const fingerprintAbsoluteIosDevProject = async (\n\tproject: Pick<AbsoluteIosDevProject, 'nativeDirectory'>\n) => fingerprintAbsoluteIosNativeProject(project.nativeDirectory);\n\nconst simulatorInventory = (\n\txcrun: string,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tconst result = capture([\n\t\txcrun,\n\t\t'simctl',\n\t\t'list',\n\t\t'devices',\n\t\t'available',\n\t\t'-j'\n\t]);\n\n\treturn parseIosSimulators(\n\t\trequireCapturedSuccess(result, 'iOS simulator discovery')\n\t);\n};\n\nconst ensureManagedSimulator = async (\n\tproject: AbsoluteIosDevProject,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tconst runtimes = parseIosRuntimes(\n\t\trequireCapturedSuccess(\n\t\t\tcapture([project.xcrun, 'simctl', 'list', 'runtimes', '-j']),\n\t\t\t'iOS runtime discovery'\n\t\t)\n\t);\n\tconst runtime = latestIosRuntime(runtimes);\n\tif (!runtime)\n\t\tthrow new Error(\n\t\t\t'No available iOS Simulator runtime. Run absolute mobile doctor ios --fix.'\n\t\t);\n\tconst [existing] = simulatorInventory(project.xcrun, capture)\n\t\t.filter(\n\t\t\t(device) =>\n\t\t\t\tdevice.isAvailable &&\n\t\t\t\tdevice.name === ABSOLUTE_IOS_SIMULATOR_NAME &&\n\t\t\t\tdevice.runtime === runtime.identifier\n\t\t)\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\tNumber(right.state === 'Booted') -\n\t\t\t\tNumber(left.state === 'Booted')\n\t\t);\n\tif (existing) return { created: false, device: existing };\n\tconst types = parseIosDeviceTypes(\n\t\trequireCapturedSuccess(\n\t\t\tcapture([project.xcrun, 'simctl', 'list', 'devicetypes', '-j']),\n\t\t\t'iOS device-type discovery'\n\t\t)\n\t);\n\tconst type = preferredIphoneType(types);\n\tif (!type)\n\t\tthrow new Error('Xcode did not report an iPhone simulator type.');\n\tconst [udid] = requireCapturedSuccess(\n\t\tcapture([\n\t\t\tproject.xcrun,\n\t\t\t'simctl',\n\t\t\t'create',\n\t\t\tABSOLUTE_IOS_SIMULATOR_NAME,\n\t\t\ttype.identifier,\n\t\t\truntime.identifier\n\t\t]),\n\t\t'iOS simulator creation'\n\t).split(/\\s/u);\n\tif (!udid)\n\t\tthrow new Error('simctl did not return the created simulator UDID.');\n\n\treturn {\n\t\tcreated: true,\n\t\tdevice: {\n\t\t\tisAvailable: true,\n\t\t\tname: ABSOLUTE_IOS_SIMULATOR_NAME,\n\t\t\truntime: runtime.identifier,\n\t\t\tstate: 'Shutdown',\n\t\t\tudid\n\t\t}\n\t};\n};\n\nconst waitForBootedSimulator = async (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>,\n\tsleep: NonNullable<StartAbsoluteIosDevOptions['sleep']>,\n\tsignal?: AbortSignal\n) => {\n\tconst deadline = Date.now() + BOOT_TIMEOUT_MS;\n\tconst poll = async (): Promise<void> => {\n\t\tthrowIfAborted(signal);\n\t\tconst device = simulatorInventory(project.xcrun, capture).find(\n\t\t\t(candidate) => candidate.udid === udid\n\t\t);\n\t\tif (device?.state === 'Booted') return;\n\t\tif (Date.now() > deadline)\n\t\t\tthrow new Error(\n\t\t\t\t`iOS simulator ${udid} did not finish booting within ${BOOT_TIMEOUT_MS / 1_000}s.`\n\t\t\t);\n\t\tawait sleep(BOOT_POLL_MS);\n\n\t\tawait poll();\n\t};\n\n\treturn poll();\n};\n\nconst bootSimulator = (\n\tproject: AbsoluteIosDevProject,\n\tdevice: ReturnType<typeof parseIosSimulators>[number],\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tif (device.state === 'Booted') return;\n\trequireCapturedSuccess(\n\t\tcapture([project.xcrun, 'simctl', 'boot', device.udid]),\n\t\t'iOS simulator boot'\n\t);\n};\n\nconst installedAppIdentity = (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tconst result = capture([\n\t\tproject.xcrun,\n\t\t'simctl',\n\t\t'get_app_container',\n\t\tudid,\n\t\tproject.config.appId,\n\t\t'app'\n\t]);\n\n\treturn result.exitCode === 0 && result.stdout.trim()\n\t\t? result.stdout.trim()\n\t\t: undefined;\n};\n\nconst buildIosDebugApp = async (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\tfingerprint: string,\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>,\n\tsignal?: AbortSignal\n) => {\n\tconst derivedDataPath = join(\n\t\tproject.projectRoot,\n\t\t'.absolutejs',\n\t\t'mobile',\n\t\t'ios-derived-data',\n\t\tcreateHash('sha256')\n\t\t\t.update(project.config.appId)\n\t\t\t.digest('hex')\n\t\t\t.slice(0, 16)\n\t);\n\tawait mkdir(derivedDataPath, { recursive: true });\n\tawait requireSuccess(\n\t\t[\n\t\t\tproject.xcodebuild,\n\t\t\t'-workspace',\n\t\t\tjoin(project.nativeDirectory, 'App', 'App.xcworkspace'),\n\t\t\t'-scheme',\n\t\t\t'App',\n\t\t\t'-configuration',\n\t\t\t'Debug',\n\t\t\t'-destination',\n\t\t\t`platform=iOS Simulator,id=${udid}`,\n\t\t\t'-derivedDataPath',\n\t\t\tderivedDataPath,\n\t\t\t'build'\n\t\t],\n\t\t'iOS simulator build',\n\t\trun,\n\t\t{ cwd: project.nativeDirectory, signal }\n\t);\n\tconst appPath = join(\n\t\tderivedDataPath,\n\t\t'Build',\n\t\t'Products',\n\t\t'Debug-iphonesimulator',\n\t\t'App.app'\n\t);\n\tif (!(await pathExists(appPath)))\n\t\tthrow new Error(\n\t\t\t`Xcode did not produce the simulator app at ${appPath}.`\n\t\t);\n\n\treturn appPath;\n};\n\nconst ensureIosDebugApp = async (options: {\n\tcache: IosNativeCache | null;\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>;\n\tfingerprint: string;\n\tlog: NonNullable<StartAbsoluteIosDevOptions['log']>;\n\tproject: AbsoluteIosDevProject;\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>;\n\tsignal?: AbortSignal;\n\ttransition: (state: AbsoluteIosDevState) => void;\n\tudid: string;\n}) => {\n\tconst installed = installedAppIdentity(\n\t\toptions.project,\n\t\toptions.udid,\n\t\toptions.capture\n\t);\n\tconst cacheHit =\n\t\toptions.cache?.appId === options.project.config.appId &&\n\t\toptions.cache.fingerprint === options.fingerprint &&\n\t\tinstalled !== undefined &&\n\t\toptions.cache.installations[options.udid] === installed;\n\tif (cacheHit) {\n\t\toptions.log(\n\t\t\t`iOS native app is unchanged on ${options.udid}; skipped Xcode build and install.`\n\t\t);\n\n\t\treturn true;\n\t}\n\toptions.log(\n\t\t'iOS native inputs changed or the installed app is stale; rebuilding.'\n\t);\n\toptions.transition('building');\n\tconst appPath = await buildIosDebugApp(\n\t\toptions.project,\n\t\toptions.udid,\n\t\toptions.fingerprint,\n\t\toptions.run,\n\t\toptions.signal\n\t);\n\tthrowIfAborted(options.signal);\n\toptions.transition('installing');\n\tawait requireSuccess(\n\t\t[options.project.xcrun, 'simctl', 'install', options.udid, appPath],\n\t\t'iOS simulator app installation',\n\t\toptions.run,\n\t\t{ signal: options.signal }\n\t);\n\tconst updated = installedAppIdentity(\n\t\toptions.project,\n\t\toptions.udid,\n\t\toptions.capture\n\t);\n\tif (updated) {\n\t\tawait writeNativeCache(options.project.projectRoot, {\n\t\t\tappId: options.project.config.appId,\n\t\t\tfingerprint: options.fingerprint,\n\t\t\tformat: NATIVE_CACHE_FORMAT,\n\t\t\tinstallations: { [options.udid]: updated }\n\t\t}).catch((error) =>\n\t\t\toptions.log(\n\t\t\t\t`iOS native cache could not be saved: ${error instanceof Error ? error.message : String(error)}`\n\t\t\t)\n\t\t);\n\t}\n\n\treturn false;\n};\n\nconst SECRET_VALUE =\n\t/((?:authorization|cookie|password|secret|token|oauth[_-]?code)\\s*[:=]\\s*)([^\\s,;]+)/giu;\nconst BEARER_VALUE = new RegExp(\n\tString.raw`\\bBearer\\s+[A-Za-z0-9._~+/-]+=*`,\n\t'giu'\n);\nconst JWT_VALUE = /\\beyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b/gu;\nconst IOS_LOG_PATTERN = new RegExp(\n\tString.raw`\\s(Debug|Info|Notice|Error|Fault)\\s+.*?\\[[^\\]]+\\]\\s+\\[([^\\]]+)\\]\\s*(.*)$`,\n\t'iu'\n);\n\nexport const parseAbsoluteIosLogLine = (\n\tline: string\n): AbsoluteIosNativeLogEntry | null => {\n\tconst sanitized = redactAbsoluteIosLog(line).trim();\n\tif (!sanitized) return null;\n\tconst match = IOS_LOG_PATTERN.exec(sanitized);\n\tconst candidate = match?.[1]?.toLowerCase();\n\tconst level =\n\t\tcandidate === 'debug' ||\n\t\tcandidate === 'error' ||\n\t\tcandidate === 'fault' ||\n\t\tcandidate === 'notice'\n\t\t\t? candidate\n\t\t\t: 'info';\n\n\treturn {\n\t\tlevel,\n\t\tmessage: match?.[3]?.trim() || sanitized,\n\t\ttag: match?.[2]?.trim() || 'App'\n\t};\n};\nexport const redactAbsoluteIosLog = (value: string) =>\n\tvalue\n\t\t.replaceAll(BEARER_VALUE, 'Bearer [REDACTED]')\n\t\t.replaceAll(JWT_VALUE, '[REDACTED_JWT]')\n\t\t.replaceAll(SECRET_VALUE, '$1[REDACTED]')\n\t\t.replaceAll(/\\p{C}/gu, '');\n\nconst attachNativeLogs = (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\toptions: StartAbsoluteIosDevOptions\n) => {\n\tif (!options.nativeLog) return null;\n\tconst start = options.startNativeLogs ?? defaultStartNativeLogs;\n\n\treturn start(\n\t\t[\n\t\t\tproject.xcrun,\n\t\t\t'simctl',\n\t\t\t'spawn',\n\t\t\tudid,\n\t\t\t'log',\n\t\t\t'stream',\n\t\t\t'--style',\n\t\t\t'compact',\n\t\t\t'--level',\n\t\t\t'debug',\n\t\t\t'--predicate',\n\t\t\t'process == \"App\"'\n\t\t],\n\t\t{ signal: options.signal },\n\t\t(line) => {\n\t\t\tconst entry = parseAbsoluteIosLogLine(line);\n\t\t\tif (entry) options.nativeLog?.(entry);\n\t\t}\n\t);\n};\n\nconst IOS_TIMING_PHASES: Array<[string, string]> = [\n\t['syncing', 'Capacitor sync'],\n\t['configuring', 'dev config'],\n\t['fingerprinting', 'fingerprint'],\n\t['booting', 'simulator'],\n\t['connecting', 'device ready'],\n\t['checking-native', 'app check'],\n\t['building', 'Xcode'],\n\t['installing', 'install'],\n\t['launching', 'launch'],\n\t['streaming-logs', 'logs']\n];\n\nconst timingSummary = (timings: Record<string, number>) =>\n\tIOS_TIMING_PHASES.map(([phase, label]) => {\n\t\tconst duration = timings[phase];\n\n\t\treturn duration === undefined\n\t\t\t? null\n\t\t\t: `${label} ${getDurationString(duration)}`;\n\t})\n\t\t.filter((value): value is string => value !== null)\n\t\t.join(', ');\n\nexport const prepareAbsoluteIosDevProject = async (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\toptions: PrepareAbsoluteIosDevOptions\n): Promise<AbsoluteIosDevProject> => {\n\tif (detectAbsoluteMobileHost() !== 'macos')\n\t\tthrow new Error('iOS simulation requires macOS and Xcode.');\n\tconst projectRoot = resolve(options.projectRoot);\n\tconst checks = await inspectAbsoluteMobileToolchain({ host: 'macos' });\n\tconst failed = checks.filter(\n\t\t(check) =>\n\t\t\tcheck.platform === 'ios' &&\n\t\t\t(check.status === 'fail' || check.status === 'warn')\n\t);\n\tif (failed.length > 0)\n\t\tthrow new Error(\n\t\t\t`iOS simulation is not ready: ${failed.map(({ label }) => label).join(', ')}.`\n\t\t);\n\tconst xcrun = checks.find((check) => check.id === 'ios.xcrun')?.path;\n\tconst xcodebuild = checks.find(\n\t\t(check) => check.id === 'ios.xcodebuild'\n\t)?.path;\n\tif (!xcrun || !xcodebuild)\n\t\tthrow new Error('Xcode tools disappeared after readiness checks.');\n\tconst cap = join(projectRoot, 'node_modules', '.bin', 'cap');\n\tif (!(await pathExists(cap)))\n\t\tthrow new Error(\n\t\t\t'Capacitor CLI is not installed. Run absolute mobile init first.'\n\t\t);\n\tawait writeAbsoluteCapacitorConfig(config, { projectRoot });\n\tawait mkdir(config.bundleDirectory, { recursive: true });\n\tconst placeholder = join(config.bundleDirectory, 'index.html');\n\tif (!(await pathExists(placeholder)))\n\t\tawait writeFile(\n\t\t\tplaceholder,\n\t\t\t'<!doctype html><title>AbsoluteJS mobile development</title>\\n'\n\t\t);\n\tconst nativeDirectory = join(config.nativeProjectDirectory, 'ios');\n\tif (!(await pathExists(nativeDirectory))) {\n\t\tif (!options.createNativeProject)\n\t\t\tthrow new Error('iOS native project has not been created.');\n\t\tconst run = options.run ?? defaultRun;\n\t\tif ((await run([cap, 'add', 'ios'], { cwd: projectRoot })) !== 0)\n\t\t\tthrow new Error('Capacitor iOS project creation failed.');\n\t}\n\n\treturn {\n\t\tcap,\n\t\tconfig,\n\t\tnativeDirectory,\n\t\tprojectRoot,\n\t\txcodebuild,\n\t\txcrun\n\t};\n};\n\nexport const startAbsoluteIosDevSession = async (\n\toptions: StartAbsoluteIosDevOptions\n): Promise<AbsoluteIosDevSession> => {\n\tconst { project } = options;\n\tconst capture = options.capture ?? defaultCapture;\n\tconst run = options.run ?? defaultRun;\n\tconst sleep = options.sleep ?? Bun.sleep;\n\tconst spawn = options.spawn ?? defaultSpawn;\n\tconst log = options.log ?? console.log;\n\tconst startedAt = performance.now();\n\tlet phaseStartedAt = performance.now();\n\tconst timings: Record<string, number> = {};\n\tlet state: AbsoluteIosDevState = 'syncing';\n\tconst transition = (next: AbsoluteIosDevState) => {\n\t\tif (next === state) {\n\t\t\toptions.onStateChange?.(next);\n\n\t\t\treturn;\n\t\t}\n\t\tconst now = performance.now();\n\t\tconst durationMs = now - phaseStartedAt;\n\t\ttimings[state] = (timings[state] ?? 0) + durationMs;\n\t\toptions.onPhaseTiming?.({\n\t\t\tdurationMs,\n\t\t\tphase: state,\n\t\t\ttotalMs: now - startedAt\n\t\t});\n\t\tstate = next;\n\t\tphaseStartedAt = now;\n\t\toptions.onStateChange?.(next);\n\t};\n\tlet nativeLogs: AbsoluteIosLogStream | null = null;\n\tconst closeLogs = async () => {\n\t\tconst stream = nativeLogs;\n\t\tnativeLogs = null;\n\t\tawait stream?.close().catch(() => undefined);\n\t};\n\ttry {\n\t\tawait repairAbsoluteIosDevSession(project.projectRoot);\n\t\tthrowIfAborted(options.signal);\n\t\ttransition('syncing');\n\t\tawait requireSuccess(\n\t\t\t[project.cap, 'sync', 'ios'],\n\t\t\t'Capacitor iOS synchronization',\n\t\t\trun,\n\t\t\t{ cwd: project.projectRoot, signal: options.signal }\n\t\t);\n\t\ttransition('configuring');\n\t\tawait writeDevProjection(project, options.port, options.https === true);\n\t\tthrowIfAborted(options.signal);\n\t\tconst fingerprintStartedAt = performance.now();\n\t\tconst fingerprintPromise = fingerprintAbsoluteIosDevProject(\n\t\t\tproject\n\t\t).then((fingerprint) => {\n\t\t\ttimings.fingerprinting = performance.now() - fingerprintStartedAt;\n\n\t\t\treturn fingerprint;\n\t\t});\n\t\ttransition('booting');\n\t\tconst { created, device } = await ensureManagedSimulator(\n\t\t\tproject,\n\t\t\tcapture\n\t\t);\n\t\tconst startedSimulator = created || device.state !== 'Booted';\n\t\tbootSimulator(project, device, capture);\n\t\tspawn([\n\t\t\t'open',\n\t\t\t'-a',\n\t\t\t'Simulator',\n\t\t\t'--args',\n\t\t\t'-CurrentDeviceUDID',\n\t\t\tdevice.udid\n\t\t]);\n\t\ttransition('connecting');\n\t\tawait waitForBootedSimulator(\n\t\t\tproject,\n\t\t\tdevice.udid,\n\t\t\tcapture,\n\t\t\tsleep,\n\t\t\toptions.signal\n\t\t);\n\t\tawait requireSuccess(\n\t\t\t[project.xcrun, 'simctl', 'bootstatus', device.udid, '-b'],\n\t\t\t'iOS simulator boot readiness',\n\t\t\trun,\n\t\t\t{ signal: options.signal }\n\t\t);\n\t\tconst fingerprint = await fingerprintPromise;\n\t\ttransition('checking-native');\n\t\tconst nativeCacheHit = await ensureIosDebugApp({\n\t\t\tcache: await readNativeCache(project.projectRoot),\n\t\t\tcapture,\n\t\t\tfingerprint,\n\t\t\tlog,\n\t\t\tproject,\n\t\t\trun,\n\t\t\tsignal: options.signal,\n\t\t\ttransition,\n\t\t\tudid: device.udid\n\t\t});\n\t\tthrowIfAborted(options.signal);\n\t\tif (options.nativeLog) transition('streaming-logs');\n\t\tnativeLogs = attachNativeLogs(project, device.udid, options);\n\t\ttransition('launching');\n\t\tawait requireSuccess(\n\t\t\t[\n\t\t\t\tproject.xcrun,\n\t\t\t\t'simctl',\n\t\t\t\t'launch',\n\t\t\t\t'--terminate-running-process',\n\t\t\t\tdevice.udid,\n\t\t\t\tproject.config.appId\n\t\t\t],\n\t\t\t'iOS app launch',\n\t\t\trun,\n\t\t\t{ signal: options.signal }\n\t\t);\n\t\ttransition('ready');\n\t\ttimings.total = performance.now() - startedAt;\n\t\tlog(\n\t\t\t`iOS simulator connected (${device.udid}) with HMR on port ${options.port} in ${getDurationString(timings.total)} (${nativeCacheHit ? 'native cache hit' : 'native build installed'}).`\n\t\t);\n\t\tlog(`iOS startup: ${timingSummary(timings)}.`);\n\t\tlet closed = false;\n\t\tconst close = async () => {\n\t\t\tif (closed) return;\n\t\t\tclosed = true;\n\t\t\ttransition('closing');\n\t\t\tawait closeLogs();\n\t\t\tawait repairAbsoluteIosDevSession(project.projectRoot);\n\t\t\ttransition('closed');\n\t\t};\n\n\t\treturn {\n\t\t\tclose,\n\t\t\tnativeCacheHit,\n\t\t\tstartedSimulator,\n\t\t\ttimings: { ...timings },\n\t\t\tudid: device.udid,\n\t\t\trebuild: async () => {\n\t\t\t\tif (closed)\n\t\t\t\t\tthrow new Error('iOS development session is closed.');\n\t\t\t\tlog(\n\t\t\t\t\t'iOS native inputs changed; rebuilding without restarting the dev server.'\n\t\t\t\t);\n\t\t\t\tawait close();\n\n\t\t\t\treturn startAbsoluteIosDevSession(options);\n\t\t\t},\n\t\t\trelaunch: async () => {\n\t\t\t\tif (closed)\n\t\t\t\t\tthrow new Error('iOS development session is closed.');\n\t\t\t\ttransition('launching');\n\t\t\t\ttry {\n\t\t\t\t\tawait requireSuccess(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tproject.xcrun,\n\t\t\t\t\t\t\t'simctl',\n\t\t\t\t\t\t\t'launch',\n\t\t\t\t\t\t\t'--terminate-running-process',\n\t\t\t\t\t\t\tdevice.udid,\n\t\t\t\t\t\t\tproject.config.appId\n\t\t\t\t\t\t],\n\t\t\t\t\t\t'iOS app relaunch',\n\t\t\t\t\t\trun,\n\t\t\t\t\t\t{ signal: options.signal }\n\t\t\t\t\t);\n\t\t\t\t\ttransition('ready');\n\t\t\t\t\tlog(`iOS app relaunched on ${device.udid}.`);\n\t\t\t\t} catch (error) {\n\t\t\t\t\ttransition('failed');\n\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t\tscreenshot: async (destination) => {\n\t\t\t\tconst resolved = resolve(project.projectRoot, destination);\n\t\t\t\tif (!isInside(project.projectRoot, resolved))\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'iOS screenshot destination must remain inside the project.'\n\t\t\t\t\t);\n\t\t\t\tawait mkdir(dirname(resolved), { recursive: true });\n\t\t\t\tawait requireSuccess(\n\t\t\t\t\t[\n\t\t\t\t\t\tproject.xcrun,\n\t\t\t\t\t\t'simctl',\n\t\t\t\t\t\t'io',\n\t\t\t\t\t\tdevice.udid,\n\t\t\t\t\t\t'screenshot',\n\t\t\t\t\t\tresolved\n\t\t\t\t\t],\n\t\t\t\t\t'iOS simulator screenshot',\n\t\t\t\t\trun,\n\t\t\t\t\t{ signal: options.signal }\n\t\t\t\t);\n\n\t\t\t\treturn resolved;\n\t\t\t},\n\t\t\tget state() {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\ttransition('failed');\n\t\tawait closeLogs();\n\t\tawait repairAbsoluteIosDevSession(project.projectRoot);\n\n\t\tthrow error;\n\t}\n};\n",
24
+ "import { createHash, randomUUID } from 'node:crypto';\nimport {\n\taccess,\n\tcopyFile,\n\tmkdir,\n\treadFile,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { isIP } from 'node:net';\nimport { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport {\n\tdetectAbsoluteMobileHost,\n\tinspectAbsoluteMobileToolchain\n} from './emulatorDoctor';\nimport { writeAbsoluteCapacitorConfig } from './capacitorProject';\nimport { fingerprintAbsoluteIosNativeProject } from './iosRelease';\nimport {\n\tnormalizeAbsoluteIosDeviceHost,\n\tnormalizeAbsoluteIosDeviceIdentifier,\n\tstartAbsoluteIosCaEnrollmentServer,\n\ttype AbsoluteIosCaEnrollmentServer\n} from './iosPhysicalDeviceTransport';\nimport { getDurationString } from '../utils/getDurationString';\n\nexport const ABSOLUTE_IOS_SIMULATOR_NAME = 'AbsoluteJS iPhone';\n\nconst BOOT_TIMEOUT_MS = 180_000;\nconst BOOT_POLL_MS = 1_000;\nconst DEV_JOURNAL_FORMAT = 1;\nconst NATIVE_CACHE_FORMAT = 1;\n\nexport type AbsoluteIosCommandOptions = {\n\tcwd?: string;\n\tenv?: Record<string, string | undefined>;\n\tsignal?: AbortSignal;\n};\n\nexport type AbsoluteIosCommandResult = {\n\texitCode: number;\n\tstderr: string;\n\tstdout: string;\n};\n\nexport type AbsoluteIosDevState =\n\t| 'booting'\n\t| 'building'\n\t| 'checking-native'\n\t| 'closed'\n\t| 'closing'\n\t| 'configuring'\n\t| 'connecting'\n\t| 'enrolling-trust'\n\t| 'failed'\n\t| 'installing'\n\t| 'launching'\n\t| 'ready'\n\t| 'streaming-logs'\n\t| 'syncing';\n\nexport type AbsoluteIosNativeLogEntry = {\n\tlevel: 'debug' | 'error' | 'fault' | 'info' | 'notice';\n\tmessage: string;\n\ttag: string;\n};\n\ntype AbsoluteIosLogStream = { close: () => Promise<void> };\n\nexport type AbsoluteIosDevProject = {\n\tcap: string;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\tnativeDirectory: string;\n\tprojectRoot: string;\n\txcodebuild: string;\n\txcrun: string;\n};\n\nexport type AbsoluteIosDevSession = {\n\tclose: () => Promise<void>;\n\tnativeCacheHit: boolean;\n\trebuild: () => Promise<AbsoluteIosDevSession>;\n\trelaunch: () => Promise<void>;\n\tscreenshot: (destination: string) => Promise<string>;\n\tstartedSimulator: boolean;\n\tstate: AbsoluteIosDevState;\n\ttargetKind: 'device' | 'simulator';\n\ttimings: Record<string, number>;\n\tudid: string;\n};\n\nexport type AbsoluteIosDevPhaseTiming = {\n\tdurationMs: number;\n\tphase: AbsoluteIosDevState;\n\ttotalMs: number;\n};\n\nexport type PrepareAbsoluteIosDevOptions = {\n\tcreateNativeProject: boolean;\n\tprojectRoot: string;\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteIosCommandOptions\n\t) => Promise<number>;\n\ttarget?: 'device' | 'simulator';\n};\n\nexport type StartAbsoluteIosDevOptions = {\n\t/** CA certificate installed into this simulator's trusted root store. */\n\tcertificateAuthorityPath?: string;\n\tcapture?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteIosCommandOptions\n\t) => AbsoluteIosCommandResult;\n\t/** Xcode device identifier or name. Omit to use the managed Simulator. */\n\tdeviceIdentifier?: string;\n\thttps?: boolean;\n\tlog?: (message: string) => void;\n\tnativeLog?: (entry: AbsoluteIosNativeLogEntry) => void;\n\tonPhaseTiming?: (timing: AbsoluteIosDevPhaseTiming) => void;\n\tonStateChange?: (state: AbsoluteIosDevState) => void;\n\tport: number;\n\tproject: AbsoluteIosDevProject;\n\trun?: (\n\t\tcommand: string[],\n\t\toptions?: AbsoluteIosCommandOptions\n\t) => Promise<number>;\n\t/** Hostname or LAN address embedded into a physical-device dev URL. */\n\tserverHost?: string;\n\tsignal?: AbortSignal;\n\tsleep?: (milliseconds: number) => Promise<void>;\n\tspawn?: (command: string[], options?: AbsoluteIosCommandOptions) => void;\n\tstartNativeLogs?: (\n\t\tcommand: string[],\n\t\toptions: AbsoluteIosCommandOptions,\n\t\tonLine: (line: string) => void\n\t) => AbsoluteIosLogStream;\n\tstartCaEnrollmentServer?: (options: {\n\t\tcertificateAuthorityPath: string;\n\t\tdisplayHost: string;\n\t}) => Promise<AbsoluteIosCaEnrollmentServer>;\n};\n\ntype IosRuntime = {\n\tidentifier: string;\n\tisAvailable: boolean;\n\tname: string;\n\tversion: string;\n};\n\ntype IosDeviceType = { identifier: string; name: string };\n\ntype IosDevJournal = {\n\tconfigBackupPath: string;\n\tformat: number;\n\tinfoBackupPath: string;\n\tinfoPath: string;\n\tnativeConfigPath: string;\n};\n\ntype IosNativeCache = {\n\tappId: string;\n\tfingerprint: string;\n\tformat: number;\n\tinstallations: Record<string, string>;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst pathExists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst throwIfAborted = (signal?: AbortSignal) => signal?.throwIfAborted();\n\nconst defaultCapture = (\n\tcommand: string[],\n\toptions: AbsoluteIosCommandOptions = {}\n) => {\n\ttry {\n\t\tconst result = Bun.spawnSync(command, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: options.env,\n\t\t\tstderr: 'pipe',\n\t\t\tstdin: 'ignore',\n\t\t\tstdout: 'pipe'\n\t\t});\n\n\t\treturn {\n\t\t\texitCode: result.exitCode,\n\t\t\tstderr: result.stderr.toString(),\n\t\t\tstdout: result.stdout.toString()\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\texitCode: 1,\n\t\t\tstderr: error instanceof Error ? error.message : String(error),\n\t\t\tstdout: ''\n\t\t};\n\t}\n};\n\nconst defaultRun = async (\n\tcommand: string[],\n\toptions: AbsoluteIosCommandOptions = {}\n) => {\n\tconst process = Bun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tsignal: options.signal,\n\t\tstderr: 'inherit',\n\t\tstdin: 'inherit',\n\t\tstdout: 'inherit'\n\t});\n\n\treturn process.exited;\n};\n\nconst defaultSpawn = (\n\tcommand: string[],\n\toptions: AbsoluteIosCommandOptions = {}\n) => {\n\tBun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tsignal: options.signal,\n\t\tstderr: 'ignore',\n\t\tstdin: 'ignore',\n\t\tstdout: 'ignore'\n\t});\n};\n\nconst consumeLines = async (\n\tstream: ReadableStream<Uint8Array>,\n\tonLine: (line: string) => void\n) => {\n\tconst reader = stream.getReader();\n\tconst decoder = new TextDecoder();\n\tlet buffered = '';\n\tconst pump = async (): Promise<void> => {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) return;\n\t\tbuffered += decoder.decode(value, { stream: true });\n\t\tconst lines = buffered.split(/\\r?\\n/u);\n\t\tbuffered = lines.pop() ?? '';\n\t\tlines.forEach(onLine);\n\n\t\tawait pump();\n\t};\n\ttry {\n\t\tawait pump();\n\t\tbuffered += decoder.decode();\n\t\tif (buffered) onLine(buffered);\n\t} finally {\n\t\treader.releaseLock();\n\t}\n};\n\nconst defaultStartNativeLogs = (\n\tcommand: string[],\n\toptions: AbsoluteIosCommandOptions,\n\tonLine: (line: string) => void\n): AbsoluteIosLogStream => {\n\tconst process = Bun.spawn(command, {\n\t\tcwd: options.cwd,\n\t\tenv: options.env,\n\t\tsignal: options.signal,\n\t\tstderr: 'pipe',\n\t\tstdin: 'ignore',\n\t\tstdout: 'pipe'\n\t});\n\tvoid consumeLines(process.stdout, onLine);\n\tvoid consumeLines(process.stderr, onLine);\n\n\treturn {\n\t\tclose: async () => {\n\t\t\ttry {\n\t\t\t\tprocess.kill();\n\t\t\t} catch {\n\t\t\t\t/* already closed */\n\t\t\t}\n\t\t\tawait process.exited.catch(() => undefined);\n\t\t}\n\t};\n};\n\nconst requireSuccess = async (\n\tcommand: string[],\n\tlabel: string,\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>,\n\toptions?: AbsoluteIosCommandOptions\n) => {\n\tconst exitCode = await run(command, options);\n\tif (exitCode !== 0)\n\t\tthrow new Error(`${label} failed with status ${exitCode}.`);\n};\n\nconst trustIosSimulatorDevelopmentCa = async (\n\toptions: StartAbsoluteIosDevOptions,\n\tudid: string,\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>,\n\tlog: NonNullable<StartAbsoluteIosDevOptions['log']>\n) => {\n\tif (!options.https) return;\n\tif (!options.certificateAuthorityPath) {\n\t\tthrow new Error(\n\t\t\t'iOS Simulator HTTPS requires the AbsoluteJS development CA certificate.'\n\t\t);\n\t}\n\tawait requireSuccess(\n\t\t[\n\t\t\toptions.project.xcrun,\n\t\t\t'simctl',\n\t\t\t'keychain',\n\t\t\tudid,\n\t\t\t'add-root-cert',\n\t\t\toptions.certificateAuthorityPath\n\t\t],\n\t\t'iOS Simulator development CA trust',\n\t\trun,\n\t\t{ signal: options.signal }\n\t);\n\tlog(\n\t\t'Installed the AbsoluteJS development CA into this iOS Simulator trust store.'\n\t);\n};\n\nconst iosLaunchCommand = (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\tphysical: boolean\n) =>\n\tphysical\n\t\t? [\n\t\t\t\tproject.xcrun,\n\t\t\t\t'devicectl',\n\t\t\t\t'device',\n\t\t\t\t'process',\n\t\t\t\t'launch',\n\t\t\t\t'--terminate-existing',\n\t\t\t\t'--device',\n\t\t\t\tudid,\n\t\t\t\tproject.config.appId\n\t\t\t]\n\t\t: [\n\t\t\t\tproject.xcrun,\n\t\t\t\t'simctl',\n\t\t\t\t'launch',\n\t\t\t\t'--terminate-running-process',\n\t\t\t\tudid,\n\t\t\t\tproject.config.appId\n\t\t\t];\n\nconst requireCapturedSuccess = (\n\tresult: AbsoluteIosCommandResult,\n\tlabel: string\n) => {\n\tif (result.exitCode !== 0) {\n\t\tthrow new Error(\n\t\t\t`${label} failed: ${result.stderr.trim() || result.stdout.trim() || `status ${result.exitCode}`}`\n\t\t);\n\t}\n\n\treturn result.stdout.trim();\n};\n\nconst parseJson = (source: string, label: string) => {\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(source);\n\t\tif (isRecord(parsed)) return parsed;\n\t} catch {\n\t\t/* normalized below */\n\t}\n\tthrow new Error(`Invalid ${label} JSON from simctl.`);\n};\n\nexport const parseIosDeviceTypes = (source: string) => {\n\tconst parsed = parseJson(source, 'device type');\n\tconst types = parsed.devicetypes;\n\tif (!Array.isArray(types)) return [];\n\n\treturn types.flatMap((type) => {\n\t\tif (!isRecord(type)) return [];\n\t\tconst { identifier } = type;\n\t\tconst { name } = type;\n\n\t\treturn typeof identifier === 'string' && typeof name === 'string'\n\t\t\t? [{ identifier, name }]\n\t\t\t: [];\n\t});\n};\nexport const parseIosRuntimes = (source: string) => {\n\tconst parsed = parseJson(source, 'runtime');\n\tconst { runtimes } = parsed;\n\tif (!Array.isArray(runtimes)) return [];\n\n\treturn runtimes.flatMap((runtime) => {\n\t\tif (!isRecord(runtime)) return [];\n\t\tconst { identifier } = runtime;\n\t\tconst { name } = runtime;\n\t\tconst { version } = runtime;\n\t\tif (\n\t\t\ttypeof identifier !== 'string' ||\n\t\t\ttypeof name !== 'string' ||\n\t\t\ttypeof version !== 'string'\n\t\t)\n\t\t\treturn [];\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tidentifier,\n\t\t\t\tisAvailable: runtime.isAvailable !== false,\n\t\t\t\tname,\n\t\t\t\tversion\n\t\t\t}\n\t\t];\n\t});\n};\nexport const parseIosSimulators = (source: string) => {\n\tconst parsed = parseJson(source, 'device');\n\tconst { devices } = parsed;\n\tif (!isRecord(devices)) return [];\n\n\treturn Object.entries(devices).flatMap(([runtime, values]) => {\n\t\tif (!Array.isArray(values)) return [];\n\n\t\treturn values.flatMap((device) => {\n\t\t\tif (!isRecord(device)) return [];\n\t\t\tconst { name } = device;\n\t\t\tconst { state } = device;\n\t\t\tconst { udid } = device;\n\t\t\tif (\n\t\t\t\ttypeof name !== 'string' ||\n\t\t\t\ttypeof state !== 'string' ||\n\t\t\t\ttypeof udid !== 'string'\n\t\t\t)\n\t\t\t\treturn [];\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tisAvailable: device.isAvailable !== false,\n\t\t\t\t\tname,\n\t\t\t\t\truntime,\n\t\t\t\t\tstate,\n\t\t\t\t\tudid\n\t\t\t\t}\n\t\t\t];\n\t\t});\n\t});\n};\n\nconst versionParts = (version: string) =>\n\tversion.split('.').map((part) => Number(part));\n\nconst compareVersions = (left: string, right: string) => {\n\tconst leftParts = versionParts(left);\n\tconst rightParts = versionParts(right);\n\tconst length = Math.max(leftParts.length, rightParts.length);\n\tfor (let index = 0; index < length; index++) {\n\t\tconst difference = (leftParts[index] ?? 0) - (rightParts[index] ?? 0);\n\t\tif (difference !== 0) return difference;\n\t}\n\n\treturn 0;\n};\n\nconst latestIosRuntime = (runtimes: IosRuntime[]) =>\n\truntimes\n\t\t.filter(\n\t\t\t(runtime) =>\n\t\t\t\truntime.isAvailable &&\n\t\t\t\truntime.identifier.includes('SimRuntime.iOS-')\n\t\t)\n\t\t.sort((left, right) => compareVersions(right.version, left.version))[0];\n\nconst iphoneGeneration = (name: string) =>\n\tNumber(/iPhone\\s+(\\d+)/u.exec(name)?.[1] ?? 0);\n\nconst preferredIphoneType = (types: IosDeviceType[]) =>\n\ttypes\n\t\t.filter((type) => type.name.startsWith('iPhone'))\n\t\t.sort((left, right) => {\n\t\t\tconst generation =\n\t\t\t\tiphoneGeneration(right.name) - iphoneGeneration(left.name);\n\t\t\tif (generation !== 0) return generation;\n\t\t\tconst rightPro = right.name.includes('Pro') ? 1 : 0;\n\t\t\tconst leftPro = left.name.includes('Pro') ? 1 : 0;\n\n\t\t\treturn rightPro - leftPro;\n\t\t})[0];\n\nconst journalPaths = (projectRoot: string) => {\n\tconst root = join(projectRoot, '.absolutejs', 'mobile', 'ios-dev-session');\n\n\treturn {\n\t\tconfigBackup: join(root, 'capacitor-config.backup'),\n\t\tinfoBackup: join(root, 'Info.plist.backup'),\n\t\tjournal: join(root, 'journal.json'),\n\t\troot\n\t};\n};\n\nconst nativeCachePath = (projectRoot: string) =>\n\tjoin(projectRoot, '.absolutejs', 'mobile', 'ios-native-cache.json');\n\nconst isInside = (root: string, path: string) => {\n\tconst value = relative(resolve(root), resolve(path));\n\n\treturn (\n\t\tvalue === '' ||\n\t\t(!value.startsWith(`..${sep}`) && value !== '..' && !isAbsolute(value))\n\t);\n};\n\nconst parseJournal = (value: unknown): IosDevJournal | null => {\n\tif (!isRecord(value) || value.format !== DEV_JOURNAL_FORMAT) return null;\n\tconst { configBackupPath } = value;\n\tconst { infoBackupPath } = value;\n\tconst { infoPath } = value;\n\tconst { nativeConfigPath } = value;\n\tif (\n\t\ttypeof configBackupPath !== 'string' ||\n\t\ttypeof infoBackupPath !== 'string' ||\n\t\ttypeof infoPath !== 'string' ||\n\t\ttypeof nativeConfigPath !== 'string'\n\t)\n\t\treturn null;\n\n\treturn {\n\t\tconfigBackupPath,\n\t\tformat: DEV_JOURNAL_FORMAT,\n\t\tinfoBackupPath,\n\t\tinfoPath,\n\t\tnativeConfigPath\n\t};\n};\n\nexport const repairAbsoluteIosDevSession = async (projectRoot: string) => {\n\tconst paths = journalPaths(projectRoot);\n\tif (!(await pathExists(paths.journal))) {\n\t\tawait rm(paths.root, { force: true, recursive: true });\n\n\t\treturn false;\n\t}\n\tconst journal = await readFile(paths.journal, 'utf8')\n\t\t.then((source) => parseJournal(JSON.parse(source)))\n\t\t.catch(() => null);\n\tif (\n\t\t!journal ||\n\t\t!isInside(projectRoot, journal.nativeConfigPath) ||\n\t\t!isInside(projectRoot, journal.infoPath) ||\n\t\t!isInside(paths.root, journal.configBackupPath) ||\n\t\t!isInside(paths.root, journal.infoBackupPath)\n\t) {\n\t\tthrow new Error(\n\t\t\t`Refusing unsafe or invalid iOS dev journal at ${paths.journal}.`\n\t\t);\n\t}\n\tif (await pathExists(journal.configBackupPath))\n\t\tawait copyFile(journal.configBackupPath, journal.nativeConfigPath);\n\tif (await pathExists(journal.infoBackupPath))\n\t\tawait copyFile(journal.infoBackupPath, journal.infoPath);\n\tawait rm(paths.root, { force: true, recursive: true });\n\n\treturn true;\n};\n\nconst iosDevelopmentInfoPlist = (source: string, cleartext: boolean) => {\n\tif (!cleartext) return source;\n\tconst arbitraryLoads =\n\t\t/(<key>NSAllowsArbitraryLoads<\\/key>\\s*)<false\\s*\\/>/u;\n\tif (arbitraryLoads.test(source))\n\t\treturn source.replace(arbitraryLoads, '$1<true/>');\n\tif (/<key>NSAllowsArbitraryLoads<\\/key>\\s*<true\\s*\\/>/u.test(source))\n\t\treturn source;\n\tconst transport = /(<key>NSAppTransportSecurity<\\/key>\\s*<dict>)/u;\n\tif (transport.test(source))\n\t\treturn source.replace(\n\t\t\ttransport,\n\t\t\t'$1\\n\\t\\t<key>NSAllowsArbitraryLoads</key>\\n\\t\\t<true/>'\n\t\t);\n\n\treturn source.replace(\n\t\t/<dict>/u,\n\t\t'<dict>\\n\\t<key>NSAppTransportSecurity</key>\\n\\t<dict>\\n\\t\\t<key>NSAllowsArbitraryLoads</key>\\n\\t\\t<true/>\\n\\t</dict>'\n\t);\n};\n\nconst writeDevProjection = async (\n\tproject: AbsoluteIosDevProject,\n\tport: number,\n\thttps: boolean,\n\tserverHost = 'localhost'\n) => {\n\tconst paths = journalPaths(project.projectRoot);\n\tawait repairAbsoluteIosDevSession(project.projectRoot);\n\tconst nativeConfigPath = join(\n\t\tproject.nativeDirectory,\n\t\t'App',\n\t\t'App',\n\t\t'capacitor.config.json'\n\t);\n\tconst infoPath = join(project.nativeDirectory, 'App', 'App', 'Info.plist');\n\tconst [configSource, infoSource] = await Promise.all([\n\t\treadFile(nativeConfigPath, 'utf8'),\n\t\treadFile(infoPath, 'utf8')\n\t]);\n\tconst parsed: unknown = JSON.parse(configSource);\n\tif (!isRecord(parsed))\n\t\tthrow new Error(\n\t\t\t`Invalid Capacitor native config at ${nativeConfigPath}.`\n\t\t);\n\tawait mkdir(paths.root, { recursive: true });\n\tawait Promise.all([\n\t\twriteFile(paths.configBackup, configSource, { flag: 'wx' }),\n\t\twriteFile(paths.infoBackup, infoSource, { flag: 'wx' })\n\t]);\n\tconst journal: IosDevJournal = {\n\t\tconfigBackupPath: paths.configBackup,\n\t\tformat: DEV_JOURNAL_FORMAT,\n\t\tinfoBackupPath: paths.infoBackup,\n\t\tinfoPath,\n\t\tnativeConfigPath\n\t};\n\tawait writeFile(paths.journal, `${JSON.stringify(journal, null, '\\t')}\\n`, {\n\t\tflag: 'wx'\n\t});\n\tconst developmentUrl = new URL(\n\t\t`${https ? 'https' : 'http'}://localhost:${port}${project.config.entry}`\n\t);\n\tdevelopmentUrl.hostname =\n\t\tisIP(serverHost) === 6 ? `[${serverHost}]` : serverHost;\n\tdevelopmentUrl.searchParams.set('__absolute_target', 'capacitor-ios');\n\tconst existingServer = parsed.server;\n\tparsed.server = {\n\t\t...(isRecord(existingServer) ? existingServer : {}),\n\t\tcleartext: !https,\n\t\turl: developmentUrl.href\n\t};\n\tawait Promise.all([\n\t\twriteFile(nativeConfigPath, `${JSON.stringify(parsed, null, '\\t')}\\n`),\n\t\twriteFile(infoPath, iosDevelopmentInfoPlist(infoSource, !https))\n\t]);\n};\n\nconst parseNativeCache = (value: unknown): IosNativeCache | null => {\n\tif (!isRecord(value)) return null;\n\tconst { appId, fingerprint, format, installations } = value;\n\tif (\n\t\tformat !== NATIVE_CACHE_FORMAT ||\n\t\ttypeof appId !== 'string' ||\n\t\ttypeof fingerprint !== 'string' ||\n\t\t!isRecord(installations) ||\n\t\t!Object.values(installations).every(\n\t\t\t(identity) => typeof identity === 'string'\n\t\t)\n\t)\n\t\treturn null;\n\n\treturn {\n\t\tappId,\n\t\tfingerprint,\n\t\tformat,\n\t\tinstallations: Object.fromEntries(\n\t\t\tObject.entries(installations).map(([udid, identity]) => [\n\t\t\t\tudid,\n\t\t\t\tString(identity)\n\t\t\t])\n\t\t)\n\t};\n};\n\nconst readNativeCache = (projectRoot: string) =>\n\treadFile(nativeCachePath(projectRoot), 'utf8')\n\t\t.then((source) => parseNativeCache(JSON.parse(source)))\n\t\t.catch(() => null);\n\nconst writeNativeCache = async (projectRoot: string, cache: IosNativeCache) => {\n\tconst destination = nativeCachePath(projectRoot);\n\tconst temporary = `${destination}.${process.pid}.${randomUUID()}.tmp`;\n\tawait mkdir(dirname(destination), { recursive: true });\n\ttry {\n\t\tawait writeFile(temporary, `${JSON.stringify(cache, null, '\\t')}\\n`, {\n\t\t\tflag: 'wx'\n\t\t});\n\t\tawait rename(temporary, destination);\n\t} finally {\n\t\tawait rm(temporary, { force: true }).catch(() => undefined);\n\t}\n};\n\nexport const fingerprintAbsoluteIosDevProject = async (\n\tproject: Pick<AbsoluteIosDevProject, 'nativeDirectory'>\n) => fingerprintAbsoluteIosNativeProject(project.nativeDirectory);\n\nconst simulatorInventory = (\n\txcrun: string,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tconst result = capture([\n\t\txcrun,\n\t\t'simctl',\n\t\t'list',\n\t\t'devices',\n\t\t'available',\n\t\t'-j'\n\t]);\n\n\treturn parseIosSimulators(\n\t\trequireCapturedSuccess(result, 'iOS simulator discovery')\n\t);\n};\n\nconst ensureManagedSimulator = async (\n\tproject: AbsoluteIosDevProject,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tconst runtimes = parseIosRuntimes(\n\t\trequireCapturedSuccess(\n\t\t\tcapture([project.xcrun, 'simctl', 'list', 'runtimes', '-j']),\n\t\t\t'iOS runtime discovery'\n\t\t)\n\t);\n\tconst runtime = latestIosRuntime(runtimes);\n\tif (!runtime)\n\t\tthrow new Error(\n\t\t\t'No available iOS Simulator runtime. Run absolute mobile doctor ios --fix.'\n\t\t);\n\tconst [existing] = simulatorInventory(project.xcrun, capture)\n\t\t.filter(\n\t\t\t(device) =>\n\t\t\t\tdevice.isAvailable &&\n\t\t\t\tdevice.name === ABSOLUTE_IOS_SIMULATOR_NAME &&\n\t\t\t\tdevice.runtime === runtime.identifier\n\t\t)\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\tNumber(right.state === 'Booted') -\n\t\t\t\tNumber(left.state === 'Booted')\n\t\t);\n\tif (existing) return { created: false, device: existing };\n\tconst types = parseIosDeviceTypes(\n\t\trequireCapturedSuccess(\n\t\t\tcapture([project.xcrun, 'simctl', 'list', 'devicetypes', '-j']),\n\t\t\t'iOS device-type discovery'\n\t\t)\n\t);\n\tconst type = preferredIphoneType(types);\n\tif (!type)\n\t\tthrow new Error('Xcode did not report an iPhone simulator type.');\n\tconst [udid] = requireCapturedSuccess(\n\t\tcapture([\n\t\t\tproject.xcrun,\n\t\t\t'simctl',\n\t\t\t'create',\n\t\t\tABSOLUTE_IOS_SIMULATOR_NAME,\n\t\t\ttype.identifier,\n\t\t\truntime.identifier\n\t\t]),\n\t\t'iOS simulator creation'\n\t).split(/\\s/u);\n\tif (!udid)\n\t\tthrow new Error('simctl did not return the created simulator UDID.');\n\n\treturn {\n\t\tcreated: true,\n\t\tdevice: {\n\t\t\tisAvailable: true,\n\t\t\tname: ABSOLUTE_IOS_SIMULATOR_NAME,\n\t\t\truntime: runtime.identifier,\n\t\t\tstate: 'Shutdown',\n\t\t\tudid\n\t\t}\n\t};\n};\n\nconst waitForBootedSimulator = async (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>,\n\tsleep: NonNullable<StartAbsoluteIosDevOptions['sleep']>,\n\tsignal?: AbortSignal\n) => {\n\tconst deadline = Date.now() + BOOT_TIMEOUT_MS;\n\tconst poll = async (): Promise<void> => {\n\t\tthrowIfAborted(signal);\n\t\tconst device = simulatorInventory(project.xcrun, capture).find(\n\t\t\t(candidate) => candidate.udid === udid\n\t\t);\n\t\tif (device?.state === 'Booted') return;\n\t\tif (Date.now() > deadline)\n\t\t\tthrow new Error(\n\t\t\t\t`iOS simulator ${udid} did not finish booting within ${BOOT_TIMEOUT_MS / 1_000}s.`\n\t\t\t);\n\t\tawait sleep(BOOT_POLL_MS);\n\n\t\tawait poll();\n\t};\n\n\treturn poll();\n};\n\nconst bootSimulator = (\n\tproject: AbsoluteIosDevProject,\n\tdevice: ReturnType<typeof parseIosSimulators>[number],\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tif (device.state === 'Booted') return;\n\trequireCapturedSuccess(\n\t\tcapture([project.xcrun, 'simctl', 'boot', device.udid]),\n\t\t'iOS simulator boot'\n\t);\n};\n\nconst installedAppIdentity = (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tconst result = capture([\n\t\tproject.xcrun,\n\t\t'simctl',\n\t\t'get_app_container',\n\t\tudid,\n\t\tproject.config.appId,\n\t\t'app'\n\t]);\n\n\treturn result.exitCode === 0 && result.stdout.trim()\n\t\t? result.stdout.trim()\n\t\t: undefined;\n};\n\nconst validatePhysicalIosDevice = (\n\tproject: AbsoluteIosDevProject,\n\tidentifier: string,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tconst result = capture([\n\t\tproject.xcrun,\n\t\t'devicectl',\n\t\t'device',\n\t\t'info',\n\t\t'details',\n\t\t'--device',\n\t\tidentifier\n\t]);\n\tif (result.exitCode !== 0)\n\t\tthrow new Error(\n\t\t\t`Physical iOS device ${JSON.stringify(identifier)} is unavailable: ${result.stderr.trim() || result.stdout.trim() || 'pair it in Xcode Device Hub, trust this Mac, unlock it, and enable Developer Mode.'}`\n\t\t);\n};\n\nconst physicalIosAppIsInstalled = (\n\tproject: AbsoluteIosDevProject,\n\tidentifier: string,\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>\n) => {\n\tconst result = capture([\n\t\tproject.xcrun,\n\t\t'devicectl',\n\t\t'device',\n\t\t'info',\n\t\t'apps',\n\t\t'--device',\n\t\tidentifier\n\t]);\n\n\treturn (\n\t\tresult.exitCode === 0 && result.stdout.includes(project.config.appId)\n\t);\n};\n\nconst buildIosDebugApp = async (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\tfingerprint: string,\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>,\n\tsignal?: AbortSignal\n) => {\n\tconst derivedDataPath = join(\n\t\tproject.projectRoot,\n\t\t'.absolutejs',\n\t\t'mobile',\n\t\t'ios-derived-data',\n\t\tcreateHash('sha256')\n\t\t\t.update(project.config.appId)\n\t\t\t.digest('hex')\n\t\t\t.slice(0, 16)\n\t);\n\tawait mkdir(derivedDataPath, { recursive: true });\n\tawait requireSuccess(\n\t\t[\n\t\t\tproject.xcodebuild,\n\t\t\t'-workspace',\n\t\t\tjoin(project.nativeDirectory, 'App', 'App.xcworkspace'),\n\t\t\t'-scheme',\n\t\t\t'App',\n\t\t\t'-configuration',\n\t\t\t'Debug',\n\t\t\t'-destination',\n\t\t\t`platform=iOS Simulator,id=${udid}`,\n\t\t\t'-derivedDataPath',\n\t\t\tderivedDataPath,\n\t\t\t'build'\n\t\t],\n\t\t'iOS simulator build',\n\t\trun,\n\t\t{ cwd: project.nativeDirectory, signal }\n\t);\n\tconst appPath = join(\n\t\tderivedDataPath,\n\t\t'Build',\n\t\t'Products',\n\t\t'Debug-iphonesimulator',\n\t\t'App.app'\n\t);\n\tif (!(await pathExists(appPath)))\n\t\tthrow new Error(\n\t\t\t`Xcode did not produce the simulator app at ${appPath}.`\n\t\t);\n\n\treturn appPath;\n};\n\nconst buildPhysicalIosDebugApp = async (\n\tproject: AbsoluteIosDevProject,\n\tidentifier: string,\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>,\n\tsignal?: AbortSignal\n) => {\n\tconst derivedDataPath = join(\n\t\tproject.projectRoot,\n\t\t'.absolutejs',\n\t\t'mobile',\n\t\t'ios-derived-data',\n\t\tcreateHash('sha256')\n\t\t\t.update(project.config.appId)\n\t\t\t.digest('hex')\n\t\t\t.slice(0, 16)\n\t);\n\tawait mkdir(derivedDataPath, { recursive: true });\n\tawait requireSuccess(\n\t\t[\n\t\t\tproject.xcodebuild,\n\t\t\t'-workspace',\n\t\t\tjoin(project.nativeDirectory, 'App', 'App.xcworkspace'),\n\t\t\t'-scheme',\n\t\t\t'App',\n\t\t\t'-configuration',\n\t\t\t'Debug',\n\t\t\t'-destination',\n\t\t\t`platform=iOS,id=${identifier}`,\n\t\t\t'-derivedDataPath',\n\t\t\tderivedDataPath,\n\t\t\t'-allowProvisioningUpdates',\n\t\t\t'build'\n\t\t],\n\t\t'iOS physical-device build (configure automatic signing and a Development Team in Xcode if this is the first run)',\n\t\trun,\n\t\t{ cwd: project.nativeDirectory, signal }\n\t);\n\tconst appPath = join(\n\t\tderivedDataPath,\n\t\t'Build',\n\t\t'Products',\n\t\t'Debug-iphoneos',\n\t\t'App.app'\n\t);\n\tif (!(await pathExists(appPath)))\n\t\tthrow new Error(\n\t\t\t`Xcode did not produce the physical-device app at ${appPath}.`\n\t\t);\n\n\treturn appPath;\n};\n\nconst ensurePhysicalIosDebugApp = async (options: {\n\tcache: IosNativeCache | null;\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>;\n\tfingerprint: string;\n\tidentifier: string;\n\tlog: NonNullable<StartAbsoluteIosDevOptions['log']>;\n\tproject: AbsoluteIosDevProject;\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>;\n\tsignal?: AbortSignal;\n\ttransition: (state: AbsoluteIosDevState) => void;\n}) => {\n\tconst cacheHit =\n\t\toptions.cache?.appId === options.project.config.appId &&\n\t\toptions.cache.fingerprint === options.fingerprint &&\n\t\toptions.cache.installations[options.identifier] ===\n\t\t\toptions.fingerprint &&\n\t\tphysicalIosAppIsInstalled(\n\t\t\toptions.project,\n\t\t\toptions.identifier,\n\t\t\toptions.capture\n\t\t);\n\tif (cacheHit) {\n\t\toptions.log(\n\t\t\t`iOS native app is unchanged on the selected physical device; skipped Xcode build and install.`\n\t\t);\n\n\t\treturn true;\n\t}\n\toptions.log(\n\t\t'iOS native inputs changed or the physical-device install is stale; rebuilding.'\n\t);\n\toptions.transition('building');\n\tconst appPath = await buildPhysicalIosDebugApp(\n\t\toptions.project,\n\t\toptions.identifier,\n\t\toptions.run,\n\t\toptions.signal\n\t);\n\tthrowIfAborted(options.signal);\n\toptions.transition('installing');\n\tawait requireSuccess(\n\t\t[\n\t\t\toptions.project.xcrun,\n\t\t\t'devicectl',\n\t\t\t'device',\n\t\t\t'install',\n\t\t\t'app',\n\t\t\t'--device',\n\t\t\toptions.identifier,\n\t\t\tappPath\n\t\t],\n\t\t'iOS physical-device app installation',\n\t\toptions.run,\n\t\t{ signal: options.signal }\n\t);\n\tawait writeNativeCache(options.project.projectRoot, {\n\t\tappId: options.project.config.appId,\n\t\tfingerprint: options.fingerprint,\n\t\tformat: NATIVE_CACHE_FORMAT,\n\t\tinstallations: {\n\t\t\t...(options.cache?.appId === options.project.config.appId\n\t\t\t\t? options.cache.installations\n\t\t\t\t: {}),\n\t\t\t[options.identifier]: options.fingerprint\n\t\t}\n\t}).catch((error) =>\n\t\toptions.log(\n\t\t\t`iOS native cache could not be saved: ${error instanceof Error ? error.message : String(error)}`\n\t\t)\n\t);\n\n\treturn false;\n};\n\nconst ensureIosDebugApp = async (options: {\n\tcache: IosNativeCache | null;\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>;\n\tfingerprint: string;\n\tlog: NonNullable<StartAbsoluteIosDevOptions['log']>;\n\tproject: AbsoluteIosDevProject;\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>;\n\tsignal?: AbortSignal;\n\ttransition: (state: AbsoluteIosDevState) => void;\n\tudid: string;\n}) => {\n\tconst installed = installedAppIdentity(\n\t\toptions.project,\n\t\toptions.udid,\n\t\toptions.capture\n\t);\n\tconst cacheHit =\n\t\toptions.cache?.appId === options.project.config.appId &&\n\t\toptions.cache.fingerprint === options.fingerprint &&\n\t\tinstalled !== undefined &&\n\t\toptions.cache.installations[options.udid] === installed;\n\tif (cacheHit) {\n\t\toptions.log(\n\t\t\t`iOS native app is unchanged on ${options.udid}; skipped Xcode build and install.`\n\t\t);\n\n\t\treturn true;\n\t}\n\toptions.log(\n\t\t'iOS native inputs changed or the installed app is stale; rebuilding.'\n\t);\n\toptions.transition('building');\n\tconst appPath = await buildIosDebugApp(\n\t\toptions.project,\n\t\toptions.udid,\n\t\toptions.fingerprint,\n\t\toptions.run,\n\t\toptions.signal\n\t);\n\tthrowIfAborted(options.signal);\n\toptions.transition('installing');\n\tawait requireSuccess(\n\t\t[options.project.xcrun, 'simctl', 'install', options.udid, appPath],\n\t\t'iOS simulator app installation',\n\t\toptions.run,\n\t\t{ signal: options.signal }\n\t);\n\tconst updated = installedAppIdentity(\n\t\toptions.project,\n\t\toptions.udid,\n\t\toptions.capture\n\t);\n\tif (updated) {\n\t\tawait writeNativeCache(options.project.projectRoot, {\n\t\t\tappId: options.project.config.appId,\n\t\t\tfingerprint: options.fingerprint,\n\t\t\tformat: NATIVE_CACHE_FORMAT,\n\t\t\tinstallations: { [options.udid]: updated }\n\t\t}).catch((error) =>\n\t\t\toptions.log(\n\t\t\t\t`iOS native cache could not be saved: ${error instanceof Error ? error.message : String(error)}`\n\t\t\t)\n\t\t);\n\t}\n\n\treturn false;\n};\n\nconst SECRET_VALUE =\n\t/((?:authorization|cookie|password|secret|token|oauth[_-]?code)\\s*[:=]\\s*)([^\\s,;]+)/giu;\nconst BEARER_VALUE = new RegExp(\n\tString.raw`\\bBearer\\s+[A-Za-z0-9._~+/-]+=*`,\n\t'giu'\n);\nconst JWT_VALUE = /\\beyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b/gu;\nconst IOS_LOG_PATTERN = new RegExp(\n\tString.raw`\\s(Debug|Info|Notice|Error|Fault)\\s+.*?\\[[^\\]]+\\]\\s+\\[([^\\]]+)\\]\\s*(.*)$`,\n\t'iu'\n);\n\nexport const parseAbsoluteIosLogLine = (\n\tline: string\n): AbsoluteIosNativeLogEntry | null => {\n\tconst sanitized = redactAbsoluteIosLog(line).trim();\n\tif (!sanitized) return null;\n\tconst match = IOS_LOG_PATTERN.exec(sanitized);\n\tconst candidate = match?.[1]?.toLowerCase();\n\tconst level =\n\t\tcandidate === 'debug' ||\n\t\tcandidate === 'error' ||\n\t\tcandidate === 'fault' ||\n\t\tcandidate === 'notice'\n\t\t\t? candidate\n\t\t\t: 'info';\n\n\treturn {\n\t\tlevel,\n\t\tmessage: match?.[3]?.trim() || sanitized,\n\t\ttag: match?.[2]?.trim() || 'App'\n\t};\n};\nexport const redactAbsoluteIosLog = (value: string) =>\n\tvalue\n\t\t.replaceAll(BEARER_VALUE, 'Bearer [REDACTED]')\n\t\t.replaceAll(JWT_VALUE, '[REDACTED_JWT]')\n\t\t.replaceAll(SECRET_VALUE, '$1[REDACTED]')\n\t\t.replaceAll(/\\p{C}/gu, '');\n\nconst attachNativeLogs = (\n\tproject: AbsoluteIosDevProject,\n\tudid: string,\n\toptions: StartAbsoluteIosDevOptions\n) => {\n\tif (!options.nativeLog) return null;\n\tconst start = options.startNativeLogs ?? defaultStartNativeLogs;\n\tconst command = options.deviceIdentifier\n\t\t? [\n\t\t\t\tproject.xcrun,\n\t\t\t\t'devicectl',\n\t\t\t\t'device',\n\t\t\t\t'process',\n\t\t\t\t'launch',\n\t\t\t\t'--console',\n\t\t\t\t'--terminate-existing',\n\t\t\t\t'--device',\n\t\t\t\tudid,\n\t\t\t\tproject.config.appId\n\t\t\t]\n\t\t: [\n\t\t\t\tproject.xcrun,\n\t\t\t\t'simctl',\n\t\t\t\t'spawn',\n\t\t\t\tudid,\n\t\t\t\t'log',\n\t\t\t\t'stream',\n\t\t\t\t'--style',\n\t\t\t\t'compact',\n\t\t\t\t'--level',\n\t\t\t\t'debug',\n\t\t\t\t'--predicate',\n\t\t\t\t'process == \"App\"'\n\t\t\t];\n\n\treturn start(command, { signal: options.signal }, (line) => {\n\t\tconst entry = parseAbsoluteIosLogLine(line);\n\t\tif (entry) options.nativeLog?.(entry);\n\t});\n};\n\nconst IOS_TIMING_PHASES: Array<[string, string]> = [\n\t['syncing', 'Capacitor sync'],\n\t['configuring', 'dev config'],\n\t['fingerprinting', 'fingerprint'],\n\t['booting', 'simulator'],\n\t['connecting', 'device ready'],\n\t['enrolling-trust', 'HTTPS trust'],\n\t['checking-native', 'app check'],\n\t['building', 'Xcode'],\n\t['installing', 'install'],\n\t['launching', 'launch'],\n\t['streaming-logs', 'logs']\n];\n\nconst timingSummary = (timings: Record<string, number>) =>\n\tIOS_TIMING_PHASES.map(([phase, label]) => {\n\t\tconst duration = timings[phase];\n\n\t\treturn duration === undefined\n\t\t\t? null\n\t\t\t: `${label} ${getDurationString(duration)}`;\n\t})\n\t\t.filter((value): value is string => value !== null)\n\t\t.join(', ');\n\nexport const prepareAbsoluteIosDevProject = async (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\toptions: PrepareAbsoluteIosDevOptions\n): Promise<AbsoluteIosDevProject> => {\n\tif (detectAbsoluteMobileHost() !== 'macos')\n\t\tthrow new Error('iOS development requires macOS and Xcode.');\n\tconst target = options.target ?? 'simulator';\n\tconst projectRoot = resolve(options.projectRoot);\n\tconst checks = await inspectAbsoluteMobileToolchain({ host: 'macos' });\n\tconst failed = checks.filter(\n\t\t(check) =>\n\t\t\tcheck.platform === 'ios' &&\n\t\t\t!(target === 'device' && check.id === 'ios.runtime') &&\n\t\t\t(check.status === 'fail' || check.status === 'warn')\n\t);\n\tif (failed.length > 0)\n\t\tthrow new Error(\n\t\t\t`iOS ${target} development is not ready: ${failed.map(({ label }) => label).join(', ')}.`\n\t\t);\n\tconst xcrun = checks.find((check) => check.id === 'ios.xcrun')?.path;\n\tconst xcodebuild = checks.find(\n\t\t(check) => check.id === 'ios.xcodebuild'\n\t)?.path;\n\tif (!xcrun || !xcodebuild)\n\t\tthrow new Error('Xcode tools disappeared after readiness checks.');\n\tconst cap = join(projectRoot, 'node_modules', '.bin', 'cap');\n\tif (!(await pathExists(cap)))\n\t\tthrow new Error(\n\t\t\t'Capacitor CLI is not installed. Run absolute mobile init first.'\n\t\t);\n\tawait writeAbsoluteCapacitorConfig(config, { projectRoot });\n\tawait mkdir(config.bundleDirectory, { recursive: true });\n\tconst placeholder = join(config.bundleDirectory, 'index.html');\n\tif (!(await pathExists(placeholder)))\n\t\tawait writeFile(\n\t\t\tplaceholder,\n\t\t\t'<!doctype html><title>AbsoluteJS mobile development</title>\\n'\n\t\t);\n\tconst nativeDirectory = join(config.nativeProjectDirectory, 'ios');\n\tif (!(await pathExists(nativeDirectory))) {\n\t\tif (!options.createNativeProject)\n\t\t\tthrow new Error('iOS native project has not been created.');\n\t\tconst run = options.run ?? defaultRun;\n\t\tif ((await run([cap, 'add', 'ios'], { cwd: projectRoot })) !== 0)\n\t\t\tthrow new Error('Capacitor iOS project creation failed.');\n\t}\n\n\treturn {\n\t\tcap,\n\t\tconfig,\n\t\tnativeDirectory,\n\t\tprojectRoot,\n\t\txcodebuild,\n\t\txcrun\n\t};\n};\n\nconst preparePhysicalIosTarget = async (options: {\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>;\n\tdeviceIdentifier: string;\n\tlog: NonNullable<StartAbsoluteIosDevOptions['log']>;\n\tproject: AbsoluteIosDevProject;\n\tserverHost: string;\n\tstartOptions: StartAbsoluteIosDevOptions;\n\ttransition: (state: AbsoluteIosDevState) => void;\n}) => {\n\toptions.transition('connecting');\n\tvalidatePhysicalIosDevice(\n\t\toptions.project,\n\t\toptions.deviceIdentifier,\n\t\toptions.capture\n\t);\n\tif (!options.startOptions.https)\n\t\treturn {\n\t\t\tcaEnrollmentServer: null,\n\t\t\tstartedSimulator: false,\n\t\t\tudid: options.deviceIdentifier\n\t\t};\n\tif (!options.startOptions.certificateAuthorityPath)\n\t\tthrow new Error(\n\t\t\t'Physical iOS HTTPS development requires the AbsoluteJS development CA certificate.'\n\t\t);\n\toptions.transition('enrolling-trust');\n\tconst startEnrollment =\n\t\toptions.startOptions.startCaEnrollmentServer ??\n\t\tstartAbsoluteIosCaEnrollmentServer;\n\tconst caEnrollmentServer = await startEnrollment({\n\t\tcertificateAuthorityPath: options.startOptions.certificateAuthorityPath,\n\t\tdisplayHost: options.serverHost\n\t});\n\toptions.log(\n\t\t`On the iOS device, open ${caEnrollmentServer.url}, install the AbsoluteJS development CA profile, then enable it under Settings > General > About > Certificate Trust Settings. This public CA endpoint exists only for this dev session.`\n\t);\n\n\treturn {\n\t\tcaEnrollmentServer,\n\t\tstartedSimulator: false,\n\t\tudid: options.deviceIdentifier\n\t};\n};\n\nconst prepareIosSimulatorTarget = async (options: {\n\tcapture: NonNullable<StartAbsoluteIosDevOptions['capture']>;\n\tlog: NonNullable<StartAbsoluteIosDevOptions['log']>;\n\tproject: AbsoluteIosDevProject;\n\trun: NonNullable<StartAbsoluteIosDevOptions['run']>;\n\tsleep: NonNullable<StartAbsoluteIosDevOptions['sleep']>;\n\tspawn: NonNullable<StartAbsoluteIosDevOptions['spawn']>;\n\tstartOptions: StartAbsoluteIosDevOptions;\n\ttransition: (state: AbsoluteIosDevState) => void;\n}) => {\n\toptions.transition('booting');\n\tconst managed = await ensureManagedSimulator(\n\t\toptions.project,\n\t\toptions.capture\n\t);\n\tconst { device } = managed;\n\tconst startedSimulator = managed.created || device.state !== 'Booted';\n\tbootSimulator(options.project, device, options.capture);\n\toptions.spawn([\n\t\t'open',\n\t\t'-a',\n\t\t'Simulator',\n\t\t'--args',\n\t\t'-CurrentDeviceUDID',\n\t\tdevice.udid\n\t]);\n\toptions.transition('connecting');\n\tawait waitForBootedSimulator(\n\t\toptions.project,\n\t\tdevice.udid,\n\t\toptions.capture,\n\t\toptions.sleep,\n\t\toptions.startOptions.signal\n\t);\n\tawait requireSuccess(\n\t\t[options.project.xcrun, 'simctl', 'bootstatus', device.udid, '-b'],\n\t\t'iOS simulator boot readiness',\n\t\toptions.run,\n\t\t{ signal: options.startOptions.signal }\n\t);\n\tawait trustIosSimulatorDevelopmentCa(\n\t\toptions.startOptions,\n\t\tdevice.udid,\n\t\toptions.run,\n\t\toptions.log\n\t);\n\n\treturn { caEnrollmentServer: null, startedSimulator, udid: device.udid };\n};\n\nexport const startAbsoluteIosDevSession = async (\n\toptions: StartAbsoluteIosDevOptions\n): Promise<AbsoluteIosDevSession> => {\n\tconst { project } = options;\n\tconst deviceIdentifier = options.deviceIdentifier\n\t\t? normalizeAbsoluteIosDeviceIdentifier(options.deviceIdentifier)\n\t\t: undefined;\n\tconst targetKind = deviceIdentifier ? 'device' : 'simulator';\n\tconst serverHost = deviceIdentifier\n\t\t? normalizeAbsoluteIosDeviceHost(options.serverHost ?? '')\n\t\t: 'localhost';\n\tconst capture = options.capture ?? defaultCapture;\n\tconst run = options.run ?? defaultRun;\n\tconst sleep = options.sleep ?? Bun.sleep;\n\tconst spawn = options.spawn ?? defaultSpawn;\n\tconst log = options.log ?? console.log;\n\tconst startedAt = performance.now();\n\tlet phaseStartedAt = performance.now();\n\tconst timings: Record<string, number> = {};\n\tlet state: AbsoluteIosDevState = 'syncing';\n\tconst transition = (next: AbsoluteIosDevState) => {\n\t\tif (next === state) {\n\t\t\toptions.onStateChange?.(next);\n\n\t\t\treturn;\n\t\t}\n\t\tconst now = performance.now();\n\t\tconst durationMs = now - phaseStartedAt;\n\t\ttimings[state] = (timings[state] ?? 0) + durationMs;\n\t\toptions.onPhaseTiming?.({\n\t\t\tdurationMs,\n\t\t\tphase: state,\n\t\t\ttotalMs: now - startedAt\n\t\t});\n\t\tstate = next;\n\t\tphaseStartedAt = now;\n\t\toptions.onStateChange?.(next);\n\t};\n\tlet nativeLogs: AbsoluteIosLogStream | null = null;\n\tlet caEnrollmentServer: AbsoluteIosCaEnrollmentServer | null = null;\n\tconst closeLogs = async () => {\n\t\tconst stream = nativeLogs;\n\t\tnativeLogs = null;\n\t\tawait stream?.close().catch(() => undefined);\n\t};\n\tconst relaunchTarget = async (udid: string) => {\n\t\tif (deviceIdentifier && options.nativeLog) {\n\t\t\tawait closeLogs();\n\t\t\tnativeLogs = attachNativeLogs(project, udid, options);\n\n\t\t\treturn;\n\t\t}\n\t\tawait requireSuccess(\n\t\t\tiosLaunchCommand(project, udid, deviceIdentifier !== undefined),\n\t\t\t'iOS app relaunch',\n\t\t\trun,\n\t\t\t{ signal: options.signal }\n\t\t);\n\t};\n\ttry {\n\t\tawait repairAbsoluteIosDevSession(project.projectRoot);\n\t\tthrowIfAborted(options.signal);\n\t\ttransition('syncing');\n\t\tawait requireSuccess(\n\t\t\t[project.cap, 'sync', 'ios'],\n\t\t\t'Capacitor iOS synchronization',\n\t\t\trun,\n\t\t\t{ cwd: project.projectRoot, signal: options.signal }\n\t\t);\n\t\ttransition('configuring');\n\t\tawait writeDevProjection(\n\t\t\tproject,\n\t\t\toptions.port,\n\t\t\toptions.https === true,\n\t\t\tserverHost\n\t\t);\n\t\tthrowIfAborted(options.signal);\n\t\tconst fingerprintStartedAt = performance.now();\n\t\tconst fingerprintPromise = fingerprintAbsoluteIosDevProject(\n\t\t\tproject\n\t\t).then((fingerprint) => {\n\t\t\ttimings.fingerprinting = performance.now() - fingerprintStartedAt;\n\n\t\t\treturn fingerprint;\n\t\t});\n\t\tconst target = deviceIdentifier\n\t\t\t? await preparePhysicalIosTarget({\n\t\t\t\t\tcapture,\n\t\t\t\t\tdeviceIdentifier,\n\t\t\t\t\tlog,\n\t\t\t\t\tproject,\n\t\t\t\t\tserverHost,\n\t\t\t\t\tstartOptions: options,\n\t\t\t\t\ttransition\n\t\t\t\t})\n\t\t\t: await prepareIosSimulatorTarget({\n\t\t\t\t\tcapture,\n\t\t\t\t\tlog,\n\t\t\t\t\tproject,\n\t\t\t\t\trun,\n\t\t\t\t\tsleep,\n\t\t\t\t\tspawn,\n\t\t\t\t\tstartOptions: options,\n\t\t\t\t\ttransition\n\t\t\t\t});\n\t\tconst {\n\t\t\tcaEnrollmentServer: targetCaEnrollmentServer,\n\t\t\tstartedSimulator,\n\t\t\tudid\n\t\t} = target;\n\t\tcaEnrollmentServer = targetCaEnrollmentServer;\n\t\tconst fingerprint = await fingerprintPromise;\n\t\ttransition('checking-native');\n\t\tconst cache = await readNativeCache(project.projectRoot);\n\t\tconst nativeCacheHit = deviceIdentifier\n\t\t\t? await ensurePhysicalIosDebugApp({\n\t\t\t\t\tcache,\n\t\t\t\t\tcapture,\n\t\t\t\t\tfingerprint,\n\t\t\t\t\tidentifier: deviceIdentifier,\n\t\t\t\t\tlog,\n\t\t\t\t\tproject,\n\t\t\t\t\trun,\n\t\t\t\t\tsignal: options.signal,\n\t\t\t\t\ttransition\n\t\t\t\t})\n\t\t\t: await ensureIosDebugApp({\n\t\t\t\t\tcache,\n\t\t\t\t\tcapture,\n\t\t\t\t\tfingerprint,\n\t\t\t\t\tlog,\n\t\t\t\t\tproject,\n\t\t\t\t\trun,\n\t\t\t\t\tsignal: options.signal,\n\t\t\t\t\ttransition,\n\t\t\t\t\tudid\n\t\t\t\t});\n\t\tthrowIfAborted(options.signal);\n\t\tif (options.nativeLog) transition('streaming-logs');\n\t\tnativeLogs = attachNativeLogs(project, udid, options);\n\t\ttransition('launching');\n\t\tif (!deviceIdentifier || !nativeLogs)\n\t\t\tawait requireSuccess(\n\t\t\t\tiosLaunchCommand(project, udid, deviceIdentifier !== undefined),\n\t\t\t\t'iOS app launch',\n\t\t\t\trun,\n\t\t\t\t{ signal: options.signal }\n\t\t\t);\n\t\ttransition('ready');\n\t\ttimings.total = performance.now() - startedAt;\n\t\tlog(\n\t\t\t`iOS ${targetKind} connected with HMR on port ${options.port} in ${getDurationString(timings.total)} (${nativeCacheHit ? 'native cache hit' : 'native build installed'}).`\n\t\t);\n\t\tlog(`iOS startup: ${timingSummary(timings)}.`);\n\t\tlet closed = false;\n\t\tconst close = async () => {\n\t\t\tif (closed) return;\n\t\t\tclosed = true;\n\t\t\ttransition('closing');\n\t\t\tawait closeLogs();\n\t\t\tawait caEnrollmentServer?.close().catch(() => undefined);\n\t\t\tcaEnrollmentServer = null;\n\t\t\tawait repairAbsoluteIosDevSession(project.projectRoot);\n\t\t\ttransition('closed');\n\t\t};\n\n\t\treturn {\n\t\t\tclose,\n\t\t\tnativeCacheHit,\n\t\t\tstartedSimulator,\n\t\t\ttargetKind,\n\t\t\ttimings: { ...timings },\n\t\t\tudid,\n\t\t\trebuild: async () => {\n\t\t\t\tif (closed)\n\t\t\t\t\tthrow new Error('iOS development session is closed.');\n\t\t\t\tlog(\n\t\t\t\t\t'iOS native inputs changed; rebuilding without restarting the dev server.'\n\t\t\t\t);\n\t\t\t\tawait close();\n\n\t\t\t\treturn startAbsoluteIosDevSession(options);\n\t\t\t},\n\t\t\trelaunch: async () => {\n\t\t\t\tif (closed)\n\t\t\t\t\tthrow new Error('iOS development session is closed.');\n\t\t\t\ttransition('launching');\n\t\t\t\ttry {\n\t\t\t\t\tawait relaunchTarget(udid);\n\t\t\t\t\ttransition('ready');\n\t\t\t\t\tlog(`iOS app relaunched on the selected ${targetKind}.`);\n\t\t\t\t} catch (error) {\n\t\t\t\t\ttransition('failed');\n\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t\tscreenshot: async (destination) => {\n\t\t\t\tif (deviceIdentifier)\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Physical iOS screenshots are captured in Xcode Device Hub; the CLI never records a device screen automatically.'\n\t\t\t\t\t);\n\t\t\t\tconst resolved = resolve(project.projectRoot, destination);\n\t\t\t\tif (!isInside(project.projectRoot, resolved))\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'iOS screenshot destination must remain inside the project.'\n\t\t\t\t\t);\n\t\t\t\tawait mkdir(dirname(resolved), { recursive: true });\n\t\t\t\tawait requireSuccess(\n\t\t\t\t\t[\n\t\t\t\t\t\tproject.xcrun,\n\t\t\t\t\t\t'simctl',\n\t\t\t\t\t\t'io',\n\t\t\t\t\t\tudid,\n\t\t\t\t\t\t'screenshot',\n\t\t\t\t\t\tresolved\n\t\t\t\t\t],\n\t\t\t\t\t'iOS simulator screenshot',\n\t\t\t\t\trun,\n\t\t\t\t\t{ signal: options.signal }\n\t\t\t\t);\n\n\t\t\t\treturn resolved;\n\t\t\t},\n\t\t\tget state() {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\ttransition('failed');\n\t\tawait closeLogs();\n\t\tawait caEnrollmentServer?.close().catch(() => undefined);\n\t\tawait repairAbsoluteIosDevSession(project.projectRoot);\n\n\t\tthrow error;\n\t}\n};\n",
25
+ "import { randomUUID, X509Certificate } from 'node:crypto';\nimport { createServer, type Server as HttpServer } from 'node:http';\nimport {\n\tconnect as connectTcp,\n\tcreateServer as createTcpServer,\n\tisIP,\n\ttype Server as TcpServer\n} from 'node:net';\nimport { readFile } from 'node:fs/promises';\n\nexport type AbsoluteIosCloseableServer = {\n\tclose: () => Promise<void>;\n};\n\nexport type AbsoluteIosCaEnrollmentServer = AbsoluteIosCloseableServer & {\n\turl: string;\n};\n\nconst closeServer = (server: HttpServer | TcpServer) =>\n\tnew Promise<void>((resolve, reject) => {\n\t\tserver.close((error) => {\n\t\t\tif (error) reject(error);\n\t\t\telse resolve();\n\t\t});\n\t});\n\nconst listen = (server: HttpServer | TcpServer, port: number) =>\n\tnew Promise<number>((resolve, reject) => {\n\t\tserver.once('error', reject);\n\t\tserver.listen(port, '0.0.0.0', () => {\n\t\t\tserver.off('error', reject);\n\t\t\tconst address = server.address();\n\t\t\tif (!address || typeof address === 'string') {\n\t\t\t\treject(\n\t\t\t\t\tnew Error('Could not determine the iOS device helper port.')\n\t\t\t\t);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolve(address.port);\n\t\t});\n\t});\n\nconst findEphemeralPort = async () => {\n\tconst probe = createTcpServer();\n\tconst port = await new Promise<number>((resolve, reject) => {\n\t\tprobe.once('error', reject);\n\t\tprobe.listen(0, '127.0.0.1', () => {\n\t\t\tconst address = probe.address();\n\t\t\tif (!address || typeof address === 'string') {\n\t\t\t\treject(\n\t\t\t\t\tnew Error('Could not allocate the iOS CA enrollment port.')\n\t\t\t\t);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolve(address.port);\n\t\t});\n\t});\n\tawait closeServer(probe);\n\n\treturn port;\n};\n\nexport const normalizeAbsoluteIosDeviceHost = (value: string) => {\n\tconst normalized = value.trim();\n\tif (!normalized || normalized.length > 253 || /[\\0\\s/?#]/u.test(normalized))\n\t\tthrow new TypeError(\n\t\t\t'Physical iOS development requires a valid LAN host.'\n\t\t);\n\n\treturn normalized;\n};\nexport const normalizeAbsoluteIosDeviceIdentifier = (value: string) => {\n\tconst normalized = value.trim();\n\tif (!normalized || normalized.length > 256 || /[\\0\\r\\n]/u.test(normalized))\n\t\tthrow new TypeError(\n\t\t\t'--ios-device requires a valid Xcode device identifier or name.'\n\t\t);\n\n\treturn normalized;\n};\n\nconst urlForHost = (protocol: 'http' | 'https', host: string, port: number) => {\n\tconst url = new URL(`${protocol}://localhost:${port}`);\n\tconst normalizedHost = normalizeAbsoluteIosDeviceHost(host);\n\turl.hostname =\n\t\tisIP(normalizedHost) === 6 ? `[${normalizedHost}]` : normalizedHost;\n\n\treturn url;\n};\n\nexport const startAbsoluteIosCaEnrollmentServer = async (options: {\n\tcertificateAuthorityPath: string;\n\tdisplayHost: string;\n}): Promise<AbsoluteIosCaEnrollmentServer> => {\n\tconst certificate = new X509Certificate(\n\t\tawait readFile(options.certificateAuthorityPath)\n\t);\n\tconst certificateBytes = certificate.raw;\n\tconst token = randomUUID().replaceAll('-', '');\n\tconst certificatePath = `/${token}/absolutejs-development-ca.cer`;\n\tconst server = createServer((request, response) => {\n\t\tif (request.method !== 'GET' || request.url !== certificatePath) {\n\t\t\tresponse.writeHead(404, {\n\t\t\t\t'Cache-Control': 'no-store',\n\t\t\t\t'Content-Type': 'text/plain; charset=utf-8'\n\t\t\t});\n\t\t\tresponse.end('Not found.');\n\n\t\t\treturn;\n\t\t}\n\t\tresponse.writeHead(200, {\n\t\t\t'Cache-Control': 'no-store',\n\t\t\t'Content-Disposition':\n\t\t\t\t'attachment; filename=\"absolutejs-development-ca.cer\"',\n\t\t\t'Content-Length': String(certificateBytes.byteLength),\n\t\t\t'Content-Type': 'application/x-x509-ca-cert',\n\t\t\t'X-Content-Type-Options': 'nosniff'\n\t\t});\n\t\tresponse.end(certificateBytes);\n\t});\n\tconst port = await findEphemeralPort();\n\tawait listen(server, port);\n\tconst url = urlForHost('http', options.displayHost, port);\n\turl.pathname = certificatePath;\n\n\treturn {\n\t\turl: url.href,\n\t\tclose: () => closeServer(server)\n\t};\n};\n\nexport const startAbsoluteIosTcpRelay = async (options: {\n\tlistenPort: number;\n\ttargetPort: number;\n}): Promise<AbsoluteIosCloseableServer> => {\n\tconst server = createTcpServer((downstream) => {\n\t\tconst upstream = connectTcp({\n\t\t\thost: '127.0.0.1',\n\t\t\tport: options.targetPort\n\t\t});\n\t\tdownstream.pipe(upstream);\n\t\tupstream.pipe(downstream);\n\t\tconst closePeer = () => {\n\t\t\tdownstream.destroy();\n\t\t\tupstream.destroy();\n\t\t};\n\t\tdownstream.once('error', closePeer);\n\t\tupstream.once('error', closePeer);\n\t});\n\tawait listen(server, options.listenPort);\n\n\treturn { close: () => closeServer(server) };\n};\n",
25
26
  "import { watch, type FSWatcher } from 'node:fs';\nimport { basename } from 'node:path';\nimport {\n\tfingerprintAbsoluteIosDevProject,\n\ttype AbsoluteIosDevProject\n} from './iosSimulatorController';\n\nconst NATIVE_CHANGE_DEBOUNCE_MS = 500;\nconst ROOT_NATIVE_INPUTS = new Set([\n\t'absolute.config.js',\n\t'absolute.config.mjs',\n\t'absolute.config.ts',\n\t'absolutejs.config.js',\n\t'absolutejs.config.mjs',\n\t'absolutejs.config.ts',\n\t'bun.lock',\n\t'bun.lockb',\n\t'capacitor.config.js',\n\t'capacitor.config.ts',\n\t'package.json'\n]);\n\nexport type AbsoluteIosNativeChange = {\n\tafterFingerprint: string;\n\tbeforeFingerprint: string;\n\tpaths: string[];\n\trootInputChanged: boolean;\n};\n\nexport type AbsoluteIosNativeWatcher = { close: () => void };\n\nexport type AbsoluteIosNativeWatcherOptions = {\n\tdebounceMs?: number;\n\tonChange: (change: AbsoluteIosNativeChange) => Promise<void>;\n\tonError?: (error: unknown) => void;\n\tproject: AbsoluteIosDevProject;\n\tsignal?: AbortSignal;\n};\n\nexport const createAbsoluteIosNativeWatcher = async (\n\toptions: AbsoluteIosNativeWatcherOptions\n): Promise<AbsoluteIosNativeWatcher> => {\n\tlet fingerprint = await fingerprintAbsoluteIosDevProject(options.project);\n\tlet closed = false;\n\tlet running = false;\n\tlet timer: ReturnType<typeof setTimeout> | undefined;\n\tlet rootInputChanged = false;\n\tconst changedPaths = new Set<string>();\n\tconst watchers: FSWatcher[] = [];\n\tconst debounceMs = options.debounceMs ?? NATIVE_CHANGE_DEBOUNCE_MS;\n\n\tconst close = () => {\n\t\tif (closed) return;\n\t\tclosed = true;\n\t\tif (timer) clearTimeout(timer);\n\t\twatchers.forEach((watcher) => watcher.close());\n\t\toptions.signal?.removeEventListener('abort', close);\n\t};\n\tconst schedule = () => {\n\t\tif (closed || running) return;\n\t\tif (timer) clearTimeout(timer);\n\t\ttimer = setTimeout(() => void flush(), debounceMs);\n\t};\n\tconst flush = async () => {\n\t\ttimer = undefined;\n\t\tif (closed || running || changedPaths.size === 0) return;\n\t\trunning = true;\n\t\tconst paths = [...changedPaths].sort();\n\t\tconst forced = rootInputChanged;\n\t\tchangedPaths.clear();\n\t\trootInputChanged = false;\n\t\ttry {\n\t\t\tconst next = await fingerprintAbsoluteIosDevProject(\n\t\t\t\toptions.project\n\t\t\t);\n\t\t\tif (!forced && next === fingerprint) return;\n\t\t\tawait options.onChange({\n\t\t\t\tafterFingerprint: next,\n\t\t\t\tbeforeFingerprint: fingerprint,\n\t\t\t\tpaths,\n\t\t\t\trootInputChanged: forced\n\t\t\t});\n\t\t\tfingerprint = await fingerprintAbsoluteIosDevProject(\n\t\t\t\toptions.project\n\t\t\t);\n\t\t} catch (error) {\n\t\t\toptions.onError?.(error);\n\t\t} finally {\n\t\t\trunning = false;\n\t\t\tif (changedPaths.size > 0) schedule();\n\t\t}\n\t};\n\tconst record = (path: string, force: boolean) => {\n\t\tif (closed) return;\n\t\tchangedPaths.add(path);\n\t\trootInputChanged ||= force;\n\t\tschedule();\n\t};\n\n\twatchers.push(\n\t\twatch(\n\t\t\toptions.project.nativeDirectory,\n\t\t\t{ recursive: true },\n\t\t\t(_event, filename) => {\n\t\t\t\tif (filename) record(String(filename), false);\n\t\t\t}\n\t\t)\n\t);\n\twatchers.push(\n\t\twatch(options.project.projectRoot, (_event, filename) => {\n\t\t\tif (!filename) return;\n\t\t\tconst path = String(filename);\n\t\t\tif (isAbsoluteIosNativeRootInput(path)) record(path, true);\n\t\t})\n\t);\n\twatchers.forEach((watcher) =>\n\t\twatcher.on('error', (error) => options.onError?.(error))\n\t);\n\toptions.signal?.addEventListener('abort', close, { once: true });\n\n\treturn { close };\n};\nexport const isAbsoluteIosNativeRootInput = (path: string) =>\n\tROOT_NATIVE_INPUTS.has(basename(path));\n",
26
- "/* eslint-disable @typescript-eslint/consistent-type-assertions, absolute/max-depth-extended, no-await-in-loop -- This module validates persisted/remote input and consumes protocol streams sequentially. */\nimport { createHash, randomUUID } from 'node:crypto';\nimport { chmod, mkdir, readFile, rename, writeFile } from 'node:fs/promises';\nimport { homedir } from 'node:os';\nimport {\n\tdirname,\n\tisAbsolute,\n\tjoin,\n\tposix,\n\trelative,\n\tresolve as resolvePath,\n\tsep\n} from 'node:path';\nimport type { MobileConfig } from '../../types/build';\nimport type { FileSink } from 'bun';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport type {\n\tAbsoluteIosDevPhaseTiming,\n\tAbsoluteIosDevSession,\n\tAbsoluteIosDevState,\n\tAbsoluteIosNativeLogEntry\n} from './iosSimulatorController';\nimport {\n\tABSOLUTE_REMOTE_MAC_EVENT_PREFIX,\n\tABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION\n} from './remoteMacWire';\nexport {\n\tABSOLUTE_REMOTE_MAC_EVENT_PREFIX,\n\tABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION\n} from './remoteMacWire';\n\nconst PROFILE_FORMAT = 1;\nconst REMOTE_STDIN_FLUSH_ATTEMPTS = 3;\nconst PROFILE_NAME = /^[a-z0-9](?:[a-z0-9._-]{0,62}[a-z0-9])?$/u;\nconst SSH_DESTINATION = /^(?:[A-Za-z0-9._-]+@)?[A-Za-z0-9._:-]+$/u;\n\nexport type AbsoluteRemoteMacProfile = {\n\tbunPath: string;\n\tcreatedAt: string;\n\tdestination: string;\n\tname: string;\n\tport?: number;\n\tworkspaceRoot: string;\n\txcodeVersion: string;\n};\n\ntype ProfileStore = {\n\tdefaultProfile?: string;\n\tformat: number;\n\tprofiles: Record<string, AbsoluteRemoteMacProfile>;\n};\n\nexport type AbsoluteRemoteMacInspection = {\n\tbunPath: string;\n\thome: string;\n\tos: string;\n\txcodeVersion: string;\n};\n\nexport type AbsoluteRemoteIosDevProject = {\n\tcap: string;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\tnativeDirectory: string;\n\tprojectRoot: string;\n\tprofile: AbsoluteRemoteMacProfile;\n\tremoteProjectRoot: string;\n\tremote: true;\n\txcodebuild: string;\n\txcrun: string;\n};\n\nexport type AbsoluteIosDevelopmentProject =\n\t| AbsoluteRemoteIosDevProject\n\t| (import('./iosSimulatorController').AbsoluteIosDevProject & {\n\t\t\tremote?: false;\n\t });\n\nexport type AbsoluteRemoteMacCommandResult = {\n\texitCode: number;\n\tstderr: string;\n\tstdout: string;\n};\n\nexport type AbsoluteRemoteMacTransport = {\n\tcapture: (command: string[]) => Promise<AbsoluteRemoteMacCommandResult>;\n\tspawn: (\n\t\tcommand: string[],\n\t\toptions: { signal?: AbortSignal }\n\t) => {\n\t\texited: Promise<number>;\n\t\tkill: () => void;\n\t\tstderr: ReadableStream<Uint8Array>;\n\t\tstdin: FileSink;\n\t\tstdout: ReadableStream<Uint8Array>;\n\t};\n};\n\nexport type AbsoluteRemoteIosOptions = {\n\thttps?: boolean;\n\tlog?: (message: string) => void;\n\tnativeLog?: (entry: AbsoluteIosNativeLogEntry) => void;\n\tonPhaseTiming?: (timing: AbsoluteIosDevPhaseTiming) => void;\n\tonStateChange?: (state: AbsoluteIosDevState) => void;\n\tport: number;\n\tproject: AbsoluteRemoteIosDevProject;\n\tsignal?: AbortSignal;\n\tinstallAgent?: (\n\t\tproject: AbsoluteRemoteIosDevProject\n\t) => Promise<{ remotePath: string; uploaded?: boolean }>;\n\tsyncProject?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;\n\ttransport?: AbsoluteRemoteMacTransport;\n};\n\ntype RemoteEvent =\n\t| { entry: AbsoluteIosNativeLogEntry; type: 'native-log'; v: 1 }\n\t| { error: string; type: 'fatal'; v: 1 }\n\t| { message: string; type: 'log'; v: 1 }\n\t| { state: AbsoluteIosDevState; type: 'state'; v: 1 }\n\t| ({ type: 'timing'; v: 1 } & AbsoluteIosDevPhaseTiming)\n\t| {\n\t\t\tid: string;\n\t\t\tok: boolean;\n\t\t\tresult?: unknown;\n\t\t\terror?: string;\n\t\t\ttype: 'response';\n\t\t\tv: 1;\n\t }\n\t| {\n\t\t\tnativeCacheHit: boolean;\n\t\t\tstartedSimulator: boolean;\n\t\t\ttimings: Record<string, number>;\n\t\t\ttype: 'ready';\n\t\t\tudid: string;\n\t\t\tv: 1;\n\t };\n\nconst defaultProfilePath = () =>\n\tjoin(homedir(), '.absolutejs', 'mobile', 'remote-macs.json');\n\nconst emptyStore = (): ProfileStore => ({\n\tformat: PROFILE_FORMAT,\n\tprofiles: {}\n});\n\nconst loadStore = async (path = defaultProfilePath()) => {\n\ttry {\n\t\tconst parsed = JSON.parse(await readFile(path, 'utf8')) as ProfileStore;\n\t\tif (\n\t\t\tparsed.format !== PROFILE_FORMAT ||\n\t\t\ttypeof parsed.profiles !== 'object' ||\n\t\t\tparsed.profiles === null ||\n\t\t\tArray.isArray(parsed.profiles)\n\t\t)\n\t\t\tthrow new Error('Unsupported remote Mac profile format.');\n\t\tfor (const [key, profile] of Object.entries(parsed.profiles)) {\n\t\t\tif (\n\t\t\t\ttypeof profile !== 'object' ||\n\t\t\t\tprofile === null ||\n\t\t\t\tvalidateAbsoluteRemoteMacProfileName(key) !== key ||\n\t\t\t\tprofile.name !== key ||\n\t\t\t\tvalidateAbsoluteSshDestination(profile.destination) !==\n\t\t\t\t\tprofile.destination ||\n\t\t\t\tvalidatePort(profile.port) !== profile.port ||\n\t\t\t\ttypeof profile.createdAt !== 'string' ||\n\t\t\t\t!profile.createdAt ||\n\t\t\t\ttypeof profile.bunPath !== 'string' ||\n\t\t\t\t!profile.bunPath.startsWith('/') ||\n\t\t\t\t/[\\r\\n\\0]/u.test(profile.bunPath) ||\n\t\t\t\ttypeof profile.workspaceRoot !== 'string' ||\n\t\t\t\t!profile.workspaceRoot.startsWith('/') ||\n\t\t\t\tprofile.workspaceRoot === '/' ||\n\t\t\t\t/[\\r\\n\\0]/u.test(profile.workspaceRoot) ||\n\t\t\t\ttypeof profile.xcodeVersion !== 'string' ||\n\t\t\t\t!profile.xcodeVersion.startsWith('Xcode ')\n\t\t\t)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Remote Mac profile ${JSON.stringify(key)} is invalid.`\n\t\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tparsed.defaultProfile !== undefined &&\n\t\t\t!parsed.profiles[parsed.defaultProfile]\n\t\t)\n\t\t\tthrow new Error('The default remote Mac profile does not exist.');\n\n\t\treturn parsed;\n\t} catch (error) {\n\t\tif ((error as NodeJS.ErrnoException).code === 'ENOENT')\n\t\t\treturn emptyStore();\n\t\tthrow error;\n\t}\n};\n\nconst saveStore = async (store: ProfileStore, path = defaultProfilePath()) => {\n\tawait mkdir(dirname(path), { recursive: true });\n\tconst temporary = `${path}.${randomUUID()}.tmp`;\n\tawait writeFile(temporary, `${JSON.stringify(store, null, 2)}\\n`, {\n\t\tmode: 0o600\n\t});\n\tawait rename(temporary, path);\n\tawait chmod(path, 0o600);\n};\n\nexport const validateAbsoluteRemoteMacProfileName = (name: string) => {\n\tconst normalized = name.trim().toLowerCase();\n\tif (!PROFILE_NAME.test(normalized))\n\t\tthrow new TypeError(\n\t\t\t'Remote Mac profile names must use 1-64 lowercase letters, digits, dots, dashes, or underscores.'\n\t\t);\n\n\treturn normalized;\n};\n\nexport const validateAbsoluteSshDestination = (destination: string) => {\n\tconst normalized = destination.trim();\n\tif (!SSH_DESTINATION.test(normalized) || normalized.startsWith('-'))\n\t\tthrow new TypeError(\n\t\t\t'Remote Mac SSH destination must be a host, SSH alias, or user@host without command-line options.'\n\t\t);\n\n\treturn normalized;\n};\n\nconst validatePort = (port: number | undefined) => {\n\tif (\n\t\tport !== undefined &&\n\t\t(!Number.isInteger(port) || port < 1 || port > 65_535)\n\t)\n\t\tthrow new TypeError('Remote Mac SSH port must be between 1 and 65535.');\n\n\treturn port;\n};\n\nconst shellQuote = (value: string) => `'${value.replaceAll(\"'\", \"'\\\\''\")}'`;\n\nexport const absoluteRemoteMacSshBase = (\n\tprofile: Pick<AbsoluteRemoteMacProfile, 'destination' | 'port'>,\n\toptions: { acceptNew?: boolean } = {}\n) => [\n\t'ssh',\n\t'-o',\n\t'BatchMode=yes',\n\t'-o',\n\t'ConnectTimeout=10',\n\t'-o',\n\t'ServerAliveInterval=15',\n\t'-o',\n\t'ServerAliveCountMax=3',\n\t'-o',\n\t`StrictHostKeyChecking=${options.acceptNew ? 'accept-new' : 'yes'}`,\n\t...(profile.port ? ['-p', String(profile.port)] : []),\n\tprofile.destination\n];\n\nconst localCapture = async (command: string[]) => {\n\tconst process = Bun.spawn(command, {\n\t\tstderr: 'pipe',\n\t\tstdin: 'ignore',\n\t\tstdout: 'pipe'\n\t});\n\tconst [exitCode, stdout, stderr] = await Promise.all([\n\t\tprocess.exited,\n\t\tnew Response(process.stdout).text(),\n\t\tnew Response(process.stderr).text()\n\t]);\n\n\treturn { exitCode, stderr, stdout };\n};\n\nconst defaultTransport: AbsoluteRemoteMacTransport = {\n\tcapture: localCapture,\n\tspawn: (command, options) =>\n\t\tBun.spawn(command, {\n\t\t\tsignal: options.signal,\n\t\t\tstderr: 'pipe',\n\t\t\tstdin: 'pipe',\n\t\t\tstdout: 'pipe'\n\t\t}) as ReturnType<AbsoluteRemoteMacTransport['spawn']>\n};\n\nconst requireRemoteSuccess = (\n\tresult: AbsoluteRemoteMacCommandResult,\n\tlabel: string\n) => {\n\tif (result.exitCode !== 0)\n\t\tthrow new Error(\n\t\t\t`${label} failed: ${(result.stderr || result.stdout).trim() || `status ${result.exitCode}`}`\n\t\t);\n\n\treturn result.stdout.trim();\n};\n\nexport const getAbsoluteRemoteMacProfile = async (\n\tname?: string,\n\tprofilePath?: string\n) => {\n\tconst store = await loadStore(profilePath);\n\tconst selected =\n\t\tname ?? process.env.ABSOLUTE_IOS_REMOTE ?? store.defaultProfile;\n\tif (!selected) return undefined;\n\tconst profile = store.profiles[selected];\n\tif (!profile)\n\t\tthrow new Error(\n\t\t\t`Remote Mac profile ${JSON.stringify(selected)} was not found.`\n\t\t);\n\n\treturn profile;\n};\nexport const inspectAbsoluteRemoteMac = async (\n\tdestination: string,\n\toptions: {\n\t\tacceptNew?: boolean;\n\t\tport?: number;\n\t\ttransport?: Pick<AbsoluteRemoteMacTransport, 'capture'>;\n\t} = {}\n) => {\n\tconst profile: Pick<AbsoluteRemoteMacProfile, 'destination' | 'port'> = {\n\t\tdestination: validateAbsoluteSshDestination(destination),\n\t\tport: validatePort(options.port)\n\t};\n\tconst capture = options.transport?.capture ?? defaultTransport.capture;\n\tconst command = [\n\t\t...absoluteRemoteMacSshBase(profile, {\n\t\t\tacceptNew: options.acceptNew === true\n\t\t}),\n\t\t'/bin/sh -lc',\n\t\tshellQuote(\n\t\t\t`bun_path=\"$(command -v bun || true)\"; if [ -z \"$bun_path\" ] && [ -x \"$HOME/.bun/bin/bun\" ]; then bun_path=\"$HOME/.bun/bin/bun\"; fi; printf '%s\\\\n' \"$(uname -s)\" \"$HOME\" \"$bun_path\" \"$(/usr/bin/xcodebuild -version 2>/dev/null | tr '\\\\n' ' ' || true)\"`\n\t\t)\n\t];\n\tconst lines = requireRemoteSuccess(\n\t\tawait capture(command),\n\t\t'Remote Mac handshake'\n\t).split(/\\r?\\n/u);\n\tconst [operatingSystem, home, bunPath, xcodeVersion] = lines;\n\tif (operatingSystem !== 'Darwin')\n\t\tthrow new Error('The SSH target is not a Mac.');\n\tif (!home?.startsWith('/') || !bunPath?.startsWith('/'))\n\t\tthrow new Error(\n\t\t\t'The remote Mac must have Bun installed and available to SSH.'\n\t\t);\n\tif (!xcodeVersion?.startsWith('Xcode '))\n\t\tthrow new Error(\n\t\t\t'The remote Mac must have full Xcode installed and selected.'\n\t\t);\n\n\treturn { bunPath, home, os: operatingSystem, xcodeVersion };\n};\nexport const listAbsoluteRemoteMacProfiles = async (profilePath?: string) => {\n\tconst store = await loadStore(profilePath);\n\n\treturn {\n\t\tdefaultProfile: store.defaultProfile,\n\t\tprofiles: Object.values(store.profiles).sort((left, right) =>\n\t\t\tleft.name.localeCompare(right.name)\n\t\t)\n\t};\n};\nexport const pairAbsoluteRemoteMac = async (options: {\n\tdestination: string;\n\tname: string;\n\tport?: number;\n\tprofilePath?: string;\n\ttransport?: Pick<AbsoluteRemoteMacTransport, 'capture'>;\n\tworkspaceRoot?: string;\n}) => {\n\tconst name = validateAbsoluteRemoteMacProfileName(options.name);\n\tconst destination = validateAbsoluteSshDestination(options.destination);\n\tconst port = validatePort(options.port);\n\tconst inspection = await inspectAbsoluteRemoteMac(destination, {\n\t\tacceptNew: true,\n\t\tport,\n\t\ttransport: options.transport\n\t});\n\tconst workspaceRoot = options.workspaceRoot\n\t\t? options.workspaceRoot.trim()\n\t\t: posix.join(inspection.home, '.absolutejs', 'remote-ios');\n\tif (\n\t\t!workspaceRoot.startsWith('/') ||\n\t\tworkspaceRoot === '/' ||\n\t\t/[\\r\\n\\0]/u.test(workspaceRoot)\n\t)\n\t\tthrow new TypeError(\n\t\t\t'Remote Mac workspace must be an absolute macOS path.'\n\t\t);\n\tconst profile: AbsoluteRemoteMacProfile = {\n\t\tbunPath: inspection.bunPath,\n\t\tcreatedAt: new Date().toISOString(),\n\t\tdestination,\n\t\tname,\n\t\t...(port ? { port } : {}),\n\t\tworkspaceRoot,\n\t\txcodeVersion: inspection.xcodeVersion\n\t};\n\tconst store = await loadStore(options.profilePath);\n\tstore.profiles[name] = profile;\n\tstore.defaultProfile = name;\n\tawait saveStore(store, options.profilePath);\n\n\treturn profile;\n};\nexport const removeAbsoluteRemoteMacProfile = async (\n\tname: string,\n\tprofilePath?: string\n) => {\n\tconst normalized = validateAbsoluteRemoteMacProfileName(name);\n\tconst store = await loadStore(profilePath);\n\tif (!store.profiles[normalized]) return false;\n\tdelete store.profiles[normalized];\n\tif (store.defaultProfile === normalized) {\n\t\tconst [nextDefault] = Object.keys(store.profiles).sort();\n\t\tstore.defaultProfile = nextDefault;\n\t}\n\tawait saveStore(store, profilePath);\n\n\treturn true;\n};\n\nconst projectIdentity = (projectRoot: string, appId: string) =>\n\tcreateHash('sha256')\n\t\t.update(`${resolvePath(projectRoot)}\\0${appId}`)\n\t\t.digest('hex')\n\t\t.slice(0, 20);\n\nexport const createAbsoluteRemoteIosDevProject = (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\tprojectRoot: string,\n\tprofile: AbsoluteRemoteMacProfile\n): AbsoluteRemoteIosDevProject => ({\n\tcap: join(resolvePath(projectRoot), 'node_modules', '.bin', 'cap'),\n\tconfig,\n\tnativeDirectory: join(config.nativeProjectDirectory, 'ios'),\n\tprofile,\n\tprojectRoot: resolvePath(projectRoot),\n\tremote: true,\n\tremoteProjectRoot: posix.join(\n\t\tprofile.workspaceRoot,\n\t\t'projects',\n\t\tprojectIdentity(projectRoot, config.appId),\n\t\t'current'\n\t),\n\txcodebuild: 'remote:xcodebuild',\n\txcrun: 'remote:xcrun'\n});\nexport const installAbsoluteRemoteMacAgent = async (\n\tproject: AbsoluteRemoteIosDevProject\n) => {\n\tconst artifact = await materializeAbsoluteRemoteMacAgent(\n\t\tproject.projectRoot\n\t);\n\tconst directory = posix.join(\n\t\tproject.profile.workspaceRoot,\n\t\t'agents',\n\t\t`protocol-${ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION}`,\n\t\tartifact.sha256\n\t);\n\tconst remotePath = posix.join(directory, 'agent.js');\n\tconst verifyScript =\n\t\t`test -f ${shellQuote(remotePath)} && ` +\n\t\t`test \"$(shasum -a 256 ${shellQuote(remotePath)} | awk '{print $1}')\" = ${shellQuote(artifact.sha256)}`;\n\tconst verified = await defaultTransport.capture([\n\t\t...absoluteRemoteMacSshBase(project.profile),\n\t\t'/bin/sh -lc',\n\t\tshellQuote(verifyScript)\n\t]);\n\tif (verified.exitCode === 0)\n\t\treturn { ...artifact, remotePath, uploaded: false };\n\tconst temporary = posix.join(directory, `.agent-${randomUUID()}.tmp`);\n\tconst installScript = [\n\t\t'set -eu',\n\t\t'umask 077',\n\t\t`mkdir -p ${shellQuote(directory)}`,\n\t\t`cat > ${shellQuote(temporary)}`,\n\t\t`test \"$(shasum -a 256 ${shellQuote(temporary)} | awk '{print $1}')\" = ${shellQuote(artifact.sha256)}`,\n\t\t`chmod 600 ${shellQuote(temporary)}`,\n\t\t`mv ${shellQuote(temporary)} ${shellQuote(remotePath)}`\n\t].join('; ');\n\tconst upload = Bun.spawn(\n\t\t[\n\t\t\t...absoluteRemoteMacSshBase(project.profile),\n\t\t\t'/bin/sh -lc',\n\t\t\tshellQuote(installScript)\n\t\t],\n\t\t{\n\t\t\tstderr: 'pipe',\n\t\t\tstdin: Bun.file(artifact.path),\n\t\t\tstdout: 'pipe'\n\t\t}\n\t);\n\tconst [exitCode, stderr] = await Promise.all([\n\t\tupload.exited,\n\t\tnew Response(upload.stderr).text()\n\t]);\n\tif (exitCode !== 0)\n\t\tthrow new Error(\n\t\t\t`Remote Mac agent installation failed: ${stderr.trim() || `status ${exitCode}`}`\n\t\t);\n\n\treturn { ...artifact, remotePath, uploaded: true };\n};\nexport const materializeAbsoluteRemoteMacAgent = async (\n\tprojectRoot: string\n) => {\n\tconst shippedCandidates = [\n\t\tjoin(import.meta.dir, 'remoteMacAgentEntry.js'),\n\t\tjoin(import.meta.dir, '..', 'mobile', 'remoteMacAgentEntry.js')\n\t];\n\tlet path: string | undefined;\n\tfor (const candidate of shippedCandidates) {\n\t\tif (await Bun.file(candidate).exists()) {\n\t\t\tpath = candidate;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (!path) {\n\t\tconst sourceCandidates = [\n\t\t\tjoin(import.meta.dir, 'remoteMacAgentEntry.ts'),\n\t\t\tjoin(\n\t\t\t\timport.meta.dir,\n\t\t\t\t'..',\n\t\t\t\t'..',\n\t\t\t\t'src',\n\t\t\t\t'mobile',\n\t\t\t\t'remoteMacAgentEntry.ts'\n\t\t\t)\n\t\t];\n\t\tconst source = await sourceCandidates.reduce<\n\t\t\tPromise<string | undefined>\n\t\t>(\n\t\t\tasync (found, candidate) =>\n\t\t\t\t(await found) ??\n\t\t\t\t((await Bun.file(candidate).exists()) ? candidate : undefined),\n\t\t\tPromise.resolve(undefined)\n\t\t);\n\t\tif (!source)\n\t\t\tthrow new Error(\n\t\t\t\t'The AbsoluteJS installation does not contain its remote Mac agent artifact.'\n\t\t\t);\n\t\tconst outdir = join(\n\t\t\tresolvePath(projectRoot),\n\t\t\t'.absolutejs',\n\t\t\t'mobile',\n\t\t\t'remote-agent'\n\t\t);\n\t\tawait mkdir(outdir, { recursive: true });\n\t\tconst result = await Bun.build({\n\t\t\tentrypoints: [source],\n\t\t\tminify: true,\n\t\t\toutdir,\n\t\t\ttarget: 'bun'\n\t\t});\n\t\tif (!result.success)\n\t\t\tthrow new AggregateError(\n\t\t\t\tresult.logs,\n\t\t\t\t'Failed to build the AbsoluteJS remote Mac agent.'\n\t\t\t);\n\t\tpath = join(outdir, 'remoteMacAgentEntry.js');\n\t}\n\tconst bytes = await Bun.file(path).arrayBuffer();\n\tconst sha256 = createHash('sha256')\n\t\t.update(new Uint8Array(bytes))\n\t\t.digest('hex');\n\n\treturn { bytes: bytes.byteLength, path, sha256 };\n};\n\nconst portableRelativePath = (root: string, path: string) =>\n\trelative(root, path).split(sep).join(posix.sep);\n\nconst portableMobileConfig = (\n\tproject: AbsoluteRemoteIosDevProject\n): MobileConfig => ({\n\tappId: project.config.appId,\n\tappName: project.config.appName,\n\tbundleDirectory: portableRelativePath(\n\t\tproject.projectRoot,\n\t\tproject.config.bundleDirectory\n\t),\n\t...(project.config.deepLinkScheme ||\n\tproject.config.deepLinkHosts.length > 1 ||\n\tproject.config.appleAppIdPrefix\n\t\t? {\n\t\t\t\tdeepLinks: {\n\t\t\t\t\t...(project.config.deepLinkScheme\n\t\t\t\t\t\t? { scheme: project.config.deepLinkScheme }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\thosts: project.config.deepLinkHosts,\n\t\t\t\t\t...(project.config.appleAppIdPrefix\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tapple: {\n\t\t\t\t\t\t\t\t\tappIdPrefix: project.config.appleAppIdPrefix\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {})\n\t\t\t\t}\n\t\t\t}\n\t\t: {}),\n\tentry: project.config.entry,\n\t...(project.config.iosVersion\n\t\t? { ios: { version: project.config.iosVersion } }\n\t\t: {}),\n\tnativeProject: {\n\t\tdirectory: portableRelativePath(\n\t\t\tproject.projectRoot,\n\t\t\tproject.config.nativeProjectDirectory\n\t\t),\n\t\tmode: 'source'\n\t},\n\tplatforms: ['ios'],\n\tserver: { productionOrigin: project.config.productionOrigin }\n});\n\nexport const absoluteRemoteProjectSyncCommands = (\n\tproject: AbsoluteRemoteIosDevProject\n) => {\n\tconst current = project.remoteProjectRoot;\n\tconst parent = posix.dirname(current);\n\tconst staging = posix.join(parent, `.incoming-${randomUUID()}`);\n\tconst previous = posix.join(parent, '.previous');\n\tconst script = [\n\t\t'set -eu',\n\t\t`mkdir -p ${shellQuote(staging)}`,\n\t\t`tar -xf - -C ${shellQuote(staging)}`,\n\t\t`if [ -d ${shellQuote(posix.join(current, 'node_modules'))} ]; then mv ${shellQuote(posix.join(current, 'node_modules'))} ${shellQuote(posix.join(staging, 'node_modules'))}; fi`,\n\t\t`if [ -d ${shellQuote(posix.join(current, '.absolutejs'))} ]; then mv ${shellQuote(posix.join(current, '.absolutejs'))} ${shellQuote(posix.join(staging, '.absolutejs'))}; fi`,\n\t\t`rm -rf ${shellQuote(previous)}`,\n\t\t`if [ -d ${shellQuote(current)} ]; then mv ${shellQuote(current)} ${shellQuote(previous)}; fi`,\n\t\t`mv ${shellQuote(staging)} ${shellQuote(current)}`,\n\t\t`rm -rf ${shellQuote(previous)}`\n\t].join('; ');\n\n\treturn {\n\t\tremote: [\n\t\t\t...absoluteRemoteMacSshBase(project.profile),\n\t\t\t'/bin/sh -lc',\n\t\t\tshellQuote(script)\n\t\t],\n\t\ttar: [\n\t\t\t'tar',\n\t\t\t'--exclude=.git',\n\t\t\t'--exclude=node_modules',\n\t\t\t'--exclude=build',\n\t\t\t'--exclude=.absolutejs',\n\t\t\t'-cf',\n\t\t\t'-',\n\t\t\t'-C',\n\t\t\tproject.projectRoot,\n\t\t\t'.'\n\t\t]\n\t};\n};\n\nexport const syncAbsoluteRemoteMacProject = async (\n\tproject: AbsoluteRemoteIosDevProject\n) => {\n\tconst commands = absoluteRemoteProjectSyncCommands(project);\n\tconst archive = Bun.spawn(commands.tar, {\n\t\tstderr: 'pipe',\n\t\tstdout: 'pipe'\n\t});\n\tconst upload = Bun.spawn(commands.remote, {\n\t\tstderr: 'pipe',\n\t\tstdin: archive.stdout,\n\t\tstdout: 'pipe'\n\t});\n\tconst [archiveExit, uploadExit, archiveError, uploadError] =\n\t\tawait Promise.all([\n\t\t\tarchive.exited,\n\t\t\tupload.exited,\n\t\t\tnew Response(archive.stderr).text(),\n\t\t\tnew Response(upload.stderr).text()\n\t\t]);\n\tif (archiveExit !== 0 || uploadExit !== 0)\n\t\tthrow new Error(\n\t\t\t`Remote Mac project synchronization failed: ${(archiveError || uploadError).trim()}`\n\t\t);\n\tconst install = await defaultTransport.capture([\n\t\t...absoluteRemoteMacSshBase(project.profile),\n\t\t'/bin/sh -lc',\n\t\tshellQuote(\n\t\t\t`cd ${shellQuote(project.remoteProjectRoot)} && ${shellQuote(project.profile.bunPath)} install --frozen-lockfile`\n\t\t)\n\t]);\n\trequireRemoteSuccess(install, 'Remote Mac dependency installation');\n};\n\nconst consumeLines = async (\n\tstream: ReadableStream<Uint8Array>,\n\tonLine: (line: string) => void\n) => {\n\tconst reader = stream.getReader();\n\tconst decoder = new TextDecoder();\n\tlet buffered = '';\n\ttry {\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) break;\n\t\t\tbuffered += decoder.decode(value, { stream: true });\n\t\t\tconst lines = buffered.split(/\\r?\\n/u);\n\t\t\tbuffered = lines.pop() ?? '';\n\t\t\tlines.forEach(onLine);\n\t\t}\n\t\tbuffered += decoder.decode();\n\t\tif (buffered) onLine(buffered);\n\t} finally {\n\t\treader.releaseLock();\n\t}\n};\n\nexport const startAbsoluteRemoteIosDevSession = async (\n\toptions: AbsoluteRemoteIosOptions\n) => {\n\tconst startedAt = performance.now();\n\tconst transport = options.transport ?? defaultTransport;\n\tconst installAgent = options.installAgent ?? installAbsoluteRemoteMacAgent;\n\tconst syncProject = options.syncProject ?? syncAbsoluteRemoteMacProject;\n\tconst agentStartedAt = performance.now();\n\tconst agent = await installAgent(options.project);\n\tconst agentDuration = performance.now() - agentStartedAt;\n\tconst syncStartedAt = performance.now();\n\tawait syncProject(options.project);\n\tconst syncDuration = performance.now() - syncStartedAt;\n\tconst encodedConfig = Buffer.from(\n\t\tJSON.stringify(portableMobileConfig(options.project))\n\t).toString('base64url');\n\tconst remoteCommand = [\n\t\t`cd ${shellQuote(options.project.remoteProjectRoot)}`,\n\t\t'&&',\n\t\t'exec',\n\t\tshellQuote(options.project.profile.bunPath),\n\t\tshellQuote(agent.remotePath),\n\t\t'--port',\n\t\tString(options.port),\n\t\t'--mobile-config',\n\t\tshellQuote(encodedConfig),\n\t\t...(options.https ? ['--https'] : [])\n\t].join(' ');\n\tconst command = [\n\t\t...absoluteRemoteMacSshBase(options.project.profile),\n\t\t'-o',\n\t\t'ExitOnForwardFailure=yes',\n\t\t'-R',\n\t\t`${options.port}:127.0.0.1:${options.port}`,\n\t\t'/bin/sh -lc',\n\t\tshellQuote(remoteCommand)\n\t];\n\tconst connectStartedAt = performance.now();\n\tconst process = transport.spawn(command, { signal: options.signal });\n\tlet state: AbsoluteIosDevState = 'syncing';\n\tlet ready: Extract<RemoteEvent, { type: 'ready' }> | undefined;\n\tlet fatal: Error | undefined;\n\tconst pending = new Map<\n\t\tstring,\n\t\t{ reject: (error: Error) => void; resolve: (value: unknown) => void }\n\t>();\n\tlet resolveReady!: () => void;\n\tlet rejectReady!: (error: Error) => void;\n\tconst readyPromise = new Promise<void>((resolve, reject) => {\n\t\tresolveReady = resolve;\n\t\trejectReady = reject;\n\t});\n\tconst handleEvent = (event: RemoteEvent) => {\n\t\tif (event.v !== ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION) {\n\t\t\trejectReady(new Error('Remote Mac protocol version mismatch.'));\n\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === 'log') options.log?.(event.message);\n\t\tif (event.type === 'native-log') options.nativeLog?.(event.entry);\n\t\tif (event.type === 'state') {\n\t\t\t({ state } = event);\n\t\t\toptions.onStateChange?.(state);\n\t\t}\n\t\tif (event.type === 'timing') options.onPhaseTiming?.(event);\n\t\tif (event.type === 'ready') {\n\t\t\tready = event;\n\t\t\tresolveReady();\n\t\t}\n\t\tif (event.type === 'fatal') {\n\t\t\tfatal = new Error(event.error);\n\t\t\trejectReady(fatal);\n\t\t}\n\t\tif (event.type === 'response') {\n\t\t\tconst request = pending.get(event.id);\n\t\t\tif (!request) return;\n\t\t\tpending.delete(event.id);\n\t\t\tif (event.ok) request.resolve(event.result);\n\t\t\telse\n\t\t\t\trequest.reject(\n\t\t\t\t\tnew Error(event.error ?? 'Remote command failed.')\n\t\t\t\t);\n\t\t}\n\t};\n\tconst stdoutDone = consumeLines(process.stdout, (line) => {\n\t\tif (!line.startsWith(ABSOLUTE_REMOTE_MAC_EVENT_PREFIX)) return;\n\t\ttry {\n\t\t\thandleEvent(\n\t\t\t\tJSON.parse(\n\t\t\t\t\tline.slice(ABSOLUTE_REMOTE_MAC_EVENT_PREFIX.length)\n\t\t\t\t) as RemoteEvent\n\t\t\t);\n\t\t} catch {\n\t\t\toptions.log?.(`Remote Mac emitted an invalid protocol event.`);\n\t\t}\n\t}).catch((error: unknown) => {\n\t\tfatal =\n\t\t\terror instanceof Error\n\t\t\t\t? error\n\t\t\t\t: new Error('Failed to read the remote Mac protocol stream.');\n\t\trejectReady(fatal);\n\t});\n\tconst stderrDone = consumeLines(process.stderr, (line) =>\n\t\toptions.log?.(`[remote] ${line}`)\n\t).catch((error: unknown) =>\n\t\toptions.log?.(\n\t\t\t`[remote] ${error instanceof Error ? error.message : 'Failed to read SSH stderr.'}`\n\t\t)\n\t);\n\tvoid process.exited.then(async (exitCode) => {\n\t\tawait Promise.all([stdoutDone, stderrDone]);\n\t\tconst error =\n\t\t\tfatal ??\n\t\t\tnew Error(`Remote Mac connection closed with status ${exitCode}.`);\n\t\tif (!ready) rejectReady(error);\n\t\tpending.forEach(({ reject }) => reject(error));\n\t\tpending.clear();\n\n\t\treturn undefined;\n\t});\n\tawait readyPromise;\n\tif (!ready) throw fatal ?? new Error('Remote Mac did not become ready.');\n\tconst totalDuration = performance.now() - startedAt;\n\tlet currentReady: Extract<RemoteEvent, { type: 'ready' }> = {\n\t\t...ready,\n\t\ttimings: {\n\t\t\t...ready.timings,\n\t\t\t'remote-agent': agentDuration,\n\t\t\t'remote-connect': performance.now() - connectStartedAt,\n\t\t\t'remote-sync': syncDuration,\n\t\t\ttotal: totalDuration\n\t\t}\n\t};\n\toptions.log?.(\n\t\t`Remote Mac connected (${options.project.profile.name}); agent ${agent.uploaded ? 'uploaded' : 'cache hit'}, project synced, and iOS ready in ${totalDuration.toFixed(2)}ms.`\n\t);\n\n\tconst request = (\n\t\tcommandName: 'close' | 'rebuild' | 'relaunch' | 'screenshot'\n\t) => {\n\t\tconst id = randomUUID();\n\t\tconst response = new Promise<unknown>((resolve, reject) =>\n\t\t\tpending.set(id, { reject, resolve })\n\t\t);\n\t\tprocess.stdin.write(\n\t\t\t`${JSON.stringify({ command: commandName, id, v: 1 })}\\n`\n\t\t);\n\t\tconst flush = async () => {\n\t\t\tfor (\n\t\t\t\tlet attempt = 0;\n\t\t\t\tattempt < REMOTE_STDIN_FLUSH_ATTEMPTS;\n\t\t\t\tattempt++\n\t\t\t) {\n\t\t\t\ttry {\n\t\t\t\t\tawait process.stdin.flush();\n\n\t\t\t\t\treturn;\n\t\t\t\t} catch {\n\t\t\t\t\t// Bun can transiently report EPERM for a subprocess pipe. Retrying\n\t\t\t\t\t// the same sink flush cannot duplicate the already queued frame.\n\t\t\t\t\tawait Promise.resolve();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn flush().then(() => response);\n\t};\n\tlet closed = false;\n\tconst close = async () => {\n\t\tif (closed) return;\n\t\tclosed = true;\n\t\tawait request('close').catch(() => undefined);\n\t\tprocess.stdin.end();\n\t\tawait process.exited.catch(() => undefined);\n\t};\n\tconst makeSession = (): AbsoluteIosDevSession => ({\n\t\tclose,\n\t\tnativeCacheHit: currentReady.nativeCacheHit,\n\t\tstartedSimulator: currentReady.startedSimulator,\n\t\ttimings: currentReady.timings,\n\t\tudid: currentReady.udid,\n\t\trebuild: async () => {\n\t\t\tconst rebuildStartedAt = performance.now();\n\t\t\tconst rebuildSyncStartedAt = performance.now();\n\t\t\tawait syncProject(options.project);\n\t\t\tconst rebuildSyncDuration =\n\t\t\t\tperformance.now() - rebuildSyncStartedAt;\n\t\t\tconst result = (await request('rebuild')) as Extract<\n\t\t\t\tRemoteEvent,\n\t\t\t\t{ type: 'ready' }\n\t\t\t>;\n\t\t\tcurrentReady = {\n\t\t\t\t...result,\n\t\t\t\ttimings: {\n\t\t\t\t\t...result.timings,\n\t\t\t\t\t'remote-sync': rebuildSyncDuration,\n\t\t\t\t\ttotal: performance.now() - rebuildStartedAt\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn makeSession();\n\t\t},\n\t\trelaunch: async () => {\n\t\t\tawait request('relaunch');\n\t\t},\n\t\tscreenshot: async (destination) => {\n\t\t\tconst result = (await request('screenshot')) as { data: string };\n\t\t\tconst target = resolvePath(\n\t\t\t\toptions.project.projectRoot,\n\t\t\t\tdestination\n\t\t\t);\n\t\t\tconst targetRelative = relative(\n\t\t\t\toptions.project.projectRoot,\n\t\t\t\ttarget\n\t\t\t);\n\t\t\tif (targetRelative.startsWith('..') || isAbsolute(targetRelative))\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'iOS screenshot must remain inside the project.'\n\t\t\t\t);\n\t\t\tawait mkdir(dirname(target), { recursive: true });\n\t\t\tawait writeFile(target, Buffer.from(result.data, 'base64'));\n\n\t\t\treturn target;\n\t\t},\n\t\tget state() {\n\t\t\treturn state;\n\t\t}\n\t});\n\n\treturn makeSession();\n};\n",
27
+ "/* eslint-disable @typescript-eslint/consistent-type-assertions, absolute/max-depth-extended, no-await-in-loop -- This module validates persisted/remote input and consumes protocol streams sequentially. */\nimport { createHash, randomUUID } from 'node:crypto';\nimport { chmod, mkdir, readFile, rename, writeFile } from 'node:fs/promises';\nimport { homedir } from 'node:os';\nimport { isIP } from 'node:net';\nimport {\n\tdirname,\n\tisAbsolute,\n\tjoin,\n\tposix,\n\trelative,\n\tresolve as resolvePath,\n\tsep\n} from 'node:path';\nimport type { MobileConfig } from '../../types/build';\nimport type { FileSink } from 'bun';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport type {\n\tAbsoluteIosDevPhaseTiming,\n\tAbsoluteIosDevSession,\n\tAbsoluteIosDevState,\n\tAbsoluteIosNativeLogEntry\n} from './iosSimulatorController';\nimport {\n\tABSOLUTE_REMOTE_MAC_EVENT_PREFIX,\n\tABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION\n} from './remoteMacWire';\nexport {\n\tABSOLUTE_REMOTE_MAC_EVENT_PREFIX,\n\tABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION\n} from './remoteMacWire';\n\nconst PROFILE_FORMAT = 1;\nconst REMOTE_STDIN_FLUSH_ATTEMPTS = 3;\nconst PROFILE_NAME = /^[a-z0-9](?:[a-z0-9._-]{0,62}[a-z0-9])?$/u;\nconst SSH_DESTINATION = /^(?:[A-Za-z0-9._-]+@)?[A-Za-z0-9._:-]+$/u;\n\nexport type AbsoluteRemoteMacProfile = {\n\tbunPath: string;\n\tcreatedAt: string;\n\tdestination: string;\n\tname: string;\n\tport?: number;\n\tworkspaceRoot: string;\n\txcodeVersion: string;\n};\n\ntype ProfileStore = {\n\tdefaultProfile?: string;\n\tformat: number;\n\tprofiles: Record<string, AbsoluteRemoteMacProfile>;\n};\n\nexport type AbsoluteRemoteMacInspection = {\n\tbunPath: string;\n\thome: string;\n\tos: string;\n\txcodeVersion: string;\n};\n\nexport type AbsoluteRemoteIosDevProject = {\n\tcap: string;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\tnativeDirectory: string;\n\tprojectRoot: string;\n\tprofile: AbsoluteRemoteMacProfile;\n\tremoteProjectRoot: string;\n\tremote: true;\n\txcodebuild: string;\n\txcrun: string;\n};\n\nexport type AbsoluteIosDevelopmentProject =\n\t| AbsoluteRemoteIosDevProject\n\t| (import('./iosSimulatorController').AbsoluteIosDevProject & {\n\t\t\tremote?: false;\n\t });\n\nexport type AbsoluteRemoteMacCommandResult = {\n\texitCode: number;\n\tstderr: string;\n\tstdout: string;\n};\n\nexport type AbsoluteRemoteMacTransport = {\n\tcapture: (command: string[]) => Promise<AbsoluteRemoteMacCommandResult>;\n\tspawn: (\n\t\tcommand: string[],\n\t\toptions: { signal?: AbortSignal }\n\t) => {\n\t\texited: Promise<number>;\n\t\tkill: () => void;\n\t\tstderr: ReadableStream<Uint8Array>;\n\t\tstdin: FileSink;\n\t\tstdout: ReadableStream<Uint8Array>;\n\t};\n};\n\nexport type AbsoluteRemoteIosOptions = {\n\tcertificateAuthorityPath?: string;\n\thttps?: boolean;\n\tdeviceIdentifier?: string;\n\tlog?: (message: string) => void;\n\tnativeLog?: (entry: AbsoluteIosNativeLogEntry) => void;\n\tonPhaseTiming?: (timing: AbsoluteIosDevPhaseTiming) => void;\n\tonStateChange?: (state: AbsoluteIosDevState) => void;\n\tport: number;\n\tproject: AbsoluteRemoteIosDevProject;\n\tsignal?: AbortSignal;\n\tserverHost?: string;\n\tinstallAgent?: (\n\t\tproject: AbsoluteRemoteIosDevProject\n\t) => Promise<{ remotePath: string; uploaded?: boolean }>;\n\tsyncProject?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;\n\ttransport?: AbsoluteRemoteMacTransport;\n};\n\ntype RemoteEvent =\n\t| { entry: AbsoluteIosNativeLogEntry; type: 'native-log'; v: 1 }\n\t| { error: string; type: 'fatal'; v: 1 }\n\t| { message: string; type: 'log'; v: 1 }\n\t| { state: AbsoluteIosDevState; type: 'state'; v: 1 }\n\t| ({ type: 'timing'; v: 1 } & AbsoluteIosDevPhaseTiming)\n\t| {\n\t\t\tid: string;\n\t\t\tok: boolean;\n\t\t\tresult?: unknown;\n\t\t\terror?: string;\n\t\t\ttype: 'response';\n\t\t\tv: 1;\n\t }\n\t| {\n\t\t\tnativeCacheHit: boolean;\n\t\t\tstartedSimulator: boolean;\n\t\t\ttargetKind: 'device' | 'simulator';\n\t\t\ttimings: Record<string, number>;\n\t\t\ttype: 'ready';\n\t\t\tudid: string;\n\t\t\tv: 1;\n\t };\n\nconst defaultProfilePath = () =>\n\tjoin(homedir(), '.absolutejs', 'mobile', 'remote-macs.json');\n\nconst emptyStore = (): ProfileStore => ({\n\tformat: PROFILE_FORMAT,\n\tprofiles: {}\n});\n\nconst loadStore = async (path = defaultProfilePath()) => {\n\ttry {\n\t\tconst parsed = JSON.parse(await readFile(path, 'utf8')) as ProfileStore;\n\t\tif (\n\t\t\tparsed.format !== PROFILE_FORMAT ||\n\t\t\ttypeof parsed.profiles !== 'object' ||\n\t\t\tparsed.profiles === null ||\n\t\t\tArray.isArray(parsed.profiles)\n\t\t)\n\t\t\tthrow new Error('Unsupported remote Mac profile format.');\n\t\tfor (const [key, profile] of Object.entries(parsed.profiles)) {\n\t\t\tif (\n\t\t\t\ttypeof profile !== 'object' ||\n\t\t\t\tprofile === null ||\n\t\t\t\tvalidateAbsoluteRemoteMacProfileName(key) !== key ||\n\t\t\t\tprofile.name !== key ||\n\t\t\t\tvalidateAbsoluteSshDestination(profile.destination) !==\n\t\t\t\t\tprofile.destination ||\n\t\t\t\tvalidatePort(profile.port) !== profile.port ||\n\t\t\t\ttypeof profile.createdAt !== 'string' ||\n\t\t\t\t!profile.createdAt ||\n\t\t\t\ttypeof profile.bunPath !== 'string' ||\n\t\t\t\t!profile.bunPath.startsWith('/') ||\n\t\t\t\t/[\\r\\n\\0]/u.test(profile.bunPath) ||\n\t\t\t\ttypeof profile.workspaceRoot !== 'string' ||\n\t\t\t\t!profile.workspaceRoot.startsWith('/') ||\n\t\t\t\tprofile.workspaceRoot === '/' ||\n\t\t\t\t/[\\r\\n\\0]/u.test(profile.workspaceRoot) ||\n\t\t\t\ttypeof profile.xcodeVersion !== 'string' ||\n\t\t\t\t!profile.xcodeVersion.startsWith('Xcode ')\n\t\t\t)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Remote Mac profile ${JSON.stringify(key)} is invalid.`\n\t\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tparsed.defaultProfile !== undefined &&\n\t\t\t!parsed.profiles[parsed.defaultProfile]\n\t\t)\n\t\t\tthrow new Error('The default remote Mac profile does not exist.');\n\n\t\treturn parsed;\n\t} catch (error) {\n\t\tif ((error as NodeJS.ErrnoException).code === 'ENOENT')\n\t\t\treturn emptyStore();\n\t\tthrow error;\n\t}\n};\n\nconst saveStore = async (store: ProfileStore, path = defaultProfilePath()) => {\n\tawait mkdir(dirname(path), { recursive: true });\n\tconst temporary = `${path}.${randomUUID()}.tmp`;\n\tawait writeFile(temporary, `${JSON.stringify(store, null, 2)}\\n`, {\n\t\tmode: 0o600\n\t});\n\tawait rename(temporary, path);\n\tawait chmod(path, 0o600);\n};\n\nexport const validateAbsoluteRemoteMacProfileName = (name: string) => {\n\tconst normalized = name.trim().toLowerCase();\n\tif (!PROFILE_NAME.test(normalized))\n\t\tthrow new TypeError(\n\t\t\t'Remote Mac profile names must use 1-64 lowercase letters, digits, dots, dashes, or underscores.'\n\t\t);\n\n\treturn normalized;\n};\n\nexport const validateAbsoluteSshDestination = (destination: string) => {\n\tconst normalized = destination.trim();\n\tif (!SSH_DESTINATION.test(normalized) || normalized.startsWith('-'))\n\t\tthrow new TypeError(\n\t\t\t'Remote Mac SSH destination must be a host, SSH alias, or user@host without command-line options.'\n\t\t);\n\n\treturn normalized;\n};\n\nconst validatePort = (port: number | undefined) => {\n\tif (\n\t\tport !== undefined &&\n\t\t(!Number.isInteger(port) || port < 1 || port > 65_535)\n\t)\n\t\tthrow new TypeError('Remote Mac SSH port must be between 1 and 65535.');\n\n\treturn port;\n};\n\nconst shellQuote = (value: string) => `'${value.replaceAll(\"'\", \"'\\\\''\")}'`;\n\nexport const absoluteRemoteMacSshBase = (\n\tprofile: Pick<AbsoluteRemoteMacProfile, 'destination' | 'port'>,\n\toptions: { acceptNew?: boolean } = {}\n) => [\n\t'ssh',\n\t'-o',\n\t'BatchMode=yes',\n\t'-o',\n\t'ConnectTimeout=10',\n\t'-o',\n\t'ServerAliveInterval=15',\n\t'-o',\n\t'ServerAliveCountMax=3',\n\t'-o',\n\t`StrictHostKeyChecking=${options.acceptNew ? 'accept-new' : 'yes'}`,\n\t...(profile.port ? ['-p', String(profile.port)] : []),\n\tprofile.destination\n];\n\nconst localCapture = async (command: string[]) => {\n\tconst process = Bun.spawn(command, {\n\t\tstderr: 'pipe',\n\t\tstdin: 'ignore',\n\t\tstdout: 'pipe'\n\t});\n\tconst [exitCode, stdout, stderr] = await Promise.all([\n\t\tprocess.exited,\n\t\tnew Response(process.stdout).text(),\n\t\tnew Response(process.stderr).text()\n\t]);\n\n\treturn { exitCode, stderr, stdout };\n};\n\nconst defaultTransport: AbsoluteRemoteMacTransport = {\n\tcapture: localCapture,\n\tspawn: (command, options) =>\n\t\tBun.spawn(command, {\n\t\t\tsignal: options.signal,\n\t\t\tstderr: 'pipe',\n\t\t\tstdin: 'pipe',\n\t\t\tstdout: 'pipe'\n\t\t}) as ReturnType<AbsoluteRemoteMacTransport['spawn']>\n};\n\nconst requireRemoteSuccess = (\n\tresult: AbsoluteRemoteMacCommandResult,\n\tlabel: string\n) => {\n\tif (result.exitCode !== 0)\n\t\tthrow new Error(\n\t\t\t`${label} failed: ${(result.stderr || result.stdout).trim() || `status ${result.exitCode}`}`\n\t\t);\n\n\treturn result.stdout.trim();\n};\n\nexport const getAbsoluteRemoteMacProfile = async (\n\tname?: string,\n\tprofilePath?: string\n) => {\n\tconst store = await loadStore(profilePath);\n\tconst selected =\n\t\tname ?? process.env.ABSOLUTE_IOS_REMOTE ?? store.defaultProfile;\n\tif (!selected) return undefined;\n\tconst profile = store.profiles[selected];\n\tif (!profile)\n\t\tthrow new Error(\n\t\t\t`Remote Mac profile ${JSON.stringify(selected)} was not found.`\n\t\t);\n\n\treturn profile;\n};\nexport const inspectAbsoluteRemoteMac = async (\n\tdestination: string,\n\toptions: {\n\t\tacceptNew?: boolean;\n\t\tport?: number;\n\t\ttransport?: Pick<AbsoluteRemoteMacTransport, 'capture'>;\n\t} = {}\n) => {\n\tconst profile: Pick<AbsoluteRemoteMacProfile, 'destination' | 'port'> = {\n\t\tdestination: validateAbsoluteSshDestination(destination),\n\t\tport: validatePort(options.port)\n\t};\n\tconst capture = options.transport?.capture ?? defaultTransport.capture;\n\tconst command = [\n\t\t...absoluteRemoteMacSshBase(profile, {\n\t\t\tacceptNew: options.acceptNew === true\n\t\t}),\n\t\t'/bin/sh -lc',\n\t\tshellQuote(\n\t\t\t`bun_path=\"$(command -v bun || true)\"; if [ -z \"$bun_path\" ] && [ -x \"$HOME/.bun/bin/bun\" ]; then bun_path=\"$HOME/.bun/bin/bun\"; fi; printf '%s\\\\n' \"$(uname -s)\" \"$HOME\" \"$bun_path\" \"$(/usr/bin/xcodebuild -version 2>/dev/null | tr '\\\\n' ' ' || true)\"`\n\t\t)\n\t];\n\tconst lines = requireRemoteSuccess(\n\t\tawait capture(command),\n\t\t'Remote Mac handshake'\n\t).split(/\\r?\\n/u);\n\tconst [operatingSystem, home, bunPath, xcodeVersion] = lines;\n\tif (operatingSystem !== 'Darwin')\n\t\tthrow new Error('The SSH target is not a Mac.');\n\tif (!home?.startsWith('/') || !bunPath?.startsWith('/'))\n\t\tthrow new Error(\n\t\t\t'The remote Mac must have Bun installed and available to SSH.'\n\t\t);\n\tif (!xcodeVersion?.startsWith('Xcode '))\n\t\tthrow new Error(\n\t\t\t'The remote Mac must have full Xcode installed and selected.'\n\t\t);\n\n\treturn { bunPath, home, os: operatingSystem, xcodeVersion };\n};\n\nexport const inspectAbsoluteRemoteMacLanHost = async (\n\tprofile: AbsoluteRemoteMacProfile,\n\ttransport?: Pick<AbsoluteRemoteMacTransport, 'capture'>\n) => {\n\tconst capture = transport?.capture ?? defaultTransport.capture;\n\tconst script =\n\t\t'default_interface=\"$(/sbin/route -n get default 2>/dev/null | /usr/bin/awk \\'/interface:/{print $2; exit}\\')\"; for interface in \"$default_interface\" en0 en1; do [ -n \"$interface\" ] || continue; address=\"$(/usr/sbin/ipconfig getifaddr \"$interface\" 2>/dev/null || true)\"; if [ -n \"$address\" ]; then printf \\'%s\\\\n\\' \"$address\"; exit 0; fi; done; exit 1';\n\tconst result = await capture([\n\t\t...absoluteRemoteMacSshBase(profile),\n\t\t'/bin/sh -lc',\n\t\tshellQuote(script)\n\t]);\n\tconst host = requireRemoteSuccess(\n\t\tresult,\n\t\t'Remote Mac LAN address discovery'\n\t).trim();\n\tif (isIP(host) === 0)\n\t\tthrow new Error(\n\t\t\t'The Remote Mac did not report a device-reachable LAN address.'\n\t\t);\n\n\treturn host;\n};\nexport const listAbsoluteRemoteMacProfiles = async (profilePath?: string) => {\n\tconst store = await loadStore(profilePath);\n\n\treturn {\n\t\tdefaultProfile: store.defaultProfile,\n\t\tprofiles: Object.values(store.profiles).sort((left, right) =>\n\t\t\tleft.name.localeCompare(right.name)\n\t\t)\n\t};\n};\nexport const pairAbsoluteRemoteMac = async (options: {\n\tdestination: string;\n\tname: string;\n\tport?: number;\n\tprofilePath?: string;\n\ttransport?: Pick<AbsoluteRemoteMacTransport, 'capture'>;\n\tworkspaceRoot?: string;\n}) => {\n\tconst name = validateAbsoluteRemoteMacProfileName(options.name);\n\tconst destination = validateAbsoluteSshDestination(options.destination);\n\tconst port = validatePort(options.port);\n\tconst inspection = await inspectAbsoluteRemoteMac(destination, {\n\t\tacceptNew: true,\n\t\tport,\n\t\ttransport: options.transport\n\t});\n\tconst workspaceRoot = options.workspaceRoot\n\t\t? options.workspaceRoot.trim()\n\t\t: posix.join(inspection.home, '.absolutejs', 'remote-ios');\n\tif (\n\t\t!workspaceRoot.startsWith('/') ||\n\t\tworkspaceRoot === '/' ||\n\t\t/[\\r\\n\\0]/u.test(workspaceRoot)\n\t)\n\t\tthrow new TypeError(\n\t\t\t'Remote Mac workspace must be an absolute macOS path.'\n\t\t);\n\tconst profile: AbsoluteRemoteMacProfile = {\n\t\tbunPath: inspection.bunPath,\n\t\tcreatedAt: new Date().toISOString(),\n\t\tdestination,\n\t\tname,\n\t\t...(port ? { port } : {}),\n\t\tworkspaceRoot,\n\t\txcodeVersion: inspection.xcodeVersion\n\t};\n\tconst store = await loadStore(options.profilePath);\n\tstore.profiles[name] = profile;\n\tstore.defaultProfile = name;\n\tawait saveStore(store, options.profilePath);\n\n\treturn profile;\n};\nexport const removeAbsoluteRemoteMacProfile = async (\n\tname: string,\n\tprofilePath?: string\n) => {\n\tconst normalized = validateAbsoluteRemoteMacProfileName(name);\n\tconst store = await loadStore(profilePath);\n\tif (!store.profiles[normalized]) return false;\n\tdelete store.profiles[normalized];\n\tif (store.defaultProfile === normalized) {\n\t\tconst [nextDefault] = Object.keys(store.profiles).sort();\n\t\tstore.defaultProfile = nextDefault;\n\t}\n\tawait saveStore(store, profilePath);\n\n\treturn true;\n};\n\nconst projectIdentity = (projectRoot: string, appId: string) =>\n\tcreateHash('sha256')\n\t\t.update(`${resolvePath(projectRoot)}\\0${appId}`)\n\t\t.digest('hex')\n\t\t.slice(0, 20);\n\nexport const createAbsoluteRemoteIosDevProject = (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\tprojectRoot: string,\n\tprofile: AbsoluteRemoteMacProfile\n): AbsoluteRemoteIosDevProject => ({\n\tcap: join(resolvePath(projectRoot), 'node_modules', '.bin', 'cap'),\n\tconfig,\n\tnativeDirectory: join(config.nativeProjectDirectory, 'ios'),\n\tprofile,\n\tprojectRoot: resolvePath(projectRoot),\n\tremote: true,\n\tremoteProjectRoot: posix.join(\n\t\tprofile.workspaceRoot,\n\t\t'projects',\n\t\tprojectIdentity(projectRoot, config.appId),\n\t\t'current'\n\t),\n\txcodebuild: 'remote:xcodebuild',\n\txcrun: 'remote:xcrun'\n});\nexport const installAbsoluteRemoteMacAgent = async (\n\tproject: AbsoluteRemoteIosDevProject\n) => {\n\tconst artifact = await materializeAbsoluteRemoteMacAgent(\n\t\tproject.projectRoot\n\t);\n\tconst directory = posix.join(\n\t\tproject.profile.workspaceRoot,\n\t\t'agents',\n\t\t`protocol-${ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION}`,\n\t\tartifact.sha256\n\t);\n\tconst remotePath = posix.join(directory, 'agent.js');\n\tconst verifyScript =\n\t\t`test -f ${shellQuote(remotePath)} && ` +\n\t\t`test \"$(shasum -a 256 ${shellQuote(remotePath)} | awk '{print $1}')\" = ${shellQuote(artifact.sha256)}`;\n\tconst verified = await defaultTransport.capture([\n\t\t...absoluteRemoteMacSshBase(project.profile),\n\t\t'/bin/sh -lc',\n\t\tshellQuote(verifyScript)\n\t]);\n\tif (verified.exitCode === 0)\n\t\treturn { ...artifact, remotePath, uploaded: false };\n\tconst temporary = posix.join(directory, `.agent-${randomUUID()}.tmp`);\n\tconst installScript = [\n\t\t'set -eu',\n\t\t'umask 077',\n\t\t`mkdir -p ${shellQuote(directory)}`,\n\t\t`cat > ${shellQuote(temporary)}`,\n\t\t`test \"$(shasum -a 256 ${shellQuote(temporary)} | awk '{print $1}')\" = ${shellQuote(artifact.sha256)}`,\n\t\t`chmod 600 ${shellQuote(temporary)}`,\n\t\t`mv ${shellQuote(temporary)} ${shellQuote(remotePath)}`\n\t].join('; ');\n\tconst upload = Bun.spawn(\n\t\t[\n\t\t\t...absoluteRemoteMacSshBase(project.profile),\n\t\t\t'/bin/sh -lc',\n\t\t\tshellQuote(installScript)\n\t\t],\n\t\t{\n\t\t\tstderr: 'pipe',\n\t\t\tstdin: Bun.file(artifact.path),\n\t\t\tstdout: 'pipe'\n\t\t}\n\t);\n\tconst [exitCode, stderr] = await Promise.all([\n\t\tupload.exited,\n\t\tnew Response(upload.stderr).text()\n\t]);\n\tif (exitCode !== 0)\n\t\tthrow new Error(\n\t\t\t`Remote Mac agent installation failed: ${stderr.trim() || `status ${exitCode}`}`\n\t\t);\n\n\treturn { ...artifact, remotePath, uploaded: true };\n};\nexport const materializeAbsoluteRemoteMacAgent = async (\n\tprojectRoot: string\n) => {\n\tconst shippedCandidates = [\n\t\tjoin(import.meta.dir, 'remoteMacAgentEntry.js'),\n\t\tjoin(import.meta.dir, '..', 'mobile', 'remoteMacAgentEntry.js')\n\t];\n\tlet path: string | undefined;\n\tfor (const candidate of shippedCandidates) {\n\t\tif (await Bun.file(candidate).exists()) {\n\t\t\tpath = candidate;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (!path) {\n\t\tconst sourceCandidates = [\n\t\t\tjoin(import.meta.dir, 'remoteMacAgentEntry.ts'),\n\t\t\tjoin(\n\t\t\t\timport.meta.dir,\n\t\t\t\t'..',\n\t\t\t\t'..',\n\t\t\t\t'src',\n\t\t\t\t'mobile',\n\t\t\t\t'remoteMacAgentEntry.ts'\n\t\t\t)\n\t\t];\n\t\tconst source = await sourceCandidates.reduce<\n\t\t\tPromise<string | undefined>\n\t\t>(\n\t\t\tasync (found, candidate) =>\n\t\t\t\t(await found) ??\n\t\t\t\t((await Bun.file(candidate).exists()) ? candidate : undefined),\n\t\t\tPromise.resolve(undefined)\n\t\t);\n\t\tif (!source)\n\t\t\tthrow new Error(\n\t\t\t\t'The AbsoluteJS installation does not contain its remote Mac agent artifact.'\n\t\t\t);\n\t\tconst outdir = join(\n\t\t\tresolvePath(projectRoot),\n\t\t\t'.absolutejs',\n\t\t\t'mobile',\n\t\t\t'remote-agent'\n\t\t);\n\t\tawait mkdir(outdir, { recursive: true });\n\t\tconst result = await Bun.build({\n\t\t\tentrypoints: [source],\n\t\t\tminify: true,\n\t\t\toutdir,\n\t\t\ttarget: 'bun'\n\t\t});\n\t\tif (!result.success)\n\t\t\tthrow new AggregateError(\n\t\t\t\tresult.logs,\n\t\t\t\t'Failed to build the AbsoluteJS remote Mac agent.'\n\t\t\t);\n\t\tpath = join(outdir, 'remoteMacAgentEntry.js');\n\t}\n\tconst bytes = await Bun.file(path).arrayBuffer();\n\tconst sha256 = createHash('sha256')\n\t\t.update(new Uint8Array(bytes))\n\t\t.digest('hex');\n\n\treturn { bytes: bytes.byteLength, path, sha256 };\n};\n\nconst portableRelativePath = (root: string, path: string) =>\n\trelative(root, path).split(sep).join(posix.sep);\n\nconst portableMobileConfig = (\n\tproject: AbsoluteRemoteIosDevProject\n): MobileConfig => ({\n\tappId: project.config.appId,\n\tappName: project.config.appName,\n\tbundleDirectory: portableRelativePath(\n\t\tproject.projectRoot,\n\t\tproject.config.bundleDirectory\n\t),\n\t...(project.config.deepLinkScheme ||\n\tproject.config.deepLinkHosts.length > 1 ||\n\tproject.config.appleAppIdPrefix\n\t\t? {\n\t\t\t\tdeepLinks: {\n\t\t\t\t\t...(project.config.deepLinkScheme\n\t\t\t\t\t\t? { scheme: project.config.deepLinkScheme }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\thosts: project.config.deepLinkHosts,\n\t\t\t\t\t...(project.config.appleAppIdPrefix\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tapple: {\n\t\t\t\t\t\t\t\t\tappIdPrefix: project.config.appleAppIdPrefix\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {})\n\t\t\t\t}\n\t\t\t}\n\t\t: {}),\n\tentry: project.config.entry,\n\t...(project.config.iosVersion\n\t\t? { ios: { version: project.config.iosVersion } }\n\t\t: {}),\n\tnativeProject: {\n\t\tdirectory: portableRelativePath(\n\t\t\tproject.projectRoot,\n\t\t\tproject.config.nativeProjectDirectory\n\t\t),\n\t\tmode: 'source'\n\t},\n\tplatforms: ['ios'],\n\tserver: { productionOrigin: project.config.productionOrigin }\n});\n\nexport const absoluteRemoteProjectSyncCommands = (\n\tproject: AbsoluteRemoteIosDevProject\n) => {\n\tconst current = project.remoteProjectRoot;\n\tconst parent = posix.dirname(current);\n\tconst staging = posix.join(parent, `.incoming-${randomUUID()}`);\n\tconst previous = posix.join(parent, '.previous');\n\tconst script = [\n\t\t'set -eu',\n\t\t`mkdir -p ${shellQuote(staging)}`,\n\t\t`tar -xf - -C ${shellQuote(staging)}`,\n\t\t`if [ -d ${shellQuote(posix.join(current, 'node_modules'))} ]; then mv ${shellQuote(posix.join(current, 'node_modules'))} ${shellQuote(posix.join(staging, 'node_modules'))}; fi`,\n\t\t`if [ -d ${shellQuote(posix.join(current, '.absolutejs'))} ]; then mv ${shellQuote(posix.join(current, '.absolutejs'))} ${shellQuote(posix.join(staging, '.absolutejs'))}; fi`,\n\t\t`rm -rf ${shellQuote(previous)}`,\n\t\t`if [ -d ${shellQuote(current)} ]; then mv ${shellQuote(current)} ${shellQuote(previous)}; fi`,\n\t\t`mv ${shellQuote(staging)} ${shellQuote(current)}`,\n\t\t`rm -rf ${shellQuote(previous)}`\n\t].join('; ');\n\n\treturn {\n\t\tremote: [\n\t\t\t...absoluteRemoteMacSshBase(project.profile),\n\t\t\t'/bin/sh -lc',\n\t\t\tshellQuote(script)\n\t\t],\n\t\ttar: [\n\t\t\t'tar',\n\t\t\t'--exclude=.git',\n\t\t\t'--exclude=node_modules',\n\t\t\t'--exclude=build',\n\t\t\t'--exclude=.absolutejs',\n\t\t\t'-cf',\n\t\t\t'-',\n\t\t\t'-C',\n\t\t\tproject.projectRoot,\n\t\t\t'.'\n\t\t]\n\t};\n};\n\nexport const syncAbsoluteRemoteMacProject = async (\n\tproject: AbsoluteRemoteIosDevProject\n) => {\n\tconst commands = absoluteRemoteProjectSyncCommands(project);\n\tconst archive = Bun.spawn(commands.tar, {\n\t\tstderr: 'pipe',\n\t\tstdout: 'pipe'\n\t});\n\tconst upload = Bun.spawn(commands.remote, {\n\t\tstderr: 'pipe',\n\t\tstdin: archive.stdout,\n\t\tstdout: 'pipe'\n\t});\n\tconst [archiveExit, uploadExit, archiveError, uploadError] =\n\t\tawait Promise.all([\n\t\t\tarchive.exited,\n\t\t\tupload.exited,\n\t\t\tnew Response(archive.stderr).text(),\n\t\t\tnew Response(upload.stderr).text()\n\t\t]);\n\tif (archiveExit !== 0 || uploadExit !== 0)\n\t\tthrow new Error(\n\t\t\t`Remote Mac project synchronization failed: ${(archiveError || uploadError).trim()}`\n\t\t);\n\tconst install = await defaultTransport.capture([\n\t\t...absoluteRemoteMacSshBase(project.profile),\n\t\t'/bin/sh -lc',\n\t\tshellQuote(\n\t\t\t`cd ${shellQuote(project.remoteProjectRoot)} && ${shellQuote(project.profile.bunPath)} install --frozen-lockfile`\n\t\t)\n\t]);\n\trequireRemoteSuccess(install, 'Remote Mac dependency installation');\n};\n\nconst consumeLines = async (\n\tstream: ReadableStream<Uint8Array>,\n\tonLine: (line: string) => void\n) => {\n\tconst reader = stream.getReader();\n\tconst decoder = new TextDecoder();\n\tlet buffered = '';\n\ttry {\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) break;\n\t\t\tbuffered += decoder.decode(value, { stream: true });\n\t\t\tconst lines = buffered.split(/\\r?\\n/u);\n\t\t\tbuffered = lines.pop() ?? '';\n\t\t\tlines.forEach(onLine);\n\t\t}\n\t\tbuffered += decoder.decode();\n\t\tif (buffered) onLine(buffered);\n\t} finally {\n\t\treader.releaseLock();\n\t}\n};\n\nexport const startAbsoluteRemoteIosDevSession = async (\n\toptions: AbsoluteRemoteIosOptions\n) => {\n\tconst startedAt = performance.now();\n\tconst transport = options.transport ?? defaultTransport;\n\tconst installAgent = options.installAgent ?? installAbsoluteRemoteMacAgent;\n\tconst syncProject = options.syncProject ?? syncAbsoluteRemoteMacProject;\n\tconst agentStartedAt = performance.now();\n\tconst agent = await installAgent(options.project);\n\tconst agentDuration = performance.now() - agentStartedAt;\n\tconst syncStartedAt = performance.now();\n\tawait syncProject(options.project);\n\tconst syncDuration = performance.now() - syncStartedAt;\n\tconst encodedConfig = Buffer.from(\n\t\tJSON.stringify(portableMobileConfig(options.project))\n\t).toString('base64url');\n\tconst encodedCertificateAuthority = options.certificateAuthorityPath\n\t\t? (await readFile(options.certificateAuthorityPath)).toString(\n\t\t\t\t'base64url'\n\t\t\t)\n\t\t: undefined;\n\tconst physicalDevice = options.deviceIdentifier !== undefined;\n\tlet relayPort: number | undefined;\n\tif (physicalDevice)\n\t\trelayPort =\n\t\t\toptions.port <= 49_151\n\t\t\t\t? options.port + 16_384\n\t\t\t\t: options.port - 16_384;\n\tif (physicalDevice && !options.serverHost)\n\t\tthrow new Error(\n\t\t\t'Remote physical iOS development requires the Remote Mac LAN host.'\n\t\t);\n\tconst remoteCommand = [\n\t\t`cd ${shellQuote(options.project.remoteProjectRoot)}`,\n\t\t'&&',\n\t\t'exec',\n\t\tshellQuote(options.project.profile.bunPath),\n\t\tshellQuote(agent.remotePath),\n\t\t'--port',\n\t\tString(options.port),\n\t\t'--mobile-config',\n\t\tshellQuote(encodedConfig),\n\t\t...(encodedCertificateAuthority\n\t\t\t? [\n\t\t\t\t\t'--certificate-authority',\n\t\t\t\t\tshellQuote(encodedCertificateAuthority)\n\t\t\t\t]\n\t\t\t: []),\n\t\t...(options.https ? ['--https'] : []),\n\t\t...(options.deviceIdentifier\n\t\t\t? [\n\t\t\t\t\t'--ios-device',\n\t\t\t\t\tshellQuote(options.deviceIdentifier),\n\t\t\t\t\t'--server-host',\n\t\t\t\t\tshellQuote(options.serverHost ?? ''),\n\t\t\t\t\t'--relay-port',\n\t\t\t\t\tString(relayPort)\n\t\t\t\t]\n\t\t\t: [])\n\t].join(' ');\n\tconst command = [\n\t\t...absoluteRemoteMacSshBase(options.project.profile),\n\t\t'-o',\n\t\t'ExitOnForwardFailure=yes',\n\t\t'-R',\n\t\tphysicalDevice\n\t\t\t? `127.0.0.1:${relayPort}:127.0.0.1:${options.port}`\n\t\t\t: `${options.port}:127.0.0.1:${options.port}`,\n\t\t'/bin/sh -lc',\n\t\tshellQuote(remoteCommand)\n\t];\n\tconst connectStartedAt = performance.now();\n\tconst process = transport.spawn(command, { signal: options.signal });\n\tlet state: AbsoluteIosDevState = 'syncing';\n\tlet ready: Extract<RemoteEvent, { type: 'ready' }> | undefined;\n\tlet fatal: Error | undefined;\n\tconst pending = new Map<\n\t\tstring,\n\t\t{ reject: (error: Error) => void; resolve: (value: unknown) => void }\n\t>();\n\tlet resolveReady!: () => void;\n\tlet rejectReady!: (error: Error) => void;\n\tconst readyPromise = new Promise<void>((resolve, reject) => {\n\t\tresolveReady = resolve;\n\t\trejectReady = reject;\n\t});\n\tconst handleEvent = (event: RemoteEvent) => {\n\t\tif (event.v !== ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION) {\n\t\t\trejectReady(new Error('Remote Mac protocol version mismatch.'));\n\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === 'log') options.log?.(event.message);\n\t\tif (event.type === 'native-log') options.nativeLog?.(event.entry);\n\t\tif (event.type === 'state') {\n\t\t\t({ state } = event);\n\t\t\toptions.onStateChange?.(state);\n\t\t}\n\t\tif (event.type === 'timing') options.onPhaseTiming?.(event);\n\t\tif (event.type === 'ready') {\n\t\t\tready = event;\n\t\t\tresolveReady();\n\t\t}\n\t\tif (event.type === 'fatal') {\n\t\t\tfatal = new Error(event.error);\n\t\t\trejectReady(fatal);\n\t\t}\n\t\tif (event.type === 'response') {\n\t\t\tconst request = pending.get(event.id);\n\t\t\tif (!request) return;\n\t\t\tpending.delete(event.id);\n\t\t\tif (event.ok) request.resolve(event.result);\n\t\t\telse\n\t\t\t\trequest.reject(\n\t\t\t\t\tnew Error(event.error ?? 'Remote command failed.')\n\t\t\t\t);\n\t\t}\n\t};\n\tconst stdoutDone = consumeLines(process.stdout, (line) => {\n\t\tif (!line.startsWith(ABSOLUTE_REMOTE_MAC_EVENT_PREFIX)) return;\n\t\ttry {\n\t\t\thandleEvent(\n\t\t\t\tJSON.parse(\n\t\t\t\t\tline.slice(ABSOLUTE_REMOTE_MAC_EVENT_PREFIX.length)\n\t\t\t\t) as RemoteEvent\n\t\t\t);\n\t\t} catch {\n\t\t\toptions.log?.(`Remote Mac emitted an invalid protocol event.`);\n\t\t}\n\t}).catch((error: unknown) => {\n\t\tfatal =\n\t\t\terror instanceof Error\n\t\t\t\t? error\n\t\t\t\t: new Error('Failed to read the remote Mac protocol stream.');\n\t\trejectReady(fatal);\n\t});\n\tconst stderrDone = consumeLines(process.stderr, (line) =>\n\t\toptions.log?.(`[remote] ${line}`)\n\t).catch((error: unknown) =>\n\t\toptions.log?.(\n\t\t\t`[remote] ${error instanceof Error ? error.message : 'Failed to read SSH stderr.'}`\n\t\t)\n\t);\n\tvoid process.exited.then(async (exitCode) => {\n\t\tawait Promise.all([stdoutDone, stderrDone]);\n\t\tconst error =\n\t\t\tfatal ??\n\t\t\tnew Error(`Remote Mac connection closed with status ${exitCode}.`);\n\t\tif (!ready) rejectReady(error);\n\t\tpending.forEach(({ reject }) => reject(error));\n\t\tpending.clear();\n\n\t\treturn undefined;\n\t});\n\tawait readyPromise;\n\tif (!ready) throw fatal ?? new Error('Remote Mac did not become ready.');\n\tconst totalDuration = performance.now() - startedAt;\n\tlet currentReady: Extract<RemoteEvent, { type: 'ready' }> = {\n\t\t...ready,\n\t\ttimings: {\n\t\t\t...ready.timings,\n\t\t\t'remote-agent': agentDuration,\n\t\t\t'remote-connect': performance.now() - connectStartedAt,\n\t\t\t'remote-sync': syncDuration,\n\t\t\ttotal: totalDuration\n\t\t}\n\t};\n\toptions.log?.(\n\t\t`Remote Mac connected (${options.project.profile.name}); agent ${agent.uploaded ? 'uploaded' : 'cache hit'}, project synced, and iOS ready in ${totalDuration.toFixed(2)}ms.`\n\t);\n\n\tconst request = (\n\t\tcommandName: 'close' | 'rebuild' | 'relaunch' | 'screenshot'\n\t) => {\n\t\tconst id = randomUUID();\n\t\tconst response = new Promise<unknown>((resolve, reject) =>\n\t\t\tpending.set(id, { reject, resolve })\n\t\t);\n\t\tprocess.stdin.write(\n\t\t\t`${JSON.stringify({ command: commandName, id, v: 1 })}\\n`\n\t\t);\n\t\tconst flush = async () => {\n\t\t\tfor (\n\t\t\t\tlet attempt = 0;\n\t\t\t\tattempt < REMOTE_STDIN_FLUSH_ATTEMPTS;\n\t\t\t\tattempt++\n\t\t\t) {\n\t\t\t\ttry {\n\t\t\t\t\tawait process.stdin.flush();\n\n\t\t\t\t\treturn;\n\t\t\t\t} catch {\n\t\t\t\t\t// Bun can transiently report EPERM for a subprocess pipe. Retrying\n\t\t\t\t\t// the same sink flush cannot duplicate the already queued frame.\n\t\t\t\t\tawait Promise.resolve();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn flush().then(() => response);\n\t};\n\tlet closed = false;\n\tconst close = async () => {\n\t\tif (closed) return;\n\t\tclosed = true;\n\t\tawait request('close').catch(() => undefined);\n\t\tprocess.stdin.end();\n\t\tawait process.exited.catch(() => undefined);\n\t};\n\tconst makeSession = (): AbsoluteIosDevSession => ({\n\t\tclose,\n\t\tnativeCacheHit: currentReady.nativeCacheHit,\n\t\tstartedSimulator: currentReady.startedSimulator,\n\t\ttargetKind: currentReady.targetKind,\n\t\ttimings: currentReady.timings,\n\t\tudid: currentReady.udid,\n\t\trebuild: async () => {\n\t\t\tconst rebuildStartedAt = performance.now();\n\t\t\tconst rebuildSyncStartedAt = performance.now();\n\t\t\tawait syncProject(options.project);\n\t\t\tconst rebuildSyncDuration =\n\t\t\t\tperformance.now() - rebuildSyncStartedAt;\n\t\t\tconst result = (await request('rebuild')) as Extract<\n\t\t\t\tRemoteEvent,\n\t\t\t\t{ type: 'ready' }\n\t\t\t>;\n\t\t\tcurrentReady = {\n\t\t\t\t...result,\n\t\t\t\ttimings: {\n\t\t\t\t\t...result.timings,\n\t\t\t\t\t'remote-sync': rebuildSyncDuration,\n\t\t\t\t\ttotal: performance.now() - rebuildStartedAt\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn makeSession();\n\t\t},\n\t\trelaunch: async () => {\n\t\t\tawait request('relaunch');\n\t\t},\n\t\tscreenshot: async (destination) => {\n\t\t\tconst result = (await request('screenshot')) as { data: string };\n\t\t\tconst target = resolvePath(\n\t\t\t\toptions.project.projectRoot,\n\t\t\t\tdestination\n\t\t\t);\n\t\t\tconst targetRelative = relative(\n\t\t\t\toptions.project.projectRoot,\n\t\t\t\ttarget\n\t\t\t);\n\t\t\tif (targetRelative.startsWith('..') || isAbsolute(targetRelative))\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'iOS screenshot must remain inside the project.'\n\t\t\t\t);\n\t\t\tawait mkdir(dirname(target), { recursive: true });\n\t\t\tawait writeFile(target, Buffer.from(result.data, 'base64'));\n\n\t\t\treturn target;\n\t\t},\n\t\tget state() {\n\t\t\treturn state;\n\t\t}\n\t});\n\n\treturn makeSession();\n};\n",
27
28
  "export const ABSOLUTE_REMOTE_MAC_EVENT_PREFIX = 'ABSOLUTE_REMOTE_MAC\\t';\nexport const ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION = 1;\n",
28
29
  "import {\n\taccess,\n\tmkdir,\n\treadFile,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { Elysia } from 'elysia';\nimport type { MobileConfig } from '../../types/build';\nimport {\n\tnormalizeAbsoluteMobileConfig,\n\ttype NormalizedAbsoluteMobileConfig\n} from './config';\n\nconst JSON_HEADERS: Record<string, string> = {\n\t'cache-control': 'public, max-age=300, must-revalidate',\n\t'content-type': 'application/json; charset=utf-8'\n};\nconst OWNERSHIP_FILE = '.absolutejs-mobile-associations.json';\nconst HTTP_OK = 200;\nconst VERIFY_TIMEOUT_MS = 10_000;\n\ntype AssociationEndpoint = {\n\tdocument: unknown;\n\thost: string;\n\tpath: string;\n\tplatform: string;\n};\n\nexport type AbsoluteAssociationRequest = (\n\tinput: string | URL | Request,\n\tinit?: RequestInit\n) => Promise<Response>;\n\nexport const ANDROID_ASSOCIATION_PATH = '/.well-known/assetlinks.json';\nexport const APPLE_ASSOCIATION_PATH = '/.well-known/apple-app-site-association';\n\nexport type AbsoluteMobileAssociationDocuments = {\n\tandroid?: readonly [\n\t\t{\n\t\t\trelation: readonly ['delegate_permission/common.handle_all_urls'];\n\t\t\ttarget: {\n\t\t\t\tnamespace: 'android_app';\n\t\t\t\tpackage_name: string;\n\t\t\t\tsha256_cert_fingerprints: string[];\n\t\t\t};\n\t\t}\n\t];\n\tapple?: {\n\t\tapplinks: {\n\t\t\tdetails: readonly [\n\t\t\t\t{\n\t\t\t\t\tappIDs: readonly [string];\n\t\t\t\t\tcomponents: readonly [{ '/': '/*' }];\n\t\t\t\t}\n\t\t\t];\n\t\t};\n\t};\n};\n\nconst missingIdentity = (field: string, platform: string) =>\n\tnew TypeError(\n\t\t`${field} is required to publish ${platform} deep-link association files.`\n\t);\n\nconst createAppleDocument = (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\trequireAll: boolean\n) => {\n\tif (!config.platforms.includes('ios')) return undefined;\n\tif (!config.appleAppIdPrefix && requireAll) {\n\t\tthrow missingIdentity('mobile.deepLinks.apple.appIdPrefix', 'iOS');\n\t}\n\tif (!config.appleAppIdPrefix) return undefined;\n\n\treturn {\n\t\tapplinks: {\n\t\t\tdetails: [\n\t\t\t\t{\n\t\t\t\t\tappIDs: [\n\t\t\t\t\t\t`${config.appleAppIdPrefix}.${config.appId}`\n\t\t\t\t\t] as const,\n\t\t\t\t\tcomponents: [{ '/': '/*' as const }]\n\t\t\t\t}\n\t\t\t] as const\n\t\t}\n\t};\n};\n\nconst createAndroidDocument = (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\trequireAll: boolean\n) => {\n\tif (!config.platforms.includes('android')) return undefined;\n\tif (config.androidCertificateFingerprints.length === 0 && requireAll) {\n\t\tthrow missingIdentity(\n\t\t\t'mobile.deepLinks.android.sha256CertificateFingerprints',\n\t\t\t'Android'\n\t\t);\n\t}\n\tif (config.androidCertificateFingerprints.length === 0) return undefined;\n\n\treturn [\n\t\t{\n\t\t\trelation: ['delegate_permission/common.handle_all_urls'] as const,\n\t\t\ttarget: {\n\t\t\t\tnamespace: 'android_app' as const,\n\t\t\t\tpackage_name: config.appId,\n\t\t\t\tsha256_cert_fingerprints: config.androidCertificateFingerprints\n\t\t\t}\n\t\t}\n\t] as const;\n};\n\nexport const createAbsoluteMobileAssociationDocuments = (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\toptions: { requireAll?: boolean } = {}\n) => {\n\tconst documents: AbsoluteMobileAssociationDocuments = {};\n\tconst requireAll = options.requireAll === true;\n\tconst android = createAndroidDocument(config, requireAll);\n\tconst apple = createAppleDocument(config, requireAll);\n\tif (android) documents.android = android;\n\tif (apple) documents.apple = apple;\n\n\treturn documents;\n};\n\nconst jsonResponse = (value: unknown) =>\n\tnew Response(`${JSON.stringify(value)}\\n`, { headers: JSON_HEADERS });\n\nexport const createAbsoluteMobileAssociationPlugin = (\n\tmobile: MobileConfig | undefined,\n\tprojectRoot: string,\n\toptions: { requireAll?: boolean } = {}\n) => {\n\tconst plugin = new Elysia({ name: 'absolutejs-mobile-associations' });\n\tif (!mobile) return plugin;\n\tconst config = normalizeAbsoluteMobileConfig(mobile, projectRoot);\n\tconst documents = createAbsoluteMobileAssociationDocuments(config, options);\n\tif (documents.apple) {\n\t\tplugin.get(APPLE_ASSOCIATION_PATH, () => jsonResponse(documents.apple));\n\t}\n\tif (documents.android) {\n\t\tplugin.get(ANDROID_ASSOCIATION_PATH, () =>\n\t\t\tjsonResponse(documents.android)\n\t\t);\n\t}\n\n\treturn plugin;\n};\n\nconst writeAtomic = async (path: string, source: string) => {\n\tlet current: string | undefined;\n\ttry {\n\t\tcurrent = await readFile(path, 'utf8');\n\t} catch (error) {\n\t\tif (\n\t\t\t!(error instanceof Error) ||\n\t\t\t!('code' in error) ||\n\t\t\terror.code !== 'ENOENT'\n\t\t) {\n\t\t\tthrow error;\n\t\t}\n\t}\n\tif (current === source) return false;\n\tconst temporary = `${path}.${crypto.randomUUID()}.tmp`;\n\tawait writeFile(temporary, source, { flag: 'wx' });\n\tawait rename(temporary, path);\n\n\treturn true;\n};\n\nconst exists = async (path: string) => {\n\ttry {\n\t\tawait access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst assertOwnedOutput = async (root: string) => {\n\tconst path = resolve(root, OWNERSHIP_FILE);\n\tlet ownership: unknown;\n\ttry {\n\t\townership = JSON.parse(await readFile(path, 'utf8'));\n\t} catch {\n\t\tthrow new TypeError(\n\t\t\t`Association output ${root} already exists and is not owned by AbsoluteJS.`\n\t\t);\n\t}\n\tif (\n\t\ttypeof ownership !== 'object' ||\n\t\townership === null ||\n\t\tReflect.get(ownership, 'format') !== 1\n\t) {\n\t\tthrow new TypeError(\n\t\t\t`Association output ${root} has an unsupported ownership manifest.`\n\t\t);\n\t}\n};\n\nconst publishGeneratedDirectory = async (temporary: string, root: string) => {\n\tconst hasCurrent = await exists(root);\n\tif (hasCurrent) await assertOwnedOutput(root);\n\tconst backup = `${root}.${crypto.randomUUID()}.previous`;\n\tif (hasCurrent) await rename(root, backup);\n\ttry {\n\t\tawait rename(temporary, root);\n\t} catch (error) {\n\t\tif (hasCurrent) await rename(backup, root);\n\t\tthrow error;\n\t}\n\tif (hasCurrent) await rm(backup, { force: true, recursive: true });\n};\n\nconst materializeHost = async (\n\troot: string,\n\thost: string,\n\tfiles: Array<[string, unknown]>\n) => {\n\tconst directory = resolve(root, host, '.well-known');\n\tawait mkdir(directory, { recursive: true });\n\n\treturn Promise.all(\n\t\tfiles.map(async ([name, document]) => {\n\t\t\tconst path = resolve(directory, name);\n\t\t\tawait writeAtomic(path, `${JSON.stringify(document, null, 2)}\\n`);\n\n\t\t\treturn path;\n\t\t})\n\t);\n};\n\nconst associationEndpoints = (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\tdocuments: AbsoluteMobileAssociationDocuments\n) =>\n\tconfig.deepLinkHosts.flatMap((host) => {\n\t\tconst endpoints: AssociationEndpoint[] = [];\n\t\tif (documents.android)\n\t\t\tendpoints.push({\n\t\t\t\tdocument: documents.android,\n\t\t\t\thost,\n\t\t\t\tpath: ANDROID_ASSOCIATION_PATH,\n\t\t\t\tplatform: 'Android'\n\t\t\t});\n\t\tif (documents.apple)\n\t\t\tendpoints.push({\n\t\t\t\tdocument: documents.apple,\n\t\t\t\thost,\n\t\t\t\tpath: APPLE_ASSOCIATION_PATH,\n\t\t\t\tplatform: 'Apple'\n\t\t\t});\n\n\t\treturn endpoints;\n\t});\n\nexport const materializeAbsoluteMobileAssociationFiles = async (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\toutputDirectory: string\n) => {\n\tconst root = resolve(outputDirectory);\n\tconst temporary = `${root}.${crypto.randomUUID()}.tmp`;\n\tconst documents = createAbsoluteMobileAssociationDocuments(config, {\n\t\trequireAll: true\n\t});\n\tconst files: Array<[string, unknown]> = [];\n\tif (documents.android) files.push(['assetlinks.json', documents.android]);\n\tif (documents.apple) {\n\t\tfiles.push(['apple-app-site-association', documents.apple]);\n\t}\n\tawait mkdir(temporary, { recursive: true });\n\ttry {\n\t\tconst temporaryPaths = (\n\t\t\tawait Promise.all(\n\t\t\t\tconfig.deepLinkHosts.map((host) =>\n\t\t\t\t\tmaterializeHost(temporary, host, files)\n\t\t\t\t)\n\t\t\t)\n\t\t).flat();\n\t\tawait writeAtomic(\n\t\t\tresolve(temporary, OWNERSHIP_FILE),\n\t\t\t`${JSON.stringify({ format: 1, hosts: config.deepLinkHosts }, null, 2)}\\n`\n\t\t);\n\t\tawait publishGeneratedDirectory(temporary, root);\n\t\tconst written = temporaryPaths.map((path) =>\n\t\t\tresolve(root, path.slice(temporary.length + 1))\n\t\t);\n\n\t\treturn { root, written };\n\t} catch (error) {\n\t\tawait rm(temporary, { force: true, recursive: true });\n\t\tthrow error;\n\t}\n};\n\nexport const verifyAbsoluteMobileAssociationFiles = async (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\trequest: AbsoluteAssociationRequest = globalThis.fetch\n) => {\n\tconst documents = createAbsoluteMobileAssociationDocuments(config, {\n\t\trequireAll: true\n\t});\n\tconst results = await Promise.all(\n\t\tassociationEndpoints(config, documents).map(async (endpoint) => {\n\t\t\tconst url = `https://${endpoint.host}${endpoint.path}`;\n\t\t\tconst response = await request(url, {\n\t\t\t\tredirect: 'manual',\n\t\t\t\tsignal: AbortSignal.timeout(VERIFY_TIMEOUT_MS)\n\t\t\t});\n\t\t\tif (response.status !== HTTP_OK) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`${endpoint.platform} association verification failed for ${url}: HTTP ${response.status}; redirects are not allowed.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst contentType = response.headers.get('content-type') ?? '';\n\t\t\tif (!contentType.toLowerCase().startsWith('application/json')) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`${endpoint.platform} association verification failed for ${url}: expected application/json.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tlet document: unknown;\n\t\t\ttry {\n\t\t\t\tdocument = await response.json();\n\t\t\t} catch {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`${endpoint.platform} association verification failed for ${url}: invalid JSON.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tJSON.stringify(document) !== JSON.stringify(endpoint.document)\n\t\t\t) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`${endpoint.platform} association verification failed for ${url}: the hosted identity does not match mobile config.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { platform: endpoint.platform, url };\n\t\t})\n\t);\n\n\treturn { results };\n};\n",
29
30
  "import { resolve } from 'node:path';\nimport type { MobileConfig, MobilePlatform } from '../../types/build';\n\nexport type NormalizedAbsoluteMobileConfig = {\n\tappId: string;\n\tappName: string;\n\tandroidCertificateFingerprints: string[];\n\tappleAppIdPrefix?: string;\n\tbundleDirectory: string;\n\tdeepLinkHosts: string[];\n\tdeepLinkScheme?: string;\n\tengine: 'capacitor';\n\tentry: string;\n\tiosVersion?: string;\n\tnativeProjectDirectory: string;\n\tplatforms: MobilePlatform[];\n\tproductionOrigin: string;\n\tpushAndroidGoogleServicesFile: string;\n};\n\nconst APP_ID_PATTERN = /^[A-Za-z][\\w]*(?:\\.[A-Za-z][\\w]*)+$/;\nconst SCHEME_PATTERN = /^[a-z][a-z0-9+.-]*$/;\nconst APPLE_APP_ID_PREFIX_PATTERN = /^[A-Z0-9]{10}$/;\nconst CERTIFICATE_FINGERPRINT_PATTERN = /^[0-9A-F]{64}$/;\nconst HOSTNAME_PATTERN =\n\t/^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?))*$/;\n\nconst resolveProjectPath = (\n\tprojectRoot: string,\n\tvalue: string,\n\tfield: string\n) => {\n\tconst root = resolve(projectRoot);\n\tconst path = resolve(root, value);\n\tif (path !== root && !path.startsWith(`${root}/`)) {\n\t\tthrow new TypeError(`${field} must remain inside the project root.`);\n\t}\n\n\treturn path;\n};\n\nconst requireText = (value: string, field: string) => {\n\tconst normalized = value.trim();\n\tif (!normalized) throw new TypeError(`${field} must not be empty.`);\n\n\treturn normalized;\n};\n\nconst normalizeEntry = (entry: string | undefined) => {\n\tconst normalized = requireText(entry ?? '/', 'mobile.entry');\n\tif (!normalized.startsWith('/') || normalized.startsWith('//')) {\n\t\tthrow new TypeError(\n\t\t\t'mobile.entry must be an absolute application path.'\n\t\t);\n\t}\n\n\treturn normalized;\n};\n\nconst normalizeProductionOrigin = (value: string) => {\n\tconst parsed = new URL(\n\t\trequireText(value, 'mobile.server.productionOrigin')\n\t);\n\tconst isLoopbackHttp =\n\t\tparsed.protocol === 'http:' &&\n\t\t(parsed.hostname === 'localhost' ||\n\t\t\tparsed.hostname === '127.0.0.1' ||\n\t\t\tparsed.hostname === '[::1]');\n\tif (parsed.protocol !== 'https:' && !isLoopbackHttp) {\n\t\tthrow new TypeError(\n\t\t\t'mobile.server.productionOrigin must use HTTPS, except for a loopback development origin.'\n\t\t);\n\t}\n\tif (\n\t\tparsed.username ||\n\t\tparsed.password ||\n\t\tparsed.pathname !== '/' ||\n\t\tparsed.search ||\n\t\tparsed.hash\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'mobile.server.productionOrigin must be an origin without credentials, path, query, or hash.'\n\t\t);\n\t}\n\n\treturn parsed.origin;\n};\n\nconst normalizePlatforms = (\n\tplatforms: readonly MobilePlatform[] | undefined\n) => {\n\tconst normalized: MobilePlatform[] = [\n\t\t...new Set<MobilePlatform>(platforms ?? ['ios', 'android'])\n\t];\n\tif (normalized.length === 0) {\n\t\tthrow new TypeError(\n\t\t\t'mobile.platforms must contain at least one platform.'\n\t\t);\n\t}\n\n\treturn normalized;\n};\n\nconst normalizeHosts = (\n\thosts: readonly string[] | undefined,\n\tproductionOrigin: string\n) => {\n\tconst normalizeHostname = (host: string) => {\n\t\tconst value = requireText(host, 'mobile.deepLinks.hosts').toLowerCase();\n\t\tif (!HOSTNAME_PATTERN.test(value)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'mobile.deepLinks.hosts entries must be valid hostnames without ports, wildcards, or paths.'\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t};\n\tconst productionHostname = new URL(productionOrigin).hostname;\n\t// IPv6 loopback is valid for a local backend preview but cannot be an\n\t// Android App Link or Apple Universal Link hostname.\n\tconst normalized = new Set<string>(\n\t\tproductionHostname === '[::1]'\n\t\t\t? []\n\t\t\t: [normalizeHostname(productionHostname)]\n\t);\n\tfor (const host of hosts ?? []) {\n\t\tnormalized.add(normalizeHostname(host));\n\t}\n\n\treturn [...normalized].sort();\n};\n\nconst normalizeAppleAppIdPrefix = (value: string | undefined) => {\n\tif (value === undefined) return undefined;\n\tconst normalized = requireText(\n\t\tvalue,\n\t\t'mobile.deepLinks.apple.appIdPrefix'\n\t).toUpperCase();\n\tif (!APPLE_APP_ID_PREFIX_PATTERN.test(normalized)) {\n\t\tthrow new TypeError(\n\t\t\t'mobile.deepLinks.apple.appIdPrefix must contain ten letters or digits.'\n\t\t);\n\t}\n\n\treturn normalized;\n};\n\nconst normalizeIosVersion = (value: string | undefined) => {\n\tif (value === undefined) return undefined;\n\tconst normalized = requireText(value, 'mobile.ios.version');\n\tif (!/^\\d+(?:\\.\\d+){0,2}$/u.test(normalized)) {\n\t\tthrow new TypeError(\n\t\t\t'mobile.ios.version must contain one to three dot-separated integer components, for example 1.4.0.'\n\t\t);\n\t}\n\n\treturn normalized;\n};\n\nconst normalizeCertificateFingerprints = (\n\tvalues: readonly string[] | undefined\n) =>\n\t[\n\t\t...new Set(\n\t\t\t(values ?? [])\n\t\t\t\t.map((value) =>\n\t\t\t\t\trequireText(\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t'mobile.deepLinks.android.sha256CertificateFingerprints'\n\t\t\t\t\t)\n\t\t\t\t\t\t.replaceAll(':', '')\n\t\t\t\t\t\t.toUpperCase()\n\t\t\t\t)\n\t\t\t\t.map((value) => {\n\t\t\t\t\tif (!CERTIFICATE_FINGERPRINT_PATTERN.test(value)) {\n\t\t\t\t\t\tthrow new TypeError(\n\t\t\t\t\t\t\t'mobile.deepLinks.android.sha256CertificateFingerprints entries must be SHA-256 certificate fingerprints.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn value.match(/.{2}/g)?.join(':') ?? value;\n\t\t\t\t})\n\t\t)\n\t].sort();\n\nexport const normalizeAbsoluteMobileConfig = (\n\tconfig: MobileConfig,\n\tprojectRoot: string\n): NormalizedAbsoluteMobileConfig => {\n\tconst appId = requireText(config.appId, 'mobile.appId');\n\tif (!APP_ID_PATTERN.test(appId)) {\n\t\tthrow new TypeError(\n\t\t\t'mobile.appId must use reverse-domain notation, for example com.example.app.'\n\t\t);\n\t}\n\tconst productionOrigin = normalizeProductionOrigin(\n\t\tconfig.server.productionOrigin\n\t);\n\tconst deepLinkScheme = (config.deepLinks?.scheme ?? appId)\n\t\t.trim()\n\t\t.toLowerCase();\n\tif (deepLinkScheme && !SCHEME_PATTERN.test(deepLinkScheme)) {\n\t\tthrow new TypeError(\n\t\t\t'mobile.deepLinks.scheme is not a valid URL scheme.'\n\t\t);\n\t}\n\n\treturn {\n\t\tandroidCertificateFingerprints: normalizeCertificateFingerprints(\n\t\t\tconfig.deepLinks?.android?.sha256CertificateFingerprints\n\t\t),\n\t\tappId,\n\t\tappleAppIdPrefix: normalizeAppleAppIdPrefix(\n\t\t\tconfig.deepLinks?.apple?.appIdPrefix\n\t\t),\n\t\tappName: requireText(config.appName, 'mobile.appName'),\n\t\tbundleDirectory: resolveProjectPath(\n\t\t\tprojectRoot,\n\t\t\tconfig.bundleDirectory ?? '.absolutejs/mobile/web',\n\t\t\t'mobile.bundleDirectory'\n\t\t),\n\t\tdeepLinkHosts: normalizeHosts(\n\t\t\tconfig.deepLinks?.hosts,\n\t\t\tproductionOrigin\n\t\t),\n\t\tdeepLinkScheme,\n\t\tengine: 'capacitor',\n\t\tentry: normalizeEntry(config.entry),\n\t\tiosVersion: normalizeIosVersion(config.ios?.version),\n\t\tnativeProjectDirectory: resolveProjectPath(\n\t\t\tprojectRoot,\n\t\t\tconfig.nativeProject?.directory ?? 'mobile',\n\t\t\t'mobile.nativeProject.directory'\n\t\t),\n\t\tplatforms: normalizePlatforms(config.platforms),\n\t\tproductionOrigin,\n\t\tpushAndroidGoogleServicesFile: resolveProjectPath(\n\t\t\tprojectRoot,\n\t\t\tconfig.pushNotifications?.android?.googleServicesFile ??\n\t\t\t\t'google-services.json',\n\t\t\t'mobile.pushNotifications.android.googleServicesFile'\n\t\t)\n\t};\n};\n",
@@ -38,7 +39,7 @@
38
39
  "import {\n\tactivateAbsoluteMobilePage,\n\ttype AbsoluteMobilePageActivationOptions\n} from './client';\nimport {\n\tABSOLUTE_MOBILE_PAGE_MEDIA_TYPE,\n\tABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\tMOBILE_PAGE_REQUEST_HEADERS\n} from './pageProtocol';\nimport type {\n\tAbsoluteMobileCompatibilityPage,\n\tAbsoluteMobileCompatibilityRoute\n} from './releaseArtifact';\nimport { resolveAbsoluteMobileRoute } from './routeMatcher';\nimport type { AbsoluteMobileAuthManifest } from './nativeAuth';\nimport type { SyncLocalStoreSchemaBundle } from '@absolutejs/sync/client';\n\nexport const ABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT = 1 as const;\n\nexport type AbsoluteMobileFetch = (\n\tinput: RequestInfo | URL,\n\tinit?: RequestInit\n) => Promise<Response>;\n\nexport type AbsoluteMobileClientPage = AbsoluteMobileCompatibilityPage & {\n\tlocalBundlePath: string;\n\tlocalStylePath?: string;\n};\n\nexport type AbsoluteMobileClientManifest = {\n\tauth?: AbsoluteMobileAuthManifest;\n\tappBuild: string;\n\tappId: string;\n\tappName: string;\n\tdeepLinkHosts: string[];\n\tdeepLinkScheme?: string;\n\tdeviceCapabilities: string[];\n\tentry: string;\n\tformat: typeof ABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT;\n\tpages: AbsoluteMobileClientPage[];\n\tproductionOrigin: string;\n\troutes: AbsoluteMobileCompatibilityRoute[];\n\truntime: string;\n\tsync?: {\n\t\tsocketTickets: true;\n\t\tbackground: { endpoint: string; intervalMinutes: number };\n\t\tstorageSchema: SyncLocalStoreSchemaBundle;\n\t};\n};\n\nexport type AbsoluteMobileTransportOptions = {\n\tfetch?: AbsoluteMobileFetch;\n\theaders?: HeadersInit;\n};\n\nconst pageForPathname = (\n\tmanifest: AbsoluteMobileClientManifest,\n\tpathname: string\n) => {\n\tconst route = resolveAbsoluteMobileRoute(manifest.routes, pathname);\n\tif (!route) {\n\t\tthrow new TypeError(`No embedded mobile page owns ${pathname}.`);\n\t}\n\tconst page = manifest.pages.find(\n\t\t(candidate) => candidate.pageId === route.pageId\n\t);\n\tif (!page) {\n\t\tthrow new TypeError(\n\t\t\t`Mobile route ${route.pattern} references missing page ${route.pageId}.`\n\t\t);\n\t}\n\n\treturn page;\n};\n\nconst canonicalBackendUrl = (\n\tmanifest: AbsoluteMobileClientManifest,\n\tpath: string\n) => {\n\tconst origin = new URL(manifest.productionOrigin);\n\tconst url = new URL(path, `${origin.origin}/`);\n\tif (url.origin !== origin.origin) {\n\t\tthrow new TypeError('Mobile transport cannot leave productionOrigin.');\n\t}\n\turl.hash = '';\n\n\treturn url;\n};\n\nexport const createAbsoluteMobilePageRequest = (\n\tmanifest: AbsoluteMobileClientManifest,\n\tpath: string,\n\toptions: AbsoluteMobileTransportOptions = {}\n) => {\n\tconst url = canonicalBackendUrl(manifest, path);\n\tconst page = pageForPathname(manifest, url.pathname);\n\tconst headers = new Headers(options.headers);\n\theaders.set('accept', ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE);\n\theaders.set(MOBILE_PAGE_REQUEST_HEADERS.appBuild, manifest.appBuild);\n\theaders.set(MOBILE_PAGE_REQUEST_HEADERS.pageBundle, page.bundleHash);\n\theaders.set(MOBILE_PAGE_REQUEST_HEADERS.pageContracts, page.contract);\n\theaders.set(MOBILE_PAGE_REQUEST_HEADERS.pageId, page.pageId);\n\theaders.set(\n\t\tMOBILE_PAGE_REQUEST_HEADERS.protocol,\n\t\tString(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)\n\t);\n\theaders.set(MOBILE_PAGE_REQUEST_HEADERS.runtime, manifest.runtime);\n\n\treturn new Request(url, { headers, method: 'GET' });\n};\n\nexport const fetchAbsoluteMobilePage = async (\n\tmanifest: AbsoluteMobileClientManifest,\n\tpath: string,\n\toptions: AbsoluteMobileTransportOptions = {}\n) => {\n\tconst request = createAbsoluteMobilePageRequest(manifest, path, options);\n\tconst response = await (options.fetch ?? globalThis.fetch)(request);\n\tconst value: unknown = await response.json();\n\n\treturn value;\n};\n\nexport const navigateAbsoluteMobilePage = async (\n\tmanifest: AbsoluteMobileClientManifest,\n\tpath: string,\n\toptions: AbsoluteMobileTransportOptions &\n\t\tAbsoluteMobilePageActivationOptions\n) => {\n\tconst envelope = await fetchAbsoluteMobilePage(manifest, path, options);\n\n\treturn activateAbsoluteMobilePage(envelope, options);\n};\n\nexport const resolveAbsoluteMobileDeepLink = (\n\tmanifest: AbsoluteMobileClientManifest,\n\tvalue: string\n) => {\n\tconst url = new URL(value);\n\tif (url.username || url.password) {\n\t\tthrow new TypeError('Mobile deep links cannot contain credentials.');\n\t}\n\tconst isHttpsHost =\n\t\turl.protocol === 'https:' &&\n\t\tmanifest.deepLinkHosts.includes(url.hostname.toLowerCase());\n\tconst isCustomScheme =\n\t\tmanifest.deepLinkScheme !== undefined &&\n\t\turl.protocol === `${manifest.deepLinkScheme}:`;\n\tif (!isHttpsHost && !isCustomScheme) {\n\t\tthrow new TypeError(\n\t\t\t'Mobile deep link is outside the configured app URLs.'\n\t\t);\n\t}\n\n\treturn `${url.pathname || '/'}${url.search}${url.hash}`;\n};\n\nexport const resolveAbsoluteMobileNavigation = (\n\tmanifest: AbsoluteMobileClientManifest,\n\tvalue: string,\n\tlocalOrigin: string\n) => {\n\tconst url = new URL(value, `${localOrigin}/`);\n\tconst local = new URL(localOrigin);\n\tconst production = new URL(manifest.productionOrigin);\n\tconst matches = (candidate: URL, allowed: URL) =>\n\t\tcandidate.protocol === allowed.protocol &&\n\t\tcandidate.host === allowed.host;\n\tif (!matches(url, local) && !matches(url, production)) {\n\t\treturn undefined;\n\t}\n\n\treturn `${url.pathname}${url.search}${url.hash}`;\n};\n",
39
40
  "import { createHash } from 'node:crypto';\nimport {\n\taccess,\n\tmkdir,\n\tmkdtemp,\n\treadFile,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { dirname, join, resolve as resolvePath } from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport {\n\tverifyAbsoluteMobileCompatibilityProducer,\n\ttype AbsoluteMobileStoredCompatibilityRelease\n} from './artifactStore';\nimport type {\n\tAbsoluteMobileCompatibilityDispatcherOptions,\n\tAbsoluteMobileCompatibilityProducerHandler\n} from './compatibilityDispatcher';\nimport {\n\tparseAbsoluteMobileCompatibilityArtifact,\n\tretainAbsoluteMobileCompatibilityArtifacts,\n\ttype AbsoluteMobileCompatibilityArtifact\n} from './releaseArtifact';\n\nexport const ABSOLUTE_MOBILE_MATERIALIZED_BUNDLE_FORMAT = 1 as const;\n\nexport type AbsoluteMobileMaterializedBundleInput = {\n\tcurrentReleaseId: string;\n\treleases: readonly AbsoluteMobileStoredCompatibilityRelease[];\n\troot: string;\n};\n\nexport type AbsoluteMobileMaterializedBundleIndex = {\n\tbundleId: string;\n\tcurrentReleaseId: string;\n\tformat: typeof ABSOLUTE_MOBILE_MATERIALIZED_BUNDLE_FORMAT;\n\treleases: AbsoluteMobileCompatibilityArtifact[];\n};\n\ntype CompatibilityModule = Record<string, unknown>;\ntype CompatibilityModuleLoader = (\n\tmodulePath: string\n) => Promise<CompatibilityModule>;\n\nconst CURRENT_BUNDLE_FILE = 'current.json';\nconst BUNDLES_DIRECTORY = 'bundles';\nconst ARTIFACT_FILE = 'artifact.json';\nconst BUNDLE_ID_PATTERN = /^amb_[a-f0-9]{64}$/;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst errorHasCode = (error: unknown, code: string) =>\n\ttypeof error === 'object' &&\n\terror !== null &&\n\tReflect.get(error, 'code') === code;\n\nconst bundleIdFor = (\n\tcurrentReleaseId: string,\n\treleases: readonly AbsoluteMobileCompatibilityArtifact[]\n) => {\n\tconst identity = JSON.stringify({\n\t\tcurrentReleaseId,\n\t\treleases: releases.map(({ releaseId }) => releaseId)\n\t});\n\n\treturn `amb_${createHash('sha256').update(identity).digest('hex')}`;\n};\n\nconst parseBundleIndex = (value: unknown) => {\n\tif (\n\t\t!isRecord(value) ||\n\t\tvalue.format !== ABSOLUTE_MOBILE_MATERIALIZED_BUNDLE_FORMAT ||\n\t\ttypeof value.bundleId !== 'string' ||\n\t\t!BUNDLE_ID_PATTERN.test(value.bundleId) ||\n\t\ttypeof value.currentReleaseId !== 'string' ||\n\t\t!Array.isArray(value.releases)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'Invalid materialized mobile compatibility bundle.'\n\t\t);\n\t}\n\tconst releases = value.releases.map(\n\t\tparseAbsoluteMobileCompatibilityArtifact\n\t);\n\tconst retained = retainAbsoluteMobileCompatibilityArtifacts(releases);\n\tif (\n\t\tretained.length !== releases.length ||\n\t\tretained.some(\n\t\t\t({ releaseId }, index) => releaseId !== releases[index]?.releaseId\n\t\t)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'Materialized mobile bundle releases are not a retained generation window.'\n\t\t);\n\t}\n\tconst expectedBundleId = bundleIdFor(value.currentReleaseId, releases);\n\tif (value.bundleId !== expectedBundleId) {\n\t\tthrow new TypeError('Materialized mobile bundle integrity failed.');\n\t}\n\tif (releases[0]?.releaseId !== value.currentReleaseId) {\n\t\tthrow new TypeError(\n\t\t\t'Materialized mobile bundle current release is not its newest generation.'\n\t\t);\n\t}\n\n\treturn {\n\t\tbundleId: value.bundleId,\n\t\tcurrentReleaseId: value.currentReleaseId,\n\t\tformat: ABSOLUTE_MOBILE_MATERIALIZED_BUNDLE_FORMAT,\n\t\treleases\n\t} satisfies AbsoluteMobileMaterializedBundleIndex;\n};\n\nconst writeRelease = async (\n\troot: string,\n\trelease: AbsoluteMobileStoredCompatibilityRelease\n) => {\n\tconst directory = join(root, release.artifact.releaseId);\n\tconst producerPath = join(directory, release.artifact.producer.module);\n\tawait mkdir(dirname(producerPath), { recursive: true });\n\tawait Promise.all([\n\t\twriteFile(\n\t\t\tjoin(directory, ARTIFACT_FILE),\n\t\t\t`${JSON.stringify(release.artifact, null, '\\t')}\\n`\n\t\t),\n\t\twriteFile(\n\t\t\tproducerPath,\n\t\t\tnew Uint8Array(await release.producer.arrayBuffer())\n\t\t)\n\t]);\n};\n\nconst installImmutableBundle = async (\n\tbundlesRoot: string,\n\tbundleId: string,\n\treleases: readonly AbsoluteMobileStoredCompatibilityRelease[]\n) => {\n\tconst destination = join(bundlesRoot, bundleId);\n\ttry {\n\t\tawait access(destination);\n\n\t\treturn destination;\n\t} catch (error) {\n\t\tif (!errorHasCode(error, 'ENOENT')) throw error;\n\t}\n\n\tconst staging = await mkdtemp(join(bundlesRoot, '.stage-'));\n\ttry {\n\t\tawait Promise.all(\n\t\t\treleases.map((release) => writeRelease(staging, release))\n\t\t);\n\t\tawait rename(staging, destination);\n\t} catch (error) {\n\t\tawait rm(staging, { force: true, recursive: true });\n\t\tif (errorHasCode(error, 'EEXIST') || errorHasCode(error, 'ENOTEMPTY')) {\n\t\t\treturn destination;\n\t\t}\n\n\t\tthrow error;\n\t}\n\n\treturn destination;\n};\n\nconst readCompatibilityModule: CompatibilityModuleLoader = (modulePath) =>\n\timport(pathToFileURL(modulePath).href);\n\nconst resolveProducerHandler = (\n\tloaded: CompatibilityModule,\n\texportName: string\n) => {\n\tconst value = loaded[exportName];\n\tif (!isRecord(value) || typeof value.handle !== 'function') {\n\t\tthrow new TypeError(\n\t\t\t`Compatibility producer export ${exportName} must expose handle(request).`\n\t\t);\n\t}\n\n\tconst { handle } = value;\n\n\treturn {\n\t\thandle: async (request) => {\n\t\t\tconst response: unknown = await Reflect.apply(handle, value, [\n\t\t\t\trequest\n\t\t\t]);\n\t\t\tif (!(response instanceof Response)) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`Compatibility producer ${exportName} returned a non-Response value.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn response;\n\t\t}\n\t} satisfies AbsoluteMobileCompatibilityProducerHandler;\n};\n\nexport const loadAbsoluteMobileMaterializedBundle = async (\n\troot: string\n): Promise<AbsoluteMobileCompatibilityDispatcherOptions> => {\n\tconst resolvedRoot = resolvePath(root);\n\tconst serialized = await readFile(\n\t\tjoin(resolvedRoot, CURRENT_BUNDLE_FILE),\n\t\t'utf8'\n\t);\n\tconst parsed: unknown = JSON.parse(serialized);\n\tconst index = parseBundleIndex(parsed);\n\tconst bundleRoot = join(resolvedRoot, BUNDLES_DIRECTORY, index.bundleId);\n\n\treturn {\n\t\tartifacts: index.releases,\n\t\tcurrentReleaseId: index.currentReleaseId,\n\t\tloadProducer: async (artifact) => {\n\t\t\tconst modulePath = join(\n\t\t\t\tbundleRoot,\n\t\t\t\tartifact.releaseId,\n\t\t\t\tartifact.producer.module\n\t\t\t);\n\t\t\tawait verifyAbsoluteMobileCompatibilityProducer({\n\t\t\t\tartifact,\n\t\t\t\tproducer: Bun.file(modulePath)\n\t\t\t});\n\t\t\tconst loaded = await readCompatibilityModule(modulePath);\n\n\t\t\treturn resolveProducerHandler(loaded, artifact.producer.exportName);\n\t\t}\n\t};\n};\n\nexport const materializeAbsoluteMobileCompatibilityBundle = async (\n\tinput: AbsoluteMobileMaterializedBundleInput\n) => {\n\tconst releases = await Promise.all(\n\t\tinput.releases.map((release) =>\n\t\t\tverifyAbsoluteMobileCompatibilityProducer(release)\n\t\t)\n\t);\n\tconst artifacts = retainAbsoluteMobileCompatibilityArtifacts(\n\t\treleases.map(({ artifact }) => artifact)\n\t);\n\tif (artifacts.length !== releases.length) {\n\t\tthrow new TypeError(\n\t\t\t'Materialization input must already contain only retained releases.'\n\t\t);\n\t}\n\tif (artifacts[0]?.releaseId !== input.currentReleaseId) {\n\t\tthrow new TypeError(\n\t\t\t'Materialization current release must be the newest generation.'\n\t\t);\n\t}\n\tconst orderedReleases = artifacts.map((artifact) => {\n\t\tconst release = releases.find(\n\t\t\t(candidate) => candidate.artifact.releaseId === artifact.releaseId\n\t\t);\n\t\tif (!release) {\n\t\t\tthrow new TypeError('Materialization input is missing a producer.');\n\t\t}\n\n\t\treturn release;\n\t});\n\tconst root = resolvePath(input.root);\n\tconst bundlesRoot = join(root, BUNDLES_DIRECTORY);\n\tawait mkdir(bundlesRoot, { recursive: true });\n\tconst bundleId = bundleIdFor(input.currentReleaseId, artifacts);\n\tawait installImmutableBundle(bundlesRoot, bundleId, orderedReleases);\n\tconst index = {\n\t\tbundleId,\n\t\tcurrentReleaseId: input.currentReleaseId,\n\t\tformat: ABSOLUTE_MOBILE_MATERIALIZED_BUNDLE_FORMAT,\n\t\treleases: artifacts\n\t} satisfies AbsoluteMobileMaterializedBundleIndex;\n\tconst pointerPath = join(root, CURRENT_BUNDLE_FILE);\n\tconst temporaryPointerPath = join(\n\t\troot,\n\t\t`.current-${crypto.randomUUID()}.json`\n\t);\n\tawait writeFile(\n\t\ttemporaryPointerPath,\n\t\t`${JSON.stringify(index, null, '\\t')}\\n`,\n\t\t{ flag: 'wx' }\n\t);\n\tawait rename(temporaryPointerPath, pointerPath);\n\n\treturn index;\n};\n\nexport const readAbsoluteMobileMaterializedReleases = async (root: string) => {\n\tconst resolvedRoot = resolvePath(root);\n\ttry {\n\t\tconst serialized = await readFile(\n\t\t\tjoin(resolvedRoot, CURRENT_BUNDLE_FILE),\n\t\t\t'utf8'\n\t\t);\n\t\tconst parsed: unknown = JSON.parse(serialized);\n\t\tconst index = parseBundleIndex(parsed);\n\t\tconst bundleRoot = join(\n\t\t\tresolvedRoot,\n\t\t\tBUNDLES_DIRECTORY,\n\t\t\tindex.bundleId\n\t\t);\n\n\t\treturn Promise.all(\n\t\t\tindex.releases.map(async (artifact) => {\n\t\t\t\tconst producer = Bun.file(\n\t\t\t\t\tjoin(\n\t\t\t\t\t\tbundleRoot,\n\t\t\t\t\t\tartifact.releaseId,\n\t\t\t\t\t\tartifact.producer.module\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tawait verifyAbsoluteMobileCompatibilityProducer({\n\t\t\t\t\tartifact,\n\t\t\t\t\tproducer\n\t\t\t\t});\n\n\t\t\t\treturn { artifact, producer };\n\t\t\t})\n\t\t);\n\t} catch (error) {\n\t\tif (errorHasCode(error, 'ENOENT')) return [];\n\n\t\tthrow error;\n\t}\n};\n",
40
41
  "import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\n\nexport const ABSOLUTE_AUTH_PACKAGE = '@absolutejs/auth' as const;\nexport const ABSOLUTE_NATIVE_AUTH_CLIENTS_ENV =\n\t'ABSOLUTE_AUTH_NATIVE_CLIENTS' as const;\nexport const ABSOLUTE_NATIVE_AUTH_SCOPES = ['openid', 'profile'] as const;\nexport const ABSOLUTE_SYNC_PACKAGE = '@absolutejs/sync' as const;\n\nexport type AbsoluteMobileAuthManifest = {\n\tclientId: string;\n\tissuer: string;\n\tredirectUri: string;\n\tscopes: string[];\n};\n\nconst readPackageManifest = (projectRoot: string) => {\n\ttry {\n\t\treturn JSON.parse(\n\t\t\treadFileSync(join(projectRoot, 'package.json'), 'utf8')\n\t\t);\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n\nconst packageManifestHas = (manifest: unknown, packageName: string) => {\n\tif (typeof manifest !== 'object' || manifest === null) return false;\n\n\treturn [\n\t\tReflect.get(manifest, 'dependencies'),\n\t\tReflect.get(manifest, 'devDependencies'),\n\t\tReflect.get(manifest, 'optionalDependencies'),\n\t\tReflect.get(manifest, 'peerDependencies')\n\t].some(\n\t\t(dependencies) =>\n\t\t\ttypeof dependencies === 'object' &&\n\t\t\tdependencies !== null &&\n\t\t\tObject.hasOwn(dependencies, packageName)\n\t);\n};\n\nexport const createAbsoluteMobileAuthManifest = (\n\tconfig: NormalizedAbsoluteMobileConfig\n): AbsoluteMobileAuthManifest => {\n\tconst scheme = config.deepLinkScheme ?? config.appId.toLowerCase();\n\n\treturn {\n\t\tclientId: `absolutejs-native:${config.appId}`,\n\t\tissuer: config.productionOrigin,\n\t\tredirectUri: `${scheme}://auth/callback`,\n\t\tscopes: [...ABSOLUTE_NATIVE_AUTH_SCOPES]\n\t};\n};\n\nexport const installAbsoluteMobileAuthEnvironment = (\n\tprojectRoot: string,\n\tconfig: NormalizedAbsoluteMobileConfig\n) => {\n\tconst auth = resolveAbsoluteMobileAuthManifest(projectRoot, config);\n\tconst serialized = serializeAbsoluteMobileAuthEnvironment(config, auth);\n\tif (serialized === undefined)\n\t\tdelete process.env[ABSOLUTE_NATIVE_AUTH_CLIENTS_ENV];\n\telse process.env[ABSOLUTE_NATIVE_AUTH_CLIENTS_ENV] = serialized;\n\n\treturn auth;\n};\n\nexport const projectUsesAbsoluteAuth = (projectRoot: string) =>\n\tpackageManifestHas(readPackageManifest(projectRoot), ABSOLUTE_AUTH_PACKAGE);\n\nexport const projectUsesAbsoluteSync = (projectRoot: string) =>\n\tpackageManifestHas(readPackageManifest(projectRoot), ABSOLUTE_SYNC_PACKAGE);\n\nexport const resolveAbsoluteMobileAuthManifest = (\n\tprojectRoot: string,\n\tconfig: NormalizedAbsoluteMobileConfig\n) =>\n\tprojectUsesAbsoluteAuth(projectRoot)\n\t\t? createAbsoluteMobileAuthManifest(config)\n\t\t: undefined;\n\nexport const serializeAbsoluteMobileAuthEnvironment = (\n\tconfig: NormalizedAbsoluteMobileConfig,\n\tauth: AbsoluteMobileAuthManifest | undefined\n) =>\n\tauth === undefined\n\t\t? undefined\n\t\t: JSON.stringify([\n\t\t\t\t{\n\t\t\t\t\t...auth,\n\t\t\t\t\tname: `${config.appName} native app`\n\t\t\t\t}\n\t\t\t]);\n",
41
- "export * from './artifactStore';\nexport * from './androidRelease';\nexport * from './androidUpgradeConformance';\nexport * from './iosRelease';\nexport * from './iosConformance';\nexport * from './iosSimulatorController';\nexport * from './iosNativeWatcher';\nexport * from './remoteMacProtocol';\nexport * from './associationFiles';\nexport * from './buildMetadata';\nexport * from './buildPipeline';\nexport * from './buildRelease';\nexport * from './capacitorBundle';\nexport * from './syncSchema';\nexport * from './syncRemediation';\nexport * from './deviceCapabilities';\nexport * from './capacitorProject';\nexport * from './config';\nexport * from './client';\nexport * from './compatibilityDispatcher';\nexport * from './materializedBundle';\nexport * from './mobilePreview';\nexport * from './nativeDeepLinks';\nexport * from './nativeDeviceCapabilities';\nexport * from './nativeAuth';\nexport * from './pageProtocol';\nexport * from './producerContext';\nexport * from './releaseArtifact';\nexport * from './releasePublisher';\nexport * from './routeMetadataTransform';\nexport * from './routeMatcher';\nexport * from './shellHttp';\nexport * from './transport';\n",
42
+ "export * from './artifactStore';\nexport * from './androidRelease';\nexport * from './androidUpgradeConformance';\nexport * from './iosRelease';\nexport * from './iosConformance';\nexport * from './iosSimulatorController';\nexport * from './iosPhysicalDeviceTransport';\nexport * from './iosNativeWatcher';\nexport * from './remoteMacProtocol';\nexport * from './associationFiles';\nexport * from './buildMetadata';\nexport * from './buildPipeline';\nexport * from './buildRelease';\nexport * from './capacitorBundle';\nexport * from './syncSchema';\nexport * from './syncRemediation';\nexport * from './deviceCapabilities';\nexport * from './capacitorProject';\nexport * from './config';\nexport * from './client';\nexport * from './compatibilityDispatcher';\nexport * from './materializedBundle';\nexport * from './mobilePreview';\nexport * from './nativeDeepLinks';\nexport * from './nativeDeviceCapabilities';\nexport * from './nativeAuth';\nexport * from './pageProtocol';\nexport * from './producerContext';\nexport * from './releaseArtifact';\nexport * from './releasePublisher';\nexport * from './routeMetadataTransform';\nexport * from './routeMatcher';\nexport * from './shellHttp';\nexport * from './transport';\n",
42
43
  "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __name = (target, name) => {\n Object.defineProperty(target, \"name\", {\n value: name,\n enumerable: false,\n configurable: true\n });\n return target;\n};\nvar __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => (key in obj) ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\nvar __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol(\"metadata\")] ?? null)];\nvar __decoratorStrings = [\"class\", \"method\", \"getter\", \"setter\", \"accessor\", \"field\", \"value\", \"get\", \"set\"];\nvar __expectFn = (fn) => fn !== undefined && typeof fn !== \"function\" ? __typeError(\"Function expected\") : fn;\nvar __decoratorContext = (kind, name, done, metadata, fns) => ({\n kind: __decoratorStrings[kind],\n name,\n metadata,\n addInitializer: (fn) => done._ ? __typeError(\"Already initialized\") : fns.push(__expectFn(fn || null))\n});\nvar __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol(\"metadata\"), array[3]);\nvar __runInitializers = (array, flags, self, value) => {\n for (var i = 0, fns = array[flags >> 1], n = fns && fns.length;i < n; i++)\n flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar __decorateElement = (array, flags, name, decorators, target, extra) => {\n var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);\n var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {\n get [name]() {\n return __privateGet(this, extra);\n },\n set [name](x) {\n __privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && __name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : __name(target, name);\n for (var i = decorators.length - 1;i >= 0; i--) {\n ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => (name in x) };\n if (k ^ 3)\n access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];\n if (k > 2)\n access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? undefined : { get: desc.get, set: desc.set } : target, ctx);\n done._ = 1;\n if (k ^ 4 || it === undefined)\n __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);\n else if (typeof it !== \"object\" || it === null)\n __typeError(\"Object expected\");\n else\n __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;\n};\n\n// src/client/runtimeTransport.ts\nvar RUNTIME_TRANSPORT = Symbol.for(\"@absolutejs/sync/client-runtime-transport\");\nvar host = globalThis;\nvar isRegistry = (value) => typeof value === \"object\" && value !== null && Array.isArray(Reflect.get(value, \"installations\")) && Array.isArray(Reflect.get(value, \"clients\"));\nvar registry = (() => {\n const existing = host[RUNTIME_TRANSPORT];\n if (isRegistry(existing))\n return existing;\n if (typeof existing === \"object\" && existing !== null && Array.isArray(Reflect.get(existing, \"installations\"))) {\n Reflect.set(existing, \"clients\", []);\n return existing;\n }\n const created = { clients: [], installations: [] };\n Object.defineProperty(host, RUNTIME_TRANSPORT, {\n configurable: false,\n enumerable: false,\n value: created,\n writable: false\n });\n return created;\n})();\nvar getSyncClientRuntimeTransport = () => registry.installations.at(-1)?.transport;\nvar installSyncClientRuntimeTransport = (transport) => {\n const installation = { transport };\n registry.installations.push(installation);\n return () => {\n const index = registry.installations.indexOf(installation);\n if (index >= 0)\n registry.installations.splice(index, 1);\n };\n};\nvar registerSyncRuntimeClient = (client) => {\n registry.clients.push(client);\n return () => {\n const index = registry.clients.indexOf(client);\n if (index >= 0)\n registry.clients.splice(index, 1);\n };\n};\nvar maximum = (values) => {\n const present = values.filter((value) => value !== undefined);\n return present.length === 0 ? undefined : Math.max(...present);\n};\nvar minimum = (values) => {\n const present = values.filter((value) => value !== undefined);\n return present.length === 0 ? undefined : Math.min(...present);\n};\nvar inspectSyncRuntime = async () => {\n const clients = [...registry.clients];\n const statuses = clients.map((client) => client.status());\n const deadLetters = (await Promise.all(clients.map((client) => client.listDeadLetters()))).flat().map((record) => ({\n attempts: record.attempts,\n ...record.rejection?.code ? { code: record.rejection.code } : {},\n createdAt: record.createdAt,\n ...record.deadLetteredAt === undefined ? {} : { deadLetteredAt: record.deadLetteredAt },\n ...record.rejection?.kind ? { kind: record.rejection.kind } : {},\n ...record.rejection?.message ? { message: record.rejection.message } : {},\n name: record.name,\n operationId: record.operationId\n })).sort((left, right) => (left.deadLetteredAt ?? left.createdAt) - (right.deadLetteredAt ?? right.createdAt) || left.operationId.localeCompare(right.operationId));\n const lastError = statuses.findLast((status) => status.lastError)?.lastError;\n return {\n automaticResolutions: statuses.reduce((total, status) => total + status.automaticResolutions, 0),\n clients: clients.length,\n conflicts: deadLetters.filter((record) => record.kind === \"conflict\").length,\n deadLetters,\n ...lastError ? { lastError } : {},\n ...maximum(statuses.map((status) => status.lastSuccessfulPullAt)) === undefined ? {} : {\n lastSuccessfulPullAt: maximum(statuses.map((status) => status.lastSuccessfulPullAt))\n },\n ...maximum(statuses.map((status) => status.lastSuccessfulPushAt)) === undefined ? {} : {\n lastSuccessfulPushAt: maximum(statuses.map((status) => status.lastSuccessfulPushAt))\n },\n ...minimum(statuses.map((status) => status.oldestDeadLetterAt)) === undefined ? {} : {\n oldestDeadLetterAt: minimum(statuses.map((status) => status.oldestDeadLetterAt))\n },\n ...minimum(statuses.map((status) => status.oldestPendingAt)) === undefined ? {} : {\n oldestPendingAt: minimum(statuses.map((status) => status.oldestPendingAt))\n },\n pending: statuses.reduce((total, status) => total + status.pending, 0)\n };\n};\nvar clientWithDeadLetter = async (operationId) => {\n for (const client of registry.clients)\n if ((await client.listDeadLetters()).some((record) => record.operationId === operationId))\n return client;\n throw new Error(`Unknown Sync dead letter \"${operationId}\"`);\n};\nvar retrySyncRuntimeDeadLetter = async (operationId) => (await clientWithDeadLetter(operationId)).retryDeadLetter(operationId);\nvar discardSyncRuntimeDeadLetter = async (operationId) => (await clientWithDeadLetter(operationId)).discardDeadLetter(operationId);\nvar rebaseSyncRuntimeDeadLetter = async (operationId, args) => (await clientWithDeadLetter(operationId)).rebaseDeadLetter(operationId, args);\nexport {\n retrySyncRuntimeDeadLetter,\n registerSyncRuntimeClient,\n rebaseSyncRuntimeDeadLetter,\n installSyncClientRuntimeTransport,\n inspectSyncRuntime,\n getSyncClientRuntimeTransport,\n discardSyncRuntimeDeadLetter\n};\n\n//# debugId=52912A34E403B16964756E2164756E21\n//# sourceMappingURL=runtimeTransport.js.map\n",
43
44
  "import {\n\tdiscardSyncRuntimeDeadLetter,\n\tinspectSyncRuntime,\n\trebaseSyncRuntimeDeadLetter,\n\tretrySyncRuntimeDeadLetter,\n\ttype SyncRuntimeInspection\n} from '@absolutejs/sync/client/runtime';\n\nexport type AbsoluteMobileSyncRemediation = {\n\tdiscard: (operationId: string) => Promise<void>;\n\tinspect: () => Promise<SyncRuntimeInspection>;\n\trebase: (operationId: string, args: unknown) => Promise<string>;\n\tretry: (operationId: string) => Promise<void>;\n};\n\ntype Installation = { bridge: AbsoluteMobileSyncRemediation };\ntype Registry = { installations: Installation[] };\nconst REMEDIATION_REGISTRY = Symbol.for('@absolutejs/mobile-sync-remediation');\nconst LAST_INSTALLATION_OFFSET = -1;\nconst isRegistry = (value: unknown): value is Registry =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\tArray.isArray(Reflect.get(value, 'installations'));\nconst resolveRegistry = () => {\n\tconst existing: unknown = Reflect.get(globalThis, REMEDIATION_REGISTRY);\n\tif (isRegistry(existing)) return existing;\n\tconst created: Registry = { installations: [] };\n\tObject.defineProperty(globalThis, REMEDIATION_REGISTRY, {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\tvalue: created,\n\t\twritable: false\n\t});\n\n\treturn created;\n};\nconst registry = resolveRegistry();\n\n/** Install the native shell's framework-neutral, redacted remediation bridge. */\nexport const getAbsoluteMobileSyncRemediation = () =>\n\tregistry.installations.at(LAST_INSTALLATION_OFFSET)?.bridge;\nexport const installAbsoluteMobileSyncRemediation = (\n\tbridge: AbsoluteMobileSyncRemediation = {\n\t\tdiscard: discardSyncRuntimeDeadLetter,\n\t\tinspect: inspectSyncRuntime,\n\t\trebase: rebaseSyncRuntimeDeadLetter,\n\t\tretry: retrySyncRuntimeDeadLetter\n\t}\n) => {\n\tconst installation: Installation = { bridge };\n\tregistry.installations.push(installation);\n\n\treturn () => {\n\t\tconst index = registry.installations.indexOf(installation);\n\t\tif (index >= 0) registry.installations.splice(index, 1);\n\t};\n};\n",
44
45
  "import { Elysia } from 'elysia';\nimport {\n\tcreateAbsoluteMobileInvalidRequestResponse,\n\tcreateAbsoluteMobilePageErrorResponse,\n\tcreateAbsoluteMobileUpgradeResponse,\n\tMOBILE_PAGE_REQUEST_HEADERS,\n\tparseAbsoluteMobilePageRequest\n} from './pageProtocol';\nimport {\n\tresolveAbsoluteMobileCompatibilityRelease,\n\tretainAbsoluteMobileCompatibilityArtifacts,\n\ttype AbsoluteMobileCompatibilityArtifact\n} from './releaseArtifact';\nimport {\n\tgetCurrentAbsoluteMobileProducerContext,\n\trunWithAbsoluteMobileProducer\n} from './producerContext';\nimport { matchesAbsoluteMobileRoutePattern } from './routeMatcher';\n\nexport type AbsoluteMobileCompatibilityProducerHandler = {\n\thandle: (request: Request) => Promise<Response> | Response;\n};\n\nexport type AbsoluteMobileCompatibilityProducerLoader = (\n\tartifact: AbsoluteMobileCompatibilityArtifact\n) => Promise<AbsoluteMobileCompatibilityProducerHandler>;\n\nexport type AbsoluteMobileCompatibilityDispatcherOptions = {\n\tartifacts: readonly AbsoluteMobileCompatibilityArtifact[];\n\tcurrentReleaseId: string;\n\tloadProducer: AbsoluteMobileCompatibilityProducerLoader;\n};\n\nconst MOBILE_WEBVIEW_ORIGINS = new Set([\n\t'capacitor://localhost',\n\t'http://localhost',\n\t'https://localhost'\n]);\nconst MOBILE_REQUEST_HEADER_NAMES = Object.values(MOBILE_PAGE_REQUEST_HEADERS);\nconst MOBILE_CORS_ALLOW_HEADERS = [\n\t'accept',\n\t'content-type',\n\t'authorization',\n\t'hx-current-url',\n\t'hx-request',\n\t'hx-target',\n\t'hx-trigger',\n\t'hx-trigger-name',\n\t...MOBILE_REQUEST_HEADER_NAMES\n].join(', ');\nconst MOBILE_CORS_METHODS = new Set([\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PUT'\n]);\n\nconst mobileWebViewOrigin = (request: Request) => {\n\tconst origin = request.headers.get('origin');\n\n\treturn origin && MOBILE_WEBVIEW_ORIGINS.has(origin) ? origin : undefined;\n};\n\nconst applyMobileCorsHeaders = (response: Response, origin: string) => {\n\tresponse.headers.set('access-control-allow-credentials', 'true');\n\tresponse.headers.set('access-control-allow-origin', origin);\n\tresponse.headers.append('vary', 'Origin');\n\n\treturn response;\n};\n\nconst finalizeMobileResponse = (request: Request, response: Response) => {\n\tconst origin = mobileWebViewOrigin(request);\n\n\treturn origin ? applyMobileCorsHeaders(response, origin) : response;\n};\n\nconst mobilePreflightResponse = (request: Request) => {\n\tif (request.method !== 'OPTIONS') return undefined;\n\tconst origin = mobileWebViewOrigin(request);\n\tif (!origin) return undefined;\n\tconst requestedHeaders = request.headers.get(\n\t\t'access-control-request-headers'\n\t);\n\tconst requestedMethod =\n\t\trequest.headers.get('access-control-request-method')?.toUpperCase() ??\n\t\t'';\n\tif (!MOBILE_CORS_METHODS.has(requestedMethod)) return undefined;\n\n\treturn new Response(null, {\n\t\theaders: {\n\t\t\t'access-control-allow-credentials': 'true',\n\t\t\t'access-control-allow-headers':\n\t\t\t\trequestedHeaders || MOBILE_CORS_ALLOW_HEADERS,\n\t\t\t'access-control-allow-methods': [...MOBILE_CORS_METHODS].join(', '),\n\t\t\t'access-control-allow-origin': origin,\n\t\t\t'access-control-max-age': '600',\n\t\t\tvary: 'Origin, Access-Control-Request-Headers'\n\t\t},\n\t\tstatus: 204\n\t});\n};\n\nconst artifactOwnsRequest = (\n\tartifact: AbsoluteMobileCompatibilityArtifact,\n\tpageId: string,\n\trequest: Request\n) => {\n\tconst { pathname } = new URL(request.url);\n\n\treturn artifact.routes.some(\n\t\t(route) =>\n\t\t\troute.pageId === pageId &&\n\t\t\troute.method === request.method &&\n\t\t\tmatchesAbsoluteMobileRoutePattern(route.pattern, pathname)\n\t);\n};\n\nconst createProducerResolver = (\n\tloadProducer: AbsoluteMobileCompatibilityProducerLoader\n) => {\n\tconst producers = new Map<\n\t\tstring,\n\t\tPromise<AbsoluteMobileCompatibilityProducerHandler>\n\t>();\n\n\treturn (artifact: AbsoluteMobileCompatibilityArtifact) => {\n\t\tconst cached = producers.get(artifact.releaseId);\n\t\tif (cached) return cached;\n\n\t\tconst loading = loadProducer(artifact).catch((error: unknown) => {\n\t\t\tproducers.delete(artifact.releaseId);\n\n\t\t\tthrow error;\n\t\t});\n\t\tproducers.set(artifact.releaseId, loading);\n\n\t\treturn loading;\n\t};\n};\n\nexport const createAbsoluteMobileCompatibilityDispatcher = (\n\toptions: AbsoluteMobileCompatibilityDispatcherOptions\n) => {\n\tconst artifacts = retainAbsoluteMobileCompatibilityArtifacts(\n\t\toptions.artifacts\n\t);\n\tif (\n\t\t!artifacts.some(\n\t\t\t({ releaseId }) => releaseId === options.currentReleaseId\n\t\t)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'currentReleaseId must identify a retained compatibility artifact.'\n\t\t);\n\t}\n\tconst resolveProducer = createProducerResolver(options.loadProducer);\n\n\treturn new Elysia({ name: 'absolutejs-mobile-compatibility-dispatcher' })\n\t\t.request(async ({ request }) => {\n\t\t\tif (getCurrentAbsoluteMobileProducerContext()) return undefined;\n\t\t\tconst preflight = mobilePreflightResponse(request);\n\t\t\tif (preflight) return preflight;\n\t\t\tconst parsed = parseAbsoluteMobilePageRequest(request);\n\t\t\tif (parsed.kind !== 'mobile') return undefined;\n\n\t\t\tconst resolved = resolveAbsoluteMobileCompatibilityRelease(\n\t\t\t\tparsed.client,\n\t\t\t\tartifacts\n\t\t\t);\n\t\t\tif (resolved.kind === 'upgrade-required') {\n\t\t\t\treturn finalizeMobileResponse(\n\t\t\t\t\trequest,\n\t\t\t\t\tcreateAbsoluteMobileUpgradeResponse(resolved.result)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!artifactOwnsRequest(\n\t\t\t\t\tresolved.artifact,\n\t\t\t\t\tparsed.client.pageId,\n\t\t\t\t\trequest\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn finalizeMobileResponse(\n\t\t\t\t\trequest,\n\t\t\t\t\tcreateAbsoluteMobileInvalidRequestResponse(\n\t\t\t\t\t\t'The requested URL is not assigned to this mobile page.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (resolved.artifact.releaseId === options.currentReleaseId) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst producer = await resolveProducer(resolved.artifact);\n\n\t\t\t\tconst response = await runWithAbsoluteMobileProducer(\n\t\t\t\t\t{\n\t\t\t\t\t\tpage: resolved.page,\n\t\t\t\t\t\treleaseId: resolved.artifact.releaseId\n\t\t\t\t\t},\n\t\t\t\t\t() => producer.handle(request)\n\t\t\t\t);\n\n\t\t\t\treturn finalizeMobileResponse(request, response);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`[Mobile] Failed to load retained producer ${resolved.artifact.releaseId}:`,\n\t\t\t\t\terror\n\t\t\t\t);\n\n\t\t\t\treturn finalizeMobileResponse(\n\t\t\t\t\trequest,\n\t\t\t\t\tcreateAbsoluteMobilePageErrorResponse(parsed.client.pageId)\n\t\t\t\t);\n\t\t\t}\n\t\t})\n\t\t.afterHandle('global', ({ request, responseValue }) => {\n\t\t\tconst origin = mobileWebViewOrigin(request);\n\t\t\tif (!origin || !(responseValue instanceof Response)) return;\n\n\t\t\tapplyMobileCorsHeaders(responseValue, origin);\n\t\t})\n\t\t.as('global');\n};\n",
@@ -51,7 +52,7 @@
51
52
  "// src/contracts.ts\nclass AbsoluteHttpError extends Error {\n code;\n cause;\n status;\n url;\n constructor(code, message, options = {}) {\n super(message);\n this.name = \"AbsoluteHttpError\";\n this.code = code;\n this.cause = options.cause;\n this.status = options.status;\n this.url = options.url;\n }\n}\n// src/url.ts\nvar loopbackHosts = new Set([\"127.0.0.1\", \"[::1]\", \"localhost\"]);\nvar normalizeAbsoluteHttpOrigin = (value) => {\n let url;\n try {\n url = new URL(value);\n } catch (cause) {\n throw new AbsoluteHttpError(\"origin\", \"HTTP origin is invalid.\", {\n cause\n });\n }\n const loopback = url.protocol === \"http:\" && loopbackHosts.has(url.hostname);\n if (url.protocol !== \"https:\" && !loopback)\n throw new AbsoluteHttpError(\"origin\", \"HTTP origin must use HTTPS outside loopback development.\");\n if (url.username || url.password || url.pathname !== \"/\" || url.search || url.hash)\n throw new AbsoluteHttpError(\"origin\", \"HTTP origin cannot contain credentials, a path, query, or fragment.\");\n return url.origin;\n};\nvar resolveAbsoluteHttpUrl = (target, origin) => {\n let url;\n try {\n url = new URL(String(target), `${origin}/`);\n } catch (cause) {\n throw new AbsoluteHttpError(\"origin\", \"HTTP request URL is invalid.\", {\n cause\n });\n }\n if (url.username || url.password)\n throw new AbsoluteHttpError(\"origin\", \"HTTP request URLs cannot contain credentials.\");\n if (url.origin !== origin)\n throw new AbsoluteHttpError(\"origin\", \"Absolute HTTP refused a request outside the configured application origin.\", { url: url.href });\n url.hash = \"\";\n return url;\n};\n\n// src/adapters.ts\nvar createAbsoluteHttpTransport = ({\n fetch: fetchImpl = globalThis.fetch,\n origin,\n runtime\n}) => ({\n fetch: fetchImpl,\n origin: normalizeAbsoluteHttpOrigin(origin),\n runtime\n});\nvar createWebHttpTransport = (options = {}) => {\n const origin = options.origin ?? globalThis.location?.origin;\n if (!origin)\n throw new TypeError(\"The web HTTP transport requires a browser origin or explicit origin.\");\n return createAbsoluteHttpTransport({\n ...options.fetch ? { fetch: options.fetch } : {},\n origin,\n runtime: \"web\"\n });\n};\n\n// src/runtime.ts\nvar RUNTIME_REGISTRY = Symbol.for(\"@absolutejs/http/runtime\");\nvar registryHost = globalThis;\nvar isRuntimeRegistry = (value) => typeof value === \"object\" && value !== null && Array.isArray(Reflect.get(value, \"installations\"));\nvar runtimeRegistry = (() => {\n const existing = registryHost[RUNTIME_REGISTRY];\n if (isRuntimeRegistry(existing))\n return existing;\n const created = { installations: [] };\n Object.defineProperty(registryHost, RUNTIME_REGISTRY, {\n configurable: false,\n enumerable: false,\n value: created,\n writable: false\n });\n return created;\n})();\nvar fallbackTransport = () => {\n if (typeof location !== \"undefined\" && location.origin)\n return createWebHttpTransport();\n throw new AbsoluteHttpError(\"not-configured\", \"Absolute HTTP requires a request-scoped SSR transport outside a browser.\");\n};\nvar getAbsoluteHttpTransport = () => runtimeRegistry.installations.at(-1)?.transport ?? (runtimeRegistry.fallback ??= fallbackTransport());\nvar installAbsoluteHttpTransport = (transport) => {\n const installation = { transport };\n runtimeRegistry.installations.push(installation);\n return () => {\n const index = runtimeRegistry.installations.indexOf(installation);\n if (index >= 0)\n runtimeRegistry.installations.splice(index, 1);\n };\n};\n\n// src/client.ts\nvar forbiddenCredentialHeaders = new Set([\n \"authorization\",\n \"cookie\",\n \"proxy-authorization\"\n]);\nvar transportFor = (configured) => configured ?? getAbsoluteHttpTransport();\nvar safeHeaders = (input) => {\n const headers = new Headers(input);\n for (const name of forbiddenCredentialHeaders) {\n if (headers.has(name))\n throw new AbsoluteHttpError(\"origin\", `Absolute HTTP owns the ${name} credential header for trusted transports.`);\n }\n return headers;\n};\nvar requestFor = (target, options, transport) => {\n const source = target instanceof Request ? target : undefined;\n const requestedUrl = source ? source.url : target;\n const url = resolveAbsoluteHttpUrl(requestedUrl, transport.origin);\n const headers = safeHeaders(options?.headers ?? source?.headers);\n return new Request(source ?? url, {\n ...options,\n credentials: transport.runtime === \"web\" ? \"same-origin\" : \"omit\",\n headers,\n redirect: \"error\"\n });\n};\nvar normalizeFetchError = (caught, url) => {\n if (caught instanceof AbsoluteHttpError)\n return caught;\n if (caught instanceof DOMException && (caught.name === \"AbortError\" || caught.name === \"TimeoutError\"))\n return new AbsoluteHttpError(\"aborted\", \"HTTP request was aborted.\", {\n cause: caught,\n url\n });\n return new AbsoluteHttpError(\"network\", \"HTTP request failed.\", {\n cause: caught,\n url\n });\n};\nvar requireOk = (response) => {\n if (!response.ok)\n throw new AbsoluteHttpError(\"http\", `HTTP request failed with status ${response.status}.`, { status: response.status, url: response.url });\n return response;\n};\nvar parseJson = async (response) => {\n const text = await response.text();\n if (text === \"\")\n return;\n try {\n return JSON.parse(text);\n } catch (cause) {\n throw new AbsoluteHttpError(\"response\", \"HTTP response is not valid JSON.\", {\n cause,\n status: response.status,\n url: response.url\n });\n }\n};\nvar jsonOptions = (method, body, options) => {\n const headers = new Headers(options?.headers);\n if (body !== undefined && !headers.has(\"content-type\"))\n headers.set(\"content-type\", \"application/json\");\n let encoded;\n try {\n encoded = body === undefined ? undefined : JSON.stringify(body);\n } catch (cause) {\n throw new AbsoluteHttpError(\"body\", \"HTTP body is not JSON serializable.\", {\n cause\n });\n }\n return encoded === undefined ? { ...options, headers, method } : { ...options, body: encoded, headers, method };\n};\nvar createAbsoluteHttpClient = (options = {}) => {\n const fetchTrusted = async (input, init) => {\n const transport = transportFor(options.transport);\n const request2 = requestFor(input, init, transport);\n try {\n return await transport.fetch(request2);\n } catch (caught) {\n throw normalizeFetchError(caught, request2.url);\n }\n };\n const request = (target, requestOptions) => fetchTrusted(target, requestOptions);\n const json = async (target, requestOptions) => parseJson(requireOk(await request(target, requestOptions)));\n const jsonMethod = (method, target, body, requestOptions) => json(target, jsonOptions(method, body, requestOptions));\n return {\n delete: (target, requestOptions) => {\n const { body, ...optionsWithoutBody } = requestOptions ?? {};\n return jsonMethod(\"DELETE\", target, body, optionsWithoutBody);\n },\n fetch: fetchTrusted,\n get: (target, requestOptions) => json(target, { ...requestOptions, method: \"GET\" }),\n json,\n origin: () => transportFor(options.transport).origin,\n patch: (target, body, requestOptions) => jsonMethod(\"PATCH\", target, body, requestOptions),\n post: (target, body, requestOptions) => jsonMethod(\"POST\", target, body, requestOptions),\n put: (target, body, requestOptions) => jsonMethod(\"PUT\", target, body, requestOptions),\n request,\n text: async (target, requestOptions) => requireOk(await request(target, requestOptions)).text()\n };\n};\nvar http = createAbsoluteHttpClient();\nexport {\n installAbsoluteHttpTransport,\n http,\n createAbsoluteHttpTransport,\n createAbsoluteHttpClient,\n AbsoluteHttpError\n};\n\n//# debugId=EEC17EF6030AA63A64756E2164756E21\n//# sourceMappingURL=index.js.map\n",
52
53
  "import {\n\tcreateAbsoluteHttpTransport,\n\tinstallAbsoluteHttpTransport,\n\ttype AbsoluteHttpFetch\n} from '@absolutejs/http';\n\nexport const installAbsoluteMobileShellHttp = (\n\torigin: string,\n\tfetch: AbsoluteHttpFetch = globalThis.fetch\n) =>\n\tinstallAbsoluteHttpTransport(\n\t\tcreateAbsoluteHttpTransport({ fetch, origin, runtime: 'native' })\n\t);\n"
53
54
  ],
54
- "mappings": "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",
55
- "debugId": "A29607482483B57664756E2164756E21",
55
+ "mappings": "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",
56
+ "debugId": "ED7CBBBE08CD962364756E2164756E21",
56
57
  "names": []
57
58
  }