UNPKG

@sap/generator-fiori

Version:

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

1 lines 1.29 MB
"use strict";exports.id=5019,exports.ids=[5019],exports.modules={35874(e,a,r){r.d(a,{G5:()=>o,Jg:()=>n,cX:()=>i});const n=50,i="$TMP",o="REPLACE_WITH_TRANSPORT"},94619(e,a,r){r.d(a,{cX:()=>d.cX,fW:()=>getPackageAnswer,IT:()=>getPackagePrompts,oO:()=>getPrompts,O3:()=>getTransportAnswer,OK:()=>getTransportRequestPrompts,Uo:()=>reconcileAnswers});var n=r(19563),i=r(68801);const o=JSON.parse('{"prompts":{"target":{"destination":{"message":"Destination"},"targetSystem":{"message":"Select Target System","breadcrumb":"Target System"},"url":{"message":"Target System URL"},"scp":{"message":"Is This an SAP Business Technology Platform System?","breadcrumb":"SCP"},"clientChoice":{"message":"Client"},"client":{"message":"Enter Client","breadcrumb":"Client"}},"auth":{"username":{"message":"Username: "},"password":{"message":"Password: "}},"config":{"app":{"ui5AbapRepo":{"message":"SAPUI5 ABAP Repository","messageMaxLength":"SAPUI5 ABAP Repository (maximum length: 15 characters) must start with {{ applicationPrefix }}.","hint":"Enter the name for the deployed application. The name must follow the rules of creating a BSP application. It must not exceed 15 characters and must consist of alphanumeric characters or underscores only. The name must be unique in the BSP repository and its namespace must be compatible with the selected package."},"description":{"message":"Deployment Description","hint":"The description of the deployed application."}},"package":{"packageInputChoice":{"message":"Select How You Want to Enter the Package"},"packageManual":{"message":"Package","hint":"Provide a package for the deployed application."},"packageAutocomplete":{"message":"Package","messageTypeFilter":" (Type to filter matching records)","hint":"Select a package for the deployed application.","sourceMessage":"More than {{numResults}} results. Keep typing to narrow down the list."}},"transport":{"common":{"transportRequest":"Transport Request","transportRequestMandatory":"Transport Request (mandatory)","provideTransportRequest":"Provide a transport request for your application."},"transportInputChoice":{"message":"Select How You Want to Enter the Transport Request"},"transportCreated":{"message":"Created New Transport Request"}}},"confirm":{"index":{"message":"Generate Standalone index.html During Deployment","breadcrumb":"Generate index.html"},"overwrite":{"message":"Editing the deployment configuration will overwrite the existing configuration. Are you sure you want to continue?","hint":"Deployment config will abort if you choose no. Click \'Finish\' to abort."}}},"choices":{"common":{"listExisting":"Choose from Existing"},"targetSystemUrl":"Enter Target System URL","clientChoice":{"existing":"Use Project Defined Client: {{client}}","new":"Enter Client","blank":"Use Default System Client"},"transport":{"createDuringDeploy":"Create During Deployment","createNew":"Create New","enterManually":"Enter Manually"}},"info":{"correctCredentials":"Correct credentials."},"warnings":{"packageNotFound":"The package list cannot be fetched. Please enter the package manually.","providePackage":"Provide a package.","packageTmpLowercase":"The local package entered contains \'$tmp\' in lowercase. Package names with $TMP must be in uppercase.","transportConfigFailure":"Cannot retrieve the transport configuration from the ABAP environment. You can still proceed with adding a deployment configuration by manually providing the package and transport request. \\nFor more information on this error, please see Guided Answers {{-helpLink}}.","noTransportReqs":"There are no transport requests for the supplied package. You can choose to create a new one now or during deployment.","noExistingTransportReqList":"The transport request list cannot be fetched. Please enter the transport request manually.","virtualHost":"The destination uses a virtual host. When viewing your deployed application in the browser, replace the host URL with the internal host that is configured with your SAP Cloud Connector.","allowingUnauthorizedCertsNode":"Setting the `NODE_TLS_REJECT_UNAUTHORIZED` environment variable to `0` makes TLS connections and HTTPS requests insecure by disabling certificate verification. It is important to understand the security risks when using this setting.","certificateError":"A certificate error occurred when connecting to the host: {{-url}}. Certificate error: {{error}}."},"errors":{"abapSystemChoices":"Failed to retrieve ABAP system choices.","targetNotDeployable":"{{systemError}} To continue with project generation, choose a different deployment target or skip adding a deployment configuration.","cannotReadCapServiceMetadata":"An error occurred reading CAP service metadata: {{serviceName}}. For more information, view the log.","invalidUrl":"Invalid URL: [{{url}}].","invalidClient":"[{{client}}] is invalid. Enter blank or a value between 000-999.","debugAbapTargetSystem":"An error occurred when retrieving the ABAP target system during {{method}}. Error: {{error}}","debugAbapTargetSystemAuthFound":"HTTP 401 returned. www-authentication method found: {{isFound}}","s4SystemNoExtensible":"SAP S4/HANA system not configured as an extensibility development system. Cannot deploy to it.","incorrectAtoSettings":"Incorrect ATO settings. Package or prefix settings missing.","incorrectCredentials":"Incorrect credentials. Try again.","atoUnauthorisedSystem":"Authentication required to access the ATO Service.","createTransportReqFailed":"Create new transport request failed. Please enter the transport request manually.","requireCredentials":"Please provide credentials to authenticate with the back-end system.","validators":{"appNameRequired":"The application name is required. Enter an application name.","appNameInvalid":"The application name is invalid. Check your application name is correct.","appNameInvalidLength":"The application name cannot exceed 15 characters. Entered {{length}}.","appNameInvalidPrefix":"The application name must be prefixed with [{{prefix}}].","abapAppDescLength":"The deployment description must not exceed 60 characters.","abapTransportNumRequired":"Provide a transport request for your application","abapPackageWarn":"Provide a package.","abapPackageInvalidFormat":"The package name does not match the expected format. The expected format is `/<namespace>/<package_name>` or a package name. If a namespace is not specified, the package name must start with \'$\', \'Z\', \'Y\', or \'SAP\'.","abapPackageStartingPrefix":"The package must start with either a namespace, \'$\', \'Z\', \'Y\', or \'SAP\'.","abapInvalidNamespaceLength":"The namespace cannot exceed 10 characters. You entered {{length}}.","abapInvalidAppNameLength":"The application name cannot exceed 15 characters. You entered {{length}}.","abapInvalidAppName":"The application name must be prefixed with [{{prefix}}].","charactersForbiddenInAppName":"Only alphanumeric, underscore, and slash characters are allowed.","charactersForbiddenInPackage":"Only alphanumeric, underscore, $, and slash characters are allowed.","invalidNamespace":"The namespace is invalid because there are too many forward slashes.","forbiddenCharacters":"Only alphanumeric, underscore, and slash characters are allowed.","descriptionLength":"Deployment Description must not exceed 60 characters","transportListPreReqs":"Name (SAPUI5 ABAP Repository) and Package are required to retrieve existing transport requests.","abapInvalidAppNameNamespaceOrStartingPrefix":"The SAPUI5 ABAP Repository and Package must start in the same way. Use either a namespace or capital letters: \'Z\', \'Y\' or \'SAP\'.","invalidCloudPackage":"The provided package is not intended for cloud deployment.","invalidOnPremPackage":"The provided package is not intended for on-premise deployments.","unsupportedAdpProjectType":"You cannot deploy a {{adpProjectTypeLabel}} project because the system only supports {{supportedAdpProjectTypesList}} projects.","invalidAdpProjectTypes":"Unable to determine the supported project types.","adpOnPremProjectType":"Classic","adpCloudProjectType":"Cloud Ready"}}}'),s="abap-deploy-config-inquirer",c=i.createInstance();async function initI18n(){await c.init({lng:"en",fallbackLng:"en",showSupportNotice:!1}),c.addResourceBundle("en",s,o)}function t(e,a){return a?.ns||(a=Object.assign(a??{},{ns:s})),c.t(e,a)}initI18n().catch(()=>{});class PromptState{static _abapDeployConfig={};static _transportAnswers={transportRequired:!0};static isYUI=!1;static get abapDeployConfig(){return this._abapDeployConfig}static get transportAnswers(){return this._transportAnswers}static set abapDeployConfig(e){this._abapDeployConfig=e}static set transportAnswers(e){this._transportAnswers=e}static resetAbapDeployConfig(){Object.keys(PromptState._abapDeployConfig).forEach(e=>{PromptState._abapDeployConfig[e]=void 0})}static resetTransportAnswers(){Object.keys(PromptState._transportAnswers).forEach(e=>{PromptState._transportAnswers[e]=void 0})}}var l=r(76178),p=r(70025),d=r(35874);class LoggerHelper{static _logger=new n.ToolsLogger({logPrefix:"@sap-ux/abap-deploy-config-inquirer"});static get logger(){return LoggerHelper._logger}static set logger(e){LoggerHelper._logger=e}}var u=r(43107),m=r(21038),g=r(28470);class AbapServiceProviderManager{static abapServiceProvider;static system;static isDefaultProviderAbapCloud;static async getOrCreateServiceProvider(e,a){let r=!1;return"0"===process.env.NODE_TLS_REJECT_UNAUTHORIZED&&(LoggerHelper.logger.warn(t("warnings.allowingUnauthorizedCertsNode")),r=!0,(0,g.d4)(!1)),this.isExistingServiceProviderValid(e)?this.abapServiceProvider:this.isBackendTargetServiceProviderValid(e)?(this.abapServiceProvider=e?.serviceProvider,await this.setIsDefaultAbapCloud(),this.abapServiceProvider):(this.abapServiceProvider=await this.createNewServiceProvider(a,e,r),await this.setIsDefaultAbapCloud(),this.abapServiceProvider)}static isConnected(){return!!AbapServiceProviderManager.abapServiceProvider?.cookies}static getSystemConfig(e){const{url:a,client:r,destination:n}=PromptState.abapDeployConfig??e?.abapTarget??{};return{url:a,client:r,destination:n}}static isExistingServiceProviderValid(e){const a=this.getSystemConfig(e);return!(!this.abapServiceProvider||!isSameSystem(a,this.system?.url,this.system?.client,this.system?.destination))&&(this.system=a,!0)}static isBackendTargetServiceProviderValid(e){return!(!e?.serviceProvider||!isSameSystem({url:PromptState.abapDeployConfig.url,client:PromptState.abapDeployConfig.client,destination:PromptState.abapDeployConfig.destination},e?.abapTarget.url,e?.abapTarget.client,e?.abapTarget.destination)&&(PromptState.abapDeployConfig.url||PromptState.abapDeployConfig.destination))&&(this.system=e?.abapTarget,!0)}static async createNewServiceProvider(e,a,r=!1){const n=this.buildAbapTarget(a),i=this.buildRequestOptions(e,r),o=await(0,m.createAbapServiceProvider)(n,i,!1,LoggerHelper.logger);return this.system=this.getSystemConfig(a),o}static buildAbapTarget(e){let a;return(0,l.isAppStudio)()?a={destination:PromptState.abapDeployConfig.destination??e?.abapTarget.destination}:(a={url:PromptState.abapDeployConfig.url??e?.abapTarget.url,client:PromptState.abapDeployConfig.client??e?.abapTarget.client,scp:PromptState.abapDeployConfig.scp??e?.abapTarget.scp},(PromptState.abapDeployConfig.isAbapCloud??e?.abapTarget.authenticationType===p.h_.ReentranceTicket)&&(a.authenticationType=p.h_.ReentranceTicket)),a}static buildRequestOptions(e,a=!1){let r;return e?.username&&e?.password&&(r={username:e.username,password:e.password}),{ignoreCertErrors:a,auth:r}}static async setIsDefaultAbapCloud(){void 0===this.isDefaultProviderAbapCloud&&this.abapServiceProvider&&(this.isDefaultProviderAbapCloud=await(this.abapServiceProvider?.isAbapCloud()))}static getIsDefaultProviderAbapCloud(){return this.isDefaultProviderAbapCloud}static resetIsDefaultProviderAbapCloud(){this.isDefaultProviderAbapCloud=void 0}static deleteExistingServiceProvider(){this.abapServiceProvider=void 0}}var h=r(67566);class DummyTransportConfig{getPackage(){}getApplicationPrefix(){}isTransportRequired(){return!1}getDefaultTransport(){}getOperationsType(){}}class DefaultTransportConfig{static S4C_DEFAULT_TRANSPORT=5163!=r.j?"":null;static S4C_DEFAULT_PACKAGE=5163!=r.j?"TEST_YY1_DEFAULT":null;getDefaultTransport(){return this.defaultTransport}atoSettings={};defaultTransport=void 0;getPackage(){return this.atoSettings.developmentPackage}getApplicationPrefix(){return this.atoSettings.developmentPrefix}isTransportRequired(){return!!this.atoSettings.isTransportRequestRequired}getOperationsType(){return this.atoSettings?.operationsType}async init({backendTarget:e,credentials:a}){const r={};try{const n=await AbapServiceProviderManager.getOrCreateServiceProvider(e,a),i=await n.getAdtService(u.AtoService),o=await(i?.getAtoInfo());o&&(r.error=this.handleAtoResponse(o))}catch(a){if(AbapServiceProviderManager.deleteExistingServiceProvider(),h.ErrorHandler.isCertError(a))LoggerHelper.logger.warn(t("warnings.certificateError",{url:e?.abapTarget?.url,error:a.message})),LoggerHelper.logger.info(`${new h.ErrorHandler(void 0,void 0,"@sap-ux/abap-deploy-config-inquirer").getValidationErrorHelp(a)?.toString()}`);else if(401===a.response?.status){const e=a.response.headers?.["www-authenticate"];r.transportConfigNeedsCreds=!!e?.toLowerCase()?.startsWith("basic"),LoggerHelper.logger.debug(t("errors.debugAbapTargetSystemAuthFound",{isFound:!!r.transportConfigNeedsCreds}))}else r.transportConfigNeedsCreds=!1;LoggerHelper.logger.debug(t("errors.debugAbapTargetSystem",{method:"init",error:a.message}))}const n=!r.error&&!r.transportConfigNeedsCreds;return r.transportConfig=n?this:this.getDummyConfig(),r}handleAtoResponse(e){let a=!1;if(this.atoSettings=e,this.atoSettings.isConfigured&&"CUSTOMER"===this.atoSettings.tenantType&&"C"===this.atoSettings.operationsType){if(!this.atoSettings.isExtensibilityDevelopmentSystem)return t("errors.s4SystemNoExtensible");if(!this.atoSettings.developmentPrefix)return t("errors.incorrectAtoSettings");a=!0,this.applyS4CDefaults()}a||(this.atoSettings={operationsType:this.atoSettings.operationsType})}applyS4CDefaults(){this.defaultTransport=DefaultTransportConfig.S4C_DEFAULT_TRANSPORT,this.atoSettings.isTransportRequestRequired=!1,this.atoSettings.developmentPackage=DefaultTransportConfig.S4C_DEFAULT_PACKAGE}getDummyConfig(){const e=new DummyTransportConfig;return e.getOperationsType=this.getOperationsType,e}}async function getTransportListFromService(e,a,r){let n;try{const i=await AbapServiceProviderManager.getOrCreateServiceProvider(r),o=await i.getAdtService(u.TransportChecksService),s=await(o?.getTransportRequests(e,a));s&&(n=s.map(e=>({transportReqNumber:e.transportNumber,transportReqDescription:e.description})))}catch(e){if(e.message===u.TransportChecksService.LocalPackageError&&(PromptState.transportAnswers.transportRequired=!1),LoggerHelper.logger.debug(t("errors.debugAbapTargetSystem",{method:"getTransportListFromService",error:e.message})),h.ErrorHandler.isCertError(e))throw LoggerHelper.logger.warn(t("warnings.certificateError",{url:r?.abapTarget?.url,error:e.message})),e;return}return n}const transportName=e=>({name:e.transportReqDescription?`${e.transportReqNumber} (${e.transportReqDescription})`:`${e.transportReqNumber}`,value:e.transportReqNumber});var f,y,v,T,O;function isValidUrl(e){try{const a=new URL(e);return!!a.protocol&&!!a.host}catch{return!1}}async function listPackages(e,a,r){return a.url||a.destination?async function listPackagesFromService(e,a){try{const r=await AbapServiceProviderManager.getOrCreateServiceProvider(a),n=await r.getAdtService(u.ListPackageService);if(n)return await n.listPackages({maxResults:d.Jg,phrase:e})}catch(e){if(LoggerHelper.logger.debug(t("errors.debugAbapTargetSystem",{method:"listPackagesFromService",error:e.message})),h.ErrorHandler.isCertError(e))throw LoggerHelper.logger.warn(t("warnings.certificateError",{url:a?.abapTarget?.url,error:e.message})),e}return[]}(e,r):[]}function isAppNameValid(e){const a=PromptState.transportAnswers.transportConfig?.getApplicationPrefix(),r=function validateAppName(e,a){const r=e?e.trim().length:0;if(!r)return t("errors.validators.appNameRequired");if(e.split("/").length>3)return t("errors.validators.invalidNamespace");if(/^\/.*\/\w*$/g.test(e)){const a=e.split("/");let r="";if(a[1].length>10&&(r+=`${t("errors.validators.abapInvalidNamespaceLength",{length:a[1].length})}, `),a[2].length>15&&(r+=`${t("errors.validators.abapInvalidAppNameLength",{length:a[2].length})}, `),r)return r=r.substring(0,r.length-2),r}else if(r>15)return t("errors.validators.abapInvalidAppNameLength",{length:r});return a&&!e.toUpperCase().startsWith(a.toUpperCase())?t("errors.validators.abapInvalidAppName",{prefix:a}):!!/^[A-Za-z0-9_/]*$/.test(e)||t("errors.validators.charactersForbiddenInAppName")}(e,a);let n;return!0===r&&(n={valid:!0,errorMessage:void 0}),"string"==typeof r&&(n={valid:!1,errorMessage:r}),n}async function getTransportList(e,a,r,n){if(!r.url&&!r.destination)return;const i=await getTransportListFromService(e,a,n);return 1===i?.length&&""===i[0].transportReqNumber?[]:i}async function createTransportNumber(e,a,r){if(a.url||a.destination)return async function createTransportNumberFromService(e,a){let r;try{const n=await AbapServiceProviderManager.getOrCreateServiceProvider(a),i=await n.getAdtService(u.TransportRequestService);i&&(r=await i.createTransportRequest(e))}catch(e){return void LoggerHelper.logger.debug(t("errors.debugAbapTargetSystem",{method:"createTransportNumberFromService",error:e.message}))}return r}(e,r)}!function(e){e.Url="Url"}(f||(f={})),function(e){e.Base="base",e.New="new",e.Blank="blank"}(y||(y={})),function(e){e.destination="destination",e.destinationCliSetter="destinationCliSetter",e.targetSystem="targetSystem",e.targetSystemCliSetter="targetSystemCliSetter",e.url="url",e.scp="scp",e.scpSetter="scpSetter",e.clientChoice="clientChoice",e.clientChoiceCliSetter="clientChoiceCliSetter",e.client="client",e.username="username",e.password="password",e.ui5AbapRepo="ui5AbapRepo",e.description="description",e.packageInputChoice="packageInputChoice",e.packageCliExecution="packageCliExecution",e.packageManual="packageManual",e.packageAutocomplete="packageAutocomplete",e.transportInputChoice="transportInputChoice",e.transportCliExecution="transportCliExecution",e.transportCreated="transportCreated",e.transportFromList="transportFromList",e.transportManual="transportManual",e.index="index",e.overwriteAbapConfig="overwriteAbapConfig"}(v||(v={})),function(e){e.EnterManualChoice="EnterManualChoice",e.ListExistingChoice="ListExistingChoice"}(T||(T={})),function(e){e.EnterManualChoice="EnterManualChoice",e.ListExistingChoice="ListExistingChoice",e.CreateNewChoice="CreateNewChoice",e.CreateDuringDeployChoice="CreateDuringDeployChoice"}(O||(O={}));let C={},D=5163!=r.j?[]:null;function findBackendSystemByUrl(e){return D?.find(a=>a.url===e)}function isSameSystem(e,a,r,n){return Boolean(e?.url&&e.url.trim()?.replace(/\/$/,"")===a?.trim()?.replace(/\/$/,"")&&e.client===r||!!e?.destination&&n===e?.destination)}async function initTransportConfig({backendTarget:e,url:a,destination:r,credentials:n,errorHandler:i}){let o={};if(!a&&!r)return o;try{o=await async function getTransportConfigInstance({backendTarget:e,credentials:a}){return(new DefaultTransportConfig).init({backendTarget:e,credentials:a})}({backendTarget:e,credentials:n})}catch(e){o.error=e}return o.error&&(i(o.error),LoggerHelper.logger.debug(t("errors.debugAbapTargetSystem",{method:"initTransportConfig",error:o.error}))),o}async function queryPackages(e,a,r){return listPackages((e??"").toUpperCase(),a,r)}function getPackageAnswer(e,a){return a??(e?.packageInputChoice===T.ListExistingChoice?e?.packageAutocomplete??"":e?.packageManual??"")}function getTransportAnswer(e){return e?.transportManual||e?.transportFromList||e?.transportCreated||(e?.transportInputChoice===O.CreateDuringDeployChoice?d.G5:"")}function getUrlAnswer(e,a){let r=e.url;return a&&(r=a),r}function reconcileAnswers(e,a){const r={url:getUrlAnswer(e=Object.assign(e,a),a.url),package:getPackageAnswer(e,a.package)};e.destination&&(r.destination=e.destination),e.targetSystem&&e.targetSystem!==f.Url&&(r.url=e.targetSystem),void 0!==e.connectPath&&(r.connectPath=e.connectPath),(e.client||a.client)&&(r.client=e.client||a.client),(e.scp||a.scp)&&(r.scp=!0),e.ui5AbapRepo&&(r.ui5AbapRepo=e.ui5AbapRepo),e.description&&(r.description=e.description);const n=getTransportAnswer(e);return n&&(r.transport=n),void 0!==e.index&&(r.index=e.index),void 0!==e.overwrite&&(r.overwrite=e.overwrite),r}function getSystemConfig(e,a,r){const n=e?r?.abapTarget:a;return{url:n?.url,client:n?.client,destination:n?.destination}}function handleTransportConfigError(e){PromptState.isYUI?(PromptState.transportAnswers.transportConfigError=e,LoggerHelper.logger.debug(e)):function bail(e){throw new Error(e)}(e)}function showUrlQuestion(e){return e===f.Url}function showClientCondition(e){return Boolean(!((0,l.isAppStudio)()||PromptState.abapDeployConfig?.isAbapCloud||e||PromptState.abapDeployConfig?.scp))}function showUi5AppDeployConfigQuestion(e){return!(!e?.hide&&e?.hideIfOnPremise&&!PromptState.abapDeployConfig?.scp)&&!PromptState.transportAnswers.transportConfigNeedsCreds}function defaultOrShowPackageQuestion(){return PromptState.transportAnswers?.transportConfig?.getPackage()?(PromptState.abapDeployConfig.package=PromptState.transportAnswers.transportConfig.getPackage(),!1):!PromptState.transportAnswers?.transportConfigError&&!PromptState.transportAnswers?.transportConfigNeedsCreds}function defaultOrShowTransportQuestion(){return!1!==PromptState.transportAnswers.transportRequired&&(void 0!==PromptState.transportAnswers.transportConfig?.getDefaultTransport()?(PromptState.abapDeployConfig.transport=PromptState.transportAnswers.transportConfig.getDefaultTransport(),!1):!PromptState.transportAnswers.transportConfigError&&!PromptState.transportAnswers.transportConfigNeedsCreds)}const b=["$","Z","Y","SAP"];async function validateDestinationQuestion(e,a,r,n){return PromptState.resetAbapDeployConfig(),updateDestinationPromptState(e,a),n?async function validateAdpDestinationQuestion(e,a,r){const n=await validateSystemSupportAdpProjectType(a,r);if("string"==typeof n)return n;return!!e.trim()}(e,n,r):!!e?.trim()}function updatePromptState({url:e,connectPath:a,client:r,isAbapCloud:n,scp:i,target:o}){PromptState.abapDeployConfig.url=e,PromptState.abapDeployConfig.connectPath=a,PromptState.abapDeployConfig.client=r,PromptState.abapDeployConfig.isAbapCloud=n,PromptState.abapDeployConfig.scp=i,PromptState.abapDeployConfig.targetSystem=o}function updateDestinationPromptState(e,a={}){const r=a[e];r&&(PromptState.abapDeployConfig.destination=r.Name,updatePromptState({url:r?.Host,client:r["sap-client"],isAbapCloud:(0,l.isS4HC)(r),scp:(0,l.isAbapEnvironmentOnBtp)(r)}))}async function validateTargetSystem(e,a,r,n){if(PromptState.resetAbapDeployConfig(),!e||e===f.Url)return!0;const i=e?.trim(),o=isValidUrl(i),s=a?.find(a=>a.value===e);if(o&&s){const a=new URL(s.value);updatePromptState({url:a.origin,connectPath:"/"===a.pathname?void 0:a.pathname,client:s.client??"",scp:s.scp,isAbapCloud:s.isAbapCloud,target:e})}return n?async function validateAdpTargetSystem(e,a,r){const n=isValidUrl(e);if(!n)return t("errors.invalidUrl",{url:e});const i=await validateSystemSupportAdpProjectType(a,r);return"string"!=typeof i||i}(i,n,r):o||t("errors.invalidUrl",{url:i})}function validateClientChoiceQuestion(e,a){switch(e){case y.Base:PromptState.abapDeployConfig.client=PromptState.abapDeployConfig?.client??a;break;case y.Blank:delete PromptState.abapDeployConfig.client;case y.New:}return!0}async function validateCredentials(e,a,r,n){if(!e||!a.username)return t("errors.requireCredentials");const i={username:a.username,password:e},{transportConfigNeedsCreds:o}=await initTransportConfig({backendTarget:r,url:PromptState.abapDeployConfig.url,client:PromptState.abapDeployConfig.client,credentials:i,errorHandler:e=>{handleTransportConfigError(e)}});return PromptState.transportAnswers.transportConfigNeedsCreds=o??!1,n?async function validateAdpCredentials({transportConfigNeedsCreds:e,adpProjectType:a,backendTarget:r,credentials:n}){const i=await validateSystemSupportAdpProjectType(a,r,n);if("string"==typeof i)return i;return!e||t("errors.incorrectCredentials")}({transportConfigNeedsCreds:o,adpProjectType:n,backendTarget:r,credentials:i}):!o||t("errors.incorrectCredentials")}async function validatePackageChoiceInput(e,a,r){if(e===T.ListExistingChoice){let e;try{const e=await queryPackages("",a,r);return!!(e&&e.length>0)||t("warnings.packageNotFound")}catch(a){if(h.ErrorHandler.isCertError(a))return e=new h.ErrorHandler(void 0,void 0,"@sap-ux/abap-deploy-config-inquirer").getValidationErrorHelp(a),e??!0;throw a}}return!0}async function validateTransportChoiceInput({useStandalone:e,input:a,previousAnswers:r,validateInputChanged:n,prevTransportInputChoice:i,backendTarget:o,ui5AbapRepoName:s,transportDescription:c}){const l=getPackageAnswer(r,PromptState.abapDeployConfig.package),p=getSystemConfig(e,PromptState.abapDeployConfig,o);if(a===O.ListExistingChoice)try{return await async function handleListExistingTransportChoice(e,a,r,n,i){return e&&(r?.ui5AbapRepo||i)?(PromptState.transportAnswers.transportList=await getTransportList(e,r?.ui5AbapRepo??i??"",a,n),PromptState.transportAnswers.transportList?PromptState.transportAnswers.transportList.length>0||t("warnings.noTransportReqs"):t("warnings.noExistingTransportReqList")):t("errors.validators.transportListPreReqs")}(l,p,r,o,s)}catch(e){if(h.ErrorHandler.isCertError(e))return new h.ErrorHandler(void 0,void 0,"@sap-ux/abap-deploy-config-inquirer").getValidationErrorHelp(e)??!0}else if(a===O.CreateNewChoice)return await async function handleCreateNewTransportChoice({packageAnswer:e,systemConfig:a,input:r,previousAnswers:n,validateInputChanged:i,prevTransportInputChoice:o,backendTarget:s,ui5AbapRepoName:c,transportDescription:l}){if(i){if(r===o)return!0;if(!o){const r=await getTransportList(e,n?.ui5AbapRepo??c??"",a,s);if(r?.[0])return PromptState.transportAnswers.newTransportNumber=r[0].transportReqNumber,!0}}const p=l??`For ABAP repository ${n?.ui5AbapRepo?.toUpperCase()}, created by SAP Fiori Tools`;return PromptState.transportAnswers.newTransportNumber=await createTransportNumber({packageName:getPackageAnswer(n,PromptState.abapDeployConfig.package),ui5AppName:n?.ui5AbapRepo??"",description:p.length>60?p.slice(0,57)+"...":p},a,s),!!PromptState.transportAnswers.newTransportNumber||t("errors.createTransportReqFailed")}({packageAnswer:l,systemConfig:p,input:a,previousAnswers:r,validateInputChanged:n,prevTransportInputChoice:i,backendTarget:o,ui5AbapRepoName:s,transportDescription:c});return!0}async function validatePackage(e,a,r,n,i,o,s){if(PromptState.transportAnswers.transportRequired=!0,!e?.trim())return t("warnings.providePackage");if(e===d.cX&&(PromptState.transportAnswers.transportRequired=!1,!r?.additionalValidation||!1===r?.additionalValidation?.shouldValidatePackageForStartingPrefix&&!1===r?.additionalValidation?.shouldValidatePackageType))return!0;const c=function validatePackageFormatAndSpecialCharacters(e,a){if(a?.additionalValidation?.shouldValidateFormatAndSpecialCharacters){if(!/^[A-Za-z0-9$_/]*$/.test(e))return t("errors.validators.charactersForbiddenInPackage");if(!/^(?:\/\w+\/)?[$]?\w*$/.test(e))return t("errors.validators.abapPackageInvalidFormat")}return!0}(e,r);if("string"==typeof c)return c;if(o||!PromptState.abapDeployConfig.scp||PromptState.abapDeployConfig.scp&&AbapServiceProviderManager.isConnected())try{await getTransportListFromService(e.toUpperCase(),a.ui5AbapRepo??"",i)}catch(e){LoggerHelper.logger.warn(`An error occurred while validating the local package for package: ${e.message}`)}const l=function validatePackageStartingPrefix(e,a,r,n){if(function shouldValidatePackageForStartingPrefix(e,a,r){const n=!(!e.ui5AbapRepo||!a?.additionalValidation?.shouldValidatePackageForStartingPrefix||r?.hide||r?.hideIfOnPremise&&!1===PromptState.abapDeployConfig?.scp);return n}(a,r,n)){const r=function getPackageStartingPrefix(e){if(/^\/.*\/\w*$/g.test(e))return`/${e.split("/")[1]}/`;return e.startsWith("SAP")?"SAP":e[0]}(e);if(!e.startsWith("/")&&!b.find(e=>e===r))return t("errors.validators.abapPackageStartingPrefix");if(!a.ui5AbapRepo?.startsWith(r))return t("errors.validators.abapInvalidAppNameNamespaceOrStartingPrefix")}return!0}(e,a,r,n);return"string"==typeof l?l:!r?.additionalValidation?.shouldValidatePackageType||await async function validatePackageType(e,a,r){try{if(r===u.AdaptationProjectType.ON_PREMISE)return LoggerHelper.logger.debug(`Project is OnPremise, skipping package "${e}" type validation`),!0;const{adaptationProjectTypes:n}=await getSystemInfo(e,a);return!!(n.length>1||n[0]===u.AdaptationProjectType.CLOUD_READY)||t("errors.validators.invalidCloudPackage")}catch(e){return!(!(0,u.isAxiosError)(e)||404!==e.response?.status)||t("errors.validators.invalidCloudPackage")}}(e,i,s)}async function validateSystemSupportAdpProjectType(e,a,r){try{const{adaptationProjectTypes:n}=await getSystemInfo(void 0,a,r);return n.length?!!n.includes(e)||getUnsupportedAdpProjectTypeErrorText(e,n):t("errors.validators.invalidAdpProjectTypes")}catch(a){if(!(0,u.isAxiosError)(a))return a.message;const r=a.response?.status;return 401===r||403===r||(404===r?e===u.AdaptationProjectType.ON_PREMISE||getUnsupportedAdpProjectTypeErrorText(e,[u.AdaptationProjectType.ON_PREMISE]):a.message)}}async function getSystemInfo(e,a,r){return(await AbapServiceProviderManager.getOrCreateServiceProvider(a,r)).getLayeredRepository().getSystemInfo(void 0,e)}const toAdpProjectTypeLabel=e=>e===u.AdaptationProjectType.CLOUD_READY?t("errors.validators.adpCloudProjectType"):t("errors.validators.adpOnPremProjectType");function getUnsupportedAdpProjectTypeErrorText(e,a){return t("errors.validators.unsupportedAdpProjectType",{adpProjectTypeLabel:toAdpProjectTypeLabel(e),supportedAdpProjectTypesList:a.map(toAdpProjectTypeLabel).join(",")})}var E=r(94443);function normalizeUrl(e){return e.trim().replace(/\/$/,"")}async function getBackendTargetChoices(e,a=[]){const r=[{name:t("choices.targetSystemUrl"),value:f.Url}],n=e?.abapTarget,i=n?function resolveTargetUrl(e){try{return e.connectPath?new URL(e.connectPath,e.url).href:e.url}catch{return e.url}}(n):void 0,o=[...a].sort((e,a)=>e.name.localeCompare(a.name,void 0,{numeric:!0,caseFirst:"lower"})),s=i?o.find(e=>normalizeUrl(e.url)===normalizeUrl(i)&&(e.client??"")===(n?.client??"")):void 0,c=o.map(e=>{const a=e===s;return{name:a?`${(0,E.getBackendSystemDisplayName)(e)} (Source system)`:(0,E.getBackendSystemDisplayName)(e)??"",value:e.url,isDefault:a,scp:!!e.serviceKeys,isAbapCloud:e.authenticationType===p.h_.ReentranceTicket,client:e.client}});if(r.push(...c),!s&&i&&n&&e?.systemName){const a=await(e.serviceProvider?.user()),o=n.scp||n.authenticationType===p.h_.ReentranceTicket;r.splice(1,0,{name:`${(0,E.getSystemDisplayName)(e.systemName,a,o?"ABAPCloud":void 0)} (Source system)`,value:i,isDefault:!0,scp:n.scp,isAbapCloud:n.authenticationType===p.h_.ReentranceTicket,client:n.client})}return r}async function getAbapSystemChoices(e,a,r){let n=[];try{e?n=function getDestinationChoices(e={}){return Object.values(e).sort((e,a)=>e.Name.localeCompare(a.Name,void 0,{numeric:!0,caseFirst:"lower"})).map(e=>({name:`${(0,l.getDisplayName)(e)} - ${e.Host}`,value:e.Name,scp:(0,l.isAbapEnvironmentOnBtp)(e),url:e.Host}))}(e):r&&(n=await getBackendTargetChoices(a,r))}catch{LoggerHelper.logger.error(t("errors.abapSystemChoices"))}return n}function shouldRunValidation(e,a){if(0===Object.keys(e).length)return!0;const r=function getKeysWithDifferentValues(e,a){return[...new Set([...Object.keys(e),...Object.keys(a)])].filter(r=>e[r]!==a[r])}(e,a);return 0!==r.length&&(1!==r.length||r[0]!==v.description)}var S=r(73667);function getDestinationPrompt(e,a,r,n){const i=[{when:()=>(0,l.isAppStudio)(),type:"list",name:v.destination,message:t("prompts.target.destination.message"),guiOptions:{mandatory:!0,breadcrumb:!0},default:()=>r?.abapTarget?.destination,filter:e=>e?.trim(),choices:()=>e,validate:async e=>await validateDestinationQuestion(e,a,r,n),additionalMessages:e=>{let r;return a&&e&&(0,l.isOnPremiseDestination)(a[e])&&(r={message:t("warnings.virtualHost"),severity:S.Severity.information}),r}}];return(0,l.isAppStudio)()&&!PromptState.isYUI&&i.push({when:e=>{const r=e[v.destination];return r&&updateDestinationPromptState(r,a),!1},name:v.destinationCliSetter}),i}function getTargetSystemPrompt(e,a,r){const n=[{when:()=>!(0,l.isAppStudio)(),type:"list",name:v.targetSystem,message:t("prompts.target.targetSystem.message"),guiOptions:{mandatory:!0,breadcrumb:t("prompts.target.targetSystem.breadcrumb")},choices:()=>e,default:()=>function defaultTargetSystem(e){let a;const r=e?.find(e=>!0===e.isDefault);return r&&(a=r.value),a}(e),validate:n=>validateTargetSystem(n,e,a,r)}];return(0,l.isAppStudio)()||PromptState.isYUI||n.push({when:async n=>{const i=n[v.targetSystem];return i&&await async function validateTargetSystemUrlCli(e,a,r,n){if(PromptState.isYUI)return;const i=await validateTargetSystem(e,a,r,n);if("string"==typeof i)throw new Error(i)}(i,e,a,r),!1},name:v.targetSystemCliSetter}),n}function getUrlPrompt(e,a){return{when:r=>{const n=showUrlQuestion(r.targetSystem);return function updatePromptStateUrl(e,a,r){let n,i;if(e.destination&&a&&(n=a[e.destination]?.Host),e?.targetSystem&&e.targetSystem!==f.Url)try{i=new URL(e.targetSystem).origin}catch{i=e.targetSystem}PromptState.abapDeployConfig.url=n??i??r?.abapTarget.url??""}(r,e,a),n},type:"input",name:v.url,message:t("prompts.target.url.message"),guiOptions:{mandatory:!0,breadcrumb:!0},default:({targetSystem:e})=>function defaultUrl(e){return e===f.Url?"":PromptState.abapDeployConfig.url??""}(e),filter:e=>e?.trim(),validate:e=>function validateUrl(e){if(PromptState.resetAbapDeployConfig(),function isEmptyString(e){return!e||!/\S/.test(e)}(e))return!1;if(!isValidUrl(e?.trim()))return t("errors.invalidUrl",{url:e?.trim()});{const a=findBackendSystemByUrl(e);updatePromptState({url:e.trim(),client:a?.client,scp:!!a?.serviceKeys,isAbapCloud:a?.authenticationType===p.h_.ReentranceTicket})}return!0}(e)}}function getScpPrompt(e){const a=[{when:e=>function showScpQuestion(e){if(!(0,l.isAppStudio)()&&!e.targetSystem||showUrlQuestion(e.targetSystem)&&0===e.url?.length)return!1;let a=!1;e.url&&e.url.length>0&&(findBackendSystemByUrl(e.targetSystem??e.url)||(a=!0));return a}(e),type:"confirm",name:v.scp,message:t("prompts.target.scp.message"),guiOptions:{breadcrumb:t("prompts.target.scp.breadcrumb")},default:()=>e?.abapTarget?.scp}];return a.push({when:e=>{const a=e[v.scp],r=e[v.targetSystem];return a&&r===f.Url?PromptState.abapDeployConfig.scp=!0:a||r!==f.Url||(PromptState.abapDeployConfig.scp=!1),!1},name:v.scpSetter}),a}function getClientChoicePrompt(e){const a=[{when:a=>function showClientChoiceQuestion(e,a){return!(PromptState.isYUI||!a)&&showClientCondition(e?.scp)&&e?.targetSystem===f.Url}(a,e?.abapTarget?.client),type:"list",name:v.clientChoice,message:t("prompts.target.clientChoice.message"),guiOptions:{applyDefaultWhenDirty:!0},choices:()=>function getClientChoicePromptChoices(e){return[{name:t("choices.clientChoice.existing",{client:e}),value:y.Base},{name:t("choices.clientChoice.new"),value:y.New},{name:t("choices.clientChoice.blank"),value:y.Blank}]}(e?.abapTarget?.client),default:()=>e?.abapTarget.client?y.Base:y.Blank,validate:a=>validateClientChoiceQuestion(a,e?.abapTarget?.client)}];return PromptState.isYUI||a.push({when:a=>{const r=a[v.clientChoice];return r&&validateClientChoiceQuestion(r,e?.abapTarget?.client),!1},name:v.clientChoiceCliSetter}),a}function getClientPrompt(){return{when:e=>function showClientQuestion(e){const a=showClientCondition(e?.scp),r=e?.targetSystem===f.Url,n=PromptState.isYUI?r:e?.clientChoice===y.New||r;return!!PromptState.isYUI&&r&&a||n&&a}(e),type:"input",name:v.client,message:t("prompts.target.client.message"),guiOptions:{breadcrumb:t("prompts.target.client.breadcrumb")},default:()=>PromptState.abapDeployConfig?.client,filter:e=>e?.trim(),validate:e=>function validateClient(e){if(!e)return!0;const a=String(e),r=function isValidClient(e){return!!/^\d{3}$/.exec(e)}(a);return r?(PromptState.abapDeployConfig.client=a,r):(delete PromptState.abapDeployConfig.client,t("errors.invalidClient",{client:e}))}(e)}}async function getAbapTargetPrompts(e){const{destinations:a,backendSystems:r}=await async function getAbapSystems(){let e,a;if((0,l.isAppStudio)())e=await(0,l.listDestinations)({stripS4HCApiHosts:!0}),C=e;else{const e=await(0,p.cQ)({logger:LoggerHelper.logger,entityName:"system"});a=await(e?.getAll({includeSensitiveData:!1,backendSystemFilter:{connectionType:["abap_catalog","odata_service"]}})),D=a}return{destinations:e,backendSystems:a}}(),n=await getAbapSystemChoices(a,e?.backendTarget,r);return[...getDestinationPrompt(n,a,e.backendTarget,e.adpProjectType),...getTargetSystemPrompt(n,e.backendTarget,e.adpProjectType),getUrlPrompt(a,e.backendTarget),...getScpPrompt(e.backendTarget),...getClientChoicePrompt(e.backendTarget),getClientPrompt()]}function getUsernamePrompt(e){return{when:()=>async function showUsernameQuestion(e){const{transportConfig:a,transportConfigNeedsCreds:r}=await initTransportConfig({backendTarget:e,url:PromptState.abapDeployConfig.url,client:PromptState.abapDeployConfig.client,destination:PromptState.abapDeployConfig.destination,errorHandler:e=>{handleTransportConfigError(e)}});return PromptState.transportAnswers.transportConfig=a,PromptState.transportAnswers.transportConfigNeedsCreds=r??!1,r&&LoggerHelper.logger.info(t("errors.atoUnauthorisedSystem")),PromptState.transportAnswers.transportConfigNeedsCreds}(e.backendTarget),type:"input",name:v.username,message:t("prompts.auth.username.message"),guiOptions:{mandatory:!0}}}function getPasswordPrompt(e){return{when:()=>function showPasswordQuestion(){return Boolean(PromptState.transportAnswers.transportConfigNeedsCreds)}(),type:"password",name:v.password,message:t("prompts.auth.password.message"),mask:"*",guiOptions:{type:"login",mandatory:!0},validate:async(a,r)=>await validateCredentials(a,r,e.backendTarget,e.adpProjectType)}}function getUi5AbapRepoPrompt(e){return{when:()=>showUi5AppDeployConfigQuestion(e.ui5AbapRepo),type:"input",name:v.ui5AbapRepo,message:()=>PromptState.transportAnswers.transportConfig?.getApplicationPrefix()?t("prompts.config.app.ui5AbapRepo.messageMaxLength",{applicationPrefix:PromptState.transportAnswers.transportConfig?.getApplicationPrefix()}):t("prompts.config.app.ui5AbapRepo.message"),guiOptions:{hint:t("prompts.config.app.ui5AbapRepo.hint"),mandatory:!0,breadcrumb:t("prompts.config.app.ui5AbapRepo.message")},default:a=>a.ui5AbapRepo||e.ui5AbapRepo?.default,validate:e=>function validateUi5AbapRepoName(e){if(PromptState.transportAnswers.transportConfigError)return t("errors.targetNotDeployable",{systemError:PromptState.transportAnswers.transportConfigError});const a=isAppNameValid(e);return a?.valid?a.valid:a?.errorMessage??t("errors.validators.appNameInvalid")}(e),filter:e=>PromptState.isYUI?e?.trim():e?.trim()?.toUpperCase()}}function getDescriptionPrompt(e){return{when:()=>showUi5AppDeployConfigQuestion(e.ui5AbapRepo),type:"input",name:v.description,message:t("prompts.config.app.description.message"),guiOptions:{hint:t("prompts.config.app.description.hint"),breadcrumb:!0},default:a=>a.description||e.description?.default,filter:e=>e?.trim(),validate:e=>function validateAppDescription(e){return!(e?.length>60)||t("errors.validators.descriptionLength")}(e)}}function getPackagePrompts(e,a=!0,r=!1){let n,i="",o={},s=!1;PromptState.isYUI=r;const c=[{when:()=>function showPackageInputChoiceQuestion(e=!1){return!!e&&((!PromptState.isYUI||PromptState.isYUI&&e)&&defaultOrShowPackageQuestion())}(e?.packageAutocomplete?.useAutocomplete),type:"list",name:v.packageInputChoice,message:t("prompts.config.package.packageInputChoice.message"),guiOptions:{applyDefaultWhenDirty:!0},choices:()=>function getPackageInputChoices(){return[{name:t("choices.transport.enterManually"),value:T.EnterManualChoice},{name:t("choices.common.listExisting"),value:T.ListExistingChoice}]}(),default:e=>function defaultPackageChoice(e){return e??T.EnterManualChoice}(e.packageInputChoice),validate:async r=>(n=await validatePackageChoiceInput(r,getSystemConfig(a,PromptState.abapDeployConfig,e.backendTarget),e.backendTarget),n)},{when:async r=>(PromptState.isYUI||(await async function validatePackageChoiceInputForCli(e,a,r){if(a){const n=await validatePackageChoiceInput(a,e,r);if(!0!==n)throw new Error(n)}}(getSystemConfig(a,PromptState.abapDeployConfig,e.backendTarget),r.packageInputChoice,e.backendTarget),n=!0),!1),type:"input",name:v.packageCliExecution},{when:a=>function defaultOrShowManualPackageQuestion(e,a=!1){return!!a&&e===T.EnterManualChoice&&defaultOrShowPackageQuestion()}(a.packageInputChoice,e?.packageAutocomplete?.useAutocomplete),type:"input",name:v.packageManual,message:t("prompts.config.package.packageManual.message"),guiOptions:{hint:t("prompts.config.package.packageManual.hint"),mandatory:!0,breadcrumb:!0},default:a=>function defaultPackage(e,a){if(PromptState.abapDeployConfig.scp)return e||"";{let r="";return"P"!==PromptState.transportAnswers.transportConfig?.getOperationsType()||a?.additionalValidation&&!1!==a?.additionalValidation?.shouldValidatePackageType&&!1!==a?.additionalValidation?.shouldValidatePackageForStartingPrefix||(r=d.cX),e||r}}(a.packageManual||e.packageManual?.default,e?.packageManual),validate:async(a,r)=>(shouldRunValidation(o,r)&&(s=await validatePackage(a,r,e.packageManual,e.ui5AbapRepo,e.backendTarget,void 0,e.adpProjectType)),o=r,s),additionalMessages:e=>{if(e===d.cX.toLowerCase())return{message:t("warnings.packageTmpLowercase"),severity:S.Severity.warning}}},{when:a=>!0===n&&function defaultOrShowSearchPackageQuestion(e,a=!1){return!!a&&e===T.ListExistingChoice&&defaultOrShowPackageQuestion()}(a.packageInputChoice,e?.packageAutocomplete?.useAutocomplete),type:"autocomplete",name:v.packageAutocomplete,message:`${t("prompts.config.package.packageAutocomplete.message")}${PromptState.isYUI?"":t("prompts.config.package.packageAutocomplete.messageTypeFilter")}`,guiOptions:{hint:t("prompts.config.package.packageAutocomplete.hint"),mandatory:!0,breadcrumb:!0},source:async(r,n)=>{const o=await async function getPackageChoices(e,a,r,n,i){let o,s="";if((e||a)&&(o=await queryPackages(a,r,i),s=o?.length===d.Jg?t("prompts.config.package.packageAutocomplete.sourceMessage",{numResults:o.length}):s,n.packageAutocomplete)){const e=o.indexOf(n.packageAutocomplete);-1!==e&&o.splice(0,0,o.splice(e,1)[0])}return{packages:o??[],morePackageResultsMsg:s}}(!PromptState.isYUI,n,getSystemConfig(a,PromptState.abapDeployConfig,e.backendTarget),r,e.backendTarget);return i=o.morePackageResultsMsg,o.packages},additionalInfo:()=>i,validate:async(a,r)=>{const n=a?.value?a.value:a;return shouldRunValidation(o,r)&&(s=await validatePackage(n,r,e.packageAutocomplete,e.ui5AbapRepo,e.backendTarget,void 0,e.adpProjectType)),o=r,s}}];return c}function getTransportRequestPrompts(e,a=!0,r=!1){let n,i={},o=!1;PromptState.isYUI=r;return[{when:()=>function showTransportInputChoice(e){return!(e?.hideIfOnPremise&&!PromptState.abapDeployConfig?.scp)&&defaultOrShowTransportQuestion()}(e.transportInputChoice),type:"list",name:v.transportInputChoice,message:t("prompts.config.transport.transportInputChoice.message"),guiOptions:{applyDefaultWhenDirty:!0},choices:()=>function getTransportChoices(e=!0){const a={name:t("choices.transport.enterManually"),value:O.EnterManualChoice},r={name:t("choices.common.listExisting"),value:O.ListExistingChoice},n={name:t("choices.transport.createDuringDeploy"),value:O.CreateDuringDeployChoice};return[a,r,...e?[n]:[],{name:t("choices.transport.createNew"),value:O.CreateNewChoice}]}(e.transportInputChoice?.showCreateDuringDeploy),default:a=>function defaultTransportRequestChoice(e,a=!1){return e||(a?O.CreateDuringDeployChoice:O.EnterManualChoice)}(a.transportInputChoice,function useCreateTrDuringDeploy(e){return e===d.G5}(e.transportManual?.default)),validate:async(r,s)=>(shouldRunValidation(i,s)&&(o=await validateTransportChoiceInput({useStandalone:a,input:r,previousAnswers:s,validateInputChanged:!0,prevTransportInputChoice:n,backendTarget:e.backendTarget,ui5AbapRepoName:e.ui5AbapRepo?.default,transportDescription:e.transportCreated?.description})),n=r,i=s,o)},{when:async r=>{if(!PromptState.isYUI){const n=await validateTransportChoiceInput({useStandalone:a,input:r.transportInputChoice,previousAnswers:r,validateInputChanged:!1,backendTarget:e.backendTarget,ui5AbapRepoName:e.ui5AbapRepo?.default});if(!0!==n)throw new Error(n)}return!1},type:"input",name:v.transportCliExecution},{when:e=>function defaultOrShowTransportCreatedQuestion(e){return!!defaultOrShowTransportQuestion()&&e===O.CreateNewChoice&&!!PromptState.transportAnswers.newTransportNumber}(e.transportInputChoice),name:v.transportCreated,type:"input",default:()=>PromptState.transportAnswers.newTransportNumber,message:t("prompts.config.transport.transportCreated.message")},{when:a=>function defaultOrShowTransportListQuestion(e,a){return!!defaultOrShowTransportQuestion()&&e===O.ListExistingChoice&&!function isTransportListEmpty(e){return!e||0===e.length}(PromptState.transportAnswers.transportList)&&!a?.hideIfOnPremise}(a.transportInputChoice,e.transportInputChoice),type:"list",name:v.transportFromList,message:t("prompts.config.transport.common.transportRequest"),guiOptions:{hint:t("prompts.config.transport.common.provideTransportRequest"),breadcrumb:t("prompts.config.transport.common.transportRequest")},choices:()=>PromptState.transportAnswers.transportList?.map(transportName),default:()=>function defaultTransportListChoice(e){return e&&e>1?void 0:0}(PromptState?.transportAnswers.transportList?.length)},{when:a=>function defaultOrShowManualTransportQuestion(e,a){return defaultOrShowTransportQuestion()&&(e===O.EnterManualChoice||!!a?.hideIfOnPremise)}(a.transportInputChoice,e.transportInputChoice),type:"input",name:v.transportManual,message:t("prompts.config.transport.common.transportRequest"),guiOptions:{hint:t("prompts.config.transport.common.provideTransportRequest"),breadcrumb:t("prompts.config.transport.common.transportRequest"),mandatory:!0},default:a=>a.transportManual||e.transportManual?.default,validate:e=>function validateTransportQuestion(e){return!(PromptState.transportAnswers.transportRequired&&!e?.trim())||t("prompts.config.transport.common.provideTransportRequest")}(e),filter:e=>e?.trim()?.toUpperCase()}]}function getIndexPrompt(e){return{when:()=>function showIndexQuestion(e){return Boolean(e.index?.indexGenerationAllowed&&!PromptState.abapDeployConfig.index)&&!PromptState.transportAnswers.transportConfigError&&"library"!==e.backendTarget?.type}(e),name:v.index,type:"confirm",message:t("prompts.confirm.index.message"),guiOptions:{breadcrumb:t("prompts.confirm.index.hint")},default:!1}}function getOverwritePrompt(){return{name:v.overwriteAbapConfig,type:"confirm",message:t("prompts.confirm.overwrite.message"),guiOptions:{hint:t("prompts.confirm.overwrite.hint")},default:!0,validate:e=>function validateConfirmQuestion(e){return PromptState.abapDeployConfig.abort=!e,!0}(e)}}async function getAbapDeployConfigQuestions(e){e=e??{};const a=await getAbapTargetPrompts(e),r=function getAuthPrompts(e){return[getUsernamePrompt(e),getPasswordPrompt(e)]}(e),n=[...a,...r];!0!==e.ui5AbapRepo?.hide&&n.push(...function getAppConfigPrompts(e){return[getUi5AbapRepoPrompt(e),getDescriptionPrompt(e)]}(e));const i=getPackagePrompts(e,!1,PromptState.isYUI),o=getTransportRequestPrompts(e,!1,PromptState.isYUI),s=function getConfirmPrompts(e){const a=[getIndexPrompt(e)];return!0!==e.overwriteAbapConfig?.hide&&a.push(getOverwritePrompt()),a}(e);return n.push(...i,...o,...s),n}async function getPrompts(e,a,r=!1){return await initI18n(),LoggerHelper.logger=a??new n.ToolsLogger({logPrefix:"@sap-ux/abap-deploy-config-inquirer"}),PromptState.isYUI=r,PromptState.resetAbapDeployConfig(),AbapServiceProviderManager.resetIsDefaultProviderAbapCloud(),{prompts:await getAbapDeployConfigQuestions(e),answers:PromptState.abapDeployConfig}}},81001(e,a,r){r.d(a,{ev:()=>findChangeWithInboundId,VV:()=>getChange,BE:()=>getChangesByType,qQ:()=>getParsedPropertyValue,bG:()=>parseStringToObject,TD:()=>writeAnnotationChange,FF:()=>writeChangeToFile,LR:()=>writeChangeToFolder,x2:()=>writeKeyUserChanges});var n=r(76760),i=r(73136),o=r(73024),s=r(7083),c=r(63011),l=r(29473),p=r(50702);const d={iw:"he",ji:"yi"};function normalizeLanguageForI18n(e){if(!e)return"";const a=e.split(/[-_]/);let r=a[0].toLowerCase();r=d[r]??r;const n=[];for(const e of a.slice(1))/^[A-Za-z]{4}$/.test(e)?n.push(e[0].toUpperCase()+e.slice(1).toLowerCase()):/^[A-Za-z]{2}$/.test(e)&&n.push(e.toUpperCase());return n.length?`${r}_${n.join("_")}`:r}function replaceTextsWithI18nBindings(e,a){const r={};for(const n of Object.keys(e)){const i={...e[n]},o=`${a}_${n}`;i.value=`{i18n>${o}}`,r[n]=i}return r}async function writeKeyUserTranslations(e,a,r,i){const o=await(0,s.vv)(e,i),c={};for(const e of Object.keys(r)){const n=r[e],i=n.type,o=n.values;if(!o)continue;const s=`${a}_${e}`;for(const e of Object.keys(o)){const a=normalizeLanguageForI18n(e);c[a]||(c[a]=[]);const r={key:s,value:o[e]};i&&(r.annotation={textType:i}),c[a].push(r)}}for(const e of Object.keys(c)){const a=e?`i18n_${e}.properties`:"i18n.properties",r=(0,n.join)(o,"i18n",a);await(0,p.Kc)(r,c[e],void 0,i)}}const u=(0,n.dirname)((0,i.fileURLToPath)(require("node:url").pathToFileURL(__filename).href));async function writeAnnotationChange(e,a,r,i,o,p){try{const d=await(0,s.vv)(e,o),m=n.join(d,s.Lm.Changes),g=n.join(m,s.Lm.Annotations);if(i){const e=`${i.fileName}.change`;writeChangeToFile(n.join(m,e),i,o)}if(r.filePath){n.dirname(r.