UNPKG

@sap/generator-fiori

Version:

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

1 lines 55.8 kB
"use strict";exports.id=6859,exports.ids=[6859],exports.modules={79731(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.FioriAppGeneratorHeadless=void 0;const n=a(98434),r=a(58012),o=a(55571),s=a(3675),p=a(35462),c=a(40819);class FioriAppGeneratorHeadless extends o.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{const e=this.options.appConfig;e.service?.externalServices&&(e.service.externalServices=(0,c.resolveExternalServices)(e.service.externalServices)),this.state=(0,p.transformExtState)(e)}catch(e){this.log((0,s.t)("logMessages.generatorExiting")),this.env.error(e)}}async initializing(){await(0,s.initI18nFioriAppSubGenerator)(),await r.TelemetryHelper.initTelemetrySettings({consumerModule:{name:o.APP_GENERATOR_MODULE,version:this.rootGeneratorVersion()},internalFeature:(0,n.isInternalFeaturesSettingEnabled)(),watchTelemetrySettingStore:!1}),r.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},40819(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.resolveMetadata=resolveMetadata,i.resolveEntityData=resolveEntityData,i.resolveExternalServices=function resolveExternalServices(e){return e.map(e=>({...e,metadata:resolveMetadata(e.metadata),entityData:e.entityData?resolveEntityData(e.entityData):void 0}))};const n=a(73024),r=a(76760);function resolveMetadata(e){if(e.trimStart().startsWith("<"))return e;const i=(0,r.isAbsolute)(e)?e:(0,r.resolve)(process.cwd(),e);if(!(0,n.existsSync)(i))throw new Error(`Metadata file not found: ${i}`);try{return(0,n.readFileSync)(i,"utf-8")}catch(e){throw new Error(`Failed to read metadata file: ${i}. ${e instanceof Error?e.message:e}`)}}function resolveEntityData(e){if(Array.isArray(e))return e;const i=(0,r.isAbsolute)(e)?e:(0,r.resolve)(process.cwd(),e);if(!(0,n.existsSync)(i))throw new Error(`Entity data file not found: ${i}`);try{return JSON.parse((0,n.readFileSync)(i,"utf-8"))}catch(e){throw new Error(`Failed to read or parse entity data file: ${i}. ${e instanceof Error?e.message:e}`)}}},35462(e,i,a){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:a,floorplan:n}=e,r={project:_setProjectDefaults(i),service:_setServiceDefaults(n,a),floorplan:l.FloorplanFE[n]??l.FloorplanFF[n]};r.service.capService&&(r.project.targetFolder=(0,c.join)(r.service.capService.projectPath,r.service.capService.appPath??""));"FF_SIMPLE"!==n&&e.entityConfig?(r.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),a?.annotations&&(r.service.annotations=Array.isArray(a.annotations)?a?.annotations:[a?.annotations])):"FF_SIMPLE"===e.floorplan&&(r.viewName=e.project.viewName);return r};const n=a(74174),r=a(58012),o=a(69884),s=a(4389),p=a(97133),c=a(76760),l=a(75295),d=a(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],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 a;if(i?.edmx)a=(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:o.DatasourceType.none}}const s={host:i?.host,servicePath:i?.servicePath,client:i?.client,edmx:i?.edmx,version:a,valueListMetadata:i?.externalServices};if(i?.destination)return s.destinationName=i.destination,s.source=o.DatasourceType.sapSystem,s;if(i?.apiHubApiKey)s.apiHubConfig={apiHubKey:i.apiHubApiKey,apiHubType:"API_HUB"},s.source=o.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,r.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=n.OdataVersion.v4,s.source=o.DatasourceType.capProject}else s.source=!i?.servicePath&&i?.edmx?o.DatasourceType.metadataFile:i?.edmx?i?.scp?o.DatasourceType.sapSystem:o.DatasourceType.odataServiceUrl:o.DatasourceType.none;return s}},67001(e,i,a){Object.defineProperty(i,"__esModule",{value:!0});const n=a(55571);i.default=n.FioriAppGenerator},30774(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.runPostGenerationTasks=async function runPostGenerationTasks({service:e,project:i},a,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,enableVirtualEndpoints:i.enableVirtualEndpoints},a,d,l);const g=(0,o.getHostEnvironment)();if(e.backendSystem&&g!==o.hostEnvironment.bas&&e.backendSystem.newOrUpdated){(await(0,s.getService)({logger:l,entityName:"system"})).write(e.backendSystem,{force:!0}).catch(i=>{l.error((0,c.t)("logMessages.backendSystemSaveError",{system:e.backendSystem?.name,error:i.message}))})}e.capService&&u&&u.showInformation((0,c.t)("wizardMessages.filesGenerated"),n.MessageType.notification);g!==o.hostEnvironment.bas&&"API_HUB"===e.apiHubConfig?.apiHubType&&await async function saveApiHubApiKey(e,i){let a;if(!(0,r.isAppStudio)()){const n=await(0,s.getService)({logger:i,entityName:"api-hub"}),r=new s.ApiHubSettings({apiKey:e});a=await n.write(r)}return Boolean(a)}(e.apiHubConfig.apiHubKey,l);const f=(0,p.join)(i.targetFolder,i.name);l.info((0,c.t)("logMessages.applicationGenerationSuccess",{targetFolder:f})),await(0,o.sendTelemetry)("GENERATION_SUCCESS",o.TelemetryHelper.telemetryData,f),await async function runPostGenHooks(e,i,a,n){await(0,c.runHooks)("app-generated",{hookParameters:{fsPath:e,...n?.cmdParams},vscodeInstance:a,options:{command:n?.cmdName}},i)}(f,l,d,m)};const n=a(73667),r=a(75199),o=a(58012),s=a(2218),p=a(76760),c=a(60843)},38904(e,i,a){var n=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 r=a(73667),o=a(75199),s=a(98434),p=a(74174),c=a(20280),l=a(58012),d=a(69884),u=a(10736),m=a(97133),g=a(76760),f=n(a(91170)),y=a(75295),v=a(60843),S=a(30774),h=a(96016),P=a(48205),E=a(86242),T=a(6),A=a(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,v.initI18nFioriAppSubGenerator)(),this.options.appWizard&&(this.appWizard=this.options.appWizard,(0,v.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,v.hasStep)(this.fioriSteps,y.STEP_DATASOURCE_AND_SERVICE)){const a=(0,v.getFromCache)(this.appWizard,"service",FioriAppGenerator.logger);(0,v.restoreServiceProviderLoggers)(FioriAppGenerator.logger,a?.connectedSystem?.serviceProvider);const n={capService:a?.capService??this.state.service?.capService,requiredOdataVersion:(0,v.getRequiredOdataVersion)(this.state.floorplan),allowNoDatasource:i,promptOptions:e.promptSettings?.["@sap/generator-fiori"],showCollabDraftWarning:e.showCollabDraftWarning,workspaceFolders:e.workspaceFolders};let r=await(0,P.promptOdataServiceAnswers)(n,FioriAppGenerator.logger,this.env.adapter,a?.connectedSystem);(0,l.getHostEnvironment)()!==l.hostEnvironment.cli&&(r.source===d.DatasourceType.none||r.edmx?(a?.connectedSystem&&JSON.stringify(r.connectedSystem?.backendSystem)===JSON.stringify(a?.connectedSystem?.backendSystem)&&(r.connectedSystem=a?.connectedSystem),(0,v.addToCache)(this.appWizard,{service:r},FioriAppGenerator.logger)):r=(0,v.getFromCache)(this.appWizard,"service",FioriAppGenerator.logger)??r,r.source===d.DatasourceType.none||r.edmx||FioriAppGenerator.logger?.error((0,v.t)("error.fatalError"))),(0,v.restoreServiceProviderLoggers)(FioriAppGenerator.logger,r?.connectedSystem?.serviceProvider),this.state.service={...this.state?.service,...r}}if(i){const e=await this.prompt([(0,P.getViewQuestion)()]);this.state.viewName=e.viewName}else if(this.state.service.edmx){const i=(0,T.getTemplateType)(this.state.floorplan),a={defaultMainEntityName:e.preselectedEntityName,useAutoComplete:(0,l.getHostEnvironment)()===l.hostEnvironment.cli,hideTableLayoutPrompts:!1===e.showLayoutPrompts,...i===y.FloorplanFE.FE_FPM&&{displayPageBuildingBlockPrompt:!0}},n=(0,d.getEntityRelatedPrompts)(this.state.service.edmx,i,!!this.state.service.capService,a,this.state.service.annotations?.[0],FioriAppGenerator.logger,(0,l.getHostEnvironment)()!==l.hostEnvironment.cli),r=await this.prompt(n);this.state.entityRelatedConfig=Object.assign(this.state.entityRelatedConfig??{},r)}else FioriAppGenerator.logger.error((0,v.t)("error.edmxNotFound")),this._exitOnError((0,v.t)("error.edmxNotFound"));if(this.state.service.capService&&!this.state.service.capService.cdsUi5PluginInfo&&(this.state.service.capService.cdsUi5PluginInfo=await(0,v.getCdsUi5PluginInfo)(this.state.service.capService.projectPath,this.fs,this.state.service.capService.cdsVersionInfo)),(0,v.hasStep)(this.fioriSteps,y.STEP_PROJECT_ATTRIBUTES)){const{ui5AppAnswers:i,localUI5Version:a}=await(0,P.promptUI5ApplicationAnswers)({projectName:this.state.project?.name,targetFolder:this.state.project?.targetFolder,service:this.state.service,entityRelatedConfig:this.state.entityRelatedConfig,floorplan:this.state.floorplan,promptSettings:e.promptSettings?.["@sap/generator-fiori"],promptExtension:e.extensions},[this.yeomanUiStepConfig],this.env.adapter);this.state.project=Object.assign(this.state.project??{},i,{ui5Version:i?.ui5Version||a,localUI5Version:a}),this.state.project.flpAppId=(0,l.getFlpId)((0,v.getAppId)(this.state.project.name,i.namespace??""),this.state.floorplan===y.FloorplanFF.FF_SIMPLE?y.defaultNavActionDisplay:y.defaultNavActionTile)}this.state.project?.addDeployConfig&&((0,v.hasStep)(this.fioriSteps,y.STEP_DEPLOY_CONFIG)&&!(0,v.hasActiveStep)((0,v.t)("steps.deployConfig.title"),this.yeomanUiStepConfig.activeSteps)&&(0,v.updateDependentStep)((0,v.t)("steps.projectAttributesConfig.title"),[this.yeomanUiStepConfig],!0,(0,v.t)("steps.deployConfig.title")),await(0,E.addDeployGen)({service:this.state.service,projectName:this.state.project.name,targetFolder:this.state.project.targetFolder,applicationType:this.state.floorplan===y.FloorplanFF.FF_SIMPLE?"FF":"FE"},this.composeWith.bind(this),FioriAppGenerator.logger,this.appWizard,e.promptSettings?.["@sap-ux/deploy-config-sub-generator"])),this.state.project?.addFlpConfig&&((0,v.hasStep)(this.fioriSteps,y.STEP_FLP_CONFIG)&&!(0,v.hasActiveStep)((0,v.t)("steps.flpConfig.title"),this.yeomanUiStepConfig.activeSteps)&&(0,v.updateDependentStep)((0,v.t)("steps.projectAttributesConfig.title"),[this.yeomanUiStepConfig],!0,(0,v.t)("steps.flpConfig.title")),await(0,E.addFlpGen)({projectName:this.state.project.name,targetFolder:this.state.project.targetFolder,title:this.state.project.title,skipPrompt:!(0,v.hasStep)(this.fioriSteps,y.STEP_FLP_CONFIG)},this.composeWith.bind(this),FioriAppGenerator.logger,e.vscode,this.appWizard,e.promptSettings?.["@sap-ux/flp-config-sub-generator"]))}catch(e){FioriAppGenerator.logger.error(`${(0,v.t)("error.fatalError")} : ${e}`),this._exitOnError(e)}}async writing(){try{this.generationTime0=performance.now(),l.TelemetryHelper.markAppGenStartTime();const{service:e,project:i,floorplan:a}=this.state;FioriAppGenerator.logger.info((0,v.t)("logMessages.copyingTemplateFiles",{templateName:this.state.floorplan}));const n=this.destinationRoot((0,g.join)(i.targetFolder,i.name)),r=performance.now();let s;if(this.state.floorplan===y.FloorplanFF.FF_SIMPLE){const i=await(0,T.transformState)(this.state,!!e.capService||this.options.generateIndexHtml);await(0,c.generate)(n,i,this.fs),s=i}else{const i=await(0,T.transformState)(this.state,!!e.capService||this.options.generateIndexHtml);await(0,p.generate)(n,i,this.fs),s=i}const u=performance.now();FioriAppGenerator.logger.debug(`Writing Fiori application files from template took ${Math.round(u-r)} milliseconds.`),l.TelemetryHelper.createTelemetryData({Template:(0,v.t)(`floorplans.label.${a}`,{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,v.getTelemetrySapSystemType)(e.connectedSystem):"n/a",AppGenBusinessHubType:(0,v.getTelemetryBusinessHubType)(e.apiHubConfig?.apiHubType),EnableEslint:i.enableEslint,EnableTypeScript:i.enableTypeScript,EnableVirtualEndpoints:i.enableVirtualEndpoints,ToolsId:s.app.sourceTemplate?.toolsId,ValueHelpCount:e.valueListMetadata?.length??0}),e.apiHubConfig&&(0,o.isAppStudio)()&&(0,A.writeAPIHubKeyFiles)(this.fs,n,e.apiHubConfig);const f={ui5Version:s.ui5?.minUI5Version};await(0,A.writeAppGenInfoFiles)(this.state,y.generatorName,this.generatorVersion,n,this.fs,f)}catch(e){FioriAppGenerator.logger.fatal(`${(0,v.t)("error.errorWritingApplicationFiles")} : ${e}`),this._exitOnError(e)}}async install(){this.options.skipInstall?FioriAppGenerator.logger.info((0,v.t)("logMessages.installSkippedOptionSpecified")):await(0,h.installDependencies)({appPackagePath:this.destinationPath(),capService:this.state.service.capService,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,v.deleteCache)(this.appWizard,FioriAppGenerator.logger),await(0,S.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,enableVirtualEndpoints:this.state.project.enableVirtualEndpoints}},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,v.t)("error.fatalError")} : ${e}`,r.MessageType.notification),new Error(`${(0,v.t)("error.fatalError")} : ${e}`)}}i.FioriAppGenerator=FioriAppGenerator},72255(e,i){Object.defineProperty(i,"__esModule",{value:!0})},55571(e,i,a){var n=this&&this.__createBinding||(Object.create?function(e,i,a,n){void 0===n&&(n=a);var r=Object.getOwnPropertyDescriptor(i,a);r&&!("get"in r?!i.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return i[a]}}),Object.defineProperty(e,n,r)}:function(e,i,a,n){void 0===n&&(n=a),e[n]=i[a]}),r=this&&this.__exportStar||function(e,i){for(var a in e)"default"===a||Object.prototype.hasOwnProperty.call(i,a)||n(i,e,a)};Object.defineProperty(i,"__esModule",{value:!0}),r(a(38904),i),r(a(72255),i)},96016(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.installDependencies=async function installDependencies({appPackagePath:e,capService:i,useNpmWorkspaces:a,ui5Version:o},s){let p;i&&(p={rootPath:i.projectPath,depsInstallPath:a?i.projectPath:e,useWorkspaces:a,ui5Version:o});await async function installProjectDependencies(e,i,a){const o="win32"===process.platform?"npm.cmd":"npm",s=new r.CommandRunner(i),p=[];p.unshift("install");try{i?.info((0,r.t)("logMessages.installingDependencies",{path:e}));const c=performance.now();await s.run(o,p,{cwd:e},!0),n.TelemetryHelper.createTelemetryData({installFailure:!1}),a?.useWorkspaces&&await s.run(o,["install","--no-audit","--no-fund","--silent","--prefer-offline","--no-progress"],{cwd:a.rootPath},!0);const l=performance.now();i?.debug((0,r.t)("logMessages.dependenciesInstalled",{installTime:Math.round((l-c)/1e3)}))}catch(e){i?.info(e??(0,r.t)("logMessages.errorInstallingDependencies")),n.TelemetryHelper.createTelemetryData({installFailure:!0}),(0,n.sendTelemetry)("GENERATION_INSTALL_FAIL",n.TelemetryHelper.telemetryData)}}(p?.depsInstallPath??e,s,p)};const n=a(58012),r=a(60843)},48205(e,i,a){var n=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:a,promptSettings:n,floorplan:r,promptExtension:s,entityRelatedConfig:p},d,u){let m;m=u?.actualAdapter?u.actualAdapter:u;const g=await createUI5ApplicationPromptOptions({service:e,appGenStepConfigList:d,floorplan:r,projectName:i,targetFolder:a,promptSettings:n,promptExtension:s,entityRelatedConfig:p}),f=await(0,c.prompt)(m,g,e.capService?.cdsUi5PluginInfo,(0,o.getHostEnvironment)()!==o.hostEnvironment.cli),y=(await(0,l.getUI5Versions)({minSupportedUI5Version:g.ui5Version?.minUI5Version,onlyVersionNumbers:!0,onlyNpmVersion:!0,ui5SelectedVersion:f?.ui5Version??l.latestVersionString}))[0]?.version;return{ui5AppAnswers:f,localUI5Version:y}},i.promptOdataServiceAnswers=async function promptOdataServiceAnswers(e,i,a,n){let c;c=a?.actualAdapter?a.actualAdapter:a;const l=function createOdataServicePromptOptions(e){let i;const a=(0,o.getHostEnvironment)()!==o.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,...e.promptOptions?.datasourceType},[s.promptNames.metadataFilePath]:{requiredOdataVersion:e.requiredOdataVersion,...e.promptOptions?.metadataFilePath},[s.promptNames.capProject]:{capSearchPaths:e.workspaceFolders??[],defaultChoice:e.capService?.projectPath,useAutoComplete:(0,o.getHostEnvironment)()===o.hostEnvironment.cli,...e.promptOptions?.capProject},[s.promptNames.capService]:{defaultChoice:e.capService,...e.promptOptions?.capService},[s.promptNames.serviceUrl]:{requiredOdataVersion:e.requiredOdataVersion,showCollaborativeDraftWarning:e.showCollabDraftWarning&&a,...e.promptOptions?.serviceUrl},[s.promptNames.serviceSelection]:{useAutoComplete:(0,o.getHostEnvironment)()===o.hostEnvironment.cli,requiredOdataVersion:e.requiredOdataVersion,showCollaborativeDraftWarning:e.showCollabDraftWarning&&a,...e.promptOptions?.serviceSelection},[s.promptNames.userSystemName]:{...e.promptOptions?.userSystemName},[s.promptNames.systemSelection]:{destinationFilters:{odata_abap:!0,full_service_url:!0,partial_service_url:!0},useAutoComplete:!a,includeCloudFoundryAbapEnvChoice:!0,...e.promptOptions?.systemSelection},[s.promptNames.valueHelpDownload]:{hide:!1,...e.promptOptions?.valueHelpDownload}}}(e),d=await(0,s.prompt)(c,l,i,(0,r.isFeatureEnabled)(m.Features.enableGAIntegration),p.ClientFactory.getTelemetryClient(),(0,o.getHostEnvironment)()!==o.hostEnvironment.cli,n);return{host:d.origin,client:d.sapClient,servicePath:d.servicePath,serviceId:d.serviceId,edmx:d.metadata,annotations:d.annotations,valueListMetadata:d.valueListMetadata,version:d.odataVersion,capService:d.capService,source:d.datasourceType,localEdmxFilePath:d.metadataFilePath,connectedSystem:d.connectedSystem,ignoreCertError:d.ignoreCertError}},i.createUI5ApplicationPromptOptions=createUI5ApplicationPromptOptions;const r=a(98434),o=a(58012),s=a(69884),p=a(10736),c=a(4389),l=a(97133),d=n(a(47886)),u=a(76760),m=a(75295),g=a(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){const{service:i,appGenStepConfigList:a,floorplan:n,projectName:r,targetFolder:p,promptSettings:f,promptExtension:y,entityRelatedConfig:v}=e,S={hide:f?.[c.promptNames.ui5Version]?.hide??!1,minUI5Version:f?.[c.promptNames.ui5Version]?.minUI5Version??(0,g.getMinSupportedUI5Version)(i.version??s.OdataVersion.v2,n,v),includeSeparators:(0,o.getHostEnvironment)()!==o.hostEnvironment.cli,useAutocomplete:(0,o.getHostEnvironment)()===o.hostEnvironment.cli},h=i.host?await(0,l.getSapSystemUI5Version)(i.host):void 0;let P;h&&(S.defaultChoice={name:`${h} (Source system version)`,value:h}),P=i.capService?.projectPath?{default:(0,u.join)(i.capService.projectPath,i.capService.appPath??"")}:{defaultValue:p,validateFioriAppFolder:!0};const E={[c.promptNames.name]:{defaultValue:r},[c.promptNames.targetFolder]:P,[c.promptNames.ui5Version]:S,[c.promptNames.skipAnnotations]:{hide:!i.capService},[c.promptNames.addDeployConfig]:{validatorCallback:e=>{(0,g.validateNextStep)(e,(0,g.t)("steps.projectAttributesConfig.title"),a,(0,g.t)("steps.deployConfig.title"))}},[c.promptNames.addFlpConfig]:{validatorCallback:e=>{(0,g.validateNextStep)(e,(0,g.t)("steps.projectAttributesConfig.title"),a,(0,g.t)("steps.flpConfig.title"))}},[c.promptNames.enableTypeScript]:{default:m.defaultPromptValues[c.promptNames.enableTypeScript]},[c.promptNames.enableVirtualEndpoints]:{hide:"Java"===i.capService?.capType},[c.promptNames.enableEslint]:{hide:!0,default:!0}},T=(0,d.default)(E,f);return[c.promptNames.skipAnnotations,c.promptNames.enableEslint,c.promptNames.ui5Theme].forEach(e=>{const i=T[e],a=m.defaultPromptValues[e];i?(i.advancedOption=!0,i.default||void 0===a||(i.default=a)):(T[e]={advancedOption:!0},void 0!==a&&(T[e].default=a))}),y&&Object.entries(y).forEach(([e,i])=>{Object.assign(T[e]??Object.assign(T,{[e]:{}})[e],i)}),T}i.getViewQuestion=()=>({type:"input",name:"viewName",message:(0,g.t)("prompts.viewName.message"),guiOptions:{breadcrumb:!0},default:"View1",validate:validateViewName})},86242(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.addDeployGen=async function addDeployGen({service:e,projectName:i,targetFolder:a,applicationType:n},r,o,s,p){await 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:s,telemetryData:{appType:n},logWrapper:o,subGenPromptOptions:p})},i.addFlpGen=async function addFlpGen({projectName:e,targetFolder:i,title:a,skipPrompt:s},p,c,l,d,u){let m={launchFlpConfigAsSubGenerator:!0,appWizard:l,vscode:d,appRootPath:(0,n.join)(i,e),logWrapper:c,inquirerPromptOptions:u};s&&(m={...m,skipPrompt:!0,inboundConfig:{semanticObject:(0,o.getSemanticObject)(e),action:r.defaultNavActionDisplay,title:a}});await p("@sap/fiori:flp-config",m)};const n=a(76760),r=a(75295),o=a(58012)},6(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.getTemplateType=getTemplateType,i.transformTemplateType=transformTemplateType,i.transformState=async function transformState({project:e,service:i,floorplan:a,entityRelatedConfig:n,viewName:o},c=!0){const m=function getBaseAppConfig({project:e,service:i,floorplan:a,entityRelatedConfig:n,viewName:o},s){const p=(0,u.getAppId)(e.name,e.namespace),c=i.capService?(0,u.convertCapRuntimeToCapProjectType)(i.capService.capType):"EDMXBackend",m=transformTemplateType(a,n,o),{minUI5Version:g,ui5Version:f}=function getUI5VersionDefault(e,i,a){if(!i||i===l.latestVersionString){return{minUI5Version:(0,u.getMinSupportedUI5Version)(a??r.OdataVersion.v4,e)}}return{minUI5Version:i,ui5Version:i}}(a,e.ui5Version,i.version),y={app:{id:p,title:e.title,description:e.description,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:a===d.FloorplanFF.FF_SIMPLE?["sap.m","sap.ui.core"]:void 0,ui5Libs:[]},appOptions:{eslint:e.enableEslint,typescript:e.enableTypeScript,sapux:e.sapux,loadReuseLibs:!i.capService&&!e.enableVirtualEndpoints,addTests:canGenerateTests(m.type),generateIndex:s,addAnnotations:n?.addFEOPAnnotations||n?.addLineItemAnnotations,useVirtualPreviewEndpoints:e.enableVirtualEndpoints,addCdsUi5Plugin:e.addCdsUi5Plugin??!0},template:m};return y}({project:e,service:i,floorplan:a,entityRelatedConfig:n,viewName:o},c);if(i.source!==s.DatasourceType.none){m.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??r.OdataVersion.v4,metadata:i.edmx&&!i.capService?i.edmx:void 0,name:d.MAIN_DATASOURCE_NAME,client:i.client,model:m.template?.type===r.TemplateType.OverviewPage?d.MAIN_MODEL_NAME:"",previewSettings:i.previewSettings??{},annotations:!0!==e.skipAnnotations?await(0,u.getAnnotations)(e.name,i.annotations?.[0],i?.capService):void 0,ignoreCertError:i.ignoreCertError,externalServices:i.valueListMetadata};const a=i.destinationName??i.connectedSystem?.destination?.Name;if(a&&(m.service.destination={name:a}),i.capService){const e=(0,g.isFeatureEnabled)("sap.ux.testBetaFeatures.disableCapRootPkgJsonUpdates"),{cdsUi5PluginInfo:a,...n}=i.capService;m.service.capService={...n,cdsUi5PluginInfo:a},!0===m.appOptions?.addCdsUi5Plugin&&(m.service.capService.cdsUi5PluginInfo=m.service.capService.cdsUi5PluginInfo??{},m.service.capService.cdsUi5PluginInfo.isWorkspaceEnabled=!0,m.service.capService.cdsUi5PluginInfo.hasCdsUi5Plugin=!0),m.appOptions={...m.appOptions,disableCapRootPkgJsonUpdates:e}}m.service.previewSettings={...m.service.previewSettings,...getPreviewSettings(i)}}return m};const n=a(75199),r=a(74174),o=a(20280),s=a(69884),p=a(10894),c=a(2218),l=a(97133),d=a(75295),u=a(60843),m=a(58012),g=a(98434);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,a){if(e===d.FloorplanFF.FF_SIMPLE)return{type:o.TemplateType.Basic,settings:{viewName:a}};const n=getTemplateType(e);let s;i?.mainEntity&&(s={mainEntityName:i.mainEntity.entitySetName},i.mainEntity.mainEntityParameterName&&(s.mainEntityParameterName=i.mainEntity.mainEntityParameterName),i?.navigationEntity?.navigationPropertyName&&(s.navigationEntity={EntitySet:i.navigationEntity?.entitySetName,Name:i.navigationEntity?.navigationPropertyName}));const p=i?.addPageBuildingBlock?{pageBuildingBlockTitle:i.pageBuildingBlockTitle}:{};return{type:n,settings:{[r.TemplateType.ListReportObjectPage]:{entityConfig:s,tableType:i?.tableType,hierarchyQualifier:i?.hierarchyQualifier},[r.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},[r.TemplateType.FormEntryObjectPage]:{entityConfig:s},[r.TemplateType.OverviewPage]:{filterEntitySet:i?.filterEntitySet?.entitySetName},[r.TemplateType.Worklist]:{entityConfig:s,tableType:i?.tableType,hierarchyQualifier:i?.hierarchyQualifier},[r.TemplateType.FlexibleProgrammingModel]:{entityConfig:s,...p,pageName:d.FPM_DEFAULT_PAGE_NAME}}[n]}}function canGenerateTests(e){return[r.TemplateType.FormEntryObjectPage,r.TemplateType.AnalyticalListPage,r.TemplateType.ListReportObjectPage,r.TemplateType.Worklist,r.TemplateType.FlexibleProgrammingModel].includes(e)||e===o.TemplateType.Basic}function getUI5Uri(){const e=process.env.UI5_CDN_URL?.replace(/\/{1,2083}$/,"");return e??d.UI5_VERSION_PROPS.OFFICIAL_URL}function getPreviewSettings(e){let i={};if(e.destinationAuthType===n.Authentication.SAML_ASSERTION||e.connectedSystem?.destination?.Authentication===n.Authentication.SAML_ASSERTION||c.AuthenticationType.ReentranceTicket===e.connectedSystem?.backendSystem?.authenticationType||e.connectedSystem?.backendSystem?.serviceKeys||(0,m.getHostEnvironment)()===m.hostEnvironment.bas&&e.connectedSystem?.destination&&(0,n.isAbapEnvironmentOnBtp)(e.connectedSystem?.destination)?i={authenticationType:c.AuthenticationType.ReentranceTicket}:e.apiHubConfig&&(i={apiHub:!0}),"odata_service"===e.connectedSystem?.backendSystem?.connectionType){const a=e.connectedSystem.backendSystem.url;i={...i,connectPath:a?new URL(a).pathname:void 0}}return i}},41503(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.writeAppGenInfoFiles=async function writeAppGenInfoFiles({project:e,service:i,floorplan:a,entityRelatedConfig:p,appGenInfo:c},l,d,u,m,g){const f=(0,s.t)(`floorplans.label.${a}`,{odataVersion:i.version}),y=(0,s.getReadMeDataSourceLabel)(i.source,(0,s.isAbapCloud)(i.connectedSystem),i.apiHubConfig?.apiHubType),v=Object.assign({generatorName:l,generatorVersion:d,template:f,serviceType:y,serviceUrl:`${i.capService?o.DEFAULT_CAP_HOST:i.host??""}${i.servicePath??""}`||(0,s.t)("texts.notApplicable")},g,c);v.entityRelatedConfig??=[],p?.mainEntity&&v.entityRelatedConfig.push({type:(0,s.t)("readme.label.mainEntity"),value:p.mainEntity.entitySetName});p?.navigationEntity&&v.entityRelatedConfig.push({type:(0,s.t)("readme.label.navigationEntity"),value:p.navigationEntity.navigationPropertyName||"None"});p?.filterEntitySet&&v.entityRelatedConfig.push({type:(0,s.t)("readme.label.filterEntityType"),value:p.filterEntitySet.entitySetName});const S=await(0,s.getLaunchText)(i.capService,e.name,!!e.enableTypeScript,e.namespace),h={generationDate:v?.generationDate??(new Date).toString(),generatorPlatform:v?.generatorPlatform??(0,n.getHostEnvironment)().name,serviceType:v?.serviceType,metadataFilename:i.localEdmxFilePath?(0,r.basename)(i.localEdmxFilePath):"",serviceId:i.serviceId,serviceUrl:v?.serviceUrl,appName:e.name,appTitle:e.title,appDescription:e.description,appNamespace:e.namespace??"",ui5Theme:e.ui5Theme,ui5Version:v?.ui5Version||e.manifestMinUI5Version||e.ui5Version,enableEslint:e.enableEslint,enableTypeScript:e.enableTypeScript,showMockDataInfo:!!i.edmx&&!i.capService,generatorVersion:v?.generatorVersion??"",template:v?.template??"",generatorName:v?.generatorName??"",entityRelatedConfig:v?.entityRelatedConfig??[],externalParameters:v?.externalParameters,launchText:S,valueHelpDownloaded:i.valueListMetadata&&i.valueListMetadata.length>0};(0,n.generateAppGenInfo)(u,h,m)},i.writeAPIHubKeyFiles=function writeAPIHubKeyFiles(e,i,a){const n=(0,r.join)(i,".env"),o=`API_HUB_API_KEY=${a.apiHubKey}\nAPI_HUB_TYPE=${a.apiHubType}`;e.write(n,o)};const n=a(58012),r=a(76760),o=a(75295),s=a(60843)},53369(e,i,a){var n=this&&this.__createBinding||(Object.create?function(e,i,a,n){void 0===n&&(n=a);var r=Object.getOwnPropertyDescriptor(i,a);r&&!("get"in r?!i.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return i[a]}}),Object.defineProperty(e,n,r)}:function(e,i,a,n){void 0===n&&(n=a),e[n]=i[a]}),r=this&&this.__exportStar||function(e,i){for(var a in e)"default"===a||Object.prototype.hasOwnProperty.call(i,a)||n(i,e,a)};Object.defineProperty(i,"__esModule",{value:!0}),r(a(75295),i),r(a(67001),i),r(a(79731),i),r(a(60843),i),r(a(55571),i)},42958(e,i){Object.defineProperty(i,"__esModule",{value:!0})},3842(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.Features=i.defaultNavActionDisplay=i.defaultNavActionTile=i.minUi5VersionForPageBuildingBlock=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 n=a(3675);var r;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,n.t)("steps.templateSelection.title"),description:(0,n.t)("steps.templateSelection.description"),order:0},{key:i.STEP_DATASOURCE_AND_SERVICE,name:(0,n.t)("steps.datasourceAndServiceSelection.title"),description:(0,n.t)("steps.datasourceAndServiceSelection.description"),order:1},{key:i.STEP_ENTITY,name:(0,n.t)("steps.entityOrViewConfig.title"),description:(0,n.t)("steps.entityOrViewConfig.description"),order:2},{key:i.STEP_PROJECT_ATTRIBUTES,name:(0,n.t)("steps.projectAttributesConfig.title"),description:(0,n.t)("steps.projectAttributesConfig.description"),order:3},{key:i.STEP_DEPLOY_CONFIG,name:(0,n.t)("steps.deployConfig.title"),description:(0,n.t)("steps.deployConfig.description"),dependency:(0,n.t)("steps.projectAttributesConfig.title"),order:4},{key:i.STEP_FLP_CONFIG,name:(0,n.t)("steps.flpConfig.title"),description:(0,n.t)("steps.flpConfig.description"),dependency:(0,n.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.minUi5VersionForPageBuildingBlock="1.136.0",i.defaultNavActionTile="tile",i.defaultNavActionDisplay="display",function(e){e.enableGAIntegration="enableGAIntegration"}(r||(i.Features=r={}))},60096(e,i,a){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===c.LEGACY_CAP_TYPE_NODE||"Node.js"===e)return"Node.js";if(e===c.LEGACY_CAP_TYPE_JAVA||"Java"===e)return"Java";return"Node.js"};const n=a(74174),r=a(20280),o=a(58012);Object.defineProperty(i,"FloorplanFE",{enumerable:!0,get:function(){return o.FloorplanFE}}),Object.defineProperty(i,"FloorplanFF",{enumerable:!0,get:function(){return o.FloorplanFF}});const s=a(69884),p=a(4389),c=a(3842);var l,d;i.FloorplanAttributes={[o.FloorplanFE.FE_LROP]:{supportedODataVersion:[s.OdataVersion.v2,s.OdataVersion.v4],templateType:n.TemplateType.ListReportObjectPage},[o.FloorplanFE.FE_ALP]:{supportedODataVersion:[s.OdataVersion.v2,s.OdataVersion.v4],templateType:n.TemplateType.AnalyticalListPage},[o.FloorplanFE.FE_WORKLIST]:{supportedODataVersion:[s.OdataVersion.v2,s.OdataVersion.v4],templateType:n.TemplateType.Worklist},[o.FloorplanFE.FE_FEOP]:{supportedODataVersion:[s.OdataVersion.v4],templateType:n.TemplateType.FormEntryObjectPage},[o.FloorplanFE.FE_OVP]:{supportedODataVersion:[s.OdataVersion.v2,s.OdataVersion.v4],templateType:n.TemplateType.OverviewPage},[o.FloorplanFE.FE_FPM]:{supportedODataVersion:[s.OdataVersion.v4],templateType:n.TemplateType.FlexibleProgrammingModel},[o.FloorplanFF.FF_SIMPLE]:{supportedODataVersion:[s.OdataVersion.v2,s.OdataVersion.v4],templateType:r.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={[p.promptNames.enableEslint]:!0,[p.promptNames.skipAnnotations]:!1,[p.promptNames.enableTypeScript]:!1}},75295(e,i,a){var n=this&&this.__createBinding||(Object.create?function(e,i,a,n){void 0===n&&(n=a);var r=Object.getOwnPropertyDescriptor(i,a);r&&!("get"in r?!i.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return i[a]}}),Object.defineProperty(e,n,r)}:function(e,i,a,n){void 0===n&&(n=a),e[n]=i[a]}),r=this&&this.__exportStar||function(e,i){for(var a in e)"default"===a||Object.prototype.hasOwnProperty.call(i,a)||n(i,e,a)};Object.defineProperty(i,"__esModule",{value:!0}),r(a(63538),i),r(a(3842),i),r(a(42958),i),r(a(97432),i),r(a(60096),i),r(a(47129),i)},63538(e,i){Object.defineProperty(i,"__esModule",{value:!0})},47129(e,i){Object.defineProperty(i,"__esModule",{value:!0})},97432(e,i){Object.defineProperty(i,"__esModule",{value:!0})},80545(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.initAppWizardCache=function initAppWizardCache(e,i){i&&!i[o]&&(i[o]={},e.debug("AppWizard based cache initialized."))},i.addToCache=function addToCache(e,i,a){logIfCacheMissing(e,a),e?.[o]&&Object.assign(e[o],i)},i.getFromCache=function getFromCache(e,i,a){return logIfCacheMissing(e,a),e?.[o]?.[i]},i.deleteCache=function deleteCache(e,i){logIfCacheMissing(e,i),e?.[o]&&delete e[o]};const n=a(58012),r=a(3675),o="$fiori-cache",s=(0,n.getHostEnvironment)();function logIfCacheMissing(e,i){s!==n.hostEnvironment.vscode||e?.[o]||i.info((0,r.t)("logMessages.warningCachingNotSupported"))}},61081(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.CommandRunner=void 0;const n=a(3675),r=a(31421);i.CommandRunner=class CommandRunner{log;constructor(e){this.log=e}formatLog(e,...i){const a=i.map(e=>e.toString().trim()).join(" ").trim();this.log?.info(e?e+a:a)}run(e,i=[],a={},o=!1){return new Promise((s,p)=>{const c={...a},l=[],d=`\`${e} ${i.join(" ")}\``;"win32"===process.platform&&(c.shell=!0);const u=(0,r.spawn)(e,i,c);let m;o&&this.formatLog("Running: ",d),u.stdout.on("data",e=>{o&&this.formatLog(void 0,e),l.push(e.toString()),m=e.toString()}),u.stderr.on("data",e=>{o&&this.formatLog(void 0,e),l.push(e.toString())}),u.on("error",e=>{p(new Error(`${(0,n.t)("error.commandFailed")}: ${e.message}`))}),u.on("close",(e,i)=>{if(i){const e=-1;return o&&this.formatLog((0,n.t)("logMessages.commandFailedWithError",{command:d,signalCode:e})),p(new Error((0,n.t)("logMessages.commandErrorCodeWithStack",{command:d,signalCode:e,stack:l.join(", ")})))}if(0!==e)return o&&this.formatLog((0,n.t)("logMessages.commandFailedWithError",{command:d,errorCode:e})),p(new Error((0,n.t)("logMessages.commandErrorCodeWithStack",{command:d,errorCode:e,stack:l.join(", ")})));s(m)})})}}},63474(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.getODataVersion=function getODataVersion(e){try{return(0,n.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=v.FloorplanAttributes[e].supportedODataVersion;return 1===i.length?i[0]:void 0},i.getMinSupportedUI5Version=function getMinSupportedUI5Version(e,i,a){if(i===f.FloorplanFE.FE_FPM&&a?.addPageBuildingBlock)return f.minUi5VersionForPageBuildingBlock;let n;if(i&&i!==v.FloorplanFF.FF_SIMPLE){const a=v.FloorplanAttributes[i].templateType;n=p.TemplateTypeAttributes[a].minimumUi5Version[e]}return n??(e===d.OdataVersion.v4?y.minSupportedUi5VersionV4:y.minSupportedUi5Version)},i.generateToolsId=function generateToolsId(){return(0,g.v4)()},i.getCdsUi5PluginInfo=async function getCdsUi5PluginInfo(e,i,a){const n=await(0,u.isCapJavaProject)(e)?void 0:a,r=await(0,o.checkCdsUi5PluginEnabled)(e,i,!0,n);return!1===r?void 0:r},i.getCdsAnnotations=getCdsAnnotations,i.isAbapCloud=function isAbapCloud(e){if(e?.backendSystem)return"AbapCloud"===(0,h.getBackendSystemType)(e.backendSystem);return!!e?.destination&&(0,r.isAbapEnvironmentOnBtp)(e.destination)},i.getReadMeDataSourceLabel=function getReadMeDataSourceLabel(e,i=!1,a){let n;if(e===d.DatasourceType.sapSystem){n=`${(0,S.t)(`readme.label.datasourceType.${d.DatasourceType.sapSystem}`)} (${(0,S.t)("readme.label.sapSystemType."+(i?"abapCloud":"onPrem"))})`}else e===d.DatasourceType.businessHub&&"API_HUB_ENTERPRISE"===a&&(n=(0,S.t)("readme.label.datasourceType.apiBusinessHubEnterprise"));return n??(0,S.t)(`readme.label.datasourceType.${e}`)},i.getLaunchText=async function getLaunchText(e,i,a,n){if(e){const r=e?.cdsUi5PluginInfo?.isCdsUi5PluginEnabled||a?getAppId(i,n):void 0;return(0,o.getAppLaunchText)(e.capType??"Node.js",i,r)}return(0,S.t)("readme.texts.runInstruction")},i.generateLaunchConfig=async function generateLaunchConfig(e,i,a,n,o=!1){try{if(a){const s=e.datasourceType!==d.DatasourceType.metadataFile,p=(0,m.join)(e.targetFolder,e.projectName),u={vscode:a,addStartCmd:s,sapClientParam:e.sapClientParam,flpAppId:e?.enableVirtualEndpoints?"app-preview":e.flpAppId??"",flpSandboxAvailable:!e?.enableVirtualEndpoints,isAppStudio:(0,r.isAppStudio)(),writeToAppOnly:o};e.odataVersion&&(u.odataVersion=e.odataVersion===d.OdataVersion.v2?"2.0":"4.0");const g={name:(0,m.basename)(e.projectName),projectRoot:p,startFile:e?.enableVirtualEndpoints?"test/flp.html":void 0,debugOptions:u};await(0,l.createLaunchConfig)(p,g,i,n),(0,c.writeApplicationInfoSettings)(p)}}catch(e){n?.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,a){if(a)return getCdsAnnotations(a,e);if(i)return{technicalName:i.TechnicalName,xml:i.Definitions}},i.restoreServiceProviderLoggers=function restoreServiceProviderLoggers(e,i){for(const a in i?.services)i.services?.[a].log&&!i.services[a].log.info&&(i.services[a].log=e);i?.log&&!i.log.info&&(i.log=e);return i};const n=a(91125),r=a(75199),o=a(64872),s=a(39933),p=a(74174),c=a(69342),l=a(15669),d=a(69884),u=a(20787),m=a(76760),g=a(13746),f=a(75295),y=a(3842),v=a(60096),S=a(3675),h=a(2218);function getAppId(e,i){return[i,e].filter(e=>!!e).join(".").replace(/[_-]/g,"")}async function getCdsAnnotations(e,i){const{appPath:a="app",projectPath:n,serviceCdsPath:r,serviceName:o}=e;if(r){const e=(0,m.join)(a,i,"annotation.cds").replace(/\\/g,"/");return{cdsFileContents:`using ${o} as service from '${await(0,u.toReferenceUri)(n,e,r)}';`,projectPath:n,appPath:a,projectName:i}}}},28355(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_POST_APP_GEN_COMMAND=void 0,i.runHooks=async function runHooks(e,a,r){if("app-generated"===e)return async function postGenerationHook(e,a){if(e.vscodeInstance)try{const r=e.options?.command??i.DEFAULT_POST_APP_GEN_COMMAND;a?.info((0,n.t)("logMessages.attemptingToExecutePostGenerationCommand",{command:r})),await(e.vscodeInstance.commands?.executeCommand?.(r,e.hookParameters))}catch(e){try{const i=e.toString().replace("Error: command","Command");a?.warn(i)}catch{}}}(a,r);throw new Error((0,n.t)("error.unsupportedPostGenerationEvent",{event:e}))};const n=a(3675);i.DEFAULT_POST_APP_GEN_COMMAND="sap.ux.application.generated.handler"},3675(e,i,a){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i,"__esModule",{value:!0}),i.defaultProjectNumber=i.fioriAppSubGeneratorNs=i.i18n=void 0,i.initI18nFioriAppSubGenerator=initI18nFioriAppSubGenerator,i.t=function t(e,a){a?.ns||(a=Object.assign(a??{},{ns:i.fioriAppSubGeneratorNs}));return i.i18n.t(e,a)};const r=n(a(68801)),o=n(a(5208));async function initI18nFioriAppSubGenerator(){await i.i18n.init({resources:{en:{[i.fioriAppSubGeneratorNs]:o.default}},lng:"en",fallbackLng:"en",defaultNS:i.fioriAppSubGeneratorNs,ns:[i.fioriAppSubGeneratorNs],showSupportNotice:!1,interpolation:{format:function odataVersionFormatter(e){return e?` V${e}`:""},defaultVariables:{defaultProjectNumber:i.defaultProjectNumber}},missingInterpolationHandler:()=>""})}i.i18n=r.default.createInstance(),i.fioriAppSubGeneratorNs="fiori-app-sub-generator",i.defaultProjectNumber=1,initI18nFioriAppSubGenerator().catch(()=>{})},60843(e,i,a){var n=this&&this.__createBinding||(Object.create?function(e,i,a,n){void 0===n&&(n=a);var r=Object.getOwnPropertyDescriptor(i,a);r&&!("get"in r?!i.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return i[a]}}),Object.defineProperty(e,n,r)}:function(e,i,a,n){void 0===n&&(n=a),e[n]=i[a]}),r=this&&this.__exportStar||function(e,i){for(var a in e)"default"===a||Object.prototype.hasOwnProperty.call(i,a)||n(i,e,a)};Object.defineProperty(i,"__esModule",{value:!0}),r(a(3675),i),r(a(47572),i),r(a(63474),i),r(a(97836),i),r(a(61081),i),r(a(28355),i),r(a(34041),i),r(a(80545),i)},34041(e,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.assignSapUxLayerValue=function assignSapUxLayerValue(e=!1){if(e)return;return(0,n.isInternalFeaturesSettingEnabled)()?"VENDOR":"CUSTOMER_BASE"};const n=a(98434)},97836(e,i,a){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=[],a={};e.forEach((e,n)=>{if(e.dependency){if(n-1<0)throw(0,r.t)("error.invalidYUIStepConfig");const i=e.dependency;i&&(a[i]||(a[i]=[]),a[i].push(e))}else i.push(e)});return{activeSteps:new n.Prompts(i),dependentMap:a}},i.validateNextStep=function validateNextStep(e,i,a,n){a&&updateDependentStep(i,a,e,n);return!0};const n=a(73667),r=a(3675);function getStepIndex(e,i){const a=i.items;return a?.findIndex(i=>i.name===(0,r.t)(e))}function updateDependentStep(e,i,a,n){i.forEach(i=>{const r=i.dependentMap[e],o=[];r.forEach(e=>{const a=getStepIndex(e.name,i.activeSteps);o.push(a)});const s=getStepIndex(e,i.activeSteps);if(n)if(a){let e,a=0;for(const o of r){if(o.name===n){e=o;break}getStepIndex(o.name,i.activeSteps)>=0&&a++}if(e){getStepIndex(e.name,i.activeSteps)<0&&i.activeSteps.splice(s+a+1,0,[{name:e.name,description:e.description}])}}else{const e=getStepIndex(n,i.activeSteps);e>=0&&i.activeSteps.splice(e,1,[])}else if(o.length>0&&o[0]>=0&&!a&&o