UNPKG

@sap/generator-fiori

Version:

Create an SAPUI5 application using SAP Fiori elements or a freestyle approach

1 lines 25.3 kB
"use strict";exports.id=80,exports.ids=[80],exports.modules={76972:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.getAppConfig=r.getAbapDeployConfig=void 0;const i=a(74174),n=a(69884),s=a(33242),p=a(52052),l=a(18157),d=a(93078),c=o(a(50774)),m=a(20787),u=a(16928),f=a(97133);r.getAbapDeployConfig=(e,r)=>({target:{url:d.PromptState.baseURL,client:d.PromptState.sapClient,destination:e.repoName},app:{name:r.deploymentDetails.repositoryName,package:r.metadata.package,description:r.deploymentDetails.repositoryDescription,transport:"REPLACE_WITH_TRANSPORT"}});r.getAppConfig=async function getAppConfig(e,r,a,o){try{const g=(0,p.readManifest)((0,u.join)(r,m.FileName.Manifest),o),h=d.PromptState.systemSelection?.connectedSystem?.serviceProvider;g?.["sap.app"]?.dataSources||c.default.logger?.error((0,s.t)("error.dataSourcesNotFound"));const v="4.0"===g?.["sap.app"]?.dataSources?.mainService?.settings?.odataVersion?n.OdataVersion.v4:n.OdataVersion.v2,y=await(async(e,r)=>{try{const a=await e.service(r).metadata();return c.default.logger?.debug("Metadata fetched successfully"),a}catch(e){c.default.logger?.error((0,s.t)("error.metadataFetchError",{error:e.message}))}})(h,g?.["sap.app"]?.dataSources?.mainService.uri??""),w=(await(0,f.getUI5Versions)({onlyNpmVersion:!0}))[0]?.version;return{app:{id:e.appId,title:e.title,description:e.description,sourceTemplate:{id:l.fioriAppSourcetemplateId},projectType:"EDMXBackend",flpAppId:`${e.appId.replace(/[-_.#]/g,"")}-tile`},package:{name:e.appId,description:e.description,devDependencies:{},scripts:{},version:g?.["sap.app"]?.applicationVersion?.version??"0.0.1"},template:{type:i.TemplateType.ListReportObjectPage,settings:{entityConfig:{mainEntityName:a.serviceBindingDetails.mainEntityName}}},service:{path:g?.["sap.app"]?.dataSources?.mainService.uri,version:v,metadata:y,url:h.defaults.baseURL},appOptions:{addAnnotations:v===n.OdataVersion.v4,addTests:!0},ui5:{localVersion:w}}}catch(e){throw c.default.logger?.error((0,s.t)("error.appConfigGenError",{error:e.message})),e}}},36102:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.PromptNames=void 0;const i=o(a(91170)),n=o(a(50774)),s=a(73667),p=a(98434),l=a(18157),d=a(33242),c=a(93394),m=a(19131),u=a(58012),f=a(421),g=a(74174),h=a(16928),v=a(70857),y=a(48962),w=a(97133),P=a(15669),S=a(75199),A=a(69884),N=a(69342),_=a(99214),F=a(93078),E=a(15227);Object.defineProperty(r,"PromptNames",{enumerable:!0,get:function(){return E.PromptNames}});const b=a(76972),I=a(52052),D=a(24342),M=a(40258),C=a(8433),j=a(20787);class default_1 extends i.default{appWizard;vscode;appRootPath;prompts;answers=l.defaultAnswers;options;projectPath;extractedProjectPath;debugOptions;setPromptsCallback;constructor(e,r){super(e,r),this.appWizard=r.appWizard??s.AppWizard.create(r),this.vscode=r.vscode,this.appRootPath=r?.appRootPath??(0,u.getDefaultTargetFolder)(this.vscode)??this.destinationRoot(),this.options=r,n.default.configureLogging(this.rootGeneratorName(),this.log,this.options.logWrapper,this.options.logLevel,this.options.logger,this.vscode),this.appWizard.setHeaderTitle(l.generatorTitle),this.prompts=new s.Prompts((0,M.getYUIDetails)()),this.setPromptsCallback=e=>{this.prompts&&this.prompts.setCallback(e)}}async initializing(){this.env.conflicter&&(this.env.conflicter.force=this.options.force??!0),await u.TelemetryHelper.initTelemetrySettings({consumerModule:{name:l.generatorName,version:this.rootGeneratorVersion()},internalFeature:(0,p.isInternalFeaturesSettingEnabled)(),watchTelemetrySettingStore:!1})}async prompting(){const e=this.options?.data?.quickDeployedAppConfig,r=await(0,f.getPrompts)(this.appRootPath,e,this.appWizard,(0,u.isCli)()),a=await this.prompt(r),{targetFolder:o}=a;e?.appId?(this.answers.targetFolder=o,this.answers.systemSelection=F.PromptState.systemSelection,this.answers.selectedApp=a.selectedApp):Object.assign(this.answers,a),(0,C.isValidPromptState)(this.answers.targetFolder,this.answers.selectedApp.appId)&&(this.projectPath=(0,h.join)(this.answers.targetFolder,this.answers.selectedApp.appId),this.extractedProjectPath=(0,h.join)(this.projectPath,l.extractedFilePath))}async writing(){await(0,c.extractZip)(this.extractedProjectPath,this.fs);const e=(0,h.join)(this.extractedProjectPath,l.qfaJsonFileName),r=(0,I.makeValidJson)(e,this.fs);(0,C.validateQfaJsonFile)(r);const a=await(0,b.getAppConfig)(this.answers.selectedApp,this.extractedProjectPath,r,this.fs);await(0,g.generate)(this.projectPath,a,this.fs);const o=(0,b.getAbapDeployConfig)(this.answers.selectedApp,r);if(await(0,_.generate)(this.projectPath,o,void 0,this.fs),this.vscode){const e=this._getLaunchConfig(a);await(0,P.createLaunchConfig)(this.projectPath,e,this.fs,n.default.logger),(0,N.writeApplicationInfoSettings)(this.projectPath)}const i=this._getReadMeConfig(a);(0,u.generateAppGenInfo)(this.projectPath,i,this.fs),await(0,D.replaceWebappFiles)(this.projectPath,this.extractedProjectPath,this.fs),await(0,D.validateAndUpdateManifestUI5Version)((0,h.join)(this.projectPath,j.DirName.Webapp,j.FileName.Manifest),this.fs),this.fs.delete(this.extractedProjectPath)}_getReadMeConfig(e){return{appName:e.app.id,appTitle:e.app.title??"",appNamespace:e.app.id.substring(0,e.app.id.lastIndexOf(".")),appDescription:(0,d.t)("readMe.appDescription"),ui5Theme:(0,w.getDefaultUI5Theme)(e.ui5?.version),generatorName:l.generatorName,generatorVersion:this.rootGeneratorVersion(),ui5Version:e.ui5?.version??"",template:g.TemplateType.ListReportObjectPage,serviceUrl:e.service.url,launchText:(0,d.t)("readMe.launchText")}}_getLaunchConfig(e){const r={vscode:this.vscode,addStartCmd:!0,sapClientParam:F.PromptState.sapClient,flpAppId:e.app.flpAppId??e.app.id,flpSandboxAvailable:!0,isAppStudio:(0,S.isAppStudio)(),odataVersion:e.service.version===A.OdataVersion.v2?"2.0":"4.0"};this.debugOptions=r;return{name:e.app.id,projectRoot:this.projectPath,enableVSCodeReload:!1,debugOptions:r}}async install(){if(this.options.skipInstall)n.default.logger?.info((0,d.t)("info.installationErrors.skippedInstallation"));else try{n.default.logger?.debug("Running npm install..."),await this._runNpmInstall(this.projectPath),n.default.logger?.debug("npm install completed successfully.")}catch(e){n.default.logger?.error((0,d.t)("error.installationErrors.npmInstall",{error:e}))}}async _runNpmInstall(e){const r="win32"===(0,v.platform)()?"npm.cmd":"npm";await this.spawnCommand(r,["install","--no-audit","--no-fund","--silent","--prefer-offline","--no-progress"],{cwd:e})}async _handlePostAppGeneration(){if(this.vscode){const e=this.projectPath,{workspaceFolderUri:r}=(0,P.handleWorkspaceConfig)(e,this.debugOptions),a=r?{uri:r,projectName:(0,h.basename)(e),vscode:this.debugOptions.vscode}:void 0;(0,P.updateWorkspaceFoldersIfNeeded)(a)}this.options.data?.postGenCommand&&await(0,y.runPostAppGenHook)({path:this.projectPath,vscodeInstance:this.vscode,postGenCommand:this.options.data?.postGenCommand})}async end(){try{this.appWizard.showInformation((0,d.t)("info.repoAppDownloadCompleteMsg"),s.MessageType.notification),await this._handlePostAppGeneration(),await(0,u.sendTelemetry)(m.EventName.GENERATION_SUCCESS,u.TelemetryHelper.createTelemetryData({appType:"repo-app-import-sub-generator",...this.options.telemetryData})??{}).catch((e=>{n.default.logger?.error((0,d.t)("error.telemetry",{error:e.message}))}))}catch(e){n.default.logger?.error((0,d.t)("error.endPhase",{error:e.message}))}}}r.default=default_1},15227:(e,r)=>{var a;Object.defineProperty(r,"__esModule",{value:!0}),r.PromptNames=void 0,function(e){e.selectedApp="selectedApp",e.systemSelection="systemSelection",e.targetFolder="targetFolder"}(a||(r.PromptNames=a={}))},40258:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.fetchAppListForSelectedSystem=r.formatAppChoices=r.extractAppData=r.getYUIDetails=void 0;const i=a(18157),n=a(93078),s=a(33242),p=o(a(50774));r.getYUIDetails=function getYUIDetails(){return[{name:i.generatorTitle,description:i.generatorDescription}]};r.extractAppData=e=>{const r=e["sap.app/id"];return{name:r,value:{appId:r,title:e["sap.app/title"],description:e["sap.app/description"]??"",repoName:e.repoName,url:e.url}}};r.formatAppChoices=e=>e.filter((e=>{p.default.logger?.debug(`formatAppChoices: ${JSON.stringify(e)}`);const r=e["sap.app/id"]&&e.repoName&&e.url&&Object.prototype.hasOwnProperty.call(e,"sap.app/title");return r||p.default.logger?.warn((0,s.t)("warn.requiredFieldsMissing",{app:e["sap.app/id"]})),r})).map((e=>(0,r.extractAppData)(e))),r.fetchAppListForSelectedSystem=async function fetchAppListForSelectedSystem(e,r){return e?(n.PromptState.systemSelection={connectedSystem:{serviceProvider:e}},await async function getAppList(e,r){try{const a=r?{...i.appListSearchParams,"sap.app/id":r}:i.appListSearchParams;return await e.getAppIndex().search(a,i.appListResultFields)}catch(e){return p.default.logger?.error((0,s.t)("error.applicationListFetchError",{error:e.message})),p.default.logger?.debug((0,s.t)("error.applicationListFetchError",{error:JSON.stringify(e)})),[]}}(e,r)):[]}},93078:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.PromptState=void 0;const i=o(a(35817));class PromptState{static _systemSelection={};static _admZipInstance;static get systemSelection(){return this._systemSelection}static set systemSelection(e){this._systemSelection=e}static set admZip(e){this._admZipInstance=new i.default(e)}static get admZip(){return this._admZipInstance}static get baseURL(){return this._systemSelection.connectedSystem?.serviceProvider?.defaults?.baseURL}static get sapClient(){return this._systemSelection.connectedSystem?.serviceProvider?.defaults?.params?.["sap-client"]}static reset(){PromptState.systemSelection={},PromptState._admZipInstance=void 0}}r.PromptState=PromptState},421:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.getPrompts=void 0;const i=a(69884),n=a(15227),s=a(33242),p=a(57848),l=a(93078),d=a(40258),c=a(8433),m=o(a(50774));r.getPrompts=async function getPrompts(e,r,a,o=!1){try{l.PromptState.reset();const u=await(0,i.getSystemSelectionQuestions)({serviceSelection:{hide:!0,useAutoComplete:o},systemSelection:{defaultChoice:r?.serviceProviderInfo?.name}},!o);let f=[];const g=[{when:async e=>(e[n.PromptNames.systemSelection]&&u.answers.connectedSystem?.serviceProvider&&(f=await(0,d.fetchAppListForSelectedSystem)(u.answers.connectedSystem?.serviceProvider,r?.appId)),!!u.answers.connectedSystem?.serviceProvider),type:"list",name:n.PromptNames.selectedApp,default:()=>r?.appId?0:void 0,guiOptions:{mandatory:!!f.length,breadcrumb:(0,s.t)("prompts.appSelection.breadcrumb"),applyDefaultWhenDirty:!0},message:(0,s.t)("prompts.appSelection.message"),choices:()=>f.length?(0,d.formatAppChoices)(f):[],validate:async e=>!!await(0,c.validateAppSelection)(e,f,r,a)}];o&&g?.push((async(e,r,a)=>({when:async o=>{if(o?.[n.PromptNames.selectedApp])try{await(0,c.validateAppSelection)(o[n.PromptNames.selectedApp],e,r,a)}catch(e){e instanceof Error?m.default.logger?.error(e.message):m.default.logger?.error((0,s.t)("error.appDownloadErrors.validationError",{error:e}))}return!1},name:`${n.PromptNames.selectedApp}-validation`}))(f,r,a));const h=((e,r)=>({type:"input",name:n.PromptNames.targetFolder,message:(0,s.t)("prompts.targetPath.message"),guiType:"folder-browser",when:e=>!!r||Boolean(e?.selectedApp?.appId),guiOptions:{applyDefaultWhenDirty:!0,mandatory:!0,breadcrumb:(0,s.t)("prompts.targetPath.breadcrumb")},validate:async(e,a)=>{const o=a.selectedApp?.appId??r;return await(0,p.validateFioriAppTargetFolder)(e,o,!0)},default:()=>e}))(e,r?.appId);return[...u.prompts,...g,h]}catch(e){throw new Error(`Failed to generate prompts: ${e.message}`)}}},19131:(e,r)=>{var a;Object.defineProperty(r,"__esModule",{value:!0}),r.EventName=void 0,function(e){e.GENERATION_SUCCESS="GENERATION_SUCCESS"}(a||(r.EventName=a={}))},18157:(e,r,a)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.appListResultFields=r.appListSearchParams=r.extractedFilePath=r.defaultAnswers=r.qfaJsonFileName=r.fioriAppSourcetemplateId=r.adtSourceTemplateId=r.generatorName=r.generatorDescription=r.generatorTitle=void 0;const o=a(15227);r.generatorTitle="Download ADT deployed app from UI5 ABAP repository",r.generatorDescription="Download an application that was generated with the ADT Quick Fiori Application generator",r.generatorName="@sap-ux/repo-app-import-sub-generator",r.adtSourceTemplateId="@sap.adt.sevicebinding.deploy:lrop",r.fioriAppSourcetemplateId="@sap/generator-fiori:lrop",r.qfaJsonFileName="qfa.json",r.defaultAnswers={[o.PromptNames.systemSelection]:{},[o.PromptNames.selectedApp]:{appId:"",title:"",description:"",repoName:"",url:""},[o.PromptNames.targetFolder]:""},r.extractedFilePath="extractedFiles",r.appListSearchParams={"sap.app/sourceTemplate/id":r.adtSourceTemplateId},r.appListResultFields=["sap.app/id","sap.app/title","sap.app/description","sap.app/sourceTemplate/id","repoName","fileType","url"]},93394:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.downloadApp=r.extractZip=r.hasQfaJson=void 0;const i=a(16928),n=a(93078),s=a(33242),p=o(a(50774)),l=a(18157);r.hasQfaJson=function hasQfaJson(){const e=n.PromptState.admZip?.getEntries().filter((e=>e.entryName===l.qfaJsonFileName));return 1===e?.length},r.extractZip=async function extractZip(e,r){try{n.PromptState.admZip?.getEntries().forEach((function(a){if(!a.isDirectory){const o=a.getData().toString("utf8"),n=(0,i.join)(e,a.entryName);p.default.logger?.debug(`extractZip: Extracting file: "${n}" with contents: "${o}" .`),r.write((0,i.join)(e,a.entryName),o)}}))}catch(e){p.default.logger?.error((0,s.t)("error.appDownloadErrors.zipExtractionError",{error:e.message}))}},r.downloadApp=async function downloadApp(e){const r=n.PromptState.systemSelection?.connectedSystem?.serviceProvider,a=await r.getUi5AbapRepository();a.log=p.default.logger,p.default.logger?.debug(`App download started: ${e}`);const o=await a.downloadFiles(e);p.default.logger?.debug(`App download completed: ${e}`),n.PromptState.admZip=o}},48962:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.runPostAppGenHook=void 0;const i=o(a(50774)),n=a(33242);r.runPostAppGenHook=async function runPostAppGenHook(e){try{e.vscodeInstance||i.default.logger?.error((0,n.t)("error.eventHookErrors.vscodeInstanceMissing")),e.postGenCommand&&""!==e.postGenCommand.trim()||i.default.logger?.error((0,n.t)("error.eventHookErrors.postGenCommandMissing")),await(e.vscodeInstance?.commands?.executeCommand?.(e.postGenCommand,{fsPath:e.path}))}catch(e){i.default.logger?.error((0,n.t)("error.eventHookErrors.commandExecutionFailed",e.message))}}},52052:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.readManifest=r.makeValidJson=void 0;const i=a(18157),n=a(33242),s=o(a(50774));r.makeValidJson=function makeValidJson(e,r){try{const a=r.read(e);return JSON.parse(a)}catch(e){throw new Error((0,n.t)("error.errorProcessingJsonFile",{error:e}))}},r.readManifest=function readManifest(e,r){r.exists(e)||s.default.logger?.error((0,n.t)("error.readManifestErrors.manifestFileNotFound"));const a=r.readJSON(e);return a||s.default.logger?.error((0,n.t)("error.readManifestErrors.readManifestFailed")),a?.["sap.app"]||s.default.logger?.error((0,n.t)("error.readManifestErrors.sapAppNotDefined")),a?.["sap.app"]?.sourceTemplate?.id!==i.adtSourceTemplateId&&s.default.logger?.error((0,n.t)("error.readManifestErrors.sourceTemplateNotSupported")),a}},33242:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.t=r.initI18n=void 0;const i=o(a(95293)),n=o(a(69083)),s="repo-app-import-sub-generator";async function initI18n(){await i.default.init({lng:"en",fallbackLng:"en"},(()=>i.default.addResourceBundle("en",s,n.default)))}r.initI18n=initI18n,r.t=function t(e,r){return r?.ns||(r=Object.assign(r??{},{ns:s})),i.default.t(e,r)},initI18n().catch((()=>{}))},50774:(e,r,a)=>{Object.defineProperty(r,"__esModule",{value:!0});const o=a(58012);class RepoAppDownloadLogger{static _logger=o.DefaultLogger;static get logger(){return RepoAppDownloadLogger._logger}static set logger(e){RepoAppDownloadLogger._logger=e}static configureLogging(e,r,a,i,n,s){const p=a??new o.LogWrapper(e,r,i,n,s);RepoAppDownloadLogger.logger=p}}r.default=RepoAppDownloadLogger},24342:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.replaceWebappFiles=r.validateAndUpdateManifestUI5Version=void 0;const i=a(16928),n=a(20787),s=a(33242),p=o(a(50774)),l=a(98434),d=a(97133),c=a(52052),m=a(18157);r.validateAndUpdateManifestUI5Version=async function validateAndUpdateManifestUI5Version(e,r){const a=(0,c.readManifest)(e,r);if(!a?.["sap.ui5"]?.dependencies||!a?.["sap.app"]?.sourceTemplate)throw new Error((0,s.t)("error.readManifestErrors.invalidManifestStructureError"));const o=a["sap.ui5"]?.dependencies?.minUI5Version,i=await(0,d.getUI5Versions)({includeMaintained:!0});if(i.find((e=>e.version===o)));else if((0,l.isInternalFeaturesSettingEnabled)())a["sap.ui5"].dependencies.minUI5Version="${sap.ui5.dist.version}";else{const e=i[0]?.version;a["sap.ui5"].dependencies.minUI5Version=e}a["sap.app"].sourceTemplate.id=m.fioriAppSourcetemplateId,r.writeJSON(e,a,void 0,2)},r.replaceWebappFiles=async function replaceWebappFiles(e,r,a){try{const o=(0,i.join)(e,n.DirName.Webapp),l=[{webappFile:n.FileName.Manifest,extractedFile:n.FileName.Manifest},{webappFile:(0,i.join)("i18n","i18n.properties"),extractedFile:(0,i.join)("i18n","i18n.properties")},{webappFile:"index.html",extractedFile:"index.html"},{webappFile:"Component.js",extractedFile:"component.js"}];for(const{webappFile:e,extractedFile:d}of l){const l=(0,i.join)(o,e),c=(0,i.join)(r,d);if(a.exists(c))if(d===n.FileName.Manifest){const e=a.readJSON(c),r=a.readJSON(l);r?.["sap.app"]?.dataSources&&e?.["sap.app"]&&(e["sap.app"].dataSources=r["sap.app"].dataSources),r?.["sap.ui5"]?.models&&e?.["sap.ui5"]&&(e["sap.ui5"].models=r["sap.ui5"]?.models),a.writeJSON(l,e,void 0,2)}else a.copy(c,l);else p.default.logger?.warn((0,s.t)("warn.extractedFileNotFound",{extractedFilePath:c}))}}catch(e){p.default.logger?.error((0,s.t)("error.replaceWebappFilesError",{error:e}))}}},8433:function(e,r,a){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.validateAppSelection=r.isValidPromptState=r.validateQfaJsonFile=void 0;const i=a(33242),n=o(a(50774)),s=a(93078),p=a(9422),l=a(12450),d=a(93394),c=a(73667),m=a(18157);r.validateQfaJsonFile=e=>{return!(s=e.metadata,(!s.package||"string"!=typeof s.package)&&(n.default.logger?.error((0,i.t)("error.invalidMetadataPackage")),1)||(o=e.serviceBindingDetails,o.serviceName&&"string"==typeof o.serviceName?o.serviceVersion&&"string"==typeof o.serviceVersion?(!o.mainEntityName||"string"!=typeof o.mainEntityName)&&(n.default.logger?.error((0,i.t)("error.invalidMainEntityName")),1):(n.default.logger?.error((0,i.t)("error.invalidServiceVersion")),1):(n.default.logger?.error((0,i.t)("error.invalidServiceName")),1))||(a=e.projectAttribute,(!a.moduleName||"string"!=typeof a.moduleName)&&(n.default.logger?.error((0,i.t)("error.invalidModuleName")),1))||(r=e.deploymentDetails,!r.repositoryName&&(n.default.logger?.error((0,i.t)("error.invalidRepositoryName")),1)));var r,a,o,s};async function generateAppNotFoundHelpLink(){return l.ErrorHandler.getHelpLink(p.HELP_NODES.ADT_APP_NOT_FOUND_ERROR,l.ERROR_TYPE.INTERNAL_SERVER_ERROR,(0,i.t)("error.noAppsDeployed"))}r.isValidPromptState=(e,r)=>!!(s.PromptState.systemSelection.connectedSystem?.serviceProvider&&r&&e),r.validateAppSelection=async function validateAppSelection(e,r,a,o){if(a?.appId&&0===r.length)return await generateAppNotFoundHelpLink();if(0===r.length)return await generateAppNotFoundHelpLink();if(e?.appId)try{await(0,d.downloadApp)(e.repoName);const r=(0,d.hasQfaJson)();return r||o?.showError((0,i.t)("error.qfaJsonNotFound",{jsonFileName:m.qfaJsonFileName}),c.MessageType.notification),r}catch(e){return n.default.logger?.debug(`validateAppSelection: Error downloading app: ${e.message}`),(0,i.t)("error.appDownloadErrors.appDownloadFailure",{error:e.message})}return!1}},69083:e=>{e.exports=JSON.parse('{"error":{"telemetry":"Failed to send telemetry data after downloading the application from the SAPUI5 ABAP Repository. {{- error}}","qfaJsonNotFound":"{{- jsonFileName }} not found in the downloaded application. Ensure the downloaded application is properly deployed to the ABAP repository.","replaceWebappFilesError":"An error occurred when replacing files in the downloaded application: {{- error}}. For more information, view the logs.","applicationListFetchError":"An error occurred when fetching the application list: {{- error}}. Check if your application is available in the system.","metadataFetchError":"An error occurred when fetching metadata: {{- error}}. For more information, view the logs.","appConfigGenError":"An error occurred when generating the application configuration: {{- error}}. For more information, view the logs.","endPhase":"An error occurred in the end phase: {{- error}}. For more information, view the logs.","errorProcessingJsonFile":"An error occurred when processing the JSON file: {{- error}}. Check the file is valid.","noAppsDeployed":"No applications deployed to this system can be downloaded.","validationErrors":{"invalidMetadataPackage":"Invalid or missing package in the metadata. Check the metadata.","invalidServiceName":"Invalid or missing `serviceName` in `serviceBindingDetails`. Check the `serviceName`.","invalidServiceVersion":"Invalid or missing `serviceVersion` in `serviceBindingDetails`. Check the `serviceVersion`.","invalidMainEntityName":"Invalid or missing `mainEntityName` in `serviceBindingDetails`. Check the `mainEntityName`.","invalidModuleName":"Invalid or missing `moduleName` in serviceBindingDetails. Check the `moduleName`.","invalidRepositoryName":"Invalid or missing `repositoryName` in `serviceBindingDetails`. Check the `repositoryName`."},"installationErrors":{"npmInstall":"An error occurred in the install phase: {{- error}}. For more information, view the logs.","skippedInstallation":"`--skipInstall` option was specified. Installation of dependencies will be skipped."},"appDownloadErrors":{"downloadedFileNotBufferError":"Error: The downloaded file is not a buffer. Check the file.","appDownloadFailure":"An error occurred when downloading the application: {{- error}}. For more information, view the logs.","zipExtractionError":"An error occurred when extracting the zip file: {{- error}}. For more information, view the logs."},"eventHookErrors":{"vscodeInstanceMissing":"Error: Missing VS Code instance in event hook.","postGenCommandMissing":"Error: Missing `postGenCommand` in event hook.","commandExecutionFailed":"Error executing `postGenCommand` in event hook: {{- error}}"},"readManifestErrors":{"manifestFileNotFound":"Error: `manifest.json` file not found in the downloaded application. Check the file exists.","readManifestFailed":"Error: Failed to read the `manifest.json` file. Check the file is valid.","sapAppNotDefined":"Error: `sap.app` not defined in the `manifest.json` file. Check `sap.app` is defined.","sourceTemplateNotSupported":"Error: Source template not supported. Use a supported template.","invalidManifestStructureError":"Invalid `manifest.json file` structure: `sap.ui5` or `sap.app` are missing. Check they exist."},"quickDeployedAppDownloadErrors":{"noAppsFound":"No application with id {{ appId }} found in the system. Please check if the application is deployed correctly or select another app"}},"warn":{"extractedFileNotFound":"Extracted file not found - {{- extractedFilePath}}. For more information, view the logs.","requiredFieldsMissing":"Required fields are missing for the {{- appId }} application. Check if the application is deployed correctly."},"prompts":{"appSelection":{"message":"Application","hint":"Select the application to download.","breadcrumb":"Application"},"targetPath":{"message":"Project Folder Path","breadcrumb":"Project Path"}},"readMe":{"appDescription":"This application was converted from an SAP Fiori application that was deployed from ADT using the ADT Quick Fiori Application generator.","launchText":"To launch the generated application, run the following command from the generated app root folder:\\n\\n```\\n npm start\\n```"},"info":{"repoAppDownloadCompleteMsg":"The selected application has been downloaded and updated to support SAP Fiori tools."}}')}};