@sap-ux/fiori-mcp-server 1.15.10 → 1.15.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +7 -7
package/dist/index.js CHANGED
@@ -18830,7 +18830,7 @@ No aiResponse provided. Generate the code following the rules below, then call t
18830
18830
  This is the **final step** of the workflow and performs the actual modification.
18831
18831
  You MUST provide the exact parameter information obtained from get_functionality_details (Step 2).`,annotations:{title:"Execute Fiori Functionality",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0},inputSchema:Ef(Z1n),outputSchema:Ef(gDn)},...u6c?Duo:[]],Iuo=new Set(Duo.map(t=>t.name));var t0t=class{applicationKey="";extensionName="";extensionVersion="";getApplicationKey(){return this.applicationKey}getExtensionVersion(){return this.extensionVersion}getExtensionName(){return this.extensionName}};var Fma=Ar(JSn(),1);var JOt=class{extensionName;eventName;constructor(e,r){this.extensionName=e,this.eventName=r}getExtensionName(){return this.extensionName}getEventName(){return this.eventName}toString(){return`${this.extensionName}/${this.eventName}`}};var KF;(function(t){t[t.OnePercent=0]="OnePercent",t[t.TenPercent=1]="TenPercent",t[t.NoSampling=2]="NoSampling"})(KF||(KF={}));process.env.OTEL_RESOURCE_ATTRIBUTES??="service.name=masked,service.instance.id=masked";function xpr(t){if(t.setUseDiskRetryCaching)try{t.setUseDiskRetryCaching(!0)}catch{}t.context.tags??={},t.context.tags["ai.location.ip"]="0.0.0.0",t.context.tags["microsoft.client.ip"]="0.0.0.0",t.context.tags["ai.cloud.roleInstance"]="masked",t.context.tags["ai.cloud.role"]="masked",t.context.tags["ai.device.type"]="masked"}var ZSn={name:"@sap-ux/telemetry",version:"2.0.10",description:"Library for sending usage telemetry data",type:"module",repository:{type:"git",url:"https://github.com/SAP/open-ux-tools.git",directory:"packages/telemetry"},bugs:{url:"https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Atelemetry"},license:"Apache-2.0",private:!1,main:"dist/index.js",scripts:{build:"tsc --build",watch:"tsc --watch",clean:"rimraf --glob dist coverage *.tsbuildinfo",format:"prettier --write '**/*.{js,json,ts,yaml,yml}' --ignore-path ../../.prettierignore",lint:"eslint","lint:fix":"eslint --fix",test:"cross-env NODE_OPTIONS='--experimental-vm-modules' jest --ci --forceExit --detectOpenHandles --colors","test-u":"cross-env NODE_OPTIONS='--experimental-vm-modules' jest --ci --forceExit --detectOpenHandles --colors -u",link:"pnpm link --global",unlink:"pnpm unlink --global",example:"ts-node example/index.ts"},dependencies:{"@sap-ux/store":"workspace:*","@sap-ux/project-access":"workspace:*","@sap-ux/btp-utils":"workspace:*","@sap-ux/ui5-config":"workspace:*","@sap-ux/logger":"workspace:*","@sap-ux/nodejs-utils":"workspace:*",applicationinsights:"3.16.0",axios:"1.18.1","performance-now":"2.1.0",yaml:"2.9.0"},devDependencies:{"@jest/globals":"30.4.1","jest-extended":"7.0.0",memfs:"3.4.13",unionfs:"4.6.0",dotenv:"17.4.2"},files:["dist","LICENSE","!dist/*.map","!dist/**/*.map"],engines:{node:">=22.x"}};var aP={azureInstrumentationKey:"",azureIngestionEndpoint:"https://westus2-0.in.applicationinsights.azure.com/",azureLiveEndpoint:"https://westus2.livediagnostics.monitor.azure.com/",telemetryEnabled:!0,telemetryLibName:ZSn.name,telemetryLibVersion:ZSn.version,consumerModuleName:"",consumerModuleVersion:""};process.env.APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL??="true";var ZOt=class extends t0t{clients;constructor(e,r,n){super(),this.clients=new Map,this.applicationKey=e,this.extensionVersion=n,this.extensionName=r;let i=this.createTelemetryClient(KF.OnePercent),a=this.createTelemetryClient(KF.TenPercent),s=this.createTelemetryClient(KF.NoSampling);this.clients.set(KF.OnePercent,i),this.clients.set(KF.TenPercent,a),this.clients.set(KF.NoSampling,s)}reportBlocking(e,r,n,i,a=!1){if(!a||aP.telemetryEnabled){let{client:s,event:c}=this.prepareClientAndEvent(e,r,n,i);return this.trackEventBlocking(s,c)}return Promise.resolve()}async report(e,r,n,i,a,s){if(s!==void 0&&!s||!aP.telemetryEnabled)return;let{client:c,event:l}=this.prepareClientAndEvent(e,r,n,i);this.trackEvent(c,l)}prepareClientAndEvent(e,r,n,i=KF.NoSampling){let a=this.clients.get(i),c={name:new JOt(this.extensionName,e).toString(),properties:r,measurements:n};return{client:a,event:c}}async trackEventBlocking(e,r){process.env.SAP_UX_FIORI_TOOLS_DISABLE_TELEMETRY!=="true"&&(e.trackEvent(r),await e.flush())}trackEvent(e,r){return process.env.SAP_UX_FIORI_TOOLS_DISABLE_TELEMETRY!=="true"?(e.trackEvent(r),!0):!1}createTelemetryClient(e){let r;switch(e){case KF.OnePercent:r=1;break;case KF.TenPercent:r=10;break;case KF.NoSampling:default:r=100;break}let n=new Fma.TelemetryClient(this.applicationKey);return n.config.samplingPercentage=r,xpr(n),n}};var QSn=()=>{let t=new Date().getTime();return new Date(t).toISOString()};var QOt=class extends ZOt{constructor(e,r,n){super(e,r,n)}async report(e,r,n,i,a,s){let c=await Dpr(a),l={v:this.extensionVersion,datetime:QSn()},u={...r,...c,...l};await super.report(e,u,n,i,a,s)}async reportEvent(e,r,n,i){let{finalProperties:a,finalMeasurements:s}=await this.collectToolsSuiteTelemetry(e,n);return super.report(e.eventName,a,s,r,n,i)}async reportEventBlocking(e,r,n,i){let{finalProperties:a,finalMeasurements:s}=await this.collectToolsSuiteTelemetry(e,n);return super.reportBlocking(e.eventName,a,s,r,i)}async collectToolsSuiteTelemetry(e,r){let n=await Dpr(r),i={v:this.extensionVersion,datetime:QSn()},a={...e.properties,...n,...i},s={...e.measurements};return{finalProperties:a,finalMeasurements:s}}};var Uma=Ar(mC(),1),jma=Ar(Hdt(),1);import Yte from"node:fs";import lEe from"node:path";var Ipr={internalFeature:!1};var ePt;(function(t){t.UNKNOWN="UNKNOWN",t.NO_TOOLS_ID="NO_TOOLS_ID"})(ePt||(ePt={}));var bae;(function(t){t.CAPJava="CAPJava",t.CAPNode="CAPNode",t.ABAP="ABAP",t.UNKNOWN="UNKNOWN"})(bae||(bae={}));var Wje;(function(t){t.CF="CF",t.ABAP="ABAP",t.UNKNOWN_DEPLOY_CONFIG="UNKNOWN_DEPLOY_CONFIG",t.NO_DEPLOY_CONFIG="NO_DEPLOY_CONFIG"})(Wje||(Wje={}));var sP;(function(t){t.DevSpace="cmn.devspace",t.AppStudio="cmn.appstudio",t.AppStudioBackwardCompatible="appstudio",t.InternlVsExternal="cmn.internalFeatures",t.InternlVsExternalBackwardCompatible="internalVsExternal",t.TemplateType="cmn.template",t.DeployTargetType="cmn.deployTarget",t.ODataSourceType="cmn.odataSource",t.AppToolsId="cmn.toolsId",t.NodeVersion="cmn.nodeVersion",t.AppProgrammingLanguage="cmn.appLanguage",t.TemplateId="cmn.templateId",t.TemplateVersion="cmn.templateVersion",t.ApplicationType="cmn.applicationType",t.IdeType="cmn.ideType"})(sP||(sP={}));async function Dpr(t){let e=await twn(),r={};return t&&(r=await Uau(t.appPath)),{...e,...r}}async function twn(){let t={};return t[sP.DevSpace]=await Fau(),t[sP.AppStudio]=$g(),t[sP.AppStudioBackwardCompatible]=t[sP.AppStudio],t[sP.InternlVsExternal]=Hau(),t[sP.InternlVsExternalBackwardCompatible]=t[sP.InternlVsExternal],t[sP.NodeVersion]=await Gau(),t[sP.IdeType]=rwn(),t}async function Fau(){if($g())try{if(!process.env.H2O_URL||!process.env.WORKSPACE_ID)return"";let t=process.env.H2O_URL,e=process.env.WORKSPACE_ID.replace("workspaces-",""),r=`${t}/ws-manager/api/v1/workspace/${e}`,n=await Uma.default.get(r);if(n.data)return n.data?.config?.annotations?.pack}catch{}return""}async function Uau(t){if(!t)return{};let e=await jau(t),r=await qau(t),n=await aqe(t),i=await Bau(t);n==="Fiori Reuse"&&(i=bae.UNKNOWN);let a=await zau(t),s=await H$t(t),c={};return c[sP.TemplateType]=e,c[sP.DeployTargetType]=r,c[sP.ODataSourceType]=i,c[sP.AppToolsId]=a.toolsId??"",c[sP.AppProgrammingLanguage]=s,c[sP.TemplateId]=a.id??"",c[sP.TemplateVersion]=a.version??"",c[sP.ApplicationType]=n??"",c}async function jau(t){let e=lEe.join(t,"README.md"),r=lEe.join(t,".appGenInfo.json");if(Yte.existsSync(r)){let n=await Yte.promises.readFile(r,"utf-8"),i=JSON.parse(n);if(i?.generationParameters?.template)return i.generationParameters.template.trim()}if(Yte.existsSync(e)){let n=await Yte.promises.readFile(e,"utf-8");if(n){let i="",a=n.split(/\r?\n/);for(let s of a){let l=/\|\*\*Template Used\*\*<br>(.*?)\|/.exec(s);if(l&&l.length>=2){i=l[1].trim();break}}return i}}return""}async function Bau(t){try{let e;try{e=await Zse(t)}catch{}if(!e)try{let i=lEe.dirname(t);e=await Zse(i,!1)}catch{}let r=!1;if(!e){let i=lEe.dirname(t),a=lEe.dirname(i);r=await ift(a),e=r?a:t}if(r)return bae.CAPJava;let n=await sqe(e);return Vau(n)}catch{return bae.UNKNOWN}}function Vau(t){return t==="EDMXBackend"?bae.ABAP:t==="CAPNodejs"?bae.CAPNode:t==="CAPJava"?bae.CAPJava:bae.UNKNOWN}async function qau(t){let e=Wje.NO_DEPLOY_CONFIG,r=lEe.join(t,"ui5-deploy.yaml");try{await Yte.promises.access(r);let n=await Yte.promises.readFile(r,"utf-8"),a=jma.default.parse(n)?.builder?.customTasks;a?e=a.some(c=>c.name==="deploy-to-abap")?Wje.ABAP:Wje.CF:e=Wje.UNKNOWN_DEPLOY_CONFIG}catch{}return e}function Hau(){return Ipr.internalFeature?"internal":"external"}async function zau(t){let e=await yy(t),r={manifest:lEe.join(e,"manifest.json"),appdescr:lEe.join(e,"manifest.appdescr_variant"),ui5Yaml:lEe.join(t,"ui5.yaml")};try{if(Yte.existsSync(r.manifest)){let n=await Yte.promises.readFile(r.manifest,"utf-8"),i=JSON.parse(n);return ewn(i["sap.app"]?.sourceTemplate??{})}if(Yte.existsSync(r.appdescr)&&Yte.existsSync(r.ui5Yaml)){let n=await Yte.promises.readFile(r.ui5Yaml,"utf-8"),a=(await c7.newInstance(n)).getCustomConfiguration("adp");return ewn(a?.support??{})}}catch{}return ewn({})}function ewn(t){return{id:t.id??"",version:t.version??"",toolsId:t.toolsId??ePt.NO_TOOLS_ID}}async function Gau(){try{return(await new $0e().run("node",["-v"])??"unknown").replaceAll(/(?:^v)|([\r\n]{1,100})/g,"")}catch{return"unknown"}}function rwn(){if($g())return"appstudio";let t=process.env.VSCODE_CWD?.toLowerCase()??"",e=process.env.VSCODE_PID,r=process.env.TERM_PROGRAM??"",n=process.env.VSCODE_APPNAME?.toLowerCase()??"";return!e&&!t&&r!=="vscode"&&r!=="vscode-insiders"?"unknown":process.env.CURSOR_TRACE_ID||n.includes("cursor")||t.includes("cursor")?"cursor":n.includes("windsurf")||t.includes("windsurf")||t.includes("codeium")?"windsurf":n.includes("antigravity")||t.includes("antigravity")?"antigravity":n.includes("trae")||t.includes("trae")?"trae":n.includes("kiro")||t.includes("kiro")?"kiro":n.includes("vscodium")||n.includes("codium")||t.includes("vscodium")||t.includes("codium")?"vscodium":n.includes("code-server")||t.includes("code-server")||process.env.CODE_SERVER_SESSION?"code-server":n.includes("insiders")||t.includes("code - insiders")||t.includes("code insiders")||t.includes("vscode-insiders")||r==="vscode-insiders"?"vscode-insiders":e||r==="vscode"?"vscode":"unknown"}var Bma=Ar(JSn(),1);var AJe;(function(t){t.Test="test",t.TELEMETRY_SETTINGS_INIT_FAILED="TELEMETRY_SETTINGS_INIT_FAILED",t.DISABLE_TELEMETRY="DISABLE_TELEMETRY"})(AJe||(AJe={}));var Wau=t=>{let e=[/sap-ux.+/gi,/[-a-zA-Z]+\/ide-extension\/.+/gi,/(\/telemetry\/.+)/gi],r=[],n=t.split(`
18832
18832
  `).filter(i=>!!/^\s*at .*(\S+:\d+|\(native\))/m.exec(i));return n.length&&n.forEach(i=>{let a=i.replace(/^\s+/,""),c=/ (\((.+):(\d+):(\d+)\)$)/.exec(i);if(!c)return;let l=null,u=c[2].replace(/\\/g,"/");for(let m of e){let g=m.exec(u);if(g){l=g[0];break}}if(!l)return;a=a.replace(c[0],"");let d=a.split(/\s+/).slice(1).join(""),p=c[3],f=c[4],h=`${d} at (${l}:${p}:${f});`;r.push(h)}),r},Npr,Vma=()=>(Npr||(Npr=new Bma.TelemetryClient(J6.buildConnectionString(aP.azureInstrumentationKey)),xpr(Npr)),Npr),qma=t=>{let e={message:t.message};if(t.stack){let n=Wau(t.stack);n.length&&(e.stack=n.join(`
18833
- `))}let r={name:AJe.TELEMETRY_SETTINGS_INIT_FAILED,properties:e,measurements:{}};process.env.SAP_UX_FIORI_TOOLS_DISABLE_TELEMETRY!=="true"&&Vma().trackEvent(r)},Hma=(t,e)=>{let r={name:AJe.DISABLE_TELEMETRY,properties:{disableTelemetry:`${!t}`,...e},measurements:{}};process.env.SAP_UX_FIORI_TOOLS_DISABLE_TELEMETRY!=="true"&&Vma().trackEvent(r)};import Kau from"node:os";import Yau from"node:path";import Xau from"node:fs";var Jau={win32:"\\AppData\\Roaming\\Code\\User\\settings.json",darwin:"/Library/Application Support/Code/User/settings.json",linux:"/.config/Code/User/settings.json",theia:"/.theia/settings.json"},Zau=["sap.ux.annotation.lsp.enableTelemetry","sap.ux.applicationModeler.enableTelemetry","sap.ux.help.enableTelemetry","sap.ux.serviceModeler.enableTelemetry"],Qau=t=>{let e=process.platform,r=t[e];if($g()&&(r=t.theia),!r)return null;let n=Kau.homedir();return Yau.join(n,r)};async function esu(t){let e;try{e=await t.read(new $Ae)}catch{}if(e)aP.telemetryEnabled=e.enableTelemetry;else{let r=Qau(Jau);if(!r)await Rpr(!0);else{let n;try{n=await Xau.promises.readFile(r,"utf-8");let i=JSON.parse(n),s=Zau.map(c=>i[c]??!0).reduce((c,l)=>c&&l,!0);await Rpr(s)}catch{await Rpr(!0)}}}}function tsu(t){E9t(yLe.TelemetrySetting,()=>{t.read(new $Ae).then(e=>{e&&(aP.telemetryEnabled=e.enableTelemetry)}).catch(()=>{})})}var nwn=async t=>{try{aP.consumerModuleName=t.consumerModule.name,aP.consumerModuleVersion=t.consumerModule.version,Ipr.internalFeature=t.internalFeature??!1,t.resourceId&&(aP.azureInstrumentationKey=t.resourceId),t.ingestionEndpoint&&(aP.azureIngestionEndpoint=t.ingestionEndpoint),t.liveEndpoint&&(aP.azureLiveEndpoint=t.liveEndpoint);let e=await fQ({entityName:"telemetrySetting"});await esu(e),t.watchTelemetrySettingStore&&tsu(e)}catch(e){qma(e)}};async function Rpr(t){try{let r=await fQ({entityName:"telemetrySetting"}),n=new Dbt({enableTelemetry:t});await r.write(n),aP.telemetryEnabled=t}catch{}let e=await twn();Hma(t,e)}var rsu="ApplicationInsightsInstrumentationKeyPLACEH0LDER",J6=class t{static clientMap=new Map;static getTelemetryClient(){return t.getTelemetryClientByClass(QOt)}static getTelemetryClientByClass(e){let r=t.clientMap.get(e.name);if(r)return r;let n=t.buildConnectionString(aP.azureInstrumentationKey);return r=new e(n,aP.consumerModuleName,aP.consumerModuleVersion),t.clientMap.set(e.name,r),r}static buildConnectionString(e){return e?`InstrumentationKey=${e===rsu?"00000000-0000-0000-0000-000000000000":e};IngestionEndpoint=${aP.azureIngestionEndpoint};LiveEndpoint=${aP.azureLiveEndpoint};`:""}};var rJ;(function(t){t.START_MARK="START_MARK",t.END_MARK="END_MARK",t.MEASUREMENT="MEASUREMENT"})(rJ||(rJ={}));var kpr=class{static initTiming;static enteries;static initialize;static startMark;static endMark;static measure;static getEntries;static getEntriesByName;static getEntriesByType;static getEntriesByNameType;static getMeasurementDuration;static clearEntries};var tPt=class{startTime;name;type;getStartTime(){return this.startTime}constructor(e,r,n){this.startTime=n,this.name=e,this.startTime=n,this.type=r}},Mpr=class extends tPt{startTime;duration;constructor(e,r,n){super(e,rJ.MEASUREMENT,r),this.startTime=r,this.duration=n,this.duration=n}getDurationTime(){return this.duration}};import{performance as nsu}from"node:perf_hooks";var isu=()=>nsu.now(),rk=class t extends kpr{static initTiming;static now=isu;static entries=[];static initialize(){t.initTiming=t.now()}static mark(e,r,n){let i=new tPt(e,r,n);t.entries.push(i)}static startMark(e){let r=t.now(),n=e+r;return t.mark(n,rJ.START_MARK,r),n}static endMark(e){let r=t.now();t.mark(e,rJ.END_MARK,r)}static measure(e){let r=t.getEntriesByNameType(e,rJ.START_MARK).slice(-1)[0],n=t.getEntriesByNameType(e,rJ.END_MARK).slice(-1)[0];if(!r&&!n)throw new Error(`Failed to execute 'measure': mark '${e}' doesn't exist.`);if(!r||!n){let l=r?rJ.END_MARK:rJ.START_MARK;throw new Error(`Failed to execute 'measure': mark '${e}'of type '${l}' doesn't exist.`)}let i=r.getStartTime(),s=n.getStartTime()-i,c=new Mpr(`${e}`,t.now(),s);t.entries.push(c)}static getEntries(){return t.entries}static getEntriesByName(e){return t.entries.filter(r=>r.name===e)}static getEntriesByNameType(e,r){return t.entries.filter(n=>n.name===e&&n.type===r)}static getEntriesByType(e){return t.entries.filter(r=>r.type===e)}static getMeasurementDuration(e){return t.getEntriesByNameType(e,rJ.MEASUREMENT).slice(-1)[0].getDurationTime()}static clearEntries(){t.entries=[]}};rk.initialize();var osu=(t,e)=>new Error(`Wrong path for '${t}' field is specified in instructions with index - ${e}`),asu=(t,e,r,n)=>{let i=e.split("/"),a=t,s=0;for(;s<i.length;){if(a=a[i[s]],a===void 0)throw osu(r,n);s++}return a},zma=(t,e)=>{let r={},n={},i=null;e.paramIndex!==void 0&&(i=t[e.paramIndex]);let a=e.key?e.key:"data",s="";return typeof e.value=="string"?s=e.value:e.value!==void 0&&e.paramIndex!==void 0?s=asu(i,e.value.path,"val",e.paramIndex):s=i,typeof s=="number"&&!Number.isNaN(s)?n[a]=s:r[a]=s,[r,n]},iwn=(t,e)=>{let r,n,i={},a={};if(Array.isArray(e))for(let s of e)[r,n]=zma(t,s),i={...i,...r},a={...a,...n};else[i,a]=zma(t,e);return[i,a]};var Gma=(t,e,r,n)=>(...i)=>{let a=e.apply(t,i);return J6.getTelemetryClient().report(r,{},{},n),a},Wma=(t,e,r,n)=>async(...i)=>{let a=await e.apply(t,i);return J6.getTelemetryClient().report(r,{},{},n),a},Kma=(t,e,r,n)=>(...i)=>{let a=rk.startMark("mark"),s=e.apply(t,i);rk.endMark(a),rk.measure(a);let c=rk.getMeasurementDuration(a);return J6.getTelemetryClient().report(r,{},{ms:c},n),s},Yma=(t,e,r,n)=>async(...i)=>{let a=rk.startMark("mark"),s=await e.apply(t,i);rk.endMark(a),rk.measure(a);let c=rk.getMeasurementDuration(a);return J6.getTelemetryClient().report(r,{},{ms:c},n),s},Xma=(t,e,r,n,i)=>(...a)=>{let s=e.apply(t,a),[c,l]=iwn(a,i);return J6.getTelemetryClient().report(r,c,l,n),s},Jma=(t,e,r,n,i)=>async(...a)=>{let s=await e.apply(t,a),[c,l]=iwn(a,i);return J6.getTelemetryClient().report(r,c,l,n),s};var dEe;(function(t){t.NOTIFICATION="notify",t.DURATION="duration",t.CAPTURE_PARAM="captureParam"})(dEe||(dEe={}));var Lpr=new Map;Lpr.set(dEe.NOTIFICATION,Gma);Lpr.set(dEe.DURATION,Kma);Lpr.set(dEe.CAPTURE_PARAM,Xma);var $pr=new Map;$pr.set(dEe.NOTIFICATION,Wma);$pr.set(dEe.DURATION,Yma);$pr.set(dEe.CAPTURE_PARAM,Jma);var mya=Ar(lya(),1);import{randomUUID as Hcu}from"node:crypto";var jcu=["@sap-ux","fiori-mcp-server"].join("/");var Bcu="1.15.10",uya={name:jcu,version:Bcu};xle();var dya={telemetry:{unknownOs:"Unknown"}};var gwn="fiori-mcp-server",pya=Fg.createInstance();async function qcu(){await pya.init({resources:{en:{[gwn]:dya}},lng:"en",fallbackLng:"en",defaultNS:gwn,ns:[gwn]})}function fya(t,e){return pya.t(t,e)}qcu().catch(()=>{});var{version:zcu}=uya,hya="@sap-ux/fiori-mcp-server",gya="unknown-tool",Gcu="0a65e45d-6bf4-421d-b845-61e888c50e9e",Sae=class{static _telemetryData;static _previousEventTimestamp;static _sessionId;static get telemetryData(){return this._telemetryData}static get sessionId(){return this._sessionId}static initSessionId(){this._sessionId=Hcu(),Xn.info(`Telemetry session initialized with ID: ${this._sessionId}`)}static async initTelemetrySettings(e){this._sessionId||this.initSessionId();let r={consumerModule:{name:hya,version:zcu},watchTelemetrySettingStore:!1,internalFeature:Qbt(),resourceId:Gcu,...e};try{await nwn(r)}catch(n){Xn.error(`Error initializing telemetry settings: ${n}`)}}static createTelemetryData(e,r=!1){let n=new Date().getTime();if(this._previousEventTimestamp||(r=!1,this._previousEventTimestamp=n),!this._telemetryData){let i=fya("telemetry.unknownOs");try{i=(0,mya.default)()}catch{}this._telemetryData={Platform:$g()?"SBAS":"VSCode",OperatingSystem:i,SessionId:this.sessionId}}if(r){let i={...this._telemetryData,...e};if(Math.abs(this._previousEventTimestamp-n)<1e3&&JSON.stringify(i)===JSON.stringify(this._telemetryData))return}return this._previousEventTimestamp=n,this._telemetryData=Object.assign(this._telemetryData,e),this._telemetryData}static prepareTelemetryEvent(e,r){this.markToolsEndTime();let n=r.markName?rk.getMeasurementDuration(r.markName):void 0;return{eventName:e,properties:r,measurements:n?{RequestTime:n}:{}}}static markToolStartTime(){this.createTelemetryData({markName:rk.startMark("MCP_LOADING_TIME")})}static markToolsEndTime(){this._telemetryData?.markName&&(rk.endMark(this._telemetryData.markName),rk.measure(this._telemetryData.markName))}static async sendTelemetry(e,r,n){let i=this.createTelemetryData(r)??r,a=this.prepareTelemetryEvent(e,i);await J6.getTelemetryClient().reportEvent(a,KF.NoSampling,n?{appPath:n}:void 0)}static getTelemetryName(){return hya}};var yya="2024-11-05";function Wcu(t){return W1e.includes(t)?t:W1e.includes(yya)?yya:W1e[W1e.length-1]}var efr=class{server;mcpClientName="unknown-client";mcpClientVersion="unknown-version";constructor(){this.server=new kNt({name:"fiori-mcp",version:P4e,icons:[{src:"https://raw.githubusercontent.com/SAP/open-ux-tools/main/packages/fiori-mcp-server/assets/icon.svg",mimeType:"image/svg+xml"},{src:"https://raw.githubusercontent.com/SAP/open-ux-tools/main/packages/fiori-mcp-server/assets/icon.png",mimeType:"image/png"}],title:"MCP Server for SAP Fiori"},{capabilities:{tools:{}}}),this.setupToolHandlers(),this.setupErrorHandling()}setupErrorHandling(){this.server.onerror=r=>Xn.error(`[MCP Error] ${r}`);let e=async()=>{await XXt(),await this.server.close(),process.exit(0)};process.on("SIGINT",e),process.on("SIGTERM",e)}async setupTelemetry(){await Sae.initTelemetrySettings()}setupToolHandlers(){this.server.setRequestHandler(klt,async e=>{this.mcpClientName=e.params.clientInfo?.name||"unknown-client",this.mcpClientVersion=e.params.clientInfo?.version||"unknown-version",Xn.info(`MCP Client connected: ${this.mcpClientName} v${this.mcpClientVersion}`);let r={mcpClientName:this.mcpClientName,mcpClientVersion:this.mcpClientVersion};return await Sae.sendTelemetry(Usi,r),{protocolVersion:Wcu(e.params.protocolVersion),capabilities:{tools:{}},serverInfo:{name:"fiori-mcp",version:P4e},instructions:`
18833
+ `))}let r={name:AJe.TELEMETRY_SETTINGS_INIT_FAILED,properties:e,measurements:{}};process.env.SAP_UX_FIORI_TOOLS_DISABLE_TELEMETRY!=="true"&&Vma().trackEvent(r)},Hma=(t,e)=>{let r={name:AJe.DISABLE_TELEMETRY,properties:{disableTelemetry:`${!t}`,...e},measurements:{}};process.env.SAP_UX_FIORI_TOOLS_DISABLE_TELEMETRY!=="true"&&Vma().trackEvent(r)};import Kau from"node:os";import Yau from"node:path";import Xau from"node:fs";var Jau={win32:"\\AppData\\Roaming\\Code\\User\\settings.json",darwin:"/Library/Application Support/Code/User/settings.json",linux:"/.config/Code/User/settings.json",theia:"/.theia/settings.json"},Zau=["sap.ux.annotation.lsp.enableTelemetry","sap.ux.applicationModeler.enableTelemetry","sap.ux.help.enableTelemetry","sap.ux.serviceModeler.enableTelemetry"],Qau=t=>{let e=process.platform,r=t[e];if($g()&&(r=t.theia),!r)return null;let n=Kau.homedir();return Yau.join(n,r)};async function esu(t){let e;try{e=await t.read(new $Ae)}catch{}if(e)aP.telemetryEnabled=e.enableTelemetry;else{let r=Qau(Jau);if(!r)await Rpr(!0);else{let n;try{n=await Xau.promises.readFile(r,"utf-8");let i=JSON.parse(n),s=Zau.map(c=>i[c]??!0).reduce((c,l)=>c&&l,!0);await Rpr(s)}catch{await Rpr(!0)}}}}function tsu(t){E9t(yLe.TelemetrySetting,()=>{t.read(new $Ae).then(e=>{e&&(aP.telemetryEnabled=e.enableTelemetry)}).catch(()=>{})})}var nwn=async t=>{try{aP.consumerModuleName=t.consumerModule.name,aP.consumerModuleVersion=t.consumerModule.version,Ipr.internalFeature=t.internalFeature??!1,t.resourceId&&(aP.azureInstrumentationKey=t.resourceId),t.ingestionEndpoint&&(aP.azureIngestionEndpoint=t.ingestionEndpoint),t.liveEndpoint&&(aP.azureLiveEndpoint=t.liveEndpoint);let e=await fQ({entityName:"telemetrySetting"});await esu(e),t.watchTelemetrySettingStore&&tsu(e)}catch(e){qma(e)}};async function Rpr(t){try{let r=await fQ({entityName:"telemetrySetting"}),n=new Dbt({enableTelemetry:t});await r.write(n),aP.telemetryEnabled=t}catch{}let e=await twn();Hma(t,e)}var rsu="ApplicationInsightsInstrumentationKeyPLACEH0LDER",J6=class t{static clientMap=new Map;static getTelemetryClient(){return t.getTelemetryClientByClass(QOt)}static getTelemetryClientByClass(e){let r=t.clientMap.get(e.name);if(r)return r;let n=t.buildConnectionString(aP.azureInstrumentationKey);return r=new e(n,aP.consumerModuleName,aP.consumerModuleVersion),t.clientMap.set(e.name,r),r}static buildConnectionString(e){return e?`InstrumentationKey=${e===rsu?"00000000-0000-0000-0000-000000000000":e};IngestionEndpoint=${aP.azureIngestionEndpoint};LiveEndpoint=${aP.azureLiveEndpoint};`:""}};var rJ;(function(t){t.START_MARK="START_MARK",t.END_MARK="END_MARK",t.MEASUREMENT="MEASUREMENT"})(rJ||(rJ={}));var kpr=class{static initTiming;static enteries;static initialize;static startMark;static endMark;static measure;static getEntries;static getEntriesByName;static getEntriesByType;static getEntriesByNameType;static getMeasurementDuration;static clearEntries};var tPt=class{startTime;name;type;getStartTime(){return this.startTime}constructor(e,r,n){this.startTime=n,this.name=e,this.startTime=n,this.type=r}},Mpr=class extends tPt{startTime;duration;constructor(e,r,n){super(e,rJ.MEASUREMENT,r),this.startTime=r,this.duration=n,this.duration=n}getDurationTime(){return this.duration}};import{performance as nsu}from"node:perf_hooks";var isu=()=>nsu.now(),rk=class t extends kpr{static initTiming;static now=isu;static entries=[];static initialize(){t.initTiming=t.now()}static mark(e,r,n){let i=new tPt(e,r,n);t.entries.push(i)}static startMark(e){let r=t.now(),n=e+r;return t.mark(n,rJ.START_MARK,r),n}static endMark(e){let r=t.now();t.mark(e,rJ.END_MARK,r)}static measure(e){let r=t.getEntriesByNameType(e,rJ.START_MARK).slice(-1)[0],n=t.getEntriesByNameType(e,rJ.END_MARK).slice(-1)[0];if(!r&&!n)throw new Error(`Failed to execute 'measure': mark '${e}' doesn't exist.`);if(!r||!n){let l=r?rJ.END_MARK:rJ.START_MARK;throw new Error(`Failed to execute 'measure': mark '${e}'of type '${l}' doesn't exist.`)}let i=r.getStartTime(),s=n.getStartTime()-i,c=new Mpr(`${e}`,t.now(),s);t.entries.push(c)}static getEntries(){return t.entries}static getEntriesByName(e){return t.entries.filter(r=>r.name===e)}static getEntriesByNameType(e,r){return t.entries.filter(n=>n.name===e&&n.type===r)}static getEntriesByType(e){return t.entries.filter(r=>r.type===e)}static getMeasurementDuration(e){return t.getEntriesByNameType(e,rJ.MEASUREMENT).slice(-1)[0].getDurationTime()}static clearEntries(){t.entries=[]}};rk.initialize();var osu=(t,e)=>new Error(`Wrong path for '${t}' field is specified in instructions with index - ${e}`),asu=(t,e,r,n)=>{let i=e.split("/"),a=t,s=0;for(;s<i.length;){if(a=a[i[s]],a===void 0)throw osu(r,n);s++}return a},zma=(t,e)=>{let r={},n={},i=null;e.paramIndex!==void 0&&(i=t[e.paramIndex]);let a=e.key?e.key:"data",s="";return typeof e.value=="string"?s=e.value:e.value!==void 0&&e.paramIndex!==void 0?s=asu(i,e.value.path,"val",e.paramIndex):s=i,typeof s=="number"&&!Number.isNaN(s)?n[a]=s:r[a]=s,[r,n]},iwn=(t,e)=>{let r,n,i={},a={};if(Array.isArray(e))for(let s of e)[r,n]=zma(t,s),i={...i,...r},a={...a,...n};else[i,a]=zma(t,e);return[i,a]};var Gma=(t,e,r,n)=>(...i)=>{let a=e.apply(t,i);return J6.getTelemetryClient().report(r,{},{},n),a},Wma=(t,e,r,n)=>async(...i)=>{let a=await e.apply(t,i);return J6.getTelemetryClient().report(r,{},{},n),a},Kma=(t,e,r,n)=>(...i)=>{let a=rk.startMark("mark"),s=e.apply(t,i);rk.endMark(a),rk.measure(a);let c=rk.getMeasurementDuration(a);return J6.getTelemetryClient().report(r,{},{ms:c},n),s},Yma=(t,e,r,n)=>async(...i)=>{let a=rk.startMark("mark"),s=await e.apply(t,i);rk.endMark(a),rk.measure(a);let c=rk.getMeasurementDuration(a);return J6.getTelemetryClient().report(r,{},{ms:c},n),s},Xma=(t,e,r,n,i)=>(...a)=>{let s=e.apply(t,a),[c,l]=iwn(a,i);return J6.getTelemetryClient().report(r,c,l,n),s},Jma=(t,e,r,n,i)=>async(...a)=>{let s=await e.apply(t,a),[c,l]=iwn(a,i);return J6.getTelemetryClient().report(r,c,l,n),s};var dEe;(function(t){t.NOTIFICATION="notify",t.DURATION="duration",t.CAPTURE_PARAM="captureParam"})(dEe||(dEe={}));var Lpr=new Map;Lpr.set(dEe.NOTIFICATION,Gma);Lpr.set(dEe.DURATION,Kma);Lpr.set(dEe.CAPTURE_PARAM,Xma);var $pr=new Map;$pr.set(dEe.NOTIFICATION,Wma);$pr.set(dEe.DURATION,Yma);$pr.set(dEe.CAPTURE_PARAM,Jma);var mya=Ar(lya(),1);import{randomUUID as Hcu}from"node:crypto";var jcu=["@sap-ux","fiori-mcp-server"].join("/");var Bcu="1.15.11",uya={name:jcu,version:Bcu};xle();var dya={telemetry:{unknownOs:"Unknown"}};var gwn="fiori-mcp-server",pya=Fg.createInstance();async function qcu(){await pya.init({resources:{en:{[gwn]:dya}},lng:"en",fallbackLng:"en",defaultNS:gwn,ns:[gwn]})}function fya(t,e){return pya.t(t,e)}qcu().catch(()=>{});var{version:zcu}=uya,hya="@sap-ux/fiori-mcp-server",gya="unknown-tool",Gcu="0a65e45d-6bf4-421d-b845-61e888c50e9e",Sae=class{static _telemetryData;static _previousEventTimestamp;static _sessionId;static get telemetryData(){return this._telemetryData}static get sessionId(){return this._sessionId}static initSessionId(){this._sessionId=Hcu(),Xn.info(`Telemetry session initialized with ID: ${this._sessionId}`)}static async initTelemetrySettings(e){this._sessionId||this.initSessionId();let r={consumerModule:{name:hya,version:zcu},watchTelemetrySettingStore:!1,internalFeature:Qbt(),resourceId:Gcu,...e};try{await nwn(r)}catch(n){Xn.error(`Error initializing telemetry settings: ${n}`)}}static createTelemetryData(e,r=!1){let n=new Date().getTime();if(this._previousEventTimestamp||(r=!1,this._previousEventTimestamp=n),!this._telemetryData){let i=fya("telemetry.unknownOs");try{i=(0,mya.default)()}catch{}this._telemetryData={Platform:$g()?"SBAS":"VSCode",OperatingSystem:i,SessionId:this.sessionId}}if(r){let i={...this._telemetryData,...e};if(Math.abs(this._previousEventTimestamp-n)<1e3&&JSON.stringify(i)===JSON.stringify(this._telemetryData))return}return this._previousEventTimestamp=n,this._telemetryData=Object.assign(this._telemetryData,e),this._telemetryData}static prepareTelemetryEvent(e,r){this.markToolsEndTime();let n=r.markName?rk.getMeasurementDuration(r.markName):void 0;return{eventName:e,properties:r,measurements:n?{RequestTime:n}:{}}}static markToolStartTime(){this.createTelemetryData({markName:rk.startMark("MCP_LOADING_TIME")})}static markToolsEndTime(){this._telemetryData?.markName&&(rk.endMark(this._telemetryData.markName),rk.measure(this._telemetryData.markName))}static async sendTelemetry(e,r,n){let i=this.createTelemetryData(r)??r,a=this.prepareTelemetryEvent(e,i);await J6.getTelemetryClient().reportEvent(a,KF.NoSampling,n?{appPath:n}:void 0)}static getTelemetryName(){return hya}};var yya="2024-11-05";function Wcu(t){return W1e.includes(t)?t:W1e.includes(yya)?yya:W1e[W1e.length-1]}var efr=class{server;mcpClientName="unknown-client";mcpClientVersion="unknown-version";constructor(){this.server=new kNt({name:"fiori-mcp",version:P4e,icons:[{src:"https://raw.githubusercontent.com/SAP/open-ux-tools/main/packages/fiori-mcp-server/assets/icon.svg",mimeType:"image/svg+xml"},{src:"https://raw.githubusercontent.com/SAP/open-ux-tools/main/packages/fiori-mcp-server/assets/icon.png",mimeType:"image/png"}],title:"MCP Server for SAP Fiori"},{capabilities:{tools:{}}}),this.setupToolHandlers(),this.setupErrorHandling()}setupErrorHandling(){this.server.onerror=r=>Xn.error(`[MCP Error] ${r}`);let e=async()=>{await XXt(),await this.server.close(),process.exit(0)};process.on("SIGINT",e),process.on("SIGTERM",e)}async setupTelemetry(){await Sae.initTelemetrySettings()}setupToolHandlers(){this.server.setRequestHandler(klt,async e=>{this.mcpClientName=e.params.clientInfo?.name||"unknown-client",this.mcpClientVersion=e.params.clientInfo?.version||"unknown-version",Xn.info(`MCP Client connected: ${this.mcpClientName} v${this.mcpClientVersion}`);let r={mcpClientName:this.mcpClientName,mcpClientVersion:this.mcpClientVersion};return await Sae.sendTelemetry(Usi,r),{protocolVersion:Wcu(e.params.protocolVersion),capabilities:{tools:{}},serverInfo:{name:"fiori-mcp",version:P4e},instructions:`
18834
18834
  \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
18835
18835
  \u{1F6A8}\u{1F6A8}\u{1F6A8} STOP - READ THIS BEFORE CALLING ANY TOOLS \u{1F6A8}\u{1F6A8}\u{1F6A8}
18836
18836
  \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sap-ux/fiori-mcp-server",
3
3
  "description": "SAP Fiori - Model Context Protocol (MCP) server",
4
- "version": "1.15.10",
4
+ "version": "1.15.11",
5
5
  "mcpName": "io.github.SAP/fiori-mcp-server",
6
6
  "keywords": [
7
7
  "SAP Fiori tools",
@@ -67,20 +67,20 @@
67
67
  "@sap-ux/feature-toggle": "1.0.5",
68
68
  "@sap-ux/fiori-annotation-api": "1.1.3",
69
69
  "@sap-ux/fiori-docs-embeddings": "1.2.8",
70
- "@sap-ux/i18n": "1.0.5",
71
- "@sap-ux/logger": "1.0.3",
72
70
  "@sap-ux/nodejs-utils": "1.0.10",
71
+ "@sap-ux/logger": "1.0.3",
73
72
  "@sap-ux/odata-annotation-core": "1.0.3",
74
73
  "@sap-ux/odata-annotation-core-types": "1.0.3",
75
74
  "@sap-ux/odata-entity-model": "1.0.1",
75
+ "@sap-ux/i18n": "1.0.5",
76
76
  "@sap-ux/odata-service-writer": "1.0.25",
77
77
  "@sap-ux/project-access": "2.3.0",
78
- "@sap-ux/project-input-validator": "1.0.23",
79
- "@sap-ux/store": "2.0.7",
80
78
  "@sap-ux/system-access": "1.0.14",
81
- "@sap-ux/telemetry": "2.0.10",
79
+ "@sap-ux/store": "2.0.7",
82
80
  "@sap-ux/text-document-utils": "1.0.3",
83
- "@sap-ux/ui5-config": "1.0.9"
81
+ "@sap-ux/ui5-config": "1.0.9",
82
+ "@sap-ux/project-input-validator": "1.0.23",
83
+ "@sap-ux/telemetry": "2.0.10"
84
84
  },
85
85
  "engines": {
86
86
  "node": ">=22.x"