import { A as AppleSession } from './index-BKUapQP2.cjs'; export { j as App, K as AppScreenshot, M as AppScreenshotSet, I as AppScreenshotsResource, a as AppStoreConnectClient, d as AppStoreConnectConfig, b as AppStoreConnectError, G as AppStoreVersion, H as AppStoreVersionLocalization, Q as AppStoreVersionSubmission, F as AppStoreVersionsResource, x as AppsResource, m as BetaBuildLocalization, l as BetaGroup, z as BetaGroupsResource, k as Build, n as BuildBetaDetail, y as BuildsResource, B as BundleId, p as BundleIdCapability, v as BundleIdsResource, E as CapabilitiesResource, s as CapabilityOption, r as CapabilitySetting, q as CapabilitySettingInput, C as Certificate, t as CertificatesResource, D as Device, w as DevicesResource, i as JsonApiError, h as JsonApiListResponse, J as JsonApiResource, g as JsonApiResponse, L as ListParams, o as PreReleaseVersion, P as Profile, u as ProfilesResource, c as RateLimitError, R as RequestClient, f as RequestOptions, O as ReviewSubmission, N as ReviewSubmissionsResource, e as TokenConfig, T as TokenManager, U as UploadOperation } from './index-BKUapQP2.cjs'; export { A as AppStoreVersionState, i as BetaReviewState, h as BuildProcessingState, B as BundleIdPlatform, f as CapabilityOptionKey, e as CapabilitySettingsKey, d as CapabilityType, C as CertificateType, g as ContentRightsDeclaration, D as DeviceClass, c as DeviceStatus, E as ExportMethod, b as Platform, a as ProfileState, P as ProfileType, R as ReleaseType } from './enums-B609j2rb.cjs'; export { i as cert } from './index-CNHf7I4v.cjs'; export { i as sigh } from './index-BZWmOTWE.cjs'; export { i as match } from './index-oVyLLIEK.cjs'; export { i as produce } from './index-OelCoOth.cjs'; export { i as pilot } from './index-BICa8odo.cjs'; export { i as deliver } from './index-B9QeTpQK.cjs'; export { i as pem } from './index-Bk1Gd-qE.cjs'; export { i as gym } from './index-DrUpRXRG.cjs'; export { i as scan } from './index-BimqCmY8.cjs'; export { i as snapshot } from './index-CR3BFPIz.cjs'; export { i as trainer } from './index-BoU8qt8r.cjs'; export { i as precheck } from './index-D13sn8DO.cjs'; export { i as frameit } from './index-BYonklf3.cjs'; export { i as xcode } from './index-Cp6cjtd-.cjs'; export { i as core } from './index-C2yG3wXA.cjs'; export { LaneCallback, LaneDefinition, RunLaneOptions, RunResult, afterAll, afterEach, beforeAll, beforeEach, generateFastfileTemplate, lane, listAvailableLanes, loadFastfile, privateLane, runLane } from './lane/index.cjs'; export { L as LaneContext } from './context-CymLkfrS.cjs'; export { ActionDefinition, action, ensureActionsRegistered, getAction, listActions, registerAction } from './actions/index.cjs'; export { createCli } from './cli/index.cjs'; import './cert-FehieKeb.cjs'; import 'commander'; /** * One-click Apple Developer setup — given an authenticated portal session, * provisions everything needed to code-sign and upload iOS builds: * * • Bundle ID (Developer Portal App ID, created or reused) * • Distribution certificate + RSA private key bundled into a .p12 * • App Store provisioning profile * • App Store Connect API key (.p8) for TestFlight uploads * • APNs Authentication Key (.p8) for push notifications * • Push / Sign in with Apple capabilities on the bundle * • App Store Connect app record (the "My Apps" entry uploads need) * • Optional legacy APNs Production / Sandbox push certificates (.p12) * • Optional revocation of existing distribution certificates first * (used when the team is at the 3-cert distribution limit) * * Returns values shaped to match the `apple_credentials` form in the * App Release product so an HTTP route or the in-page wizard can pre-fill * the existing form fields. */ interface OneClickInventory { team: { id: string; name?: string; }; bundleIds: { appIdId: string; identifier: string; name: string; capabilities?: string[]; }[]; /** Active distribution certs. Apple caps a team at 3. */ distributionCerts: { certificateId: string; name: string; serialNumber?: string; expirationDate?: string; /** True when the cert is associated with a developer the user can identify. */ ownerName?: string; }[]; distCertCapacity: { used: number; max: number; }; /** Active APNs Authentication Keys. Apple caps a team at 2. */ apnsAuthKeys: { keyId: string; keyName: string; dateCreated?: string; }[]; apnsKeyCapacity: { used: number; max: number; }; pushCerts: { certificateId: string; name: string; type: "production" | "sandbox" | "other"; bundleIdentifier?: string; expirationDate?: string; }[]; profiles: { provisioningProfileId: string; name: string; type: string; status?: string; expirationDate?: string; }[]; } interface OneClickOptions { /** Generate a new distribution certificate. Default true; required for new credentials. */ generateDistributionCert?: boolean; /** Generate an App Store provisioning profile. Default true. */ generateStoreProfile?: boolean; /** * Generate an App Store Connect API key (.p8). Default true. Created * via Apple's iris admin API and downloaded via the sparse-fieldset * endpoint that @expo/apple-utils uses. Required for TestFlight * uploads via altool. */ generateAscApiKey?: boolean; /** * Generate an APNs Authentication Key (.p8) for push notifications. * Default true. ONE key per team works for ALL apps and never expires. * The modern replacement for the legacy per-app .p12 push certs. * * Apple allows multiple APNs keys per team — the wizard always * creates a new one when this flag is set, regardless of what's * already in the team. Unrelated existing keys are not affected. */ generateApnsAuthKey?: boolean; /** * Generate an APNs **Production** push certificate (.p12). Default * false — the modern APNs Auth Key (.p8) above replaces this and is * generally preferred. Only enable if a downstream integration * specifically requires the legacy cert-based APNs path. * * Apple caps these at 1 per bundle per environment, so existing * production push certs for the bundle are left alone (the wizard * skips with a warning rather than revoking). */ generatePushProductionCert?: boolean; /** * Generate an APNs **Sandbox** (development) push certificate (.p12). * Default false. Same caveats as `generatePushProductionCert`. */ generatePushSandboxCert?: boolean; /** Enable Sign in with Apple capability on the bundle ID. Default true. */ enableSignInWithApple?: boolean; /** Enable Push Notifications capability on the bundle ID. Default true. */ enablePushNotifications?: boolean; /** Enable Apple Pay capability on the bundle ID. Default false. Required for Stripe. */ enableApplePay?: boolean; /** Merchant ID to register for Apple Pay (e.g. "merchant.com.example.app"). Required when enableApplePay is true. */ merchantId?: string; /** * Create the App Store Connect **app record** (the "My Apps" entry that * TestFlight and App Store uploads require). Default true. Distinct * from registering the bundle id in the Developer Portal — you need * both. Requires an ASC API key to be created (step 7) since the call * goes through the JWT-authenticated REST API. Non-fatal — if the app * record can't be created (or already exists), the orchestrator * records a warning and continues. */ createAscAppRecord?: boolean; /** Distribution cert IDs to revoke before creating the new one (for the 3-cert limit). */ revokeCertIds?: string[]; /** APNs auth key IDs to revoke before creating the new one (Apple caps APNs keys at 2/team). */ revokeApnsKeyIds?: string[]; } interface OneClickInput { session: AppleSession; teamId: string; bundleIdentifier: string; appName: string; options?: OneClickOptions; /** Defaults to a random 32-char password. Override for deterministic tests. */ certPassword?: string; /** * SKU for the App Store Connect app record. Arbitrary unique string * Apple uses internally. Defaults to `.` * which is good enough for most automated flows. */ sku?: string; /** * Primary locale for the App Store Connect app record. Defaults to * `en-US`. Changing this after creation requires a support ticket so * err on the side of sensible defaults. */ primaryLocale?: string; /** * Structured progress callback invoked at every step transition. The * wizard UI uses this to render a live list of "in progress / done / * failed" rows. */ onProgress?: (event: ProgressEvent) => void; } type ProgressEvent = { type: "step_start"; step: string; label: string; } | { type: "step_done"; step: string; label: string; detail?: string; } | { type: "step_failed"; step: string; label: string; error: string; }; interface AdditionalCertResult { cert_type: "aps_production" | "aps_sandbox" | "apns_key"; cert_base64: string; /** * For .p12 cert types this is the .p12 password. For `apns_key` this * is the APNs Key ID (the existing certs route stores it in the * cert_password column for apns_key — see apple-credentials/certs/route.ts). */ cert_password: string; } interface OneClickResult { team_id: string; bundle_identifier: string; name: string; dist_cert_base64: string; private_key_base64: string; cert_password: string; provisioning_profile_base64: string; profile_name: string; asc_key_id: string; asc_issuer_id: string; asc_api_key_base64: string; /** * App Store Connect app-record id, populated when the record was * created fresh OR already existed and we reused it. Empty string * when creation was skipped or failed — check `warnings` for the * reason in that case. */ asc_app_id: string; /** Additional certs to write to apple_credential_certs after credential is created. */ additional_certs: AdditionalCertResult[]; /** IDs of resources created (for debugging / rollback) */ created: { bundleIdId?: string; certificateId?: string; provisioningProfileId?: string; profileUuid?: string; apnsAuthKeyId?: string; ascApiKeyId?: string; ascAppId?: string; revokedCertIds: string[]; }; /** Non-fatal issues — e.g. "used existing bundle id" */ warnings: string[]; } interface PortalTeam { teamId: string; name: string; /** The team's role for this user (e.g. "Account Holder", "Admin", "Developer") */ role?: string; /** The team's status (e.g. "active") */ status?: string; } /** * List the developer-portal teams the user belongs to. Returns the * 10-character alphanumeric `teamId` strings used by every other portal * endpoint — these are different from the numeric `providerId` returned * by the olympus session, which only works for App Store Connect REST * API calls (and is not what the legacy portal endpoints want). */ declare function oneClickListTeams(session: AppleSession): Promise; /** * Read the team's current state: bundle IDs, distribution cert capacity, * push certs, profiles. Used by the wizard to render the configure screen * and warn about hitting the 3-cert distribution limit. */ declare function oneClickInventory(session: AppleSession, teamId: string): Promise; /** * Run the orchestration. Emits structured progress events the wizard * polls / streams to the browser. Throws on the first hard failure; * recoverable issues land in `result.warnings`. */ declare function oneClickSetup(input: OneClickInput): Promise; export { type AdditionalCertResult, type OneClickInput, type OneClickInventory, type OneClickOptions, type OneClickResult, type PortalTeam, type ProgressEvent, oneClickInventory, oneClickListTeams, oneClickSetup };