"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.askQuit = askQuit; exports.SelectAndroidExperience = exports.SelectIosExperience = exports.SelectPlatform = void 0; function _get() { const data = _interopRequireDefault(require("lodash/get")); _get = function () { return data; }; return data; } function _prompt() { const data = _interopRequireDefault(require("../../prompt")); _prompt = function () { return data; }; return data; } function _log() { const data = _interopRequireDefault(require("../../log")); _log = function () { return data; }; return data; } function androidView() { const data = _interopRequireWildcard(require("./AndroidCredentials")); androidView = function () { return data; }; return data; } function iosPushView() { const data = _interopRequireWildcard(require("./IosPushCredentials")); iosPushView = function () { return data; }; return data; } function iosDistView() { const data = _interopRequireWildcard(require("./IosDistCert")); iosDistView = function () { return data; }; return data; } function iosProvisionigProfileView() { const data = _interopRequireWildcard(require("./IosProvisioningProfile")); iosProvisionigProfileView = function () { return data; }; return data; } function _route() { const data = require("../route"); _route = function () { return data; }; return data; } function _list() { const data = require("../actions/list"); _list = function () { return data; }; return data; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } class SelectPlatform { async open(ctx) { const { platform } = await (0, _prompt().default)([{ type: 'list', name: 'platform', message: 'Select platform', pageSize: Infinity, choices: ['ios', 'android'] }]); const view = platform === 'ios' ? new SelectIosExperience() : new SelectAndroidExperience(); (0, _route().changeMainView)(view); return view; } } exports.SelectPlatform = SelectPlatform; class SelectIosExperience { async open(ctx) { const iosCredentials = await ctx.ios.getAllCredentials(); await (0, _list().displayIosCredentials)(iosCredentials); const projectSpecificActions = ctx.hasProjectContext ? [_prompt().default.separator('---- Current project actions ----'), { value: 'use-existing-push-ios', name: 'Use existing Push Notifications Key in current project' }, { value: 'use-existing-dist-ios', name: 'Use existing Distribution Certificate in current project' }, // { // value: 'current-remove-push-ios', // name: 'Remove Push Notifactions credentials for current project', // }, // { // value: 'current-remove-dist-ios', // name: 'Remove Distribution Certificate for current project', // }, // { // value: 'current-remove-app-ios', // name: 'Remove all credentials for current project', // }, _prompt().default.separator('---- Account level actions ----')] : []; const question = { type: 'list', name: 'action', message: 'What do you want to do?', choices: [...projectSpecificActions, { value: 'remove-provisioning-profile', name: 'Remove Provisioning Profile' }, { value: 'create-ios-push', name: 'Add new Push Notifications Key' }, { value: 'remove-ios-push', name: 'Remove Push Notification credentials' }, { value: 'update-ios-push', name: 'Update Push Notifications Key' }, { value: 'create-ios-dist', name: 'Add new Distribution Certificate' }, { value: 'remove-ios-dist', name: 'Remove Distribution Certificate' }, { value: 'update-ios-dist', name: 'Update Distribution Certificate' }], pageSize: Infinity }; const { action } = await (0, _prompt().default)(question); return this.handleAction(ctx, action); } handleAction(ctx, action) { switch (action) { case 'create-ios-push': return new (iosPushView().CreateIosPush)(); case 'update-ios-push': return new (iosPushView().UpdateIosPush)(); case 'remove-ios-push': return new (iosPushView().RemoveIosPush)(); case 'create-ios-dist': return new (iosDistView().CreateIosDist)(); case 'update-ios-dist': return new (iosDistView().UpdateIosDist)(); case 'remove-ios-dist': return new (iosDistView().RemoveIosDist)(); case 'use-existing-push-ios': return new (iosPushView().UseExistingPushNotification)(); case 'use-existing-dist-ios': return new (iosDistView().UseExistingDistributionCert)(); case 'remove-provisioning-profile': return new (iosProvisionigProfileView().RemoveProvisioningProfile)(); default: throw new Error('Unknown action selected'); } } } exports.SelectIosExperience = SelectIosExperience; class SelectAndroidExperience { constructor() { _defineProperty(this, "androidCredentials", []); _defineProperty(this, "askAboutProjectMode", true); } async open(ctx) { if (ctx.hasProjectContext && this.askAboutProjectMode) { const experienceName = `@${ctx.user.username}/${ctx.manifest.slug}`; const { runProjectContext } = await (0, _prompt().default)([{ type: 'confirm', name: 'runProjectContext', message: `You are currently in a directory with ${experienceName} experience. Do you want to select it?` }]); if (runProjectContext) { const view = new (androidView().ExperienceView)(ctx.manifest.slug, null); (0, _route().changeMainView)(view); return view; } } this.askAboutProjectMode = false; if (this.androidCredentials.length === 0) { this.androidCredentials = (0, _get().default)((await ctx.api.getAsync('credentials/android')), 'credentials'); } await (0, _list().displayAndroidCredentials)(this.androidCredentials); const question = { type: 'list', name: 'appIndex', message: 'Select application', choices: this.androidCredentials.map((cred, index) => ({ name: cred.experienceName, value: index })), pageSize: Infinity }; const { appIndex } = await (0, _prompt().default)(question); const matchName = this.androidCredentials[appIndex].experienceName.match(/@[\w.-]+\/([\w.-]+)/); if (matchName && matchName[1]) { return new (androidView().ExperienceView)(matchName[1], this.androidCredentials[appIndex]); } else { _log().default.error('Invalid experience name'); } return null; } } exports.SelectAndroidExperience = SelectAndroidExperience; async function askQuit(mainpage) { const { selected } = await (0, _prompt().default)([{ type: 'list', name: 'selected', message: 'Do you want to quit Credential Manager', choices: [{ value: 'exit', name: 'Quit Credential Manager' }, { value: 'mainpage', name: 'Go back to experience overview.' }] }]); if (selected === 'exit') { process.exit(0); } return mainpage; } //# sourceMappingURL=../../__sourcemaps__/credentials/views/Select.js.map