UNPKG

@sap/generator-fiori

Version:

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

3 lines (2 loc) 43.7 kB
const __esmImportMetaUrl = require('node:url').pathToFileURL(__filename).href; var rr=Object.create;var B=Object.defineProperty;var nr=Object.getOwnPropertyDescriptor;var ir=Object.getOwnPropertyNames;var or=Object.getPrototypeOf,sr=Object.prototype.hasOwnProperty;var r=(e,t)=>B(e,"name",{value:t,configurable:!0});var g=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},Ve=(e,t)=>{for(var n in t)B(e,n,{get:t[n],enumerable:!0})},qe=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ir(t))!sr.call(e,o)&&o!==n&&B(e,o,{get:()=>t[o],enumerable:!(i=nr(t,o))||i.enumerable});return e};var W=(e,t,n)=>(n=e!=null?rr(or(e)):{},qe(t||!e||!e.__esModule?B(n,"default",{value:e,enumerable:!0}):n,e)),ar=e=>qe(B({},"__esModule",{value:!0}),e);var mt=g(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.Authentication=U.AuthenticationType=void 0;var Sr=he(),lt;(function(e){e.NoAuthentication="NoAuthentication",e.BasicAuthentication="BasicAuthentication",e.OAuth2UserTokenExchange="OAuth2UserTokenExchange",e.PrincipalPropagation="PrincipalPropagation",e.OAuth2SAMLBearerAssertion="OAuth2SAMLBearerAssertion",e.OAuth2ClientCredentials="OAuth2ClientCredentials"})(lt||(U.AuthenticationType=lt={}));var Ee=class{static{r(this,"Authentication")}constructor(t,n){this.user=t,this.password=n}getEncodedBasicAuthentication(){if(this.user&&this.password)return`Basic ${Buffer.from(`${this.user}:${this.password}`).toString("base64")}`;throw new Error(Sr.messages.ERROR_FAILED_TO_RETRIEVE_USERNAME_PASSWORD)}};U.Authentication=Ee});var ye=g(R=>{"use strict";Object.defineProperty(R,"__esModule",{value:!0});R.Filter=R.ProxyType=R.DataType=void 0;var ft;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.CATALOG=1]="CATALOG",e[e.SERVICE_EP=2]="SERVICE_EP",e[e.SERVICE_EP_FULL_URL=3]="SERVICE_EP_FULL_URL",e[e.RfcSystem=4]="RfcSystem",e[e.RfcFunction=5]="RfcFunction",e[e.ApiHubProduct=6]="ApiHubProduct",e[e.ApiHubPackage=7]="ApiHubPackage",e[e.ApiHubService=8]="ApiHubService",e[e.ApiHubEntDestination=9]="ApiHubEntDestination",e[e.ApiHubEntProduct=10]="ApiHubEntProduct",e[e.ApiHubEntService=11]="ApiHubEntService",e[e.UclSystem=12]="UclSystem",e[e.UclPackage=13]="UclPackage",e[e.UclService=14]="UclService",e[e.UclEvent=15]="UclEvent",e[e.CATALOG_C4C=16]="CATALOG_C4C",e[e.ApiHubEventPackage=17]="ApiHubEventPackage",e[e.ApiHubEvent=18]="ApiHubEvent",e[e.SapBusinessOne=19]="SapBusinessOne",e[e.ApiHubEntSapProduct=20]="ApiHubEntSapProduct",e[e.ApiHubEntSapService=21]="ApiHubEntSapService"})(ft||(R.DataType=ft={}));var gt;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.INTERNET=1]="INTERNET",e[e.ONPREMISE=2]="ONPREMISE"})(gt||(R.ProxyType=gt={}));var _e=class extends Map{static{r(this,"Filter")}constructor(t){super(t)}append(t,n){if(t&&n){let i=this.get(t)||[];n.forEach(o=>{i.includes(o)||i.push(o)}),this.set(t,i)}return this}};R.Filter=_e});var V=g(S=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0});S.BLOB_RESPONSE_TYPE=S.GET_METHOD_TYPE=S.ODATAV4=S.ODATAV2=S.ServiceRequestKey=S.JSON_STR=S.XML_STR=void 0;S.XML_STR="xml";S.JSON_STR="json";var St;(function(e){e.ResponseFormat="$format",e.TopRows="$top",e.ExpandInLine="$expand",e.FilterBy="$filter",e.Select="$select"})(St||(S.ServiceRequestKey=St={}));S.ODATAV2="odatav2";S.ODATAV4="odatav4";S.GET_METHOD_TYPE="GET";S.BLOB_RESPONSE_TYPE="blob"});var Et=g(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.ODataService=void 0;var vt=V(),be=class{static{r(this,"ODataService")}constructor(t,n,i,o,a,c,m,h){this.name=t,this.url=n,this.id=i,this.protocol=o||"odatav2",this.serviceUiType=a,this.description=c,this.version=m,this.groupId=h}getRelativeUrl(){try{return this.getRelativePath(this.url)}catch{return this.url}}getProtocol(){return this.protocol}getRelativePath(t){if(!t||t.length==0)return"";if(this.protocol==vt.ODATAV2){let n=new URL(t);return n.pathname!="/"?n.pathname:""}if(this.protocol==vt.ODATAV4)return t}};z.ODataService=be});var Oe=g(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.EncodingMode=void 0;var ht;(function(e){e[e.XML=0]="XML",e[e.JSON=1]="JSON",e[e.EDMX=2]="EDMX"})(ht||(Z.EncodingMode=ht={}))});var ee=g(L=>{"use strict";Object.defineProperty(L,"__esModule",{value:!0});L.ServiceProviderError=L.ServiceProviderErrorCode=void 0;var j;(function(e){e[e.INTERNAL_ERROR=500]="INTERNAL_ERROR",e[e.REQUEST_ERROR=600]="REQUEST_ERROR",e[e.CF_CONFIGURATION=601]="CF_CONFIGURATION",e[e.RETRIEVE_DATA=602]="RETRIEVE_DATA"})(j||(L.ServiceProviderErrorCode=j={}));var vr="Internal server error",Er="HTTP Request error",hr="Cloud Foundry configuration error",_r="Data retrieval error",Ae=class e extends Error{static{r(this,"ServiceProviderError")}constructor(t,n,i){super(typeof n=="string"?n:`${e.getMessage(t)}: ${n.message}`),this.code=t,this.cause=n instanceof Error?n:null,this.originalCause=i||void 0,this.name="ServiceProviderError"}getOriginalCause(){return this.originalCause?this.originalCause:this.cause&&this.cause instanceof e?this.cause.getOriginalCause():e.getMessage(this.code)}static getMessage(t){switch(t){case j.INTERNAL_ERROR:return vr;case j.REQUEST_ERROR:return Er;case j.CF_CONFIGURATION:return hr;case j.RETRIEVE_DATA:return _r}}};L.ServiceProviderError=Ae});var yt=g(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.ProviderType=void 0;var _t;(function(e){e.SapSystem="SapSystem",e.ApiHub="ApiHub",e.ApiHubEnt="ApiHubEnt",e.Ucl="Ucl"})(_t||(te.ProviderType=_t={}))});var q=g(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.messages=void 0;re.messages={SYS_ERROR_RETRIEVE_DESTINATION_METHOD:"This class doesn't implement the retrieve destination method.",SYS_ERROR_FAIL_RETRIEVE_SERVICES:"Cannot retrieve services.",SYS_ERROR_FAIL_PARSE_RESPONSE:"Cannot parse response.",SYS_ERROR_FAIL_RETRIEVE_METADATA:"Cannot retrieve metadata.",SYS_ERROR_FAIL_RETRIEVE_ENTITY_DATA:r(e=>`The '${e}' data is not available.`,"SYS_ERROR_FAIL_RETRIEVE_ENTITY_DATA"),SYS_ERROR_FAIL_RETRIEVE_ANNOTATIONS:"Cannot retrieve annotations.",SYS_ERROR_FAIL_RETRIEVE_DESTINATIONS:"Cannot retrieve destinations.",SYS_ERROR_MISSING_CF_CONFIGURATIONS:"Missing Cloud Foundry configurations - ensure your CF org and space are configured.",SYS_ERROR_RETRIEVING_SERVICE_KEY:"Cannot retrieve service key.",ERROR_FAILED_TO_INIT:"Cannot init DestinationServiceProviderRepository.",ERROR_FAILED_TO_GET_SERVICES:"Cannot get services.",ERROR_FAILED_TO_GET_METADATA:"Cannot get metadata.",ERROR_FAILED_TO_GET_SERVICE_TYPE:"Cannot get service type.",ERROR_FAILED_TO_GET_ENTITY_DATA:r(e=>`Failed to retrieve data for the '${e}' entity.`,"ERROR_FAILED_TO_GET_ENTITY_DATA"),ERROR_FAILED_TO_GET_ANNOTATIONS:"Cannot get annotations.",ERROR_FAILED_TO_GET_ANNOTATIONS_FROM_NON_CATALOG:"Non catalog services do not provide annotations.",ERROR_FAILED_TO_PARSE_RESPONSE:"The response encoding does not match the requested encoding.",ERROR_FAILED_TO_RETRIEVE_USERNAME_PASSWORD:"Username and password must be defined.",ERROR_FAILED_HTTP_REQUEST:r(e=>`HTTP request failed with error code '${e}'.`,"ERROR_FAILED_HTTP_REQUEST"),ERROR_INVALID_REQUEST_PARAM:r((e,t)=>`The '${e}' in the request contains the following invalid value: '${t}'.`,"ERROR_INVALID_REQUEST_PARAM"),ERROR_IN_FUNCTION_EXECUTION:r((e,t)=>`${e} fails with: ${t}`,"ERROR_IN_FUNCTION_EXECUTION"),METHOD_NOT_IMPLEMENTED_ERROR:r(e=>`Method "${e}" not implemented.`,"METHOD_NOT_IMPLEMENTED_ERROR"),ERROR_FAILED_TO_GET_ENVIRONMENT_VARIABLES:r(e=>`The ${e} environment variable is missing.`,"ERROR_FAILED_TO_GET_ENVIRONMENT_VARIABLES"),ERROR_FAILED_TO_CONVERT_PROXY:" Could not convert the proxy because the string is not in the correct format.",ERROR_FAILED_TO_GET_COOKIES:"Could not extract cookies from the response."}});var Ot=g(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.getRequestParamString=Or;ie.addFormatParamToFilter=Ar;var yr=q(),ne=V(),br=ye(),Re=Oe(),bt=ee();function Or(e){let t="";return e&&e.size>0&&(t="?",e.forEach((n,i)=>t=`${t}${i}=${n[0]}&`),t=t.substring(0,t.length-1)),t}r(Or,"getRequestParamString");function Ar(e,t){switch(e||(e=new br.Filter(new Map([]))),t){case Re.EncodingMode.XML:e.append(ne.ServiceRequestKey.ResponseFormat,[ne.XML_STR]);break;case Re.EncodingMode.JSON:e.append(ne.ServiceRequestKey.ResponseFormat,[ne.JSON_STR]);break;default:{let n=new Error(yr.messages.ERROR_INVALID_REQUEST_PARAM("encoding",`EncodingMode.${Re.EncodingMode[t]}`));throw new bt.ServiceProviderError(bt.ServiceProviderErrorCode.RETRIEVE_DATA,n)}}return e}r(Ar,"addFormatParamToFilter")});var Te=g($=>{"use strict";Object.defineProperty($,"__esModule",{value:!0});$.DefaultLogger=void 0;$.DefaultLogger={fatal:r(e=>{console.log(e)},"fatal"),error:r(e=>{console.log(e)},"error"),warn:r(e=>{console.log(e)},"warn"),info:r(e=>{console.log(e)},"info"),debug:r(e=>{console.log(e)},"debug"),trace:r(e=>{console.log(e)},"trace"),getChildLogger:r(e=>$.DefaultLogger,"getChildLogger")}});var Pe=g(oe=>{"use strict";Object.defineProperty(oe,"__esModule",{value:!0});oe.addUserAgentHeader=At;oe.setHeaders=Rr;function At(e){return e||(e={}),e["User-Agent"]="service-provider",e}r(At,"addUserAgentHeader");function Rr(e,t){return t=At(t),e&&(t["Content-Type"]="application/json"),t}r(Rr,"setHeaders")});var Tt=g(x=>{"use strict";var Ce=x&&x.__awaiter||function(e,t,n,i){function o(a){return a instanceof n?a:new n(function(c){c(a)})}return r(o,"adopt"),new(n||(n=Promise))(function(a,c){function m(l){try{v(i.next(l))}catch(y){c(y)}}r(m,"fulfilled");function h(l){try{v(i.throw(l))}catch(y){c(y)}}r(h,"rejected");function v(l){l.done?a(l.value):o(l.value).then(m,h)}r(v,"step"),v((i=i.apply(e,t||[])).next())})};Object.defineProperty(x,"__esModule",{value:!0});x.Connectivity=void 0;var Tr=require("../commonlibs/axios/index.js"),Rt=ee(),Pr=Te(),Cr=Pe(),se=class e{static{r(this,"Connectivity")}static sendRequest(t,n,i,o,a){return Ce(this,void 0,void 0,function*(){let c=t.concat(n),m=e.getAxiosRequestConfig(c,"get",void 0,i,o,a);return yield e.send(m)})}static sendPostRequest(t,n,i,o,a,c){return Ce(this,void 0,void 0,function*(){let m=t.concat(n),h=e.getAxiosRequestConfig(m,"post",i,o,a,c);return yield e.send(h)})}static getAxiosRequestConfig(t,n,i,o,a,c){return{method:n,url:t,data:i,proxy:e.convertProxy(o),headers:(0,Cr.setHeaders)(a,c)}}static send(t){return Ce(this,void 0,void 0,function*(){var n;let i;try{i=yield Tr.default.request(t)}catch(o){throw new Rt.ServiceProviderError(Rt.ServiceProviderErrorCode.REQUEST_ERROR,o,(n=o.response)===null||n===void 0?void 0:n.status)}return i.data})}static convertProxy(t){if(!t)return;let n=new URL(t);return{port:Number(n.port),host:n.hostname,protocol:n.protocol}}};x.Connectivity=se;se.logger=Pr.DefaultLogger});var Ne=g(T=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});T.UNKNOWN=T.ASYNC_API_TYPE=T.OPEN_API_TYPE=void 0;T.OPEN_API_TYPE="openAPI";T.ASYNC_API_TYPE="asyncAPI";T.UNKNOWN="unknown"});var Ie=g(G=>{"use strict";var Nr=G&&G.__rest||function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]]);return n};Object.defineProperty(G,"__esModule",{value:!0});G.responseDestinationToProviderDestination=wr;G.toCredentials=Pt;var Ir=require("url");function wr(e){let t;e.URL&&(t=new Ir.URL(e.URL));let{Name:n,Type:i,ProxyType:o,Host:a,Description:c,Authentication:m}=e,h=Nr(e,["Name","Type","ProxyType","Host","Description","Authentication"]);return Object.assign({name:n,type:i,credentials:Pt(e),proxyType:o,url:t,host:a,description:c},h)}r(wr,"responseDestinationToProviderDestination");function Pt(e){let t={authentication:e.Authentication};return e.User&&e.Password&&e.Authentication==="BasicAuthentication"&&(t.basicAuthentication={userName:e.User,userPassword:e.Password}),e.clientId&&e.clientSecret&&e.tokenServiceURL&&e.tokenServiceURLType&&e.Authentication==="OAuth2ClientCredentials"&&(t.oauth2ClientCredentials={clientId:e.clientId,clientSecret:e.clientSecret,tokenServiceURL:e.tokenServiceURL,tokenServiceURLType:e.tokenServiceURLType,tokenServiceUser:e.tokenServiceUser,tokenServicePassword:e.tokenServicePassword}),t}r(Pt,"toCredentials")});var Ue=g(k=>{"use strict";Object.defineProperty(k,"__esModule",{value:!0});k.isAppStudio=jr;k.getEnvValue=Lr;k.getEventSpecType=xr;var Ur=q(),we=Ne();function jr(){let e=process.env.WS_BASE_URL;return e===void 0?!1:e!==""}r(jr,"isAppStudio");function Lr(e){let t=process.env[e];if(t===void 0)throw new Error(Ur.messages.ERROR_FAILED_TO_GET_ENVIRONMENT_VARIABLES(e));return t}r(Lr,"getEnvValue");function xr(e){switch(!0){case"asyncapi"in e:return we.ASYNC_API_TYPE;case"openapi"in e:return we.OPEN_API_TYPE;default:return we.UNKNOWN}}r(xr,"getEventSpecType")});var je=g(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.convertProxyStrToAxiosProxyConfig=Vr;C.getBasProviderParams=qr;C.extractBASProperties=$r;C.setRequestCsrfHeaders=kr;C.getCookies=Ut;var It=q(),Ct=Ue(),wt=require("url"),Nt=Le(),Gr="sap-client",Dr="product.name",Fr="URL.headers.ApiKey",Mr="applicationID",Br="HTML5.DynamicDestination";function Vr(e){let t,n;try{t=new wt.URL(e),n=Number(t.port)}catch(o){throw new Error(`${It.messages.ERROR_FAILED_TO_CONVERT_PROXY}: ${o.message}`)}let i={host:t.hostname,port:n,protocol:t.protocol};return t.username&&t.password&&(i.auth={username:t.username,password:t.password}),i}r(Vr,"convertProxyStrToAxiosProxyConfig");function qr(){let e=new wt.URL((0,Ct.getEnvValue)(Nt.HTTP_PROXY)),t=(0,Ct.getEnvValue)(Nt.H2O_URL),n={port:Number(e.port),host:e.hostname,protocol:e.protocol};return{h2oUrl:t,proxy:n,httpsAgent:void 0}}r(qr,"getBasProviderParams");function $r(e){return{additionalData:e.WebIDEAdditionalData,usage:e.WebIDEUsage,html5DynamicDestination:e[Br],sapClient:e[Gr],productName:e[Dr],apiKey:e[Fr],applicationID:e[Mr],apiBusinessHubEnterpriseURL:e.apiBusinessHubEnterpriseURL,WebIDEEnabled:e.WebIDEEnabled,abapEnabled:e.abap_enabled}}r($r,"extractBASProperties");function kr(e){let t=Ut(e);return{"x-csrf-token":e.headers["x-csrf-token"],Cookie:t}}r(kr,"setRequestCsrfHeaders");function Ut(e){let t=e.headers["set-cookie"];if(!t)throw new Error(It.messages.ERROR_FAILED_TO_GET_COOKIES);return t.map(i=>i.split(";")[0]).join(";")}r(Ut,"getCookies")});var Le=g(f=>{"use strict";var D=f&&f.__awaiter||function(e,t,n,i){function o(a){return a instanceof n?a:new n(function(c){c(a)})}return r(o,"adopt"),new(n||(n=Promise))(function(a,c){function m(l){try{v(i.next(l))}catch(y){c(y)}}r(m,"fulfilled");function h(l){try{v(i.throw(l))}catch(y){c(y)}}r(h,"rejected");function v(l){l.done?a(l.value):o(l.value).then(m,h)}r(v,"step"),v((i=i.apply(e,t||[])).next())})};Object.defineProperty(f,"__esModule",{value:!0});f.BasConnectivity=f.HTTP_PROXY=f.H2O_URL=f.TIME_OUT=f.DESTINATIONS=f.GET_SUBACCOUNT_DESTINATIONS_SUFFIX=void 0;var jt=require("../commonlibs/axios/index.js"),Hr=Ie(),Lt=je(),xt=V(),Yr=Pe();f.GET_SUBACCOUNT_DESTINATIONS_SUFFIX="/api/listDestinations?$format=json";f.DESTINATIONS="/destinations/";f.TIME_OUT=2e4;f.H2O_URL="H2O_URL";f.HTTP_PROXY="http_proxy";var xe=class{static{r(this,"BasConnectivity")}constructor(t){this.basProviderParams=t}getSubAccountDestinations(){return D(this,void 0,void 0,function*(){if(this.providerDestinationBas)return this.providerDestinationBas;let t=`${this.basProviderParams.h2oUrl}${f.GET_SUBACCOUNT_DESTINATIONS_SUFFIX}`,n={urlPath:"",method:xt.GET_METHOD_TYPE,responseType:xt.JSON_STR},i=yield this.buildParamsAndSendRequest(n,t);return this.providerDestinationBas=i.map(o=>Object.assign(Object.assign({},(0,Hr.responseDestinationToProviderDestination)(o)),(0,Lt.extractBASProperties)(o))),this.providerDestinationBas})}sendRequestViaDestination(t,n){return D(this,void 0,void 0,function*(){let o=`${`${this.basProviderParams.h2oUrl}${f.DESTINATIONS}${n}`}${t.urlPath}`;return this.buildParamsAndSendRequest(t,o)})}sendRequestToPublicSystem(t,n){return D(this,void 0,void 0,function*(){let i=`${n}${t.urlPath}`;return this.buildParamsAndSendRequest(t,i)})}fetchCsrfTokenHeaders(t,n){return D(this,void 0,void 0,function*(){let o=`${`${this.basProviderParams.h2oUrl}${f.DESTINATIONS}${n}`}${t.urlPath}`,a=this.getAxiosRequestConfigMethod(t.method,o,t.responseType,Object.assign(Object.assign({},t.headers),{"X-Csrf-Token":"Fetch"}),t.body,t.timeout),c=yield jt.default.request(a);return(0,Lt.setRequestCsrfHeaders)(c)})}createAxiosInstance(t){let n=jt.default.create();return t?.requestInterceptor&&n.interceptors.request.use(t.requestInterceptor.onFulfilled,t.requestInterceptor.onRejected),t?.responseInterceptor&&n.interceptors.response.use(t.responseInterceptor.onFulfilled,t.responseInterceptor.onRejected),n}buildParamsAndSendRequest(t,n){return D(this,void 0,void 0,function*(){let i=this.getAxiosRequestConfigMethod(t.method,n,t.responseType,t.headers,t.body,t.timeout);return yield this.request(i,t.interceptors)})}request(t,n){return D(this,void 0,void 0,function*(){return(yield this.createAxiosInstance(n).request(t)).data})}getAxiosRequestConfigMethod(t,n,i,o,a,c){return{url:n,method:t,httpsAgent:this.basProviderParams.httpsAgent,responseType:i,headers:(0,Yr.addUserAgentHeader)(o),proxy:this.basProviderParams.proxy,timeout:c??f.TIME_OUT,data:a}}};f.BasConnectivity=xe});var Gt=g(H=>{"use strict";var Wr=H&&H.__awaiter||function(e,t,n,i){function o(a){return a instanceof n?a:new n(function(c){c(a)})}return r(o,"adopt"),new(n||(n=Promise))(function(a,c){function m(l){try{v(i.next(l))}catch(y){c(y)}}r(m,"fulfilled");function h(l){try{v(i.throw(l))}catch(y){c(y)}}r(h,"rejected");function v(l){l.done?a(l.value):o(l.value).then(m,h)}r(v,"step"),v((i=i.apply(e,t||[])).next())})};Object.defineProperty(H,"__esModule",{value:!0});H.measurePerformance=Jr;function Jr(e,t,n){return(...i)=>Wr(this,void 0,void 0,function*(){let o=e.name||`anonymous_${Date.now()}`,a=`${o}-start`,c=`${o}-end`,m=`${o}-measure`;performance.mark(a,{detail:t});let h;try{h=yield e.call(n,...i)}catch(v){throw console.error(`Error in function ${o} during measurement:`,v),v}finally{performance.mark(c,{detail:t}),performance.measure(m,{start:a,end:c,detail:t})}return h})}r(Jr,"measurePerformance")});var he=g(s=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});s.measurePerformance=s.responseDestinationToProviderDestination=s.getBasProviderParams=s.convertProxyStrToAxiosProxyConfig=s.getEventSpecType=s.getEnvValue=s.isAppStudio=s.DESTINATIONS=s.H2O_URL=s.BasConnectivity=s.UNKNOWN=s.ASYNC_API_TYPE=s.OPEN_API_TYPE=s.BLOB_RESPONSE_TYPE=s.GET_METHOD_TYPE=s.ODATAV4=s.ODATAV2=s.ServiceRequestKey=s.XML=s.JSON=s.messages=s.Connectivity=s.DefaultLogger=s.addFormatParamToFilter=s.getRequestParamString=s.ProviderType=s.ServiceProviderErrorCode=s.ServiceProviderError=s.EncodingMode=s.ODataService=s.Filter=s.ProxyType=s.DataType=s.AuthenticationType=s.Authentication=void 0;var Dt=mt();Object.defineProperty(s,"Authentication",{enumerable:!0,get:r(function(){return Dt.Authentication},"get")});Object.defineProperty(s,"AuthenticationType",{enumerable:!0,get:r(function(){return Dt.AuthenticationType},"get")});var Ge=ye();Object.defineProperty(s,"DataType",{enumerable:!0,get:r(function(){return Ge.DataType},"get")});Object.defineProperty(s,"ProxyType",{enumerable:!0,get:r(function(){return Ge.ProxyType},"get")});Object.defineProperty(s,"Filter",{enumerable:!0,get:r(function(){return Ge.Filter},"get")});var Qr=Et();Object.defineProperty(s,"ODataService",{enumerable:!0,get:r(function(){return Qr.ODataService},"get")});var Xr=Oe();Object.defineProperty(s,"EncodingMode",{enumerable:!0,get:r(function(){return Xr.EncodingMode},"get")});var Ft=ee();Object.defineProperty(s,"ServiceProviderError",{enumerable:!0,get:r(function(){return Ft.ServiceProviderError},"get")});Object.defineProperty(s,"ServiceProviderErrorCode",{enumerable:!0,get:r(function(){return Ft.ServiceProviderErrorCode},"get")});var Kr=yt();Object.defineProperty(s,"ProviderType",{enumerable:!0,get:r(function(){return Kr.ProviderType},"get")});var Mt=Ot();Object.defineProperty(s,"getRequestParamString",{enumerable:!0,get:r(function(){return Mt.getRequestParamString},"get")});Object.defineProperty(s,"addFormatParamToFilter",{enumerable:!0,get:r(function(){return Mt.addFormatParamToFilter},"get")});var zr=Te();Object.defineProperty(s,"DefaultLogger",{enumerable:!0,get:r(function(){return zr.DefaultLogger},"get")});var Zr=Tt();Object.defineProperty(s,"Connectivity",{enumerable:!0,get:r(function(){return Zr.Connectivity},"get")});var en=q();Object.defineProperty(s,"messages",{enumerable:!0,get:r(function(){return en.messages},"get")});var N=V();Object.defineProperty(s,"JSON",{enumerable:!0,get:r(function(){return N.JSON_STR},"get")});Object.defineProperty(s,"XML",{enumerable:!0,get:r(function(){return N.XML_STR},"get")});Object.defineProperty(s,"ServiceRequestKey",{enumerable:!0,get:r(function(){return N.ServiceRequestKey},"get")});Object.defineProperty(s,"ODATAV2",{enumerable:!0,get:r(function(){return N.ODATAV2},"get")});Object.defineProperty(s,"ODATAV4",{enumerable:!0,get:r(function(){return N.ODATAV4},"get")});Object.defineProperty(s,"GET_METHOD_TYPE",{enumerable:!0,get:r(function(){return N.GET_METHOD_TYPE},"get")});Object.defineProperty(s,"BLOB_RESPONSE_TYPE",{enumerable:!0,get:r(function(){return N.BLOB_RESPONSE_TYPE},"get")});var De=Ne();Object.defineProperty(s,"OPEN_API_TYPE",{enumerable:!0,get:r(function(){return De.OPEN_API_TYPE},"get")});Object.defineProperty(s,"ASYNC_API_TYPE",{enumerable:!0,get:r(function(){return De.ASYNC_API_TYPE},"get")});Object.defineProperty(s,"UNKNOWN",{enumerable:!0,get:r(function(){return De.UNKNOWN},"get")});var Fe=Le();Object.defineProperty(s,"BasConnectivity",{enumerable:!0,get:r(function(){return Fe.BasConnectivity},"get")});Object.defineProperty(s,"H2O_URL",{enumerable:!0,get:r(function(){return Fe.H2O_URL},"get")});Object.defineProperty(s,"DESTINATIONS",{enumerable:!0,get:r(function(){return Fe.DESTINATIONS},"get")});var Me=Ue();Object.defineProperty(s,"isAppStudio",{enumerable:!0,get:r(function(){return Me.isAppStudio},"get")});Object.defineProperty(s,"getEnvValue",{enumerable:!0,get:r(function(){return Me.getEnvValue},"get")});Object.defineProperty(s,"getEventSpecType",{enumerable:!0,get:r(function(){return Me.getEventSpecType},"get")});var Bt=je();Object.defineProperty(s,"convertProxyStrToAxiosProxyConfig",{enumerable:!0,get:r(function(){return Bt.convertProxyStrToAxiosProxyConfig},"get")});Object.defineProperty(s,"getBasProviderParams",{enumerable:!0,get:r(function(){return Bt.getBasProviderParams},"get")});var tn=Ie();Object.defineProperty(s,"responseDestinationToProviderDestination",{enumerable:!0,get:r(function(){return tn.responseDestinationToProviderDestination},"get")});var rn=Gt();Object.defineProperty(s,"measurePerformance",{enumerable:!0,get:r(function(){return rn.measurePerformance},"get")})});var cn={};Ve(cn,{__entries:()=>an,__entry_generators_app:()=>tr});module.exports=ar(cn);var ae={};Ve(ae,{default:()=>M});var P=require("../commonlibs/yeoman-ui-types/index.js"),Zt=require("../open-ux-shared/feature-toggle/index.js"),b=require("../fiori-generator-shared/dist/index.js");var _;(function(e){e.BUSINESS_OBJECT="BusinessObject",e.CDS_VIEW="CDSView"})(_||(_={}));var $e=require("../open-ux-shared/logger/index.js");var O=class e{static{r(this,"LoggerHelper")}static _logger=new $e.ToolsLogger({logPrefix:"@sap-ux/ui-service-inquirer"});static get logger(){return e._logger}static set logger(t){e._logger=t}};var tt=require("../commonlibs/yeoman-ui-types/index.js"),Q=require("../open-ux-shared/abap-deploy-config-inquirer/index.js");var He=W(require("../commonlibs/i18next/index.js"),1);var ke={prompts:{draftEnabled:"Draft Enabled",launchAppGen:"Create an SAP Fiori Application with the Newly Generated Service?",launchAppGenBreadcrumb:"Create SAP Fiori Application?",serviceNameBreadcrumb:"Service Name",serviceName:"Service Name (not editable)",objectTypeLabel:"Object Type",businessObjectInterfaceLabel:"Business Object Interface",abapCdsServiceLabel:"ABAP Core Data Service",options:{transportDescription:"Created by the UI Service Generator."}},error:{validatingContent:"There was a back-end validation error for the service content and package provided. Service generation cannot continue. Please try again or contact an admin for the back-end system.",fetchingContentForServiceBinding:"An error occurred when fetching content for the service binding of the business object. Please try again or contact an admin for the back-end system.",fetchingBusinessObjects:"An error occurred when fetching your business object interfaces from the back-end system. Please try again or contact an admin for the back-end system.",fetchingGenerator:"An error occurred fetching the generator: {{error}}",fetchingCdsViews:"An error occurred fetching the CDS views from the back-end system: {{error}}",noGeneratorFoundBo:"No generator was found for the selected business object interface.",noGeneratorFoundCdsService:"No generator was found for the selected ABAP CDS service."},info:{appGenLaunch:"The SAP Fiori generator will launch after the UI service has been created."}};var Ye="ui-service-inquirer",ce=He.default.createInstance();async function ur(){await ce.init({lng:"en",fallbackLng:"en",showSupportNotice:!1}),ce.addResourceBundle("en",Ye,ke)}r(ur,"initI18n");function p(e,t){return t?.ns||(t=Object.assign(t??{},{ns:Ye})),ce.t(e,t)}r(p,"t");ur().catch(()=>{});var J=require("../open-ux-shared/axios-extension/index.js"),We=require("../open-ux-shared/btp-utils/index.js"),Je=require("../open-ux-shared/guided-answers-helper/index.js"),w=require("../open-ux-shared/inquirer-common/index.js"),Qe=require("../open-ux-shared/telemetry/index.js");async function Xe(e){return(await(await e.getAdtService(J.BusinessObjectsService))?.getBusinessObjects())?.map(i=>({name:`${i.name} (${i.description})`,value:i}))??[]}r(Xe,"getBusinessObjects");async function Ke(e){return(await(await e.getAdtService(J.AbapCDSViewService))?.getAbapCDSViews())?.map(i=>({name:`${i.name} (${i.description})`,value:i}))??[]}r(Ke,"getAbapCDSViews");function ze(e,t){return(0,We.isAppStudio)()?{destination:e?.Name}:{url:t?.url,client:t?.client}}r(ze,"createAbapTarget");function Ze(e){return[{name:e,value:e}]}r(Ze,"getServiceNameChoices");async function ue(){return(0,w.setTelemetryClient)(Qe.ClientFactory.getTelemetryClient()),w.ErrorHandler.getHelpLink(Je.HELP_NODES.UI_SERVICE_GENERATOR,w.ERROR_TYPE.INTERNAL_SERVER_ERROR,p("error.validatingContent"))}r(ue,"getValidationErrorLink");function de(e){return e??!0}r(de,"defaultOrShowDraftQuestion");function et(e){return e??!0}r(et,"defaultOrShowAppGenLaunchQuestion");var u=class e{static{r(this,"PromptState")}static _systemSelection={};static _serviceConfig;static get systemSelection(){return this._systemSelection}static set systemSelection(t){this._systemSelection=t}static get serviceConfig(){return this._serviceConfig}static set serviceConfig(t){this._serviceConfig=t}static reset(){e.systemSelection={},e.serviceConfig={content:"",serviceName:"",showDraftEnabled:!1}}static resetConnectedSystem(){e.systemSelection={}}static resetServiceConfig(){e.serviceConfig={content:"",serviceName:"",showDraftEnabled:!1}}};function rt(e,t){u.resetServiceConfig();let n=ze(u.systemSelection.connectedSystem?.destination,u.systemSelection.connectedSystem?.backendSystem),i={backendTarget:{abapTarget:n,serviceProvider:u.systemSelection.connectedSystem?.serviceProvider},transportCreated:{description:p("prompts.options.transportDescription")},transportInputChoice:{showCreateDuringDeploy:!1},ui5AbapRepo:{default:""}},o=(0,Q.getPackagePrompts)({packageAutocomplete:{useAutocomplete:!0},backendTarget:{abapTarget:n,serviceProvider:u.systemSelection.connectedSystem?.serviceProvider}},!0,!0),a=(0,Q.getTransportRequestPrompts)(i,!0,!0),c=[dr(e,i,t)];return de(t?.useDraftEnabled)&&c.push(pr(e)),et(t?.useLaunchGen)&&c.push(lr()),[...o,...a,...c]}r(rt,"getConfigQuestions");function dr(e,t,n){return{when:r(async i=>{if(i.packageManual||i.packageAutocomplete)try{let o=i.packageManual||i.packageAutocomplete;if(o){u.serviceConfig.content=await u.systemSelection.objectGenerator?.getContent(o)??"";let a=JSON.parse(u.serviceConfig?.content);de(n?.useDraftEnabled)&&a.businessObject?.projectionBehavior?.withDraft&&(u.serviceConfig.showDraftEnabled=!0),t.ui5AbapRepo.default=`${(a.general?.namespace??"Z").toLowerCase()}testapp`,u.serviceConfig.content=JSON.stringify(a),u.serviceConfig.serviceName=a.businessService.serviceBinding.serviceBindingName}}catch(o){e?.error(`${p("error.fetchingContentForServiceBinding")}: ${o.message}`)}return!!u.serviceConfig.serviceName||!!u.serviceConfig.content},"when"),type:"expand",name:"serviceName",guiOptions:{breadcrumb:p("prompts.serviceNameBreadcrumb")},message:p("prompts.serviceName"),choices:r(()=>Ze(u.serviceConfig.serviceName),"choices"),default:r(()=>0,"default"),validate:r(async()=>{try{return(await u.systemSelection.objectGenerator?.validateContent(u.serviceConfig.content))?.severity==="ERROR"?await ue():!0}catch(i){return e.error(`${p("error.validatingContent")}: ${i.message}`),await ue()}},"validate")}}r(dr,"getServiceNameQuestion");function pr(e){let t=!0;return{when:r(()=>u.serviceConfig.showDraftEnabled,"when"),name:"draftEnabled",type:"confirm",message:p("prompts.draftEnabled"),guiOptions:{breadcrumb:!0,mandatory:!0},default:!0,validate:r(async n=>{if(n!==t&&u.serviceConfig.content){let i=JSON.parse(u.serviceConfig.content);i.businessObject.projectionBehavior.withDraft=n,u.serviceConfig.content=JSON.stringify(i);try{if((await u.systemSelection.objectGenerator?.validateContent(u.serviceConfig.content))?.severity==="ERROR")return p("error.validatingContent");t=n}catch(o){e.error(o.message)}t=n}return!0},"validate")}}r(pr,"getDraftEnabledQuestion");function lr(){return{name:"launchAppGen",type:"confirm",message:p("prompts.launchAppGen"),guiOptions:{breadcrumb:p("prompts.launchAppGenBreadcrumb")},additionalMessages:r(e=>{let t;return e&&(t={message:p("info.appGenLaunch"),severity:tt.Severity.information}),t},"additionalMessages"),default:!1}}r(lr,"getAppGenLaunchQuestion");var X=require("../open-ux-shared/odata-service-inquirer/index.js");async function nt(e,t,n){u.reset();let i=await(0,X.getSystemSelectionQuestions)({serviceSelection:{hide:!0},systemSelection:{defaultChoice:n,destinationFilters:{odata_abap:!0},hideNewSystem:!0}},!0),o=[{when:r(a=>a[X.promptNames.systemSelection]&&i.answers.connectedSystem?.serviceProvider?(u.systemSelection.connectedSystem=i.answers.connectedSystem,!0):!1,"when"),type:"list",name:"objectType",guiOptions:{breadcrumb:!0},default:t?.objectType??"",message:p("prompts.objectTypeLabel"),choices:r(()=>[{name:p("prompts.businessObjectInterfaceLabel"),value:_.BUSINESS_OBJECT},{name:p("prompts.abapCdsServiceLabel"),value:_.CDS_VIEW}],"choices")},{when:r(a=>a.objectType===_.BUSINESS_OBJECT,"when"),type:"list",name:"businessObjectInterface",guiOptions:{breadcrumb:!0,applyDefaultWhenDirty:!0},default:t?.businessObjectInterface??"",message:p("prompts.businessObjectInterfaceLabel"),choices:r(async()=>{try{return await Xe(u.systemSelection.connectedSystem?.serviceProvider)}catch(a){return e.error(p("error.fetchingBusinessObjects"+a.message)),[]}},"choices"),validate:r(async a=>{if(a){try{u.systemSelection.objectGenerator=await(u.systemSelection.connectedSystem?.serviceProvider).getUiServiceGenerator(a)}catch(c){e.error(p("error.fetchingGenerator",{error:c.message}))}return u.systemSelection.objectGenerator?!0:p("error.noGeneratorFoundBo")}return!1},"validate")},{when:r(a=>a.objectType===_.CDS_VIEW,"when"),type:"list",name:"abapCDSView",guiOptions:{breadcrumb:!0,applyDefaultWhenDirty:!0},default:t?.abapCDSView??"",message:p("prompts.abapCdsServiceLabel"),choices:r(async()=>{try{return await Ke(u.systemSelection.connectedSystem?.serviceProvider)}catch(a){return e.error(p("error.fetchingCdsViews",{error:a.message})),[]}},"choices"),validate:r(async a=>{if(a){try{u.systemSelection.objectGenerator=await(u.systemSelection.connectedSystem?.serviceProvider).getUiServiceGenerator(a)}catch(c){e.error(p("error.fetchingGenerator",{error:c.message}))}return u.systemSelection.objectGenerator?!0:p("error.noGeneratorFoundCdsService")}return!1},"validate")}];return[...i.prompts,...o]}r(nt,"getSystemQuestions");async function pe(e,t,n){return n&&(O.logger=n),{prompts:await nt(O.logger,e,t),answers:u.systemSelection}}r(pe,"getSystemSelectionPrompts");function le(e,t,n){return n&&(O.logger=n),u.systemSelection.connectedSystem||Object.assign(u.systemSelection,e),{prompts:rt(O.logger,t),answers:u.serviceConfig}}r(le,"getConfigPrompts");var er=W(require("../commonlibs/yeoman-generator/index.js"),1);var mr="SAP_SYSTEM_CONFIG",fr="SERVICE_CONFIG",it=[{key:mr,name:"SAP System selection",description:"",order:0},{key:fr,name:"UI Service Configuration",description:"",order:1}],me="/sap/bc/adt/bo/behaviordefinitions/",ot="/sap/bc/adt/ddic/ddl/sources/",A="$ui-service-cache",st="SERVICE_GENERATION_SUCCESS",at="SERVICE_GENERATION_FAIL",fe="sap";var K=require("../fiori-generator-shared/dist/index.js");var d=class e{static{r(this,"UiServiceGenLogger")}static _logger=K.DefaultLogger;static get logger(){return e._logger}static set logger(t){e._logger=t}static configureLogging(t,n,i,o,a){let c=new K.LogWrapper(n,i,a,t,o);e.logger=c}};var ut=W(require("../commonlibs/i18next/index.js"),1);var ct={error:{fetchingGenerator:"An error occurred when fetching the generator: {{error}}",sendingTelemetry:"An error occurred sending the telemetry event.",connectionFailed:"The connection to the discovery service on the back-end system: {{system}} failed. Please check the system details are correct.",authentication:"Authentication failed with the system data provided. Unable to continue with UI Service generation. Check the system details are correct.",generatingService:"The UI Service creation process failed. For more information, see the log in the `Application Wizard.Generators` output.",noGeneratorFoundBo:"No generator found for the selected business object interface."},info:{generationSuccessful:"The UI service: {{- serviceName}} was generated.",generationSuccessfulWriteFile:"The UI service: {{- serviceName}} has been created and added to your project.",generationSuccessfulMetadataFail:"The UI service: {{- serviceName}} has been created but could not be added to your project.",generationWarning:"Generating the UI Service can take a few minutes. Please be patient.",generatingUiService:"Generating UI service..."}};var dt="ui-service-generator",ge=ut.default.createInstance();async function Se(){await ge.init({lng:"en",fallbackLng:"en",showSupportNotice:!1}),ge.addResourceBundle("en",dt,ct)}r(Se,"initI18n");function E(e,t){return t?.ns||(t=Object.assign(t??{},{ns:dt})),ge.t(e,t)}r(E,"t");Se().catch(()=>{});function pt(e,t){let n;return t?.path?n="Storyboard":t?.providerSystem&&(n="ServiceCenter"),{...!!n&&{LaunchSource:n},ObjectType:e.businessObjectInterface?_.BUSINESS_OBJECT:_.CDS_VIEW,DraftEnabled:!!e.draftEnabled,LaunchAppGen:!!e.launchAppGen}}r(pt,"getTelemetryData");var ve={BUSINESS_OBJECT:"BO INTERFACE",CDS:"CDS VIEW"};var I=require("../commonlibs/yeoman-ui-types/index.js"),Vt=require("../open-ux-shared/btp-utils/index.js"),Y=require("../fiori-generator-shared/dist/index.js"),qt=require("../open-ux-shared/system-access/index.js"),$t=W(he(),1),F=require("node:path");async function kt(e,t,n,i){return await e.generate(t,n).catch(o=>{i.showError(`${E("error.generatingService")}`,I.MessageType.notification),d.logger.error(`Error generating service: ${o.message}`),d.logger.error(`${o.code} ${o.response?.status} ${o.response?.data}`),d.logger?.error(JSON.stringify(o,null,2)),d.logger?.error(JSON.stringify(o.response,null,2)),Y.TelemetryHelper.createTelemetryData({ErrorMessage:o.message,ErrorCode:o.code,ResponseStatus:o.response?.status}),(0,Y.sendTelemetry)(at,Y.TelemetryHelper.telemetryData).catch(a=>{d.logger.error(`Error sending telemetry: ${a.message}`)})})}r(kt,"generateService");async function Ht(e,t,n,i,o){let a=Yt(e.content),c=await Be(a,o);if(c||(await new Promise(m=>setTimeout(m,5e3)),c=await Be(a,o,!0)),c){let m=nn(i.providerSystem,a,c,JSON.parse(e.content));t.writeJSON((0,F.join)(i.path,".service.metadata"),m),n.showInformation(E("info.generationSuccessfulWriteFile",{serviceName:e.serviceName}),I.MessageType.notification),d.logger.info(E("info.generationSuccessfulWriteFile",{serviceName:e.serviceName}))}else n.showInformation(E("info.generationSuccessfulMetadataFail",{serviceName:e.serviceName}),I.MessageType.notification),d.logger.info(E("info.generationSuccessfulMetadataFail",{serviceName:e.serviceName}))}r(Ht,"writeBASMetadata");function Yt(e){let t=JSON.parse(e),n=t?.businessService?.serviceBinding?.serviceBindingName?.replace(/^\/|\/$/g,""),i=t?.businessService?.serviceDefinition?.serviceDefinitionName?.replace(/^\/|\/$/g,"");return t.general?.namespace?.startsWith("/")||(n=`${fe}/${n}`,i=`${fe}/${i}`),`/sap/opu/odata4/${n}/srvd/${i}/0001/`}r(Yt,"getRelativeUrlFromContent");async function Be(e,t,n=!1){return await t.get(`${e}/$metadata`).then(i=>i.data).catch(i=>(n&&d.logger.error(`Error fetching metadata for generated service: ${i.message}`),""))}r(Be,"getMetadata");function nn(e,t,n,i){return{providerSystem:e,relativeURL:t,metadata:{odataContent:n},serviceName:i.businessService.serviceBinding.serviceBindingName,providerType:$t.ProviderType.SapSystem}}r(nn,"getServiceMedadataContent");async function Wt(e,t,n,i){let o=Yt(n),a={type:"SERVICE_GEN_DATA",system:t,service:{url:o,metadata:await Be(o,i)}};e.data?.path&&Object.assign(a,{project:{targetPath:(0,F.dirname)(e.data?.path),name:(0,F.basename)(e.data?.path)}}),d.logger.info(`Launching App Generator with data: ${JSON.stringify(a)} and command ${e.data?.appGenLaunchCommand}`),setTimeout(()=>{e.vscode?.commands?.executeCommand?.(e.data?.appGenLaunchCommand??"sap.ux.service.generated.handler",a)},500)}r(Wt,"runPostGenHook");function Jt(e){return(0,Vt.isAppStudio)()?{destination:e.connectedSystem?.destination?.Name??""}:{name:e.connectedSystem?.backendSystem?.name??"",url:e.connectedSystem?.backendSystem?.url??"",client:e.connectedSystem?.backendSystem?.client??""}}r(Jt,"getAppGenSystemData");async function Qt(e,t){let n=e.user&&e.password?{username:e.user,password:e.password}:void 0;await on(e.systemName,t,n)}r(Qt,"authenticateInputData");async function on(e,t,n){let o=await(0,qt.createAbapServiceProvider)({destination:e},{ignoreCertErrors:!0,auth:n},!1,d.logger);try{await sn(o),Object.assign(t,{connectedSystem:{serviceProvider:o,destination:{Name:e}}});return}catch{d.logger.error(E("error.connectionFailed",{system:e}));return}}r(on,"validateConnection");async function sn(e){try{return await e.get("/sap/bc/adt/discovery",{headers:{Accept:"application/atomsvc+xml"}}),!0}catch{return!1}}r(sn,"checkConnection");function Xt(e,t,n){e?.systemName&&!t.connectedSystem?.serviceProvider?n.showError(E("error.authentication"),I.MessageType.prompt):e?.systemName&&!t.objectGenerator?n.showError(E("error.noGeneratorFoundBo"),I.MessageType.prompt):n.showWarning(E("info.generationWarning"),I.MessageType.prompt)}r(Xt,"setToolbarMessage");function Kt(e,t,n){e[A]&&Object.assign(e[A],{systemSelectionAnswers:n,systemName:t.connectedSystem?.destination?.Name??t.connectedSystem?.backendSystem?.name})}r(Kt,"addToCache");function zt(e){return[e[A].systemSelectionAnswers,e[A].systemName]}r(zt,"getFromCache");var M=class extends er.default{static{r(this,"default")}answers={url:"",package:""};prompts;appWizard;vscode;systemSelectionAnswers={};serviceConfigAnswers={content:"",serviceName:"",showDraftEnabled:!1};setPromptsCallback;constructor(e,t){super(e,t),(0,b.setYeomanEnvConflicterForce)(this.env,this.options.force),this.appWizard=P.AppWizard.create(t),this.vscode=t.vscode,d.configureLogging(this.options.logger,this.rootGeneratorName(),this.log,this.options.vscode,this.options.logLevel);let n=it;this.options.data?.systemName&&n.shift(),this.appWizard=P.AppWizard.create(t),this.appWizard[A]||(this.appWizard[A]={}),this.appWizard.setHeaderTitle("UI Service Generator"),this.prompts=new P.Prompts(n),this.setPromptsCallback=i=>{this.prompts&&this.prompts.setCallback(i)}}async initializing(){await b.TelemetryHelper.initTelemetrySettings({consumerModule:{name:"@sap/generator-fiori-ui-service",version:this.rootGeneratorVersion()},internalFeature:(0,Zt.isInternalFeaturesSettingEnabled)(),watchTelemetrySettingStore:!1}),await Se(),this.options.data?.systemName&&(d.logger.debug("Options passed into generator: "+JSON.stringify(this.options.data)),await this._initSteps())}async _initSteps(){if(await Qt(this.options.data,this.systemSelectionAnswers),this.systemSelectionAnswers.connectedSystem?.serviceProvider)try{if(this.options.data.id&&this.options.data.type){let e=this.options.data.type===ve.BUSINESS_OBJECT?me:ot;this.systemSelectionAnswers.objectGenerator=await this.systemSelectionAnswers.connectedSystem.serviceProvider.getUiServiceGenerator({name:this.options.data.id,uri:`${e}${this.options.data.id.toLowerCase()}`})}else this.systemSelectionAnswers.objectGenerator=await this.systemSelectionAnswers.connectedSystem.serviceProvider.getUiServiceGenerator({name:this.options.data.businessObject,uri:`${me}${this.options.data.businessObject.toLowerCase()}`});this.systemSelectionAnswers.connectedSystem.destination={Name:this.options.data.systemName}}catch(e){d.logger.error(E("error.fetchingGenerator",{error:e.message}))}}async prompting(){if(!this.options.data?.systemName){let n=await pe(...zt(this.appWizard),d.logger),i=await this.prompt(n.prompts);Object.assign(this.answers,i),Object.assign(this.systemSelectionAnswers,n.answers),Kt(this.appWizard,this.systemSelectionAnswers,this.answers)}Xt(this.options.data,this.systemSelectionAnswers,this.appWizard);let e=await le(this.systemSelectionAnswers,{useDraftEnabled:!(this.answers.objectType===_.CDS_VIEW||this.options.data?.type===ve.CDS)},d.logger),t=await this.prompt(e.prompts);Object.assign(this.answers,t),Object.assign(this.serviceConfigAnswers,e.answers)}async end(){this.appWizard.showWarning(E("info.generatingUiService"),P.MessageType.prompt);let e=this.answers.transportFromList??this.answers.transportManual??this.answers.transportCreated??"";b.TelemetryHelper.createTelemetryData({...pt(this.answers,this.options.data)}),b.TelemetryHelper.markAppGenStartTime(),await kt(this.systemSelectionAnswers.objectGenerator,this.serviceConfigAnswers.content,e,this.appWizard).then(async t=>{t&&((0,b.sendTelemetry)(st,b.TelemetryHelper.telemetryData).catch(n=>{d.logger.error(E("error.sendingTelemetry",{error:n.message}))}),this.options.data?.path&&this.options.data?.providerSystem?await Ht(this.serviceConfigAnswers,this.fs,this.appWizard,this.options.data,this.systemSelectionAnswers.connectedSystem.serviceProvider):(this.appWizard.showInformation(E("info.generationSuccessful",{serviceName:this.serviceConfigAnswers.serviceName}),P.MessageType.notification),d.logger.info(`Generation of service ${this.serviceConfigAnswers.serviceName} successful`),d.logger.debug(`Generation response: ${JSON.stringify(t)}`)),d.logger.info("Generation completed"),this.answers.launchAppGen&&this.systemSelectionAnswers.connectedSystem&&(d.logger.info("Running post generation hook"),await Wt(this.options,Jt(this.systemSelectionAnswers),this.serviceConfigAnswers.content,this.systemSelectionAnswers.connectedSystem?.serviceProvider)))})}};var tr=ae&&M?M:ae,an={"generators/app":tr};0&&(module.exports={__entries,__entry_generators_app});