UNPKG

@sap/generator-fiori

Version:

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

1 lines 52.6 kB
"use strict";exports.id=859,exports.ids=[859],exports.modules={79731:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.FioriAppGeneratorHeadless=void 0;const a=n(98434),o=n(58012),r=n(55571),s=n(3675),p=n(35462);class FioriAppGeneratorHeadless extends r.FioriAppGenerator{constructor(e,i){super(e,i),this.log((0,s.t)("logMessages.generatingAppWithVersion",{generatorName:"@sap-ux/fiori-app-sub-generator:headless",generatorVersion:this.rootGeneratorVersion()}));try{this.state=(0,p.transformExtState)(this.options.appConfig)}catch(e){this.log((0,s.t)("logMessages.generatorExiting")),this.env.error(e)}}async initializing(){await(0,s.initI18nFioriAppSubGenerator)(),await o.TelemetryHelper.initTelemetrySettings({consumerModule:{name:r.APP_GENERATOR_MODULE,version:this.rootGeneratorVersion()},internalFeature:(0,a.isInternalFeaturesSettingEnabled)(),watchTelemetrySettingStore:!1}),o.TelemetryHelper.createTelemetryData({AppGenLaunchSource:this.options.appConfig.telemetryData?.generationSourceName??"Headless",AppGenLaunchSourceVersion:this.options.appConfig.telemetryData?.generationSourceVersion??"Not Provided"})}async writing(){return super.writing()}async install(){await super.install()}async end(){await super.end()}}i.FioriAppGeneratorHeadless=FioriAppGeneratorHeadless,i.default=FioriAppGeneratorHeadless},35462:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.transformExtState=function transformExtState(e){if("0.2"!==e.version)throw Error((0,d.t)("error.appConfigVersion",{versions:"0.2"}));const{project:i,service:n,floorplan:a}=e,o={project:_setProjectDefaults(i),service:_setServiceDefaults(a,n),floorplan:l.FloorplanFE[a]??l.FloorplanFF[a]};o.service.capService&&(o.project.targetFolder=(0,c.join)(o.service.capService.projectPath,o.service.capService.appPath??""));"FF_SIMPLE"!==a&&e.entityConfig?(o.entityRelatedConfig=function _setEntityRelatedConfig(e){const i={hierarchyQualifier:e.entityConfig?.hierarchyQualifier,tableType:e.entityConfig?.tableType,addFEOPAnnotations:e.entityConfig?.generateFormAnnotations,addLineItemAnnotations:e.entityConfig?.generateLROPAnnotations};e.alpOptions&&(i.tableAutoHide=e.alpOptions?.autoHide,i.tableMultiSelect=e.alpOptions?.multiSelect,i.presentationQualifier=e.alpOptions?.qualifier,i.tableSelectionMode=e.alpOptions?.selectionMode,i.smartVariantManagement=e.alpOptions?.smartVariantManagement);e.entityConfig?.mainEntity&&(i.mainEntity={entitySetName:e.entityConfig.mainEntity.entityName,entitySetType:e.entityConfig.mainEntity.type});e.entityConfig?.navigationEntity&&(i.navigationEntity={entitySetName:e.entityConfig.navigationEntity.EntitySet,navigationPropertyName:e.entityConfig?.navigationEntity.Name});e.entityConfig?.filterEntityType&&(i.filterEntitySet={entitySetName:e.entityConfig.filterEntityType,entitySetType:e.entityConfig.filterEntityType});return i}(e),n?.annotations&&(o.service.annotations=Array.isArray(n.annotations)?n?.annotations:[n?.annotations])):"FF_SIMPLE"===e.floorplan&&(o.viewName=e.project.viewName);return o};const a=n(74174),o=n(58012),r=n(69884),s=n(4389),p=n(97133),c=n(16928),l=n(75295),d=n(60843);function _setProjectDefaults(e){const i=e.ui5Version||p.supportedUi5VersionFallbacks[0].version;return{name:e.name??(0,d.t)("defaults.projectName"),targetFolder:e.targetFolder??process.cwd(),namespace:e.namespace??"",title:e.title??(0,d.t)("defaults.projectTitle"),description:e.description??(0,d.t)("default.projectDescription"),ui5Version:i,localUI5Version:e.localUI5Version??i,ui5Theme:e.ui5Theme??(0,p.getDefaultUI5Theme)(i),skipAnnotations:e.skipAnnotations||l.defaultPromptValues[s.promptNames.skipAnnotations],enableCodeAssist:e.enableCodeAssist||l.defaultPromptValues[s.promptNames.enableCodeAssist],enableEslint:e.enableEslint||l.defaultPromptValues[s.promptNames.enableEslint],enableTypeScript:e.enableTypeScript||l.defaultPromptValues[s.promptNames.enableTypeScript],sapux:e.sapux||!1,flpAppId:""}}function _setServiceDefaults(e,i){let n;if(i?.edmx)n=(0,d.getODataVersion)(i.edmx);else{if("FF_SIMPLE"!==e&&!i?.capService?.projectPath)throw Error((0,d.t)("error.appConfigMissingRequiredProperty",{propertyName:"edmx"}));if("FF_SIMPLE"===e)return{source:r.DatasourceType.none}}const s={host:i?.host,servicePath:i?.servicePath,client:i?.client,edmx:i?.edmx,version:n};if(i?.destination)return s.destinationName=i.destination,s.source=r.DatasourceType.sapSystem,s;if(i?.apiHubApiKey)s.apiHubConfig={apiHubKey:i.apiHubApiKey,apiHubType:"API_HUB"},s.source=r.DatasourceType.businessHub;else if(i?.capService?.projectPath){if(!i.capService.serviceName)throw Error((0,d.t)("error.appConfigMissingRequiredProperty",{propertyName:"capService.serviceName"}));s.capService=function _setCAPServicePaths(e){const i=(0,o.getCapFolderPathsSync)(e.projectPath);return{projectPath:e.projectPath,serviceName:e.serviceName,serviceCdsPath:e.serviceCdsPath,appPath:i?.app,capType:(0,l.capTypeConversion)(e.capType)}}(i.capService),s.version=a.OdataVersion.v4,s.source=r.DatasourceType.capProject}else s.source=!i?.servicePath&&i?.edmx?r.DatasourceType.metadataFile:i?.edmx?i?.scp?r.DatasourceType.sapSystem:r.DatasourceType.odataServiceUrl:r.DatasourceType.none;return s}},67001:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0});const a=n(55571);i.default=a.FioriAppGenerator},30774:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.runPostGenerationTasks=async function runPostGenerationTasks({service:e,project:i},n,l,d,u,m){e.capService||await(0,c.generateLaunchConfig)({targetFolder:i.targetFolder,projectName:i.name,flpAppId:i.flpAppId,sapClientParam:e.sapClient?(0,c.buildSapClientParam)(e.sapClient):void 0,odataVersion:e.odataVersion,datasourceType:e.datasourceType},n,d,l);const g=(0,r.getHostEnvironment)();if(e.backendSystem&&g!==r.hostEnvironment.bas&&e.backendSystem.newOrUpdated){(await(0,s.getService)({logger:l,entityName:"system"})).write(e.backendSystem)}e.capService&&u&&u.showInformation((0,c.t)("wizardMessages.filesGenerated"),a.MessageType.notification);g!==r.hostEnvironment.bas&&"API_HUB"===e.apiHubConfig?.apiHubType&&await async function saveApiHubApiKey(e,i){let n;if(!(0,o.isAppStudio)()){const a=await(0,s.getService)({logger:i,entityName:"api-hub"}),o=new s.ApiHubSettings({apiKey:e});n=await a.write(o)}return Boolean(n)}(e.apiHubConfig.apiHubKey,l);const f=(0,p.join)(i.targetFolder,i.name);l.info((0,c.t)("logMessages.applicationGenerationSuccess",{targetFolder:f})),await(0,r.sendTelemetry)("GENERATION_SUCCESS",r.TelemetryHelper.telemetryData,f),await async function runPostGenHooks(e,i,n,a){await(0,c.runHooks)("app-generated",{hookParameters:{fsPath:e},vscodeInstance:n,options:{followUpCommand:a}},i)}(f,l,d,m)};const a=n(73667),o=n(75199),r=n(58012),s=n(2218),p=n(16928),c=n(60843)},38904:function(e,i,n){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i,"__esModule",{value:!0}),i.FioriAppGenerator=i.APP_GENERATOR_MODULE=void 0;const o=n(73667),r=n(75199),s=n(98434),p=n(74174),c=n(20280),l=n(58012),d=n(69884),u=n(10736),m=n(97133),g=n(16928),f=a(n(91170)),y=n(75295),S=n(60843),v=n(30774),h=n(96016),P=n(48205),A=n(86242),E=n(6),T=n(41503);i.APP_GENERATOR_MODULE="@sap/generator-fiori";class FioriAppGenerator extends f.default{vscode;generationTime0;appWizard;state;static _logger=l.DefaultLogger;generatorVersion=this.rootGeneratorVersion();yeomanUiStepConfig;setPromptsCallback;prompts;fioriSteps;constructor(e,i){super(e,i,{unique:"namespace"}),this.vscode=i.vscode,FioriAppGenerator._logger=this.options.logWrapper??l.DefaultLogger,this.state=i.state??{project:{},service:{}}}static get logger(){return FioriAppGenerator._logger}async initializing(){if(await(0,S.initI18nFioriAppSubGenerator)(),this.options.appWizard&&(this.appWizard=this.options.appWizard,(0,S.initAppWizardCache)(FioriAppGenerator._logger,this.options.appWizard)),await(0,u.initTelemetrySettings)({consumerModule:{name:i.APP_GENERATOR_MODULE,version:this.rootGeneratorVersion()},internalFeature:(0,s.isInternalFeaturesSettingEnabled)(),watchTelemetrySettingStore:!1}),l.TelemetryHelper.createTelemetryData({...this.options.telemetryData}),!this.state.project?.ui5Version){const e={useCache:!0};(0,m.getUI5Versions)(e)}this.options.floorplan&&(this.state.floorplan=this.options.floorplan),this.fioriSteps=this.options.fioriSteps??y.FIORI_STEPS,this.yeomanUiStepConfig=this.options.yeomanUiStepConfig,this.prompts=this.yeomanUiStepConfig?.activeSteps}async prompting(){try{const e=this.options,i=this.state.floorplan===y.FloorplanFF.FF_SIMPLE;if((0,S.hasStep)(this.fioriSteps,y.STEP_DATASOURCE_AND_SERVICE)){const n=(0,S.getFromCache)(this.appWizard,"service",FioriAppGenerator.logger),a={capService:n?.capService??this.state.service?.capService,requiredOdataVersion:(0,S.getRequiredOdataVersion)(this.state.floorplan),allowNoDatasource:i,promptOptions:e.promptSettings,showCollabDraftWarning:e.showCollabDraftWarning,workspaceFolders:e.workspaceFolders};let o=await(0,P.promptOdataServiceAnswers)(a,FioriAppGenerator.logger,this.env.adapter,n?.connectedSystem);(0,l.getHostEnvironment)()!==l.hostEnvironment.cli&&(o.source===d.DatasourceType.none||o.edmx?(n?.connectedSystem&&JSON.stringify(o.connectedSystem?.backendSystem)===JSON.stringify(n?.connectedSystem?.backendSystem)&&(o.connectedSystem=n?.connectedSystem),(0,S.addToCache)(this.appWizard,{service:o},FioriAppGenerator.logger)):o=(0,S.getFromCache)(this.appWizard,"service",FioriAppGenerator.logger)??o,o.source===d.DatasourceType.none||o.edmx||FioriAppGenerator.logger?.error((0,S.t)("error.fatalError"))),this.state.service={...this.state?.service,...o}}if(i){const e=await this.prompt([(0,P.getViewQuestion)()]);this.state.viewName=e.viewName}else if(this.state.service.edmx){const i=(0,d.getEntityRelatedPrompts)(this.state.service.edmx,(0,E.getTemplateType)(this.state.floorplan),!!this.state.service.capService,{defaultMainEntityName:e.preselectedEntityName,useAutoComplete:(0,l.getHostEnvironment)()===l.hostEnvironment.cli,hideTableLayoutPrompts:!1===e.showLayoutPrompts},this.state.service.annotations?.[0],FioriAppGenerator.logger,(0,l.getHostEnvironment)()!==l.hostEnvironment.cli),n=await this.prompt(i);this.state.entityRelatedConfig=Object.assign(this.state.entityRelatedConfig??{},n)}else FioriAppGenerator.logger.error((0,S.t)("error.edmxNotFound")),this._exitOnError((0,S.t)("error.edmxNotFound"));if(this.state.service.capService&&!this.state.service.capService.cdsUi5PluginInfo&&(this.state.service.capService.cdsUi5PluginInfo=await(0,S.getCdsUi5PluginInfo)(this.state.service.capService.projectPath,this.fs,this.state.service.capService.cdsVersionInfo)),(0,S.hasStep)(this.fioriSteps,y.STEP_PROJECT_ATTRIBUTES)){const{ui5AppAnswers:i,localUI5Version:n}=await(0,P.promptUI5ApplicationAnswers)({projectName:this.state.project?.name,targetFolder:this.state.project?.targetFolder,service:this.state.service,floorplan:this.state.floorplan,promptSettings:e.promptSettings,promptExtension:e.extensions},[this.yeomanUiStepConfig],this.env.adapter);this.state.project=Object.assign(this.state.project??{},i,{ui5Version:i?.ui5Version||n,localUI5Version:n}),this.state.project.flpAppId=(0,S.getFlpId)((0,S.getAppId)(this.state.project.name,i.namespace??""),this.state.floorplan===y.FloorplanFF.FF_SIMPLE?y.defaultNavActionDisplay:y.defaultNavActionTile)}this.state.project?.addDeployConfig&&((0,S.hasStep)(this.fioriSteps,y.STEP_DEPLOY_CONFIG)&&!(0,S.hasActiveStep)((0,S.t)("steps.deployConfig.title"),this.yeomanUiStepConfig.activeSteps)&&(0,S.updateDependentStep)((0,S.t)("steps.projectAttributesConfig.title"),[this.yeomanUiStepConfig],!0,(0,S.t)("steps.deployConfig.title")),(0,A.addDeployGen)({service:this.state.service,projectName:this.state.project.name,promptSettings:e.promptSettings,targetFolder:this.state.project.targetFolder,applicationType:this.state.floorplan===y.FloorplanFF.FF_SIMPLE?"FF":"FE"},this.composeWith.bind(this),FioriAppGenerator.logger,this.appWizard)),this.state.project?.addFlpConfig&&((0,S.hasStep)(this.fioriSteps,y.STEP_FLP_CONFIG)&&!(0,S.hasActiveStep)((0,S.t)("steps.flpConfig.title"),this.yeomanUiStepConfig.activeSteps)&&(0,S.updateDependentStep)((0,S.t)("steps.projectAttributesConfig.title"),[this.yeomanUiStepConfig],!0,(0,S.t)("steps.flpConfig.title")),(0,A.addFlpGen)({projectName:this.state.project.name,targetFolder:this.state.project.targetFolder,title:this.state.project.title,skipPrompt:!(0,S.hasStep)(this.fioriSteps,y.STEP_FLP_CONFIG)},this.composeWith.bind(this),FioriAppGenerator.logger,e.vscode,this.appWizard))}catch(e){FioriAppGenerator.logger.error(`${(0,S.t)("error.fatalError")} : ${e}`),this._exitOnError(e)}}async writing(){try{this.generationTime0=performance.now(),l.TelemetryHelper.markAppGenStartTime();const{service:e,project:i,floorplan:n}=this.state;FioriAppGenerator.logger.info((0,S.t)("logMessages.copyingTemplateFiles",{templateName:this.state.floorplan}));const a=this.destinationRoot((0,g.join)(i.targetFolder,i.name)),o=performance.now();let s;if(this.state.floorplan===y.FloorplanFF.FF_SIMPLE){const i=await(0,E.transformState)(this.state,!!e.capService||this.options.generateIndexHtml);await(0,c.generate)(a,i,this.fs),s=i}else{const i=await(0,E.transformState)(this.state,!!e.capService||this.options.generateIndexHtml);await(0,p.generate)(a,i,this.fs),s=i}const u=performance.now();FioriAppGenerator.logger.debug(`Writing Fiori application files from template took ${Math.round(u-o)} milliseconds.`),l.TelemetryHelper.createTelemetryData({Template:(0,S.t)(`floorplans.label.${n}`,{odataVersion:e.version}),DataSource:e.source,UI5Version:i.ui5Version||m.latestVersionString,Theme:i.ui5Theme,AppGenVersion:this.generatorVersion,AppGenSourceType:e.source,AppGenSapSystemType:e.source===d.DatasourceType.sapSystem&&e.connectedSystem?(0,S.getTelemetrySapSystemType)(e.connectedSystem):"n/a",AppGenBusinessHubType:(0,S.getTelemetryBusinessHubType)(e.apiHubConfig?.apiHubType),EnableEslint:i.enableEslint,EnableTypeScript:i.enableTypeScript,EnableCodeAssist:i.enableCodeAssist,EnableVirtualEndpoints:i.enableVirtualEndpoints,ToolsId:s.app.sourceTemplate?.toolsId}),e.apiHubConfig&&(0,r.isAppStudio)()&&(0,T.writeAPIHubKeyFiles)(this.fs,a,e.apiHubConfig);const f={ui5Version:s.ui5?.minUI5Version};await(0,T.writeAppGenInfoFiles)(this.state,y.generatorName,this.generatorVersion,a,this.fs,f)}catch(e){FioriAppGenerator.logger.fatal(`${(0,S.t)("error.errorWritingApplicationFiles")} : ${e}`),this._exitOnError(e)}}async install(){this.options.skipInstall?FioriAppGenerator.logger.info((0,S.t)("logMessages.installSkippedOptionSpecified")):await(0,h.installDependencies)({appPackagePath:this.destinationPath(),capService:this.state.service.capService,enableCodeAssist:this.state.project?.enableCodeAssist??!1,useNpmWorkspaces:!!(this.state.project.enableTypeScript||this.state.service.capService?.cdsUi5PluginInfo?.isCdsUi5PluginEnabled||this.state.service.capService?.cdsUi5PluginInfo?.hasCdsUi5Plugin||this.state.service.capService?.cdsUi5PluginInfo?.isWorkspaceEnabled),ui5Version:this.state.project?.ui5Version},FioriAppGenerator.logger)}async end(){(0,S.deleteCache)(this.appWizard,FioriAppGenerator.logger),await(0,v.runPostGenerationTasks)({service:{backendSystem:this.state.service.connectedSystem?.backendSystem,capService:this.state.service.capService,sapClient:this.state.service.client,odataVersion:this.state.service.version,datasourceType:this.state.service.source},project:{targetFolder:this.state.project.targetFolder,name:this.state.project.name,flpAppId:this.state.project.flpAppId}},this.fs,FioriAppGenerator.logger,this.vscode,this.appWizard,this.options.followUpCommand);const e=performance.now();FioriAppGenerator.logger.info(`Total time taken: ${Math.round((e-this.generationTime0)/1e3)} seconds.`)}_exitOnError(e){throw(0,l.sendTelemetry)("GENERATION_WRITING_FAIL",l.TelemetryHelper.telemetryData),(0,l.getHostEnvironment)()!==l.hostEnvironment.cli&&this.appWizard?.showError(`${(0,S.t)("error.fatalError")} : ${e}`,o.MessageType.notification),new Error(`${(0,S.t)("error.fatalError")} : ${e}`)}}i.FioriAppGenerator=FioriAppGenerator},72255:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0})},55571:function(e,i,n){var a=this&&this.__createBinding||(Object.create?function(e,i,n,a){void 0===a&&(a=n);var o=Object.getOwnPropertyDescriptor(i,n);o&&!("get"in o?!i.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return i[n]}}),Object.defineProperty(e,a,o)}:function(e,i,n,a){void 0===a&&(a=n),e[a]=i[n]}),o=this&&this.__exportStar||function(e,i){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(i,n)||a(i,e,n)};Object.defineProperty(i,"__esModule",{value:!0}),o(n(38904),i),o(n(72255),i)},96016:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.installDependencies=async function installDependencies({appPackagePath:e,capService:i,enableCodeAssist:n,useNpmWorkspaces:s,ui5Version:p},c){let l;i&&(l={codeAssist:n,rootPath:i.projectPath,depsInstallPath:s?i.projectPath:e,useWorkspaces:s,ui5Version:p});await async function installProjectDependencies(e,i,n){const s="win32"===process.platform?"npm.cmd":"npm",p=new o.CommandRunner(i),c=[];n?.codeAssist&&c.push(...Object.keys(r).map((e=>`${e}@${r[e]}`)));c.unshift("install");try{i?.info((0,o.t)("logMessages.installingDependencies",{path:e}));const r=performance.now();await p.run(s,c,{cwd:e},!0),a.TelemetryHelper.createTelemetryData({installFailure:!1}),n?.useWorkspaces&&await p.run(s,["install","--no-audit","--no-fund","--silent","--prefer-offline","--no-progress"],{cwd:n.rootPath},!0);const l=performance.now();i?.debug((0,o.t)("logMessages.dependenciesInstalled",{installTime:Math.round((l-r)/1e3)}))}catch(e){i?.info(e??(0,o.t)("logMessages.errorInstallingDependencies")),a.TelemetryHelper.createTelemetryData({installFailure:!0}),(0,a.sendTelemetry)("GENERATION_INSTALL_FAIL",a.TelemetryHelper.telemetryData)}}(l?.depsInstallPath??e,c,l)};const a=n(58012),o=n(60843),r={eslint:"7.32.0","@sap/eslint-plugin-ui5-jsdocs":"2.0.5","@sapui5/ts-types":"1.92.2"}},48205:function(e,i,n){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i,"__esModule",{value:!0}),i.getViewQuestion=void 0,i.promptUI5ApplicationAnswers=async function promptUI5ApplicationAnswers({service:e,projectName:i,targetFolder:n,promptSettings:a,floorplan:o,promptExtension:s},p,d){let u;u=d?.actualAdapter?d.actualAdapter:d;const m=await createUI5ApplicationPromptOptions(e,p,o,i,n,a,s),g=await(0,c.prompt)(u,m,e.capService?.cdsUi5PluginInfo,(0,r.getHostEnvironment)()!==r.hostEnvironment.cli),f=(await(0,l.getUI5Versions)({minSupportedUI5Version:m.ui5Version?.minUI5Version,onlyVersionNumbers:!0,onlyNpmVersion:!0,ui5SelectedVersion:g?.ui5Version??l.latestVersionString}))[0]?.version;return{ui5AppAnswers:g,localUI5Version:f}},i.promptOdataServiceAnswers=async function promptOdataServiceAnswers(e,i,n,a){let c;c=n?.actualAdapter?n.actualAdapter:n;const l=function createOdataServicePromptOptions(e){let i;const n=(0,r.getHostEnvironment)()!==r.hostEnvironment.cli;e.capService?i=s.DatasourceType.capProject:e.promptOptions?.systemSelection?.defaultChoice&&(i=s.DatasourceType.sapSystem);return{[s.promptNames.datasourceType]:{default:i,includeNone:!!e.allowNoDatasource},[s.promptNames.metadataFilePath]:{requiredOdataVersion:e.requiredOdataVersion},[s.promptNames.capProject]:{capSearchPaths:e.workspaceFolders??[],defaultChoice:e.capService?.projectPath},[s.promptNames.capService]:{defaultChoice:e.capService},[s.promptNames.serviceUrl]:{requiredOdataVersion:e.requiredOdataVersion,showCollaborativeDraftWarning:e.showCollabDraftWarning&&n},[s.promptNames.serviceSelection]:{useAutoComplete:(0,r.getHostEnvironment)()===r.hostEnvironment.cli,requiredOdataVersion:e.requiredOdataVersion??e.promptOptions?.serviceSelection?.requiredOdataVersion,showCollaborativeDraftWarning:e.showCollabDraftWarning&&n,serviceFilter:e.promptOptions?.serviceSelection?.serviceFilter},[s.promptNames.systemSelection]:{destinationFilters:{odata_abap:!0,full_service_url:!0,partial_service_url:!0},useAutoComplete:!n,includeCloudFoundryAbapEnvChoice:!0,...e.promptOptions?.systemSelection}}}(e),d=await(0,s.prompt)(c,l,i,(0,o.isFeatureEnabled)(m.Features.enableGAIntegration),p.ClientFactory.getTelemetryClient(),(0,r.getHostEnvironment)()!==r.hostEnvironment.cli,a);return{host:d.origin,client:d.sapClient,servicePath:d.servicePath,edmx:d.metadata,annotations:d.annotations,version:d.odataVersion,capService:d.capService,source:d.datasourceType,localEdmxFilePath:d.metadataFilePath,connectedSystem:d.connectedSystem,ignoreCertError:d.ignoreCertError}},i.createUI5ApplicationPromptOptions=createUI5ApplicationPromptOptions;const o=n(98434),r=n(58012),s=n(69884),p=n(10736),c=n(4389),l=n(97133),d=a(n(47886)),u=n(16928),m=n(75295),g=n(60843);function validateViewName(e){if(!e)return(0,g.t)("prompts.viewName.validationMessages.viewNameRequired");const i=/^[a-zA-Z]+[a-zA-Z0-9-_]{0,120}$/.test(e);return e.length>120?(0,g.t)("prompts.viewName.validationMessages.viewNameTooLong"):!!i||(0,g.t)("prompts.viewName.validationMessages.viewNameInvalid")}async function createUI5ApplicationPromptOptions(e,i,n,a,o,p,f){const y={hide:p?.[c.promptNames.ui5Version]?.hide??!1,minUI5Version:(0,g.getMinSupportedUI5Version)(e.version??s.OdataVersion.v2,n),includeSeparators:(0,r.getHostEnvironment)()!==r.hostEnvironment.cli,useAutocomplete:(0,r.getHostEnvironment)()===r.hostEnvironment.cli},S=e.host?await(0,l.getSapSystemUI5Version)(e.host):void 0;let v;S&&(y.defaultChoice={name:`${S} (Source system version)`,value:S}),v=e.capService?.projectPath?{default:(0,u.join)(e.capService.projectPath,e.capService.appPath??"")}:{defaultValue:o,validateFioriAppFolder:!0};const h={[c.promptNames.name]:{defaultValue:a},[c.promptNames.targetFolder]:v,[c.promptNames.ui5Version]:y,[c.promptNames.skipAnnotations]:{hide:!e.capService},[c.promptNames.addDeployConfig]:{validatorCallback:e=>{(0,g.validateNextStep)(e,(0,g.t)("steps.projectAttributesConfig.title"),i,(0,g.t)("steps.deployConfig.title"))}},[c.promptNames.addFlpConfig]:{validatorCallback:e=>{(0,g.validateNextStep)(e,(0,g.t)("steps.projectAttributesConfig.title"),i,(0,g.t)("steps.flpConfig.title"))}},[c.promptNames.enableTypeScript]:{default:m.defaultPromptValues[c.promptNames.enableTypeScript]},[c.promptNames.enableVirtualEndpoints]:{hide:"Java"===e.capService?.capType}},P=(0,d.default)(h,p);return[c.promptNames.enableCodeAssist,c.promptNames.skipAnnotations,c.promptNames.enableEslint,c.promptNames.ui5Theme].forEach((e=>{const i=P[e],n=m.defaultPromptValues[e];i?(i.advancedOption=!0,i.default||void 0===n||(i.default=n)):(P[e]={advancedOption:!0},void 0!==n&&(P[e].default=n))})),f&&Object.entries(f).forEach((([e,i])=>{Object.assign(P[e]??Object.assign(P,{[e]:{}})[e],i)})),P}i.getViewQuestion=()=>({type:"input",name:"viewName",message:(0,g.t)("prompts.viewName.message"),guiOptions:{breadcrumb:!0},default:"View1",validate:validateViewName})},86242:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.addDeployGen=function addDeployGen({service:e,projectName:i,promptSettings:n,targetFolder:a,applicationType:o},r,s,p){r("@sap/fiori:deploy-config",{launchDeployConfigAsSubGenerator:!0,appGenServiceHost:e.host,appGenServicePath:e.servicePath,appGenClient:e.client,connectedSystem:e.connectedSystem,apiHubConfig:e.apiHubConfig||void 0,appGenDestination:e.destinationName??e.connectedSystem?.destination?.Name,projectName:i,projectPath:a,appWizard:p,telemetryData:{appType:o},logWrapper:s,subGenPromptOptions:n?.["@sap-ux/deploy-config-sub-generator"]})},i.addFlpGen=function addFlpGen({projectName:e,targetFolder:i,title:n,skipPrompt:s},p,c,l,d){let u={launchFlpConfigAsSubGenerator:!0,appWizard:l,vscode:d,appRootPath:(0,a.join)(i,e),logWrapper:c};s&&(u={...u,skipPrompt:!0,inboundConfig:{semanticObject:(0,r.getSemanticObject)(e),action:o.defaultNavActionDisplay,title:n}});p("@sap/fiori:flp-config",u)};const a=n(16928),o=n(75295),r=n(60843)},6:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.getTemplateType=getTemplateType,i.transformTemplateType=transformTemplateType,i.transformState=async function transformState({project:e,service:i,floorplan:n,entityRelatedConfig:r,viewName:g},f=!0){const y=function getBaseAppConfig({project:e,service:i,floorplan:n,entityRelatedConfig:a,viewName:r},s){const p=(0,u.getAppId)(e.name,e.namespace),c=i.capService?(0,u.convertCapRuntimeToCapProjectType)(i.capService.capType):"EDMXBackend",m=transformTemplateType(n,a,r),{minUI5Version:g,ui5Version:f}=function getUI5VersionDefault(e,i,n){if(!i||i===l.latestVersionString){return{minUI5Version:(0,u.getMinSupportedUI5Version)(n??o.OdataVersion.v4,e)}}return{minUI5Version:i,ui5Version:i}}(n,e.ui5Version,i.version);return{app:{id:p,title:e.title,description:e.description,flpAppId:(0,u.getFlpId)(p,n===d.FloorplanFF.FF_SIMPLE?d.defaultNavActionDisplay:d.defaultNavActionTile),sourceTemplate:{toolsId:(0,u.generateToolsId)()},projectType:c},package:{name:e.name,description:e.description,version:"0.0.1",sapuxLayer:(0,u.assignSapUxLayerValue)(!1)},ui5:{version:f,ui5Theme:e.ui5Theme,localVersion:e.localUI5Version,minUI5Version:g,frameworkUrl:i.capService?d.UI5_VERSION_PROPS.BCP_OFFICIAL_URL:getUI5Uri(),manifestLibs:n===d.FloorplanFF.FF_SIMPLE?["sap.m","sap.ui.core"]:void 0,ui5Libs:[]},appOptions:{codeAssist:e.enableCodeAssist,eslint:e.enableEslint,typescript:e.enableTypeScript,sapux:e.sapux,loadReuseLibs:!i.capService&&!e.enableVirtualEndpoints,addTests:canGenerateTests(m.type),generateIndex:s,addAnnotations:a?.addFEOPAnnotations||a?.addLineItemAnnotations,useVirtualPreviewEndpoints:e.enableVirtualEndpoints},template:m}}({project:e,service:i,floorplan:n,entityRelatedConfig:r,viewName:g},f);if(i.source!==s.DatasourceType.none){y.service={url:i.host??(i.edmx?void 0:d.DEFAULT_HOST),path:i.servicePath||d.DEFAULT_SERVICE_PATH,type:i.capService?p.ServiceType.CDS:p.ServiceType.EDMX,version:i.version??o.OdataVersion.v4,metadata:i.edmx&&!i.capService?i.edmx:void 0,name:d.MAIN_DATASOURCE_NAME,client:i.client,model:y.template?.type===o.TemplateType.OverviewPage?d.MAIN_MODEL_NAME:"",previewSettings:{},annotations:!0!==e.skipAnnotations?await(0,u.getAnnotations)(e.name,i.annotations?.[0],i?.capService):void 0,ignoreCertError:i.ignoreCertError};const n=i.destinationName??i.connectedSystem?.destination?.Name;if(n&&(y.service.destination={name:n}),i.capService){const{cdsUi5PluginInfo:e,...n}=i.capService;y.service.capService={...n,cdsUi5PluginInfo:e}}i.destinationAuthType===a.Authentication.SAML_ASSERTION||i.connectedSystem?.destination?.Authentication===a.Authentication.SAML_ASSERTION||c.AuthenticationType.ReentranceTicket===i.connectedSystem?.backendSystem?.authenticationType?y.service.previewSettings={authenticationType:c.AuthenticationType.ReentranceTicket}:i.connectedSystem?.backendSystem?.serviceKeys||(0,m.getHostEnvironment)()===m.hostEnvironment.vscode&&i.connectedSystem?.destination&&(0,a.isAbapEnvironmentOnBtp)(i.connectedSystem?.destination)?y.service.previewSettings={scp:!0}:i.apiHubConfig&&(y.service.previewSettings={apiHub:!0})}return y};const a=n(75199),o=n(74174),r=n(20280),s=n(69884),p=n(10894),c=n(2218),l=n(97133),d=n(75295),u=n(60843),m=n(58012);function getTemplateType(e){return{[d.FloorplanFE.FE_ALP]:"alp",[d.FloorplanFE.FE_FEOP]:"feop",[d.FloorplanFE.FE_LROP]:"lrop",[d.FloorplanFE.FE_OVP]:"ovp",[d.FloorplanFE.FE_WORKLIST]:"worklist",[d.FloorplanFE.FE_FPM]:"fpm",[d.FloorplanFF.FF_SIMPLE]:"basic"}[e]}function transformTemplateType(e,i,n){if(e===d.FloorplanFF.FF_SIMPLE)return{type:r.TemplateType.Basic,settings:{viewName:n}};const a=getTemplateType(e);let s;i?.mainEntity&&(s={mainEntityName:i.mainEntity.entitySetName},i?.navigationEntity?.navigationPropertyName&&(s.navigationEntity={EntitySet:i.navigationEntity?.entitySetName,Name:i.navigationEntity?.navigationPropertyName}));return{type:a,settings:{[o.TemplateType.ListReportObjectPage]:{entityConfig:s,tableType:i?.tableType,hierarchyQualifier:i?.hierarchyQualifier},[o.TemplateType.AnalyticalListPage]:{entityConfig:s,selectionMode:i?.tableSelectionMode,tableType:i?.tableType,hierarchyQualifier:i?.hierarchyQualifier,autoHide:i?.tableAutoHide,multiSelect:i?.tableMultiSelect,qualifier:i?.presentationQualifier?i?.presentationQualifier:void 0,smartVariantManagement:i?.smartVariantManagement},[o.TemplateType.FormEntryObjectPage]:{entityConfig:s},[o.TemplateType.OverviewPage]:{filterEntitySet:i?.filterEntitySet?.entitySetName},[o.TemplateType.Worklist]:{entityConfig:s,tableType:i?.tableType,hierarchyQualifier:i?.hierarchyQualifier},[o.TemplateType.FlexibleProgrammingModel]:{entityConfig:s,pageName:d.FPM_DEFAULT_PAGE_NAME}}[a]}}function canGenerateTests(e){return[o.TemplateType.FormEntryObjectPage,o.TemplateType.AnalyticalListPage,o.TemplateType.ListReportObjectPage,o.TemplateType.Worklist,o.TemplateType.FlexibleProgrammingModel].includes(e)||e===r.TemplateType.Basic}function getUI5Uri(){const e=process.env.UI5_CDN_URL?.replace(/\/{1,2083}$/,"");return e??d.UI5_VERSION_PROPS.OFFICIAL_URL}},41503:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.writeAppGenInfoFiles=async function writeAppGenInfoFiles({project:e,service:i,floorplan:n,entityRelatedConfig:p,appGenInfo:c},l,d,u,m,g){const f=(0,s.t)(`floorplans.label.${n}`,{odataVersion:i.version}),y=(0,s.getReadMeDataSourceLabel)(i.source,(0,s.isBTPHosted)(i.connectedSystem),i.apiHubConfig?.apiHubType),S=Object.assign({generatorName:l,generatorVersion:d,template:f,serviceType:y,serviceUrl:`${i.capService?r.DEFAULT_CAP_HOST:i.host??""}${i.servicePath??""}`||(0,s.t)("texts.notApplicable")},g,c);S.entityRelatedConfig??=[],p?.mainEntity&&S.entityRelatedConfig.push({type:(0,s.t)("readme.label.mainEntity"),value:p.mainEntity.entitySetName});p?.navigationEntity&&S.entityRelatedConfig.push({type:(0,s.t)("readme.label.navigationEntity"),value:p.navigationEntity.navigationPropertyName||"None"});p?.filterEntitySet&&S.entityRelatedConfig.push({type:(0,s.t)("readme.label.filterEntityType"),value:p.filterEntitySet.entitySetName});const v=await(0,s.getLaunchText)(i.capService,e.name,!!e.enableTypeScript,e.namespace),h={generationDate:S?.generationDate??(new Date).toString(),generatorPlatform:S?.generatorPlatform??(0,a.getHostEnvironment)().name,serviceType:S?.serviceType,metadataFilename:i.localEdmxFilePath?(0,o.basename)(i.localEdmxFilePath):"",serviceUrl:S?.serviceUrl,appName:e.name,appTitle:e.title,appDescription:e.description,appNamespace:e.namespace??"",ui5Theme:e.ui5Theme,ui5Version:S?.ui5Version||e.manifestMinUI5Version||e.ui5Version,enableCodeAssist:e.enableCodeAssist,enableEslint:e.enableEslint,enableTypeScript:e.enableTypeScript,showMockDataInfo:!!i.edmx&&!i.capService,generatorVersion:S?.generatorVersion??"",template:S?.template??"",generatorName:S?.generatorName??"",entityRelatedConfig:S?.entityRelatedConfig??[],externalParameters:S?.externalParameters,launchText:v};(0,a.generateAppGenInfo)(u,h,m)},i.writeAPIHubKeyFiles=function writeAPIHubKeyFiles(e,i,n){const a=(0,o.join)(i,".env"),r=`API_HUB_API_KEY=${n.apiHubKey}\nAPI_HUB_TYPE=${n.apiHubType}`;e.write(a,r)};const a=n(58012),o=n(16928),r=n(75295),s=n(60843)},53369:function(e,i,n){var a=this&&this.__createBinding||(Object.create?function(e,i,n,a){void 0===a&&(a=n);var o=Object.getOwnPropertyDescriptor(i,n);o&&!("get"in o?!i.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return i[n]}}),Object.defineProperty(e,a,o)}:function(e,i,n,a){void 0===a&&(a=n),e[a]=i[n]}),o=this&&this.__exportStar||function(e,i){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(i,n)||a(i,e,n)};Object.defineProperty(i,"__esModule",{value:!0}),o(n(75295),i),o(n(67001),i),o(n(79731),i),o(n(60843),i),o(n(55571),i)},42958:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0})},3842:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Features=i.defaultNavActionDisplay=i.defaultNavActionTile=i.minSupportedUi5VersionV4=i.minSupportedUi5Version=i.FPM_DEFAULT_PAGE_NAME=i.generatorName=i.MAIN_MODEL_NAME=i.MAIN_DATASOURCE_NAME=i.DEFAULT_SERVICE_PATH=i.DEFAULT_CAP_HOST=i.DEFAULT_HOST=i.FIORI_STEPS=i.STEP_FLP_CONFIG=i.STEP_DEPLOY_CONFIG=i.STEP_PROJECT_ATTRIBUTES=i.STEP_ENTITY=i.STEP_DATASOURCE_AND_SERVICE=i.STEP_FLOORPLAN=i.API_HUB_TYPE=i.API_HUB_API_KEY=i.SAP_CLIENT_KEY=i.UI5_VERSION_PROPS=i.PLATFORMS=i.LEGACY_CAP_TYPE_JAVA=i.LEGACY_CAP_TYPE_NODE=void 0;const a=n(3675);var o;i.LEGACY_CAP_TYPE_NODE="capNode",i.LEGACY_CAP_TYPE_JAVA="capJava",i.PLATFORMS={VSCODE:{name:"Visual Studio Code",technical:"VSCode"},SBAS:{name:"SAP Business Application Studio",technical:"SBAS"},CLI:{name:"CLI",technical:"CLI"}},i.UI5_VERSION_PROPS={OFFICIAL_URL:"https://ui5.sap.com",BCP_OFFICIAL_URL:"https://sapui5.hana.ondemand.com",SNAPSHOT_URL:"https://sapui5preview-sapui5.dispatcher.int.sap.eu2.hana.ondemand.com",VERSIONS_FILE:"neo-app.json"},i.SAP_CLIENT_KEY="sap-client",i.API_HUB_API_KEY="API_HUB_API_KEY",i.API_HUB_TYPE="API_HUB_TYPE",i.STEP_FLOORPLAN="FLOORPLAN",i.STEP_DATASOURCE_AND_SERVICE="DATASOURCE_AND_SERVICE",i.STEP_ENTITY="ENTITY",i.STEP_PROJECT_ATTRIBUTES="PROJECT_ATTRIBUTES",i.STEP_DEPLOY_CONFIG="DEPLOY_CONFIG",i.STEP_FLP_CONFIG="FLP_CONFIG",i.FIORI_STEPS=[{key:i.STEP_FLOORPLAN,name:(0,a.t)("steps.templateSelection.title"),description:(0,a.t)("steps.templateSelection.description"),order:0},{key:i.STEP_DATASOURCE_AND_SERVICE,name:(0,a.t)("steps.datasourceAndServiceSelection.title"),description:(0,a.t)("steps.datasourceAndServiceSelection.description"),order:1},{key:i.STEP_ENTITY,name:(0,a.t)("steps.entityOrViewConfig.title"),description:(0,a.t)("steps.entityOrViewConfig.description"),order:2},{key:i.STEP_PROJECT_ATTRIBUTES,name:(0,a.t)("steps.projectAttributesConfig.title"),description:(0,a.t)("steps.projectAttributesConfig.description"),order:3},{key:i.STEP_DEPLOY_CONFIG,name:(0,a.t)("steps.deployConfig.title"),description:(0,a.t)("steps.deployConfig.description"),dependency:(0,a.t)("steps.projectAttributesConfig.title"),order:4},{key:i.STEP_FLP_CONFIG,name:(0,a.t)("steps.flpConfig.title"),description:(0,a.t)("steps.flpConfig.decription"),dependency:(0,a.t)("steps.projectAttributesConfig.title"),order:5}],i.DEFAULT_HOST="http://localhost",i.DEFAULT_CAP_HOST="http://localhost:4004",i.DEFAULT_SERVICE_PATH="/sap/opu/odata",i.MAIN_DATASOURCE_NAME="mainService",i.MAIN_MODEL_NAME="mainModel",i.generatorName="SAP Fiori Application Generator",i.FPM_DEFAULT_PAGE_NAME="Main",i.minSupportedUi5Version="1.65.0",i.minSupportedUi5VersionV4="1.84.0",i.defaultNavActionTile="tile",i.defaultNavActionDisplay="display",function(e){e.enableGAIntegration="enableGAIntegration"}(o||(i.Features=o={}))},60096:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.defaultPromptValues=i.Template=i.PROJECT_TYPE=i.FloorplanAttributes=i.FloorplanFF=i.FloorplanFE=void 0,i.capTypeConversion=function capTypeConversion(e){if(e===p.LEGACY_CAP_TYPE_NODE||"Node.js"===e)return"Node.js";if(e===p.LEGACY_CAP_TYPE_JAVA||"Java"===e)return"Java";return"Node.js"};const a=n(74174),o=n(20280),r=n(69884),s=n(4389),p=n(3842),c=n(41157);var l,d;Object.defineProperty(i,"FloorplanFE",{enumerable:!0,get:function(){return c.FloorplanFE}}),Object.defineProperty(i,"FloorplanFF",{enumerable:!0,get:function(){return c.FloorplanFF}}),i.FloorplanAttributes={[c.FloorplanFE.FE_LROP]:{supportedODataVersion:[r.OdataVersion.v2,r.OdataVersion.v4],templateType:a.TemplateType.ListReportObjectPage},[c.FloorplanFE.FE_ALP]:{supportedODataVersion:[r.OdataVersion.v2,r.OdataVersion.v4],templateType:a.TemplateType.AnalyticalListPage},[c.FloorplanFE.FE_WORKLIST]:{supportedODataVersion:[r.OdataVersion.v2,r.OdataVersion.v4],templateType:a.TemplateType.Worklist},[c.FloorplanFE.FE_FEOP]:{supportedODataVersion:[r.OdataVersion.v4],templateType:a.TemplateType.FormEntryObjectPage},[c.FloorplanFE.FE_OVP]:{supportedODataVersion:[r.OdataVersion.v2,r.OdataVersion.v4],templateType:a.TemplateType.OverviewPage},[c.FloorplanFE.FE_FPM]:{supportedODataVersion:[r.OdataVersion.v4],templateType:a.TemplateType.FlexibleProgrammingModel},[c.FloorplanFF.FF_SIMPLE]:{supportedODataVersion:[r.OdataVersion.v2,r.OdataVersion.v4],templateType:o.TemplateType.Basic}},function(e){e.Worklist="worklist",e.OverviewPage="ovp",e.ListReportObjectPage="lrop",e.AnalyticalListPage="alp",e.FormEntryObjectPage="feop",e.FlexibleProgrammingModel="fpm"}(l||(i.PROJECT_TYPE=l={})),function(e){e.Simple="basic"}(d||(i.Template=d={})),i.defaultPromptValues={[s.promptNames.enableCodeAssist]:!1,[s.promptNames.enableEslint]:!1,[s.promptNames.skipAnnotations]:!1,[s.promptNames.enableTypeScript]:!1}},75295:function(e,i,n){var a=this&&this.__createBinding||(Object.create?function(e,i,n,a){void 0===a&&(a=n);var o=Object.getOwnPropertyDescriptor(i,n);o&&!("get"in o?!i.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return i[n]}}),Object.defineProperty(e,a,o)}:function(e,i,n,a){void 0===a&&(a=n),e[a]=i[n]}),o=this&&this.__exportStar||function(e,i){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(i,n)||a(i,e,n)};Object.defineProperty(i,"__esModule",{value:!0}),o(n(41157),i),o(n(3842),i),o(n(42958),i),o(n(97432),i),o(n(60096),i),o(n(47129),i)},41157:(e,i)=>{var n,a;Object.defineProperty(i,"__esModule",{value:!0}),i.FloorplanFE=i.FloorplanFF=void 0,function(e){e.FF_SIMPLE="basic"}(n||(i.FloorplanFF=n={})),function(e){e.FE_FPM="fpm",e.FE_LROP="lrop",e.FE_OVP="ovp",e.FE_ALP="alp",e.FE_FEOP="feop",e.FE_WORKLIST="worklist"}(a||(i.FloorplanFE=a={}))},47129:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0})},97432:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0})},80545:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.initAppWizardCache=function initAppWizardCache(e,i){i&&!i[r]&&(i[r]={},e.debug("AppWizard based cache initialized."))},i.addToCache=function addToCache(e,i,n){logIfCacheMissing(e,n),e?.[r]&&Object.assign(e[r],i)},i.getFromCache=function getFromCache(e,i,n){return logIfCacheMissing(e,n),e?.[r]?.[i]},i.deleteCache=function deleteCache(e,i){logIfCacheMissing(e,i),e?.[r]&&delete e[r]};const a=n(58012),o=n(3675),r="$fiori-cache",s=(0,a.getHostEnvironment)();function logIfCacheMissing(e,i){s!==a.hostEnvironment.vscode||e?.[r]||i.info((0,o.t)("logMessages.warningCachingNotSupported"))}},61081:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CommandRunner=void 0;const a=n(3675),o=n(35317);i.CommandRunner=class CommandRunner{log;constructor(e){this.log=e}formatLog(e,...i){const n=i.map((e=>e.toString().trim())).join(" ").trim();this.log?.info(e?e+n:n)}run(e,i=[],n={},r=!1){return new Promise(((s,p)=>{const c={...n},l=[],d=`\`${e} ${i.join(" ")}\``;"win32"===process.platform&&(c.shell=!0);const u=(0,o.spawn)(e,i,c);let m;r&&this.formatLog("Running: ",d),u.stdout.on("data",(e=>{r&&this.formatLog(void 0,e),l.push(e.toString()),m=e.toString()})),u.stderr.on("data",(e=>{r&&this.formatLog(void 0,e),l.push(e.toString())})),u.on("error",(e=>{p(new Error(`${(0,a.t)("error.commandFailed")}: ${e.message}`))})),u.on("close",((e,i)=>{if(i){const e=-1;return r&&this.formatLog((0,a.t)("logMessages.commandFailedWithError",{command:d,signalCode:e})),p(new Error((0,a.t)("logMessages.commandErrorCodeWithStack",{command:d,signalCode:e,stack:l.join(", ")})))}if(0!==e)return r&&this.formatLog((0,a.t)("logMessages.commandFailedWithError",{command:d,errorCode:e})),p(new Error((0,a.t)("logMessages.commandErrorCodeWithStack",{command:d,errorCode:e,stack:l.join(", ")})));s(m)}))}))}}},63474:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.getFlpId=i.getSemanticObject=void 0,i.getODataVersion=function getODataVersion(e){try{return(0,a.convert)((0,s.parse)(e)).version.startsWith("4")?d.OdataVersion.v4:d.OdataVersion.v2}catch(e){throw Error((0,S.t)("error.appConfigUnparseableEdmx"))}},i.getAppId=getAppId,i.buildSapClientParam=function buildSapClientParam(e){return e?`sap-client=${e}`:""},i.getRequiredOdataVersion=function getRequiredOdataVersion(e){const i=y.FloorplanAttributes[e].supportedODataVersion;return 1===i.length?i[0]:void 0},i.getMinSupportedUI5Version=function getMinSupportedUI5Version(e,i){let n;if(i&&i!==y.FloorplanFF.FF_SIMPLE){const a=y.FloorplanAttributes[i].templateType;n=p.TemplateTypeAttributes[a].minimumUi5Version[e]}return n??(e===d.OdataVersion.v4?f.minSupportedUi5VersionV4:f.minSupportedUi5Version)},i.generateToolsId=function generateToolsId(){return(0,g.v4)()},i.getCdsUi5PluginInfo=async function getCdsUi5PluginInfo(e,i,n){const a=await(0,u.isCapJavaProject)(e)?void 0:n,o=await(0,r.checkCdsUi5PluginEnabled)(e,i,!0,a);return!1===o?void 0:o},i.getCdsAnnotations=getCdsAnnotations,i.isBTPHosted=function isBTPHosted(e){return!!e?.backendSystem?.serviceKeys||!!e?.destination&&(0,o.isAbapEnvironmentOnBtp)(e.destination)},i.getReadMeDataSourceLabel=function getReadMeDataSourceLabel(e,i=!1,n){let a;if(e===d.DatasourceType.sapSystem){const e=(0,S.t)(`readme.label.datasourceType.${d.DatasourceType.sapSystem}`),n=(0,S.t)("readme.label.sapSystemType."+(i?"abapOnBtp":"onPrem"));a=`${e} (${n})`}else e===d.DatasourceType.businessHub&&"API_HUB_ENTERPRISE"===n&&(a=(0,S.t)("readme.label.datasourceType.apiBusinessHubEnterprise"));return a??(0,S.t)(`readme.label.datasourceType.${e}`)},i.getLaunchText=async function getLaunchText(e,i,n,a){if(e){const o=e?.cdsUi5PluginInfo?.isCdsUi5PluginEnabled||n?getAppId(i,a):void 0;return(0,r.getAppLaunchText)(e.capType??"Node.js",i,o)}return(0,S.t)("readme.texts.runInstruction")},i.generateLaunchConfig=async function generateLaunchConfig(e,i,n,a,r=!1){try{if(n){const s=e.datasourceType!==d.DatasourceType.metadataFile,p=(0,m.join)(e.targetFolder,e.projectName),u={vscode:n,addStartCmd:s,sapClientParam:e.sapClientParam,flpAppId:e.flpAppId??"",flpSandboxAvailable:!0,isAppStudio:(0,o.isAppStudio)(),writeToAppOnly:r};e.odataVersion&&(u.odataVersion=e.odataVersion===d.OdataVersion.v2?"2.0":"4.0");const g={name:(0,m.basename)(e.projectName),projectRoot:p,debugOptions:u};await(0,l.createLaunchConfig)(p,g,i,a),(0,c.writeApplicationInfoSettings)(p)}}catch(e){a?.error(`${(0,S.t)("error.errorWritingApplicationFiles")} : ${e}`)}},i.convertCapRuntimeToCapProjectType=function convertCapRuntimeToCapProjectType(e="Node.js"){return"Java"===e?"CAPJava":"CAPNodejs"},i.getAnnotations=async function getAnnotations(e,i,n){if(n)return getCdsAnnotations(n,e);if(i)return{technicalName:i.TechnicalName,xml:i.Definitions}};const a=n(91125),o=n(75199),r=n(64872),s=n(39933),p=n(74174),c=n(69342),l=n(15669),d=n(69884),u=n(20787),m=n(16928),g=n(13746),f=n(3842),y=n(60096),S=n(3675);function getAppId(e,i){return[i,e].filter((e=>!!e)).join(".").replace(/[_-]/g,"")}i.getSemanticObject=e=>{const i=e.replace(/[-_.#]/g,"");return i.length>30?i.substring(0,30):i};async function getCdsAnnotations(e,i){const{appPath:n="app",projectPath:a,serviceCdsPath:o,serviceName:r}=e;if(o){const e=(0,m.join)(n,i,"annotation.cds").replace(/\\/g,"/");return{cdsFileContents:`using ${r} as service from '${await(0,u.toReferenceUri)(a,e,o)}';`,projectPath:a,appPath:n,projectName:i}}}i.getFlpId=(e,n)=>`${(0,i.getSemanticObject)(e)}${n?"-"+n:""}`},28355:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_POST_APP_GEN_COMMAND=void 0,i.runHooks=async function runHooks(e,n,o){return"app-generated"===e?async function postGenerationHook(e,n){if(e.vscodeInstance)try{const o=e.options?.followUpCommand??i.DEFAULT_POST_APP_GEN_COMMAND;n?.info((0,a.t)("logMessages.attemptingToExecutePostGenerationCommand",{command:o})),await(e.vscodeInstance.commands?.executeCommand?.(o,e.hookParameters))}catch(e){try{const i=e.toString().replace("Error: command","Command");n?.warn(i)}catch{}}}(n,o):Promise.reject(new Error((0,a.t)("error.unsupportedPostGenerationEvent",{event:e})))};const a=n(3675);i.DEFAULT_POST_APP_GEN_COMMAND="sap.ux.application.generated.handler"},3675:function(e,i,n){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i,"__esModule",{value:!0}),i.defaultProjectNumber=i.fioriAppSubGeneratorNs=void 0,i.initI18nFioriAppSubGenerator=initI18nFioriAppSubGenerator,i.t=function t(e,n){n?.ns||(n=Object.assign(n??{},{ns:i.fioriAppSubGeneratorNs}));return o.default.t(e,n)};const o=a(n(82032)),r=a(n(5208));async function initI18nFioriAppSubGenerator(){await o.default.init({resources:{en:{[i.fioriAppSubGeneratorNs]:r.default}},lng:"en",fallbackLng:"en",defaultNS:i.fioriAppSubGeneratorNs,ns:[i.fioriAppSubGeneratorNs],interpolation:{format:function odataVersionFormatter(e){return e?` V${e}`:""},defaultVariables:{defaultProjectNumber:i.defaultProjectNumber}},missingInterpolationHandler:()=>""})}i.fioriAppSubGeneratorNs="fiori-app-sub-generator",i.defaultProjectNumber=1,initI18nFioriAppSubGenerator().catch((()=>{}))},60843:function(e,i,n){var a=this&&this.__createBinding||(Object.create?function(e,i,n,a){void 0===a&&(a=n);var o=Object.getOwnPropertyDescriptor(i,n);o&&!("get"in o?!i.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return i[n]}}),Object.defineProperty(e,a,o)}:function(e,i,n,a){void 0===a&&(a=n),e[a]=i[n]}),o=this&&this.__exportStar||function(e,i){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(i,n)||a(i,e,n)};Object.defineProperty(i,"__esModule",{value:!0}),o(n(3675),i),o(n(47572),i),o(n(63474),i),o(n(97836),i),o(n(61081),i),o(n(28355),i),o(n(34041),i),o(n(80545),i)},34041:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.assignSapUxLayerValue=function assignSapUxLayerValue(e=!1){if(e)return;return(0,a.isInternalFeaturesSettingEnabled)()?"VENDOR":"CUSTOMER_BASE"};const a=n(98434)},97836:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.updateDependentStep=updateDependentStep,i.hasActiveStep=function hasActiveStep(e,i){return getStepIndex(e,i)>-1},i.hasStep=function hasStep(e,i){return!!e.find((e=>e.key===i))},i.getYeomanUiStepConfig=function getYeomanUiStepConfig(e){const i=[],n={};e.forEach(((e,a)=>{if(e.dependency){if(a-1<0)throw(0,o.t)("error.invalidYUIStepConfig");const i=e.dependency;i&&(n[i]||(n[i]=[]),n[i].push(e))}else i.push(e)}));return{activeSteps:new a.Prompts(i),dependentMap:n}},i.validateNextStep=function validateNextStep(e,i,n,a){n&&updateDependentStep(i,n,e,a);return!0};const a=n(73667),o=n(3675);function getStepIndex(e,i){return i.items?.findIndex((i=>i.name===(0,o.t)(e)))}function updateDependentStep(e,i,n,a){i.forEach((i=>{const o=i.dependentMap[e],r=[];o.forEach((e=>{const n=getStepIndex(e.name,i.activeSteps);r.push(n)}));const s=getStepIndex(e,i.activeSteps);if(a)if(n){let e,n=0;for(const r of o){if(r.name===a){e=r;break}getStepIndex(r.name,i.activeSteps)>=0&&n++}if(e){getStepIndex(e.name,i.activeSteps)<0&&i.activeSteps.splice(s+n+1,0,[{name:e.name,description:e.description}])}}else{const e=getStepIndex(a,i.activeSteps);e>=0&&i.activeSteps.splice(e,1,[])}else if(r.length>0&&r[0]>=0&&!n&&r.forEach((()=>{i.activeSteps.splice(r[0],1,[])})),r.length>0&&r[0]<0&&n)for(let e=0;e<r.length;e++){const n=o[e];i.activeSteps.splice(s+e+1,0,[{name:n.name,description:n.description}])}}))}},47572:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.getTelemetrySapSystemType=function getTelemetrySapSystemType(e){if((0,o.isBTPHosted)(e))return"SCP";if(e?.destination&&(0,a.isOnPremiseDestination)(e.destination)||e?.backendSystem&&!e.backendSystem.serviceKeys)return"ABAP";if(e?.serviceProvider)return"CF"},i.getTelemetryBusinessHubType=function getTelemetryBusinessHubType(e){if("API_HUB"===e)return"BusinessAcceleratorHub";if("API_HUB_ENTERPRISE"===e)return"BusinessHubEnterprise";return};const a=n(75199),o=n(63474)},5208:e=>{e.exports=JSON.parse('{"floorplans":{"label":{"basic":"Basic{{odataVersion, odataVersionFormatter}}","fpm":"Custom Page{{odataVersion, odataVersionFormatter}}","lrop":"List Report Page{{odataVersion, odataVersionFormatter}}","worklist":"Worklist Page{{odataVersion, odataVersionFormatter}}","alp":"Analytical List Page{{odataVersion, odataVersionFormatter}}","ovp":"Overview Page{{odataVersion, odataVersionFormatter}}","feop":"Form Entry Object Page{{odataVersion, odataVersionFormatter}}"},"description":{"basic":"Create a freestyle application, starting with an empty page.","fpm":"Create an SAP Fiori elements application containing a custom page based on the flexible programming model.","lrop":"Create an SAP Fiori elements application containing a list report and an object page.","worklist":"Create an SAP Fiori elements application containing a worklist and an object page.","alp":"Create an SAP Fiori elements application containing an analytical list and an object page.","ovp":"Create an SAP Fiori elements application containing an overview page.","feop":"Create an SAP Fiori elements application containing an object page optimized for data entry."}},"defaults":{"projectName":"project{{defaultProjectNumber}}","projectTitle":"App Title","projectDescription":"An SAP Fiori application."},"readme":{"label":{"mainEntity":"Main Entity","filterEntityType":"Filter Entity Type","navigationEntity":"Navigation Entity","sapSystemType":{"abapOnBtp":"ABAP Environment on SAP Business Technology Platform","s4hc":"SAP S/4HANA Cloud Environment","onPrem":"ABAP On Premise"},"datasourceType":{"sapSystem":"SAP System","buinessHub":"SAP Business Accelerator Hub","apiBusinessHubEnterprise":"SAP API Business Hub Enterprise","capProject":"Local Cap","odataServiceUrl":"OData Url","none":"None","metadataFile":"File","projectSpecificDestination":"MTA File"}},"texts":{"runInstruction":"In order to launch the generated app, simply run the following from the generated app root folder:\\n\\n```\\n npm start\\n```"}},"texts":{"notApplicable":"N/A"},"steps":{"templateSelection":{"description":"Choose your application template.","title":"Template Selection"},"datasourceAndServiceSelection":{"description":"Configure the data source and select a service.","title":"Data Source and Service Selection"},"entityOrViewConfig":{"description":"Configure the selected service.","title":"Entity Selec