"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