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;