@capgo/cli 8.62.0 → 8.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +836 -836
- package/dist/notify-app-ready-worker.js +1 -1
- package/dist/onboarding-worker.js +1 -1
- package/dist/package.json +4 -2
- package/dist/src/build/onboarding/android/ui/keystore-action.d.ts +9 -0
- package/dist/src/build/onboarding/app-selection.d.ts +37 -0
- package/dist/src/build/onboarding/telemetry.d.ts +7 -1
- package/dist/src/build/onboarding/ui/app-selection-gate.d.ts +23 -0
- package/dist/src/build/onboarding/ui/ios-certificate-action.d.ts +2 -2
- package/dist/src/build/onboarding/ui/preparation-action.d.ts +12 -0
- package/dist/src/build/onboarding/ui/shell.d.ts +8 -4
- package/dist/src/schemas/onboarding.d.ts +1 -1
- package/dist/src/sdk.js +1 -1
- package/dist/updater-installed-worker.js +65 -65
- package/package.json +4 -2
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { CapacitorConfig } from '../../config';
|
|
2
|
+
import { createSupabaseClient, invokeCapgoCliApi } from '../../utils.js';
|
|
3
|
+
export interface BuilderVisibleApp {
|
|
4
|
+
app_id: string;
|
|
5
|
+
name: string | null;
|
|
6
|
+
need_onboarding?: boolean | null;
|
|
7
|
+
}
|
|
8
|
+
export interface BuilderAppApiOptions {
|
|
9
|
+
supaHost?: string;
|
|
10
|
+
supaAnon?: string;
|
|
11
|
+
}
|
|
12
|
+
export type AppSelectionErrorCode = 'list' | 'read' | 'missing' | 'build' | 'permission' | 'config' | 'api';
|
|
13
|
+
export declare class AppSelectionError extends Error {
|
|
14
|
+
readonly code: AppSelectionErrorCode;
|
|
15
|
+
constructor(code: AppSelectionErrorCode, message: string, options?: ErrorOptions);
|
|
16
|
+
}
|
|
17
|
+
export declare function getAppSelectionSuggestion(config: CapacitorConfig): {
|
|
18
|
+
appId: string;
|
|
19
|
+
source: 'builder' | 'capacitor';
|
|
20
|
+
};
|
|
21
|
+
export declare function rankVisibleApps<T extends BuilderVisibleApp>(apps: T[], suggestedId: string): T[];
|
|
22
|
+
export declare function listVisibleBuilderApps(apikey: string, options?: BuilderAppApiOptions, request?: typeof invokeCapgoCliApi): Promise<BuilderVisibleApp[]>;
|
|
23
|
+
export declare function verifyBuilderApp(apikey: string, appId: string, options?: BuilderAppApiOptions, dependencies?: {
|
|
24
|
+
request?: typeof invokeCapgoCliApi;
|
|
25
|
+
createClient?: typeof createSupabaseClient;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
export declare function persistBuilderAppSelection(appId: string): Promise<boolean>;
|
|
28
|
+
export declare const builderAppCreationUrl: string;
|
|
29
|
+
export declare function openBuilderAppCreation(): Promise<boolean>;
|
|
30
|
+
export interface BuilderAppSelectionServices {
|
|
31
|
+
list: (apikey: string) => Promise<BuilderVisibleApp[]>;
|
|
32
|
+
verify: (apikey: string, appId: string) => Promise<void>;
|
|
33
|
+
persist: (appId: string) => Promise<boolean>;
|
|
34
|
+
openDashboard: () => Promise<boolean>;
|
|
35
|
+
dashboardUrl: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function createBuilderAppSelectionServices(options?: BuilderAppApiOptions): BuilderAppSelectionServices;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AndroidOnboardingErrorCategory, AndroidOnboardingStep } from './android/types.js';
|
|
2
2
|
import type { OnboardingErrorCategory, OnboardingStep, Platform } from './types.js';
|
|
3
|
+
import type { AppSelectionEvent } from './ui/app-selection-gate.js';
|
|
3
4
|
export interface TrackBuilderOnboardingLoginInput {
|
|
4
5
|
apikey: string;
|
|
5
6
|
appId: string;
|
|
@@ -10,6 +11,11 @@ export interface TrackBuilderOnboardingLoginInput {
|
|
|
10
11
|
}
|
|
11
12
|
/** Login happens before platform and owner-org resolution. Send once a key is valid. */
|
|
12
13
|
export declare function trackBuilderOnboardingLogin(input: TrackBuilderOnboardingLoginInput): Promise<void>;
|
|
14
|
+
export declare function trackBuilderOnboardingAppSelection(input: AppSelectionEvent & {
|
|
15
|
+
apikey: string;
|
|
16
|
+
appId: string;
|
|
17
|
+
journeyId: string;
|
|
18
|
+
}): Promise<void>;
|
|
13
19
|
export interface TrackBuilderOnboardingStepInput {
|
|
14
20
|
apikey: string;
|
|
15
21
|
appId: string;
|
|
@@ -27,7 +33,7 @@ export interface TrackBuilderOnboardingStepInput {
|
|
|
27
33
|
errorCategory?: OnboardingErrorCategory | AndroidOnboardingErrorCategory;
|
|
28
34
|
replaySessionId?: string;
|
|
29
35
|
}
|
|
30
|
-
export type BuilderOnboardingAction = 'resume_prompt_decision' | 'question_shown' | 'question_answered' | 'question_skipped' | 'android_sa_method_selected' | 'android_sa_validation_recovery_selected' | 'android_sa_validation_result' | 'credential_verified' | 'credential_verification_failed' | 'certificate_prepared' | 'certificate_preparation_failed';
|
|
36
|
+
export type BuilderOnboardingAction = 'resume_prompt_decision' | 'question_shown' | 'question_answered' | 'question_skipped' | 'android_sa_method_selected' | 'android_sa_validation_recovery_selected' | 'android_sa_validation_result' | 'credential_verified' | 'credential_verification_failed' | 'certificate_prepared' | 'certificate_preparation_failed' | 'keystore_prepared' | 'keystore_preparation_failed';
|
|
31
37
|
export interface TrackBuilderOnboardingActionInput {
|
|
32
38
|
apikey: string;
|
|
33
39
|
appId: string;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import type { BuilderAppSelectionServices } from '../app-selection.js';
|
|
3
|
+
export interface AppSelectionEvent {
|
|
4
|
+
phase: 'shown' | 'resolved' | 'error';
|
|
5
|
+
result?: 'exact_match' | 'selected' | 'list' | 'read' | 'missing' | 'build' | 'permission' | 'config' | 'api';
|
|
6
|
+
source?: 'closest_list' | 'full_list';
|
|
7
|
+
visibleCount: number;
|
|
8
|
+
}
|
|
9
|
+
export interface BuilderAppSelectionGateProps {
|
|
10
|
+
apikey: string;
|
|
11
|
+
suggestedId: string;
|
|
12
|
+
suggestedSource: 'builder' | 'capacitor';
|
|
13
|
+
services: BuilderAppSelectionServices;
|
|
14
|
+
cols: number;
|
|
15
|
+
rows: number;
|
|
16
|
+
footer?: ReactNode;
|
|
17
|
+
onSelected: (appId: string) => void;
|
|
18
|
+
onSwitchKey: () => void;
|
|
19
|
+
onCancel: () => void;
|
|
20
|
+
onEvent?: (event: AppSelectionEvent) => void;
|
|
21
|
+
}
|
|
22
|
+
declare const BuilderAppSelectionGate: FC<BuilderAppSelectionGateProps>;
|
|
23
|
+
export default BuilderAppSelectionGate;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IosEffectResult, IosStepCtx } from '../ios/flow.js';
|
|
2
|
-
import type { BuilderOnboardingAction } from '../telemetry.js';
|
|
3
2
|
import type { OnboardingStep } from '../types.js';
|
|
4
|
-
type
|
|
3
|
+
import type { PreparationTrackAction } from './preparation-action.js';
|
|
4
|
+
type TrackAction = PreparationTrackAction<OnboardingStep>;
|
|
5
5
|
export declare function trackCreatedIosCertificateResult(result: IosEffectResult, journeyId: string, trackAction: TrackAction, reportedSuccesses: Set<string>): void;
|
|
6
6
|
export declare function trackIosCertificateCreationThrow(journeyId: string, trackAction: TrackAction): void;
|
|
7
7
|
export declare function trackIosKeychainExportResult(result: IosEffectResult, journeyId: string, trackAction: TrackAction): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BuilderOnboardingAction } from '../telemetry.js';
|
|
2
|
+
export type PreparationTrackAction<TStep extends string> = (action: BuilderOnboardingAction, tags: Record<string, string>, step: TStep) => void;
|
|
3
|
+
interface PreparationActionInput<TStep extends string> {
|
|
4
|
+
action: BuilderOnboardingAction;
|
|
5
|
+
attemptId: string;
|
|
6
|
+
source: string;
|
|
7
|
+
step: TStep;
|
|
8
|
+
tags?: Record<string, string>;
|
|
9
|
+
}
|
|
10
|
+
export declare function emitPreparationAction<TStep extends string>(trackAction: PreparationTrackAction<TStep>, input: PreparationActionInput<TStep>): void;
|
|
11
|
+
export declare function emitPreparationSuccessOnce<TStep extends string>(reportedSuccesses: Set<string>, successKey: string, trackAction: PreparationTrackAction<TStep>, input: PreparationActionInput<TStep>): void;
|
|
12
|
+
export {};
|
|
@@ -2,6 +2,8 @@ import type { FC } from 'react';
|
|
|
2
2
|
import type { OnboardingResult, Platform } from '../types.js';
|
|
3
3
|
import type { BuilderLoginServices } from '../login.js';
|
|
4
4
|
import type { BuilderLoginMetadata } from './login-gate.js';
|
|
5
|
+
import type { BuilderAppSelectionServices } from '../app-selection.js';
|
|
6
|
+
import type { AppSelectionEvent } from './app-selection-gate.js';
|
|
5
7
|
import type { OnboardingBeforeExit } from './exit.js';
|
|
6
8
|
export declare function useTerminalSize(): {
|
|
7
9
|
cols: number;
|
|
@@ -9,13 +11,13 @@ export declare function useTerminalSize(): {
|
|
|
9
11
|
};
|
|
10
12
|
export interface OnboardingShellProps {
|
|
11
13
|
appId: string;
|
|
14
|
+
suggestedSource: 'builder' | 'capacitor';
|
|
15
|
+
appSelectionServices: BuilderAppSelectionServices;
|
|
12
16
|
/**
|
|
13
17
|
* iOS-side bundle id default — sourced from `config.appId` (top-level), which
|
|
14
18
|
* is what `cap sync` writes into `PRODUCT_BUNDLE_IDENTIFIER`. Distinct from
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* Apple signing). Threaded down to the iOS OnboardingApp; the Android app
|
|
18
|
-
* ignores it.
|
|
19
|
+
* the Capgo app ID selected by this shell, which may use the Builder override
|
|
20
|
+
* or another visible app. Threaded to the iOS OnboardingApp; Android ignores it.
|
|
19
21
|
*/
|
|
20
22
|
iosBundleIdInitial: string;
|
|
21
23
|
/** Android package name for Appflow validation; defaults to the legacy Capgo key. */
|
|
@@ -62,6 +64,8 @@ export interface OnboardingShellProps {
|
|
|
62
64
|
onBeforeExit?: OnboardingBeforeExit;
|
|
63
65
|
/** Called after the login gate has verified a key. */
|
|
64
66
|
onAuthenticated?: (key: string, metadata: BuilderLoginMetadata) => void;
|
|
67
|
+
onAppSelected?: (appId: string) => void;
|
|
68
|
+
onAppSelectionEvent?: (event: AppSelectionEvent) => void;
|
|
65
69
|
}
|
|
66
70
|
declare const OnboardingShell: FC<OnboardingShellProps>;
|
|
67
71
|
export default OnboardingShell;
|
|
@@ -127,8 +127,8 @@ export declare const onboardingNextStepSchema: z.ZodObject<{
|
|
|
127
127
|
profileChoice: z.ZodOptional<z.ZodString>;
|
|
128
128
|
importRecoveryAction: z.ZodOptional<z.ZodEnum<{
|
|
129
129
|
create: "create";
|
|
130
|
-
browser: "browser";
|
|
131
130
|
back: "back";
|
|
131
|
+
browser: "browser";
|
|
132
132
|
"provide-profile-path": "provide-profile-path";
|
|
133
133
|
}>>;
|
|
134
134
|
portalAction: z.ZodOptional<z.ZodEnum<{
|
package/dist/src/sdk.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as cj0}from"node:module";var module={exports:{}};var uj0=Object.create;var{getPrototypeOf:bj0,defineProperty:sF,getOwnPropertyNames:yb}=Object;var w2=Object.prototype.hasOwnProperty;function B2($){return this[$]}var H0=($,D,Q)=>{var X=yb(D);for(let J of X)if(!w2.call($,J)&&J!=="default")sF($,J,{get:B2.bind(D,J),enumerable:!0});if(Q){for(let J of X)if(!w2.call(Q,J)&&J!=="default")sF(Q,J,{get:B2.bind(D,J),enumerable:!0});return Q}},hj0,gj0,x1=($,D,Q)=>{var X=$!=null&&typeof $==="object";if(X){var J=D?hj0??=new WeakMap:gj0??=new WeakMap,Y=J.get($);if(Y)return Y}Q=$!=null?uj0(bj0($)):{};let Z=D||!$||!$.__esModule?sF(Q,"default",{value:$,enumerable:!0}):Q;for(let F of yb($))if(!w2.call(Z,F))sF(Z,F,{get:B2.bind($,F),enumerable:!0});if(X)J.set($,Z);return Z};var E=($,D)=>()=>(D||$((D={exports:{}}).exports,D),D.exports);var mj0=($)=>$;function dj0($,D){this[$]=mj0.bind(null,D)}var X6=($,D)=>{for(var Q in D)sF($,Q,{get:D[Q],enumerable:!0,configurable:!0,set:dj0.bind(D,Q)})};var t=($,D)=>()=>($&&(D=$($=0)),D);var Q0=cj0(import.meta.url);var i$;var Q8=t(()=>{i$={name:"@capgo/cli",type:"module",version:"8.62.0",description:"A CLI to upload to capgo servers",author:"Martin martin@capgo.app",license:"Apache 2.0",homepage:"https://github.com/Cap-go/capgo/tree/main/cli#readme",repository:{type:"git",url:"https://github.com/Cap-go/capgo.app",directory:"cli"},bugs:{url:"https://github.com/Cap-go/capgo/issues"},keywords:["appflow alternative","ionic","capacitor","auto update","live update","capgo","cli","upload","capgo-cli","sdk","tanstack-intent"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js"},"./sdk":{types:"./dist/src/sdk.d.ts",import:"./dist/src/sdk.js"}},main:"dist/index.js",types:"dist/src/index.d.ts",bin:{capgo:"dist/index.js"},files:["!skills/_artifacts","dist","skills"],engines:{npm:">=8.0.0",node:">=20.0.0"},scripts:{build:"tsc && bun build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"bunx --bun supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",typecheck:"tsgo --project tsconfig.tsgo.json --noEmit",lint:"bun run lint:ox","lint:ox":"oxlint --config ../.oxlintrc.json src","lint:fix":"oxlint --config ../.oxlintrc.json --fix src","check-posix-paths":"node test/check-posix-paths.js","generate-docs":"node dist/index.js generate-docs README.md","test:notify-app-ready-background":"bun test ./test/test-notify-app-ready-background.mjs ./test/test-background-check-shutdown.mjs","test:bundle":"bun test/test-bundle.mjs","test:bundle-validation":"bun test test/bundle/","test:prescan":"bun test test/prescan/","test:functional":"bun test/test-functional.mjs","test:semver":"bun test/test-semver-validation.mjs","test:version-edge-cases":"bun test/test-version-validation.mjs","test:regex":"bun test/test-regex-validation.mjs","test:upload":"bun test/test-upload-validation.mjs","test:fail-on-incompatible":"bun test/test-fail-on-incompatible.mjs","test:native-dependencies":"bun test/test-native-dependencies.mjs && bun test/test-get-remote-dependencies.mjs","test:package-json-guard":"bun test/test-package-json-guard.mjs","test:credentials":"bun test/test-credentials.mjs","test:credentials-export":"bun test/test-credentials-export.mjs","test:asc-key-protocol":"bun test/test-asc-key-protocol.mjs","test:credentials-validation":"bun test/test-credentials-validation.mjs","test:android-service-account-validation":"bun test/test-android-service-account-validation.mjs","test:build-zip-filter":"bun test/test-build-zip-filter.mjs","test:checksum":"bun test/test-checksum-algorithm.mjs","test:build-needed":"bun test/test-build-needed.mjs","test:cli-help":"bun test/test-cli-help.mjs","test:build-cache-payload":"bun test/test-build-cache-payload.mjs","test:build-cancellation":"bun test/test-build-cancellation.mjs","test:ci-prompts":"bun test/test-ci-prompts.mjs","test:ci-secrets":"bun test/test-ci-secrets.mjs","test:android-onboarding-progress":"bun test/test-android-onboarding-progress.mjs","test:onboarding-telemetry":"bun test/test-onboarding-telemetry.mjs","test:v2-event-migration":"bun test/test-v2-event-migration.mjs","test:analytics":"bun test/test-analytics.mjs","test:cli-headers":"bun test/test-cli-headers.mjs","test:min-cli-version":"bun test/test-min-cli-version.mjs","test:authenticated-command-invocation":"bun test/test-authenticated-command-invocation.mjs","test:analytics-error-category":"bun test/test-analytics-error-category.mjs","test:analytics-org-resolver":"bun test/test-analytics-org-resolver.mjs","test:supabase-perf":"bun test/test-supabase-perf.mjs","test:preview-qr":"bun test/test-preview-qr.mjs","test:mcp-analytics":"bun test/test-mcp-analytics.mjs","test:mcp-instructions":"bun test/test-mcp-instructions.mjs","test:mcp-stdout-guard":"bun test/test-mcp-stdout-guard.mjs","test:mcp-platform-select":"bun test/test-mcp-platform-select.mjs","test:mcp-explain-scopes":"bun test/test-mcp-explain-scopes.mjs","test:mcp-oauth-reopen":"bun test/test-mcp-oauth-reopen.mjs","test:mcp-broker-oauth":"bun test/test-mcp-broker-oauth.mjs","test:mcp-broker-session":"bun test/test-mcp-broker-session.mjs","test:mcp-credentials-manage":"bun test/test-mcp-credentials-manage.mjs","test:mcp-resume-prompt":"bun test/test-mcp-resume-prompt.mjs","test:mcp-build-job":"bun test/test-mcp-build-job.mjs","test:mcp-build-tools":"bun test/test-mcp-build-tools.mjs","test:app-created-source":"bun test/test-app-created-source.mjs","test:app-add-exists":"bun test/test-app-add-exists.mjs","test:app-add-getting-started":"bun test/test-app-add-getting-started.mjs","test:app-list-output-text":"bun test/test-app-list-output-text.mjs","test:app-todo":"bun test/test-app-todo.mjs","test:doctor-analytics":"bun test/test-doctor-analytics.mjs","test:posthog-exception":"bun test/test-posthog-exception.mjs","test:cli-recovery":"bun test/test-cli-recovery.mjs","test:create-supabase-client":"bun test/test-create-supabase-client.mjs","test:onboarding-recovery":"bun test/test-onboarding-recovery.mjs","test:onboarding-progress":"bun test/test-onboarding-progress.mjs","test:onboarding-run-targets":"bun test/test-onboarding-run-targets.mjs","test:run-device-command":"bun test/test-run-device-command.mjs","test:init-app-conflict":"bun test/test-init-app-conflict.mjs","test:channel-add-exists":"bun test/test-channel-add-exists.mjs","test:wait-log":"bun test/test-wait-log.mjs","test:init-guardrails":"bun test/test-init-guardrails.mjs","test:init-upload-recovery":"bun test/test-init-upload-error-gate.mjs && bun test/test-init-upload-monorepo-recovery.mjs","test:init-replay":"bun test/test-init-replay.mjs","test:init-telemetry":"bun test/test-init-telemetry.mjs","test:capacitor-config-target":"bun test/test-capacitor-config-target.mjs","test:builder-app-id-config":"bun test/test-builder-app-id-config.mjs","test:capacitor-config-typescript7":"bun test/test-capacitor-config-typescript7.mjs","test:capacitor-config-native-import":"bun test/test-capacitor-config-native-import.mjs","test:cli-user-error-config":"bun test/test-cli-user-error-config.mjs","test:cordova-upload-mode":"bun test/test-cordova-upload-mode.mjs","test:init-monorepo-targeting":"bun run test:capacitor-config-target && bun run test:builder-app-id-config && bun run test:capacitor-config-typescript7 && bun run test:capacitor-config-native-import && bun run test:cli-user-error-config && bun test/test-init-monorepo-targeting.mjs","test:prompt-preferences":"bun test/test-prompt-preferences.mjs","test:esm-sdk":"node test/test-sdk-esm.mjs","test:auth-session":"bun test/test-auth-session.mjs","test:mcp":"node test/test-mcp.mjs","test:mcp-no-key-handshake":"node test/test-mcp-no-key-handshake.mjs","test:version-detection":"node test/test-get-installed-version.mjs","test:version-detection:setup":"./test/fixtures/setup-test-projects.sh","test:platform-paths":"bun test/test-platform-paths.mjs","test:project-type-detection":"bun test/test-project-type-detection.mjs","test:payload-split":"bun test/test-payload-split.mjs","test:macos-signing":"bun test/test-macos-signing.mjs","test:helper-dce":"bash scripts/check-helper-dce.sh","test:apple-api-import-helpers":"bun test/test-apple-api-import-helpers.mjs","test:apple-api-verify-key":"bun test/test-apple-api-verify-key.mjs","test:bundle-id-detector":"bun test/test-bundle-id-detector.mjs","test:apple-api-app-list":"bun test/test-apple-api-app-list.mjs","test:apple-api-cert-create":"bun test/test-apple-api-cert-create.mjs","test:app-verification":"bun test/test-app-verification.mjs","test:pbxproj-parser":"bun test/test-pbxproj-parser.mjs","test:manifest-path-encoding":"bun test/test-manifest-path-encoding.mjs","test:self-update":"bun test/test-self-update.mjs","test:update-prompt":"bun test/test-update-prompt.mjs","test:android-tail-engine":"bun test/test-android-tail-engine.mjs","test:android-tail-render":"bun test/test-android-tail-render.mjs","test:android-tail-routing":"bun test/test-android-tail-routing.mjs","test:dev-gate-stripped":"bun test/test-dev-gate-stripped.mjs","test:frame-fit-ios-shared":"bun test/test-frame-fit-ios-shared.mjs","test:ios-confirm-app-id":"bun test/test-ios-confirm-app-id.mjs","test:ios-create-new":"bun test/test-ios-create-new.mjs","test:ios-certificate-action":"bun test/test-ios-certificate-action.mjs","test:ios-credential-action":"bun test/test-ios-credential-action.mjs","test:ios-e2e":"bun test/test-ios-e2e.mjs","test:ios-flow-contract":"bun test/test-ios-flow-contract.mjs","test:ios-import-discovery":"bun test/test-ios-import-discovery.mjs","test:ios-import-export":"bun test/test-ios-import-export.mjs","test:ios-import-pickers":"bun test/test-ios-import-pickers.mjs","test:ios-import-recovery":"bun test/test-ios-import-recovery.mjs","test:ios-recovery":"bun test/test-ios-recovery.mjs","test:ios-resume":"bun test/test-ios-resume.mjs","test:ios-tail-handoff":"bun test/test-ios-tail-handoff.mjs","test:ios-tui-render":"bun test/test-ios-tui-render.mjs","test:p8-error":"bun test/test-p8-error.mjs","test:ios-tui-routing":"bun test/test-ios-tui-routing.mjs","test:ios-updater-sync-validation":"bun test/test-ios-updater-sync-validation.mjs","test:ios-verify-app":"bun test/test-ios-verify-app.mjs","test:ios-marketing-version":"bun test/test-ios-marketing-version.mjs","test:android-version":"bun test/test-android-version.mjs","test:platform-flow-contract":"bun test/test-platform-flow-contract.mjs","test:tail-engine-shared":"bun test/test-tail-engine-shared.mjs",test:"bun run build && bun run test:helper-dce && bun run test:version-detection:setup && bun run test:bundle && bun run test:notify-app-ready-background && bun run test:bundle-validation && bun run test:functional && bun run test:semver && bun run test:auto-bump-version && bun run test:auto-bump-ai-diff && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:cordova-upload-mode && bun run test:fail-on-incompatible && bun run test:native-dependencies && bun run test:package-json-guard && bun run test:credentials && bun run test:credentials-export && bun run test:ios-provisioning-map && bun run test:ios-provisioning-command && bun run test:credentials-validation && bun run test:android-service-account-validation && bun run test:build-zip-filter && bun run test:checksum && bun run test:build-needed && bun run test:cli-help && bun run test:build-cache-payload && bun run test:build-cancellation && bun run test:ci-prompts && bun run test:ci-secrets && bun run test:android-onboarding-progress && bun run test:onboarding-telemetry && bun run test:v2-event-migration && bun run test:analytics && bun run test:cli-headers && bun run test:min-cli-version && bun run test:authenticated-command-invocation && bun run test:analytics-error-category && bun run test:analytics-org-resolver && bun run test:supabase-perf && bun run test:preview-qr && bun run test:app-set-options && bun run test:mcp-analytics && bun run test:mcp-instructions && bun run test:mcp-live-update-onboarding && bun run test:mcp-stdout-guard && bun run test:mcp-platform-select && bun run test:mcp-explain-scopes && bun run test:mcp-oauth-reopen && bun run test:mcp-broker-oauth && bun run test:mcp-broker-session && bun run test:mcp-credentials-manage && bun run test:mcp-resume-prompt && bun run test:mcp-build-job && bun run test:mcp-build-tools && bun run test:app-created-source && bun run test:app-add-exists && bun run test:app-add-getting-started && bun run test:app-list-output-text && bun run test:app-todo && bun run test:doctor-analytics && bun run test:posthog-exception && bun run test:cli-recovery && bun run test:create-supabase-client && bun run test:build-platform-selection && bun run test:builder-project-discovery && bun run test:builder-login-gate && bun run test:onboarding-recovery && bun run test:onboarding-progress && bun run test:onboarding-run-targets && bun run test:run-device-command && bun run test:init-monorepo-targeting && bun run test:init-app-conflict && bun run test:channel-list && bun run test:channel-add-exists && bun run test:wait-log && bun run test:init-guardrails && bun run test:init-upload-recovery && bun run test:init-replay && bun run test:init-telemetry && bun run test:prompt-preferences && bun run test:esm-sdk && bun run test:mcp && bun run test:mcp-no-key-handshake && bun run test:auth-session && bun run test:version-detection && bun run test:platform-paths && bun run test:project-type-detection && bun run test:payload-split && bun run test:manifest-path-encoding && bun run test:macos-signing && bun run test:asc-key-protocol && bun run test:apple-api-import-helpers && bun run test:apple-api-verify-key && bun run test:bundle-id-detector && bun run test:apple-api-app-list && bun run test:app-verification && bun run test:pbxproj-parser && bun run test:ai-log-capture && bun run test:ai-analyze-flow && bun run test:cicd-failure-help && bun run test:ai-sse-parser && bun run test:ai-render-markdown && bun run test:ai-stream-markdown && bun run test:ai-onboarding-mode && bun run test:ai-fit && bun run test:platform-layout && bun run test:frame-fit && bun run test:onboarding-min-size && bun run test:min-size-gate && bun run test:shell-size-gate && bun run test:build-log-sanitize && bun run test:build-output-viewport && bun run test:diff-viewer-viewport && bun run test:build-complete-exit && bun run test:ai-analyze-stream && bun run test:support-mailto && bun run test:support-redact && bun run test:support-internal-log && bun run test:support-help-menu && bun run test:support-contact && bun run test:support-upload-prompt && bun run test:support-bundle-files && bun run test:self-update && bun run test:update-prompt && bun run test:apple-api-cert-create && bun run test:android-tail-engine && bun run test:android-tail-render && bun run test:android-tail-routing && bun run test:dev-gate-stripped && bun run test:frame-fit-ios-shared && bun run test:ios-confirm-app-id && bun run test:ios-create-new && bun run test:ios-certificate-action && bun run test:ios-credential-action && bun run test:ios-e2e && bun run test:ios-flow-contract && bun run test:ios-import-discovery && bun run test:ios-import-export && bun run test:ios-import-pickers && bun run test:ios-import-recovery && bun run test:ios-recovery && bun run test:ios-resume && bun run test:ios-tail-handoff && bun run test:ios-tui-render && bun run test:p8-error && bun run test:ios-tui-routing && bun run test:ios-updater-sync-validation && bun run test:ios-verify-app && bun run test:ios-marketing-version && bun run test:android-version && bun run test:platform-flow-contract && bun run test:tail-engine-shared && bun run test:prescan && bun run test:android-reporting-api && bun run test:android-gcp && bun run test:android-app-verification && bun run test:android-rename && bun run test:appflow-auth && bun run test:appflow-api-map && bun run test:appflow-validate && bun run test:appflow-flow && bun run test:appflow-gapfill && bun run test:appflow-engine && bun run test:appflow-tail && bun run test:appflow-fetch && bun run test:appflow-sa-decode && bun run test:app-permission-helper && bun run test:2fa-compliance-network && bun run test:organization-set-api-host && bun run test:trial-warning && bun run test:plan-validation","test:build-platform-selection":"bun test/test-build-platform-selection.mjs","test:builder-project-discovery":"bun test/test-builder-project-discovery.mjs","test:builder-login-gate":"bun test/test-builder-login-gate.mjs","test:ai-log-capture":"bun test/test-ai-log-capture.mjs","test:ai-analyze-flow":"bun test/test-ai-analyze-flow.mjs","test:cicd-failure-help":"bun test/test-cicd-failure-help.mjs","test:ai-analyze-stream":"bun test/test-ai-analyze-stream.mjs","test:ai-sse-parser":"bun test/test-ai-sse-parser.mjs","test:ai-render-markdown":"bun test/test-ai-render-markdown.mjs","test:ai-onboarding-mode":"bun test/test-ai-onboarding-mode.mjs","test:ai-fit":"bun test/test-ai-fit.mjs","test:platform-layout":"bun test/test-platform-layout.mjs","test:frame-fit":"bun test/run-frame-fit.mjs","test:onboarding-min-size":"bun test/test-onboarding-min-size.mjs","test:min-size-gate":"bun test/test-min-size-gate.mjs","test:shell-size-gate":"bun test/test-shell-size-gate.mjs","test:build-log-sanitize":"bun test/test-build-log-sanitize.mjs","test:build-output-viewport":"bun test/test-build-output-viewport.mjs","test:diff-viewer-viewport":"bun test/test-diff-viewer-viewport.mjs","test:build-complete-exit":"bun test/test-build-complete-exit.mjs","test:ai-stream-markdown":"bun test/test-ai-stream-markdown.mjs","test:support-mailto":"bun test/test-support-mailto.mjs","test:support-redact":"bun test/test-support-redact.mjs","test:support-internal-log":"bun test/test-support-internal-log.mjs","test:support-help-menu":"bun test/test-support-help-menu.mjs","test:support-contact":"bun test/test-support-contact.mjs","test:support-upload-prompt":"bun test/test-support-upload-prompt.mjs","test:support-bundle-files":"bun test/test-support-bundle-files.mjs","test:mcp-live-update-onboarding":"bun test/test-mcp-live-update-onboarding.mjs","test:app-set-options":"bun test/test-app-set-options.mjs && bun test/test-app-list-options.mjs","test:android-reporting-api":"bun test/test-android-reporting-api.mjs","test:android-gcp":"bun test/test-android-gcp.mjs","test:android-app-verification":"bun test/test-android-app-verification.mjs","test:android-rename":"bun test/test-android-rename.mjs","test:appflow-auth":"bun test/test-appflow-auth.mjs","test:appflow-api-map":"bun test/test-appflow-api-map.mjs","test:appflow-validate":"bun test/test-appflow-validate.mjs","test:appflow-flow":"bun test/test-appflow-flow.mjs","test:appflow-gapfill":"bun test/test-appflow-gapfill.mjs","test:appflow-engine":"bun test/test-appflow-engine.mjs","test:appflow-tail":"bun test/test-appflow-tail.mjs","test:appflow-fetch":"bun test/test-appflow-fetch.mjs","test:appflow-sa-decode":"bun test/test-appflow-sa-decode.mjs","test:app-permission-helper":"bun test/test-app-permission-helper.mjs","test:2fa-compliance-network":"bun test/test-2fa-compliance-network.mjs","test:organization-set-api-host":"bun test/test-organization-set-api-host.mjs","test:trial-warning":"bun test/test-trial-warning.mjs","test:plan-validation":"bun test/test-plan-validation.mjs","test:auto-bump-version":"bun test/test-auto-bump-version.mjs","test:auto-bump-ai-diff":"bun test/test-auto-bump-ai-diff.mjs","test:ios-provisioning-map":"bun test/test-ios-provisioning-map.mjs","test:ios-provisioning-command":"bun test/test-ios-provisioning-command.mjs","test:channel-list":"bun test/test-channel-list.mjs"},dependencies:{"@inkjs/ui":"^2.0.0","@manypkg/tools":"^2.1.2","@rrweb/types":"^2.1.1","@standard-schema/spec":"^1.1.0","@xmldom/xmldom":"^0.9.10","@xterm/addon-serialize":"^0.14.0","@xterm/headless":"^6.0.0","agent-cli-detector":"^0.1.6","happy-dom":"^20.11.0",ink:"^7.1.1","ink-spinner":"^5.0.0",jsonwebtoken:"^9.0.3","node-forge":"^1.4.0",qrcode:"^1.5.4",react:"^19.2.8","rrweb-snapshot":"^2.1.1","string-width":"^8.2.2",typescript:"6.0.3",zod:"^4.4.3"},optionalDependencies:{"@capgo/cli-helper-darwin-arm64":"^1.1.1","@capgo/cli-helper-darwin-x64":"^1.1.1","node-pty":"^1.1.0"},devDependencies:{"@antfu/eslint-config":"^9.2.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.6","@capacitor/cli":"^8.4.2","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^1.7.0","@modelcontextprotocol/client":"^2.0.0-beta.5","@modelcontextprotocol/server":"^2.0.0-beta.5","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.8","@supabase/supabase-js":"^2.110.8","@tanstack/intent":"^0.3.6","@types/adm-zip":"^0.5.8","@types/jsonwebtoken":"^9.0.10","@types/node":"^26.1.1","@types/node-forge":"^1.3.14","@types/prettyjson":"^0.0.33","@types/qrcode":"^1.5.6","@types/react":"^19.2.17","@types/tmp":"^0.2.6","@types/ws":"^8.18.1","@typescript/native-preview":"7.0.0-dev.20260707.2","@vercel/ncc":"^0.44.1","@vue/compiler-dom":"3.5.40","@xterm/headless":"^6.0.0","adm-zip":"^0.6.0","ci-info":"^4.4.0",commander:"^15.0.0",eslint:"^10.7.0","git-format-staged":"4.0.2",husky:"^9.1.7","is-wsl":"^3.1.1",micromatch:"^4.0.8",open:"^11.0.0",oxlint:"^1.75.0",partysocket:"^1.3.0",prettyjson:"^1.2.5",tmp:"^0.2.7","tus-js-client":"^4.3.1",ws:"^8.21.1"}}});var G0;var S1=t(()=>{G0=class G0 extends Error{context;constructor($,D){super($);this.name="CliUserError",this.context=D}}});import{platform as nj0}from"node:os";import{version as pj0}from"node:process";function oj0($){for(let D=0;D<$.length;D++)if($.charCodeAt(D)>255)return!1;return!0}function fb($){if($.toLowerCase()==="x-capgo-log-token")return"Build log token is missing. Re-run the build command or pass a valid log token.";return"Capgo API key is missing. Run `npx -y @capgo/cli@latest login` or pass `--apikey`."}function tj0($){if($.toLowerCase()==="x-capgo-log-token")return"Build log token contains invalid characters (only ASCII is allowed). Re-run the build command to get a fresh token.";if($.toLowerCase()==="authorization")return"Authorization header contains invalid characters (only ASCII is allowed). Check your Capgo API key or Supabase anon key configuration.";return"Capgo API key contains invalid characters (only ASCII is allowed). Copy the key from the Capgo dashboard."}function E2($,D){if(D===void 0||D===null){if(R2.has($.toLowerCase()))throw new G0(fb($));throw new G0(`HTTP header "${$}" is missing or invalid.`)}if(typeof D!=="string"){if(R2.has($.toLowerCase()))throw new G0(fb($));throw new G0(`HTTP header "${$}" is missing or invalid.`)}if(!oj0(D)){if(R2.has($.toLowerCase()))throw new G0(tj0($));throw new G0(`HTTP header "${$}" contains invalid characters (only ASCII is allowed).`)}return D}function c1($){let D={capgo_api:ij0,"x-cli-version":i$.version,"x-cli-command":rj0,"x-cli-node":pj0,"x-cli-os":nj0()};if($)for(let[Q,X]of Object.entries($))D[Q]=E2(Q,X);return D}var ij0="2025-10-01",rj0="",R2;var a6=t(()=>{Q8();S1();R2=new Set(["authorization","capgkey","x-capgo-log-token"])});var ub,bb=($)=>{return $===12288||$>=65281&&$<=65376||$>=65504&&$<=65510},hb=($)=>{return $===8987||$===9001||$>=12272&&$<=12287||$>=12289&&$<=12350||$>=12441&&$<=12543||$>=12549&&$<=12591||$>=12593&&$<=12686||$>=12688&&$<=12771||$>=12783&&$<=12830||$>=12832&&$<=12871||$>=12880&&$<=19903||$>=65040&&$<=65049||$>=65072&&$<=65106||$>=65108&&$<=65126||$>=65128&&$<=65131||$>=127488&&$<=127490||$>=127504&&$<=127547||$>=127552&&$<=127560||$>=131072&&$<=196605||$>=196608&&$<=262141};var gb=t(()=>{ub=(()=>{let $=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(D)=>{let Q=0;$.lastIndex=0;while($.test(D))Q+=1;return D.length-Q}})()});var aj0,sj0,mb,ej0,db,$A0,DA0,QA0,cb=($,D={},Q={})=>{let X=D.limit??1/0,J=D.ellipsis??"",Y=D?.ellipsisWidth??(J?cb(J,QA0,Q).width:0),Z=0,F=Q.controlWidth??0,G=Q.tabWidth??8,U=Q.emojiWidth??2,W=2,q=Q.regularWidth??1,K=Q.wideWidth??2,H=[[$A0,q],[aj0,0],[sj0,F],[ej0,G],[db,U],[mb,K]],V=0,O=0,z=$.length,N=0,B=!1,L=z,M=Math.max(0,X-Y),w=0,R=0,x=0,_=0;$:while(!0){if(R>w||O>=z&&O>V){let j=$.slice(w,R)||$.slice(V,O);N=0;for(let k of j.replaceAll(DA0,"")){let v=k.codePointAt(0)||0;if(bb(v))_=2;else if(hb(v))_=K;else _=q;if(x+_>M)L=Math.min(L,Math.max(w,V)+N);if(x+_>X){B=!0;break $}N+=k.length,x+=_}w=R=0}if(O>=z)break $;for(let j=0,k=H.length;j<k;j++){let[v,g]=H[j];if(v.lastIndex=O,v.test($)){if(N=v===mb?ub($.slice(O,v.lastIndex)):v===db?1:v.lastIndex-O,_=N*g,x+_>M)L=Math.min(L,O+Math.floor((M-x)/g));if(x+_>X){B=!0;break $}x+=_,w=V,R=O,O=V=v.lastIndex;continue $}}O+=1}return{width:B?M:x,index:B?L:z,truncated:B,ellipsed:B&&X>=Y}},lb;var nb=t(()=>{gb();aj0=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,sj0=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,mb=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,ej0=/\t{1,1000}/y,db=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,$A0=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,DA0=/\p{M}+/gu,QA0={limit:1/0,ellipsis:""},lb=cb});var XA0,JA0=($,D={})=>{return lb($,XA0,D).width},P8;var j2=t(()=>{nb();XA0={limit:1/0,ellipsis:"",ellipsisWidth:0},P8=JA0});function j7($,D,Q){return String($).normalize().split(UA0).map((X)=>GA0(X,D,Q)).join(`
|
|
1
|
+
import{createRequire as cj0}from"node:module";var module={exports:{}};var uj0=Object.create;var{getPrototypeOf:bj0,defineProperty:sF,getOwnPropertyNames:yb}=Object;var w2=Object.prototype.hasOwnProperty;function B2($){return this[$]}var H0=($,D,Q)=>{var X=yb(D);for(let J of X)if(!w2.call($,J)&&J!=="default")sF($,J,{get:B2.bind(D,J),enumerable:!0});if(Q){for(let J of X)if(!w2.call(Q,J)&&J!=="default")sF(Q,J,{get:B2.bind(D,J),enumerable:!0});return Q}},hj0,gj0,x1=($,D,Q)=>{var X=$!=null&&typeof $==="object";if(X){var J=D?hj0??=new WeakMap:gj0??=new WeakMap,Y=J.get($);if(Y)return Y}Q=$!=null?uj0(bj0($)):{};let Z=D||!$||!$.__esModule?sF(Q,"default",{value:$,enumerable:!0}):Q;for(let F of yb($))if(!w2.call(Z,F))sF(Z,F,{get:B2.bind($,F),enumerable:!0});if(X)J.set($,Z);return Z};var E=($,D)=>()=>(D||$((D={exports:{}}).exports,D),D.exports);var mj0=($)=>$;function dj0($,D){this[$]=mj0.bind(null,D)}var X6=($,D)=>{for(var Q in D)sF($,Q,{get:D[Q],enumerable:!0,configurable:!0,set:dj0.bind(D,Q)})};var t=($,D)=>()=>($&&(D=$($=0)),D);var Q0=cj0(import.meta.url);var i$;var Q8=t(()=>{i$={name:"@capgo/cli",type:"module",version:"8.64.0",description:"A CLI to upload to capgo servers",author:"Martin martin@capgo.app",license:"Apache 2.0",homepage:"https://github.com/Cap-go/capgo/tree/main/cli#readme",repository:{type:"git",url:"https://github.com/Cap-go/capgo.app",directory:"cli"},bugs:{url:"https://github.com/Cap-go/capgo/issues"},keywords:["appflow alternative","ionic","capacitor","auto update","live update","capgo","cli","upload","capgo-cli","sdk","tanstack-intent"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js"},"./sdk":{types:"./dist/src/sdk.d.ts",import:"./dist/src/sdk.js"}},main:"dist/index.js",types:"dist/src/index.d.ts",bin:{capgo:"dist/index.js"},files:["!skills/_artifacts","dist","skills"],engines:{npm:">=8.0.0",node:">=20.0.0"},scripts:{build:"tsc && bun build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"bunx --bun supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",typecheck:"tsgo --project tsconfig.tsgo.json --noEmit",lint:"bun run lint:ox","lint:ox":"oxlint --config ../.oxlintrc.json src","lint:fix":"oxlint --config ../.oxlintrc.json --fix src","check-posix-paths":"node test/check-posix-paths.js","generate-docs":"node dist/index.js generate-docs README.md","test:notify-app-ready-background":"bun test ./test/test-notify-app-ready-background.mjs ./test/test-background-check-shutdown.mjs","test:bundle":"bun test/test-bundle.mjs","test:bundle-validation":"bun test test/bundle/","test:prescan":"bun test test/prescan/","test:functional":"bun test/test-functional.mjs","test:semver":"bun test/test-semver-validation.mjs","test:version-edge-cases":"bun test/test-version-validation.mjs","test:regex":"bun test/test-regex-validation.mjs","test:upload":"bun test/test-upload-validation.mjs","test:fail-on-incompatible":"bun test/test-fail-on-incompatible.mjs","test:native-dependencies":"bun test/test-native-dependencies.mjs && bun test/test-get-remote-dependencies.mjs","test:package-json-guard":"bun test/test-package-json-guard.mjs","test:credentials":"bun test/test-credentials.mjs","test:credentials-export":"bun test/test-credentials-export.mjs","test:asc-key-protocol":"bun test/test-asc-key-protocol.mjs","test:credentials-validation":"bun test/test-credentials-validation.mjs","test:android-service-account-validation":"bun test/test-android-service-account-validation.mjs","test:build-zip-filter":"bun test/test-build-zip-filter.mjs","test:checksum":"bun test/test-checksum-algorithm.mjs","test:build-needed":"bun test/test-build-needed.mjs","test:cli-help":"bun test/test-cli-help.mjs","test:build-cache-payload":"bun test/test-build-cache-payload.mjs","test:build-cancellation":"bun test/test-build-cancellation.mjs","test:ci-prompts":"bun test/test-ci-prompts.mjs","test:ci-secrets":"bun test/test-ci-secrets.mjs","test:android-onboarding-progress":"bun test/test-android-onboarding-progress.mjs","test:android-keystore-action":"bun test/test-android-keystore-action.mjs","test:onboarding-telemetry":"bun test/test-onboarding-telemetry.mjs","test:v2-event-migration":"bun test/test-v2-event-migration.mjs","test:analytics":"bun test/test-analytics.mjs","test:cli-headers":"bun test/test-cli-headers.mjs","test:min-cli-version":"bun test/test-min-cli-version.mjs","test:authenticated-command-invocation":"bun test/test-authenticated-command-invocation.mjs","test:analytics-error-category":"bun test/test-analytics-error-category.mjs","test:analytics-org-resolver":"bun test/test-analytics-org-resolver.mjs","test:supabase-perf":"bun test/test-supabase-perf.mjs","test:preview-qr":"bun test/test-preview-qr.mjs","test:mcp-analytics":"bun test/test-mcp-analytics.mjs","test:mcp-instructions":"bun test/test-mcp-instructions.mjs","test:mcp-stdout-guard":"bun test/test-mcp-stdout-guard.mjs","test:mcp-platform-select":"bun test/test-mcp-platform-select.mjs","test:mcp-explain-scopes":"bun test/test-mcp-explain-scopes.mjs","test:mcp-oauth-reopen":"bun test/test-mcp-oauth-reopen.mjs","test:mcp-broker-oauth":"bun test/test-mcp-broker-oauth.mjs","test:mcp-broker-session":"bun test/test-mcp-broker-session.mjs","test:mcp-credentials-manage":"bun test/test-mcp-credentials-manage.mjs","test:mcp-resume-prompt":"bun test/test-mcp-resume-prompt.mjs","test:mcp-build-job":"bun test/test-mcp-build-job.mjs","test:mcp-build-tools":"bun test/test-mcp-build-tools.mjs","test:app-created-source":"bun test/test-app-created-source.mjs","test:app-add-exists":"bun test/test-app-add-exists.mjs","test:app-add-getting-started":"bun test/test-app-add-getting-started.mjs","test:app-list-output-text":"bun test/test-app-list-output-text.mjs","test:app-todo":"bun test/test-app-todo.mjs","test:doctor-analytics":"bun test/test-doctor-analytics.mjs","test:posthog-exception":"bun test/test-posthog-exception.mjs","test:cli-recovery":"bun test/test-cli-recovery.mjs","test:create-supabase-client":"bun test/test-create-supabase-client.mjs","test:onboarding-recovery":"bun test/test-onboarding-recovery.mjs","test:onboarding-progress":"bun test/test-onboarding-progress.mjs","test:onboarding-run-targets":"bun test/test-onboarding-run-targets.mjs","test:run-device-command":"bun test/test-run-device-command.mjs","test:init-app-conflict":"bun test/test-init-app-conflict.mjs","test:channel-add-exists":"bun test/test-channel-add-exists.mjs","test:wait-log":"bun test/test-wait-log.mjs","test:init-guardrails":"bun test/test-init-guardrails.mjs","test:init-upload-recovery":"bun test/test-init-upload-error-gate.mjs && bun test/test-init-upload-monorepo-recovery.mjs","test:init-replay":"bun test/test-init-replay.mjs","test:init-telemetry":"bun test/test-init-telemetry.mjs","test:capacitor-config-target":"bun test/test-capacitor-config-target.mjs","test:builder-app-id-config":"bun test/test-builder-app-id-config.mjs","test:capacitor-config-typescript7":"bun test/test-capacitor-config-typescript7.mjs","test:capacitor-config-native-import":"bun test/test-capacitor-config-native-import.mjs","test:cli-user-error-config":"bun test/test-cli-user-error-config.mjs","test:cordova-upload-mode":"bun test/test-cordova-upload-mode.mjs","test:init-monorepo-targeting":"bun run test:capacitor-config-target && bun run test:builder-app-id-config && bun run test:capacitor-config-typescript7 && bun run test:capacitor-config-native-import && bun run test:cli-user-error-config && bun test/test-init-monorepo-targeting.mjs","test:prompt-preferences":"bun test/test-prompt-preferences.mjs","test:esm-sdk":"node test/test-sdk-esm.mjs","test:auth-session":"bun test/test-auth-session.mjs","test:mcp":"node test/test-mcp.mjs","test:mcp-no-key-handshake":"node test/test-mcp-no-key-handshake.mjs","test:version-detection":"node test/test-get-installed-version.mjs","test:version-detection:setup":"./test/fixtures/setup-test-projects.sh","test:platform-paths":"bun test/test-platform-paths.mjs","test:project-type-detection":"bun test/test-project-type-detection.mjs","test:payload-split":"bun test/test-payload-split.mjs","test:macos-signing":"bun test/test-macos-signing.mjs","test:helper-dce":"bash scripts/check-helper-dce.sh","test:apple-api-import-helpers":"bun test/test-apple-api-import-helpers.mjs","test:apple-api-verify-key":"bun test/test-apple-api-verify-key.mjs","test:bundle-id-detector":"bun test/test-bundle-id-detector.mjs","test:apple-api-app-list":"bun test/test-apple-api-app-list.mjs","test:apple-api-cert-create":"bun test/test-apple-api-cert-create.mjs","test:app-verification":"bun test/test-app-verification.mjs","test:pbxproj-parser":"bun test/test-pbxproj-parser.mjs","test:manifest-path-encoding":"bun test/test-manifest-path-encoding.mjs","test:self-update":"bun test/test-self-update.mjs","test:update-prompt":"bun test/test-update-prompt.mjs","test:android-tail-engine":"bun test/test-android-tail-engine.mjs","test:android-tail-render":"bun test/test-android-tail-render.mjs","test:android-tail-routing":"bun test/test-android-tail-routing.mjs","test:dev-gate-stripped":"bun test/test-dev-gate-stripped.mjs","test:frame-fit-ios-shared":"bun test/test-frame-fit-ios-shared.mjs","test:ios-confirm-app-id":"bun test/test-ios-confirm-app-id.mjs","test:ios-create-new":"bun test/test-ios-create-new.mjs","test:ios-certificate-action":"bun test/test-ios-certificate-action.mjs","test:ios-credential-action":"bun test/test-ios-credential-action.mjs","test:ios-e2e":"bun test/test-ios-e2e.mjs","test:ios-flow-contract":"bun test/test-ios-flow-contract.mjs","test:ios-import-discovery":"bun test/test-ios-import-discovery.mjs","test:ios-import-export":"bun test/test-ios-import-export.mjs","test:ios-import-pickers":"bun test/test-ios-import-pickers.mjs","test:ios-import-recovery":"bun test/test-ios-import-recovery.mjs","test:ios-recovery":"bun test/test-ios-recovery.mjs","test:ios-resume":"bun test/test-ios-resume.mjs","test:ios-tail-handoff":"bun test/test-ios-tail-handoff.mjs","test:ios-tui-render":"bun test/test-ios-tui-render.mjs","test:p8-error":"bun test/test-p8-error.mjs","test:ios-tui-routing":"bun test/test-ios-tui-routing.mjs","test:ios-updater-sync-validation":"bun test/test-ios-updater-sync-validation.mjs","test:ios-verify-app":"bun test/test-ios-verify-app.mjs","test:ios-marketing-version":"bun test/test-ios-marketing-version.mjs","test:android-version":"bun test/test-android-version.mjs","test:platform-flow-contract":"bun test/test-platform-flow-contract.mjs","test:tail-engine-shared":"bun test/test-tail-engine-shared.mjs",test:"bun run build && bun run test:helper-dce && bun run test:version-detection:setup && bun run test:bundle && bun run test:notify-app-ready-background && bun run test:bundle-validation && bun run test:functional && bun run test:semver && bun run test:auto-bump-version && bun run test:auto-bump-ai-diff && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:cordova-upload-mode && bun run test:fail-on-incompatible && bun run test:native-dependencies && bun run test:package-json-guard && bun run test:credentials && bun run test:credentials-export && bun run test:ios-provisioning-map && bun run test:ios-provisioning-command && bun run test:credentials-validation && bun run test:android-service-account-validation && bun run test:build-zip-filter && bun run test:checksum && bun run test:build-needed && bun run test:cli-help && bun run test:build-cache-payload && bun run test:build-cancellation && bun run test:ci-prompts && bun run test:ci-secrets && bun run test:android-onboarding-progress && bun run test:android-keystore-action && bun run test:onboarding-telemetry && bun run test:v2-event-migration && bun run test:analytics && bun run test:cli-headers && bun run test:min-cli-version && bun run test:authenticated-command-invocation && bun run test:analytics-error-category && bun run test:analytics-org-resolver && bun run test:supabase-perf && bun run test:preview-qr && bun run test:app-set-options && bun run test:mcp-analytics && bun run test:mcp-instructions && bun run test:mcp-live-update-onboarding && bun run test:mcp-stdout-guard && bun run test:mcp-platform-select && bun run test:mcp-explain-scopes && bun run test:mcp-oauth-reopen && bun run test:mcp-broker-oauth && bun run test:mcp-broker-session && bun run test:mcp-credentials-manage && bun run test:mcp-resume-prompt && bun run test:mcp-build-job && bun run test:mcp-build-tools && bun run test:app-created-source && bun run test:app-add-exists && bun run test:app-add-getting-started && bun run test:app-list-output-text && bun run test:app-todo && bun run test:doctor-analytics && bun run test:posthog-exception && bun run test:cli-recovery && bun run test:create-supabase-client && bun run test:build-platform-selection && bun run test:builder-project-discovery && bun run test:builder-app-selection && bun run test:builder-login-gate && bun run test:onboarding-recovery && bun run test:onboarding-progress && bun run test:onboarding-run-targets && bun run test:run-device-command && bun run test:init-monorepo-targeting && bun run test:init-app-conflict && bun run test:channel-list && bun run test:channel-add-exists && bun run test:wait-log && bun run test:init-guardrails && bun run test:init-upload-recovery && bun run test:init-replay && bun run test:init-telemetry && bun run test:prompt-preferences && bun run test:esm-sdk && bun run test:mcp && bun run test:mcp-no-key-handshake && bun run test:auth-session && bun run test:version-detection && bun run test:platform-paths && bun run test:project-type-detection && bun run test:payload-split && bun run test:manifest-path-encoding && bun run test:macos-signing && bun run test:asc-key-protocol && bun run test:apple-api-import-helpers && bun run test:apple-api-verify-key && bun run test:bundle-id-detector && bun run test:apple-api-app-list && bun run test:app-verification && bun run test:pbxproj-parser && bun run test:ai-log-capture && bun run test:ai-analyze-flow && bun run test:cicd-failure-help && bun run test:ai-sse-parser && bun run test:ai-render-markdown && bun run test:ai-stream-markdown && bun run test:ai-onboarding-mode && bun run test:ai-fit && bun run test:platform-layout && bun run test:frame-fit && bun run test:onboarding-min-size && bun run test:min-size-gate && bun run test:shell-size-gate && bun run test:build-log-sanitize && bun run test:build-output-viewport && bun run test:diff-viewer-viewport && bun run test:build-complete-exit && bun run test:ai-analyze-stream && bun run test:support-mailto && bun run test:support-redact && bun run test:support-internal-log && bun run test:support-help-menu && bun run test:support-contact && bun run test:support-upload-prompt && bun run test:support-bundle-files && bun run test:self-update && bun run test:update-prompt && bun run test:apple-api-cert-create && bun run test:android-tail-engine && bun run test:android-tail-render && bun run test:android-tail-routing && bun run test:dev-gate-stripped && bun run test:frame-fit-ios-shared && bun run test:ios-confirm-app-id && bun run test:ios-create-new && bun run test:ios-certificate-action && bun run test:ios-credential-action && bun run test:ios-e2e && bun run test:ios-flow-contract && bun run test:ios-import-discovery && bun run test:ios-import-export && bun run test:ios-import-pickers && bun run test:ios-import-recovery && bun run test:ios-recovery && bun run test:ios-resume && bun run test:ios-tail-handoff && bun run test:ios-tui-render && bun run test:p8-error && bun run test:ios-tui-routing && bun run test:ios-updater-sync-validation && bun run test:ios-verify-app && bun run test:ios-marketing-version && bun run test:android-version && bun run test:platform-flow-contract && bun run test:tail-engine-shared && bun run test:prescan && bun run test:android-reporting-api && bun run test:android-gcp && bun run test:android-app-verification && bun run test:android-rename && bun run test:appflow-auth && bun run test:appflow-api-map && bun run test:appflow-validate && bun run test:appflow-flow && bun run test:appflow-gapfill && bun run test:appflow-engine && bun run test:appflow-tail && bun run test:appflow-fetch && bun run test:appflow-sa-decode && bun run test:app-permission-helper && bun run test:2fa-compliance-network && bun run test:organization-set-api-host && bun run test:trial-warning && bun run test:plan-validation","test:build-platform-selection":"bun test/test-build-platform-selection.mjs","test:builder-project-discovery":"bun test/test-builder-project-discovery.mjs","test:builder-app-selection":"bun test/test-builder-app-selection.mjs","test:builder-login-gate":"bun test/test-builder-login-gate.mjs","test:ai-log-capture":"bun test/test-ai-log-capture.mjs","test:ai-analyze-flow":"bun test/test-ai-analyze-flow.mjs","test:cicd-failure-help":"bun test/test-cicd-failure-help.mjs","test:ai-analyze-stream":"bun test/test-ai-analyze-stream.mjs","test:ai-sse-parser":"bun test/test-ai-sse-parser.mjs","test:ai-render-markdown":"bun test/test-ai-render-markdown.mjs","test:ai-onboarding-mode":"bun test/test-ai-onboarding-mode.mjs","test:ai-fit":"bun test/test-ai-fit.mjs","test:platform-layout":"bun test/test-platform-layout.mjs","test:frame-fit":"bun test/run-frame-fit.mjs","test:onboarding-min-size":"bun test/test-onboarding-min-size.mjs","test:min-size-gate":"bun test/test-min-size-gate.mjs","test:shell-size-gate":"bun test/test-shell-size-gate.mjs","test:build-log-sanitize":"bun test/test-build-log-sanitize.mjs","test:build-output-viewport":"bun test/test-build-output-viewport.mjs","test:diff-viewer-viewport":"bun test/test-diff-viewer-viewport.mjs","test:build-complete-exit":"bun test/test-build-complete-exit.mjs","test:ai-stream-markdown":"bun test/test-ai-stream-markdown.mjs","test:support-mailto":"bun test/test-support-mailto.mjs","test:support-redact":"bun test/test-support-redact.mjs","test:support-internal-log":"bun test/test-support-internal-log.mjs","test:support-help-menu":"bun test/test-support-help-menu.mjs","test:support-contact":"bun test/test-support-contact.mjs","test:support-upload-prompt":"bun test/test-support-upload-prompt.mjs","test:support-bundle-files":"bun test/test-support-bundle-files.mjs","test:mcp-live-update-onboarding":"bun test/test-mcp-live-update-onboarding.mjs","test:app-set-options":"bun test/test-app-set-options.mjs && bun test/test-app-list-options.mjs","test:android-reporting-api":"bun test/test-android-reporting-api.mjs","test:android-gcp":"bun test/test-android-gcp.mjs","test:android-app-verification":"bun test/test-android-app-verification.mjs","test:android-rename":"bun test/test-android-rename.mjs","test:appflow-auth":"bun test/test-appflow-auth.mjs","test:appflow-api-map":"bun test/test-appflow-api-map.mjs","test:appflow-validate":"bun test/test-appflow-validate.mjs","test:appflow-flow":"bun test/test-appflow-flow.mjs","test:appflow-gapfill":"bun test/test-appflow-gapfill.mjs","test:appflow-engine":"bun test/test-appflow-engine.mjs","test:appflow-tail":"bun test/test-appflow-tail.mjs","test:appflow-fetch":"bun test/test-appflow-fetch.mjs","test:appflow-sa-decode":"bun test/test-appflow-sa-decode.mjs","test:app-permission-helper":"bun test/test-app-permission-helper.mjs","test:2fa-compliance-network":"bun test/test-2fa-compliance-network.mjs","test:organization-set-api-host":"bun test/test-organization-set-api-host.mjs","test:trial-warning":"bun test/test-trial-warning.mjs","test:plan-validation":"bun test/test-plan-validation.mjs","test:auto-bump-version":"bun test/test-auto-bump-version.mjs","test:auto-bump-ai-diff":"bun test/test-auto-bump-ai-diff.mjs","test:ios-provisioning-map":"bun test/test-ios-provisioning-map.mjs","test:ios-provisioning-command":"bun test/test-ios-provisioning-command.mjs","test:channel-list":"bun test/test-channel-list.mjs"},dependencies:{"@inkjs/ui":"^2.0.0","@manypkg/tools":"^2.1.2","@rrweb/types":"^2.1.1","@standard-schema/spec":"^1.1.0","@xmldom/xmldom":"^0.9.10","@xterm/addon-serialize":"^0.14.0","@xterm/headless":"^6.0.0","agent-cli-detector":"^0.1.6","happy-dom":"^20.11.0",ink:"^7.1.1","ink-spinner":"^5.0.0",jsonwebtoken:"^9.0.3","node-forge":"^1.4.0",qrcode:"^1.5.4",react:"^19.2.8","rrweb-snapshot":"^2.1.1","string-width":"^8.2.2",typescript:"6.0.3",zod:"^4.4.3"},optionalDependencies:{"@capgo/cli-helper-darwin-arm64":"^1.1.1","@capgo/cli-helper-darwin-x64":"^1.1.1","node-pty":"^1.1.0"},devDependencies:{"@antfu/eslint-config":"^9.2.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.6","@capacitor/cli":"^8.4.2","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^1.7.0","@modelcontextprotocol/client":"^2.0.0-beta.5","@modelcontextprotocol/server":"^2.0.0-beta.5","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.8","@supabase/supabase-js":"^2.110.8","@tanstack/intent":"^0.3.6","@types/adm-zip":"^0.5.8","@types/jsonwebtoken":"^9.0.10","@types/node":"^26.1.1","@types/node-forge":"^1.3.14","@types/prettyjson":"^0.0.33","@types/qrcode":"^1.5.6","@types/react":"^19.2.17","@types/tmp":"^0.2.6","@types/ws":"^8.18.1","@typescript/native-preview":"7.0.0-dev.20260707.2","@vercel/ncc":"^0.44.1","@vue/compiler-dom":"3.5.40","@xterm/headless":"^6.0.0","adm-zip":"^0.6.0","ci-info":"^4.4.0",commander:"^15.0.0",eslint:"^10.7.0","git-format-staged":"4.0.2",husky:"^9.1.7","is-wsl":"^3.1.1",micromatch:"^4.0.8",open:"^11.0.0",oxlint:"^1.75.0",partysocket:"^1.3.0",prettyjson:"^1.2.5",tmp:"^0.2.7","tus-js-client":"^4.3.1",ws:"^8.21.1"}}});var G0;var S1=t(()=>{G0=class G0 extends Error{context;constructor($,D){super($);this.name="CliUserError",this.context=D}}});import{platform as nj0}from"node:os";import{version as pj0}from"node:process";function oj0($){for(let D=0;D<$.length;D++)if($.charCodeAt(D)>255)return!1;return!0}function fb($){if($.toLowerCase()==="x-capgo-log-token")return"Build log token is missing. Re-run the build command or pass a valid log token.";return"Capgo API key is missing. Run `npx -y @capgo/cli@latest login` or pass `--apikey`."}function tj0($){if($.toLowerCase()==="x-capgo-log-token")return"Build log token contains invalid characters (only ASCII is allowed). Re-run the build command to get a fresh token.";if($.toLowerCase()==="authorization")return"Authorization header contains invalid characters (only ASCII is allowed). Check your Capgo API key or Supabase anon key configuration.";return"Capgo API key contains invalid characters (only ASCII is allowed). Copy the key from the Capgo dashboard."}function E2($,D){if(D===void 0||D===null){if(R2.has($.toLowerCase()))throw new G0(fb($));throw new G0(`HTTP header "${$}" is missing or invalid.`)}if(typeof D!=="string"){if(R2.has($.toLowerCase()))throw new G0(fb($));throw new G0(`HTTP header "${$}" is missing or invalid.`)}if(!oj0(D)){if(R2.has($.toLowerCase()))throw new G0(tj0($));throw new G0(`HTTP header "${$}" contains invalid characters (only ASCII is allowed).`)}return D}function c1($){let D={capgo_api:ij0,"x-cli-version":i$.version,"x-cli-command":rj0,"x-cli-node":pj0,"x-cli-os":nj0()};if($)for(let[Q,X]of Object.entries($))D[Q]=E2(Q,X);return D}var ij0="2025-10-01",rj0="",R2;var a6=t(()=>{Q8();S1();R2=new Set(["authorization","capgkey","x-capgo-log-token"])});var ub,bb=($)=>{return $===12288||$>=65281&&$<=65376||$>=65504&&$<=65510},hb=($)=>{return $===8987||$===9001||$>=12272&&$<=12287||$>=12289&&$<=12350||$>=12441&&$<=12543||$>=12549&&$<=12591||$>=12593&&$<=12686||$>=12688&&$<=12771||$>=12783&&$<=12830||$>=12832&&$<=12871||$>=12880&&$<=19903||$>=65040&&$<=65049||$>=65072&&$<=65106||$>=65108&&$<=65126||$>=65128&&$<=65131||$>=127488&&$<=127490||$>=127504&&$<=127547||$>=127552&&$<=127560||$>=131072&&$<=196605||$>=196608&&$<=262141};var gb=t(()=>{ub=(()=>{let $=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(D)=>{let Q=0;$.lastIndex=0;while($.test(D))Q+=1;return D.length-Q}})()});var aj0,sj0,mb,ej0,db,$A0,DA0,QA0,cb=($,D={},Q={})=>{let X=D.limit??1/0,J=D.ellipsis??"",Y=D?.ellipsisWidth??(J?cb(J,QA0,Q).width:0),Z=0,F=Q.controlWidth??0,G=Q.tabWidth??8,U=Q.emojiWidth??2,W=2,q=Q.regularWidth??1,K=Q.wideWidth??2,H=[[$A0,q],[aj0,0],[sj0,F],[ej0,G],[db,U],[mb,K]],V=0,O=0,z=$.length,N=0,B=!1,L=z,M=Math.max(0,X-Y),w=0,R=0,x=0,_=0;$:while(!0){if(R>w||O>=z&&O>V){let j=$.slice(w,R)||$.slice(V,O);N=0;for(let k of j.replaceAll(DA0,"")){let v=k.codePointAt(0)||0;if(bb(v))_=2;else if(hb(v))_=K;else _=q;if(x+_>M)L=Math.min(L,Math.max(w,V)+N);if(x+_>X){B=!0;break $}N+=k.length,x+=_}w=R=0}if(O>=z)break $;for(let j=0,k=H.length;j<k;j++){let[v,g]=H[j];if(v.lastIndex=O,v.test($)){if(N=v===mb?ub($.slice(O,v.lastIndex)):v===db?1:v.lastIndex-O,_=N*g,x+_>M)L=Math.min(L,O+Math.floor((M-x)/g));if(x+_>X){B=!0;break $}x+=_,w=V,R=O,O=V=v.lastIndex;continue $}}O+=1}return{width:B?M:x,index:B?L:z,truncated:B,ellipsed:B&&X>=Y}},lb;var nb=t(()=>{gb();aj0=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,sj0=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,mb=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,ej0=/\t{1,1000}/y,db=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,$A0=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,DA0=/\p{M}+/gu,QA0={limit:1/0,ellipsis:""},lb=cb});var XA0,JA0=($,D={})=>{return lb($,XA0,D).width},P8;var j2=t(()=>{nb();XA0={limit:1/0,ellipsis:"",ellipsisWidth:0},P8=JA0});function j7($,D,Q){return String($).normalize().split(UA0).map((X)=>GA0(X,D,Q)).join(`
|
|
2
2
|
`)}var XK="\x1B",tb="",YA0=39,I2="\x07",ab="[",ZA0="]",sb="m",T2,pb,ib=($)=>{if($>=30&&$<=37)return 39;if($>=90&&$<=97)return 39;if($>=40&&$<=47)return 49;if($>=100&&$<=107)return 49;if($===1||$===2)return 22;if($===3)return 23;if($===4)return 24;if($===7)return 27;if($===8)return 28;if($===9)return 29;if($===0)return 0;return},rb=($)=>`${XK}${ab}${$}${sb}`,ob=($)=>`${XK}${T2}${$}${I2}`,A2=($,D,Q)=>{let X=D[Symbol.iterator](),J=!1,Y=!1,Z=$.at(-1),F=Z===void 0?0:P8(Z),G=X.next(),U=X.next(),W=0;while(!G.done){let q=G.value,K=P8(q);if(F+K<=Q)$[$.length-1]+=q;else $.push(q),F=0;if(q===XK||q===tb)J=!0,Y=D.startsWith(T2,W+1);if(J){if(Y){if(q===I2)J=!1,Y=!1}else if(q===sb)J=!1}else if(F+=K,F===Q&&!U.done)$.push(""),F=0;G=U,U=X.next(),W+=q.length}if(Z=$.at(-1),!F&&Z!==void 0&&Z.length&&$.length>1)$[$.length-2]+=$.pop()},FA0=($)=>{let D=$.split(" "),Q=D.length;while(Q){if(P8(D[Q-1]))break;Q--}if(Q===D.length)return $;return D.slice(0,Q).join(" ")+D.slice(Q).join("")},GA0=($,D,Q={})=>{if(Q.trim!==!1&&$.trim()==="")return"";let X="",J,Y,Z=$.split(" "),F=[""],G=0;for(let q=0;q<Z.length;q++){let K=Z[q];if(Q.trim!==!1){let V=F.at(-1)??"",O=V.trimStart();if(V.length!==O.length)F[F.length-1]=O,G=P8(O)}if(q!==0){if(G>=D&&(Q.wordWrap===!1||Q.trim===!1))F.push(""),G=0;if(G||Q.trim===!1)F[F.length-1]+=" ",G++}let H=P8(K);if(Q.hard&&H>D){let V=D-G,O=1+Math.floor((H-V-1)/D);if(Math.floor((H-1)/D)<O)F.push("");A2(F,K,D),G=P8(F.at(-1)??"");continue}if(G+H>D&&G&&H){if(Q.wordWrap===!1&&G<D){A2(F,K,D),G=P8(F.at(-1)??"");continue}F.push(""),G=0}if(G+H>D&&Q.wordWrap===!1){A2(F,K,D),G=P8(F.at(-1)??"");continue}F[F.length-1]+=K,G+=H}if(Q.trim!==!1)F=F.map((q)=>FA0(q));let U=F.join(`
|
|
3
3
|
`),W=!1;for(let q=0;q<U.length;q++){let K=U[q];if(X+=K,!W){if(W=K>="\uD800"&&K<="\uDBFF",W)continue}else W=!1;if(K===XK||K===tb){pb.lastIndex=q+1;let V=pb.exec(U)?.groups;if(V?.code!==void 0){let O=Number.parseFloat(V.code);J=O===YA0?void 0:O}else if(V?.uri!==void 0)Y=V.uri.length===0?void 0:V.uri}if(U[q+1]===`
|
|
4
4
|
`){if(Y)X+=ob("");let H=J?ib(J):void 0;if(J&&H)X+=rb(H)}else if(K===`
|