@capgo/cli 8.63.0 → 8.64.1

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
3
  "type": "module",
4
- "version": "8.63.0",
4
+ "version": "8.64.1",
5
5
  "description": "A CLI to upload to capgo servers",
6
6
  "author": "Martin martin@capgo.app",
7
7
  "license": "Apache 2.0",
@@ -90,6 +90,7 @@
90
90
  "test:ci-prompts": "bun test/test-ci-prompts.mjs",
91
91
  "test:ci-secrets": "bun test/test-ci-secrets.mjs",
92
92
  "test:android-onboarding-progress": "bun test/test-android-onboarding-progress.mjs",
93
+ "test:android-keystore-action": "bun test/test-android-keystore-action.mjs",
93
94
  "test:onboarding-telemetry": "bun test/test-onboarding-telemetry.mjs",
94
95
  "test:v2-event-migration": "bun test/test-v2-event-migration.mjs",
95
96
  "test:analytics": "bun test/test-analytics.mjs",
@@ -100,6 +101,7 @@
100
101
  "test:analytics-org-resolver": "bun test/test-analytics-org-resolver.mjs",
101
102
  "test:supabase-perf": "bun test/test-supabase-perf.mjs",
102
103
  "test:preview-qr": "bun test/test-preview-qr.mjs",
104
+ "test:bundle-pages": "bun test test/test-bundle-pages.test.ts",
103
105
  "test:mcp-analytics": "bun test/test-mcp-analytics.mjs",
104
106
  "test:mcp-instructions": "bun test/test-mcp-instructions.mjs",
105
107
  "test:mcp-stdout-guard": "bun test/test-mcp-stdout-guard.mjs",
@@ -188,7 +190,7 @@
188
190
  "test:android-version": "bun test/test-android-version.mjs",
189
191
  "test:platform-flow-contract": "bun test/test-platform-flow-contract.mjs",
190
192
  "test:tail-engine-shared": "bun test/test-tail-engine-shared.mjs",
191
- "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-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",
193
+ "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:bundle-pages && 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",
192
194
  "test:build-platform-selection": "bun test/test-build-platform-selection.mjs",
193
195
  "test:builder-project-discovery": "bun test/test-builder-project-discovery.mjs",
194
196
  "test:builder-app-selection": "bun test/test-builder-app-selection.mjs",
@@ -263,7 +265,7 @@
263
265
  "rrweb-snapshot": "^2.1.1",
264
266
  "string-width": "^8.2.2",
265
267
  "typescript": "6.0.3",
266
- "zod": "^4.4.3"
268
+ "zod": "^4.5.4"
267
269
  },
268
270
  "optionalDependencies": {
269
271
  "@capgo/cli-helper-darwin-arm64": "^1.1.1",
@@ -1,10 +1,13 @@
1
1
  import type { SupabaseClient } from '@supabase/supabase-js';
2
2
  import type { Database } from '../types/supabase.types';
3
+ import { invokeCapgoCliApi } from '../utils';
3
4
  interface VersionOptions {
4
5
  silent?: boolean;
5
6
  apikey?: string;
6
7
  supaHost?: string;
7
8
  supaAnon?: string;
9
+ /** Injectable for unit tests; defaults to invokeCapgoCliApi. */
10
+ invoke?: typeof invokeCapgoCliApi;
8
11
  }
9
12
  interface DeleteSpecificVersionOptions extends VersionOptions {
10
13
  autoUnlink?: boolean;
@@ -0,0 +1,9 @@
1
+ import type { AndroidOnboardingProgress, AndroidOnboardingStep } from '../types.js';
2
+ import type { PreparationTrackAction } from '../../ui/preparation-action.js';
3
+ export type AndroidKeystoreSource = 'generated' | 'imported';
4
+ export type AndroidKeyPasswordStatus = 'verified' | 'generated_with_keystore' | 'not_checked';
5
+ export type AndroidKeystoreFailureReason = 'generate_failed' | 'import_failed';
6
+ type TrackAction = PreparationTrackAction<AndroidOnboardingStep>;
7
+ export declare function trackPreparedAndroidKeystore(progress: AndroidOnboardingProgress, source: AndroidKeystoreSource, keyPassword: AndroidKeyPasswordStatus, journeyId: string, trackAction: TrackAction, reportedSuccesses: Set<string>): boolean;
8
+ export declare function trackAndroidKeystorePreparationFailure(source: AndroidKeystoreSource, keyPassword: AndroidKeyPasswordStatus, reason: AndroidKeystoreFailureReason, journeyId: string, trackAction: TrackAction): void;
9
+ export {};
@@ -33,7 +33,7 @@ export interface TrackBuilderOnboardingStepInput {
33
33
  errorCategory?: OnboardingErrorCategory | AndroidOnboardingErrorCategory;
34
34
  replaySessionId?: string;
35
35
  }
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';
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';
37
37
  export interface TrackBuilderOnboardingActionInput {
38
38
  apikey: string;
39
39
  appId: string;
@@ -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 TrackAction = (action: BuilderOnboardingAction, tags: Record<string, string>, step: OnboardingStep) => void;
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 {};
@@ -160,7 +160,7 @@ export declare const mcpRequestBuildInputSchema: z.ZodObject<{
160
160
  path: z.ZodOptional<z.ZodString>;
161
161
  nodeModules: z.ZodOptional<z.ZodString>;
162
162
  cache: z.ZodOptional<z.ZodBoolean>;
163
- cacheKey: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
163
+ cacheKey: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
164
164
  }, z.core.$strip>;
165
165
  export declare const mcpGenerateEncryptionKeysInputSchema: z.ZodObject<{
166
166
  force: z.ZodOptional<z.ZodBoolean>;
@@ -28,7 +28,7 @@ export declare const buildCredentialsSchema: z.ZodObject<{
28
28
  }, z.core.$catchall<z.ZodOptional<z.ZodString>>>;
29
29
  export type BuildCredentials = z.infer<typeof buildCredentialsSchema>;
30
30
  export declare const buildCacheOptionSchema: z.ZodOptional<z.ZodBoolean>;
31
- export declare const buildCacheKeyOptionSchema: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
31
+ export declare const buildCacheKeyOptionSchema: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
32
32
  export declare const buildRequestOptionsSchema: z.ZodObject<{
33
33
  apikey: z.ZodString;
34
34
  supaHost: z.ZodOptional<z.ZodString>;
@@ -111,7 +111,7 @@ export declare const buildRequestOptionsSchema: z.ZodObject<{
111
111
  failOnWarnings: z.ZodOptional<z.ZodBoolean>;
112
112
  builderJourneyId: z.ZodOptional<z.ZodString>;
113
113
  cache: z.ZodOptional<z.ZodBoolean>;
114
- cacheKey: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
114
+ cacheKey: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
115
115
  }, z.core.$strip>;
116
116
  export type BuildRequestOptions = z.infer<typeof buildRequestOptionsSchema>;
117
117
  export declare const buildNeededOptionsSchema: z.ZodObject<{
@@ -411,7 +411,7 @@ export declare const requestBuildOptionsSchema: z.ZodObject<{
411
411
  prescanSkip: z.ZodOptional<z.ZodArray<z.ZodString>>;
412
412
  prescanWarn: z.ZodOptional<z.ZodArray<z.ZodString>>;
413
413
  cache: z.ZodOptional<z.ZodBoolean>;
414
- cacheKey: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
414
+ cacheKey: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
415
415
  }, z.core.$strip>;
416
416
  export type RequestBuildOptions = z.infer<typeof requestBuildOptionsSchema>;
417
417
  export declare const currentBundleOptionsSchema: z.ZodObject<{