"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _xdl() { const data = require("@expo/xdl"); _xdl = function () { return data; }; return data; } function table() { const data = _interopRequireWildcard(require("../commands/utils/cli-table")); table = 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; } } const HORIZ_CELL_WIDTH_SMALL = 15; const HORIZ_CELL_WIDTH_BIG = 40; const VERSION = 2; var _default = program => { program.command('publish:history [project-dir]').alias('ph').description('View a log of your published releases.').option('-c, --release-channel <channel-name>', 'Filter by release channel. If this flag is not included, the most recent publications will be shown.').option('-count, --count <number-of-logs>', 'Number of logs to view, maximum 100, default 5.', parseInt).option('-p, --platform <ios|android>', 'Filter by platform, android or ios.').option('-r, --raw', 'Produce some raw output.').asyncActionProjectDir(async (projectDir, options) => { if (options.count && (isNaN(options.count) || options.count < 1 || options.count > 100)) { throw new Error('-n must be a number between 1 and 100 inclusive'); } // TODO(ville): handle the API result for not authenticated user instead of checking upfront await _xdl().UserManager.ensureLoggedInAsync(); // TODO(ville): move request from multipart/form-data to JSON once supported by the endpoint. let formData = new (_xdl().FormData)(); formData.append('queryType', 'history'); let { exp } = await _xdl().ProjectUtils.readConfigJsonAsync(projectDir); if (exp.owner) { formData.append('owner', exp.owner); } formData.append('slug', (await _xdl().Project.getSlugAsync(projectDir, options))); formData.append('version', VERSION); if (options.releaseChannel) { formData.append('releaseChannel', options.releaseChannel); } if (options.count) { formData.append('count', options.count); } if (options.platform) { formData.append('platform', options.platform); } let result = await _xdl().Api.callMethodAsync('publishInfo', [], 'post', null, { formData }); if (options.raw) { console.log(JSON.stringify(result)); return; } if (result.queryResult && result.queryResult.length > 0) { // Print general publication info let sampleItem = result.queryResult[0]; // get a sample item let generalTableString = table().printTableJson({ fullName: sampleItem.fullName }, 'General Info'); console.log(generalTableString); // Print info specific to each publication let headers = ['publishedTime', 'appVersion', 'sdkVersion', 'platform', 'channel', 'channelId', 'publicationId']; // colWidths contains the cell size of each header let colWidths = []; let bigCells = new Set(['publicationId', 'channelId', 'publishedTime']); headers.forEach(header => { if (bigCells.has(header)) { colWidths.push(HORIZ_CELL_WIDTH_BIG); } else { colWidths.push(HORIZ_CELL_WIDTH_SMALL); } }); let tableString = table().printTableJsonArray(headers, result.queryResult, colWidths); console.log(tableString); } else { throw new Error('No records found matching your query.'); } }); program.command('publish:details [project-dir]').alias('pd').description('View the details of a published release.').option('--publish-id <publish-id>', 'Publication id. (Required)').option('-r, --raw', 'Produce some raw output.').asyncActionProjectDir(async (projectDir, options) => { if (!options.publishId) { throw new Error('publishId must be specified.'); } // TODO(ville): handle the API result for not authenticated user instead of checking upfront await _xdl().UserManager.ensureLoggedInAsync(); let formData = new (_xdl().FormData)(); formData.append('queryType', 'details'); let { exp } = await _xdl().ProjectUtils.readConfigJsonAsync(projectDir); if (exp.owner) { formData.append('owner', exp.owner); } formData.append('publishId', options.publishId); formData.append('slug', (await _xdl().Project.getSlugAsync(projectDir, options))); let result = await _xdl().Api.callMethodAsync('publishInfo', null, 'post', null, { formData }); if (options.raw) { console.log(JSON.stringify(result)); return; } if (result.queryResult) { let queryResult = result.queryResult; let manifest = queryResult.manifest; delete queryResult.manifest; // Print general release info let generalTableString = table().printTableJson(queryResult, 'Release Description'); console.log(generalTableString); // Print manifest info let manifestTableString = table().printTableJson(manifest, 'Manifest Details'); console.log(manifestTableString); } else { throw new Error('No records found matching your query.'); } }); }; exports.default = _default; //# sourceMappingURL=../__sourcemaps__/commands/publish-info.js.map