@capgo/cli 8.47.0 → 8.48.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
3
  "type": "module",
4
- "version": "8.47.0",
4
+ "version": "8.48.0",
5
5
  "description": "A CLI to upload to capgo servers",
6
6
  "author": "Martin martin@capgo.app",
7
7
  "license": "Apache 2.0",
@@ -176,7 +176,7 @@
176
176
  "test:android-version": "bun test/test-android-version.mjs",
177
177
  "test:platform-flow-contract": "bun test/test-platform-flow-contract.mjs",
178
178
  "test:tail-engine-shared": "bun test/test-tail-engine-shared.mjs",
179
- "test": "bun run build && bun run test:helper-dce && bun run test:version-detection:setup && bun run test:bundle && 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: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: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: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-list-output-text && 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: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-add-exists && bun run test:wait-log && bun run test:init-guardrails && 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-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-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",
179
+ "test": "bun run build && bun run test:helper-dce && bun run test:version-detection:setup && bun run test:bundle && 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: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: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: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-list-output-text && 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: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-add-exists && bun run test:wait-log && bun run test:init-guardrails && 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-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",
180
180
  "test:build-platform-selection": "bun test/test-build-platform-selection.mjs",
181
181
  "test:builder-project-discovery": "bun test/test-builder-project-discovery.mjs",
182
182
  "test:ai-log-capture": "bun test/test-ai-log-capture.mjs",
@@ -207,6 +207,7 @@
207
207
  "test:mcp-live-update-onboarding": "bun test/test-mcp-live-update-onboarding.mjs",
208
208
  "test:app-set-options": "bun test/test-app-set-options.mjs && bun test/test-app-list-options.mjs",
209
209
  "test:android-reporting-api": "bun test/test-android-reporting-api.mjs",
210
+ "test:android-gcp": "bun test/test-android-gcp.mjs",
210
211
  "test:android-app-verification": "bun test/test-android-app-verification.mjs",
211
212
  "test:android-rename": "bun test/test-android-rename.mjs",
212
213
  "test:appflow-auth": "bun test/test-appflow-auth.mjs",
@@ -104,7 +104,8 @@ export declare function pollOperation(accessToken: string, operationName: string
104
104
  *
105
105
  * - 4–30 characters
106
106
  * - allowed chars: letters, digits, space, hyphen (`-`), apostrophe (`'`),
107
- * exclamation (`!`), period (`.`)
107
+ * exclamation (`!`) periods (`.`) are **not** allowed (appIds like
108
+ * `com.example.app` must be normalized before submit)
108
109
  * - must start and end with a letter or digit
109
110
  *
110
111
  * We strip any disallowed character (including em-dashes — which break the
@@ -24,7 +24,8 @@ export declare function uploadBundleInternal(preAppid: string, options: OptionsU
24
24
  /**
25
25
  * Validate mutually-exclusive and dependent upload options, failing fast (via
26
26
  * `uploadFail`) before any network call. Exported so the option-conflict guards
27
- * (e.g. `--fail-on-incompatible` + `--ignore-metadata-check`) can be unit-tested
27
+ * (e.g. `--fail-on-incompatible` + `--ignore-metadata-check`, or
28
+ * `--accept-incompatible` + `--fail-on-incompatible`) can be unit-tested
28
29
  * directly.
29
30
  */
30
31
  export declare function checkValidOptions(options: OptionsUpload): void;
@@ -1,4 +1,18 @@
1
1
  import type { OptionsSetChannel } from '../schemas/channel';
2
+ import type { Compatibility } from '../utils';
2
3
  export type { OptionsSetChannel } from '../schemas/channel';
4
+ /**
5
+ * Warn (and optionally throw) when a bundle's native packages don't match the
6
+ * channel. `--accept-incompatible` continues after the warning so callers can
7
+ * mark a handled mismatch (runtime plugin guards, etc.).
8
+ */
9
+ export declare function rejectOrAcceptIncompatibleChannelBundle(params: {
10
+ silent: boolean;
11
+ acceptIncompatible?: boolean;
12
+ incompatible: boolean;
13
+ finalCompatibility: Compatibility[];
14
+ heading: string;
15
+ errorMessage: string;
16
+ }): void;
3
17
  export declare function setChannelInternal(channel: string, appId: string, options: OptionsSetChannel, silent?: boolean): Promise<boolean>;
4
18
  export declare function setChannel(channel: string, appId: string, options: OptionsSetChannel): Promise<boolean>;
@@ -33,6 +33,7 @@ export declare const mcpUploadBundleInputSchema: z.ZodObject<{
33
33
  ai: "ai";
34
34
  }>>;
35
35
  encrypt: z.ZodOptional<z.ZodBoolean>;
36
+ acceptIncompatible: z.ZodOptional<z.ZodBoolean>;
36
37
  capacitorConfig: z.ZodOptional<z.ZodString>;
37
38
  }, z.core.$strip>;
38
39
  export declare const mcpListBundlesInputSchema: z.ZodObject<{
@@ -100,6 +101,7 @@ export declare const mcpUpdateChannelInputSchema: z.ZodObject<{
100
101
  notify: "notify";
101
102
  }>>;
102
103
  autoPauseCooldownMinutes: z.ZodOptional<z.ZodNumber>;
104
+ acceptIncompatible: z.ZodOptional<z.ZodBoolean>;
103
105
  }, z.core.$strip>;
104
106
  export declare const mcpDeleteChannelInputSchema: z.ZodObject<{
105
107
  appId: z.ZodString;
@@ -39,6 +39,7 @@ export declare const optionsUploadSchema: z.ZodObject<{
39
39
  }>>;
40
40
  ignoreMetadataCheck: z.ZodOptional<z.ZodBoolean>;
41
41
  failOnIncompatible: z.ZodOptional<z.ZodBoolean>;
42
+ acceptIncompatible: z.ZodOptional<z.ZodBoolean>;
42
43
  ignoreChecksumCheck: z.ZodOptional<z.ZodBoolean>;
43
44
  forceCrc32Checksum: z.ZodOptional<z.ZodBoolean>;
44
45
  timeout: z.ZodOptional<z.ZodNumber>;
@@ -67,6 +67,7 @@ export declare const optionsSetChannelSchema: z.ZodObject<{
67
67
  prod: z.ZodOptional<z.ZodBoolean>;
68
68
  packageJson: z.ZodOptional<z.ZodString>;
69
69
  ignoreMetadataCheck: z.ZodOptional<z.ZodBoolean>;
70
+ acceptIncompatible: z.ZodOptional<z.ZodBoolean>;
70
71
  qrPreview: z.ZodOptional<z.ZodBoolean>;
71
72
  sendUpdateNotification: z.ZodOptional<z.ZodBoolean>;
72
73
  rolloutBundle: z.ZodOptional<z.ZodString>;
@@ -77,6 +77,7 @@ export declare const uploadOptionsSchema: z.ZodObject<{
77
77
  selfAssign: z.ZodOptional<z.ZodBoolean>;
78
78
  packageJsonPaths: z.ZodOptional<z.ZodString>;
79
79
  ignoreCompatibilityCheck: z.ZodOptional<z.ZodBoolean>;
80
+ acceptIncompatible: z.ZodOptional<z.ZodBoolean>;
80
81
  disableCodeCheck: z.ZodOptional<z.ZodBoolean>;
81
82
  useZip: z.ZodOptional<z.ZodBoolean>;
82
83
  capacitorConfig: z.ZodOptional<z.ZodString>;
@@ -194,6 +195,7 @@ export declare const updateChannelOptionsBaseSchema: z.ZodObject<{
194
195
  notify: "notify";
195
196
  }>>;
196
197
  autoPauseCooldownMinutes: z.ZodOptional<z.ZodNumber>;
198
+ acceptIncompatible: z.ZodOptional<z.ZodBoolean>;
197
199
  apikey: z.ZodOptional<z.ZodString>;
198
200
  supaHost: z.ZodOptional<z.ZodString>;
199
201
  supaAnon: z.ZodOptional<z.ZodString>;
@@ -242,6 +244,7 @@ export declare const updateChannelOptionsSchema: z.ZodObject<{
242
244
  notify: "notify";
243
245
  }>>;
244
246
  autoPauseCooldownMinutes: z.ZodOptional<z.ZodNumber>;
247
+ acceptIncompatible: z.ZodOptional<z.ZodBoolean>;
245
248
  apikey: z.ZodOptional<z.ZodString>;
246
249
  supaHost: z.ZodOptional<z.ZodString>;
247
250
  supaAnon: z.ZodOptional<z.ZodString>;