@capgo/cli 7.124.3 → 7.124.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -91,7 +91,7 @@ Expecting one of '${B.join("', '")}'`);if(this._lifeCycleHooks[A])this._lifeCycl
91
91
  `),this.outputHelp({error:!0});let B=Q||{},I=B.exitCode||1,E=B.code||"commander.error";this._exit(I,E,A)}_parseOptionsEnv(){this.options.forEach((A)=>{if(A.envVar&&A.envVar in CI.env){let Q=A.attributeName();if(this.getOptionValue(Q)===void 0||["default","config","env"].includes(this.getOptionValueSource(Q)))if(A.required||A.optional)this.emit(`optionEnv:${A.name()}`,CI.env[A.envVar]);else this.emit(`optionEnv:${A.name()}`)}})}_parseOptionsImplied(){let A=new ZcA(this.options),Q=(B)=>{return this.getOptionValue(B)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(B))};this.options.filter((B)=>B.implied!==void 0&&Q(B.attributeName())&&A.valueFromOption(this.getOptionValue(B.attributeName()),B)).forEach((B)=>{Object.keys(B.implied).filter((I)=>!Q(I)).forEach((I)=>{this.setOptionValueWithSource(I,B.implied[I],"implied")})})}missingArgument(A){let Q=`error: missing required argument '${A}'`;this.error(Q,{code:"commander.missingArgument"})}optionMissingArgument(A){let Q=`error: option '${A.flags}' argument missing`;this.error(Q,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(A){let Q=`error: required option '${A.flags}' not specified`;this.error(Q,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(A,Q){let B=($)=>{let G=$.attributeName(),D=this.getOptionValue(G),Y=this.options.find((H)=>H.negate&&G===H.attributeName()),X=this.options.find((H)=>!H.negate&&G===H.attributeName());if(Y&&(Y.presetArg===void 0&&D===!1||Y.presetArg!==void 0&&D===Y.presetArg))return Y;return X||$},I=($)=>{let G=B($),D=G.attributeName();if(this.getOptionValueSource(D)==="env")return`environment variable '${G.envVar}'`;return`option '${G.flags}'`},E=`error: ${I(A)} cannot be used with ${I(Q)}`;this.error(E,{code:"commander.conflictingOption"})}unknownOption(A){if(this._allowUnknownOption)return;let Q="";if(A.startsWith("--")&&this._showSuggestionAfterError){let I=[],E=this;do{let $=E.createHelp().visibleOptions(E).filter((G)=>G.long).map((G)=>G.long);I=I.concat($),E=E.parent}while(E&&!E._enablePositionalOptions);Q=pIA(A,I)}let B=`error: unknown option '${A}'${Q}`;this.error(B,{code:"commander.unknownOption"})}_excessArguments(A){if(this._allowExcessArguments)return;let Q=this.registeredArguments.length,B=Q===1?"":"s",E=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${Q} argument${B} but got ${A.length}.`;this.error(E,{code:"commander.excessArguments"})}unknownCommand(){let A=this.args[0],Q="";if(this._showSuggestionAfterError){let I=[];this.createHelp().visibleCommands(this).forEach((E)=>{if(I.push(E.name()),E.alias())I.push(E.alias())}),Q=pIA(A,I)}let B=`error: unknown command '${A}'${Q}`;this.error(B,{code:"commander.unknownCommand"})}version(A,Q,B){if(A===void 0)return this._version;this._version=A,Q=Q||"-V, --version",B=B||"output the version number";let I=this.createOption(Q,B);return this._versionOptionName=I.attributeName(),this._registerOption(I),this.on("option:"+I.name(),()=>{this._outputConfiguration.writeOut(`${A}
92
92
  `),this._exit(0,"commander.version",A)}),this}description(A,Q){if(A===void 0&&Q===void 0)return this._description;if(this._description=A,Q)this._argsDescription=Q;return this}summary(A){if(A===void 0)return this._summary;return this._summary=A,this}alias(A){if(A===void 0)return this._aliases[0];let Q=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)Q=this.commands[this.commands.length-1];if(A===Q._name)throw Error("Command alias can't be the same as its name");let B=this.parent?._findCommand(A);if(B){let I=[B.name()].concat(B.aliases()).join("|");throw Error(`cannot add alias '${A}' to command '${this.name()}' as already have command '${I}'`)}return Q._aliases.push(A),this}aliases(A){if(A===void 0)return this._aliases;return A.forEach((Q)=>this.alias(Q)),this}usage(A){if(A===void 0){if(this._usage)return this._usage;let Q=this.registeredArguments.map((B)=>{return WcA(B)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?Q:[]).join(" ")}return this._usage=A,this}name(A){if(A===void 0)return this._name;return this._name=A,this}helpGroup(A){if(A===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=A,this}commandsGroup(A){if(A===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=A,this}optionsGroup(A){if(A===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=A,this}_initOptionGroup(A){if(this._defaultOptionGroup&&!A.helpGroupHeading)A.helpGroup(this._defaultOptionGroup)}_initCommandGroup(A){if(this._defaultCommandGroup&&!A.helpGroup())A.helpGroup(this._defaultCommandGroup)}nameFromFilename(A){return this._name=E9.basename(A,E9.extname(A)),this}executableDir(A){if(A===void 0)return this._executableDir;return this._executableDir=A,this}helpInformation(A){let Q=this.createHelp(),B=this._getOutputContext(A);Q.prepareContext({error:B.error,helpWidth:B.helpWidth,outputHasColors:B.hasColors});let I=Q.formatHelp(this,Q);if(B.hasColors)return I;return this._outputConfiguration.stripColor(I)}_getOutputContext(A){A=A||{};let Q=!!A.error,B,I,E;if(Q)B=(G)=>this._outputConfiguration.writeErr(G),I=this._outputConfiguration.getErrHasColors(),E=this._outputConfiguration.getErrHelpWidth();else B=(G)=>this._outputConfiguration.writeOut(G),I=this._outputConfiguration.getOutHasColors(),E=this._outputConfiguration.getOutHelpWidth();return{error:Q,write:(G)=>{if(!I)G=this._outputConfiguration.stripColor(G);return B(G)},hasColors:I,helpWidth:E}}outputHelp(A){let Q;if(typeof A==="function")Q=A,A=void 0;let B=this._getOutputContext(A),I={error:B.error,write:B.write,command:this};this._getCommandAndAncestors().reverse().forEach(($)=>$.emit("beforeAllHelp",I)),this.emit("beforeHelp",I);let E=this.helpInformation({error:B.error});if(Q){if(E=Q(E),typeof E!=="string"&&!Buffer.isBuffer(E))throw Error("outputHelp callback must return a string or a Buffer")}if(B.write(E),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",I),this._getCommandAndAncestors().forEach(($)=>$.emit("afterAllHelp",I))}helpOption(A,Q){if(typeof A==="boolean"){if(A){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption(A??"-h, --help",Q??"display help for command"),A||Q)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(A){return this._helpOption=A,this._initOptionGroup(A),this}help(A){this.outputHelp(A);let Q=Number(CI.exitCode??0);if(Q===0&&A&&typeof A!=="function"&&A.error)Q=1;this._exit(Q,"commander.help","(outputHelp)")}addHelpText(A,Q){let B=["beforeAll","before","after","afterAll"];if(!B.includes(A))throw Error(`Unexpected value for position to addHelpText.
93
93
  Expecting one of '${B.join("', '")}'`);let I=`${A}Help`;return this.on(I,(E)=>{let $;if(typeof Q==="function")$=Q({error:E.error,command:E.command});else $=Q;if($)E.write(`${$}
94
- `)}),this}_outputHelpIfRequested(A){let Q=this._getHelpOption();if(Q&&A.find((I)=>Q.is(I)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function nIA(A){return A.map((Q)=>{if(!Q.startsWith("--inspect"))return Q;let B,I="127.0.0.1",E="9229",$;if(($=Q.match(/^(--inspect(-brk)?)$/))!==null)B=$[1];else if(($=Q.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(B=$[1],/^\d+$/.test($[3]))E=$[3];else I=$[3];else if(($=Q.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)B=$[1],I=$[3],E=$[4];if(B&&E!=="0")return`${B}=${I}:${parseInt(E)+1}`;return Q})}function nb(){if(CI.env.NO_COLOR||CI.env.FORCE_COLOR==="0"||CI.env.FORCE_COLOR==="false")return!1;if(CI.env.FORCE_COLOR||CI.env.CLICOLOR_FORCE!==void 0)return!0;return}McA.Command=ib;McA.useColor=nb});var sIA=x((wcA)=>{var{Argument:rIA}=OO(),{Command:rb}=iIA(),{CommanderError:LcA,InvalidArgumentError:oIA}=$q(),{Help:OcA}=cb(),{Option:aIA}=lb();wcA.program=new rb;wcA.createCommand=(A)=>new rb(A);wcA.createOption=(A,Q)=>new aIA(A,Q);wcA.createArgument=(A,Q)=>new rIA(A,Q);wcA.Command=rb;wcA.Option=aIA;wcA.Argument=rIA;wcA.Help=OcA;wcA.CommanderError=LcA;wcA.InvalidArgumentError=oIA;wcA.InvalidOptionArgumentError=oIA});var $E;var $9=vA(()=>{$E={name:"@capgo/cli",type:"module",version:"7.124.3",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:"git+https://github.com/Cap-go/capgo.git",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:bundle":"bun test/test-bundle.mjs","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:credentials":"bun test/test-credentials.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:ci-prompts":"bun test/test-ci-prompts.mjs","test:ci-secrets":"bun test/test-ci-secrets.mjs","test:android-onboarding-progress":"bun test/test-android-onboarding-progress.mjs","test:onboarding-telemetry":"bun test/test-onboarding-telemetry.mjs","test:v2-event-migration":"bun test/test-v2-event-migration.mjs","test:analytics":"bun test/test-analytics.mjs","test: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:mcp-analytics":"bun test/test-mcp-analytics.mjs","test:app-created-source":"bun test/test-app-created-source.mjs","test:doctor-analytics":"bun test/test-doctor-analytics.mjs","test:posthog-exception":"bun test/test-posthog-exception.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:init-guardrails":"bun test/test-init-guardrails.mjs","test:prompt-preferences":"bun test/test-prompt-preferences.mjs","test:esm-sdk":"node test/test-sdk-esm.mjs","test:mcp":"node test/test-mcp.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:payload-split":"bun test/test-payload-split.mjs","test:macos-signing":"bun test/test-macos-signing.mjs","test:apple-api-import-helpers":"bun test/test-apple-api-import-helpers.mjs","test:bundle-id-detector":"bun test/test-bundle-id-detector.mjs","test:manifest-path-encoding":"bun test/test-manifest-path-encoding.mjs",test:"bun run build && bun run test:version-detection:setup && bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:fail-on-incompatible && bun run test:credentials && 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: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:analytics-error-category && bun run test:analytics-org-resolver && bun run test:supabase-perf && bun run test:mcp-analytics && bun run test:app-created-source && bun run test:doctor-analytics && bun run test:posthog-exception && bun run test:build-platform-selection && 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-app-conflict && bun run test:init-guardrails && bun run test:prompt-preferences && bun run test:esm-sdk && bun run test:mcp && bun run test:version-detection && bun run test:platform-paths && bun run test:payload-split && bun run test:manifest-path-encoding && bun run test:macos-signing && bun run test:apple-api-import-helpers && bun run test:bundle-id-detector && bun run test:ai-log-capture && bun run test:ai-analyze-flow && bun run test:ai-render-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","test:build-platform-selection":"bun test/test-build-platform-selection.mjs","test:ai-log-capture":"bun test/test-ai-log-capture.mjs","test:ai-analyze-flow":"bun test/test-ai-analyze-flow.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"},dependencies:{"@inkjs/ui":"^2.0.0",ink:"^7.0.4","ink-spinner":"^5.0.0",jsonwebtoken:"^9.0.3","node-forge":"^1.4.0",qrcode:"^1.5.4",react:"^19.2.6","string-width":"^8.2.1"},devDependencies:{"@antfu/eslint-config":"^9.0.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.6","@capacitor/cli":"^8.3.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.8","@supabase/supabase-js":"^2.106.2","@tanstack/intent":"^0.0.41","@types/adm-zip":"^0.5.8","@types/jsonwebtoken":"^9.0.10","@types/node":"^25.9.1","@types/node-forge":"^1.3.14","@types/prettyjson":"^0.0.33","@types/qrcode":"^1.5.6","@types/react":"^19.2.15","@types/tmp":"^0.2.6","@types/ws":"^8.18.1","@typescript/native-preview":"7.0.0-dev.20260526.1","@vercel/ncc":"^0.38.4","@xterm/headless":"^6.0.0","adm-zip":"^0.5.17","ci-info":"^4.4.0",commander:"^14.0.3",eslint:"^10.4.0","git-format-staged":"4.0.1",husky:"^9.1.7","is-wsl":"^3.1.1",micromatch:"^4.0.8",open:"^11.0.0",oxlint:"^1.67.0",partysocket:"^1.1.19",prettyjson:"^1.2.5",tmp:"^0.2.6","tus-js-client":"^4.3.1",typescript:"^6.0.3",ws:"^8.21.0",zod:"^4.4.3"}}});function ycA(A){if(A&&typeof A==="object"&&"status"in A){let Q=A.status;if(typeof Q==="number")return Q}return}function fcA(A){if(A instanceof Error)return A.message;if(typeof A==="string")return A;return""}function Gq(A){if(A&&typeof A==="object"&&"code"in A){let I=A.code;if(typeof I==="string"&&I.startsWith("commander."))return"commander"}let Q=ycA(A);if(Q!==void 0){if(Q===401)return"unauthorized";if(Q===403)return"forbidden";if(Q===404)return"not_found";if(Q===413)return"payload_too_large";if(Q>=500)return"server_error"}let B=fcA(A).toLowerCase();if(/econnrefused|enotfound|fetch failed|network|socket|dns/.test(B))return"network_error";if(/timed out|timeout|etimedout|aborted/.test(B))return"timeout";if(/invalid|must be|required|not allowed|malformed|validation/.test(B))return"validation_error";return"unknown"}function eIA(A){if(A===401)return"unauthorized";if(A===403)return"forbidden";if(A===404)return"not_found";if(A===408||A===504)return"timeout";if(A===413)return"payload_too_large";if(A===429)return"rate_limited";if(A===400||A===422)return"validation_error";if(A>=500)return"server_error";return"unknown"}import{AsyncLocalStorage as hcA}from"node:async_hooks";function Dq(A,Q){return Q1A.run(A,()=>Promise.resolve(Q()))}function ucA(){return Q1A.getStore()}function Jq(){B1A=!0}function I1A(){return B1A}function $1A(A){E1A=A}function A1A(A){try{E1A?.(A)}catch{}}function D1A(A,Q){let B;try{B=new URL(A).pathname}catch{B=A.split("?")[0]}let I="/functions/v1/",E=B.indexOf(I);if(E>=0){let X=B.slice(E+I.length).replace(/^\/+|\/+$/g,"");return X?`${Q} functions:${X}`:`${Q} functions`}let $="/rest/v1/",G=B.indexOf($),D=G>=0?B.slice(G+$.length):B.replace(/^\//,"");if(D.startsWith("rpc/"))return`rpc:${D.slice(4).split("/")[0]}`;let Y=D.split("/")[0]||B;return`${Q} ${Y}`}function mcA(A){let Q=A?.headers;if(!Q)return;let B=Q.get;if(typeof B==="function")return B.call(Q,"capgkey")??void 0;if(Array.isArray(Q))return Q.find(([I])=>I.toLowerCase()==="capgkey")?.[1];return Q.capgkey}function J1A(){return async(Q,B)=>{let I=(B?.method??"GET").toUpperCase(),E=typeof Q==="string"?Q:Q instanceof URL?Q.href:Q.url,$=ucA(),G=mcA(B),D=Date.now();try{let Y=await globalThis.fetch(Q,B);return A1A({url:E,method:I,status:Y.status,ok:Y.ok,durationMs:Date.now()-D,source:$,apikey:G}),Y}catch(Y){throw A1A({url:E,method:I,status:0,ok:!1,durationMs:Date.now()-D,source:$,apikey:G,error:Y}),Y}}}var Q1A,B1A=!1,E1A,G1A=5000;var Yq=vA(()=>{Q1A=new hcA});var Y1A=x((qlQ,ccA)=>{ccA.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Alpic",constant:"ALPIC",env:"ALPIC_HOST"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE",pr:{env:"AC_GIT_PR",ne:"false"}},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN",pr:{env:"CODEBUILD_WEBHOOK_EVENT",any:["PULL_REQUEST_CREATED","PULL_REQUEST_UPDATED","PULL_REQUEST_REOPENED"]}},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Cloudflare Pages",constant:"CLOUDFLARE_PAGES",env:"CF_PAGES"},{name:"Cloudflare Workers",constant:"CLOUDFLARE_WORKERS",env:"WORKERS_CI"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var sb=x((ob)=>{var U1A=Y1A(),LE=process.env;Object.defineProperty(ob,"_vendors",{value:U1A.map(function(A){return A.constant})});ob.name=null;ob.isPR=null;ob.id=null;if(LE.CI!=="false")U1A.forEach(function(A){let B=(Array.isArray(A.env)?A.env:[A.env]).every(function(I){return X1A(I)});if(ob[A.constant]=B,!B)return;ob.name=A.name,ob.isPR=lcA(A),ob.id=A.constant});ob.isCI=!!(LE.CI!=="false"&&(LE.BUILD_ID||LE.BUILD_NUMBER||LE.CI||LE.CI_APP_ID||LE.CI_BUILD_ID||LE.CI_BUILD_NUMBER||LE.CI_NAME||LE.CONTINUOUS_INTEGRATION||LE.RUN_ID||ob.name||!1));function X1A(A){if(typeof A==="string")return!!LE[A];if("env"in A)return LE[A.env]&&LE[A.env].includes(A.includes);if("any"in A)return A.any.some(function(Q){return!!LE[Q]});return Object.keys(A).every(function(Q){return LE[Q]===A[Q]})}function lcA(A){switch(typeof A.pr){case"string":return!!LE[A.pr];case"object":if("env"in A.pr)if("any"in A.pr)return A.pr.any.some(function(Q){return LE[A.pr.env]===Q});else return A.pr.env in LE&&LE[A.pr.env]!==A.pr.ne;else if("any"in A.pr)return A.pr.any.some(function(Q){return!!LE[Q]});else return X1A(A.pr);default:return null}}});import{homedir as C1A,platform as pcA,release as ncA}from"node:os";import{arch as icA,cwd as W1A,env as dU,version as rcA}from"node:process";function Uq(A){return A==="1"||A?.toLowerCase()==="true"||A?.toLowerCase()==="yes"}function tcA(){if(Uq(dU.CAPGO_DISABLE_TELEMETRY)||Uq(dU.CAPGO_DISABLE_POSTHOG))return;return dU.CAPGO_CLI_POSTHOG_API_KEY?.trim()||dU.POSTHOG_API_KEY?.trim()||acA}function ecA(A){let Q=A.replace(/\/+$/,"");if(Q.endsWith("/i/v0/e"))return`${Q}/`;let B=Q.replace(/\/capture$/,"/");return new URL("i/v0/e/",B.endsWith("/")?B:`${B}/`).toString()}function AlA(A){if(A instanceof Error)return{cause:A.cause,message:A.message,name:A.name||"Error",stack:A.stack};if(typeof A==="string")return{message:A,name:"Error",stack:void 0};try{return{message:JSON.stringify(A)??String(A),name:"Error",stack:void 0}}catch{return{message:String(A),name:"Error",stack:void 0}}}function QlA(A){let Q=A,B=W1A(),I=C1A();if(B)Q=Q.replaceAll(B,"<cwd>");if(I)Q=Q.replaceAll(I,"~");return Q}function BlA(A){let Q=A,B=W1A(),I=C1A();if(B)Q=Q.replaceAll(B,"<cwd>");if(I)Q=Q.replaceAll(I,"~");return Q.replace(/<cwd>\/[^\s"',)]+/g,"<cwd>/<path>").replace(/~\/[^\s"',)]+/g,"~/<path>").replace(/[\w.%+-]+@[\w.-]+\.[A-Z]{2,}/gi,"<email>").replace(/(https?:\/\/)([^/\s:@]+):([^/\s@]+)@/gi,"$1<redacted>@").replace(/\b[a-z][\w-]*(?:\.[\w-]+){2,}\b/gi,"<app_id>").replace(/\b[a-z]:\\[^\s"',)]+/gi,"<path>").replace(/(^|[\s"'(])\/[^\s"',)]+/g,"$1<path>").replace(/(--(?:token|api[-_]?key|key|password|secret|private[-_]?key|jwt|session|auth)(?:=|\s+))("[^"]+"|'[^']+'|\S+)/gi,"$1<redacted>").replace(/\b((?:token|api[-_]?key|password|secret|authorization)\s*[:=]\s*)[^\s,;]+/gi,"$1<redacted>")}function IlA(A,Q){let B=A?.split(`
94
+ `)}),this}_outputHelpIfRequested(A){let Q=this._getHelpOption();if(Q&&A.find((I)=>Q.is(I)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function nIA(A){return A.map((Q)=>{if(!Q.startsWith("--inspect"))return Q;let B,I="127.0.0.1",E="9229",$;if(($=Q.match(/^(--inspect(-brk)?)$/))!==null)B=$[1];else if(($=Q.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(B=$[1],/^\d+$/.test($[3]))E=$[3];else I=$[3];else if(($=Q.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)B=$[1],I=$[3],E=$[4];if(B&&E!=="0")return`${B}=${I}:${parseInt(E)+1}`;return Q})}function nb(){if(CI.env.NO_COLOR||CI.env.FORCE_COLOR==="0"||CI.env.FORCE_COLOR==="false")return!1;if(CI.env.FORCE_COLOR||CI.env.CLICOLOR_FORCE!==void 0)return!0;return}McA.Command=ib;McA.useColor=nb});var sIA=x((wcA)=>{var{Argument:rIA}=OO(),{Command:rb}=iIA(),{CommanderError:LcA,InvalidArgumentError:oIA}=$q(),{Help:OcA}=cb(),{Option:aIA}=lb();wcA.program=new rb;wcA.createCommand=(A)=>new rb(A);wcA.createOption=(A,Q)=>new aIA(A,Q);wcA.createArgument=(A,Q)=>new rIA(A,Q);wcA.Command=rb;wcA.Option=aIA;wcA.Argument=rIA;wcA.Help=OcA;wcA.CommanderError=LcA;wcA.InvalidArgumentError=oIA;wcA.InvalidOptionArgumentError=oIA});var $E;var $9=vA(()=>{$E={name:"@capgo/cli",type:"module",version:"7.124.5",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:"git+https://github.com/Cap-go/capgo.git",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:bundle":"bun test/test-bundle.mjs","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:credentials":"bun test/test-credentials.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:ci-prompts":"bun test/test-ci-prompts.mjs","test:ci-secrets":"bun test/test-ci-secrets.mjs","test:android-onboarding-progress":"bun test/test-android-onboarding-progress.mjs","test:onboarding-telemetry":"bun test/test-onboarding-telemetry.mjs","test:v2-event-migration":"bun test/test-v2-event-migration.mjs","test:analytics":"bun test/test-analytics.mjs","test: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:mcp-analytics":"bun test/test-mcp-analytics.mjs","test:app-created-source":"bun test/test-app-created-source.mjs","test:doctor-analytics":"bun test/test-doctor-analytics.mjs","test:posthog-exception":"bun test/test-posthog-exception.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:init-guardrails":"bun test/test-init-guardrails.mjs","test:prompt-preferences":"bun test/test-prompt-preferences.mjs","test:esm-sdk":"node test/test-sdk-esm.mjs","test:mcp":"node test/test-mcp.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:payload-split":"bun test/test-payload-split.mjs","test:macos-signing":"bun test/test-macos-signing.mjs","test:apple-api-import-helpers":"bun test/test-apple-api-import-helpers.mjs","test:bundle-id-detector":"bun test/test-bundle-id-detector.mjs","test:manifest-path-encoding":"bun test/test-manifest-path-encoding.mjs",test:"bun run build && bun run test:version-detection:setup && bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:fail-on-incompatible && bun run test:credentials && 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: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:analytics-error-category && bun run test:analytics-org-resolver && bun run test:supabase-perf && bun run test:mcp-analytics && bun run test:app-created-source && bun run test:doctor-analytics && bun run test:posthog-exception && bun run test:build-platform-selection && 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-app-conflict && bun run test:init-guardrails && bun run test:prompt-preferences && bun run test:esm-sdk && bun run test:mcp && bun run test:version-detection && bun run test:platform-paths && bun run test:payload-split && bun run test:manifest-path-encoding && bun run test:macos-signing && bun run test:apple-api-import-helpers && bun run test:bundle-id-detector && bun run test:ai-log-capture && bun run test:ai-analyze-flow && bun run test:ai-render-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","test:build-platform-selection":"bun test/test-build-platform-selection.mjs","test:ai-log-capture":"bun test/test-ai-log-capture.mjs","test:ai-analyze-flow":"bun test/test-ai-analyze-flow.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"},dependencies:{"@inkjs/ui":"^2.0.0",ink:"^7.0.4","ink-spinner":"^5.0.0",jsonwebtoken:"^9.0.3","node-forge":"^1.4.0",qrcode:"^1.5.4",react:"^19.2.6","string-width":"^8.2.1"},devDependencies:{"@antfu/eslint-config":"^9.0.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.6","@capacitor/cli":"^8.3.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.8","@supabase/supabase-js":"^2.106.2","@tanstack/intent":"^0.0.41","@types/adm-zip":"^0.5.8","@types/jsonwebtoken":"^9.0.10","@types/node":"^25.9.1","@types/node-forge":"^1.3.14","@types/prettyjson":"^0.0.33","@types/qrcode":"^1.5.6","@types/react":"^19.2.15","@types/tmp":"^0.2.6","@types/ws":"^8.18.1","@typescript/native-preview":"7.0.0-dev.20260526.1","@vercel/ncc":"^0.38.4","@xterm/headless":"^6.0.0","adm-zip":"^0.5.17","ci-info":"^4.4.0",commander:"^14.0.3",eslint:"^10.4.0","git-format-staged":"4.0.1",husky:"^9.1.7","is-wsl":"^3.1.1",micromatch:"^4.0.8",open:"^11.0.0",oxlint:"^1.67.0",partysocket:"^1.1.19",prettyjson:"^1.2.5",tmp:"^0.2.6","tus-js-client":"^4.3.1",typescript:"^6.0.3",ws:"^8.21.0",zod:"^4.4.3"}}});function ycA(A){if(A&&typeof A==="object"&&"status"in A){let Q=A.status;if(typeof Q==="number")return Q}return}function fcA(A){if(A instanceof Error)return A.message;if(typeof A==="string")return A;return""}function Gq(A){if(A&&typeof A==="object"&&"code"in A){let I=A.code;if(typeof I==="string"&&I.startsWith("commander."))return"commander"}let Q=ycA(A);if(Q!==void 0){if(Q===401)return"unauthorized";if(Q===403)return"forbidden";if(Q===404)return"not_found";if(Q===413)return"payload_too_large";if(Q>=500)return"server_error"}let B=fcA(A).toLowerCase();if(/econnrefused|enotfound|fetch failed|network|socket|dns/.test(B))return"network_error";if(/timed out|timeout|etimedout|aborted/.test(B))return"timeout";if(/invalid|must be|required|not allowed|malformed|validation/.test(B))return"validation_error";return"unknown"}function eIA(A){if(A===401)return"unauthorized";if(A===403)return"forbidden";if(A===404)return"not_found";if(A===408||A===504)return"timeout";if(A===413)return"payload_too_large";if(A===429)return"rate_limited";if(A===400||A===422)return"validation_error";if(A>=500)return"server_error";return"unknown"}import{AsyncLocalStorage as hcA}from"node:async_hooks";function Dq(A,Q){return Q1A.run(A,()=>Promise.resolve(Q()))}function ucA(){return Q1A.getStore()}function Jq(){B1A=!0}function I1A(){return B1A}function $1A(A){E1A=A}function A1A(A){try{E1A?.(A)}catch{}}function D1A(A,Q){let B;try{B=new URL(A).pathname}catch{B=A.split("?")[0]}let I="/functions/v1/",E=B.indexOf(I);if(E>=0){let X=B.slice(E+I.length).replace(/^\/+|\/+$/g,"");return X?`${Q} functions:${X}`:`${Q} functions`}let $="/rest/v1/",G=B.indexOf($),D=G>=0?B.slice(G+$.length):B.replace(/^\//,"");if(D.startsWith("rpc/"))return`rpc:${D.slice(4).split("/")[0]}`;let Y=D.split("/")[0]||B;return`${Q} ${Y}`}function mcA(A){let Q=A?.headers;if(!Q)return;let B=Q.get;if(typeof B==="function")return B.call(Q,"capgkey")??void 0;if(Array.isArray(Q))return Q.find(([I])=>I.toLowerCase()==="capgkey")?.[1];return Q.capgkey}function J1A(){return async(Q,B)=>{let I=(B?.method??"GET").toUpperCase(),E=typeof Q==="string"?Q:Q instanceof URL?Q.href:Q.url,$=ucA(),G=mcA(B),D=Date.now();try{let Y=await globalThis.fetch(Q,B);return A1A({url:E,method:I,status:Y.status,ok:Y.ok,durationMs:Date.now()-D,source:$,apikey:G}),Y}catch(Y){throw A1A({url:E,method:I,status:0,ok:!1,durationMs:Date.now()-D,source:$,apikey:G,error:Y}),Y}}}var Q1A,B1A=!1,E1A,G1A=5000;var Yq=vA(()=>{Q1A=new hcA});var Y1A=x((qlQ,ccA)=>{ccA.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Alpic",constant:"ALPIC",env:"ALPIC_HOST"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE",pr:{env:"AC_GIT_PR",ne:"false"}},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN",pr:{env:"CODEBUILD_WEBHOOK_EVENT",any:["PULL_REQUEST_CREATED","PULL_REQUEST_UPDATED","PULL_REQUEST_REOPENED"]}},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Cloudflare Pages",constant:"CLOUDFLARE_PAGES",env:"CF_PAGES"},{name:"Cloudflare Workers",constant:"CLOUDFLARE_WORKERS",env:"WORKERS_CI"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var sb=x((ob)=>{var U1A=Y1A(),LE=process.env;Object.defineProperty(ob,"_vendors",{value:U1A.map(function(A){return A.constant})});ob.name=null;ob.isPR=null;ob.id=null;if(LE.CI!=="false")U1A.forEach(function(A){let B=(Array.isArray(A.env)?A.env:[A.env]).every(function(I){return X1A(I)});if(ob[A.constant]=B,!B)return;ob.name=A.name,ob.isPR=lcA(A),ob.id=A.constant});ob.isCI=!!(LE.CI!=="false"&&(LE.BUILD_ID||LE.BUILD_NUMBER||LE.CI||LE.CI_APP_ID||LE.CI_BUILD_ID||LE.CI_BUILD_NUMBER||LE.CI_NAME||LE.CONTINUOUS_INTEGRATION||LE.RUN_ID||ob.name||!1));function X1A(A){if(typeof A==="string")return!!LE[A];if("env"in A)return LE[A.env]&&LE[A.env].includes(A.includes);if("any"in A)return A.any.some(function(Q){return!!LE[Q]});return Object.keys(A).every(function(Q){return LE[Q]===A[Q]})}function lcA(A){switch(typeof A.pr){case"string":return!!LE[A.pr];case"object":if("env"in A.pr)if("any"in A.pr)return A.pr.any.some(function(Q){return LE[A.pr.env]===Q});else return A.pr.env in LE&&LE[A.pr.env]!==A.pr.ne;else if("any"in A.pr)return A.pr.any.some(function(Q){return!!LE[Q]});else return X1A(A.pr);default:return null}}});import{homedir as C1A,platform as pcA,release as ncA}from"node:os";import{arch as icA,cwd as W1A,env as dU,version as rcA}from"node:process";function Uq(A){return A==="1"||A?.toLowerCase()==="true"||A?.toLowerCase()==="yes"}function tcA(){if(Uq(dU.CAPGO_DISABLE_TELEMETRY)||Uq(dU.CAPGO_DISABLE_POSTHOG))return;return dU.CAPGO_CLI_POSTHOG_API_KEY?.trim()||dU.POSTHOG_API_KEY?.trim()||acA}function ecA(A){let Q=A.replace(/\/+$/,"");if(Q.endsWith("/i/v0/e"))return`${Q}/`;let B=Q.replace(/\/capture$/,"/");return new URL("i/v0/e/",B.endsWith("/")?B:`${B}/`).toString()}function AlA(A){if(A instanceof Error)return{cause:A.cause,message:A.message,name:A.name||"Error",stack:A.stack};if(typeof A==="string")return{message:A,name:"Error",stack:void 0};try{return{message:JSON.stringify(A)??String(A),name:"Error",stack:void 0}}catch{return{message:String(A),name:"Error",stack:void 0}}}function QlA(A){let Q=A,B=W1A(),I=C1A();if(B)Q=Q.replaceAll(B,"<cwd>");if(I)Q=Q.replaceAll(I,"~");return Q}function BlA(A){let Q=A,B=W1A(),I=C1A();if(B)Q=Q.replaceAll(B,"<cwd>");if(I)Q=Q.replaceAll(I,"~");return Q.replace(/<cwd>\/[^\s"',)]+/g,"<cwd>/<path>").replace(/~\/[^\s"',)]+/g,"~/<path>").replace(/[\w.%+-]+@[\w.-]+\.[A-Z]{2,}/gi,"<email>").replace(/(https?:\/\/)([^/\s:@]+):([^/\s@]+)@/gi,"$1<redacted>@").replace(/\b[a-z][\w-]*(?:\.[\w-]+){2,}\b/gi,"<app_id>").replace(/\b[a-z]:\\[^\s"',)]+/gi,"<path>").replace(/(^|[\s"'(])\/[^\s"',)]+/g,"$1<path>").replace(/(--(?:token|api[-_]?key|key|password|secret|private[-_]?key|jwt|session|auth)(?:=|\s+))("[^"]+"|'[^']+'|\S+)/gi,"$1<redacted>").replace(/\b((?:token|api[-_]?key|password|secret|authorization)\s*[:=]\s*)[^\s,;]+/gi,"$1<redacted>")}function IlA(A,Q){let B=A?.split(`
95
95
  `).slice(1).map((I)=>{let E=I.trim(),$=E.startsWith("at ")?E.slice(3):E,G=Q,D=$,Y=$.lastIndexOf(" (");if(Y!==-1&&$.endsWith(")"))G=$.slice(0,Y).trim()||Q,D=$.slice(Y+2,-1);else{let F=$.lastIndexOf(" "),W=F===-1?"":$.slice(F+1);if(/:\d+:\d+$/.test(W))G=$.slice(0,F).trim()||Q,D=W}let X=D.lastIndexOf(":"),H=X===-1?-1:D.lastIndexOf(":",X-1);if(X===-1||H===-1)return{function:Q,platform:"custom",lang:"javascript"};return{function:G,filename:QlA(D.slice(0,H)),lineno:Number.parseInt(D.slice(H+1,X),10),colno:Number.parseInt(D.slice(X+1),10),platform:"custom",lang:"javascript"}}).filter(Boolean);return B&&B.length>0?B:[{function:Q,platform:"custom",lang:"javascript"}]}function ElA(A){if(!A||typeof A!=="object"||!("code"in A))return;let{code:Q}=A;return typeof Q==="string"?Q:void 0}function K1A(A){return!ElA(A)?.startsWith("commander.")}function tb(A){let Q=[],B=A;while(B?.parent){let I=B.name();if(I)Q.push(I);B=B.parent}return Q.reverse().join(" ")||"unknown"}async function eb(A){let Q=tcA();if(!Q)return!1;let B=dU.CAPGO_CLI_POSTHOG_API_HOST?.trim()||dU.POSTHOG_API_HOST?.trim()||ocA,I;try{I=ecA(B)}catch{return!1}let E=AlA(A.error),$=BlA(E.message),G=`cli:${$E.version}:${A.functionName}`,D=IlA(E.stack,A.functionName),Y=D[0],X=[G,A.kind,E.name||"Error",Y?.function||A.functionName,Y&&"filename"in Y?Y.filename:"unknown",String(A.status??1)].join(":"),H={token:Q,event:"$exception",properties:{distinct_id:G,$exception_list:[{type:E.name||"Error",value:$,mechanism:{handled:!0,synthetic:!1},stacktrace:{type:"raw",frames:D}}],$exception_fingerprint:X,architecture:icA,cli_version:$E.version,error_kind:A.kind,function_name:A.functionName,is_ci:Boolean(dU.CI),node_version:rcA,os_platform:pcA(),os_release:ncA(),runtime:"cli",status:A.status},timestamp:new Date().toISOString()};try{let F=new AbortController,W=setTimeout(()=>F.abort(),scA);try{return(await fetch(I,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(H),signal:F.signal})).ok}finally{clearTimeout(W)}}catch{return!1}}var ocA="https://eu.i.posthog.com/i/v0/e/",acA="phc_NXDyDajQaTQVwb25DEhIVZfxVUn4R0Y348Z7vWYHZUi",scA=1500;var Ay=vA(()=>{$9()});import{existsSync as O$}from"fs";var Xq=(A=".",Q="unknown")=>{let B=`${A}/bun.lockb`,I=`${A}/bun.lock`,E=`${A}/pnpm-lock.yaml`,$=`${A}/shrinkwrap.yaml`,G=`${A}/yarn.lock`,D=`${A}/package-lock.json`,Y=`${A}/npm-shrinkwrap.json`;if(O$(B)||O$(I))return"bun";if(O$(E)||O$($))return"pnpm";if(O$(G))return"yarn";if(O$(D)||O$(Y))return"npm";return Q},VO=(A=Xq(),Q=!1)=>{switch(A){case"bun":return Q?"bun install":"install";case"pnpm":return Q?"pnpm install":"install";case"yarn":return Q?"yarn install":"install";case"npm":return Q?"npm install":"install";case"unknown":return Q?"unknown unknown":"unknown";default:return Q?"npm install":"install"}},q1A=(A=".",Q="npx")=>{let B=`${A}/bun.lockb`,I=`${A}/bun.lock`,E=`${A}/pnpm-lock.yaml`,$=`${A}/shrinkwrap.yaml`,G=`${A}/yarn.lock`,D=`${A}/package-lock.json`,Y=`${A}/npm-shrinkwrap.json`;if(O$(B)||O$(I))return"bunx";if(O$(E)||O$($))return"pnpm exec";if(O$(G))return"yarn dlx";if(O$(D)||O$(Y))return"npx";return Q};var Z1A=()=>{};function TO(A,Q){if(isNaN(A)||isNaN(Q))throw Error("Cannot compare against non-numbers");return A===Q?0:A<Q?-1:1}function z1A(A=[],Q=[]){if(A.length&&!Q.length)return-1;if(!A.length&&Q.length)return 1;return 0}function SO(A=[],Q=[]){let B=Math.max(A.length,Q.length);for(let I=0;I<B;I++){let E=A[I],$=Q[I];if(E===void 0&&$===void 0)return 0;if($===void 0)return 1;if(E===void 0)return-1;if(typeof E==="string"&&typeof $==="number")return 1;if(typeof E==="number"&&typeof $==="string")return-1;if(E<$)return-1;if(E>$)return 1}return 0}function By(A){return typeof A==="number"&&!Number.isNaN(A)&&(!Number.isFinite(A)||0<=A&&A<=Number.MAX_SAFE_INTEGER)}function w$(A){return A.split(".").filter(Boolean).map((Q)=>{if(JlA.test(Q)){let B=Number(Q);if(By(B))return B}return Q})}function yD(A){return A.split(".").filter(Boolean)}function PO(A,Q){let B=Number(A);if(!By(B))throw TypeError(Q);return B}function G9(A){return Number.isNaN(A.major)&&Number.isNaN(A.minor)&&Number.isNaN(A.patch)&&(A.prerelease===void 0||A.prerelease.length===0)&&(A.build===void 0||A.build.length===0)}var cH="0|[1-9]\\d*",$lA="\\d*[a-zA-Z-][a-zA-Z0-9-]*",GlA,M1A,L1A,N1A="[0-9A-Za-z-]+",O1A,w1A,R1A,V1A="(?:<|>)?=?",DlA="x|X|\\*",Qy,jO,T1A,S1A,Iy=256,JlA;var D6=vA(()=>{GlA=`(?<major>${cH})\\.(?<minor>${cH})\\.(?<patch>${cH})`,M1A=`(?:${cH}|${$lA})`,L1A=`(?:-(?<prerelease>${M1A}(?:\\.${M1A})*))`,O1A=`(?:\\+(?<buildmetadata>${N1A}(?:\\.${N1A})*))`,w1A=`v?${GlA}${L1A}?${O1A}?`,R1A=new RegExp(`^${w1A}$`),Qy=`${cH}|${DlA}`,jO=`[v=\\s]*(?<major>${Qy})(?:\\.(?<minor>${Qy})(?:\\.(?<patch>${Qy})${L1A}?${O1A}?)?)?`,T1A=new RegExp(`^(?<operator>~>?|\\^|${V1A})\\s*${jO}$`),S1A=new RegExp(`^(?<operator>${V1A})\\s*(${w1A})$|^$`);JlA=new RegExp(`^${cH}$`)});function m4(A,Q){if(A===Q)return 0;return TO(A.major,Q.major)||TO(A.minor,Q.minor)||TO(A.patch,Q.patch)||z1A(A.prerelease,Q.prerelease)||SO(A.prerelease,Q.prerelease)}var u6=vA(()=>{D6()});function j1A(A,Q){let B=A.prerelease?.length||Q.prerelease?.length;if(A.major!==Q.major)return B?"premajor":"major";if(A.minor!==Q.minor)return B?"preminor":"minor";if(A.patch!==Q.patch)return B?"prepatch":"patch";if(SO(A.prerelease,Q.prerelease)!==0)return"prerelease"}var P1A=vA(()=>{D6()});function Ey(A){return A.toFixed(0)}function u8(A){let Q=Ey(A.major),B=Ey(A.minor),I=Ey(A.patch),E=A.prerelease?.join(".")??"",$=A.build?.join(".")??"";return[[`${Q}.${B}.${I}`,E].filter((Y)=>Y).join("-"),$].filter((Y)=>Y).join("+")}function YlA(A,Q){if(G9(Q))return!0;let B=m4(A,Q);switch(Q.operator){case"=":case void 0:return B===0;case"!=":return B!==0;case">":return B>0;case"<":return B<0;case">=":return B>=0;case"<=":return B<=0}}function _O(A,Q){for(let B of Q)if(!YlA(A,B))return!1;if(!A.prerelease?.length)return!0;for(let B of Q){if(G9(B))continue;if(!B.prerelease?.length)continue;let{major:I,minor:E,patch:$}=B;if(A.major===I&&A.minor===E&&A.patch===$)return!0}return!1}var kO=vA(()=>{D6();u6()});function Hq(A,Q){return Q.some((B)=>_O(A,B))}var Fq=vA(()=>{kO()});function UlA(A=[]){let Q=[...A],B=Q.length;while(B>=0){let I=Q[B];if(typeof I==="number"){Q[B]=I+1;break}B-=1}if(B===-1)Q.push(0);return Q}function Cq(A=[],Q){let B=UlA(A);if(!Q)return B;let I=w$(Q);if(I.every((E)=>typeof E==="string")){if(I.every((E,$)=>E===B[$])&&typeof B[I.length]==="number")return B;I=[...I,0]}return I}function SY(A,Q,B={}){let I=B.build!==void 0?yD(B.build):A.build??[];switch(Q){case"premajor":return{major:A.major+1,minor:0,patch:0,prerelease:Cq(A.prerelease,B.prerelease),build:I};case"preminor":return{major:A.major,minor:A.minor+1,patch:0,prerelease:Cq(A.prerelease,B.prerelease),build:I};case"prepatch":return{major:A.major,minor:A.minor,patch:A.patch+1,prerelease:Cq(A.prerelease,B.prerelease),build:I};case"prerelease":{let $=(A.prerelease??[]).length===0?A.patch+1:A.patch;return{major:A.major,minor:A.minor,patch:$,prerelease:Cq(A.prerelease,B.prerelease),build:I}}case"major":return{major:(A.prerelease??[]).length===0||A.minor!==0||A.patch!==0?A.major+1:A.major,minor:0,patch:0,prerelease:[],build:I};case"minor":{let $=(A.prerelease??[]).length===0||A.patch!==0?A.minor+1:A.minor;return{major:A.major,minor:$,patch:0,prerelease:[],build:I}}case"patch":{let $=(A.prerelease??[]).length===0?A.patch+1:A.patch;return{major:A.major,minor:A.minor,patch:$,prerelease:[],build:I}}case"pre":return{major:A.major,minor:A.minor,patch:A.patch,prerelease:Cq(A.prerelease,B.prerelease),build:I};default:throw TypeError(`Cannot increment version: invalid argument ${Q}`)}}var _1A=vA(()=>{D6()});var vO,lH;var Wq=vA(()=>{vO={major:Number.NaN,minor:Number.NaN,patch:Number.NaN,prerelease:[],build:[]},lH={operator:void 0,...vO}});var $y=vA(()=>{Wq();D6()});function Gy(A,Q){return m4(A,Q)>0}var Dy=vA(()=>{u6()});var k1A=vA(()=>{Fq();Dy()});function J6(A,Q){return m4(A,Q)<0}var Jy=vA(()=>{u6()});var v1A=vA(()=>{Fq();Jy()});function XlA(A){let B=A.match(S1A)?.groups;if(!B)return null;let{operator:I}=B;return{operator:I||void 0,...vO}}function G1(A){return!A||A.toLowerCase()==="x"||A==="*"}function HlA(A){if(G1(A.major))return;if(G1(A.minor))return{operator:">=",major:+A.major,minor:0,patch:0,prerelease:[],build:[]};if(G1(A.patch))return{operator:">=",major:+A.major,minor:+A.minor,patch:0,prerelease:[],build:[]};return{operator:">=",major:+A.major,minor:+A.minor,patch:+A.patch,prerelease:A.prerelease?w$(A.prerelease):[],build:[]}}function FlA(A){if(G1(A.major))return;if(G1(A.minor))return{operator:"<",major:+A.major+1,minor:0,patch:0,prerelease:[],build:[]};if(G1(A.patch))return{operator:"<",major:+A.major,minor:+A.minor+1,patch:0,prerelease:[],build:[]};if(A.prerelease)return{operator:"<=",major:+A.major,minor:+A.minor,patch:+A.patch,prerelease:w$(A.prerelease),build:[]};return{operator:"<=",major:+A.major,minor:+A.minor,patch:+A.patch,prerelease:[],build:[]}}function ClA(A){let Q=A.match(new RegExp(`^${jO}`)),B=Q?.groups;if(!B)return null;let I=Q[0].length,E=A.slice(I).match(/^\s+-\s+/);if(!E)return null;let $=E[0].length,D=A.slice(I+$).match(new RegExp(`^${jO}\\s*$`))?.groups,Y=HlA(B),X=FlA(D);return[Y,X].filter(Boolean)}function WlA(A){let Q=G1(A.major),B=G1(A.minor),I=G1(A.patch),E=+A.major,$=+A.minor,G=+A.patch;if(Q)return[lH];if(B)return[{operator:">=",major:E,minor:0,patch:0},{operator:"<",major:E+1,minor:0,patch:0}];if(I){if(E===0)return[{operator:">=",major:E,minor:$,patch:0},{operator:"<",major:E,minor:$+1,patch:0}];return[{operator:">=",major:E,minor:$,patch:0},{operator:"<",major:E+1,minor:0,patch:0}]}let D=w$(A.prerelease??"");if(E===0){if($===0)return[{operator:">=",major:E,minor:$,patch:G,prerelease:D},{operator:"<",major:E,minor:$,patch:G+1}];return[{operator:">=",major:E,minor:$,patch:G,prerelease:D},{operator:"<",major:E,minor:$+1,patch:0}]}return[{operator:">=",major:E,minor:$,patch:G,prerelease:D},{operator:"<",major:E+1,minor:0,patch:0}]}function KlA(A){let Q=G1(A.major),B=G1(A.minor),I=G1(A.patch),E=+A.major,$=+A.minor,G=+A.patch;if(Q)return[lH];if(B)return[{operator:">=",major:E,minor:0,patch:0},{operator:"<",major:E+1,minor:0,patch:0}];if(I)return[{operator:">=",major:E,minor:$,patch:0},{operator:"<",major:E,minor:$+1,patch:0}];let D=w$(A.prerelease??"");return[{operator:">=",major:E,minor:$,patch:G,prerelease:D},{operator:"<",major:E,minor:$+1,patch:0}]}function qlA(A){let Q=G1(A.major),B=G1(A.minor),I=G1(A.patch),E=+A.major,$=+A.minor,G=+A.patch;if(Q)return[{operator:"<",major:0,minor:0,patch:0}];if(B){if(I)return[{operator:"<",major:E,minor:0,patch:0}];return[{operator:"<",major:E,minor:0,patch:0}]}if(I)return[{operator:"<",major:E,minor:$,patch:0}];let D=w$(A.prerelease??""),Y=yD(A.build??"");return[{operator:"<",major:E,minor:$,patch:G,prerelease:D,build:Y}]}function ZlA(A){let Q=G1(A.minor),B=G1(A.patch),I=+A.major,E=+A.minor,$=+A.patch;if(Q)return[{operator:"<",major:I+1,minor:0,patch:0}];if(B)return[{operator:"<",major:I,minor:E+1,patch:0}];let G=w$(A.prerelease??""),D=yD(A.build??"");return[{operator:"<=",major:I,minor:E,patch:$,prerelease:G,build:D}]}function MlA(A){let Q=G1(A.major),B=G1(A.minor),I=G1(A.patch),E=+A.major,$=+A.minor,G=+A.patch;if(Q)return[{operator:"<",major:0,minor:0,patch:0}];if(B)return[{operator:">=",major:E+1,minor:0,patch:0}];if(I)return[{operator:">=",major:E,minor:$+1,patch:0}];let D=w$(A.prerelease??""),Y=yD(A.build??"");return[{operator:">",major:E,minor:$,patch:G,prerelease:D,build:Y}]}function NlA(A){let Q=G1(A.major),B=G1(A.minor),I=G1(A.patch),E=+A.major,$=+A.minor,G=+A.patch;if(Q)return[lH];if(B)return[{operator:">=",major:E,minor:0,patch:0}];if(I)return[{operator:">=",major:E,minor:$,patch:0}];let D=w$(A.prerelease??""),Y=yD(A.build??"");return[{operator:">=",major:E,minor:$,patch:G,prerelease:D,build:Y}]}function zlA(A){let Q=G1(A.major),B=G1(A.minor),I=G1(A.patch),E=+A.major,$=+A.minor,G=+A.patch;if(Q)return[lH];if(B)return[{operator:">=",major:E,minor:0,patch:0},{operator:"<",major:E+1,minor:0,patch:0}];if(I)return[{operator:">=",major:E,minor:$,patch:0},{operator:"<",major:E,minor:$+1,patch:0}];let D=w$(A.prerelease??""),Y=yD(A.build??"");return[{operator:A.operator==="="?"=":void 0,major:E,minor:$,patch:G,prerelease:D,build:Y}]}function LlA(A){let Q=A.match(T1A)?.groups;if(!Q)return XlA(A);switch(Q.operator){case"^":return WlA(Q);case"~":case"~>":return KlA(Q);case"<":return qlA(Q);case"<=":return ZlA(Q);case">":return MlA(Q);case">=":return NlA(Q);default:return zlA(Q)}}function OlA(A){return A.split(/\s+/).flatMap(LlA)}function xO(A){let Q=A.replaceAll(/(?<=[<>=~^])(\s+)/g,"").split(/\s*\|\|\s*/).map((B)=>ClA(B)||OlA(B));if(Q.some((B)=>B.includes(null)))throw TypeError(`Cannot parse version range: range "${A}" is invalid`);return Q}var Yy=vA(()=>{D6();Wq()});function oB(A){if(typeof A!=="string")throw TypeError(`Cannot parse version as version must be a string: received ${typeof A}`);if(A.length>Iy)throw TypeError(`Cannot parse version as version length is too long: length is ${A.length}, max length is ${Iy}`);A=A.trim();let Q=A.match(R1A)?.groups;if(!Q)throw TypeError(`Cannot parse version: ${A}`);let B=PO(Q.major,`Cannot parse version ${A}: invalid major version`),I=PO(Q.minor,`Cannot parse version ${A}: invalid minor version`),E=PO(Q.patch,`Cannot parse version ${A}: invalid patch version`),$=Q.prerelease?w$(Q.prerelease):[],G=Q.buildmetadata?yD(Q.buildmetadata):[];return{major:B,minor:I,patch:E,prerelease:$,build:G}}var gO=vA(()=>{D6();D6()});function x1A(A,Q){let B=A.operator,I=Q.operator;if(B===void 0){if(G9(A))return!0;return Hq(A,[[Q]])}if(I===void 0){if(G9(Q))return!0;return Hq(Q,[[A]])}let E=m4(A,Q);return(B===">="||B===">")&&(I===">="||I===">")||(B==="<="||B==="<")&&(I==="<="||I==="<")||E===0&&((B===">="||B==="<=")&&(I===">="||I==="<="))||E===-1&&(B===">="||B===">")&&(I==="<="||I==="<")||E===1&&(B==="<="||B==="<")&&(I===">="||I===">")}function wlA(A){return A.every((Q)=>{return Q.some((B)=>RlA(B))})}function RlA(A){for(let Q=0;Q<A.length-1;Q++){let B=A[Q];for(let I of A.slice(Q+1))if(!x1A(B,I))return!1}return!0}function g1A(A,Q){return wlA([A,Q])&&A.some((B)=>{return Q.some((I)=>{return B.every((E)=>{return I.every(($)=>x1A(E,$))})})})}var b1A=vA(()=>{D6();u6();Fq()});var y1A=vA(()=>{Yy()});var f1A=vA(()=>{Wq();Wq();$y()});function Kq(A){try{return oB(A),!0}catch{return!1}}var h1A=vA(()=>{gO()});var u1A=vA(()=>{gO()});var m1A=vA(()=>{D6()});var c1A=vA(()=>{u6()});var l1A=vA(()=>{u6()});var d1A=vA(()=>{kO();D6();u6()});function p1A(A,Q){return m4(A,Q)>=0}var n1A=vA(()=>{u6()});var i1A=vA(()=>{kO();D6();u6()});var r1A=vA(()=>{u6()});var fG=vA(()=>{u6();P1A();Fq();_1A();$y();k1A();v1A();Yy();gO();b1A();y1A();f1A();h1A();u1A();m1A();c1A();l1A();Dy();d1A();n1A();Jy();i1A();r1A()});var R$=x((HpQ,fO)=>{var o1A,a1A,s1A,t1A,e1A,AEA,QEA,BEA,IEA,EEA,$EA,GEA,DEA,bO,Uy,JEA,YEA,UEA,dH,XEA,HEA,FEA,CEA,WEA,KEA,qEA,ZEA,MEA,yO,NEA,zEA,LEA;(function(A){var Q=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(I){A(B(Q,B(I)))});else if(typeof fO==="object"&&typeof HpQ==="object")A(B(Q,B(HpQ)));else A(B(Q));function B(I,E){if(I!==Q)if(typeof Object.create==="function")Object.defineProperty(I,"__esModule",{value:!0});else I.__esModule=!0;return function($,G){return I[$]=E?E($,G):G}}})(function(A){var Q=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function($,G){$.__proto__=G}||function($,G){for(var D in G)if(Object.prototype.hasOwnProperty.call(G,D))$[D]=G[D]};o1A=function($,G){if(typeof G!=="function"&&G!==null)throw TypeError("Class extends value "+String(G)+" is not a constructor or null");Q($,G);function D(){this.constructor=$}$.prototype=G===null?Object.create(G):(D.prototype=G.prototype,new D)},a1A=Object.assign||function($){for(var G,D=1,Y=arguments.length;D<Y;D++){G=arguments[D];for(var X in G)if(Object.prototype.hasOwnProperty.call(G,X))$[X]=G[X]}return $},s1A=function($,G){var D={};for(var Y in $)if(Object.prototype.hasOwnProperty.call($,Y)&&G.indexOf(Y)<0)D[Y]=$[Y];if($!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var X=0,Y=Object.getOwnPropertySymbols($);X<Y.length;X++)if(G.indexOf(Y[X])<0&&Object.prototype.propertyIsEnumerable.call($,Y[X]))D[Y[X]]=$[Y[X]]}return D},t1A=function($,G,D,Y){var X=arguments.length,H=X<3?G:Y===null?Y=Object.getOwnPropertyDescriptor(G,D):Y,F;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")H=Reflect.decorate($,G,D,Y);else for(var W=$.length-1;W>=0;W--)if(F=$[W])H=(X<3?F(H):X>3?F(G,D,H):F(G,D))||H;return X>3&&H&&Object.defineProperty(G,D,H),H},e1A=function($,G){return function(D,Y){G(D,Y,$)}},AEA=function($,G,D,Y,X,H){function F(g){if(g!==void 0&&typeof g!=="function")throw TypeError("Function expected");return g}var W=Y.kind,K=W==="getter"?"get":W==="setter"?"set":"value",Z=!G&&$?Y.static?$:$.prototype:null,M=G||(Z?Object.getOwnPropertyDescriptor(Z,Y.name):{}),O,w=!1;for(var T=D.length-1;T>=0;T--){var R={};for(var S in Y)R[S]=S==="access"?{}:Y[S];for(var S in Y.access)R.access[S]=Y.access[S];R.addInitializer=function(g){if(w)throw TypeError("Cannot add initializers after decoration has completed");H.push(F(g||null))};var j=(0,D[T])(W==="accessor"?{get:M.get,set:M.set}:M[K],R);if(W==="accessor"){if(j===void 0)continue;if(j===null||typeof j!=="object")throw TypeError("Object expected");if(O=F(j.get))M.get=O;if(O=F(j.set))M.set=O;if(O=F(j.init))X.unshift(O)}else if(O=F(j))if(W==="field")X.unshift(O);else M[K]=O}if(Z)Object.defineProperty(Z,Y.name,M);w=!0},QEA=function($,G,D){var Y=arguments.length>2;for(var X=0;X<G.length;X++)D=Y?G[X].call($,D):G[X].call($);return Y?D:void 0},BEA=function($){return typeof $==="symbol"?$:"".concat($)},IEA=function($,G,D){if(typeof G==="symbol")G=G.description?"[".concat(G.description,"]"):"";return Object.defineProperty($,"name",{configurable:!0,value:D?"".concat(D," ",G):G})},EEA=function($,G){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata($,G)},$EA=function($,G,D,Y){function X(H){return H instanceof D?H:new D(function(F){F(H)})}return new(D||(D=Promise))(function(H,F){function W(M){try{Z(Y.next(M))}catch(O){F(O)}}function K(M){try{Z(Y.throw(M))}catch(O){F(O)}}function Z(M){M.done?H(M.value):X(M.value).then(W,K)}Z((Y=Y.apply($,G||[])).next())})},GEA=function($,G){var D={label:0,sent:function(){if(H[0]&1)throw H[1];return H[1]},trys:[],ops:[]},Y,X,H,F=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return F.next=W(0),F.throw=W(1),F.return=W(2),typeof Symbol==="function"&&(F[Symbol.iterator]=function(){return this}),F;function W(Z){return function(M){return K([Z,M])}}function K(Z){if(Y)throw TypeError("Generator is already executing.");while(F&&(F=0,Z[0]&&(D=0)),D)try{if(Y=1,X&&(H=Z[0]&2?X.return:Z[0]?X.throw||((H=X.return)&&H.call(X),0):X.next)&&!(H=H.call(X,Z[1])).done)return H;if(X=0,H)Z=[Z[0]&2,H.value];switch(Z[0]){case 0:case 1:H=Z;break;case 4:return D.label++,{value:Z[1],done:!1};case 5:D.label++,X=Z[1],Z=[0];continue;case 7:Z=D.ops.pop(),D.trys.pop();continue;default:if((H=D.trys,!(H=H.length>0&&H[H.length-1]))&&(Z[0]===6||Z[0]===2)){D=0;continue}if(Z[0]===3&&(!H||Z[1]>H[0]&&Z[1]<H[3])){D.label=Z[1];break}if(Z[0]===6&&D.label<H[1]){D.label=H[1],H=Z;break}if(H&&D.label<H[2]){D.label=H[2],D.ops.push(Z);break}if(H[2])D.ops.pop();D.trys.pop();continue}Z=G.call($,D)}catch(M){Z=[6,M],X=0}finally{Y=H=0}if(Z[0]&5)throw Z[1];return{value:Z[0]?Z[1]:void 0,done:!0}}},DEA=function($,G){for(var D in $)if(D!=="default"&&!Object.prototype.hasOwnProperty.call(G,D))yO(G,$,D)},yO=Object.create?function($,G,D,Y){if(Y===void 0)Y=D;var X=Object.getOwnPropertyDescriptor(G,D);if(!X||("get"in X?!G.__esModule:X.writable||X.configurable))X={enumerable:!0,get:function(){return G[D]}};Object.defineProperty($,Y,X)}:function($,G,D,Y){if(Y===void 0)Y=D;$[Y]=G[D]},bO=function($){var G=typeof Symbol==="function"&&Symbol.iterator,D=G&&$[G],Y=0;if(D)return D.call($);if($&&typeof $.length==="number")return{next:function(){if($&&Y>=$.length)$=void 0;return{value:$&&$[Y++],done:!$}}};throw TypeError(G?"Object is not iterable.":"Symbol.iterator is not defined.")},Uy=function($,G){var D=typeof Symbol==="function"&&$[Symbol.iterator];if(!D)return $;var Y=D.call($),X,H=[],F;try{while((G===void 0||G-- >0)&&!(X=Y.next()).done)H.push(X.value)}catch(W){F={error:W}}finally{try{if(X&&!X.done&&(D=Y.return))D.call(Y)}finally{if(F)throw F.error}}return H},JEA=function(){for(var $=[],G=0;G<arguments.length;G++)$=$.concat(Uy(arguments[G]));return $},YEA=function(){for(var $=0,G=0,D=arguments.length;G<D;G++)$+=arguments[G].length;for(var Y=Array($),X=0,G=0;G<D;G++)for(var H=arguments[G],F=0,W=H.length;F<W;F++,X++)Y[X]=H[F];return Y},UEA=function($,G,D){if(D||arguments.length===2){for(var Y=0,X=G.length,H;Y<X;Y++)if(H||!(Y in G)){if(!H)H=Array.prototype.slice.call(G,0,Y);H[Y]=G[Y]}}return $.concat(H||Array.prototype.slice.call(G))},dH=function($){return this instanceof dH?(this.v=$,this):new dH($)},XEA=function($,G,D){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Y=D.apply($,G||[]),X,H=[];return X=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),W("next"),W("throw"),W("return",F),X[Symbol.asyncIterator]=function(){return this},X;function F(T){return function(R){return Promise.resolve(R).then(T,O)}}function W(T,R){if(Y[T]){if(X[T]=function(S){return new Promise(function(j,g){H.push([T,S,j,g])>1||K(T,S)})},R)X[T]=R(X[T])}}function K(T,R){try{Z(Y[T](R))}catch(S){w(H[0][3],S)}}function Z(T){T.value instanceof dH?Promise.resolve(T.value.v).then(M,O):w(H[0][2],T)}function M(T){K("next",T)}function O(T){K("throw",T)}function w(T,R){if(T(R),H.shift(),H.length)K(H[0][0],H[0][1])}},HEA=function($){var G,D;return G={},Y("next"),Y("throw",function(X){throw X}),Y("return"),G[Symbol.iterator]=function(){return this},G;function Y(X,H){G[X]=$[X]?function(F){return(D=!D)?{value:dH($[X](F)),done:!1}:H?H(F):F}:H}},FEA=function($){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var G=$[Symbol.asyncIterator],D;return G?G.call($):($=typeof bO==="function"?bO($):$[Symbol.iterator](),D={},Y("next"),Y("throw"),Y("return"),D[Symbol.asyncIterator]=function(){return this},D);function Y(H){D[H]=$[H]&&function(F){return new Promise(function(W,K){F=$[H](F),X(W,K,F.done,F.value)})}}function X(H,F,W,K){Promise.resolve(K).then(function(Z){H({value:Z,done:W})},F)}},CEA=function($,G){if(Object.defineProperty)Object.defineProperty($,"raw",{value:G});else $.raw=G;return $};var B=Object.create?function($,G){Object.defineProperty($,"default",{enumerable:!0,value:G})}:function($,G){$.default=G},I=function($){return I=Object.getOwnPropertyNames||function(G){var D=[];for(var Y in G)if(Object.prototype.hasOwnProperty.call(G,Y))D[D.length]=Y;return D},I($)};WEA=function($){if($&&$.__esModule)return $;var G={};if($!=null){for(var D=I($),Y=0;Y<D.length;Y++)if(D[Y]!=="default")yO(G,$,D[Y])}return B(G,$),G},KEA=function($){return $&&$.__esModule?$:{default:$}},qEA=function($,G,D,Y){if(D==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?$!==G||!Y:!G.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return D==="m"?Y:D==="a"?Y.call($):Y?Y.value:G.get($)},ZEA=function($,G,D,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?$!==G||!X:!G.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,D):X?X.value=D:G.set($,D),D},MEA=function($,G){if(G===null||typeof G!=="object"&&typeof G!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof $==="function"?G===$:$.has(G)},NEA=function($,G,D){if(G!==null&&G!==void 0){if(typeof G!=="object"&&typeof G!=="function")throw TypeError("Object expected.");var Y,X;if(D){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");Y=G[Symbol.asyncDispose]}if(Y===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(Y=G[Symbol.dispose],D)X=Y}if(typeof Y!=="function")throw TypeError("Object not disposable.");if(X)Y=function(){try{X.call(this)}catch(H){return Promise.reject(H)}};$.stack.push({value:G,dispose:Y,async:D})}else if(D)$.stack.push({async:!0});return G};var E=typeof SuppressedError==="function"?SuppressedError:function($,G,D){var Y=Error(D);return Y.name="SuppressedError",Y.error=$,Y.suppressed=G,Y};zEA=function($){function G(H){$.error=$.hasError?new E(H,$.error,"An error was suppressed during disposal."):H,$.hasError=!0}var D,Y=0;function X(){while(D=$.stack.pop())try{if(!D.async&&Y===1)return Y=0,$.stack.push(D),Promise.resolve().then(X);if(D.dispose){var H=D.dispose.call(D.value);if(D.async)return Y|=2,Promise.resolve(H).then(X,function(F){return G(F),X()})}else Y|=1}catch(F){G(F)}if(Y===1)return $.hasError?Promise.reject($.error):Promise.resolve();if($.hasError)throw $.error}return X()},LEA=function($,G){if(typeof $==="string"&&/^\.\.?\//.test($))return $.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(D,Y,X,H,F){return Y?G?".jsx":".js":X&&(!H||!F)?D:X+H+"."+F.toLowerCase()+"js"});return $},A("__extends",o1A),A("__assign",a1A),A("__rest",s1A),A("__decorate",t1A),A("__param",e1A),A("__esDecorate",AEA),A("__runInitializers",QEA),A("__propKey",BEA),A("__setFunctionName",IEA),A("__metadata",EEA),A("__awaiter",$EA),A("__generator",GEA),A("__exportStar",DEA),A("__createBinding",yO),A("__values",bO),A("__read",Uy),A("__spread",JEA),A("__spreadArrays",YEA),A("__spreadArray",UEA),A("__await",dH),A("__asyncGenerator",XEA),A("__asyncDelegator",HEA),A("__asyncValues",FEA),A("__makeTemplateObject",CEA),A("__importStar",WEA),A("__importDefault",KEA),A("__classPrivateFieldGet",qEA),A("__classPrivateFieldSet",ZEA),A("__classPrivateFieldIn",MEA),A("__addDisposableResource",NEA),A("__disposeResources",zEA),A("__rewriteRelativeImportExtension",LEA)})});var REA=x((OEA)=>{Object.defineProperty(OEA,"__esModule",{value:!0});OEA.resolveFetch=void 0;var VlA=(A)=>{if(A)return(...Q)=>A(...Q);return(...Q)=>fetch(...Q)};OEA.resolveFetch=VlA});var Xy=x((PEA)=>{Object.defineProperty(PEA,"__esModule",{value:!0});PEA.FunctionRegion=PEA.FunctionsHttpError=PEA.FunctionsRelayError=PEA.FunctionsFetchError=PEA.FunctionsError=void 0;class qq extends Error{constructor(A,Q="FunctionsError",B){super(A);this.name=Q,this.context=B}toJSON(){return{name:this.name,message:this.message,context:this.context}}}PEA.FunctionsError=qq;class TEA extends qq{constructor(A){super("Failed to send a request to the Edge Function","FunctionsFetchError",A)}}PEA.FunctionsFetchError=TEA;class SEA extends qq{constructor(A){super("Relay Error invoking the Edge Function","FunctionsRelayError",A)}}PEA.FunctionsRelayError=SEA;class jEA extends qq{constructor(A){super("Edge Function returned a non-2xx status code","FunctionsHttpError",A)}}PEA.FunctionsHttpError=jEA;var VEA;(function(A){A.Any="any",A.ApNortheast1="ap-northeast-1",A.ApNortheast2="ap-northeast-2",A.ApSouth1="ap-south-1",A.ApSoutheast1="ap-southeast-1",A.ApSoutheast2="ap-southeast-2",A.CaCentral1="ca-central-1",A.EuCentral1="eu-central-1",A.EuWest1="eu-west-1",A.EuWest2="eu-west-2",A.EuWest3="eu-west-3",A.SaEast1="sa-east-1",A.UsEast1="us-east-1",A.UsWest1="us-west-1",A.UsWest2="us-west-2"})(VEA||(PEA.FunctionRegion=VEA={}))});var gEA=x((vEA)=>{Object.defineProperty(vEA,"__esModule",{value:!0});vEA.FunctionsClient=void 0;var _lA=R$(),klA=REA(),pH=Xy();class kEA{constructor(A,{headers:Q={},customFetch:B,region:I=pH.FunctionRegion.Any}={}){this.url=A,this.headers=Q,this.region=I,this.fetch=(0,klA.resolveFetch)(B)}setAuth(A){this.headers.Authorization=`Bearer ${A}`}invoke(A){return _lA.__awaiter(this,arguments,void 0,function*(Q,B={}){var I;let E,$;try{let{headers:G,method:D,body:Y,signal:X,timeout:H}=B,F={},{region:W}=B;if(!W)W=this.region;let K=new URL(`${this.url}/${Q}`);if(W&&W!=="any")F["x-region"]=W,K.searchParams.set("forceFunctionRegion",W);let Z;if(Y&&(G&&!Object.prototype.hasOwnProperty.call(G,"Content-Type")||!G))if(typeof Blob<"u"&&Y instanceof Blob||Y instanceof ArrayBuffer)F["Content-Type"]="application/octet-stream",Z=Y;else if(typeof Y==="string")F["Content-Type"]="text/plain",Z=Y;else if(typeof FormData<"u"&&Y instanceof FormData)Z=Y;else F["Content-Type"]="application/json",Z=JSON.stringify(Y);else if(Y&&typeof Y!=="string"&&!(typeof Blob<"u"&&Y instanceof Blob)&&!(Y instanceof ArrayBuffer)&&!(typeof FormData<"u"&&Y instanceof FormData))Z=JSON.stringify(Y);else Z=Y;let M=X;if(H)if($=new AbortController,E=setTimeout(()=>$.abort(),H),X)M=$.signal,X.addEventListener("abort",()=>$.abort());else M=$.signal;let O=yield this.fetch(K.toString(),{method:D||"POST",headers:Object.assign(Object.assign(Object.assign({},F),this.headers),G),body:Z,signal:M}).catch((S)=>{throw new pH.FunctionsFetchError(S)}),w=O.headers.get("x-relay-error");if(w&&w==="true")throw new pH.FunctionsRelayError(O);if(!O.ok)throw new pH.FunctionsHttpError(O);let T=((I=O.headers.get("Content-Type"))!==null&&I!==void 0?I:"text/plain").split(";")[0].trim(),R;if(T==="application/json")R=yield O.json();else if(T==="application/octet-stream"||T==="application/pdf")R=yield O.blob();else if(T==="text/event-stream")R=O;else if(T==="multipart/form-data")R=yield O.formData();else R=yield O.text();return{data:R,error:null,response:O}}catch(G){return{data:null,error:G,response:G instanceof pH.FunctionsHttpError||G instanceof pH.FunctionsRelayError?G.context:void 0}}finally{if(E)clearTimeout(E)}})}}vEA.FunctionsClient=kEA});var bEA=x((jY)=>{Object.defineProperty(jY,"__esModule",{value:!0});jY.FunctionRegion=jY.FunctionsRelayError=jY.FunctionsHttpError=jY.FunctionsFetchError=jY.FunctionsError=jY.FunctionsClient=void 0;var vlA=gEA();Object.defineProperty(jY,"FunctionsClient",{enumerable:!0,get:function(){return vlA.FunctionsClient}});var Zq=Xy();Object.defineProperty(jY,"FunctionsError",{enumerable:!0,get:function(){return Zq.FunctionsError}});Object.defineProperty(jY,"FunctionsFetchError",{enumerable:!0,get:function(){return Zq.FunctionsFetchError}});Object.defineProperty(jY,"FunctionsHttpError",{enumerable:!0,get:function(){return Zq.FunctionsHttpError}});Object.defineProperty(jY,"FunctionsRelayError",{enumerable:!0,get:function(){return Zq.FunctionsRelayError}});Object.defineProperty(jY,"FunctionRegion",{enumerable:!0,get:function(){return Zq.FunctionRegion}})});function fEA(A,Q){return new Promise((B)=>{if(Q===null||Q===void 0?void 0:Q.aborted){B();return}let I=setTimeout(()=>{Q===null||Q===void 0||Q.removeEventListener("abort",E),B()},A);function E(){clearTimeout(I),B()}Q===null||Q===void 0||Q.addEventListener("abort",E)})}function blA(A,Q,B,I){if(!I||B>=3)return!1;if(!mEA.includes(A))return!1;if(!glA.includes(Q))return!1;return!0}function Mq(A){return Mq=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Q){return typeof Q}:function(Q){return Q&&typeof Symbol=="function"&&Q.constructor===Symbol&&Q!==Symbol.prototype?"symbol":typeof Q},Mq(A)}function ulA(A,Q){if(Mq(A)!="object"||!A)return A;var B=A[Symbol.toPrimitive];if(B!==void 0){var I=B.call(A,Q||"default");if(Mq(I)!="object")return I;throw TypeError("@@toPrimitive must return a primitive value.")}return(Q==="string"?String:Number)(A)}function mlA(A){var Q=ulA(A,"string");return Mq(Q)=="symbol"?Q:Q+""}function clA(A,Q,B){return(Q=mlA(Q))in A?Object.defineProperty(A,Q,{value:B,enumerable:!0,configurable:!0,writable:!0}):A[Q]=B,A}function uEA(A,Q){var B=Object.keys(A);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(A);Q&&(I=I.filter(function(E){return Object.getOwnPropertyDescriptor(A,E).enumerable})),B.push.apply(B,I)}return B}function hO(A){for(var Q=1;Q<arguments.length;Q++){var B=arguments[Q]!=null?arguments[Q]:{};Q%2?uEA(Object(B),!0).forEach(function(I){clA(A,I,B[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(B)):uEA(Object(B)).forEach(function(I){Object.defineProperty(A,I,Object.getOwnPropertyDescriptor(B,I))})}return A}var yEA=(A)=>Math.min(1000*2**A,30000),glA,mEA,Hy,ylA=class{constructor(A){var Q,B,I,E,$;if(this.shouldThrowOnError=!1,this.retryEnabled=!0,this.method=A.method,this.url=A.url,this.headers=new Headers(A.headers),this.schema=A.schema,this.body=A.body,this.shouldThrowOnError=(Q=A.shouldThrowOnError)!==null&&Q!==void 0?Q:!1,this.signal=A.signal,this.isMaybeSingle=(B=A.isMaybeSingle)!==null&&B!==void 0?B:!1,this.shouldStripNulls=(I=A.shouldStripNulls)!==null&&I!==void 0?I:!1,this.urlLengthLimit=(E=A.urlLengthLimit)!==null&&E!==void 0?E:8000,this.retryEnabled=($=A.retry)!==null&&$!==void 0?$:!0,A.fetch)this.fetch=A.fetch;else this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}stripNulls(){if(this.headers.get("Accept")==="text/csv")throw Error("stripNulls() cannot be used with csv()");return this.shouldStripNulls=!0,this}setHeader(A,Q){return this.headers=new Headers(this.headers),this.headers.set(A,Q),this}retry(A){return this.retryEnabled=A,this}then(A,Q){var B=this;if(this.schema===void 0);else if(["GET","HEAD"].includes(this.method))this.headers.set("Accept-Profile",this.schema);else this.headers.set("Content-Profile",this.schema);if(this.method!=="GET"&&this.method!=="HEAD")this.headers.set("Content-Type","application/json");if(this.shouldStripNulls){let G=this.headers.get("Accept");if(G==="application/vnd.pgrst.object+json")this.headers.set("Accept","application/vnd.pgrst.object+json;nulls=stripped");else if(!G||G==="application/json")this.headers.set("Accept","application/vnd.pgrst.array+json;nulls=stripped")}let I=this.fetch,$=(async()=>{let G=0;while(!0){let X=new Headers(B.headers);if(G>0)X.set("X-Retry-Count",String(G));let H;try{H=await I(B.url.toString(),{method:B.method,headers:X,body:JSON.stringify(B.body,(F,W)=>typeof W==="bigint"?W.toString():W),signal:B.signal})}catch(F){if((F===null||F===void 0?void 0:F.name)==="AbortError"||(F===null||F===void 0?void 0:F.code)==="ABORT_ERR")throw F;if(!mEA.includes(B.method))throw F;if(B.retryEnabled&&G<3){let W=yEA(G);G++,await fEA(W,B.signal);continue}throw F}if(blA(B.method,H.status,G,B.retryEnabled)){var D,Y;let F=(D=(Y=H.headers)===null||Y===void 0?void 0:Y.get("Retry-After"))!==null&&D!==void 0?D:null,W=F!==null?Math.max(0,parseInt(F,10)||0)*1000:yEA(G);await H.text(),G++,await fEA(W,B.signal);continue}return await B.processResponse(H)}})();if(!this.shouldThrowOnError)$=$.catch((G)=>{var D;let Y="",X="",H="",F=G===null||G===void 0?void 0:G.cause;if(F){var W,K,Z,M;let T=(W=F===null||F===void 0?void 0:F.message)!==null&&W!==void 0?W:"",R=(K=F===null||F===void 0?void 0:F.code)!==null&&K!==void 0?K:"";if(Y=`${(Z=G===null||G===void 0?void 0:G.name)!==null&&Z!==void 0?Z:"FetchError"}: ${G===null||G===void 0?void 0:G.message}`,Y+=`
96
96
 
97
97
  Caused by: ${(M=F===null||F===void 0?void 0:F.name)!==null&&M!==void 0?M:"Error"}: ${T}`,R)Y+=` (${R})`;if(F===null||F===void 0?void 0:F.stack)Y+=`
@@ -717,8 +717,8 @@ const partysocket = new PartySocket({
717
717
  });
718
718
 
719
719
  `),mNA=!0;let $=this._options.WebSocket||WebSocket;this._debug("connect",{url:I,protocols:E}),this._ws=E?new $(I,E):new $(I),this._ws.binaryType=this._binaryType,this._connectLock=!1,this._addListeners(),this._connectTimeout=setTimeout(()=>this._handleTimeout(),B)}).catch((I)=>{this._connectLock=!1,this._handleError(new ui.ErrorEvent(Error(I.message),this))})}_handleTimeout(){this._debug("timeout event"),this._handleError(new ui.ErrorEvent(Error("TIMEOUT"),this))}_disconnect(Q=1000,B){if(this._clearTimeouts(),!this._ws)return;this._removeListeners();try{if(this._ws.readyState===this.OPEN||this._ws.readyState===this.CONNECTING)this._ws.close(Q,B);this._handleClose(new ui.CloseEvent(Q,B,this))}catch(I){}}_acceptOpen(){this._debug("accept open"),this._retryCount=0}_handleOpen=(Q)=>{this._debug("open event");let{minUptime:B=q7.minUptime}=this._options;if(clearTimeout(this._connectTimeout),this._uptimeTimeout=setTimeout(()=>this._acceptOpen(),B),GCQ(this._ws,"WebSocket is not defined"),this._ws.binaryType=this._binaryType,this._messageQueue.forEach((I)=>{this._ws?.send(I)}),this._messageQueue=[],this.onopen)this.onopen(Q);this.dispatchEvent(zP(Q))};_handleMessage=(Q)=>{if(this._debug("message event"),this.onmessage)this.onmessage(Q);this.dispatchEvent(zP(Q))};_handleError=(Q)=>{if(this._debug("error event",Q.message),this._disconnect(void 0,Q.message==="TIMEOUT"?"timeout":void 0),this.onerror)this.onerror(Q);this._debug("exec error listeners"),this.dispatchEvent(zP(Q)),this._connect()};_handleClose=(Q)=>{if(this._debug("close event"),this._clearTimeouts(),this._shouldReconnect)this._connect();if(this.onclose)this.onclose(Q);this.dispatchEvent(zP(Q))};_removeListeners(){if(!this._ws)return;this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError)}_addListeners(){if(!this._ws)return;this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError)}_clearTimeouts(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)}};Cj();$9();var RP=kA(mw(),1);zB();var mi=kA(xi(),1);import{mkdir as XCQ,writeFile as HCQ}from"node:fs/promises";import{dirname as FCQ,resolve as CCQ}from"node:path";import{cwd as WCQ}from"node:process";async function pNA(A,Q,B){let I=CCQ(WCQ(),A),E=`${I}.qr.png`;await XCQ(FCQ(I),{recursive:!0});let $=null,G=null;if(Q.outputUrl){try{$=await mi.default.toString(Q.outputUrl,{type:"utf8",errorCorrectionLevel:"L"})}catch(Y){B?.(`Failed to render ASCII QR code: ${dNA(Y)}`)}try{await mi.default.toFile(E,Q.outputUrl,{errorCorrectionLevel:"L",width:512}),G=E}catch(Y){B?.(`Failed to render PNG QR code at ${E}: ${dNA(Y)}`)}}let D={schemaVersion:1,jobId:Q.jobId,appId:Q.appId,platform:Q.platform,buildMode:Q.buildMode,status:Q.status,outputUrl:Q.outputUrl??null,qrCodeAscii:$,qrCodePngPath:G,finishedAt:new Date().toISOString()};return await HCQ(I,`${JSON.stringify(D,null,2)}
720
- `,"utf-8"),D}function dNA(A){if(A instanceof Error)return A.message;return String(A)}zB();function KCQ(A){if(!A||typeof A!=="object")return;let Q=A.originalResponse?.getStatus?.();return typeof Q==="number"?Q:void 0}function qCQ(A){let Q=KCQ(A);if(Q===401||Q===403)return"unauthorized";if(Q===413)return"payload_too_large";if(Q!==void 0&&Q>=500&&Q<600)return"storage_failure";if(Q===void 0||Q===0)return"network_error";return"unknown"}var ZCQ={started:"Builder Upload Started",succeeded:"Builder Upload Succeeded",failed:"Builder Upload Failed"},MCQ={started:"⬆️",succeeded:"\uD83D\uDCE6",failed:"\uD83D\uDEAB"};async function LP(A){let Q={app_id:A.appId,platform:A.platform,build_mode:A.buildMode,job_id:A.jobId,upload_size_bytes:String(A.sizeBytes)};if(typeof A.durationSeconds==="number"&&Number.isFinite(A.durationSeconds))Q.upload_duration_seconds=String(Math.round(A.durationSeconds));if(A.phase==="failed"&&A.error!==void 0)Q.failure_category=qCQ(A.error);try{await NB(A.apikey,{event:ZCQ[A.phase],channel:"build-lifecycle",icon:MCQ[A.phase],notify:!1,org_id:A.orgId,tracking_version:2,tags:Q})}catch{}}async function SCQ(){return eE({message:"No platform selected. Which platform do you want to build?",options:[{value:"ios",label:"iOS"},{value:"android",label:"Android"}]})}async function jCQ(A,{silent:Q=!1,interactive:B=_F({silent:Q}),promptPlatform:I=SCQ}={}){if(A==="ios"||A==="android")return A;if(A)throw Error(`Invalid platform "${A}". Must be "ios" or "android"`);if(!B)throw Error("Missing required argument: --platform <ios|android>. In an interactive terminal, you can omit --platform and choose one when prompted.");let E=await I();if(U0(E))throw Error("Build request canceled.");if(E!=="ios"&&E!=="android")throw Error("Build request canceled.");return E}function PCQ(A){return{info:(Q)=>{if(!A)L.info(Q)},error:(Q)=>{if(!A)L.error(Q)},warn:(Q)=>{if(!A)L.warn(Q)},success:(Q)=>{if(!A)L.success(Q)},buildLog:(Q)=>{if(!A)console.log(Q)},uploadProgress:(()=>{let Q=A?null:E1(),B=!1;return(I)=>{if(A||!Q)return;if(!B)Q.start("Uploading bundle"),B=!0;if(I>=100)Q.stop("Upload complete!");else Q.message(`Uploading ${I.toFixed(0)}%`)}})(),customMsg:async(Q,B)=>{if(!A)await C7(Q,B,(I)=>console.log(I),(I)=>L.warn(I))}}}var oNA=Promise.resolve();async function _CQ(A,Q){let B=async()=>{let E=li();try{rNA(A)}catch($){throw Error(`Failed to change working directory to "${A}": ${$.message}`)}try{return await Q()}finally{try{rNA(E)}catch{}}},I=oNA.then(B,B);return oNA=I.then(()=>{return},()=>{return}),I}async function kCQ(A,Q,B=3,I){let E=[1000,3000,5000];for(let $=1;$<=B;$++)try{let G=await fetch(A,Q);if(G.ok||G.status>=400&&G.status<500)return G;let D=await G.text().catch(()=>"unknown error");if(I?.warn(`Build request attempt ${$}/${B} failed: ${G.status} - ${D}`),$<B){let Y=E[$-1]||5000;I?.info(`Retrying in ${Y/1000}s...`),await new Promise((X)=>setTimeout(X,Y))}else throw Error(`Failed to request build after ${B} attempts: ${G.status} - ${D}`)}catch(G){let D=G instanceof Error?G.message:String(G);if(D.startsWith("Failed to request build after"))throw G;if(I?.warn(`Build request attempt ${$}/${B} failed: ${D}`),$<B){let Y=E[$-1]||5000;I?.info(`Retrying in ${Y/1000}s...`),await new Promise((X)=>setTimeout(X,Y))}else throw Error(`Failed to request build after ${B} attempts: ${D}`)}throw Error("Unexpected error in fetchWithRetry")}var vCQ=["succeeded","failed","expired","released","cancelled"],wP=new Set(vCQ);function xCQ(A){if(typeof A.data==="string")return A.data;if(A.data instanceof ArrayBuffer)return new TextDecoder().decode(A.data);if(ArrayBuffer.isView(A.data)){let Q=A.data;return new TextDecoder().decode(new Uint8Array(Q.buffer,Q.byteOffset,Q.byteLength))}if(A.data&&typeof A.data.toString==="function")return A.data.toString();return""}function tNA(A,Q,B){if(Q)Q.warn(A);else if(!B)L.warn(A)}async function gCQ(A,Q,B,I){try{if(B)await B.customMsg(A,Q);else if(!I)await C7(A,Q,(E)=>console.log(E),(E)=>L.warn(E))}catch(E){tNA(`Custom message handler encountered an error, continuing... ${String(E)}`,B,I)}}async function bCQ(A,Q=!1,B,I,E,$,G,D){if(A&&!D)return null;let Y=null,X=!1,H=(W)=>{if(!W.trim())return;if(Y)return;if(!X)if(X=!0,D)D.buildLog("");else console.log("");if(D)D.buildLog(W);else console.log(W)},F=async()=>{if(!B||!I)return null;let W=B.replace(/\/+$/,""),K=`${W}/start`,M=`${W}/stream?token=${encodeURIComponent(I)}`.replace(/^https:/,"wss:").replace(/^http:/,"ws:");if(D)D.info("Connecting to log streaming...");else if(!A)console.log("Connecting to log streaming...");let O=await fetch(K,{method:"POST",headers:{"x-capgo-log-token":I}});if(!O.ok){let w=await O.text().catch(()=>"unknown error");if(D)D.warn(`Could not start log session (${O.status}): ${w}`);else if(!A)console.warn(`Could not start log session (${O.status}): ${w}`);return null}return await new Promise((w)=>{let T=!1,R=10,S=0,j=!1,g=new oN(M,void 0,{maxRetries:R,WebSocket:UC}),n=null,e=0,m=Date.now(),QA=!1,i=2000,UA=4,qA=wP,PA=null,o=null,P=(r)=>{if(T)return;if(T=!0,o)clearTimeout(o),o=null;if(n)clearInterval(n),n=null;if($&&PA)$.removeEventListener("abort",PA),PA=null;try{g.close()}catch{}w(r)};o=setTimeout(()=>{if(!T){if(D)D.warn("Log streaming timed out after 3 hours");else if(!A)console.warn("Log streaming timed out after 3 hours");P(null)}},10800000);let v=()=>{if(n)return;n=setInterval(async()=>{try{if(g.readyState===oN.OPEN)g.send(JSON.stringify({type:"heartbeat",lastId:e}));let r=Date.now();if(E&&!QA&&r-m>=i*UA){QA=!0;try{let IA=await E();if(IA&&qA.has(IA))Y=IA,P(Y)}finally{QA=!1}}}catch(r){if(D)D.warn(`Heartbeat encountered an error, continuing... ${String(r)}`);else if(!A)L.warn(`Heartbeat encountered an error, continuing... ${String(r)}`)}},i)},b=async(r)=>{if(r.type==="custom_msg"&&typeof r.kind==="string"&&r.data){m=Date.now(),await gCQ(r.kind,r.data,D,A);return}if(r.type==="status"&&typeof r.status==="string"){let IA=r.status.toLowerCase();if(m=Date.now(),qA.has(IA))Y=IA;return}if(r.type==="log"&&typeof r.message==="string"){m=Date.now(),H(r.message);return}if(typeof r.message==="string")m=Date.now(),H(r.message)},s=(r)=>{if(g.readyState!==oN.OPEN)return;try{g.send(JSON.stringify({type:"confirmed_received",lastId:r}))}catch(IA){tNA(`Failed to send log confirmation, continuing... ${String(IA)}`,D,A)}};if(v(),$){if(PA=()=>{if(!T)P("cancelled")},$.aborted){P("cancelled");return}$.addEventListener("abort",PA)}g.addEventListener("message",async(r)=>{let IA=xCQ(r),RA=null;try{RA=JSON.parse(IA)}catch{RA=null}if(RA?.type==="heartbeat_response")return;if(RA?.type==="batch_messages"&&Array.isArray(RA.messages)){let GA=e;for(let wA of RA.messages)if(await b(wA),typeof wA.id==="number")GA=Math.max(GA,wA.id);if(GA>e)e=GA,s(GA)}else{if(RA)await b(RA);else if(IA)m=Date.now(),H(IA);if(RA&&typeof RA.id==="number"&&RA.id>e)e=RA.id,s(RA.id)}if(Y)P(Y)}),g.addEventListener("error",()=>{if(S+=1,D)D.warn(`Log stream encountered an error, retrying (${S}/${R})...`);else if(!A)console.warn(`Log stream encountered an error, retrying (${S}/${R})...`);if(!j&&S>=R){if(j=!0,D)D.warn("Log stream retry limit reached. Falling back to status checks.");else if(!A)L.warn("Log stream retry limit reached. Falling back to status checks.");if(G)G();P(null)}}),g.addEventListener("close",()=>{if(T)return;if(Y){P(Y);return}if(D)D.warn("Log stream closed, waiting for reconnect...");else if(!A)L.warn("Log stream closed, waiting for reconnect...")})})};try{let W=await F();if(W||Y)return W||Y}catch(W){if(D)D.warn(`Direct log streaming failed${W instanceof Error?`: ${W.message}`:""}`);else if(!A)L.warn(`Direct log streaming failed${W instanceof Error?`: ${W.message}`:""}`)}return Y}async function yCQ(A,Q,B,I,E,$,G=!1,D,Y){let H=0;while(H<120){if(D?.aborted)return"cancelled";try{let F=await fetch(`${A}/build/status?job_id=${encodeURIComponent(Q)}&app_id=${encodeURIComponent(B)}&platform=${I}`,{headers:{authorization:E},signal:D});if(!F.ok){Y?.warn(`Status check failed: ${F.status}`),await new Promise((Z)=>setTimeout(Z,5000)),H++;continue}let W=await F.json(),K=W.status?.toLowerCase?.()??"";if(G)Y?.info(`Build status: ${K||W.status}`);if(wP.has(K))return K;await new Promise((Z)=>setTimeout(Z,5000)),H++}catch(F){if(D?.aborted)return"cancelled";Y?.warn(`Status check error: ${F}`),await new Promise((W)=>setTimeout(W,5000)),H++}}return Y?.warn("Build status polling timed out"),"timeout"}async function fCQ(A,Q,B){let I=new Set,E=new Set,$=!1,G=!1;if(Q==="ios"){let D=f$(A,B,"App","CapApp-SPM","Package.swift");if(DJ(D)){$=!0;let H=(await OP(D,"utf-8")).matchAll(/\.package\s*\([^)]*path:\s*["'](?:\.\.\/)*node_modules\/([^"']+)["']\s*\)/g);for(let F of H){let W=F[1],K=W.lastIndexOf("node_modules/");if(K!==-1)W=W.substring(K+13);I.add(W)}}let Y=f$(A,B);if(DJ(Y)){let X=[f$(Y,"App","Podfile"),f$(Y,"Podfile")];for(let F of di(Y,{withFileTypes:!0}))if(F.isDirectory())X.push(f$(Y,F.name,"Podfile"));let H=[...new Set(X)].filter((F)=>DJ(F));if(H.length>0)G=!0;for(let F of H){let K=(await OP(F,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"](?:\.\.\/)+node_modules\/([^'"]+)['"]/g);for(let Z of K){let M=Z[1],O=M.lastIndexOf("node_modules/");if(O!==-1)M=M.substring(O+13);I.add(M)}}}}else if(Q==="android"){let D=f$(A,B,"capacitor.settings.gradle");if(DJ(D)){let H=(await OP(D,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let F of H){let W=F[1],K=W.lastIndexOf("node_modules/");if(K!==-1)W=W.substring(K+13);let Z=W.replace(/\/(android|capacitor)$/,"");I.add(Z)}}let Y=f$(A,B,"capacitor-cordova-android-plugins","build.gradle");if(DJ(Y)){let H=(await OP(Y,"utf-8")).matchAll(/apply\s+from\s*:\s*["'](?:\.\.\/)+node_modules\/([^"']+)["']/g);for(let F of H){let W=F[1],K=W.lastIndexOf("node_modules/");if(K!==-1)W=W.substring(K+13);let Z=W.split("/"),M=Z[0].startsWith("@")&&Z.length>=2?`${Z[0]}/${Z[1]}`:Z[0];E.add(M)}}}return{packages:I,cordovaPackages:E,usesSPM:$,usesCocoaPods:G}}function aNA(A,Q,B,I){let E=A.replace(/\\/g,"/");if(E.startsWith(`${I}/`))return!0;if(E==="package.json"||E==="package-lock.json"||E.startsWith("capacitor.config."))return!0;if(E.startsWith("resources/"))return!0;if(Q==="ios"&&E.startsWith("node_modules/@capacitor/ios/"))return!0;if(Q==="android"&&E.startsWith("node_modules/@capacitor/android/"))return!0;if(Q==="android")for(let $ of B.cordovaPackages){let G=`node_modules/${$}/`;if(E===`node_modules/${$}/package.json`)return!0;if(E.startsWith(G)){let D=E.slice(G.length);if(D==="node_modules"||D.startsWith("node_modules/"))continue;return!0}}for(let $ of B.packages){let G=`node_modules/${$}/`;if(E===`${G}package.json`)return!0;if(Q==="android"){if(E.startsWith(`${G}android/`))return!0}else if(Q==="ios"){if(E.startsWith(`${G}ios/`))return!0;if(B.usesSPM){if(E===`${G}Package.swift`)return!0}if(B.usesCocoaPods||!B.usesSPM){if(E.startsWith(G)&&E.endsWith(".podspec"))return!0}}}return!1}function aN(A,Q,B,I,E,$){let G=di(Q);for(let D of G){let Y=f$(Q,D),X=B?`${B}/${D}`:D,H=zCQ(Y);if(H.isDirectory()){if(D===".git"||D==="dist"||D==="build"||D===".angular"||D===".vite"||D===".gradle"||D===".idea"||D===".swiftpm")continue;if(D==="node_modules"){aN(A,Y,X,I,E,$);continue}if(D==="resources"){aN(A,Y,X,I,E,$);continue}let F=X.replace(/\\/g,"/"),W=[...E.packages,...E.cordovaPackages];if(aNA(X,I,E,$)||$===F||$.startsWith(`${F}/`)||W.some((Z)=>{return`node_modules/${Z}/`.startsWith(`${F}/`)||F.startsWith(`node_modules/${Z}`)}))aN(A,Y,X,I,E,$)}else if(H.isFile()){if(D===".DS_Store"||D.endsWith(".log"))continue;if(aNA(X,I,E,$))hCQ(A,Y,X)}}}function hCQ(A,Q,B){let I=B.replace(/\\/g,"/");if(A.getEntry(I))return;let E=I.lastIndexOf("/"),$=E===-1?void 0:I.slice(0,E);A.addLocalFile(Q,$)}function uCQ(A){if(!A)return[];let Q=A.split(",").map((B)=>B.trim()).filter(Boolean).map((B)=>ci(B));return[...new Set(Q)]}function mCQ(A,Q){let B=new Set([...Q.packages,...Q.cordovaPackages]);return B.add(A==="ios"?"@capacitor/ios":"@capacitor/android"),B}function cCQ(A,Q){let B=f$(A,...Q.split("/"));if(DJ(B))return B;let I=f$(A,".pnpm");if(!DJ(I))return;let E=Q.replace("/","+"),$=di(I,{withFileTypes:!0}).filter((G)=>G.isDirectory()).map((G)=>G.name).filter((G)=>G.startsWith(`${E}@`)).sort();if($.length>1)throw Error(`Multiple pnpm store entries found for ${Q} in ${I}; provide the app-specific node_modules path so the native build archive can use the exact resolved package.`);for(let G of $){let D=f$(I,G,"node_modules",...Q.split("/"));if(DJ(D))return D}return}function lCQ(A,Q,B,I,E){if(Q.length===0)return;let $=Q.filter((G)=>!DJ(G));if($.length>0)throw Error(`Missing node_modules folder at ${$.join(", ")}`);for(let G of Q)for(let D of mCQ(B,I)){let Y=cCQ(G,D);if(!Y)continue;aN(A,Y,`node_modules/${D}`,B,I,E)}}async function dCQ(A,Q,B,I,E={}){let $=AD(I,B),G=await fCQ(A,B,$),D=new sNA.default;aN(D,A,"",B,G,$),lCQ(D,uCQ(E.nodeModules),B,G,$);let Y=/node_modules\/\.pnpm\/[^/\n\r]+(?:\/[^/\n\r]+)*\/node_modules\//g,X=new Set(["",".gradle",".swift",".json",".lock",".xml",".properties",".pbxproj",".xcconfig",".plist",".podspec",".rb",".yaml",".yml"]);for(let F of D.getEntries()){if(F.isDirectory)continue;let W=F.entryName.includes(".")?`.${F.entryName.split(".").pop()}`:"",K=F.entryName.split("/").pop()||"";if(!X.has(W)&&K!=="Podfile")continue;let Z=F.getData().toString("utf-8"),M=Z.replace(Y,"node_modules/");if(B==="ios"){let O="../".repeat(F.entryName.split("/").length-1);M=M.replace(/(?:\.\.\/){4,}(ios\/|node_modules\/)/g,(w,T)=>`${O}${T}`)}if(M!==Z)D.updateFile(F.entryName,nNA.from(M,"utf-8"))}let H=f$(A,"capacitor.config.json");if(I&&!DJ(H)){let F=`${JSON.stringify(I,null,2)}
721
- `;D.addFile("capacitor.config.json",nNA.from(F,"utf-8"))}await RCQ(Q,D.toBuffer())}var pCQ=new Set(["CAPGO_IOS_SCHEME","CAPGO_IOS_TARGET","CAPGO_IOS_DISTRIBUTION","BUILD_OUTPUT_UPLOAD_ENABLED","BUILD_OUTPUT_RETENTION_SECONDS","SKIP_BUILD_NUMBER_BUMP","CAPGO_IOS_SOURCE_DIR","CAPGO_IOS_APP_DIR","CAPGO_IOS_PROJECT_DIR","IOS_PROJECT_DIR","CAPGO_ANDROID_SOURCE_DIR","CAPGO_ANDROID_APP_DIR","CAPGO_ANDROID_PROJECT_DIR","ANDROID_PROJECT_DIR","CAPGO_ANDROID_FLAVOR"]);function nCQ(A,Q,B,I){let E={platform:Q,buildMode:B,cliVersion:I,iosScheme:A.CAPGO_IOS_SCHEME,iosTarget:A.CAPGO_IOS_TARGET,iosDistribution:A.CAPGO_IOS_DISTRIBUTION,iosSourceDir:A.CAPGO_IOS_SOURCE_DIR,iosAppDir:A.CAPGO_IOS_APP_DIR,iosProjectDir:A.CAPGO_IOS_PROJECT_DIR,androidSourceDir:A.CAPGO_ANDROID_SOURCE_DIR,androidAppDir:A.CAPGO_ANDROID_APP_DIR,androidProjectDir:A.CAPGO_ANDROID_PROJECT_DIR,androidFlavor:A.CAPGO_ANDROID_FLAVOR,outputUploadEnabled:A.BUILD_OUTPUT_UPLOAD_ENABLED==="true",outputRetentionSeconds:A.BUILD_OUTPUT_RETENTION_SECONDS?Number.parseInt(A.BUILD_OUTPUT_RETENTION_SECONDS,10)||Z9:Z9,skipBuildNumberBump:A.SKIP_BUILD_NUMBER_BUMP==="true"},$={};for(let[G,D]of Object.entries(A))if(!pCQ.has(G)&&D!==void 0)$[G]=D;return{buildOptions:E,buildCredentials:$}}async function Z7(A,Q,B=!1,I){let E=Date.now(),$=Q.verbose??!1,G=I||PCQ(B),D=null,Y=Q.outputRecord?{...G,customMsg:async(X,H)=>{if(X==="qr_download_link"&&typeof H.url==="string")D=H.url;await G.customMsg(X,H)}}:G;try{Q.apikey=Q.apikey||lQ(B);let X=ci(Q.path||li()),H=await _CQ(X,()=>IB());if(A=A||H?.config?.appId,!A)throw Error("Missing argument, you need to provide a appId, or be in a capacitor project");let F=await jCQ(Q.platform,{silent:B}),W=Q.supaHost||"https://api.capgo.app",K=await UB(Q.apikey,Q.supaHost,Q.supaAnon);await _M(K,Q.apikey,"app.build_native",{appId:A},{message:`Insufficient permissions to request a native build for app ${A}`,silent:B});let Z=await D1(K,A);if(Y.info(`Requesting native build for ${A}`),Y.info(`Platform: ${F}`),Y.info(`Project: ${X}`),Y.info(`
720
+ `,"utf-8"),D}function dNA(A){if(A instanceof Error)return A.message;return String(A)}zB();function KCQ(A){if(!A||typeof A!=="object")return;let Q=A.originalResponse?.getStatus?.();return typeof Q==="number"?Q:void 0}function qCQ(A){let Q=KCQ(A);if(Q===401||Q===403)return"unauthorized";if(Q===413)return"payload_too_large";if(Q!==void 0&&Q>=500&&Q<600)return"storage_failure";if(Q===void 0||Q===0)return"network_error";return"unknown"}var ZCQ={started:"Builder Upload Started",succeeded:"Builder Upload Succeeded",failed:"Builder Upload Failed"},MCQ={started:"⬆️",succeeded:"\uD83D\uDCE6",failed:"\uD83D\uDEAB"};async function LP(A){let Q={app_id:A.appId,platform:A.platform,build_mode:A.buildMode,job_id:A.jobId,upload_size_bytes:String(A.sizeBytes)};if(typeof A.durationSeconds==="number"&&Number.isFinite(A.durationSeconds))Q.upload_duration_seconds=String(Math.round(A.durationSeconds));if(A.phase==="failed"&&A.error!==void 0)Q.failure_category=qCQ(A.error);try{await NB(A.apikey,{event:ZCQ[A.phase],channel:"build-lifecycle",icon:MCQ[A.phase],notify:!1,org_id:A.orgId,tracking_version:2,tags:Q})}catch{}}async function SCQ(){return eE({message:"No platform selected. Which platform do you want to build?",options:[{value:"ios",label:"iOS"},{value:"android",label:"Android"}]})}async function jCQ(A,{silent:Q=!1,interactive:B=_F({silent:Q}),promptPlatform:I=SCQ}={}){if(A==="ios"||A==="android")return A;if(A)throw Error(`Invalid platform "${A}". Must be "ios" or "android"`);if(!B)throw Error("Missing required argument: --platform <ios|android>. In an interactive terminal, you can omit --platform and choose one when prompted.");let E=await I();if(U0(E))throw Error("Build request canceled.");if(E!=="ios"&&E!=="android")throw Error("Build request canceled.");return E}function PCQ(A){return{info:(Q)=>{if(!A)L.info(Q)},error:(Q)=>{if(!A)L.error(Q)},warn:(Q)=>{if(!A)L.warn(Q)},success:(Q)=>{if(!A)L.success(Q)},buildLog:(Q)=>{if(!A)console.log(Q)},uploadProgress:(()=>{let Q=A?null:E1(),B=!1;return(I)=>{if(A||!Q)return;if(!B)Q.start("Uploading bundle"),B=!0;if(I>=100)Q.stop("Upload complete!");else Q.message(`Uploading ${I.toFixed(0)}%`)}})(),customMsg:async(Q,B)=>{if(!A)await C7(Q,B,(I)=>console.log(I),(I)=>L.warn(I))}}}var oNA=Promise.resolve();async function _CQ(A,Q){let B=async()=>{let E=li();try{rNA(A)}catch($){throw Error(`Failed to change working directory to "${A}": ${$.message}`)}try{return await Q()}finally{try{rNA(E)}catch{}}},I=oNA.then(B,B);return oNA=I.then(()=>{return},()=>{return}),I}async function kCQ(A,Q,B=3,I){let E=[1000,3000,5000];for(let $=1;$<=B;$++)try{let G=await fetch(A,Q);if(G.ok||G.status>=400&&G.status<500)return G;let D=await G.text().catch(()=>"unknown error");if(I?.warn(`Build request attempt ${$}/${B} failed: ${G.status} - ${D}`),$<B){let Y=E[$-1]||5000;I?.info(`Retrying in ${Y/1000}s...`),await new Promise((X)=>setTimeout(X,Y))}else throw Error(`Failed to request build after ${B} attempts: ${G.status} - ${D}`)}catch(G){let D=G instanceof Error?G.message:String(G);if(D.startsWith("Failed to request build after"))throw G;if(I?.warn(`Build request attempt ${$}/${B} failed: ${D}`),$<B){let Y=E[$-1]||5000;I?.info(`Retrying in ${Y/1000}s...`),await new Promise((X)=>setTimeout(X,Y))}else throw Error(`Failed to request build after ${B} attempts: ${D}`)}throw Error("Unexpected error in fetchWithRetry")}var vCQ=["succeeded","failed","expired","released","cancelled"],wP=new Set(vCQ);function xCQ(A){if(typeof A.data==="string")return A.data;if(A.data instanceof ArrayBuffer)return new TextDecoder().decode(A.data);if(ArrayBuffer.isView(A.data)){let Q=A.data;return new TextDecoder().decode(new Uint8Array(Q.buffer,Q.byteOffset,Q.byteLength))}if(A.data&&typeof A.data.toString==="function")return A.data.toString();return""}function tNA(A,Q,B){if(Q)Q.warn(A);else if(!B)L.warn(A)}async function gCQ(A,Q,B,I){try{if(B)await B.customMsg(A,Q);else if(!I)await C7(A,Q,(E)=>console.log(E),(E)=>L.warn(E))}catch(E){tNA(`Custom message handler encountered an error, continuing... ${String(E)}`,B,I)}}async function bCQ(A,Q=!1,B,I,E,$,G,D){if(A&&!D)return null;let Y=null,X=!1,H=(W)=>{if(!W.trim())return;if(Y)return;if(!X)if(X=!0,D)D.buildLog("");else console.log("");if(D)D.buildLog(W);else console.log(W)},F=async()=>{if(!B||!I)return null;let W=B.replace(/\/+$/,""),K=`${W}/start`,M=`${W}/stream?token=${encodeURIComponent(I)}`.replace(/^https:/,"wss:").replace(/^http:/,"ws:");if(D)D.info("Connecting to log streaming...");else if(!A)console.log("Connecting to log streaming...");let O=await fetch(K,{method:"POST",headers:{"x-capgo-log-token":I}});if(!O.ok){let w=await O.text().catch(()=>"unknown error");if(D)D.warn(`Could not start log session (${O.status}): ${w}`);else if(!A)console.warn(`Could not start log session (${O.status}): ${w}`);return null}return await new Promise((w)=>{let T=!1,R=10,S=0,j=!1,g=new oN(M,void 0,{maxRetries:R,WebSocket:UC}),n=null,e=0,m=Date.now(),QA=!1,i=2000,UA=4,qA=wP,PA=null,o=null,P=(r)=>{if(T)return;if(T=!0,o)clearTimeout(o),o=null;if(n)clearInterval(n),n=null;if($&&PA)$.removeEventListener("abort",PA),PA=null;try{g.close()}catch{}w(r)};o=setTimeout(()=>{if(!T){if(D)D.warn("Log streaming timed out after 3 hours");else if(!A)console.warn("Log streaming timed out after 3 hours");P(null)}},10800000);let v=()=>{if(n)return;n=setInterval(async()=>{try{if(g.readyState===oN.OPEN)g.send(JSON.stringify({type:"heartbeat",lastId:e}));let r=Date.now();if(E&&!QA&&r-m>=i*UA){QA=!0;try{let IA=await E();if(IA&&qA.has(IA))Y=IA,P(Y)}finally{QA=!1}}}catch(r){if(D)D.warn(`Heartbeat encountered an error, continuing... ${String(r)}`);else if(!A)L.warn(`Heartbeat encountered an error, continuing... ${String(r)}`)}},i)},b=async(r)=>{if(r.type==="custom_msg"&&typeof r.kind==="string"&&r.data){m=Date.now(),await gCQ(r.kind,r.data,D,A);return}if(r.type==="status"&&typeof r.status==="string"){let IA=r.status.toLowerCase();if(m=Date.now(),qA.has(IA))Y=IA;return}if(r.type==="log"&&typeof r.message==="string"){m=Date.now(),H(r.message);return}if(typeof r.message==="string")m=Date.now(),H(r.message)},s=(r)=>{if(g.readyState!==oN.OPEN)return;try{g.send(JSON.stringify({type:"confirmed_received",lastId:r}))}catch(IA){tNA(`Failed to send log confirmation, continuing... ${String(IA)}`,D,A)}};if(v(),$){if(PA=()=>{if(!T)P("cancelled")},$.aborted){P("cancelled");return}$.addEventListener("abort",PA)}g.addEventListener("message",async(r)=>{let IA=xCQ(r),RA=null;try{RA=JSON.parse(IA)}catch{RA=null}if(RA?.type==="heartbeat_response")return;if(RA?.type==="batch_messages"&&Array.isArray(RA.messages)){let GA=e;for(let wA of RA.messages)if(await b(wA),typeof wA.id==="number")GA=Math.max(GA,wA.id);if(GA>e)e=GA,s(GA)}else{if(RA)await b(RA);else if(IA)m=Date.now(),H(IA);if(RA&&typeof RA.id==="number"&&RA.id>e)e=RA.id,s(RA.id)}if(Y)P(Y)}),g.addEventListener("error",()=>{if(S+=1,D)D.warn(`Log stream encountered an error, retrying (${S}/${R})...`);else if(!A)console.warn(`Log stream encountered an error, retrying (${S}/${R})...`);if(!j&&S>=R){if(j=!0,D)D.warn("Log stream retry limit reached. Falling back to status checks.");else if(!A)L.warn("Log stream retry limit reached. Falling back to status checks.");if(G)G();P(null)}}),g.addEventListener("close",()=>{if(T)return;if(Y){P(Y);return}if(D)D.warn("Log stream closed, waiting for reconnect...");else if(!A)L.warn("Log stream closed, waiting for reconnect...")})})};try{let W=await F();if(W||Y)return W||Y}catch(W){if(D)D.warn(`Direct log streaming failed${W instanceof Error?`: ${W.message}`:""}`);else if(!A)L.warn(`Direct log streaming failed${W instanceof Error?`: ${W.message}`:""}`)}return Y}async function yCQ(A,Q,B,I,E,$,G=!1,D,Y){let H=0;while(H<120){if(D?.aborted)return"cancelled";try{let F=await fetch(`${A}/build/status?job_id=${encodeURIComponent(Q)}&app_id=${encodeURIComponent(B)}&platform=${I}`,{headers:{authorization:E},signal:D});if(!F.ok){Y?.warn(`Status check failed: ${F.status}`),await new Promise((Z)=>setTimeout(Z,5000)),H++;continue}let W=await F.json(),K=W.status?.toLowerCase?.()??"";if(G)Y?.info(`Build status: ${K||W.status}`);if(wP.has(K))return K;await new Promise((Z)=>setTimeout(Z,5000)),H++}catch(F){if(D?.aborted)return"cancelled";Y?.warn(`Status check error: ${F}`),await new Promise((W)=>setTimeout(W,5000)),H++}}return Y?.warn("Build status polling timed out"),"timeout"}async function fCQ(A,Q,B){let I=new Set,E=new Set,$=!1,G=!1;if(Q==="ios"){let D=f$(A,B,"App","CapApp-SPM","Package.swift");if(DJ(D)){$=!0;let H=(await OP(D,"utf-8")).matchAll(/\.package\s*\([^)]*path:\s*["'](?:\.\.\/)*node_modules\/([^"']+)["']\s*\)/g);for(let F of H){let W=F[1],K=W.lastIndexOf("node_modules/");if(K!==-1)W=W.substring(K+13);I.add(W)}}let Y=f$(A,B);if(DJ(Y)){let X=[f$(Y,"App","Podfile"),f$(Y,"Podfile")];for(let F of di(Y,{withFileTypes:!0}))if(F.isDirectory())X.push(f$(Y,F.name,"Podfile"));let H=[...new Set(X)].filter((F)=>DJ(F));if(H.length>0)G=!0;for(let F of H){let K=(await OP(F,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"](?:\.\.\/)+node_modules\/([^'"]+)['"]/g);for(let Z of K){let M=Z[1],O=M.lastIndexOf("node_modules/");if(O!==-1)M=M.substring(O+13);I.add(M)}}}}else if(Q==="android"){let D=f$(A,B,"capacitor.settings.gradle");if(DJ(D)){let H=(await OP(D,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let F of H){let W=F[1],K=W.lastIndexOf("node_modules/");if(K!==-1)W=W.substring(K+13);let Z=W.replace(/\/(android|capacitor)$/,"");I.add(Z)}}let Y=f$(A,B,"capacitor-cordova-android-plugins","build.gradle");if(DJ(Y)){let H=(await OP(Y,"utf-8")).matchAll(/apply\s+from\s*:\s*["'](?:\.\.\/)+node_modules\/([^"']+)["']/g);for(let F of H){let W=F[1],K=W.lastIndexOf("node_modules/");if(K!==-1)W=W.substring(K+13);let Z=W.split("/"),M=Z[0].startsWith("@")&&Z.length>=2?`${Z[0]}/${Z[1]}`:Z[0];E.add(M)}}}return{packages:I,cordovaPackages:E,usesSPM:$,usesCocoaPods:G}}function aNA(A,Q,B,I){let E=A.replace(/\\/g,"/");if(E.startsWith(`${I}/`))return!0;if(E==="package.json"||E==="package-lock.json"||E.startsWith("capacitor.config."))return!0;if(E.startsWith("resources/"))return!0;if(Q==="ios"&&E.startsWith("node_modules/@capacitor/ios/"))return!0;if(Q==="android"&&E.startsWith("node_modules/@capacitor/android/"))return!0;if(Q==="android")for(let $ of B.cordovaPackages){let G=`node_modules/${$}/`;if(E===`node_modules/${$}/package.json`)return!0;if(E.startsWith(G)){let D=E.slice(G.length);if(D==="node_modules"||D.startsWith("node_modules/"))continue;return!0}}for(let $ of B.packages){let G=`node_modules/${$}/`;if(E===`${G}package.json`)return!0;if(Q==="android"){if(E.startsWith(`${G}android/`))return!0}else if(Q==="ios"){if(E.startsWith(`${G}ios/`))return!0;if(B.usesSPM){if(E===`${G}Package.swift`)return!0}if(B.usesCocoaPods||!B.usesSPM){if(E.startsWith(G)&&E.endsWith(".podspec"))return!0}}}return!1}function aN(A,Q,B,I,E,$){let G=di(Q);for(let D of G){let Y=f$(Q,D),X=B?`${B}/${D}`:D,H=zCQ(Y);if(H.isDirectory()){if(D===".git"||D==="dist"||D==="build"||D===".angular"||D===".vite"||D===".gradle"||D===".idea"||D===".swiftpm")continue;if(D==="node_modules"){aN(A,Y,X,I,E,$);continue}if(D==="resources"){aN(A,Y,X,I,E,$);continue}let F=X.replace(/\\/g,"/"),W=[...E.packages,...E.cordovaPackages];if(aNA(X,I,E,$)||$===F||$.startsWith(`${F}/`)||W.some((Z)=>{return`node_modules/${Z}/`.startsWith(`${F}/`)||F.startsWith(`node_modules/${Z}`)}))aN(A,Y,X,I,E,$)}else if(H.isFile()){if(D===".DS_Store"||D.endsWith(".log"))continue;if(aNA(X,I,E,$))hCQ(A,Y,X)}}}function hCQ(A,Q,B){let I=B.replace(/\\/g,"/");if(A.getEntry(I))return;let E=I.lastIndexOf("/"),$=E===-1?void 0:I.slice(0,E);A.addLocalFile(Q,$)}function uCQ(A){if(!A)return[];let Q=A.split(",").map((B)=>B.trim()).filter(Boolean).map((B)=>ci(B));return[...new Set(Q)]}function mCQ(A,Q){let B=new Set([...Q.packages,...Q.cordovaPackages]);return B.add(A==="ios"?"@capacitor/ios":"@capacitor/android"),B}function cCQ(A,Q){let B=f$(A,...Q.split("/"));if(DJ(B))return B;let I=f$(A,".pnpm");if(!DJ(I))return;let E=Q.replace("/","+"),$=di(I,{withFileTypes:!0}).filter((G)=>G.isDirectory()).map((G)=>G.name).filter((G)=>G.startsWith(`${E}@`)).sort();if($.length>1)throw Error(`Multiple pnpm store entries found for ${Q} in ${I}; provide the app-specific node_modules path so the native build archive can use the exact resolved package.`);for(let G of $){let D=f$(I,G,"node_modules",...Q.split("/"));if(DJ(D))return D}return}function lCQ(A,Q,B,I,E){if(Q.length===0)return;let $=Q.filter((G)=>!DJ(G));if($.length>0)throw Error(`Missing node_modules folder at ${$.join(", ")}`);for(let G of Q)for(let D of mCQ(B,I)){let Y=cCQ(G,D);if(!Y)continue;aN(A,Y,`node_modules/${D}`,B,I,E)}}async function dCQ(A,Q,B,I,E={}){let $=AD(I,B),G=await fCQ(A,B,$),D=new sNA.default;aN(D,A,"",B,G,$),lCQ(D,uCQ(E.nodeModules),B,G,$);let Y=/node_modules\/\.pnpm\/[^/\n\r]+(?:\/[^/\n\r]+)*\/node_modules\//g,X=/node_modules\/\.bun\/[^/\n\r]+(?:\/[^/\n\r]+)*\/node_modules\//g,H=new Set(["",".gradle",".swift",".json",".lock",".xml",".properties",".pbxproj",".xcconfig",".plist",".podspec",".rb",".yaml",".yml"]);for(let W of D.getEntries()){if(W.isDirectory)continue;let K=W.entryName.includes(".")?`.${W.entryName.split(".").pop()}`:"",Z=W.entryName.split("/").pop()||"";if(!H.has(K)&&Z!=="Podfile")continue;let M=W.getData().toString("utf-8"),O=M.replace(Y,"node_modules/").replace(X,"node_modules/");if(B==="ios"){let w="../".repeat(W.entryName.split("/").length-1);O=O.replace(/(?:\.\.\/){4,}(ios\/|node_modules\/)/g,(T,R)=>`${w}${R}`)}if(O!==M)D.updateFile(W.entryName,nNA.from(O,"utf-8"))}let F=f$(A,"capacitor.config.json");if(I&&!DJ(F)){let W=`${JSON.stringify(I,null,2)}
721
+ `;D.addFile("capacitor.config.json",nNA.from(W,"utf-8"))}await RCQ(Q,D.toBuffer())}var pCQ=new Set(["CAPGO_IOS_SCHEME","CAPGO_IOS_TARGET","CAPGO_IOS_DISTRIBUTION","BUILD_OUTPUT_UPLOAD_ENABLED","BUILD_OUTPUT_RETENTION_SECONDS","SKIP_BUILD_NUMBER_BUMP","CAPGO_IOS_SOURCE_DIR","CAPGO_IOS_APP_DIR","CAPGO_IOS_PROJECT_DIR","IOS_PROJECT_DIR","CAPGO_ANDROID_SOURCE_DIR","CAPGO_ANDROID_APP_DIR","CAPGO_ANDROID_PROJECT_DIR","ANDROID_PROJECT_DIR","CAPGO_ANDROID_FLAVOR"]);function nCQ(A,Q,B,I){let E={platform:Q,buildMode:B,cliVersion:I,iosScheme:A.CAPGO_IOS_SCHEME,iosTarget:A.CAPGO_IOS_TARGET,iosDistribution:A.CAPGO_IOS_DISTRIBUTION,iosSourceDir:A.CAPGO_IOS_SOURCE_DIR,iosAppDir:A.CAPGO_IOS_APP_DIR,iosProjectDir:A.CAPGO_IOS_PROJECT_DIR,androidSourceDir:A.CAPGO_ANDROID_SOURCE_DIR,androidAppDir:A.CAPGO_ANDROID_APP_DIR,androidProjectDir:A.CAPGO_ANDROID_PROJECT_DIR,androidFlavor:A.CAPGO_ANDROID_FLAVOR,outputUploadEnabled:A.BUILD_OUTPUT_UPLOAD_ENABLED==="true",outputRetentionSeconds:A.BUILD_OUTPUT_RETENTION_SECONDS?Number.parseInt(A.BUILD_OUTPUT_RETENTION_SECONDS,10)||Z9:Z9,skipBuildNumberBump:A.SKIP_BUILD_NUMBER_BUMP==="true"},$={};for(let[G,D]of Object.entries(A))if(!pCQ.has(G)&&D!==void 0)$[G]=D;return{buildOptions:E,buildCredentials:$}}async function Z7(A,Q,B=!1,I){let E=Date.now(),$=Q.verbose??!1,G=I||PCQ(B),D=null,Y=Q.outputRecord?{...G,customMsg:async(X,H)=>{if(X==="qr_download_link"&&typeof H.url==="string")D=H.url;await G.customMsg(X,H)}}:G;try{Q.apikey=Q.apikey||lQ(B);let X=ci(Q.path||li()),H=await _CQ(X,()=>IB());if(A=A||H?.config?.appId,!A)throw Error("Missing argument, you need to provide a appId, or be in a capacitor project");let F=await jCQ(Q.platform,{silent:B}),W=Q.supaHost||"https://api.capgo.app",K=await UB(Q.apikey,Q.supaHost,Q.supaAnon);await _M(K,Q.apikey,"app.build_native",{appId:A},{message:`Insufficient permissions to request a native build for app ${A}`,silent:B});let Z=await D1(K,A);if(Y.info(`Requesting native build for ${A}`),Y.info(`Platform: ${F}`),Y.info(`Project: ${X}`),Y.info(`
722
722
  \uD83D\uDD12 Security: Credentials are never stored on Capgo servers`),Y.info(" They are used only during build and deleted after"),Y.info(` Build outputs can optionally be uploaded for time-limited download links
723
723
  `),$)Y.info(`API host: ${W}`);let M={};if(Q.buildCertificateBase64)M.BUILD_CERTIFICATE_BASE64=Q.buildCertificateBase64;if(Q.p12Password)M.P12_PASSWORD=Q.p12Password;if(Q.appleKeyId)M.APPLE_KEY_ID=Q.appleKeyId;if(Q.appleIssuerId)M.APPLE_ISSUER_ID=Q.appleIssuerId;if(Q.appleKeyContent)M.APPLE_KEY_CONTENT=Q.appleKeyContent;if(Q.appStoreConnectTeamId)M.APP_STORE_CONNECT_TEAM_ID=Q.appStoreConnectTeamId;if(Q.iosScheme)M.CAPGO_IOS_SCHEME=Q.iosScheme;if(Q.iosTarget)M.CAPGO_IOS_TARGET=Q.iosTarget;if(Q.iosDistribution)M.CAPGO_IOS_DISTRIBUTION=Q.iosDistribution;if(Q.iosProvisioningProfile&&Q.iosProvisioningProfile.length>0){let s=vS(Q.iosProvisioningProfile,ci(Q.path||li()));M.CAPGO_IOS_PROVISIONING_MAP=JSON.stringify(s)}if(Q.iosProvisioningMap)M.CAPGO_IOS_PROVISIONING_MAP=Q.iosProvisioningMap;if(Q.androidKeystoreFile)M.ANDROID_KEYSTORE_FILE=Q.androidKeystoreFile;if(Q.keystoreKeyAlias)M.KEYSTORE_KEY_ALIAS=Q.keystoreKeyAlias;let O=!!Q.keystoreKeyPassword,w=!!Q.keystoreStorePassword;if(O&&!w)M.KEYSTORE_KEY_PASSWORD=Q.keystoreKeyPassword,M.KEYSTORE_STORE_PASSWORD=Q.keystoreKeyPassword;else if(!O&&w)M.KEYSTORE_KEY_PASSWORD=Q.keystoreStorePassword,M.KEYSTORE_STORE_PASSWORD=Q.keystoreStorePassword;else if(O&&w)M.KEYSTORE_KEY_PASSWORD=Q.keystoreKeyPassword,M.KEYSTORE_STORE_PASSWORD=Q.keystoreStorePassword;if(typeof Q.androidFlavor==="string"){let s=Q.androidFlavor.trim();if(s)M.CAPGO_ANDROID_FLAVOR=s}if(Q.playConfigJson)M.PLAY_CONFIG_JSON=Q.playConfigJson;if(Q.inAppUpdatePriority!==void 0)M.PLAY_STORE_IN_APP_UPDATE_PRIORITY=String(mF(Q.inAppUpdatePriority));if(Q.outputUpload!==void 0)M.BUILD_OUTPUT_UPLOAD_ENABLED=sD(Q.outputUpload)?"true":"false";if(Q.outputRetention)M.BUILD_OUTPUT_RETENTION_SECONDS=String(uF(Q.outputRetention));if(Q.skipBuildNumberBump!==void 0)M.SKIP_BUILD_NUMBER_BUMP=sD(Q.skipBuildNumberBump)?"true":"false";let T=await M3A(A,F,Object.keys(M).length>0?M:void 0);if(Q.playstoreUpload===!1&&T)delete T.PLAY_CONFIG_JSON,Y.info("ℹ️ --no-playstore-upload specified, Play Store upload disabled for this build");let R=AD(H?.config,F);if(T&&R)if(F==="ios")T.CAPGO_IOS_SOURCE_DIR=R,T.CAPGO_IOS_APP_DIR=R,T.CAPGO_IOS_PROJECT_DIR=R,T.IOS_PROJECT_DIR=R;else T.CAPGO_ANDROID_SOURCE_DIR=R,T.CAPGO_ANDROID_APP_DIR=R,T.CAPGO_ANDROID_PROJECT_DIR=R,T.ANDROID_PROJECT_DIR=R;if(!T)throw Y.error("❌ No credentials found for this app and platform"),Y.error(""),Y.error("You must provide credentials via:"),Y.error(" 1. CLI arguments (--apple-key-id, --p12-password, etc.)"),Y.error(" 2. Environment variables (APPLE_KEY_ID, P12_PASSWORD, etc.)"),Y.error(" 3. Saved credentials file:"),Y.error(` npx @capgo/cli build credentials save --appId ${A} --platform ${F}`),Y.error(""),Y.error("Documentation:"),Y.error(" https://capgo.app/docs/cli/cloud-build/credentials/"),Error("No credentials found. Please provide credentials before building.");let S=[];if(F==="ios"){let s=T.CAPGO_IOS_DISTRIBUTION,r=["app_store","ad_hoc"];if(s&&!r.includes(s))S.push(`Invalid CAPGO_IOS_DISTRIBUTION value: '${s}'. Must be one of: ${r.join(", ")}`);let IA=s&&r.includes(s)?s:"app_store";if(!s)Y.info("ℹ️ --ios-distribution not specified, defaulting to app_store");if(T.CAPGO_IOS_DISTRIBUTION=IA,!T.BUILD_CERTIFICATE_BASE64)S.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)");if(!T.P12_PASSWORD)Y.warn("⚠️ P12_PASSWORD not provided - assuming certificate has no password"),Y.warn(" If your certificate requires a password, provide it with --p12-password");if(!!(T.BUILD_PROVISION_PROFILE_BASE64||T.APPLE_PROFILE_NAME)&&!T.CAPGO_IOS_PROVISIONING_MAP)throw Y.error("❌ Legacy provisioning profile format detected. Run:"),Y.error(" npx @capgo/cli build credentials migrate --platform ios"),Y.error(""),Y.error(" This will convert your existing provisioning profile to the new multi-target format."),Error("Legacy provisioning profile format detected. Run: npx @capgo/cli build credentials migrate --platform ios");if(!T.CAPGO_IOS_PROVISIONING_MAP)S.push('CAPGO_IOS_PROVISIONING_MAP (use --ios-provisioning-profile or save via "build credentials save")');if(IA==="app_store"){let GA=!!T.APPLE_KEY_ID,wA=!!T.APPLE_ISSUER_ID,BQ=!!T.APPLE_KEY_CONTENT,uA=GA||wA||BQ;if(!(GA&&wA&&BQ))if(uA){let tQ=[];if(!GA)tQ.push("APPLE_KEY_ID (or --apple-key-id)");if(!wA)tQ.push("APPLE_ISSUER_ID (or --apple-issuer-id)");if(!BQ)tQ.push("APPLE_KEY_CONTENT (or --apple-key-content)");S.push(`Incomplete App Store Connect API key - missing: ${tQ.join(", ")}`)}else if(T.BUILD_OUTPUT_UPLOAD_ENABLED!=="true")S.push("APPLE_KEY_ID/APPLE_ISSUER_ID/APPLE_KEY_CONTENT or BUILD_OUTPUT_UPLOAD_ENABLED=true (or --output-upload) (build has no output destination - enable either TestFlight upload or Capgo download link)");else if(T.SKIP_BUILD_NUMBER_BUMP!=="true")S.push("APPLE_KEY_ID/APPLE_ISSUER_ID/APPLE_KEY_CONTENT or --skip-build-number-bump (App Store Connect API key not provided - build numbers cannot be auto-incremented without it)");else Y.warn("⚠️ App Store Connect API key not provided - build will succeed but cannot auto-upload to TestFlight")}else if(IA==="ad_hoc")Y.info("\uD83D\uDCE6 Ad-hoc distribution mode: App Store Connect API key not required"),Y.info(" Build number will use timestamp-based fallback");if(!T.APP_STORE_CONNECT_TEAM_ID)S.push("APP_STORE_CONNECT_TEAM_ID (or --app-store-connect-team-id)")}else if(F==="android"){if(!T.ANDROID_KEYSTORE_FILE)S.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)");if(!T.KEYSTORE_KEY_ALIAS)S.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)");if(!T.KEYSTORE_KEY_PASSWORD&&!T.KEYSTORE_STORE_PASSWORD)S.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)");if(!T.PLAY_CONFIG_JSON)if(T.BUILD_OUTPUT_UPLOAD_ENABLED!=="true")S.push("PLAY_CONFIG_JSON or BUILD_OUTPUT_UPLOAD_ENABLED=true (build has no output destination - enable either Play Store upload or Capgo download link)");else Y.warn("⚠️ PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")}if(S.length>0){Y.error(`❌ Missing required credentials for ${F}:`),Y.error("");for(let s of S)Y.error(` • ${s}`);throw Y.error(""),Y.error("Provide credentials via:"),Y.error(` 1. CLI arguments: npx @capgo/cli build request --platform ${F} ${F==="ios"?'--apple-key-id "..." --apple-issuer-id "..." --apple-key-content "..."':'--android-keystore-file "..." --keystore-key-alias "..."'}`),Y.error(` 2. Environment variables: ${F==="ios"?'export APPLE_KEY_ID="..." APPLE_ISSUER_ID="..." APPLE_KEY_CONTENT="..."':'export ANDROID_KEYSTORE_FILE="..." KEYSTORE_KEY_ALIAS="..."'}`),Y.error(` 3. Saved credentials: npx @capgo/cli build credentials save --platform ${F} ...`),Y.error(""),Y.error("Documentation:"),Y.error(` https://capgo.app/docs/cli/cloud-build/${F}/`),Error(`Missing required credentials for ${F}: ${S.join(", ")}`)}if(!Q.buildMode)Y.info("ℹ️ --build-mode not specified, defaulting to release");if(!T.BUILD_OUTPUT_UPLOAD_ENABLED)Y.info("ℹ️ --output-upload not specified, defaulting to false (no Capgo download link)");if(!T.BUILD_OUTPUT_RETENTION_SECONDS)Y.info(`ℹ️ --output-retention not specified, defaulting to ${Z9}s (1 hour)`);if(!T.SKIP_BUILD_NUMBER_BUMP)Y.info("ℹ️ --skip-build-number-bump not specified, build number will be auto-incremented (default)");let{buildOptions:j,buildCredentials:g}=nCQ(T,F,Q.buildMode||"release",$E.version),n={app_id:A,platform:F,build_mode:Q.buildMode||"release",build_options:j,build_credentials:g};if(Y.info("✓ Using credentials (merged from CLI args, env vars, and saved file)"),$){let s=Object.keys(g);Y.info(`Credentials provided: ${s.join(", ")}`),Y.info(`Build options: platform=${j.platform}, mode=${j.buildMode}, cliVersion=${j.cliVersion}`)}Y.info("Requesting build from Capgo...");let e=3,m=await kCQ(`${W}/build/request`,{method:"POST",headers:{"Content-Type":"application/json",authorization:Q.apikey},body:JSON.stringify(n)},e,Y);if(!m.ok){let s=await m.text();throw Error(`Failed to request build: ${m.status} - ${s}`)}let QA=await m.json();if(Y.success(`Build job created: ${QA.job_id}`),Y.info(`Status: ${QA.status}`),$)Y.info(`Upload URL: ${QA.upload_url}`),Y.info(`Upload expires: ${QA.upload_expires_at}`);let i=Q.aiAnalysisMode??"auto-prompt",UA=(vNA()||Q.aiAnalytics===!0||i==="caller-handled")&&i!=="skip",qA=null,PA=!1,o;if(UA&&QA.job_id)qA=QA.job_id,await xNA(QA.job_id),bNA(QA.job_id,()=>PA);let P={...Y,buildLog:(s)=>{if(Y.buildLog(s),UA&&qA)gNA(qA,s)}};await NB(Q.apikey,{channel:"native-builder",event:"Build requested",icon:"\uD83C\uDFD7️",org_id:Z,tracking_version:2,tags:{"app-id":A,platform:F},notify:!1}).catch();let v=f$(VCQ(),`capgo-build-${Date.now()}`);await LCQ(v,{recursive:!0});let b=f$(v,`${iNA(X)}.zip`);try{Y.info(`Zipping ${F} project from ${X}...`),await dCQ(X,b,F,H?.config,{nodeModules:Q.nodeModules});let s=await wCQ(b),r=(s.size/1024/1024).toFixed(2);if(Y.success(`Created zip: ${b} (${r} MB)`),Y.info("Uploading to builder..."),$)Y.info(`Upload endpoint: ${QA.upload_url}`),Y.info(`File size: ${r} MB`),Y.info(`Job ID: ${QA.job_id}`);let IA=NCQ(b);Y.uploadProgress(0);let RA=Date.now(),GA=Q.buildMode||"release";LP({apikey:Q.apikey,appId:A,orgId:Z,platform:F,buildMode:GA,jobId:QA.job_id,sizeBytes:s.size,phase:"started"}),await new Promise((DQ,_B)=>{let SB=new RP.Upload(IA,{endpoint:QA.upload_url,chunkSize:5242880,metadata:{filename:iNA(b),filetype:"application/zip"},headers:{authorization:Q.apikey},onBeforeRequest(jQ){if($){Y.info(`[TUS] ${jQ.getMethod()} ${jQ.getURL()}`);let j0=jQ.getHeader("authorization");Y.info(`[TUS] Authorization header present: ${!!j0}`)}},onAfterResponse(jQ,j0){if($){Y.info(`[TUS] Response status: ${j0.getStatus()}`);let sB=j0.getHeader("upload-offset"),f0=j0.getHeader("tus-resumable");Y.info(`[TUS] Upload-Offset: ${sB}, Tus-Resumable: ${f0}`)}},async onError(jQ){if(await LP({apikey:Q.apikey,appId:A,orgId:Z,platform:F,buildMode:GA,jobId:QA.job_id,sizeBytes:s.size,phase:"failed",durationSeconds:(Date.now()-RA)/1000,error:jQ}),Y.error(`Upload error: ${jQ.message}`),jQ instanceof RP.DetailedError){let j0=jQ.originalResponse?.getBody(),sB=jQ.originalResponse?.getStatus(),f0=jQ.originalRequest?.getURL();if($)Y.error(`[TUS] Request URL: ${f0}`),Y.error(`[TUS] Response status: ${sB}`),Y.error(`[TUS] Response body: ${j0}`);let R0=(()=>{try{let eI=JSON.parse(j0||'{"error": "unknown error"}');return eI.status||eI.error||eI.message||"unknown error"}catch{return j0||jQ.message}})();_B(Error(`TUS upload failed: ${R0}`))}else _B(Error(`TUS upload failed: ${jQ.message||jQ.toString()}`))},onProgress(jQ,j0){let sB=Number.parseFloat((jQ/j0*100).toFixed(2));Y.uploadProgress(sB)},onSuccess(){if(LP({apikey:Q.apikey,appId:A,orgId:Z,platform:F,buildMode:GA,jobId:QA.job_id,sizeBytes:s.size,phase:"succeeded",durationSeconds:(Date.now()-RA)/1000}),Y.uploadProgress(100),$)Y.success("TUS upload completed successfully");DQ()}});if($)Y.info("[TUS] Starting upload...");SB.start()}),Y.info("Starting build job...");let wA=await fetch(`${W}/build/start/${QA.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:Q.apikey},body:JSON.stringify({app_id:A})});if(!wA.ok){let DQ=await wA.text();throw Error(`Failed to start build: ${wA.status} - ${DQ}`)}let BQ=await wA.json();Y.success("Build started!"),Y.info("Streaming build logs...");let uA=new AbortController,YQ=!1,tQ=async()=>{if(YQ)return;YQ=!0;let DQ=new AbortController,_B=setTimeout(()=>DQ.abort(),4000);try{await fetch(`${W}/build/cancel/${QA.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:Q.apikey},body:JSON.stringify({app_id:A}),signal:DQ.signal})}catch{}finally{clearTimeout(_B)}},_A=async()=>{try{if(YQ)y$.exit(1);Y.warn("Canceling build... (press Ctrl+C again to force quit)"),await tQ(),uA.abort()}catch{}};y$.on("SIGINT",_A);let IQ,iA=!1,WQ=async()=>{try{let DQ=await fetch(`${W}/build/status?job_id=${encodeURIComponent(QA.job_id)}&app_id=${encodeURIComponent(A)}&platform=${F}`,{headers:{authorization:Q.apikey}});if(!DQ.ok)return null;let _B=await DQ.json(),SB=_B.status?.toLowerCase?.()??"";if(iA)Y.info(`Build status: ${SB||_B.status}`);if(wP.has(SB))return SB;return null}catch{return null}},zQ=null;try{zQ=await bCQ(B,$,BQ.logs_url,BQ.logs_token,WQ,uA.signal,()=>{iA=!0},B&&!I&&!Q.outputRecord?void 0:P)}finally{y$.removeListener("SIGINT",_A)}if(zQ){if(IQ=zQ,wP.has(zQ))await WQ().catch(()=>{})}else IQ=await yCQ(W,QA.job_id,A,F,Q.apikey,B,iA,uA.signal,Y);if(IQ==="succeeded")Y.success("Build completed successfully!");else if(IQ==="failed")Y.error("Build failed");else Y.warn(`Build finished with status: ${IQ}`);if(Q.outputRecord&&IQ==="succeeded")try{let DQ=await pNA(Q.outputRecord,{jobId:QA.job_id,appId:A,platform:F,buildMode:Q.buildMode??"release",status:IQ,outputUrl:D},(_B)=>Y.warn(_B));if(Y.success(`Build output record written to ${Q.outputRecord}`),!DQ.outputUrl)Y.info("ℹ️ Record contains no download URL — pass --output-upload to publish one.");if(DQ.qrCodePngPath)Y.info(`ℹ️ QR code PNG written to ${DQ.qrCodePngPath}`)}catch(DQ){Y.warn(`Failed to write build output record to ${Q.outputRecord}: ${DQ instanceof Error?DQ.message:String(DQ)}`)}if(IQ==="failed"&&UA&&qA&&i==="caller-handled"){PA=!0;let DQ=`${y$.env.CAPGO_AI_LOG_BASE_DIR||"/tmp/capgo-builds"}/${qA}.log`;o={jobId:qA,capturedLogPath:DQ,ready:!0}}else if(IQ==="failed"&&UA&&qA&&i==="auto-prompt"){let DQ=hNA({isTTY:y$.stdout.isTTY===!0,aiAnalyticsFlag:Q.aiAnalytics===!0}),_B="⚠ AI can make mistakes. Always verify the diagnosis against the full log before applying the suggested fix.",SB=(R0)=>{if(R0==="ok")return"success";if(R0==="already_analyzed")return"already_analyzed";if(R0==="too_big")return"too_big";return"error"},jQ=async(R0,eI)=>{await t6({apikey:Q.apikey,orgId:Z,appId:A,platform:F,jobId:qA,choice:R0,triggeredBy:eI});let X8=`${y$.env.CAPGO_AI_LOG_BASE_DIR||"/tmp/capgo-builds"}/${qA}.log`,PE="";try{let{readFile:W1}=await import("node:fs/promises");PE=await W1(X8,"utf8")}catch(W1){let cI=W1 instanceof Error?W1.message:String(W1);y$.stderr.write(`AI analysis skipped: could not read captured log at ${X8}: ${cI}
724
724
  `);return}let VQ=y$.stdout.isTTY===!0,PQ=VQ?y$.stdout:y$.stderr,qB=VQ?E1():null;qB?.start("Analyzing build log with Capgo AI");let OB;try{OB=await fi({apiHost:W,apikey:Q.apikey,jobId:qA,appId:A,logs:PE})}finally{qB?.stop("Capgo AI finished")}let qI=SB(OB.kind);if(await gC({apikey:Q.apikey,orgId:Z,appId:A,platform:F,jobId:qA,result:qI,errorStatus:OB.kind==="error"?OB.status:void 0}),OB.kind==="ok")PQ.write(`
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
3
  "type": "module",
4
- "version": "7.124.3",
4
+ "version": "7.124.5",
5
5
  "description": "A CLI to upload to capgo servers",
6
6
  "author": "Martin martin@capgo.app",
7
7
  "license": "Apache 2.0",
package/dist/src/sdk.js CHANGED
@@ -124,7 +124,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
124
124
  `)}),$.__defineSetter__("stack",function(X){return[X].concat($.stack).join(`
125
125
 
126
126
  `)}),$}});var uv=E((ws0,Pv)=>{var N4=l("constants"),yq0=process.cwd,SY=null,bq0=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!SY)SY=yq0.call(process);return SY};try{process.cwd()}catch(D){}if(typeof process.chdir==="function"){if(PY=process.chdir,process.chdir=function(D){SY=null,PY.call(process,D)},Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,PY)}var PY;Pv.exports=hq0;function hq0(D){if(N4.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./))$(D);if(!D.lutimes)X(D);if(D.chown=Y(D.chown),D.fchown=Y(D.fchown),D.lchown=Y(D.lchown),D.chmod=J(D.chmod),D.fchmod=J(D.fchmod),D.lchmod=J(D.lchmod),D.chownSync=Q(D.chownSync),D.fchownSync=Q(D.fchownSync),D.lchownSync=Q(D.lchownSync),D.chmodSync=F(D.chmodSync),D.fchmodSync=F(D.fchmodSync),D.lchmodSync=F(D.lchmodSync),D.stat=U(D.stat),D.fstat=U(D.fstat),D.lstat=U(D.lstat),D.statSync=Z(D.statSync),D.fstatSync=Z(D.fstatSync),D.lstatSync=Z(D.lstatSync),D.chmod&&!D.lchmod)D.lchmod=function(G,w,q){if(q)process.nextTick(q)},D.lchmodSync=function(){};if(D.chown&&!D.lchown)D.lchown=function(G,w,q,W){if(W)process.nextTick(W)},D.lchownSync=function(){};if(bq0==="win32")D.rename=typeof D.rename!=="function"?D.rename:function(G){function w(q,W,K){var H=Date.now(),L=0;G(q,W,function M(I){if(I&&(I.code==="EACCES"||I.code==="EPERM"||I.code==="EBUSY")&&Date.now()-H<60000){if(setTimeout(function(){D.stat(W,function(B,N){if(B&&B.code==="ENOENT")G(q,W,M);else K(I)})},L),L<100)L+=10;return}if(K)K(I)})}if(Object.setPrototypeOf)Object.setPrototypeOf(w,G);return w}(D.rename);D.read=typeof D.read!=="function"?D.read:function(G){function w(q,W,K,H,L,M){var I;if(M&&typeof M==="function"){var B=0;I=function(N,z,R){if(N&&N.code==="EAGAIN"&&B<10)return B++,G.call(D,q,W,K,H,L,I);M.apply(this,arguments)}}return G.call(D,q,W,K,H,L,I)}if(Object.setPrototypeOf)Object.setPrototypeOf(w,G);return w}(D.read),D.readSync=typeof D.readSync!=="function"?D.readSync:function(G){return function(w,q,W,K,H){var L=0;while(!0)try{return G.call(D,w,q,W,K,H)}catch(M){if(M.code==="EAGAIN"&&L<10){L++;continue}throw M}}}(D.readSync);function $(G){G.lchmod=function(w,q,W){G.open(w,N4.O_WRONLY|N4.O_SYMLINK,q,function(K,H){if(K){if(W)W(K);return}G.fchmod(H,q,function(L){G.close(H,function(M){if(W)W(L||M)})})})},G.lchmodSync=function(w,q){var W=G.openSync(w,N4.O_WRONLY|N4.O_SYMLINK,q),K=!0,H;try{H=G.fchmodSync(W,q),K=!1}finally{if(K)try{G.closeSync(W)}catch(L){}else G.closeSync(W)}return H}}function X(G){if(N4.hasOwnProperty("O_SYMLINK")&&G.futimes)G.lutimes=function(w,q,W,K){G.open(w,N4.O_SYMLINK,function(H,L){if(H){if(K)K(H);return}G.futimes(L,q,W,function(M){G.close(L,function(I){if(K)K(M||I)})})})},G.lutimesSync=function(w,q,W){var K=G.openSync(w,N4.O_SYMLINK),H,L=!0;try{H=G.futimesSync(K,q,W),L=!1}finally{if(L)try{G.closeSync(K)}catch(M){}else G.closeSync(K)}return H};else if(G.futimes)G.lutimes=function(w,q,W,K){if(K)process.nextTick(K)},G.lutimesSync=function(){}}function J(G){if(!G)return G;return function(w,q,W){return G.call(D,w,q,function(K){if(O(K))K=null;if(W)W.apply(this,arguments)})}}function F(G){if(!G)return G;return function(w,q){try{return G.call(D,w,q)}catch(W){if(!O(W))throw W}}}function Y(G){if(!G)return G;return function(w,q,W,K){return G.call(D,w,q,W,function(H){if(O(H))H=null;if(K)K.apply(this,arguments)})}}function Q(G){if(!G)return G;return function(w,q,W){try{return G.call(D,w,q,W)}catch(K){if(!O(K))throw K}}}function U(G){if(!G)return G;return function(w,q,W){if(typeof q==="function")W=q,q=null;function K(H,L){if(L){if(L.uid<0)L.uid+=4294967296;if(L.gid<0)L.gid+=4294967296}if(W)W.apply(this,arguments)}return q?G.call(D,w,q,K):G.call(D,w,K)}}function Z(G){if(!G)return G;return function(w,q){var W=q?G.call(D,w,q):G.call(D,w);if(W){if(W.uid<0)W.uid+=4294967296;if(W.gid<0)W.gid+=4294967296}return W}}function O(G){if(!G)return!0;if(G.code==="ENOSYS")return!0;var w=!process.getuid||process.getuid()!==0;if(w){if(G.code==="EINVAL"||G.code==="EPERM")return!0}return!1}}});var _v=E((qs0,vv)=>{var xv=l("stream").Stream;vv.exports=gq0;function gq0(D){return{ReadStream:$,WriteStream:X};function $(J,F){if(!(this instanceof $))return new $(J,F);xv.call(this);var Y=this;this.path=J,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=65536,F=F||{};var Q=Object.keys(F);for(var U=0,Z=Q.length;U<Z;U++){var O=Q[U];this[O]=F[O]}if(this.encoding)this.setEncoding(this.encoding);if(this.start!==void 0){if(typeof this.start!=="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!=="number")throw TypeError("end must be a Number");if(this.start>this.end)throw Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){Y._read()});return}D.open(this.path,this.flags,this.mode,function(G,w){if(G){Y.emit("error",G),Y.readable=!1;return}Y.fd=w,Y.emit("open",w),Y._read()})}function X(J,F){if(!(this instanceof X))return new X(J,F);xv.call(this),this.path=J,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,F=F||{};var Y=Object.keys(F);for(var Q=0,U=Y.length;Q<U;Q++){var Z=Y[Q];this[Z]=F[Z]}if(this.start!==void 0){if(typeof this.start!=="number")throw TypeError("start must be a Number");if(this.start<0)throw Error("start must be >= zero");this.pos=this.start}if(this.busy=!1,this._queue=[],this.fd===null)this._open=D.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush()}}});var kv=E((Ws0,fv)=>{fv.exports=cq0;var mq0=Object.getPrototypeOf||function(D){return D.__proto__};function cq0(D){if(D===null||typeof D!=="object")return D;if(D instanceof Object)var $={__proto__:mq0(D)};else var $=Object.create(null);return Object.getOwnPropertyNames(D).forEach(function(X){Object.defineProperty($,X,Object.getOwnPropertyDescriptor(D,X))}),$}});var bD=E((Ks0,JW)=>{var uD=l("fs"),dq0=uv(),nq0=_v(),lq0=kv(),uY=l("util"),Q1,vY;if(typeof Symbol==="function"&&typeof Symbol.for==="function")Q1=Symbol.for("graceful-fs.queue"),vY=Symbol.for("graceful-fs.previous");else Q1="___graceful-fs.queue",vY="___graceful-fs.previous";function iq0(){}function bv(D,$){Object.defineProperty(D,Q1,{get:function(){return $}})}var b8=iq0;if(uY.debuglog)b8=uY.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))b8=function(){var D=uY.format.apply(uY,arguments);D="GFS4: "+D.split(/\n/).join(`
127
- GFS4: `),console.error(D)};if(!uD[Q1]){if(DW=global[Q1]||[],bv(uD,DW),uD.close=function(D){function $(X,J){return D.call(uD,X,function(F){if(!F)yv();if(typeof J==="function")J.apply(this,arguments)})}return Object.defineProperty($,vY,{value:D}),$}(uD.close),uD.closeSync=function(D){function $(X){D.apply(uD,arguments),yv()}return Object.defineProperty($,vY,{value:D}),$}(uD.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))process.on("exit",function(){b8(uD[Q1]),l("assert").equal(uD[Q1].length,0)})}var DW;if(!global[Q1])bv(global,uD[Q1]);JW.exports=$W(lq0(uD));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!uD.__patched)JW.exports=$W(uD),uD.__patched=!0;function $W(D){dq0(D),D.gracefulify=$W,D.createReadStream=z,D.createWriteStream=R;var $=D.readFile;D.readFile=X;function X(A,u,S){if(typeof u==="function")S=u,u=null;return m(A,u,S);function m(g,r,k,T){return $(g,r,function(P){if(P&&(P.code==="EMFILE"||P.code==="ENFILE"))S5([m,[g,r,k],P,T||Date.now(),Date.now()]);else if(typeof k==="function")k.apply(this,arguments)})}}var J=D.writeFile;D.writeFile=F;function F(A,u,S,m){if(typeof S==="function")m=S,S=null;return g(A,u,S,m);function g(r,k,T,P,x){return J(r,k,T,function(f){if(f&&(f.code==="EMFILE"||f.code==="ENFILE"))S5([g,[r,k,T,P],f,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var Y=D.appendFile;if(Y)D.appendFile=Q;function Q(A,u,S,m){if(typeof S==="function")m=S,S=null;return g(A,u,S,m);function g(r,k,T,P,x){return Y(r,k,T,function(f){if(f&&(f.code==="EMFILE"||f.code==="ENFILE"))S5([g,[r,k,T,P],f,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var U=D.copyFile;if(U)D.copyFile=Z;function Z(A,u,S,m){if(typeof S==="function")m=S,S=0;return g(A,u,S,m);function g(r,k,T,P,x){return U(r,k,T,function(f){if(f&&(f.code==="EMFILE"||f.code==="ENFILE"))S5([g,[r,k,T,P],f,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var O=D.readdir;D.readdir=w;var G=/^v[0-5]\./;function w(A,u,S){if(typeof u==="function")S=u,u=null;var m=G.test(process.version)?function(k,T,P,x){return O(k,g(k,T,P,x))}:function(k,T,P,x){return O(k,T,g(k,T,P,x))};return m(A,u,S);function g(r,k,T,P){return function(x,f){if(x&&(x.code==="EMFILE"||x.code==="ENFILE"))S5([m,[r,k,T],x,P||Date.now(),Date.now()]);else{if(f&&f.sort)f.sort();if(typeof T==="function")T.call(this,x,f)}}}}if(process.version.substr(0,4)==="v0.8"){var q=nq0(D);M=q.ReadStream,B=q.WriteStream}var W=D.ReadStream;if(W)M.prototype=Object.create(W.prototype),M.prototype.open=I;var K=D.WriteStream;if(K)B.prototype=Object.create(K.prototype),B.prototype.open=N;Object.defineProperty(D,"ReadStream",{get:function(){return M},set:function(A){M=A},enumerable:!0,configurable:!0}),Object.defineProperty(D,"WriteStream",{get:function(){return B},set:function(A){B=A},enumerable:!0,configurable:!0});var H=M;Object.defineProperty(D,"FileReadStream",{get:function(){return H},set:function(A){H=A},enumerable:!0,configurable:!0});var L=B;Object.defineProperty(D,"FileWriteStream",{get:function(){return L},set:function(A){L=A},enumerable:!0,configurable:!0});function M(A,u){if(this instanceof M)return W.apply(this,arguments),this;else return M.apply(Object.create(M.prototype),arguments)}function I(){var A=this;_(A.path,A.flags,A.mode,function(u,S){if(u){if(A.autoClose)A.destroy();A.emit("error",u)}else A.fd=S,A.emit("open",S),A.read()})}function B(A,u){if(this instanceof B)return K.apply(this,arguments),this;else return B.apply(Object.create(B.prototype),arguments)}function N(){var A=this;_(A.path,A.flags,A.mode,function(u,S){if(u)A.destroy(),A.emit("error",u);else A.fd=S,A.emit("open",S)})}function z(A,u){return new D.ReadStream(A,u)}function R(A,u){return new D.WriteStream(A,u)}var v=D.open;D.open=_;function _(A,u,S,m){if(typeof S==="function")m=S,S=null;return g(A,u,S,m);function g(r,k,T,P,x){return v(r,k,T,function(f,h){if(f&&(f.code==="EMFILE"||f.code==="ENFILE"))S5([g,[r,k,T,P],f,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}return D}function S5(D){b8("ENQUEUE",D[0].name,D[1]),uD[Q1].push(D),XW()}var xY;function yv(){var D=Date.now();for(var $=0;$<uD[Q1].length;++$)if(uD[Q1][$].length>2)uD[Q1][$][3]=D,uD[Q1][$][4]=D;XW()}function XW(){if(clearTimeout(xY),xY=void 0,uD[Q1].length===0)return;var D=uD[Q1].shift(),$=D[0],X=D[1],J=D[2],F=D[3],Y=D[4];if(F===void 0)b8("RETRY",$.name,X),$.apply(null,X);else if(Date.now()-F>=60000){b8("TIMEOUT",$.name,X);var Q=X.pop();if(typeof Q==="function")Q.call(null,J)}else{var U=Date.now()-Y,Z=Math.max(Y-F,1),O=Math.min(Z*1.2,100);if(U>=O)b8("RETRY",$.name,X),$.apply(null,X.concat([F]));else uD[Q1].push(D)}if(xY===void 0)xY=setTimeout(XW,0)}});var gv=E((Hs0,hv)=>{function L$(D,$){if(typeof $==="boolean")$={forever:$};if(this._originalTimeouts=JSON.parse(JSON.stringify(D)),this._timeouts=D,this._options=$||{},this._maxRetryTime=$&&$.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever)this._cachedTimeouts=this._timeouts.slice(0)}hv.exports=L$;L$.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};L$.prototype.stop=function(){if(this._timeout)clearTimeout(this._timeout);this._timeouts=[],this._cachedTimeouts=null};L$.prototype.retry=function(D){if(this._timeout)clearTimeout(this._timeout);if(!D)return!1;var $=new Date().getTime();if(D&&$-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error("RetryOperation timeout occurred")),!1;this._errors.push(D);var X=this._timeouts.shift();if(X===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),X=this._timeouts.shift();else return!1;var J=this,F=setTimeout(function(){if(J._attempts++,J._operationTimeoutCb){if(J._timeout=setTimeout(function(){J._operationTimeoutCb(J._attempts)},J._operationTimeout),J._options.unref)J._timeout.unref()}J._fn(J._attempts)},X);if(this._options.unref)F.unref();return!0};L$.prototype.attempt=function(D,$){if(this._fn=D,$){if($.timeout)this._operationTimeout=$.timeout;if($.cb)this._operationTimeoutCb=$.cb}var X=this;if(this._operationTimeoutCb)this._timeout=setTimeout(function(){X._operationTimeoutCb()},X._operationTimeout);this._operationStart=new Date().getTime(),this._fn(this._attempts)};L$.prototype.try=function(D){console.log("Using RetryOperation.try() is deprecated"),this.attempt(D)};L$.prototype.start=function(D){console.log("Using RetryOperation.start() is deprecated"),this.attempt(D)};L$.prototype.start=L$.prototype.try;L$.prototype.errors=function(){return this._errors};L$.prototype.attempts=function(){return this._attempts};L$.prototype.mainError=function(){if(this._errors.length===0)return null;var D={},$=null,X=0;for(var J=0;J<this._errors.length;J++){var F=this._errors[J],Y=F.message,Q=(D[Y]||0)+1;if(D[Y]=Q,Q>=X)$=F,X=Q}return $}});var cv=E((rq0)=>{var pq0=gv();rq0.operation=function(D){var $=rq0.timeouts(D);return new pq0($,{forever:D&&D.forever,unref:D&&D.unref,maxRetryTime:D&&D.maxRetryTime})};rq0.timeouts=function(D){if(D instanceof Array)return[].concat(D);var $={retries:10,factor:2,minTimeout:1000,maxTimeout:1/0,randomize:!1};for(var X in D)$[X]=D[X];if($.minTimeout>$.maxTimeout)throw Error("minTimeout is greater than maxTimeout");var J=[];for(var F=0;F<$.retries;F++)J.push(this.createTimeout(F,$));if(D&&D.forever&&!J.length)J.push(this.createTimeout(F,$));return J.sort(function(Y,Q){return Y-Q}),J};rq0.createTimeout=function(D,$){var X=$.randomize?Math.random()+1:1,J=Math.round(X*$.minTimeout*Math.pow($.factor,D));return J=Math.min(J,$.maxTimeout),J};rq0.wrap=function(D,$,X){if($ instanceof Array)X=$,$=null;if(!X){X=[];for(var J in D)if(typeof D[J]==="function")X.push(J)}for(var F=0;F<X.length;F++){var Y=X[F],Q=D[Y];D[Y]=function(Z){var O=rq0.operation($),G=Array.prototype.slice.call(arguments,1),w=G.pop();G.push(function(q){if(O.retry(q))return;if(q)arguments[0]=O.mainError();w.apply(this,arguments)}),O.attempt(function(){Z.apply(D,G)})}.bind(D,Q),D[Y].options=$}}});var dv=E((Ns0,_Y)=>{_Y.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];if(process.platform!=="win32")_Y.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")_Y.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var yY=E((zs0,u5)=>{var RD=global.process,h8=function(D){return D&&typeof D==="object"&&typeof D.removeListener==="function"&&typeof D.emit==="function"&&typeof D.reallyExit==="function"&&typeof D.listeners==="function"&&typeof D.kill==="function"&&typeof D.pid==="number"&&typeof D.on==="function"};if(!h8(RD))u5.exports=function(){return function(){}};else{if(FW=l("assert"),g8=dv(),YW=/^win/i.test(RD.platform),P5=l("events"),typeof P5!=="function")P5=P5.EventEmitter;if(RD.__signal_exit_emitter__)oD=RD.__signal_exit_emitter__;else oD=RD.__signal_exit_emitter__=new P5,oD.count=0,oD.emitted={};if(!oD.infinite)oD.setMaxListeners(1/0),oD.infinite=!0;u5.exports=function(D,$){if(!h8(global.process))return function(){};if(FW.equal(typeof D,"function","a callback must be provided for exit handler"),m8===!1)fY();var X="exit";if($&&$.alwaysLast)X="afterexit";var J=function(){if(oD.removeListener(X,D),oD.listeners("exit").length===0&&oD.listeners("afterexit").length===0)E2()};return oD.on(X,D),J},E2=function(){if(!m8||!h8(global.process))return;m8=!1,g8.forEach(function($){try{RD.removeListener($,R2[$])}catch(X){}}),RD.emit=j2,RD.reallyExit=kY,oD.count-=1},u5.exports.unload=E2,z4=function($,X,J){if(oD.emitted[$])return;oD.emitted[$]=!0,oD.emit($,X,J)},R2={},g8.forEach(function(D){R2[D]=function(){if(!h8(global.process))return;var X=RD.listeners(D);if(X.length===oD.count){if(E2(),z4("exit",null,D),z4("afterexit",null,D),YW&&D==="SIGHUP")D="SIGINT";RD.kill(RD.pid,D)}}}),u5.exports.signals=function(){return g8},m8=!1,fY=function(){if(m8||!h8(global.process))return;m8=!0,oD.count+=1,g8=g8.filter(function($){try{return RD.on($,R2[$]),!0}catch(X){return!1}}),RD.emit=UW,RD.reallyExit=QW},u5.exports.load=fY,kY=RD.reallyExit,QW=function($){if(!h8(global.process))return;RD.exitCode=$||0,z4("exit",RD.exitCode,null),z4("afterexit",RD.exitCode,null),kY.call(RD,RD.exitCode)},j2=RD.emit,UW=function($,X){if($==="exit"&&h8(global.process)){if(X!==void 0)RD.exitCode=X;var J=j2.apply(this,arguments);return z4("exit",RD.exitCode,null),z4("afterexit",RD.exitCode,null),J}else return j2.apply(this,arguments)}}var FW,g8,YW,P5,oD,E2,z4,R2,m8,fY,kY,QW,j2,UW});var lv=E((DW0,ZW)=>{var nv=Symbol();function sq0(D,$,X){let J=$[nv];if(J)return $.stat(D,(Y,Q)=>{if(Y)return X(Y);X(null,Q.mtime,J)});let F=new Date(Math.ceil(Date.now()/1000)*1000+5);$.utimes(D,F,F,(Y)=>{if(Y)return X(Y);$.stat(D,(Q,U)=>{if(Q)return X(Q);let Z=U.mtime.getTime()%1000===0?"s":"ms";Object.defineProperty($,nv,{value:Z}),X(null,U.mtime,Z)})})}function eq0(D){let $=Date.now();if(D==="s")$=Math.ceil($/1000)*1000;return new Date($)}DW0.probe=sq0;DW0.getMtime=eq0});var ov=E((OW0,C2)=>{var JW0=l("path"),wW=bD(),FW0=cv(),YW0=yY(),iv=lv(),k6={};function T2(D,$){return $.lockfilePath||`${D}.lock`}function qW(D,$,X){if(!$.realpath)return X(null,JW0.resolve(D));$.fs.realpath(D,X)}function GW(D,$,X){let J=T2(D,$);$.fs.mkdir(J,(F)=>{if(!F)return iv.probe(J,$.fs,(Y,Q,U)=>{if(Y)return $.fs.rmdir(J,()=>{}),X(Y);X(null,Q,U)});if(F.code!=="EEXIST")return X(F);if($.stale<=0)return X(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:D}));$.fs.stat(J,(Y,Q)=>{if(Y){if(Y.code==="ENOENT")return GW(D,{...$,stale:0},X);return X(Y)}if(!pv(Q,$))return X(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:D}));rv(D,$,(U)=>{if(U)return X(U);GW(D,{...$,stale:0},X)})})})}function pv(D,$){return D.mtime.getTime()<Date.now()-$.stale}function rv(D,$,X){$.fs.rmdir(T2(D,$),(J)=>{if(J&&J.code!=="ENOENT")return X(J);X()})}function bY(D,$){let X=k6[D];if(X.updateTimeout)return;if(X.updateDelay=X.updateDelay||$.update,X.updateTimeout=setTimeout(()=>{X.updateTimeout=null,$.fs.stat(X.lockfilePath,(J,F)=>{let Y=X.lastUpdate+$.stale<Date.now();if(J){if(J.code==="ENOENT"||Y)return OW(D,X,Object.assign(J,{code:"ECOMPROMISED"}));return X.updateDelay=1000,bY(D,$)}if(X.mtime.getTime()!==F.mtime.getTime())return OW(D,X,Object.assign(Error("Unable to update lock within the stale threshold"),{code:"ECOMPROMISED"}));let U=iv.getMtime(X.mtimePrecision);$.fs.utimes(X.lockfilePath,U,U,(Z)=>{let O=X.lastUpdate+$.stale<Date.now();if(X.released)return;if(Z){if(Z.code==="ENOENT"||O)return OW(D,X,Object.assign(Z,{code:"ECOMPROMISED"}));return X.updateDelay=1000,bY(D,$)}X.mtime=U,X.lastUpdate=Date.now(),X.updateDelay=null,bY(D,$)})})},X.updateDelay),X.updateTimeout.unref)X.updateTimeout.unref()}function OW(D,$,X){if($.released=!0,$.updateTimeout)clearTimeout($.updateTimeout);if(k6[D]===$)delete k6[D];$.options.onCompromised(X)}function QW0(D,$,X){$={stale:1e4,update:null,realpath:!0,retries:0,fs:wW,onCompromised:(J)=>{throw J},...$},$.retries=$.retries||0,$.retries=typeof $.retries==="number"?{retries:$.retries}:$.retries,$.stale=Math.max($.stale||0,2000),$.update=$.update==null?$.stale/2:$.update||0,$.update=Math.max(Math.min($.update,$.stale/2),1000),qW(D,$,(J,F)=>{if(J)return X(J);let Y=FW0.operation($.retries);Y.attempt(()=>{GW(F,$,(Q,U,Z)=>{if(Y.retry(Q))return;if(Q)return X(Y.mainError());let O=k6[F]={lockfilePath:T2(F,$),mtime:U,mtimePrecision:Z,options:$,lastUpdate:Date.now()};bY(F,$),X(null,(G)=>{if(O.released)return G&&G(Object.assign(Error("Lock is already released"),{code:"ERELEASED"}));tv(F,{...$,realpath:!1},G)})})})})}function tv(D,$,X){$={fs:wW,realpath:!0,...$},qW(D,$,(J,F)=>{if(J)return X(J);let Y=k6[F];if(!Y)return X(Object.assign(Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));Y.updateTimeout&&clearTimeout(Y.updateTimeout),Y.released=!0,delete k6[F],rv(F,$,X)})}function UW0(D,$,X){$={stale:1e4,realpath:!0,fs:wW,...$},$.stale=Math.max($.stale||0,2000),qW(D,$,(J,F)=>{if(J)return X(J);$.fs.stat(T2(F,$),(Y,Q)=>{if(Y)return Y.code==="ENOENT"?X(null,!1):X(Y);return X(null,!pv(Q,$))})})}function ZW0(){return k6}YW0(()=>{for(let D in k6){let $=k6[D].options;try{$.fs.rmdirSync(T2(D,$))}catch(X){}}});OW0.lock=QW0;OW0.unlock=tv;OW0.check=UW0;OW0.getLocks=ZW0});var sv=E((Vs0,av)=>{var KW0=bD();function HW0(D){let $=["mkdir","realpath","stat","rmdir","utimes"],X={...D};return $.forEach((J)=>{X[J]=(...F)=>{let Y=F.pop(),Q;try{Q=D[`${J}Sync`](...F)}catch(U){return Y(U)}Y(null,Q)}}),X}function BW0(D){return(...$)=>new Promise((X,J)=>{$.push((F,Y)=>{if(F)J(F);else X(Y)}),D(...$)})}function NW0(D){return(...$)=>{let X,J;if($.push((F,Y)=>{X=F,J=Y}),D(...$),X)throw X;return J}}function zW0(D){if(D={...D},D.fs=HW0(D.fs||KW0),typeof D.retries==="number"&&D.retries>0||D.retries&&typeof D.retries.retries==="number"&&D.retries.retries>0)throw Object.assign(Error("Cannot use retries with the sync api"),{code:"ESYNC"});return D}av.exports={toPromise:BW0,toSync:NW0,toSyncOptions:zW0}});var D_=E((Ls0,V4)=>{var x5=ov(),{toPromise:hY,toSync:gY,toSyncOptions:WW}=sv();async function ev(D,$){let X=await hY(x5.lock)(D,$);return hY(X)}function VW0(D,$){let X=gY(x5.lock)(D,WW($));return gY(X)}function LW0(D,$){return hY(x5.unlock)(D,$)}function MW0(D,$){return gY(x5.unlock)(D,WW($))}function IW0(D,$){return hY(x5.check)(D,$)}function AW0(D,$){return gY(x5.check)(D,WW($))}V4.exports=ev;V4.exports.lock=ev;V4.exports.unlock=LW0;V4.exports.lockSync=VW0;V4.exports.unlockSync=MW0;V4.exports.check=IW0;V4.exports.checkSync=AW0});var U_=E((Y_)=>{Object.defineProperty(Y_,"__esModule",{value:!0});Y_.canStoreURLs=Y_.FileUrlStorage=void 0;var $_=l("fs"),EW0=jW0(Sv()),X_=RW0(D_());function F_(D){if(typeof WeakMap!="function")return null;var $=new WeakMap,X=new WeakMap;return(F_=function(J){return J?X:$})(D)}function RW0(D,$){if(!$&&D&&D.__esModule)return D;if(D===null||typeof D!="object"&&typeof D!="function")return{default:D};var X=F_($);if(X&&X.has(D))return X.get(D);var J={__proto__:null},F=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Y in D)if(Y!=="default"&&{}.hasOwnProperty.call(D,Y)){var Q=F?Object.getOwnPropertyDescriptor(D,Y):null;Q&&(Q.get||Q.set)?Object.defineProperty(J,Y,Q):J[Y]=D[Y]}return J.default=D,X&&X.set(D,J),J}function jW0(D){return D&&D.__esModule?D:{default:D}}function S2(D){return S2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},S2(D)}function TW0(D,$){if(!(D instanceof $))throw TypeError("Cannot call a class as a function")}function J_(D,$){for(var X=0;X<$.length;X++){var J=$[X];if(J.enumerable=J.enumerable||!1,J.configurable=!0,"value"in J)J.writable=!0;Object.defineProperty(D,SW0(J.key),J)}}function CW0(D,$,X){if($)J_(D.prototype,$);if(X)J_(D,X);return Object.defineProperty(D,"prototype",{writable:!1}),D}function SW0(D){var $=PW0(D,"string");return S2($)=="symbol"?$:$+""}function PW0(D,$){if(S2(D)!="object"||!D)return D;var X=D[Symbol.toPrimitive];if(X!==void 0){var J=X.call(D,$||"default");if(S2(J)!="object")return J;throw TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(D)}var Ms0=Y_.canStoreURLs=!0,Is0=Y_.FileUrlStorage=function(){function D($){TW0(this,D),this.path=$}return CW0(D,[{key:"findAllUploads",value:function(){var X=this;return new Promise(function(J,F){X._getItems("tus::",function(Y,Q){if(Y)F(Y);else J(Q)})})}},{key:"findUploadsByFingerprint",value:function(X){var J=this;return new Promise(function(F,Y){J._getItems("tus::".concat(X),function(Q,U){if(Q)Y(Q);else F(U)})})}},{key:"removeUpload",value:function(X){var J=this;return new Promise(function(F,Y){J._removeItem(X,function(Q){if(Q)Y(Q);else F()})})}},{key:"addUpload",value:function(X,J){var F=this,Y=Math.round(Math.random()*1000000000000),Q="tus::".concat(X,"::").concat(Y);return new Promise(function(U,Z){F._setItem(Q,J,function(O){if(O)Z(O);else U(Q)})})}},{key:"_setItem",value:function(X,J,F){var Y=this;X_.lock(this.path,this._lockfileOptions()).then(function(Q){F=Y._releaseAndCb(Q,F),Y._getData(function(U,Z){if(U){F(U);return}Z[X]=J,Y._writeData(Z,function(O){return F(O)})})}).catch(F)}},{key:"_getItems",value:function(X,J){this._getData(function(F,Y){if(F){J(F);return}var Q=Object.keys(Y).filter(function(U){return U.startsWith(X)}).map(function(U){var Z=Y[U];return Z.urlStorageKey=U,Z});J(null,Q)})}},{key:"_removeItem",value:function(X,J){var F=this;X_.lock(this.path,this._lockfileOptions()).then(function(Y){J=F._releaseAndCb(Y,J),F._getData(function(Q,U){if(Q){J(Q);return}delete U[X],F._writeData(U,function(Z){return J(Z)})})}).catch(J)}},{key:"_lockfileOptions",value:function(){return{realpath:!1,retries:{retries:5,minTimeout:20}}}},{key:"_releaseAndCb",value:function(X,J){return function(F){if(F){X().then(function(){return J(F)}).catch(function(Y){return J((0,EW0.default)([F,Y]))});return}X().then(J).catch(J)}}},{key:"_writeData",value:function(X,J){var F={encoding:"utf8",mode:432,flag:"w"};(0,$_.writeFile)(this.path,JSON.stringify(X),F,function(Y){return J(Y)})}},{key:"_getData",value:function(X){(0,$_.readFile)(this.path,"utf8",function(J,F){if(J){if(J.code==="ENOENT")X(null,{});else X(J);return}try{F=!F.trim().length?{}:JSON.parse(F)}catch(Y){X(Y);return}X(null,F)})}}])}()});var cY=E((L4)=>{Object.defineProperty(L4,"__esModule",{value:!0});Object.defineProperty(L4,"DefaultHttpStack",{enumerable:!0,get:function(){return w_.default}});Object.defineProperty(L4,"DetailedError",{enumerable:!0,get:function(){return xW0.default}});Object.defineProperty(L4,"FileUrlStorage",{enumerable:!0,get:function(){return q_.FileUrlStorage}});Object.defineProperty(L4,"StreamSource",{enumerable:!0,get:function(){return yW0.default}});L4.Upload=void 0;Object.defineProperty(L4,"canStoreURLs",{enumerable:!0,get:function(){return q_.canStoreURLs}});L4.defaultOptions=void 0;Object.defineProperty(L4,"enableDebugLog",{enumerable:!0,get:function(){return vW0.enableDebugLog}});L4.isSupported=void 0;var xW0=c8(Wq()),vW0=Kq(),_W0=c8(Du()),KW=c8(vu()),fW0=c8(eu()),kW0=c8(Fx()),w_=c8(Lx()),yW0=c8(Rq()),q_=U_();function c8(D){return D&&D.__esModule?D:{default:D}}function _5(D){return _5=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_5(D)}function bW0(D,$){if(!(D instanceof $))throw TypeError("Cannot call a class as a function")}function Z_(D,$){for(var X=0;X<$.length;X++){var J=$[X];if(J.enumerable=J.enumerable||!1,J.configurable=!0,"value"in J)J.writable=!0;Object.defineProperty(D,K_(J.key),J)}}function hW0(D,$,X){if($)Z_(D.prototype,$);if(X)Z_(D,X);return Object.defineProperty(D,"prototype",{writable:!1}),D}function gW0(D,$,X){return $=mY($),mW0(D,W_()?Reflect.construct($,X||[],mY(D).constructor):$.apply(D,X))}function mW0(D,$){if($&&(_5($)==="object"||typeof $==="function"))return $;else if($!==void 0)throw TypeError("Derived constructors may only return object or undefined");return cW0(D)}function cW0(D){if(D===void 0)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return D}function W_(){try{var D=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch($){}return(W_=function(){return!!D})()}function mY(D){return mY=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(X){return X.__proto__||Object.getPrototypeOf(X)},mY(D)}function dW0(D,$){if(typeof $!=="function"&&$!==null)throw TypeError("Super expression must either be null or a function");if(D.prototype=Object.create($&&$.prototype,{constructor:{value:D,writable:!0,configurable:!0}}),Object.defineProperty(D,"prototype",{writable:!1}),$)HW(D,$)}function HW(D,$){return HW=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(J,F){return J.__proto__=F,J},HW(D,$)}function O_(D,$){var X=Object.keys(D);if(Object.getOwnPropertySymbols){var J=Object.getOwnPropertySymbols(D);$&&(J=J.filter(function(F){return Object.getOwnPropertyDescriptor(D,F).enumerable})),X.push.apply(X,J)}return X}function v5(D){for(var $=1;$<arguments.length;$++){var X=arguments[$]!=null?arguments[$]:{};$%2?O_(Object(X),!0).forEach(function(J){nW0(D,J,X[J])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(X)):O_(Object(X)).forEach(function(J){Object.defineProperty(D,J,Object.getOwnPropertyDescriptor(X,J))})}return D}function nW0(D,$,X){if($=K_($),$ in D)Object.defineProperty(D,$,{value:X,enumerable:!0,configurable:!0,writable:!0});else D[$]=X;return D}function K_(D){var $=lW0(D,"string");return _5($)=="symbol"?$:$+""}function lW0(D,$){if(_5(D)!="object"||!D)return D;var X=D[Symbol.toPrimitive];if(X!==void 0){var J=X.call(D,$||"default");if(_5(J)!="object")return J;throw TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(D)}var G_=L4.defaultOptions=v5(v5({},KW.default.defaultOptions),{},{httpStack:new w_.default,fileReader:new fW0.default,urlStorage:new _W0.default,fingerprint:kW0.default}),Es0=L4.Upload=function(D){function $(){var X=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,J=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return bW0(this,$),J=v5(v5({},G_),J),gW0(this,$,[X,J])}return dW0($,D),hW0($,null,[{key:"terminate",value:function(J){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return F=v5(v5({},G_),F),KW.default.terminate(J,F)}}])}(KW.default),Rs0=L4.isSupported=!0});var i1;var d8=p(()=>{i1={name:"@capgo/cli",type:"module",version:"7.124.3",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:"git+https://github.com/Cap-go/capgo.git",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:bundle":"bun test/test-bundle.mjs","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:credentials":"bun test/test-credentials.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:ci-prompts":"bun test/test-ci-prompts.mjs","test:ci-secrets":"bun test/test-ci-secrets.mjs","test:android-onboarding-progress":"bun test/test-android-onboarding-progress.mjs","test:onboarding-telemetry":"bun test/test-onboarding-telemetry.mjs","test:v2-event-migration":"bun test/test-v2-event-migration.mjs","test:analytics":"bun test/test-analytics.mjs","test: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:mcp-analytics":"bun test/test-mcp-analytics.mjs","test:app-created-source":"bun test/test-app-created-source.mjs","test:doctor-analytics":"bun test/test-doctor-analytics.mjs","test:posthog-exception":"bun test/test-posthog-exception.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:init-guardrails":"bun test/test-init-guardrails.mjs","test:prompt-preferences":"bun test/test-prompt-preferences.mjs","test:esm-sdk":"node test/test-sdk-esm.mjs","test:mcp":"node test/test-mcp.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:payload-split":"bun test/test-payload-split.mjs","test:macos-signing":"bun test/test-macos-signing.mjs","test:apple-api-import-helpers":"bun test/test-apple-api-import-helpers.mjs","test:bundle-id-detector":"bun test/test-bundle-id-detector.mjs","test:manifest-path-encoding":"bun test/test-manifest-path-encoding.mjs",test:"bun run build && bun run test:version-detection:setup && bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:fail-on-incompatible && bun run test:credentials && 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: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:analytics-error-category && bun run test:analytics-org-resolver && bun run test:supabase-perf && bun run test:mcp-analytics && bun run test:app-created-source && bun run test:doctor-analytics && bun run test:posthog-exception && bun run test:build-platform-selection && 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-app-conflict && bun run test:init-guardrails && bun run test:prompt-preferences && bun run test:esm-sdk && bun run test:mcp && bun run test:version-detection && bun run test:platform-paths && bun run test:payload-split && bun run test:manifest-path-encoding && bun run test:macos-signing && bun run test:apple-api-import-helpers && bun run test:bundle-id-detector && bun run test:ai-log-capture && bun run test:ai-analyze-flow && bun run test:ai-render-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","test:build-platform-selection":"bun test/test-build-platform-selection.mjs","test:ai-log-capture":"bun test/test-ai-log-capture.mjs","test:ai-analyze-flow":"bun test/test-ai-analyze-flow.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"},dependencies:{"@inkjs/ui":"^2.0.0",ink:"^7.0.4","ink-spinner":"^5.0.0",jsonwebtoken:"^9.0.3","node-forge":"^1.4.0",qrcode:"^1.5.4",react:"^19.2.6","string-width":"^8.2.1"},devDependencies:{"@antfu/eslint-config":"^9.0.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.6","@capacitor/cli":"^8.3.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.8","@supabase/supabase-js":"^2.106.2","@tanstack/intent":"^0.0.41","@types/adm-zip":"^0.5.8","@types/jsonwebtoken":"^9.0.10","@types/node":"^25.9.1","@types/node-forge":"^1.3.14","@types/prettyjson":"^0.0.33","@types/qrcode":"^1.5.6","@types/react":"^19.2.15","@types/tmp":"^0.2.6","@types/ws":"^8.18.1","@typescript/native-preview":"7.0.0-dev.20260526.1","@vercel/ncc":"^0.38.4","@xterm/headless":"^6.0.0","adm-zip":"^0.5.17","ci-info":"^4.4.0",commander:"^14.0.3",eslint:"^10.4.0","git-format-staged":"4.0.1",husky:"^9.1.7","is-wsl":"^3.1.1",micromatch:"^4.0.8",open:"^11.0.0",oxlint:"^1.67.0",partysocket:"^1.1.19",prettyjson:"^1.2.5",tmp:"^0.2.6","tus-js-client":"^4.3.1",typescript:"^6.0.3",ws:"^8.21.0",zod:"^4.4.3"}}});async function dY(D){try{let X=`https://registry.npmjs.org/${encodeURIComponent(D.toLowerCase())}`,J=await fetch(X,{headers:{accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"}});if(!J.ok)return null;return(await J.json())["dist-tags"]?.latest||null}catch{return null}}async function pW0(){let D=await dY("@capgo/cli")??"",$=D?.split(".")[0]??"";return{currentVersion:i1.version,latestVersion:D,isOutdated:!!D&&D!==i1.version,majorVersion:$}}async function WD(){let{isOutdated:D,currentVersion:$,latestVersion:X,majorVersion:J}=await pW0();if(D)V.warning(`\uD83D\uDEA8 You are using @capgo/cli@${$} it's not the latest version.
127
+ GFS4: `),console.error(D)};if(!uD[Q1]){if(DW=global[Q1]||[],bv(uD,DW),uD.close=function(D){function $(X,J){return D.call(uD,X,function(F){if(!F)yv();if(typeof J==="function")J.apply(this,arguments)})}return Object.defineProperty($,vY,{value:D}),$}(uD.close),uD.closeSync=function(D){function $(X){D.apply(uD,arguments),yv()}return Object.defineProperty($,vY,{value:D}),$}(uD.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))process.on("exit",function(){b8(uD[Q1]),l("assert").equal(uD[Q1].length,0)})}var DW;if(!global[Q1])bv(global,uD[Q1]);JW.exports=$W(lq0(uD));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!uD.__patched)JW.exports=$W(uD),uD.__patched=!0;function $W(D){dq0(D),D.gracefulify=$W,D.createReadStream=z,D.createWriteStream=R;var $=D.readFile;D.readFile=X;function X(A,u,S){if(typeof u==="function")S=u,u=null;return m(A,u,S);function m(g,r,k,T){return $(g,r,function(P){if(P&&(P.code==="EMFILE"||P.code==="ENFILE"))S5([m,[g,r,k],P,T||Date.now(),Date.now()]);else if(typeof k==="function")k.apply(this,arguments)})}}var J=D.writeFile;D.writeFile=F;function F(A,u,S,m){if(typeof S==="function")m=S,S=null;return g(A,u,S,m);function g(r,k,T,P,x){return J(r,k,T,function(f){if(f&&(f.code==="EMFILE"||f.code==="ENFILE"))S5([g,[r,k,T,P],f,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var Y=D.appendFile;if(Y)D.appendFile=Q;function Q(A,u,S,m){if(typeof S==="function")m=S,S=null;return g(A,u,S,m);function g(r,k,T,P,x){return Y(r,k,T,function(f){if(f&&(f.code==="EMFILE"||f.code==="ENFILE"))S5([g,[r,k,T,P],f,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var U=D.copyFile;if(U)D.copyFile=Z;function Z(A,u,S,m){if(typeof S==="function")m=S,S=0;return g(A,u,S,m);function g(r,k,T,P,x){return U(r,k,T,function(f){if(f&&(f.code==="EMFILE"||f.code==="ENFILE"))S5([g,[r,k,T,P],f,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var O=D.readdir;D.readdir=w;var G=/^v[0-5]\./;function w(A,u,S){if(typeof u==="function")S=u,u=null;var m=G.test(process.version)?function(k,T,P,x){return O(k,g(k,T,P,x))}:function(k,T,P,x){return O(k,T,g(k,T,P,x))};return m(A,u,S);function g(r,k,T,P){return function(x,f){if(x&&(x.code==="EMFILE"||x.code==="ENFILE"))S5([m,[r,k,T],x,P||Date.now(),Date.now()]);else{if(f&&f.sort)f.sort();if(typeof T==="function")T.call(this,x,f)}}}}if(process.version.substr(0,4)==="v0.8"){var q=nq0(D);M=q.ReadStream,B=q.WriteStream}var W=D.ReadStream;if(W)M.prototype=Object.create(W.prototype),M.prototype.open=I;var K=D.WriteStream;if(K)B.prototype=Object.create(K.prototype),B.prototype.open=N;Object.defineProperty(D,"ReadStream",{get:function(){return M},set:function(A){M=A},enumerable:!0,configurable:!0}),Object.defineProperty(D,"WriteStream",{get:function(){return B},set:function(A){B=A},enumerable:!0,configurable:!0});var H=M;Object.defineProperty(D,"FileReadStream",{get:function(){return H},set:function(A){H=A},enumerable:!0,configurable:!0});var L=B;Object.defineProperty(D,"FileWriteStream",{get:function(){return L},set:function(A){L=A},enumerable:!0,configurable:!0});function M(A,u){if(this instanceof M)return W.apply(this,arguments),this;else return M.apply(Object.create(M.prototype),arguments)}function I(){var A=this;_(A.path,A.flags,A.mode,function(u,S){if(u){if(A.autoClose)A.destroy();A.emit("error",u)}else A.fd=S,A.emit("open",S),A.read()})}function B(A,u){if(this instanceof B)return K.apply(this,arguments),this;else return B.apply(Object.create(B.prototype),arguments)}function N(){var A=this;_(A.path,A.flags,A.mode,function(u,S){if(u)A.destroy(),A.emit("error",u);else A.fd=S,A.emit("open",S)})}function z(A,u){return new D.ReadStream(A,u)}function R(A,u){return new D.WriteStream(A,u)}var v=D.open;D.open=_;function _(A,u,S,m){if(typeof S==="function")m=S,S=null;return g(A,u,S,m);function g(r,k,T,P,x){return v(r,k,T,function(f,h){if(f&&(f.code==="EMFILE"||f.code==="ENFILE"))S5([g,[r,k,T,P],f,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}return D}function S5(D){b8("ENQUEUE",D[0].name,D[1]),uD[Q1].push(D),XW()}var xY;function yv(){var D=Date.now();for(var $=0;$<uD[Q1].length;++$)if(uD[Q1][$].length>2)uD[Q1][$][3]=D,uD[Q1][$][4]=D;XW()}function XW(){if(clearTimeout(xY),xY=void 0,uD[Q1].length===0)return;var D=uD[Q1].shift(),$=D[0],X=D[1],J=D[2],F=D[3],Y=D[4];if(F===void 0)b8("RETRY",$.name,X),$.apply(null,X);else if(Date.now()-F>=60000){b8("TIMEOUT",$.name,X);var Q=X.pop();if(typeof Q==="function")Q.call(null,J)}else{var U=Date.now()-Y,Z=Math.max(Y-F,1),O=Math.min(Z*1.2,100);if(U>=O)b8("RETRY",$.name,X),$.apply(null,X.concat([F]));else uD[Q1].push(D)}if(xY===void 0)xY=setTimeout(XW,0)}});var gv=E((Hs0,hv)=>{function L$(D,$){if(typeof $==="boolean")$={forever:$};if(this._originalTimeouts=JSON.parse(JSON.stringify(D)),this._timeouts=D,this._options=$||{},this._maxRetryTime=$&&$.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever)this._cachedTimeouts=this._timeouts.slice(0)}hv.exports=L$;L$.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};L$.prototype.stop=function(){if(this._timeout)clearTimeout(this._timeout);this._timeouts=[],this._cachedTimeouts=null};L$.prototype.retry=function(D){if(this._timeout)clearTimeout(this._timeout);if(!D)return!1;var $=new Date().getTime();if(D&&$-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error("RetryOperation timeout occurred")),!1;this._errors.push(D);var X=this._timeouts.shift();if(X===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),X=this._timeouts.shift();else return!1;var J=this,F=setTimeout(function(){if(J._attempts++,J._operationTimeoutCb){if(J._timeout=setTimeout(function(){J._operationTimeoutCb(J._attempts)},J._operationTimeout),J._options.unref)J._timeout.unref()}J._fn(J._attempts)},X);if(this._options.unref)F.unref();return!0};L$.prototype.attempt=function(D,$){if(this._fn=D,$){if($.timeout)this._operationTimeout=$.timeout;if($.cb)this._operationTimeoutCb=$.cb}var X=this;if(this._operationTimeoutCb)this._timeout=setTimeout(function(){X._operationTimeoutCb()},X._operationTimeout);this._operationStart=new Date().getTime(),this._fn(this._attempts)};L$.prototype.try=function(D){console.log("Using RetryOperation.try() is deprecated"),this.attempt(D)};L$.prototype.start=function(D){console.log("Using RetryOperation.start() is deprecated"),this.attempt(D)};L$.prototype.start=L$.prototype.try;L$.prototype.errors=function(){return this._errors};L$.prototype.attempts=function(){return this._attempts};L$.prototype.mainError=function(){if(this._errors.length===0)return null;var D={},$=null,X=0;for(var J=0;J<this._errors.length;J++){var F=this._errors[J],Y=F.message,Q=(D[Y]||0)+1;if(D[Y]=Q,Q>=X)$=F,X=Q}return $}});var cv=E((rq0)=>{var pq0=gv();rq0.operation=function(D){var $=rq0.timeouts(D);return new pq0($,{forever:D&&D.forever,unref:D&&D.unref,maxRetryTime:D&&D.maxRetryTime})};rq0.timeouts=function(D){if(D instanceof Array)return[].concat(D);var $={retries:10,factor:2,minTimeout:1000,maxTimeout:1/0,randomize:!1};for(var X in D)$[X]=D[X];if($.minTimeout>$.maxTimeout)throw Error("minTimeout is greater than maxTimeout");var J=[];for(var F=0;F<$.retries;F++)J.push(this.createTimeout(F,$));if(D&&D.forever&&!J.length)J.push(this.createTimeout(F,$));return J.sort(function(Y,Q){return Y-Q}),J};rq0.createTimeout=function(D,$){var X=$.randomize?Math.random()+1:1,J=Math.round(X*$.minTimeout*Math.pow($.factor,D));return J=Math.min(J,$.maxTimeout),J};rq0.wrap=function(D,$,X){if($ instanceof Array)X=$,$=null;if(!X){X=[];for(var J in D)if(typeof D[J]==="function")X.push(J)}for(var F=0;F<X.length;F++){var Y=X[F],Q=D[Y];D[Y]=function(Z){var O=rq0.operation($),G=Array.prototype.slice.call(arguments,1),w=G.pop();G.push(function(q){if(O.retry(q))return;if(q)arguments[0]=O.mainError();w.apply(this,arguments)}),O.attempt(function(){Z.apply(D,G)})}.bind(D,Q),D[Y].options=$}}});var dv=E((Ns0,_Y)=>{_Y.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];if(process.platform!=="win32")_Y.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")_Y.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var yY=E((zs0,u5)=>{var RD=global.process,h8=function(D){return D&&typeof D==="object"&&typeof D.removeListener==="function"&&typeof D.emit==="function"&&typeof D.reallyExit==="function"&&typeof D.listeners==="function"&&typeof D.kill==="function"&&typeof D.pid==="number"&&typeof D.on==="function"};if(!h8(RD))u5.exports=function(){return function(){}};else{if(FW=l("assert"),g8=dv(),YW=/^win/i.test(RD.platform),P5=l("events"),typeof P5!=="function")P5=P5.EventEmitter;if(RD.__signal_exit_emitter__)oD=RD.__signal_exit_emitter__;else oD=RD.__signal_exit_emitter__=new P5,oD.count=0,oD.emitted={};if(!oD.infinite)oD.setMaxListeners(1/0),oD.infinite=!0;u5.exports=function(D,$){if(!h8(global.process))return function(){};if(FW.equal(typeof D,"function","a callback must be provided for exit handler"),m8===!1)fY();var X="exit";if($&&$.alwaysLast)X="afterexit";var J=function(){if(oD.removeListener(X,D),oD.listeners("exit").length===0&&oD.listeners("afterexit").length===0)E2()};return oD.on(X,D),J},E2=function(){if(!m8||!h8(global.process))return;m8=!1,g8.forEach(function($){try{RD.removeListener($,R2[$])}catch(X){}}),RD.emit=j2,RD.reallyExit=kY,oD.count-=1},u5.exports.unload=E2,z4=function($,X,J){if(oD.emitted[$])return;oD.emitted[$]=!0,oD.emit($,X,J)},R2={},g8.forEach(function(D){R2[D]=function(){if(!h8(global.process))return;var X=RD.listeners(D);if(X.length===oD.count){if(E2(),z4("exit",null,D),z4("afterexit",null,D),YW&&D==="SIGHUP")D="SIGINT";RD.kill(RD.pid,D)}}}),u5.exports.signals=function(){return g8},m8=!1,fY=function(){if(m8||!h8(global.process))return;m8=!0,oD.count+=1,g8=g8.filter(function($){try{return RD.on($,R2[$]),!0}catch(X){return!1}}),RD.emit=UW,RD.reallyExit=QW},u5.exports.load=fY,kY=RD.reallyExit,QW=function($){if(!h8(global.process))return;RD.exitCode=$||0,z4("exit",RD.exitCode,null),z4("afterexit",RD.exitCode,null),kY.call(RD,RD.exitCode)},j2=RD.emit,UW=function($,X){if($==="exit"&&h8(global.process)){if(X!==void 0)RD.exitCode=X;var J=j2.apply(this,arguments);return z4("exit",RD.exitCode,null),z4("afterexit",RD.exitCode,null),J}else return j2.apply(this,arguments)}}var FW,g8,YW,P5,oD,E2,z4,R2,m8,fY,kY,QW,j2,UW});var lv=E((DW0,ZW)=>{var nv=Symbol();function sq0(D,$,X){let J=$[nv];if(J)return $.stat(D,(Y,Q)=>{if(Y)return X(Y);X(null,Q.mtime,J)});let F=new Date(Math.ceil(Date.now()/1000)*1000+5);$.utimes(D,F,F,(Y)=>{if(Y)return X(Y);$.stat(D,(Q,U)=>{if(Q)return X(Q);let Z=U.mtime.getTime()%1000===0?"s":"ms";Object.defineProperty($,nv,{value:Z}),X(null,U.mtime,Z)})})}function eq0(D){let $=Date.now();if(D==="s")$=Math.ceil($/1000)*1000;return new Date($)}DW0.probe=sq0;DW0.getMtime=eq0});var ov=E((OW0,C2)=>{var JW0=l("path"),wW=bD(),FW0=cv(),YW0=yY(),iv=lv(),k6={};function T2(D,$){return $.lockfilePath||`${D}.lock`}function qW(D,$,X){if(!$.realpath)return X(null,JW0.resolve(D));$.fs.realpath(D,X)}function GW(D,$,X){let J=T2(D,$);$.fs.mkdir(J,(F)=>{if(!F)return iv.probe(J,$.fs,(Y,Q,U)=>{if(Y)return $.fs.rmdir(J,()=>{}),X(Y);X(null,Q,U)});if(F.code!=="EEXIST")return X(F);if($.stale<=0)return X(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:D}));$.fs.stat(J,(Y,Q)=>{if(Y){if(Y.code==="ENOENT")return GW(D,{...$,stale:0},X);return X(Y)}if(!pv(Q,$))return X(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:D}));rv(D,$,(U)=>{if(U)return X(U);GW(D,{...$,stale:0},X)})})})}function pv(D,$){return D.mtime.getTime()<Date.now()-$.stale}function rv(D,$,X){$.fs.rmdir(T2(D,$),(J)=>{if(J&&J.code!=="ENOENT")return X(J);X()})}function bY(D,$){let X=k6[D];if(X.updateTimeout)return;if(X.updateDelay=X.updateDelay||$.update,X.updateTimeout=setTimeout(()=>{X.updateTimeout=null,$.fs.stat(X.lockfilePath,(J,F)=>{let Y=X.lastUpdate+$.stale<Date.now();if(J){if(J.code==="ENOENT"||Y)return OW(D,X,Object.assign(J,{code:"ECOMPROMISED"}));return X.updateDelay=1000,bY(D,$)}if(X.mtime.getTime()!==F.mtime.getTime())return OW(D,X,Object.assign(Error("Unable to update lock within the stale threshold"),{code:"ECOMPROMISED"}));let U=iv.getMtime(X.mtimePrecision);$.fs.utimes(X.lockfilePath,U,U,(Z)=>{let O=X.lastUpdate+$.stale<Date.now();if(X.released)return;if(Z){if(Z.code==="ENOENT"||O)return OW(D,X,Object.assign(Z,{code:"ECOMPROMISED"}));return X.updateDelay=1000,bY(D,$)}X.mtime=U,X.lastUpdate=Date.now(),X.updateDelay=null,bY(D,$)})})},X.updateDelay),X.updateTimeout.unref)X.updateTimeout.unref()}function OW(D,$,X){if($.released=!0,$.updateTimeout)clearTimeout($.updateTimeout);if(k6[D]===$)delete k6[D];$.options.onCompromised(X)}function QW0(D,$,X){$={stale:1e4,update:null,realpath:!0,retries:0,fs:wW,onCompromised:(J)=>{throw J},...$},$.retries=$.retries||0,$.retries=typeof $.retries==="number"?{retries:$.retries}:$.retries,$.stale=Math.max($.stale||0,2000),$.update=$.update==null?$.stale/2:$.update||0,$.update=Math.max(Math.min($.update,$.stale/2),1000),qW(D,$,(J,F)=>{if(J)return X(J);let Y=FW0.operation($.retries);Y.attempt(()=>{GW(F,$,(Q,U,Z)=>{if(Y.retry(Q))return;if(Q)return X(Y.mainError());let O=k6[F]={lockfilePath:T2(F,$),mtime:U,mtimePrecision:Z,options:$,lastUpdate:Date.now()};bY(F,$),X(null,(G)=>{if(O.released)return G&&G(Object.assign(Error("Lock is already released"),{code:"ERELEASED"}));tv(F,{...$,realpath:!1},G)})})})})}function tv(D,$,X){$={fs:wW,realpath:!0,...$},qW(D,$,(J,F)=>{if(J)return X(J);let Y=k6[F];if(!Y)return X(Object.assign(Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));Y.updateTimeout&&clearTimeout(Y.updateTimeout),Y.released=!0,delete k6[F],rv(F,$,X)})}function UW0(D,$,X){$={stale:1e4,realpath:!0,fs:wW,...$},$.stale=Math.max($.stale||0,2000),qW(D,$,(J,F)=>{if(J)return X(J);$.fs.stat(T2(F,$),(Y,Q)=>{if(Y)return Y.code==="ENOENT"?X(null,!1):X(Y);return X(null,!pv(Q,$))})})}function ZW0(){return k6}YW0(()=>{for(let D in k6){let $=k6[D].options;try{$.fs.rmdirSync(T2(D,$))}catch(X){}}});OW0.lock=QW0;OW0.unlock=tv;OW0.check=UW0;OW0.getLocks=ZW0});var sv=E((Vs0,av)=>{var KW0=bD();function HW0(D){let $=["mkdir","realpath","stat","rmdir","utimes"],X={...D};return $.forEach((J)=>{X[J]=(...F)=>{let Y=F.pop(),Q;try{Q=D[`${J}Sync`](...F)}catch(U){return Y(U)}Y(null,Q)}}),X}function BW0(D){return(...$)=>new Promise((X,J)=>{$.push((F,Y)=>{if(F)J(F);else X(Y)}),D(...$)})}function NW0(D){return(...$)=>{let X,J;if($.push((F,Y)=>{X=F,J=Y}),D(...$),X)throw X;return J}}function zW0(D){if(D={...D},D.fs=HW0(D.fs||KW0),typeof D.retries==="number"&&D.retries>0||D.retries&&typeof D.retries.retries==="number"&&D.retries.retries>0)throw Object.assign(Error("Cannot use retries with the sync api"),{code:"ESYNC"});return D}av.exports={toPromise:BW0,toSync:NW0,toSyncOptions:zW0}});var D_=E((Ls0,V4)=>{var x5=ov(),{toPromise:hY,toSync:gY,toSyncOptions:WW}=sv();async function ev(D,$){let X=await hY(x5.lock)(D,$);return hY(X)}function VW0(D,$){let X=gY(x5.lock)(D,WW($));return gY(X)}function LW0(D,$){return hY(x5.unlock)(D,$)}function MW0(D,$){return gY(x5.unlock)(D,WW($))}function IW0(D,$){return hY(x5.check)(D,$)}function AW0(D,$){return gY(x5.check)(D,WW($))}V4.exports=ev;V4.exports.lock=ev;V4.exports.unlock=LW0;V4.exports.lockSync=VW0;V4.exports.unlockSync=MW0;V4.exports.check=IW0;V4.exports.checkSync=AW0});var U_=E((Y_)=>{Object.defineProperty(Y_,"__esModule",{value:!0});Y_.canStoreURLs=Y_.FileUrlStorage=void 0;var $_=l("fs"),EW0=jW0(Sv()),X_=RW0(D_());function F_(D){if(typeof WeakMap!="function")return null;var $=new WeakMap,X=new WeakMap;return(F_=function(J){return J?X:$})(D)}function RW0(D,$){if(!$&&D&&D.__esModule)return D;if(D===null||typeof D!="object"&&typeof D!="function")return{default:D};var X=F_($);if(X&&X.has(D))return X.get(D);var J={__proto__:null},F=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Y in D)if(Y!=="default"&&{}.hasOwnProperty.call(D,Y)){var Q=F?Object.getOwnPropertyDescriptor(D,Y):null;Q&&(Q.get||Q.set)?Object.defineProperty(J,Y,Q):J[Y]=D[Y]}return J.default=D,X&&X.set(D,J),J}function jW0(D){return D&&D.__esModule?D:{default:D}}function S2(D){return S2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},S2(D)}function TW0(D,$){if(!(D instanceof $))throw TypeError("Cannot call a class as a function")}function J_(D,$){for(var X=0;X<$.length;X++){var J=$[X];if(J.enumerable=J.enumerable||!1,J.configurable=!0,"value"in J)J.writable=!0;Object.defineProperty(D,SW0(J.key),J)}}function CW0(D,$,X){if($)J_(D.prototype,$);if(X)J_(D,X);return Object.defineProperty(D,"prototype",{writable:!1}),D}function SW0(D){var $=PW0(D,"string");return S2($)=="symbol"?$:$+""}function PW0(D,$){if(S2(D)!="object"||!D)return D;var X=D[Symbol.toPrimitive];if(X!==void 0){var J=X.call(D,$||"default");if(S2(J)!="object")return J;throw TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(D)}var Ms0=Y_.canStoreURLs=!0,Is0=Y_.FileUrlStorage=function(){function D($){TW0(this,D),this.path=$}return CW0(D,[{key:"findAllUploads",value:function(){var X=this;return new Promise(function(J,F){X._getItems("tus::",function(Y,Q){if(Y)F(Y);else J(Q)})})}},{key:"findUploadsByFingerprint",value:function(X){var J=this;return new Promise(function(F,Y){J._getItems("tus::".concat(X),function(Q,U){if(Q)Y(Q);else F(U)})})}},{key:"removeUpload",value:function(X){var J=this;return new Promise(function(F,Y){J._removeItem(X,function(Q){if(Q)Y(Q);else F()})})}},{key:"addUpload",value:function(X,J){var F=this,Y=Math.round(Math.random()*1000000000000),Q="tus::".concat(X,"::").concat(Y);return new Promise(function(U,Z){F._setItem(Q,J,function(O){if(O)Z(O);else U(Q)})})}},{key:"_setItem",value:function(X,J,F){var Y=this;X_.lock(this.path,this._lockfileOptions()).then(function(Q){F=Y._releaseAndCb(Q,F),Y._getData(function(U,Z){if(U){F(U);return}Z[X]=J,Y._writeData(Z,function(O){return F(O)})})}).catch(F)}},{key:"_getItems",value:function(X,J){this._getData(function(F,Y){if(F){J(F);return}var Q=Object.keys(Y).filter(function(U){return U.startsWith(X)}).map(function(U){var Z=Y[U];return Z.urlStorageKey=U,Z});J(null,Q)})}},{key:"_removeItem",value:function(X,J){var F=this;X_.lock(this.path,this._lockfileOptions()).then(function(Y){J=F._releaseAndCb(Y,J),F._getData(function(Q,U){if(Q){J(Q);return}delete U[X],F._writeData(U,function(Z){return J(Z)})})}).catch(J)}},{key:"_lockfileOptions",value:function(){return{realpath:!1,retries:{retries:5,minTimeout:20}}}},{key:"_releaseAndCb",value:function(X,J){return function(F){if(F){X().then(function(){return J(F)}).catch(function(Y){return J((0,EW0.default)([F,Y]))});return}X().then(J).catch(J)}}},{key:"_writeData",value:function(X,J){var F={encoding:"utf8",mode:432,flag:"w"};(0,$_.writeFile)(this.path,JSON.stringify(X),F,function(Y){return J(Y)})}},{key:"_getData",value:function(X){(0,$_.readFile)(this.path,"utf8",function(J,F){if(J){if(J.code==="ENOENT")X(null,{});else X(J);return}try{F=!F.trim().length?{}:JSON.parse(F)}catch(Y){X(Y);return}X(null,F)})}}])}()});var cY=E((L4)=>{Object.defineProperty(L4,"__esModule",{value:!0});Object.defineProperty(L4,"DefaultHttpStack",{enumerable:!0,get:function(){return w_.default}});Object.defineProperty(L4,"DetailedError",{enumerable:!0,get:function(){return xW0.default}});Object.defineProperty(L4,"FileUrlStorage",{enumerable:!0,get:function(){return q_.FileUrlStorage}});Object.defineProperty(L4,"StreamSource",{enumerable:!0,get:function(){return yW0.default}});L4.Upload=void 0;Object.defineProperty(L4,"canStoreURLs",{enumerable:!0,get:function(){return q_.canStoreURLs}});L4.defaultOptions=void 0;Object.defineProperty(L4,"enableDebugLog",{enumerable:!0,get:function(){return vW0.enableDebugLog}});L4.isSupported=void 0;var xW0=c8(Wq()),vW0=Kq(),_W0=c8(Du()),KW=c8(vu()),fW0=c8(eu()),kW0=c8(Fx()),w_=c8(Lx()),yW0=c8(Rq()),q_=U_();function c8(D){return D&&D.__esModule?D:{default:D}}function _5(D){return _5=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_5(D)}function bW0(D,$){if(!(D instanceof $))throw TypeError("Cannot call a class as a function")}function Z_(D,$){for(var X=0;X<$.length;X++){var J=$[X];if(J.enumerable=J.enumerable||!1,J.configurable=!0,"value"in J)J.writable=!0;Object.defineProperty(D,K_(J.key),J)}}function hW0(D,$,X){if($)Z_(D.prototype,$);if(X)Z_(D,X);return Object.defineProperty(D,"prototype",{writable:!1}),D}function gW0(D,$,X){return $=mY($),mW0(D,W_()?Reflect.construct($,X||[],mY(D).constructor):$.apply(D,X))}function mW0(D,$){if($&&(_5($)==="object"||typeof $==="function"))return $;else if($!==void 0)throw TypeError("Derived constructors may only return object or undefined");return cW0(D)}function cW0(D){if(D===void 0)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return D}function W_(){try{var D=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch($){}return(W_=function(){return!!D})()}function mY(D){return mY=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(X){return X.__proto__||Object.getPrototypeOf(X)},mY(D)}function dW0(D,$){if(typeof $!=="function"&&$!==null)throw TypeError("Super expression must either be null or a function");if(D.prototype=Object.create($&&$.prototype,{constructor:{value:D,writable:!0,configurable:!0}}),Object.defineProperty(D,"prototype",{writable:!1}),$)HW(D,$)}function HW(D,$){return HW=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(J,F){return J.__proto__=F,J},HW(D,$)}function O_(D,$){var X=Object.keys(D);if(Object.getOwnPropertySymbols){var J=Object.getOwnPropertySymbols(D);$&&(J=J.filter(function(F){return Object.getOwnPropertyDescriptor(D,F).enumerable})),X.push.apply(X,J)}return X}function v5(D){for(var $=1;$<arguments.length;$++){var X=arguments[$]!=null?arguments[$]:{};$%2?O_(Object(X),!0).forEach(function(J){nW0(D,J,X[J])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(X)):O_(Object(X)).forEach(function(J){Object.defineProperty(D,J,Object.getOwnPropertyDescriptor(X,J))})}return D}function nW0(D,$,X){if($=K_($),$ in D)Object.defineProperty(D,$,{value:X,enumerable:!0,configurable:!0,writable:!0});else D[$]=X;return D}function K_(D){var $=lW0(D,"string");return _5($)=="symbol"?$:$+""}function lW0(D,$){if(_5(D)!="object"||!D)return D;var X=D[Symbol.toPrimitive];if(X!==void 0){var J=X.call(D,$||"default");if(_5(J)!="object")return J;throw TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(D)}var G_=L4.defaultOptions=v5(v5({},KW.default.defaultOptions),{},{httpStack:new w_.default,fileReader:new fW0.default,urlStorage:new _W0.default,fingerprint:kW0.default}),Es0=L4.Upload=function(D){function $(){var X=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,J=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return bW0(this,$),J=v5(v5({},G_),J),gW0(this,$,[X,J])}return dW0($,D),hW0($,null,[{key:"terminate",value:function(J){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return F=v5(v5({},G_),F),KW.default.terminate(J,F)}}])}(KW.default),Rs0=L4.isSupported=!0});var i1;var d8=p(()=>{i1={name:"@capgo/cli",type:"module",version:"7.124.5",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:"git+https://github.com/Cap-go/capgo.git",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:bundle":"bun test/test-bundle.mjs","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:credentials":"bun test/test-credentials.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:ci-prompts":"bun test/test-ci-prompts.mjs","test:ci-secrets":"bun test/test-ci-secrets.mjs","test:android-onboarding-progress":"bun test/test-android-onboarding-progress.mjs","test:onboarding-telemetry":"bun test/test-onboarding-telemetry.mjs","test:v2-event-migration":"bun test/test-v2-event-migration.mjs","test:analytics":"bun test/test-analytics.mjs","test: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:mcp-analytics":"bun test/test-mcp-analytics.mjs","test:app-created-source":"bun test/test-app-created-source.mjs","test:doctor-analytics":"bun test/test-doctor-analytics.mjs","test:posthog-exception":"bun test/test-posthog-exception.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:init-guardrails":"bun test/test-init-guardrails.mjs","test:prompt-preferences":"bun test/test-prompt-preferences.mjs","test:esm-sdk":"node test/test-sdk-esm.mjs","test:mcp":"node test/test-mcp.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:payload-split":"bun test/test-payload-split.mjs","test:macos-signing":"bun test/test-macos-signing.mjs","test:apple-api-import-helpers":"bun test/test-apple-api-import-helpers.mjs","test:bundle-id-detector":"bun test/test-bundle-id-detector.mjs","test:manifest-path-encoding":"bun test/test-manifest-path-encoding.mjs",test:"bun run build && bun run test:version-detection:setup && bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:fail-on-incompatible && bun run test:credentials && 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: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:analytics-error-category && bun run test:analytics-org-resolver && bun run test:supabase-perf && bun run test:mcp-analytics && bun run test:app-created-source && bun run test:doctor-analytics && bun run test:posthog-exception && bun run test:build-platform-selection && 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-app-conflict && bun run test:init-guardrails && bun run test:prompt-preferences && bun run test:esm-sdk && bun run test:mcp && bun run test:version-detection && bun run test:platform-paths && bun run test:payload-split && bun run test:manifest-path-encoding && bun run test:macos-signing && bun run test:apple-api-import-helpers && bun run test:bundle-id-detector && bun run test:ai-log-capture && bun run test:ai-analyze-flow && bun run test:ai-render-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","test:build-platform-selection":"bun test/test-build-platform-selection.mjs","test:ai-log-capture":"bun test/test-ai-log-capture.mjs","test:ai-analyze-flow":"bun test/test-ai-analyze-flow.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"},dependencies:{"@inkjs/ui":"^2.0.0",ink:"^7.0.4","ink-spinner":"^5.0.0",jsonwebtoken:"^9.0.3","node-forge":"^1.4.0",qrcode:"^1.5.4",react:"^19.2.6","string-width":"^8.2.1"},devDependencies:{"@antfu/eslint-config":"^9.0.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.6","@capacitor/cli":"^8.3.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.8","@supabase/supabase-js":"^2.106.2","@tanstack/intent":"^0.0.41","@types/adm-zip":"^0.5.8","@types/jsonwebtoken":"^9.0.10","@types/node":"^25.9.1","@types/node-forge":"^1.3.14","@types/prettyjson":"^0.0.33","@types/qrcode":"^1.5.6","@types/react":"^19.2.15","@types/tmp":"^0.2.6","@types/ws":"^8.18.1","@typescript/native-preview":"7.0.0-dev.20260526.1","@vercel/ncc":"^0.38.4","@xterm/headless":"^6.0.0","adm-zip":"^0.5.17","ci-info":"^4.4.0",commander:"^14.0.3",eslint:"^10.4.0","git-format-staged":"4.0.1",husky:"^9.1.7","is-wsl":"^3.1.1",micromatch:"^4.0.8",open:"^11.0.0",oxlint:"^1.67.0",partysocket:"^1.1.19",prettyjson:"^1.2.5",tmp:"^0.2.6","tus-js-client":"^4.3.1",typescript:"^6.0.3",ws:"^8.21.0",zod:"^4.4.3"}}});async function dY(D){try{let X=`https://registry.npmjs.org/${encodeURIComponent(D.toLowerCase())}`,J=await fetch(X,{headers:{accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"}});if(!J.ok)return null;return(await J.json())["dist-tags"]?.latest||null}catch{return null}}async function pW0(){let D=await dY("@capgo/cli")??"",$=D?.split(".")[0]??"";return{currentVersion:i1.version,latestVersion:D,isOutdated:!!D&&D!==i1.version,majorVersion:$}}async function WD(){let{isOutdated:D,currentVersion:$,latestVersion:X,majorVersion:J}=await pW0();if(D)V.warning(`\uD83D\uDEA8 You are using @capgo/cli@${$} it's not the latest version.
128
128
  Please use @capgo/cli@${X}" or @capgo/cli@${J} to keep up to date with the latest features and bug fixes.`)}var T1=p(()=>{f0();d8()});async function z_(D,$,X,J,F,Y="✅"){await M0(X,{channel:D,event:J,icon:Y,org_id:$,tracking_version:2,...F?{tags:{"app-id":F}}:{},notify:!1})}var V_=p(()=>{f0();c9();T1();x0()});var M_=E((bs0,L_)=>{var f5=1000,k5=f5*60,y5=k5*60,n8=y5*24,rW0=n8*7,tW0=n8*365.25;L_.exports=function(D,$){$=$||{};var X=typeof D;if(X==="string"&&D.length>0)return oW0(D);else if(X==="number"&&isFinite(D))return $.long?sW0(D):aW0(D);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(D))};function oW0(D){if(D=String(D),D.length>100)return;var $=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(D);if(!$)return;var X=parseFloat($[1]),J=($[2]||"ms").toLowerCase();switch(J){case"years":case"year":case"yrs":case"yr":case"y":return X*tW0;case"weeks":case"week":case"w":return X*rW0;case"days":case"day":case"d":return X*n8;case"hours":case"hour":case"hrs":case"hr":case"h":return X*y5;case"minutes":case"minute":case"mins":case"min":case"m":return X*k5;case"seconds":case"second":case"secs":case"sec":case"s":return X*f5;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return X;default:return}}function aW0(D){var $=Math.abs(D);if($>=n8)return Math.round(D/n8)+"d";if($>=y5)return Math.round(D/y5)+"h";if($>=k5)return Math.round(D/k5)+"m";if($>=f5)return Math.round(D/f5)+"s";return D+"ms"}function sW0(D){var $=Math.abs(D);if($>=n8)return nY(D,$,n8,"day");if($>=y5)return nY(D,$,y5,"hour");if($>=k5)return nY(D,$,k5,"minute");if($>=f5)return nY(D,$,f5,"second");return D+" ms"}function nY(D,$,X,J){var F=$>=X*1.5;return Math.round(D/X)+" "+J+(F?"s":"")}});var BW=E((hs0,I_)=>{function eW0(D){X.debug=X,X.default=X,X.coerce=Z,X.disable=Q,X.enable=F,X.enabled=U,X.humanize=M_(),X.destroy=O,Object.keys(D).forEach((G)=>{X[G]=D[G]}),X.names=[],X.skips=[],X.formatters={};function $(G){let w=0;for(let q=0;q<G.length;q++)w=(w<<5)-w+G.charCodeAt(q),w|=0;return X.colors[Math.abs(w)%X.colors.length]}X.selectColor=$;function X(G){let w,q=null,W,K;function H(...L){if(!H.enabled)return;let M=H,I=Number(new Date),B=I-(w||I);if(M.diff=B,M.prev=w,M.curr=I,w=I,L[0]=X.coerce(L[0]),typeof L[0]!=="string")L.unshift("%O");let N=0;L[0]=L[0].replace(/%([a-zA-Z%])/g,(R,v)=>{if(R==="%%")return"%";N++;let _=X.formatters[v];if(typeof _==="function"){let A=L[N];R=_.call(M,A),L.splice(N,1),N--}return R}),X.formatArgs.call(M,L),(M.log||X.log).apply(M,L)}if(H.namespace=G,H.useColors=X.useColors(),H.color=X.selectColor(G),H.extend=J,H.destroy=X.destroy,Object.defineProperty(H,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(q!==null)return q;if(W!==X.namespaces)W=X.namespaces,K=X.enabled(G);return K},set:(L)=>{q=L}}),typeof X.init==="function")X.init(H);return H}function J(G,w){let q=X(this.namespace+(typeof w>"u"?":":w)+G);return q.log=this.log,q}function F(G){X.save(G),X.namespaces=G,X.names=[],X.skips=[];let w=(typeof G==="string"?G:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let q of w)if(q[0]==="-")X.skips.push(q.slice(1));else X.names.push(q)}function Y(G,w){let q=0,W=0,K=-1,H=0;while(q<G.length)if(W<w.length&&(w[W]===G[q]||w[W]==="*"))if(w[W]==="*")K=W,H=q,W++;else q++,W++;else if(K!==-1)W=K+1,H++,q=H;else return!1;while(W<w.length&&w[W]==="*")W++;return W===w.length}function Q(){let G=[...X.names,...X.skips.map((w)=>"-"+w)].join(",");return X.enable(""),G}function U(G){for(let w of X.skips)if(Y(G,w))return!1;for(let w of X.names)if(Y(G,w))return!0;return!1}function Z(G){if(G instanceof Error)return G.stack||G.message;return G}function O(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return X.enable(X.load()),X}I_.exports=eW0});var E_=E((A_,lY)=>{A_.formatArgs=$K0;A_.save=XK0;A_.load=JK0;A_.useColors=DK0;A_.storage=FK0();A_.destroy=(()=>{let D=!1;return()=>{if(!D)D=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();A_.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function DK0(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let D;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(D=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(D[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function $K0(D){if(D[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+D[0]+(this.useColors?"%c ":" ")+"+"+lY.exports.humanize(this.diff),!this.useColors)return;let $="color: "+this.color;D.splice(1,0,$,"color: inherit");let X=0,J=0;D[0].replace(/%[a-zA-Z%]/g,(F)=>{if(F==="%%")return;if(X++,F==="%c")J=X}),D.splice(J,0,$)}A_.log=console.debug||console.log||(()=>{});function XK0(D){try{if(D)A_.storage.setItem("debug",D);else A_.storage.removeItem("debug")}catch($){}}function JK0(){let D;try{D=A_.storage.getItem("debug")||A_.storage.getItem("DEBUG")}catch($){}if(!D&&typeof process<"u"&&"env"in process)D=process.env.DEBUG;return D}function FK0(){try{return localStorage}catch(D){}}lY.exports=BW()(A_);var{formatters:YK0}=lY.exports;YK0.j=function(D){try{return JSON.stringify(D)}catch($){return"[UnexpectedJSONParseError]: "+$.message}}});var j_=E((ms0,R_)=>{R_.exports=(D,$=process.argv)=>{let X=D.startsWith("-")?"":D.length===1?"-":"--",J=$.indexOf(X+D),F=$.indexOf("--");return J!==-1&&(F===-1||J<F)}});var S_=E((cs0,C_)=>{var WK0=l("os"),T_=l("tty"),M$=j_(),{env:$1}=process,M4;if(M$("no-color")||M$("no-colors")||M$("color=false")||M$("color=never"))M4=0;else if(M$("color")||M$("colors")||M$("color=true")||M$("color=always"))M4=1;if("FORCE_COLOR"in $1)if($1.FORCE_COLOR==="true")M4=1;else if($1.FORCE_COLOR==="false")M4=0;else M4=$1.FORCE_COLOR.length===0?1:Math.min(parseInt($1.FORCE_COLOR,10),3);function NW(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function zW(D,$){if(M4===0)return 0;if(M$("color=16m")||M$("color=full")||M$("color=truecolor"))return 3;if(M$("color=256"))return 2;if(D&&!$&&M4===void 0)return 0;let X=M4||0;if($1.TERM==="dumb")return X;if(process.platform==="win32"){let J=WK0.release().split(".");if(Number(J[0])>=10&&Number(J[2])>=10586)return Number(J[2])>=14931?3:2;return 1}if("CI"in $1){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((J)=>(J in $1))||$1.CI_NAME==="codeship")return 1;return X}if("TEAMCITY_VERSION"in $1)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test($1.TEAMCITY_VERSION)?1:0;if($1.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in $1){let J=parseInt(($1.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch($1.TERM_PROGRAM){case"iTerm.app":return J>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test($1.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test($1.TERM))return 1;if("COLORTERM"in $1)return 1;return X}function KK0(D){let $=zW(D,D&&D.isTTY);return NW($)}C_.exports={supportsColor:KK0,stdout:NW(zW(!0,T_.isatty(1))),stderr:NW(zW(!0,T_.isatty(2)))}});var v_=E((u_,pY)=>{var HK0=l("tty"),iY=l("util");u_.init=IK0;u_.log=VK0;u_.formatArgs=NK0;u_.save=LK0;u_.load=MK0;u_.useColors=BK0;u_.destroy=iY.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");u_.colors=[6,2,3,4,5,1];try{let D=S_();if(D&&(D.stderr||D).level>=2)u_.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(D){}u_.inspectOpts=Object.keys(process.env).filter((D)=>{return/^debug_/i.test(D)}).reduce((D,$)=>{let X=$.substring(6).toLowerCase().replace(/_([a-z])/g,(F,Y)=>{return Y.toUpperCase()}),J=process.env[$];if(/^(yes|on|true|enabled)$/i.test(J))J=!0;else if(/^(no|off|false|disabled)$/i.test(J))J=!1;else if(J==="null")J=null;else J=Number(J);return D[X]=J,D},{});function BK0(){return"colors"in u_.inspectOpts?Boolean(u_.inspectOpts.colors):HK0.isatty(process.stderr.fd)}function NK0(D){let{namespace:$,useColors:X}=this;if(X){let J=this.color,F="\x1B[3"+(J<8?J:"8;5;"+J),Y=` ${F};1m${$} \x1B[0m`;D[0]=Y+D[0].split(`
129
129
  `).join(`
130
130
  `+Y),D.push(F+"m+"+pY.exports.humanize(this.diff)+"\x1B[0m")}else D[0]=zK0()+$+" "+D[0]}function zK0(){if(u_.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function VK0(...D){return process.stderr.write(iY.formatWithOptions(u_.inspectOpts,...D)+`
@@ -549,8 +549,8 @@ ${X}
549
549
  `),J=[],F=!1,Y=R9(A6.gray,"▎ ");for(let Q of X){if(Q.trimStart().startsWith("```")){F=!F;continue}if(F){J.push(`${Y}${Q}`);continue}let U=Q.match(/^(#{1,6}) +(\S.*)$/);if(U){let G=U[2];J.push(""),J.push(R9(`${A6.bold}${A6.cyan}`,G));continue}let Z=Q.match(/^([ \t]*)(\d+)\. +(\S.*)$/);if(Z){let[,G,w,q]=Z;J.push(`${G}${R9(A6.yellow,`${w}.`)} ${XA(q)}`);continue}let O=Q.match(/^([ \t]*)[-*] +(\S.*)$/);if(O){let[,G,w]=O;J.push(`${G}${R9(A6.yellow,"•")} ${XA(w)}`);continue}J.push(XA(Q))}return J.join(`
550
550
  `)}x0();async function XG(D){try{await M0(D.apikey,{event:"CLI AI Build Analysis Choice",channel:"build-lifecycle",icon:"\uD83E\uDD16",notify:!1,org_id:D.orgId,tracking_version:2,tags:{app_id:D.appId,platform:D.platform,job_id:D.jobId,choice:D.choice,triggered_by:D.triggeredBy}})}catch{}}async function y10(D){let $={app_id:D.appId,platform:D.platform,job_id:D.jobId,result:D.result};if(D.result==="error"&&typeof D.errorStatus==="number"&&Number.isFinite(D.errorStatus))$.error_status=String(D.errorStatus);try{await M0(D.apikey,{event:"CLI AI Build Analysis Result",channel:"build-lifecycle",icon:"\uD83E\uDD16",notify:!1,org_id:D.orgId,tracking_version:2,tags:$})}catch{}}x0();import{Buffer as fy0}from"node:buffer";import{homedir as ky0}from"node:os";import{join as YA}from"node:path";import{cwd as yy0,env as by0}from"node:process";import{randomBytes as jy0}from"node:crypto";import{appendFile as Ty0,chmod as S3D,lstat as Cy0,mkdir as P3D,readFile as Sy0,rename as Py0,rm as uy0,writeFile as xy0}from"node:fs/promises";import{dirname as vy0,join as _y0}from"node:path";async function JA(D){try{if((await Cy0(D)).isSymbolicLink())throw Error(`Refusing to access symbolic link path: ${D}`)}catch($){if($.code!=="ENOENT")throw $}}async function b10(D,$,X=384){await JA(D),await Ty0(D,$,{mode:X})}async function Y3(D,$,X={}){let J=X.mode??384;await JA(D);let F=_y0(vy0(D),`.capgo-tmp-${jy0(8).toString("hex")}`);try{await xy0(F,$,{encoding:X.encoding??"utf-8",mode:J}),await Py0(F,D)}catch(Y){throw await uy0(F,{force:!0}),Y}}async function JG(D){return await JA(D),await Sy0(D,"utf-8")}var hy0=YA(ky0(),".capgo-credentials"),gy0=YA(hy0,"credentials.json"),my0=".capgo-credentials.json",j9=3600,h10=604800;function cy0(D){return D?YA(yy0(),my0):gy0}function FG(D){let X=D.trim().match(/^(\d+)\s*([smhd])?$/i);if(!X)throw Error("output-retention must be a number with optional unit: s, m, h, d (examples: 1h, 3600s, 2d)");let J=Number.parseInt(X[1],10),F=(X[2]||"s").toLowerCase(),Q=J*(F==="s"?1:F==="m"?60:F==="h"?3600:86400);if(Q<j9)throw Error(`output-retention must be at least ${j9} seconds (1h)`);if(Q>h10)throw Error(`output-retention must be at most ${h10} seconds (7d)`);return Q}function Q3(D){if(D===void 0)return!0;if(typeof D==="boolean")return D;let $=D.trim().toLowerCase();if($==="true"||$==="1"||$==="yes")return!0;if($==="false"||$==="0"||$==="no")return!1;throw Error("output-upload must be true/false (examples: --output-upload, --output-upload false)")}function YG(D){if(typeof D==="string"&&D.trim()==="")throw Error("in-app-update-priority must be an integer between 0 and 5");let $=typeof D==="number"?D:Number(D);if(!Number.isInteger($)||$<0||$>5)throw Error("in-app-update-priority must be an integer between 0 and 5");return $}async function FA(D){try{let $=cy0(D),X=await JG($);return JSON.parse(X)}catch{return{}}}async function QG(D,$){if($!==void 0){let F=await FA($);if(!D){let Y=Object.keys(F);if(Y.length===0)return null;return F[Y[0]]||null}return F[D]||null}let X=await FA(!0),J=await FA(!1);if(!D){let F=Object.keys(X);if(F.length>0)return X[F[0]]||null;let Y=Object.keys(J);if(Y.length===0)return null;return J[Y[0]]||null}return X[D]||J[D]||null}function nD(D){return by0[D]}function dy0(){let D={},$=nD("BUILD_CERTIFICATE_BASE64"),X=nD("P12_PASSWORD"),J=nD("APPLE_KEY_ID"),F=nD("APPLE_ISSUER_ID"),Y=nD("APPLE_KEY_CONTENT"),Q=nD("APP_STORE_CONNECT_TEAM_ID"),U=nD("CAPGO_IOS_SCHEME"),Z=nD("CAPGO_IOS_TARGET"),O=nD("CAPGO_IOS_PROVISIONING_MAP"),G=nD("CAPGO_IOS_PROVISIONING_MAP_BASE64"),w=O||(G?fy0.from(G,"base64").toString("utf-8"):void 0),W=nD("CAPGO_ANDROID_FLAVOR")?.trim()||void 0,K=nD("ANDROID_KEYSTORE_FILE"),H=nD("KEYSTORE_KEY_ALIAS"),L=nD("KEYSTORE_KEY_PASSWORD"),M=nD("KEYSTORE_STORE_PASSWORD"),I=nD("PLAY_CONFIG_JSON"),B=nD("PLAY_STORE_IN_APP_UPDATE_PRIORITY"),N=nD("BUILD_OUTPUT_UPLOAD_ENABLED"),z=nD("BUILD_OUTPUT_RETENTION_SECONDS"),R=nD("SKIP_BUILD_NUMBER_BUMP"),v=nD("CAPGO_IOS_DISTRIBUTION");if($)D.BUILD_CERTIFICATE_BASE64=$;if(X)D.P12_PASSWORD=X;if(J)D.APPLE_KEY_ID=J;if(F)D.APPLE_ISSUER_ID=F;if(Y)D.APPLE_KEY_CONTENT=Y;if(Q)D.APP_STORE_CONNECT_TEAM_ID=Q;if(U)D.CAPGO_IOS_SCHEME=U;if(Z)D.CAPGO_IOS_TARGET=Z;if(v)D.CAPGO_IOS_DISTRIBUTION=v;if(w)D.CAPGO_IOS_PROVISIONING_MAP=w;let _=W?.trim();if(_)D.CAPGO_ANDROID_FLAVOR=_;if(K)D.ANDROID_KEYSTORE_FILE=K;if(H)D.KEYSTORE_KEY_ALIAS=H;if(L)D.KEYSTORE_KEY_PASSWORD=L;if(M)D.KEYSTORE_STORE_PASSWORD=M;if(I)D.PLAY_CONFIG_JSON=I;if(B)D.PLAY_STORE_IN_APP_UPDATE_PRIORITY=String(YG(B));if(N)D.BUILD_OUTPUT_UPLOAD_ENABLED=Q3(N)?"true":"false";if(z)D.BUILD_OUTPUT_RETENTION_SECONDS=String(FG(z));if(R)D.SKIP_BUILD_NUMBER_BUMP=Q3(R)?"true":"false";return D}async function g10(D,$,X){let J=await QG(D),F=dy0(),Y={...J?.[$]||{}};if(Object.assign(Y,F),X)Object.assign(Y,X);if($==="android"){let Q=!!Y.KEYSTORE_KEY_PASSWORD,U=!!Y.KEYSTORE_STORE_PASSWORD;if(Q&&!U)Y.KEYSTORE_STORE_PASSWORD=Y.KEYSTORE_KEY_PASSWORD;else if(!Q&&U)Y.KEYSTORE_KEY_PASSWORD=Y.KEYSTORE_STORE_PASSWORD}return Object.keys(Y).length>0?Y:void 0}import{existsSync as p10,readFileSync as sy0}from"node:fs";import{resolve as r10}from"node:path";f0();W1();x0();import{readFileSync as ny0}from"node:fs";function ZA(D){let $=ny0(D);return ly0($,D)}function ly0(D,$){let F=D.indexOf("<?xml"),Y=F!==-1?D.indexOf("</plist>",F):-1;if(F===-1||Y===-1||Y<=F)throw Error(`No embedded plist found in mobileprovision file: ${$}`);let Q=D.slice(F,Y+8).toString("utf-8"),U=QA(Q,"Name");if(!U)throw Error(`Mobileprovision file missing required 'Name' key: ${$}`);let Z=QA(Q,"UUID")||"",O=iy0(Q,"Entitlements","application-identifier")||"",G=O.indexOf("."),w=G!==-1?O.slice(G+1):O;return{name:U,uuid:Z,applicationIdentifier:O,bundleId:w}}function QA(D,$,X="string"){let J=UA(X),F=new RegExp(`<key>${UA($)}</key>\\s*<${J}>([^<]*)</${J}>`),Y=D.match(F);return Y?Y[1]:null}function iy0(D,$,X){let J=new RegExp(`<key>${UA($)}</key>\\s*<dict>([\\s\\S]*?)</dict>`),F=D.match(J);if(!F)return null;return QA(F[1],X)}function UA(D){return D.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}import{existsSync as m10,readdirSync as py0,readFileSync as ry0}from"node:fs";import{join as n10}from"node:path";var ty0=new Set(["com.apple.product-type.application","com.apple.product-type.app-extension","com.apple.product-type.app-extension.messages","com.apple.product-type.app-extension.messages-sticker-pack","com.apple.product-type.application.watchapp2","com.apple.product-type.watchkit2-extension","com.apple.product-type.extensionkit-extension","com.apple.product-type.application.on-demand-install-capable"]);function l10(D){if(!D)return[];let $=/\w+\s*\/\*[^*]*\*\/\s*=\s*\{[^}]*isa\s*=\s*PBXNativeTarget;[^}]*\}/g,X=[];for(let J of D.matchAll($)){let F=J[0],Y=F.match(/name\s*=\s*("[^"]*"|[^;\s]+)\s*;/),Q=F.match(/productType\s*=\s*"([^"]+)"/),U=F.match(/buildConfigurationList\s*=\s*(\w+)/);if(!Y||!Q||!U)continue;let Z=Y[1].replace(/^"|"$/g,""),O=Q[1],G=U[1];if(!ty0.has(O))continue;let w=oy0(D,G);X.push({name:Z,bundleId:w,productType:O})}return X}function oy0(D,$){let X=new RegExp(`${d10($)}\\s*\\/\\*[^*]*\\*\\/\\s*=\\s*\\{[^}]*isa\\s*=\\s*XCConfigurationList;[^}]*\\}`),J=D.match(X);if(!J)return"";let F=J[0].match(/buildConfigurations\s*=\s*\(([^)]*)\)/);if(!F)return"";let Y=Array.from(F[1].matchAll(/(\w+)/g),(U)=>U[1]);if(Y.length===0)return"";let Q="";for(let U of Y){let Z=new RegExp(`${d10(U)}\\s*\\/\\*[^*]*\\*\\/\\s*=\\s*\\{(?:[^{}]*\\{[^}]*\\})*[^}]*\\}`),O=D.match(Z);if(!O)continue;let G=O[0],w=G.match(/PRODUCT_BUNDLE_IDENTIFIER\s*=\s*"?([^";\s]+)"?\s*;/);if(!w)continue;let q=G.match(/name\s*=\s*("[^"]*"|[^;\s]+)\s*;/);if((q?q[1].replace(/^"|"$/g,""):"")==="Release")return w[1];if(!Q)Q=w[1]}return Q}function ay0(D){let $=n10(D,"ios"),X=c10($);if(X)return X;return c10(D)}function c10(D){if(!m10(D))return null;let $;try{$=py0(D)}catch{return null}for(let X of $)if(X.endsWith(".xcodeproj")){let J=n10(D,X,"project.pbxproj");if(m10(J))return J}return null}function i10(D){let $=ay0(D);if(!$)return null;try{return ry0($,"utf-8")}catch{return null}}function d10(D){return D.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function t10(D,$){let X={},J=[];if($){let F=i10($);if(F)J=l10(F)}for(let F of D){let Y=F.indexOf("="),Q,U;if(Y!==-1){if(Q=F.slice(0,Y).trim(),U=F.slice(Y+1).trim(),!Q)throw Error(`Empty bundle ID in provisioning profile entry: "${F}"`);if(!U)throw Error(`Empty profile path in provisioning profile entry: "${F}"`)}else{if(U=F.trim(),!U)throw Error("Empty provisioning profile entry");let q=r10(U);if(!p10(q))throw Error(`Provisioning profile not found: ${q}`);let W=ZA(q);if(J.find((H)=>H.bundleId===W.bundleId))Q=W.bundleId;else if(W.bundleId.endsWith(".*")){let H=J.find((L)=>L.productType==="com.apple.product-type.application");if(H)Q=H.bundleId;else Q=W.bundleId}else Q=W.bundleId}let Z=r10(U);if(!p10(Z))throw Error(`Provisioning profile not found: ${Z}`);if(X[Q])throw Error(`Duplicate provisioning profile for bundle ID "${Q}". Each bundle ID can only have one profile.`);let G=sy0(Z).toString("base64"),w=ZA(Z);X[Q]={profile:G,name:w.name}}return X}var JE=JD(XE(),1);import{mkdir as Jc0,writeFile as Fc0}from"node:fs/promises";import{dirname as Yc0,resolve as Qc0}from"node:path";import{cwd as Uc0}from"node:process";async function Y40(D,$,X){let J=Qc0(Uc0(),D),F=`${J}.qr.png`;await Jc0(Yc0(J),{recursive:!0});let Y=null,Q=null;if($.outputUrl){try{Y=await JE.default.toString($.outputUrl,{type:"utf8",errorCorrectionLevel:"L"})}catch(Z){X?.(`Failed to render ASCII QR code: ${F40(Z)}`)}try{await JE.default.toFile(F,$.outputUrl,{errorCorrectionLevel:"L",width:512}),Q=F}catch(Z){X?.(`Failed to render PNG QR code at ${F}: ${F40(Z)}`)}}let U={schemaVersion:1,jobId:$.jobId,appId:$.appId,platform:$.platform,buildMode:$.buildMode,status:$.status,outputUrl:$.outputUrl??null,qrCodeAscii:Y,qrCodePngPath:Q,finishedAt:new Date().toISOString()};return await Fc0(J,`${JSON.stringify(U,null,2)}
551
551
  `,"utf-8"),U}function F40(D){if(D instanceof Error)return D.message;return String(D)}var Q40=JD(XE(),1);async function FE(D,$,X,J){if(D==="qr_download_link"){let F=$.url;if(typeof F!=="string"){J("qr_download_link message missing url field");return}try{let Y=await Q40.default.toString(F,{type:"utf8",errorCorrectionLevel:"L"});X("");for(let Q of Y.split(`
552
- `))X(Q);X(F),X("")}catch{X(""),X(F),X("")}return}J(`Unknown message type "${D}" — you may need to update the CLI`),X(JSON.stringify($,null,2))}x0();function Oc0(D){if(!D||typeof D!=="object")return;let $=D.originalResponse?.getStatus?.();return typeof $==="number"?$:void 0}function Gc0(D){let $=Oc0(D);if($===401||$===403)return"unauthorized";if($===413)return"payload_too_large";if($!==void 0&&$>=500&&$<600)return"storage_failure";if($===void 0||$===0)return"network_error";return"unknown"}var wc0={started:"Builder Upload Started",succeeded:"Builder Upload Succeeded",failed:"Builder Upload Failed"},qc0={started:"⬆️",succeeded:"\uD83D\uDCE6",failed:"\uD83D\uDEAB"};async function BG(D){let $={app_id:D.appId,platform:D.platform,build_mode:D.buildMode,job_id:D.jobId,upload_size_bytes:String(D.sizeBytes)};if(typeof D.durationSeconds==="number"&&Number.isFinite(D.durationSeconds))$.upload_duration_seconds=String(Math.round(D.durationSeconds));if(D.phase==="failed"&&D.error!==void 0)$.failure_category=Gc0(D.error);try{await M0(D.apikey,{event:wc0[D.phase],channel:"build-lifecycle",icon:qc0[D.phase],notify:!1,org_id:D.orgId,tracking_version:2,tags:$})}catch{}}async function Lc0(){return H1({message:"No platform selected. Which platform do you want to build?",options:[{value:"ios",label:"iOS"},{value:"android",label:"Android"}]})}async function Mc0(D,{silent:$=!1,interactive:X=SO({silent:$}),promptPlatform:J=Lc0}={}){if(D==="ios"||D==="android")return D;if(D)throw Error(`Invalid platform "${D}". Must be "ios" or "android"`);if(!X)throw Error("Missing required argument: --platform <ios|android>. In an interactive terminal, you can omit --platform and choose one when prompted.");let F=await J();if(y0(F))throw Error("Build request canceled.");if(F!=="ios"&&F!=="android")throw Error("Build request canceled.");return F}function Ic0(D){return{info:($)=>{if(!D)V.info($)},error:($)=>{if(!D)V.error($)},warn:($)=>{if(!D)V.warn($)},success:($)=>{if(!D)V.success($)},buildLog:($)=>{if(!D)console.log($)},uploadProgress:(()=>{let $=D?null:jD(),X=!1;return(J)=>{if(D||!$)return;if(!X)$.start("Uploading bundle"),X=!0;if(J>=100)$.stop("Upload complete!");else $.message(`Uploading ${J.toFixed(0)}%`)}})(),customMsg:async($,X)=>{if(!D)await FE($,X,(J)=>console.log(J),(J)=>V.warn(J))}}}var G40=Promise.resolve();async function Ac0(D,$){let X=async()=>{let F=QE();try{O40(D)}catch(Y){throw Error(`Failed to change working directory to "${D}": ${Y.message}`)}try{return await $()}finally{try{O40(F)}catch{}}},J=G40.then(X,X);return G40=J.then(()=>{return},()=>{return}),J}async function Ec0(D,$,X=3,J){let F=[1000,3000,5000];for(let Y=1;Y<=X;Y++)try{let Q=await fetch(D,$);if(Q.ok||Q.status>=400&&Q.status<500)return Q;let U=await Q.text().catch(()=>"unknown error");if(J?.warn(`Build request attempt ${Y}/${X} failed: ${Q.status} - ${U}`),Y<X){let Z=F[Y-1]||5000;J?.info(`Retrying in ${Z/1000}s...`),await new Promise((O)=>setTimeout(O,Z))}else throw Error(`Failed to request build after ${X} attempts: ${Q.status} - ${U}`)}catch(Q){let U=Q instanceof Error?Q.message:String(Q);if(U.startsWith("Failed to request build after"))throw Q;if(J?.warn(`Build request attempt ${Y}/${X} failed: ${U}`),Y<X){let Z=F[Y-1]||5000;J?.info(`Retrying in ${Z/1000}s...`),await new Promise((O)=>setTimeout(O,Z))}else throw Error(`Failed to request build after ${X} attempts: ${U}`)}throw Error("Unexpected error in fetchWithRetry")}var Rc0=["succeeded","failed","expired","released","cancelled"],zG=new Set(Rc0);function jc0(D){if(typeof D.data==="string")return D.data;if(D.data instanceof ArrayBuffer)return new TextDecoder().decode(D.data);if(ArrayBuffer.isView(D.data)){let $=D.data;return new TextDecoder().decode(new Uint8Array($.buffer,$.byteOffset,$.byteLength))}if(D.data&&typeof D.data.toString==="function")return D.data.toString();return""}function W40(D,$,X){if($)$.warn(D);else if(!X)V.warn(D)}async function Tc0(D,$,X,J){try{if(X)await X.customMsg(D,$);else if(!J)await FE(D,$,(F)=>console.log(F),(F)=>V.warn(F))}catch(F){W40(`Custom message handler encountered an error, continuing... ${String(F)}`,X,J)}}async function Cc0(D,$=!1,X,J,F,Y,Q,U){if(D&&!U)return null;let Z=null,O=!1,G=(q)=>{if(!q.trim())return;if(Z)return;if(!O)if(O=!0,U)U.buildLog("");else console.log("");if(U)U.buildLog(q);else console.log(q)},w=async()=>{if(!X||!J)return null;let q=X.replace(/\/+$/,""),W=`${q}/start`,H=`${q}/stream?token=${encodeURIComponent(J)}`.replace(/^https:/,"wss:").replace(/^http:/,"ws:");if(U)U.info("Connecting to log streaming...");else if(!D)console.log("Connecting to log streaming...");let L=await fetch(W,{method:"POST",headers:{"x-capgo-log-token":J}});if(!L.ok){let M=await L.text().catch(()=>"unknown error");if(U)U.warn(`Could not start log session (${L.status}): ${M}`);else if(!D)console.warn(`Could not start log session (${L.status}): ${M}`);return null}return await new Promise((M)=>{let I=!1,B=10,N=0,z=!1,R=new RJ(H,void 0,{maxRetries:B,WebSocket:E10}),v=null,_=0,A=Date.now(),u=!1,S=2000,m=4,g=zG,r=null,k=null,T=(h)=>{if(I)return;if(I=!0,k)clearTimeout(k),k=null;if(v)clearInterval(v),v=null;if(Y&&r)Y.removeEventListener("abort",r),r=null;try{R.close()}catch{}M(h)};k=setTimeout(()=>{if(!I){if(U)U.warn("Log streaming timed out after 3 hours");else if(!D)console.warn("Log streaming timed out after 3 hours");T(null)}},10800000);let P=()=>{if(v)return;v=setInterval(async()=>{try{if(R.readyState===RJ.OPEN)R.send(JSON.stringify({type:"heartbeat",lastId:_}));let h=Date.now();if(F&&!u&&h-A>=S*m){u=!0;try{let b=await F();if(b&&g.has(b))Z=b,T(Z)}finally{u=!1}}}catch(h){if(U)U.warn(`Heartbeat encountered an error, continuing... ${String(h)}`);else if(!D)V.warn(`Heartbeat encountered an error, continuing... ${String(h)}`)}},S)},x=async(h)=>{if(h.type==="custom_msg"&&typeof h.kind==="string"&&h.data){A=Date.now(),await Tc0(h.kind,h.data,U,D);return}if(h.type==="status"&&typeof h.status==="string"){let b=h.status.toLowerCase();if(A=Date.now(),g.has(b))Z=b;return}if(h.type==="log"&&typeof h.message==="string"){A=Date.now(),G(h.message);return}if(typeof h.message==="string")A=Date.now(),G(h.message)},f=(h)=>{if(R.readyState!==RJ.OPEN)return;try{R.send(JSON.stringify({type:"confirmed_received",lastId:h}))}catch(b){W40(`Failed to send log confirmation, continuing... ${String(b)}`,U,D)}};if(P(),Y){if(r=()=>{if(!I)T("cancelled")},Y.aborted){T("cancelled");return}Y.addEventListener("abort",r)}R.addEventListener("message",async(h)=>{let b=jc0(h),s=null;try{s=JSON.parse(b)}catch{s=null}if(s?.type==="heartbeat_response")return;if(s?.type==="batch_messages"&&Array.isArray(s.messages)){let n=_;for(let t of s.messages)if(await x(t),typeof t.id==="number")n=Math.max(n,t.id);if(n>_)_=n,f(n)}else{if(s)await x(s);else if(b)A=Date.now(),G(b);if(s&&typeof s.id==="number"&&s.id>_)_=s.id,f(s.id)}if(Z)T(Z)}),R.addEventListener("error",()=>{if(N+=1,U)U.warn(`Log stream encountered an error, retrying (${N}/${B})...`);else if(!D)console.warn(`Log stream encountered an error, retrying (${N}/${B})...`);if(!z&&N>=B){if(z=!0,U)U.warn("Log stream retry limit reached. Falling back to status checks.");else if(!D)V.warn("Log stream retry limit reached. Falling back to status checks.");if(Q)Q();T(null)}}),R.addEventListener("close",()=>{if(I)return;if(Z){T(Z);return}if(U)U.warn("Log stream closed, waiting for reconnect...");else if(!D)V.warn("Log stream closed, waiting for reconnect...")})})};try{let q=await w();if(q||Z)return q||Z}catch(q){if(U)U.warn(`Direct log streaming failed${q instanceof Error?`: ${q.message}`:""}`);else if(!D)V.warn(`Direct log streaming failed${q instanceof Error?`: ${q.message}`:""}`)}return Z}async function Sc0(D,$,X,J,F,Y,Q=!1,U,Z){let G=0;while(G<120){if(U?.aborted)return"cancelled";try{let w=await fetch(`${D}/build/status?job_id=${encodeURIComponent($)}&app_id=${encodeURIComponent(X)}&platform=${J}`,{headers:{authorization:F},signal:U});if(!w.ok){Z?.warn(`Status check failed: ${w.status}`),await new Promise((K)=>setTimeout(K,5000)),G++;continue}let q=await w.json(),W=q.status?.toLowerCase?.()??"";if(Q)Z?.info(`Build status: ${W||q.status}`);if(zG.has(W))return W;await new Promise((K)=>setTimeout(K,5000)),G++}catch(w){if(U?.aborted)return"cancelled";Z?.warn(`Status check error: ${w}`),await new Promise((q)=>setTimeout(q,5000)),G++}}return Z?.warn("Build status polling timed out"),"timeout"}async function Pc0(D,$,X){let J=new Set,F=new Set,Y=!1,Q=!1;if($==="ios"){let U=J$(D,X,"App","CapApp-SPM","Package.swift");if(j6(U)){Y=!0;let G=(await NG(U,"utf-8")).matchAll(/\.package\s*\([^)]*path:\s*["'](?:\.\.\/)*node_modules\/([^"']+)["']\s*\)/g);for(let w of G){let q=w[1],W=q.lastIndexOf("node_modules/");if(W!==-1)q=q.substring(W+13);J.add(q)}}let Z=J$(D,X);if(j6(Z)){let O=[J$(Z,"App","Podfile"),J$(Z,"Podfile")];for(let w of UE(Z,{withFileTypes:!0}))if(w.isDirectory())O.push(J$(Z,w.name,"Podfile"));let G=[...new Set(O)].filter((w)=>j6(w));if(G.length>0)Q=!0;for(let w of G){let W=(await NG(w,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"](?:\.\.\/)+node_modules\/([^'"]+)['"]/g);for(let K of W){let H=K[1],L=H.lastIndexOf("node_modules/");if(L!==-1)H=H.substring(L+13);J.add(H)}}}}else if($==="android"){let U=J$(D,X,"capacitor.settings.gradle");if(j6(U)){let G=(await NG(U,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let w of G){let q=w[1],W=q.lastIndexOf("node_modules/");if(W!==-1)q=q.substring(W+13);let K=q.replace(/\/(android|capacitor)$/,"");J.add(K)}}let Z=J$(D,X,"capacitor-cordova-android-plugins","build.gradle");if(j6(Z)){let G=(await NG(Z,"utf-8")).matchAll(/apply\s+from\s*:\s*["'](?:\.\.\/)+node_modules\/([^"']+)["']/g);for(let w of G){let q=w[1],W=q.lastIndexOf("node_modules/");if(W!==-1)q=q.substring(W+13);let K=q.split("/"),H=K[0].startsWith("@")&&K.length>=2?`${K[0]}/${K[1]}`:K[0];F.add(H)}}}return{packages:J,cordovaPackages:F,usesSPM:Y,usesCocoaPods:Q}}function w40(D,$,X,J){let F=D.replace(/\\/g,"/");if(F.startsWith(`${J}/`))return!0;if(F==="package.json"||F==="package-lock.json"||F.startsWith("capacitor.config."))return!0;if(F.startsWith("resources/"))return!0;if($==="ios"&&F.startsWith("node_modules/@capacitor/ios/"))return!0;if($==="android"&&F.startsWith("node_modules/@capacitor/android/"))return!0;if($==="android")for(let Y of X.cordovaPackages){let Q=`node_modules/${Y}/`;if(F===`node_modules/${Y}/package.json`)return!0;if(F.startsWith(Q)){let U=F.slice(Q.length);if(U==="node_modules"||U.startsWith("node_modules/"))continue;return!0}}for(let Y of X.packages){let Q=`node_modules/${Y}/`;if(F===`${Q}package.json`)return!0;if($==="android"){if(F.startsWith(`${Q}android/`))return!0}else if($==="ios"){if(F.startsWith(`${Q}ios/`))return!0;if(X.usesSPM){if(F===`${Q}Package.swift`)return!0}if(X.usesCocoaPods||!X.usesSPM){if(F.startsWith(Q)&&F.endsWith(".podspec"))return!0}}}return!1}function nJ(D,$,X,J,F,Y){let Q=UE($);for(let U of Q){let Z=J$($,U),O=X?`${X}/${U}`:U,G=Kc0(Z);if(G.isDirectory()){if(U===".git"||U==="dist"||U==="build"||U===".angular"||U===".vite"||U===".gradle"||U===".idea"||U===".swiftpm")continue;if(U==="node_modules"){nJ(D,Z,O,J,F,Y);continue}if(U==="resources"){nJ(D,Z,O,J,F,Y);continue}let w=O.replace(/\\/g,"/"),q=[...F.packages,...F.cordovaPackages];if(w40(O,J,F,Y)||Y===w||Y.startsWith(`${w}/`)||q.some((K)=>{return`node_modules/${K}/`.startsWith(`${w}/`)||w.startsWith(`node_modules/${K}`)}))nJ(D,Z,O,J,F,Y)}else if(G.isFile()){if(U===".DS_Store"||U.endsWith(".log"))continue;if(w40(O,J,F,Y))uc0(D,Z,O)}}}function uc0(D,$,X){let J=X.replace(/\\/g,"/");if(D.getEntry(J))return;let F=J.lastIndexOf("/"),Y=F===-1?void 0:J.slice(0,F);D.addLocalFile($,Y)}function xc0(D){if(!D)return[];let $=D.split(",").map((X)=>X.trim()).filter(Boolean).map((X)=>YE(X));return[...new Set($)]}function vc0(D,$){let X=new Set([...$.packages,...$.cordovaPackages]);return X.add(D==="ios"?"@capacitor/ios":"@capacitor/android"),X}function _c0(D,$){let X=J$(D,...$.split("/"));if(j6(X))return X;let J=J$(D,".pnpm");if(!j6(J))return;let F=$.replace("/","+"),Y=UE(J,{withFileTypes:!0}).filter((Q)=>Q.isDirectory()).map((Q)=>Q.name).filter((Q)=>Q.startsWith(`${F}@`)).sort();if(Y.length>1)throw Error(`Multiple pnpm store entries found for ${$} in ${J}; provide the app-specific node_modules path so the native build archive can use the exact resolved package.`);for(let Q of Y){let U=J$(J,Q,"node_modules",...$.split("/"));if(j6(U))return U}return}function fc0(D,$,X,J,F){if($.length===0)return;let Y=$.filter((Q)=>!j6(Q));if(Y.length>0)throw Error(`Missing node_modules folder at ${Y.join(", ")}`);for(let Q of $)for(let U of vc0(X,J)){let Z=_c0(Q,U);if(!Z)continue;nJ(D,Z,`node_modules/${U}`,X,J,F)}}async function kc0(D,$,X,J,F={}){let Y=dJ(J,X),Q=await Pc0(D,X,Y),U=new q40.default;nJ(U,D,"",X,Q,Y),fc0(U,xc0(F.nodeModules),X,Q,Y);let Z=/node_modules\/\.pnpm\/[^/\n\r]+(?:\/[^/\n\r]+)*\/node_modules\//g,O=new Set(["",".gradle",".swift",".json",".lock",".xml",".properties",".pbxproj",".xcconfig",".plist",".podspec",".rb",".yaml",".yml"]);for(let w of U.getEntries()){if(w.isDirectory)continue;let q=w.entryName.includes(".")?`.${w.entryName.split(".").pop()}`:"",W=w.entryName.split("/").pop()||"";if(!O.has(q)&&W!=="Podfile")continue;let K=w.getData().toString("utf-8"),H=K.replace(Z,"node_modules/");if(X==="ios"){let L="../".repeat(w.entryName.split("/").length-1);H=H.replace(/(?:\.\.\/){4,}(ios\/|node_modules\/)/g,(M,I)=>`${L}${I}`)}if(H!==K)U.updateFile(w.entryName,U40.from(H,"utf-8"))}let G=J$(D,"capacitor.config.json");if(J&&!j6(G)){let w=`${JSON.stringify(J,null,2)}
553
- `;U.addFile("capacitor.config.json",U40.from(w,"utf-8"))}await zc0($,U.toBuffer())}var yc0=new Set(["CAPGO_IOS_SCHEME","CAPGO_IOS_TARGET","CAPGO_IOS_DISTRIBUTION","BUILD_OUTPUT_UPLOAD_ENABLED","BUILD_OUTPUT_RETENTION_SECONDS","SKIP_BUILD_NUMBER_BUMP","CAPGO_IOS_SOURCE_DIR","CAPGO_IOS_APP_DIR","CAPGO_IOS_PROJECT_DIR","IOS_PROJECT_DIR","CAPGO_ANDROID_SOURCE_DIR","CAPGO_ANDROID_APP_DIR","CAPGO_ANDROID_PROJECT_DIR","ANDROID_PROJECT_DIR","CAPGO_ANDROID_FLAVOR"]);function bc0(D,$,X,J){let F={platform:$,buildMode:X,cliVersion:J,iosScheme:D.CAPGO_IOS_SCHEME,iosTarget:D.CAPGO_IOS_TARGET,iosDistribution:D.CAPGO_IOS_DISTRIBUTION,iosSourceDir:D.CAPGO_IOS_SOURCE_DIR,iosAppDir:D.CAPGO_IOS_APP_DIR,iosProjectDir:D.CAPGO_IOS_PROJECT_DIR,androidSourceDir:D.CAPGO_ANDROID_SOURCE_DIR,androidAppDir:D.CAPGO_ANDROID_APP_DIR,androidProjectDir:D.CAPGO_ANDROID_PROJECT_DIR,androidFlavor:D.CAPGO_ANDROID_FLAVOR,outputUploadEnabled:D.BUILD_OUTPUT_UPLOAD_ENABLED==="true",outputRetentionSeconds:D.BUILD_OUTPUT_RETENTION_SECONDS?Number.parseInt(D.BUILD_OUTPUT_RETENTION_SECONDS,10)||j9:j9,skipBuildNumberBump:D.SKIP_BUILD_NUMBER_BUMP==="true"},Y={};for(let[Q,U]of Object.entries(D))if(!yc0.has(Q)&&U!==void 0)Y[Q]=U;return{buildOptions:F,buildCredentials:Y}}async function K40(D,$,X=!1,J){let F=Date.now(),Y=$.verbose??!1,Q=J||Ic0(X),U=null,Z=$.outputRecord?{...Q,customMsg:async(O,G)=>{if(O==="qr_download_link"&&typeof G.url==="string")U=G.url;await Q.customMsg(O,G)}}:Q;try{$.apikey=$.apikey||H0(X);let O=YE($.path||QE()),G=await Ac0(O,()=>E0());if(D=D||G?.config?.appId,!D)throw Error("Missing argument, you need to provide a appId, or be in a capacitor project");let w=await Mc0($.platform,{silent:X}),q=$.supaHost||"https://api.capgo.app",W=await T0($.apikey,$.supaHost,$.supaAnon);await AJ(W,$.apikey,"app.build_native",{appId:D},{message:`Insufficient permissions to request a native build for app ${D}`,silent:X});let K=await pD(W,D);if(Z.info(`Requesting native build for ${D}`),Z.info(`Platform: ${w}`),Z.info(`Project: ${O}`),Z.info(`
552
+ `))X(Q);X(F),X("")}catch{X(""),X(F),X("")}return}J(`Unknown message type "${D}" — you may need to update the CLI`),X(JSON.stringify($,null,2))}x0();function Oc0(D){if(!D||typeof D!=="object")return;let $=D.originalResponse?.getStatus?.();return typeof $==="number"?$:void 0}function Gc0(D){let $=Oc0(D);if($===401||$===403)return"unauthorized";if($===413)return"payload_too_large";if($!==void 0&&$>=500&&$<600)return"storage_failure";if($===void 0||$===0)return"network_error";return"unknown"}var wc0={started:"Builder Upload Started",succeeded:"Builder Upload Succeeded",failed:"Builder Upload Failed"},qc0={started:"⬆️",succeeded:"\uD83D\uDCE6",failed:"\uD83D\uDEAB"};async function BG(D){let $={app_id:D.appId,platform:D.platform,build_mode:D.buildMode,job_id:D.jobId,upload_size_bytes:String(D.sizeBytes)};if(typeof D.durationSeconds==="number"&&Number.isFinite(D.durationSeconds))$.upload_duration_seconds=String(Math.round(D.durationSeconds));if(D.phase==="failed"&&D.error!==void 0)$.failure_category=Gc0(D.error);try{await M0(D.apikey,{event:wc0[D.phase],channel:"build-lifecycle",icon:qc0[D.phase],notify:!1,org_id:D.orgId,tracking_version:2,tags:$})}catch{}}async function Lc0(){return H1({message:"No platform selected. Which platform do you want to build?",options:[{value:"ios",label:"iOS"},{value:"android",label:"Android"}]})}async function Mc0(D,{silent:$=!1,interactive:X=SO({silent:$}),promptPlatform:J=Lc0}={}){if(D==="ios"||D==="android")return D;if(D)throw Error(`Invalid platform "${D}". Must be "ios" or "android"`);if(!X)throw Error("Missing required argument: --platform <ios|android>. In an interactive terminal, you can omit --platform and choose one when prompted.");let F=await J();if(y0(F))throw Error("Build request canceled.");if(F!=="ios"&&F!=="android")throw Error("Build request canceled.");return F}function Ic0(D){return{info:($)=>{if(!D)V.info($)},error:($)=>{if(!D)V.error($)},warn:($)=>{if(!D)V.warn($)},success:($)=>{if(!D)V.success($)},buildLog:($)=>{if(!D)console.log($)},uploadProgress:(()=>{let $=D?null:jD(),X=!1;return(J)=>{if(D||!$)return;if(!X)$.start("Uploading bundle"),X=!0;if(J>=100)$.stop("Upload complete!");else $.message(`Uploading ${J.toFixed(0)}%`)}})(),customMsg:async($,X)=>{if(!D)await FE($,X,(J)=>console.log(J),(J)=>V.warn(J))}}}var G40=Promise.resolve();async function Ac0(D,$){let X=async()=>{let F=QE();try{O40(D)}catch(Y){throw Error(`Failed to change working directory to "${D}": ${Y.message}`)}try{return await $()}finally{try{O40(F)}catch{}}},J=G40.then(X,X);return G40=J.then(()=>{return},()=>{return}),J}async function Ec0(D,$,X=3,J){let F=[1000,3000,5000];for(let Y=1;Y<=X;Y++)try{let Q=await fetch(D,$);if(Q.ok||Q.status>=400&&Q.status<500)return Q;let U=await Q.text().catch(()=>"unknown error");if(J?.warn(`Build request attempt ${Y}/${X} failed: ${Q.status} - ${U}`),Y<X){let Z=F[Y-1]||5000;J?.info(`Retrying in ${Z/1000}s...`),await new Promise((O)=>setTimeout(O,Z))}else throw Error(`Failed to request build after ${X} attempts: ${Q.status} - ${U}`)}catch(Q){let U=Q instanceof Error?Q.message:String(Q);if(U.startsWith("Failed to request build after"))throw Q;if(J?.warn(`Build request attempt ${Y}/${X} failed: ${U}`),Y<X){let Z=F[Y-1]||5000;J?.info(`Retrying in ${Z/1000}s...`),await new Promise((O)=>setTimeout(O,Z))}else throw Error(`Failed to request build after ${X} attempts: ${U}`)}throw Error("Unexpected error in fetchWithRetry")}var Rc0=["succeeded","failed","expired","released","cancelled"],zG=new Set(Rc0);function jc0(D){if(typeof D.data==="string")return D.data;if(D.data instanceof ArrayBuffer)return new TextDecoder().decode(D.data);if(ArrayBuffer.isView(D.data)){let $=D.data;return new TextDecoder().decode(new Uint8Array($.buffer,$.byteOffset,$.byteLength))}if(D.data&&typeof D.data.toString==="function")return D.data.toString();return""}function W40(D,$,X){if($)$.warn(D);else if(!X)V.warn(D)}async function Tc0(D,$,X,J){try{if(X)await X.customMsg(D,$);else if(!J)await FE(D,$,(F)=>console.log(F),(F)=>V.warn(F))}catch(F){W40(`Custom message handler encountered an error, continuing... ${String(F)}`,X,J)}}async function Cc0(D,$=!1,X,J,F,Y,Q,U){if(D&&!U)return null;let Z=null,O=!1,G=(q)=>{if(!q.trim())return;if(Z)return;if(!O)if(O=!0,U)U.buildLog("");else console.log("");if(U)U.buildLog(q);else console.log(q)},w=async()=>{if(!X||!J)return null;let q=X.replace(/\/+$/,""),W=`${q}/start`,H=`${q}/stream?token=${encodeURIComponent(J)}`.replace(/^https:/,"wss:").replace(/^http:/,"ws:");if(U)U.info("Connecting to log streaming...");else if(!D)console.log("Connecting to log streaming...");let L=await fetch(W,{method:"POST",headers:{"x-capgo-log-token":J}});if(!L.ok){let M=await L.text().catch(()=>"unknown error");if(U)U.warn(`Could not start log session (${L.status}): ${M}`);else if(!D)console.warn(`Could not start log session (${L.status}): ${M}`);return null}return await new Promise((M)=>{let I=!1,B=10,N=0,z=!1,R=new RJ(H,void 0,{maxRetries:B,WebSocket:E10}),v=null,_=0,A=Date.now(),u=!1,S=2000,m=4,g=zG,r=null,k=null,T=(h)=>{if(I)return;if(I=!0,k)clearTimeout(k),k=null;if(v)clearInterval(v),v=null;if(Y&&r)Y.removeEventListener("abort",r),r=null;try{R.close()}catch{}M(h)};k=setTimeout(()=>{if(!I){if(U)U.warn("Log streaming timed out after 3 hours");else if(!D)console.warn("Log streaming timed out after 3 hours");T(null)}},10800000);let P=()=>{if(v)return;v=setInterval(async()=>{try{if(R.readyState===RJ.OPEN)R.send(JSON.stringify({type:"heartbeat",lastId:_}));let h=Date.now();if(F&&!u&&h-A>=S*m){u=!0;try{let b=await F();if(b&&g.has(b))Z=b,T(Z)}finally{u=!1}}}catch(h){if(U)U.warn(`Heartbeat encountered an error, continuing... ${String(h)}`);else if(!D)V.warn(`Heartbeat encountered an error, continuing... ${String(h)}`)}},S)},x=async(h)=>{if(h.type==="custom_msg"&&typeof h.kind==="string"&&h.data){A=Date.now(),await Tc0(h.kind,h.data,U,D);return}if(h.type==="status"&&typeof h.status==="string"){let b=h.status.toLowerCase();if(A=Date.now(),g.has(b))Z=b;return}if(h.type==="log"&&typeof h.message==="string"){A=Date.now(),G(h.message);return}if(typeof h.message==="string")A=Date.now(),G(h.message)},f=(h)=>{if(R.readyState!==RJ.OPEN)return;try{R.send(JSON.stringify({type:"confirmed_received",lastId:h}))}catch(b){W40(`Failed to send log confirmation, continuing... ${String(b)}`,U,D)}};if(P(),Y){if(r=()=>{if(!I)T("cancelled")},Y.aborted){T("cancelled");return}Y.addEventListener("abort",r)}R.addEventListener("message",async(h)=>{let b=jc0(h),s=null;try{s=JSON.parse(b)}catch{s=null}if(s?.type==="heartbeat_response")return;if(s?.type==="batch_messages"&&Array.isArray(s.messages)){let n=_;for(let t of s.messages)if(await x(t),typeof t.id==="number")n=Math.max(n,t.id);if(n>_)_=n,f(n)}else{if(s)await x(s);else if(b)A=Date.now(),G(b);if(s&&typeof s.id==="number"&&s.id>_)_=s.id,f(s.id)}if(Z)T(Z)}),R.addEventListener("error",()=>{if(N+=1,U)U.warn(`Log stream encountered an error, retrying (${N}/${B})...`);else if(!D)console.warn(`Log stream encountered an error, retrying (${N}/${B})...`);if(!z&&N>=B){if(z=!0,U)U.warn("Log stream retry limit reached. Falling back to status checks.");else if(!D)V.warn("Log stream retry limit reached. Falling back to status checks.");if(Q)Q();T(null)}}),R.addEventListener("close",()=>{if(I)return;if(Z){T(Z);return}if(U)U.warn("Log stream closed, waiting for reconnect...");else if(!D)V.warn("Log stream closed, waiting for reconnect...")})})};try{let q=await w();if(q||Z)return q||Z}catch(q){if(U)U.warn(`Direct log streaming failed${q instanceof Error?`: ${q.message}`:""}`);else if(!D)V.warn(`Direct log streaming failed${q instanceof Error?`: ${q.message}`:""}`)}return Z}async function Sc0(D,$,X,J,F,Y,Q=!1,U,Z){let G=0;while(G<120){if(U?.aborted)return"cancelled";try{let w=await fetch(`${D}/build/status?job_id=${encodeURIComponent($)}&app_id=${encodeURIComponent(X)}&platform=${J}`,{headers:{authorization:F},signal:U});if(!w.ok){Z?.warn(`Status check failed: ${w.status}`),await new Promise((K)=>setTimeout(K,5000)),G++;continue}let q=await w.json(),W=q.status?.toLowerCase?.()??"";if(Q)Z?.info(`Build status: ${W||q.status}`);if(zG.has(W))return W;await new Promise((K)=>setTimeout(K,5000)),G++}catch(w){if(U?.aborted)return"cancelled";Z?.warn(`Status check error: ${w}`),await new Promise((q)=>setTimeout(q,5000)),G++}}return Z?.warn("Build status polling timed out"),"timeout"}async function Pc0(D,$,X){let J=new Set,F=new Set,Y=!1,Q=!1;if($==="ios"){let U=J$(D,X,"App","CapApp-SPM","Package.swift");if(j6(U)){Y=!0;let G=(await NG(U,"utf-8")).matchAll(/\.package\s*\([^)]*path:\s*["'](?:\.\.\/)*node_modules\/([^"']+)["']\s*\)/g);for(let w of G){let q=w[1],W=q.lastIndexOf("node_modules/");if(W!==-1)q=q.substring(W+13);J.add(q)}}let Z=J$(D,X);if(j6(Z)){let O=[J$(Z,"App","Podfile"),J$(Z,"Podfile")];for(let w of UE(Z,{withFileTypes:!0}))if(w.isDirectory())O.push(J$(Z,w.name,"Podfile"));let G=[...new Set(O)].filter((w)=>j6(w));if(G.length>0)Q=!0;for(let w of G){let W=(await NG(w,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"](?:\.\.\/)+node_modules\/([^'"]+)['"]/g);for(let K of W){let H=K[1],L=H.lastIndexOf("node_modules/");if(L!==-1)H=H.substring(L+13);J.add(H)}}}}else if($==="android"){let U=J$(D,X,"capacitor.settings.gradle");if(j6(U)){let G=(await NG(U,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let w of G){let q=w[1],W=q.lastIndexOf("node_modules/");if(W!==-1)q=q.substring(W+13);let K=q.replace(/\/(android|capacitor)$/,"");J.add(K)}}let Z=J$(D,X,"capacitor-cordova-android-plugins","build.gradle");if(j6(Z)){let G=(await NG(Z,"utf-8")).matchAll(/apply\s+from\s*:\s*["'](?:\.\.\/)+node_modules\/([^"']+)["']/g);for(let w of G){let q=w[1],W=q.lastIndexOf("node_modules/");if(W!==-1)q=q.substring(W+13);let K=q.split("/"),H=K[0].startsWith("@")&&K.length>=2?`${K[0]}/${K[1]}`:K[0];F.add(H)}}}return{packages:J,cordovaPackages:F,usesSPM:Y,usesCocoaPods:Q}}function w40(D,$,X,J){let F=D.replace(/\\/g,"/");if(F.startsWith(`${J}/`))return!0;if(F==="package.json"||F==="package-lock.json"||F.startsWith("capacitor.config."))return!0;if(F.startsWith("resources/"))return!0;if($==="ios"&&F.startsWith("node_modules/@capacitor/ios/"))return!0;if($==="android"&&F.startsWith("node_modules/@capacitor/android/"))return!0;if($==="android")for(let Y of X.cordovaPackages){let Q=`node_modules/${Y}/`;if(F===`node_modules/${Y}/package.json`)return!0;if(F.startsWith(Q)){let U=F.slice(Q.length);if(U==="node_modules"||U.startsWith("node_modules/"))continue;return!0}}for(let Y of X.packages){let Q=`node_modules/${Y}/`;if(F===`${Q}package.json`)return!0;if($==="android"){if(F.startsWith(`${Q}android/`))return!0}else if($==="ios"){if(F.startsWith(`${Q}ios/`))return!0;if(X.usesSPM){if(F===`${Q}Package.swift`)return!0}if(X.usesCocoaPods||!X.usesSPM){if(F.startsWith(Q)&&F.endsWith(".podspec"))return!0}}}return!1}function nJ(D,$,X,J,F,Y){let Q=UE($);for(let U of Q){let Z=J$($,U),O=X?`${X}/${U}`:U,G=Kc0(Z);if(G.isDirectory()){if(U===".git"||U==="dist"||U==="build"||U===".angular"||U===".vite"||U===".gradle"||U===".idea"||U===".swiftpm")continue;if(U==="node_modules"){nJ(D,Z,O,J,F,Y);continue}if(U==="resources"){nJ(D,Z,O,J,F,Y);continue}let w=O.replace(/\\/g,"/"),q=[...F.packages,...F.cordovaPackages];if(w40(O,J,F,Y)||Y===w||Y.startsWith(`${w}/`)||q.some((K)=>{return`node_modules/${K}/`.startsWith(`${w}/`)||w.startsWith(`node_modules/${K}`)}))nJ(D,Z,O,J,F,Y)}else if(G.isFile()){if(U===".DS_Store"||U.endsWith(".log"))continue;if(w40(O,J,F,Y))uc0(D,Z,O)}}}function uc0(D,$,X){let J=X.replace(/\\/g,"/");if(D.getEntry(J))return;let F=J.lastIndexOf("/"),Y=F===-1?void 0:J.slice(0,F);D.addLocalFile($,Y)}function xc0(D){if(!D)return[];let $=D.split(",").map((X)=>X.trim()).filter(Boolean).map((X)=>YE(X));return[...new Set($)]}function vc0(D,$){let X=new Set([...$.packages,...$.cordovaPackages]);return X.add(D==="ios"?"@capacitor/ios":"@capacitor/android"),X}function _c0(D,$){let X=J$(D,...$.split("/"));if(j6(X))return X;let J=J$(D,".pnpm");if(!j6(J))return;let F=$.replace("/","+"),Y=UE(J,{withFileTypes:!0}).filter((Q)=>Q.isDirectory()).map((Q)=>Q.name).filter((Q)=>Q.startsWith(`${F}@`)).sort();if(Y.length>1)throw Error(`Multiple pnpm store entries found for ${$} in ${J}; provide the app-specific node_modules path so the native build archive can use the exact resolved package.`);for(let Q of Y){let U=J$(J,Q,"node_modules",...$.split("/"));if(j6(U))return U}return}function fc0(D,$,X,J,F){if($.length===0)return;let Y=$.filter((Q)=>!j6(Q));if(Y.length>0)throw Error(`Missing node_modules folder at ${Y.join(", ")}`);for(let Q of $)for(let U of vc0(X,J)){let Z=_c0(Q,U);if(!Z)continue;nJ(D,Z,`node_modules/${U}`,X,J,F)}}async function kc0(D,$,X,J,F={}){let Y=dJ(J,X),Q=await Pc0(D,X,Y),U=new q40.default;nJ(U,D,"",X,Q,Y),fc0(U,xc0(F.nodeModules),X,Q,Y);let Z=/node_modules\/\.pnpm\/[^/\n\r]+(?:\/[^/\n\r]+)*\/node_modules\//g,O=/node_modules\/\.bun\/[^/\n\r]+(?:\/[^/\n\r]+)*\/node_modules\//g,G=new Set(["",".gradle",".swift",".json",".lock",".xml",".properties",".pbxproj",".xcconfig",".plist",".podspec",".rb",".yaml",".yml"]);for(let q of U.getEntries()){if(q.isDirectory)continue;let W=q.entryName.includes(".")?`.${q.entryName.split(".").pop()}`:"",K=q.entryName.split("/").pop()||"";if(!G.has(W)&&K!=="Podfile")continue;let H=q.getData().toString("utf-8"),L=H.replace(Z,"node_modules/").replace(O,"node_modules/");if(X==="ios"){let M="../".repeat(q.entryName.split("/").length-1);L=L.replace(/(?:\.\.\/){4,}(ios\/|node_modules\/)/g,(I,B)=>`${M}${B}`)}if(L!==H)U.updateFile(q.entryName,U40.from(L,"utf-8"))}let w=J$(D,"capacitor.config.json");if(J&&!j6(w)){let q=`${JSON.stringify(J,null,2)}
553
+ `;U.addFile("capacitor.config.json",U40.from(q,"utf-8"))}await zc0($,U.toBuffer())}var yc0=new Set(["CAPGO_IOS_SCHEME","CAPGO_IOS_TARGET","CAPGO_IOS_DISTRIBUTION","BUILD_OUTPUT_UPLOAD_ENABLED","BUILD_OUTPUT_RETENTION_SECONDS","SKIP_BUILD_NUMBER_BUMP","CAPGO_IOS_SOURCE_DIR","CAPGO_IOS_APP_DIR","CAPGO_IOS_PROJECT_DIR","IOS_PROJECT_DIR","CAPGO_ANDROID_SOURCE_DIR","CAPGO_ANDROID_APP_DIR","CAPGO_ANDROID_PROJECT_DIR","ANDROID_PROJECT_DIR","CAPGO_ANDROID_FLAVOR"]);function bc0(D,$,X,J){let F={platform:$,buildMode:X,cliVersion:J,iosScheme:D.CAPGO_IOS_SCHEME,iosTarget:D.CAPGO_IOS_TARGET,iosDistribution:D.CAPGO_IOS_DISTRIBUTION,iosSourceDir:D.CAPGO_IOS_SOURCE_DIR,iosAppDir:D.CAPGO_IOS_APP_DIR,iosProjectDir:D.CAPGO_IOS_PROJECT_DIR,androidSourceDir:D.CAPGO_ANDROID_SOURCE_DIR,androidAppDir:D.CAPGO_ANDROID_APP_DIR,androidProjectDir:D.CAPGO_ANDROID_PROJECT_DIR,androidFlavor:D.CAPGO_ANDROID_FLAVOR,outputUploadEnabled:D.BUILD_OUTPUT_UPLOAD_ENABLED==="true",outputRetentionSeconds:D.BUILD_OUTPUT_RETENTION_SECONDS?Number.parseInt(D.BUILD_OUTPUT_RETENTION_SECONDS,10)||j9:j9,skipBuildNumberBump:D.SKIP_BUILD_NUMBER_BUMP==="true"},Y={};for(let[Q,U]of Object.entries(D))if(!yc0.has(Q)&&U!==void 0)Y[Q]=U;return{buildOptions:F,buildCredentials:Y}}async function K40(D,$,X=!1,J){let F=Date.now(),Y=$.verbose??!1,Q=J||Ic0(X),U=null,Z=$.outputRecord?{...Q,customMsg:async(O,G)=>{if(O==="qr_download_link"&&typeof G.url==="string")U=G.url;await Q.customMsg(O,G)}}:Q;try{$.apikey=$.apikey||H0(X);let O=YE($.path||QE()),G=await Ac0(O,()=>E0());if(D=D||G?.config?.appId,!D)throw Error("Missing argument, you need to provide a appId, or be in a capacitor project");let w=await Mc0($.platform,{silent:X}),q=$.supaHost||"https://api.capgo.app",W=await T0($.apikey,$.supaHost,$.supaAnon);await AJ(W,$.apikey,"app.build_native",{appId:D},{message:`Insufficient permissions to request a native build for app ${D}`,silent:X});let K=await pD(W,D);if(Z.info(`Requesting native build for ${D}`),Z.info(`Platform: ${w}`),Z.info(`Project: ${O}`),Z.info(`
554
554
  \uD83D\uDD12 Security: Credentials are never stored on Capgo servers`),Z.info(" They are used only during build and deleted after"),Z.info(` Build outputs can optionally be uploaded for time-limited download links
555
555
  `),Y)Z.info(`API host: ${q}`);let H={};if($.buildCertificateBase64)H.BUILD_CERTIFICATE_BASE64=$.buildCertificateBase64;if($.p12Password)H.P12_PASSWORD=$.p12Password;if($.appleKeyId)H.APPLE_KEY_ID=$.appleKeyId;if($.appleIssuerId)H.APPLE_ISSUER_ID=$.appleIssuerId;if($.appleKeyContent)H.APPLE_KEY_CONTENT=$.appleKeyContent;if($.appStoreConnectTeamId)H.APP_STORE_CONNECT_TEAM_ID=$.appStoreConnectTeamId;if($.iosScheme)H.CAPGO_IOS_SCHEME=$.iosScheme;if($.iosTarget)H.CAPGO_IOS_TARGET=$.iosTarget;if($.iosDistribution)H.CAPGO_IOS_DISTRIBUTION=$.iosDistribution;if($.iosProvisioningProfile&&$.iosProvisioningProfile.length>0){let f=t10($.iosProvisioningProfile,YE($.path||QE()));H.CAPGO_IOS_PROVISIONING_MAP=JSON.stringify(f)}if($.iosProvisioningMap)H.CAPGO_IOS_PROVISIONING_MAP=$.iosProvisioningMap;if($.androidKeystoreFile)H.ANDROID_KEYSTORE_FILE=$.androidKeystoreFile;if($.keystoreKeyAlias)H.KEYSTORE_KEY_ALIAS=$.keystoreKeyAlias;let L=!!$.keystoreKeyPassword,M=!!$.keystoreStorePassword;if(L&&!M)H.KEYSTORE_KEY_PASSWORD=$.keystoreKeyPassword,H.KEYSTORE_STORE_PASSWORD=$.keystoreKeyPassword;else if(!L&&M)H.KEYSTORE_KEY_PASSWORD=$.keystoreStorePassword,H.KEYSTORE_STORE_PASSWORD=$.keystoreStorePassword;else if(L&&M)H.KEYSTORE_KEY_PASSWORD=$.keystoreKeyPassword,H.KEYSTORE_STORE_PASSWORD=$.keystoreStorePassword;if(typeof $.androidFlavor==="string"){let f=$.androidFlavor.trim();if(f)H.CAPGO_ANDROID_FLAVOR=f}if($.playConfigJson)H.PLAY_CONFIG_JSON=$.playConfigJson;if($.inAppUpdatePriority!==void 0)H.PLAY_STORE_IN_APP_UPDATE_PRIORITY=String(YG($.inAppUpdatePriority));if($.outputUpload!==void 0)H.BUILD_OUTPUT_UPLOAD_ENABLED=Q3($.outputUpload)?"true":"false";if($.outputRetention)H.BUILD_OUTPUT_RETENTION_SECONDS=String(FG($.outputRetention));if($.skipBuildNumberBump!==void 0)H.SKIP_BUILD_NUMBER_BUMP=Q3($.skipBuildNumberBump)?"true":"false";let I=await g10(D,w,Object.keys(H).length>0?H:void 0);if($.playstoreUpload===!1&&I)delete I.PLAY_CONFIG_JSON,Z.info("ℹ️ --no-playstore-upload specified, Play Store upload disabled for this build");let B=dJ(G?.config,w);if(I&&B)if(w==="ios")I.CAPGO_IOS_SOURCE_DIR=B,I.CAPGO_IOS_APP_DIR=B,I.CAPGO_IOS_PROJECT_DIR=B,I.IOS_PROJECT_DIR=B;else I.CAPGO_ANDROID_SOURCE_DIR=B,I.CAPGO_ANDROID_APP_DIR=B,I.CAPGO_ANDROID_PROJECT_DIR=B,I.ANDROID_PROJECT_DIR=B;if(!I)throw Z.error("❌ No credentials found for this app and platform"),Z.error(""),Z.error("You must provide credentials via:"),Z.error(" 1. CLI arguments (--apple-key-id, --p12-password, etc.)"),Z.error(" 2. Environment variables (APPLE_KEY_ID, P12_PASSWORD, etc.)"),Z.error(" 3. Saved credentials file:"),Z.error(` npx @capgo/cli build credentials save --appId ${D} --platform ${w}`),Z.error(""),Z.error("Documentation:"),Z.error(" https://capgo.app/docs/cli/cloud-build/credentials/"),Error("No credentials found. Please provide credentials before building.");let N=[];if(w==="ios"){let f=I.CAPGO_IOS_DISTRIBUTION,h=["app_store","ad_hoc"];if(f&&!h.includes(f))N.push(`Invalid CAPGO_IOS_DISTRIBUTION value: '${f}'. Must be one of: ${h.join(", ")}`);let b=f&&h.includes(f)?f:"app_store";if(!f)Z.info("ℹ️ --ios-distribution not specified, defaulting to app_store");if(I.CAPGO_IOS_DISTRIBUTION=b,!I.BUILD_CERTIFICATE_BASE64)N.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)");if(!I.P12_PASSWORD)Z.warn("⚠️ P12_PASSWORD not provided - assuming certificate has no password"),Z.warn(" If your certificate requires a password, provide it with --p12-password");if(!!(I.BUILD_PROVISION_PROFILE_BASE64||I.APPLE_PROFILE_NAME)&&!I.CAPGO_IOS_PROVISIONING_MAP)throw Z.error("❌ Legacy provisioning profile format detected. Run:"),Z.error(" npx @capgo/cli build credentials migrate --platform ios"),Z.error(""),Z.error(" This will convert your existing provisioning profile to the new multi-target format."),Error("Legacy provisioning profile format detected. Run: npx @capgo/cli build credentials migrate --platform ios");if(!I.CAPGO_IOS_PROVISIONING_MAP)N.push('CAPGO_IOS_PROVISIONING_MAP (use --ios-provisioning-profile or save via "build credentials save")');if(b==="app_store"){let n=!!I.APPLE_KEY_ID,t=!!I.APPLE_ISSUER_ID,q0=!!I.APPLE_KEY_CONTENT,F0=n||t||q0;if(!(n&&t&&q0))if(F0){let zD=[];if(!n)zD.push("APPLE_KEY_ID (or --apple-key-id)");if(!t)zD.push("APPLE_ISSUER_ID (or --apple-issuer-id)");if(!q0)zD.push("APPLE_KEY_CONTENT (or --apple-key-content)");N.push(`Incomplete App Store Connect API key - missing: ${zD.join(", ")}`)}else if(I.BUILD_OUTPUT_UPLOAD_ENABLED!=="true")N.push("APPLE_KEY_ID/APPLE_ISSUER_ID/APPLE_KEY_CONTENT or BUILD_OUTPUT_UPLOAD_ENABLED=true (or --output-upload) (build has no output destination - enable either TestFlight upload or Capgo download link)");else if(I.SKIP_BUILD_NUMBER_BUMP!=="true")N.push("APPLE_KEY_ID/APPLE_ISSUER_ID/APPLE_KEY_CONTENT or --skip-build-number-bump (App Store Connect API key not provided - build numbers cannot be auto-incremented without it)");else Z.warn("⚠️ App Store Connect API key not provided - build will succeed but cannot auto-upload to TestFlight")}else if(b==="ad_hoc")Z.info("\uD83D\uDCE6 Ad-hoc distribution mode: App Store Connect API key not required"),Z.info(" Build number will use timestamp-based fallback");if(!I.APP_STORE_CONNECT_TEAM_ID)N.push("APP_STORE_CONNECT_TEAM_ID (or --app-store-connect-team-id)")}else if(w==="android"){if(!I.ANDROID_KEYSTORE_FILE)N.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)");if(!I.KEYSTORE_KEY_ALIAS)N.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)");if(!I.KEYSTORE_KEY_PASSWORD&&!I.KEYSTORE_STORE_PASSWORD)N.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)");if(!I.PLAY_CONFIG_JSON)if(I.BUILD_OUTPUT_UPLOAD_ENABLED!=="true")N.push("PLAY_CONFIG_JSON or BUILD_OUTPUT_UPLOAD_ENABLED=true (build has no output destination - enable either Play Store upload or Capgo download link)");else Z.warn("⚠️ PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")}if(N.length>0){Z.error(`❌ Missing required credentials for ${w}:`),Z.error("");for(let f of N)Z.error(` • ${f}`);throw Z.error(""),Z.error("Provide credentials via:"),Z.error(` 1. CLI arguments: npx @capgo/cli build request --platform ${w} ${w==="ios"?'--apple-key-id "..." --apple-issuer-id "..." --apple-key-content "..."':'--android-keystore-file "..." --keystore-key-alias "..."'}`),Z.error(` 2. Environment variables: ${w==="ios"?'export APPLE_KEY_ID="..." APPLE_ISSUER_ID="..." APPLE_KEY_CONTENT="..."':'export ANDROID_KEYSTORE_FILE="..." KEYSTORE_KEY_ALIAS="..."'}`),Z.error(` 3. Saved credentials: npx @capgo/cli build credentials save --platform ${w} ...`),Z.error(""),Z.error("Documentation:"),Z.error(` https://capgo.app/docs/cli/cloud-build/${w}/`),Error(`Missing required credentials for ${w}: ${N.join(", ")}`)}if(!$.buildMode)Z.info("ℹ️ --build-mode not specified, defaulting to release");if(!I.BUILD_OUTPUT_UPLOAD_ENABLED)Z.info("ℹ️ --output-upload not specified, defaulting to false (no Capgo download link)");if(!I.BUILD_OUTPUT_RETENTION_SECONDS)Z.info(`ℹ️ --output-retention not specified, defaulting to ${j9}s (1 hour)`);if(!I.SKIP_BUILD_NUMBER_BUMP)Z.info("ℹ️ --skip-build-number-bump not specified, build number will be auto-incremented (default)");let{buildOptions:z,buildCredentials:R}=bc0(I,w,$.buildMode||"release",i1.version),v={app_id:D,platform:w,build_mode:$.buildMode||"release",build_options:z,build_credentials:R};if(Z.info("✓ Using credentials (merged from CLI args, env vars, and saved file)"),Y){let f=Object.keys(R);Z.info(`Credentials provided: ${f.join(", ")}`),Z.info(`Build options: platform=${z.platform}, mode=${z.buildMode}, cliVersion=${z.cliVersion}`)}Z.info("Requesting build from Capgo...");let _=3,A=await Ec0(`${q}/build/request`,{method:"POST",headers:{"Content-Type":"application/json",authorization:$.apikey},body:JSON.stringify(v)},_,Z);if(!A.ok){let f=await A.text();throw Error(`Failed to request build: ${A.status} - ${f}`)}let u=await A.json();if(Z.success(`Build job created: ${u.job_id}`),Z.info(`Status: ${u.status}`),Y)Z.info(`Upload URL: ${u.upload_url}`),Z.info(`Upload expires: ${u.upload_expires_at}`);let S=$.aiAnalysisMode??"auto-prompt",m=(T10()||$.aiAnalytics===!0||S==="caller-handled")&&S!=="skip",g=null,r=!1,k;if(m&&u.job_id)g=u.job_id,await C10(u.job_id),u10(u.job_id,()=>r);let T={...Z,buildLog:(f)=>{if(Z.buildLog(f),m&&g)S10(g,f)}};await M0($.apikey,{channel:"native-builder",event:"Build requested",icon:"\uD83C\uDFD7️",org_id:K,tracking_version:2,tags:{"app-id":D,platform:w},notify:!1}).catch();let P=J$(Vc0(),`capgo-build-${Date.now()}`);await Hc0(P,{recursive:!0});let x=J$(P,`${Z40(O)}.zip`);try{Z.info(`Zipping ${w} project from ${O}...`),await kc0(O,x,w,G?.config,{nodeModules:$.nodeModules});let f=await Nc0(x),h=(f.size/1024/1024).toFixed(2);if(Z.success(`Created zip: ${x} (${h} MB)`),Z.info("Uploading to builder..."),Y)Z.info(`Upload endpoint: ${u.upload_url}`),Z.info(`File size: ${h} MB`),Z.info(`Job ID: ${u.job_id}`);let b=Wc0(x);Z.uploadProgress(0);let s=Date.now(),n=$.buildMode||"release";BG({apikey:$.apikey,appId:D,orgId:K,platform:w,buildMode:n,jobId:u.job_id,sizeBytes:f.size,phase:"started"}),await new Promise((U0,j0)=>{let _0=new VG.Upload(b,{endpoint:u.upload_url,chunkSize:5242880,metadata:{filename:Z40(x),filetype:"application/zip"},headers:{authorization:$.apikey},onBeforeRequest(m0){if(Y){Z.info(`[TUS] ${m0.getMethod()} ${m0.getURL()}`);let d0=m0.getHeader("authorization");Z.info(`[TUS] Authorization header present: ${!!d0}`)}},onAfterResponse(m0,d0){if(Y){Z.info(`[TUS] Response status: ${d0.getStatus()}`);let iD=d0.getHeader("upload-offset"),ED=d0.getHeader("tus-resumable");Z.info(`[TUS] Upload-Offset: ${iD}, Tus-Resumable: ${ED}`)}},async onError(m0){if(await BG({apikey:$.apikey,appId:D,orgId:K,platform:w,buildMode:n,jobId:u.job_id,sizeBytes:f.size,phase:"failed",durationSeconds:(Date.now()-s)/1000,error:m0}),Z.error(`Upload error: ${m0.message}`),m0 instanceof VG.DetailedError){let d0=m0.originalResponse?.getBody(),iD=m0.originalResponse?.getStatus(),ED=m0.originalRequest?.getURL();if(Y)Z.error(`[TUS] Request URL: ${ED}`),Z.error(`[TUS] Response status: ${iD}`),Z.error(`[TUS] Response body: ${d0}`);let e0=(()=>{try{let W8=JSON.parse(d0||'{"error": "unknown error"}');return W8.status||W8.error||W8.message||"unknown error"}catch{return d0||m0.message}})();j0(Error(`TUS upload failed: ${e0}`))}else j0(Error(`TUS upload failed: ${m0.message||m0.toString()}`))},onProgress(m0,d0){let iD=Number.parseFloat((m0/d0*100).toFixed(2));Z.uploadProgress(iD)},onSuccess(){if(BG({apikey:$.apikey,appId:D,orgId:K,platform:w,buildMode:n,jobId:u.job_id,sizeBytes:f.size,phase:"succeeded",durationSeconds:(Date.now()-s)/1000}),Z.uploadProgress(100),Y)Z.success("TUS upload completed successfully");U0()}});if(Y)Z.info("[TUS] Starting upload...");_0.start()}),Z.info("Starting build job...");let t=await fetch(`${q}/build/start/${u.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:$.apikey},body:JSON.stringify({app_id:D})});if(!t.ok){let U0=await t.text();throw Error(`Failed to start build: ${t.status} - ${U0}`)}let q0=await t.json();Z.success("Build started!"),Z.info("Streaming build logs...");let F0=new AbortController,I0=!1,zD=async()=>{if(I0)return;I0=!0;let U0=new AbortController,j0=setTimeout(()=>U0.abort(),4000);try{await fetch(`${q}/build/cancel/${u.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:$.apikey},body:JSON.stringify({app_id:D}),signal:U0.signal})}catch{}finally{clearTimeout(j0)}},Q0=async()=>{try{if(I0)X$.exit(1);Z.warn("Canceling build... (press Ctrl+C again to force quit)"),await zD(),F0.abort()}catch{}};X$.on("SIGINT",Q0);let R0,C=!1,j=async()=>{try{let U0=await fetch(`${q}/build/status?job_id=${encodeURIComponent(u.job_id)}&app_id=${encodeURIComponent(D)}&platform=${w}`,{headers:{authorization:$.apikey}});if(!U0.ok)return null;let j0=await U0.json(),_0=j0.status?.toLowerCase?.()??"";if(C)Z.info(`Build status: ${_0||j0.status}`);if(zG.has(_0))return _0;return null}catch{return null}},c=null;try{c=await Cc0(X,Y,q0.logs_url,q0.logs_token,j,F0.signal,()=>{C=!0},X&&!J&&!$.outputRecord?void 0:T)}finally{X$.removeListener("SIGINT",Q0)}if(c){if(R0=c,zG.has(c))await j().catch(()=>{})}else R0=await Sc0(q,u.job_id,D,w,$.apikey,X,C,F0.signal,Z);if(R0==="succeeded")Z.success("Build completed successfully!");else if(R0==="failed")Z.error("Build failed");else Z.warn(`Build finished with status: ${R0}`);if($.outputRecord&&R0==="succeeded")try{let U0=await Y40($.outputRecord,{jobId:u.job_id,appId:D,platform:w,buildMode:$.buildMode??"release",status:R0,outputUrl:U},(j0)=>Z.warn(j0));if(Z.success(`Build output record written to ${$.outputRecord}`),!U0.outputUrl)Z.info("ℹ️ Record contains no download URL — pass --output-upload to publish one.");if(U0.qrCodePngPath)Z.info(`ℹ️ QR code PNG written to ${U0.qrCodePngPath}`)}catch(U0){Z.warn(`Failed to write build output record to ${$.outputRecord}: ${U0 instanceof Error?U0.message:String(U0)}`)}if(R0==="failed"&&m&&g&&S==="caller-handled"){r=!0;let U0=`${X$.env.CAPGO_AI_LOG_BASE_DIR||"/tmp/capgo-builds"}/${g}.log`;k={jobId:g,capturedLogPath:U0,ready:!0}}else if(R0==="failed"&&m&&g&&S==="auto-prompt"){let U0=v10({isTTY:X$.stdout.isTTY===!0,aiAnalyticsFlag:$.aiAnalytics===!0}),j0="⚠ AI can make mistakes. Always verify the diagnosis against the full log before applying the suggested fix.",_0=(e0)=>{if(e0==="ok")return"success";if(e0==="already_analyzed")return"already_analyzed";if(e0==="too_big")return"too_big";return"error"},m0=async(e0,W8)=>{await XG({apikey:$.apikey,orgId:K,appId:D,platform:w,jobId:g,choice:e0,triggeredBy:W8});let A3=`${X$.env.CAPGO_AI_LOG_BASE_DIR||"/tmp/capgo-builds"}/${g}.log`,b9="";try{let{readFile:E3}=await import("node:fs/promises");b9=await E3(A3,"utf8")}catch(E3){let Y50=E3 instanceof Error?E3.message:String(E3);X$.stderr.write(`AI analysis skipped: could not read captured log at ${A3}: ${Y50}
556
556
  `);return}let h9=X$.stdout.isTTY===!0,JF=h9?X$.stdout:X$.stderr,oE=h9?jD():null;oE?.start("Analyzing build log with Capgo AI");let H$;try{H$=await f10({apiHost:q,apikey:$.apikey,jobId:g,appId:D,logs:b9})}finally{oE?.stop("Capgo AI finished")}let F50=_0(H$.kind);if(await y10({apikey:$.apikey,orgId:K,appId:D,platform:w,jobId:g,result:F50,errorStatus:H$.kind==="error"?H$.status:void 0}),H$.kind==="ok")JF.write(`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
3
  "type": "module",
4
- "version": "7.124.3",
4
+ "version": "7.124.5",
5
5
  "description": "A CLI to upload to capgo servers",
6
6
  "author": "Martin martin@capgo.app",
7
7
  "license": "Apache 2.0",