@kong-ui-public/entities-plugins 8.1.0 → 8.1.1

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.
@@ -11,7 +11,7 @@ import $a from "axios";
11
11
  import { createI18n as Wn, i18nTComponent as Bs } from "@kong-ui-public/i18n";
12
12
  import { BadgeMethodAppearances as $l } from "@kong/kongponents";
13
13
  import { useRouter as Qn, useRoute as eu } from "vue-router";
14
- var ga = /* @__PURE__ */ ((e) => (e.GatewayService = "service", e.Route = "route", e.Consumer = "consumer", e.ConsumerGroup = "consumer group", e.Plugin = "plugin", e.Upstream = "upstream", e.Certificate = "certificate", e.CACertificate = "ca certificate", e.SNI = "SNI", e.Key = "key", e.KeySet = "key set", e.Vault = "vault", e.Application = "application", e.Developer = "developer", e.acls = "ACL Credential", e["basic-auth"] = "Basic Auth Credential", e["key-auth"] = "Key Auth Credential", e["key-auth-enc"] = "Key Auth Encrypted Credential", e.oauth2 = "OAuth 2.0 Credential", e["hmac-auth"] = "HMAC Credential", e.jwt = "JWT Credential", e.Target = "target", e.Policy = "policy", e))(ga || {}), Dt = /* @__PURE__ */ ((e) => (e.Edit = "edit", e.Create = "create", e))(Dt || {}), Jt = /* @__PURE__ */ ((e) => (e[e.Loading = 0] = "Loading", e[e.Idle = 1] = "Idle", e[e.NoResults = 2] = "NoResults", e[e.Error = 3] = "Error", e))(Jt || {}), pe = /* @__PURE__ */ ((e) => (e.ID = "id", e.IdArray = "id-array", e.Text = "plain-text", e.Date = "date", e.Redacted = "redacted", e.RedactedArray = "redacted-array", e.Json = "json", e.JsonArray = "json-array", e.BadgeTag = "badge-tag", e.BadgeStatus = "badge-status", e.BadgeMethod = "badge-method", e.LinkInternal = "link-internal", e.LinkExternal = "link-external", e))(pe || {}), Ve = /* @__PURE__ */ ((e) => (e.Basic = "basic", e.Advanced = "advanced", e.Plugin = "plugin", e))(Ve || {});
14
+ var ga = /* @__PURE__ */ ((e) => (e.GatewayService = "service", e.Route = "route", e.Consumer = "consumer", e.ConsumerGroup = "consumer group", e.Plugin = "plugin", e.Upstream = "upstream", e.Certificate = "certificate", e.CACertificate = "ca certificate", e.SNI = "SNI", e.Key = "key", e.KeySet = "key set", e.Vault = "vault", e.Application = "application", e.Developer = "developer", e.acls = "ACL Credential", e["basic-auth"] = "Basic Auth Credential", e["key-auth"] = "Key Auth Credential", e["key-auth-enc"] = "Key Auth Encrypted Credential", e.oauth2 = "OAuth 2.0 Credential", e["hmac-auth"] = "HMAC Credential", e.jwt = "JWT Credential", e.Target = "target", e.Policy = "policy", e.Secret = "secret", e))(ga || {}), Dt = /* @__PURE__ */ ((e) => (e.Edit = "edit", e.Create = "create", e))(Dt || {}), Jt = /* @__PURE__ */ ((e) => (e[e.Loading = 0] = "Loading", e[e.Idle = 1] = "Idle", e[e.NoResults = 2] = "NoResults", e[e.Error = 3] = "Error", e))(Jt || {}), pe = /* @__PURE__ */ ((e) => (e.ID = "id", e.IdArray = "id-array", e.Text = "plain-text", e.Date = "date", e.Redacted = "redacted", e.RedactedArray = "redacted-array", e.Json = "json", e.JsonArray = "json-array", e.BadgeTag = "badge-tag", e.BadgeStatus = "badge-status", e.BadgeMethod = "badge-method", e.LinkInternal = "link-internal", e.LinkExternal = "link-external", e))(pe || {}), Ve = /* @__PURE__ */ ((e) => (e.Basic = "basic", e.Advanced = "advanced", e.Plugin = "plugin", e))(Ve || {});
15
15
  function tu() {
16
16
  return {
17
17
  getAxiosInstance: (e = {}) => {
@@ -1,4 +1,4 @@
1
- (function(Z,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("axios"),require("@kong-ui-public/i18n"),require("@kong/kongponents"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","axios","@kong-ui-public/i18n","@kong/kongponents","vue-router"],t):(Z=typeof globalThis<"u"?globalThis:Z||self,t(Z["kong-ui-public-entities-plugins"]={},Z.Vue,Z.axios,Z["kong-ui-public-i18n"],Z.Kongponents,Z.VueRouter))})(this,function(Z,t,Ye,bt,os,Ut){"use strict";var qB=Object.defineProperty;var ts=Z=>{throw TypeError(Z)};var XB=(Z,t,Ye)=>t in Z?qB(Z,t,{enumerable:!0,configurable:!0,writable:!0,value:Ye}):Z[t]=Ye;var ue=(Z,t,Ye)=>XB(Z,typeof t!="symbol"?t+"":t,Ye),JB=(Z,t,Ye)=>t.has(Z)||ts("Cannot "+Ye);var ns=(Z,t,Ye)=>t.has(Z)?ts("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(Z):t.set(Z,Ye);var ci=(Z,t,Ye)=>(JB(Z,t,"access private method"),Ye);var jt,go,is;var Pt=typeof document<"u"?document.currentScript:null,di=(e=>(e.GatewayService="service",e.Route="route",e.Consumer="consumer",e.ConsumerGroup="consumer group",e.Plugin="plugin",e.Upstream="upstream",e.Certificate="certificate",e.CACertificate="ca certificate",e.SNI="SNI",e.Key="key",e.KeySet="key set",e.Vault="vault",e.Application="application",e.Developer="developer",e.acls="ACL Credential",e["basic-auth"]="Basic Auth Credential",e["key-auth"]="Key Auth Credential",e["key-auth-enc"]="Key Auth Encrypted Credential",e.oauth2="OAuth 2.0 Credential",e["hmac-auth"]="HMAC Credential",e.jwt="JWT Credential",e.Target="target",e.Policy="policy",e))(di||{}),dt=(e=>(e.Edit="edit",e.Create="create",e))(dt||{}),wt=(e=>(e[e.Loading=0]="Loading",e[e.Idle=1]="Idle",e[e.NoResults=2]="NoResults",e[e.Error=3]="Error",e))(wt||{}),_=(e=>(e.ID="id",e.IdArray="id-array",e.Text="plain-text",e.Date="date",e.Redacted="redacted",e.RedactedArray="redacted-array",e.Json="json",e.JsonArray="json-array",e.BadgeTag="badge-tag",e.BadgeStatus="badge-status",e.BadgeMethod="badge-method",e.LinkInternal="link-internal",e.LinkExternal="link-external",e))(_||{}),Be=(e=>(e.Basic="basic",e.Advanced="advanced",e.Plugin="plugin",e))(Be||{});function as(){return{getAxiosInstance:(e={})=>{try{const n=t.inject("get-axios-instance",void 0);return typeof n=="function"?n(e):Ye.create({withCredentials:!0,timeout:3e4,...e})}catch(n){return console.warn("getAxiosInstance:",n.message||n),Ye.create({withCredentials:!0,timeout:3e4,...e})}},getTraceIdFromError:e=>{var n;return((n=e==null?void 0:e.response)==null?void 0:n.headers["x-datadog-trace-id"])||""}}}function rs(){return{debounce:(e,n)=>{let i;return(...o)=>{clearTimeout(i),i=window==null?void 0:window.setTimeout(()=>{e(...o)},n)}}}}const pi="khcp-user-table-preferences",ls={pageSize:30,sortColumnKey:void 0,sortColumnOrder:void 0,columnWidths:{},columnVisibility:{}};function ss(){const e=i=>{if(typeof i=="string")try{return JSON.parse(i)}catch(o){console.error("useTablePreferences(tryParseJson)",o);return}},n=()=>{const i=e(localStorage.getItem(pi));return!i||!Object.keys(i).length?new Map:new Map(Object.entries(i))};return{setTablePreferences:(i,o)=>{try{const a=n();a.set(i,o),localStorage.setItem(pi,JSON.stringify(Object.fromEntries(a.entries())))}catch(a){console.error("useTablePreferences(setTablePreferences)",a)}},getTablePreferences:i=>{const o=n();return(o==null?void 0:o.get(i))||void 0||ls},deleteAllTablePreferences:()=>{localStorage.removeItem(pi)}}}function ui(e={}){const{getAxiosInstance:n}=as();return{axiosInstance:n(e)}}const cs={actions:{copyId:"Copy ID",copied_id:'Copied "{id}" to the clipboard',copyToClipboard:"Copied successfully!",copyToClipboardFailed:"Failed to copy to the clipboard"}},ds={message:"Are you sure you want to delete this {entityType}?",messageWithName:"Are you sure you want to delete this {entityType} {entityName}?"},ps={actions:{viewConfiguration:"View Configuration",save:"Save",cancel:"Cancel",back:"Back"},configuration:{title:"Configuration",message:"Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML or JSON. This allows for straightforward importing into APIOps tools like decK with YAML, or Insomnia and cURL with JSON.",yaml:"YAML",json:"JSON"},errors:{edit:"The entity could not be edited at this time."}},us={emptyState:{noSearchResultsTitle:"No results found",noSearchResultsMessage:"Please adjust the criteria and try again.",noSearchResultsCtaText:"Clear"}},ms={title:"Configuration",actions:{copy:"Copy JSON"},sections:{advanced:"Advanced",plugin:"Plugin Specific Configuration"},commonFields:{id_label:"ID",name_label:"Name",enabled_label:"Enabled",enabled_tooltip:"Enabled is FTW",updated_at_label:"Last Updated",created_at_label:"Created",tags_label:"Tags",link:"Link"},statusBadge:{enabledLabel:"Enabled",disabledLabel:"Disabled"},copy:{tooltip:"Copy {label}",success:"Copied!"},errors:{load:"The entity configuration data could not be loaded at this time.",copy:"Failed to copy to clipboard"},general:{entryTitle:"Entry {index}",structuredFormat:"Structured"}},gs={filterButtonText:"Filter",fieldLabel:"Filter by:",inputPlaceholder:"Enter a value",selectPlaceholder:"Select an item",applyButtonText:"Apply",clearButtonText:"Clear",clearAllButtonText:"Clear all filters"},fs={errors:{fetch:"Could not fetch available items",invalid:"Please select a valid value"}},As={unexpected:"An unexpected error has occurred",dataKeyUndefined:'The data key "{dataKey}" does not exist in the response.'},hs={utf8Name:"The name can be any string containing characters, letters, numbers, or the following characters: ., -, _, or ~. Do not use spaces."},ys={enable:{title:"Enable {entityType}",message:"Are you sure you want to enable the {entityType} {entityName}?",confirmText:"Yes, enable"},disable:{title:"Disable {entityType}",message:"Are you sure you want to disable the {entityType} {entityName}?",confirmText:"Yes, disable"}},bs={global:cs,deleteModal:ds,baseForm:ps,baseTable:us,baseConfigCard:ms,filter:gs,debouncedFilter:fs,errors:As,validationErrors:hs,toggleModal:ys};function Tn(){const e=bt.createI18n("en-us",bs);return{i18n:e,i18nT:bt.i18nTComponent(e)}}function fo(){const e=(i,o)=>(o==null?void 0:o[i])??void 0,n=(i,o)=>{if(i.length!==o.length)return!1;const a=new Set([...i,...o]);for(const r of a){const l=i.filter(c=>c===r).length,s=o.filter(c=>c===r).length;if(l!==s)return!1}return!0};return{getPropValue:e,objectsAreEqual:(i,o,a)=>{if(a){if(Object.keys(i).length===Object.keys(o).length)for(const r in i)if(Array.isArray(i[r])&&Array.isArray(o[r])){if(n(i[r],o[r]))continue;return!1}else{if(i[r]===o[r])continue;return!1}else return!1;return!0}try{return JSON.stringify(i)===JSON.stringify(o)}catch{return!1}},sortAlpha:i=>(o,a)=>{let r=o[i]===void 0||o[i]===null?"":o[i],l=a[i]===void 0||a[i]===null?"":a[i];return Array.isArray(o[i])&&(r=o[i][0]),Array.isArray(a[i])&&(l=a[i][0]),r.localeCompare(l)},isValidUuid:i=>i?/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/.test(i):!1}}function ws(e,n,i,o={fetchedItemsKey:"data",searchKeys:["id"]}){i||(i="1000");const{axiosInstance:a}=ui(e.axiosRequestConfig),{i18n:{t:r}}=Tn(),{debounce:l}=rs(),s=l(async C=>{await T(C)},200),c=t.ref(!1),p=t.ref(""),d=t.ref(""),m=t.ref([]),f=t.ref([]),h=t.ref(void 0),S=t.unref(n);let y=`${e.apiBaseUrl}${S}`;e.app==="konnect"?y=y.replace(/{controlPlaneId}/gi,(e==null?void 0:e.controlPlaneId)||""):e.app==="kongManager"&&(y=y.replace(/\/{workspace}/gi,e!=null&&e.workspace?`/${e.workspace}`:""));const{isValidUuid:b}=fo(),E=async()=>{try{c.value=!0;const{data:C}=await a.get(`${y}?size=${i}`);C!=null&&C.next||(h.value=o.fetchedItemsKey in C?C[o.fetchedItemsKey]:[]),f.value=o.fetchedItemsKey in C?C[o.fetchedItemsKey]:[],m.value=f.value}catch{m.value=[],p.value=r("debouncedFilter.errors.fetch")}finally{c.value=!1}},O=t.ref(""),T=async C=>{var g,A,k;if(O.value!==C)if(O.value=C||"",h.value===void 0)try{if(c.value=!0,p.value="",d.value="",e.app==="konnect"){let B=y+"";C&&(B+=`/${C}`);const{data:w}=await a.get(`${B}?size=${i}`);o.fetchedItemsKey in w?m.value=w[o.fetchedItemsKey]:w!=null&&w.id?m.value=[w]:m.value=[]}else if(C){const B=[];b(C)&&o.searchKeys.includes("id")?B.push((async()=>{const{data:v}=await a.get(`${y}/${C}`);return[v[o.fetchedItemsKey]??v]})()):B.push(...o.searchKeys.filter(v=>v!=="id").map(async v=>{const{data:R}=await a.get(`${y}?${v}=${C}`);return R[o.fetchedItemsKey]}));const w=await Promise.all(B),M=new Set;m.value=[],(g=w==null?void 0:w.forEach)==null||g.call(w,v=>{var R;(R=v==null?void 0:v.forEach)==null||R.call(v,N=>{M.has(N.id)||(M.add(N.id),m.value.push(N))})})}else m.value=f.value}catch(B){((A=B==null?void 0:B.response)==null?void 0:A.status)===404?d.value=r("debouncedFilter.errors.invalid"):(m.value=[],p.value=r("debouncedFilter.errors.fetch"))}finally{c.value=!1}else c.value=!0,d.value="",C?(m.value=(k=h.value)==null?void 0:k.filter(B=>{var w;let M=!1;for(const v of o.searchKeys){const R=typeof B[v]=="string"?(w=B[v])==null?void 0:w.toLowerCase():B[v];R!=null&&R.includes(C.toLowerCase())&&(M=!0)}return M}),(!m.value||!m.value.length)&&(d.value=r("debouncedFilter.errors.invalid"))):m.value=h.value,c.value=!1};return{loading:c,error:p,validationError:d,results:m,allRecords:h,loadItems:E,debouncedQueryChange:s}}function Cs(e,n){const i=t.unref(n),o=t.computed(()=>e.apiBaseUrl.startsWith("/")?new URL(`${window.location.origin}${i}`):new URL(i));return o.value.search="",a=>`${o.value.href}/${a}`}function Es(){const{i18n:{t:e}}=Tn();return{getMessageFromError:n=>{var i,o,a,r;if(!n)return e("errors.unexpected");if(((i=n==null?void 0:n.response)==null?void 0:i.status)===401)return console.warn("getMessageFromError: User auth token is expired or missing, returning empty message."),"";if((o=n==null?void 0:n.response)!=null&&o.data){if(n.response.data.detail)return n.response.data.detail;if((a=n.response.data.details)!=null&&a.length)return n.response.data.details.map(l=>{let s=e("errors.unexpected");return l.messages&&typeof l.messages=="object"&&l.messages.length&&(s=l.messages.join(", ")),l.field?`${l.field} - ${s}`:s}).join("; ");if(n.response.data.message){const{message:l}=n.response.data;return Array.isArray(l)?(r=l[0])!=null&&r.constraints?Object.values(l[0].constraints)[0]:l[0]:l}if(typeof n.response.data=="string")return n.response.data;if(typeof n.response.data=="object")return Object.keys(n.response.data).map(l=>`${l} ${n.response.data[l]}`).join(", ")}return n.message||e("errors.unexpected")}}}function ks(e){const n=window.location.origin,i=n.endsWith("/")?n:`${n}/`;try{const o=e.join("/"),a=`${i}${o}`,r=e.some(l=>l.trim()==="");if(/^(https:\/\/(www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(:[0-9]+)?(\/[^\/]+)*)$|^(https|http):\/\/localhost(:[0-9]+)?(\/[^\/]+)*$/.test(a)&&!r&&new URL(a))return`${i}${o}`;throw new Error("Invalid url")}catch(o){return console.warn("Failed to build valid URL:",o),""}}function Ao(e,n){const i=t.ref(t.unref(e)),o=t.ref(t.unref(n)),a=t.computed(()=>!!(i.value.app==="konnect"||i.value.isExactMatch)),r=t.computed(()=>o.value.startsWith("/")?new URL(`${window.location.origin}${o.value}`):new URL(o.value));return l=>{const{page:s,pageSize:c,offset:p,sortColumnKey:d,sortColumnOrder:m,query:f}=l;try{let h=new URL(r.value.href);return a.value&&f?(h.search="",h=i.value.isExactMatch?new URL(`${h.href}/${f}/`):new URL(`${h.href}?filter[name][contains]=${f}`)):(a.value||new URLSearchParams(f).forEach((S,y)=>{h.searchParams.append(y,S)}),d&&h.searchParams.append("sort_by",d),m==="desc"&&h.searchParams.append("sort_desc","1"),h.searchParams.append("size",String(c))),p&&s!==1&&h.searchParams.append("offset",String(p)),h.href}catch(h){return console.error("RouteList(fetcher)",h),o.value}}}function Bs(e,n,i="data"){const o=t.unref(n),{axiosInstance:a}=ui(e.axiosRequestConfig),r=Ao(e,o),l=t.ref({status:wt.Idle});return{fetcher:async s=>{var c;try{l.value={status:wt.Loading};let p=r(s);p.includes("filter[name]")&&(p=`${p}&page[size]=${s.pageSize}&page[number]=${s.page}`);const d=await a.get(p);if(d.status>=400)throw d;const m=d.data,f=i&&i.replace(/[^\w-_]/gi,"");let h;m[f]&&Array.isArray(m[f])?h=m[f]:Array.isArray(m)?h=m:h=Object.keys(m).length?[m]:[];const S={data:h,total:h.length,...m.offset?{pagination:{offset:m.offset}}:null};return l.value={status:wt.Idle,response:S},S}catch(p){const d={data:[],total:0};return s.query&&(((c=p.response)==null?void 0:c.status)===404||p.status===404)?(l.value={status:wt.NoResults,response:d,error:p.response?p:{response:p}},d):(l.value={status:wt.Error,response:d,error:p.response?p:{response:p}},d)}},fetcherState:l}}function Ss(){const e=(i,o="_")=>i?i.split(o).map(a=>a.toLowerCase()==="id"?a.toUpperCase():a.charAt(0).toUpperCase()+a.substring(1)).join(" "):"",n=/(?:^|[\s-:'"])\w/g;return{capitalize:i=>i?i.replace(n,o=>o.toUpperCase()):"",convertKeyToTitle:e}}const ho=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,yo=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const n=e.match(ho);if(!n)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return n.shift(),n},bo=e=>e==="*"||e==="x"||e==="X",wo=e=>{const n=parseInt(e,10);return isNaN(n)?e:n},Os=(e,n)=>typeof e!=typeof n?[String(e),String(n)]:[e,n],xs=(e,n)=>{if(bo(e)||bo(n))return 0;const[i,o]=Os(wo(e),wo(n));return i>o?1:i<o?-1:0},Co=(e,n)=>{for(let i=0;i<Math.max(e.length,n.length);i++){const o=xs(e[i]||"0",n[i]||"0");if(o!==0)return o}return 0},Is=(e,n)=>{const i=yo(e),o=yo(n),a=i.pop(),r=o.pop(),l=Co(i,o);return l!==0?l:a&&r?Co(a.split("."),r.split(".")):a||r?a?-1:1:0},Eo=(e,n,i)=>{Ms(i);const o=Is(e,n);return ko[i].includes(o)},ko={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},Bo=Object.keys(ko),Ms=e=>{if(typeof e!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof e}`);if(Bo.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${Bo.join("|")}`)},vs=e=>typeof e=="string"&&/^[v\d]/.test(e)&&ho.test(e);function Ts(e){const{gatewayInfo:n,supportedRange:i}=e;if(!n)return!0;const{edition:o,version:a}=n;if(!vs(a))return console.error("Invalid version"),!1;const r=i[o];if(!r)return!1;const[l,s]=r;return!(l&&Eo(a,l,"<")||s&&Eo(a,s,">"))}function Rs(e){const n=t.ref(0),i=t.ref(0),o=t.ref(!1);return t.watch(e,a=>{a&&!o.value&&(n.value=a.offsetWidth,i.value=a.scrollWidth,o.value=!0)}),{isTruncated:t.computed(()=>n.value<i.value)}}function Ns(){const{i18n:{t:e}}=Tn();return{utf8Name:n=>/^[\p{N}\p{L}.\-_~]*$/u.test(n)?"":e("validationErrors.utf8Name")}}const we={useAxios:ui,useDebouncedFilter:ws,useDeleteUrlBuilder:Cs,useErrors:Es,useExternalLinkCreator:ks,useFetcher:Bs,useFetchUrlBuilder:Ao,useHelpers:fo,useStringHelpers:Ss,useI18n:Tn,useGatewayFeatureSupported:Ts,useTruncationDetector:Rs,useValidators:Ns},Vs={key:0,class:"config-card-fieldset-title"},Ls=t.defineComponent({__name:"JsonCardItem",props:{item:{type:Object,required:!0},index:{type:Number,default:-1},isArrayItem:{type:Boolean,default:!1}},setup(e){const n=e,{i18n:{t:i}}=we.useI18n(),{convertKeyToTitle:o}=we.useStringHelpers(),a=t.computed(()=>n.item.key??"json-array-item"),r=t.computed(()=>n.item.value??n.item),l=t.computed(()=>{const c=JSON.parse(JSON.stringify(r.value));return n.isArrayItem&&delete c.name,c}),s=t.computed(()=>{var c;return n.isArrayItem?(c=r.value)!=null&&c.name?o(r.value.name,"_"):i("baseConfigCard.general.entryTitle",{index:n.index}):""});return(c,p)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.isArrayItem?"fieldset":"div"),{class:t.normalizeClass(e.isArrayItem?"config-card-fieldset":"config-card-json-item")},{default:t.withCtx(()=>[e.isArrayItem?(t.openBlock(),t.createElementBlock("legend",Vs,[t.createElementVNode("b",null,t.toDisplayString(s.value),1)])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Object.keys(l.value),(d,m)=>(t.openBlock(),t.createBlock(Oo,{key:`${a.value}-property-${m}`,item:{key:d,label:t.unref(o)(d),value:l.value[d]}},null,8,["item"]))),128))]),_:1},8,["class"]))}}),Je=(e,n)=>{const i=e.__vccOpts||e;for(const[o,a]of n)i[o]=a;return i},So=Je(Ls,[["__scopeId","data-v-68ca83ec"]]),Ds=t.defineComponent({__name:"InternalLinkItem",props:{item:{type:Object,required:!0}},emits:["navigation-click"],setup(e){const{i18n:{t:n}}=we.useI18n();return(i,o)=>{const a=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(a,{appearance:"tertiary",class:"navigation-button",onClick:o[0]||(o[0]=r=>i.$emit("navigation-click",e.item))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.value||t.unref(n)("baseConfigCard.commonFields.link")),1)]),_:1})])}}}),en=Je(Ds,[["__scopeId","data-v-c96811e5"]]),js=t.defineComponent({__name:"StatusBadge",props:{status:{type:Boolean,default:!1}},setup(e){const{i18n:{t:n}}=we.useI18n();return(i,o)=>{const a=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(a,{appearance:e.status?"success":"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.status?t.unref(n)("baseConfigCard.statusBadge.enabledLabel"):t.unref(n)("baseConfigCard.statusBadge.disabledLabel")),1)]),_:1},8,["appearance"])}}}),Us="#0044f4",Ps="#e0e4ea",Ys="#afb7c5",Gs="1px",Hs="20px",Fs={class:"config-card-details-row"},zs=["data-testid"],Ks=["data-testid"],qs=["data-testid"],Xs=["data-testid"],Js={key:1},Zs=["data-testid"],Ws=["data-testid"],Qs=["data-testid"],_s=["data-testid"],$s={name:"ConfigCardItem",components:{JsonCardItem:So,StatusBadge:js,InternalLinkItem:en}},ec=t.defineComponent({...$s,props:{item:{type:Object,required:!0},slim:{type:Boolean,required:!1,default:!1},truncated:{type:Boolean,required:!1,default:!1}},emits:["navigation-click"],setup(e,{emit:n}){t.useCssVars(S=>({dc1d91a8:d.value?"none":`solid ${t.unref(Gs)} ${t.unref(Ps)}`,"59ccec5f":p.value&&s.value?"block":"flex","29318fbe":p.value&&s.value?"100%":i.slim?"50%":"25%","292d0408":p.value&&s.value?"100%":i.slim?"50%":"75%"}));const i=e,o=n,a=t.useSlots(),{i18n:{t:r,formatUnixTimeStamp:l}}=we.useI18n(),s=t.computed(()=>i.item.value!==void 0&&i.item.value!==null&&i.item.value!==""),c=t.computed(()=>!!(i.item.tooltip||a["label-tooltip"])),p=t.computed(()=>i.item.type===_.Json||i.item.type===_.JsonArray),d=t.computed(()=>i.item.type===_.JsonArray),m=t.computed(()=>{switch(i.item.type){case _.ID:return{tag:"KCopy",attrs:{"data-testid":`${i.item.key}-copy-uuid`,"copy-tooltip":r("baseConfigCard.copy.tooltip",{label:i.item.label}),text:i.item.value}};case _.IdArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{"copy-tooltip":r("baseConfigCard.copy.tooltip",{label:i.item.label})}};case _.Redacted:return{tag:"KCopy",attrs:{"data-testid":`${i.item.key}-copy-uuid-redacted`,format:"redacted","copy-tooltip":r("baseConfigCard.copy.tooltip",{label:i.item.label}),text:i.item.value}};case _.RedactedArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{format:"redacted","copy-tooltip":r("baseConfigCard.copy.tooltip",{label:i.item.label})}};case _.Date:return{tag:"div",attrs:{"data-testid":`${i.item.key}-date`},text:l(i.item.value)};case _.BadgeStatus:return{tag:"StatusBadge",attrs:{"data-testid":`${i.item.key}-badge-status`,status:i.item.value}};case _.BadgeTag:return{tag:"div",additionalComponent:"KBadge"};case _.BadgeMethod:return{tag:"div",additionalComponent:"KMethodBadge"};case _.LinkInternal:return{tag:"InternalLinkItem",attrs:{"data-testid":`${i.item.key}-internal-link`,item:i.item,onNavigationClick:S=>{o("navigation-click",S)}}};case _.LinkExternal:return{tag:"KExternalLink",attrs:{"data-testid":`${i.item.key}-external-link`,href:i.item.value},text:i.item.value};case _.Json:return{tag:"JsonCardItem",attrs:{"data-testid":`${i.item.key}-json-content`,item:i.item}};case _.JsonArray:return{tag:"div",additionalComponent:"JsonCardItem",attrs:{"data-testid":`${i.item.key}-json-array-content`,item:i.item}};default:return{tag:"div",attrs:{"data-testid":`${i.item.key}-plain-text`},text:i.item.value}}}),f=t.ref(),{isTruncated:h}=we.useTruncationDetector(f);return(S,y)=>{const b=t.resolveComponent("KLabel"),E=t.resolveComponent("KBadge"),O=t.resolveComponent("KCopy"),T=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",Fs,[t.createElementVNode("div",{class:"config-card-details-label","data-testid":`${e.item.key}-label`},[t.renderSlot(S.$slots,"label",{item:e.item},()=>[t.createVNode(b,{"tooltip-attributes":{maxWidth:"500px"}},t.createSlots({default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.label)+" ",1)]),_:2},[c.value?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{"data-testid":`${e.item.key}-label-tooltip`},[t.renderSlot(S.$slots,"label-tooltip",{},()=>[t.createTextVNode(t.toDisplayString(e.item.tooltip),1)],!0)],8,Ks)]),key:"0"}:void 0]),1024)],!0)],8,zs),t.createElementVNode("div",{class:"config-card-details-value","data-testid":`${e.item.key}-property-value`},[t.renderSlot(S.$slots,e.item.key,{rowValue:e.item.value},()=>[s.value?(t.openBlock(),t.createElementBlock("div",Js,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m.value.tag),t.normalizeProps(t.guardReactiveProps(m.value.attrs)),{default:t.withCtx(()=>[m.value.additionalComponent==="KBadge"?(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-badge-tags`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(C,g)=>(t.openBlock(),t.createBlock(E,{key:`${e.item.key}-badge-tag-${g}`,class:"config-badge","data-testid":`${e.item.key}-badge-tag-${g}`,tooltip:C,"truncation-tooltip":""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(C),1)]),_:2},1032,["data-testid","tooltip"]))),128))],8,Zs)):t.createCommentVNode("",!0),m.value.additionalComponent==="KCopy"?(t.openBlock(),t.createElementBlock("div",{key:1,class:"copy-uuid-array","data-testid":`${e.item.key}-copy-uuid-array`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(C,g)=>(t.openBlock(),t.createBlock(O,t.mergeProps({ref_for:!0},m.value.childAttrs,{key:`${e.item.key}-copy-uuid-${g}`,"data-testid":`${e.item.key}-copy-uuid-${g}`,text:C}),null,16,["data-testid","text"]))),128))],8,Ws)):m.value.additionalComponent==="KMethodBadge"?(t.openBlock(),t.createElementBlock("div",{key:2,class:"method-badge-array","data-testid":`${e.item.key}-badge-methods`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(C,g)=>(t.openBlock(),t.createBlock(E,{key:`${e.item.key}-badge-method-${g}`,appearance:Object.values(t.unref(os.BadgeMethodAppearances)).includes(C.toLowerCase())?C.toLowerCase():"custom",class:"config-badge","data-testid":`${e.item.key}-badge-method-${g}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(C),1)]),_:2},1032,["appearance","data-testid"]))),128))],8,Qs)):t.createCommentVNode("",!0),m.value.additionalComponent==="JsonCardItem"?(t.openBlock(),t.createElementBlock("div",{key:3,"data-testid":`${i.item.key}-json-array-content`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(C,g)=>(t.openBlock(),t.createBlock(So,{key:`json-array-item-${g}`,index:g,"is-array-item":"",item:C},null,8,["index","item"]))),128))],8,_s)):(t.openBlock(),t.createBlock(T,{key:4,text:t.unref(h)?e.item.value:""},{default:t.withCtx(()=>[t.createElementVNode("span",{ref_key:"textContent",ref:f,class:t.normalizeClass(["attrs-data-text",{truncated:e.truncated}])},t.toDisplayString(m.value.text),3)]),_:1},8,["text"]))]),_:1},16))])):(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-no-value`}," – ",8,Xs))],!0)],8,qs)])}}}),Oo=Je(ec,[["__scopeId","data-v-d268261c"]]),tc={class:"json-config"},nc={key:0,class:"json-endpoint"},mi=t.defineComponent({__name:"JsonCodeBlock",props:{config:{type:Object,required:!1,default:()=>({})},fetcherUrl:{type:String,required:!1,default:""},jsonRecord:{type:Object,required:!0},requestMethod:{type:String,required:!1,default:""}},setup(e){t.useCssVars(a=>({"090794fe":`${o.value}ch`}));const n=e,i=t.computed(()=>n.jsonRecord),o=t.computed(()=>{var a;if(!n.fetcherUrl)return 0;const r=(a=n.fetcherUrl)==null?void 0:a.split("/");return r.length<2?0:41+(n.requestMethod==="post"?r[r.length-1]:r[r.length-2]).length});return(a,r)=>{const l=t.resolveComponent("KBadge"),s=t.resolveComponent("KCodeBlock");return t.openBlock(),t.createElementBlock("div",tc,[n.fetcherUrl?(t.openBlock(),t.createElementBlock("div",nc,[t.createVNode(l,{appearance:n.requestMethod},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(n.requestMethod),1)]),_:1},8,["appearance"]),t.createVNode(s,{id:"json-endpoint-codeblock",code:n.fetcherUrl,language:"json","single-line":"",theme:"dark"},null,8,["code"])])):t.createCommentVNode("",!0),n.jsonRecord?(t.openBlock(),t.createBlock(s,{key:1,id:"json-codeblock",class:t.normalizeClass({"json-content":n.fetcherUrl}),code:JSON.stringify(i.value,null,2),language:"json",theme:"dark"},null,8,["class","code"])):t.createCommentVNode("",!0)])}}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function xo(e){return typeof e>"u"||e===null}function ic(e){return typeof e=="object"&&e!==null}function oc(e){return Array.isArray(e)?e:xo(e)?[]:[e]}function ac(e,n){var i,o,a,r;if(n)for(r=Object.keys(n),i=0,o=r.length;i<o;i+=1)a=r[i],e[a]=n[a];return e}function rc(e,n){var i="",o;for(o=0;o<n;o+=1)i+=e;return i}function lc(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var sc=xo,cc=ic,dc=oc,pc=rc,uc=lc,mc=ac,Ce={isNothing:sc,isObject:cc,toArray:dc,repeat:pc,isNegativeZero:uc,extend:mc};function Io(e,n){var i="",o=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(i+='in "'+e.mark.name+'" '),i+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!n&&e.mark.snippet&&(i+=`
1
+ (function(Z,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("axios"),require("@kong-ui-public/i18n"),require("@kong/kongponents"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","axios","@kong-ui-public/i18n","@kong/kongponents","vue-router"],t):(Z=typeof globalThis<"u"?globalThis:Z||self,t(Z["kong-ui-public-entities-plugins"]={},Z.Vue,Z.axios,Z["kong-ui-public-i18n"],Z.Kongponents,Z.VueRouter))})(this,function(Z,t,Ye,bt,os,Ut){"use strict";var qB=Object.defineProperty;var ts=Z=>{throw TypeError(Z)};var XB=(Z,t,Ye)=>t in Z?qB(Z,t,{enumerable:!0,configurable:!0,writable:!0,value:Ye}):Z[t]=Ye;var ue=(Z,t,Ye)=>XB(Z,typeof t!="symbol"?t+"":t,Ye),JB=(Z,t,Ye)=>t.has(Z)||ts("Cannot "+Ye);var ns=(Z,t,Ye)=>t.has(Z)?ts("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(Z):t.set(Z,Ye);var ci=(Z,t,Ye)=>(JB(Z,t,"access private method"),Ye);var jt,go,is;var Pt=typeof document<"u"?document.currentScript:null,di=(e=>(e.GatewayService="service",e.Route="route",e.Consumer="consumer",e.ConsumerGroup="consumer group",e.Plugin="plugin",e.Upstream="upstream",e.Certificate="certificate",e.CACertificate="ca certificate",e.SNI="SNI",e.Key="key",e.KeySet="key set",e.Vault="vault",e.Application="application",e.Developer="developer",e.acls="ACL Credential",e["basic-auth"]="Basic Auth Credential",e["key-auth"]="Key Auth Credential",e["key-auth-enc"]="Key Auth Encrypted Credential",e.oauth2="OAuth 2.0 Credential",e["hmac-auth"]="HMAC Credential",e.jwt="JWT Credential",e.Target="target",e.Policy="policy",e.Secret="secret",e))(di||{}),dt=(e=>(e.Edit="edit",e.Create="create",e))(dt||{}),wt=(e=>(e[e.Loading=0]="Loading",e[e.Idle=1]="Idle",e[e.NoResults=2]="NoResults",e[e.Error=3]="Error",e))(wt||{}),_=(e=>(e.ID="id",e.IdArray="id-array",e.Text="plain-text",e.Date="date",e.Redacted="redacted",e.RedactedArray="redacted-array",e.Json="json",e.JsonArray="json-array",e.BadgeTag="badge-tag",e.BadgeStatus="badge-status",e.BadgeMethod="badge-method",e.LinkInternal="link-internal",e.LinkExternal="link-external",e))(_||{}),Be=(e=>(e.Basic="basic",e.Advanced="advanced",e.Plugin="plugin",e))(Be||{});function as(){return{getAxiosInstance:(e={})=>{try{const n=t.inject("get-axios-instance",void 0);return typeof n=="function"?n(e):Ye.create({withCredentials:!0,timeout:3e4,...e})}catch(n){return console.warn("getAxiosInstance:",n.message||n),Ye.create({withCredentials:!0,timeout:3e4,...e})}},getTraceIdFromError:e=>{var n;return((n=e==null?void 0:e.response)==null?void 0:n.headers["x-datadog-trace-id"])||""}}}function rs(){return{debounce:(e,n)=>{let i;return(...o)=>{clearTimeout(i),i=window==null?void 0:window.setTimeout(()=>{e(...o)},n)}}}}const pi="khcp-user-table-preferences",ls={pageSize:30,sortColumnKey:void 0,sortColumnOrder:void 0,columnWidths:{},columnVisibility:{}};function ss(){const e=i=>{if(typeof i=="string")try{return JSON.parse(i)}catch(o){console.error("useTablePreferences(tryParseJson)",o);return}},n=()=>{const i=e(localStorage.getItem(pi));return!i||!Object.keys(i).length?new Map:new Map(Object.entries(i))};return{setTablePreferences:(i,o)=>{try{const a=n();a.set(i,o),localStorage.setItem(pi,JSON.stringify(Object.fromEntries(a.entries())))}catch(a){console.error("useTablePreferences(setTablePreferences)",a)}},getTablePreferences:i=>{const o=n();return(o==null?void 0:o.get(i))||void 0||ls},deleteAllTablePreferences:()=>{localStorage.removeItem(pi)}}}function ui(e={}){const{getAxiosInstance:n}=as();return{axiosInstance:n(e)}}const cs={actions:{copyId:"Copy ID",copied_id:'Copied "{id}" to the clipboard',copyToClipboard:"Copied successfully!",copyToClipboardFailed:"Failed to copy to the clipboard"}},ds={message:"Are you sure you want to delete this {entityType}?",messageWithName:"Are you sure you want to delete this {entityType} {entityName}?"},ps={actions:{viewConfiguration:"View Configuration",save:"Save",cancel:"Cancel",back:"Back"},configuration:{title:"Configuration",message:"Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML or JSON. This allows for straightforward importing into APIOps tools like decK with YAML, or Insomnia and cURL with JSON.",yaml:"YAML",json:"JSON"},errors:{edit:"The entity could not be edited at this time."}},us={emptyState:{noSearchResultsTitle:"No results found",noSearchResultsMessage:"Please adjust the criteria and try again.",noSearchResultsCtaText:"Clear"}},ms={title:"Configuration",actions:{copy:"Copy JSON"},sections:{advanced:"Advanced",plugin:"Plugin Specific Configuration"},commonFields:{id_label:"ID",name_label:"Name",enabled_label:"Enabled",enabled_tooltip:"Enabled is FTW",updated_at_label:"Last Updated",created_at_label:"Created",tags_label:"Tags",link:"Link"},statusBadge:{enabledLabel:"Enabled",disabledLabel:"Disabled"},copy:{tooltip:"Copy {label}",success:"Copied!"},errors:{load:"The entity configuration data could not be loaded at this time.",copy:"Failed to copy to clipboard"},general:{entryTitle:"Entry {index}",structuredFormat:"Structured"}},gs={filterButtonText:"Filter",fieldLabel:"Filter by:",inputPlaceholder:"Enter a value",selectPlaceholder:"Select an item",applyButtonText:"Apply",clearButtonText:"Clear",clearAllButtonText:"Clear all filters"},fs={errors:{fetch:"Could not fetch available items",invalid:"Please select a valid value"}},As={unexpected:"An unexpected error has occurred",dataKeyUndefined:'The data key "{dataKey}" does not exist in the response.'},hs={utf8Name:"The name can be any string containing characters, letters, numbers, or the following characters: ., -, _, or ~. Do not use spaces."},ys={enable:{title:"Enable {entityType}",message:"Are you sure you want to enable the {entityType} {entityName}?",confirmText:"Yes, enable"},disable:{title:"Disable {entityType}",message:"Are you sure you want to disable the {entityType} {entityName}?",confirmText:"Yes, disable"}},bs={global:cs,deleteModal:ds,baseForm:ps,baseTable:us,baseConfigCard:ms,filter:gs,debouncedFilter:fs,errors:As,validationErrors:hs,toggleModal:ys};function Tn(){const e=bt.createI18n("en-us",bs);return{i18n:e,i18nT:bt.i18nTComponent(e)}}function fo(){const e=(i,o)=>(o==null?void 0:o[i])??void 0,n=(i,o)=>{if(i.length!==o.length)return!1;const a=new Set([...i,...o]);for(const r of a){const l=i.filter(c=>c===r).length,s=o.filter(c=>c===r).length;if(l!==s)return!1}return!0};return{getPropValue:e,objectsAreEqual:(i,o,a)=>{if(a){if(Object.keys(i).length===Object.keys(o).length)for(const r in i)if(Array.isArray(i[r])&&Array.isArray(o[r])){if(n(i[r],o[r]))continue;return!1}else{if(i[r]===o[r])continue;return!1}else return!1;return!0}try{return JSON.stringify(i)===JSON.stringify(o)}catch{return!1}},sortAlpha:i=>(o,a)=>{let r=o[i]===void 0||o[i]===null?"":o[i],l=a[i]===void 0||a[i]===null?"":a[i];return Array.isArray(o[i])&&(r=o[i][0]),Array.isArray(a[i])&&(l=a[i][0]),r.localeCompare(l)},isValidUuid:i=>i?/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/.test(i):!1}}function ws(e,n,i,o={fetchedItemsKey:"data",searchKeys:["id"]}){i||(i="1000");const{axiosInstance:a}=ui(e.axiosRequestConfig),{i18n:{t:r}}=Tn(),{debounce:l}=rs(),s=l(async C=>{await T(C)},200),c=t.ref(!1),p=t.ref(""),d=t.ref(""),m=t.ref([]),f=t.ref([]),h=t.ref(void 0),S=t.unref(n);let y=`${e.apiBaseUrl}${S}`;e.app==="konnect"?y=y.replace(/{controlPlaneId}/gi,(e==null?void 0:e.controlPlaneId)||""):e.app==="kongManager"&&(y=y.replace(/\/{workspace}/gi,e!=null&&e.workspace?`/${e.workspace}`:""));const{isValidUuid:b}=fo(),E=async()=>{try{c.value=!0;const{data:C}=await a.get(`${y}?size=${i}`);C!=null&&C.next||(h.value=o.fetchedItemsKey in C?C[o.fetchedItemsKey]:[]),f.value=o.fetchedItemsKey in C?C[o.fetchedItemsKey]:[],m.value=f.value}catch{m.value=[],p.value=r("debouncedFilter.errors.fetch")}finally{c.value=!1}},O=t.ref(""),T=async C=>{var g,A,k;if(O.value!==C)if(O.value=C||"",h.value===void 0)try{if(c.value=!0,p.value="",d.value="",e.app==="konnect"){let B=y+"";C&&(B+=`/${C}`);const{data:w}=await a.get(`${B}?size=${i}`);o.fetchedItemsKey in w?m.value=w[o.fetchedItemsKey]:w!=null&&w.id?m.value=[w]:m.value=[]}else if(C){const B=[];b(C)&&o.searchKeys.includes("id")?B.push((async()=>{const{data:v}=await a.get(`${y}/${C}`);return[v[o.fetchedItemsKey]??v]})()):B.push(...o.searchKeys.filter(v=>v!=="id").map(async v=>{const{data:R}=await a.get(`${y}?${v}=${C}`);return R[o.fetchedItemsKey]}));const w=await Promise.all(B),M=new Set;m.value=[],(g=w==null?void 0:w.forEach)==null||g.call(w,v=>{var R;(R=v==null?void 0:v.forEach)==null||R.call(v,N=>{M.has(N.id)||(M.add(N.id),m.value.push(N))})})}else m.value=f.value}catch(B){((A=B==null?void 0:B.response)==null?void 0:A.status)===404?d.value=r("debouncedFilter.errors.invalid"):(m.value=[],p.value=r("debouncedFilter.errors.fetch"))}finally{c.value=!1}else c.value=!0,d.value="",C?(m.value=(k=h.value)==null?void 0:k.filter(B=>{var w;let M=!1;for(const v of o.searchKeys){const R=typeof B[v]=="string"?(w=B[v])==null?void 0:w.toLowerCase():B[v];R!=null&&R.includes(C.toLowerCase())&&(M=!0)}return M}),(!m.value||!m.value.length)&&(d.value=r("debouncedFilter.errors.invalid"))):m.value=h.value,c.value=!1};return{loading:c,error:p,validationError:d,results:m,allRecords:h,loadItems:E,debouncedQueryChange:s}}function Cs(e,n){const i=t.unref(n),o=t.computed(()=>e.apiBaseUrl.startsWith("/")?new URL(`${window.location.origin}${i}`):new URL(i));return o.value.search="",a=>`${o.value.href}/${a}`}function Es(){const{i18n:{t:e}}=Tn();return{getMessageFromError:n=>{var i,o,a,r;if(!n)return e("errors.unexpected");if(((i=n==null?void 0:n.response)==null?void 0:i.status)===401)return console.warn("getMessageFromError: User auth token is expired or missing, returning empty message."),"";if((o=n==null?void 0:n.response)!=null&&o.data){if(n.response.data.detail)return n.response.data.detail;if((a=n.response.data.details)!=null&&a.length)return n.response.data.details.map(l=>{let s=e("errors.unexpected");return l.messages&&typeof l.messages=="object"&&l.messages.length&&(s=l.messages.join(", ")),l.field?`${l.field} - ${s}`:s}).join("; ");if(n.response.data.message){const{message:l}=n.response.data;return Array.isArray(l)?(r=l[0])!=null&&r.constraints?Object.values(l[0].constraints)[0]:l[0]:l}if(typeof n.response.data=="string")return n.response.data;if(typeof n.response.data=="object")return Object.keys(n.response.data).map(l=>`${l} ${n.response.data[l]}`).join(", ")}return n.message||e("errors.unexpected")}}}function ks(e){const n=window.location.origin,i=n.endsWith("/")?n:`${n}/`;try{const o=e.join("/"),a=`${i}${o}`,r=e.some(l=>l.trim()==="");if(/^(https:\/\/(www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(:[0-9]+)?(\/[^\/]+)*)$|^(https|http):\/\/localhost(:[0-9]+)?(\/[^\/]+)*$/.test(a)&&!r&&new URL(a))return`${i}${o}`;throw new Error("Invalid url")}catch(o){return console.warn("Failed to build valid URL:",o),""}}function Ao(e,n){const i=t.ref(t.unref(e)),o=t.ref(t.unref(n)),a=t.computed(()=>!!(i.value.app==="konnect"||i.value.isExactMatch)),r=t.computed(()=>o.value.startsWith("/")?new URL(`${window.location.origin}${o.value}`):new URL(o.value));return l=>{const{page:s,pageSize:c,offset:p,sortColumnKey:d,sortColumnOrder:m,query:f}=l;try{let h=new URL(r.value.href);return a.value&&f?(h.search="",h=i.value.isExactMatch?new URL(`${h.href}/${f}/`):new URL(`${h.href}?filter[name][contains]=${f}`)):(a.value||new URLSearchParams(f).forEach((S,y)=>{h.searchParams.append(y,S)}),d&&h.searchParams.append("sort_by",d),m==="desc"&&h.searchParams.append("sort_desc","1"),h.searchParams.append("size",String(c))),p&&s!==1&&h.searchParams.append("offset",String(p)),h.href}catch(h){return console.error("RouteList(fetcher)",h),o.value}}}function Bs(e,n,i="data"){const o=t.unref(n),{axiosInstance:a}=ui(e.axiosRequestConfig),r=Ao(e,o),l=t.ref({status:wt.Idle});return{fetcher:async s=>{var c;try{l.value={status:wt.Loading};let p=r(s);p.includes("filter[name]")&&(p=`${p}&page[size]=${s.pageSize}&page[number]=${s.page}`);const d=await a.get(p);if(d.status>=400)throw d;const m=d.data,f=i&&i.replace(/[^\w-_]/gi,"");let h;m[f]&&Array.isArray(m[f])?h=m[f]:Array.isArray(m)?h=m:h=Object.keys(m).length?[m]:[];const S={data:h,total:h.length,...m.offset?{pagination:{offset:m.offset}}:null};return l.value={status:wt.Idle,response:S},S}catch(p){const d={data:[],total:0};return s.query&&(((c=p.response)==null?void 0:c.status)===404||p.status===404)?(l.value={status:wt.NoResults,response:d,error:p.response?p:{response:p}},d):(l.value={status:wt.Error,response:d,error:p.response?p:{response:p}},d)}},fetcherState:l}}function Ss(){const e=(i,o="_")=>i?i.split(o).map(a=>a.toLowerCase()==="id"?a.toUpperCase():a.charAt(0).toUpperCase()+a.substring(1)).join(" "):"",n=/(?:^|[\s-:'"])\w/g;return{capitalize:i=>i?i.replace(n,o=>o.toUpperCase()):"",convertKeyToTitle:e}}const ho=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,yo=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const n=e.match(ho);if(!n)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return n.shift(),n},bo=e=>e==="*"||e==="x"||e==="X",wo=e=>{const n=parseInt(e,10);return isNaN(n)?e:n},Os=(e,n)=>typeof e!=typeof n?[String(e),String(n)]:[e,n],xs=(e,n)=>{if(bo(e)||bo(n))return 0;const[i,o]=Os(wo(e),wo(n));return i>o?1:i<o?-1:0},Co=(e,n)=>{for(let i=0;i<Math.max(e.length,n.length);i++){const o=xs(e[i]||"0",n[i]||"0");if(o!==0)return o}return 0},Is=(e,n)=>{const i=yo(e),o=yo(n),a=i.pop(),r=o.pop(),l=Co(i,o);return l!==0?l:a&&r?Co(a.split("."),r.split(".")):a||r?a?-1:1:0},Eo=(e,n,i)=>{Ms(i);const o=Is(e,n);return ko[i].includes(o)},ko={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},Bo=Object.keys(ko),Ms=e=>{if(typeof e!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof e}`);if(Bo.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${Bo.join("|")}`)},vs=e=>typeof e=="string"&&/^[v\d]/.test(e)&&ho.test(e);function Ts(e){const{gatewayInfo:n,supportedRange:i}=e;if(!n)return!0;const{edition:o,version:a}=n;if(!vs(a))return console.error("Invalid version"),!1;const r=i[o];if(!r)return!1;const[l,s]=r;return!(l&&Eo(a,l,"<")||s&&Eo(a,s,">"))}function Rs(e){const n=t.ref(0),i=t.ref(0),o=t.ref(!1);return t.watch(e,a=>{a&&!o.value&&(n.value=a.offsetWidth,i.value=a.scrollWidth,o.value=!0)}),{isTruncated:t.computed(()=>n.value<i.value)}}function Ns(){const{i18n:{t:e}}=Tn();return{utf8Name:n=>/^[\p{N}\p{L}.\-_~]*$/u.test(n)?"":e("validationErrors.utf8Name")}}const we={useAxios:ui,useDebouncedFilter:ws,useDeleteUrlBuilder:Cs,useErrors:Es,useExternalLinkCreator:ks,useFetcher:Bs,useFetchUrlBuilder:Ao,useHelpers:fo,useStringHelpers:Ss,useI18n:Tn,useGatewayFeatureSupported:Ts,useTruncationDetector:Rs,useValidators:Ns},Vs={key:0,class:"config-card-fieldset-title"},Ls=t.defineComponent({__name:"JsonCardItem",props:{item:{type:Object,required:!0},index:{type:Number,default:-1},isArrayItem:{type:Boolean,default:!1}},setup(e){const n=e,{i18n:{t:i}}=we.useI18n(),{convertKeyToTitle:o}=we.useStringHelpers(),a=t.computed(()=>n.item.key??"json-array-item"),r=t.computed(()=>n.item.value??n.item),l=t.computed(()=>{const c=JSON.parse(JSON.stringify(r.value));return n.isArrayItem&&delete c.name,c}),s=t.computed(()=>{var c;return n.isArrayItem?(c=r.value)!=null&&c.name?o(r.value.name,"_"):i("baseConfigCard.general.entryTitle",{index:n.index}):""});return(c,p)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.isArrayItem?"fieldset":"div"),{class:t.normalizeClass(e.isArrayItem?"config-card-fieldset":"config-card-json-item")},{default:t.withCtx(()=>[e.isArrayItem?(t.openBlock(),t.createElementBlock("legend",Vs,[t.createElementVNode("b",null,t.toDisplayString(s.value),1)])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Object.keys(l.value),(d,m)=>(t.openBlock(),t.createBlock(Oo,{key:`${a.value}-property-${m}`,item:{key:d,label:t.unref(o)(d),value:l.value[d]}},null,8,["item"]))),128))]),_:1},8,["class"]))}}),Je=(e,n)=>{const i=e.__vccOpts||e;for(const[o,a]of n)i[o]=a;return i},So=Je(Ls,[["__scopeId","data-v-68ca83ec"]]),Ds=t.defineComponent({__name:"InternalLinkItem",props:{item:{type:Object,required:!0}},emits:["navigation-click"],setup(e){const{i18n:{t:n}}=we.useI18n();return(i,o)=>{const a=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(a,{appearance:"tertiary",class:"navigation-button",onClick:o[0]||(o[0]=r=>i.$emit("navigation-click",e.item))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.value||t.unref(n)("baseConfigCard.commonFields.link")),1)]),_:1})])}}}),en=Je(Ds,[["__scopeId","data-v-c96811e5"]]),js=t.defineComponent({__name:"StatusBadge",props:{status:{type:Boolean,default:!1}},setup(e){const{i18n:{t:n}}=we.useI18n();return(i,o)=>{const a=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(a,{appearance:e.status?"success":"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.status?t.unref(n)("baseConfigCard.statusBadge.enabledLabel"):t.unref(n)("baseConfigCard.statusBadge.disabledLabel")),1)]),_:1},8,["appearance"])}}}),Us="#0044f4",Ps="#e0e4ea",Ys="#afb7c5",Gs="1px",Hs="20px",Fs={class:"config-card-details-row"},zs=["data-testid"],Ks=["data-testid"],qs=["data-testid"],Xs=["data-testid"],Js={key:1},Zs=["data-testid"],Ws=["data-testid"],Qs=["data-testid"],_s=["data-testid"],$s={name:"ConfigCardItem",components:{JsonCardItem:So,StatusBadge:js,InternalLinkItem:en}},ec=t.defineComponent({...$s,props:{item:{type:Object,required:!0},slim:{type:Boolean,required:!1,default:!1},truncated:{type:Boolean,required:!1,default:!1}},emits:["navigation-click"],setup(e,{emit:n}){t.useCssVars(S=>({dc1d91a8:d.value?"none":`solid ${t.unref(Gs)} ${t.unref(Ps)}`,"59ccec5f":p.value&&s.value?"block":"flex","29318fbe":p.value&&s.value?"100%":i.slim?"50%":"25%","292d0408":p.value&&s.value?"100%":i.slim?"50%":"75%"}));const i=e,o=n,a=t.useSlots(),{i18n:{t:r,formatUnixTimeStamp:l}}=we.useI18n(),s=t.computed(()=>i.item.value!==void 0&&i.item.value!==null&&i.item.value!==""),c=t.computed(()=>!!(i.item.tooltip||a["label-tooltip"])),p=t.computed(()=>i.item.type===_.Json||i.item.type===_.JsonArray),d=t.computed(()=>i.item.type===_.JsonArray),m=t.computed(()=>{switch(i.item.type){case _.ID:return{tag:"KCopy",attrs:{"data-testid":`${i.item.key}-copy-uuid`,"copy-tooltip":r("baseConfigCard.copy.tooltip",{label:i.item.label}),text:i.item.value}};case _.IdArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{"copy-tooltip":r("baseConfigCard.copy.tooltip",{label:i.item.label})}};case _.Redacted:return{tag:"KCopy",attrs:{"data-testid":`${i.item.key}-copy-uuid-redacted`,format:"redacted","copy-tooltip":r("baseConfigCard.copy.tooltip",{label:i.item.label}),text:i.item.value}};case _.RedactedArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{format:"redacted","copy-tooltip":r("baseConfigCard.copy.tooltip",{label:i.item.label})}};case _.Date:return{tag:"div",attrs:{"data-testid":`${i.item.key}-date`},text:l(i.item.value)};case _.BadgeStatus:return{tag:"StatusBadge",attrs:{"data-testid":`${i.item.key}-badge-status`,status:i.item.value}};case _.BadgeTag:return{tag:"div",additionalComponent:"KBadge"};case _.BadgeMethod:return{tag:"div",additionalComponent:"KMethodBadge"};case _.LinkInternal:return{tag:"InternalLinkItem",attrs:{"data-testid":`${i.item.key}-internal-link`,item:i.item,onNavigationClick:S=>{o("navigation-click",S)}}};case _.LinkExternal:return{tag:"KExternalLink",attrs:{"data-testid":`${i.item.key}-external-link`,href:i.item.value},text:i.item.value};case _.Json:return{tag:"JsonCardItem",attrs:{"data-testid":`${i.item.key}-json-content`,item:i.item}};case _.JsonArray:return{tag:"div",additionalComponent:"JsonCardItem",attrs:{"data-testid":`${i.item.key}-json-array-content`,item:i.item}};default:return{tag:"div",attrs:{"data-testid":`${i.item.key}-plain-text`},text:i.item.value}}}),f=t.ref(),{isTruncated:h}=we.useTruncationDetector(f);return(S,y)=>{const b=t.resolveComponent("KLabel"),E=t.resolveComponent("KBadge"),O=t.resolveComponent("KCopy"),T=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",Fs,[t.createElementVNode("div",{class:"config-card-details-label","data-testid":`${e.item.key}-label`},[t.renderSlot(S.$slots,"label",{item:e.item},()=>[t.createVNode(b,{"tooltip-attributes":{maxWidth:"500px"}},t.createSlots({default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.label)+" ",1)]),_:2},[c.value?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{"data-testid":`${e.item.key}-label-tooltip`},[t.renderSlot(S.$slots,"label-tooltip",{},()=>[t.createTextVNode(t.toDisplayString(e.item.tooltip),1)],!0)],8,Ks)]),key:"0"}:void 0]),1024)],!0)],8,zs),t.createElementVNode("div",{class:"config-card-details-value","data-testid":`${e.item.key}-property-value`},[t.renderSlot(S.$slots,e.item.key,{rowValue:e.item.value},()=>[s.value?(t.openBlock(),t.createElementBlock("div",Js,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m.value.tag),t.normalizeProps(t.guardReactiveProps(m.value.attrs)),{default:t.withCtx(()=>[m.value.additionalComponent==="KBadge"?(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-badge-tags`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(C,g)=>(t.openBlock(),t.createBlock(E,{key:`${e.item.key}-badge-tag-${g}`,class:"config-badge","data-testid":`${e.item.key}-badge-tag-${g}`,tooltip:C,"truncation-tooltip":""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(C),1)]),_:2},1032,["data-testid","tooltip"]))),128))],8,Zs)):t.createCommentVNode("",!0),m.value.additionalComponent==="KCopy"?(t.openBlock(),t.createElementBlock("div",{key:1,class:"copy-uuid-array","data-testid":`${e.item.key}-copy-uuid-array`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(C,g)=>(t.openBlock(),t.createBlock(O,t.mergeProps({ref_for:!0},m.value.childAttrs,{key:`${e.item.key}-copy-uuid-${g}`,"data-testid":`${e.item.key}-copy-uuid-${g}`,text:C}),null,16,["data-testid","text"]))),128))],8,Ws)):m.value.additionalComponent==="KMethodBadge"?(t.openBlock(),t.createElementBlock("div",{key:2,class:"method-badge-array","data-testid":`${e.item.key}-badge-methods`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(C,g)=>(t.openBlock(),t.createBlock(E,{key:`${e.item.key}-badge-method-${g}`,appearance:Object.values(t.unref(os.BadgeMethodAppearances)).includes(C.toLowerCase())?C.toLowerCase():"custom",class:"config-badge","data-testid":`${e.item.key}-badge-method-${g}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(C),1)]),_:2},1032,["appearance","data-testid"]))),128))],8,Qs)):t.createCommentVNode("",!0),m.value.additionalComponent==="JsonCardItem"?(t.openBlock(),t.createElementBlock("div",{key:3,"data-testid":`${i.item.key}-json-array-content`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(C,g)=>(t.openBlock(),t.createBlock(So,{key:`json-array-item-${g}`,index:g,"is-array-item":"",item:C},null,8,["index","item"]))),128))],8,_s)):(t.openBlock(),t.createBlock(T,{key:4,text:t.unref(h)?e.item.value:""},{default:t.withCtx(()=>[t.createElementVNode("span",{ref_key:"textContent",ref:f,class:t.normalizeClass(["attrs-data-text",{truncated:e.truncated}])},t.toDisplayString(m.value.text),3)]),_:1},8,["text"]))]),_:1},16))])):(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-no-value`}," – ",8,Xs))],!0)],8,qs)])}}}),Oo=Je(ec,[["__scopeId","data-v-d268261c"]]),tc={class:"json-config"},nc={key:0,class:"json-endpoint"},mi=t.defineComponent({__name:"JsonCodeBlock",props:{config:{type:Object,required:!1,default:()=>({})},fetcherUrl:{type:String,required:!1,default:""},jsonRecord:{type:Object,required:!0},requestMethod:{type:String,required:!1,default:""}},setup(e){t.useCssVars(a=>({"090794fe":`${o.value}ch`}));const n=e,i=t.computed(()=>n.jsonRecord),o=t.computed(()=>{var a;if(!n.fetcherUrl)return 0;const r=(a=n.fetcherUrl)==null?void 0:a.split("/");return r.length<2?0:41+(n.requestMethod==="post"?r[r.length-1]:r[r.length-2]).length});return(a,r)=>{const l=t.resolveComponent("KBadge"),s=t.resolveComponent("KCodeBlock");return t.openBlock(),t.createElementBlock("div",tc,[n.fetcherUrl?(t.openBlock(),t.createElementBlock("div",nc,[t.createVNode(l,{appearance:n.requestMethod},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(n.requestMethod),1)]),_:1},8,["appearance"]),t.createVNode(s,{id:"json-endpoint-codeblock",code:n.fetcherUrl,language:"json","single-line":"",theme:"dark"},null,8,["code"])])):t.createCommentVNode("",!0),n.jsonRecord?(t.openBlock(),t.createBlock(s,{key:1,id:"json-codeblock",class:t.normalizeClass({"json-content":n.fetcherUrl}),code:JSON.stringify(i.value,null,2),language:"json",theme:"dark"},null,8,["class","code"])):t.createCommentVNode("",!0)])}}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function xo(e){return typeof e>"u"||e===null}function ic(e){return typeof e=="object"&&e!==null}function oc(e){return Array.isArray(e)?e:xo(e)?[]:[e]}function ac(e,n){var i,o,a,r;if(n)for(r=Object.keys(n),i=0,o=r.length;i<o;i+=1)a=r[i],e[a]=n[a];return e}function rc(e,n){var i="",o;for(o=0;o<n;o+=1)i+=e;return i}function lc(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var sc=xo,cc=ic,dc=oc,pc=rc,uc=lc,mc=ac,Ce={isNothing:sc,isObject:cc,toArray:dc,repeat:pc,isNegativeZero:uc,extend:mc};function Io(e,n){var i="",o=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(i+='in "'+e.mark.name+'" '),i+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!n&&e.mark.snippet&&(i+=`
2
2
 
3
3
  `+e.mark.snippet),o+" "+i):o}function tn(e,n){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=n,this.message=Io(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}tn.prototype=Object.create(Error.prototype),tn.prototype.constructor=tn,tn.prototype.toString=function(e){return this.name+": "+Io(this,e)};var Te=tn;function gi(e,n,i,o,a){var r="",l="",s=Math.floor(a/2)-1;return o-n>s&&(r=" ... ",n=o-s+r.length),i-o>s&&(l=" ...",i=o+s-l.length),{str:r+e.slice(n,i).replace(/\t/g,"→")+l,pos:o-n+r.length}}function fi(e,n){return Ce.repeat(" ",n-e.length)+e}function gc(e,n){if(n=Object.create(n||null),!e.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var i=/\r?\n|\r|\0/g,o=[0],a=[],r,l=-1;r=i.exec(e.buffer);)a.push(r.index),o.push(r.index+r[0].length),e.position<=r.index&&l<0&&(l=o.length-2);l<0&&(l=o.length-1);var s="",c,p,d=Math.min(e.line+n.linesAfter,a.length).toString().length,m=n.maxLength-(n.indent+d+3);for(c=1;c<=n.linesBefore&&!(l-c<0);c++)p=gi(e.buffer,o[l-c],a[l-c],e.position-(o[l]-o[l-c]),m),s=Ce.repeat(" ",n.indent)+fi((e.line-c+1).toString(),d)+" | "+p.str+`
4
4
  `+s;for(p=gi(e.buffer,o[l],a[l],e.position,m),s+=Ce.repeat(" ",n.indent)+fi((e.line+1).toString(),d)+" | "+p.str+`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kong-ui-public/entities-plugins",
3
- "version": "8.1.0",
3
+ "version": "8.1.1",
4
4
  "type": "module",
5
5
  "main": "./dist/entities-plugins.umd.js",
6
6
  "module": "./dist/entities-plugins.es.js",
@@ -56,12 +56,12 @@
56
56
  "dependencies": {
57
57
  "@kong/icons": "^1.15.0",
58
58
  "marked": "^12.0.2",
59
- "@kong-ui-public/entities-consumer-groups": "^3.3.7",
60
- "@kong-ui-public/entities-routes": "^3.4.7",
61
- "@kong-ui-public/entities-gateway-services": "^3.5.7",
62
- "@kong-ui-public/entities-shared": "^3.4.7",
63
- "@kong-ui-public/forms": "^4.0.11",
64
- "@kong-ui-public/entities-consumers": "^3.3.7"
59
+ "@kong-ui-public/entities-consumer-groups": "^3.3.8",
60
+ "@kong-ui-public/entities-gateway-services": "^3.5.8",
61
+ "@kong-ui-public/entities-routes": "^3.4.8",
62
+ "@kong-ui-public/entities-shared": "^3.5.0",
63
+ "@kong-ui-public/entities-consumers": "^3.3.8",
64
+ "@kong-ui-public/forms": "^4.0.11"
65
65
  },
66
66
  "scripts": {
67
67
  "dev": "cross-env USE_SANDBOX=true vite",