@forge/cli

12.23.0-next.7-experimental-44b7a1213.0.0-next.11
out/command-line/controller/module-controller.js
out/command-line/controller/module-controller.jsDeleted
−165
Index: package/out/command-line/controller/module-controller.js
===================================================================
--- package/out/command-line/controller/module-controller.js
+++ package/out/command-line/controller/module-controller.js
@@ -1,165 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.ModuleController = void 0;
-const tslib_1 = require("tslib");
-const path_1 = tslib_1.__importDefault(require("path"));
-const dependencies_merger_1 = require("../../module-add/dependencies-merger");
-const cli_shared_1 = require("@forge/cli-shared");
-const register_app_commands_1 = require("../register-app-commands");
-const MODULE_PRODUCTS = [
-    register_app_commands_1.TemplateContext.JIRA,
-    register_app_commands_1.TemplateContext.JIRA_SERVICE_MANAGEMENT,
-    register_app_commands_1.TemplateContext.CONFLUENCE
-];
-class ModuleController {
-    moduleView;
-    moduleService;
-    fileService;
-    constructor(moduleView, moduleService, fileService) {
-        this.moduleView = moduleView;
-        this.moduleService = moduleService;
-        this.fileService = fileService;
-    }
-    async run(options) {
-        try {
-            await this.runModuleAdd(options);
-        }
-        finally {
-            this.moduleService.cleanup();
-        }
-    }
-    async runModuleAdd(options) {
-        const selectedTemplate = options.moduleType
-            ? await this.resolveTemplateByModuleType(options.moduleType)
-            : await this.resolveSelectedTemplate(await this.resolveProduct(options));
-        const uiType = options.uiType ?? (await this.resolveUIFramework(selectedTemplate));
-        const downloadedTemplate = await this.moduleService.prepareModuleMetadata(selectedTemplate, uiType);
-        if (!downloadedTemplate) {
-            throw new Error(cli_shared_1.Text.module.add.errorFailedToDownloadTemplate(selectedTemplate.moduleKey));
-        }
-        const depChanges = this.fileService.checkDependencies(downloadedTemplate, options.force === true);
-        const hasConflicts = depChanges.conflicts.length > 0;
-        this.assertNotBlockedByConflicts(depChanges, hasConflicts, './package.json', options);
-        const variables = await this.collectVariables(downloadedTemplate, uiType);
-        const frontendPlan = (0, dependencies_merger_1.planFrontendPackageJson)(process.cwd(), downloadedTemplate, variables, options.force === true);
-        const frontendHasConflicts = frontendPlan.depChanges.conflicts.length > 0;
-        const frontendScope = frontendPlan.frontendPackageJsonPath
-            ? path_1.default.relative(process.cwd(), frontendPlan.frontendPackageJsonPath)
-            : 'frontend package.json';
-        this.assertNotBlockedByConflicts(frontendPlan.depChanges, frontendHasConflicts, frontendScope, options);
-        if (!options.dryRun) {
-            await this.moduleService.downloadModuleBundle(downloadedTemplate, uiType);
-        }
-        const result = await this.fileService.templateMerge(downloadedTemplate, variables, {
-            dryRun: options.dryRun,
-            force: options.force,
-            install: options.install
-        });
-        this.renderRunResult(result, depChanges, hasConflicts, options);
-    }
-    async resolveProduct(options) {
-        const product = options.product ?? (await this.moduleView.promptForList(cli_shared_1.Text.module.add.promptSelectProduct, MODULE_PRODUCTS));
-        if (!MODULE_PRODUCTS.includes(product)) {
-            throw new Error(cli_shared_1.Text.module.add.errorInvalidProduct(product));
-        }
-        return product;
-    }
-    async resolveTemplateByModuleType(moduleType) {
-        for (const product of MODULE_PRODUCTS) {
-            const moduleMap = await this.moduleService.getAvailableModules(product);
-            const template = moduleMap.get(moduleType);
-            if (template) {
-                return template;
-            }
-        }
-        throw new Error(cli_shared_1.Text.module.add.errorFailedToResolveChoice(moduleType));
-    }
-    async resolveSelectedTemplate(product) {
-        const moduleMap = await this.moduleService.getAvailableModules(product);
-        const moduleChoiceMap = this.moduleService.getModuleChoice(moduleMap);
-        const selectedChoice = await this.moduleView.promptForList(cli_shared_1.Text.module.add.promptSelectModule, Array.from(moduleChoiceMap.keys()));
-        const template = moduleChoiceMap.get(selectedChoice);
-        if (!template) {
-            throw new Error(cli_shared_1.Text.module.add.errorFailedToResolveChoice(selectedChoice));
-        }
-        return template;
-    }
-    assertNotBlockedByConflicts(depChanges, hasConflicts, scope, options) {
-        const blocked = hasConflicts && options.force !== true && options.install !== false;
-        if (blocked && !options.dryRun) {
-            this.moduleView.renderDepConflictsBlocked(depChanges, scope);
-            throw new Error(cli_shared_1.Text.module.add.depConflictsSummary(depChanges.conflicts.length));
-        }
-    }
-    renderRunResult(result, depChanges, hasConflicts, options) {
-        if (options.dryRun) {
-            this.moduleView.renderApplyResult(result, depChanges);
-        }
-        if (hasConflicts) {
-            this.renderConflicts(depChanges, './package.json', options);
-        }
-        if (result.frontendDepChanges && result.frontendPackageJsonPath) {
-            const frontendScope = path_1.default.relative(process.cwd(), result.frontendPackageJsonPath);
-            this.renderConflicts(result.frontendDepChanges, frontendScope, options);
-        }
-        for (const w of result.warnings) {
-            this.moduleView.warn(w);
-        }
-        this.moduleView.emptyLine();
-    }
-    renderConflicts(changes, scope, options) {
-        if (options.dryRun && options.force !== true && options.install !== false) {
-            this.moduleView.renderDepConflictsBlocked(changes, scope);
-        }
-        else {
-            this.moduleView.renderDepConflictsResolved(changes, scope);
-        }
-    }
-    async resolveUIFramework(template) {
-        if (!template.variants) {
-            return undefined;
-        }
-        const variants = Object.keys(template.variants);
-        if (variants.length > 1) {
-            return this.moduleView.promptForList(cli_shared_1.Text.module.add.promptSelectUIFramework, variants);
-        }
-        if (variants.length === 1) {
-            return variants[0];
-        }
-        return undefined;
-    }
-    async collectVariables(template, uiFramework) {
-        const variables = {};
-        const variableDefs = this.moduleService.getVariableDefinitions(template, uiFramework);
-        if (variableDefs.length === 0) {
-            return variables;
-        }
-        const { manifestPath, existingKeys } = this.moduleService.loadManifestContext();
-        const fragmentContent = template.cacheDir ? this.moduleService.readManifestFragment(template.cacheDir) : undefined;
-        for (const varDef of variableDefs) {
-            variables[varDef.name] = await this.promptForVariable(varDef, variables, existingKeys, template.moduleKey, fragmentContent, manifestPath);
-        }
-        return variables;
-    }
-    async promptForVariable(varDef, variables, existingKeys, moduleKey, fragmentContent, manifestPath) {
-        while (true) {
-            const effectiveDefault = this.moduleService.computeEffectiveDefault(varDef, variables);
-            const raw = await this.moduleView.promptForText(varDef.prompt, effectiveDefault);
-            const trimmed = (raw ?? '').trim();
-            const value = trimmed !== '' ? trimmed : effectiveDefault || '';
-            const errors = await this.moduleService.validateCandidateValue(varDef, value, existingKeys, moduleKey, fragmentContent, variables, manifestPath);
-            if (errors.length > 0) {
-                for (const err of errors) {
-                    this.moduleView.warn(err);
-                }
-                continue;
-            }
-            if (varDef.name === 'resourceKey' && existingKeys.resourceKeys.has(value)) {
-                this.moduleView.info(cli_shared_1.Text.module.add.infoReusingResource(value));
-            }
-            return value;
-        }
-    }
-}
-exports.ModuleController = ModuleController;
-//# sourceMappingURL=module-controller.js.map
\ No newline at end of file