@odigos/ui-kit 0.0.287 → 0.0.289

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 (59) hide show
  1. package/.cursor/rules/frontend-workflow.mdc +27 -0
  2. package/.cursor/rules/ui-feedback-tables-forms.mdc +40 -0
  3. package/.cursor/rules/ui-implementation.mdc +21 -0
  4. package/.cursor/rules/ui-pages-and-drawers.mdc +34 -0
  5. package/.cursor/rules/ui-visual-language.mdc +27 -0
  6. package/CHANGELOG.md +30 -0
  7. package/lib/chunks/{helpers-CtkwQ3Wc.js → helpers-Ds7r-EIJ.js} +1 -1
  8. package/lib/chunks/index-DiYN36pr.js +351 -0
  9. package/lib/chunks/source-instrument-form-context-CBP9xXNN.js +5 -0
  10. package/lib/chunks/{ui-components-CjgsN17j.js → ui-components-Dvmqmy3G.js} +93 -84
  11. package/lib/components/table/types.d.ts +2 -2
  12. package/lib/components/trace-view/styled.d.ts +51 -34
  13. package/lib/components/trace-view/types.d.ts +4 -0
  14. package/lib/components.js +1 -1
  15. package/lib/constants/strings/index.d.ts +6 -0
  16. package/lib/constants.js +1 -1
  17. package/lib/containers/_drawers/edit-source-drawer/overview/instructions-card.d.ts +21 -0
  18. package/lib/containers/_modals/sampling-onboarding-modal/common/chrome.d.ts +14 -10
  19. package/lib/containers/_modals/sampling-onboarding-modal/common/section.d.ts +9 -3
  20. package/lib/containers/insights/findings/drawer/anomaly/risk-breakdown/helpers.d.ts +23 -0
  21. package/lib/containers/insights/findings/drawer/anomaly/risk-breakdown/index.d.ts +9 -0
  22. package/lib/containers/insights/operation-identity.d.ts +22 -0
  23. package/lib/containers/insights/overview/contained-table-and-heading/index.d.ts +2 -1
  24. package/lib/containers/insights/settings-and-configurations/panels/detection/create-override-panel.d.ts +1 -1
  25. package/lib/containers/insights/settings-and-configurations/panels/guardrails/constants.d.ts +6 -1
  26. package/lib/containers/insights/settings-and-configurations/panels/guardrails/facet-section.d.ts +1 -0
  27. package/lib/containers/insights/settings-and-configurations/panels/guardrails/mappers.d.ts +2 -0
  28. package/lib/containers/insights/settings-and-configurations/panels/learning/mappers.d.ts +2 -1
  29. package/lib/containers/insights/settings-and-configurations/panels/storage/layout.d.ts +12 -4
  30. package/lib/containers/insights/settings-and-configurations/panels/system/constants.d.ts +19 -1
  31. package/lib/containers/insights/transactions/helpers.d.ts +16 -3
  32. package/lib/containers.js +606 -478
  33. package/lib/contexts/odigos-api/capabilities.d.ts +2 -0
  34. package/lib/contexts/odigos-api/hooks/use-insights-api.d.ts +19 -2
  35. package/lib/contexts/odigos-api/hooks/use-sources-api.d.ts +10 -1
  36. package/lib/contexts/odigos-api/index.d.ts +1 -1
  37. package/lib/contexts/odigos-api/types.d.ts +48 -1
  38. package/lib/contexts.js +1 -1
  39. package/lib/functions.js +1 -1
  40. package/lib/hooks.js +1 -1
  41. package/lib/{containers/insights/findings/drawer/anomaly/anomaly-blast-radius → snippets/blast-radius}/helpers.d.ts +7 -6
  42. package/lib/snippets/blast-radius/index.d.ts +7 -0
  43. package/lib/snippets/index.d.ts +1 -0
  44. package/lib/snippets/sampling-rule-form-sections/styled.d.ts +6 -2
  45. package/lib/snippets.js +1 -1
  46. package/lib/store.js +1 -1
  47. package/lib/theme/palettes/index.d.ts +1 -0
  48. package/lib/theme.js +1 -1
  49. package/lib/types/insights/index.d.ts +68 -13
  50. package/lib/types/workload/index.d.ts +61 -0
  51. package/lib/types.js +1 -1
  52. package/lib/visuals.js +1 -1
  53. package/package.json +27 -24
  54. package/lib/chunks/index-BlYPxLja.js +0 -311
  55. package/lib/chunks/source-instrument-form-context-Bg6JzU76.js +0 -5
  56. package/lib/containers/insights/findings/drawer/anomaly/anomaly-blast-radius/index.d.ts +0 -7
  57. /package/lib/{containers/insights/findings/drawer/anomaly/anomaly-blast-radius → snippets/blast-radius}/animated-edge.d.ts +0 -0
  58. /package/lib/{containers/insights/findings/drawer/anomaly/anomaly-blast-radius → snippets/blast-radius}/blast-radius-node.d.ts +0 -0
  59. /package/lib/{containers/insights/findings/drawer/anomaly/anomaly-blast-radius → snippets/blast-radius}/types.d.ts +0 -0
@@ -1,5 +0,0 @@
1
- import{jsx as e}from"react/jsx-runtime";import{useMemo as t,useContext as r,createContext as a,useCallback as n,useState as o,useEffect as s,useRef as i}from"react";import{t as c,ba as l,bb as d,o as u,S as m,bc as S,bd as E,be as I,P as p,bf as T,bg as _,bh as f,bi as y,bj as N,bk as A,bl as R,bm as g,bn as h,bo as O,bp as v,bq as G,br as C,bs as L,bt as D,bu as P,bv as w,b3 as U,bw as b,bx as F,p as k,by as H,bz as M,bA as x,bB as V,bC as Y,bD as K,E as $,bE as W,bF as B,ak as j,ag as q,ai as Q,ah as z,aj as J,af as X,bG as Z,b as ee}from"./ui-components-CjgsN17j.js";import{i as te,n as re,m as ae,l as ne,o as oe,p as se,v as ie,q as ce,u as le}from"./helpers-CtkwQ3Wc.js";import{ApolloProvider as de,useLazyQuery as ue,useApolloClient as me,useQuery as Se}from"@apollo/client/react";import{ErrorLink as Ee}from"@apollo/client/link/error";import{SetContextLink as Ie}from"@apollo/client/link/context";import{getMainDefinition as pe}from"@apollo/client/utilities";import{CombinedGraphQLErrors as Te,ServerError as _e}from"@apollo/client/errors";import{HttpLink as fe,ApolloLink as ye,ApolloClient as Ne,InMemoryCache as Ae,gql as Re}from"@apollo/client";const ge=e=>{if(!e)return!1;const t=e.toLowerCase();return t.includes("authentication required")||t.includes("authentication expired")||t.includes("http 401")},he=a(null),Oe=()=>{const e=r(he);if(!e)throw new Error("[ui-kit] useOdigosApi() / useXxxApi() called outside of <OdigosApiProvider>. Make sure the host app mounts the provider at its layout level.");return e},ve=({apolloConfig:r,operations:a,context:n,children:o})=>{const s=t(()=>(e=>{const t=new fe({uri:e.httpUrl,credentials:e.credentials??"same-origin"}),r=new Ee(({error:t})=>{Te.is(t)?t.errors.some(e=>ge(e.message))&&e.onAuthError?.():(_e.is(t)&&401===t.statusCode||ge(t.message))&&e.onAuthError?.()}),a=new Ie(async t=>{const r={...t.headers};if(e.authHeader){const t=await e.authHeader();Object.assign(r,t)}return e.csrfHeader&&Object.assign(r,e.csrfHeader()),{headers:r}}),n=[];e.additionalLinks?.length&&n.push(...e.additionalLinks),n.push(a,r,t);let o=ye.from(n);e.wsLink&&(o=ye.split(({query:e})=>{const t=pe(e);return"OperationDefinition"===t.kind&&"subscription"===t.operation},e.wsLink,o));const s=e.defaultFetchPolicies;return new Ne({link:o,cache:new Ae({typePolicies:e.cacheTypePolicies}),defaultOptions:{watchQuery:{fetchPolicy:s?.watchQuery??"cache-and-network"},query:{fetchPolicy:s?.query??"cache-first"},mutate:{fetchPolicy:s?.mutate??"network-only"}}})})(r),[r.httpUrl,r.wsLink,r.credentials,r.clientKey]),i=t(()=>({operations:a,context:n,apolloConfig:r}),[a,n,r]);return e(de,{client:s,children:e(he.Provider,{value:i,children:o})})},Ge=he,Ce=e=>e.map(e=>`${e.id}:${e.odigosVersion}:${e.type}`).join(","),Le=(e,t,r)=>{const a=t.length?t.map(e=>e.id):r??[],n={...e,connectionIds:a};if(!t.length||c(e.version)>0)return n;const o=t[0];return{...n,version:o.odigosVersion||e.version,platformType:o.type??e.platformType}},De=({connections:r,connectionIds:a,children:n})=>{const o=Oe(),s=t(()=>({operations:o.operations,context:Le(o.context,r,a),apolloConfig:o.apolloConfig}),[o.operations,o.context,o.apolloConfig,Ce(r),a?.join(",")]);return e(Ge.Provider,{value:s,children:n})},Pe=(e,t)=>{if(e)return"string"==typeof e?e:S(e,t)},we=e=>{const{addNotification:t}=l(),r=(r,a,n,o,s)=>t({type:r,title:a,message:n,crdType:e,target:Pe(o,e),hideFromHistory:s});return{notify:r,notifyError:(e,t,a)=>r(m.Error,e,t,a),notifySuccess:(e,t,a)=>r(m.Success,e,t,a),notifyPending:(e,t)=>r(m.Default,"Pending",e,t,!0),notifyReadonly:()=>{t({type:m.Warning,title:u.READONLY,message:d.READONLY_WARNING,hideFromHistory:!0})}}},Ue=e=>{e({type:m.Warning,title:u.READONLY,message:d.READONLY_WARNING,hideFromHistory:!0})},be=e=>({error:e,results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:0}),Fe=(e,t)=>{if(e)return"function"==typeof e?e(t):e},ke=e=>{if(!e)return"Unknown error";if(e instanceof Error)return e.cause instanceof Error?e.cause.message:e.message;if("object"==typeof e){const t=e;return t.cause?.message||t.message||String(e)}return String(e)},He=(e,t)=>e.client??t,Me=async(e,t,r,a,n)=>{if(!t)return{error:"Query operation not configured"};if(t.canRun&&!t.canRun(a))return{data:void 0};if(t.run)try{return await t.run(He(t,e),r,a)}catch(e){return{error:ke(e)}}const o=Fe(t.document,a);if(!o)return{error:"Query operation not supported in this context"};const s=t.transformVariables?t.transformVariables(r,a):r,i=He(t,e);try{const e=await i.query({query:o,variables:s,fetchPolicy:n??"network-only"});return{data:t.transformResult?t.transformResult(e.data,a):e.data,error:e.error?ke(e.error):void 0}}catch(e){return{error:ke(e)}}},xe=async(e,t,r,a)=>{if(!t)return{error:"Mutation operation not configured"};if(t.canRun&&!t.canRun(a))return{error:"Mutation operation not supported in this context"};if(t.run)try{return await t.run(He(t,e),r,a)}catch(e){return{error:ke(e)}}const n=Fe(t.document,a);if(!n)return{error:"Mutation operation not supported in this context"};const o=t.transformVariables?t.transformVariables(r,a):r,s=He(t,e);try{const e=await s.mutate({mutation:n,variables:o});return{data:t.transformResult?t.transformResult(e.data,a):e.data,error:void 0}}catch(e){return{error:ke(e)}}},Ve=async(e,t,r,a,n)=>{if(!t)return be("Multi fetch operation not configured");if(!r.length)return be("No proxy ids supplied for multi fetch");const o=He(t,e);if(t.transformVariablesMulti&&(t.documentMulti||t.document)){const e=t.transformVariablesMulti(r,a,n),s=[];for(const r of e)try{const e=await o.query({query:r.document,variables:r.variables,fetchPolicy:"network-only"});t.transformMultiResult?t.transformMultiResult(e.data,n).forEach(e=>s.push(e)):r.proxyIDs.forEach(t=>{s.push({proxyID:t,success:!e.error,data:e.data,error:e.error?.message})})}catch(e){const t=ke(e);r.proxyIDs.forEach(e=>s.push({proxyID:e,success:!1,error:t}))}const i=s.filter(e=>e.success).length,c=s.length-i,l=Array.from(new Set(s.filter(e=>!!e.error).map(e=>e.error)));return{results:s,allSucceeded:0===c,anySucceeded:i>0,successCount:i,failureCount:c,error:l.length?l.join(", "):void 0}}const s=await Promise.all(r.map(async r=>{const o={...n,proxyID:r},s=await Me(e,t,a,o);return{proxyID:r,success:!s.error,data:s.data,error:s.error}})),i=s.filter(e=>e.success).length,c=s.length-i,l=Array.from(new Set(s.filter(e=>!!e.error).map(e=>e.error)));return{results:s,allSucceeded:0===c,anySucceeded:i>0,successCount:i,failureCount:c,error:l.length?l.join(", "):void 0}},Ye=Re`
2
- query OdigosApiNoop {
3
- __typename
4
- }
5
- `,Ke=(e,t)=>{if(e)return"function"==typeof e?e(t):e},$e=(e,t)=>e[t],We=(e,t,r)=>{if(void 0!==t)return e?.transformResult?e.transformResult(t,r):t},Be=(e,t,r)=>{if(!e)return;const a=e.transformVariables;return a?a(t,r):t},je=(e,r,a)=>{const{operations:o,context:i}=Oe(),c=$e(o,e),l=t(()=>Ke(c?.document,i),[c,i]),d=t(()=>Be(c,r,i),[c,r,i]),u=!c||!l,m=!!c?.canRun&&!c.canRun(i),S=a?.skip||u||m,E=Se(l??Ye,{variables:d,skip:S,pollInterval:a?.pollInterval,fetchPolicy:a?.fetchPolicy??"cache-and-network",notifyOnNetworkStatusChange:a?.notifyOnNetworkStatusChange,client:c?.client}),I=t(()=>{if(!S)return We(c,E.data,i)},[c,i,E.data,S]);s(()=>{S||void 0===I||a?.onCompleted?.(I)},[S,I,a?.onCompleted]),s(()=>{E.error&&a?.onError?.(E.error)},[E.error,a?.onError]);const p=n(async()=>{if(S)return{data:void 0};const e=await E.refetch();return{data:We(c,e.data,i)}},[c,i,E,S]);return{data:I,loading:!S&&E.loading,error:E.error,refetch:p,unsupported:u}},qe=(e,r)=>{const{operations:a,context:o}=Oe(),s=$e(a,e),i=t(()=>Ke(s?.document,o),[s,o]),c=!s||!i,[l,d]=ue(i??Ye,{fetchPolicy:r?.fetchPolicy??"network-only",notifyOnNetworkStatusChange:r?.notifyOnNetworkStatusChange,client:s?.client});return{execute:n(async e=>{if(c)return{error:void 0};if(s?.canRun&&!s.canRun(o))return{data:void 0};const t=Be(s,e,o),r=await l({variables:t});return r.error?{error:r.error}:{data:We(s,r.data,o)}},[s,o,l,c]),data:t(()=>We(s,d.data,o),[s,o,d.data]),loading:d.loading,error:d.error,called:d.called,unsupported:c}},Qe=(e,r)=>{const{operations:a,context:s}=Oe(),i=me(),c=$e(a,e),l=t(()=>Ke(c?.document,s),[c,s]),d=!c||!l,[u,m]=o({loading:!1,called:!1}),S=n(()=>m({loading:!1,called:!1}),[]);return[n(async e=>{if(d||!l)return{error:void 0};if(c?.canRun&&!c.canRun(s))return{data:void 0};const t=Be(c,e,s),a=c?.client??i;m(e=>({...e,loading:!0,called:!0}));try{const e=await a.mutate({mutation:l,variables:t}),n=We(c,e.data,s);if(m({data:n,loading:!1,error:void 0,called:!0}),r?.refetchQueries){const e=a.refetchQueries({include:r.refetchQueries});r?.awaitRefetchQueries&&await e}return void 0!==n&&r?.onCompleted?.(n),{data:n}}catch(e){const t=e;return m({data:void 0,loading:!1,error:t,called:!0}),r?.onError?.(t),{error:t}}},[c,s,i,l,d,r]),{data:u.data,loading:u.loading,error:u.error,called:u.called,unsupported:d,reset:S}]},ze=[],Je=(e,t,r,a)=>{let n=!0;const o={sources:[]};for(const[s,i]of Object.entries(e)){if(!i.length)continue;n=!1;const e=i.map(({id:e,selected:t,currentStreamName:a})=>({namespace:e.namespace,name:e.name,kind:e.kind,selected:void 0!==t&&t,currentStreamName:a||r}));let c=0,l=0;for(const r of e){const e=t.find(e=>e.id.namespace===s&&e.id.name===r.name&&e.id.kind===r.kind),a=e?.dataStreamNames||[];r.selected&&!e?c++:!r.selected&&e&&a.length<=1&&l++}a(c,l),o.sources.push(...e)}return{payload:o,isEmpty:n}},Xe=(e,t)=>{let r=!0;const a={namespaces:[]};for(const[n,{selected:o,currentStreamName:s}]of Object.entries(e))"boolean"==typeof o&&(r=!1,a.namespaces.push({namespace:n,selected:o,currentStreamName:s||t}));return{payload:a,isEmpty:r}},Ze={filter:{markedForInstrumentation:!0}},et=[],tt=e=>{const t=e.markedForInstrumentation?.markedForInstrumentation;return"boolean"==typeof t?e:{...e,markedForInstrumentation:{...e.markedForInstrumentation??{markedForInstrumentation:!0},markedForInstrumentation:!0}}},rt=e=>{let t=!1;const r=e.map(e=>{const r=tt(e);return r!==e&&(t=!0),r});return t?r:e},at=[],nt=[],ot=[],st=(e,t)=>{const r=me(),{notifyError:a,notifySuccess:n,notifyReadonly:o}=we(g.Finding),s=async()=>{e.GET_INSIGHTS_FINDINGS&&await Me(r,e.GET_INSIGHTS_FINDINGS,void 0,t)},i=async()=>{e.GET_INSIGHTS_ANOMALIES&&await Me(r,e.GET_INSIGHTS_ANOMALIES,void 0,t)},c=async()=>{e.GET_INSIGHTS_TRANSACTIONS&&await Me(r,e.GET_INSIGHTS_TRANSACTIONS,void 0,t)},l=async()=>{if(!e.GET_INSIGHTS_POLICIES)return;const a="function"==typeof e.GET_INSIGHTS_POLICIES.document?e.GET_INSIGHTS_POLICIES.document(t):e.GET_INSIGHTS_POLICIES.document;a?await r.refetchQueries({include:[a]}):await Me(r,e.GET_INSIGHTS_POLICIES,void 0,t)},d=async()=>{e.GET_INSIGHTS_LEARNING_POLICIES&&await Me(r,e.GET_INSIGHTS_LEARNING_POLICIES,void 0,t)},u=async()=>{e.GET_INSIGHTS_GUARDRAILS&&await Me(r,e.GET_INSIGHTS_GUARDRAILS,void 0,t)},m=async()=>{e.GET_INSIGHTS_GUARDRAIL_VIOLATIONS&&await Me(r,e.GET_INSIGHTS_GUARDRAIL_VIOLATIONS,void 0,t)};return{useServices:e=>je("GET_INSIGHTS_SERVICES",void 0,e),useTransactions:(e,t)=>je("GET_INSIGHTS_TRANSACTIONS",e,t),useTransaction:(e,t)=>je("GET_INSIGHTS_TRANSACTION",e,t),useBaseline:(e,t)=>je("GET_INSIGHTS_BASELINE",e,t),useObservations:(e,t)=>je("GET_INSIGHTS_OBSERVATIONS",e,t),useObservation:(e,t)=>je("GET_INSIGHTS_OBSERVATION",e,t),useFindings:(e,t)=>je("GET_INSIGHTS_FINDINGS",e,t),useAnomalies:(e,t)=>je("GET_INSIGHTS_ANOMALIES",e,t),useAnomaly:(e,t)=>je("GET_INSIGHTS_ANOMALY",e,t),usePolicies:e=>je("GET_INSIGHTS_POLICIES",void 0,e),useLearningPolicies:e=>je("GET_INSIGHTS_LEARNING_POLICIES",void 0,e),useGuardrails:e=>je("GET_INSIGHTS_GUARDRAILS",void 0,e),useGuardrailViolations:(e,t)=>je("GET_INSIGHTS_GUARDRAIL_VIOLATIONS",e,t),useGuardrailViolation:(e,t)=>je("GET_INSIGHTS_GUARDRAIL_VIOLATION",e,t),useServiceProfile:(e,t)=>je("GET_INSIGHTS_SERVICE_PROFILE",e,t),useBlastRadius:(e,t)=>je("GET_INSIGHTS_BLAST_RADIUS",e,t),useCatalog:e=>je("GET_INSIGHTS_CATALOG",void 0,e),useSystemSettings:e=>je("GET_INSIGHTS_SYSTEM_SETTINGS",void 0,e),useStorageHealth:e=>je("GET_INSIGHTS_STORAGE_HEALTH",void 0,e),getServices:e.GET_INSIGHTS_SERVICES?async()=>Me(r,e.GET_INSIGHTS_SERVICES,void 0,t):void 0,getTransactions:e.GET_INSIGHTS_TRANSACTIONS?async a=>Me(r,e.GET_INSIGHTS_TRANSACTIONS,a,t):void 0,getTransaction:e.GET_INSIGHTS_TRANSACTION?async a=>Me(r,e.GET_INSIGHTS_TRANSACTION,a,t):void 0,getFindings:e.GET_INSIGHTS_FINDINGS?async a=>Me(r,e.GET_INSIGHTS_FINDINGS,a,t):void 0,getAnomalies:e.GET_INSIGHTS_ANOMALIES?async a=>Me(r,e.GET_INSIGHTS_ANOMALIES,a,t):void 0,getAnomaly:e.GET_INSIGHTS_ANOMALY?async a=>Me(r,e.GET_INSIGHTS_ANOMALY,a,t):void 0,getPolicies:e.GET_INSIGHTS_POLICIES?async()=>Me(r,e.GET_INSIGHTS_POLICIES,void 0,t):void 0,getLearningPolicies:e.GET_INSIGHTS_LEARNING_POLICIES?async()=>Me(r,e.GET_INSIGHTS_LEARNING_POLICIES,void 0,t):void 0,getGuardrails:e.GET_INSIGHTS_GUARDRAILS?async()=>Me(r,e.GET_INSIGHTS_GUARDRAILS,void 0,t):void 0,getGuardrailViolation:e.GET_INSIGHTS_GUARDRAIL_VIOLATION?async a=>Me(r,e.GET_INSIGHTS_GUARDRAIL_VIOLATION,a,t):void 0,getServiceProfile:e.GET_INSIGHTS_SERVICE_PROFILE?async a=>Me(r,e.GET_INSIGHTS_SERVICE_PROFILE,a,t):void 0,getBlastRadius:e.GET_INSIGHTS_BLAST_RADIUS?async a=>Me(r,e.GET_INSIGHTS_BLAST_RADIUS,a,t):void 0,getCatalog:e.GET_INSIGHTS_CATALOG?async()=>Me(r,e.GET_INSIGHTS_CATALOG,void 0,t):void 0,getSystemSettings:e.GET_INSIGHTS_SYSTEM_SETTINGS?async()=>Me(r,e.GET_INSIGHTS_SYSTEM_SETTINGS,void 0,t):void 0,getStorageHealth:e.GET_INSIGHTS_STORAGE_HEALTH?async()=>Me(r,e.GET_INSIGHTS_STORAGE_HEALTH,void 0,t):void 0,promoteBaselineClass:e.PROMOTE_INSIGHTS_BASELINE_CLASS?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await xe(r,e.PROMOTE_INSIGHTS_BASELINE_CLASS,s,t);return c?a(E.Update,c):n(E.Update,"Successfully promoted baseline class"),{data:i,error:c}}:void 0,resetBaselineClass:e.RESET_INSIGHTS_BASELINE_CLASS?async(s,i)=>{if(t.isReadonly)return o();const{error:c}=await xe(r,e.RESET_INSIGHTS_BASELINE_CLASS,{transactionId:s,class:i},t);return c?a(E.Update,c):n(E.Update,"Successfully reset baseline class"),c?{error:c}:void 0}:void 0,resetTransactionBaselines:e.RESET_INSIGHTS_TRANSACTION_BASELINES?async s=>{if(t.isReadonly)return o();const{error:i}=await xe(r,e.RESET_INSIGHTS_TRANSACTION_BASELINES,{transactionId:s},t);return i?a(E.Update,i):n(E.Update,"Successfully reset transaction baselines"),i?{error:i}:void 0}:void 0,forcePromoteService:e.FORCE_PROMOTE_INSIGHTS_SERVICE?async s=>{if(t.isReadonly)return o();const{error:i}=await xe(r,e.FORCE_PROMOTE_INSIGHTS_SERVICE,s,t);return i?a(E.Update,i):(n(E.Update,"Successfully force-promoted service transactions"),await c()),i?{error:i}:void 0}:void 0,deleteTransaction:e.DELETE_INSIGHTS_TRANSACTION?async l=>{if(t.isReadonly)return o();const{error:d}=await xe(r,e.DELETE_INSIGHTS_TRANSACTION,{transactionId:l},t);return d?a(E.Delete,d):(n(E.Delete,"Successfully deleted transaction"),await Promise.all([c(),s(),i()])),d?{error:d}:void 0}:void 0,upsertPolicy:e.UPSERT_INSIGHTS_POLICY?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await xe(r,e.UPSERT_INSIGHTS_POLICY,{policy:s},t);return c?a(E.Update,c):(n(E.Update,`Successfully saved policy "${s.name}"`),await l()),{data:i,error:c}}:void 0,deletePolicy:e.DELETE_INSIGHTS_POLICY?async(s,i)=>{if(t.isReadonly)return o();const{error:c}=await xe(r,e.DELETE_INSIGHTS_POLICY,{scope:s,scopeKey:i},t);return c?a(E.Delete,c):(n(E.Delete,"Successfully deleted policy"),await l()),c?{error:c}:void 0}:void 0,upsertLearningPolicy:e.UPSERT_INSIGHTS_LEARNING_POLICY?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await xe(r,e.UPSERT_INSIGHTS_LEARNING_POLICY,{policy:s},t);return c?a(E.Update,c):(n(E.Update,"Successfully saved learning policy"),await d()),{data:i,error:c}}:void 0,deleteLearningPolicy:e.DELETE_INSIGHTS_LEARNING_POLICY?async(s,i,c)=>{if(t.isReadonly)return o();const{error:l}=await xe(r,e.DELETE_INSIGHTS_LEARNING_POLICY,{class:s,scope:i,scopeKey:c},t);return l?a(E.Delete,l):(n(E.Delete,"Successfully deleted learning policy"),await d()),l?{error:l}:void 0}:void 0,resolveAnomaly:e.RESOLVE_INSIGHTS_ANOMALY?async c=>{if(t.isReadonly)return o();const{error:l}=await xe(r,e.RESOLVE_INSIGHTS_ANOMALY,c,t);return l?a(E.Update,l):(n(E.Update,`Successfully ${c.resolution}ed anomaly`),await Promise.all([i(),s()])),l?{error:l}:void 0}:void 0,bulkResolveAnomalies:e.BULK_RESOLVE_INSIGHTS_ANOMALIES?async(c,l)=>{if(t.isReadonly)return o();const d={resolution:c,items:l},{data:u,error:m}=await xe(r,e.BULK_RESOLVE_INSIGHTS_ANOMALIES,d,t);return m?a(E.Update,m):(n(E.Update,`Successfully ${c}ed ${u?.resolved??l.length} anomalies`),await Promise.all([i(),s()])),{data:u,error:m}}:void 0,upsertGuardrail:e.UPSERT_INSIGHTS_GUARDRAIL?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await xe(r,e.UPSERT_INSIGHTS_GUARDRAIL,{guardrail:s},t);return c?a(E.Update,c):(n(E.Update,"Successfully saved guardrail"),await u()),{data:i,error:c}}:void 0,deleteGuardrail:e.DELETE_INSIGHTS_GUARDRAIL?async s=>{if(t.isReadonly)return o();const{error:i}=await xe(r,e.DELETE_INSIGHTS_GUARDRAIL,{scopeKey:s},t);return i?a(E.Delete,i):(n(E.Delete,"Successfully deleted guardrail"),await u()),i?{error:i}:void 0}:void 0,seedGuardrail:e.SEED_INSIGHTS_GUARDRAIL?async s=>{if(t.isReadonly)return o();const{error:i}=await xe(r,e.SEED_INSIGHTS_GUARDRAIL,{seed:s},t);return i?a(E.Create,i):(n(E.Create,"Successfully seeded guardrail"),await u()),i?{error:i}:void 0}:void 0,allowViolation:e.ALLOW_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return o();const{error:c}=await xe(r,e.ALLOW_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return c?a(E.Update,c):(n(E.Update,"Successfully allowed violation"),await Promise.all([m(),s()])),c?{error:c}:void 0}:void 0,dismissViolation:e.DISMISS_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return o();const{error:c}=await xe(r,e.DISMISS_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return c?a(E.Update,c):(n(E.Update,"Successfully dismissed violation"),await Promise.all([m(),s()])),c?{error:c}:void 0}:void 0,reopenViolation:e.REOPEN_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return o();const{error:c}=await xe(r,e.REOPEN_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return c?a(E.Update,c):(n(E.Update,"Successfully reopened violation"),await Promise.all([m(),s()])),c?{error:c}:void 0}:void 0,updateSystemSettings:e.UPDATE_INSIGHTS_SYSTEM_SETTINGS?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await xe(r,e.UPDATE_INSIGHTS_SYSTEM_SETTINGS,{settings:s},t);return c?a(E.Update,c):(n(E.Update,"Successfully updated system settings"),await(async()=>{e.GET_INSIGHTS_SYSTEM_SETTINGS&&await Me(r,e.GET_INSIGHTS_SYSTEM_SETTINGS,void 0,t)})()),{data:i,error:c}}:void 0}},it=[],ct=e=>{if(e)return{clusters:[e],totalNamespaces:e.namespaces?.length??0,totalWorkloads:(e.namespaces??[]).reduce((e,t)=>e+(t.workloads?.length??0),0),lastUpdated:e.timestamp}},lt=[],dt=[],ut=(e,t)=>({...e,fields:e.fields.filter(({value:e})=>void 0!==e),currentStreamName:t}),mt=[],St=[],Et=()=>{const{operations:e,context:r}=Oe(),a=me(),o=((e,r)=>{const a=me(),{notifyError:o,notifySuccess:s,notifyPending:i,notifyReadonly:c}=we(I.Source),{selectedStreamName:l}=T(),{setProgress:d,resetProgress:u}=_(),{setConfiguredSources:m,setConfiguredFutureApps:S}=f(),p=(e,t)=>{const{progress:r}=_.getState();e>0&&d(y.Instrumenting,{total:(r[y.Instrumenting]?.total||0)+e,current:r[y.Instrumenting]?.current||0}),t>0&&d(y.Uninstrumenting,{total:(r[y.Uninstrumenting]?.total||0)+t,current:r[y.Uninstrumenting]?.current||0})},R=n(async()=>{const{error:t}=await Me(a,e.GET_WORKLOADS,Ze,r);t&&o(E.Read,t)},[a,e.GET_WORKLOADS,r,o]);return{useSources:()=>{const e=je("GET_WORKLOADS",Ze,{fetchPolicy:"cache-first"}),r=e.data?.workloads;return{items:t(()=>r?rt(r):et,[r]),loading:e.loading,refetch:R}},fetchAll:R,fetchByTargets:async(t,n)=>{const s=!!n?.slim,i=t.map(e=>N(e,I.Source)).filter(e=>e.namespace&&e.name&&e.kind);if(0===i.length)return;if(i.length>50)return void await R();const c=s&&e.GET_WORKLOADS_BY_IDS_SLIM?e.GET_WORKLOADS_BY_IDS_SLIM:e.GET_WORKLOADS_BY_IDS,{error:l}=await Me(a,c,{ids:i.map(({namespace:e,kind:t,name:r,region:a})=>({namespace:e,kind:t,name:r,region:a||void 0}))},r);l?o(E.Read,l):await R()},fetchById:async t=>{const{data:n,error:s}=await Me(a,e.GET_WORKLOADS_BY_IDS,{ids:[{namespace:t.namespace,kind:t.kind,name:t.name,...t.region?{region:t.region}:{}}]},r);if(s)return void o(E.Read,s);const i=n?.workloadsByIds?.find(e=>e.id.namespace===t.namespace&&e.id.kind===t.kind&&e.id.name===t.name&&(e.id.region??"")===(t.region??""));return i?tt(i):void 0},fetchLibraries:async t=>Me(a,e.GET_SOURCE_LIBRARIES,t,r),fetchPeerSources:async t=>Me(a,e.GET_PEER_SOURCES,{serviceName:t},r),usePeerSources:(e,t)=>je("GET_PEER_SOURCES",e,t),persist:async(t,n)=>{if(r.isReadonly)return c();const{data:s}=await Me(a,e.GET_WORKLOADS,Ze,r,"cache-first"),d=rt(s?.workloads??et),{payload:I,isEmpty:T}=Je(t,d,l,p),{payload:_,isEmpty:f}=Xe(n,l);let N=!1;T||(N=!0,i("Persisting sources...")),f||N||i("Persisting namespaces...");const{error:A}=await xe(a,e.PERSIST_SOURCES,I,r);if(A&&(u(y.Instrumenting),u(y.Uninstrumenting),o(E.Update,A)),e.PERSIST_NAMESPACES){const{error:t}=await xe(a,e.PERSIST_NAMESPACES,_,r);t&&o(E.Update,t)}m({}),S({})},persistV2:async t=>{if(r.isReadonly)return c(),{error:"readonly"};const n=[];for(const[o,s]of Object.entries(t)){const t={sources:[]},i={namespaces:[]};for(const e of s)e.name&&e.kind?t.sources.push(e):i.namespaces.push(e);const c=o&&o!==A?{...r,proxyID:o}:r,l=e=>o&&o!==A?`${o}: ${e}`:e;if(i.namespaces.length>0&&e.PERSIST_NAMESPACES){const{error:t}=await xe(a,e.PERSIST_NAMESPACES,i,c);t&&n.push(l(t))}if(t.sources.length>0){const{error:r}=await xe(a,e.PERSIST_SOURCES,t,c);r&&n.push(l(r))}}return n.length?{error:n.join(", ")}:void 0},update:async(t,n)=>{if(r.isReadonly)return c();i("Updating source...");const d={sourceId:t,patchSourceRequest:{...n,currentStreamName:l}},{data:u,error:m}=await xe(a,e.UPDATE_SOURCE,d,r);m?o(E.Update,m,t):u?.updateK8sActualSource&&s(E.Update,`Successfully updated "${t.name}" source`,t)},restartWorkloads:async t=>{if(r.isReadonly)return c();i("Restarting sources...");const{data:n,error:l}=await xe(a,e.RESTART_WORKLOADS,{sourceIds:t},r);l?o(E.Update,l):n?.restartWorkloads&&s(E.Update,`Successfully restarted ${t.length} sources`)},restartPod:async(t,n)=>{if(r.isReadonly)return c();i("Restarting pod...");const{data:l,error:d}=await xe(a,e.RESTART_POD,{namespace:t,name:n},r);d?o(E.Update,d):l?.restartPod&&s(E.Update,`Successfully restarted pod ${t}/${n}`)},recoverFromRollback:async t=>{if(r.isReadonly)return c();i("Recovering from rollback...");const{data:n,error:l}=await xe(a,e.RECOVER_FROM_ROLLBACK,{sourceId:t},r);l?o(E.Update,l,t):n?.recoverFromRollbackForWorkload&&s(E.Update,"Successfully triggered recovery from rollback")}}})(e,r),i=((e,t)=>{const r=me(),{notifyError:a,notifySuccess:n,notifyReadonly:o}=we(I.Destination),{selectedStreamName:s}=T(),i=async()=>{const{error:n}=await Me(r,e.GET_DESTINATIONS,void 0,t);n&&a(E.Read,n)};return{useDestinations:()=>{const e=je("GET_DESTINATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.destinations??e.data?.destinations??dt,loading:e.loading,refetch:i}},useDestinationCategories:()=>{const e=je("GET_DESTINATION_CATEGORIES",void 0);return{data:e.data,loading:e.loading}},usePotentialDestinations:()=>{const e=je("GET_POTENTIAL_DESTINATIONS",void 0);return{data:e.data,loading:e.loading}},fetchAll:i,testConnection:async a=>{const{data:n}=await xe(r,e.TEST_DESTINATION_CONNECTION,{destination:ut(a,s)},t);return n},create:async c=>{if(t.isReadonly)return o();const{error:l}=await xe(r,e.CREATE_DESTINATION,{destination:ut(c,s)},t);l?a(E.Create,l):(n(E.Create,`Successfully created "${c.type}" destination`),await i())},update:async(c,l)=>{if(t.isReadonly)return o();const{data:d,error:u}=await xe(r,e.UPDATE_DESTINATION,{id:c,destination:ut(l,s)},t);u?a(E.Update,u,c):d?.updateDestination&&(n(E.Update,`Successfully updated "${l.type}" destination`,c),await i())},remove:async c=>{if(t.isReadonly)return o();const{data:l}=await Me(r,e.GET_DESTINATIONS,void 0,t,"cache-first"),d=l?.computePlatform?.destinations??l?.destinations??dt,u=d.find(e=>h(e)===c)?.destinationType?.type,{error:m}=await xe(r,e.DELETE_DESTINATION,{id:c,currentStreamName:s},t);m?a(E.Delete,m,c):(n(E.Delete,`Successfully deleted "${u??c}" destination`,c),await i())}}})(e,r),c=((e,r)=>{const a=me(),{notifyError:n,notifySuccess:o,notifyReadonly:s}=we(I.Action),i=async()=>{const{error:t}=await Me(a,e.GET_ACTIONS,void 0,r);t&&n(E.Read,t)};return{useActions:()=>{const e=je("GET_ACTIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.actions??e.data?.actions??at,loading:e.loading,refetch:i}},useActionTypes:()=>{const e=je("GET_ACTION_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:t(()=>R(e.data)||nt,[e.data]),loading:e.loading}},fetchAll:i,create:async t=>{if(r.isReadonly)return s(),{error:d.READONLY_WARNING};if(!e.CREATE_ACTION)return{error:"Action creation is not supported"};const{error:c}=await xe(a,e.CREATE_ACTION,{action:t},r);return c?n(E.Create,c):(o(E.Create,`Successfully created "${t.type}" action`),await i()),c?{error:c}:void 0},update:async(t,c)=>{if(r.isReadonly)return s();if(!e.UPDATE_ACTION)return;const{error:l}=await xe(a,e.UPDATE_ACTION,{id:t,action:c},r);l?n(E.Update,l,t):(o(E.Update,`Successfully updated "${c.type}" action`,t),await i())},remove:async(t,c)=>{if(r.isReadonly)return s();if(!e.DELETE_ACTION)return;const{error:l}=await xe(a,e.DELETE_ACTION,{id:t,actionType:c},r);l?n(E.Delete,l,t):(o(E.Delete,`Successfully deleted "${c}" action`,t),await i())}}})(e,r),u=((e,r)=>{const a=me(),{notifyError:n,notifySuccess:o,notifyReadonly:s}=we(I.InstrumentationRule),i=async()=>{const{error:t}=await Me(a,e.GET_INSTRUMENTATION_RULES,void 0,r);t&&n(E.Read,t)};return{useRules:()=>{const e=je("GET_INSTRUMENTATION_RULES",void 0,{fetchPolicy:"cache-first"});return{items:t(()=>(e.data?.computePlatform?.instrumentationRules??e.data?.instrumentationRules??[]).map(P),[e.data]),loading:e.loading,refetch:i}},useRuleTypes:()=>{const e=je("GET_INSTRUMENTATION_RULE_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:t(()=>D(e.data)||St,[e.data]),loading:e.loading}},fetchAll:i,create:async(t,c)=>{if(r.isReadonly)return s();if(!e.CREATE_INSTRUMENTATION_RULE)return;const{error:l}=await xe(a,e.CREATE_INSTRUMENTATION_RULE,{instrumentationRule:L(t)},r);l?n(E.Create,l):(o(E.Create,`Successfully created${c?` "${c}"`:""} rule`),await i())},update:async(t,c,l)=>{if(r.isReadonly)return s();if(!e.UPDATE_INSTRUMENTATION_RULE)return;const{error:d}=await xe(a,e.UPDATE_INSTRUMENTATION_RULE,{ruleId:t,instrumentationRule:L(c)},r);d?n(E.Update,d,t):(o(E.Update,`Successfully updated${l?` "${l}"`:""} rule`,t),await i())},remove:async(t,c)=>{if(r.isReadonly)return s();if(!e.DELETE_INSTRUMENTATION_RULE)return;const{error:l}=await xe(a,e.DELETE_INSTRUMENTATION_RULE,{ruleId:t},r);l?n(E.Delete,l,t):(o(E.Delete,`Successfully deleted${c?` "${c}"`:""} rule`,t),await i())}}})(e,r),S=((e,t)=>{const r=me(),{addNotification:a}=l(),{setDataStreams:n}=T(),o=(e,t)=>a({type:m.Error,title:e,message:t}),i=async()=>{const{data:a,error:s}=await Me(r,e.GET_DATA_STREAMS,void 0,t);if(s)o(E.Read,s);else if(a){const e=a.computePlatform?.dataStreams??a.dataStreams??[];n(e)}},c=e.CREATE_DATA_STREAM?async n=>{if(t.isReadonly)return Ue(a);const{error:s}=await xe(r,e.CREATE_DATA_STREAM,{stream:n},t);s?o(E.Create,s):await i()}:void 0;return{useDataStreams:()=>{const e=je("GET_DATA_STREAMS",void 0,{fetchPolicy:"cache-first"}),t=e.data?.computePlatform?.dataStreams??e.data?.dataStreams??lt;return s(()=>{n(t)},[JSON.stringify(t.map(e=>e.name))]),{items:t,loading:e.loading,refetch:i}},fetchAll:i,create:c,update:async(n,s)=>{if(t.isReadonly)return Ue(a);const{error:c}=await xe(r,e.UPDATE_DATA_STREAM,{id:n,dataStream:s},t);c?o(E.Update,c):await i()},remove:async n=>{if(t.isReadonly)return Ue(a);const{error:s}=await xe(r,e.DELETE_DATA_STREAM,{id:n},t);s?o(E.Delete,s):await i()}}})(e,r),g=((e,t)=>{const r=me(),{notifyError:a,notifyReadonly:n}=we(I.Namespace),o=async()=>{const n=await Me(r,e.GET_NAMESPACES_WITH_WORKLOADS,void 0,t);return n.error&&a(E.Read,n.error),n};return{useNamespaces:e=>{const t=je("GET_NAMESPACES_WITH_WORKLOADS",void 0,{fetchPolicy:"cache-and-network",skip:e?.skip});return{items:t.data?.namespaces??it,loading:t.loading,refetch:o}},fetchAll:o,persist:async o=>{if(t.isReadonly)return n();const{error:s}=await xe(r,e.PERSIST_NAMESPACES,o,t);return s&&a(E.Update,s),s?{error:s}:void 0}}})(e,r),w=((e,t)=>{const r=me(),{notifyError:a}=we(I.Source);return{fetch:async n=>{const o=await Me(r,e.GET_K8S_MANIFEST,n,t);return o.error&&a(E.Read,o.error),o}}})(e,r),U=((e,t)=>{const r=me(),{notifyError:a,notifySuccess:n,notifyReadonly:o}=we(I.Source);return{useEffectiveConfig:(e,t)=>je("GET_EFFECTIVE_CONFIG",e,t),useConfigYamls:e=>je("GET_CONFIG_YAMLS",void 0,e),getEffectiveConfig:async a=>e.GET_EFFECTIVE_CONFIG?Me(r,e.GET_EFFECTIVE_CONFIG,{id:a},t):{error:"GET_EFFECTIVE_CONFIG not configured"},applyConfigurations:e.UPDATE_REMOTE_CONFIG?async(n,s)=>{if(t.isReadonly)return o();if(!s.length)return{error:"No connections selected"};const i={formData:n,connectionIds:s},c=e.UPDATE_REMOTE_CONFIG;let l;return 1===s.length?({error:l}=await xe(r,c,i,t)):({error:l}=await Ve(r,c,s,i,t)),l&&a(E.Update,l),l?{error:l}:void 0}:void 0,getConfigYamls:e.GET_CONFIG_YAMLS?async()=>Me(r,e.GET_CONFIG_YAMLS,void 0,t):void 0,updateLocalUiConfig:e.UPDATE_LOCAL_UI_CONFIG?async s=>{if(t.isReadonly)return o();const{error:i}=await xe(r,e.UPDATE_LOCAL_UI_CONFIG,{config:s},t);return i?a(E.Update,i):n(E.Update,"Local UI configuration updated successfully"),i?{error:i}:void 0}:void 0,resetLocalUiConfigToDefaults:e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS?async()=>{if(t.isReadonly)return o();const{error:s}=await xe(r,e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS,void 0,t);return s?a(E.Update,s):n(E.Update,"Local UI configuration reset to factory defaults"),s?{error:s}:void 0}:void 0}})(e,r),b=((e,t)=>{const r=me(),{apolloConfig:a}=Oe();return{fetchDescribeOdigos:e.GET_DESCRIBE_ODIGOS?async()=>Me(r,e.GET_DESCRIBE_ODIGOS,void 0,t):void 0,fetchDescribeSource:e.GET_DESCRIBE_SOURCE?async a=>Me(r,e.GET_DESCRIBE_SOURCE,a,t):void 0,downloadDiagnose:e.GET_DIAGNOSE?async(n,o)=>{const s=await Me(r,e.GET_DIAGNOSE,{input:n,dryRun:o?.dryRun??!1},t),i=s?.data?.stats?.fileCount??0;return!s.error&&i>0&&!o?.dryRun&&await(async e=>{const t=(e=>{try{return new URL("/diagnose/download",e).toString()}catch{return null}})(e.httpUrl);if(t)try{const[r,a]=await Promise.all([Promise.resolve(e.authHeader?.()??{}),Promise.resolve(e.csrfHeader?.()??{})]),n=await fetch(t,{credentials:e.credentials??"same-origin",headers:{...r,...a}});if(!n.ok)throw new Error(`Failed to download diagnose archive: ${n.status} ${n.statusText}`);((e,t)=>{if("undefined"==typeof document)return;const r=URL.createObjectURL(e),a=document.createElement("a");a.href=r,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(r)})(await n.blob(),`odigos-diagnose-${Date.now()}.tar.gz`)}catch(e){}})(a),s}:void 0}})(e,r),F=((e,t)=>{const r=me(),{notifyError:a,notifyReadonly:n}=we(I.Source),o=async()=>{e.GET_TOKENS&&await Me(r,e.GET_TOKENS,void 0,t)};return{useTokens:()=>{const e=je("GET_TOKENS",void 0,{fetchPolicy:"cache-first"});return{items:e.data??ze,loading:e.loading,refetch:o}},updateToken:e.UPDATE_TOKEN?async o=>{if(t.isReadonly)return n();const{error:s}=await xe(r,e.UPDATE_TOKEN,{token:o},t);return s&&a(E.Update,s),s?{error:s}:void 0}:void 0}})(e,r),k=((e,t)=>{const r=me();return{useMetrics:e=>je("GET_METRICS",void 0,e),fetch:async()=>Me(r,e.GET_METRICS,void 0,t)}})(e,r),H=((e,t)=>{const r=me();return{useServiceMap:e=>je("GET_SERVICE_MAP",void 0,e),fetch:e.GET_SERVICE_MAP?async()=>Me(r,e.GET_SERVICE_MAP,void 0,t):void 0}})(e,r),M=((e,t)=>{const r=me();return{useSlots:e=>je("GET_PROFILING_SLOTS",void 0,e),useSourceProfiling:(e,t)=>je("GET_SOURCE_PROFILING",e,t),useHotFunctions:(e,t)=>je("GET_PROFILE_HOT_FUNCTIONS",e,t),fetchSlots:e.GET_PROFILING_SLOTS?async()=>Me(r,e.GET_PROFILING_SLOTS,void 0,t):void 0,fetchSourceProfiling:e.GET_SOURCE_PROFILING?async a=>Me(r,e.GET_SOURCE_PROFILING,a,t):void 0,enableProfiling:e.ENABLE_SOURCE_PROFILING?async a=>xe(r,e.ENABLE_SOURCE_PROFILING,a,t):void 0,fetchHotFunctions:e.GET_PROFILE_HOT_FUNCTIONS?async a=>Me(r,e.GET_PROFILE_HOT_FUNCTIONS,a,t):void 0,clearProfileCache:e.CLEAR_PROFILE_CACHE?async()=>xe(r,e.CLEAR_PROFILE_CACHE,void 0,t):void 0}})(e,r),x=((e,t)=>{const r=me();return{useGatewayInfo:e=>je("GET_GATEWAY_INFO",void 0,e),useGatewayPods:e=>je("GET_GATEWAY_PODS",void 0,e),useNodeCollectorInfo:e=>je("GET_NODE_COLLECTOR_INFO",void 0,e),useNodeCollectorPods:e=>je("GET_NODE_COLLECTOR_PODS",void 0,e),usePodInfo:(e,t)=>je("GET_COLLECTOR_POD_INFO",e,t),getGatewayInfo:e.GET_GATEWAY_INFO?async()=>Me(r,e.GET_GATEWAY_INFO,void 0,t):void 0,getGatewayPods:e.GET_GATEWAY_PODS?async()=>Me(r,e.GET_GATEWAY_PODS,void 0,t):void 0,getNodeCollectorInfo:e.GET_NODE_COLLECTOR_INFO?async()=>Me(r,e.GET_NODE_COLLECTOR_INFO,void 0,t):void 0,getNodeCollectorPods:e.GET_NODE_COLLECTOR_PODS?async()=>Me(r,e.GET_NODE_COLLECTOR_PODS,void 0,t):void 0,getExtendedPodInfo:e.GET_COLLECTOR_POD_INFO?async(a,n)=>Me(r,e.GET_COLLECTOR_POD_INFO,{namespace:a,name:n},t):void 0}})(e,r),V=((e,t)=>{const r=me(),{notifyError:a,notifySuccess:n,notifyReadonly:o}=we(I.SamplingRule),s=async()=>{e.GET_SAMPLING_RULES&&await Me(r,e.GET_SAMPLING_RULES,void 0,t)},i=(e,i)=>e?async c=>{if(t.isReadonly)return o();const{error:l}=await xe(r,e,c,t);return l?a(i,l):(n(E.Create,"Successfully created sampling rule"),await s()),l?{error:l}:void 0}:void 0,c=(e,i)=>e?async(c,l)=>{if(t.isReadonly)return o();const{error:d}=await xe(r,e,{samplingId:l.samplingId,ruleId:c,rule:l.rule},t);return d?a(i,d):(n(E.Update,"Successfully updated sampling rule"),await s()),d?{error:d}:void 0}:void 0,l=e=>e?async(i,c)=>{if(t.isReadonly)return o();const{error:l}=await xe(r,e,{samplingId:c,ruleId:i},t);return l?a(E.Delete,l):(n(E.Delete,"Successfully deleted sampling rule"),await s()),l?{error:l}:void 0}:void 0;return{useSamplingRules:()=>{const e=je("GET_SAMPLING_RULES",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.samplingRules??e.data?.samplingRules??ot,k8sHealthProbesConfig:e.data?.computePlatform?.k8sHealthProbesConfig??e.data?.k8sHealthProbesConfig??null,loading:e.loading,refetch:s}},fetchAll:e.GET_SAMPLING_RULES?async()=>Me(r,e.GET_SAMPLING_RULES,void 0,t):void 0,createNoisy:i(e.CREATE_NOISY_OPERATION_RULE,E.Create),updateNoisy:c(e.UPDATE_NOISY_OPERATION_RULE,E.Update),deleteNoisy:l(e.DELETE_NOISY_OPERATION_RULE),createHighlyRelevant:i(e.CREATE_HIGHLY_RELEVANT_OPERATION_RULE,E.Create),updateHighlyRelevant:c(e.UPDATE_HIGHLY_RELEVANT_OPERATION_RULE,E.Update),deleteHighlyRelevant:l(e.DELETE_HIGHLY_RELEVANT_OPERATION_RULE),createCostReduction:i(e.CREATE_COST_REDUCTION_RULE,E.Create),updateCostReduction:c(e.UPDATE_COST_REDUCTION_RULE,E.Update),deleteCostReduction:l(e.DELETE_COST_REDUCTION_RULE),updateK8sHealthProbesConfig:e.UPDATE_LOCAL_UI_SAMPLING_CONFIG?async n=>{if(t.isReadonly)return o();const{error:i}=await xe(r,e.UPDATE_LOCAL_UI_SAMPLING_CONFIG,{config:{k8sHealthProbesSampling:n}},t);return i?a(E.Update,i):await s(),i?{error:i}:void 0}:void 0}})(e,r),Y=((e,t)=>{const r=me(),{notifyError:a,notifySuccess:n,notifyReadonly:o}=we(I.Recommendation),s=async()=>{e.GET_RECOMMENDATIONS&&await Me(r,e.GET_RECOMMENDATIONS,void 0,t)};return{useRecommendations:()=>{const e=je("GET_RECOMMENDATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.recommendations??e.data?.recommendations??mt,loading:e.loading,refetch:s}},fetchAll:e.GET_RECOMMENDATIONS?async()=>Me(r,e.GET_RECOMMENDATIONS,void 0,t):void 0,setDismissed:e.SET_RECOMMENDATION_DISMISSED?async(i,c)=>{if(t.isReadonly)return o(),{error:d.READONLY_WARNING};const{error:l}=await xe(r,e.SET_RECOMMENDATION_DISMISSED,{name:i,dismissed:c},t);return l?a(E.Update,l):(n(E.Update,c?G:C),await s()),l?{error:l}:void 0}:void 0,applyRemediation:e.APPLY_RECOMMENDATION_REMEDIATION?async(i,c)=>{if(t.isReadonly)return o(),{error:d.READONLY_WARNING};const{data:l,error:u}=await xe(r,e.APPLY_RECOMMENDATION_REMEDIATION,{recommendationType:i,remediationType:c},t),m=u||!l?.applyRecommendationRemediation;return m?a(E.Update,u||O):(n(E.Update,v),await s()),m?{error:u||O}:void 0}:void 0}})(e,r),K=((e,r)=>{const a=me();return{useSnapshots:()=>{const e=r.proxyID,a=!!e,o=je("GET_ALL_CLUSTER_SNAPSHOTS",void 0,{fetchPolicy:"cache-and-network",skip:a}),s=je("GET_CLUSTER_SNAPSHOT",e?{clusterId:e}:void 0,{fetchPolicy:"cache-and-network",skip:!a}),i=t(()=>a?ct(s.data):o.data,[a,s.data,o.data]),c=a?s.loading:o.loading,l=n(async()=>{if(!a)return o.refetch();const{data:e}=await s.refetch();return{data:ct(e)}},[a,o.refetch,s.refetch]);return{data:i,loading:c,pending:c&&!i,unsupported:a?s.unsupported:o.unsupported,refetch:l}},getAllClusterSnapshots:e.GET_ALL_CLUSTER_SNAPSHOTS?async()=>Me(a,e.GET_ALL_CLUSTER_SNAPSHOTS,void 0,r):void 0,getClusterSnapshot:e.GET_CLUSTER_SNAPSHOT?async t=>Me(a,e.GET_CLUSTER_SNAPSHOT,{clusterId:t},r):void 0}})(e,r);return{sourcesApi:o,destinationsApi:i,actionsApi:c,instrumentationRulesApi:u,dataStreamsApi:S,namespacesApi:g,k8sManifestApi:w,configApi:U,describeApi:b,tokensApi:F,metricsApi:k,serviceMapApi:H,profilingApi:M,collectorsApi:x,samplingApi:V,recommendationsApi:Y,snapshotsApi:K,insightsApi:st(e,r),capabilities:t(()=>((e,t)=>{const r=t.platformType===p.K8s,a=r,n=r,o=t.platformType===p.Vm,s=!o,i=!(t.platformType===p.Connector);return{canBulkPersistSources:s&&!!e.PERSIST_SOURCES,canInstrumentNamespaces:n&&!!e.PERSIST_NAMESPACES,canFetchSnapshots:a&&!!e.GET_ALL_CLUSTER_SNAPSHOTS,canRecoverFromRollback:a&&!!e.RECOVER_FROM_ROLLBACK,canRestartWorkloads:a&&!!e.RESTART_WORKLOADS,canFetchPeerSources:!!e.GET_PEER_SOURCES,canFetchSourceLibraries:!!e.GET_SOURCE_LIBRARIES,canFetchK8sManifest:a&&!!e.GET_K8S_MANIFEST,canCreateDestination:!!e.CREATE_DESTINATION,canTestConnection:s&&!!e.TEST_DESTINATION_CONNECTION,canFetchDestinationCategories:!!e.GET_DESTINATION_CATEGORIES,canFetchPotentialDestinations:s&&!!e.GET_POTENTIAL_DESTINATIONS,canManageActions:i&&!!e.GET_ACTIONS,canCreateAction:i&&!!e.CREATE_ACTION,canFetchActionTypes:i&&!!e.GET_ACTION_TYPES,canManageInstrumentationRules:i&&!!e.GET_INSTRUMENTATION_RULES,canCreateInstrumentationRule:i&&!!e.CREATE_INSTRUMENTATION_RULE,canFetchInstrumentationRuleTypes:i&&!!e.GET_INSTRUMENTATION_RULE_TYPES,canApplyEffectiveConfig:s&&!!e.UPDATE_REMOTE_CONFIG,canFetchEffectiveConfig:!!e.GET_EFFECTIVE_CONFIG,canFetchConfigYamls:!!e.GET_CONFIG_YAMLS,canFetchProfiling:a&&!!e.GET_PROFILING_SLOTS||o&&(!!e.GET_SOURCE_PROFILING||!!e.GET_PROFILE_HOT_FUNCTIONS),canFetchCollectorInfo:a&&!!e.GET_GATEWAY_INFO,canManageSamplingRules:!!e.GET_SAMPLING_RULES,canManageInsightsPolicies:!!e.GET_INSIGHTS_POLICIES,canFetchInsights:!!e.GET_INSIGHTS_FINDINGS,canManageRecommendations:a&&!!e.GET_RECOMMENDATIONS}})(e,r),[e,r]),resetCache:n(async()=>{await a.cache.reset()},[a])}},It={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},pt=a(null),Tt=e=>e?.length?e.map(e=>!e.fromSources?.length&&e.from?{...e,fromSources:[e.from]}:e):e,_t=(e,t)=>{const r=U(e??{}),a=r[F.ExtractAttribute];var n;a?.extractions?.length&&(a.extractions=a.extractions.map(e=>{const t=e;return{...t,method:t.method||(t.regex?.trim()?"regex":"preset")}})),r[F.LabelsAttributes]&&(r[F.LabelsAttributes]=Tt(r[F.LabelsAttributes])),r[F.AnnotationsAttributes]&&(r[F.AnnotationsAttributes]=Tt(r[F.AnnotationsAttributes])),r[F.UrlTemplatizationRulesGroups]&&(r[F.UrlTemplatizationRulesGroups]=(n=r[F.UrlTemplatizationRulesGroups],n?.length?n.map(e=>{const t=e.filterK8sWorkloadKind,r=e.filterK8sWorkloadName;return e.workloadFilters?.length||!t&&!r?e:{...e,workloadFilters:[{kind:t,name:r||void 0}]}}):n));const o=new Set((t?.fields||[]).filter(e=>e.componentType===k.SourceScopes).map(e=>e.name));return void 0!==r[F.Scopes]&&o.add(F.Scopes),o.forEach(e=>{const t=e;r[t]=re(r[t])}),r},ft="All row fields are required",yt="At least one row is required",Nt=(e,t)=>!!e&&t.every(t=>{const r=e[t];return Array.isArray(r)?r.length>0:!("string"==typeof(a=r)?!a.trim():M(a));var a}),At=({children:r,sourceOptions:a=[],namespaceOptions:s=[]})=>{const[i,c]=o(null),l=w(It),u=n(e=>{l.resetFormData(),l.handleErrorChange(void 0,void 0,{}),e?.type&&l.handleFormChange("type",e.type),c(e)},[]),m=n((e,t)=>{const r=t??(a=e.type,b.find(e=>e.type===a)??null);var a;l.resetFormData((({type:e,name:t,notes:r,disabled:a,signals:n,fields:o},s)=>({type:e,name:t||"",notes:r||"",disabled:!!a,signals:n??[],fields:_t(o,s)}))(e,r)),l.handleErrorChange(void 0,void 0,{}),c(r)},[]),S=n(()=>{if(!i)return{errorMessage:"No action type selected",preparedFormData:U(It)};const e=((e,t)=>{const r=U(e),a=r.fields||{},n=a[F.UrlTemplatizationRulesGroups];n?.length&&(a[F.UrlTemplatizationRulesGroups]=n.map(e=>({...e,templatizationRules:(e.templatizationRules||[]).filter(e=>!!e.template?.trim())})));const o=a[F.AttributeNamesToDelete];o?.length&&(a[F.AttributeNamesToDelete]=o.filter(e=>!!e?.trim()));const s=a[F.Renames];if(s){const e=Array.isArray(s)?s.map(e=>[e?.key??"",e?.value??""]):Object.entries(s);a[F.Renames]=Object.fromEntries(e.filter(([e,t])=>!!e?.trim()&&!!t?.trim()))}const i=new Set((t?.fields||[]).filter(e=>e.componentType===k.SourceScopes).map(e=>e.name));void 0!==a[F.Scopes]&&i.add(F.Scopes),i.forEach(e=>{const t=a[e];void 0!==t&&(a[e]=te(t)?null:t)});const c=a[F.ExtractAttribute];return c?.extractions?.length&&(a[F.ExtractAttribute]={extractions:c.extractions.map(e=>{const t=e,r=t.method||(t.regex?.trim()?"regex":"preset"),a=t.targetAttributeName?.trim()||"";if("regex"===r)return{targetAttributeName:a,lookupKey:"",regex:t.regex?.trim()||""};const n={targetAttributeName:a,lookupKey:t.lookupKey?.trim()||"",regex:""};return t.dataFormat&&(n.dataFormat=t.dataFormat),n}).filter(e=>!!(e.targetAttributeName||e.lookupKey||e.dataFormat||e.regex))}),r.fields=a,r})(l.formData,i),t={};return M(e.signals)&&(t.signals=d.FIELD_IS_REQUIRED),i.type&&Object.assign(t,((e,t,r)=>{const a={},n=t.fields||{},o=r.fields||{};switch(e){case H.K8sAttributes:{const e=!(n[F.CollectContainerAttributes]||n[F.CollectReplicaSetAttributes]||n[F.CollectWorkloadId]||n[F.CollectClusterId]),t=!n[F.LabelsAttributes]?.length,r=!n[F.AnnotationsAttributes]?.length;e&&t&&r&&(a[F.CollectContainerAttributes]="Enable at least one option or add a label/annotation row");const o=n[F.LabelsAttributes];o?.some(e=>!Nt(e,["labelKey","attributeKey","fromSources"]))&&(a[F.LabelsAttributes]=ft);const s=n[F.AnnotationsAttributes];s?.some(e=>!Nt(e,["annotationKey","attributeKey","fromSources"]))&&(a[F.AnnotationsAttributes]=ft);break}case H.AddClusterInfo:{const e=n[F.ClusterAttributes];e?.length?e.some(e=>!Nt(e,["attributeName","attributeStringValue"]))&&(a[F.ClusterAttributes]=ft):a[F.ClusterAttributes]=yt;break}case H.DeleteAttributes:{const e=o[F.AttributeNamesToDelete]||[],t=n[F.AttributeNamesToDelete]||[];t.length?e.length>t.length&&(a[F.AttributeNamesToDelete]=ft):a[F.AttributeNamesToDelete]=e.length?ft:yt;break}case H.RenameAttributes:{const e=Object.entries(o[F.Renames]||{}),t=Object.entries(n[F.Renames]||{}),r=e.some(([e,t])=>!e?.trim()||!t?.trim());t.length?r&&(a[F.Renames]=ft):a[F.Renames]=e.length?ft:yt;break}case H.PiiMasking:{const e=n[F.PiiCategories];e?.length||(a[F.PiiCategories]="Select at least one attribute to mask");break}case H.URLTemplatization:{const e=n[F.UrlTemplatizationRulesGroups];(!e?.length||e.some(e=>!e.templatizationRules?.length))&&(a[F.UrlTemplatizationRulesGroups]="Each rule group needs at least one non-blank template");break}case H.ExtractAttribute:{const e=n[F.ExtractAttribute]?.extractions||[],t=o[F.ExtractAttribute]?.extractions||[];if(e.length)if(e.some(e=>{if(!e.targetAttributeName?.trim())return!0;const t=!!e.regex?.trim(),r=!!e.lookupKey?.trim();return r!==!!e.dataFormat||t===r}))a[F.ExtractAttribute]="Each row needs a target attribute name and either a regex or both lookup key and data format";else{const t=new Set;e.some(e=>{const r=e.targetAttributeName?.trim()||"";return!!t.has(r)||(t.add(r),!1)})&&(a[F.ExtractAttribute]="Each new span attribute name must be unique")}else a[F.ExtractAttribute]=t.length?ft:yt;break}}return a})(i.type,e,l.formData)),l.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[l,i]),E=t(()=>({selectedOption:i,onSelectOption:u,loadAction:m,genericForm:l,validateFormData:S,sourceOptions:a,namespaceOptions:s}),[i,u,m,l,S,a,s]);return e(pt.Provider,{value:E,children:r})},Rt=()=>{const e=r(pt);if(!e)throw new Error("useActionFormContext must be used within an ActionFormContextProvider");return e},gt={provider:"",permission:"",customCapabilities:{},authMethod:"",setupMethod:"",accountId:"",credentials:{},accessToken:"",secretId:"",name:""},ht=a(null),Ot=({children:r,providers:a=[]})=>{const o=w(gt),s=n(()=>{const e=U(o.formData);return e.provider?e.permission?{errorMessage:void 0,preparedFormData:e}:{errorMessage:"Please select a permission level",preparedFormData:e}:{errorMessage:"Please select a provider",preparedFormData:e}},[o]),i=t(()=>({providers:a,genericForm:o,validateFormData:s}),[a,o,s]);return e(ht.Provider,{value:i,children:r})},vt=()=>{const e=r(ht);if(!e)throw new Error("useCloudConnectorFormContext must be used within a CloudConnectorFormContextProvider");return e},Gt={name:""},Ct=a(null),Lt=({children:r,defaultExcludeName:a=""})=>{const{dataStreams:s}=T(),[c,l]=o(void 0),[u,m]=o(a),[S,E]=o(void 0),[I,p]=o(null),_=i(null),f=w(Gt),y=n(e=>{f.resetFormData({name:e}),f.handleErrorChange(void 0,void 0,{}),l(void 0),m(e),E(e),p(null),_.current=null},[]),N=n(()=>{const e=U(f.formData),t=(e=>{const t={};return e.name?x(e.name)||(t.name=d.ILLEGAL_K8S_LABEL):t.name=d.FIELD_IS_REQUIRED,t})(e);f.handleErrorChange(void 0,void 0,t);const r=Object.keys(t).length>0?d.REQUIRED_FIELDS:void 0;return l(r),{errorMessage:r,preparedFormData:e}},[f]),A=n(async e=>{const{errorMessage:t,preparedFormData:r}=N();if(t)return;const a=s.find(e=>e.name===r.name&&e.name!==u);if(a)return _.current=e,void p({preparedFormData:r,existingName:a.name,editingName:S});await e(r)},[N,s,u,S]),R=n(async()=>{const e=_.current,t=I?.preparedFormData;_.current=null,p(null),e&&t&&await e(t)},[I]),g=n(()=>{_.current=null,p(null)},[]),h=t(()=>({genericForm:f,loadDataStream:y,editingName:S,validateFormData:N,requestSubmit:A,pendingMerge:I,confirmMerge:R,cancelMerge:g,errorMessage:c,excludeName:u,setExcludeName:m}),[f,y,S,N,A,I,R,g,c,u]);return e(Ct.Provider,{value:h,children:r})},Dt=()=>{const e=r(Ct);if(!e)throw new Error("useDataStreamFormContext must be used within a DataStreamFormContextProvider");return e},Pt={type:"",name:"",currentStreamName:"",disabled:!1,exportedSignals:{logs:!1,metrics:!1,traces:!1,profiles:!1},fields:[]},wt={activeForm:null,onChangeActiveForm:()=>{},loadDestination:()=>{},genericForm:void 0,validateFormData:()=>({isOk:!1,preparedFormData:U(Pt)}),unsavedDestinations:[],thisUnsavedDestination:void 0,setUnsavedDestinations:()=>{},addUnsavedDestination:()=>{},updateUnsavedDestination:()=>{},deleteUnsavedDestination:()=>{}},Ut=a(wt),bt=e=>e.filter(e=>!!e).map(e=>{const{name:t,componentType:r,componentProperties:a,displayName:n,initialValue:o,renderCondition:s}=e,i=r===k.Dropdown,c=$(a,{});return{componentType:r,renderCondition:s,name:t,title:n,value:o,placeholder:c.placeholder||(i?"Select an option":void 0),options:i&&Array.isArray(c.values)?c.values.map(e=>({id:e,label:e})):void 0,...c}}),Ft=({children:r})=>{const{selectedStreamName:a}=T(),{items:i}=Et().destinationsApi.useDestinations(),[c,l]=o(null),[u,m]=o(wt.unsavedDestinations),S=t(()=>"number"==typeof c?.unsavedIdx?u[c.unsavedIdx]:void 0,[c,u]),E=n((e,t)=>{c&&(m(t=>[...t,{...e,option:c.option}]),l(t?e=>e?{...e,listType:V.UNSAVED,unsavedIdx:u.length}:null:null))},[c,u.length]),I=n((e,t,r)=>{c&&(m(r=>r.map((r,a)=>a===e?{...r,...t,option:c.option}:r)),l(r?e=>e?{...e,listType:V.UNSAVED}:null:null))},[c]),p=n(e=>{m(t=>t.filter((t,r)=>r!==e)),l(null)},[]),_=w({...Pt,currentStreamName:a});s(()=>{if(!c)return;if(S)return void _.resetFormData({...S.formData});if(c.listType===V.EXISTS&&c.option.id){const e=i.find(e=>e.id===c.option.id);if(e)return void _.resetFormData({type:e.destinationType.type,name:e.name||e.destinationType.displayName,currentStreamName:a,disabled:!!e.disabled,exportedSignals:{logs:!!e.exportedSignals?.logs,metrics:!!e.exportedSignals?.metrics,traces:!!e.exportedSignals?.traces,profiles:!!e.exportedSignals?.profiles},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})}const e=Y(c.option.supportedSignals);_.resetFormData({type:c.option.type,name:c.option.displayName,currentStreamName:a,disabled:!1,exportedSignals:{logs:e.includes(K.Logs),metrics:e.includes(K.Metrics),traces:e.includes(K.Traces),profiles:e.includes(K.Profiles)},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})},[c,S]);const f=n(e=>{_.resetFormData(),_.handleErrorChange(void 0,void 0,{}),l(e?{...e,dynamicFields:e.option?.fields?bt(e.option.fields):[]}:null)},[]),y=n((e,t)=>{let r;for(const a of t){const t=a.items.find(t=>t.type===e.destinationType.type);if(t){r=t;break}}const a=$(e.fields,{}),n={id:e.id,type:e.destinationType.type,displayName:e.name||e.destinationType.displayName,selected:!0,testConnectionSupported:r?.testConnectionSupported??!1,supportedSignals:e.destinationType.supportedSignals,fields:r?r.fields.map(e=>({...e,initialValue:a[e.name]??e.initialValue})):[]},o=bt(n.fields);l({listType:V.EXISTS,option:n,dynamicFields:o})},[]),N=n(()=>{const e=U(_.formData),t={};return c?.dynamicFields.forEach(({name:r,required:a})=>{if(a){const a=e.fields.find(e=>e.key===r)?.value;M(a)&&(t[r]=d.FIELD_IS_REQUIRED)}}),W(e.exportedSignals).length||(t.exportedSignals=d.FIELD_IS_REQUIRED),_.handleErrorChange(void 0,void 0,t),{errorMessage:0===Object.keys(t).length?void 0:"Invalid form values",preparedFormData:e}},[_,c]);return e(Ut.Provider,{value:{activeForm:c,onChangeActiveForm:f,loadDestination:y,genericForm:_,validateFormData:N,unsavedDestinations:u,thisUnsavedDestination:S,setUnsavedDestinations:m,addUnsavedDestination:E,updateUnsavedDestination:I,deleteUnsavedDestination:p},children:r})},kt=()=>r(Ut),Ht={disabled:!1,ruleName:"",notes:"",sourceScopes:ae(),workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null,networkMetrics:null},Mt=a(null),xt=({children:r,sourceOptions:a=[],namespaceOptions:s=[]})=>{const[i,c]=o(null),l=w(Ht),d=n(e=>{l.resetFormData(),l.handleErrorChange(void 0,void 0,{}),c(e)},[]),u=n((e,t)=>{var r;l.resetFormData((({ruleName:e,notes:t,disabled:r,sourceScopes:a,instrumentationLibraries:n,payloadCollection:o,codeAttributes:s,headersCollection:i,customInstrumentations:c,networkMetrics:l,workloads:d})=>({ruleName:e||"",notes:t||"",disabled:!!r,sourceScopes:re(a),workloads:d??null,instrumentationLibraries:n??null,payloadCollection:o??null,codeAttributes:s??null,headersCollection:i??null,customInstrumentations:c??null,networkMetrics:l??null}))(e)),l.handleErrorChange(void 0,void 0,{}),c(t??(r=e.type,B.find(e=>e.type===r)??null))},[]),m=n(()=>{if(!i)return{errorMessage:"No rule type selected",preparedFormData:U(Ht)};const e=((e,t)=>{const r=U(e),{workloads:a,...n}=r,o={...n,sourceScopes:te(r.sourceScopes)?null:r.sourceScopes,...a?.length?{workloads:a}:{}};return o.headersCollection?.[j.HeaderKeys]?.length&&(o.headersCollection[j.HeaderKeys]=o.headersCollection[j.HeaderKeys].map(e=>e.trim()).filter(e=>e)),o.customInstrumentations?.[q.Golang]?.length&&(o.customInstrumentations[q.Golang]=o.customInstrumentations[q.Golang].map(e=>new Q(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>{return t=e,!!(t.packageName?.trim()||t.functionName?.trim()||t.receiverName?.trim()||t.receiverMethodName?.trim());var t})),o.customInstrumentations?.[q.Java]?.length&&(o.customInstrumentations[q.Java]=o.customInstrumentations[q.Java].map(e=>new z(e.className,e.methodName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.methodName?.trim());var t})),o.customInstrumentations?.[q.Php]?.length&&(o.customInstrumentations[q.Php]=o.customInstrumentations[q.Php].map(e=>new J(e.className,e.functionName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.functionName?.trim());var t})),t===X.NetworkMetrics&&(o.networkMetrics=!0),o})(l.formData,i.type),t=((e,t)=>{const r={};switch(e){case X.CodeAttributes:Object.values(t.codeAttributes||{}).some(e=>null!=e)||(r.codeAttributes="Code attributes are required");break;case X.PayloadCollection:Object.values(t.payloadCollection||{}).some(e=>null!=e)||(r.payloadCollection="Payload collection are required");break;case X.HeadersCollection:t.headersCollection?.[j.HeaderKeys]?.length||(r.headersCollection="Header keys are required");break;case X.CustomInstrumentation:{const e=t.customInstrumentations?.[q.Golang]||[],a=t.customInstrumentations?.[q.Java]||[],n=t.customInstrumentations?.[q.Php]||[];if(!e.length&&!a.length&&!n.length){r.customInstrumentations="Custom instrumentation are required";break}const o=e.findIndex(e=>!new Q(e.packageName,e.functionName,e.receiverName,e.receiverMethodName).Verify());if(-1!==o){r.customInstrumentations=`Golang probe #${o+1} is invalid: provide a package name plus either a function name OR both a receiver name and receiver method name`;break}const s=a.findIndex(e=>!new z(e.className,e.methodName).Verify());if(-1!==s){r.customInstrumentations=`Java probe #${s+1} is invalid: both class name and method name are required`;break}const i=n.findIndex(e=>!new J(e.className,e.functionName).Verify());if(-1!==i){r.customInstrumentations=`PHP probe #${i+1} is invalid: function name is required`;break}break}}return r})(i.type,e);return l.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[l,i]),S=t(()=>({selectedOption:i,onSelectOption:d,loadRule:u,genericForm:l,validateFormData:m,sourceOptions:a,namespaceOptions:s}),[i,d,u,l,m,a,s]);return e(Mt.Provider,{value:S,children:r})},Vt=()=>{const e=r(Mt);if(!e)throw new Error("useRuleFormContext must be used within a RuleFormContextProvider");return e};var Yt;(e=>{e.Create="create",e.View="view",e.EditAutoNoisy="edit-auto-noisy",e.EditAutoCostReduction="edit-auto-cost-reduction",e.EditAutoHighlyRelevant="edit-auto-highly-relevant"})(Yt||(Yt={}));const Kt=a(null),$t=["50","25","10","1"];function Wt(e){const t=String(e);return $t.includes(t)?t:"custom"}const Bt=({category:r,sourceOptions:a=[],namespaceOptions:i=[],children:c})=>{const{formData:l,handleFormChange:d,resetFormData:u}=w(ce(r)),[m,S]=o(null);s(()=>{u(ce(r)),S(null)},[r]);const E=n(e=>{S(null),d(void 0,void 0,{...l,...e})},[l,d]),I=n(()=>{u(ce(r)),S(null)},[r,u]),p=t(()=>({formType:Yt.Create,category:r,formData:l,handleChange:E,resetForm:I,duplicateWarning:m,setDuplicateWarning:S,sourceOptions:a,namespaceOptions:i}),[r,l,E,I,m,a,i]);return e(Kt.Provider,{value:p,children:c})},jt=({data:r,defaultEditMode:a,sourceOptions:c=[],namespaceOptions:l=[],children:d})=>{const[u,m]=o(!1),{formData:S,handleFormChange:E,resetFormData:I}=w(void 0),p=i(null),[T,_]=o(null);s(()=>{r!==p.current&&(p.current=r,r&&a?(I(ie(r)),_(null),m(!0)):(m(!1),_(null)))},[r,a]);const f=n(e=>{_(null),E(void 0,void 0,{...S,...e})},[S,E]),y=n(()=>{r&&(I(ie(r)),_(null),m(!0))},[r,I]),N=n(()=>{m(!1),_(null)},[]),A=t(()=>({formType:Yt.View,data:r,isEditing:u,formData:S,handleChange:f,handleEdit:y,handleCancelEdit:N,duplicateWarning:T,setDuplicateWarning:_,sourceOptions:c,namespaceOptions:l}),[r,u,S,f,y,N,T,c,l]);return e(Kt.Provider,{value:A,children:d})};function qt(e){const[r,a]=o(()=>0===e?"all":"sample"),[n,i]=o(()=>Wt(e)),[c,l]=o(()=>"custom"===Wt(e)?String(e):"");s(()=>{a(0===e?"all":"sample");const t=Wt(e);i(t),l("custom"===t?String(e):"")},[e]);const d=t(()=>"all"===r?0:"custom"===n?Number(c)||0:Number(n),[r,n,c]);return{percentageMode:r,setPercentageMode:a,percentagePreset:n,setPercentagePreset:i,customPercentage:c,setCustomPercentage:l,resolvedPercentage:d}}const Qt=({enabled:r,keepPercentage:a,children:n})=>{const[i,c]=o(r),l=qt(a);s(()=>{c(r)},[r]);const d=t(()=>se({enabled:i,keepPercentage:l.resolvedPercentage}),[i,l.resolvedPercentage]),u=t(()=>({formType:Yt.EditAutoNoisy,localEnabled:i,setLocalEnabled:c,...l,summary:d}),[i,l,d]);return e(Kt.Provider,{value:u,children:n})},zt=({enabled:r,dropPercentage:a,children:n})=>{const[i,c]=o(r),l=qt(a);s(()=>{c(r)},[r]);const d=t(()=>oe(i?{disabled:!1,percentageAtMost:l.resolvedPercentage}:null),[i,l.resolvedPercentage]),u=t(()=>({formType:Yt.EditAutoCostReduction,localEnabled:i,setLocalEnabled:c,...l,summary:d}),[i,l,d]);return e(Kt.Provider,{value:u,children:n})},Jt=({enabled:r,children:a})=>{const[n,i]=o(r);s(()=>{i(r)},[r]);const c=t(()=>ne(n?{disabled:!1}:null),[n]),l=t(()=>({formType:Yt.EditAutoHighlyRelevant,localEnabled:n,setLocalEnabled:i,summary:c}),[n,c]);return e(Kt.Provider,{value:l,children:a})},Xt=t=>{switch(t.formType){case Yt.Create:return e(Bt,{...t});case Yt.View:return e(jt,{...t});case Yt.EditAutoNoisy:return e(Qt,{...t});case Yt.EditAutoCostReduction:return e(zt,{...t});case Yt.EditAutoHighlyRelevant:return e(Jt,{...t})}};function Zt(e){const t=r(Kt);if(!t)throw new Error("useSamplingRulesFormContext must be used within a SamplingRulesFormProvider");if(e&&t.formType!==e)throw new Error(`Expected formType "${e}" but found "${t.formType}"`);return t}const er={otelServiceName:"",currentStreamName:""},tr=a(null),rr=({children:r})=>{const[a,s]=o(void 0),i=w(er),c=n(e=>{i.resetFormData((({serviceName:e,id:t})=>({otelServiceName:e||t.name||"",currentStreamName:""}))(e)),i.handleErrorChange(void 0,void 0,{}),s(void 0)},[]),l=n(()=>{const e=U(i.formData);return i.handleErrorChange(void 0,void 0,{}),s(void 0),{errorMessage:void 0,preparedFormData:e}},[i]),d=t(()=>({loadSource:c,genericForm:i,validateFormData:l,errorMessage:a}),[c,i,l,a]);return e(tr.Provider,{value:d,children:r})},ar=()=>{const e=r(tr);if(!e)throw new Error("useSourceEditFormContext must be used within a SourceEditFormContextProvider");return e},nr=new Set([Z.StaticPod]),or=e=>{const t=e.workloads.filter(({selected:e})=>e).length,r=e.workloads.length;return{selectedCount:t,isAllSourced:t>0&&t===r,isSomeSourced:t>0&&t<r,isFutureApps:e.selected||!1}},sr=(e,t,r)=>{if(t&&!e.name.toLowerCase().includes(t.toLowerCase()))return!1;if(r.showOnlySelected){const{isAllSourced:t,isSomeSourced:r,isFutureApps:a}=or(e);return t||r||a}return!0},ir=(e,t,r)=>!(t&&!e.name.toLowerCase().includes(t.toLowerCase()))&&(!r.showOnlySelected||e.selected),cr=a({snapshots:null,setSnapshots:()=>{},isFetching:!1,setIsFetching:()=>{},formData:[],handleSourceChange:()=>{},handleSelectAll:()=>{},formDiff:{},isFormDirty:!1}),lr=(e,t)=>`${e}\0${t}`,dr=(e,t,r,a)=>`${e}\0${t}\0${r}/${a}`,ur=(e,t)=>e.name===t.name&&e.kind===t.kind&&(e.region??"")===(t.region??""),mr=(e,t,r)=>{const a=[];return t.workloads.forEach(n=>{const o=e?.workloads.find(e=>ur(e,n));n.selected!==o?.selected&&a.push({namespace:t.name,name:n.name,kind:n.kind,region:n.region||void 0,selected:n.selected||!1,currentStreamName:r})}),a},Sr=({children:r,selectedConnectionIds:a,initialInputs:c})=>{const{tier:l}=le(),d=l===ee.Onprem,{capabilities:u}=Et(),m=u.canInstrumentNamespaces,{selectedStreamName:S}=T(),[E,p]=o(!1),[_,f]=o(null),[y,N]=o([]),A=i(new Set),R=n((e,t)=>{t.forEach(t=>{const r=e.find(e=>e.clusterId===t.clusterId);r&&t.namespaces.forEach(e=>{const a=r.namespaces.find(t=>t.name===e.name);a&&(a.selected!==e.selected&&A.current.add(lr(t.clusterId,e.name)),e.workloads.forEach(r=>{const n=a.workloads.find(e=>e.name===r.name&&e.kind===r.kind);n&&n.selected!==r.selected&&A.current.add(dr(t.clusterId,e.name,r.kind,r.name))}))})})},[]);s(()=>{_&&N(e=>{const t=((e,t)=>U(((e,t)=>e.clusters.filter(({clusterId:e})=>!t||t.includes(e)))(e,t)))(_,a);return t.map(t=>{const r=e?.find(e=>e.clusterId===t.clusterId),a=((e,t,r)=>{if(!t)return e;const a=new Map(t.namespaces.map(e=>[e.name,e]));return{...e,namespaces:e.namespaces.map(t=>{const n=a.get(t.name);if(!n)return t;const o=new Map(n.workloads.map(e=>[`${e.kind}/${e.name}`,e])),s=r.has(lr(e.clusterId,t.name));return{...t,selected:s?n.selected:t.selected,workloads:t.workloads.map(a=>{const n=o.get(`${a.kind}/${a.name}`),s=r.has(dr(e.clusterId,t.name,a.kind,a.name));return n&&s?{...a,selected:n.selected}:a})}})}})(t,r,A.current);if(c?.[t.clusterId]){const e=c[t.clusterId],r=U(a);return e.forEach(e=>{const t=r.namespaces.find(t=>t.name===e.namespace);if(t)if(e.name&&e.kind){const r=t.workloads.find(t=>t.name===e.name&&t.kind===e.kind);r&&(r.selected=e.selected)}else t.selected=e.selected,e.selected&&t.workloads.forEach(e=>{nr.has(e.kind)&&!d||(e.selected=!0)})}),r}return a})})},[_,a,c]);const{formDiff:g,isFormDirty:h}=t(()=>{const e=((e,t,r,a)=>{const n={};return e.forEach(e=>{e.namespaces.forEach(o=>{const s=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===o.name);if(!a){const t=mr(s,o,r);return void(t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t)))}const i=o.selected||!1;if(i!==s?.selected)n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push({namespace:o.name,selected:i,currentStreamName:r}),i?n[e.clusterId]=n[e.clusterId].filter(e=>e.namespace!==o.name||e.namespace===o.name&&(!e.name||!e.kind)):o.workloads.forEach(t=>{t.selected&&n[e.clusterId].push({namespace:o.name,name:t.name,kind:t.kind,region:t.region||void 0,selected:!0,currentStreamName:r})});else{const t=mr(s,o,r);t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t))}})}),n})(y,_?.clusters||[],S,m);return{formDiff:e,isFormDirty:Object.keys(e).length>0}},[y,_,S,m]),O=n(e=>!d&&nr.has(e),[d]),v=n(({clusterId:e,workloadId:t,selected:r,auto:a})=>{N(n=>{const o=U(n),s=o.findIndex(t=>t.clusterId===e);if(-1===s)return o;const i=o[s].namespaces.findIndex(e=>e.name===t.namespace);if(-1===i)return o;if(t.kind&&t.name){const e=o[s].namespaces[i].workloads.findIndex(e=>ur(e,{name:t.name,kind:t.kind,region:t.region}));if(-1===e)return o;const a="boolean"==typeof r?r:!o[s].namespaces[i].workloads[e].selected;o[s].namespaces[i].workloads[e].selected=a,m&&(a?o[s].namespaces[i].workloads.filter(e=>!O(e.kind)).every(e=>e.selected)&&(o[s].namespaces[i].selected=!0):o[s].namespaces[i].selected=!1)}else if(m){const e="boolean"==typeof a?a:!o[s].namespaces[i].selected;o[s].namespaces[i].selected=e,e?o[s].namespaces[i].workloads.forEach(e=>{O(e.kind)||(e.selected=!0)}):"boolean"!=typeof r||r||o[s].namespaces[i].workloads.forEach(e=>{e.selected=!1})}else{const e="boolean"==typeof r?r:"boolean"!=typeof a||a;o[s].namespaces[i].workloads.forEach(t=>{e&&O(t.kind)||(t.selected=e)})}return R(n,o),o})},[O,m,R]),G=n(({clusterId:e,namespaceName:t,boolean:r,searchText:a="",searchBy:n="",filters:o})=>{N(s=>{const i=U(s),c=n===I.Namespace?a:"",l=n===I.Source?a:"",d=!!c||!!l||!!o?.showOnlySelected;return i.forEach((a,n)=>{e&&a.clusterId!==e||a.namespaces.forEach(({name:e,workloads:a},s)=>{if(!t||e===t)if(d)if(t){if(a.forEach((e,t)=>{r&&O(e.kind)||ir(e,l,o||{showOnlySelected:!1})&&(i[n].namespaces[s].workloads[t].selected=r)}),m){const e=i[n].namespaces[s].workloads.filter(e=>!O(e.kind)).every(e=>e.selected);i[n].namespaces[s].selected=e}}else{if(!sr(i[n].namespaces[s],c,o||{showOnlySelected:!1}))return;m&&(i[n].namespaces[s].selected=r),a.forEach((e,t)=>{r&&O(e.kind)||(i[n].namespaces[s].workloads[t].selected=r)})}else m&&(i[n].namespaces[s].selected=r),a.forEach((e,t)=>{r&&O(e.kind)||(i[n].namespaces[s].workloads[t].selected=r)})})}),R(s,i),i})},[O,m,R]);return e(cr.Provider,{value:{snapshots:_,setSnapshots:f,isFetching:E,setIsFetching:p,formData:y,handleSourceChange:v,handleSelectAll:G,formDiff:g,isFormDirty:h},children:r})},Er=()=>r(cr);export{At as A,Ot as C,Lt as D,nr as E,De as O,xt as R,Yt as S,Ve as a,Ft as b,ve as c,Xt as d,rr as e,Sr as f,Je as g,Rt as h,qe as i,Qe as j,je as k,vt as l,Dt as m,kt as n,Et as o,Xe as p,Vt as q,xe as r,Zt as s,ar as t,Oe as u,Er as v,ir as w,sr as x,or as y};
@@ -1,7 +0,0 @@
1
- import { type FC } from 'react';
2
- import '@xyflow/react/dist/style.css';
3
- import type { InsightsBlastRadiusSubgraph } from '../../../../../../types';
4
- export interface AnomalyBlastRadiusProps {
5
- blastRadius?: InsightsBlastRadiusSubgraph;
6
- }
7
- export declare const AnomalyBlastRadius: FC<AnomalyBlastRadiusProps>;