@absolutejs/absolute 0.20.0-beta.37 → 0.20.0-beta.39

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/iosPhysicalDeviceTransport.ts", "../src/mobile/iosNativeWatcher.ts", "../src/mobile/remoteMacProtocol.ts", "../src/mobile/remoteMacWire.ts", "../src/mobile/iosDeviceAcceptance.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/iosDeviceAcceptance.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/ciWorkflow.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",
@@ -13,13 +13,13 @@
13
13
  "import { existsSync, readFileSync } from 'node:fs';\nimport { arch, platform } from 'node:os';\nimport { dirname, join, parse } from 'node:path';\nimport type { TelemetryEvent } from '../../types/telemetry';\nimport { getTelemetryConfig } from './scripts/telemetry';\n\nconst checkCandidate = (candidate: string) => {\n\tif (!existsSync(candidate)) {\n\t\treturn null;\n\t}\n\tconst pkg = JSON.parse(readFileSync(candidate, 'utf-8'));\n\n\tif (pkg.name === '@absolutejs/absolute') {\n\t\tconst ver: string = pkg.version;\n\n\t\treturn ver;\n\t}\n\n\treturn null;\n};\n\nconst getVersion = () => {\n\ttry {\n\t\treturn findPackageVersion();\n\t} catch {\n\t\treturn 'unknown';\n\t}\n};\n\nconst findPackageVersion = () => {\n\tlet { dir } = import.meta;\n\n\twhile (dir !== parse(dir).root) {\n\t\tconst candidate = join(dir, 'package.json');\n\t\tconst version = checkCandidate(candidate);\n\t\tif (version) {\n\t\t\treturn version;\n\t\t}\n\t\tdir = dirname(dir);\n\t}\n\n\treturn 'unknown';\n};\n\nexport const sendTelemetryEvent = (\n\tevent: string,\n\tpayload: Record<string, unknown>\n) => {\n\ttry {\n\t\tif (process.env.TELEMETRY_OFF === '1') return;\n\t\tconst config = getTelemetryConfig();\n\t\tif (!config?.enabled) return;\n\n\t\tconst body: TelemetryEvent = {\n\t\t\tanonymousId: config.anonymousId,\n\t\t\tarch: arch(),\n\t\t\tbunVersion: Bun.version,\n\t\t\tevent,\n\t\t\tos: platform(),\n\t\t\tpayload,\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tversion: getVersion()\n\t\t};\n\n\t\tfetch('https://absolutejs.com/api/telemetry', {\n\t\t\tbody: JSON.stringify(body),\n\t\t\theaders: { 'Content-Type': 'application/json' },\n\t\t\tmethod: 'POST'\n\t\t}).catch(() => undefined);\n\t} catch {\n\t\t/* silently ignore */\n\t}\n};\n",
14
14
  "import { createHash } from 'node:crypto';\nimport {\n\tmkdir,\n\tmkdtemp,\n\treadFile,\n\treaddir,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { join, resolve as resolvePath } from 'node:path';\nimport {\n\tparseAbsoluteMobileCompatibilityArtifact,\n\tretainAbsoluteMobileCompatibilityArtifacts,\n\ttype AbsoluteMobileCompatibilityArtifact\n} from './releaseArtifact';\n\nexport type AbsoluteMobileStoredCompatibilityRelease = {\n\tartifact: AbsoluteMobileCompatibilityArtifact;\n\tproducer: Blob;\n};\n\nexport type AbsoluteMobileCompatibilityArtifactStore = {\n\tdelete: (appId: string, releaseId: string) => Promise<void>;\n\tlist: (appId: string) => Promise<AbsoluteMobileCompatibilityArtifact[]>;\n\tread: (\n\t\tappId: string,\n\t\treleaseId: string\n\t) => Promise<AbsoluteMobileStoredCompatibilityRelease | null>;\n\twrite: (release: AbsoluteMobileStoredCompatibilityRelease) => Promise<void>;\n};\n\nexport type AbsoluteMobileFileArtifactStoreOptions = {\n\tmaxProducerBytes?: number;\n\troot: string;\n};\n\nexport type AbsoluteMobileBlobStore = {\n\tdelete: (key: string) => Promise<void>;\n\tget: (key: string) => Promise<Uint8Array | null>;\n\tlist: (options: { cursor?: string; prefix: string }) => Promise<{\n\t\tcursor?: string;\n\t\tobjects: Array<{ key: string }>;\n\t\ttruncated: boolean;\n\t}>;\n\tput: (\n\t\tkey: string,\n\t\tbody: ReadableStream<Uint8Array> | Uint8Array | string,\n\t\toptions?: {\n\t\t\tcontentType?: string;\n\t\t\tmaxBytes?: number;\n\t\t\tmetadata?: Record<string, string>;\n\t\t}\n\t) => Promise<unknown>;\n};\n\nexport type AbsoluteMobileBlobArtifactStoreOptions = {\n\tmaxProducerBytes?: number;\n\tprefix?: string;\n\tstore: AbsoluteMobileBlobStore;\n};\n\nexport type AbsoluteMobileCarryForwardInput = {\n\tcurrent: AbsoluteMobileStoredCompatibilityRelease;\n\tstore: AbsoluteMobileCompatibilityArtifactStore;\n};\n\nconst DEFAULT_MAX_PRODUCER_BYTES = 134_217_728;\nconst SHA_256 = 'sha256';\nconst ARTIFACT_FILE = 'artifact.json';\nconst RELEASE_ID_PATTERN = /^amc_[a-f0-9]{64}$/;\nconst DEFAULT_BLOB_PREFIX = 'absolutejs/mobile-compatibility';\n\nconst hashBlob = async (blob: Blob) => {\n\tconst bytes = new Uint8Array(await blob.arrayBuffer());\n\n\treturn createHash(SHA_256).update(bytes).digest('hex');\n};\n\nconst blobFromBytes = (bytes: Uint8Array) => {\n\tconst buffer = new ArrayBuffer(bytes.byteLength);\n\tnew Uint8Array(buffer).set(bytes);\n\n\treturn new Blob([buffer]);\n};\n\nconst errorHasCode = (error: unknown, code: string) =>\n\ttypeof error === 'object' &&\n\terror !== null &&\n\tReflect.get(error, 'code') === code;\n\nconst appDirectoryName = (appId: string) =>\n\tcreateHash(SHA_256).update(appId).digest('hex');\n\nconst requireReleaseId = (releaseId: string) => {\n\tif (!RELEASE_ID_PATTERN.test(releaseId)) {\n\t\tthrow new TypeError('Invalid mobile compatibility release id.');\n\t}\n\n\treturn releaseId;\n};\n\nconst readStoredArtifact = async (releaseDirectory: string) => {\n\tconst serialized = await readFile(\n\t\tjoin(releaseDirectory, ARTIFACT_FILE),\n\t\t'utf8'\n\t);\n\tconst parsed: unknown = JSON.parse(serialized);\n\n\treturn parseAbsoluteMobileCompatibilityArtifact(parsed);\n};\n\nconst validateStoredIdentity = (\n\tartifact: AbsoluteMobileCompatibilityArtifact,\n\tappId: string,\n\treleaseId: string\n) => {\n\tif (artifact.appId !== appId || artifact.releaseId !== releaseId) {\n\t\tthrow new TypeError(\n\t\t\t'Stored mobile compatibility identity does not match.'\n\t\t);\n\t}\n\n\treturn artifact;\n};\n\ntype BlobKeyLister = (\n\tstore: AbsoluteMobileBlobStore,\n\tprefix: string,\n\tcursor?: string,\n\tkeys?: string[]\n) => Promise<string[]>;\n\nconst listBlobKeys: BlobKeyLister = async (\n\tstore,\n\tprefix,\n\tcursor,\n\tkeys = []\n) => {\n\tconst result = await store.list({ cursor, prefix });\n\tconst collected = [...keys, ...result.objects.map(({ key }) => key)];\n\tif (!result.truncated) return collected;\n\tif (!result.cursor) {\n\t\tthrow new TypeError('Truncated blob listing did not provide a cursor.');\n\t}\n\n\treturn listBlobKeys(store, prefix, result.cursor, collected);\n};\n\nconst normalizeBlobPrefix = (prefix: string) => {\n\tconst normalized = prefix.replace(/^\\/+|\\/+$/g, '');\n\tif (!normalized || normalized.split('/').includes('..')) {\n\t\tthrow new TypeError('Mobile compatibility blob prefix is invalid.');\n\t}\n\n\treturn normalized;\n};\nexport const carryForwardAbsoluteMobileCompatibilityReleases = async (\n\tinput: AbsoluteMobileCarryForwardInput\n) => {\n\tawait verifyAbsoluteMobileCompatibilityProducer(input.current);\n\tawait input.store.write(input.current);\n\tconst available = await input.store.list(input.current.artifact.appId);\n\tconst retained = retainAbsoluteMobileCompatibilityArtifacts(available);\n\tif (retained[0]?.releaseId !== input.current.artifact.releaseId) {\n\t\tthrow new TypeError(\n\t\t\t'Current mobile release generation must be newer than stored history.'\n\t\t);\n\t}\n\tconst releases = await Promise.all(\n\t\tretained.map(({ releaseId }) =>\n\t\t\tinput.store.read(input.current.artifact.appId, releaseId)\n\t\t)\n\t);\n\n\treturn Promise.all(\n\t\treleases.map((release) => {\n\t\t\tif (!release) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t'Compatibility store listed a release it could not read.'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn verifyAbsoluteMobileCompatibilityProducer(release);\n\t\t})\n\t);\n};\n\nexport const createAbsoluteMobileBlobArtifactStore = (\n\toptions: AbsoluteMobileBlobArtifactStoreOptions\n): AbsoluteMobileCompatibilityArtifactStore => {\n\tconst prefix = normalizeBlobPrefix(options.prefix ?? DEFAULT_BLOB_PREFIX);\n\tconst maxProducerBytes =\n\t\toptions.maxProducerBytes ?? DEFAULT_MAX_PRODUCER_BYTES;\n\tconst appPrefix = (appId: string) =>\n\t\t`${prefix}/${appDirectoryName(appId)}/releases`;\n\tconst releasePrefix = (appId: string, releaseId: string) =>\n\t\t`${appPrefix(appId)}/${requireReleaseId(releaseId)}`;\n\tconst artifactKey = (appId: string, releaseId: string) =>\n\t\t`${releasePrefix(appId, releaseId)}/${ARTIFACT_FILE}`;\n\tconst producerKey = (artifact: AbsoluteMobileCompatibilityArtifact) =>\n\t\t`${releasePrefix(artifact.appId, artifact.releaseId)}/${artifact.producer.module}`;\n\tconst readArtifact = async (appId: string, releaseId: string) => {\n\t\tconst bytes = await options.store.get(artifactKey(appId, releaseId));\n\t\tif (!bytes) return null;\n\t\tconst parsed: unknown = JSON.parse(new TextDecoder().decode(bytes));\n\n\t\treturn validateStoredIdentity(\n\t\t\tparseAbsoluteMobileCompatibilityArtifact(parsed),\n\t\t\tappId,\n\t\t\treleaseId\n\t\t);\n\t};\n\n\treturn {\n\t\tdelete: async (appId, releaseId) => {\n\t\t\tconst artifact = await readArtifact(appId, releaseId);\n\t\t\tif (artifact) await options.store.delete(producerKey(artifact));\n\t\t\tawait options.store.delete(artifactKey(appId, releaseId));\n\t\t},\n\t\tlist: async (appId) => {\n\t\t\tconst releaseRoot = `${appPrefix(appId)}/`;\n\t\t\tconst keys = await listBlobKeys(options.store, releaseRoot);\n\t\t\tconst releaseIds = keys\n\t\t\t\t.filter((key) => key.endsWith(`/${ARTIFACT_FILE}`))\n\t\t\t\t.map((key) => key.slice(releaseRoot.length).split('/')[0])\n\t\t\t\t.filter(\n\t\t\t\t\t(releaseId): releaseId is string =>\n\t\t\t\t\t\ttypeof releaseId === 'string' &&\n\t\t\t\t\t\tRELEASE_ID_PATTERN.test(releaseId)\n\t\t\t\t);\n\t\t\tconst artifacts = await Promise.all(\n\t\t\t\t[...new Set(releaseIds)].map((releaseId) =>\n\t\t\t\t\treadArtifact(appId, releaseId)\n\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn artifacts\n\t\t\t\t.filter(\n\t\t\t\t\t(\n\t\t\t\t\t\tartifact\n\t\t\t\t\t): artifact is AbsoluteMobileCompatibilityArtifact =>\n\t\t\t\t\t\tartifact !== null\n\t\t\t\t)\n\t\t\t\t.sort((left, right) => right.generation - left.generation);\n\t\t},\n\t\tread: async (appId, releaseId) => {\n\t\t\tconst artifact = await readArtifact(appId, releaseId);\n\t\t\tif (!artifact) return null;\n\t\t\tconst bytes = await options.store.get(producerKey(artifact));\n\t\t\tif (!bytes) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t'Mobile compatibility artifact is missing its producer.'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { artifact, producer: blobFromBytes(bytes) };\n\t\t},\n\t\twrite: async (release) => {\n\t\t\tconst artifact = parseAbsoluteMobileCompatibilityArtifact(\n\t\t\t\trelease.artifact\n\t\t\t);\n\t\t\tconst validated = await verifyAbsoluteMobileCompatibilityProducer(\n\t\t\t\t{ artifact, producer: release.producer },\n\t\t\t\tmaxProducerBytes\n\t\t\t);\n\t\t\tawait options.store.put(\n\t\t\t\tproducerKey(validated.artifact),\n\t\t\t\tvalidated.producer.stream(),\n\t\t\t\t{\n\t\t\t\t\tcontentType: 'text/javascript; charset=utf-8',\n\t\t\t\t\tmaxBytes: maxProducerBytes,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tappId: validated.artifact.appId,\n\t\t\t\t\t\treleaseId: validated.artifact.releaseId,\n\t\t\t\t\t\tsha256: validated.artifact.producer.bundleHash\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\tawait options.store.put(\n\t\t\t\tartifactKey(\n\t\t\t\t\tvalidated.artifact.appId,\n\t\t\t\t\tvalidated.artifact.releaseId\n\t\t\t\t),\n\t\t\t\t`${JSON.stringify(validated.artifact, null, '\\t')}\\n`,\n\t\t\t\t{ contentType: 'application/json' }\n\t\t\t);\n\t\t}\n\t};\n};\n\nexport const createAbsoluteMobileFileArtifactStore = (\n\toptions: AbsoluteMobileFileArtifactStoreOptions\n): AbsoluteMobileCompatibilityArtifactStore => {\n\tconst root = resolvePath(options.root);\n\tconst maxProducerBytes =\n\t\toptions.maxProducerBytes ?? DEFAULT_MAX_PRODUCER_BYTES;\n\tconst appDirectory = (appId: string) => join(root, appDirectoryName(appId));\n\tconst releaseDirectory = (appId: string, releaseId: string) =>\n\t\tjoin(appDirectory(appId), requireReleaseId(releaseId));\n\tconst acceptExistingRelease = async (\n\t\terror: unknown,\n\t\tartifact: AbsoluteMobileCompatibilityArtifact\n\t) => {\n\t\tif (\n\t\t\t!errorHasCode(error, 'EEXIST') &&\n\t\t\t!errorHasCode(error, 'ENOTEMPTY')\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tconst existing = await readStoredArtifact(\n\t\t\treleaseDirectory(artifact.appId, artifact.releaseId)\n\t\t);\n\n\t\treturn existing.releaseId === artifact.releaseId;\n\t};\n\n\treturn {\n\t\tdelete: async (appId, releaseId) => {\n\t\t\tawait rm(releaseDirectory(appId, releaseId), {\n\t\t\t\tforce: true,\n\t\t\t\trecursive: true\n\t\t\t});\n\t\t},\n\t\tlist: async (appId) => {\n\t\t\tlet entries;\n\t\t\ttry {\n\t\t\t\tentries = await readdir(appDirectory(appId), {\n\t\t\t\t\twithFileTypes: true\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (errorHasCode(error, 'ENOENT')) return [];\n\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst artifacts = await Promise.all(\n\t\t\t\tentries\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(entry) =>\n\t\t\t\t\t\t\tentry.isDirectory() &&\n\t\t\t\t\t\t\tRELEASE_ID_PATTERN.test(entry.name)\n\t\t\t\t\t)\n\t\t\t\t\t.map(async ({ name }) =>\n\t\t\t\t\t\tvalidateStoredIdentity(\n\t\t\t\t\t\t\tawait readStoredArtifact(\n\t\t\t\t\t\t\t\treleaseDirectory(appId, name)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tappId,\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn artifacts.sort(\n\t\t\t\t(left, right) => right.generation - left.generation\n\t\t\t);\n\t\t},\n\t\tread: async (appId, releaseId) => {\n\t\t\tconst directory = releaseDirectory(appId, releaseId);\n\t\t\tlet artifact;\n\t\t\ttry {\n\t\t\t\tartifact = validateStoredIdentity(\n\t\t\t\t\tawait readStoredArtifact(directory),\n\t\t\t\t\tappId,\n\t\t\t\t\treleaseId\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tif (errorHasCode(error, 'ENOENT')) return null;\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tartifact,\n\t\t\t\tproducer: Bun.file(join(directory, artifact.producer.module))\n\t\t\t};\n\t\t},\n\t\twrite: async (release) => {\n\t\t\tconst validatedArtifact = parseAbsoluteMobileCompatibilityArtifact(\n\t\t\t\trelease.artifact\n\t\t\t);\n\t\t\tconst validated = await verifyAbsoluteMobileCompatibilityProducer(\n\t\t\t\t{ artifact: validatedArtifact, producer: release.producer },\n\t\t\t\tmaxProducerBytes\n\t\t\t);\n\t\t\tconst parent = appDirectory(validated.artifact.appId);\n\t\t\tawait mkdir(parent, { recursive: true });\n\t\t\tconst staging = await mkdtemp(join(parent, '.stage-'));\n\t\t\tconst producerPath = join(\n\t\t\t\tstaging,\n\t\t\t\tvalidated.artifact.producer.module\n\t\t\t);\n\t\t\ttry {\n\t\t\t\tawait mkdir(resolvePath(producerPath, '..'), {\n\t\t\t\t\trecursive: true\n\t\t\t\t});\n\t\t\t\tawait Promise.all([\n\t\t\t\t\twriteFile(\n\t\t\t\t\t\tjoin(staging, ARTIFACT_FILE),\n\t\t\t\t\t\t`${JSON.stringify(validated.artifact, null, '\\t')}\\n`\n\t\t\t\t\t),\n\t\t\t\t\twriteFile(\n\t\t\t\t\t\tproducerPath,\n\t\t\t\t\t\tnew Uint8Array(await validated.producer.arrayBuffer())\n\t\t\t\t\t)\n\t\t\t\t]);\n\t\t\t\tawait rename(\n\t\t\t\t\tstaging,\n\t\t\t\t\treleaseDirectory(\n\t\t\t\t\t\tvalidated.artifact.appId,\n\t\t\t\t\t\tvalidated.artifact.releaseId\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tawait rm(staging, { force: true, recursive: true });\n\t\t\t\tif (await acceptExistingRelease(error, validated.artifact))\n\t\t\t\t\treturn;\n\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t};\n};\n\nexport const verifyAbsoluteMobileCompatibilityProducer = async (\n\trelease: AbsoluteMobileStoredCompatibilityRelease,\n\tmaxProducerBytes = DEFAULT_MAX_PRODUCER_BYTES\n) => {\n\tconst { artifact, producer } = release;\n\tif (\n\t\tproducer.size !== artifact.producer.bytes ||\n\t\tproducer.size > maxProducerBytes\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'Mobile compatibility producer size does not match its artifact.'\n\t\t);\n\t}\n\tif ((await hashBlob(producer)) !== artifact.producer.bundleHash) {\n\t\tthrow new TypeError(\n\t\t\t'Mobile compatibility producer hash does not match its artifact.'\n\t\t);\n\t}\n\n\treturn release;\n};\n",
15
15
  "import { createHash } from 'node:crypto';\nimport type {\n\tAbsoluteMobilePageClient,\n\tAbsoluteMobilePageFramework,\n\tAbsoluteMobileUpgradeRequiredResult\n} from './pageProtocol';\n\nexport const ABSOLUTE_MOBILE_COMPATIBILITY_FORMAT = 1 as const;\nexport const ABSOLUTE_MOBILE_RETAINED_GENERATIONS = 3;\n\nexport type AbsoluteMobileCompatibilityPage = {\n\tbundleHash: string;\n\tbundlePath: string;\n\tcontract: string;\n\tframework: AbsoluteMobilePageFramework;\n\tpageId: string;\n\tpropsSchemaHash: string;\n\tstyleBundleHash?: string;\n\tstyleBundlePath?: string;\n};\n\nexport type AbsoluteMobileCompatibilityRoute = {\n\tmethod: 'GET' | 'HEAD';\n\tpageId: string;\n\tpattern: string;\n};\n\nexport type AbsoluteMobileCompatibilityProducer = {\n\tbundleHash: string;\n\tbytes: number;\n\texportName: string;\n\tmodule: string;\n};\n\nexport type AbsoluteMobileCompatibilityArtifactInput = {\n\tappBuild: string;\n\tappId: string;\n\tgeneration: number;\n\tpages: readonly AbsoluteMobileCompatibilityPage[];\n\tproducer: AbsoluteMobileCompatibilityProducer;\n\troutes: readonly AbsoluteMobileCompatibilityRoute[];\n\truntime: string;\n};\n\nexport type AbsoluteMobileCompatibilityArtifact = {\n\tappBuild: string;\n\tappId: string;\n\tformat: typeof ABSOLUTE_MOBILE_COMPATIBILITY_FORMAT;\n\tgeneration: number;\n\tpages: AbsoluteMobileCompatibilityPage[];\n\tproducer: AbsoluteMobileCompatibilityProducer;\n\treleaseId: string;\n\troutes: AbsoluteMobileCompatibilityRoute[];\n\truntime: string;\n};\n\nexport type AbsoluteMobileResolvedRelease =\n\t| {\n\t\t\tartifact: AbsoluteMobileCompatibilityArtifact;\n\t\t\tkind: 'retained';\n\t\t\tpage: AbsoluteMobileCompatibilityPage;\n\t }\n\t| {\n\t\t\tkind: 'upgrade-required';\n\t\t\tresult: AbsoluteMobileUpgradeRequiredResult;\n\t };\n\ntype CanonicalRecord = Record<string, unknown>;\ntype CanonicalValueNormalizer = (\n\tvalue: unknown,\n\tancestors: Set<object>\n) => unknown;\ntype CompatibilityArtifactContent = Omit<\n\tAbsoluteMobileCompatibilityArtifact,\n\t'releaseId'\n>;\n\nconst SHA_256 = 'sha256';\nconst RELEASE_ID_PREFIX = 'amc_';\nconst MODULE_SEGMENT_PARENT = '..';\nconst EXPORT_NAME_PATTERN = /^[A-Z_a-z]\\w*$/;\nconst frameworks = new Set<string>([\n\t'angular',\n\t'ember',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\n\nconst isCanonicalRecord = (value: unknown): value is CanonicalRecord => {\n\tif (typeof value !== 'object' || value === null || Array.isArray(value)) {\n\t\treturn false;\n\t}\n\n\tconst prototype: unknown = Object.getPrototypeOf(value);\n\n\treturn prototype === Object.prototype || prototype === null;\n};\n\nconst enterCanonicalValue = (value: object, ancestors: Set<object>) => {\n\tif (ancestors.has(value)) {\n\t\tthrow new TypeError('Compatibility metadata cannot contain cycles.');\n\t}\n\tancestors.add(value);\n};\n\nconst normalizeCanonicalArray = (value: unknown[], ancestors: Set<object>) => {\n\tenterCanonicalValue(value, ancestors);\n\tconst normalized = value.map((item) =>\n\t\tnormalizeCanonicalValue(item, ancestors)\n\t);\n\tancestors.delete(value);\n\n\treturn normalized;\n};\n\nconst normalizeCanonicalRecord = (\n\tvalue: CanonicalRecord,\n\tancestors: Set<object>\n) => {\n\tenterCanonicalValue(value, ancestors);\n\tconst normalized = Object.fromEntries(\n\t\tObject.entries(value)\n\t\t\t.sort(([left], [right]) => left.localeCompare(right))\n\t\t\t.map(([key, item]) => [\n\t\t\t\tkey,\n\t\t\t\tnormalizeCanonicalValue(item, ancestors)\n\t\t\t])\n\t);\n\tancestors.delete(value);\n\n\treturn normalized;\n};\n\nconst normalizeCanonicalValue: CanonicalValueNormalizer = (\n\tvalue,\n\tancestors\n) => {\n\tif (\n\t\tvalue === null ||\n\t\ttypeof value === 'string' ||\n\t\ttypeof value === 'boolean'\n\t) {\n\t\treturn value;\n\t}\n\tif (typeof value === 'number' && Number.isFinite(value)) return value;\n\tif (Array.isArray(value)) return normalizeCanonicalArray(value, ancestors);\n\tif (isCanonicalRecord(value)) {\n\t\treturn normalizeCanonicalRecord(value, ancestors);\n\t}\n\n\tthrow new TypeError(\n\t\t'Compatibility metadata must contain only finite JSON values.'\n\t);\n};\n\nconst canonicalJson = (value: unknown) =>\n\tJSON.stringify(normalizeCanonicalValue(value, new Set<object>()));\n\nconst hashCanonicalValue = (value: unknown) =>\n\tcreateHash(SHA_256).update(canonicalJson(value)).digest('hex');\n\nconst requireNonEmpty = (value: string, field: string) => {\n\tif (!value.trim()) {\n\t\tthrow new TypeError(`${field} must not be empty.`);\n\t}\n\n\treturn value;\n};\n\nconst isPageFramework = (\n\tvalue: unknown\n): value is AbsoluteMobilePageFramework =>\n\ttypeof value === 'string' && frameworks.has(value);\n\nconst readString = (value: unknown, field: string) => {\n\tif (typeof value !== 'string') {\n\t\tthrow new TypeError(`${field} must be a string.`);\n\t}\n\n\treturn value;\n};\n\nconst parseCompatibilityPage = (value: unknown) => {\n\tif (!isCanonicalRecord(value) || !isPageFramework(value.framework)) {\n\t\tthrow new TypeError('Compatibility artifact contains an invalid page.');\n\t}\n\n\tconst styleBundleHash =\n\t\ttypeof value.styleBundleHash === 'string'\n\t\t\t? value.styleBundleHash\n\t\t\t: undefined;\n\tconst styleBundlePath =\n\t\ttypeof value.styleBundlePath === 'string'\n\t\t\t? value.styleBundlePath\n\t\t\t: undefined;\n\tif (Boolean(styleBundleHash) !== Boolean(styleBundlePath)) {\n\t\tthrow new TypeError(\n\t\t\t'Compatibility page style hash and path must be provided together.'\n\t\t);\n\t}\n\n\treturn {\n\t\tbundleHash: readString(value.bundleHash, 'page.bundleHash'),\n\t\tbundlePath: readString(value.bundlePath, 'page.bundlePath'),\n\t\tcontract: readString(value.contract, 'page.contract'),\n\t\tframework: value.framework,\n\t\tpageId: readString(value.pageId, 'page.pageId'),\n\t\tpropsSchemaHash: readString(\n\t\t\tvalue.propsSchemaHash,\n\t\t\t'page.propsSchemaHash'\n\t\t),\n\t\t...(styleBundleHash && styleBundlePath\n\t\t\t? { styleBundleHash, styleBundlePath }\n\t\t\t: {})\n\t} satisfies AbsoluteMobileCompatibilityPage;\n};\n\nconst parseCompatibilityRoute = (value: unknown) => {\n\tif (\n\t\t!isCanonicalRecord(value) ||\n\t\t(value.method !== 'GET' && value.method !== 'HEAD')\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'Compatibility artifact contains an invalid route.'\n\t\t);\n\t}\n\n\treturn {\n\t\tmethod: value.method,\n\t\tpageId: readString(value.pageId, 'route.pageId'),\n\t\tpattern: readString(value.pattern, 'route.pattern')\n\t} satisfies AbsoluteMobileCompatibilityRoute;\n};\n\nconst parseCompatibilityProducer = (value: unknown) => {\n\tif (!isCanonicalRecord(value) || typeof value.bytes !== 'number') {\n\t\tthrow new TypeError(\n\t\t\t'Compatibility artifact contains an invalid producer.'\n\t\t);\n\t}\n\n\treturn {\n\t\tbundleHash: readString(value.bundleHash, 'producer.bundleHash'),\n\t\tbytes: value.bytes,\n\t\texportName: readString(value.exportName, 'producer.exportName'),\n\t\tmodule: readString(value.module, 'producer.module')\n\t} satisfies AbsoluteMobileCompatibilityProducer;\n};\n\nconst validateProducerModule = (module: string) => {\n\trequireNonEmpty(module, 'producer.module');\n\tconst segments = module.split('/');\n\tif (\n\t\tmodule.startsWith('/') ||\n\t\tmodule.includes('\\\\') ||\n\t\tsegments.includes(MODULE_SEGMENT_PARENT)\n\t) {\n\t\tthrow new TypeError('producer.module must be a safe relative path.');\n\t}\n\n\treturn module;\n};\n\nconst normalizePage = (\n\tpage: AbsoluteMobileCompatibilityPage\n): AbsoluteMobileCompatibilityPage => {\n\tif (Boolean(page.styleBundleHash) !== Boolean(page.styleBundlePath)) {\n\t\tthrow new TypeError(\n\t\t\t'Compatibility page style hash and path must be provided together.'\n\t\t);\n\t}\n\n\treturn {\n\t\tbundleHash: requireNonEmpty(page.bundleHash, 'page.bundleHash'),\n\t\tbundlePath: requireNonEmpty(page.bundlePath, 'page.bundlePath'),\n\t\tcontract: requireNonEmpty(page.contract, 'page.contract'),\n\t\tframework: page.framework,\n\t\tpageId: requireNonEmpty(page.pageId, 'page.pageId'),\n\t\tpropsSchemaHash: requireNonEmpty(\n\t\t\tpage.propsSchemaHash,\n\t\t\t'page.propsSchemaHash'\n\t\t),\n\t\t...(page.styleBundleHash && page.styleBundlePath\n\t\t\t? {\n\t\t\t\t\tstyleBundleHash: requireNonEmpty(\n\t\t\t\t\t\tpage.styleBundleHash,\n\t\t\t\t\t\t'page.styleBundleHash'\n\t\t\t\t\t),\n\t\t\t\t\tstyleBundlePath: requireNonEmpty(\n\t\t\t\t\t\tpage.styleBundlePath,\n\t\t\t\t\t\t'page.styleBundlePath'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t: {})\n\t};\n};\n\nconst normalizeRoute = (\n\troute: AbsoluteMobileCompatibilityRoute\n): AbsoluteMobileCompatibilityRoute => {\n\tif (!route.pattern.startsWith('/')) {\n\t\tthrow new TypeError('route.pattern must start with /.');\n\t}\n\n\treturn {\n\t\tmethod: route.method,\n\t\tpageId: requireNonEmpty(route.pageId, 'route.pageId'),\n\t\tpattern: route.pattern\n\t};\n};\n\nconst assertUnique = (values: string[], field: string) => {\n\tif (new Set(values).size !== values.length) {\n\t\tthrow new TypeError(`${field} values must be unique.`);\n\t}\n};\n\nconst normalizeArtifactContent = (\n\tinput: AbsoluteMobileCompatibilityArtifactInput\n): CompatibilityArtifactContent => {\n\tif (!Number.isSafeInteger(input.generation) || input.generation < 1) {\n\t\tthrow new TypeError('generation must be a positive safe integer.');\n\t}\n\tif (\n\t\t!Number.isSafeInteger(input.producer.bytes) ||\n\t\tinput.producer.bytes < 1\n\t) {\n\t\tthrow new TypeError('producer.bytes must be a positive safe integer.');\n\t}\n\n\tconst pages = input.pages\n\t\t.map(normalizePage)\n\t\t.sort((left, right) => left.pageId.localeCompare(right.pageId));\n\tconst routes = input.routes\n\t\t.map(normalizeRoute)\n\t\t.sort((left, right) =>\n\t\t\t`${left.pattern}:${left.method}`.localeCompare(\n\t\t\t\t`${right.pattern}:${right.method}`\n\t\t\t)\n\t\t);\n\tassertUnique(\n\t\tpages.map(({ pageId }) => pageId),\n\t\t'page.pageId'\n\t);\n\tassertUnique(\n\t\troutes.map(({ method, pattern }) => `${method}:${pattern}`),\n\t\t'route method and pattern'\n\t);\n\tconst pageIds = new Set(pages.map(({ pageId }) => pageId));\n\tconst missingPage = routes.find(({ pageId }) => !pageIds.has(pageId));\n\tif (missingPage) {\n\t\tthrow new TypeError(\n\t\t\t`Route ${missingPage.pattern} references unknown page ${missingPage.pageId}.`\n\t\t);\n\t}\n\tif (!EXPORT_NAME_PATTERN.test(input.producer.exportName)) {\n\t\tthrow new TypeError(\n\t\t\t'producer.exportName must be a JavaScript identifier.'\n\t\t);\n\t}\n\n\treturn {\n\t\tappBuild: requireNonEmpty(input.appBuild, 'appBuild'),\n\t\tappId: requireNonEmpty(input.appId, 'appId'),\n\t\tformat: ABSOLUTE_MOBILE_COMPATIBILITY_FORMAT,\n\t\tgeneration: input.generation,\n\t\tpages,\n\t\tproducer: {\n\t\t\tbundleHash: requireNonEmpty(\n\t\t\t\tinput.producer.bundleHash,\n\t\t\t\t'producer.bundleHash'\n\t\t\t),\n\t\t\tbytes: input.producer.bytes,\n\t\t\texportName: input.producer.exportName,\n\t\t\tmodule: validateProducerModule(input.producer.module)\n\t\t},\n\t\troutes,\n\t\truntime: requireNonEmpty(input.runtime, 'runtime')\n\t};\n};\n\nexport const createAbsoluteMobileCompatibilityArtifact = (\n\tinput: AbsoluteMobileCompatibilityArtifactInput\n) => {\n\tconst content = normalizeArtifactContent(input);\n\n\treturn {\n\t\t...content,\n\t\treleaseId: `${RELEASE_ID_PREFIX}${hashCanonicalValue(content)}`\n\t} satisfies AbsoluteMobileCompatibilityArtifact;\n};\n\nexport const hashAbsoluteMobilePropsSchema = (schema: unknown) =>\n\thashCanonicalValue(schema);\n\nexport const parseAbsoluteMobileCompatibilityArtifact = (value: unknown) => {\n\tif (\n\t\t!isCanonicalRecord(value) ||\n\t\tvalue.format !== ABSOLUTE_MOBILE_COMPATIBILITY_FORMAT ||\n\t\ttypeof value.generation !== 'number' ||\n\t\t!Array.isArray(value.pages) ||\n\t\t!Array.isArray(value.routes)\n\t) {\n\t\tthrow new TypeError('Invalid mobile compatibility artifact.');\n\t}\n\n\tconst releaseId = readString(value.releaseId, 'releaseId');\n\tconst artifact = createAbsoluteMobileCompatibilityArtifact({\n\t\tappBuild: readString(value.appBuild, 'appBuild'),\n\t\tappId: readString(value.appId, 'appId'),\n\t\tgeneration: value.generation,\n\t\tpages: value.pages.map(parseCompatibilityPage),\n\t\tproducer: parseCompatibilityProducer(value.producer),\n\t\troutes: value.routes.map(parseCompatibilityRoute),\n\t\truntime: readString(value.runtime, 'runtime')\n\t});\n\tif (artifact.releaseId !== releaseId) {\n\t\tthrow new TypeError('Mobile compatibility artifact integrity failed.');\n\t}\n\n\treturn artifact;\n};\n\nexport const resolveAbsoluteMobileCompatibilityRelease = (\n\tclient: AbsoluteMobilePageClient,\n\tartifacts: readonly AbsoluteMobileCompatibilityArtifact[]\n): AbsoluteMobileResolvedRelease => {\n\tconst artifact = artifacts.find(\n\t\t(candidate) =>\n\t\t\tcandidate.appBuild === client.appBuild &&\n\t\t\tcandidate.runtime === client.runtime\n\t);\n\tif (!artifact) {\n\t\treturn {\n\t\t\tkind: 'upgrade-required',\n\t\t\tresult: {\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: client.pageId,\n\t\t\t\treason: 'app-release'\n\t\t\t}\n\t\t};\n\t}\n\n\tconst page = artifact.pages.find(\n\t\t(candidate) =>\n\t\t\tcandidate.pageId === client.pageId &&\n\t\t\tcandidate.bundleHash === client.pageBundle &&\n\t\t\tclient.pageContracts.includes(candidate.contract)\n\t);\n\tif (!page) {\n\t\treturn {\n\t\t\tkind: 'upgrade-required',\n\t\t\tresult: {\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: client.pageId,\n\t\t\t\treason: 'page-contract',\n\t\t\t\tsupportedContracts: artifact.pages\n\t\t\t\t\t.filter(({ pageId }) => pageId === client.pageId)\n\t\t\t\t\t.map(({ contract }) => contract)\n\t\t\t}\n\t\t};\n\t}\n\n\treturn { artifact, kind: 'retained', page };\n};\n\nexport const retainAbsoluteMobileCompatibilityArtifacts = (\n\tartifacts: readonly AbsoluteMobileCompatibilityArtifact[]\n) => {\n\tconst appIds = new Set(artifacts.map(({ appId }) => appId));\n\tif (appIds.size > 1) {\n\t\tthrow new TypeError(\n\t\t\t'Cannot retain compatibility artifacts for multiple apps.'\n\t\t);\n\t}\n\tassertUnique(\n\t\tartifacts.map(({ appBuild }) => appBuild),\n\t\t'appBuild'\n\t);\n\tassertUnique(\n\t\tartifacts.map(({ generation }) => String(generation)),\n\t\t'generation'\n\t);\n\n\treturn [...artifacts]\n\t\t.sort((left, right) => right.generation - left.generation)\n\t\t.slice(0, ABSOLUTE_MOBILE_RETAINED_GENERATIONS);\n};\n",
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",
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\tsigning?: {\n\t\tkeyAlias: string;\n\t\tkeyPasswordEnvironment: string;\n\t\tkeystorePath: string;\n\t\tstorePasswordEnvironment: string;\n\t};\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 signAab = (\n\tartifactPath: string,\n\tcapture: NonNullable<BuildAbsoluteAndroidReleaseOptions['capture']>,\n\tjarsigner: string,\n\tsigning: NonNullable<BuildAbsoluteAndroidReleaseOptions['signing']>\n) => {\n\tconst result = capture([\n\t\tjarsigner,\n\t\t'-keystore',\n\t\tsigning.keystorePath,\n\t\t'-storepass:env',\n\t\tsigning.storePasswordEnvironment,\n\t\t'-keypass:env',\n\t\tsigning.keyPasswordEnvironment,\n\t\tartifactPath,\n\t\tsigning.keyAlias\n\t]);\n\tif (result.exitCode !== 0)\n\t\tthrow new TypeError(\n\t\t\t'jarsigner could not sign the Android App Bundle with the configured CI identity.'\n\t\t);\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 jarsigner =\n\t\toptions.jarsigner === undefined\n\t\t\t? Bun.which('jarsigner')\n\t\t\t: options.jarsigner;\n\tlet signed = verifyAabSignature(artifactPath, capture, jarsigner);\n\tif (signed === false && options.signing) {\n\t\tif (!jarsigner)\n\t\t\tthrow new TypeError(\n\t\t\t\t'Could not sign the Android App Bundle because jarsigner is unavailable.'\n\t\t\t);\n\t\tsignAab(artifactPath, capture, jarsigner, options.signing);\n\t\tsigned = verifyAabSignature(artifactPath, capture, jarsigner);\n\t\tif (!signed)\n\t\t\tthrow new TypeError(\n\t\t\t\t'Android App Bundle signature verification failed after CI signing.'\n\t\t\t);\n\t}\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
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
- "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\toptions: { includePublicBundle?: boolean } = {}\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\t(projectRelative === 'App/App/public' &&\n\t\t\t\t\t\t\toptions.includePublicBundle !== true));\n\t\t\t\tif (ignored) return [];\n\t\t\t\tif (entry.isDirectory())\n\t\t\t\t\treturn fingerprintFiles(root, path, options);\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\toptions: { includePublicBundle?: boolean } = {}\n) => {\n\tconst hasher = createHash('sha256');\n\tconst files = await fingerprintFiles(\n\t\tnativeDirectory,\n\t\tnativeDirectory,\n\t\toptions\n\t);\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",
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\tdevelopmentTeam?: string;\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 developmentTeamArgument = (value: string | undefined) => {\n\tif (value === undefined) return undefined;\n\tconst team = value.trim().toUpperCase();\n\tif (!/^[A-Z0-9]{10}$/u.test(team))\n\t\tthrow new TypeError(\n\t\t\t'iOS development team must contain ten letters or digits.'\n\t\t);\n\n\treturn `DEVELOPMENT_TEAM=${team}`;\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\toptions: { includePublicBundle?: boolean } = {}\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\t(projectRelative === 'App/App/public' &&\n\t\t\t\t\t\t\toptions.includePublicBundle !== true));\n\t\t\t\tif (ignored) return [];\n\t\t\t\tif (entry.isDirectory())\n\t\t\t\t\treturn fingerprintFiles(root, path, options);\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\toptions: { includePublicBundle?: boolean } = {}\n) => {\n\tconst hasher = createHash('sha256');\n\tconst files = await fingerprintFiles(\n\t\tnativeDirectory,\n\t\tnativeDirectory,\n\t\toptions\n\t);\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 developmentTeam = developmentTeamArgument(\n\t\t\toptions.developmentTeam\n\t\t);\n\t\tconst versionArguments = [\n\t\t\t`MARKETING_VERSION=${marketingVersion}`,\n\t\t\t...(developmentTeam ? [developmentTeam] : []),\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
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\t/** Launch the locally embedded production web bundle. `port` remains the\n\t * configured backend port and no temporary development URL is projected. */\n\tembeddedBundle?: boolean;\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\toptions: { includePublicBundle?: boolean } = {}\n) => fingerprintAbsoluteIosNativeProject(project.nativeDirectory, options);\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\tif (options.embeddedBundle !== true)\n\t\t\tawait writeDevProjection(\n\t\t\t\tproject,\n\t\t\t\toptions.port,\n\t\t\t\toptions.https === true,\n\t\t\t\tserverHost\n\t\t\t);\n\t\tthrowIfAborted(options.signal);\n\t\tconst fingerprintStartedAt = performance.now();\n\t\tconst fingerprintPromise = fingerprintAbsoluteIosDevProject(project, {\n\t\t\tincludePublicBundle: options.embeddedBundle === true\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\toptions.embeddedBundle === true\n\t\t\t\t? `iOS ${targetKind} connected with the embedded bundle and backend on port ${options.port} in ${getDurationString(timings.total)} (${nativeCacheHit ? 'native cache hit' : 'native build installed'}).`\n\t\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
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",
@@ -32,7 +32,7 @@
32
32
  "import type { AbsoluteMobilePageFramework } from './pageProtocol';\n\nexport const ABSOLUTE_MOBILE_ROUTE_DETAIL = 'x-absolute-mobile' as const;\n\nexport type AbsoluteMobileBuildPageMetadata = {\n\tbundleKey: string;\n\tcontract: string;\n\tframework: AbsoluteMobilePageFramework;\n\tpageId: string;\n\tpropsSchemaHash: string;\n};\n\nconst frameworks = new Set<string>([\n\t'angular',\n\t'ember',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst isPageFramework = (\n\tvalue: unknown\n): value is AbsoluteMobilePageFramework =>\n\ttypeof value === 'string' && frameworks.has(value);\n\nexport const parseAbsoluteMobileBuildPageMetadata = (\n\tvalue: unknown\n): AbsoluteMobileBuildPageMetadata | undefined => {\n\tif (!isRecord(value)) return undefined;\n\tif (\n\t\ttypeof value.bundleKey !== 'string' ||\n\t\ttypeof value.contract !== 'string' ||\n\t\t!isPageFramework(value.framework) ||\n\t\ttypeof value.pageId !== 'string' ||\n\t\ttypeof value.propsSchemaHash !== 'string'\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tbundleKey: value.bundleKey,\n\t\tcontract: value.contract,\n\t\tframework: value.framework,\n\t\tpageId: value.pageId,\n\t\tpropsSchemaHash: value.propsSchemaHash\n\t};\n};\n",
33
33
  "import { readFile } from 'node:fs/promises';\nimport { join, resolve } from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport type { Elysia } from 'elysia';\nimport type { MobileConfig } from '../../types/build';\nimport { buildAbsoluteMobileCompatibilityRelease } from './buildRelease';\nimport { materializeAbsoluteCapacitorWebBundle } from './capacitorBundle';\nimport { normalizeAbsoluteMobileConfig } from './config';\nimport {\n\tmaterializeAbsoluteMobileCompatibilityBundle,\n\treadAbsoluteMobileMaterializedReleases\n} from './materializedBundle';\nimport { ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION } from './pageProtocol';\nimport { retainAbsoluteMobileCompatibilityArtifacts } from './releaseArtifact';\nimport {\n\tprojectUsesAbsoluteSync,\n\tresolveAbsoluteMobileAuthManifest\n} from './nativeAuth';\nimport { discoverAbsoluteSyncSchema } from './syncSchema';\nimport {\n\tassertAbsoluteDeviceCapabilityPackages,\n\tresolveAbsoluteDeviceCapabilityPlan\n} from './deviceCapabilities';\n\nexport type FinalizeAbsoluteMobileBuildOptions = {\n\tbuildDirectory: string;\n\tconfigPath?: string;\n\tmobile: MobileConfig;\n\tproducerPath: string;\n\tprojectRoot: string;\n};\n\ntype ServerModule = {\n\tapp?: unknown;\n\tdefault?: unknown;\n\tserver?: unknown;\n};\n\ntype StringRecord = Record<string, string>;\n\nconst isElysiaApp = (\n\tvalue: unknown\n): value is Pick<Elysia, 'compile' | 'modules' | 'routes'> =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\ttypeof Reflect.get(value, 'compile') === 'function' &&\n\tArray.isArray(Reflect.get(value, 'routes'));\n\nconst isStringRecord = (value: unknown): value is StringRecord =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t!Array.isArray(value) &&\n\tObject.values(value).every((entry) => typeof entry === 'string');\n\nconst serverExportName = (loaded: ServerModule, app: unknown) => {\n\tif (loaded.server === app) return 'server';\n\tif (loaded.app === app) return 'app';\n\n\treturn 'default';\n};\n\nconst restoreEnvironmentVariable = (\n\tname:\n\t\t| 'ABSOLUTE_BUILD_DIR'\n\t\t| 'ABSOLUTE_COMPILED_RUNTIME'\n\t\t| 'ABSOLUTE_CONFIG',\n\tprevious: string | undefined\n) => {\n\tif (previous !== undefined) process.env[name] = previous;\n\telse delete process.env[name];\n};\n\nconst requireRelease = <T>(releases: Map<string, T>, releaseId: string) => {\n\tconst release = releases.get(releaseId);\n\tif (!release) {\n\t\tthrow new TypeError(`Missing retained mobile release ${releaseId}.`);\n\t}\n\n\treturn release;\n};\n\nconst loadServerApp = async (producerPath: string) => {\n\tconst loaded: ServerModule = await import(\n\t\t`${pathToFileURL(producerPath).href}?absolute-mobile-capture=${crypto.randomUUID()}`\n\t);\n\tconst candidates = [loaded.server, loaded.app, loaded.default];\n\tconst app = candidates.find(isElysiaApp);\n\tif (!app) {\n\t\tthrow new TypeError(\n\t\t\t'Mobile builds require the server entry to export its Elysia app as server, app, or default.'\n\t\t);\n\t}\n\tconst exportName = serverExportName(loaded, app);\n\n\treturn { app, exportName };\n};\n\nexport const finalizeAbsoluteMobileCompatibilityBuild = async (\n\toptions: FinalizeAbsoluteMobileBuildOptions\n) => {\n\tconst buildDirectory = resolve(options.buildDirectory);\n\tconst mobile = normalizeAbsoluteMobileConfig(\n\t\toptions.mobile,\n\t\toptions.projectRoot\n\t);\n\tconst root = join(buildDirectory, '.absolutejs', 'mobile-compatibility');\n\tconst [manifestSource, previous] = await Promise.all([\n\t\treadFile(join(buildDirectory, 'manifest.json'), 'utf8'),\n\t\treadAbsoluteMobileMaterializedReleases(root)\n\t]);\n\tconst manifest: unknown = JSON.parse(manifestSource);\n\tif (!isStringRecord(manifest)) {\n\t\tthrow new TypeError(\n\t\t\t'Invalid AbsoluteJS build manifest for mobile capture.'\n\t\t);\n\t}\n\tconst previousBuildDirectory = process.env.ABSOLUTE_BUILD_DIR;\n\tconst previousCompiledRuntime = process.env.ABSOLUTE_COMPILED_RUNTIME;\n\tconst previousConfigPath = process.env.ABSOLUTE_CONFIG;\n\tprocess.env.ABSOLUTE_BUILD_DIR = buildDirectory;\n\tprocess.env.ABSOLUTE_COMPILED_RUNTIME = '1';\n\tif (options.configPath) {\n\t\tprocess.env.ABSOLUTE_CONFIG = resolve(\n\t\t\toptions.projectRoot,\n\t\t\toptions.configPath\n\t\t);\n\t}\n\tlet loaded: Awaited<ReturnType<typeof loadServerApp>>;\n\ttry {\n\t\tloaded = await loadServerApp(resolve(options.producerPath));\n\t} finally {\n\t\trestoreEnvironmentVariable(\n\t\t\t'ABSOLUTE_BUILD_DIR',\n\t\t\tpreviousBuildDirectory\n\t\t);\n\t\trestoreEnvironmentVariable(\n\t\t\t'ABSOLUTE_COMPILED_RUNTIME',\n\t\t\tpreviousCompiledRuntime\n\t\t);\n\t\trestoreEnvironmentVariable('ABSOLUTE_CONFIG', previousConfigPath);\n\t}\n\tconst current = await buildAbsoluteMobileCompatibilityRelease({\n\t\tapp: loaded.app,\n\t\tappId: mobile.appId,\n\t\tbuildDirectory,\n\t\tmanifest,\n\t\tpreviousArtifacts: previous.map(({ artifact }) => artifact),\n\t\tproducerExport: loaded.exportName,\n\t\tproducerPath: resolve(options.producerPath),\n\t\truntime: String(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)\n\t});\n\tconst auth = resolveAbsoluteMobileAuthManifest(options.projectRoot, mobile);\n\tconst sync =\n\t\tauth !== undefined && projectUsesAbsoluteSync(options.projectRoot);\n\tconst syncSchema = sync\n\t\t? discoverAbsoluteSyncSchema(options.projectRoot)\n\t\t: undefined;\n\tconst deviceCapabilities = resolveAbsoluteDeviceCapabilityPlan(\n\t\toptions.projectRoot\n\t);\n\tconst usesPush =\n\t\tdeviceCapabilities.capabilities.includes('pushNotifications');\n\tif (usesPush && !auth)\n\t\tthrow new TypeError(\n\t\t\t'Portable push notifications require @absolutejs/auth so provider tokens can be registered without exposing identity controls to page code.'\n\t\t);\n\tif (\n\t\tusesPush &&\n\t\t!loaded.app.routes.some(\n\t\t\t(route) =>\n\t\t\t\troute.path === '/auth/push' ||\n\t\t\t\troute.path === '/auth/mobile/push'\n\t\t)\n\t)\n\t\tthrow new TypeError(\n\t\t\t'@absolutejs/devices pushNotifications is used, but Auth push is not configured. Pass a trusted server-side registrar to auth({ push: ... }).'\n\t\t);\n\tassertAbsoluteDeviceCapabilityPackages(\n\t\toptions.projectRoot,\n\t\tdeviceCapabilities\n\t);\n\tif (\n\t\tauth &&\n\t\t!loaded.app.routes.some(\n\t\t\t(route) => route.path === '/.well-known/openid-configuration'\n\t\t)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'@absolutejs/auth is installed, but its OIDC provider is not mounted. Native authentication requires the auth oidc configuration so AbsoluteJS can provision a public PKCE client.'\n\t\t);\n\t}\n\tconst releasesById = new Map(\n\t\t[current, ...previous].map((release) => [\n\t\t\trelease.artifact.releaseId,\n\t\t\trelease\n\t\t])\n\t);\n\tconst retained = retainAbsoluteMobileCompatibilityArtifacts(\n\t\t[...releasesById.values()].map(({ artifact }) => artifact)\n\t);\n\tawait materializeAbsoluteMobileCompatibilityBundle({\n\t\tcurrentReleaseId: current.artifact.releaseId,\n\t\treleases: retained.map((artifact) =>\n\t\t\trequireRelease(releasesById, artifact.releaseId)\n\t\t),\n\t\troot\n\t});\n\tawait materializeAbsoluteCapacitorWebBundle({\n\t\tartifact: current.artifact,\n\t\t...(auth ? { auth } : {}),\n\t\tbuildDirectory,\n\t\tconfig: mobile,\n\t\tdeviceCapabilities,\n\t\tprojectRoot: options.projectRoot,\n\t\t...(sync ? { sync: true } : {}),\n\t\t...(syncSchema\n\t\t\t? { syncSchema: { components: syncSchema.components } }\n\t\t\t: {})\n\t});\n\n\treturn current.artifact;\n};\n",
34
34
  "import { createHash } from 'node:crypto';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { basename, dirname, extname, join, relative, resolve } from 'node:path';\nimport type { Elysia } from 'elysia';\nimport {\n\tABSOLUTE_MOBILE_ROUTE_DETAIL,\n\tparseAbsoluteMobileBuildPageMetadata,\n\ttype AbsoluteMobileBuildPageMetadata\n} from './buildMetadata';\nimport {\n\tcreateAbsoluteMobileCompatibilityArtifact,\n\ttype AbsoluteMobileCompatibilityArtifact,\n\ttype AbsoluteMobileCompatibilityPage,\n\ttype AbsoluteMobileCompatibilityRoute\n} from './releaseArtifact';\nimport type { AbsoluteMobileStoredCompatibilityRelease } from './artifactStore';\nimport { toPascal } from '../utils/stringModifiers';\n\nexport type AbsoluteMobileBuildReleaseOptions = {\n\tapp: Pick<Elysia, 'compile' | 'modules' | 'routes'>;\n\tappId: string;\n\tbuildDirectory: string;\n\tmanifest: Record<string, string>;\n\tpreviousArtifacts?: readonly AbsoluteMobileCompatibilityArtifact[];\n\tproducerExport?: string;\n\tproducerModule?: string;\n\tproducerPath: string;\n\truntime: string;\n};\n\nconst sha256 = (bytes: Uint8Array) =>\n\tcreateHash('sha256').update(bytes).digest('hex');\n\nconst STATIC_SCRIPT_PATTERN =\n\t/(<script\\b[^>]*?\\bsrc\\s*=\\s*[\"'])(\\/[^\"']+\\.(?:js|ts))([\"'][^>]*>)/giu;\n\nconst rewriteStaticScriptPaths = (\n\tsource: string,\n\tmanifest: Record<string, string>\n) =>\n\tsource.replace(\n\t\tSTATIC_SCRIPT_PATTERN,\n\t\t(match, prefix: string, path: string, suffix: string) => {\n\t\t\tif (path.endsWith('/htmx.min.js')) return match;\n\t\t\tconst key = toPascal(basename(path, extname(path)));\n\t\t\tconst builtPath = manifest[key];\n\n\t\t\treturn builtPath ? `${prefix}${builtPath}${suffix}` : match;\n\t\t}\n\t);\n\nconst readPageMetadata = (route: {\n\thooks?: { detail?: Record<string, unknown> };\n}) =>\n\tparseAbsoluteMobileBuildPageMetadata(\n\t\troute.hooks?.detail?.[ABSOLUTE_MOBILE_ROUTE_DETAIL]\n\t);\n\nconst resolveAssetPath = (buildDirectory: string, assetPath: string) => {\n\tconst resolvedBuildDirectory = resolve(buildDirectory);\n\tconst resolvedAsset = resolve(assetPath);\n\tif (resolvedAsset.startsWith(`${resolvedBuildDirectory}/`)) {\n\t\treturn resolvedAsset;\n\t}\n\n\treturn join(buildDirectory, assetPath.replace(/^\\/+/, ''));\n};\n\nconst pageFor = async (\n\tmetadata: AbsoluteMobileBuildPageMetadata,\n\tmanifest: Record<string, string>,\n\tbuildDirectory: string\n) => {\n\tconst assetPath = manifest[metadata.bundleKey];\n\tif (!assetPath) {\n\t\tthrow new TypeError(\n\t\t\t`Mobile page ${metadata.pageId} references missing manifest asset ${metadata.bundleKey}.`\n\t\t);\n\t}\n\tlet resolvedAssetPath = resolveAssetPath(buildDirectory, assetPath);\n\tif (metadata.framework === 'html' || metadata.framework === 'htmx') {\n\t\tconst source = await readFile(resolvedAssetPath, 'utf8');\n\t\tconst rewritten = rewriteStaticScriptPaths(source, manifest);\n\t\tconst documentHash = sha256(new TextEncoder().encode(rewritten));\n\t\tresolvedAssetPath = join(\n\t\t\tbuildDirectory,\n\t\t\t'.absolutejs',\n\t\t\t'mobile-pages',\n\t\t\t`${documentHash}.html`\n\t\t);\n\t\tawait mkdir(dirname(resolvedAssetPath), { recursive: true });\n\t\tawait writeFile(resolvedAssetPath, rewritten);\n\t}\n\tconst pageAssetKey = metadata.bundleKey.replace(/Index$/u, '');\n\tconst styleAssetPath = [\n\t\t`${pageAssetKey}BundledCSS`,\n\t\t`${pageAssetKey}CompiledCSS`\n\t]\n\t\t.map((key) => manifest[key])\n\t\t.find((path): path is string => typeof path === 'string');\n\tconst resolvedStylePath = styleAssetPath\n\t\t? resolveAssetPath(buildDirectory, styleAssetPath)\n\t\t: undefined;\n\tconst [bytes, styleBytes] = await Promise.all([\n\t\treadFile(resolvedAssetPath),\n\t\tresolvedStylePath ? readFile(resolvedStylePath) : undefined\n\t]);\n\tconst bundlePath = `/${relative(resolve(buildDirectory), resolvedAssetPath).replaceAll('\\\\', '/')}`;\n\tconst styleBundlePath = resolvedStylePath\n\t\t? `/${relative(resolve(buildDirectory), resolvedStylePath).replaceAll('\\\\', '/')}`\n\t\t: undefined;\n\n\treturn {\n\t\tbundleHash: sha256(bytes),\n\t\tbundlePath,\n\t\tcontract: metadata.contract,\n\t\tframework: metadata.framework,\n\t\tpageId: metadata.pageId,\n\t\tpropsSchemaHash: metadata.propsSchemaHash,\n\t\t...(styleBytes && styleBundlePath\n\t\t\t? {\n\t\t\t\t\tstyleBundleHash: sha256(styleBytes),\n\t\t\t\t\tstyleBundlePath\n\t\t\t\t}\n\t\t\t: {})\n\t} satisfies AbsoluteMobileCompatibilityPage;\n};\n\nexport const buildAbsoluteMobileCompatibilityRelease = async (\n\toptions: AbsoluteMobileBuildReleaseOptions\n): Promise<AbsoluteMobileStoredCompatibilityRelease> => {\n\tconst [captured, producerBytes] = await Promise.all([\n\t\tcaptureAbsoluteMobileRouteGraph(options.app),\n\t\treadFile(options.producerPath)\n\t]);\n\tif (captured.length === 0) {\n\t\tthrow new TypeError(\n\t\t\t'No instrumented AbsoluteJS mobile page routes were found in the finalized Elysia route graph.'\n\t\t);\n\t}\n\tconst metadataByPage = new Map<string, AbsoluteMobileBuildPageMetadata>();\n\tfor (const { metadata } of captured) {\n\t\tconst prior = metadataByPage.get(metadata.pageId);\n\t\tif (prior && JSON.stringify(prior) !== JSON.stringify(metadata)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`Mobile page ${metadata.pageId} has inconsistent generated contracts.`\n\t\t\t);\n\t\t}\n\t\tmetadataByPage.set(metadata.pageId, metadata);\n\t}\n\tconst pages = await Promise.all(\n\t\t[...metadataByPage.values()].map((metadata) =>\n\t\t\tpageFor(metadata, options.manifest, options.buildDirectory)\n\t\t)\n\t);\n\tconst producerHash = sha256(producerBytes);\n\tconst appBuild = `ambuild_${sha256(\n\t\tnew TextEncoder().encode(\n\t\t\tJSON.stringify({\n\t\t\t\tpages: pages.map(\n\t\t\t\t\t({\n\t\t\t\t\t\tbundleHash,\n\t\t\t\t\t\tbundlePath,\n\t\t\t\t\t\tcontract,\n\t\t\t\t\t\tpageId,\n\t\t\t\t\t\tstyleBundleHash,\n\t\t\t\t\t\tstyleBundlePath\n\t\t\t\t\t}) => ({\n\t\t\t\t\t\tbundleHash,\n\t\t\t\t\t\tbundlePath,\n\t\t\t\t\t\tcontract,\n\t\t\t\t\t\tpageId,\n\t\t\t\t\t\t...(styleBundleHash && styleBundlePath\n\t\t\t\t\t\t\t? { styleBundleHash, styleBundlePath }\n\t\t\t\t\t\t\t: {})\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t\tproducerHash,\n\t\t\t\truntime: options.runtime\n\t\t\t})\n\t\t)\n\t)}`;\n\tconst priorAppIds = new Set(\n\t\t(options.previousArtifacts ?? []).map(({ appId }) => appId)\n\t);\n\tif (\n\t\tpriorAppIds.size > 1 ||\n\t\t(priorAppIds.size === 1 && !priorAppIds.has(options.appId))\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'Previous mobile compatibility artifacts belong to another app.'\n\t\t);\n\t}\n\tconst unchanged = options.previousArtifacts?.find(\n\t\t(artifact) =>\n\t\t\tartifact.appBuild === appBuild &&\n\t\t\tartifact.runtime === options.runtime\n\t);\n\tconst generation =\n\t\tunchanged?.generation ??\n\t\tMath.max(\n\t\t\t0,\n\t\t\t...(options.previousArtifacts ?? []).map(\n\t\t\t\t(artifact) => artifact.generation\n\t\t\t)\n\t\t) + 1;\n\tconst artifact = createAbsoluteMobileCompatibilityArtifact({\n\t\tappBuild,\n\t\tappId: options.appId,\n\t\tgeneration,\n\t\tpages,\n\t\tproducer: {\n\t\t\tbundleHash: producerHash,\n\t\t\tbytes: producerBytes.byteLength,\n\t\t\texportName: options.producerExport ?? 'server',\n\t\t\tmodule: options.producerModule ?? 'producer.js'\n\t\t},\n\t\troutes: captured.map(({ route }) => route),\n\t\truntime: options.runtime\n\t});\n\n\treturn { artifact, producer: new Blob([producerBytes]) };\n};\nexport const captureAbsoluteMobileRouteGraph = async (\n\tapp: Pick<Elysia, 'compile' | 'modules' | 'routes'>\n) => {\n\tif (app.modules) await app.modules;\n\tapp.compile();\n\tconst captured = app.routes.flatMap((route) => {\n\t\tconst metadata = readPageMetadata(route);\n\t\tif (!metadata || (route.method !== 'GET' && route.method !== 'HEAD')) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tmetadata,\n\t\t\t\troute: {\n\t\t\t\t\tmethod: route.method === 'GET' ? 'GET' : 'HEAD',\n\t\t\t\t\tpageId: metadata.pageId,\n\t\t\t\t\tpattern: route.path\n\t\t\t\t} satisfies AbsoluteMobileCompatibilityRoute\n\t\t\t}\n\t\t];\n\t});\n\tconst identities = new Map<string, string>();\n\tfor (const { metadata, route } of captured) {\n\t\tconst prior = identities.get(`${route.method}:${route.pattern}`);\n\t\tif (prior && prior !== metadata.pageId) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`Mobile route ${route.method} ${route.pattern} resolves to multiple pages.`\n\t\t\t);\n\t\t}\n\t\tidentities.set(`${route.method}:${route.pattern}`, metadata.pageId);\n\t}\n\n\treturn captured;\n};\n",
35
- "import {\n\tcp,\n\tcopyFile,\n\tmkdir,\n\tmkdtemp,\n\treadFile,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { existsSync } from 'node:fs';\nimport { basename, dirname, extname, join, relative, resolve } from 'node:path';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport type {\n\tAbsoluteMobileCompatibilityArtifact,\n\tAbsoluteMobileCompatibilityPage\n} from './releaseArtifact';\nimport { resolveAbsoluteMobileRoute } from './routeMatcher';\nimport {\n\tABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT,\n\ttype AbsoluteMobileClientManifest\n} from './transport';\nimport type { AbsoluteMobileAuthManifest } from './nativeAuth';\nimport type { SyncLocalStoreSchemaBundle } from '@absolutejs/sync/client';\nimport type { AbsoluteDeviceCapabilityPlan } from './deviceCapabilities';\n\nexport type AbsoluteCapacitorBundleOptions = {\n\tartifact: AbsoluteMobileCompatibilityArtifact;\n\tauth?: AbsoluteMobileAuthManifest;\n\tbuildDirectory: string;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\tdeviceCapabilities: AbsoluteDeviceCapabilityPlan;\n\tprojectRoot: string;\n\tsync?: boolean;\n\tsyncSchema?: SyncLocalStoreSchemaBundle;\n};\n\nconst MANIFEST_FILE = 'absolute-mobile-manifest.json';\nconst BOOTSTRAP_FILE = 'absolute-mobile-bootstrap.js';\nconst INDEX_FILE = 'index.html';\nconst CLIENT_CSS_DEPENDENCY_PATTERN =\n\t/(?:@import\\s+(?:url\\(\\s*)?|url\\(\\s*)[\"']?((?:\\/|\\.\\.\\/|\\.\\/)[^\"')\\s]+)[\"']?\\s*\\)?/gu;\nconst CLIENT_MARKUP_DEPENDENCY_PATTERN =\n\t/<(?:script\\b[^>]*\\bsrc|link\\b[^>]*\\bhref|img\\b[^>]*\\bsrc|source\\b[^>]*\\bsrcset)\\s*=\\s*[\"']((?:\\/|\\.\\.\\/|\\.\\/)[^\"',\\s]+)/giu;\nconst CAPACITOR_CLIENT_FRAMEWORKS = new Set([\n\t'angular',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\nconst CLIENT_ASSET_DIRECTORIES = ['assets', 'html', 'htmx', 'indexes'] as const;\n\nconst errorHasCode = (error: unknown, code: string) =>\n\ttypeof error === 'object' &&\n\terror !== null &&\n\tReflect.get(error, 'code') === code;\n\nconst shellBootstrapModule = () => {\n\tconst candidate = ['js', 'ts']\n\t\t.map((extension) =>\n\t\t\tjoin(import.meta.dir, `shellBootstrap.${extension}`)\n\t\t)\n\t\t.find(existsSync);\n\tif (candidate) return candidate;\n\n\tthrow new TypeError('AbsoluteJS mobile shell bootstrap module is missing.');\n};\n\nconst shellAuthModule = () => {\n\tconst candidate = ['js', 'ts']\n\t\t.map((extension) => join(import.meta.dir, `shellAuth.${extension}`))\n\t\t.find(existsSync);\n\tif (candidate) return candidate;\n\n\tthrow new TypeError('AbsoluteJS mobile auth shell module is missing.');\n};\n\nconst shellSyncModule = () => {\n\tconst candidate = ['js', 'ts']\n\t\t.map((extension) => join(import.meta.dir, `shellSync.${extension}`))\n\t\t.find(existsSync);\n\tif (candidate) return candidate;\n\n\tthrow new TypeError('AbsoluteJS mobile Sync shell module is missing.');\n};\n\nconst shellPushModule = () => {\n\tconst candidate = ['js', 'ts']\n\t\t.map((extension) => join(import.meta.dir, `shellPush.${extension}`))\n\t\t.find(existsSync);\n\tif (candidate) return candidate;\n\n\tthrow new TypeError('AbsoluteJS mobile push shell module is missing.');\n};\n\nconst escapeHtml = (value: string) =>\n\tvalue\n\t\t.replaceAll('&', '&amp;')\n\t\t.replaceAll('<', '&lt;')\n\t\t.replaceAll('>', '&gt;')\n\t\t.replaceAll('\"', '&quot;');\n\nconst indexHtml = (appName: string) => `<!doctype html>\n<html>\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\t\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,viewport-fit=cover\">\n\t\t<meta name=\"color-scheme\" content=\"light dark\">\n\t\t<title>${escapeHtml(appName)}</title>\n\t</head>\n\t<body>\n\t\t<main id=\"absolute-mobile-status\" role=\"status\">Starting…</main>\n\t\t<script type=\"module\" src=\"./${BOOTSTRAP_FILE}\"></script>\n\t</body>\n</html>\n`;\n\nconst sourceAssetPath = (buildDirectory: string, bundlePath: string) => {\n\tconst root = resolve(buildDirectory);\n\tconst asset = resolve(root, bundlePath.replace(/^\\/+/, ''));\n\tif (!asset.startsWith(`${root}/`)) {\n\t\tthrow new TypeError('Mobile page bundle escaped the build directory.');\n\t}\n\n\treturn asset;\n};\n\nconst importEntryTarget = (entry: unknown) => {\n\tif (typeof entry === 'string') return entry;\n\tif (typeof entry === 'object' && entry !== null)\n\t\treturn Reflect.get(entry, 'import');\n\n\treturn undefined;\n};\n\nconst resolveProjectImport = async (projectRoot: string, specifier: string) => {\n\tconst segments = specifier.split('/');\n\tconst packageName = specifier.startsWith('@')\n\t\t? segments.slice(0, 2).join('/')\n\t\t: (segments[0] ?? '');\n\tconst subpath = specifier.slice(packageName.length);\n\tconst packageDirectory = join(\n\t\tresolve(projectRoot),\n\t\t'node_modules',\n\t\tpackageName\n\t);\n\tconst manifest: unknown = JSON.parse(\n\t\tawait readFile(join(packageDirectory, 'package.json'), 'utf8')\n\t);\n\tconst exports =\n\t\ttypeof manifest === 'object' && manifest !== null\n\t\t\t? Reflect.get(manifest, 'exports')\n\t\t\t: undefined;\n\tconst entry =\n\t\ttypeof exports === 'object' && exports !== null\n\t\t\t? Reflect.get(exports, subpath ? `.${subpath}` : '.')\n\t\t\t: undefined;\n\tconst target = importEntryTarget(entry);\n\tif (typeof target !== 'string' || !target.startsWith('./'))\n\t\tthrow new TypeError(`${specifier} does not publish an import entry.`);\n\tconst resolved = resolve(packageDirectory, target);\n\tif (!resolved.startsWith(`${resolve(packageDirectory)}/`))\n\t\tthrow new TypeError(`${specifier} has an unsafe import entry.`);\n\n\treturn resolved;\n};\n\nconst buildShellBootstrap = async (\n\tstaging: string,\n\tauth: boolean,\n\tsync: boolean,\n\tstoragePrefix: string,\n\tdeviceCapabilities: AbsoluteDeviceCapabilityPlan,\n\tprojectRoot: string\n) => {\n\tconst modulePath = shellBootstrapModule();\n\tconst authImport = auth\n\t\t? `import { createAbsoluteMobileShellAuth } from ${JSON.stringify(shellAuthModule())};\\n`\n\t\t: '';\n\tconst options = auth\n\t\t? `{ createAuth: createAbsoluteMobileShellAuth${sync ? ', installSync: installAbsoluteMobileShellSync' : ''} }`\n\t\t: '';\n\tconst syncImport = sync\n\t\t? `import { installAbsoluteMobileShellSync } from ${JSON.stringify(shellSyncModule())};\\n`\n\t\t: '';\n\tconst pushIndex =\n\t\tdeviceCapabilities.capabilities.indexOf('pushNotifications');\n\tconst push = pushIndex !== -1;\n\tconst pushImport = push\n\t\t? `import { createAbsoluteMobileShellPush } from ${JSON.stringify(shellPushModule())};\\n`\n\t\t: '';\n\tconst capabilityImports = (\n\t\tawait Promise.all(\n\t\t\tdeviceCapabilities.capabilities.map(async (name, index) => {\n\t\t\t\tconst provider = deviceCapabilities.providers[name];\n\t\t\t\tif (!provider)\n\t\t\t\t\tthrow new TypeError(\n\t\t\t\t\t\t`Missing device capability provider ${name}.`\n\t\t\t\t\t);\n\n\t\t\t\treturn `import { ${provider.factory} as absoluteDeviceCapability${index} } from ${JSON.stringify(await resolveProjectImport(projectRoot, provider.module))};`;\n\t\t\t})\n\t\t)\n\t).join('\\n');\n\tconst pushSetup = push\n\t\t? `const absoluteMobilePush = createAbsoluteMobileShellPush();\\nconst absoluteMobilePushCapability = absoluteDeviceCapability${pushIndex}(absoluteMobilePush.capabilityOptions);\\n`\n\t\t: '';\n\tconst capabilityOptions = deviceCapabilities.capabilities\n\t\t.map(\n\t\t\t(name, index) =>\n\t\t\t\t`${JSON.stringify(name)}: ${name === 'pushNotifications' ? 'absoluteMobilePushCapability' : `absoluteDeviceCapability${index}()`}`\n\t\t)\n\t\t.join(', ');\n\tconst entryPath = join(staging, '.absolute-mobile-entry.ts');\n\tconst baseAdapterModule = await resolveProjectImport(\n\t\tprojectRoot,\n\t\t'@absolutejs/devices-capacitor'\n\t);\n\tawait writeFile(\n\t\tentryPath,\n\t\t`import { startAbsoluteMobileShell } from ${JSON.stringify(modulePath)};\\nimport { installCapacitorDeviceAdapterIfNative } from ${JSON.stringify(baseAdapterModule)};\\n${authImport}${syncImport}${pushImport}${capabilityImports}\\n${pushSetup}installCapacitorDeviceAdapterIfNative({ storagePrefix: ${JSON.stringify(storagePrefix)}${capabilityOptions ? `, ${capabilityOptions}` : ''} });\\nvoid startAbsoluteMobileShell(${push ? `{ createAuth: (config, options) => createAbsoluteMobileShellAuth(config, options), beforeSignOut: absoluteMobilePush.beforeSignOut, connectPush: (auth) => absoluteMobilePush.connect(auth, absoluteMobilePushCapability)${sync ? ', installSync: installAbsoluteMobileShellSync' : ''} }` : options});\\n`\n\t);\n\tconst build = await Bun.build({\n\t\tentrypoints: [entryPath],\n\t\tminify: true,\n\t\toutdir: staging,\n\t\ttarget: 'browser'\n\t});\n\tif (!build.success || build.outputs.length !== 1) {\n\t\tthrow new AggregateError(\n\t\t\tbuild.logs,\n\t\t\t'Failed to build the AbsoluteJS Capacitor shell.'\n\t\t);\n\t}\n\tawait rename(build.outputs[0]?.path ?? '', join(staging, BOOTSTRAP_FILE));\n\tawait rm(entryPath, { force: true });\n};\n\nconst removePreviousBundle = async (backup: string, moved: boolean) => {\n\tif (!moved) return;\n\tawait rm(backup, { force: true, recursive: true });\n};\n\nconst restorePreviousBundle = async (\n\tbackup: string,\n\tdestination: string,\n\tmoved: boolean\n) => {\n\tif (!moved) return;\n\tawait rename(backup, destination);\n};\n\nconst installBundle = async (staging: string, destination: string) => {\n\tconst backup = `${destination}.previous-${crypto.randomUUID()}`;\n\tlet movedPrevious = false;\n\ttry {\n\t\tawait rename(destination, backup);\n\t\tmovedPrevious = true;\n\t} catch (error) {\n\t\tif (!errorHasCode(error, 'ENOENT')) throw error;\n\t}\n\ttry {\n\t\tawait rename(staging, destination);\n\t\tawait removePreviousBundle(backup, movedPrevious);\n\t} catch (error) {\n\t\tawait restorePreviousBundle(backup, destination, movedPrevious);\n\n\t\tthrow error;\n\t}\n};\n\nconst copyClientPage = async (\n\tpage: AbsoluteMobileCompatibilityPage,\n\tbuildDirectory: string,\n\tstaging: string,\n\tcopiedDependencies: Set<string>\n) => {\n\tif (!CAPACITOR_CLIENT_FRAMEWORKS.has(page.framework)) {\n\t\tthrow new TypeError(\n\t\t\t`Capacitor client rendering does not yet support ${page.framework} page ${page.pageId}.`\n\t\t);\n\t}\n\tconst extension = extname(page.bundlePath) || '.js';\n\tconst localBundlePath = `./pages/${page.bundleHash}${extension}`;\n\tconst source = sourceAssetPath(buildDirectory, page.bundlePath);\n\tawait copyFile(source, join(staging, localBundlePath));\n\tawait copyAbsoluteClientDependencies(\n\t\tsource,\n\t\tbuildDirectory,\n\t\tstaging,\n\t\tcopiedDependencies\n\t);\n\n\tlet localStylePath: string | undefined;\n\tif (page.styleBundlePath && page.styleBundleHash) {\n\t\tconst styleExtension = extname(page.styleBundlePath) || '.css';\n\t\tlocalStylePath = `./styles/${page.styleBundleHash}${styleExtension}`;\n\t\tconst styleSource = sourceAssetPath(\n\t\t\tbuildDirectory,\n\t\t\tpage.styleBundlePath\n\t\t);\n\t\tawait mkdir(dirname(join(staging, localStylePath)), {\n\t\t\trecursive: true\n\t\t});\n\t\tawait copyFile(styleSource, join(staging, localStylePath));\n\t\tawait copyAbsoluteClientDependencies(\n\t\t\tstyleSource,\n\t\t\tbuildDirectory,\n\t\t\tstaging,\n\t\t\tcopiedDependencies\n\t\t);\n\t}\n\n\treturn {\n\t\t...page,\n\t\tlocalBundlePath,\n\t\t...(localStylePath ? { localStylePath } : {})\n\t};\n};\n\nconst absoluteClientImports = async (\n\tsourcePath: string,\n\tbuildDirectory: string\n) => {\n\tconst source = await readFile(sourcePath, 'utf8');\n\tconst extension = extname(sourcePath).toLowerCase();\n\tlet scriptLoader: 'js' | 'jsx' | 'ts' | 'tsx' | undefined;\n\tif (extension === '.tsx') scriptLoader = 'tsx';\n\telse if (extension === '.ts') scriptLoader = 'ts';\n\telse if (extension === '.jsx') scriptLoader = 'jsx';\n\telse if (['.js', '.mjs', '.cjs'].includes(extension)) scriptLoader = 'js';\n\tconst scriptImports = scriptLoader\n\t\t? new Bun.Transpiler({ loader: scriptLoader })\n\t\t\t\t.scanImports(source)\n\t\t\t\t.map(({ path }) => path)\n\t\t: [];\n\tconst cssImports =\n\t\textension === '.css'\n\t\t\t? [...source.matchAll(CLIENT_CSS_DEPENDENCY_PATTERN)].flatMap(\n\t\t\t\t\t(match) => match[1] ?? []\n\t\t\t\t)\n\t\t\t: [];\n\tconst markupImports =\n\t\textension === '.html'\n\t\t\t? [...source.matchAll(CLIENT_MARKUP_DEPENDENCY_PATTERN)].flatMap(\n\t\t\t\t\t(match) => match[1] ?? []\n\t\t\t\t)\n\t\t\t: [];\n\n\treturn [...scriptImports, ...cssImports, ...markupImports].flatMap(\n\t\t(specifier) => {\n\t\t\tif (!specifier) return [];\n\t\t\tif (\n\t\t\t\t!specifier.startsWith('/') &&\n\t\t\t\t!specifier.startsWith('./') &&\n\t\t\t\t!specifier.startsWith('../')\n\t\t\t) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tconst clean = specifier.split(/[?#]/u, 1)[0] ?? specifier;\n\t\t\tif (clean.startsWith('/')) return [clean];\n\t\t\tconst resolved = resolve(dirname(sourcePath), clean);\n\t\t\tconst root = resolve(buildDirectory);\n\t\t\tconst relativePath = relative(root, resolved).replaceAll('\\\\', '/');\n\t\t\tif (relativePath === '..' || relativePath.startsWith('../')) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`Mobile client dependency escaped the build directory: ${specifier}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn [`/${relativePath}`];\n\t\t}\n\t);\n};\n\nconst copyAbsoluteClientDependency = async (\n\tspecifier: string,\n\tbuildDirectory: string,\n\tstaging: string,\n\tcopied: Set<string>\n) => {\n\tif (copied.has(specifier)) return;\n\tcopied.add(specifier);\n\tconst source = sourceAssetPath(buildDirectory, specifier);\n\tconst destination = join(staging, specifier.replace(/^\\/+/, ''));\n\tawait mkdir(dirname(destination), { recursive: true });\n\tawait copyFile(source, destination);\n\tawait copyAbsoluteClientDependencies(\n\t\tsource,\n\t\tbuildDirectory,\n\t\tstaging,\n\t\tcopied\n\t);\n};\n\nconst copyAbsoluteClientDependencies = async (\n\tsourcePath: string,\n\tbuildDirectory: string,\n\tstaging: string,\n\tcopied: Set<string>\n) => {\n\tconst dependencies = await absoluteClientImports(\n\t\tsourcePath,\n\t\tbuildDirectory\n\t);\n\tawait Promise.all(\n\t\tdependencies.map((specifier) =>\n\t\t\tcopyAbsoluteClientDependency(\n\t\t\t\tspecifier,\n\t\t\t\tbuildDirectory,\n\t\t\t\tstaging,\n\t\t\t\tcopied\n\t\t\t)\n\t\t)\n\t);\n};\n\nexport const materializeAbsoluteCapacitorWebBundle = async (\n\toptions: AbsoluteCapacitorBundleOptions\n) => {\n\tif (\n\t\t!resolveAbsoluteMobileRoute(\n\t\t\toptions.artifact.routes,\n\t\t\tnew URL(options.config.entry, 'https://absolute.invalid').pathname\n\t\t)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t`mobile.entry ${options.config.entry} is not a captured mobile page route.`\n\t\t);\n\t}\n\tconst destination = options.config.bundleDirectory;\n\tawait mkdir(dirname(destination), { recursive: true });\n\tconst staging = await mkdtemp(\n\t\tjoin(dirname(destination), `.${basename(destination)}.stage-`)\n\t);\n\ttry {\n\t\tconst pageDirectory = join(staging, 'pages');\n\t\tawait mkdir(pageDirectory, { recursive: true });\n\t\tawait Promise.all(\n\t\t\tCLIENT_ASSET_DIRECTORIES.map((directory) => ({\n\t\t\t\tdestination: join(staging, directory),\n\t\t\t\tsource: join(options.buildDirectory, directory)\n\t\t\t}))\n\t\t\t\t.filter(({ source }) => existsSync(source))\n\t\t\t\t.map(({ destination: assetDestination, source }) =>\n\t\t\t\t\tcp(source, assetDestination, { recursive: true })\n\t\t\t\t)\n\t\t);\n\t\tconst copiedDependencies = new Set<string>();\n\t\tconst pages = await Promise.all(\n\t\t\toptions.artifact.pages.map((page) =>\n\t\t\t\tcopyClientPage(\n\t\t\t\t\tpage,\n\t\t\t\t\toptions.buildDirectory,\n\t\t\t\t\tstaging,\n\t\t\t\t\tcopiedDependencies\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t\tconst manifest = {\n\t\t\tappBuild: options.artifact.appBuild,\n\t\t\t...(options.auth ? { auth: options.auth } : {}),\n\t\t\tappId: options.config.appId,\n\t\t\tappName: options.config.appName,\n\t\t\tdeepLinkHosts: options.config.deepLinkHosts,\n\t\t\tdeepLinkScheme: options.config.deepLinkScheme,\n\t\t\tdeviceCapabilities: options.deviceCapabilities.capabilities,\n\t\t\tentry: options.config.entry,\n\t\t\tformat: ABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT,\n\t\t\tpages,\n\t\t\tproductionOrigin: options.config.productionOrigin,\n\t\t\troutes: options.artifact.routes,\n\t\t\truntime: options.artifact.runtime,\n\t\t\t...(options.sync\n\t\t\t\t? {\n\t\t\t\t\t\tsync: {\n\t\t\t\t\t\t\tbackground: {\n\t\t\t\t\t\t\t\tendpoint: new URL(\n\t\t\t\t\t\t\t\t\t'/__absolute/sync/background',\n\t\t\t\t\t\t\t\t\toptions.config.productionOrigin\n\t\t\t\t\t\t\t\t).href,\n\t\t\t\t\t\t\t\tintervalMinutes: 15\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsocketTickets: true as const,\n\t\t\t\t\t\t\tstorageSchema: options.syncSchema ?? {\n\t\t\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t\t\t{ id: '@absolutejs/app', version: 1 }\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\t}\n\t\t\t\t: {})\n\t\t} satisfies AbsoluteMobileClientManifest;\n\t\tawait Promise.all([\n\t\t\twriteFile(\n\t\t\t\tjoin(staging, MANIFEST_FILE),\n\t\t\t\t`${JSON.stringify(manifest, null, '\\t')}\\n`\n\t\t\t),\n\t\t\twriteFile(\n\t\t\t\tjoin(staging, INDEX_FILE),\n\t\t\t\tindexHtml(options.config.appName)\n\t\t\t),\n\t\t\tbuildShellBootstrap(\n\t\t\t\tstaging,\n\t\t\t\toptions.auth !== undefined,\n\t\t\t\toptions.auth !== undefined && options.sync === true,\n\t\t\t\t`absolutejs.${options.auth?.clientId ?? options.config.appId}.`,\n\t\t\t\toptions.deviceCapabilities,\n\t\t\t\toptions.projectRoot\n\t\t\t)\n\t\t]);\n\t\tawait installBundle(staging, destination);\n\n\t\treturn manifest;\n\t} catch (error) {\n\t\tawait rm(staging, { force: true, recursive: true });\n\n\t\tthrow error;\n\t}\n};\n",
35
+ "import {\n\tcp,\n\tcopyFile,\n\tmkdir,\n\tmkdtemp,\n\treadFile,\n\trename,\n\trm,\n\twriteFile\n} from 'node:fs/promises';\nimport { existsSync } from 'node:fs';\nimport { basename, dirname, extname, join, relative, resolve } from 'node:path';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\nimport type {\n\tAbsoluteMobileCompatibilityArtifact,\n\tAbsoluteMobileCompatibilityPage\n} from './releaseArtifact';\nimport { resolveAbsoluteMobileRoute } from './routeMatcher';\nimport {\n\tABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT,\n\ttype AbsoluteMobileClientManifest\n} from './transport';\nimport type { AbsoluteMobileAuthManifest } from './nativeAuth';\nimport type { SyncLocalStoreSchemaBundle } from '@absolutejs/sync/client';\nimport type { AbsoluteDeviceCapabilityPlan } from './deviceCapabilities';\n\nexport type AbsoluteCapacitorBundleOptions = {\n\tartifact: AbsoluteMobileCompatibilityArtifact;\n\tauth?: AbsoluteMobileAuthManifest;\n\tbuildDirectory: string;\n\tconfig: NormalizedAbsoluteMobileConfig;\n\tdeviceCapabilities: AbsoluteDeviceCapabilityPlan;\n\tprojectRoot: string;\n\tsync?: boolean;\n\tsyncSchema?: SyncLocalStoreSchemaBundle;\n};\n\nconst MANIFEST_FILE = 'absolute-mobile-manifest.json';\nconst BOOTSTRAP_FILE = 'absolute-mobile-bootstrap.js';\nconst INDEX_FILE = 'index.html';\nconst CLIENT_CSS_DEPENDENCY_PATTERN =\n\t/(?:@import\\s+(?:url\\(\\s*)?|url\\(\\s*)[\"']?((?:\\/|\\.\\.\\/|\\.\\/)[^\"')\\s]+)[\"']?\\s*\\)?/gu;\nconst CLIENT_MARKUP_DEPENDENCY_PATTERN =\n\t/<(?:script\\b[^>]*\\bsrc|link\\b[^>]*\\bhref|img\\b[^>]*\\bsrc|source\\b[^>]*\\bsrcset)\\s*=\\s*[\"']((?:\\/|\\.\\.\\/|\\.\\/)[^\"',\\s]+)/giu;\nconst CAPACITOR_CLIENT_FRAMEWORKS = new Set([\n\t'angular',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\nconst CLIENT_ASSET_DIRECTORIES = ['assets', 'html', 'htmx', 'indexes'] as const;\n\nconst errorHasCode = (error: unknown, code: string) =>\n\ttypeof error === 'object' &&\n\terror !== null &&\n\tReflect.get(error, 'code') === code;\n\nconst shellBootstrapModule = () => {\n\tconst candidate = ['js', 'ts']\n\t\t.map((extension) =>\n\t\t\tjoin(import.meta.dir, `shellBootstrap.${extension}`)\n\t\t)\n\t\t.find(existsSync);\n\tif (candidate) return candidate;\n\n\tthrow new TypeError('AbsoluteJS mobile shell bootstrap module is missing.');\n};\n\nconst shellAuthModule = () => {\n\tconst candidate = ['js', 'ts']\n\t\t.map((extension) => join(import.meta.dir, `shellAuth.${extension}`))\n\t\t.find(existsSync);\n\tif (candidate) return candidate;\n\n\tthrow new TypeError('AbsoluteJS mobile auth shell module is missing.');\n};\n\nconst shellSyncModule = () => {\n\tconst candidate = ['js', 'ts']\n\t\t.map((extension) => join(import.meta.dir, `shellSync.${extension}`))\n\t\t.find(existsSync);\n\tif (candidate) return candidate;\n\n\tthrow new TypeError('AbsoluteJS mobile Sync shell module is missing.');\n};\n\nconst shellPushModule = () => {\n\tconst candidate = ['js', 'ts']\n\t\t.map((extension) => join(import.meta.dir, `shellPush.${extension}`))\n\t\t.find(existsSync);\n\tif (candidate) return candidate;\n\n\tthrow new TypeError('AbsoluteJS mobile push shell module is missing.');\n};\n\nconst escapeHtml = (value: string) =>\n\tvalue\n\t\t.replaceAll('&', '&amp;')\n\t\t.replaceAll('<', '&lt;')\n\t\t.replaceAll('>', '&gt;')\n\t\t.replaceAll('\"', '&quot;');\n\nconst contentSecurityPolicy = (productionOrigin: string) => {\n\tconst backend = new URL(productionOrigin);\n\tconst socketOrigin = `${backend.protocol === 'https:' ? 'wss:' : 'ws:'}//${backend.host}`;\n\n\treturn [\n\t\t\"default-src 'self' data: blob: https:\",\n\t\t\"base-uri 'none'\",\n\t\t\"object-src 'none'\",\n\t\t\"script-src 'self'\",\n\t\t\"style-src 'self' 'unsafe-inline'\",\n\t\t`connect-src 'self' ${backend.origin} ${socketOrigin}`,\n\t\t\"form-action 'none'\"\n\t].join('; ');\n};\n\nconst indexHtml = (\n\tappName: string,\n\tproductionOrigin: string\n) => `<!doctype html>\n<html>\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\t\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,viewport-fit=cover\">\n\t\t<meta name=\"color-scheme\" content=\"light dark\">\n\t\t<meta http-equiv=\"Content-Security-Policy\" content=\"${escapeHtml(contentSecurityPolicy(productionOrigin))}\">\n\t\t<title>${escapeHtml(appName)}</title>\n\t</head>\n\t<body>\n\t\t<main id=\"absolute-mobile-status\" role=\"status\">Starting…</main>\n\t\t<script type=\"module\" src=\"./${BOOTSTRAP_FILE}\"></script>\n\t</body>\n</html>\n`;\n\nconst sourceAssetPath = (buildDirectory: string, bundlePath: string) => {\n\tconst root = resolve(buildDirectory);\n\tconst asset = resolve(root, bundlePath.replace(/^\\/+/, ''));\n\tif (!asset.startsWith(`${root}/`)) {\n\t\tthrow new TypeError('Mobile page bundle escaped the build directory.');\n\t}\n\n\treturn asset;\n};\n\nconst importEntryTarget = (entry: unknown) => {\n\tif (typeof entry === 'string') return entry;\n\tif (typeof entry === 'object' && entry !== null)\n\t\treturn Reflect.get(entry, 'import');\n\n\treturn undefined;\n};\n\nconst resolveProjectImport = async (projectRoot: string, specifier: string) => {\n\tconst segments = specifier.split('/');\n\tconst packageName = specifier.startsWith('@')\n\t\t? segments.slice(0, 2).join('/')\n\t\t: (segments[0] ?? '');\n\tconst subpath = specifier.slice(packageName.length);\n\tconst packageDirectory = join(\n\t\tresolve(projectRoot),\n\t\t'node_modules',\n\t\tpackageName\n\t);\n\tconst manifest: unknown = JSON.parse(\n\t\tawait readFile(join(packageDirectory, 'package.json'), 'utf8')\n\t);\n\tconst exports =\n\t\ttypeof manifest === 'object' && manifest !== null\n\t\t\t? Reflect.get(manifest, 'exports')\n\t\t\t: undefined;\n\tconst entry =\n\t\ttypeof exports === 'object' && exports !== null\n\t\t\t? Reflect.get(exports, subpath ? `.${subpath}` : '.')\n\t\t\t: undefined;\n\tconst target = importEntryTarget(entry);\n\tif (typeof target !== 'string' || !target.startsWith('./'))\n\t\tthrow new TypeError(`${specifier} does not publish an import entry.`);\n\tconst resolved = resolve(packageDirectory, target);\n\tif (!resolved.startsWith(`${resolve(packageDirectory)}/`))\n\t\tthrow new TypeError(`${specifier} has an unsafe import entry.`);\n\n\treturn resolved;\n};\n\nconst buildShellBootstrap = async (\n\tstaging: string,\n\tauth: boolean,\n\tsync: boolean,\n\tstoragePrefix: string,\n\tdeviceCapabilities: AbsoluteDeviceCapabilityPlan,\n\tprojectRoot: string\n) => {\n\tconst modulePath = shellBootstrapModule();\n\tconst authImport = auth\n\t\t? `import { createAbsoluteMobileShellAuth } from ${JSON.stringify(shellAuthModule())};\\n`\n\t\t: '';\n\tconst options = auth\n\t\t? `{ createAuth: createAbsoluteMobileShellAuth${sync ? ', installSync: installAbsoluteMobileShellSync' : ''} }`\n\t\t: '';\n\tconst syncImport = sync\n\t\t? `import { installAbsoluteMobileShellSync } from ${JSON.stringify(shellSyncModule())};\\n`\n\t\t: '';\n\tconst pushIndex =\n\t\tdeviceCapabilities.capabilities.indexOf('pushNotifications');\n\tconst push = pushIndex !== -1;\n\tconst pushImport = push\n\t\t? `import { createAbsoluteMobileShellPush } from ${JSON.stringify(shellPushModule())};\\n`\n\t\t: '';\n\tconst capabilityImports = (\n\t\tawait Promise.all(\n\t\t\tdeviceCapabilities.capabilities.map(async (name, index) => {\n\t\t\t\tconst provider = deviceCapabilities.providers[name];\n\t\t\t\tif (!provider)\n\t\t\t\t\tthrow new TypeError(\n\t\t\t\t\t\t`Missing device capability provider ${name}.`\n\t\t\t\t\t);\n\n\t\t\t\treturn `import { ${provider.factory} as absoluteDeviceCapability${index} } from ${JSON.stringify(await resolveProjectImport(projectRoot, provider.module))};`;\n\t\t\t})\n\t\t)\n\t).join('\\n');\n\tconst pushSetup = push\n\t\t? `const absoluteMobilePush = createAbsoluteMobileShellPush();\\nconst absoluteMobilePushCapability = absoluteDeviceCapability${pushIndex}(absoluteMobilePush.capabilityOptions);\\n`\n\t\t: '';\n\tconst capabilityOptions = deviceCapabilities.capabilities\n\t\t.map(\n\t\t\t(name, index) =>\n\t\t\t\t`${JSON.stringify(name)}: ${name === 'pushNotifications' ? 'absoluteMobilePushCapability' : `absoluteDeviceCapability${index}()`}`\n\t\t)\n\t\t.join(', ');\n\tconst entryPath = join(staging, '.absolute-mobile-entry.ts');\n\tconst baseAdapterModule = await resolveProjectImport(\n\t\tprojectRoot,\n\t\t'@absolutejs/devices-capacitor'\n\t);\n\tawait writeFile(\n\t\tentryPath,\n\t\t`import { startAbsoluteMobileShell } from ${JSON.stringify(modulePath)};\\nimport { installCapacitorDeviceAdapterIfNative } from ${JSON.stringify(baseAdapterModule)};\\n${authImport}${syncImport}${pushImport}${capabilityImports}\\n${pushSetup}installCapacitorDeviceAdapterIfNative({ storagePrefix: ${JSON.stringify(storagePrefix)}${capabilityOptions ? `, ${capabilityOptions}` : ''} });\\nvoid startAbsoluteMobileShell(${push ? `{ createAuth: (config, options) => createAbsoluteMobileShellAuth(config, options), beforeSignOut: absoluteMobilePush.beforeSignOut, connectPush: (auth) => absoluteMobilePush.connect(auth, absoluteMobilePushCapability)${sync ? ', installSync: installAbsoluteMobileShellSync' : ''} }` : options});\\n`\n\t);\n\tconst build = await Bun.build({\n\t\tentrypoints: [entryPath],\n\t\tminify: true,\n\t\toutdir: staging,\n\t\ttarget: 'browser'\n\t});\n\tif (!build.success || build.outputs.length !== 1) {\n\t\tthrow new AggregateError(\n\t\t\tbuild.logs,\n\t\t\t'Failed to build the AbsoluteJS Capacitor shell.'\n\t\t);\n\t}\n\tawait rename(build.outputs[0]?.path ?? '', join(staging, BOOTSTRAP_FILE));\n\tawait rm(entryPath, { force: true });\n};\n\nconst removePreviousBundle = async (backup: string, moved: boolean) => {\n\tif (!moved) return;\n\tawait rm(backup, { force: true, recursive: true });\n};\n\nconst restorePreviousBundle = async (\n\tbackup: string,\n\tdestination: string,\n\tmoved: boolean\n) => {\n\tif (!moved) return;\n\tawait rename(backup, destination);\n};\n\nconst installBundle = async (staging: string, destination: string) => {\n\tconst backup = `${destination}.previous-${crypto.randomUUID()}`;\n\tlet movedPrevious = false;\n\ttry {\n\t\tawait rename(destination, backup);\n\t\tmovedPrevious = true;\n\t} catch (error) {\n\t\tif (!errorHasCode(error, 'ENOENT')) throw error;\n\t}\n\ttry {\n\t\tawait rename(staging, destination);\n\t\tawait removePreviousBundle(backup, movedPrevious);\n\t} catch (error) {\n\t\tawait restorePreviousBundle(backup, destination, movedPrevious);\n\n\t\tthrow error;\n\t}\n};\n\nconst copyClientPage = async (\n\tpage: AbsoluteMobileCompatibilityPage,\n\tbuildDirectory: string,\n\tstaging: string,\n\tcopiedDependencies: Set<string>\n) => {\n\tif (!CAPACITOR_CLIENT_FRAMEWORKS.has(page.framework)) {\n\t\tthrow new TypeError(\n\t\t\t`Capacitor client rendering does not yet support ${page.framework} page ${page.pageId}.`\n\t\t);\n\t}\n\tconst extension = extname(page.bundlePath) || '.js';\n\tconst localBundlePath = `./pages/${page.bundleHash}${extension}`;\n\tconst source = sourceAssetPath(buildDirectory, page.bundlePath);\n\tawait copyFile(source, join(staging, localBundlePath));\n\tawait copyAbsoluteClientDependencies(\n\t\tsource,\n\t\tbuildDirectory,\n\t\tstaging,\n\t\tcopiedDependencies\n\t);\n\n\tlet localStylePath: string | undefined;\n\tif (page.styleBundlePath && page.styleBundleHash) {\n\t\tconst styleExtension = extname(page.styleBundlePath) || '.css';\n\t\tlocalStylePath = `./styles/${page.styleBundleHash}${styleExtension}`;\n\t\tconst styleSource = sourceAssetPath(\n\t\t\tbuildDirectory,\n\t\t\tpage.styleBundlePath\n\t\t);\n\t\tawait mkdir(dirname(join(staging, localStylePath)), {\n\t\t\trecursive: true\n\t\t});\n\t\tawait copyFile(styleSource, join(staging, localStylePath));\n\t\tawait copyAbsoluteClientDependencies(\n\t\t\tstyleSource,\n\t\t\tbuildDirectory,\n\t\t\tstaging,\n\t\t\tcopiedDependencies\n\t\t);\n\t}\n\n\treturn {\n\t\t...page,\n\t\tlocalBundlePath,\n\t\t...(localStylePath ? { localStylePath } : {})\n\t};\n};\n\nconst absoluteClientImports = async (\n\tsourcePath: string,\n\tbuildDirectory: string\n) => {\n\tconst source = await readFile(sourcePath, 'utf8');\n\tconst extension = extname(sourcePath).toLowerCase();\n\tlet scriptLoader: 'js' | 'jsx' | 'ts' | 'tsx' | undefined;\n\tif (extension === '.tsx') scriptLoader = 'tsx';\n\telse if (extension === '.ts') scriptLoader = 'ts';\n\telse if (extension === '.jsx') scriptLoader = 'jsx';\n\telse if (['.js', '.mjs', '.cjs'].includes(extension)) scriptLoader = 'js';\n\tconst scriptImports = scriptLoader\n\t\t? new Bun.Transpiler({ loader: scriptLoader })\n\t\t\t\t.scanImports(source)\n\t\t\t\t.map(({ path }) => path)\n\t\t: [];\n\tconst cssImports =\n\t\textension === '.css'\n\t\t\t? [...source.matchAll(CLIENT_CSS_DEPENDENCY_PATTERN)].flatMap(\n\t\t\t\t\t(match) => match[1] ?? []\n\t\t\t\t)\n\t\t\t: [];\n\tconst markupImports =\n\t\textension === '.html'\n\t\t\t? [...source.matchAll(CLIENT_MARKUP_DEPENDENCY_PATTERN)].flatMap(\n\t\t\t\t\t(match) => match[1] ?? []\n\t\t\t\t)\n\t\t\t: [];\n\n\treturn [...scriptImports, ...cssImports, ...markupImports].flatMap(\n\t\t(specifier) => {\n\t\t\tif (!specifier) return [];\n\t\t\tif (\n\t\t\t\t!specifier.startsWith('/') &&\n\t\t\t\t!specifier.startsWith('./') &&\n\t\t\t\t!specifier.startsWith('../')\n\t\t\t) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tconst clean = specifier.split(/[?#]/u, 1)[0] ?? specifier;\n\t\t\tif (clean.startsWith('/')) return [clean];\n\t\t\tconst resolved = resolve(dirname(sourcePath), clean);\n\t\t\tconst root = resolve(buildDirectory);\n\t\t\tconst relativePath = relative(root, resolved).replaceAll('\\\\', '/');\n\t\t\tif (relativePath === '..' || relativePath.startsWith('../')) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`Mobile client dependency escaped the build directory: ${specifier}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn [`/${relativePath}`];\n\t\t}\n\t);\n};\n\nconst copyAbsoluteClientDependency = async (\n\tspecifier: string,\n\tbuildDirectory: string,\n\tstaging: string,\n\tcopied: Set<string>\n) => {\n\tif (copied.has(specifier)) return;\n\tcopied.add(specifier);\n\tconst source = sourceAssetPath(buildDirectory, specifier);\n\tconst destination = join(staging, specifier.replace(/^\\/+/, ''));\n\tawait mkdir(dirname(destination), { recursive: true });\n\tawait copyFile(source, destination);\n\tawait copyAbsoluteClientDependencies(\n\t\tsource,\n\t\tbuildDirectory,\n\t\tstaging,\n\t\tcopied\n\t);\n};\n\nconst copyAbsoluteClientDependencies = async (\n\tsourcePath: string,\n\tbuildDirectory: string,\n\tstaging: string,\n\tcopied: Set<string>\n) => {\n\tconst dependencies = await absoluteClientImports(\n\t\tsourcePath,\n\t\tbuildDirectory\n\t);\n\tawait Promise.all(\n\t\tdependencies.map((specifier) =>\n\t\t\tcopyAbsoluteClientDependency(\n\t\t\t\tspecifier,\n\t\t\t\tbuildDirectory,\n\t\t\t\tstaging,\n\t\t\t\tcopied\n\t\t\t)\n\t\t)\n\t);\n};\n\nexport const materializeAbsoluteCapacitorWebBundle = async (\n\toptions: AbsoluteCapacitorBundleOptions\n) => {\n\tif (\n\t\t!resolveAbsoluteMobileRoute(\n\t\t\toptions.artifact.routes,\n\t\t\tnew URL(options.config.entry, 'https://absolute.invalid').pathname\n\t\t)\n\t) {\n\t\tthrow new TypeError(\n\t\t\t`mobile.entry ${options.config.entry} is not a captured mobile page route.`\n\t\t);\n\t}\n\tconst destination = options.config.bundleDirectory;\n\tawait mkdir(dirname(destination), { recursive: true });\n\tconst staging = await mkdtemp(\n\t\tjoin(dirname(destination), `.${basename(destination)}.stage-`)\n\t);\n\ttry {\n\t\tconst pageDirectory = join(staging, 'pages');\n\t\tawait mkdir(pageDirectory, { recursive: true });\n\t\tawait Promise.all(\n\t\t\tCLIENT_ASSET_DIRECTORIES.map((directory) => ({\n\t\t\t\tdestination: join(staging, directory),\n\t\t\t\tsource: join(options.buildDirectory, directory)\n\t\t\t}))\n\t\t\t\t.filter(({ source }) => existsSync(source))\n\t\t\t\t.map(({ destination: assetDestination, source }) =>\n\t\t\t\t\tcp(source, assetDestination, { recursive: true })\n\t\t\t\t)\n\t\t);\n\t\tconst copiedDependencies = new Set<string>();\n\t\tconst pages = await Promise.all(\n\t\t\toptions.artifact.pages.map((page) =>\n\t\t\t\tcopyClientPage(\n\t\t\t\t\tpage,\n\t\t\t\t\toptions.buildDirectory,\n\t\t\t\t\tstaging,\n\t\t\t\t\tcopiedDependencies\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t\tconst manifest = {\n\t\t\tappBuild: options.artifact.appBuild,\n\t\t\t...(options.auth ? { auth: options.auth } : {}),\n\t\t\tappId: options.config.appId,\n\t\t\tappName: options.config.appName,\n\t\t\tdeepLinkHosts: options.config.deepLinkHosts,\n\t\t\tdeepLinkScheme: options.config.deepLinkScheme,\n\t\t\tdeviceCapabilities: options.deviceCapabilities.capabilities,\n\t\t\tentry: options.config.entry,\n\t\t\tformat: ABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT,\n\t\t\tpages,\n\t\t\tproductionOrigin: options.config.productionOrigin,\n\t\t\troutes: options.artifact.routes,\n\t\t\truntime: options.artifact.runtime,\n\t\t\t...(options.sync\n\t\t\t\t? {\n\t\t\t\t\t\tsync: {\n\t\t\t\t\t\t\tbackground: {\n\t\t\t\t\t\t\t\tendpoint: new URL(\n\t\t\t\t\t\t\t\t\t'/__absolute/sync/background',\n\t\t\t\t\t\t\t\t\toptions.config.productionOrigin\n\t\t\t\t\t\t\t\t).href,\n\t\t\t\t\t\t\t\tintervalMinutes: 15\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsocketTickets: true as const,\n\t\t\t\t\t\t\tstorageSchema: options.syncSchema ?? {\n\t\t\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t\t\t{ id: '@absolutejs/app', version: 1 }\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\t}\n\t\t\t\t: {})\n\t\t} satisfies AbsoluteMobileClientManifest;\n\t\tawait Promise.all([\n\t\t\twriteFile(\n\t\t\t\tjoin(staging, MANIFEST_FILE),\n\t\t\t\t`${JSON.stringify(manifest, null, '\\t')}\\n`\n\t\t\t),\n\t\t\twriteFile(\n\t\t\t\tjoin(staging, INDEX_FILE),\n\t\t\t\tindexHtml(\n\t\t\t\t\toptions.config.appName,\n\t\t\t\t\toptions.config.productionOrigin\n\t\t\t\t)\n\t\t\t),\n\t\t\tbuildShellBootstrap(\n\t\t\t\tstaging,\n\t\t\t\toptions.auth !== undefined,\n\t\t\t\toptions.auth !== undefined && options.sync === true,\n\t\t\t\t`absolutejs.${options.auth?.clientId ?? options.config.appId}.`,\n\t\t\t\toptions.deviceCapabilities,\n\t\t\t\toptions.projectRoot\n\t\t\t)\n\t\t]);\n\t\tawait installBundle(staging, destination);\n\n\t\treturn manifest;\n\t} catch (error) {\n\t\tawait rm(staging, { force: true, recursive: true });\n\n\t\tthrow error;\n\t}\n};\n",
36
36
  "import type { AbsoluteMobileCompatibilityRoute } from './releaseArtifact';\n\nconst REGEXP_SPECIAL_CHARACTERS = /[.*+?^${}()|[\\]\\\\]/g;\n\nconst routeSegmentPattern = (segment: string) => {\n\tif (segment === '*') return '.*';\n\tif (segment.startsWith(':') && segment.endsWith('?')) return '[^/]*';\n\tif (segment.startsWith(':')) return '[^/]+';\n\n\treturn segment.replace(REGEXP_SPECIAL_CHARACTERS, '\\\\$&');\n};\n\nexport const matchesAbsoluteMobileRoutePattern = (\n\tpattern: string,\n\tpathname: string\n) => {\n\tconst expression = pattern.split('/').map(routeSegmentPattern).join('/');\n\n\treturn new RegExp(`^${expression}/?$`).test(pathname);\n};\n\nexport const resolveAbsoluteMobileRoute = (\n\troutes: readonly AbsoluteMobileCompatibilityRoute[],\n\tpathname: string,\n\tmethod: 'GET' | 'HEAD' = 'GET'\n) =>\n\troutes.find(\n\t\t(route) =>\n\t\t\troute.method === method &&\n\t\t\tmatchesAbsoluteMobileRoutePattern(route.pattern, pathname)\n\t);\n",
37
37
  "import type { AbsoluteMobileCompatibilityPage } from './releaseArtifact';\n\nexport type AbsoluteMobileProducerContext = {\n\tpage: AbsoluteMobileCompatibilityPage;\n\treleaseId: string;\n};\n\nexport const ABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY = Symbol.for(\n\t'absolutejs.mobileProducerAsyncLocalStorage'\n);\n\nconst frameworks = new Set<string>([\n\t'angular',\n\t'ember',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\n\nconst isCompatibilityPage = (\n\tvalue: unknown\n): value is AbsoluteMobileCompatibilityPage =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t'bundleHash' in value &&\n\ttypeof value.bundleHash === 'string' &&\n\t'contract' in value &&\n\ttypeof value.contract === 'string' &&\n\t'framework' in value &&\n\ttypeof value.framework === 'string' &&\n\tframeworks.has(value.framework) &&\n\t'pageId' in value &&\n\ttypeof value.pageId === 'string' &&\n\t'propsSchemaHash' in value &&\n\ttypeof value.propsSchemaHash === 'string';\n\nexport const getCurrentAbsoluteMobileProducerContext = () => {\n\tconst value: unknown = Reflect.get(\n\t\tglobalThis,\n\t\tABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY\n\t);\n\tif (\n\t\ttypeof value !== 'object' ||\n\t\tvalue === null ||\n\t\t!('getStore' in value) ||\n\t\ttypeof value.getStore !== 'function'\n\t) {\n\t\treturn undefined;\n\t}\n\tconst context: unknown = value.getStore();\n\tif (\n\t\ttypeof context !== 'object' ||\n\t\tcontext === null ||\n\t\t!('page' in context) ||\n\t\t!isCompatibilityPage(context.page) ||\n\t\t!('releaseId' in context) ||\n\t\ttypeof context.releaseId !== 'string'\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn { page: context.page, releaseId: context.releaseId };\n};\n",
38
38
  "import {\n\tgetCurrentAbsoluteMobileProducerContext,\n\ttype AbsoluteMobileProducerContext\n} from './producerContextState';\n\nexport const ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE =\n\t'application/vnd.absolute.page+json';\nexport const ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION = 1 as const;\nconst BAD_REQUEST_STATUS = 400;\nconst OK_STATUS = 200;\nconst SERVER_ERROR_STATUS = 500;\nconst UPGRADE_REQUIRED_STATUS = 426;\n\nexport const MOBILE_PAGE_REQUEST_HEADERS = {\n\tappBuild: 'x-absolute-mobile-app-build',\n\tpageBundle: 'x-absolute-mobile-page-bundle',\n\tpageContracts: 'x-absolute-mobile-page-contracts',\n\tpageId: 'x-absolute-mobile-page-id',\n\tprotocol: 'x-absolute-mobile-protocol',\n\truntime: 'x-absolute-mobile-runtime'\n} as const;\n\nexport type AbsoluteMobilePageFramework =\n\t| 'angular'\n\t| 'ember'\n\t| 'html'\n\t| 'htmx'\n\t| 'react'\n\t| 'svelte'\n\t| 'vue';\n\nexport type AbsoluteMobilePageClient = {\n\tappBuild: string;\n\tpageBundle: string;\n\tpageContracts: string[];\n\tpageId: string;\n\tprotocol: number;\n\truntime: string;\n};\n\nexport type AbsoluteMobilePageRepresentation<Props> = {\n\t/** Stable data contract understood by an embedded page bundle. */\n\tcontract: string;\n\t/**\n\t * Adapts the current route props to an older compatible contract. The\n\t * current representation normally uses the identity function.\n\t */\n\tmapProps: (props: Props) => Record<string, unknown>;\n};\n\nexport type AbsoluteMobilePageCompatibility<Props> = {\n\tframework: AbsoluteMobilePageFramework;\n\tpageId: string;\n\t/** Newest representation first, followed by retained compatibility forms. */\n\trepresentations: readonly AbsoluteMobilePageRepresentation<Props>[];\n\t/** Current runtime plus every retained compatible runtime generation. */\n\truntimes: readonly string[];\n};\n\nexport type AbsoluteMobilePageResult = {\n\tkind: 'page';\n\tcontract: string;\n\tframework: AbsoluteMobilePageFramework;\n\tpageId: string;\n\tprops: Record<string, unknown>;\n\tstatus: number;\n};\n\nexport type AbsoluteMobileUpgradeReason =\n\t| 'app-release'\n\t| 'page-contract'\n\t| 'protocol'\n\t| 'runtime';\n\nexport type AbsoluteMobileUpgradeRequiredResult = {\n\tkind: 'upgrade-required';\n\treason: AbsoluteMobileUpgradeReason;\n\tpageId: string;\n\tsupportedContracts?: string[];\n\tsupportedRuntimes?: string[];\n};\n\nexport type AbsoluteMobileInvalidRequestResult = {\n\tkind: 'invalid-request';\n\tmessage: string;\n};\n\nexport type AbsoluteMobilePageErrorResult = {\n\tcode: 'representation-failed';\n\tkind: 'error';\n\tpageId: string;\n\tstatus: typeof SERVER_ERROR_STATUS;\n};\n\nexport type AbsoluteMobilePageEnvelope = {\n\tprotocol: typeof ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION;\n\tresponse:\n\t\t| AbsoluteMobilePageErrorResult\n\t\t| AbsoluteMobileInvalidRequestResult\n\t\t| AbsoluteMobilePageResult\n\t\t| AbsoluteMobileUpgradeRequiredResult;\n};\n\ntype ParsedMobilePageRequest =\n\t| { kind: 'not-mobile' }\n\t| { kind: 'invalid'; message: string }\n\t| { kind: 'mobile'; client: AbsoluteMobilePageClient };\n\ntype FinalizeAbsoluteMobilePageInput<Props> = {\n\tcompatibility: AbsoluteMobilePageCompatibility<Props>;\n\tprops: Props;\n\trequest: Request | undefined;\n\tstatus?: number;\n};\n\nconst parseMediaType = (value: string) =>\n\tvalue.split(';', 1)[0]?.trim().toLowerCase();\n\nexport const acceptsAbsoluteMobilePage = (request: Request | undefined) => {\n\tif (!request) return false;\n\n\treturn (request.headers.get('accept') ?? '')\n\t\t.split(',')\n\t\t.some(\n\t\t\t(value) => parseMediaType(value) === ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE\n\t\t);\n};\n\nconst readRequiredHeader = (request: Request, name: string) => {\n\tconst value = request.headers.get(name)?.trim();\n\n\treturn value ? value : undefined;\n};\n\nexport const parseAbsoluteMobilePageRequest = (\n\trequest: Request | undefined\n): ParsedMobilePageRequest => {\n\tif (!request || !acceptsAbsoluteMobilePage(request)) {\n\t\treturn { kind: 'not-mobile' };\n\t}\n\n\tconst protocolValue = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.protocol\n\t);\n\tconst runtime = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.runtime\n\t);\n\tconst appBuild = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.appBuild\n\t);\n\tconst pageBundle = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageBundle\n\t);\n\tconst pageContractsValue = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageContracts\n\t);\n\tconst pageId = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageId\n\t);\n\n\tif (!protocolValue || !/^\\d+$/.test(protocolValue)) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing or invalid ${MOBILE_PAGE_REQUEST_HEADERS.protocol} header.`\n\t\t};\n\t}\n\tif (!runtime) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.runtime} header.`\n\t\t};\n\t}\n\tif (!appBuild) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.appBuild} header.`\n\t\t};\n\t}\n\tif (!pageBundle) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageBundle} header.`\n\t\t};\n\t}\n\tif (!pageContractsValue) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageContracts} header.`\n\t\t};\n\t}\n\tif (!pageId) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageId} header.`\n\t\t};\n\t}\n\n\tconst pageContracts = [\n\t\t...new Set(\n\t\t\tpageContractsValue\n\t\t\t\t.split(',')\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter(Boolean)\n\t\t)\n\t];\n\tif (pageContracts.length === 0) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `${MOBILE_PAGE_REQUEST_HEADERS.pageContracts} must contain at least one contract.`\n\t\t};\n\t}\n\n\treturn {\n\t\tclient: {\n\t\t\tappBuild,\n\t\t\tpageBundle,\n\t\t\tpageContracts,\n\t\t\tpageId,\n\t\t\tprotocol: Number(protocolValue),\n\t\t\truntime\n\t\t},\n\t\tkind: 'mobile'\n\t};\n};\n\nconst responseHeaders = () => {\n\tconst headers = new Headers({\n\t\t'cache-control': 'no-store',\n\t\t'content-type': `${ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE}; version=${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}`\n\t});\n\theaderVaryValues.forEach((value) => headers.append('vary', value));\n\n\treturn headers;\n};\n\nconst headerVaryValues = [\n\t'Accept',\n\tMOBILE_PAGE_REQUEST_HEADERS.protocol,\n\tMOBILE_PAGE_REQUEST_HEADERS.runtime,\n\tMOBILE_PAGE_REQUEST_HEADERS.appBuild,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageBundle,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageContracts,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageId\n];\n\nconst envelopeResponse = (\n\tresponse: AbsoluteMobilePageEnvelope['response'],\n\tstatus: number\n) =>\n\tnew Response(\n\t\tJSON.stringify({\n\t\t\tprotocol: ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\t\t\tresponse\n\t\t} satisfies AbsoluteMobilePageEnvelope),\n\t\t{ headers: responseHeaders(), status }\n\t);\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst normalizeJsonValue = (value: Record<string, unknown>) => {\n\tconst serialized = JSON.stringify(value);\n\tif (serialized === undefined) {\n\t\tthrow new TypeError('Mobile page props must be JSON-serializable.');\n\t}\n\n\tconst parsed: unknown = JSON.parse(serialized);\n\tif (!isRecord(parsed)) {\n\t\tthrow new TypeError('Mobile page props must serialize to an object.');\n\t}\n\n\treturn parsed;\n};\n\nconst finalizeArchivedMobilePage = <Props>(\n\tcontext: AbsoluteMobileProducerContext,\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => {\n\tconst { page } = context;\n\tif (\n\t\tpage.pageId !== input.compatibility.pageId ||\n\t\tpage.framework !== input.compatibility.framework\n\t) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'invalid-request',\n\t\t\t\tmessage:\n\t\t\t\t\t'Archived producer page identity does not match its release artifact.'\n\t\t\t},\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\n\ttry {\n\t\tconst [currentRepresentation] = input.compatibility.representations;\n\t\tif (!currentRepresentation) {\n\t\t\tthrow new TypeError('Mobile page has no current representation.');\n\t\t}\n\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcontract: page.contract,\n\t\t\t\tframework: page.framework,\n\t\t\t\tkind: 'page',\n\t\t\t\tpageId: page.pageId,\n\t\t\t\tprops: normalizeJsonValue(\n\t\t\t\t\tcurrentRepresentation.mapProps(input.props)\n\t\t\t\t),\n\t\t\t\tstatus: input.status ?? OK_STATUS\n\t\t\t},\n\t\t\tinput.status ?? OK_STATUS\n\t\t);\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[Mobile] Archived producer ${context.releaseId} failed for ${page.pageId}:`,\n\t\t\terror\n\t\t);\n\n\t\treturn createAbsoluteMobilePageErrorResponse(page.pageId);\n\t}\n};\n\nexport const createAbsoluteMobileInvalidRequestResponse = (message: string) =>\n\tenvelopeResponse({ kind: 'invalid-request', message }, BAD_REQUEST_STATUS);\n\nexport const createAbsoluteMobilePageErrorResponse = (pageId: string) =>\n\tenvelopeResponse(\n\t\t{\n\t\t\tcode: 'representation-failed',\n\t\t\tkind: 'error',\n\t\t\tpageId,\n\t\t\tstatus: SERVER_ERROR_STATUS\n\t\t},\n\t\tSERVER_ERROR_STATUS\n\t);\n\nexport const createAbsoluteMobileUpgradeResponse = (\n\tresult: AbsoluteMobileUpgradeRequiredResult\n) => envelopeResponse(result, UPGRADE_REQUIRED_STATUS);\n\nexport const finalizeAbsoluteMobilePage = <Props>(\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => {\n\tconst parsed = parseAbsoluteMobilePageRequest(input.request);\n\tif (parsed.kind === 'not-mobile') return undefined;\n\tif (parsed.kind === 'invalid') {\n\t\treturn envelopeResponse(\n\t\t\t{ kind: 'invalid-request', message: parsed.message },\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\n\tconst { client } = parsed;\n\tif (client.pageId !== input.compatibility.pageId) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'invalid-request',\n\t\t\t\tmessage: `Requested mobile page ${client.pageId} does not match ${input.compatibility.pageId}.`\n\t\t\t},\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\tconst producerContext = getCurrentAbsoluteMobileProducerContext();\n\tif (producerContext)\n\t\treturn finalizeArchivedMobilePage(producerContext, input);\n\tif (client.protocol !== ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'protocol'\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\tif (!input.compatibility.runtimes.includes(client.runtime)) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'runtime',\n\t\t\t\tsupportedRuntimes: [...input.compatibility.runtimes]\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\n\tconst clientContracts = new Set(client.pageContracts);\n\tconst representation = input.compatibility.representations.find(\n\t\t({ contract }) => clientContracts.has(contract)\n\t);\n\tif (!representation) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'page-contract',\n\t\t\t\tsupportedContracts: input.compatibility.representations.map(\n\t\t\t\t\t({ contract }) => contract\n\t\t\t\t)\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\n\ttry {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcontract: representation.contract,\n\t\t\t\tframework: input.compatibility.framework,\n\t\t\t\tkind: 'page',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\tprops: normalizeJsonValue(representation.mapProps(input.props)),\n\t\t\t\tstatus: input.status ?? OK_STATUS\n\t\t\t},\n\t\t\tinput.status ?? OK_STATUS\n\t\t);\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[Mobile] Failed to produce ${input.compatibility.pageId} representation ${representation.contract}:`,\n\t\t\terror\n\t\t);\n\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcode: 'representation-failed',\n\t\t\t\tkind: 'error',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\tstatus: SERVER_ERROR_STATUS\n\t\t\t},\n\t\t\tSERVER_ERROR_STATUS\n\t\t);\n\t}\n};\n",
@@ -40,9 +40,10 @@
40
40
  "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",
41
41
  "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",
42
42
  "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",
43
- "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 './iosDeviceAcceptance';\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",
43
+ "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 './iosDeviceAcceptance';\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 './ciWorkflow';\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",
44
44
  "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",
45
45
  "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",
46
+ "import { existsSync } from 'node:fs';\nimport { access, mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { dirname, extname, relative, resolve, sep } from 'node:path';\nimport type { NormalizedAbsoluteMobileConfig } from './config';\n\nexport const ABSOLUTE_MOBILE_CI_WORKFLOW_FORMAT = 1 as const;\n\nexport type AbsoluteMobileGithubWorkflowOptions = {\n\tconfig: NormalizedAbsoluteMobileConfig;\n\tconfigPath?: string;\n\tforce?: boolean;\n\tincludePublishing?: boolean;\n\toutputPath?: string;\n\tprojectRoot: string;\n\tregistryModule?: string;\n\tsecretEnvironment?: readonly string[];\n\tserverEntry?: string;\n};\n\nexport type AbsoluteMobileGithubWorkflowResult = {\n\tchanged: boolean;\n\tformat: typeof ABSOLUTE_MOBILE_CI_WORKFLOW_FORMAT;\n\tpath: string;\n\tplatforms: ('android' | 'ios')[];\n\tpublishing: boolean;\n\trequiredSecrets: string[];\n};\n\nconst SECRET_NAME_PATTERN = /^[A-Z][A-Z0-9_]*$/u;\nconst CI_ENV_INDENTATION = 6;\nconst RESERVED_SECRET_NAMES = new Set([\n\t'ABSOLUTE_ANDROID_KEYSTORE_BASE64',\n\t'ABSOLUTE_ANDROID_KEYSTORE_PASSWORD',\n\t'ABSOLUTE_ANDROID_KEY_ALIAS',\n\t'ABSOLUTE_ANDROID_KEY_PASSWORD',\n\t'ABSOLUTE_GOOGLE_CREDENTIALS_BASE64',\n\t'ABSOLUTE_IOS_CERTIFICATE_BASE64',\n\t'ABSOLUTE_IOS_CERTIFICATE_PASSWORD',\n\t'ABSOLUTE_IOS_PROVISIONING_PROFILE_BASE64',\n\t'ABSOLUTE_IOS_KEYCHAIN_PASSWORD',\n\t'ABSOLUTE_IOS_DEVELOPMENT_TEAM',\n\t'APP_STORE_CONNECT_ISSUER_ID',\n\t'APP_STORE_CONNECT_KEY_ID',\n\t'APP_STORE_CONNECT_PRIVATE_KEY_BASE64'\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 yamlString = (value: string) => `'${value.replaceAll(\"'\", \"''\")}'`;\n\nconst projectPath = (\n\tprojectRoot: string,\n\tvalue: string,\n\tfield: string,\n\toptions: { allowMissing?: boolean } = {}\n) => {\n\tconst root = resolve(projectRoot);\n\tconst path = resolve(root, value);\n\tconst portable = relative(root, path).replaceAll('\\\\', '/');\n\tif (\n\t\tportable === '..' ||\n\t\tportable.startsWith(`..${sep}`) ||\n\t\tportable.startsWith('../') ||\n\t\tportable === ''\n\t) {\n\t\tthrow new TypeError(`${field} must remain inside the project root.`);\n\t}\n\tif (/\\r|\\n/u.test(portable) || portable.startsWith('-'))\n\t\tthrow new TypeError(`${field} contains an unsafe path.`);\n\tif (!options.allowMissing && !existsSync(path))\n\t\tthrow new TypeError(`${field} does not exist inside the project.`);\n\n\treturn portable;\n};\n\nconst workflowOutputPath = (projectRoot: string, value?: string) => {\n\tconst root = resolve(projectRoot);\n\tconst workflows = resolve(root, '.github/workflows');\n\tconst path = resolve(\n\t\troot,\n\t\tvalue ?? '.github/workflows/absolute-mobile.yml'\n\t);\n\tconst portable = relative(workflows, path);\n\tif (\n\t\tportable === '..' ||\n\t\tportable.startsWith(`..${sep}`) ||\n\t\t(extname(path) !== '.yml' && extname(path) !== '.yaml')\n\t) {\n\t\tthrow new TypeError(\n\t\t\t'mobile ci github --output must be a .yml or .yaml file inside .github/workflows.'\n\t\t);\n\t}\n\n\treturn path;\n};\n\nconst normalizeSecretEnvironment = (values: readonly string[] = []) => {\n\tconst names = [...new Set(values)].sort();\n\tfor (const name of names) {\n\t\tif (!SECRET_NAME_PATTERN.test(name))\n\t\t\tthrow new TypeError(\n\t\t\t\t'mobile ci github --secret-env values must be uppercase environment variable names.'\n\t\t\t);\n\t\tif (\n\t\t\tname.startsWith('GITHUB_') ||\n\t\t\tname.startsWith('RUNNER_') ||\n\t\t\tname.startsWith('ACTIONS_') ||\n\t\t\tRESERVED_SECRET_NAMES.has(name)\n\t\t) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`mobile ci github --secret-env cannot replace reserved variable ${name}.`\n\t\t\t);\n\t\t}\n\t}\n\n\treturn names;\n};\n\nconst customSecretEnvironment = (\n\tnames: readonly string[],\n\tindentation = CI_ENV_INDENTATION\n) =>\n\tnames\n\t\t.map(\n\t\t\t(name) =>\n\t\t\t\t`${' '.repeat(indentation)}${name}: \\${{ secrets.${name} }}`\n\t\t)\n\t\t.join('\\n');\n\ntype CommandEnvironmentOptions = {\n\tconfigPath?: string;\n\tregistryModule: string;\n\tserverEntry: string;\n};\n\ntype PlatformJobOptions = {\n\tcustomSecrets: readonly string[];\n\tincludePublishing: boolean;\n};\n\nconst commandEnvironment = (options: CommandEnvironmentOptions) =>\n\t` ABSOLUTE_CONFIG_PATH: ${yamlString(options.configPath ?? '')}\n ABSOLUTE_REGISTRY_MODULE: ${yamlString(options.registryModule)}\n ABSOLUTE_SERVER_ENTRY: ${yamlString(options.serverEntry)}`;\n\nconst appendConfigArgument = `if [[ -n \"$ABSOLUTE_CONFIG_PATH\" ]]; then\n args+=(--config \"$ABSOLUTE_CONFIG_PATH\")\n fi`;\n\nconst installSteps = ` - name: Check out source\n uses: actions/checkout@v6\n - name: Install Bun\n uses: oven-sh/setup-bun@v2\n - name: Install exact dependencies\n run: bun ci`;\n\nconst bundleAuditSteps = ` - name: Prepare production mobile bundle\n shell: bash\n run: |\n args=(bunx absolute prepare \"$ABSOLUTE_SERVER_ENTRY\" --outdir .absolutejs/mobile-ci/server)\n ${appendConfigArgument}\n \"\\${args[@]}\"\n - name: Run cryptographic mobile bundle audit\n id: mobile-bundle-audit\n continue-on-error: true\n shell: bash\n run: |\n mkdir -p .absolutejs/mobile-ci\n args=(bunx absolute mobile inspect --json --require-bundle)\n ${appendConfigArgument}\n \"\\${args[@]}\" > .absolutejs/mobile-ci/inspection.json\n - name: Upload mobile inspection report\n if: always()\n uses: actions/upload-artifact@v7\n with:\n name: absolute-mobile-inspection\n path: .absolutejs/mobile-ci/inspection.json\n if-no-files-found: error\n retention-days: 30\n include-hidden-files: true\n - name: Enforce mobile bundle audit\n if: steps.mobile-bundle-audit.outcome != 'success'\n run: exit 1`;\n\nconst releaseAuditSteps = (\n\tplatform: 'android' | 'ios'\n) => ` - name: Run redacted mobile release audit\n id: mobile-release-audit\n continue-on-error: true\n shell: bash\n run: |\n mkdir -p .absolutejs/mobile-ci\n args=(bunx absolute mobile doctor release ${platform} --json)\n ${appendConfigArgument}\n \"\\${args[@]}\" > .absolutejs/mobile-ci/compliance.json\n - name: Upload mobile compliance report\n if: always()\n uses: actions/upload-artifact@v7\n with:\n name: absolute-mobile-compliance-\\${{ github.job }}\n path: .absolutejs/mobile-ci/compliance.json\n if-no-files-found: error\n retention-days: 30\n include-hidden-files: true\n - name: Enforce mobile release audit\n if: steps.mobile-release-audit.outcome != 'success'\n run: exit 1`;\n\nconst platformInput = (platforms: readonly string[]) => {\n\tconst choices = platforms.length === 2 ? ['all', ...platforms] : platforms;\n\n\treturn ` platform:\n description: Native platform to build\n required: true\n type: choice\n default: ${choices[0]}\n options:\n${choices.map((value) => ` - ${value}`).join('\\n')}`;\n};\n\nconst publishingInputs = (\n\tplatforms: readonly string[],\n\tincludePublishing: boolean\n) => {\n\tif (!includePublishing) return '';\n\tconst fields = [\n\t\t` publish:\n description: Publish through mobile.release.ts after the signed build\n required: true\n type: boolean\n default: false`,\n\t\t` channel:\n description: Optional AbsoluteJS immutable release channel\n required: false\n type: string`\n\t];\n\tif (platforms.includes('android'))\n\t\tfields.push(` play_track:\n description: Optional Google Play track\n required: true\n type: choice\n default: registry-only\n options:\n - registry-only\n - internal\n - alpha\n - beta\n - production`);\n\tif (platforms.includes('ios')) {\n\t\tfields.push(` testflight_group:\n description: Optional internal or external TestFlight group\n required: false\n type: string`);\n\t\tfields.push(` submit_testflight_review:\n description: Explicitly submit an external TestFlight build for review\n required: true\n type: boolean\n default: false`);\n\t}\n\n\treturn `\\n${fields.join('\\n')}`;\n};\n\nconst jobCondition = (platform: 'android' | 'ios') =>\n\t`github.event_name == 'workflow_dispatch' && (inputs.platform == 'all' || inputs.platform == '${platform}')`;\n\nconst androidJob = (options: PlatformJobOptions) => {\n\tconst custom = customSecretEnvironment(options.customSecrets);\n\tconst publishEnvironment = options.includePublishing\n\t\t? `\n ABSOLUTE_PUBLISH: \\${{ inputs.publish }}\n ABSOLUTE_RELEASE_CHANNEL: \\${{ inputs.channel }}\n ABSOLUTE_PLAY_TRACK: \\${{ inputs.play_track }}\n ABSOLUTE_GOOGLE_CREDENTIALS_BASE64: \\${{ secrets.ABSOLUTE_GOOGLE_CREDENTIALS_BASE64 }}\n GOOGLE_APPLICATION_CREDENTIALS: \\${{ runner.temp }}/absolute-google-credentials.json`\n\t\t: '';\n\tconst publishCommand = options.includePublishing\n\t\t? `if [[ \"$ABSOLUTE_PUBLISH\" == \"true\" ]]; then\n args=(bunx absolute mobile publish android \"$ABSOLUTE_SERVER_ENTRY\" --registry \"$ABSOLUTE_REGISTRY_MODULE\")\n if [[ -n \"$ABSOLUTE_RELEASE_CHANNEL\" ]]; then\n args+=(--channel \"$ABSOLUTE_RELEASE_CHANNEL\")\n fi\n if [[ \"$ABSOLUTE_PLAY_TRACK\" != \"registry-only\" ]]; then\n args+=(--play-track \"$ABSOLUTE_PLAY_TRACK\")\n fi\n else\n args=(bunx absolute mobile build android \"$ABSOLUTE_SERVER_ENTRY\")\n fi`\n\t\t: `args=(bunx absolute mobile build android \"$ABSOLUTE_SERVER_ENTRY\")`;\n\tconst googleSetup = options.includePublishing\n\t\t? `\n if [[ \"$ABSOLUTE_PUBLISH\" == \"true\" && \"$ABSOLUTE_PLAY_TRACK\" != \"registry-only\" ]]; then\n if [[ -z \"$ABSOLUTE_GOOGLE_CREDENTIALS_BASE64\" ]]; then\n echo \"ABSOLUTE_GOOGLE_CREDENTIALS_BASE64 is required for Google Play publication.\" >&2\n exit 1\n fi\n printf '%s' \"$ABSOLUTE_GOOGLE_CREDENTIALS_BASE64\" | base64 --decode > \"$GOOGLE_APPLICATION_CREDENTIALS\"\n chmod 600 \"$GOOGLE_APPLICATION_CREDENTIALS\"\n fi`\n\t\t: '';\n\n\treturn `\n android:\n name: Signed Android release\n needs: validate\n if: \\${{ ${jobCondition('android')} }}\n runs-on: ubuntu-latest\n environment: absolute-mobile-release\n permissions:\n contents: read\n id-token: write\n attestations: write\n env:\n ABSOLUTE_ANDROID_KEYSTORE_BASE64: \\${{ secrets.ABSOLUTE_ANDROID_KEYSTORE_BASE64 }}\n ABSOLUTE_ANDROID_KEYSTORE_PASSWORD: \\${{ secrets.ABSOLUTE_ANDROID_KEYSTORE_PASSWORD }}\n ABSOLUTE_ANDROID_KEY_ALIAS: \\${{ secrets.ABSOLUTE_ANDROID_KEY_ALIAS }}\n ABSOLUTE_ANDROID_KEY_PASSWORD: \\${{ secrets.ABSOLUTE_ANDROID_KEY_PASSWORD }}\n ABSOLUTE_ANDROID_KEYSTORE_PATH: \\${{ runner.temp }}/absolute-release.jks${publishEnvironment}${custom ? `\\n${custom}` : ''}\n${commandEnvironment({ configPath: undefined, registryModule: '', serverEntry: '' })}\n steps:\n${installSteps}\n - name: Provision Android signing\n shell: bash\n run: |\n required=(\n ABSOLUTE_ANDROID_KEYSTORE_BASE64\n ABSOLUTE_ANDROID_KEYSTORE_PASSWORD\n ABSOLUTE_ANDROID_KEY_ALIAS\n ABSOLUTE_ANDROID_KEY_PASSWORD\n )\n for name in \"\\${required[@]}\"; do\n if [[ -z \"\\${!name}\" ]]; then\n echo \"$name is required in the absolute-mobile-release environment.\" >&2\n exit 1\n fi\n done\n printf '%s' \"$ABSOLUTE_ANDROID_KEYSTORE_BASE64\" | base64 --decode > \"\\${{ runner.temp }}/absolute-release.jks\"\n chmod 600 \"\\${{ runner.temp }}/absolute-release.jks\"${googleSetup}\n - name: Build or publish Android\n shell: bash\n run: |\n ${publishCommand}\n ${appendConfigArgument}\n \"\\${args[@]}\"\n${releaseAuditSteps('android')}\n - name: Attest Android App Bundle\n if: inputs.attest\n uses: actions/attest@v4\n with:\n subject-path: .absolutejs/mobile/releases/android/**/app-release.aab\n - name: Upload Android release\n uses: actions/upload-artifact@v7\n with:\n name: absolute-mobile-android\n path: .absolutejs/mobile/releases/android/\n if-no-files-found: error\n retention-days: 14\n include-hidden-files: true\n - name: Remove Android credentials\n if: always()\n shell: bash\n run: |\n rm -f \"\\${{ runner.temp }}/absolute-release.jks\"\n rm -f \"\\${{ runner.temp }}/absolute-google-credentials.json\"`;\n};\n\nconst iosJob = (options: PlatformJobOptions) => {\n\tconst custom = customSecretEnvironment(options.customSecrets);\n\tconst publishEnvironment = options.includePublishing\n\t\t? `\n ABSOLUTE_PUBLISH: \\${{ inputs.publish }}\n ABSOLUTE_RELEASE_CHANNEL: \\${{ inputs.channel }}\n ABSOLUTE_TESTFLIGHT_GROUP: \\${{ inputs.testflight_group }}\n ABSOLUTE_TESTFLIGHT_SUBMIT_REVIEW: \\${{ inputs.submit_testflight_review }}\n APP_STORE_CONNECT_ISSUER_ID: \\${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}\n APP_STORE_CONNECT_KEY_ID: \\${{ secrets.APP_STORE_CONNECT_KEY_ID }}\n APP_STORE_CONNECT_PRIVATE_KEY_BASE64: \\${{ secrets.APP_STORE_CONNECT_PRIVATE_KEY_BASE64 }}\n APP_STORE_CONNECT_PRIVATE_KEY_PATH: \\${{ runner.temp }}/AuthKey_AbsoluteJS.p8`\n\t\t: '';\n\tconst publishCommand = options.includePublishing\n\t\t? `if [[ \"$ABSOLUTE_PUBLISH\" == \"true\" ]]; then\n args=(bunx absolute mobile publish ios \"$ABSOLUTE_SERVER_ENTRY\" --registry \"$ABSOLUTE_REGISTRY_MODULE\")\n if [[ -n \"$ABSOLUTE_RELEASE_CHANNEL\" ]]; then\n args+=(--channel \"$ABSOLUTE_RELEASE_CHANNEL\")\n fi\n if [[ -n \"$ABSOLUTE_TESTFLIGHT_GROUP\" ]]; then\n args+=(--testflight-group \"$ABSOLUTE_TESTFLIGHT_GROUP\")\n fi\n if [[ \"$ABSOLUTE_TESTFLIGHT_SUBMIT_REVIEW\" == \"true\" ]]; then\n args+=(--testflight-submit-review)\n fi\n else\n args=(bunx absolute mobile build ios \"$ABSOLUTE_SERVER_ENTRY\")\n fi`\n\t\t: `args=(bunx absolute mobile build ios \"$ABSOLUTE_SERVER_ENTRY\")`;\n\tconst appStoreSetup = options.includePublishing\n\t\t? `\n if [[ \"$ABSOLUTE_PUBLISH\" == \"true\" && -n \"$ABSOLUTE_TESTFLIGHT_GROUP\" ]]; then\n required+=(APP_STORE_CONNECT_ISSUER_ID APP_STORE_CONNECT_KEY_ID APP_STORE_CONNECT_PRIVATE_KEY_BASE64)\n fi`\n\t\t: '';\n\tconst appStoreDecode = options.includePublishing\n\t\t? `\n if [[ \"$ABSOLUTE_PUBLISH\" == \"true\" && -n \"$ABSOLUTE_TESTFLIGHT_GROUP\" ]]; then\n printf '%s' \"$APP_STORE_CONNECT_PRIVATE_KEY_BASE64\" | base64 --decode > \"$APP_STORE_CONNECT_PRIVATE_KEY_PATH\"\n chmod 600 \"$APP_STORE_CONNECT_PRIVATE_KEY_PATH\"\n fi`\n\t\t: '';\n\n\treturn `\n ios:\n name: Signed iOS release\n needs: validate\n if: \\${{ ${jobCondition('ios')} }}\n runs-on: macos-latest\n environment: absolute-mobile-release\n permissions:\n contents: read\n id-token: write\n attestations: write\n env:\n ABSOLUTE_IOS_CERTIFICATE_BASE64: \\${{ secrets.ABSOLUTE_IOS_CERTIFICATE_BASE64 }}\n ABSOLUTE_IOS_CERTIFICATE_PASSWORD: \\${{ secrets.ABSOLUTE_IOS_CERTIFICATE_PASSWORD }}\n ABSOLUTE_IOS_PROVISIONING_PROFILE_BASE64: \\${{ secrets.ABSOLUTE_IOS_PROVISIONING_PROFILE_BASE64 }}\n ABSOLUTE_IOS_KEYCHAIN_PASSWORD: \\${{ secrets.ABSOLUTE_IOS_KEYCHAIN_PASSWORD }}${publishEnvironment}${custom ? `\\n${custom}` : ''}\n ABSOLUTE_IOS_DEVELOPMENT_TEAM: \\${{ secrets.ABSOLUTE_IOS_DEVELOPMENT_TEAM }}\n${commandEnvironment({ configPath: undefined, registryModule: '', serverEntry: '' })}\n steps:\n${installSteps}\n - name: Provision iOS signing\n shell: bash\n run: |\n required=(\n ABSOLUTE_IOS_CERTIFICATE_BASE64\n ABSOLUTE_IOS_CERTIFICATE_PASSWORD\n ABSOLUTE_IOS_PROVISIONING_PROFILE_BASE64\n ABSOLUTE_IOS_KEYCHAIN_PASSWORD\n ABSOLUTE_IOS_DEVELOPMENT_TEAM\n )${appStoreSetup}\n for name in \"\\${required[@]}\"; do\n if [[ -z \"\\${!name}\" ]]; then\n echo \"$name is required in the absolute-mobile-release environment.\" >&2\n exit 1\n fi\n done\n CERTIFICATE_PATH=\"\\${{ runner.temp }}/absolute-signing.p12\"\n PROFILE_PATH=\"\\${{ runner.temp }}/absolute.mobileprovision\"\n KEYCHAIN_PATH=\"\\${{ runner.temp }}/absolute-signing.keychain-db\"\n PROFILE_DESTINATION=\"$HOME/Library/MobileDevice/Provisioning Profiles/absolute.mobileprovision\"\n printf '%s' \"$ABSOLUTE_IOS_CERTIFICATE_BASE64\" | base64 --decode > \"$CERTIFICATE_PATH\"\n printf '%s' \"$ABSOLUTE_IOS_PROVISIONING_PROFILE_BASE64\" | base64 --decode > \"$PROFILE_PATH\"\n security create-keychain -p \"$ABSOLUTE_IOS_KEYCHAIN_PASSWORD\" \"$KEYCHAIN_PATH\"\n security set-keychain-settings -lut 21600 \"$KEYCHAIN_PATH\"\n security unlock-keychain -p \"$ABSOLUTE_IOS_KEYCHAIN_PASSWORD\" \"$KEYCHAIN_PATH\"\n security import \"$CERTIFICATE_PATH\" -P \"$ABSOLUTE_IOS_CERTIFICATE_PASSWORD\" -A -t cert -f pkcs12 -k \"$KEYCHAIN_PATH\"\n security set-key-partition-list -S apple-tool:,apple: -k \"$ABSOLUTE_IOS_KEYCHAIN_PASSWORD\" \"$KEYCHAIN_PATH\"\n security list-keychain -d user -s \"$KEYCHAIN_PATH\"\n mkdir -p \"$(dirname \"$PROFILE_DESTINATION\")\"\n cp \"$PROFILE_PATH\" \"$PROFILE_DESTINATION\"${appStoreDecode}\n - name: Build or publish iOS\n shell: bash\n run: |\n ${publishCommand}\n ${appendConfigArgument}\n \"\\${args[@]}\"\n${releaseAuditSteps('ios')}\n - name: Attest iOS IPA\n if: inputs.attest\n uses: actions/attest@v4\n with:\n subject-path: .absolutejs/mobile/releases/ios/**/App.ipa\n - name: Upload iOS release\n uses: actions/upload-artifact@v7\n with:\n name: absolute-mobile-ios\n path: .absolutejs/mobile/releases/ios/\n if-no-files-found: error\n retention-days: 14\n include-hidden-files: true\n - name: Remove iOS credentials\n if: always()\n shell: bash\n run: |\n security delete-keychain \"\\${{ runner.temp }}/absolute-signing.keychain-db\" 2>/dev/null || true\n rm -f \"$HOME/Library/MobileDevice/Provisioning Profiles/absolute.mobileprovision\"\n rm -f \"\\${{ runner.temp }}/absolute-signing.p12\"\n rm -f \"\\${{ runner.temp }}/absolute.mobileprovision\"\n rm -f \"\\${{ runner.temp }}/AuthKey_AbsoluteJS.p8\"`;\n};\n\nconst requiredSecrets = (\n\tplatforms: readonly string[],\n\tincludePublishing: boolean,\n\tcustom: readonly string[]\n) => [\n\t...(platforms.includes('android')\n\t\t? [\n\t\t\t\t'ABSOLUTE_ANDROID_KEYSTORE_BASE64',\n\t\t\t\t'ABSOLUTE_ANDROID_KEYSTORE_PASSWORD',\n\t\t\t\t'ABSOLUTE_ANDROID_KEY_ALIAS',\n\t\t\t\t'ABSOLUTE_ANDROID_KEY_PASSWORD',\n\t\t\t\t...(includePublishing\n\t\t\t\t\t? ['ABSOLUTE_GOOGLE_CREDENTIALS_BASE64']\n\t\t\t\t\t: [])\n\t\t\t]\n\t\t: []),\n\t...(platforms.includes('ios')\n\t\t? [\n\t\t\t\t'ABSOLUTE_IOS_CERTIFICATE_BASE64',\n\t\t\t\t'ABSOLUTE_IOS_CERTIFICATE_PASSWORD',\n\t\t\t\t'ABSOLUTE_IOS_PROVISIONING_PROFILE_BASE64',\n\t\t\t\t'ABSOLUTE_IOS_KEYCHAIN_PASSWORD',\n\t\t\t\t'ABSOLUTE_IOS_DEVELOPMENT_TEAM',\n\t\t\t\t...(includePublishing\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t'APP_STORE_CONNECT_ISSUER_ID',\n\t\t\t\t\t\t\t'APP_STORE_CONNECT_KEY_ID',\n\t\t\t\t\t\t\t'APP_STORE_CONNECT_PRIVATE_KEY_BASE64'\n\t\t\t\t\t\t]\n\t\t\t\t\t: [])\n\t\t\t]\n\t\t: []),\n\t...custom\n];\n\nexport const createAbsoluteMobileGithubWorkflow = (\n\toptions: AbsoluteMobileGithubWorkflowOptions\n) => {\n\tconst platforms: ('android' | 'ios')[] = [\n\t\t...options.config.platforms\n\t].sort();\n\tconst includePublishing = options.includePublishing === true;\n\tconst customSecrets = normalizeSecretEnvironment(options.secretEnvironment);\n\tconst serverEntry = projectPath(\n\t\toptions.projectRoot,\n\t\toptions.serverEntry ?? 'server.ts',\n\t\t'mobile ci github server entry'\n\t);\n\tconst configPath = options.configPath\n\t\t? projectPath(\n\t\t\t\toptions.projectRoot,\n\t\t\t\toptions.configPath,\n\t\t\t\t'mobile ci github --config'\n\t\t\t)\n\t\t: undefined;\n\tconst registryModule = projectPath(\n\t\toptions.projectRoot,\n\t\toptions.registryModule ?? 'mobile.release.ts',\n\t\t'mobile ci github --registry',\n\t\t{ allowMissing: !includePublishing }\n\t);\n\tconst environment = commandEnvironment({\n\t\tconfigPath,\n\t\tregistryModule,\n\t\tserverEntry\n\t});\n\tlet workflow = `# Generated by AbsoluteJS. Regenerate with: absolute mobile ci github${includePublishing ? ' --publish' : ''}\nname: AbsoluteJS Mobile\n\non:\n pull_request:\n workflow_dispatch:\n inputs:\n${platformInput(platforms)}\n attest:\n description: Generate GitHub artifact provenance attestations\n required: true\n type: boolean\n default: false${publishingInputs(platforms, includePublishing)}\n\nconcurrency:\n group: absolute-mobile-\\${{ github.repository }}\n cancel-in-progress: false\n\njobs:\n validate:\n name: Validate mobile release inputs\n runs-on: ubuntu-latest\n permissions:\n contents: read\n env:\n${environment}\n steps:\n${installSteps}\n${bundleAuditSteps}${platforms.includes('android') ? androidJob({ customSecrets, includePublishing }) : ''}${platforms.includes('ios') ? iosJob({ customSecrets, includePublishing }) : ''}\n`;\n\tconst replacements = new Map([\n\t\t[\n\t\t\t\"ABSOLUTE_CONFIG_PATH: ''\",\n\t\t\t`ABSOLUTE_CONFIG_PATH: ${yamlString(configPath ?? '')}`\n\t\t],\n\t\t[\n\t\t\t\"ABSOLUTE_REGISTRY_MODULE: ''\",\n\t\t\t`ABSOLUTE_REGISTRY_MODULE: ${yamlString(registryModule)}`\n\t\t],\n\t\t[\n\t\t\t\"ABSOLUTE_SERVER_ENTRY: ''\",\n\t\t\t`ABSOLUTE_SERVER_ENTRY: ${yamlString(serverEntry)}`\n\t\t]\n\t]);\n\tfor (const [placeholder, replacement] of replacements)\n\t\tworkflow = workflow.replaceAll(placeholder, replacement);\n\n\treturn {\n\t\trequiredSecrets: requiredSecrets(\n\t\t\tplatforms,\n\t\t\tincludePublishing,\n\t\t\tcustomSecrets\n\t\t),\n\t\tworkflow\n\t};\n};\n\nexport const writeAbsoluteMobileGithubWorkflow = async (\n\toptions: AbsoluteMobileGithubWorkflowOptions\n): Promise<AbsoluteMobileGithubWorkflowResult> => {\n\tconst path = workflowOutputPath(options.projectRoot, options.outputPath);\n\tconst generated = createAbsoluteMobileGithubWorkflow(options);\n\tconst previous = (await exists(path))\n\t\t? await readFile(path, 'utf8')\n\t\t: undefined;\n\tif (\n\t\tprevious !== undefined &&\n\t\tprevious !== generated.workflow &&\n\t\t!options.force\n\t)\n\t\tthrow new TypeError(\n\t\t\t`${relative(options.projectRoot, path)} already exists and differs. Rerun with --force to replace the generated workflow.`\n\t\t);\n\tif (previous !== generated.workflow) {\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, generated.workflow);\n\t}\n\n\treturn {\n\t\tchanged: previous !== generated.workflow,\n\t\tformat: ABSOLUTE_MOBILE_CI_WORKFLOW_FORMAT,\n\t\tpath,\n\t\tplatforms: [...options.config.platforms].sort(),\n\t\tpublishing: options.includePublishing === true,\n\t\trequiredSecrets: generated.requiredSecrets\n\t};\n};\n",
46
47
  "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",
47
48
  "import { AsyncLocalStorage } from 'node:async_hooks';\nimport {\n\tABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY,\n\ttype AbsoluteMobileProducerContext\n} from './producerContextState';\n\nexport type { AbsoluteMobileProducerContext } from './producerContextState';\nexport { getCurrentAbsoluteMobileProducerContext } from './producerContextState';\n\ntype AbsoluteMobileProducerStorage =\n\tAsyncLocalStorage<AbsoluteMobileProducerContext>;\n\nconst isProducerStorage = (\n\tvalue: unknown\n): value is AbsoluteMobileProducerStorage =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t'getStore' in value &&\n\ttypeof value.getStore === 'function' &&\n\t'run' in value &&\n\ttypeof value.run === 'function';\n\nconst getProducerStorage = () => {\n\tconst value = Reflect.get(globalThis, ABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY);\n\n\treturn isProducerStorage(value) ? value : undefined;\n};\n\nconst ensureProducerStorage = () => {\n\tconst existing = getProducerStorage();\n\tif (existing) return existing;\n\n\tconst storage = new AsyncLocalStorage<AbsoluteMobileProducerContext>();\n\tReflect.set(globalThis, ABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY, storage);\n\n\treturn storage;\n};\n\nexport const runWithAbsoluteMobileProducer = <Result>(\n\tcontext: AbsoluteMobileProducerContext,\n\tcallback: () => Result\n) => ensureProducerStorage().run(context, callback);\n",
48
49
  "import { Elysia } from 'elysia';\nimport type { MobileConfig } from '../../types/build';\nimport { sendTelemetryEvent } from '../cli/telemetryEvent';\n\nexport const ABSOLUTE_MOBILE_PREVIEW_PATH =\n\t'/__absolute/mobile-preview' as const;\n\nconst escapeHtml = (value: string) =>\n\tvalue\n\t\t.replaceAll('&', '&amp;')\n\t\t.replaceAll('<', '&lt;')\n\t\t.replaceAll('>', '&gt;')\n\t\t.replaceAll('\"', '&quot;');\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst normalizeEntry = (entry: string | undefined) => {\n\tconst parsed = new URL(entry ?? '/', 'https://absolute.invalid');\n\n\treturn `${parsed.pathname}${parsed.search}${parsed.hash}`;\n};\n\nexport const absoluteMobilePreviewDocument = (mobile: MobileConfig) => {\n\tconst entry = normalizeEntry(mobile.entry);\n\tconst appName = mobile.appName?.trim() || 'AbsoluteJS App';\n\tconst boot = JSON.stringify({ appName, entry }).replaceAll('<', '\\\\u003c');\n\n\treturn `<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n<meta name=\"color-scheme\" content=\"dark\">\n<link rel=\"icon\" href=\"data:,\">\n<title>${escapeHtml(appName)} · Mobile Preview</title>\n<style>\n:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#e8ecf3;background:#080b12;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 30% 0,#17213a 0,#080b12 42%)}button,input,select{font:inherit}.shell{display:grid;grid-template-columns:minmax(320px,1fr) 292px;gap:24px;min-height:100vh;padding:24px}.stage{display:grid;place-items:center;min-width:0}.device{position:relative;width:min(100%,430px);height:min(880px,calc(100vh - 48px));min-height:620px;padding:12px;border:1px solid #343c4d;border-radius:48px;background:#111620;box-shadow:0 35px 80px #0009,inset 0 0 0 1px #ffffff0d}.device.android{border-radius:30px}.screen{position:relative;width:100%;height:100%;overflow:hidden;border-radius:37px;background:#fff}.android .screen{border-radius:20px}.island{position:absolute;z-index:2;top:17px;left:50%;width:112px;height:30px;transform:translateX(-50%);border-radius:18px;background:#080b12;pointer-events:none}.android .island{width:9px;height:9px;top:10px}.app{width:100%;height:100%;border:0;background:#fff}.panel{align-self:start;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;padding:18px;border:1px solid #262d3a;border-radius:20px;background:#0e131dcc;box-shadow:0 18px 50px #0005;backdrop-filter:blur(18px)}h1{font-size:18px;margin:0}.sub{margin:5px 0 18px;color:#8f9aae;font-size:12px}.status{display:flex;align-items:center;gap:8px;margin-bottom:18px;padding:9px 11px;border-radius:10px;background:#151c28;color:#aeb8ca;font-size:12px}.dot{width:8px;height:8px;border-radius:50%;background:#eab308}.ready .dot{background:#22c55e}.group{padding:14px 0;border-top:1px solid #252c39}.group:first-of-type{border-top:0}.label{display:block;margin-bottom:8px;color:#97a3b7;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.row{display:flex;gap:8px}.row>*{min-width:0}.grow{flex:1}button,select,input{border:1px solid #30394a;border-radius:9px;background:#171e2b;color:#e8ecf3;padding:9px 10px}button{cursor:pointer}button:hover{border-color:#64748b;background:#202a3a}button.active{border-color:#60a5fa;background:#172b48;color:#bfdbfe}input{width:100%}.events{height:84px;overflow:auto;margin-top:8px;padding:8px;border-radius:9px;background:#090d14;color:#8290a7;font:11px/1.5 ui-monospace,monospace}.hint{margin-top:12px;color:#64748b;font-size:11px;line-height:1.45}@media(max-width:840px){.shell{grid-template-columns:1fr;padding:12px}.device{height:720px}.panel{position:static;max-height:none}}\n</style>\n</head>\n<body>\n<main class=\"shell\">\n<section class=\"stage\"><div class=\"device\" id=\"device\"><div class=\"island\"></div><div class=\"screen\"><iframe class=\"app\" id=\"app\" title=\"${escapeHtml(appName)} mobile runtime\"></iframe></div></div></section>\n<aside class=\"panel\">\n<h1>${escapeHtml(appName)}</h1><p class=\"sub\">AbsoluteJS mobile runtime preview</p>\n<div class=\"status\" id=\"status\"><span class=\"dot\"></span><span id=\"statusText\">Starting runtime…</span></div>\n<div class=\"group\"><span class=\"label\">Device</span><div class=\"row\"><button id=\"ios\" class=\"grow active\">iOS</button><button id=\"android\" class=\"grow\">Android</button></div></div>\n<div class=\"group\"><label class=\"label\" for=\"route\">Route / deep link</label><div class=\"row\"><input id=\"route\" value=\"${escapeHtml(entry)}\"><button id=\"go\">Go</button></div><div class=\"row\" style=\"margin-top:8px\"><button id=\"deepLink\" class=\"grow\">Emit deep link</button><button id=\"back\" class=\"grow\">Hardware back</button></div></div>\n<div class=\"group\"><span class=\"label\">Connection</span><div class=\"row\"><button id=\"online\" class=\"grow active\">Wi-Fi</button><button id=\"cellular\" class=\"grow\">Cellular</button><button id=\"offline\" class=\"grow\">Offline</button></div></div>\n<div class=\"group\"><span class=\"label\">Lifecycle</span><div class=\"row\"><button id=\"active\" class=\"grow active\">Active</button><button id=\"background\" class=\"grow\">Background</button><button id=\"inactive\" class=\"grow\">Inactive</button></div></div>\n<div class=\"group\"><span class=\"label\">Keyboard</span><div class=\"row\"><button id=\"keyboardShow\" class=\"grow\">Show</button><button id=\"keyboardHide\" class=\"grow\">Hide</button></div></div>\n<div class=\"group\"><label class=\"label\" for=\"permission\">Permissions</label><div class=\"row\"><select id=\"permission\" class=\"grow\"><option value=\"camera\">Camera</option><option value=\"location\">Location</option><option value=\"notifications\">Notifications</option></select><select id=\"permissionState\" class=\"grow\"><option value=\"prompt\">Prompt</option><option value=\"granted\">Granted</option><option value=\"denied\">Denied</option><option value=\"blocked\">Blocked</option></select></div><button id=\"applyPermission\" style=\"width:100%;margin-top:8px\">Apply permission state</button></div>\n<div class=\"group\"><span class=\"label\">Runtime events</span><div class=\"events\" id=\"events\" aria-live=\"polite\"></div><p class=\"hint\">This runs the same development pages, HMR client, provider-neutral HTTP, and Devices contracts as an installed target. Native rendering, signing, push delivery, and OS scheduling still require a simulator or physical device.</p></div>\n</aside>\n</main>\n<script>const config=${boot};const frame=document.getElementById('app');const device=document.getElementById('device');const status=document.getElementById('status');const statusText=document.getElementById('statusText');const events=document.getElementById('events');let platform='ios';const event=(text)=>{const line=document.createElement('div');line.textContent=new Date().toLocaleTimeString()+' · '+text;events.prepend(line)};const routeUrl=()=>{const value=document.getElementById('route').value.trim()||config.entry;const url=new URL(value,location.origin);if(url.origin!==location.origin)throw new TypeError('Preview routes must stay on this dev server.');url.searchParams.set('__absolute_target','mobile-preview');url.searchParams.set('__absolute_preview_platform',platform);return url};const load=()=>{try{status.classList.remove('ready');statusText.textContent='Starting runtime…';frame.src=routeUrl().href;event('loaded '+routeUrl().pathname)}catch(error){statusText.textContent=error.message}};const send=(message)=>{if(!frame.contentWindow)return;frame.contentWindow.postMessage(message,location.origin);event(message.type.replace('absolute-preview:',''))};const select=(ids,active)=>ids.forEach(id=>document.getElementById(id).classList.toggle('active',id===active));document.getElementById('ios').onclick=()=>{platform='ios';device.classList.remove('android');select(['ios','android'],'ios');load()};document.getElementById('android').onclick=()=>{platform='android';device.classList.add('android');select(['ios','android'],'android');load()};document.getElementById('go').onclick=load;document.getElementById('route').onkeydown=e=>{if(e.key==='Enter')load()};document.getElementById('deepLink').onclick=()=>send({type:'absolute-preview:deep-link',url:new URL(document.getElementById('route').value,location.origin).href});document.getElementById('back').onclick=()=>send({type:'absolute-preview:back'});[['online',true,'wifi'],['cellular',true,'cellular'],['offline',false,'none']].forEach(([id,connected,connectionType])=>document.getElementById(id).onclick=()=>{select(['online','cellular','offline'],id);send({type:'absolute-preview:network',connected,connectionType})});['active','background','inactive'].forEach(id=>document.getElementById(id).onclick=()=>{select(['active','background','inactive'],id);send({type:'absolute-preview:lifecycle',state:id})});document.getElementById('keyboardShow').onclick=()=>send({type:'absolute-preview:keyboard',visible:true,heightPx:320});document.getElementById('keyboardHide').onclick=()=>send({type:'absolute-preview:keyboard',visible:false,heightPx:0});document.getElementById('applyPermission').onclick=()=>send({type:'absolute-preview:permission',capability:document.getElementById('permission').value,state:document.getElementById('permissionState').value});addEventListener('message',e=>{if(e.origin!==location.origin||e.source!==frame.contentWindow||!e.data||typeof e.data.type!=='string'||!e.data.type.startsWith('absolute-preview:'))return;if(e.data.type==='absolute-preview:ready'){status.classList.add('ready');statusText.textContent=platform==='ios'?'iOS runtime connected':'Android runtime connected'}event(e.data.event||e.data.type.replace('absolute-preview:',''))});load();</script>\n</body>\n</html>`;\n};\n\nexport const createAbsoluteMobilePreviewPlugin = (\n\tmobile: MobileConfig | undefined\n) => {\n\tif (!mobile)\n\t\treturn new Elysia({ name: 'absolutejs-mobile-preview-disabled' });\n\n\treturn new Elysia({ name: 'absolutejs-mobile-preview' })\n\t\t.get(\n\t\t\tABSOLUTE_MOBILE_PREVIEW_PATH,\n\t\t\t() =>\n\t\t\t\tnew Response(absoluteMobilePreviewDocument(mobile), {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Cache-Control': 'no-store',\n\t\t\t\t\t\t'Content-Security-Policy':\n\t\t\t\t\t\t\t\"default-src 'self'; script-src 'unsafe-inline' 'self'; style-src 'unsafe-inline'; frame-src 'self'; img-src 'self' data: blob:; connect-src 'self' ws: wss:\",\n\t\t\t\t\t\t'Content-Type': 'text/html; charset=utf-8',\n\t\t\t\t\t\t'X-Robots-Tag': 'noindex, nofollow'\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t)\n\t\t.post('/__absolute/mobile-preview-telemetry', ({ body, status }) => {\n\t\t\tconst value = isRecord(body) ? body : undefined;\n\t\t\tconst durationMs = value?.durationMs;\n\t\t\tconst platform = value?.platform;\n\t\t\tif (\n\t\t\t\ttypeof durationMs !== 'number' ||\n\t\t\t\t!Number.isFinite(durationMs) ||\n\t\t\t\tdurationMs < 0 ||\n\t\t\t\tdurationMs > 300_000 ||\n\t\t\t\t(platform !== 'android' && platform !== 'ios')\n\t\t\t) {\n\t\t\t\treturn status(400, { error: 'invalid-preview-telemetry' });\n\t\t\t}\n\t\t\tsendTelemetryEvent('mobile:preview-ready', {\n\t\t\t\tdurationMs: Math.round(durationMs),\n\t\t\t\tplatform,\n\t\t\t\tprovider: 'capacitor',\n\t\t\t\ttarget: 'mobile-preview'\n\t\t\t});\n\n\t\t\treturn status(204);\n\t\t});\n};\n",
@@ -53,7 +54,7 @@
53
54
  "// 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",
54
55
  "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"
55
56
  ],
56
- "mappings": "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",
57
- "debugId": "4CA02552B071DAEC64756E2164756E21",
57
+ "mappings": "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",
58
+ "debugId": "1C9BEF9E4B461BFB64756E2164756E21",
58
59
  "names": []
59
60
  }