@capgo/cli 8.70.0 → 8.72.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/README.md +28 -1
- package/dist/index.js +766 -760
- package/dist/notify-app-ready-worker.js +1 -1
- package/dist/onboarding-worker.js +1 -1
- package/dist/package.json +1 -1
- package/dist/src/api/channels.d.ts +1 -0
- package/dist/src/bundle/upload-abandon-error.d.ts +25 -0
- package/dist/src/channel/promote.d.ts +12 -0
- package/dist/src/channel/set.d.ts +1 -1
- package/dist/src/mcp/tool-schemas.d.ts +8 -0
- package/dist/src/schemas/channel.d.ts +9 -0
- package/dist/src/schemas/index.d.ts +4 -4
- package/dist/src/schemas/sdk.d.ts +12 -0
- package/dist/src/sdk.d.ts +25 -2
- package/dist/src/sdk.js +373 -371
- package/dist/src/types/supabase.types.d.ts +5 -2
- package/dist/src/utils.d.ts +12 -2
- package/dist/updater-installed-worker.js +1 -1
- package/package.json +1 -1
- package/skills/release-management/SKILL.md +13 -0
- package/skills/usage/SKILL.md +1 -1
|
@@ -811,6 +811,7 @@ export type Database = {
|
|
|
811
811
|
ios: boolean;
|
|
812
812
|
name: string;
|
|
813
813
|
owner_org: string;
|
|
814
|
+
paused_at: string | null;
|
|
814
815
|
public: boolean;
|
|
815
816
|
auto_pause_action: string;
|
|
816
817
|
auto_pause_confidence: number;
|
|
@@ -851,6 +852,7 @@ export type Database = {
|
|
|
851
852
|
ios?: boolean;
|
|
852
853
|
name: string;
|
|
853
854
|
owner_org: string;
|
|
855
|
+
paused_at?: string | null;
|
|
854
856
|
public?: boolean;
|
|
855
857
|
auto_pause_action?: string;
|
|
856
858
|
auto_pause_confidence?: number;
|
|
@@ -891,6 +893,7 @@ export type Database = {
|
|
|
891
893
|
ios?: boolean;
|
|
892
894
|
name?: string;
|
|
893
895
|
owner_org?: string;
|
|
896
|
+
paused_at?: string | null;
|
|
894
897
|
public?: boolean;
|
|
895
898
|
auto_pause_action?: string;
|
|
896
899
|
auto_pause_confidence?: number;
|
|
@@ -5680,7 +5683,7 @@ export type Database = {
|
|
|
5680
5683
|
cron_task_type: "function" | "queue" | "function_queue";
|
|
5681
5684
|
disable_update: "major" | "minor" | "patch" | "version_number" | "none";
|
|
5682
5685
|
platform_os: "ios" | "android" | "electron";
|
|
5683
|
-
stats_action: "delete" | "reset" | "set" | "get" | "set_fail" | "update_fail" | "download_fail" | "windows_path_fail" | "canonical_path_fail" | "directory_path_fail" | "unzip_fail" | "low_mem_fail" | "download_10" | "download_20" | "download_30" | "download_40" | "download_50" | "download_60" | "download_70" | "download_80" | "download_90" | "download_complete" | "decrypt_fail" | "app_moved_to_foreground" | "app_moved_to_background" | "uninstall" | "needPlanUpgrade" | "missingBundle" | "noNew" | "disablePlatformIos" | "disablePlatformAndroid" | "disableAutoUpdateToMajor" | "cannotUpdateViaPrivateChannel" | "disableAutoUpdateToMinor" | "disableAutoUpdateToPatch" | "channelMisconfigured" | "disableAutoUpdateMetadata" | "disableAutoUpdateUnderNative" | "disableDevBuild" | "disableEmulator" | "cannotGetBundle" | "checksum_fail" | "NoChannelOrOverride" | "setChannel" | "getChannel" | "rateLimited" | "disableAutoUpdate" | "keyMismatch" | "ping" | "InvalidIp" | "blocked_by_server_url" | "download_manifest_start" | "download_manifest_complete" | "download_zip_start" | "download_zip_complete" | "download_manifest_file_fail" | "download_manifest_checksum_fail" | "download_manifest_brotli_fail" | "backend_refusal" | "download_0" | "disableProdBuild" | "disableDevice" | "disablePlatformElectron" | "customIdBlocked" | "app_crash" | "app_crash_native" | "app_anr" | "app_killed_low_memory" | "app_killed_excessive_resource_usage" | "app_initialization_failure" | "app_memory_warning" | "webview_javascript_error" | "webview_unhandled_rejection" | "webview_resource_error" | "webview_security_policy_violation" | "webview_unclean_restart" | "webview_render_process_gone" | "webview_content_process_terminated" | "os_version_changed" | "native_app_version_changed" | "app_nav";
|
|
5686
|
+
stats_action: "delete" | "reset" | "set" | "get" | "set_fail" | "update_fail" | "download_fail" | "windows_path_fail" | "canonical_path_fail" | "directory_path_fail" | "unzip_fail" | "low_mem_fail" | "download_10" | "download_20" | "download_30" | "download_40" | "download_50" | "download_60" | "download_70" | "download_80" | "download_90" | "download_complete" | "decrypt_fail" | "app_moved_to_foreground" | "app_moved_to_background" | "uninstall" | "needPlanUpgrade" | "missingBundle" | "noNew" | "disablePlatformIos" | "disablePlatformAndroid" | "disableAutoUpdateToMajor" | "cannotUpdateViaPrivateChannel" | "disableAutoUpdateToMinor" | "disableAutoUpdateToPatch" | "channelMisconfigured" | "disableAutoUpdateMetadata" | "disableAutoUpdateUnderNative" | "disableDevBuild" | "disableEmulator" | "cannotGetBundle" | "checksum_fail" | "NoChannelOrOverride" | "setChannel" | "getChannel" | "rateLimited" | "disableAutoUpdate" | "keyMismatch" | "ping" | "InvalidIp" | "blocked_by_server_url" | "download_manifest_start" | "download_manifest_complete" | "download_zip_start" | "download_zip_complete" | "download_manifest_file_fail" | "download_manifest_checksum_fail" | "download_manifest_brotli_fail" | "backend_refusal" | "download_0" | "disableProdBuild" | "disableDevice" | "disablePlatformElectron" | "customIdBlocked" | "app_crash" | "app_crash_native" | "app_anr" | "app_killed_low_memory" | "app_killed_excessive_resource_usage" | "app_initialization_failure" | "app_memory_warning" | "webview_javascript_error" | "webview_unhandled_rejection" | "webview_resource_error" | "webview_security_policy_violation" | "webview_unclean_restart" | "webview_render_process_gone" | "webview_content_process_terminated" | "os_version_changed" | "native_app_version_changed" | "app_nav" | "channelPaused";
|
|
5684
5687
|
stripe_status: "created" | "succeeded" | "updated" | "failed" | "deleted" | "canceled";
|
|
5685
5688
|
user_role: "read" | "upload" | "write" | "admin";
|
|
5686
5689
|
version_action: "get" | "fail" | "install" | "uninstall";
|
|
@@ -5781,7 +5784,7 @@ export declare const Constants: {
|
|
|
5781
5784
|
readonly cron_task_type: readonly ["function", "queue", "function_queue"];
|
|
5782
5785
|
readonly disable_update: readonly ["major", "minor", "patch", "version_number", "none"];
|
|
5783
5786
|
readonly platform_os: readonly ["ios", "android", "electron"];
|
|
5784
|
-
readonly stats_action: readonly ["delete", "reset", "set", "get", "set_fail", "update_fail", "download_fail", "windows_path_fail", "canonical_path_fail", "directory_path_fail", "unzip_fail", "low_mem_fail", "download_10", "download_20", "download_30", "download_40", "download_50", "download_60", "download_70", "download_80", "download_90", "download_complete", "decrypt_fail", "app_moved_to_foreground", "app_moved_to_background", "uninstall", "needPlanUpgrade", "missingBundle", "noNew", "disablePlatformIos", "disablePlatformAndroid", "disableAutoUpdateToMajor", "cannotUpdateViaPrivateChannel", "disableAutoUpdateToMinor", "disableAutoUpdateToPatch", "channelMisconfigured", "disableAutoUpdateMetadata", "disableAutoUpdateUnderNative", "disableDevBuild", "disableEmulator", "cannotGetBundle", "checksum_fail", "NoChannelOrOverride", "setChannel", "getChannel", "rateLimited", "disableAutoUpdate", "keyMismatch", "ping", "InvalidIp", "blocked_by_server_url", "download_manifest_start", "download_manifest_complete", "download_zip_start", "download_zip_complete", "download_manifest_file_fail", "download_manifest_checksum_fail", "download_manifest_brotli_fail", "backend_refusal", "download_0", "disableProdBuild", "disableDevice", "disablePlatformElectron", "customIdBlocked", "app_crash", "app_crash_native", "app_anr", "app_killed_low_memory", "app_killed_excessive_resource_usage", "app_initialization_failure", "app_memory_warning", "webview_javascript_error", "webview_unhandled_rejection", "webview_resource_error", "webview_security_policy_violation", "webview_unclean_restart", "webview_render_process_gone", "webview_content_process_terminated", "os_version_changed", "native_app_version_changed", "app_nav"];
|
|
5787
|
+
readonly stats_action: readonly ["delete", "reset", "set", "get", "set_fail", "update_fail", "download_fail", "windows_path_fail", "canonical_path_fail", "directory_path_fail", "unzip_fail", "low_mem_fail", "download_10", "download_20", "download_30", "download_40", "download_50", "download_60", "download_70", "download_80", "download_90", "download_complete", "decrypt_fail", "app_moved_to_foreground", "app_moved_to_background", "uninstall", "needPlanUpgrade", "missingBundle", "noNew", "disablePlatformIos", "disablePlatformAndroid", "disableAutoUpdateToMajor", "cannotUpdateViaPrivateChannel", "disableAutoUpdateToMinor", "disableAutoUpdateToPatch", "channelMisconfigured", "disableAutoUpdateMetadata", "disableAutoUpdateUnderNative", "disableDevBuild", "disableEmulator", "cannotGetBundle", "checksum_fail", "NoChannelOrOverride", "setChannel", "getChannel", "rateLimited", "disableAutoUpdate", "keyMismatch", "ping", "InvalidIp", "blocked_by_server_url", "download_manifest_start", "download_manifest_complete", "download_zip_start", "download_zip_complete", "download_manifest_file_fail", "download_manifest_checksum_fail", "download_manifest_brotli_fail", "backend_refusal", "download_0", "disableProdBuild", "disableDevice", "disablePlatformElectron", "customIdBlocked", "app_crash", "app_crash_native", "app_anr", "app_killed_low_memory", "app_killed_excessive_resource_usage", "app_initialization_failure", "app_memory_warning", "webview_javascript_error", "webview_unhandled_rejection", "webview_resource_error", "webview_security_policy_violation", "webview_unclean_restart", "webview_render_process_gone", "webview_content_process_terminated", "os_version_changed", "native_app_version_changed", "app_nav", "channelPaused"];
|
|
5785
5788
|
readonly stripe_status: readonly ["created", "succeeded", "updated", "failed", "deleted", "canceled"];
|
|
5786
5789
|
readonly user_role: readonly ["read", "upload", "write", "admin"];
|
|
5787
5790
|
readonly version_action: readonly ["get", "fail", "install", "uninstall"];
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -959,6 +959,7 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
959
959
|
ios: boolean;
|
|
960
960
|
name: string;
|
|
961
961
|
owner_org: string;
|
|
962
|
+
paused_at: string | null;
|
|
962
963
|
public: boolean;
|
|
963
964
|
auto_pause_action: string;
|
|
964
965
|
auto_pause_confidence: number;
|
|
@@ -999,6 +1000,7 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
999
1000
|
ios?: boolean;
|
|
1000
1001
|
name: string;
|
|
1001
1002
|
owner_org: string;
|
|
1003
|
+
paused_at?: string | null;
|
|
1002
1004
|
public?: boolean;
|
|
1003
1005
|
auto_pause_action?: string;
|
|
1004
1006
|
auto_pause_confidence?: number;
|
|
@@ -1039,6 +1041,7 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
1039
1041
|
ios?: boolean;
|
|
1040
1042
|
name?: string;
|
|
1041
1043
|
owner_org?: string;
|
|
1044
|
+
paused_at?: string | null;
|
|
1042
1045
|
public?: boolean;
|
|
1043
1046
|
auto_pause_action?: string;
|
|
1044
1047
|
auto_pause_confidence?: number;
|
|
@@ -3370,7 +3373,13 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
3370
3373
|
delivery_version?: string;
|
|
3371
3374
|
enabled?: boolean;
|
|
3372
3375
|
events: string[];
|
|
3373
|
-
id
|
|
3376
|
+
id
|
|
3377
|
+
/**
|
|
3378
|
+
* Simple compatibility check (backward compatible)
|
|
3379
|
+
*/
|
|
3380
|
+
? /**
|
|
3381
|
+
* Simple compatibility check (backward compatible)
|
|
3382
|
+
*/: string;
|
|
3374
3383
|
name: string;
|
|
3375
3384
|
org_id: string;
|
|
3376
3385
|
secret?: string;
|
|
@@ -5740,7 +5749,7 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
5740
5749
|
cron_task_type: "function" | "queue" | "function_queue";
|
|
5741
5750
|
disable_update: "major" | "minor" | "patch" | "version_number" | "none";
|
|
5742
5751
|
platform_os: "ios" | "android" | "electron";
|
|
5743
|
-
stats_action: "delete" | "reset" | "set" | "get" | "set_fail" | "update_fail" | "download_fail" | "windows_path_fail" | "canonical_path_fail" | "directory_path_fail" | "unzip_fail" | "low_mem_fail" | "download_10" | "download_20" | "download_30" | "download_40" | "download_50" | "download_60" | "download_70" | "download_80" | "download_90" | "download_complete" | "decrypt_fail" | "app_moved_to_foreground" | "app_moved_to_background" | "uninstall" | "needPlanUpgrade" | "missingBundle" | "noNew" | "disablePlatformIos" | "disablePlatformAndroid" | "disableAutoUpdateToMajor" | "cannotUpdateViaPrivateChannel" | "disableAutoUpdateToMinor" | "disableAutoUpdateToPatch" | "channelMisconfigured" | "disableAutoUpdateMetadata" | "disableAutoUpdateUnderNative" | "disableDevBuild" | "disableEmulator" | "cannotGetBundle" | "checksum_fail" | "NoChannelOrOverride" | "setChannel" | "getChannel" | "rateLimited" | "disableAutoUpdate" | "keyMismatch" | "ping" | "InvalidIp" | "blocked_by_server_url" | "download_manifest_start" | "download_manifest_complete" | "download_zip_start" | "download_zip_complete" | "download_manifest_file_fail" | "download_manifest_checksum_fail" | "download_manifest_brotli_fail" | "backend_refusal" | "download_0" | "disableProdBuild" | "disableDevice" | "disablePlatformElectron" | "customIdBlocked" | "app_crash" | "app_crash_native" | "app_anr" | "app_killed_low_memory" | "app_killed_excessive_resource_usage" | "app_initialization_failure" | "app_memory_warning" | "webview_javascript_error" | "webview_unhandled_rejection" | "webview_resource_error" | "webview_security_policy_violation" | "webview_unclean_restart" | "webview_render_process_gone" | "webview_content_process_terminated" | "os_version_changed" | "native_app_version_changed" | "app_nav";
|
|
5752
|
+
stats_action: "delete" | "reset" | "set" | "get" | "set_fail" | "update_fail" | "download_fail" | "windows_path_fail" | "canonical_path_fail" | "directory_path_fail" | "unzip_fail" | "low_mem_fail" | "download_10" | "download_20" | "download_30" | "download_40" | "download_50" | "download_60" | "download_70" | "download_80" | "download_90" | "download_complete" | "decrypt_fail" | "app_moved_to_foreground" | "app_moved_to_background" | "uninstall" | "needPlanUpgrade" | "missingBundle" | "noNew" | "disablePlatformIos" | "disablePlatformAndroid" | "disableAutoUpdateToMajor" | "cannotUpdateViaPrivateChannel" | "disableAutoUpdateToMinor" | "disableAutoUpdateToPatch" | "channelMisconfigured" | "disableAutoUpdateMetadata" | "disableAutoUpdateUnderNative" | "disableDevBuild" | "disableEmulator" | "cannotGetBundle" | "checksum_fail" | "NoChannelOrOverride" | "setChannel" | "getChannel" | "rateLimited" | "disableAutoUpdate" | "keyMismatch" | "ping" | "InvalidIp" | "blocked_by_server_url" | "download_manifest_start" | "download_manifest_complete" | "download_zip_start" | "download_zip_complete" | "download_manifest_file_fail" | "download_manifest_checksum_fail" | "download_manifest_brotli_fail" | "backend_refusal" | "download_0" | "disableProdBuild" | "disableDevice" | "disablePlatformElectron" | "customIdBlocked" | "app_crash" | "app_crash_native" | "app_anr" | "app_killed_low_memory" | "app_killed_excessive_resource_usage" | "app_initialization_failure" | "app_memory_warning" | "webview_javascript_error" | "webview_unhandled_rejection" | "webview_resource_error" | "webview_security_policy_violation" | "webview_unclean_restart" | "webview_render_process_gone" | "webview_content_process_terminated" | "os_version_changed" | "native_app_version_changed" | "app_nav" | "channelPaused";
|
|
5744
5753
|
stripe_status: "created" | "succeeded" | "updated" | "failed" | "deleted" | "canceled";
|
|
5745
5754
|
user_role: "read" | "upload" | "write" | "admin";
|
|
5746
5755
|
version_action: "get" | "fail" | "install" | "uninstall";
|
|
@@ -5864,6 +5873,7 @@ export declare function updateOrCreateChannel(supabase: SupabaseClient<Database>
|
|
|
5864
5873
|
ios: boolean;
|
|
5865
5874
|
name: string;
|
|
5866
5875
|
owner_org: string;
|
|
5876
|
+
paused_at: string | null;
|
|
5867
5877
|
public: boolean;
|
|
5868
5878
|
auto_pause_action: string;
|
|
5869
5879
|
auto_pause_confidence: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as SC}from"node:module";var OC=Object.create;var{getPrototypeOf:EC,defineProperty:E2,getOwnPropertyNames:IH,getOwnPropertyDescriptor:vC}=Object,JH=Object.prototype.hasOwnProperty;function XH(D){return this[D]}var VC,jC,h$=(D,$,U)=>{var I=D!=null&&typeof D==="object";if(I){var F=$?VC??=new WeakMap:jC??=new WeakMap,J=F.get(D);if(J)return J}U=D!=null?OC(EC(D)):{};let X=$||!D||!D.__esModule?E2(U,"default",{value:D,enumerable:!0}):U;for(let Q of IH(D))if(!JH.call(X,Q))E2(X,Q,{get:XH.bind(D,Q),enumerable:!0});if(I)F.set(D,X);return X},x0=(D)=>{var $=(FH??=new WeakMap).get(D),U;if($)return $;if($=E2({},"__esModule",{value:!0}),D&&typeof D==="object"||typeof D==="function"){for(var I of IH(D))if(!JH.call($,I))E2($,I,{get:XH.bind(D,I),enumerable:!(U=vC(D,I))||U.enumerable})}return FH.set(D,$),$},FH,C=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var AC=(D)=>D;function RC(D,$){this[D]=AC.bind(null,$)}var X$=(D,$)=>{for(var U in $)E2(D,U,{get:$[U],enumerable:!0,configurable:!0,set:RC.bind($,U)})};var T=(D,$)=>()=>(D&&($=D(D=0)),$);var o=SC(import.meta.url);var t$;var A1=T(()=>{t$={name:"@capgo/cli",type:"module",version:"8.70.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 && bun test/test-android-select-guard.mjs","test:android-keystore-action":"bun test/test-android-keystore-action.mjs","test:android-google-play-action":"bun test/test-android-google-play-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:bundle-pages":"bun test test/test-bundle-pages.test.ts","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-profile-action":"bun test/test-ios-profile-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:android-google-play-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-profile-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.5.4"},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 ZD;var Z6=T(()=>{ZD=class ZD extends Error{context;constructor(D,$){super(D);this.name="CliUserError",this.context=$}}});import{platform as bC}from"node:os";import{version as PC}from"node:process";function WH(D){YH=D}function uC(D){for(let $=0;$<D.length;$++)if(D.charCodeAt($)>255)return!1;return!0}function QH(D){if(D.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 kC(D){if(D.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(D.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 qF(D,$){if($===void 0||$===null){if(GF.has(D.toLowerCase()))throw new ZD(QH(D));throw new ZD(`HTTP header "${D}" is missing or invalid.`)}if(typeof $!=="string"){if(GF.has(D.toLowerCase()))throw new ZD(QH(D));throw new ZD(`HTTP header "${D}" is missing or invalid.`)}if(!uC($)){if(GF.has(D.toLowerCase()))throw new ZD(kC(D));throw new ZD(`HTTP header "${D}" contains invalid characters (only ASCII is allowed).`)}return $}function J0(D){let $={capgo_api:CC,"x-cli-version":t$.version,"x-cli-command":YH,"x-cli-node":PC,"x-cli-os":bC()};if(D)for(let[U,I]of Object.entries(D))$[U]=qF(U,I);return $}var CC="2025-10-01",YH="",GF;var d3=T(()=>{A1();Z6();GF=new Set(["authorization","capgkey","x-capgo-log-token"])});import{existsSync as V$}from"fs";var v2=(D=".",$="unknown")=>{let U=`${D}/bun.lockb`,I=`${D}/bun.lock`,F=`${D}/pnpm-lock.yaml`,J=`${D}/shrinkwrap.yaml`,X=`${D}/yarn.lock`,Q=`${D}/package-lock.json`,Y=`${D}/npm-shrinkwrap.json`;if(V$(U)||V$(I))return"bun";if(V$(F)||V$(J))return"pnpm";if(V$(X))return"yarn";if(V$(Q)||V$(Y))return"npm";return $},c3=(D=v2(),$=!1)=>{switch(D){case"bun":return $?"bun install":"install";case"pnpm":return $?"pnpm install":"install";case"yarn":return $?"yarn install":"install";case"npm":return $?"npm install":"install";case"unknown":return $?"unknown unknown":"unknown";default:return $?"npm install":"install"}},BH=(D=".",$="npx")=>{let U=`${D}/bun.lockb`,I=`${D}/bun.lock`,F=`${D}/pnpm-lock.yaml`,J=`${D}/shrinkwrap.yaml`,X=`${D}/yarn.lock`,Q=`${D}/package-lock.json`,Y=`${D}/npm-shrinkwrap.json`;if(V$(U)||V$(I))return"bunx";if(V$(F)||V$(J))return"pnpm exec";if(V$(X))return"yarn dlx";if(V$(Q)||V$(Y))return"npx";return $};var KH=()=>{};var GH,qH=(D)=>{return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510},HH=(D)=>{return D===8987||D===9001||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12771||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=19903||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D>=131072&&D<=196605||D>=196608&&D<=262141};var NH=T(()=>{GH=(()=>{let D=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return($)=>{let U=0;D.lastIndex=0;while(D.test($))U+=1;return $.length-U}})()});var _C,xC,LH,gC,zH,fC,yC,mC,wH=(D,$={},U={})=>{let I=$.limit??1/0,F=$.ellipsis??"",J=$?.ellipsisWidth??(F?wH(F,mC,U).width:0),X=0,Q=U.controlWidth??0,Y=U.tabWidth??8,W=U.emojiWidth??2,B=2,K=U.regularWidth??1,q=U.wideWidth??2,H=[[fC,K],[_C,0],[xC,Q],[gC,Y],[zH,W],[LH,q]],G=0,L=0,N=D.length,M=0,Z=!1,z=N,v=Math.max(0,I-J),A=0,V=0,b=0,y=0;D:while(!0){if(V>A||L>=N&&L>G){let _=D.slice(A,V)||D.slice(G,L);M=0;for(let n of _.replaceAll(yC,"")){let m=n.codePointAt(0)||0;if(qH(m))y=2;else if(HH(m))y=q;else y=K;if(b+y>v)z=Math.min(z,Math.max(A,G)+M);if(b+y>I){Z=!0;break D}M+=n.length,b+=y}A=V=0}if(L>=N)break D;for(let _=0,n=H.length;_<n;_++){let[m,UD]=H[_];if(m.lastIndex=L,m.test(D)){if(M=m===LH?GH(D.slice(L,m.lastIndex)):m===zH?1:m.lastIndex-L,y=M*UD,b+y>v)z=Math.min(z,L+Math.floor((v-b)/UD));if(b+y>I){Z=!0;break D}b+=y,A=G,V=L,L=G=m.lastIndex;continue D}}L+=1}return{width:Z?v:b,index:Z?z:N,truncated:Z,ellipsed:Z&&I>=J}},ZH;var MH=T(()=>{NH();_C=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,xC=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,LH=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,gC=/\t{1,1000}/y,zH=/[\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,fC=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,yC=/\p{M}+/gu,mC={limit:1/0,ellipsis:""},ZH=wH});var hC,nC=(D,$={})=>{return ZH(D,hC,$).width},X0;var HF=T(()=>{MH();hC={limit:1/0,ellipsis:"",ellipsisWidth:0},X0=nC});function g0(D,$,U){return String(D).normalize().split(pC).map((I)=>cC(I,$,U)).join(`
|
|
1
|
+
import{createRequire as SC}from"node:module";var OC=Object.create;var{getPrototypeOf:EC,defineProperty:E2,getOwnPropertyNames:IH,getOwnPropertyDescriptor:vC}=Object,JH=Object.prototype.hasOwnProperty;function XH(D){return this[D]}var VC,jC,h$=(D,$,U)=>{var I=D!=null&&typeof D==="object";if(I){var F=$?VC??=new WeakMap:jC??=new WeakMap,J=F.get(D);if(J)return J}U=D!=null?OC(EC(D)):{};let X=$||!D||!D.__esModule?E2(U,"default",{value:D,enumerable:!0}):U;for(let Q of IH(D))if(!JH.call(X,Q))E2(X,Q,{get:XH.bind(D,Q),enumerable:!0});if(I)F.set(D,X);return X},x0=(D)=>{var $=(FH??=new WeakMap).get(D),U;if($)return $;if($=E2({},"__esModule",{value:!0}),D&&typeof D==="object"||typeof D==="function"){for(var I of IH(D))if(!JH.call($,I))E2($,I,{get:XH.bind(D,I),enumerable:!(U=vC(D,I))||U.enumerable})}return FH.set(D,$),$},FH,C=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var AC=(D)=>D;function RC(D,$){this[D]=AC.bind(null,$)}var X$=(D,$)=>{for(var U in $)E2(D,U,{get:$[U],enumerable:!0,configurable:!0,set:RC.bind($,U)})};var T=(D,$)=>()=>(D&&($=D(D=0)),$);var o=SC(import.meta.url);var t$;var A1=T(()=>{t$={name:"@capgo/cli",type:"module",version:"8.72.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 && bun test/test-android-select-guard.mjs","test:android-keystore-action":"bun test/test-android-keystore-action.mjs","test:android-google-play-action":"bun test/test-android-google-play-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:bundle-pages":"bun test test/test-bundle-pages.test.ts","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-profile-action":"bun test/test-ios-profile-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:android-google-play-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-profile-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.5.4"},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 ZD;var Z6=T(()=>{ZD=class ZD extends Error{context;constructor(D,$){super(D);this.name="CliUserError",this.context=$}}});import{platform as bC}from"node:os";import{version as PC}from"node:process";function WH(D){YH=D}function uC(D){for(let $=0;$<D.length;$++)if(D.charCodeAt($)>255)return!1;return!0}function QH(D){if(D.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 kC(D){if(D.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(D.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 qF(D,$){if($===void 0||$===null){if(GF.has(D.toLowerCase()))throw new ZD(QH(D));throw new ZD(`HTTP header "${D}" is missing or invalid.`)}if(typeof $!=="string"){if(GF.has(D.toLowerCase()))throw new ZD(QH(D));throw new ZD(`HTTP header "${D}" is missing or invalid.`)}if(!uC($)){if(GF.has(D.toLowerCase()))throw new ZD(kC(D));throw new ZD(`HTTP header "${D}" contains invalid characters (only ASCII is allowed).`)}return $}function J0(D){let $={capgo_api:CC,"x-cli-version":t$.version,"x-cli-command":YH,"x-cli-node":PC,"x-cli-os":bC()};if(D)for(let[U,I]of Object.entries(D))$[U]=qF(U,I);return $}var CC="2025-10-01",YH="",GF;var d3=T(()=>{A1();Z6();GF=new Set(["authorization","capgkey","x-capgo-log-token"])});import{existsSync as V$}from"fs";var v2=(D=".",$="unknown")=>{let U=`${D}/bun.lockb`,I=`${D}/bun.lock`,F=`${D}/pnpm-lock.yaml`,J=`${D}/shrinkwrap.yaml`,X=`${D}/yarn.lock`,Q=`${D}/package-lock.json`,Y=`${D}/npm-shrinkwrap.json`;if(V$(U)||V$(I))return"bun";if(V$(F)||V$(J))return"pnpm";if(V$(X))return"yarn";if(V$(Q)||V$(Y))return"npm";return $},c3=(D=v2(),$=!1)=>{switch(D){case"bun":return $?"bun install":"install";case"pnpm":return $?"pnpm install":"install";case"yarn":return $?"yarn install":"install";case"npm":return $?"npm install":"install";case"unknown":return $?"unknown unknown":"unknown";default:return $?"npm install":"install"}},BH=(D=".",$="npx")=>{let U=`${D}/bun.lockb`,I=`${D}/bun.lock`,F=`${D}/pnpm-lock.yaml`,J=`${D}/shrinkwrap.yaml`,X=`${D}/yarn.lock`,Q=`${D}/package-lock.json`,Y=`${D}/npm-shrinkwrap.json`;if(V$(U)||V$(I))return"bunx";if(V$(F)||V$(J))return"pnpm exec";if(V$(X))return"yarn dlx";if(V$(Q)||V$(Y))return"npx";return $};var KH=()=>{};var GH,qH=(D)=>{return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510},HH=(D)=>{return D===8987||D===9001||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12771||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=19903||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D>=131072&&D<=196605||D>=196608&&D<=262141};var NH=T(()=>{GH=(()=>{let D=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return($)=>{let U=0;D.lastIndex=0;while(D.test($))U+=1;return $.length-U}})()});var _C,xC,LH,gC,zH,fC,yC,mC,wH=(D,$={},U={})=>{let I=$.limit??1/0,F=$.ellipsis??"",J=$?.ellipsisWidth??(F?wH(F,mC,U).width:0),X=0,Q=U.controlWidth??0,Y=U.tabWidth??8,W=U.emojiWidth??2,B=2,K=U.regularWidth??1,q=U.wideWidth??2,H=[[fC,K],[_C,0],[xC,Q],[gC,Y],[zH,W],[LH,q]],G=0,L=0,N=D.length,M=0,Z=!1,z=N,v=Math.max(0,I-J),A=0,V=0,b=0,y=0;D:while(!0){if(V>A||L>=N&&L>G){let _=D.slice(A,V)||D.slice(G,L);M=0;for(let n of _.replaceAll(yC,"")){let m=n.codePointAt(0)||0;if(qH(m))y=2;else if(HH(m))y=q;else y=K;if(b+y>v)z=Math.min(z,Math.max(A,G)+M);if(b+y>I){Z=!0;break D}M+=n.length,b+=y}A=V=0}if(L>=N)break D;for(let _=0,n=H.length;_<n;_++){let[m,UD]=H[_];if(m.lastIndex=L,m.test(D)){if(M=m===LH?GH(D.slice(L,m.lastIndex)):m===zH?1:m.lastIndex-L,y=M*UD,b+y>v)z=Math.min(z,L+Math.floor((v-b)/UD));if(b+y>I){Z=!0;break D}b+=y,A=G,V=L,L=G=m.lastIndex;continue D}}L+=1}return{width:Z?v:b,index:Z?z:N,truncated:Z,ellipsed:Z&&I>=J}},ZH;var MH=T(()=>{NH();_C=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,xC=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,LH=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,gC=/\t{1,1000}/y,zH=/[\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,fC=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,yC=/\p{M}+/gu,mC={limit:1/0,ellipsis:""},ZH=wH});var hC,nC=(D,$={})=>{return ZH(D,hC,$).width},X0;var HF=T(()=>{MH();hC={limit:1/0,ellipsis:"",ellipsisWidth:0},X0=nC});function g0(D,$,U){return String(D).normalize().split(pC).map((I)=>cC(I,$,U)).join(`
|
|
2
2
|
`)}var p3="\x1B",jH="",iC=39,LF="\x07",AH="[",lC="]",RH="m",zF,OH,EH=(D)=>{if(D>=30&&D<=37)return 39;if(D>=90&&D<=97)return 39;if(D>=40&&D<=47)return 49;if(D>=100&&D<=107)return 49;if(D===1||D===2)return 22;if(D===3)return 23;if(D===4)return 24;if(D===7)return 27;if(D===8)return 28;if(D===9)return 29;if(D===0)return 0;return},vH=(D)=>`${p3}${AH}${D}${RH}`,VH=(D)=>`${p3}${zF}${D}${LF}`,NF=(D,$,U)=>{let I=$[Symbol.iterator](),F=!1,J=!1,X=D.at(-1),Q=X===void 0?0:X0(X),Y=I.next(),W=I.next(),B=0;while(!Y.done){let K=Y.value,q=X0(K);if(Q+q<=U)D[D.length-1]+=K;else D.push(K),Q=0;if(K===p3||K===jH)F=!0,J=$.startsWith(zF,B+1);if(F){if(J){if(K===LF)F=!1,J=!1}else if(K===RH)F=!1}else if(Q+=q,Q===U&&!W.done)D.push(""),Q=0;Y=W,W=I.next(),B+=K.length}if(X=D.at(-1),!Q&&X!==void 0&&X.length&&D.length>1)D[D.length-2]+=D.pop()},dC=(D)=>{let $=D.split(" "),U=$.length;while(U){if(X0($[U-1]))break;U--}if(U===$.length)return D;return $.slice(0,U).join(" ")+$.slice(U).join("")},cC=(D,$,U={})=>{if(U.trim!==!1&&D.trim()==="")return"";let I="",F,J,X=D.split(" "),Q=[""],Y=0;for(let K=0;K<X.length;K++){let q=X[K];if(U.trim!==!1){let G=Q.at(-1)??"",L=G.trimStart();if(G.length!==L.length)Q[Q.length-1]=L,Y=X0(L)}if(K!==0){if(Y>=$&&(U.wordWrap===!1||U.trim===!1))Q.push(""),Y=0;if(Y||U.trim===!1)Q[Q.length-1]+=" ",Y++}let H=X0(q);if(U.hard&&H>$){let G=$-Y,L=1+Math.floor((H-G-1)/$);if(Math.floor((H-1)/$)<L)Q.push("");NF(Q,q,$),Y=X0(Q.at(-1)??"");continue}if(Y+H>$&&Y&&H){if(U.wordWrap===!1&&Y<$){NF(Q,q,$),Y=X0(Q.at(-1)??"");continue}Q.push(""),Y=0}if(Y+H>$&&U.wordWrap===!1){NF(Q,q,$),Y=X0(Q.at(-1)??"");continue}Q[Q.length-1]+=q,Y+=H}if(U.trim!==!1)Q=Q.map((K)=>dC(K));let W=Q.join(`
|
|
3
3
|
`),B=!1;for(let K=0;K<W.length;K++){let q=W[K];if(I+=q,!B){if(B=q>="\uD800"&&q<="\uDBFF",B)continue}else B=!1;if(q===p3||q===jH){OH.lastIndex=K+1;let G=OH.exec(W)?.groups;if(G?.code!==void 0){let L=Number.parseFloat(G.code);F=L===iC?void 0:L}else if(G?.uri!==void 0)J=G.uri.length===0?void 0:G.uri}if(W[K+1]===`
|
|
4
4
|
`){if(J)I+=VH("");let H=F?EH(F):void 0;if(F&&H)I+=vH(H)}else if(q===`
|
package/package.json
CHANGED
|
@@ -207,6 +207,19 @@ Use this skill for OTA update workflows in Capgo Cloud.
|
|
|
207
207
|
- `-c, --channel <channel>`
|
|
208
208
|
- `--quiet`
|
|
209
209
|
|
|
210
|
+
### `channel promote [fromChannel] [toChannel] [appId]`
|
|
211
|
+
|
|
212
|
+
- Example: `npx @capgo/cli@latest channel promote staging production com.example.app`
|
|
213
|
+
- Use to ship what a channel already serves (for example a validated `staging` or `preprod` bundle) to another channel without looking up the bundle version.
|
|
214
|
+
- Notes:
|
|
215
|
+
- Copies only the stable bundle linked to the source channel. Channel settings are not copied.
|
|
216
|
+
- Like `channel set --bundle`, a new stable bundle stops any rollout in progress on the target channel; the CLI warns when that happens.
|
|
217
|
+
- Runs the same native compatibility and RBAC checks as `channel set --bundle` on the target channel.
|
|
218
|
+
- Key options:
|
|
219
|
+
- `--ignore-metadata-check`
|
|
220
|
+
- `--accept-incompatible` (cannot be combined with `--ignore-metadata-check`)
|
|
221
|
+
- `--send-update-notification`
|
|
222
|
+
|
|
210
223
|
### `channel set [channelId] [appId]`
|
|
211
224
|
|
|
212
225
|
- Alias: `s`
|
package/skills/usage/SKILL.md
CHANGED
|
@@ -76,7 +76,7 @@ Load `skills/release-management/SKILL.md` when working with:
|
|
|
76
76
|
|
|
77
77
|
- `bundle upload`, `bundle list`, `bundle delete`, `bundle cleanup`
|
|
78
78
|
- `bundle compatibility`, `bundle releaseType`, `bundle zip`, `bundle encrypt`, `bundle decrypt`
|
|
79
|
-
- `channel add`, `channel list`, `channel delete`, `channel set`, `channel currentBundle`
|
|
79
|
+
- `channel add`, `channel list`, `channel delete`, `channel set`, `channel promote`, `channel currentBundle`
|
|
80
80
|
- `get-qr`
|
|
81
81
|
- `key save`, `key create`, `key delete_old`
|
|
82
82
|
|