@limrun/cli
Advanced tools
@@ -8,5 +8,6 @@ import { BaseCommand } from '../base-command'; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| path: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| scheme: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
@@ -13,0 +14,0 @@ workspace: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,OAAO,SAAuC;IACrD,MAAM,CAAC,OAAO,WAAgC;IAC9C,MAAM,CAAC,WAAW,SAE0E;IAE5F,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA2CZ,iCAAiC;CA4BhD"} | ||
| {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,OAAO,SAAuC;IACrD,MAAM,CAAC,OAAO,WAAgC;IAC9C,MAAM,CAAC,WAAW,SAE0E;IAE5F,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAgDZ,iCAAiC;CA4BhD"} |
@@ -12,3 +12,4 @@ "use strict"; | ||
| await this.withAuth(async () => { | ||
| const id = this.resolveId(args.id); | ||
| const id = this.resolveId(flags.id); | ||
| const syncPath = args.path ?? process.cwd(); | ||
| const xcodeClient = await this.resolveXcodeClientFromIosInstance(id); | ||
@@ -26,2 +27,5 @@ const settings = {}; | ||
| } | ||
| this.log(`Syncing ${syncPath} to instance ${id}...`); | ||
| await xcodeClient.sync(syncPath, { watch: false, install: false }); | ||
| this.log('Sync complete.'); | ||
| this.log('Starting xcodebuild...'); | ||
@@ -69,14 +73,18 @@ const proc = xcodeClient.xcodebuild(Object.keys(settings).length > 0 ? settings : undefined, Object.keys(options).length > 0 ? options : undefined); | ||
| Build.aliases = ['ios build', 'xcode build']; | ||
| Build.description = 'Triggers a remote xcodebuild with streaming output. ' + | ||
| Build.description = 'Syncs a local project path once (or the current working directory if omitted), then triggers a remote xcodebuild with streaming output. ' + | ||
| 'Works with both standalone Xcode instances and iOS instances that have --xcode enabled.'; | ||
| Build.examples = [ | ||
| '<%= config.bin %> build <xcode-instance-ID>', | ||
| '<%= config.bin %> build <ios-instance-ID> --scheme MyApp', | ||
| '<%= config.bin %> build <xcode-instance-ID> --scheme MyApp --workspace MyApp.xcworkspace', | ||
| '<%= config.bin %> build', | ||
| '<%= config.bin %> build ./MyProject', | ||
| '<%= config.bin %> build --id <xcode-instance-ID>', | ||
| '<%= config.bin %> build ./MyProject --id <xcode-instance-ID>', | ||
| '<%= config.bin %> build --id <ios-instance-ID> --scheme MyApp', | ||
| '<%= config.bin %> build --id <xcode-instance-ID> --scheme MyApp --workspace MyApp.xcworkspace', | ||
| ]; | ||
| Build.args = { | ||
| id: core_1.Args.string({ description: 'Xcode or iOS instance ID (defaults to last created)', required: false }), | ||
| path: core_1.Args.string({ description: 'Local project path (defaults to current directory)', required: false }), | ||
| }; | ||
| Build.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| id: core_1.Flags.string({ description: 'Xcode or iOS instance ID (defaults to last created)' }), | ||
| scheme: core_1.Flags.string({ description: 'Xcode scheme' }), | ||
@@ -83,0 +91,0 @@ workspace: core_1.Flags.string({ description: 'Xcode workspace file' }), |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"} |
@@ -8,6 +8,6 @@ import { BaseCommand } from '../base-command'; | ||
| static args: { | ||
| path: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| path: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| watch: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
@@ -14,0 +14,0 @@ install: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW;IAC3C,MAAM,CAAC,OAAO,SAAwC;IACtD,MAAM,CAAC,OAAO,WAA8B;IAC5C,MAAM,CAAC,WAAW,SAE0E;IAE5F,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI;;;MAGT;IAEF,MAAM,CAAC,KAAK;;;;;MAIV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCZ,kBAAkB;CA+BjC"} | ||
| {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW;IAC3C,MAAM,CAAC,OAAO,SAAwC;IACtD,MAAM,CAAC,OAAO,WAA8B;IAC5C,MAAM,CAAC,WAAW,SAE0E;IAE5F,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAkCZ,kBAAkB;CA+BjC"} |
@@ -12,6 +12,7 @@ "use strict"; | ||
| await this.withAuth(async () => { | ||
| const id = this.resolveId(args.id); | ||
| const id = this.resolveId(flags.id); | ||
| const syncPath = args.path ?? process.cwd(); | ||
| const xcodeClient = await this.resolveXcodeClient(id); | ||
| this.log(`Syncing ${args.path} to instance ${id}...`); | ||
| const result = await xcodeClient.sync(args.path, { | ||
| this.log(`Syncing ${syncPath} to instance ${id}...`); | ||
| const result = await xcodeClient.sync(syncPath, { | ||
| watch: flags.watch, | ||
@@ -66,16 +67,18 @@ install: flags.install, | ||
| Sync.aliases = ['ios sync', 'xcode sync']; | ||
| Sync.description = 'Pushes local source code to a remote Xcode sandbox with optional watch mode. ' + | ||
| Sync.description = 'Pushes a local project path (or the current working directory if omitted) to a remote Xcode sandbox with optional watch mode. ' + | ||
| 'Works with both standalone Xcode instances and iOS instances that have --xcode enabled.'; | ||
| Sync.examples = [ | ||
| '<%= config.bin %> sync', | ||
| '<%= config.bin %> sync ./MyProject', | ||
| '<%= config.bin %> sync ./MyProject <xcode-instance-ID>', | ||
| '<%= config.bin %> sync ./MyProject --no-watch', | ||
| '<%= config.bin %> sync --id <xcode-instance-ID>', | ||
| '<%= config.bin %> sync ./MyProject --id <xcode-instance-ID>', | ||
| '<%= config.bin %> sync --watch', | ||
| ]; | ||
| Sync.args = { | ||
| path: core_1.Args.string({ description: 'Local project path to sync', required: true }), | ||
| id: core_1.Args.string({ description: 'Xcode or iOS instance ID (defaults to last created)', required: false }), | ||
| path: core_1.Args.string({ description: 'Local project path (defaults to current directory)', required: false }), | ||
| }; | ||
| Sync.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| watch: core_1.Flags.boolean({ description: 'Watch for changes and re-sync', default: true, allowNo: true }), | ||
| id: core_1.Flags.string({ description: 'Xcode or iOS instance ID (defaults to last created)' }), | ||
| watch: core_1.Flags.boolean({ description: 'Watch for changes and re-sync', default: false, allowNo: true }), | ||
| install: core_1.Flags.boolean({ description: 'Install after syncing', default: true, allowNo: true }), | ||
@@ -82,0 +85,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@limrun/cli", | ||
| "version": "0.2.2", | ||
| "version": "0.2.3", | ||
| "description": "The official CLI for Limrun — create and control cloud mobile sandboxes", | ||
@@ -5,0 +5,0 @@ "bin": { |
+11
-5
@@ -213,3 +213,3 @@ # @limrun/cli | ||
| ```bash | ||
| # Sync and build (requires --xcode on create) | ||
| # Sync/build use the current directory if no path is provided; pass instance IDs with --id (requires --xcode on create) | ||
| lim ios sync ./MyProject | ||
@@ -546,6 +546,12 @@ lim ios build --scheme MyApp --workspace MyApp.xcworkspace | ||
| ```bash | ||
| # Watch mode (re-syncs on file changes, default) | ||
| # Sync the current directory | ||
| lim ios sync | ||
| # Watch mode (re-syncs on file changes) | ||
| lim ios sync ./MyProject --watch | ||
| # One-shot sync (no watch) | ||
| # One-shot sync (default) | ||
| lim ios sync ./MyProject | ||
| # Explicitly disable watch mode | ||
| lim ios sync ./MyProject --no-watch | ||
@@ -650,3 +656,3 @@ | ||
| # Sync, build, and test | ||
| lim ios sync ./MyiOSProject --no-watch | ||
| lim ios sync ./MyiOSProject | ||
| lim ios build --scheme MyApp --workspace MyApp.xcworkspace | ||
@@ -670,3 +676,3 @@ | ||
| lim xcode sync ./MyiOSProject --no-watch | ||
| lim xcode sync ./MyiOSProject | ||
| lim xcode build --scheme MyApp --workspace MyApp.xcworkspace --upload myapp-latest | ||
@@ -673,0 +679,0 @@ lim asset pull myapp-latest -o ./build-output |
| import { BaseCommand } from '../../base-command'; | ||
| export default class ConnectAndroid extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| 'adb-path': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=android.d.ts.map |
| {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../src/commands/connect/android.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,OAAO,SAA4D;IAC1E,MAAM,CAAC,QAAQ,WAA8C;IAE7D,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;MAGV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmC3B"} |
| "use strict"; | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
| Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
| }) : function(o, v) { | ||
| o["default"] = v; | ||
| }); | ||
| var __importStar = (this && this.__importStar) || (function () { | ||
| var ownKeys = function(o) { | ||
| ownKeys = Object.getOwnPropertyNames || function (o) { | ||
| var ar = []; | ||
| for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; | ||
| return ar; | ||
| }; | ||
| return ownKeys(o); | ||
| }; | ||
| return function (mod) { | ||
| if (mod && mod.__esModule) return mod; | ||
| var result = {}; | ||
| if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); | ||
| __setModuleDefault(result, mod); | ||
| return result; | ||
| }; | ||
| })(); | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| class ConnectAndroid extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(ConnectAndroid); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| const instance = await this.client.androidInstances.get(args.id); | ||
| if (!instance.status.apiUrl) { | ||
| this.error(`Instance ${args.id} does not have an apiUrl. Is it ready?`); | ||
| } | ||
| const { createInstanceClient } = await Promise.resolve().then(() => __importStar(require('@limrun/api'))); | ||
| const instanceClient = await createInstanceClient({ | ||
| apiUrl: instance.status.apiUrl, | ||
| adbUrl: instance.status.adbWebSocketUrl, | ||
| token: instance.status.token, | ||
| }); | ||
| const tunnel = await instanceClient.startAdbTunnel(); | ||
| this.log('Tunnel started. Press Ctrl+C to stop.'); | ||
| await new Promise((resolve) => { | ||
| const keepAlive = setInterval(() => { }, 1 << 30); | ||
| const shutdown = () => { | ||
| clearInterval(keepAlive); | ||
| this.log('Stopping tunnel...'); | ||
| resolve(); | ||
| }; | ||
| process.on('SIGINT', shutdown); | ||
| process.on('SIGTERM', shutdown); | ||
| }); | ||
| tunnel.close(); | ||
| instanceClient.disconnect(); | ||
| }); | ||
| } | ||
| } | ||
| ConnectAndroid.summary = 'Connect to an existing Android instance via ADB tunnel'; | ||
| ConnectAndroid.examples = ['<%= config.bin %> connect android <ID>']; | ||
| ConnectAndroid.args = { | ||
| id: core_1.Args.string({ description: 'Android instance ID', required: true }), | ||
| }; | ||
| ConnectAndroid.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| 'adb-path': core_1.Flags.string({ description: 'Path to adb binary', default: 'adb' }), | ||
| }; | ||
| exports.default = ConnectAndroid; | ||
| //# sourceMappingURL=android.js.map |
| {"version":3,"file":"android.js","sourceRoot":"","sources":["../../../src/commands/connect/android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAA0C;AAC1C,qDAAiD;AAEjD,MAAqB,cAAe,SAAQ,0BAAW;IAarD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,EAAE,wCAAwC,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;YAC7D,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;gBAChD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;gBAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;gBACvC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YACrD,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAElD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,GAAG,EAAE;oBACpB,aAAa,CAAC,SAAS,CAAC,CAAC;oBACzB,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBAC/B,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;;AA9CM,sBAAO,GAAG,wDAAwD,CAAC;AACnE,uBAAQ,GAAG,CAAC,wCAAwC,CAAC,CAAC;AAEtD,mBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACxE,CAAC;AAEK,oBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,UAAU,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;CAChF,CAAC;kBAXiB,cAAc"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class DeleteAndroid extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=android.d.ts.map |
| {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../src/commands/delete/android.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,OAAO,SAAgC;IAC9C,MAAM,CAAC,QAAQ,WAA6C;IAE5D,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| class DeleteAndroid extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(DeleteAndroid); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| await this.client.androidInstances.delete(args.id); | ||
| this.log(`Deleted Android instance: ${args.id}`); | ||
| }); | ||
| } | ||
| } | ||
| DeleteAndroid.summary = 'Delete an Android instance'; | ||
| DeleteAndroid.examples = ['<%= config.bin %> delete android <ID>']; | ||
| DeleteAndroid.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID to delete', required: true }), | ||
| }; | ||
| DeleteAndroid.flags = { ...base_command_1.BaseCommand.baseFlags }; | ||
| exports.default = DeleteAndroid; | ||
| //# sourceMappingURL=android.js.map |
| {"version":3,"file":"android.js","sourceRoot":"","sources":["../../../src/commands/delete/android.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AAEjD,MAAqB,aAAc,SAAQ,0BAAW;IAUpD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;;AAjBM,qBAAO,GAAG,4BAA4B,CAAC;AACvC,sBAAQ,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAErD,kBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC1E,CAAC;AAEK,mBAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBARzB,aAAa"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class DeleteAsset extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=asset.d.ts.map |
| {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/commands/delete/asset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,OAAO,SAAqB;IACnC,MAAM,CAAC,QAAQ,WAA2C;IAE1D,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| class DeleteAsset extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(DeleteAsset); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| await this.client.assets.delete(args.id); | ||
| this.log(`Deleted asset: ${args.id}`); | ||
| }); | ||
| } | ||
| } | ||
| DeleteAsset.summary = 'Delete an asset'; | ||
| DeleteAsset.examples = ['<%= config.bin %> delete asset <ID>']; | ||
| DeleteAsset.args = { | ||
| id: core_1.Args.string({ description: 'Asset ID to delete', required: true }), | ||
| }; | ||
| DeleteAsset.flags = { ...base_command_1.BaseCommand.baseFlags }; | ||
| exports.default = DeleteAsset; | ||
| //# sourceMappingURL=asset.js.map |
| {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/commands/delete/asset.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AAEjD,MAAqB,WAAY,SAAQ,0BAAW;IAUlD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;;AAjBM,mBAAO,GAAG,iBAAiB,CAAC;AAC5B,oBAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAC;AAEnD,gBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACvE,CAAC;AAEK,iBAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBARzB,WAAW"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class DeleteIos extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=ios.d.ts.map |
| {"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../../src/commands/delete/ios.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,OAAO,SAA4B;IAC1C,MAAM,CAAC,QAAQ,WAAyC;IAExD,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAU3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| const config_1 = require("../../lib/config"); | ||
| class DeleteIos extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(DeleteIos); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| await this.client.iosInstances.delete(args.id); | ||
| (0, config_1.clearInstanceCache)(args.id); | ||
| this.log(`Deleted iOS instance: ${args.id}`); | ||
| }); | ||
| } | ||
| } | ||
| DeleteIos.summary = 'Delete an iOS instance'; | ||
| DeleteIos.examples = ['<%= config.bin %> delete ios <ID>']; | ||
| DeleteIos.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID to delete', required: true }), | ||
| }; | ||
| DeleteIos.flags = { ...base_command_1.BaseCommand.baseFlags }; | ||
| exports.default = DeleteIos; | ||
| //# sourceMappingURL=ios.js.map |
| {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../../src/commands/delete/ios.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AACjD,6CAAsD;AAEtD,MAAqB,SAAU,SAAQ,0BAAW;IAUhD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAA,2BAAkB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;;AAlBM,iBAAO,GAAG,wBAAwB,CAAC;AACnC,kBAAQ,GAAG,CAAC,mCAAmC,CAAC,CAAC;AAEjD,cAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC1E,CAAC;AAEK,eAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBARzB,SAAS"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class DeleteXcode extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=xcode.d.ts.map |
| {"version":3,"file":"xcode.d.ts","sourceRoot":"","sources":["../../../src/commands/delete/xcode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,OAAO,SAA6B;IAC3C,MAAM,CAAC,QAAQ,WAA2C;IAE1D,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| class DeleteXcode extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(DeleteXcode); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| await this.client.xcodeInstances.delete(args.id); | ||
| this.log(`Deleted Xcode instance: ${args.id}`); | ||
| }); | ||
| } | ||
| } | ||
| DeleteXcode.summary = 'Delete a Xcode instance'; | ||
| DeleteXcode.examples = ['<%= config.bin %> delete xcode <ID>']; | ||
| DeleteXcode.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID to delete', required: true }), | ||
| }; | ||
| DeleteXcode.flags = { ...base_command_1.BaseCommand.baseFlags }; | ||
| exports.default = DeleteXcode; | ||
| //# sourceMappingURL=xcode.js.map |
| {"version":3,"file":"xcode.js","sourceRoot":"","sources":["../../../src/commands/delete/xcode.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AAEjD,MAAqB,WAAY,SAAQ,0BAAW;IAUlD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;;AAjBM,mBAAO,GAAG,yBAAyB,CAAC;AACpC,oBAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAC;AAEnD,gBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC1E,CAAC;AAEK,iBAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBARzB,WAAW"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class ExecLaunchApp extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| bundleId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| mode: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=launch-app.d.ts.map |
| {"version":3,"file":"launch-app.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/launch-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI;;;MAGT;IAEF,MAAM,CAAC,KAAK;;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| const instance_client_factory_1 = require("../../lib/instance-client-factory"); | ||
| class ExecLaunchApp extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(ExecLaunchApp); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| if ((0, instance_client_factory_1.hasActiveSession)(args.id)) { | ||
| await (0, instance_client_factory_1.sendSessionCommand)(args.id, 'launch-app', [args.bundleId, flags.mode]); | ||
| } | ||
| else { | ||
| const { type, client, disconnect } = await (0, instance_client_factory_1.getInstanceClient)(this.client, args.id); | ||
| if (type !== 'ios') { | ||
| disconnect(); | ||
| this.error('launch-app is only supported on iOS instances'); | ||
| } | ||
| try { | ||
| await client.launchApp(args.bundleId, flags.mode); | ||
| } | ||
| finally { | ||
| disconnect(); | ||
| } | ||
| } | ||
| this.log(`Launched ${args.bundleId}`); | ||
| }); | ||
| } | ||
| } | ||
| ExecLaunchApp.summary = 'Launch an app on a running iOS instance'; | ||
| ExecLaunchApp.examples = [ | ||
| '<%= config.bin %> exec launch-app <instance-ID> com.example.app', | ||
| '<%= config.bin %> exec launch-app <instance-ID> com.example.app --mode RelaunchIfRunning', | ||
| ]; | ||
| ExecLaunchApp.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID', required: true }), | ||
| bundleId: core_1.Args.string({ description: 'App bundle identifier', required: true }), | ||
| }; | ||
| ExecLaunchApp.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| mode: core_1.Flags.string({ | ||
| description: 'Launch mode', | ||
| options: ['ForegroundIfRunning', 'RelaunchIfRunning'], | ||
| default: 'ForegroundIfRunning', | ||
| }), | ||
| }; | ||
| exports.default = ExecLaunchApp; | ||
| //# sourceMappingURL=launch-app.js.map |
| {"version":3,"file":"launch-app.js","sourceRoot":"","sources":["../../../src/commands/exec/launch-app.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AACjD,+EAA4G;AAE5G,MAAqB,aAAc,SAAQ,0BAAW;IAqBpD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,IAAA,0CAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAA,4CAAkB,EAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,2CAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnF,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACnB,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,CAAC;oBACH,MAAO,MAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7D,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;;AAzCM,qBAAO,GAAG,yCAAyC,CAAC;AACpD,sBAAQ,GAAG;IAChB,iEAAiE;IACjE,0FAA0F;CAC3F,CAAC;AAEK,kBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/D,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAChF,CAAC;AAEK,mBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;QACrD,OAAO,EAAE,qBAAqB;KAC/B,CAAC;CACH,CAAC;kBAnBiB,aAAa"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class ExecListApps extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=list-apps.d.ts.map |
| {"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/list-apps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,OAAO,SAAmD;IACjE,MAAM,CAAC,QAAQ,WAAsD;IAErE,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8B3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| const instance_client_factory_1 = require("../../lib/instance-client-factory"); | ||
| class ExecListApps extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(ExecListApps); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| let apps; | ||
| if ((0, instance_client_factory_1.hasActiveSession)(args.id)) { | ||
| apps = (await (0, instance_client_factory_1.sendSessionCommand)(args.id, 'list-apps')); | ||
| } | ||
| else { | ||
| const { type, client, disconnect } = await (0, instance_client_factory_1.getInstanceClient)(this.client, args.id); | ||
| if (type !== 'ios') { | ||
| disconnect(); | ||
| this.error('list-apps is only supported on iOS instances'); | ||
| } | ||
| try { | ||
| apps = await client.listApps(); | ||
| } | ||
| finally { | ||
| disconnect(); | ||
| } | ||
| } | ||
| if (flags.json) { | ||
| this.outputJson(apps); | ||
| } | ||
| else { | ||
| const rows = apps.map((a) => [a.bundleId, a.name, a.installType]); | ||
| this.outputTable(['Bundle ID', 'Name', 'Install Type'], rows); | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| ExecListApps.summary = 'List installed apps on a running iOS instance'; | ||
| ExecListApps.examples = ['<%= config.bin %> exec list-apps <instance-ID>']; | ||
| ExecListApps.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID', required: true }), | ||
| }; | ||
| ExecListApps.flags = { ...base_command_1.BaseCommand.baseFlags }; | ||
| exports.default = ExecListApps; | ||
| //# sourceMappingURL=list-apps.js.map |
| {"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../src/commands/exec/list-apps.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AACjD,+EAA4G;AAE5G,MAAqB,YAAa,SAAQ,0BAAW;IAUnD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,IAAW,CAAC;YAEhB,IAAI,IAAA,0CAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,IAAI,GAAG,CAAC,MAAM,IAAA,4CAAkB,EAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAU,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,2CAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnF,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACnB,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC7D,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,GAAG,MAAO,MAAc,CAAC,QAAQ,EAAE,CAAC;gBAC1C,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAtCM,oBAAO,GAAG,+CAA+C,CAAC;AAC1D,qBAAQ,GAAG,CAAC,gDAAgD,CAAC,CAAC;AAE9D,iBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAChE,CAAC;AAEK,kBAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBARzB,YAAY"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class ExecLog extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| bundleId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| follow: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| lines: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=log.d.ts.map |
| {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,OAAO,SAAyD;IACvE,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI;;;MAGT;IAEF,MAAM,CAAC,KAAK;;;;;MAIV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyD3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| const instance_client_factory_1 = require("../../lib/instance-client-factory"); | ||
| class ExecLog extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(ExecLog); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| // Log tail (non-streaming) can use session | ||
| if (!flags.follow) { | ||
| if ((0, instance_client_factory_1.hasActiveSession)(args.id)) { | ||
| const output = await (0, instance_client_factory_1.sendSessionCommand)(args.id, 'app-log-tail', [args.bundleId, flags.lines]); | ||
| this.log(String(output)); | ||
| } | ||
| else { | ||
| const { type, client, disconnect } = await (0, instance_client_factory_1.getInstanceClient)(this.client, args.id); | ||
| if (type !== 'ios') { | ||
| disconnect(); | ||
| this.error('log command is only supported on iOS instances'); | ||
| } | ||
| try { | ||
| const output = await client.appLogTail(args.bundleId, flags.lines); | ||
| this.log(output); | ||
| } | ||
| finally { | ||
| disconnect(); | ||
| } | ||
| } | ||
| return; | ||
| } | ||
| // Streaming requires direct connection (long-lived) | ||
| const { type, client, disconnect } = await (0, instance_client_factory_1.getInstanceClient)(this.client, args.id); | ||
| if (type !== 'ios') { | ||
| disconnect(); | ||
| this.error('log command is only supported on iOS instances'); | ||
| } | ||
| try { | ||
| const logStream = client.streamAppLog(args.bundleId); | ||
| logStream.on('line', (line) => { | ||
| process.stdout.write(line + '\n'); | ||
| }); | ||
| logStream.on('error', (err) => { | ||
| this.warn(`Log stream error: ${err.message}`); | ||
| }); | ||
| await new Promise((resolve) => { | ||
| const keepAlive = setInterval(() => { }, 1 << 30); | ||
| const shutdown = () => { | ||
| clearInterval(keepAlive); | ||
| logStream.stop(); | ||
| resolve(); | ||
| }; | ||
| process.on('SIGINT', shutdown); | ||
| process.on('SIGTERM', shutdown); | ||
| }); | ||
| } | ||
| finally { | ||
| disconnect(); | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| ExecLog.summary = 'Stream or tail app logs from a running iOS instance'; | ||
| ExecLog.examples = [ | ||
| '<%= config.bin %> exec log <instance-ID> com.example.app', | ||
| '<%= config.bin %> exec log <instance-ID> com.example.app --lines 50', | ||
| '<%= config.bin %> exec log <instance-ID> com.example.app -f', | ||
| ]; | ||
| ExecLog.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID', required: true }), | ||
| bundleId: core_1.Args.string({ description: 'App bundle identifier', required: true }), | ||
| }; | ||
| ExecLog.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| follow: core_1.Flags.boolean({ char: 'f', description: 'Stream logs continuously', default: false }), | ||
| lines: core_1.Flags.integer({ description: 'Number of lines to tail (non-streaming)', default: 100 }), | ||
| }; | ||
| exports.default = ExecLog; | ||
| //# sourceMappingURL=log.js.map |
| {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/commands/exec/log.ts"],"names":[],"mappings":"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"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class ExecTerminateApp extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| bundleId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=terminate-app.d.ts.map |
| {"version":3,"file":"terminate-app.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/terminate-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,WAAW;IACvD,MAAM,CAAC,OAAO,SAAgD;IAC9D,MAAM,CAAC,QAAQ,WAA0E;IAEzF,MAAM,CAAC,IAAI;;;MAGT;IAEF,MAAM,CAAC,KAAK;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| const instance_client_factory_1 = require("../../lib/instance-client-factory"); | ||
| class ExecTerminateApp extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(ExecTerminateApp); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| if ((0, instance_client_factory_1.hasActiveSession)(args.id)) { | ||
| await (0, instance_client_factory_1.sendSessionCommand)(args.id, 'terminate-app', [args.bundleId]); | ||
| } | ||
| else { | ||
| const { type, client, disconnect } = await (0, instance_client_factory_1.getInstanceClient)(this.client, args.id); | ||
| if (type !== 'ios') { | ||
| disconnect(); | ||
| this.error('terminate-app is only supported on iOS instances'); | ||
| } | ||
| try { | ||
| await client.terminateApp(args.bundleId); | ||
| } | ||
| finally { | ||
| disconnect(); | ||
| } | ||
| } | ||
| this.log(`Terminated ${args.bundleId}`); | ||
| }); | ||
| } | ||
| } | ||
| ExecTerminateApp.summary = 'Terminate an app on a running iOS instance'; | ||
| ExecTerminateApp.examples = ['<%= config.bin %> exec terminate-app <instance-ID> com.example.app']; | ||
| ExecTerminateApp.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID', required: true }), | ||
| bundleId: core_1.Args.string({ description: 'App bundle identifier', required: true }), | ||
| }; | ||
| ExecTerminateApp.flags = { ...base_command_1.BaseCommand.baseFlags }; | ||
| exports.default = ExecTerminateApp; | ||
| //# sourceMappingURL=terminate-app.js.map |
| {"version":3,"file":"terminate-app.js","sourceRoot":"","sources":["../../../src/commands/exec/terminate-app.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AACjD,+EAA4G;AAE5G,MAAqB,gBAAiB,SAAQ,0BAAW;IAWvD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,IAAA,0CAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAA,4CAAkB,EAAC,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,2CAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnF,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACnB,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,CAAC;oBACH,MAAO,MAAc,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;;AA/BM,wBAAO,GAAG,4CAA4C,CAAC;AACvD,yBAAQ,GAAG,CAAC,oEAAoE,CAAC,CAAC;AAElF,qBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/D,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAChF,CAAC;AAEK,sBAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBATzB,gBAAgB"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class GetAndroid extends BaseCommand { | ||
| static summary: string; | ||
| static aliases: string[]; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| state: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'label-selector': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| all: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=android.d.ts.map |
| {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../src/commands/get/android.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,MAAM,CAAC,OAAO,SAAkD;IAChE,MAAM,CAAC,OAAO,WAAa;IAC3B,MAAM,CAAC,QAAQ,WAA2E;IAE1F,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkD3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| class GetAndroid extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(GetAndroid); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| if (args.id) { | ||
| const instance = await this.client.androidInstances.get(args.id); | ||
| if (flags.json) { | ||
| this.outputJson(instance); | ||
| } | ||
| else { | ||
| this.outputTable(['ID', 'Name', 'Region', 'State'], [ | ||
| [ | ||
| instance.metadata.id, | ||
| instance.metadata.displayName || '', | ||
| instance.spec.region, | ||
| instance.status.state, | ||
| ], | ||
| ]); | ||
| } | ||
| return; | ||
| } | ||
| const params = {}; | ||
| if (flags.state) { | ||
| params.state = flags.state; | ||
| } | ||
| else if (!flags.all) { | ||
| params.state = 'ready'; | ||
| } | ||
| if (flags.region) | ||
| params.region = flags.region; | ||
| if (flags['label-selector']) | ||
| params.labelSelector = flags['label-selector']; | ||
| const instances = await this.client.androidInstances.list(params); | ||
| const items = instances.items ?? instances.getPaginatedItems(); | ||
| const rows = items.map((i) => [ | ||
| i.metadata.id, | ||
| i.metadata.displayName || '', | ||
| i.spec.region, | ||
| i.status.state, | ||
| ]); | ||
| if (flags.json) { | ||
| this.outputJson(items); | ||
| } | ||
| else { | ||
| this.outputTable(['ID', 'Name', 'Region', 'State'], rows); | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| GetAndroid.summary = 'List Android instances or get a specific one'; | ||
| GetAndroid.aliases = ['get a']; | ||
| GetAndroid.examples = ['<%= config.bin %> get android', '<%= config.bin %> get android <ID>']; | ||
| GetAndroid.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID to get', required: false }), | ||
| }; | ||
| GetAndroid.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| state: core_1.Flags.string({ description: 'Filter by state (unknown, creating, ready, terminated)' }), | ||
| region: core_1.Flags.string({ description: 'Filter by region' }), | ||
| 'label-selector': core_1.Flags.string({ description: 'Filter by labels (e.g. env=prod,region=us-west)' }), | ||
| all: core_1.Flags.boolean({ description: 'Show all states, not just ready', default: false }), | ||
| }; | ||
| exports.default = GetAndroid; | ||
| //# sourceMappingURL=android.js.map |
| {"version":3,"file":"android.js","sourceRoot":"","sources":["../../../src/commands/get/android.ts"],"names":[],"mappings":"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"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class GetAsset extends BaseCommand { | ||
| static summary: string; | ||
| static aliases: string[]; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'download-url': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'upload-url': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=asset.d.ts.map |
| {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/commands/get/asset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,OAAO,SAAuC;IACrD,MAAM,CAAC,OAAO,WAAkB;IAChC,MAAM,CAAC,QAAQ,WAAuE;IAEtF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqD3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| class GetAsset extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(GetAsset); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| if (args.id) { | ||
| const asset = await this.client.assets.get(args.id, { | ||
| includeDownloadUrl: flags['download-url'], | ||
| includeUploadUrl: flags['upload-url'], | ||
| }); | ||
| if (flags.json) { | ||
| this.outputJson(asset); | ||
| return; | ||
| } | ||
| const headers = ['ID', 'Name', 'MD5']; | ||
| const row = [asset.id, asset.name, asset.md5 || '']; | ||
| if (flags['download-url']) { | ||
| headers.push('Download URL'); | ||
| row.push(asset.signedDownloadUrl || ''); | ||
| } | ||
| if (flags['upload-url']) { | ||
| headers.push('Upload URL'); | ||
| row.push(asset.signedUploadUrl || ''); | ||
| } | ||
| this.outputTable(headers, [row]); | ||
| return; | ||
| } | ||
| const params = { | ||
| includeDownloadUrl: flags['download-url'], | ||
| includeUploadUrl: flags['upload-url'], | ||
| }; | ||
| if (flags.name) | ||
| params.nameFilter = flags.name; | ||
| const assets = await this.client.assets.list(params); | ||
| const headers = ['ID', 'Name', 'MD5']; | ||
| if (flags['download-url']) | ||
| headers.push('Download URL'); | ||
| if (flags['upload-url']) | ||
| headers.push('Upload URL'); | ||
| const rows = assets.map((a) => { | ||
| const row = [a.id, a.name, a.md5 || '']; | ||
| if (flags['download-url']) | ||
| row.push(a.signedDownloadUrl || ''); | ||
| if (flags['upload-url']) | ||
| row.push(a.signedUploadUrl || ''); | ||
| return row; | ||
| }); | ||
| if (flags.json) { | ||
| this.outputJson(assets); | ||
| } | ||
| else { | ||
| this.outputTable(headers, rows); | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| GetAsset.summary = 'List assets or get a specific one'; | ||
| GetAsset.aliases = ['get assets']; | ||
| GetAsset.examples = ['<%= config.bin %> get asset', '<%= config.bin %> get asset <ID>']; | ||
| GetAsset.args = { | ||
| id: core_1.Args.string({ description: 'Asset ID to get', required: false }), | ||
| }; | ||
| GetAsset.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| name: core_1.Flags.string({ description: 'Filter by asset name' }), | ||
| 'download-url': core_1.Flags.boolean({ description: 'Include download URL in output', default: false }), | ||
| 'upload-url': core_1.Flags.boolean({ description: 'Include upload URL in output', default: false }), | ||
| }; | ||
| exports.default = GetAsset; | ||
| //# sourceMappingURL=asset.js.map |
| {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/commands/get/asset.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AAEjD,MAAqB,QAAS,SAAQ,0BAAW;IAgB/C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClD,kBAAkB,EAAE,KAAK,CAAC,cAAc,CAAC;oBACzC,gBAAgB,EAAE,KAAK,CAAC,YAAY,CAAC;iBACtC,CAAC,CAAC;gBACH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACvB,OAAO;gBACT,CAAC;gBACD,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;gBACpD,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;gBACxC,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAA4B;gBACtC,kBAAkB,EAAE,KAAK,CAAC,cAAc,CAAC;gBACzC,gBAAgB,EAAE,KAAK,CAAC,YAAY,CAAC;aACtC,CAAC;YACF,IAAI,KAAK,CAAC,IAAI;gBAAE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;YAE/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,cAAc,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,YAAY,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpD,MAAM,IAAI,GAAI,MAAgB,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC5C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;gBACxC,IAAI,KAAK,CAAC,cAAc,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;gBAC/D,IAAI,KAAK,CAAC,YAAY,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;gBAC3D,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAnEM,gBAAO,GAAG,mCAAmC,CAAC;AAC9C,gBAAO,GAAG,CAAC,YAAY,CAAC,CAAC;AACzB,iBAAQ,GAAG,CAAC,6BAA6B,EAAE,kCAAkC,CAAC,CAAC;AAE/E,aAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACrE,CAAC;AAEK,cAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;IAC3D,cAAc,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAChG,YAAY,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;CAC7F,CAAC;kBAdiB,QAAQ"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class GetIos extends BaseCommand { | ||
| static summary: string; | ||
| static aliases: string[]; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| state: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'label-selector': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| all: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=ios.d.ts.map |
| {"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../../src/commands/get/ios.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,OAAO,SAA8C;IAC5D,MAAM,CAAC,OAAO,WAAa;IAC3B,MAAM,CAAC,QAAQ,WAAmE;IAElF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkD3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| class GetIos extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(GetIos); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| if (args.id) { | ||
| const instance = await this.client.iosInstances.get(args.id); | ||
| if (flags.json) { | ||
| this.outputJson(instance); | ||
| } | ||
| else { | ||
| this.outputTable(['ID', 'Name', 'Region', 'State'], [ | ||
| [ | ||
| instance.metadata.id, | ||
| instance.metadata.displayName || '', | ||
| instance.spec.region, | ||
| instance.status.state, | ||
| ], | ||
| ]); | ||
| } | ||
| return; | ||
| } | ||
| const params = {}; | ||
| if (flags.state) { | ||
| params.state = flags.state; | ||
| } | ||
| else if (!flags.all) { | ||
| params.state = 'ready'; | ||
| } | ||
| if (flags.region) | ||
| params.region = flags.region; | ||
| if (flags['label-selector']) | ||
| params.labelSelector = flags['label-selector']; | ||
| const instances = await this.client.iosInstances.list(params); | ||
| const items = instances.items ?? instances.getPaginatedItems(); | ||
| const rows = items.map((i) => [ | ||
| i.metadata.id, | ||
| i.metadata.displayName || '', | ||
| i.spec.region, | ||
| i.status.state, | ||
| ]); | ||
| if (flags.json) { | ||
| this.outputJson(items); | ||
| } | ||
| else { | ||
| this.outputTable(['ID', 'Name', 'Region', 'State'], rows); | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| GetIos.summary = 'List iOS instances or get a specific one'; | ||
| GetIos.aliases = ['get i']; | ||
| GetIos.examples = ['<%= config.bin %> get ios', '<%= config.bin %> get ios <ID>']; | ||
| GetIos.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID to get', required: false }), | ||
| }; | ||
| GetIos.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| state: core_1.Flags.string({ description: 'Filter by state (unknown, creating, ready, terminated)' }), | ||
| region: core_1.Flags.string({ description: 'Filter by region' }), | ||
| 'label-selector': core_1.Flags.string({ description: 'Filter by labels (e.g. env=prod,region=us-west)' }), | ||
| all: core_1.Flags.boolean({ description: 'Show all states, not just ready', default: false }), | ||
| }; | ||
| exports.default = GetIos; | ||
| //# sourceMappingURL=ios.js.map |
| {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../../src/commands/get/ios.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AAEjD,MAAqB,MAAO,SAAQ,0BAAW;IAiB7C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,WAAW,CACd,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EACjC;wBACE;4BACE,QAAQ,CAAC,QAAQ,CAAC,EAAE;4BACpB,QAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;4BACnC,QAAQ,CAAC,IAAI,CAAC,MAAM;4BACpB,QAAQ,CAAC,MAAM,CAAC,KAAK;yBACtB;qBACF,CACF,CAAC;gBACJ,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC7B,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;YACzB,CAAC;YACD,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/C,IAAI,KAAK,CAAC,gBAAgB,CAAC;gBAAE,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAE5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACjC,CAAC,CAAC,QAAQ,CAAC,EAAE;gBACb,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;gBAC5B,CAAC,CAAC,IAAI,CAAC,MAAM;gBACb,CAAC,CAAC,MAAM,CAAC,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAjEM,cAAO,GAAG,0CAA0C,CAAC;AACrD,cAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACpB,eAAQ,GAAG,CAAC,2BAA2B,EAAE,gCAAgC,CAAC,CAAC;AAE3E,WAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACxE,CAAC;AAEK,YAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;IAC9F,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IACzD,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;IAClG,GAAG,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;CACvF,CAAC;kBAfiB,MAAM"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class GetXcode extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| state: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'label-selector': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| all: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=xcode.d.ts.map |
| {"version":3,"file":"xcode.d.ts","sourceRoot":"","sources":["../../../src/commands/get/xcode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,OAAO,SAAgD;IAC9D,MAAM,CAAC,QAAQ,WAAuE;IAEtF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiD3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| class GetXcode extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(GetXcode); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| if (args.id) { | ||
| const instance = await this.client.xcodeInstances.get(args.id); | ||
| if (flags.json) { | ||
| this.outputJson(instance); | ||
| } | ||
| else { | ||
| this.outputTable(['ID', 'Name', 'Region', 'State'], [ | ||
| [ | ||
| instance.metadata.id, | ||
| instance.metadata.displayName || '', | ||
| instance.spec.region, | ||
| instance.status.state, | ||
| ], | ||
| ]); | ||
| } | ||
| return; | ||
| } | ||
| const params = {}; | ||
| if (flags.state) { | ||
| params.state = flags.state; | ||
| } | ||
| else if (!flags.all) { | ||
| params.state = 'ready'; | ||
| } | ||
| if (flags['label-selector']) | ||
| params.labelSelector = flags['label-selector']; | ||
| const instances = await this.client.xcodeInstances.list(params); | ||
| const items = instances.items ?? instances.getPaginatedItems(); | ||
| const rows = items.map((i) => [ | ||
| i.metadata.id, | ||
| i.metadata.displayName || '', | ||
| i.spec.region, | ||
| i.status.state, | ||
| ]); | ||
| if (flags.json) { | ||
| this.outputJson(items); | ||
| } | ||
| else { | ||
| this.outputTable(['ID', 'Name', 'Region', 'State'], rows); | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| GetXcode.summary = 'List Xcode instances or get a specific one'; | ||
| GetXcode.examples = ['<%= config.bin %> get xcode', '<%= config.bin %> get xcode <ID>']; | ||
| GetXcode.args = { | ||
| id: core_1.Args.string({ description: 'Instance ID to get', required: false }), | ||
| }; | ||
| GetXcode.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| state: core_1.Flags.string({ description: 'Filter by state (unknown, creating, ready, terminated)' }), | ||
| 'label-selector': core_1.Flags.string({ description: 'Filter by labels (e.g. env=prod,region=us-west)' }), | ||
| all: core_1.Flags.boolean({ description: 'Show all states, not just ready', default: false }), | ||
| }; | ||
| exports.default = GetXcode; | ||
| //# sourceMappingURL=xcode.js.map |
| {"version":3,"file":"xcode.js","sourceRoot":"","sources":["../../../src/commands/get/xcode.ts"],"names":[],"mappings":"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"} |
| import { BaseCommand } from '../base-command'; | ||
| export default class Pull extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| id_or_name: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| output: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=pull.d.ts.map |
| {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW;IAC3C,MAAM,CAAC,OAAO,SAA4B;IAC1C,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;MAQV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+C3B"} |
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const path_1 = __importDefault(require("path")); | ||
| const fs_1 = __importDefault(require("fs")); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../base-command"); | ||
| class Pull extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(Pull); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| let asset; | ||
| // If the argument contains underscore prefix pattern, treat as ID; otherwise as name | ||
| const isId = args.id_or_name.includes('_'); | ||
| if (isId) { | ||
| const fetched = await this.client.assets.get(args.id_or_name, { includeDownloadUrl: true }); | ||
| asset = fetched; | ||
| } | ||
| else { | ||
| const searchName = flags.name || args.id_or_name; | ||
| const fetched = await this.client.assets.list({ | ||
| nameFilter: searchName, | ||
| includeDownloadUrl: true, | ||
| }); | ||
| const list = fetched; | ||
| if (list.length === 0) { | ||
| this.error(`Asset with name "${searchName}" not found`); | ||
| } | ||
| asset = list[0]; | ||
| } | ||
| if (!asset.signedDownloadUrl) { | ||
| this.error('Asset does not have a download URL'); | ||
| } | ||
| const outDir = path_1.default.resolve(flags.output); | ||
| fs_1.default.mkdirSync(outDir, { recursive: true }); | ||
| const fullPath = path_1.default.join(outDir, asset.name); | ||
| this.log(`Pulling to ${fullPath}`); | ||
| const resp = await fetch(asset.signedDownloadUrl); | ||
| if (!resp.ok) { | ||
| const body = await resp.text(); | ||
| this.error(`Failed to download file: ${body}`); | ||
| } | ||
| const buffer = Buffer.from(await resp.arrayBuffer()); | ||
| fs_1.default.writeFileSync(fullPath, buffer); | ||
| this.log('Done!'); | ||
| }); | ||
| } | ||
| } | ||
| Pull.summary = 'Download an asset file'; | ||
| Pull.examples = [ | ||
| '<%= config.bin %> pull <ID>', | ||
| '<%= config.bin %> pull my-app.apk', | ||
| '<%= config.bin %> pull <ID> -o ./downloads', | ||
| ]; | ||
| Pull.args = { | ||
| id_or_name: core_1.Args.string({ description: 'Asset ID or name', required: true }), | ||
| }; | ||
| Pull.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| name: core_1.Flags.string({ char: 'n', description: 'Asset name to search for' }), | ||
| output: core_1.Flags.string({ | ||
| char: 'o', | ||
| description: 'Output directory (defaults to current directory)', | ||
| default: '.', | ||
| }), | ||
| }; | ||
| exports.default = Pull; | ||
| //# sourceMappingURL=pull.js.map |
| {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"} |
| import { BaseCommand } from '../base-command'; | ||
| export default class Push extends BaseCommand { | ||
| static summary: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| file: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=push.d.ts.map |
| {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW;IAC3C,MAAM,CAAC,OAAO,SAA0B;IACxC,MAAM,CAAC,QAAQ,WAAsF;IAErG,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;MAGV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB3B"} |
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const path_1 = __importDefault(require("path")); | ||
| const fs_1 = __importDefault(require("fs")); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../base-command"); | ||
| class Push extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { args, flags } = await this.parse(Push); | ||
| this.setParsedFlags(flags); | ||
| const filePath = path_1.default.resolve(args.file); | ||
| if (!fs_1.default.existsSync(filePath)) { | ||
| this.error(`File not found: ${filePath}`); | ||
| } | ||
| const assetName = flags.name || path_1.default.basename(filePath); | ||
| this.log(`Name: ${assetName}`); | ||
| await this.withAuth(async () => { | ||
| const asset = await this.client.assets.getOrUpload({ | ||
| path: filePath, | ||
| name: assetName, | ||
| }); | ||
| this.log(`ID: ${asset.id}`); | ||
| this.log('\nDone!'); | ||
| }); | ||
| } | ||
| } | ||
| Push.summary = 'Upload an asset file'; | ||
| Push.examples = ['<%= config.bin %> push ./app.apk', '<%= config.bin %> push ./app.ipa -n my-app']; | ||
| Push.args = { | ||
| file: core_1.Args.string({ description: 'Path to the file to upload', required: true }), | ||
| }; | ||
| Push.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| name: core_1.Flags.string({ char: 'n', description: 'Name for the asset (defaults to filename)' }), | ||
| }; | ||
| exports.default = Push; | ||
| //# sourceMappingURL=push.js.map |
| {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,sCAA0C;AAC1C,kDAA8C;AAE9C,MAAqB,IAAK,SAAQ,0BAAW;IAa3C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;QAE/B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBACjD,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;;AAjCM,YAAO,GAAG,sBAAsB,CAAC;AACjC,aAAQ,GAAG,CAAC,kCAAkC,EAAE,4CAA4C,CAAC,CAAC;AAE9F,SAAI,GAAG;IACZ,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACjF,CAAC;AAEK,UAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;CAC5F,CAAC;kBAXiB,IAAI"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class RunAndroid extends BaseCommand { | ||
| static summary: string; | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| connect: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| stream: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| rm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'adb-path': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'display-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'hard-timeout': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'inactivity-timeout': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| label: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'reuse-if-exists': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'install-asset': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| install: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=android.d.ts.map |
| {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../src/commands/run/android.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,MAAM,CAAC,OAAO,SAAmC;IACjD,MAAM,CAAC,WAAW,SACkF;IAEpG,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;MAwBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6G3B"} |
| "use strict"; | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
| Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
| }) : function(o, v) { | ||
| o["default"] = v; | ||
| }); | ||
| var __importStar = (this && this.__importStar) || (function () { | ||
| var ownKeys = function(o) { | ||
| ownKeys = Object.getOwnPropertyNames || function (o) { | ||
| var ar = []; | ||
| for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; | ||
| return ar; | ||
| }; | ||
| return ownKeys(o); | ||
| }; | ||
| return function (mod) { | ||
| if (mod && mod.__esModule) return mod; | ||
| var result = {}; | ||
| if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); | ||
| __setModuleDefault(result, mod); | ||
| return result; | ||
| }; | ||
| })(); | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const path_1 = __importDefault(require("path")); | ||
| const child_process_1 = require("child_process"); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| const formatting_1 = require("../../lib/formatting"); | ||
| class RunAndroid extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { flags } = await this.parse(RunAndroid); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| // Upload local files first | ||
| const assetNames = [...(flags['install-asset'] || [])]; | ||
| if (flags.install) { | ||
| for (const filePath of flags.install) { | ||
| const resolved = path_1.default.resolve(filePath); | ||
| const name = path_1.default.basename(resolved); | ||
| this.log(`Uploading ${name}...`); | ||
| const asset = await this.client.assets.getOrUpload({ path: resolved, name }); | ||
| assetNames.push(asset.name); | ||
| } | ||
| this.log(`Successfully uploaded ${flags.install.length} file(s)`); | ||
| } | ||
| // Build params | ||
| const params = { | ||
| wait: true, | ||
| reuseIfExists: flags['reuse-if-exists'] || undefined, | ||
| spec: {}, | ||
| }; | ||
| if (assetNames.length > 0) { | ||
| params.spec.initialAssets = assetNames.map((name) => ({ | ||
| kind: 'App', | ||
| source: 'AssetName', | ||
| assetName: name, | ||
| })); | ||
| } | ||
| if (flags.region) | ||
| params.spec.region = flags.region; | ||
| if (flags['hard-timeout']) | ||
| params.spec.hardTimeout = flags['hard-timeout']; | ||
| if (flags['inactivity-timeout']) | ||
| params.spec.inactivityTimeout = flags['inactivity-timeout']; | ||
| const labels = (0, formatting_1.parseLabels)(flags.label); | ||
| if (flags['display-name'] || labels) { | ||
| params.metadata = {}; | ||
| if (flags['display-name']) | ||
| params.metadata.displayName = flags['display-name']; | ||
| if (labels) | ||
| params.metadata.labels = labels; | ||
| } | ||
| const start = Date.now(); | ||
| const instance = await this.client.androidInstances.create(params); | ||
| this.log(`Created a new instance in ${((Date.now() - start) / 1000).toFixed(1)}s`); | ||
| if (flags.rm) { | ||
| const cleanup = async () => { | ||
| try { | ||
| await this.client.androidInstances.delete(instance.metadata.id); | ||
| this.log(`${instance.metadata.id} is deleted`); | ||
| } | ||
| catch (e) { | ||
| this.log(`Failed to delete instance: ${e}`); | ||
| } | ||
| }; | ||
| process.on('SIGINT', async () => { | ||
| await cleanup(); | ||
| process.exit(0); | ||
| }); | ||
| process.on('SIGTERM', async () => { | ||
| await cleanup(); | ||
| process.exit(0); | ||
| }); | ||
| } | ||
| if (flags.connect) { | ||
| const { createInstanceClient } = await Promise.resolve().then(() => __importStar(require('@limrun/api'))); | ||
| const instanceClient = await createInstanceClient({ | ||
| apiUrl: instance.status.apiUrl, | ||
| adbUrl: instance.status.adbWebSocketUrl, | ||
| token: instance.status.token, | ||
| }); | ||
| const tunnel = await instanceClient.startAdbTunnel(); | ||
| if (flags.stream) { | ||
| const addr = `${tunnel.address.address}:${tunnel.address.port}`; | ||
| const scrcpy = (0, child_process_1.spawn)('scrcpy', ['-s', addr], { stdio: 'inherit' }); | ||
| scrcpy.on('error', (err) => { | ||
| this.warn(`Failed to start scrcpy: ${err.message}`); | ||
| }); | ||
| scrcpy.on('close', () => { | ||
| process.kill(process.pid, 'SIGTERM'); | ||
| }); | ||
| } | ||
| this.log('Tunnel started. Press Ctrl+C to stop.'); | ||
| await new Promise((resolve) => { | ||
| const keepAlive = setInterval(() => { }, 1 << 30); | ||
| const shutdown = () => { | ||
| clearInterval(keepAlive); | ||
| resolve(); | ||
| }; | ||
| process.on('SIGINT', shutdown); | ||
| process.on('SIGTERM', shutdown); | ||
| }); | ||
| tunnel.close(); | ||
| instanceClient.disconnect(); | ||
| } | ||
| else { | ||
| this.log(`Created instance ${instance.metadata.id}`); | ||
| if (flags.json) { | ||
| this.outputJson(instance); | ||
| } | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| RunAndroid.summary = 'Create a new Android instance'; | ||
| RunAndroid.description = 'Creates and optionally connects to a new Android instance with ADB tunnel and scrcpy streaming.'; | ||
| RunAndroid.examples = [ | ||
| '<%= config.bin %> run android', | ||
| '<%= config.bin %> run android --rm --install ./app.apk', | ||
| '<%= config.bin %> run android --region us-west --label env=dev', | ||
| ]; | ||
| RunAndroid.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| connect: core_1.Flags.boolean({ | ||
| description: 'Connect to the instance (start ADB tunnel)', | ||
| default: true, | ||
| allowNo: true, | ||
| }), | ||
| stream: core_1.Flags.boolean({ description: 'Stream the instance with scrcpy', default: true, allowNo: true }), | ||
| rm: core_1.Flags.boolean({ description: 'Delete instance on exit', default: false }), | ||
| 'adb-path': core_1.Flags.string({ description: 'Path to adb binary', default: 'adb' }), | ||
| 'display-name': core_1.Flags.string({ description: 'Display name for the instance' }), | ||
| region: core_1.Flags.string({ description: 'Region where the instance will be created' }), | ||
| 'hard-timeout': core_1.Flags.string({ description: 'Hard timeout (e.g. 1m, 10m, 3h). Default: no timeout' }), | ||
| 'inactivity-timeout': core_1.Flags.string({ description: 'Inactivity timeout (e.g. 1m, 10m, 3h). Default: 3m' }), | ||
| label: core_1.Flags.string({ description: 'Labels in key=value format', multiple: true }), | ||
| 'reuse-if-exists': core_1.Flags.boolean({ | ||
| description: 'Reuse existing instance with same labels/region', | ||
| default: false, | ||
| }), | ||
| 'install-asset': core_1.Flags.string({ description: 'Asset name to install (can be repeated)', multiple: true }), | ||
| install: core_1.Flags.string({ | ||
| description: 'Local file to install (auto-uploads if needed, can be repeated)', | ||
| multiple: true, | ||
| }), | ||
| }; | ||
| exports.default = RunAndroid; | ||
| //# sourceMappingURL=android.js.map |
| {"version":3,"file":"android.js","sourceRoot":"","sources":["../../../src/commands/run/android.ts"],"names":[],"mappings":"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"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class RunIos extends BaseCommand { | ||
| static summary: string; | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| rm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'display-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'hard-timeout': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'inactivity-timeout': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| label: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| model: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'reuse-if-exists': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'install-asset': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| install: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| xcode: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=ios.d.ts.map |
| {"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../../src/commands/run/ios.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,OAAO,SAA+B;IAC7C,MAAM,CAAC,WAAW,SAAwD;IAE1E,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;MAmBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0F3B"} |
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const path_1 = __importDefault(require("path")); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| const formatting_1 = require("../../lib/formatting"); | ||
| const config_1 = require("../../lib/config"); | ||
| class RunIos extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { flags } = await this.parse(RunIos); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| // Upload local files first | ||
| const assetNames = [...(flags['install-asset'] || [])]; | ||
| if (flags.install) { | ||
| for (const filePath of flags.install) { | ||
| const resolved = path_1.default.resolve(filePath); | ||
| const name = path_1.default.basename(resolved); | ||
| this.log(`Uploading ${name}...`); | ||
| const asset = await this.client.assets.getOrUpload({ path: resolved, name }); | ||
| assetNames.push(asset.name); | ||
| } | ||
| this.log(`Successfully uploaded ${flags.install.length} file(s)`); | ||
| } | ||
| // Build params | ||
| const params = { | ||
| wait: true, | ||
| reuseIfExists: flags['reuse-if-exists'] || undefined, | ||
| spec: {}, | ||
| }; | ||
| if (assetNames.length > 0) { | ||
| params.spec.initialAssets = assetNames.map((name) => ({ | ||
| kind: 'App', | ||
| source: 'AssetName', | ||
| assetName: name, | ||
| })); | ||
| } | ||
| if (flags.region) | ||
| params.spec.region = flags.region; | ||
| if (flags.model) | ||
| params.spec.model = flags.model; | ||
| if (flags['hard-timeout']) | ||
| params.spec.hardTimeout = flags['hard-timeout']; | ||
| if (flags['inactivity-timeout']) | ||
| params.spec.inactivityTimeout = flags['inactivity-timeout']; | ||
| if (flags.xcode) { | ||
| params.spec.sandbox = { xcode: { enabled: true } }; | ||
| } | ||
| const labels = (0, formatting_1.parseLabels)(flags.label); | ||
| if (flags['display-name'] || labels) { | ||
| params.metadata = {}; | ||
| if (flags['display-name']) | ||
| params.metadata.displayName = flags['display-name']; | ||
| if (labels) | ||
| params.metadata.labels = labels; | ||
| } | ||
| const start = Date.now(); | ||
| const instance = await this.client.iosInstances.create(params); | ||
| this.log(`Created a new iOS instance in ${((Date.now() - start) / 1000).toFixed(1)}s`); | ||
| this.log(`Instance ID: ${instance.metadata.id}`); | ||
| this.log(`Region: ${instance.spec.region}`); | ||
| this.log(`State: ${instance.status.state}`); | ||
| if (instance.status.sandbox?.xcode?.url) { | ||
| this.log(`Xcode Sandbox: ${instance.status.sandbox.xcode.url}`); | ||
| (0, config_1.saveInstanceCache)(instance.metadata.id, { | ||
| sandboxXcodeUrl: instance.status.sandbox.xcode.url, | ||
| token: instance.status.token, | ||
| }); | ||
| } | ||
| if (flags.json) { | ||
| this.outputJson(instance); | ||
| } | ||
| if (flags.rm) { | ||
| const cleanup = async () => { | ||
| try { | ||
| await this.client.iosInstances.delete(instance.metadata.id); | ||
| this.log(`${instance.metadata.id} is deleted`); | ||
| } | ||
| catch (e) { | ||
| this.log(`Failed to delete instance: ${e}`); | ||
| } | ||
| }; | ||
| this.log('Instance running. Press Ctrl+C to stop and delete.'); | ||
| await new Promise((resolve) => { | ||
| const keepAlive = setInterval(() => { }, 1 << 30); | ||
| const shutdown = () => { | ||
| clearInterval(keepAlive); | ||
| resolve(); | ||
| }; | ||
| process.on('SIGINT', shutdown); | ||
| process.on('SIGTERM', shutdown); | ||
| }); | ||
| await cleanup(); | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| RunIos.summary = 'Create a new iOS instance'; | ||
| RunIos.description = 'Creates a new iOS simulator instance in the cloud.'; | ||
| RunIos.examples = [ | ||
| '<%= config.bin %> run ios', | ||
| '<%= config.bin %> run ios --rm --model ipad', | ||
| '<%= config.bin %> run ios --region us-west --install-asset my-app.ipa', | ||
| ]; | ||
| RunIos.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| rm: core_1.Flags.boolean({ description: 'Delete instance on exit', default: false }), | ||
| 'display-name': core_1.Flags.string({ description: 'Display name for the instance' }), | ||
| region: core_1.Flags.string({ description: 'Region where the instance will be created' }), | ||
| 'hard-timeout': core_1.Flags.string({ description: 'Hard timeout (e.g. 1m, 10m, 3h). Default: no timeout' }), | ||
| 'inactivity-timeout': core_1.Flags.string({ description: 'Inactivity timeout (e.g. 1m, 10m, 3h). Default: 3m' }), | ||
| label: core_1.Flags.string({ description: 'Labels in key=value format', multiple: true }), | ||
| model: core_1.Flags.string({ | ||
| description: 'Device model (iphone, ipad, watch)', | ||
| options: ['iphone', 'ipad', 'watch'], | ||
| }), | ||
| 'reuse-if-exists': core_1.Flags.boolean({ | ||
| description: 'Reuse existing instance with same labels/region', | ||
| default: false, | ||
| }), | ||
| 'install-asset': core_1.Flags.string({ description: 'Asset name to install', multiple: true }), | ||
| install: core_1.Flags.string({ description: 'Local file to install (auto-uploads if needed)', multiple: true }), | ||
| xcode: core_1.Flags.boolean({ description: 'Enable Xcode sandbox on this iOS instance', default: false }), | ||
| }; | ||
| exports.default = RunIos; | ||
| //# sourceMappingURL=ios.js.map |
| {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../../src/commands/run/ios.ts"],"names":[],"mappings":"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"} |
| import { BaseCommand } from '../../base-command'; | ||
| export default class RunXcode extends BaseCommand { | ||
| static summary: string; | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| rm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'display-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'hard-timeout': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'inactivity-timeout': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| label: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| 'reuse-if-exists': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=xcode.d.ts.map |
| {"version":3,"file":"xcode.d.ts","sourceRoot":"","sources":["../../../src/commands/run/xcode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,OAAO,SAAiC;IAC/C,MAAM,CAAC,WAAW,SAA8D;IAEhF,MAAM,CAAC,QAAQ,WAAwF;IAEvG,MAAM,CAAC,KAAK;;;;;;;;;;MAYV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyD3B"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const core_1 = require("@oclif/core"); | ||
| const base_command_1 = require("../../base-command"); | ||
| const formatting_1 = require("../../lib/formatting"); | ||
| class RunXcode extends base_command_1.BaseCommand { | ||
| async run() { | ||
| const { flags } = await this.parse(RunXcode); | ||
| this.setParsedFlags(flags); | ||
| await this.withAuth(async () => { | ||
| const params = { | ||
| wait: true, | ||
| reuseIfExists: flags['reuse-if-exists'] || undefined, | ||
| spec: {}, | ||
| }; | ||
| if (flags.region) | ||
| params.spec.region = flags.region; | ||
| if (flags['hard-timeout']) | ||
| params.spec.hardTimeout = flags['hard-timeout']; | ||
| if (flags['inactivity-timeout']) | ||
| params.spec.inactivityTimeout = flags['inactivity-timeout']; | ||
| const labels = (0, formatting_1.parseLabels)(flags.label); | ||
| if (flags['display-name'] || labels) { | ||
| params.metadata = {}; | ||
| if (flags['display-name']) | ||
| params.metadata.displayName = flags['display-name']; | ||
| if (labels) | ||
| params.metadata.labels = labels; | ||
| } | ||
| const start = Date.now(); | ||
| const instance = await this.client.xcodeInstances.create(params); | ||
| this.log(`Created a new Xcode instance in ${((Date.now() - start) / 1000).toFixed(1)}s`); | ||
| this.log(`Instance ID: ${instance.metadata.id}`); | ||
| this.log(`Region: ${instance.spec.region}`); | ||
| this.log(`State: ${instance.status.state}`); | ||
| if (flags.json) { | ||
| this.outputJson(instance); | ||
| } | ||
| if (flags.rm) { | ||
| const cleanup = async () => { | ||
| try { | ||
| await this.client.xcodeInstances.delete(instance.metadata.id); | ||
| this.log(`${instance.metadata.id} is deleted`); | ||
| } | ||
| catch (e) { | ||
| this.log(`Failed to delete instance: ${e}`); | ||
| } | ||
| }; | ||
| this.log('Instance running. Press Ctrl+C to stop and delete.'); | ||
| await new Promise((resolve) => { | ||
| const keepAlive = setInterval(() => { }, 1 << 30); | ||
| const shutdown = () => { | ||
| clearInterval(keepAlive); | ||
| resolve(); | ||
| }; | ||
| process.on('SIGINT', shutdown); | ||
| process.on('SIGTERM', shutdown); | ||
| }); | ||
| await cleanup(); | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| RunXcode.summary = 'Create a new Xcode instance'; | ||
| RunXcode.description = 'Creates a new Xcode build sandbox instance in the cloud.'; | ||
| RunXcode.examples = ['<%= config.bin %> run xcode', '<%= config.bin %> run xcode --rm --region us-west']; | ||
| RunXcode.flags = { | ||
| ...base_command_1.BaseCommand.baseFlags, | ||
| rm: core_1.Flags.boolean({ description: 'Delete instance on exit', default: false }), | ||
| 'display-name': core_1.Flags.string({ description: 'Display name for the instance' }), | ||
| region: core_1.Flags.string({ description: 'Region where the instance will be created' }), | ||
| 'hard-timeout': core_1.Flags.string({ description: 'Hard timeout (e.g. 1m, 10m, 3h). Default: no timeout' }), | ||
| 'inactivity-timeout': core_1.Flags.string({ description: 'Inactivity timeout (e.g. 1m, 10m, 3h). Default: 3m' }), | ||
| label: core_1.Flags.string({ description: 'Labels in key=value format', multiple: true }), | ||
| 'reuse-if-exists': core_1.Flags.boolean({ | ||
| description: 'Reuse existing instance with same labels/region', | ||
| default: false, | ||
| }), | ||
| }; | ||
| exports.default = RunXcode; | ||
| //# sourceMappingURL=xcode.js.map |
| {"version":3,"file":"xcode.js","sourceRoot":"","sources":["../../../src/commands/run/xcode.ts"],"names":[],"mappings":"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"} |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
713
0.85%14
-12.5%7
-12.5%315311
-26.18%180
-28.57%3871
-26.82%