npm package diff
Package: @forge/cli
Versions: 10.13.4 - 10.13.5-next.0-experimental-4d5d98e
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,193 @@
+"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 propsOptions = [
+ {
+ names: ['License', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.license],
+ property: 'requiresLicense'
+ },
+ {
+ names: ['Scopes', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.scopes],
+ property: 'scopes'
+ },
+ {
+ names: ['Egress', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.egress],
+ property: 'egresses'
+ },
+ {
+ names: ['Policies', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.policies],
+ property: 'policies'
+ },
+ {
+ names: ['Connect Key', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.connectKeys],
+ property: 'connectKeys'
+ },
+ {
+ names: ['Functions', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.functions],
+ property: 'functions'
+ },
+ {
+ names: ['Modules', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.modules],
+ property: 'modules'
+ },
+ {
+ names: ['Remotes', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.remotes],
+ property: 'remotes'
+ }
+ ];
+ const allOrNot = await this.ui.promptForList(cli_shared_1.Text.version.check.details.prompt.options.banner, [
+ cli_shared_1.Text.version.check.details.prompt.options.choices.all,
+ cli_shared_1.Text.version.check.details.prompt.options.choices.manual
+ ]);
+ if (allOrNot === cli_shared_1.Text.version.check.details.prompt.options.choices.manual) {
+ const choices = await this.ui.promptForTable(cli_shared_1.Text.version.check.details.prompt.properties.banner, cli_shared_1.Text.version.check.details.prompt.properties.info, cli_shared_1.Text.version.check.details.prompt.properties.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) {
+ this.ui.table([
+ ['entry', 'Property'],
+ ['details', 'Details']
+ ], [
+ {
+ entry: 'deployment date',
+ details: cli_shared_1.Text.version.check.details.deploymentDate(details.deploymentDateTime),
+ property: 'deploymentDateTime'
+ },
+ {
+ entry: 'functions',
+ details: cli_shared_1.Text.version.check.details.functions(details.functions || []),
+ property: 'functions'
+ },
+ {
+ entry: 'modules',
+ details: cli_shared_1.Text.version.check.details.modules(details.modules || []),
+ property: 'modules'
+ },
+ {
+ entry: 'license',
+ details: cli_shared_1.Text.version.check.details.license(details.requiresLicense),
+ property: 'requiresLicense'
+ },
+ {
+ entry: 'scopes',
+ details: cli_shared_1.Text.version.check.details.scopes(details.scopes || []),
+ property: 'scopes'
+ },
+ {
+ entry: 'egress',
+ details: cli_shared_1.Text.version.check.details.egress(details.egresses || []),
+ property: 'egresses'
+ },
+ {
+ entry: 'policies',
+ details: cli_shared_1.Text.version.check.details.securityPolicies(details.policies || []),
+ property: 'policies'
+ },
+ {
+ entry: 'connect keys',
+ details: cli_shared_1.Text.version.check.details.connectKeys(details.connectKeys || []),
+ property: 'connectKeys'
+ },
+ {
+ entry: 'remotes',
+ details: cli_shared_1.Text.version.check.details.remotes(details.remotes || []),
+ property: 'remotes'
+ }
+ ]
+ .sort((a, b) => a.entry.localeCompare(b.entry))
+ .filter(({ property }) => Object.keys(details).includes(property)));
+ }
+ 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;