npm package diff
Package: @forge/cli
Versions: 10.13.6 - 11.0.0-next.18
File: package/out/command-line/view/version-view.js
Index: package/out/command-line/view/version-view.js
===================================================================
--- package/out/command-line/view/version-view.js
+++ package/out/command-line/view/version-view.js
@@ -0,0 +1,198 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VersionView = void 0;
+const tslib_1 = require("tslib");
+const cli_shared_1 = require("@forge/cli-shared");
+const chalk_1 = tslib_1.__importDefault(require("chalk"));
+class VersionView {
+ ui;
+ constructor(ui) {
+ this.ui = ui;
+ }
+ async displayDetailsProgress(progress) {
+ return this.ui.displayProgress(progress, cli_shared_1.Text.version.check.start, cli_shared_1.Text.version.check.end);
+ }
+ async displayDiffProgress(progress) {
+ return this.ui.displayProgress(progress, cli_shared_1.Text.version.diff.start, cli_shared_1.Text.version.diff.end);
+ }
+ async displayListProgress(progress) {
+ return this.ui.displayProgress(progress, cli_shared_1.Text.version.list.start, cli_shared_1.Text.version.list.end);
+ }
+ async promptVersionDetailsProperties() {
+ const { options, properties: { descriptions, banner, info, headers } } = cli_shared_1.Text.version.check.details.prompt;
+ const propsOptions = [
+ {
+ names: ['License', descriptions.license],
+ property: 'requiresLicense'
+ },
+ {
+ names: ['Scopes', descriptions.scopes],
+ property: 'scopes'
+ },
+ {
+ names: ['Egress', descriptions.egress],
+ property: 'egresses'
+ },
+ {
+ names: ['Policies', descriptions.policies],
+ property: 'policies'
+ },
+ {
+ names: ['Connect Key', descriptions.connectKeys],
+ property: 'connectKeys'
+ },
+ {
+ names: ['Functions', descriptions.functions],
+ property: 'functions'
+ },
+ {
+ names: ['Modules', descriptions.modules],
+ property: 'modules'
+ },
+ {
+ names: ['Remotes', descriptions.remotes],
+ property: 'remotes'
+ }
+ ];
+ const allOrNot = await this.ui.promptForList(options.banner, [options.choices.all, options.choices.manual]);
+ if (allOrNot === options.choices.manual) {
+ const choices = await this.ui.promptForTable(banner, info, headers, propsOptions);
+ return choices.map((index) => propsOptions[index].property);
+ }
+ return [];
+ }
+ displayVersionDetailsBanner(appVersion, envKey, envType) {
+ this.ui.emptyLine();
+ this.ui.info(cli_shared_1.Text.version.check.details.banner(envKey, envType, appVersion));
+ this.ui.emptyLine();
+ }
+ displayDetailsAsTable(details) {
+ const tableData = [
+ {
+ entry: 'deployment date',
+ detailsFn: cli_shared_1.Text.version.check.details.deploymentDate,
+ property: 'deploymentDateTime'
+ },
+ {
+ entry: 'functions',
+ detailsFn: cli_shared_1.Text.version.check.details.functions,
+ property: 'functions'
+ },
+ {
+ entry: 'modules',
+ detailsFn: cli_shared_1.Text.version.check.details.modules,
+ property: 'modules'
+ },
+ {
+ entry: 'license',
+ detailsFn: cli_shared_1.Text.version.check.details.license,
+ property: 'requiresLicense'
+ },
+ {
+ entry: 'scopes',
+ detailsFn: cli_shared_1.Text.version.check.details.scopes,
+ property: 'scopes'
+ },
+ {
+ entry: 'egress',
+ detailsFn: cli_shared_1.Text.version.check.details.egress,
+ property: 'egresses'
+ },
+ {
+ entry: 'policies',
+ detailsFn: cli_shared_1.Text.version.check.details.securityPolicies,
+ property: 'policies'
+ },
+ {
+ entry: 'connect keys',
+ detailsFn: cli_shared_1.Text.version.check.details.connectKeys,
+ property: 'connectKeys'
+ },
+ {
+ entry: 'remotes',
+ detailsFn: cli_shared_1.Text.version.check.details.remotes,
+ property: 'remotes'
+ }
+ ];
+ const filteredData = [...tableData]
+ .sort((a, b) => a.entry.localeCompare(b.entry))
+ .filter(({ property }) => details[property] !== undefined)
+ .map(({ entry, detailsFn, property }) => ({
+ entry,
+ details: detailsFn(details[property]),
+ property
+ }));
+ this.ui.table([
+ ['entry', 'Property'],
+ ['details', 'Details']
+ ], filteredData);
+ }
+ displayDataInJson(data) {
+ this.ui.info(JSON.stringify(data, null, 2));
+ }
+ displayDiffBanner(version1, version2, envKey, envType) {
+ this.ui.emptyLine();
+ this.ui.info(cli_shared_1.Text.version.diff.details.banner(envKey, envType, version1, version2));
+ this.ui.emptyLine();
+ }
+ displayDiffAsTable(versions, input) {
+ this.ui.table([
+ ['entry', 'Property'],
+ ['v1', `Version 1 [${versions.v1}]`],
+ ['v2', `Version 2 [${versions.v2}]`]
+ ], input
+ .filter(({ diff }) => diff.filter((change) => change.added || change.removed).length > 0)
+ .map(({ key, diff }) => ({
+ entry: key,
+ v1: diff
+ .filter((change) => !change.added)
+ .map((change) => {
+ if (!change.removed) {
+ return chalk_1.default.gray(change.value);
+ }
+ return change.value;
+ })
+ .join(''),
+ v2: diff
+ .filter((change) => !change.removed)
+ .map((change) => {
+ if (!change.added) {
+ return chalk_1.default.gray(change.value);
+ }
+ return change.value;
+ })
+ .join('')
+ }))
+ .sort((a, b) => a.entry.localeCompare(b.entry)));
+ }
+ displayListBanner(versions, envKey, envType) {
+ this.ui.emptyLine();
+ this.ui.info(cli_shared_1.Text.version.list.details.banner(envKey, envType, versions));
+ this.ui.emptyLine();
+ }
+ displayWriteToFile(outFile) {
+ this.ui.info(cli_shared_1.Text.version.check.details.writeToFile(outFile));
+ }
+ displayVersionList(data) {
+ this.ui.table([
+ ['version', 'Major Versions'],
+ ['deploymentDate', 'Deployment Date'],
+ ['egresses', 'Egress'],
+ ['policies', 'Policies'],
+ ['scopes', 'Scopes'],
+ ['connectKeys', 'Connect keys'],
+ ['functions', 'Functions'],
+ ['remotes', 'Remotes'],
+ ['modules', 'Modules'],
+ ['requiresLicense', 'License']
+ ], data.map(({ version, egresses, modules, policies, deploymentDateTime, ...rest }) => ({
+ ...rest,
+ version: version.toString(),
+ deploymentDate: cli_shared_1.Text.version.list.details.deploymentDate(deploymentDateTime),
+ egresses: cli_shared_1.Text.version.list.details.egresses(egresses),
+ policies: cli_shared_1.Text.version.list.details.policies(policies),
+ modules: cli_shared_1.Text.version.list.details.modules(modules)
+ })));
+ }
+}
+exports.VersionView = VersionView;