shipthis
Version:
ShipThis manages building and uploading your Godot games to the App Store and Google Play.
85 lines (82 loc) • 2.98 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import * as fs from 'node:fs';
import { Args, Flags } from '@oclif/core';
import { render } from 'ink';
import { g as getUserCredentials } from '../../../index-izrACZbC.js';
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-BwnzoldS.js';
import 'ink-spinner';
import 'node:crypto';
import 'node:path';
import 'node:readline';
import 'node:url';
import 'readline-sync';
import 'luxon';
import 'axios';
import 'isomorphic-git';
import '@tanstack/react-query';
import 'react';
import 'crypto-js';
import 'uuid';
import 'fast-glob';
import 'yazl';
import 'socket.io-client';
import 'fullscreen-ink';
import 'string-length';
import 'strip-ansi';
import 'open';
import '@inkjs/ui';
import '../../../ejs-DirFZbza.js';
import 'marked';
import 'marked-terminal';
import 'qrcode';
import { R as RunWithSpinner } from '../../../RunWithSpinner-DucRnFp6.js';
import '../../../index-hoHfGrjg.js';
import { C as Command } from '../../../Command-DN1j3tjt.js';
import { e as exportCredential } from '../../../export-DFCZKNQk.js';
import '@expo/apple-utils/build/index.js';
import 'deepmerge';
import 'ini';
import 'fs';
import 'path';
import '../../../index-CJWMt1s-.js';
import '../../../useAndroidServiceAccountTestResult-CwKeW0ED.js';
class AppleApiKeyExport extends BaseAuthenticatedCommand {
static args = {
file: Args.string({ description: "Name of the ZIP file to create", required: true })
};
static description = "Saves the current App Store Connect API Key to a ZIP file";
static examples = ["<%= config.bin %> <%= command.id %> userApiKey.zip"];
static flags = {
force: Flags.boolean({ char: "f", description: "Overwrite the file if it already exists" })
};
async run() {
const { args, flags } = this;
const { file } = args;
const { force } = flags;
const zipAlreadyExists = fs.existsSync(file);
if (zipAlreadyExists && !force) {
this.error(`The file ${file} already exists. Use --force to overwrite it.`);
}
const userCredentials = await getUserCredentials();
const userAppleApiKeyCredentials = userCredentials.filter(
(cred) => cred.platform === Platform.IOS && cred.type === CredentialsType.KEY
);
if (userAppleApiKeyCredentials.length === 0) {
this.error("No App Store Connect API Key found which can be exported.");
}
const [key] = userAppleApiKeyCredentials;
const handleComplete = async () => process.exit(0);
render(
/* @__PURE__ */ jsx(Command, { command: this, children: /* @__PURE__ */ jsx(
RunWithSpinner,
{
executeMethod: () => exportCredential({ credentialId: key.id, zipPath: file }),
msgComplete: `App Store Connect API Key exported to ${file}`,
msgInProgress: `Exporting App Store Connect API Key to ${file}...`,
onComplete: handleComplete
}
) })
);
}
}
export { AppleApiKeyExport as default };