@kong-ui-public/entities-plugins 9.166.3 → 9.166.4
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.
|
@@ -602,7 +602,7 @@ const Pm = {
|
|
|
602
602
|
name: "AI Custom Guardrail",
|
|
603
603
|
description: "Integrate with any 3rd-party Guardrail service, with customizable enforcement modes — choose whether violations block, log, or allow traffic to proceed."
|
|
604
604
|
},
|
|
605
|
-
"metering-billing": {
|
|
605
|
+
"metering-and-billing": {
|
|
606
606
|
name: "Metering & Billing",
|
|
607
607
|
description: "Meter API requests and AI token usage for usage-based billing. Supports flexible customer identification, custom pricing dimensions, and fine-grained traffic filtering. Integrates natively with Konnect Metering & Billing."
|
|
608
608
|
}
|
|
@@ -2689,10 +2689,10 @@ const Qn = (e) => {
|
|
|
2689
2689
|
useLegacyForm: !0,
|
|
2690
2690
|
...re["ai-custom-guardrail"]
|
|
2691
2691
|
},
|
|
2692
|
-
"metering-billing": {
|
|
2693
|
-
descriptionKey: "plugins.meta.metering-billing.description",
|
|
2694
|
-
nameKey: "plugins.meta.metering-billing.name",
|
|
2695
|
-
...re["metering-billing"]
|
|
2692
|
+
"metering-and-billing": {
|
|
2693
|
+
descriptionKey: "plugins.meta.metering-and-billing.description",
|
|
2694
|
+
nameKey: "plugins.meta.metering-and-billing.name",
|
|
2695
|
+
...re["metering-and-billing"]
|
|
2696
2696
|
}
|
|
2697
2697
|
}, Oi = {
|
|
2698
2698
|
acl: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(be,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@kong-ui-public/entities-shared"),require("marked"),require("vue-router"),require("@kong-ui-public/i18n"),require("@kong-ui-public/entities-plugins-metadata"),require("@kong-ui-public/forms"),require("@kong-ui-public/entities-vaults"),require("@kong-ui-public/entities-vaults/dist/style.css"),require("@vueuse/core"),require("@kong/icons"),require("@kong/kongponents"),require("@kong-ui-public/entities-redis-configurations"),require("@kong-ui-public/entities-redis-configurations/dist/style.css"),require("monaco-editor"),require("@kong-ui-public/monaco-editor"),require("@kong-ui-public/monaco-editor/dist/runtime/style.css"),require("@vue-flow/core"),require("@vue-flow/background"),require("@vue-flow/controls"),require("@vue-flow/controls/dist/style.css"),require("@vue-flow/core/dist/style.css"),require("@vue-flow/core/dist/theme-default.css"),require("shiki"),require("zod"),require("@kong-ui-public/entities-plugins-icon")):typeof define=="function"&&define.amd?define(["exports","vue","@kong-ui-public/entities-shared","marked","vue-router","@kong-ui-public/i18n","@kong-ui-public/entities-plugins-metadata","@kong-ui-public/forms","@kong-ui-public/entities-vaults","@kong-ui-public/entities-vaults/dist/style.css","@vueuse/core","@kong/icons","@kong/kongponents","@kong-ui-public/entities-redis-configurations","@kong-ui-public/entities-redis-configurations/dist/style.css","monaco-editor","@kong-ui-public/monaco-editor","@kong-ui-public/monaco-editor/dist/runtime/style.css","@vue-flow/core","@vue-flow/background","@vue-flow/controls","@vue-flow/controls/dist/style.css","@vue-flow/core/dist/style.css","@vue-flow/core/dist/theme-default.css","shiki","zod","@kong-ui-public/entities-plugins-icon"],e):(be=typeof globalThis<"u"?globalThis:be||self,e(be["kong-ui-public-entities-plugins"]={},be.Vue,be["kong-ui-public-entities-shared"],be.marked,be.VueRouter,be["kong-ui-public-i18n"],be.entitiesPluginsMetadata,be.forms,be.entitiesVaults,null,be.core$1,be.KongIcons,be.Kongponents,be.entitiesRedisConfigurations,null,be.monaco,be.monacoEditor,null,be.core$2,be.background,be.controls,null,null,null,be.shiki,be.zod,be.entitiesPluginsIcon))})(this,(function(be,e,ee,Io,dn,et,F,je,Qn,GT,Ye,ue,$e,wi,zT,yu,Ci,HT,qe,_u,Ei,WT,YT,JT,bu,B,un){"use strict";var KT=Object.defineProperty;var qT=(be,e,ee)=>e in be?KT(be,e,{enumerable:!0,configurable:!0,writable:!0,value:ee}):be[e]=ee;var rt=(be,e,ee)=>qT(be,typeof e!="symbol"?e+"":e,ee);function ku(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,r.get?r:{enumerable:!0,get:()=>t[o]})}}return n.default=t,Object.freeze(n)}const To=ku(yu),at={actions:{cancel:"Cancel",view_configuration:"View Configuration",create:"New plugin",create_custom:"Create",configure:"Configure",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",enable:"Enable",enabled:"Enabled",delete:"Delete",disabled:"Disabled",confirm_delete:"Yes, delete",view:"View Details",configure_dynamic_ordering:"Configure Dynamic Ordering",go_to_plugins:"Go to Plugins",save:"Save",add_entity:"Add {entity}",remove_entity:"Remove {entity}",loading_spinner:"Loading..."},view_configuration:{title:"Configuration",message:"Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML, JSON, or Terraform. This allows for straightforward importing into APIOps tools like decK with YAML, Insomnia and cURL with JSON, or Terraform products with Terraform.",yaml:"YAML",terraform:"Terraform",json:"JSON",deck:"decK"},delete:{title:"Delete a Plugin",custom_title:"Delete {name}",custom_plugin:"Custom Plugin",description:"This action cannot be reversed.",description_custom:"Please ensure this plugin is not in use. This action cannot be reversed.",plugin_schema_in_use_title:"Unable to Delete Custom Plugin",plugin_schema_in_use_message:"The custom plugin schema {name} is being used in this control plane, please delete any existing instances before you delete this schema.",confirmModalText1:"Are you sure you want to delete",confirmModalText2:"Please ensure this plugin is not in use. This delete action cannot be reversed.",confirm_text:"Type {name} to confirm your action",success_message:"Successfully deleted custom plugin {name}"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard",tooltip:"Copy {label}",success_tooltip:"Copied!"},errors:{general:"Plugins could not be retrieved",delete:"The plugin could not be deleted at this time.",copy:"Failed to copy to clipboard",load_results:"Error loading available plugins",load_schema:"Error loading plugin schema"},search:{placeholder:{konnect:"Filter by name",exact:"Filter by exact instance name or ID",kongManager:"Filter by exact instance name or ID",select:"Filter plugins",search_plugins:"Search plugins"},filter:{field:{enabled:"Enabled"}},no_results:'No results found for "{filter}"'},labels:{new:"New"},plugins:{title:"Plugins",list:{toolbar_actions:{new_plugin:"New plugin"},table_headers:{applied_to:"Applied To",applied_to_badges:{consumer:"Consumer",global:"Global",route:"Route",service:"Service",consumer_group:"Consumer Group"},id:"ID",name:"Name",instance_name:"Instance Name",ordering:"Ordering",ordering_badge:{dynamic:"Dynamic",static:"Static"},enabled:"Enabled",tags:"Tags"},empty_state:{title:"Configure a New Plugin",description:"Plugins are used to extend Kong functionality."},empty_state_v2:{title:"Configure your first plugin",description:"Plugins extend gateways functionalities, offering features like authentication, rate limiting, and request transformations to enhance security and performance.",create_cta:"New plugin",group:"Plugins created in gateways within this group will automatically appear here.",learn_more:"Learn more"}},meta:{"basic-auth":{name:"Basic Authentication",credential_name:"Basic Auth Credential",description:"Add Basic Authentication to your Services"},"hmac-auth":{name:"HMAC Authentication",credential_name:"HMAC Credential",description:"Add HMAC Authentication to your Services"},"jwt-signer":{name:"JWT Signer",description:"Verify and (re-)sign one or two tokens in a request"},jwt:{name:"JWT",credential_name:"JWT Credential",description:"Verify and authenticate JSON Web Tokens"},"key-auth":{name:"Key Authentication",credential_name:"Key Auth Credential",description:"Add key authentication to your Services"},"key-auth-enc":{name:"Key Authentication Encrypted",credential_name:"Key Auth Encrypted",description:"Add key authentication to your Services with an encrypted token"},"ldap-auth-advanced":{name:"LDAP Authentication Advanced",description:"Integrate Kong with a LDAP server"},"ldap-auth":{name:"LDAP Authentication",description:"Integrate Kong with a LDAP server"},"oauth2-introspection":{name:"OAuth 2.0 Introspection",description:"Integrate Kong with a third-party OAuth 2.0 Authorization Server"},oauth2:{name:"OAuth 2.0 Authentication",credential_name:"OAuth 2.0 Application",description:"Add OAuth 2.0 authentication to your Services"},"openid-connect":{name:"OpenID Connect",description:"Integrate Kong with a third-party OpenID Connect 1.0 Provider"},"mtls-auth":{name:"Mutual TLS Authentication",description:"Secure routes and services with client certificate and mutual TLS authentication"},"vault-auth":{name:"Vault Authentication",description:"Secure routes and services with an access token and secret token, stored securely via Vault"},"bot-detection":{name:"Bot Detection",description:"Detect and clock bots or custom clients"},cors:{name:"CORS",description:"Allow developers to make requests from the browser"},"ip-restriction":{name:"IP Restriction",description:"Whitelist or blacklist IPs that can make requests"},opa:{name:"OPA",description:"Authorize requests against Open Policy Agent"},"kubernetes-sidecar-injector":{name:"Kubernetes Sidecar Injector",description:"This plugin will inject Kong dataplane nodes and form a service mesh on top of Kubernetes"},"request-validator":{name:"Request Validator",description:"Validate requests before they reach their upstream Service."},acl:{name:"ACL",credential_name:"Access Control Group",description:"Control which consumers can access Services"},canary:{name:"Canary Release",description:"Methodically roll out software changes to a subset of users"},"forward-proxy":{name:"Forward Proxy",description:"Allow Kong to connect to intermediary transparent HTTP proxies"},"proxy-cache":{name:"Proxy Caching",description:"Cache and serve commonly requested responses in Kong"},"proxy-cache-advanced":{name:"Proxy Caching Advanced",description:"Cache and serve commonly requested responses in Kong"},"graphql-proxy-cache-advanced":{name:"GraphQL Proxy Caching Advanced",description:"Cache and serve commonly requested responses in Kong"},"rate-limiting-advanced":{name:"Rate Limiting Advanced",description:"Rate-limit how many HTTP requests a developer can make"},"rate-limiting":{name:"Rate Limiting",description:"Rate-limit how many HTTP requests a developer can make"},"graphql-rate-limiting-advanced":{name:"GraphQL Rate Limiting Advanced",description:"Rate-limit how many HTTP requests a developer can make"},mocking:{name:"Mocking",description:"Provide mock endpoints to test your APIs in development against your services"},"request-size-limiting":{name:"Request Size Limiting",description:"Block requests with bodies greater than a specific size"},"request-termination":{name:"Request Termination",description:"Terminate all requests with a specific response"},"response-ratelimiting":{name:"Response Rate Limiting",description:"Rate-Limiting based on a custom response header value"},"route-by-header":{name:"Route by Header",description:"Route requests based on request headers"},"ai-proxy":{name:"AI Proxy",description:"Directly call a configured LLM, with mediated security and tuning parameters, and using standardised Kong request and response formats."},"ai-prompt-decorator":{name:"AI Prompt Decorator",description:"Prepend and append chat prompts to AI Proxy plugin LLM requests."},"ai-prompt-template":{name:"AI Prompt Template",description:"Define a set of templates, containing string variable placeholders, that can be consumed by users when used with the AI Proxy plugin."},"ai-prompt-guard":{name:"AI Prompt Guard",description:"Define a set of valid, and a set of invalid, regular expression patterns when calling LLM models with the AI Proxy plugin."},"ai-request-transformer":{name:"AI Request Transformer",description:"Use an LLM to transform API request from a user, before sending to the upstream service."},"ai-response-transformer":{name:"AI Response Transformer",description:"Use an LLM to transform API responses from the upstream service, before returning to the user."},"ai-rate-limiting-advanced":{name:"AI Rate Limiting Advanced",description:"Provides rate limiting for the providers used by any AI plugins."},"ai-azure-content-safety":{name:"AI Azure Content Safety",description:"Allows checking and auditing of AI-Proxy plugin messages, using Azure Cognitive Services, before proxying to upstream large-language model."},"aws-lambda":{name:"AWS Lambda",description:"Invoke and manage AWS Lambda functions from Kong"},"azure-functions":{name:"Azure Functions",description:"Invoke Azure functions"},openwhisk:{name:"OpenWhisk",description:"Invoke and manage OpenWhisk actions from Kong"},"pre-function":{name:"Kong Functions (Pre-Plugins)",description:"Add and manage custom lua functions to run before other plugins"},"post-function":{name:"Kong Functions (Post-Plugins)",description:"Add and manage custom lua functions to run after other plugins"},datadog:{name:"Datadog",description:"Visualize metrics on Datadog"},prometheus:{name:"Prometheus",description:"Export performance metrics to Prometheus"},zipkin:{name:"Zipkin",description:"Propagate zipkin spans and report spans to a zipkin server"},collector:{name:"Collector",description:"Automate spec-driven development & anomaly detection (Early Access)"},"response-transformer-advanced":{name:"Response Transformer Advanced",description:"Transform the response sent by the upstream server on the fly on Kong, before returning the response to the client."},"correlation-id":{name:"Correlation ID",description:"Correlate requests and responses using a unique ID"},"request-transformer-advanced":{name:"Request Transformer Advanced",description:"Use powerful regular expressions, variables and templates to transform API requests"},"request-transformer":{name:"Request Transformer",description:"Modify the request before hitting the upstream server"},"response-transformer":{name:"Response Transformer",description:"Modify the upstream response before returning it to the client"},"route-transformer-advanced":{name:"Route Transformer Advanced",description:"Transforms the routing on the fly in Kong, changing the upstream server/port/path to hit"},"kafka-upstream":{name:"Kafka Upstream",description:"Transform requests into Kafka messages in a topic"},degraphql:{name:"DeGraphQL",description:"Transform a GraphQL upstream into a REST API"},"exit-transformer":{name:"Exit Transformer",description:"Customize Kong exit responses sent downstream"},jq:{name:"jq",description:"Transform JSON objects included in API requests or responses using jq programs"},"file-log":{name:"File Log",description:"Append request and response data to a log file on disk"},"http-log":{name:"HTTP Log",description:"Send request and response logs to an HTTP server"},loggly:{name:"Loggly",description:"Send request and response logs to Loggly"},"statsd-advanced":{name:"StatsD Advanced",description:"Send traffic and Kong performance metrics to StatsD"},statsd:{name:"StatsD",description:"Send request and response logs to StatsD"},syslog:{name:"Syslog",description:"Send request and response logs to Syslog"},"tcp-log":{name:"TCP Log",description:"Send request and response logs to a TCP server"},"udp-log":{name:"UDP Log",description:"Send request and response logs to a UDP server"},"kafka-log":{name:"Kafka Log",description:"Publish request and response logs to a Kafka topic"},session:{name:"Session",description:"Sessions for Kong authentication"},"upstream-tls":{name:"Upstream TLS",description:"Enable TLS on upstream traffic by providing Kong with a list of trusted certificates."},"application-registration":{name:"Portal Application Registration",description:"Allow portal developers to register applications against services"},"konnect-application-auth":{name:"Konnect Application Auth",description:"Allow Konnect portal developers to register applications against services"},acme:{name:"ACME",description:"Let's Encrypt and ACMEv2 integration with Kong"},"grpc-gateway":{name:"gRPC Gateway",description:"Access gRPC services through HTTP REST"},"grpc-web":{name:"gRPC Web",description:"Allow browser clients to call gRPC services"},"upstream-timeout":{name:"Upstream Timeout",description:"Configure read, send and connect timeouts to an upstream"},opentelemetry:{name:"OpenTelemetry",description:"Propagate distributed tracing spans and report low-level spans to a OTLP-compatible server"},"websocket-validator":{name:"WebSocket Validator",description:"Validate individual WebSocket messages against to a user-specified schema before proxying them"},"websocket-size-limit":{name:"WebSocket Size Limit",description:"Allows operators to specify a maximum size for incoming WebSocket messages"},"tls-metadata-headers":{name:"TLS Metadata Headers",description:"Detects client certificates in requests, retrieves the TLS metadata, and proxies this metadata via HTTP headers"},"tls-handshake-modifier":{name:"TLS Handshake Modifier",description:"Requests the client certificate and if it exists, makes it available to other plugins acting on the request"},"oas-validation":{name:"OAS Validation",description:"Validate HTTP requests and responses based on an API Specification."},"jwe-decrypt":{name:"Kong JWE Decrypt",description:"The Kong JWE Decrypt plugin makes it possible to decrypt an inbound token(JWE) in a request."},"xml-threat-protection":{name:"XML Threat Protection",description:"Reduce the risk of XML attacks by checking the structure of XML payloads."},saml:{name:"SAML",description:"Security Assertion Markup Language (SAML) is an open standard for exchanging authentication and authorization data between an identity provider and a service provider."},"app-dynamics":{name:"AppDynamics",description:"This plugin integrates Kong with the AppDynamics APM platform so that proxy requests handled by Kong can be identified and analyzed in AppDynamics."},"json-threat-protection":{name:"JSON Threat Protection",description:"Apply size checks on JSON payload and minimize risk of content-level attacks"},"standard-webhooks":{name:"Standard Webhooks",description:"Validate incoming webhooks adhere to the Standard Webhooks specification, to which Kong is a contributor"},"ai-proxy-advanced":{name:"AI Proxy Advanced",description:"Route across different LLMs and models using advanced load balancing algorithms, including semantic routing."},"ai-semantic-cache":{name:"AI Semantic Cache",description:"Semantically cache AI requests to any LLM to reduce latency, improve end-user experiences and optimize GenAI costs."},"ai-semantic-prompt-guard":{name:"AI Semantic Prompt Guard",description:"Semantically and intelligently create allow and deny lists of topics that can be requested across every LLM."},"header-cert-auth":{name:"Header Certificate Authentication",description:"Authenticate clients with MTLS certificate passed in header by a WAF or load balancer"},"upstream-oauth":{name:"Upstream OAuth",description:"Configure Kong to obtain a OAuth2 token to consume an upstream API"},confluent:{name:"Confluent",description:"Streamlines integration with Confluent Cloud and transforms requests into messages published to a Confluent topic."},"service-protection":{name:"Service Protection",description:"Prevent abuse and protect services with absolute limits on the number of requests reaching the service."},"injection-protection":{name:"Injection Protection",description:"Protect against injection attacks by rejecting requests that match common injections patterns."},redirect:{name:"Redirect",description:"Redirect incoming requests to a new URL"},"kafka-consume":{name:"Kafka Consume",description:"Consume messages from Kafka topics over HTTP protocols."},"confluent-consume":{name:"Confluent Consume",description:"Consume messages from Confluent Kafka topics over HTTP protocols"},"request-callout":{name:"Request Callout",description:"Callout to third party APIs as part of request processing."},"ai-sanitizer":{name:"AI Sanitizer",description:"Sanitize personal or sensitive information from prompts before sending to LLM."},"ai-rag-injector":{name:"AI RAG Injector",description:"Attach contextual knowledge from vector databases with flexible template to LLM prompts."},datakit:{name:"Datakit",description:"Datakit is a workflow engine for working with external APIs."},"ai-prompt-compressor":{name:"AI Prompt Compressor",description:"The AI Prompt Compressor reduces costs associated with LLMs by compressing prompts."},"solace-upstream":{name:"Solace Upstream",description:"Transform requests into Solace messages in a Solace queue or topic."},"ai-aws-guardrails":{name:"AI AWS GuardRails",description:"The AI AWS GuardRails enables enforcement of introspection with the AWS GuardRails service for all requests processed by the AI Proxy plugin."},ace:{name:"Konnect Access Control Enforcement",description:"Enable Developer Self-Service for Konnect Dev Portals."},"solace-consume":{name:"Solace Consume",description:"Consume messages from Solace and make them available through HTTP endpoints."},"solace-log":{name:"Solace Log",description:"Publish request and response logs to a Solace topic."},"ai-llm-as-judge":{name:"AI LLM Judge",description:"Evaluate LLM responses with an external LLM service and use accuracy scores to drive dynamic load balancing for `llm/v1/chat` requests."},"ai-mcp-proxy":{name:"AI MCP Proxy",description:"Convert APIs into MCP tools, proxy MCP servers, expose multiple MCP tools, and observe MCP traffic in real time."},"ai-gcp-model-armor":{name:"AI GCP Model Armor",description:"Audit and validate AI Proxy messages with Google Cloud Model Armor before forwarding them to an upstream LLM."},"ai-mcp-oauth2":{name:"AI MCP OAuth2",description:"Secure MCP server access with OAuth2 authentication."},"ai-semantic-response-guard":{name:"AI Semantic Response Guard",description:"Permit or block prompts based on semantic similarity to known LLM responses, preventing misuse of `llm/v1/chat` or `llm/v1/completions` requests."},"ai-lakera-guard":{name:"AI Lakera Guard",description:"Audit and enforce safety policies on LLM requests and responses using the AI AWS Lakera plugin before they reach upstream LLMs."},"ai-a2a-proxy":{name:"AI A2A Proxy",description:"Securely proxy A2A Agents, with real-time RPC tracing and monitoring."},"ai-custom-guardrail":{name:"AI Custom Guardrail",description:"Integrate with any 3rd-party Guardrail service, with customizable enforcement modes — choose whether violations block, log, or allow traffic to proceed."},"metering-billing":{name:"Metering & Billing",description:"Meter API requests and AI token usage for usage-based billing. Supports flexible customer identification, custom pricing dimensions, and fine-grained traffic filtering. Integrates natively with Konnect Metering & Billing."}},fields:{service:"Service ID",route:"Route ID",consumer:"Consumer ID",consumer_group:"Consumer Group ID"},select:{custom_badge_text:"This plugin is data plane node specific",unavailable_tooltip:"This plugin is not available",already_exists:"This plugin is already applied to this resource",misc_plugins:"Other Plugins",show_all:"Show all",view_more:"View more",view_less:"View less",filter:{title:"Filter Plugins",featured:"Featured",type:"Type"},list:{table_headers:{name:"Plugin",description:"Description"}},tabs:{kong:{title:"Kong Plugins",description:"Kong plugins are bundled by default with Kong Gateway and are available across all control planes.",empty_title:"No Plugins",empty_description:"No plugins are available."},custom:{title:"Custom Plugins",description:"Custom plugins will be available in this control plane only.",disabled_tooltip:"Custom Plugins are not available with this Gateway. Create a Hybrid or Dedicated Cloud Gateway to leverage Custom Plugins.",empty_title:"No Custom Plugins",empty_description:"No custom plugins have been added to this Control Plane.",create:{name:"Custom Plugin",description:"Upload schema file to create custom plugin"}}},highlighted_plugins:{title:"Highlighted Plugins"}},form:{disable_data_retrieving:"You do not have permission to select {scope}",disable_source_scope_change:"Changing the {scope} is not allowed when configuring a plugin under it",no_selection:"No selection...",fields:{enabled:{label:"Enabled",on_text:"This plugin is Enabled",off_text:"This plugin is Disabled"},plugin_status:{label:"Plugin status",text_on:"Enabled",text_off:"Disabled"},instance_name:{label:"Name",placeholder:"Enter a unique name",help:"A custom name for this plugin instance to help with identifying from the list view."},condition:{label:"Condition",placeholder:"Enter a condition expression",help:"An expression used for conditional control over plugin execution. If the expression evaluates to true during the request flow, the plugin is executed; otherwise, it is skipped."},protocols:{label:"Protocols",placeholder:"Select valid protocols for the plugin",placeholderWithDefaultValues:"Select valid protocols for the plugin. Default protocols: {protocols}",help:"A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type."},tags:{label:"Tags",help:"An optional set of strings for grouping and filtering, separated by commas.",placeholder:"Tag1, Tag2, Tag3"}},scoping:{label:"Scoped",placeholder:"Search by name or UUID",disable_global_radio:"The plugin is set to 'Scoped' by default. To apply a plugin globally, please navigate to the global plugin list page.",global:{label:"Global",help:"All services, routes, and consumers"},gateway_service:{label:"Select a gateway service",help:"The Gateway Service to which this plugin configuration will apply",placeholder:"Select a Gateway Service",plural:"Gateway Services"},route:{label:"Select a route",help:"The Route that this Plugin configuration will target",placeholder:"Select a Route",plural:"Routes"},consumer:{label:"Select a consumer",help:"The Consumer that this plugin configuration will target",placeholder:"Select a Consumer",plural:"Consumers"},consumer_group:{label:"Select a consumer group",help:"The Consumer Group that this plugin configuration will target",placeholder:"Select a Consumer Group",plural:"Consumer Groups"}},grouping:{plugin_configuration:{title:"Plugin Configuration",description:"Configuration parameters for this plugin. View advanced parameters for extended configuration.",empty:"This plugin does not have required parameters."},advanced_parameters:{view:"Show additional settings",hide:"Hide additional settings"}},field_rules:{at_least_one_of:"At least one of the following values is required: {parameters}.",only_one_of:"Exactly one of these parameters is required: {parameters}",mutually_required:"These values must be used together: {parameters}.",mutually_exclusive:"Only one of these values can be used: {parameters}.",only_one_of_mutually_required:"Exactly one of the following parameter combinations is required (all parameters within a chosen combination are required):"},sections:{plugin_scope:{title:"Plugin scope",description:"Choose whether this plugin applies to all traffic (global) or is scoped to a specific service, route, or consumer."},general_info:{title:"General information",description:"Add details to help identify and manage your plugin."},plugin_config:{title:"Plugin configuration",description:"Set the plugin's behavior by defining its configuration settings."},plugin_general_info:{description:"Add a name or tags to help you identify and manage this plugin later."},code_mode:{title:"Code editor",description:"Configure this plugin by using YAML configuration."}}},"free-form":{editor_mode:{visual:"Visual editor",code:"Code editor"},"ai-mcp-proxy":{default_acl_item_label:"Default ACL #{index}",tool_item_label:"Tool #{index}"},"request-callout":{entity_name:"Request callout",by_lua_placeholder:"Enter Lua script here..."},datakit:{plugin_config:{title:"Flow editor"},description_code:"Configure this plugin by using YAML configuration. If you are copy/pasting in examples from the documentation - paste from below the <code>config</code> block.",description_flow:"Build flows visually with a drag-and-drop editor for Datakit. Visualize node connections, inputs, and outputs as you design.",description_example:"Start with a use case:",detected_config_format:"Detected {format} configuration. Do you want to convert it to Datakit configuration?",detected_config_format_title:"Convert configuration",detected_config_format_confirm:"Convert",examples:{authenticate:"Authenticate Kong to a third-party service",vault:"Authenticate to a third-party service using vault secrets",combine:"Combine multiple API responses",cache:"Conditionally fetch or store cache data",manipulate:"Manipulate request headers"},flow_editor:{mode:"Flow editor",name:"Datakit flow editor",cta:"Go to flow editor",disabled_tooltip:"The flow editor is unavailable due to critical configuration errors or features not supported in the flow editor:<br/><code>{reason}</code>",expand_panel:"Expand panel",collapse_panel:"Collapse panel",return_to_config:"Return to plugin configuration",canvas_panel:{request:"Request",response:"Response",node_count_plural:"{count} nodes",node_count_singular:"1 node"},panel_segments:{nodes:"Nodes",resources:{title:"Resources",vault:{title:"Vault secrets",add_button:"Add vault resource",name_exists_error:"Vault name already exists",name_required_error:"Vault name is required",edit:"Edit",delete:"Delete"},cache:{title:"Cache configuration",add_button:"Add cache configuration",strategy_options:{memory:"Memory",redis:"Redis"},select_redis_configuration:"Select a shared Redis configuration",inline_config:"Inline config",inline_config_preview:"You are using a dedicated Redis configuration, This is a preview of your current setup, please edit it in code editor"}}},vault_secret_picker:{title:"Add secret to Datakit",proceed_button_text:"Add secret",secret_name:{label:"Secret name",placeholder:"Enter a name",help:"A unique identifier for this secret in your Datakit configuration"}},node_panel:{title:"Node types",description:"Drag a node onto the canvas to add it to your data flow."},examples:"Examples",debug:{label:"Debug",description:'Enables detailed error messages in client responses, making debugging easier. <a href="https://developer.konghq.com/plugins/datakit/#debugging" target="_blank">See the docs</a> for details.'},actions:{zoom_in:"Zoom in",zoom_out:"Zoom out",fit_view:"Zoom to fit",auto_layout:"Auto layout",undo:"Undo",redo:"Redo",duplicate:"Duplicate",remove_from_branch:"Remove from branch",delete:"Delete",view_docs:"View docs",done:"Done"},node_types:{call:{name:"call",summary:"Call a third-party API",description:"Send an HTTP request and retrieve the response."},jq:{name:"jq",summary:"Transform data and cast variables with jq",description:'The <code>jq</code> node executes a jq script for processing JSON. See the official <a href="https://jqlang.org" target="_blank">jq docs</a> for more details.'},exit:{name:"exit",summary:"Return directly to the client",description:"Trigger an early exit that produces a direct response, rather than forwarding a proxied response."},property:{name:"property",summary:"Get and set Kong Gateway-specific data",description:"Get and set Kong Gateway host and request properties."},static:{name:"static",summary:"Configure static input values ahead of time",description:"Emits static values to be used as inputs for other nodes. The <code>static</code> node can help you with hardcoding some known value for an input."},branch:{name:"branch",summary:"Execute nodes based on matching input conditions",description:"Execute different nodes based on matching input conditions, such as a cache hit or miss."},cache:{name:"cache",summary:"Store and fetch cached data",description:"Store data into cache and fetch cached data from cache."},xml_to_json:{name:"xml_to_json",summary:"Transform XML to JSON",description:"Transform XML to JSON."},json_to_xml:{name:"json_to_xml",summary:"Transform JSON to XML",description:"Transform JSON to XML."},request:{name:"request",description:"Reads incoming client request properties. You cannot specify request node input."},response:{name:"response",description:"Updates properties of the outgoing client response."},service_request:{name:"service request",description:"Updates properties of the request sent to the service being proxied to."},service_response:{name:"service response",description:"Reads response properties from the service being proxied to."},vault:{name:"Vault",description:"Vault is a tool for securely accessing secrets."}},node_properties:{name:"Name",configuration:"Configuration",input:{label:"Inputs configuration",placeholder:"Select a source",add_button:"Add an input",or:"or",input:"Input",fields:"Fields",source:"Source",tooltip:"Fields are part of the node input. A source can connect to either the fields or the input, but not both."},input_name:{label:"Input name",placeholder:"Enter an input name"},jq:{label:"jq script",help:"Refer to {link} for full documentation."},output_value:{label:"Output value",value_name:"Value name",value:"Value",add_button:"Add a value"},property:{get:"get",set:"set"},branch:{placeholder:"Select nodes"},errors:{invalid_identifier_format:"{fieldName} must start with a letter or underscore and contain only letters, numbers, underscores, or hyphens",invalid_url_format:"Not a valid URL format",not_empty:"{fieldName} is required",not_float:"{fieldName} must be a float",not_integer:"{fieldName} must be an integer",not_number:"{fieldName} must be a number",not_unique:"{fieldName} must be unique",number_range:"{fieldName} must be between {min} and {max}",string_len_range:"{fieldName} must be between {minLength} and {maxLength} characters",reserved_node_name:'"{nodeName}" is a reserved node name',attributes_required:"Provide at least one of attributes_block_name or attributes_name_prefix"}},error:{invalid_connection:"Invalid connection",branch_cycle:"Cannot create a circular branch relationship"},confirm:{title:"Connection conflict",message:{confirm:"Are you sure you want to make this change?",switch:"You can connect an output source to either all inputs of a node or to individual inputs.",override:"Each input can connect to only one output, but one output can connect to many inputs.",branch_replace:"This node already belongs to another branch. Move it to the new branch?"},proceed:"Yes, update"},leave_confirm:"Leave current page? Changes you made may not be saved."},code_editor:{mode:"Code editor"}},vault_picker:{component_error:"The vault secret picker is not available"},tag_helper:"Use comma to separate values. eg: value1, value2",foreign_placeholder:"Enter a UUID of {entity}"}},redis:{title:"Redis Configuration",shared_configuration:{label:"Shared configuration",description:"Select an existing shared Redis configuration or create a new one. Changes to this configuration automatically apply to all associated plugins.",title:"Shared Redis Configuration",error:"Fetching shared Redis configurations failed."},dedicated_configuration:{label:"Dedicated configuration",description:"Create a Redis configuration that is used only by this plugin. Changes won’t affect other plugins."},config_card:{common_fields:{created_at_label:"Created at",updated_at_label:"Last Updated at",type_label:"Redis Type"}}},glossary:{plugin:"plugin"},custom_field:{key_auth_identity_realms:{cp_label:"Current Control Plane",cp_group_label:"Control Plane",realm_group_label:"Realms (Can only select one)"}},sp:{window_type:{label:"Rate Limit Window Type",help:"Sets the time window type to either <code>sliding</code> (default) or <code>fixed</code>.<br><ul><li>Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight.</li><li>Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window's counters.</li></ul>",options:{fixed:"Fixed",sliding:"Sliding"}},request_limits:{title:"Request Limits",subtitle:"Set one or more limits on the number of API requests allowed within a defined timeframe.",label:"Limit",label_index:"Limit {index}",request_number:"Request number",time_interval:"Time interval",interval_determiner:"Every",seconds:"Seconds"},error_message:{label:"Error message",code_placeholder:"Code message",message_placeholder:"Error message",help:"Set a custom error code and message to be returned when the rate limit is exceeded."},start_with_a_use_case:"Start with a use case:",use_cases:{fixed:{hourly_500:{label:"500 requests every hour",description:"A fixed limit of 500 requests per hour resetting sharply on the hour, ensuring no user can exceed this limit."},half_hourly_200:{label:"200 requests every 30 minutes",description:"Users are allowed 200 requests per 30 minutes, resetting exactly on the 30 minute mark with no carryover of unused limits."},daily_500:{label:"500 requests every day",description:"A strict limit of 5000 requests per day resetting promptly at midnight, preventing any burst traffic or inconsistent user experiences."}},sliding:{hourly_100:{label:"100 requests every hour",description:"Maximum of 100 requests every rolling hour, continuously adjusting the count over the course of the hour. No hard limit or known reset."},half_hourly_300:{label:"300 requests every 30 minutes",description:"Each user can make up to 300 requests in any rolling 30 minute period, with older requests dropping off as new requests are made."},hourly_500:{label:"500 requests every hour",description:`Each user is allowed 500 requests per hour.
|
|
1
|
+
(function(be,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@kong-ui-public/entities-shared"),require("marked"),require("vue-router"),require("@kong-ui-public/i18n"),require("@kong-ui-public/entities-plugins-metadata"),require("@kong-ui-public/forms"),require("@kong-ui-public/entities-vaults"),require("@kong-ui-public/entities-vaults/dist/style.css"),require("@vueuse/core"),require("@kong/icons"),require("@kong/kongponents"),require("@kong-ui-public/entities-redis-configurations"),require("@kong-ui-public/entities-redis-configurations/dist/style.css"),require("monaco-editor"),require("@kong-ui-public/monaco-editor"),require("@kong-ui-public/monaco-editor/dist/runtime/style.css"),require("@vue-flow/core"),require("@vue-flow/background"),require("@vue-flow/controls"),require("@vue-flow/controls/dist/style.css"),require("@vue-flow/core/dist/style.css"),require("@vue-flow/core/dist/theme-default.css"),require("shiki"),require("zod"),require("@kong-ui-public/entities-plugins-icon")):typeof define=="function"&&define.amd?define(["exports","vue","@kong-ui-public/entities-shared","marked","vue-router","@kong-ui-public/i18n","@kong-ui-public/entities-plugins-metadata","@kong-ui-public/forms","@kong-ui-public/entities-vaults","@kong-ui-public/entities-vaults/dist/style.css","@vueuse/core","@kong/icons","@kong/kongponents","@kong-ui-public/entities-redis-configurations","@kong-ui-public/entities-redis-configurations/dist/style.css","monaco-editor","@kong-ui-public/monaco-editor","@kong-ui-public/monaco-editor/dist/runtime/style.css","@vue-flow/core","@vue-flow/background","@vue-flow/controls","@vue-flow/controls/dist/style.css","@vue-flow/core/dist/style.css","@vue-flow/core/dist/theme-default.css","shiki","zod","@kong-ui-public/entities-plugins-icon"],e):(be=typeof globalThis<"u"?globalThis:be||self,e(be["kong-ui-public-entities-plugins"]={},be.Vue,be["kong-ui-public-entities-shared"],be.marked,be.VueRouter,be["kong-ui-public-i18n"],be.entitiesPluginsMetadata,be.forms,be.entitiesVaults,null,be.core$1,be.KongIcons,be.Kongponents,be.entitiesRedisConfigurations,null,be.monaco,be.monacoEditor,null,be.core$2,be.background,be.controls,null,null,null,be.shiki,be.zod,be.entitiesPluginsIcon))})(this,(function(be,e,ee,Io,dn,et,F,je,Qn,GT,Ye,ue,$e,wi,zT,yu,Ci,HT,qe,_u,Ei,WT,YT,JT,bu,B,un){"use strict";var KT=Object.defineProperty;var qT=(be,e,ee)=>e in be?KT(be,e,{enumerable:!0,configurable:!0,writable:!0,value:ee}):be[e]=ee;var rt=(be,e,ee)=>qT(be,typeof e!="symbol"?e+"":e,ee);function ku(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,r.get?r:{enumerable:!0,get:()=>t[o]})}}return n.default=t,Object.freeze(n)}const To=ku(yu),at={actions:{cancel:"Cancel",view_configuration:"View Configuration",create:"New plugin",create_custom:"Create",configure:"Configure",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",enable:"Enable",enabled:"Enabled",delete:"Delete",disabled:"Disabled",confirm_delete:"Yes, delete",view:"View Details",configure_dynamic_ordering:"Configure Dynamic Ordering",go_to_plugins:"Go to Plugins",save:"Save",add_entity:"Add {entity}",remove_entity:"Remove {entity}",loading_spinner:"Loading..."},view_configuration:{title:"Configuration",message:"Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML, JSON, or Terraform. This allows for straightforward importing into APIOps tools like decK with YAML, Insomnia and cURL with JSON, or Terraform products with Terraform.",yaml:"YAML",terraform:"Terraform",json:"JSON",deck:"decK"},delete:{title:"Delete a Plugin",custom_title:"Delete {name}",custom_plugin:"Custom Plugin",description:"This action cannot be reversed.",description_custom:"Please ensure this plugin is not in use. This action cannot be reversed.",plugin_schema_in_use_title:"Unable to Delete Custom Plugin",plugin_schema_in_use_message:"The custom plugin schema {name} is being used in this control plane, please delete any existing instances before you delete this schema.",confirmModalText1:"Are you sure you want to delete",confirmModalText2:"Please ensure this plugin is not in use. This delete action cannot be reversed.",confirm_text:"Type {name} to confirm your action",success_message:"Successfully deleted custom plugin {name}"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard",tooltip:"Copy {label}",success_tooltip:"Copied!"},errors:{general:"Plugins could not be retrieved",delete:"The plugin could not be deleted at this time.",copy:"Failed to copy to clipboard",load_results:"Error loading available plugins",load_schema:"Error loading plugin schema"},search:{placeholder:{konnect:"Filter by name",exact:"Filter by exact instance name or ID",kongManager:"Filter by exact instance name or ID",select:"Filter plugins",search_plugins:"Search plugins"},filter:{field:{enabled:"Enabled"}},no_results:'No results found for "{filter}"'},labels:{new:"New"},plugins:{title:"Plugins",list:{toolbar_actions:{new_plugin:"New plugin"},table_headers:{applied_to:"Applied To",applied_to_badges:{consumer:"Consumer",global:"Global",route:"Route",service:"Service",consumer_group:"Consumer Group"},id:"ID",name:"Name",instance_name:"Instance Name",ordering:"Ordering",ordering_badge:{dynamic:"Dynamic",static:"Static"},enabled:"Enabled",tags:"Tags"},empty_state:{title:"Configure a New Plugin",description:"Plugins are used to extend Kong functionality."},empty_state_v2:{title:"Configure your first plugin",description:"Plugins extend gateways functionalities, offering features like authentication, rate limiting, and request transformations to enhance security and performance.",create_cta:"New plugin",group:"Plugins created in gateways within this group will automatically appear here.",learn_more:"Learn more"}},meta:{"basic-auth":{name:"Basic Authentication",credential_name:"Basic Auth Credential",description:"Add Basic Authentication to your Services"},"hmac-auth":{name:"HMAC Authentication",credential_name:"HMAC Credential",description:"Add HMAC Authentication to your Services"},"jwt-signer":{name:"JWT Signer",description:"Verify and (re-)sign one or two tokens in a request"},jwt:{name:"JWT",credential_name:"JWT Credential",description:"Verify and authenticate JSON Web Tokens"},"key-auth":{name:"Key Authentication",credential_name:"Key Auth Credential",description:"Add key authentication to your Services"},"key-auth-enc":{name:"Key Authentication Encrypted",credential_name:"Key Auth Encrypted",description:"Add key authentication to your Services with an encrypted token"},"ldap-auth-advanced":{name:"LDAP Authentication Advanced",description:"Integrate Kong with a LDAP server"},"ldap-auth":{name:"LDAP Authentication",description:"Integrate Kong with a LDAP server"},"oauth2-introspection":{name:"OAuth 2.0 Introspection",description:"Integrate Kong with a third-party OAuth 2.0 Authorization Server"},oauth2:{name:"OAuth 2.0 Authentication",credential_name:"OAuth 2.0 Application",description:"Add OAuth 2.0 authentication to your Services"},"openid-connect":{name:"OpenID Connect",description:"Integrate Kong with a third-party OpenID Connect 1.0 Provider"},"mtls-auth":{name:"Mutual TLS Authentication",description:"Secure routes and services with client certificate and mutual TLS authentication"},"vault-auth":{name:"Vault Authentication",description:"Secure routes and services with an access token and secret token, stored securely via Vault"},"bot-detection":{name:"Bot Detection",description:"Detect and clock bots or custom clients"},cors:{name:"CORS",description:"Allow developers to make requests from the browser"},"ip-restriction":{name:"IP Restriction",description:"Whitelist or blacklist IPs that can make requests"},opa:{name:"OPA",description:"Authorize requests against Open Policy Agent"},"kubernetes-sidecar-injector":{name:"Kubernetes Sidecar Injector",description:"This plugin will inject Kong dataplane nodes and form a service mesh on top of Kubernetes"},"request-validator":{name:"Request Validator",description:"Validate requests before they reach their upstream Service."},acl:{name:"ACL",credential_name:"Access Control Group",description:"Control which consumers can access Services"},canary:{name:"Canary Release",description:"Methodically roll out software changes to a subset of users"},"forward-proxy":{name:"Forward Proxy",description:"Allow Kong to connect to intermediary transparent HTTP proxies"},"proxy-cache":{name:"Proxy Caching",description:"Cache and serve commonly requested responses in Kong"},"proxy-cache-advanced":{name:"Proxy Caching Advanced",description:"Cache and serve commonly requested responses in Kong"},"graphql-proxy-cache-advanced":{name:"GraphQL Proxy Caching Advanced",description:"Cache and serve commonly requested responses in Kong"},"rate-limiting-advanced":{name:"Rate Limiting Advanced",description:"Rate-limit how many HTTP requests a developer can make"},"rate-limiting":{name:"Rate Limiting",description:"Rate-limit how many HTTP requests a developer can make"},"graphql-rate-limiting-advanced":{name:"GraphQL Rate Limiting Advanced",description:"Rate-limit how many HTTP requests a developer can make"},mocking:{name:"Mocking",description:"Provide mock endpoints to test your APIs in development against your services"},"request-size-limiting":{name:"Request Size Limiting",description:"Block requests with bodies greater than a specific size"},"request-termination":{name:"Request Termination",description:"Terminate all requests with a specific response"},"response-ratelimiting":{name:"Response Rate Limiting",description:"Rate-Limiting based on a custom response header value"},"route-by-header":{name:"Route by Header",description:"Route requests based on request headers"},"ai-proxy":{name:"AI Proxy",description:"Directly call a configured LLM, with mediated security and tuning parameters, and using standardised Kong request and response formats."},"ai-prompt-decorator":{name:"AI Prompt Decorator",description:"Prepend and append chat prompts to AI Proxy plugin LLM requests."},"ai-prompt-template":{name:"AI Prompt Template",description:"Define a set of templates, containing string variable placeholders, that can be consumed by users when used with the AI Proxy plugin."},"ai-prompt-guard":{name:"AI Prompt Guard",description:"Define a set of valid, and a set of invalid, regular expression patterns when calling LLM models with the AI Proxy plugin."},"ai-request-transformer":{name:"AI Request Transformer",description:"Use an LLM to transform API request from a user, before sending to the upstream service."},"ai-response-transformer":{name:"AI Response Transformer",description:"Use an LLM to transform API responses from the upstream service, before returning to the user."},"ai-rate-limiting-advanced":{name:"AI Rate Limiting Advanced",description:"Provides rate limiting for the providers used by any AI plugins."},"ai-azure-content-safety":{name:"AI Azure Content Safety",description:"Allows checking and auditing of AI-Proxy plugin messages, using Azure Cognitive Services, before proxying to upstream large-language model."},"aws-lambda":{name:"AWS Lambda",description:"Invoke and manage AWS Lambda functions from Kong"},"azure-functions":{name:"Azure Functions",description:"Invoke Azure functions"},openwhisk:{name:"OpenWhisk",description:"Invoke and manage OpenWhisk actions from Kong"},"pre-function":{name:"Kong Functions (Pre-Plugins)",description:"Add and manage custom lua functions to run before other plugins"},"post-function":{name:"Kong Functions (Post-Plugins)",description:"Add and manage custom lua functions to run after other plugins"},datadog:{name:"Datadog",description:"Visualize metrics on Datadog"},prometheus:{name:"Prometheus",description:"Export performance metrics to Prometheus"},zipkin:{name:"Zipkin",description:"Propagate zipkin spans and report spans to a zipkin server"},collector:{name:"Collector",description:"Automate spec-driven development & anomaly detection (Early Access)"},"response-transformer-advanced":{name:"Response Transformer Advanced",description:"Transform the response sent by the upstream server on the fly on Kong, before returning the response to the client."},"correlation-id":{name:"Correlation ID",description:"Correlate requests and responses using a unique ID"},"request-transformer-advanced":{name:"Request Transformer Advanced",description:"Use powerful regular expressions, variables and templates to transform API requests"},"request-transformer":{name:"Request Transformer",description:"Modify the request before hitting the upstream server"},"response-transformer":{name:"Response Transformer",description:"Modify the upstream response before returning it to the client"},"route-transformer-advanced":{name:"Route Transformer Advanced",description:"Transforms the routing on the fly in Kong, changing the upstream server/port/path to hit"},"kafka-upstream":{name:"Kafka Upstream",description:"Transform requests into Kafka messages in a topic"},degraphql:{name:"DeGraphQL",description:"Transform a GraphQL upstream into a REST API"},"exit-transformer":{name:"Exit Transformer",description:"Customize Kong exit responses sent downstream"},jq:{name:"jq",description:"Transform JSON objects included in API requests or responses using jq programs"},"file-log":{name:"File Log",description:"Append request and response data to a log file on disk"},"http-log":{name:"HTTP Log",description:"Send request and response logs to an HTTP server"},loggly:{name:"Loggly",description:"Send request and response logs to Loggly"},"statsd-advanced":{name:"StatsD Advanced",description:"Send traffic and Kong performance metrics to StatsD"},statsd:{name:"StatsD",description:"Send request and response logs to StatsD"},syslog:{name:"Syslog",description:"Send request and response logs to Syslog"},"tcp-log":{name:"TCP Log",description:"Send request and response logs to a TCP server"},"udp-log":{name:"UDP Log",description:"Send request and response logs to a UDP server"},"kafka-log":{name:"Kafka Log",description:"Publish request and response logs to a Kafka topic"},session:{name:"Session",description:"Sessions for Kong authentication"},"upstream-tls":{name:"Upstream TLS",description:"Enable TLS on upstream traffic by providing Kong with a list of trusted certificates."},"application-registration":{name:"Portal Application Registration",description:"Allow portal developers to register applications against services"},"konnect-application-auth":{name:"Konnect Application Auth",description:"Allow Konnect portal developers to register applications against services"},acme:{name:"ACME",description:"Let's Encrypt and ACMEv2 integration with Kong"},"grpc-gateway":{name:"gRPC Gateway",description:"Access gRPC services through HTTP REST"},"grpc-web":{name:"gRPC Web",description:"Allow browser clients to call gRPC services"},"upstream-timeout":{name:"Upstream Timeout",description:"Configure read, send and connect timeouts to an upstream"},opentelemetry:{name:"OpenTelemetry",description:"Propagate distributed tracing spans and report low-level spans to a OTLP-compatible server"},"websocket-validator":{name:"WebSocket Validator",description:"Validate individual WebSocket messages against to a user-specified schema before proxying them"},"websocket-size-limit":{name:"WebSocket Size Limit",description:"Allows operators to specify a maximum size for incoming WebSocket messages"},"tls-metadata-headers":{name:"TLS Metadata Headers",description:"Detects client certificates in requests, retrieves the TLS metadata, and proxies this metadata via HTTP headers"},"tls-handshake-modifier":{name:"TLS Handshake Modifier",description:"Requests the client certificate and if it exists, makes it available to other plugins acting on the request"},"oas-validation":{name:"OAS Validation",description:"Validate HTTP requests and responses based on an API Specification."},"jwe-decrypt":{name:"Kong JWE Decrypt",description:"The Kong JWE Decrypt plugin makes it possible to decrypt an inbound token(JWE) in a request."},"xml-threat-protection":{name:"XML Threat Protection",description:"Reduce the risk of XML attacks by checking the structure of XML payloads."},saml:{name:"SAML",description:"Security Assertion Markup Language (SAML) is an open standard for exchanging authentication and authorization data between an identity provider and a service provider."},"app-dynamics":{name:"AppDynamics",description:"This plugin integrates Kong with the AppDynamics APM platform so that proxy requests handled by Kong can be identified and analyzed in AppDynamics."},"json-threat-protection":{name:"JSON Threat Protection",description:"Apply size checks on JSON payload and minimize risk of content-level attacks"},"standard-webhooks":{name:"Standard Webhooks",description:"Validate incoming webhooks adhere to the Standard Webhooks specification, to which Kong is a contributor"},"ai-proxy-advanced":{name:"AI Proxy Advanced",description:"Route across different LLMs and models using advanced load balancing algorithms, including semantic routing."},"ai-semantic-cache":{name:"AI Semantic Cache",description:"Semantically cache AI requests to any LLM to reduce latency, improve end-user experiences and optimize GenAI costs."},"ai-semantic-prompt-guard":{name:"AI Semantic Prompt Guard",description:"Semantically and intelligently create allow and deny lists of topics that can be requested across every LLM."},"header-cert-auth":{name:"Header Certificate Authentication",description:"Authenticate clients with MTLS certificate passed in header by a WAF or load balancer"},"upstream-oauth":{name:"Upstream OAuth",description:"Configure Kong to obtain a OAuth2 token to consume an upstream API"},confluent:{name:"Confluent",description:"Streamlines integration with Confluent Cloud and transforms requests into messages published to a Confluent topic."},"service-protection":{name:"Service Protection",description:"Prevent abuse and protect services with absolute limits on the number of requests reaching the service."},"injection-protection":{name:"Injection Protection",description:"Protect against injection attacks by rejecting requests that match common injections patterns."},redirect:{name:"Redirect",description:"Redirect incoming requests to a new URL"},"kafka-consume":{name:"Kafka Consume",description:"Consume messages from Kafka topics over HTTP protocols."},"confluent-consume":{name:"Confluent Consume",description:"Consume messages from Confluent Kafka topics over HTTP protocols"},"request-callout":{name:"Request Callout",description:"Callout to third party APIs as part of request processing."},"ai-sanitizer":{name:"AI Sanitizer",description:"Sanitize personal or sensitive information from prompts before sending to LLM."},"ai-rag-injector":{name:"AI RAG Injector",description:"Attach contextual knowledge from vector databases with flexible template to LLM prompts."},datakit:{name:"Datakit",description:"Datakit is a workflow engine for working with external APIs."},"ai-prompt-compressor":{name:"AI Prompt Compressor",description:"The AI Prompt Compressor reduces costs associated with LLMs by compressing prompts."},"solace-upstream":{name:"Solace Upstream",description:"Transform requests into Solace messages in a Solace queue or topic."},"ai-aws-guardrails":{name:"AI AWS GuardRails",description:"The AI AWS GuardRails enables enforcement of introspection with the AWS GuardRails service for all requests processed by the AI Proxy plugin."},ace:{name:"Konnect Access Control Enforcement",description:"Enable Developer Self-Service for Konnect Dev Portals."},"solace-consume":{name:"Solace Consume",description:"Consume messages from Solace and make them available through HTTP endpoints."},"solace-log":{name:"Solace Log",description:"Publish request and response logs to a Solace topic."},"ai-llm-as-judge":{name:"AI LLM Judge",description:"Evaluate LLM responses with an external LLM service and use accuracy scores to drive dynamic load balancing for `llm/v1/chat` requests."},"ai-mcp-proxy":{name:"AI MCP Proxy",description:"Convert APIs into MCP tools, proxy MCP servers, expose multiple MCP tools, and observe MCP traffic in real time."},"ai-gcp-model-armor":{name:"AI GCP Model Armor",description:"Audit and validate AI Proxy messages with Google Cloud Model Armor before forwarding them to an upstream LLM."},"ai-mcp-oauth2":{name:"AI MCP OAuth2",description:"Secure MCP server access with OAuth2 authentication."},"ai-semantic-response-guard":{name:"AI Semantic Response Guard",description:"Permit or block prompts based on semantic similarity to known LLM responses, preventing misuse of `llm/v1/chat` or `llm/v1/completions` requests."},"ai-lakera-guard":{name:"AI Lakera Guard",description:"Audit and enforce safety policies on LLM requests and responses using the AI AWS Lakera plugin before they reach upstream LLMs."},"ai-a2a-proxy":{name:"AI A2A Proxy",description:"Securely proxy A2A Agents, with real-time RPC tracing and monitoring."},"ai-custom-guardrail":{name:"AI Custom Guardrail",description:"Integrate with any 3rd-party Guardrail service, with customizable enforcement modes — choose whether violations block, log, or allow traffic to proceed."},"metering-and-billing":{name:"Metering & Billing",description:"Meter API requests and AI token usage for usage-based billing. Supports flexible customer identification, custom pricing dimensions, and fine-grained traffic filtering. Integrates natively with Konnect Metering & Billing."}},fields:{service:"Service ID",route:"Route ID",consumer:"Consumer ID",consumer_group:"Consumer Group ID"},select:{custom_badge_text:"This plugin is data plane node specific",unavailable_tooltip:"This plugin is not available",already_exists:"This plugin is already applied to this resource",misc_plugins:"Other Plugins",show_all:"Show all",view_more:"View more",view_less:"View less",filter:{title:"Filter Plugins",featured:"Featured",type:"Type"},list:{table_headers:{name:"Plugin",description:"Description"}},tabs:{kong:{title:"Kong Plugins",description:"Kong plugins are bundled by default with Kong Gateway and are available across all control planes.",empty_title:"No Plugins",empty_description:"No plugins are available."},custom:{title:"Custom Plugins",description:"Custom plugins will be available in this control plane only.",disabled_tooltip:"Custom Plugins are not available with this Gateway. Create a Hybrid or Dedicated Cloud Gateway to leverage Custom Plugins.",empty_title:"No Custom Plugins",empty_description:"No custom plugins have been added to this Control Plane.",create:{name:"Custom Plugin",description:"Upload schema file to create custom plugin"}}},highlighted_plugins:{title:"Highlighted Plugins"}},form:{disable_data_retrieving:"You do not have permission to select {scope}",disable_source_scope_change:"Changing the {scope} is not allowed when configuring a plugin under it",no_selection:"No selection...",fields:{enabled:{label:"Enabled",on_text:"This plugin is Enabled",off_text:"This plugin is Disabled"},plugin_status:{label:"Plugin status",text_on:"Enabled",text_off:"Disabled"},instance_name:{label:"Name",placeholder:"Enter a unique name",help:"A custom name for this plugin instance to help with identifying from the list view."},condition:{label:"Condition",placeholder:"Enter a condition expression",help:"An expression used for conditional control over plugin execution. If the expression evaluates to true during the request flow, the plugin is executed; otherwise, it is skipped."},protocols:{label:"Protocols",placeholder:"Select valid protocols for the plugin",placeholderWithDefaultValues:"Select valid protocols for the plugin. Default protocols: {protocols}",help:"A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type."},tags:{label:"Tags",help:"An optional set of strings for grouping and filtering, separated by commas.",placeholder:"Tag1, Tag2, Tag3"}},scoping:{label:"Scoped",placeholder:"Search by name or UUID",disable_global_radio:"The plugin is set to 'Scoped' by default. To apply a plugin globally, please navigate to the global plugin list page.",global:{label:"Global",help:"All services, routes, and consumers"},gateway_service:{label:"Select a gateway service",help:"The Gateway Service to which this plugin configuration will apply",placeholder:"Select a Gateway Service",plural:"Gateway Services"},route:{label:"Select a route",help:"The Route that this Plugin configuration will target",placeholder:"Select a Route",plural:"Routes"},consumer:{label:"Select a consumer",help:"The Consumer that this plugin configuration will target",placeholder:"Select a Consumer",plural:"Consumers"},consumer_group:{label:"Select a consumer group",help:"The Consumer Group that this plugin configuration will target",placeholder:"Select a Consumer Group",plural:"Consumer Groups"}},grouping:{plugin_configuration:{title:"Plugin Configuration",description:"Configuration parameters for this plugin. View advanced parameters for extended configuration.",empty:"This plugin does not have required parameters."},advanced_parameters:{view:"Show additional settings",hide:"Hide additional settings"}},field_rules:{at_least_one_of:"At least one of the following values is required: {parameters}.",only_one_of:"Exactly one of these parameters is required: {parameters}",mutually_required:"These values must be used together: {parameters}.",mutually_exclusive:"Only one of these values can be used: {parameters}.",only_one_of_mutually_required:"Exactly one of the following parameter combinations is required (all parameters within a chosen combination are required):"},sections:{plugin_scope:{title:"Plugin scope",description:"Choose whether this plugin applies to all traffic (global) or is scoped to a specific service, route, or consumer."},general_info:{title:"General information",description:"Add details to help identify and manage your plugin."},plugin_config:{title:"Plugin configuration",description:"Set the plugin's behavior by defining its configuration settings."},plugin_general_info:{description:"Add a name or tags to help you identify and manage this plugin later."},code_mode:{title:"Code editor",description:"Configure this plugin by using YAML configuration."}}},"free-form":{editor_mode:{visual:"Visual editor",code:"Code editor"},"ai-mcp-proxy":{default_acl_item_label:"Default ACL #{index}",tool_item_label:"Tool #{index}"},"request-callout":{entity_name:"Request callout",by_lua_placeholder:"Enter Lua script here..."},datakit:{plugin_config:{title:"Flow editor"},description_code:"Configure this plugin by using YAML configuration. If you are copy/pasting in examples from the documentation - paste from below the <code>config</code> block.",description_flow:"Build flows visually with a drag-and-drop editor for Datakit. Visualize node connections, inputs, and outputs as you design.",description_example:"Start with a use case:",detected_config_format:"Detected {format} configuration. Do you want to convert it to Datakit configuration?",detected_config_format_title:"Convert configuration",detected_config_format_confirm:"Convert",examples:{authenticate:"Authenticate Kong to a third-party service",vault:"Authenticate to a third-party service using vault secrets",combine:"Combine multiple API responses",cache:"Conditionally fetch or store cache data",manipulate:"Manipulate request headers"},flow_editor:{mode:"Flow editor",name:"Datakit flow editor",cta:"Go to flow editor",disabled_tooltip:"The flow editor is unavailable due to critical configuration errors or features not supported in the flow editor:<br/><code>{reason}</code>",expand_panel:"Expand panel",collapse_panel:"Collapse panel",return_to_config:"Return to plugin configuration",canvas_panel:{request:"Request",response:"Response",node_count_plural:"{count} nodes",node_count_singular:"1 node"},panel_segments:{nodes:"Nodes",resources:{title:"Resources",vault:{title:"Vault secrets",add_button:"Add vault resource",name_exists_error:"Vault name already exists",name_required_error:"Vault name is required",edit:"Edit",delete:"Delete"},cache:{title:"Cache configuration",add_button:"Add cache configuration",strategy_options:{memory:"Memory",redis:"Redis"},select_redis_configuration:"Select a shared Redis configuration",inline_config:"Inline config",inline_config_preview:"You are using a dedicated Redis configuration, This is a preview of your current setup, please edit it in code editor"}}},vault_secret_picker:{title:"Add secret to Datakit",proceed_button_text:"Add secret",secret_name:{label:"Secret name",placeholder:"Enter a name",help:"A unique identifier for this secret in your Datakit configuration"}},node_panel:{title:"Node types",description:"Drag a node onto the canvas to add it to your data flow."},examples:"Examples",debug:{label:"Debug",description:'Enables detailed error messages in client responses, making debugging easier. <a href="https://developer.konghq.com/plugins/datakit/#debugging" target="_blank">See the docs</a> for details.'},actions:{zoom_in:"Zoom in",zoom_out:"Zoom out",fit_view:"Zoom to fit",auto_layout:"Auto layout",undo:"Undo",redo:"Redo",duplicate:"Duplicate",remove_from_branch:"Remove from branch",delete:"Delete",view_docs:"View docs",done:"Done"},node_types:{call:{name:"call",summary:"Call a third-party API",description:"Send an HTTP request and retrieve the response."},jq:{name:"jq",summary:"Transform data and cast variables with jq",description:'The <code>jq</code> node executes a jq script for processing JSON. See the official <a href="https://jqlang.org" target="_blank">jq docs</a> for more details.'},exit:{name:"exit",summary:"Return directly to the client",description:"Trigger an early exit that produces a direct response, rather than forwarding a proxied response."},property:{name:"property",summary:"Get and set Kong Gateway-specific data",description:"Get and set Kong Gateway host and request properties."},static:{name:"static",summary:"Configure static input values ahead of time",description:"Emits static values to be used as inputs for other nodes. The <code>static</code> node can help you with hardcoding some known value for an input."},branch:{name:"branch",summary:"Execute nodes based on matching input conditions",description:"Execute different nodes based on matching input conditions, such as a cache hit or miss."},cache:{name:"cache",summary:"Store and fetch cached data",description:"Store data into cache and fetch cached data from cache."},xml_to_json:{name:"xml_to_json",summary:"Transform XML to JSON",description:"Transform XML to JSON."},json_to_xml:{name:"json_to_xml",summary:"Transform JSON to XML",description:"Transform JSON to XML."},request:{name:"request",description:"Reads incoming client request properties. You cannot specify request node input."},response:{name:"response",description:"Updates properties of the outgoing client response."},service_request:{name:"service request",description:"Updates properties of the request sent to the service being proxied to."},service_response:{name:"service response",description:"Reads response properties from the service being proxied to."},vault:{name:"Vault",description:"Vault is a tool for securely accessing secrets."}},node_properties:{name:"Name",configuration:"Configuration",input:{label:"Inputs configuration",placeholder:"Select a source",add_button:"Add an input",or:"or",input:"Input",fields:"Fields",source:"Source",tooltip:"Fields are part of the node input. A source can connect to either the fields or the input, but not both."},input_name:{label:"Input name",placeholder:"Enter an input name"},jq:{label:"jq script",help:"Refer to {link} for full documentation."},output_value:{label:"Output value",value_name:"Value name",value:"Value",add_button:"Add a value"},property:{get:"get",set:"set"},branch:{placeholder:"Select nodes"},errors:{invalid_identifier_format:"{fieldName} must start with a letter or underscore and contain only letters, numbers, underscores, or hyphens",invalid_url_format:"Not a valid URL format",not_empty:"{fieldName} is required",not_float:"{fieldName} must be a float",not_integer:"{fieldName} must be an integer",not_number:"{fieldName} must be a number",not_unique:"{fieldName} must be unique",number_range:"{fieldName} must be between {min} and {max}",string_len_range:"{fieldName} must be between {minLength} and {maxLength} characters",reserved_node_name:'"{nodeName}" is a reserved node name',attributes_required:"Provide at least one of attributes_block_name or attributes_name_prefix"}},error:{invalid_connection:"Invalid connection",branch_cycle:"Cannot create a circular branch relationship"},confirm:{title:"Connection conflict",message:{confirm:"Are you sure you want to make this change?",switch:"You can connect an output source to either all inputs of a node or to individual inputs.",override:"Each input can connect to only one output, but one output can connect to many inputs.",branch_replace:"This node already belongs to another branch. Move it to the new branch?"},proceed:"Yes, update"},leave_confirm:"Leave current page? Changes you made may not be saved."},code_editor:{mode:"Code editor"}},vault_picker:{component_error:"The vault secret picker is not available"},tag_helper:"Use comma to separate values. eg: value1, value2",foreign_placeholder:"Enter a UUID of {entity}"}},redis:{title:"Redis Configuration",shared_configuration:{label:"Shared configuration",description:"Select an existing shared Redis configuration or create a new one. Changes to this configuration automatically apply to all associated plugins.",title:"Shared Redis Configuration",error:"Fetching shared Redis configurations failed."},dedicated_configuration:{label:"Dedicated configuration",description:"Create a Redis configuration that is used only by this plugin. Changes won’t affect other plugins."},config_card:{common_fields:{created_at_label:"Created at",updated_at_label:"Last Updated at",type_label:"Redis Type"}}},glossary:{plugin:"plugin"},custom_field:{key_auth_identity_realms:{cp_label:"Current Control Plane",cp_group_label:"Control Plane",realm_group_label:"Realms (Can only select one)"}},sp:{window_type:{label:"Rate Limit Window Type",help:"Sets the time window type to either <code>sliding</code> (default) or <code>fixed</code>.<br><ul><li>Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight.</li><li>Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window's counters.</li></ul>",options:{fixed:"Fixed",sliding:"Sliding"}},request_limits:{title:"Request Limits",subtitle:"Set one or more limits on the number of API requests allowed within a defined timeframe.",label:"Limit",label_index:"Limit {index}",request_number:"Request number",time_interval:"Time interval",interval_determiner:"Every",seconds:"Seconds"},error_message:{label:"Error message",code_placeholder:"Code message",message_placeholder:"Error message",help:"Set a custom error code and message to be returned when the rate limit is exceeded."},start_with_a_use_case:"Start with a use case:",use_cases:{fixed:{hourly_500:{label:"500 requests every hour",description:"A fixed limit of 500 requests per hour resetting sharply on the hour, ensuring no user can exceed this limit."},half_hourly_200:{label:"200 requests every 30 minutes",description:"Users are allowed 200 requests per 30 minutes, resetting exactly on the 30 minute mark with no carryover of unused limits."},daily_500:{label:"500 requests every day",description:"A strict limit of 5000 requests per day resetting promptly at midnight, preventing any burst traffic or inconsistent user experiences."}},sliding:{hourly_100:{label:"100 requests every hour",description:"Maximum of 100 requests every rolling hour, continuously adjusting the count over the course of the hour. No hard limit or known reset."},half_hourly_300:{label:"300 requests every 30 minutes",description:"Each user can make up to 300 requests in any rolling 30 minute period, with older requests dropping off as new requests are made."},hourly_500:{label:"500 requests every hour",description:`Each user is allowed 500 requests per hour.
|
|
2
2
|
If the limit is exceeded and the user receives a 429 error, each additional request within the sliding window (hour)
|
|
3
3
|
will extend the wait time by about 12 minutes, continuously adjusting as new requests are made.`}}}}};function Le(){const t=et.createI18n("en-us",at);return{i18n:t,i18nT:et.i18nTComponent(t)}}function Ni(){const{capitalize:t}=ee.useStringHelpers(),n=["methods","logout_methods"];return{setFieldType:(d,f,m)=>{var g,_,h;if(!(!d||!f||!m))switch(m.type){case"boolean":d[f]={type:ee.ConfigurationSchemaType.BadgeStatus,...d[f]};break;case"string":m.encrypted?d[f]={type:ee.ConfigurationSchemaType.Redacted,...d[f]}:d[f]={type:ee.ConfigurationSchemaType.Text,...d[f]};break;case"set":((g=m.elements)==null?void 0:g.type)==="string"&&(d[f]={type:ee.ConfigurationSchemaType.BadgeTag,...d[f]});break;case"array":n.includes(f)?d[f]={type:ee.ConfigurationSchemaType.BadgeMethod,...d[f]}:((_=m.elements)==null?void 0:_.type)==="string"?m.encrypted?d[f]={type:ee.ConfigurationSchemaType.RedactedArray,...d[f]}:d[f]={type:ee.ConfigurationSchemaType.BadgeTag,...d[f]}:((h=m.elements)==null?void 0:h.type)==="record"&&(d[f]={type:ee.ConfigurationSchemaType.Json,...d[f]});break;case"record":d[f]={type:ee.ConfigurationSchemaType.Json,...d[f]};break;default:d[f]={type:ee.ConfigurationSchemaType.Text,...d[f]};break}},convertToDotNotation:d=>d.replace(/-/g,"."),unFlattenObject:d=>{const f={};for(const m in d){const g=m.split(".");g.reduce((_,h,y)=>_[h]||(_[h]=isNaN(g[y+1])?g.length-1===y?d[m]:{}:[]),f)}return f},dismissField:(d,f,m="redis",g=!1)=>{const _=new RegExp("(?<=-redis-).*");if(typeof d!="object"||d===null)return d;m==="redis"?Object.keys(d).forEach(h=>{h.match(_)&&delete d[h]}):g?d[m]=null:delete d[m],Object.assign(d,f)},isObjectEmpty:d=>Object.keys(d).length===0,unsetNullForeignKey:(d,f)=>{["service.id","route.id","consumer.id","consumer_group.id"].indexOf(d)>-1&&f[d]===null&&(delete f[d],f[d.replace(".id","")]=null)},formatPluginFieldLabel:d=>t(d.replace(/_/g," ")),getTallestPluginCardHeight:d=>{let f=0;if(d.length)for(let m=0;m<d.length;m++){const g=d[m].$el;f=g.offsetHeight>f?g.offsetHeight:f}return f},getToggleVisibility:(d,f)=>{var m,g;if(d&&f){const _=(g=(m=window==null?void 0:window.getComputedStyle(d))==null?void 0:m.getPropertyValue("grid-template-columns"))==null?void 0:g.split(" ").length;return f>_}return!0}}}var Oo=(t=>(t.REDIS_CE="redis-ce",t.REDIS_EE="redis-ee",t))(Oo||{});const Vo=["Featured"],xi=[F.PluginGroup.AUTHENTICATION,F.PluginGroup.AI,F.PluginGroup.SECURITY,F.PluginGroup.TRAFFIC_CONTROL,F.PluginGroup.SERVERLESS,F.PluginGroup.ANALYTICS_AND_MONITORING,F.PluginGroup.TRANSFORMATIONS,F.PluginGroup.LOGGING,F.PluginGroup.DEPLOYMENT,F.PluginGroup.WEBSOCKET,F.PluginGroup.MONETIZATION,F.PluginGroup.CUSTOM_PLUGINS],Bo=[F.PluginGroup.AI,F.PluginGroup.ANALYTICS_AND_MONITORING,F.PluginGroup.AUTHENTICATION,F.PluginGroup.LOGGING,F.PluginGroup.SECURITY,F.PluginGroup.SERVERLESS,F.PluginGroup.TRAFFIC_CONTROL,F.PluginGroup.TRANSFORMATIONS,F.PluginGroup.CUSTOM_PLUGINS],Or={[F.PluginGroup.AUTHENTICATION]:!1,[F.PluginGroup.AI]:!1,[F.PluginGroup.SECURITY]:!1,[F.PluginGroup.TRAFFIC_CONTROL]:!1,[F.PluginGroup.SERVERLESS]:!1,[F.PluginGroup.ANALYTICS_AND_MONITORING]:!1,[F.PluginGroup.TRANSFORMATIONS]:!1,[F.PluginGroup.LOGGING]:!1,[F.PluginGroup.DEPLOYMENT]:!1,[F.PluginGroup.CUSTOM_PLUGINS]:!1};var fn=(t=>(t.SERVICE="service_id",t.ROUTE="route_id",t.CONSUMER="consumer_id",t.CONSUMER_GROUP="consumer_group_id",t))(fn||{});const pn=t=>{const n=Object.fromEntries(t.fields.map(o=>Object.entries(o)[0]));return"id"in n||(n.id={}),n},mn={label:"Tags",name:"tags",type:"input",inputType:"text",valueType:"array",valueArrayType:"string",placeholder:"Enter list of tags",help:"An optional set of strings for grouping and filtering, separated by commas.",hint:"e.g. tag1, tag2, tag3"},$n={getColumnFields:pn,tags:mn,id:{label:"ID"},enabled:{label:"Enabled",indexed:!0,type:"boolean"},created_at:{label:"Created"},updated_at:{label:"Last updated"},fields:{arrayItems(t){const n=t.inputAttributes||{};return delete t.inputAttributes,{type:"array",itemContainerComponent:"FieldArrayItem",fieldClasses:"kong-form-array-field",fieldItemsClasses:"kong-form-array-field-item",newElementButtonLabelClasses:"kong-form-new-element-button-label",inputAttributes:{class:"form-control",style:{minWidth:"200px"},...n},removeElementButtonLabel:"remove",styleClasses:"kong-form-field-wrapper",inputType:"text",valueType:"array",valueArrayType:"string",...t}}}},Ai={fields:[{group:{hint:"The arbitrary group name to associate to the consumer."}},{tags:mn}]},wu={fields:[{id:{uuid:!0,type:"string",auto:!0}},{created_at:{auto:!0,timestamp:!0,type:"integer"}},{consumer:{reference:"consumers",type:"foreign",on_delete:"cascade",required:!0}},{group:{required:!0,type:"string",hint:"The arbitrary group name to associate to the consumer."}},{tags:{elements:{type:"string",required:!0},type:"set"}}]},Si={fields:[{username:{}},{password:{inputType:"password"}},{tags:mn}]},Cu={fields:[{id:{uuid:!0,type:"string",auto:!0}},{created_at:{auto:!0,timestamp:!0,type:"integer"}},{consumer:{reference:"consumers",type:"foreign",on_delete:"cascade",required:!0}},{username:{required:!0,type:"string",unique:!0}},{password:{type:"string",required:!0,encrypted:!0}},{tags:{elements:{type:"string",required:!0},type:"set"}}]},Pi=e.defineComponent({name:"KeyAuthIdentityRealmsBase",__name:"Base",props:{modelValue:{default:[{scope:"cp",id:null,region:null}]},modelModifiers:{}},emits:["update:modelValue"],setup(t){const n=e.useModel(t,"modelValue"),{i18n:o}=Me.useI18n(),{t:r}=o,a={value:"current-cp",label:r("custom_field.key_auth_identity_realms.cp_label"),group:r("custom_field.key_auth_identity_realms.cp_group_label")},i=e.inject(je.FORMS_CONFIG),{axiosInstance:l}=ee.useAxios(i==null?void 0:i.axiosRequestConfig),s=()=>{if((i==null?void 0:i.app)==="konnect"){const m=/\b(us|eu|au|me|in)\b/.exec((i==null?void 0:i.apiBaseUrl)||"");if(m)return{region:m[1]}}return{}},c=e.ref(!0),u=e.ref([a]),p=async()=>{if((i==null?void 0:i.app)==="konnect")try{c.value=!0;let m=`${i==null?void 0:i.apiBaseUrl}/v1/realms`;const g=[];do{const _=await l.get(m);_&&_.data&&_.data.data&&g.push(..._.data.data.map(h=>({value:h.id,label:h.name,group:r("custom_field.key_auth_identity_realms.realm_group_label")}))),m=_.data.meta.next?`${i==null?void 0:i.apiBaseUrl}${_.data.meta.next}`:null}while(m);u.value=[a,...g]}catch(m){console.error("Failed to fetch Konnect realms",m)}finally{c.value=!1}},d=e.computed(()=>n.value.map(m=>m.id||"current-cp")),f=m=>{const g=m.includes("current-cp")?[{scope:"cp",id:null,region:null}]:[],_=n.value.filter(({scope:C})=>C!=="cp").map(({id:C})=>C),h=m.filter(C=>C!=="current-cp"),E=(_.length!==h.length||_.some(C=>!h.includes(C))?h.filter(C=>!_.includes(C)):h).map(C=>({...s(),scope:"realm",id:C}));n.value=[...g,...E]};return e.onMounted(()=>{p()}),(m,g)=>{const _=e.resolveComponent("KMultiselect");return e.openBlock(),e.createBlock(_,{items:u.value,loading:c.value,"model-value":d.value,"onUpdate:modelValue":f},null,8,["items","loading","model-value"])}}}),Eu={class:"field-wrapper"},Nu=e.defineComponent({__name:"VfgAdapter",props:{disabled:{type:Boolean},formOptions:{},model:{},schema:{},vfg:{},errors:{},hint:{}},emits:["modelUpdated"],setup(t,{expose:n,emit:o}){const r=t,a=o,{clearValidationErrors:i,value:l}=je.composables.useAbstractFields({model:e.toRef(()=>r.model),schema:r.schema,formOptions:r.formOptions,emitModelUpdated:s=>{a("modelUpdated",s.value,s.model)}});return n({clearValidationErrors:i}),(s,c)=>(e.openBlock(),e.createElementBlock("div",Eu,[e.createVNode(Pi,{modelValue:e.unref(l),"onUpdate:modelValue":c[0]||(c[0]=u=>e.isRef(l)?l.value=u:null)},null,8,["modelValue"])]))}}),ke=(t,n)=>{const o=t.__vccOpts||t;for(const[r,a]of n)o[r]=a;return o},xu=ke(Nu,[["__scopeId","data-v-269e85ed"]]),Ii={fields:[{key:{submitWhenNull:!1,hint:`You can optionally set your own unique key to authenticate the
|
|
4
4
|
client. If missing, it will be generated for you.`,inputType:"password",encrypted:!0}},{tags:mn},{ttl:{help:"Time-to-live (in seconds) value for data"}}]},Au=t=>{var n;return(t==null?void 0:t.app)==="kongManager"?{fieldsToDelete:["config-identity_realms"],shamefullyTransformPayload:({payload:o})=>{(t!=null&&t.credential&&typeof o.ttl!="number"||Number.isNaN(o.ttl))&&(o.ttl=0)}}:{"config-identity_realms":{component:((n=t==null?void 0:t.experimentalRenders)==null?void 0:n.keyAuthIdentityRealms)??!1?e.markRaw(xu):null}}},Su={fields:[{id:{uuid:!0,type:"string",auto:!0}},{created_at:{auto:!0,timestamp:!0,type:"integer"}},{consumer:{reference:"consumers",type:"foreign",on_delete:"cascade",required:!0}},{key:{auto:!0,hint:"If left empty, a key will be generated after saving this form.",required:!1,type:"string",encrypted:!0,unique:!0}},{tags:{elements:{type:"string",required:!0},type:"set"}},{ttl:{between:[0,1e8],description:"Time-to-live (in seconds) value for data",type:"number"}}]},Ti={fields:[{username:{hint:"The username to use in the HMAC Signature verification."}},{secret:{inputType:"text",submitWhenNull:!1,hint:`The secret to use in the HMAC Signature verification. Note that
|
|
@@ -10,7 +10,7 @@ will extend the wait time by about 12 minutes, continuously adjusting as new req
|
|
|
10
10
|
will be generated for you.`,inputType:"text",encrypted:!0}},{client_secret:{submitWhenNull:!1,hint:`You can optionally set your own unique client_secret. If missing,
|
|
11
11
|
it will be generated for you.`,inputType:"password",encrypted:!0}},{redirect_uris:$n.fields.arrayItems({label:"Redirect URI(s)",hint:`One or more URLs in your app where users will be sent after
|
|
12
12
|
authorization (RFC 6742 Section 3.1.2)`,newElementButtonLabel:"+ Add Redirect URI",inputAttributes:{placeholder:"Enter URI"}})},{tags:$n.tags}]},Ou={fields:[{id:{uuid:!0,auto:!0,type:"string",description:"A string representing a UUID (universally unique identifier)."}},{created_at:{description:"An integer representing an automatic Unix timestamp in seconds.",timestamp:!0,auto:!0,type:"integer"}},{consumer:{on_delete:"cascade",type:"foreign",reference:"consumers",required:!0}},{name:{required:!0,type:"string"}},{client_id:{required:!1,hint:"You can optionally set your own unique client_id. If missing, it will be generated for you.",unique:!0,auto:!0,type:"string"}},{client_secret:{required:!1,hint:"You can optionally set your own unique client_secret. If missing, it will be generated for you.",auto:!0,type:"string",encrypted:!0}},{hash_secret:{required:!0,type:"boolean",default:!1}},{redirect_uris:{required:!1,hint:"One or more URLs in your app where users will be sent after authorization (RFC 6742 Section 3.1.2)",type:"array",elements:{type:"string"}}},{tags:{elements:{required:!0,type:"string",description:"A string representing a tag."},type:"set",description:"A set of strings representing tags."}},{client_type:{required:!0,default:"confidential",type:"string",one_of:["confidential","public"]}}]},Vi={fields:[{key:{submitWhenNull:!1,hint:`You can optionally set your own unique key to authenticate the
|
|
13
|
-
client. If missing, it will be generated for you.`,inputType:"password",encrypted:!0}},{tags:mn},{ttl:{help:"Time-to-live (in seconds) value for data"}}]},Vu=t=>(t==null?void 0:t.app)==="kongManager"?{shamefullyTransformPayload:({payload:n})=>{(t!=null&&t.credential&&typeof n.ttl!="number"||Number.isNaN(n.ttl))&&(n.ttl=0)}}:{},Bu={fields:[{id:{type:"string",auto:!0,uuid:!0,description:"A string representing a UUID (universally unique identifier)."}},{created_at:{type:"integer",auto:!0,timestamp:!0,description:"An integer representing an automatic Unix timestamp in seconds."}},{consumer:{required:!0,on_delete:"cascade",reference:"consumers",type:"foreign"}},{key:{required:!1,unique:!0,auto:!0,encrypted:!0,type:"string"}},{tags:{type:"set",elements:{type:"string",required:!0,description:"A string representing a tag."},description:"A set of strings representing tags."}},{ttl:{between:[0,1e8],description:"Time-to-live (in seconds) value for data",type:"number"}}]},Nt={"basic-auth":{descriptionKey:"plugins.meta.basic-auth.description",nameKey:"plugins.meta.basic-auth.name",freeformRenderRules:{dependencies:{"config.brute_force_protection.redis":["config.brute_force_protection.strategy","redis"]}},...F.PLUGIN_GROUP_AND_SCOPE_MAP["basic-auth"]},"hmac-auth":{descriptionKey:"plugins.meta.hmac-auth.description",nameKey:"plugins.meta.hmac-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["hmac-auth"]},"jwt-signer":{descriptionKey:"plugins.meta.jwt-signer.description",nameKey:"plugins.meta.jwt-signer.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["jwt-signer"]},jwt:{descriptionKey:"plugins.meta.jwt.description",nameKey:"plugins.meta.jwt.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.jwt},"key-auth":{descriptionKey:"plugins.meta.key-auth.description",nameKey:"plugins.meta.key-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["key-auth"]},"key-auth-enc":{descriptionKey:"plugins.meta.key-auth-enc.description",nameKey:"plugins.meta.key-auth-enc.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["key-auth-enc"]},"ldap-auth-advanced":{descriptionKey:"plugins.meta.ldap-auth-advanced.description",nameKey:"plugins.meta.ldap-auth-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["ldap-auth-advanced"]},"ldap-auth":{descriptionKey:"plugins.meta.ldap-auth.description",nameKey:"plugins.meta.ldap-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["ldap-auth"]},"oauth2-introspection":{descriptionKey:"plugins.meta.oauth2-introspection.description",nameKey:"plugins.meta.oauth2-introspection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["oauth2-introspection"]},oauth2:{descriptionKey:"plugins.meta.oauth2.description",nameKey:"plugins.meta.oauth2.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.oauth2},"openid-connect":{descriptionKey:"plugins.meta.openid-connect.description",nameKey:"plugins.meta.openid-connect.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["openid-connect"]},"mtls-auth":{descriptionKey:"plugins.meta.mtls-auth.description",nameKey:"plugins.meta.mtls-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["mtls-auth"]},"vault-auth":{descriptionKey:"plugins.meta.vault-auth.description",nameKey:"plugins.meta.vault-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["vault-auth"]},"bot-detection":{descriptionKey:"plugins.meta.bot-detection.description",nameKey:"plugins.meta.bot-detection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["bot-detection"]},cors:{descriptionKey:"plugins.meta.cors.description",nameKey:"plugins.meta.cors.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.cors},"ip-restriction":{descriptionKey:"plugins.meta.ip-restriction.description",nameKey:"plugins.meta.ip-restriction.name",fieldRules:{atLeastOneOf:[["config.allow","config.deny"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["ip-restriction"]},opa:{descriptionKey:"plugins.meta.opa.description",nameKey:"plugins.meta.opa.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.opa},"kubernetes-sidecar-injector":{descriptionKey:"plugins.meta.kubernetes-sidecar-injector.description",nameKey:"plugins.meta.kubernetes-sidecar-injector.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["kubernetes-sidecar-injector"]},"request-validator":{descriptionKey:"plugins.meta.request-validator.description",nameKey:"plugins.meta.request-validator.name",fieldRules:{atLeastOneOf:[["config.body_schema","config.parameter_schema"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-validator"]},acl:{descriptionKey:"plugins.meta.acl.description",nameKey:"plugins.meta.acl.name",fieldRules:{onlyOneOf:[["config.allow","config.deny"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.acl},canary:{descriptionKey:"plugins.meta.canary.description",nameKey:"plugins.meta.canary.name",fieldRules:{atLeastOneOf:[["config.upstream_uri","config.upstream_host","config.upstream_port"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.canary},"forward-proxy":{descriptionKey:"plugins.meta.forward-proxy.description",nameKey:"plugins.meta.forward-proxy.name",fieldRules:{onlyOneOfMutuallyRequired:[[["config.http_proxy_host","config.http_proxy_port"],["config.https_proxy_host","config.https_proxy_port"]]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["forward-proxy"]},"proxy-cache":{descriptionKey:"plugins.meta.proxy-cache.description",nameKey:"plugins.meta.proxy-cache.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["proxy-cache"]},"proxy-cache-advanced":{descriptionKey:"plugins.meta.proxy-cache-advanced.description",nameKey:"plugins.meta.proxy-cache-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["proxy-cache-advanced"]},"graphql-proxy-cache-advanced":{descriptionKey:"plugins.meta.graphql-proxy-cache-advanced.description",nameKey:"plugins.meta.graphql-proxy-cache-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["graphql-proxy-cache-advanced"]},"rate-limiting-advanced":{descriptionKey:"plugins.meta.rate-limiting-advanced.description",nameKey:"plugins.meta.rate-limiting-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["rate-limiting-advanced"]},"rate-limiting":{descriptionKey:"plugins.meta.rate-limiting.description",nameKey:"plugins.meta.rate-limiting.name",fieldRules:{atLeastOneOf:[["config.second","config.minute","config.hour","config.day","config.month","config.year"]]},freeformRenderRules:{bundles:[["config.policy","config.redis"]],dependencies:{"config.redis":["config.policy","redis"]}},...F.PLUGIN_GROUP_AND_SCOPE_MAP["rate-limiting"]},"graphql-rate-limiting-advanced":{descriptionKey:"plugins.meta.graphql-rate-limiting-advanced.description",nameKey:"plugins.meta.graphql-rate-limiting-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["graphql-rate-limiting-advanced"]},mocking:{descriptionKey:"plugins.meta.mocking.description",nameKey:"plugins.meta.mocking.name",fieldRules:{atLeastOneOf:[["config.api_specification_filename","config.api_specification"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.mocking},"request-size-limiting":{descriptionKey:"plugins.meta.request-size-limiting.description",nameKey:"plugins.meta.request-size-limiting.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-size-limiting"]},"request-termination":{descriptionKey:"plugins.meta.request-termination.description",nameKey:"plugins.meta.request-termination.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-termination"]},"response-ratelimiting":{descriptionKey:"plugins.meta.response-ratelimiting.description",nameKey:"plugins.meta.response-ratelimiting.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["response-ratelimiting"]},"route-by-header":{descriptionKey:"plugins.meta.route-by-header.description",nameKey:"plugins.meta.route-by-header.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["route-by-header"]},"ai-proxy":{descriptionKey:"plugins.meta.ai-proxy.description",nameKey:"plugins.meta.ai-proxy.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-proxy"]},"ai-prompt-decorator":{descriptionKey:"plugins.meta.ai-prompt-decorator.description",nameKey:"plugins.meta.ai-prompt-decorator.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-prompt-decorator"]},"ai-prompt-template":{descriptionKey:"plugins.meta.ai-prompt-template.description",nameKey:"plugins.meta.ai-prompt-template.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-prompt-template"]},"ai-prompt-guard":{descriptionKey:"plugins.meta.ai-prompt-guard.description",nameKey:"plugins.meta.ai-prompt-guard.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-prompt-guard"]},"ai-request-transformer":{descriptionKey:"plugins.meta.ai-request-transformer.description",nameKey:"plugins.meta.ai-request-transformer.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-request-transformer"]},"ai-response-transformer":{descriptionKey:"plugins.meta.ai-response-transformer.description",nameKey:"plugins.meta.ai-response-transformer.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-response-transformer"]},"ai-rate-limiting-advanced":{descriptionKey:"plugins.meta.ai-rate-limiting-advanced.description",nameKey:"plugins.meta.ai-rate-limiting-advanced.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-rate-limiting-advanced"]},"ai-azure-content-safety":{descriptionKey:"plugins.meta.ai-azure-content-safety.description",nameKey:"plugins.meta.ai-azure-content-safety.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-azure-content-safety"]},"aws-lambda":{descriptionKey:"plugins.meta.aws-lambda.description",nameKey:"plugins.meta.aws-lambda.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["aws-lambda"]},"azure-functions":{descriptionKey:"plugins.meta.azure-functions.description",nameKey:"plugins.meta.azure-functions.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["azure-functions"]},openwhisk:{descriptionKey:"plugins.meta.openwhisk.description",nameKey:"plugins.meta.openwhisk.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.openwhisk},"pre-function":{descriptionKey:"plugins.meta.pre-function.description",nameKey:"plugins.meta.pre-function.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["pre-function"]},"post-function":{descriptionKey:"plugins.meta.post-function.description",nameKey:"plugins.meta.post-function.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["post-function"]},datadog:{descriptionKey:"plugins.meta.datadog.description",nameKey:"plugins.meta.datadog.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.datadog},prometheus:{descriptionKey:"plugins.meta.prometheus.description",nameKey:"plugins.meta.prometheus.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.prometheus},zipkin:{descriptionKey:"plugins.meta.zipkin.description",nameKey:"plugins.meta.zipkin.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.zipkin},collector:{descriptionKey:"plugins.meta.collector.description",nameKey:"plugins.meta.collector.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.collector},"response-transformer-advanced":{descriptionKey:"plugins.meta.response-transformer-advanced.description",nameKey:"plugins.meta.response-transformer-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["response-transformer-advanced"]},"correlation-id":{descriptionKey:"plugins.meta.correlation-id.description",nameKey:"plugins.meta.correlation-id.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["correlation-id"]},"request-transformer-advanced":{descriptionKey:"plugins.meta.request-transformer-advanced.description",nameKey:"plugins.meta.request-transformer-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-transformer-advanced"]},"request-transformer":{descriptionKey:"plugins.meta.request-transformer.description",nameKey:"plugins.meta.request-transformer.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-transformer"]},"response-transformer":{descriptionKey:"plugins.meta.response-transformer.description",nameKey:"plugins.meta.response-transformer.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["response-transformer"]},"route-transformer-advanced":{descriptionKey:"plugins.meta.route-transformer-advanced.description",nameKey:"plugins.meta.route-transformer-advanced.name",fieldRules:{atLeastOneOf:[["config.path","config.port","config.host"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["route-transformer-advanced"]},"kafka-upstream":{descriptionKey:"plugins.meta.kafka-upstream.description",nameKey:"plugins.meta.kafka-upstream.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["kafka-upstream"]},degraphql:{descriptionKey:"plugins.meta.degraphql.description",nameKey:"plugins.meta.degraphql.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.degraphql},"exit-transformer":{descriptionKey:"plugins.meta.exit-transformer.description",nameKey:"plugins.meta.exit-transformer.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["exit-transformer"]},jq:{descriptionKey:"plugins.meta.jq.description",nameKey:"plugins.meta.jq.name",fieldRules:{atLeastOneOf:[["config.request_jq_program","config.response_jq_program"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.jq},"file-log":{descriptionKey:"plugins.meta.file-log.description",nameKey:"plugins.meta.file-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["file-log"]},"http-log":{descriptionKey:"plugins.meta.http-log.description",nameKey:"plugins.meta.http-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["http-log"]},loggly:{descriptionKey:"plugins.meta.loggly.description",nameKey:"plugins.meta.loggly.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.loggly},"statsd-advanced":{descriptionKey:"plugins.meta.statsd-advanced.description",nameKey:"plugins.meta.statsd-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["statsd-advanced"]},statsd:{descriptionKey:"plugins.meta.statsd.description",nameKey:"plugins.meta.statsd.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.statsd},syslog:{descriptionKey:"plugins.meta.syslog.description",nameKey:"plugins.meta.syslog.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.syslog},"tcp-log":{descriptionKey:"plugins.meta.tcp-log.description",nameKey:"plugins.meta.tcp-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["tcp-log"]},"udp-log":{descriptionKey:"plugins.meta.udp-log.description",nameKey:"plugins.meta.udp-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["udp-log"]},"kafka-log":{descriptionKey:"plugins.meta.kafka-log.description",nameKey:"plugins.meta.kafka-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["kafka-log"]},session:{descriptionKey:"plugins.meta.session.description",nameKey:"plugins.meta.session.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.session},"upstream-tls":{descriptionKey:"plugins.meta.upstream-tls.description",nameKey:"plugins.meta.upstream-tls.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["upstream-tls"]},"application-registration":{descriptionKey:"plugins.meta.application-registration.description",nameKey:"plugins.meta.application-registration.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["application-registration"]},"konnect-application-auth":{descriptionKey:"plugins.meta.konnect-application-auth.description",nameKey:"plugins.meta.konnect-application-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["konnect-application-auth"]},acme:{descriptionKey:"plugins.meta.acme.description",nameKey:"plugins.meta.acme.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.acme},"grpc-gateway":{descriptionKey:"plugins.meta.grpc-gateway.description",nameKey:"plugins.meta.grpc-gateway.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["grpc-gateway"]},"grpc-web":{descriptionKey:"plugins.meta.grpc-web.description",nameKey:"plugins.meta.grpc-web.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["grpc-web"]},"upstream-timeout":{descriptionKey:"plugins.meta.upstream-timeout.description",nameKey:"plugins.meta.upstream-timeout.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["upstream-timeout"]},opentelemetry:{descriptionKey:"plugins.meta.opentelemetry.description",nameKey:"plugins.meta.opentelemetry.name",fieldRules:{atLeastOneOf:[["config.access_logs_endpoint","config.traces_endpoint","config.logs_endpoint"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.opentelemetry},"websocket-validator":{descriptionKey:"plugins.meta.websocket-validator.description",nameKey:"plugins.meta.websocket-validator.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["websocket-validator"]},"websocket-size-limit":{descriptionKey:"plugins.meta.websocket-size-limit.description",nameKey:"plugins.meta.websocket-size-limit.name",fieldRules:{atLeastOneOf:[["config.client_max_payload","config.upstream_max_payload"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["websocket-size-limit"]},"tls-metadata-headers":{descriptionKey:"plugins.meta.tls-metadata-headers.description",nameKey:"plugins.meta.tls-metadata-headers.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["tls-metadata-headers"]},"tls-handshake-modifier":{descriptionKey:"plugins.meta.tls-handshake-modifier.description",nameKey:"plugins.meta.tls-handshake-modifier.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["tls-handshake-modifier"]},"oas-validation":{descriptionKey:"plugins.meta.oas-validation.description",nameKey:"plugins.meta.oas-validation.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["oas-validation"]},"jwe-decrypt":{descriptionKey:"plugins.meta.jwe-decrypt.description",nameKey:"plugins.meta.jwe-decrypt.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["jwe-decrypt"]},"xml-threat-protection":{descriptionKey:"plugins.meta.xml-threat-protection.description",nameKey:"plugins.meta.xml-threat-protection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["xml-threat-protection"]},saml:{descriptionKey:"plugins.meta.saml.description",nameKey:"plugins.meta.saml.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.saml},"app-dynamics":{descriptionKey:"plugins.meta.app-dynamics.description",nameKey:"plugins.meta.app-dynamics.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["app-dynamics"]},"json-threat-protection":{descriptionKey:"plugins.meta.json-threat-protection.description",nameKey:"plugins.meta.json-threat-protection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["json-threat-protection"]},"standard-webhooks":{descriptionKey:"plugins.meta.standard-webhooks.description",nameKey:"plugins.meta.standard-webhooks.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["standard-webhooks"]},"ai-proxy-advanced":{descriptionKey:"plugins.meta.ai-proxy-advanced.description",nameKey:"plugins.meta.ai-proxy-advanced.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-proxy-advanced"]},"ai-semantic-cache":{descriptionKey:"plugins.meta.ai-semantic-cache.description",nameKey:"plugins.meta.ai-semantic-cache.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-semantic-cache"]},"ai-semantic-prompt-guard":{descriptionKey:"plugins.meta.ai-semantic-prompt-guard.description",nameKey:"plugins.meta.ai-semantic-prompt-guard.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-semantic-prompt-guard"]},"header-cert-auth":{descriptionKey:"plugins.meta.header-cert-auth.description",nameKey:"plugins.meta.header-cert-auth.name",fieldRules:{onlyOneOfMutuallyRequired:[[["config.http_proxy_host","config.http_proxy_port"],["config.https_proxy_host","config.https_proxy_port"]]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["header-cert-auth"]},"upstream-oauth":{descriptionKey:"plugins.meta.upstream-oauth.description",nameKey:"plugins.meta.upstream-oauth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["upstream-oauth"],freeformRenderRules:{bundles:[["config.cache.strategy","config.cache.redis"]],dependencies:{"config.cache.redis":["config.cache.strategy","redis"]}}},confluent:{descriptionKey:"plugins.meta.confluent.description",nameKey:"plugins.meta.confluent.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.confluent},"service-protection":{descriptionKey:"plugins.meta.service-protection.description",nameKey:"plugins.meta.service-protection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["service-protection"]},"injection-protection":{descriptionKey:"plugins.meta.injection-protection.description",nameKey:"plugins.meta.injection-protection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["injection-protection"]},redirect:{descriptionKey:"plugins.meta.redirect.description",nameKey:"plugins.meta.redirect.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.redirect},"kafka-consume":{descriptionKey:"plugins.meta.kafka-consume.description",nameKey:"plugins.meta.kafka-consume.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["kafka-consume"]},"confluent-consume":{descriptionKey:"plugins.meta.confluent-consume.description",nameKey:"plugins.meta.confluent-consume.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["confluent-consume"]},"request-callout":{descriptionKey:"plugins.meta.request-callout.description",nameKey:"plugins.meta.request-callout.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-callout"]},"ai-sanitizer":{descriptionKey:"plugins.meta.ai-sanitizer.description",nameKey:"plugins.meta.ai-sanitizer.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-sanitizer"]},"ai-rag-injector":{descriptionKey:"plugins.meta.ai-rag-injector.description",nameKey:"plugins.meta.ai-rag-injector.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-rag-injector"]},datakit:{descriptionKey:"plugins.meta.datakit.description",nameKey:"plugins.meta.datakit.name",useUIData:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP.datakit},"ai-prompt-compressor":{descriptionKey:"plugins.meta.ai-prompt-compressor.description",nameKey:"plugins.meta.ai-prompt-compressor.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-prompt-compressor"]},"solace-upstream":{descriptionKey:"plugins.meta.solace-upstream.description",nameKey:"plugins.meta.solace-upstream.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["solace-upstream"]},"ai-aws-guardrails":{descriptionKey:"plugins.meta.ai-aws-guardrails.description",nameKey:"plugins.meta.ai-aws-guardrails.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-aws-guardrails"]},ace:{descriptionKey:"plugins.meta.ace.description",nameKey:"plugins.meta.ace.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.ace},"solace-consume":{descriptionKey:"plugins.meta.solace-consume.description",nameKey:"plugins.meta.solace-consume.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["solace-consume"]},"solace-log":{descriptionKey:"plugins.meta.solace-log.description",nameKey:"plugins.meta.solace-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["solace-log"]},"ai-llm-as-judge":{descriptionKey:"plugins.meta.ai-llm-as-judge.description",nameKey:"plugins.meta.ai-llm-as-judge.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-llm-as-judge"]},"ai-mcp-proxy":{descriptionKey:"plugins.meta.ai-mcp-proxy.description",nameKey:"plugins.meta.ai-mcp-proxy.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-mcp-proxy"]},"ai-gcp-model-armor":{descriptionKey:"plugins.meta.ai-gcp-model-armor.description",nameKey:"plugins.meta.ai-gcp-model-armor.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-gcp-model-armor"]},"ai-mcp-oauth2":{descriptionKey:"plugins.meta.ai-mcp-oauth2.description",nameKey:"plugins.meta.ai-mcp-oauth2.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-mcp-oauth2"]},"ai-semantic-response-guard":{descriptionKey:"plugins.meta.ai-semantic-response-guard.description",nameKey:"plugins.meta.ai-semantic-response-guard.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-semantic-response-guard"]},"ai-lakera-guard":{descriptionKey:"plugins.meta.ai-lakera-guard.description",nameKey:"plugins.meta.ai-lakera-guard.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-lakera-guard"]},"ai-a2a-proxy":{descriptionKey:"plugins.meta.ai-a2a-proxy.description",nameKey:"plugins.meta.ai-a2a-proxy.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-a2a-proxy"]},"ai-custom-guardrail":{descriptionKey:"plugins.meta.ai-custom-guardrail.description",nameKey:"plugins.meta.ai-custom-guardrail.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-custom-guardrail"]},"metering-billing":{descriptionKey:"plugins.meta.metering-billing.description",nameKey:"plugins.meta.metering-billing.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["metering-billing"]}},Rn={acl:{titleKey:"plugins.meta.acl.name",plugin:"acl",schema:Ai,nameKey:"plugins.meta.acl.credential_name",endpoint:"/acls",schemaEndpoint:"acls",fields:pn(Ai),applyCredentialButtonText:"Add group to consumer"},"basic-auth":{titleKey:"plugins.meta.basic-auth.name",plugin:"basic-auth",schema:Si,nameKey:"plugins.meta.basic-auth.credential_name",endpoint:"/basic-auth",schemaEndpoint:"basicauth_credentials",fields:pn(Si)},"key-auth":{titleKey:"plugins.meta.key-auth.name",plugin:"key-auth",schema:Ii,nameKey:"plugins.meta.key-auth.credential_name",endpoint:"/key-auth",schemaEndpoint:"keyauth_credentials",fields:pn(Ii)},"key-auth-enc":{titleKey:"plugins.meta.key-auth-enc.name",plugin:"key-auth-enc",schema:Vi,nameKey:"plugins.meta.key-auth-enc.credential_name",endpoint:"/key-auth-enc",schemaEndpoint:"keyauth_enc_credentials",fields:pn(Vi)},oauth2:{titleKey:"plugins.meta.oauth2.name",plugin:"oauth2",schema:Oi,nameKey:"plugins.meta.oauth2.credential_name",endpoint:"/oauth2",schemaEndpoint:"oauth2_credentials",fields:pn(Oi)},"hmac-auth":{titleKey:"plugins.meta.hmac-auth.name",plugin:"hmac-auth",schema:Ti,nameKey:"plugins.meta.hmac-auth.credential_name",endpoint:"/hmac-auth",schemaEndpoint:"hmacauth_credentials",fields:pn(Ti)},jwt:{titleKey:"plugins.meta.jwt.name",plugin:"jwt",schema:Iu,nameKey:"plugins.meta.jwt.credential_name",endpoint:"/jwt",schemaEndpoint:"jwt_secrets",fields:{id:{},key:{},algorithm:{}}}},$u={acls:wu,basicauth_credentials:Cu,keyauth_credentials:Su,keyauth_enc_credentials:Bu,oauth2_credentials:Ou,hmacauth_credentials:Pu,jwt_secrets:Tu},Ru=()=>{const{i18n:{t}}=Le(),n={},o={};for(const[a,i]of Object.entries(Nt))n[a]={...i,name:t(i.nameKey),description:t(i.descriptionKey)};for(const[a,i]of Object.entries(Rn))o[a]={...i,name:t(i.nameKey),title:t(i.titleKey)};return{pluginMetaData:n,credentialMetaData:o,credentialSchemas:Rn,getDisplayName:a=>{var i;return((i=n[a])==null?void 0:i.name)||a}}},eo={type:"array",showRemoveButton:!1,newElementButtonLabelClasses:"kong-form-new-element-button-label",itemContainerComponent:"FieldArrayCardContainer",fieldClasses:"array-card-container-wrapper"},Fu={"config-prompts-prepend":{...eo,newElementButtonLabel:"+ Add Message",items:{type:"object",schema:{fields:[{label:"Role",model:"role",help:"LLM message role",type:"select",required:!0,values:["system","assistant","user"]},{label:"Content",model:"content",type:"input",required:!0,help:"LLM message content",inputType:"text"}]}}},"config-prompts-append":{...eo,newElementButtonLabel:"+ Add Message",items:{type:"object",schema:{fields:[{label:"Role",model:"role",help:"LLM message role",type:"select",required:!0,values:["system","assistant","user"]},{label:"Content",model:"content",type:"input",required:!0,help:"LLM message content",inputType:"text"}]}}}},Lu={"config-templates":{...eo,newElementButtonLabel:"+ Add Template",items:{type:"object",schema:{fields:[{label:"Template Name",model:"name",help:"Template Name, for reference in user requests",type:"input",required:!0,inputType:"text"},{label:"Template String",model:"template",help:"Template string content, containing {{placeholders}} for variable substitution",type:"textArea",required:!0,inputType:"text"}]}}}},Du={shamefullyTransformPayload:({originalModel:t,model:n,payload:o,schema:r})=>{const a=l=>{var s;return(s=r[l])!=null&&s.required&&n[l]?!0:t[l]===n[l]?!1:t[l]===null?n[l]!==""&&!Number.isNaN(n[l]):!0},i=l=>Object.keys(t).some(s=>s.startsWith(l)&&a(s));i("config-embeddings")||(o.config.embeddings=null),i("config-vectordb")||(o.config.vectordb=null)}},Bi=t=>t.split(",").map(n=>n.trim()).filter(Boolean),Mu={shamefullyTransformPayload:({payload:t})=>{var n;(n=t==null?void 0:t.config)!=null&&n.collection_acl_config&&Object.values(t.config.collection_acl_config).forEach(o=>{typeof(o==null?void 0:o.allow)=="string"&&(o.allow=Bi(o.allow)),typeof(o==null?void 0:o.deny)=="string"&&(o.deny=Bi(o.deny))})}},vu={"config-prompt":{label:"Prompt",placeholder:"Enter your prompt",type:"textArea",rows:4,max:!1}},ju={enabled:{type:"switch",model:"enabled",label:"Enabled",textOn:"This plugin is Enabled",textOff:"This plugin is Disabled",inputType:"hidden",styleClasses:"field-switch top-border bottom-border hide-label",default:!0},name:{default:"application-registration",type:"input",inputType:"hidden",styleClasses:"kong-form-hidden-field-wrapper"},"service-id":{type:"AutoSuggest",label:"Gateway Service",styleClasses:"bottom-border",description:"Specific Gateway Service in this workspace",model:"service-id",entity:"services",placeholder:"Select a Gateway Service",inputValues:{fields:["name","id"]},help:"The Gateway Service that this plugin configuration will target"},tags:$n.tags,protocols:{id:"protocols",default:[],type:"multiselect",label:"Protocols",values:[{label:"grpc",value:"grpc"},{label:"grpcs",value:"grpcs"},{label:"http",value:"http"},{label:"https",value:"https"},{label:"tcp",value:"tcp"},{label:"tls",value:"tls"},{label:"tls_passthrough",value:"tls_passthrough"},{label:"udp",value:"udp"},{label:"ws",value:"ws"},{label:"wss",value:"wss"}],help:"A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type.",placeholder:"Select valid protocols for the plugin",styleClasses:"plugin-protocols-select"}},ve={type:"array",valueType:"string",valueArrayType:"array",itemContainerComponent:"FieldArrayItem",fieldClasses:"kong-form-array-field",fieldItemsClasses:"kong-form-array-field-item",inputAttributes:{class:"form-control",style:{minWidth:"200px"}},validator:"array",styleClasses:"kong-form-field-wrapper",newElementButtonLabel:"+ Add",newElementButtonLabelClasses:"kong-form-new-element-button-label"},$o={type:"array",showRemoveButton:!1,newElementButtonLabelClasses:"kong-form-new-element-button-label",itemContainerComponent:"FieldMetric",fieldClasses:"metrics-wrapper"},Uu={"config-metrics":{...$o,items:{type:"object",default:()=>({}),schema:{fields:[{model:"name",label:"Name",type:"select",values:["request_count","request_size","response_size","latency","status_count","unique_users","request_per_user","upstream_latency","kong_latency"]},{model:"stat_type",label:"Stat Type",type:"select",values:["gauge","timer","counter","histogram","meter","set"]},{model:"sample_rate",label:"Sample Rate",type:"input",inputType:"number",id:"sample_rate"},{model:"consumer_identifier",label:"Consumer Identifier",type:"select",values:["consumer_id","custom_id","username"]},{model:"tags",label:"Tags",type:"array",itemContainerComponent:"FieldArrayItem",fieldClasses:"kong-form-array-field",fieldItemsClasses:"kong-form-array-field-item",inputAttributes:{class:"form-control",style:{minWidth:"200px"}},inputType:"text"}]}}}},Ku={"config-functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},qu={"config-strategy":{label:"Config.Strategy",type:"select",default:"cluster",values:["cluster","redis"]}},Gu={"config-injection_types":{type:"multiselect"},"config-locations":{type:"multiselect"}},zu={"config-api_specification":{label:"Config.API Specification",placeholder:"Enter an API spec",type:"textArea",rows:10,max:!1}},Hu={"config-api_spec":{label:"Config.API Spec",placeholder:"Enter an API spec",type:"textArea",rows:15,max:!1}},Wu={"config-access":{},"config-body_filter":{},"config-header_filter":{},"config-certificate":{},"config-functions":{},"config-log":{},"config-rewrite":{}},$i=["config-access","config-body_filter","config-header_filter","config-certificate","config-functions","config-log","config-rewrite"].reduce((t,n)=>({...t,[n]:$n.fields.arrayItems({newElementButtonLabel:"Add"})}),Wu),Ro={"config-strategy":{label:"Config.Strategy",type:"select",default:"redis",values:["local","redis"]},"config-consumer_groups":{label:"Config.Consumer Groups",type:"input",placeholder:"Enter list of consumer groups",hint:"e.g. group1, group2"}},Yu={"config-remove-headers":{},"config-remove.querystring":{},"config-remove-body":{},"config-replace-headers":{},"config-replace-querystring":{},"config-replace-body":{},"config-rename-headers":{},"config-rename-querystring":{},"config-rename-body":{},"config-add-headers":{},"config-add-querystring":{},"config-add-body":{},"config-append-headers":{},"config-append-querystring":{},"config-append-body":{},"config-allow-body":{}},Ju=["config-remove-headers","config-remove.querystring","config-remove-body","config-replace-headers","config-replace-querystring","config-replace-body","config-rename-headers","config-rename-querystring","config-rename-body","config-add-headers","config-add-querystring","config-add-body","config-append-headers","config-append-querystring","config-append-body","config-allow-body"].reduce((t,n)=>({...t,[n]:$n.fields.arrayItems({newElementButtonLabel:"Add"})}),Yu),Ri={"config-add-json":{...ve,label:"Config.Add.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-append-json":{...ve,label:"Config.Append.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-remove-json":{...ve,label:"Config.Remove.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-rename-json":{...ve,label:"Config.Rename.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-replace-json":{...ve,label:"Config.Replace.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},Xu={...Ri,"config-allow-json":{...ve,label:"Config.Allow.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-replace-body":{label:"Config.Replace.Body",type:"textArea",max:!1},"config-transform-functions":{...ve,label:"Config.Transform.Functions",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-transform-json":{...ve,label:"Config.Transform.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},Zu={"config-rules":{...eo,newElementButtonLabel:"+ Add Rule",items:{type:"object",schema:{fields:[{label:"Upstream Name",model:"upstream_name",type:"input",help:"Target hostname where traffic will be routed in case of condition match",placeholder:"Hostname",inputType:"text"},{label:"Condition",model:"condition",type:"keyValuePairs",help:"List of headers name and value pairs",newElementButtonLabelClasses:"kong-form-new-element-button-label",newElementButtonLabel:"+ Add Condition",keyInputPlaceholder:"Header name",valueInputPlaceholder:"Header value"}]}}}},Qu={"config-session_redis_cluster_nodes":{...eo,newElementButtonLabel:"+ Add Cluster Node",items:{type:"object",schema:{fields:[{label:"IP",model:"ip",type:"input",inputType:"text"},{label:"Port",model:"port",type:"input",inputType:"number"}]}}}},ef={"config-flow-functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},tf={"config-message-functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},nf={"config-metrics":{...$o,items:{type:"object",default:()=>({}),schema:{fields:[{model:"name",label:"Name",type:"select",values:["request_count","request_size","response_size","latency","status_count","unique_users","request_per_user","upstream_latency","kong_latency","status_count_per_user","status_count_per_user_per_route","status_count_per_workspace","shdict_usage"]},{model:"stat_type",label:"Stat Type",type:"select",values:["gauge","timer","counter","histogram","meter","set"]},{model:"sample_rate",label:"Sample Rate",type:"input",inputType:"number",id:"sample_rate"},{model:"consumer_identifier",label:"Consumer Identifier",type:"select",values:["consumer_id","custom_id","username"]},{model:"service_identifier",label:"Service Identifier",type:"select",values:["service_id","service_name","service_host","service_name_or_host"]},{model:"workspace_identifier",label:"Workspace Identifier",type:"select",values:["workspace_id","workspace_name"]}]}}}},of={"config-metrics":{...$o,items:{type:"object",default:()=>({}),schema:{fields:[{model:"name",label:"Name",type:"select",values:["request_count","request_size","response_size","latency","status_count","unique_users","request_per_user","upstream_latency","kong_latency","status_count_per_user","status_count_per_user_per_route","status_count_per_workspace","shdict_usage","cache_datastore_hits_total","cache_datastore_misses_total"]},{model:"stat_type",label:"Stat Type",type:"select",values:["gauge","timer","counter","histogram","meter","set"]},{model:"sample_rate",label:"Sample Rate",type:"input",inputType:"number",id:"sample_rate"},{model:"consumer_identifier",label:"Consumer Identifier",type:"select",values:["consumer_id","custom_id","username"]},{model:"service_identifier",label:"Service Identifier",type:"select",values:["service_id","service_name","service_host","service_name_or_host"]},{model:"workspace_identifier",label:"Workspace Identifier",type:"select",values:["workspace_id","workspace_name"]}]}}}},rf={"config-behavior-idp_error_response_body_template":{type:"textArea",rows:4}},af={"config-vault":{type:"AutoSuggest",entity:"vaults",placeholder:"Select a Vault",inputValues:{fields:["prefix","name","id"]},modelTransformer:t=>({id:t}),keyFromObject:"id"}};var Fi=typeof global=="object"&&global&&global.Object===Object&&global,lf=typeof self=="object"&&self&&self.Object===Object&&self,Ft=Fi||lf||Function("return this")(),xt=Ft.Symbol,Li=Object.prototype,sf=Li.hasOwnProperty,cf=Li.toString,to=xt?xt.toStringTag:void 0;function df(t){var n=sf.call(t,to),o=t[to];try{t[to]=void 0;var r=!0}catch{}var a=cf.call(t);return r&&(n?t[to]=o:delete t[to]),a}var uf=Object.prototype,ff=uf.toString;function pf(t){return ff.call(t)}var mf="[object Null]",gf="[object Undefined]",Di=xt?xt.toStringTag:void 0;function gn(t){return t==null?t===void 0?gf:mf:Di&&Di in Object(t)?df(t):pf(t)}function Lt(t){return t!=null&&typeof t=="object"}var hf="[object Symbol]";function Vr(t){return typeof t=="symbol"||Lt(t)&&gn(t)==hf}function Br(t,n){for(var o=-1,r=t==null?0:t.length,a=Array(r);++o<r;)a[o]=n(t[o],o,t);return a}var Ot=Array.isArray,Mi=xt?xt.prototype:void 0,vi=Mi?Mi.toString:void 0;function ji(t){if(typeof t=="string")return t;if(Ot(t))return Br(t,ji)+"";if(Vr(t))return vi?vi.call(t):"";var n=t+"";return n=="0"&&1/t==-1/0?"-0":n}function hn(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}function Ui(t){return t}var yf="[object AsyncFunction]",_f="[object Function]",bf="[object GeneratorFunction]",kf="[object Proxy]";function Fo(t){if(!hn(t))return!1;var n=gn(t);return n==_f||n==bf||n==yf||n==kf}var $r=Ft["__core-js_shared__"],Ki=(function(){var t=/[^.]+$/.exec($r&&$r.keys&&$r.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function wf(t){return!!Ki&&Ki in t}var Cf=Function.prototype,Ef=Cf.toString;function yn(t){if(t!=null){try{return Ef.call(t)}catch{}try{return t+""}catch{}}return""}var Nf=/[\\^$.*+?()[\]{}|]/g,xf=/^\[object .+?Constructor\]$/,Af=Function.prototype,Sf=Object.prototype,Pf=Af.toString,If=Sf.hasOwnProperty,Tf=RegExp("^"+Pf.call(If).replace(Nf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Of(t){if(!hn(t)||wf(t))return!1;var n=Fo(t)?Tf:xf;return n.test(yn(t))}function Vf(t,n){return t==null?void 0:t[n]}function _n(t,n){var o=Vf(t,n);return Of(o)?o:void 0}var Rr=_n(Ft,"WeakMap"),qi=Object.create,Bf=(function(){function t(){}return function(n){if(!hn(n))return{};if(qi)return qi(n);t.prototype=n;var o=new t;return t.prototype=void 0,o}})();function $f(t,n,o){switch(o.length){case 0:return t.call(n);case 1:return t.call(n,o[0]);case 2:return t.call(n,o[0],o[1]);case 3:return t.call(n,o[0],o[1],o[2])}return t.apply(n,o)}function Rf(t,n){var o=-1,r=t.length;for(n||(n=Array(r));++o<r;)n[o]=t[o];return n}var Ff=800,Lf=16,Df=Date.now;function Mf(t){var n=0,o=0;return function(){var r=Df(),a=Lf-(r-o);if(o=r,a>0){if(++n>=Ff)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}function vf(t){return function(){return t}}var Lo=(function(){try{var t=_n(Object,"defineProperty");return t({},"",{}),t}catch{}})(),jf=Lo?function(t,n){return Lo(t,"toString",{configurable:!0,enumerable:!1,value:vf(n),writable:!0})}:Ui,Gi=Mf(jf);function Uf(t,n){for(var o=-1,r=t==null?0:t.length;++o<r&&n(t[o],o,t)!==!1;);return t}function Kf(t,n,o,r){for(var a=t.length,i=o+-1;++i<a;)if(n(t[i],i,t))return i;return-1}function qf(t){return t!==t}function Gf(t,n,o){for(var r=o-1,a=t.length;++r<a;)if(t[r]===n)return r;return-1}function zf(t,n,o){return n===n?Gf(t,n,o):Kf(t,qf,o)}function Hf(t,n){var o=t==null?0:t.length;return!!o&&zf(t,n,0)>-1}var Wf=9007199254740991,Yf=/^(?:0|[1-9]\d*)$/;function Fr(t,n){var o=typeof t;return n=n??Wf,!!n&&(o=="number"||o!="symbol"&&Yf.test(t))&&t>-1&&t%1==0&&t<n}function zi(t,n,o){n=="__proto__"&&Lo?Lo(t,n,{configurable:!0,enumerable:!0,value:o,writable:!0}):t[n]=o}function Lr(t,n){return t===n||t!==t&&n!==n}var Jf=Object.prototype,Xf=Jf.hasOwnProperty;function Dr(t,n,o){var r=t[n];(!(Xf.call(t,n)&&Lr(r,o))||o===void 0&&!(n in t))&&zi(t,n,o)}function no(t,n,o,r){var a=!o;o||(o={});for(var i=-1,l=n.length;++i<l;){var s=n[i],c=void 0;c===void 0&&(c=t[s]),a?zi(o,s,c):Dr(o,s,c)}return o}var Hi=Math.max;function Wi(t,n,o){return n=Hi(n===void 0?t.length-1:n,0),function(){for(var r=arguments,a=-1,i=Hi(r.length-n,0),l=Array(i);++a<i;)l[a]=r[n+a];a=-1;for(var s=Array(n+1);++a<n;)s[a]=r[a];return s[n]=o(l),$f(t,this,s)}}function Zf(t,n){return Gi(Wi(t,n,Ui),t+"")}var Qf=9007199254740991;function Mr(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Qf}function Do(t){return t!=null&&Mr(t.length)&&!Fo(t)}var ep=Object.prototype;function Mo(t){var n=t&&t.constructor,o=typeof n=="function"&&n.prototype||ep;return t===o}function tp(t,n){for(var o=-1,r=Array(t);++o<t;)r[o]=n(o);return r}var np="[object Arguments]";function Yi(t){return Lt(t)&&gn(t)==np}var Ji=Object.prototype,op=Ji.hasOwnProperty,rp=Ji.propertyIsEnumerable,vo=Yi((function(){return arguments})())?Yi:function(t){return Lt(t)&&op.call(t,"callee")&&!rp.call(t,"callee")};function ap(){return!1}var Xi=typeof be=="object"&&be&&!be.nodeType&&be,Zi=Xi&&typeof module=="object"&&module&&!module.nodeType&&module,ip=Zi&&Zi.exports===Xi,Qi=ip?Ft.Buffer:void 0,lp=Qi?Qi.isBuffer:void 0,oo=lp||ap,sp="[object Arguments]",cp="[object Array]",dp="[object Boolean]",up="[object Date]",fp="[object Error]",pp="[object Function]",mp="[object Map]",gp="[object Number]",hp="[object Object]",yp="[object RegExp]",_p="[object Set]",bp="[object String]",kp="[object WeakMap]",wp="[object ArrayBuffer]",Cp="[object DataView]",Ep="[object Float32Array]",Np="[object Float64Array]",xp="[object Int8Array]",Ap="[object Int16Array]",Sp="[object Int32Array]",Pp="[object Uint8Array]",Ip="[object Uint8ClampedArray]",Tp="[object Uint16Array]",Op="[object Uint32Array]",He={};He[Ep]=He[Np]=He[xp]=He[Ap]=He[Sp]=He[Pp]=He[Ip]=He[Tp]=He[Op]=!0,He[sp]=He[cp]=He[wp]=He[dp]=He[Cp]=He[up]=He[fp]=He[pp]=He[mp]=He[gp]=He[hp]=He[yp]=He[_p]=He[bp]=He[kp]=!1;function Vp(t){return Lt(t)&&Mr(t.length)&&!!He[gn(t)]}function vr(t){return function(n){return t(n)}}var el=typeof be=="object"&&be&&!be.nodeType&&be,ro=el&&typeof module=="object"&&module&&!module.nodeType&&module,Bp=ro&&ro.exports===el,jr=Bp&&Fi.process,Fn=(function(){try{var t=ro&&ro.require&&ro.require("util").types;return t||jr&&jr.binding&&jr.binding("util")}catch{}})(),tl=Fn&&Fn.isTypedArray,Ur=tl?vr(tl):Vp,$p=Object.prototype,Rp=$p.hasOwnProperty;function nl(t,n){var o=Ot(t),r=!o&&vo(t),a=!o&&!r&&oo(t),i=!o&&!r&&!a&&Ur(t),l=o||r||a||i,s=l?tp(t.length,String):[],c=s.length;for(var u in t)(n||Rp.call(t,u))&&!(l&&(u=="length"||a&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Fr(u,c)))&&s.push(u);return s}function ol(t,n){return function(o){return t(n(o))}}var Fp=ol(Object.keys,Object),Lp=Object.prototype,Dp=Lp.hasOwnProperty;function rl(t){if(!Mo(t))return Fp(t);var n=[];for(var o in Object(t))Dp.call(t,o)&&o!="constructor"&&n.push(o);return n}function Kr(t){return Do(t)?nl(t):rl(t)}function Mp(t){var n=[];if(t!=null)for(var o in Object(t))n.push(o);return n}var vp=Object.prototype,jp=vp.hasOwnProperty;function Up(t){if(!hn(t))return Mp(t);var n=Mo(t),o=[];for(var r in t)r=="constructor"&&(n||!jp.call(t,r))||o.push(r);return o}function qr(t){return Do(t)?nl(t,!0):Up(t)}var Kp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qp=/^\w*$/;function Gp(t,n){if(Ot(t))return!1;var o=typeof t;return o=="number"||o=="symbol"||o=="boolean"||t==null||Vr(t)?!0:qp.test(t)||!Kp.test(t)||n!=null&&t in Object(n)}var ao=_n(Object,"create");function zp(){this.__data__=ao?ao(null):{},this.size=0}function Hp(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}var Wp="__lodash_hash_undefined__",Yp=Object.prototype,Jp=Yp.hasOwnProperty;function Xp(t){var n=this.__data__;if(ao){var o=n[t];return o===Wp?void 0:o}return Jp.call(n,t)?n[t]:void 0}var Zp=Object.prototype,Qp=Zp.hasOwnProperty;function em(t){var n=this.__data__;return ao?n[t]!==void 0:Qp.call(n,t)}var tm="__lodash_hash_undefined__";function nm(t,n){var o=this.__data__;return this.size+=this.has(t)?0:1,o[t]=ao&&n===void 0?tm:n,this}function bn(t){var n=-1,o=t==null?0:t.length;for(this.clear();++n<o;){var r=t[n];this.set(r[0],r[1])}}bn.prototype.clear=zp,bn.prototype.delete=Hp,bn.prototype.get=Xp,bn.prototype.has=em,bn.prototype.set=nm;function om(){this.__data__=[],this.size=0}function jo(t,n){for(var o=t.length;o--;)if(Lr(t[o][0],n))return o;return-1}var rm=Array.prototype,am=rm.splice;function im(t){var n=this.__data__,o=jo(n,t);if(o<0)return!1;var r=n.length-1;return o==r?n.pop():am.call(n,o,1),--this.size,!0}function lm(t){var n=this.__data__,o=jo(n,t);return o<0?void 0:n[o][1]}function sm(t){return jo(this.__data__,t)>-1}function cm(t,n){var o=this.__data__,r=jo(o,t);return r<0?(++this.size,o.push([t,n])):o[r][1]=n,this}function jt(t){var n=-1,o=t==null?0:t.length;for(this.clear();++n<o;){var r=t[n];this.set(r[0],r[1])}}jt.prototype.clear=om,jt.prototype.delete=im,jt.prototype.get=lm,jt.prototype.has=sm,jt.prototype.set=cm;var io=_n(Ft,"Map");function dm(){this.size=0,this.__data__={hash:new bn,map:new(io||jt),string:new bn}}function um(t){var n=typeof t;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?t!=="__proto__":t===null}function Uo(t,n){var o=t.__data__;return um(n)?o[typeof n=="string"?"string":"hash"]:o.map}function fm(t){var n=Uo(this,t).delete(t);return this.size-=n?1:0,n}function pm(t){return Uo(this,t).get(t)}function mm(t){return Uo(this,t).has(t)}function gm(t,n){var o=Uo(this,t),r=o.size;return o.set(t,n),this.size+=o.size==r?0:1,this}function Ut(t){var n=-1,o=t==null?0:t.length;for(this.clear();++n<o;){var r=t[n];this.set(r[0],r[1])}}Ut.prototype.clear=dm,Ut.prototype.delete=fm,Ut.prototype.get=pm,Ut.prototype.has=mm,Ut.prototype.set=gm;var hm="Expected a function";function Gr(t,n){if(typeof t!="function"||n!=null&&typeof n!="function")throw new TypeError(hm);var o=function(){var r=arguments,a=n?n.apply(this,r):r[0],i=o.cache;if(i.has(a))return i.get(a);var l=t.apply(this,r);return o.cache=i.set(a,l)||i,l};return o.cache=new(Gr.Cache||Ut),o}Gr.Cache=Ut;var ym=500;function _m(t){var n=Gr(t,function(r){return o.size===ym&&o.clear(),r}),o=n.cache;return n}var bm=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,km=/\\(\\)?/g,wm=_m(function(t){var n=[];return t.charCodeAt(0)===46&&n.push(""),t.replace(bm,function(o,r,a,i){n.push(a?i.replace(km,"$1"):r||o)}),n});function Ko(t){return t==null?"":ji(t)}function Ln(t,n){return Ot(t)?t:Gp(t,n)?[t]:wm(Ko(t))}function qo(t){if(typeof t=="string"||Vr(t))return t;var n=t+"";return n=="0"&&1/t==-1/0?"-0":n}function zr(t,n){n=Ln(n,t);for(var o=0,r=n.length;t!=null&&o<r;)t=t[qo(n[o++])];return o&&o==r?t:void 0}function Go(t,n,o){var r=t==null?void 0:zr(t,n);return r===void 0?o:r}function Hr(t,n){for(var o=-1,r=n.length,a=t.length;++o<r;)t[a+o]=n[o];return t}var al=xt?xt.isConcatSpreadable:void 0;function Cm(t){return Ot(t)||vo(t)||!!(al&&t&&t[al])}function Em(t,n,o,r,a){var i=-1,l=t.length;for(o||(o=Cm),a||(a=[]);++i<l;){var s=t[i];o(s)?Hr(a,s):a[a.length]=s}return a}function Nm(t){var n=t==null?0:t.length;return n?Em(t):[]}function il(t){return Gi(Wi(t,void 0,Nm),t+"")}var Wr=ol(Object.getPrototypeOf,Object),xm="[object Object]",Am=Function.prototype,Sm=Object.prototype,ll=Am.toString,Pm=Sm.hasOwnProperty,Im=ll.call(Object);function Tm(t){if(!Lt(t)||gn(t)!=xm)return!1;var n=Wr(t);if(n===null)return!0;var o=Pm.call(n,"constructor")&&n.constructor;return typeof o=="function"&&o instanceof o&&ll.call(o)==Im}function sl(t,n,o){var r=-1,a=t.length;n<0&&(n=-n>a?0:a+n),o=o>a?a:o,o<0&&(o+=a),a=n>o?0:o-n>>>0,n>>>=0;for(var i=Array(a);++r<a;)i[r]=t[r+n];return i}function Om(t,n,o){var r=t.length;return o=o===void 0?r:o,!n&&o>=r?t:sl(t,n,o)}var Vm="\\ud800-\\udfff",Bm="\\u0300-\\u036f",$m="\\ufe20-\\ufe2f",Rm="\\u20d0-\\u20ff",Fm=Bm+$m+Rm,Lm="\\ufe0e\\ufe0f",Dm="\\u200d",Mm=RegExp("["+Dm+Vm+Fm+Lm+"]");function cl(t){return Mm.test(t)}function vm(t){return t.split("")}var dl="\\ud800-\\udfff",jm="\\u0300-\\u036f",Um="\\ufe20-\\ufe2f",Km="\\u20d0-\\u20ff",qm=jm+Um+Km,Gm="\\ufe0e\\ufe0f",zm="["+dl+"]",Yr="["+qm+"]",Jr="\\ud83c[\\udffb-\\udfff]",Hm="(?:"+Yr+"|"+Jr+")",ul="[^"+dl+"]",fl="(?:\\ud83c[\\udde6-\\uddff]){2}",pl="[\\ud800-\\udbff][\\udc00-\\udfff]",Wm="\\u200d",ml=Hm+"?",gl="["+Gm+"]?",Ym="(?:"+Wm+"(?:"+[ul,fl,pl].join("|")+")"+gl+ml+")*",Jm=gl+ml+Ym,Xm="(?:"+[ul+Yr+"?",Yr,fl,pl,zm].join("|")+")",Zm=RegExp(Jr+"(?="+Jr+")|"+Xm+Jm,"g");function Qm(t){return t.match(Zm)||[]}function eg(t){return cl(t)?Qm(t):vm(t)}function tg(t){return function(n){n=Ko(n);var o=cl(n)?eg(n):void 0,r=o?o[0]:n.charAt(0),a=o?Om(o,1).join(""):n.slice(1);return r[t]()+a}}var ng=tg("toUpperCase");function og(t){return function(n){return t==null?void 0:t[n]}}function rg(){this.__data__=new jt,this.size=0}function ag(t){var n=this.__data__,o=n.delete(t);return this.size=n.size,o}function ig(t){return this.__data__.get(t)}function lg(t){return this.__data__.has(t)}var sg=200;function cg(t,n){var o=this.__data__;if(o instanceof jt){var r=o.__data__;if(!io||r.length<sg-1)return r.push([t,n]),this.size=++o.size,this;o=this.__data__=new Ut(r)}return o.set(t,n),this.size=o.size,this}function Kt(t){var n=this.__data__=new jt(t);this.size=n.size}Kt.prototype.clear=rg,Kt.prototype.delete=ag,Kt.prototype.get=ig,Kt.prototype.has=lg,Kt.prototype.set=cg;function dg(t,n){return t&&no(n,Kr(n),t)}function ug(t,n){return t&&no(n,qr(n),t)}var hl=typeof be=="object"&&be&&!be.nodeType&&be,yl=hl&&typeof module=="object"&&module&&!module.nodeType&&module,fg=yl&&yl.exports===hl,_l=fg?Ft.Buffer:void 0,bl=_l?_l.allocUnsafe:void 0;function pg(t,n){if(n)return t.slice();var o=t.length,r=bl?bl(o):new t.constructor(o);return t.copy(r),r}function mg(t,n){for(var o=-1,r=t==null?0:t.length,a=0,i=[];++o<r;){var l=t[o];n(l,o,t)&&(i[a++]=l)}return i}function kl(){return[]}var gg=Object.prototype,hg=gg.propertyIsEnumerable,wl=Object.getOwnPropertySymbols,Xr=wl?function(t){return t==null?[]:(t=Object(t),mg(wl(t),function(n){return hg.call(t,n)}))}:kl;function yg(t,n){return no(t,Xr(t),n)}var _g=Object.getOwnPropertySymbols,Cl=_g?function(t){for(var n=[];t;)Hr(n,Xr(t)),t=Wr(t);return n}:kl;function bg(t,n){return no(t,Cl(t),n)}function El(t,n,o){var r=n(t);return Ot(t)?r:Hr(r,o(t))}function Zr(t){return El(t,Kr,Xr)}function Nl(t){return El(t,qr,Cl)}var Qr=_n(Ft,"DataView"),ea=_n(Ft,"Promise"),ta=_n(Ft,"Set"),xl="[object Map]",kg="[object Object]",Al="[object Promise]",Sl="[object Set]",Pl="[object WeakMap]",Il="[object DataView]",wg=yn(Qr),Cg=yn(io),Eg=yn(ea),Ng=yn(ta),xg=yn(Rr),At=gn;(Qr&&At(new Qr(new ArrayBuffer(1)))!=Il||io&&At(new io)!=xl||ea&&At(ea.resolve())!=Al||ta&&At(new ta)!=Sl||Rr&&At(new Rr)!=Pl)&&(At=function(t){var n=gn(t),o=n==kg?t.constructor:void 0,r=o?yn(o):"";if(r)switch(r){case wg:return Il;case Cg:return xl;case Eg:return Al;case Ng:return Sl;case xg:return Pl}return n});var Ag=Object.prototype,Sg=Ag.hasOwnProperty;function Pg(t){var n=t.length,o=new t.constructor(n);return n&&typeof t[0]=="string"&&Sg.call(t,"index")&&(o.index=t.index,o.input=t.input),o}var zo=Ft.Uint8Array;function na(t){var n=new t.constructor(t.byteLength);return new zo(n).set(new zo(t)),n}function Ig(t,n){var o=n?na(t.buffer):t.buffer;return new t.constructor(o,t.byteOffset,t.byteLength)}var Tg=/\w*$/;function Og(t){var n=new t.constructor(t.source,Tg.exec(t));return n.lastIndex=t.lastIndex,n}var Tl=xt?xt.prototype:void 0,Ol=Tl?Tl.valueOf:void 0;function Vg(t){return Ol?Object(Ol.call(t)):{}}function Bg(t,n){var o=n?na(t.buffer):t.buffer;return new t.constructor(o,t.byteOffset,t.length)}var $g="[object Boolean]",Rg="[object Date]",Fg="[object Map]",Lg="[object Number]",Dg="[object RegExp]",Mg="[object Set]",vg="[object String]",jg="[object Symbol]",Ug="[object ArrayBuffer]",Kg="[object DataView]",qg="[object Float32Array]",Gg="[object Float64Array]",zg="[object Int8Array]",Hg="[object Int16Array]",Wg="[object Int32Array]",Yg="[object Uint8Array]",Jg="[object Uint8ClampedArray]",Xg="[object Uint16Array]",Zg="[object Uint32Array]";function Qg(t,n,o){var r=t.constructor;switch(n){case Ug:return na(t);case $g:case Rg:return new r(+t);case Kg:return Ig(t,o);case qg:case Gg:case zg:case Hg:case Wg:case Yg:case Jg:case Xg:case Zg:return Bg(t,o);case Fg:return new r;case Lg:case vg:return new r(t);case Dg:return Og(t);case Mg:return new r;case jg:return Vg(t)}}function eh(t){return typeof t.constructor=="function"&&!Mo(t)?Bf(Wr(t)):{}}var th="[object Map]";function nh(t){return Lt(t)&&At(t)==th}var Vl=Fn&&Fn.isMap,oh=Vl?vr(Vl):nh,rh="[object Set]";function ah(t){return Lt(t)&&At(t)==rh}var Bl=Fn&&Fn.isSet,ih=Bl?vr(Bl):ah,lh=1,sh=2,ch=4,$l="[object Arguments]",dh="[object Array]",uh="[object Boolean]",fh="[object Date]",ph="[object Error]",Rl="[object Function]",mh="[object GeneratorFunction]",gh="[object Map]",hh="[object Number]",Fl="[object Object]",yh="[object RegExp]",_h="[object Set]",bh="[object String]",kh="[object Symbol]",wh="[object WeakMap]",Ch="[object ArrayBuffer]",Eh="[object DataView]",Nh="[object Float32Array]",xh="[object Float64Array]",Ah="[object Int8Array]",Sh="[object Int16Array]",Ph="[object Int32Array]",Ih="[object Uint8Array]",Th="[object Uint8ClampedArray]",Oh="[object Uint16Array]",Vh="[object Uint32Array]",Ge={};Ge[$l]=Ge[dh]=Ge[Ch]=Ge[Eh]=Ge[uh]=Ge[fh]=Ge[Nh]=Ge[xh]=Ge[Ah]=Ge[Sh]=Ge[Ph]=Ge[gh]=Ge[hh]=Ge[Fl]=Ge[yh]=Ge[_h]=Ge[bh]=Ge[kh]=Ge[Ih]=Ge[Th]=Ge[Oh]=Ge[Vh]=!0,Ge[ph]=Ge[Rl]=Ge[wh]=!1;function lo(t,n,o,r,a,i){var l,s=n&lh,c=n&sh,u=n&ch;if(o&&(l=a?o(t,r,a,i):o(t)),l!==void 0)return l;if(!hn(t))return t;var p=Ot(t);if(p){if(l=Pg(t),!s)return Rf(t,l)}else{var d=At(t),f=d==Rl||d==mh;if(oo(t))return pg(t,s);if(d==Fl||d==$l||f&&!a){if(l=c||f?{}:eh(t),!s)return c?bg(t,ug(l,t)):yg(t,dg(l,t))}else{if(!Ge[d])return a?t:{};l=Qg(t,d,s)}}i||(i=new Kt);var m=i.get(t);if(m)return m;i.set(t,l),ih(t)?t.forEach(function(h){l.add(lo(h,n,o,h,t,i))}):oh(t)&&t.forEach(function(h,y){l.set(y,lo(h,n,o,y,t,i))});var g=u?c?Nl:Zr:c?qr:Kr,_=p?void 0:g(t);return Uf(_||t,function(h,y){_&&(y=h,h=t[y]),Dr(l,y,lo(h,n,o,y,t,i))}),l}var Bh=1,$h=4;function kn(t){return lo(t,Bh|$h)}var Rh="__lodash_hash_undefined__";function Fh(t){return this.__data__.set(t,Rh),this}function Lh(t){return this.__data__.has(t)}function so(t){var n=-1,o=t==null?0:t.length;for(this.__data__=new Ut;++n<o;)this.add(t[n])}so.prototype.add=so.prototype.push=Fh,so.prototype.has=Lh;function Dh(t,n){for(var o=-1,r=t==null?0:t.length;++o<r;)if(n(t[o],o,t))return!0;return!1}function oa(t,n){return t.has(n)}var Mh=1,vh=2;function Ll(t,n,o,r,a,i){var l=o&Mh,s=t.length,c=n.length;if(s!=c&&!(l&&c>s))return!1;var u=i.get(t),p=i.get(n);if(u&&p)return u==n&&p==t;var d=-1,f=!0,m=o&vh?new so:void 0;for(i.set(t,n),i.set(n,t);++d<s;){var g=t[d],_=n[d];if(r)var h=l?r(_,g,d,n,t,i):r(g,_,d,t,n,i);if(h!==void 0){if(h)continue;f=!1;break}if(m){if(!Dh(n,function(y,w){if(!oa(m,w)&&(g===y||a(g,y,o,r,i)))return m.push(w)})){f=!1;break}}else if(!(g===_||a(g,_,o,r,i))){f=!1;break}}return i.delete(t),i.delete(n),f}function jh(t){var n=-1,o=Array(t.size);return t.forEach(function(r,a){o[++n]=[a,r]}),o}function Uh(t){var n=-1,o=Array(t.size);return t.forEach(function(r){o[++n]=r}),o}var Kh=1,qh=2,Gh="[object Boolean]",zh="[object Date]",Hh="[object Error]",Wh="[object Map]",Yh="[object Number]",Jh="[object RegExp]",Xh="[object Set]",Zh="[object String]",Qh="[object Symbol]",ey="[object ArrayBuffer]",ty="[object DataView]",Dl=xt?xt.prototype:void 0,ra=Dl?Dl.valueOf:void 0;function ny(t,n,o,r,a,i,l){switch(o){case ty:if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)return!1;t=t.buffer,n=n.buffer;case ey:return!(t.byteLength!=n.byteLength||!i(new zo(t),new zo(n)));case Gh:case zh:case Yh:return Lr(+t,+n);case Hh:return t.name==n.name&&t.message==n.message;case Jh:case Zh:return t==n+"";case Wh:var s=jh;case Xh:var c=r&Kh;if(s||(s=Uh),t.size!=n.size&&!c)return!1;var u=l.get(t);if(u)return u==n;r|=qh,l.set(t,n);var p=Ll(s(t),s(n),r,a,i,l);return l.delete(t),p;case Qh:if(ra)return ra.call(t)==ra.call(n)}return!1}var oy=1,ry=Object.prototype,ay=ry.hasOwnProperty;function iy(t,n,o,r,a,i){var l=o&oy,s=Zr(t),c=s.length,u=Zr(n),p=u.length;if(c!=p&&!l)return!1;for(var d=c;d--;){var f=s[d];if(!(l?f in n:ay.call(n,f)))return!1}var m=i.get(t),g=i.get(n);if(m&&g)return m==n&&g==t;var _=!0;i.set(t,n),i.set(n,t);for(var h=l;++d<c;){f=s[d];var y=t[f],w=n[f];if(r)var E=l?r(w,y,f,n,t,i):r(y,w,f,t,n,i);if(!(E===void 0?y===w||a(y,w,o,r,i):E)){_=!1;break}h||(h=f=="constructor")}if(_&&!h){var C=t.constructor,b=n.constructor;C!=b&&"constructor"in t&&"constructor"in n&&!(typeof C=="function"&&C instanceof C&&typeof b=="function"&&b instanceof b)&&(_=!1)}return i.delete(t),i.delete(n),_}var ly=1,Ml="[object Arguments]",vl="[object Array]",Ho="[object Object]",sy=Object.prototype,jl=sy.hasOwnProperty;function cy(t,n,o,r,a,i){var l=Ot(t),s=Ot(n),c=l?vl:At(t),u=s?vl:At(n);c=c==Ml?Ho:c,u=u==Ml?Ho:u;var p=c==Ho,d=u==Ho,f=c==u;if(f&&oo(t)){if(!oo(n))return!1;l=!0,p=!1}if(f&&!p)return i||(i=new Kt),l||Ur(t)?Ll(t,n,o,r,a,i):ny(t,n,c,o,r,a,i);if(!(o&ly)){var m=p&&jl.call(t,"__wrapped__"),g=d&&jl.call(n,"__wrapped__");if(m||g){var _=m?t.value():t,h=g?n.value():n;return i||(i=new Kt),a(_,h,o,r,i)}}return f?(i||(i=new Kt),iy(t,n,o,r,a,i)):!1}function Ul(t,n,o,r,a){return t===n?!0:t==null||n==null||!Lt(t)&&!Lt(n)?t!==t&&n!==n:cy(t,n,o,r,Ul,a)}function dy(t,n){return t!=null&&n in Object(t)}function Kl(t,n,o){n=Ln(n,t);for(var r=-1,a=n.length,i=!1;++r<a;){var l=qo(n[r]);if(!(i=t!=null&&o(t,l)))break;t=t[l]}return i||++r!=a?i:(a=t==null?0:t.length,!!a&&Mr(a)&&Fr(l,a)&&(Ot(t)||vo(t)))}function uy(t,n){return t!=null&&Kl(t,n,dy)}function fy(t){return Lt(t)&&Do(t)}function py(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}var my={"&":"&","<":"<",">":">",'"':""","'":"'"},gy=og(my),ql=/[&<>"']/g,hy=RegExp(ql.source);function yy(t){return t=Ko(t),t&&hy.test(t)?t.replace(ql,gy):t}var _y=Object.prototype,by=_y.hasOwnProperty;function ky(t,n){return t!=null&&by.call(t,n)}function Wo(t,n){return t!=null&&Kl(t,n,ky)}var wy=Math.min;function Cy(t,n,o){for(var r=Hf,a=t[0].length,i=t.length,l=i,s=Array(i),c=1/0,u=[];l--;){var p=t[l];c=wy(p.length,c),s[l]=a>=120&&p.length>=120?new so(l&&p):void 0}p=t[0];var d=-1,f=s[0];e:for(;++d<a&&u.length<c;){var m=p[d],g=m;if(m=m!==0?m:0,!(f?oa(f,g):r(u,g))){for(l=i;--l;){var _=s[l];if(!(_?oa(_,g):r(t[l],g)))continue e}f&&f.push(g),u.push(m)}}return u}function Ey(t){return fy(t)?t:[]}var Ny=Zf(function(t){var n=Br(t,Ey);return n.length&&n[0]===t[0]?Cy(n):[]});function xy(t,n){return n.length<2?t:zr(t,sl(n,0,-1))}var Ay="[object Map]",Sy="[object Set]",Py=Object.prototype,Iy=Py.hasOwnProperty;function Gl(t){if(t==null)return!0;if(Do(t)&&(Ot(t)||typeof t=="string"||typeof t.splice=="function"||oo(t)||Ur(t)||vo(t)))return!t.length;var n=At(t);if(n==Ay||n==Sy)return!t.size;if(Mo(t))return!rl(t).length;for(var o in t)if(Iy.call(t,o))return!1;return!0}function qt(t,n){return Ul(t,n)}var Ty=Object.prototype,Oy=Ty.hasOwnProperty;function zl(t,n){n=Ln(n,t);var o=-1,r=n.length;if(!r)return!0;for(var a=t==null||typeof t!="object"&&typeof t!="function";++o<r;){var i=n[o];if(typeof i=="string"){if(i==="__proto__"&&!Oy.call(t,"__proto__"))return!1;if(i==="constructor"&&o+1<r&&typeof n[o+1]=="string"&&n[o+1]==="prototype"){if(a&&o===0)continue;return!1}}}var l=xy(t,n);return l==null||delete l[qo(py(n))]}function Vy(t){return Tm(t)?void 0:t}var By=1,$y=2,Ry=4,tn=il(function(t,n){var o={};if(t==null)return o;var r=!1;n=Br(n,function(i){return i=Ln(i,t),r||(r=i.length>1),i}),no(t,Nl(t),o),r&&(o=lo(o,By|$y|Ry,Vy));for(var a=n.length;a--;)zl(o,n[a]);return o});function Hl(t,n,o,r){if(!hn(t))return t;n=Ln(n,t);for(var a=-1,i=n.length,l=i-1,s=t;s!=null&&++a<i;){var c=qo(n[a]),u=o;if(c==="__proto__"||c==="constructor"||c==="prototype")return t;if(a!=l){var p=s[c];u=void 0,u===void 0&&(u=hn(p)?p:Fr(n[a+1])?[]:{})}Dr(s,c,u),s=s[c]}return t}function Fy(t,n,o){for(var r=-1,a=n.length,i={};++r<a;){var l=n[r],s=zr(t,l);o(s,l)&&Hl(i,Ln(l,t),s)}return i}function Ly(t,n){return Fy(t,n,function(o,r){return uy(t,r)})}var Wl=il(function(t,n){return t==null?{}:Ly(t,n)});function Yl(t,n,o){return t==null?t:Hl(t,n,o)}var Dy=0;function Yo(t){var n=++Dy;return Ko(t)+n}function Jl(t,n){return t==null?!0:zl(t,n)}const My=[{authentication:{mode:"none"},ssl_verify:!0},{authentication:{basic:{}}},{authentication:{basic:{},oauth2:{token_headers:{},token_post_args:{}},oauth2_client:{}}}],wn=t=>{var n,o,r,a,i,l;((o=(n=t.confluent)==null?void 0:n.authentication)==null?void 0:o.mode)==="none"&&(delete t.confluent.authentication.oauth2,delete t.confluent.authentication.oauth2_client,delete t.confluent.authentication.basic),((a=(r=t.confluent)==null?void 0:r.authentication)==null?void 0:a.mode)==="basic"&&(delete t.confluent.authentication.oauth2,delete t.confluent.authentication.oauth2_client),((l=(i=t.confluent)==null?void 0:i.authentication)==null?void 0:l.mode)==="oauth2"&&delete t.confluent.authentication.basic,My.some(s=>qt(t.confluent,s))&&(t.confluent=null)};function vy(t,n){const o=t.split(""),r=n.split(""),a=o.length,i=r.length,l=Array.from({length:a+1},()=>Array(i+1).fill(0));for(let p=1;p<=a;p++)for(let d=1;d<=i;d++)o[p-1]===r[d-1]?l[p][d]=l[p-1][d-1]+1:l[p][d]=Math.max(l[p-1][d],l[p][d-1]);let s="",c=a,u=i;for(;c>0&&u>0;)o[c-1]===r[u-1]?(s=o[c-1]+s,c--,u--):l[c-1][u]>l[c][u-1]?c--:u--;return s}function jy(t){const n=Date.now(),o=2688*60*60*1e3;return Math.abs(n-t)<=o}const Uy={"config-message_by_lua_functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},shamefullyTransformPayload:({payload:t})=>{var n;wn((n=t.config)==null?void 0:n.schema_registry)}},Ky={"config-message_by_lua_functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},shamefullyTransformPayload:({payload:t})=>{var n;wn((n=t.config)==null?void 0:n.schema_registry)}},qy={"config-message_by_lua_functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},shamefullyTransformPayload:({payload:t})=>{var n,o,r;wn((n=t.config)==null?void 0:n.schema_registry),(r=(o=t.config)==null?void 0:o.topics)==null||r.forEach(a=>{wn(a==null?void 0:a.schema_registry)})}},Gy={"config-message_by_lua_functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},shamefullyTransformPayload:({payload:t})=>{var n,o,r;wn((n=t.config)==null?void 0:n.schema_registry),(r=(o=t.config)==null?void 0:o.topics)==null||r.forEach(a=>{wn(a==null?void 0:a.schema_registry)})}},zy={shamefullyTransformPayload:({payload:t})=>{var n;wn((n=t.config)==null?void 0:n.schema_registry)}},Hy={"config-static_tags":{...$o,items:{type:"object",default:()=>({}),schema:{fields:[{model:"name",label:"name",type:"input",inputType:"string",id:"schema_name"},{model:"value",label:"value",type:"input",inputType:"string",id:"schema_value"}]}}}},Wy={"request-callout":"RequestCalloutForm","service-protection":{experimental:!0,component:"ServiceProtectionForm"},datakit:"DatakitForm","ai-mcp-proxy":"AIMcpProxyForm","jwt-signer":"CommonForm","upstream-oauth":{experimental:!0,component:"UpstreamOauthForm"},"key-auth":{experimental:!0,component:"KeyAuthForm"},"rate-limiting":{experimental:!0,component:"CommonForm"},jwt:{experimental:!0,component:"CommonForm"},"route-transformer-advanced":{experimental:!0,component:"CommonForm"},"request-transformer":{experimental:!0,component:"CommonForm"},"basic-auth":{experimental:!0,component:"CommonForm"}};function aa(t,n){const o=Wy[t];if(typeof o=="string")return o;if(n.includes(t))return o.component}function Yy(t,n,o){return o?o==="freeform":!!aa(t,n)}const ia=Symbol("EXPERIMENTAL_FREE_FORM_PROVIDER"),Jo={KM_2262_CODE_MODE:"KM-2262-code-mode",KM_2306_CONDITION_FIELD_314:"KM-2306-condition-field-314"},Xl=Symbol("TOASTER_PROVIDER"),Dn="__FREEFORM_SCHEMA_MAP__";function la(){return e.inject(ia,[])}function Jy(t){e.provide(ia,t)}function Xy(){const t=la();return{shouldUseFreeForm:(n,o)=>Yy(n,t,o),getFreeFormName:n=>aa(n,t)||"CommonForm"}}const Zy={shamefullyTransformPayload(t){var o;if(!((o=t.payload.config)!=null&&o.token_exchange))return t;const n=t.payload.config.token_exchange.subject_token_issuers;return n&&n.forEach(r=>{qt(r.conditions,{})&&delete r.conditions,r.conditions&&Object.values(r.conditions).every(a=>Array.isArray(a)&&a.length===0)&&delete r.conditions}),t}},Qy={shamefullyTransformPayload(t){var n,o,r,a,i;if(!((o=(n=t.payload.config)==null?void 0:n.access_logs)!=null&&o.custom_attributes_by_lua))return t;if(qt((a=(r=t.payload.config)==null?void 0:r.access_logs)==null?void 0:a.custom_attributes_by_lua,{})){const l=(i=t.payload.config)==null?void 0:i.access_logs;l&&delete l.custom_attributes_by_lua}return t}},e_=(t,n)=>{const o=t.model.startsWith("config-"),r=n.model.startsWith("config-");return o&&!r?1:!o&&r?-1:0},Zl=(t,n)=>(t.order??0)-(n.order??0),Ql=(t,n)=>e_(t,n)||Zl(t,n)||t.model.localeCompare(n.model),Me={useI18n:Le,usePluginMetaData:Ru,usePluginHelpers:Ni,useSchemas:t=>{const{capitalize:n}=ee.useStringHelpers(),{convertToDotNotation:o}=Ni(),{i18n:{t:r}}=Le(),a=la(),i={"application-registration":{overwriteDefault:!0,formSchema:{...ju}},datadog:{...Uu},"exit-transformer":{...Ku},"upstream-tls":{"config-trusted_certificates":{type:"textArea",valueType:"array",rows:4,help:"A comma separated list of certificate values"}},statsd:{...nf},"statsd-advanced":{...of},"route-by-header":{...Zu},"ai-prompt-decorator":{...Fu},"ai-prompt-template":{...Lu},"ai-proxy-advanced":{...Du},"ai-rag-injector":{...Mu},"ai-llm-as-judge":{...vu},"vault-auth":{...af},"oas-validation":{...Hu},mocking:{...zu},"rate-limiting":{...Ro},"rate-limiting-advanced":(t==null?void 0:t.app)==="kongManager"?{"config-consumer_groups":Ro["config-consumer_groups"]}:{...Ro},"graphql-rate-limiting-advanced":{...qu},"injection-protection":{...Gu},"response-ratelimiting":{...Ro},"pre-function":{...$i},"post-function":{...$i},"request-transformer-advanced":{...Ju},"response-transformer":{...Ri},"response-transformer-advanced":{...Xu},zipkin:{...Hy},"upstream-oauth":{...rf},saml:{...Qu},"kafka-upstream":{...Uy},"solace-consume":{...ef},"solace-upstream":{...tf},"key-auth":Au(t),"key-auth-enc":Vu(t),confluent:{...Ky},"confluent-consume":{...qy},"kafka-consume":{...Gy},"kafka-log":{...zy},"openid-connect":{...Zy},opentelemetry:{...Qy}},l=()=>["created_at","updated_at","id","_isCustomPlugin","_supported_redis_partial_type","_redis_partial_path"],s=(k,N,S,R)=>{let P={};(N||k)&&(P=N||(k.fields?k.fields:k));const A=l().concat(k.blacklist?k.blacklist:[]),T=Object.keys(P).filter(v=>!A.includes(v)),O=T.indexOf("comparator");O>-1&&T.splice(O,1);let I={fields:[]};const q={};T.forEach(v=>{u(P[v],v,P,q,I,S)});const j=q.name,W=Nt[j],U=[],D=v=>{const x=["cluster-cache"];for(const M of x)if(v.model.includes(M))return!1;return new RegExp("(?<=-redis-).*").test(v.model)};if(I._supported_redis_partial_type=k._supported_redis_partial_type,I._redis_partial_path=k._redis_partial_path,je.getSharedFormName(j)||aa(j,a)||W!=null&&W.useLegacyForm||t!=null&&t.credential||R==="freeform"){if(W!=null&&W.useLegacyForm&&(t!=null&&t.enableRedisPartial)&&k._supported_redis_partial_type){for(const v of I.fields)if(D(v)){U.push(v);continue}I.fields=I.fields.filter(v=>!D(v)),U.length&&I.fields.push({id:"_redis",fields:U,model:"__redis_partial",pluginType:k._isCustomPlugin?"custom":"bundled",redisType:k._supported_redis_partial_type,redisPath:k._redis_partial_path})}I.fields.sort((v,x)=>(v.order=v.order||0,x.order=x.order||0,v.order-x.order))}else{const v=[],x=[],M=[],G=[],te={};if(W!=null&&W.fieldRules){const Z=[...W.fieldRules.atLeastOneOf??[],...W.fieldRules.onlyOneOf??[],...W.fieldRules.mutuallyRequired??[]];if(W.fieldRules.onlyOneOfMutuallyRequired)for(const Ne of W.fieldRules.onlyOneOfMutuallyRequired)Z.push(...Ne);for(const Ne of Z)for(const Oe of Ne)te[Oe.replace(/-/g,"_").replace(/\./g,"-")]=!1}for(const Z of I.fields){if(t!=null&&t.enableRedisPartial&&k._supported_redis_partial_type&&D(Z)){G.push(Z);continue}if(Z.pinned){v.push(Z);continue}if(Z.required||te[Z.model]!==void 0){te[Z.model]===!1&&(te[Z.model]=!0),x.push(Z);continue}M.push(Z)}G.length&&M.push({id:"_redis",fields:G,model:"__redis_partial",pluginType:k._isCustomPlugin?"custom":"bundled",redisType:k._supported_redis_partial_type,redisPath:k._redis_partial_path,order:-1});const L=Object.entries(te).filter(([,Z])=>!Z).map(([Z])=>Z.replace(/-/g,".").replace(/_/g,"-"));L.length>0&&console.warn(`Unknown checked fields for plugin ${j}: ${L.join(", ")}`);const H=[];v.length>0&&H.push({fields:v.sort(Zl)}),(x.length>0||M.length>0)&&H.push({fields:x.sort(Ql),collapsible:{title:r("plugins.form.grouping.plugin_configuration.title"),description:r("plugins.form.grouping.plugin_configuration.description"),nestedCollapsible:{fields:M.sort(Ql),triggerLabel:{expand:r("plugins.form.grouping.advanced_parameters.view"),collapse:r("plugins.form.grouping.advanced_parameters.hide")}}},slots:{beforeContent:"plugin-config-before-content",emptyState:"plugin-config-empty-state"}}),I={groups:H}}return{schema:I,model:q,options:{noneSelectedText:"Nothing Selected...",helpAsHtml:!0}}},c=k=>Array.isArray(k.default)||k.default!=null&&typeof k.default!="object"&&k.default!=="function",u=(k,N,S,R,P,A)=>{const T=c(k);return R[N]=T?k.default:null,k.id=N,k.model=N,k.fields&&k.type==="record"?d(k,N,S,R,P,A):(S[N]=k,C(k,R),A&&A[N]&&p(S[N],A[N]),P.fields.push(k)),S},p=(k,N)=>(N&&(Object.assign(k,N),N.label&&(k.label=N.label)),k),d=(k,N,S,R,P,A)=>{k.fields.forEach(T=>{Object.keys(T).forEach(O=>{const I=T[O];S=u(I,N+"-"+O,S,R,P,A)})})},f=(k,N)=>{k.type="input",k.inputType="hidden",k.styleClasses="kong-form-hidden-field-wrapper";const S=t==null?void 0:t.entityId;N[k.model]=S?{id:S}:null},m=k=>{k.type="input",k.inputType="number",k.between&&k.between.length===2&&(k.min=k.between[0],k.max=k.between[1])},g=k=>{Object.prototype.hasOwnProperty.call(k,"one_of")?(k.type="select",k.values=k.one_of,k.selectOptions={hideNoneSelectedText:!0}):(k.type="input",k.inputType="text")},_=k=>{k.type="checkbox",k.default=!0,k.required=!1},h=k=>{if(k.type="object-advanced",k.values.type==="array"){const{type:N}=k.values.elements||{};k.schema={fields:[{schema:{fields:[{...ve,model:k.model,valueArrayType:N==="integer"?"number":N||"string",inputAttributes:{...ve.inputAttributes,type:N==="integer"?"number":"text",inputMode:N==="integer"?"numeric":"text"}}]}}]}}else k.values.fields&&(k.schema={fields:[{type:"object",model:"object",schema:{fields:k.values.fields.map(N=>{const S=Object.keys(N)[0];return{model:S,type:"input",label:n(S),placeholder:S,inputType:N[S].type}})}}]})},y=k=>k.fields.reduce((N,S)=>(S.fields&&S.fields.forEach(R=>{N[R.model]=R}),S.model&&(N[S.model]=S),N),{}),w=(k,N)=>{if(!je.customFields.includes(k.model))return;const S=y(k);je.customFields.forEach(R=>{Object.keys(S).forEach(P=>{const A=c(S[P]);N[P]=A?S[P].default:null}),delete N[R]})},E=(k,N)=>k.inputType==="hidden"?"":o(n(k.label||N.replace(/_/g," "))),C=(k,N)=>{switch(w(k,N),k.type){case"foreign":f(k,N);break;case"number":m(k),k.attributes={step:"any"};break;case"integer":m(k);break;case"string":g(k);break;case"boolean":_(k);break;case"map":h(k);break}k.inputType==="foreign"&&f(k,N),k.label=E(k,k.model)};function b(k,N){if(N==null||N.type&&N.type!=="record"||typeof k!="object"||k==null)return k;const S={};for(const R of N.fields){const P=Object.keys(R)[0],A=R[P];A.type==="record"?S[P]=b(k[P],A):A.type==="array"&&Array.isArray(k[P])&&A.elements.type==="record"?S[P]=k[P].map(T=>b(T,A.elements)):S[P]=k[P]}return S}return{buildFormSchema:u,parseSchema:s,customSchemas:i,typedefs:$n,pruneRecord:b}},useExperimentalFreeForms:la,useProvideExperimentalFreeForms:Jy,useFreeFormResolver:Xy},t_=(t,n)=>({type:"array",valueType:"string",valueArrayType:"array",itemContainerComponent:"FieldArrayItem",fieldClasses:"kong-form-array-field",fieldItemsClasses:"kong-form-array-field-item",validator:"array",styleClasses:"kong-form-field-wrapper",newElementButtonLabel:"+ Add",newElementButtonLabelClasses:"kong-form-new-element-button-label",items:{type:"select",values:t,selectOptions:{hideNoneSelectedText:!0},...(n==null?void 0:n[0])!=null?{default:n[0]}:{}}}),dt="/v2/control-planes/{controlPlaneId}/core-entities",gt="/{workspace}",We={list:{konnect:{all:`${dt}/plugins`,forEntity:`${dt}/{entityType}/{entityId}/plugins`},kongManager:{all:`${gt}/plugins`,forEntity:`${gt}/{entityType}/{entityId}/plugins`}},select:{konnect:{availablePlugins:`${dt}/v1/available-plugins`,streamingCustomPlugins:`${dt}/custom-plugins`,schemaCustomPluginItem:`${dt}/plugin-schemas/{pluginId}`,streamingCustomPluginItem:`${dt}/custom-plugins/{pluginId}`},kongManager:{availablePlugins:`${gt}/kong`,availablePluginsForOss:"/"}},form:{konnect:{create:{all:`${dt}/plugins`,forEntity:`${dt}/{entityType}/{entityId}/plugins`},edit:{all:`${dt}/plugins/{id}`,forEntity:`${dt}/{entityType}/{entityId}/plugins/{id}`},pluginSchema:"/v2/control-planes/{controlPlaneId}/schemas/core-entities/plugins/{plugin}",credential:{create:`${dt}/{resourceEndpoint}`,edit:`${dt}/{resourceEndpoint}/{id}`},credentialSchema:"/v2/control-planes/{controlPlaneId}/schemas/core-entities/{plugin}",entityGetOne:`${dt}/{entity}/{id}`,entityGetAll:`${dt}/{entity}`,entityPeek:`${dt}/{entity}?size={amount}`},kongManager:{create:{all:`${gt}/plugins`,forEntity:`${gt}/{entityType}/{entityId}/plugins`},edit:{all:`${gt}/plugins/{id}`,forEntity:`${gt}/{entityType}/{entityId}/plugins/{id}`},pluginSchema:`${gt}/schemas/plugins/{plugin}`,credential:{create:`${gt}/{resourceEndpoint}`,edit:`${gt}/{resourceEndpoint}/{id}`},credentialSchema:`${gt}/schemas/{plugin}`,entityGetOne:`${gt}/{entity}/{id}`,entityGetAll:`${gt}/{entity}`}},item:{konnect:{all:`${dt}/plugins/{id}`,forEntity:`${dt}/{entityType}/{entityId}/plugins/{id}`},kongManager:{all:`${gt}/plugins/{id}`,forEntity:`${gt}/{entityType}/{entityId}/plugins/{id}`}}},n_={key:0},o_=ke(e.defineComponent({__name:"PluginFieldRuleAlerts",props:{rules:{}},setup(t){const n=t,{formatPluginFieldLabel:o}=Me.usePluginHelpers(),{i18n:{t:r}}=Me.useI18n(),a=s=>s.map(c=>c.replace(/^[cC]onfig\./,"").split(".").map(u=>o(u)).join(".")).join(", "),i=(s,c)=>r(s,{parameters:a(c)}),l=e.computed(()=>{const s=[];if(n.rules.atLeastOneOf)for(const c of n.rules.atLeastOneOf)s.push(i("plugins.form.field_rules.at_least_one_of",c));if(n.rules.onlyOneOf)for(const c of n.rules.onlyOneOf)s.push(i("plugins.form.field_rules.only_one_of",c));if(n.rules.mutuallyRequired)for(const c of n.rules.mutuallyRequired)s.push(i("plugins.form.field_rules.mutually_required",c));return s});return(s,c)=>{const u=e.resolveComponent("KAlert");return e.openBlock(),e.createBlock(u,{class:"plugin-field-rule-alerts"},{default:e.withCtx(()=>[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(p,d)=>(e.openBlock(),e.createElementBlock("li",{key:`simple-alert-${d}`},e.toDisplayString(p),1))),128)),n.rules.onlyOneOfMutuallyRequired&&n.rules.onlyOneOfMutuallyRequired.length>0?(e.openBlock(),e.createElementBlock("li",n_,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.rules.onlyOneOfMutuallyRequired,(p,d)=>(e.openBlock(),e.createElementBlock("div",{key:`only-one-mutually-alert-${d}`},[e.createElementVNode("div",null,e.toDisplayString(e.unref(r)("plugins.form.field_rules.only_one_of_mutually_required")),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p,(f,m)=>(e.openBlock(),e.createElementBlock("li",{key:`only-one-mutually-alert-${d}-combination-${m}`},e.toDisplayString(a(f)),1))),128))])]))),128))])):e.createCommentVNode("",!0)])]),_:1})}}}),[["__scopeId","data-v-d8eb79cf"]]),r_="__request_callout_";function es(){return Yo(r_)}function sa(t){return t.map(n=>({value:n,label:`${n}`}))}const ca="*",Cn="$",Xo=".";function Xe(...t){return t.join(Xo)}function da(...t){return Xe(Cn,...t)}function ts(t){return t.startsWith(Xe(Cn,""))}function _t(t){return t.split(Xo).filter(n=>n!=="")}function En(t){const n=_t(t);return n[n.length-1]}function a_(t){return t.startsWith(Cn)&&(t=Xe(..._t(t).slice(1))),t}function i_(t,n){const o=new RegExp("(?<=config-redis-).*"),r=/Config\.Redis.*/;return n.filter(i=>{const l=i.model.match(o);return l&&!Object.keys(t).includes(l[0])}).map(i=>{const l=i.label.match(r);return{label:l?l[0]:i.label,key:i.model,value:"N/A",type:"text"}})}function l_(t){const n=e.toValue(t);return n?n.type==="set"&&n.elements.type==="string"&&!n.elements.one_of:!1}function ns(t,n){return[...t].sort((o,r)=>{const a=Object.keys(o)[0],i=Object.keys(r)[0],l=n.indexOf(a),s=n.indexOf(i);return l===-1&&s===-1?0:l===-1?1:s===-1?-1:l-s})}function os(t,n){const o=new Map;t.forEach(u=>{const p=Object.keys(u)[0];o.set(p,u)});const r=new Map;n.forEach((u,p)=>{u.forEach((d,f)=>{r.has(d)||r.set(d,[]),r.get(d).push({bundleIndex:p,position:f})})});const a=new Set,i=[],l=new Set,s=u=>{const p=r.get(u);if(!p)return!0;for(const{bundleIndex:d,position:f}of p){const m=n[d];for(let g=0;g<f;g++){const _=m[g];if(o.has(_)&&!a.has(_))return!1}}return!0},c=u=>{if(a.has(u))return;const p=o.get(u);if(!p)return;i.push(p),a.add(u),l.delete(u);const d=r.get(u);if(d)for(const{bundleIndex:m,position:g}of d){const _=n[m];for(let h=g+1;h<_.length;h++){const y=_[h];if(!a.has(y)){const w=o.get(y);w&&(i.push(w),a.add(y),l.delete(y))}}}const f=Array.from(l);for(const m of f)s(m)&&c(m)};for(const u of t){const p=Object.keys(u)[0];a.has(p)||(s(p)?c(p):l.add(p))}return i}function s_(t){var r;const n=_t(t);let o={parent:null};for(n.pop();n.length;){const a=n.shift();o.path=(r=o.parent)!=null&&r.path?Xe(o.parent.path,a):a,o={parent:o}}return o}function rs(t){return e.computed(()=>s_(e.toValue(t)))}const as=Symbol("free-form-field-path"),ua=Symbol("free-form-field-renderer-slots"),is=Symbol("free-form-field-reset-label-path-setting"),Mn="free-form-field-renderers-slot",c_={tooltipAttributes:{maxWidth:"300px",placement:"top"}};function d_(t,n=""){const o={},r=t;return Array.isArray(r.fields)?Object.assign(o,fa(r,n)):t.type==="array"&&t.elements&&Object.assign(o,pa(t,n)),o}function fa(t,n=""){const o={};if(Array.isArray(t.fields))for(const r of t.fields){const a=Object.keys(r)[0],i=r[a],l=n?Xe(n,a):a;if(o[l]=i,i.type==="record"&&Array.isArray(i.fields)){const s=fa(i,l);Object.assign(o,s)}else if(i.type==="array"&&i.elements){const s=pa(i,l);Object.assign(o,s)}}return o}function pa(t,n=""){const o={};if(t.elements){const r=t.elements,a=Xe(n,ca);if(o[a]=r,r.type==="record"&&Array.isArray(r.fields)){const i=fa(r,a);Object.assign(o,i)}else if(r.type==="array"&&r.elements){const i=pa(r,a);Object.assign(o,i)}}return o}function Zo(t){const n=_t(t).map(o=>/^\d+$/.test(o)?ca:o);return Xe(...n)}function u_(t){const n=e.toValue(t),o=e.computed(()=>n?d_(n):{});function r(f){var m;return f==null?n:(m=o.value)==null?void 0:m[Zo(f)]}function a(f,m=!1){const g=r(f);return g?g.default!==void 0?g.default:m||g.required?g.type==="record"?i(g,f):g.type==="array"?[]:g.type==="map"?{}:null:null:null}function i(f,m){const g={};if(Array.isArray(f.fields))for(const _ of f.fields){const h=Object.keys(_)[0],y=m?`${m}.${h}`:h,w=a(y,!1);w!==void 0&&(g[h]=w)}return g}function l(f){return f?a(f,!0):i(r(),"")}function s(f){const m=r(f),g=m!=null&&m.description?Io.marked.parse(m.description,{async:!1}):void 0;return{...c_,"data-testid":`ff-label-${f}`,info:g}}function c(f){var g;const m=r(f);return sa((m==null?void 0:m.one_of)||((g=m.elements)==null?void 0:g.one_of)||[])}function u(f){const m=r(f),g=m==null?void 0:m.default;let _=null;if((m==null?void 0:m.type)==="foreign"&&(g!=null&&g.id))_=g.id;else{if(g==null||typeof g=="object"||g==="")return null;if(Array.isArray(g)){if(g.length===0)return null;_=g.join(", ")}else _=g.toString()}return`Default: ${_}`}function p(){return o.value}function d(f){const m=r(f);return(m==null?void 0:m.required)?l(f):null}return{getSchemaMap:p,getSchema:r,getDefault:l,getSelectItems:c,getLabelAttributes:s,getPlaceholder:u,getEmptyOrDefault:d}}function f_(t){const n=e.ref({}),o=e.ref(new Set);function r(g,_){const h=g.map(w=>_t(w).length),y=h[0];if(!h.every(w=>w===y)){const w=g.map((E,C)=>` - '${E}' is at level ${h[C]}`).join(`
|
|
13
|
+
client. If missing, it will be generated for you.`,inputType:"password",encrypted:!0}},{tags:mn},{ttl:{help:"Time-to-live (in seconds) value for data"}}]},Vu=t=>(t==null?void 0:t.app)==="kongManager"?{shamefullyTransformPayload:({payload:n})=>{(t!=null&&t.credential&&typeof n.ttl!="number"||Number.isNaN(n.ttl))&&(n.ttl=0)}}:{},Bu={fields:[{id:{type:"string",auto:!0,uuid:!0,description:"A string representing a UUID (universally unique identifier)."}},{created_at:{type:"integer",auto:!0,timestamp:!0,description:"An integer representing an automatic Unix timestamp in seconds."}},{consumer:{required:!0,on_delete:"cascade",reference:"consumers",type:"foreign"}},{key:{required:!1,unique:!0,auto:!0,encrypted:!0,type:"string"}},{tags:{type:"set",elements:{type:"string",required:!0,description:"A string representing a tag."},description:"A set of strings representing tags."}},{ttl:{between:[0,1e8],description:"Time-to-live (in seconds) value for data",type:"number"}}]},Nt={"basic-auth":{descriptionKey:"plugins.meta.basic-auth.description",nameKey:"plugins.meta.basic-auth.name",freeformRenderRules:{dependencies:{"config.brute_force_protection.redis":["config.brute_force_protection.strategy","redis"]}},...F.PLUGIN_GROUP_AND_SCOPE_MAP["basic-auth"]},"hmac-auth":{descriptionKey:"plugins.meta.hmac-auth.description",nameKey:"plugins.meta.hmac-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["hmac-auth"]},"jwt-signer":{descriptionKey:"plugins.meta.jwt-signer.description",nameKey:"plugins.meta.jwt-signer.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["jwt-signer"]},jwt:{descriptionKey:"plugins.meta.jwt.description",nameKey:"plugins.meta.jwt.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.jwt},"key-auth":{descriptionKey:"plugins.meta.key-auth.description",nameKey:"plugins.meta.key-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["key-auth"]},"key-auth-enc":{descriptionKey:"plugins.meta.key-auth-enc.description",nameKey:"plugins.meta.key-auth-enc.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["key-auth-enc"]},"ldap-auth-advanced":{descriptionKey:"plugins.meta.ldap-auth-advanced.description",nameKey:"plugins.meta.ldap-auth-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["ldap-auth-advanced"]},"ldap-auth":{descriptionKey:"plugins.meta.ldap-auth.description",nameKey:"plugins.meta.ldap-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["ldap-auth"]},"oauth2-introspection":{descriptionKey:"plugins.meta.oauth2-introspection.description",nameKey:"plugins.meta.oauth2-introspection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["oauth2-introspection"]},oauth2:{descriptionKey:"plugins.meta.oauth2.description",nameKey:"plugins.meta.oauth2.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.oauth2},"openid-connect":{descriptionKey:"plugins.meta.openid-connect.description",nameKey:"plugins.meta.openid-connect.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["openid-connect"]},"mtls-auth":{descriptionKey:"plugins.meta.mtls-auth.description",nameKey:"plugins.meta.mtls-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["mtls-auth"]},"vault-auth":{descriptionKey:"plugins.meta.vault-auth.description",nameKey:"plugins.meta.vault-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["vault-auth"]},"bot-detection":{descriptionKey:"plugins.meta.bot-detection.description",nameKey:"plugins.meta.bot-detection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["bot-detection"]},cors:{descriptionKey:"plugins.meta.cors.description",nameKey:"plugins.meta.cors.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.cors},"ip-restriction":{descriptionKey:"plugins.meta.ip-restriction.description",nameKey:"plugins.meta.ip-restriction.name",fieldRules:{atLeastOneOf:[["config.allow","config.deny"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["ip-restriction"]},opa:{descriptionKey:"plugins.meta.opa.description",nameKey:"plugins.meta.opa.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.opa},"kubernetes-sidecar-injector":{descriptionKey:"plugins.meta.kubernetes-sidecar-injector.description",nameKey:"plugins.meta.kubernetes-sidecar-injector.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["kubernetes-sidecar-injector"]},"request-validator":{descriptionKey:"plugins.meta.request-validator.description",nameKey:"plugins.meta.request-validator.name",fieldRules:{atLeastOneOf:[["config.body_schema","config.parameter_schema"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-validator"]},acl:{descriptionKey:"plugins.meta.acl.description",nameKey:"plugins.meta.acl.name",fieldRules:{onlyOneOf:[["config.allow","config.deny"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.acl},canary:{descriptionKey:"plugins.meta.canary.description",nameKey:"plugins.meta.canary.name",fieldRules:{atLeastOneOf:[["config.upstream_uri","config.upstream_host","config.upstream_port"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.canary},"forward-proxy":{descriptionKey:"plugins.meta.forward-proxy.description",nameKey:"plugins.meta.forward-proxy.name",fieldRules:{onlyOneOfMutuallyRequired:[[["config.http_proxy_host","config.http_proxy_port"],["config.https_proxy_host","config.https_proxy_port"]]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["forward-proxy"]},"proxy-cache":{descriptionKey:"plugins.meta.proxy-cache.description",nameKey:"plugins.meta.proxy-cache.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["proxy-cache"]},"proxy-cache-advanced":{descriptionKey:"plugins.meta.proxy-cache-advanced.description",nameKey:"plugins.meta.proxy-cache-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["proxy-cache-advanced"]},"graphql-proxy-cache-advanced":{descriptionKey:"plugins.meta.graphql-proxy-cache-advanced.description",nameKey:"plugins.meta.graphql-proxy-cache-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["graphql-proxy-cache-advanced"]},"rate-limiting-advanced":{descriptionKey:"plugins.meta.rate-limiting-advanced.description",nameKey:"plugins.meta.rate-limiting-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["rate-limiting-advanced"]},"rate-limiting":{descriptionKey:"plugins.meta.rate-limiting.description",nameKey:"plugins.meta.rate-limiting.name",fieldRules:{atLeastOneOf:[["config.second","config.minute","config.hour","config.day","config.month","config.year"]]},freeformRenderRules:{bundles:[["config.policy","config.redis"]],dependencies:{"config.redis":["config.policy","redis"]}},...F.PLUGIN_GROUP_AND_SCOPE_MAP["rate-limiting"]},"graphql-rate-limiting-advanced":{descriptionKey:"plugins.meta.graphql-rate-limiting-advanced.description",nameKey:"plugins.meta.graphql-rate-limiting-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["graphql-rate-limiting-advanced"]},mocking:{descriptionKey:"plugins.meta.mocking.description",nameKey:"plugins.meta.mocking.name",fieldRules:{atLeastOneOf:[["config.api_specification_filename","config.api_specification"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.mocking},"request-size-limiting":{descriptionKey:"plugins.meta.request-size-limiting.description",nameKey:"plugins.meta.request-size-limiting.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-size-limiting"]},"request-termination":{descriptionKey:"plugins.meta.request-termination.description",nameKey:"plugins.meta.request-termination.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-termination"]},"response-ratelimiting":{descriptionKey:"plugins.meta.response-ratelimiting.description",nameKey:"plugins.meta.response-ratelimiting.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["response-ratelimiting"]},"route-by-header":{descriptionKey:"plugins.meta.route-by-header.description",nameKey:"plugins.meta.route-by-header.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["route-by-header"]},"ai-proxy":{descriptionKey:"plugins.meta.ai-proxy.description",nameKey:"plugins.meta.ai-proxy.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-proxy"]},"ai-prompt-decorator":{descriptionKey:"plugins.meta.ai-prompt-decorator.description",nameKey:"plugins.meta.ai-prompt-decorator.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-prompt-decorator"]},"ai-prompt-template":{descriptionKey:"plugins.meta.ai-prompt-template.description",nameKey:"plugins.meta.ai-prompt-template.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-prompt-template"]},"ai-prompt-guard":{descriptionKey:"plugins.meta.ai-prompt-guard.description",nameKey:"plugins.meta.ai-prompt-guard.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-prompt-guard"]},"ai-request-transformer":{descriptionKey:"plugins.meta.ai-request-transformer.description",nameKey:"plugins.meta.ai-request-transformer.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-request-transformer"]},"ai-response-transformer":{descriptionKey:"plugins.meta.ai-response-transformer.description",nameKey:"plugins.meta.ai-response-transformer.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-response-transformer"]},"ai-rate-limiting-advanced":{descriptionKey:"plugins.meta.ai-rate-limiting-advanced.description",nameKey:"plugins.meta.ai-rate-limiting-advanced.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-rate-limiting-advanced"]},"ai-azure-content-safety":{descriptionKey:"plugins.meta.ai-azure-content-safety.description",nameKey:"plugins.meta.ai-azure-content-safety.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-azure-content-safety"]},"aws-lambda":{descriptionKey:"plugins.meta.aws-lambda.description",nameKey:"plugins.meta.aws-lambda.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["aws-lambda"]},"azure-functions":{descriptionKey:"plugins.meta.azure-functions.description",nameKey:"plugins.meta.azure-functions.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["azure-functions"]},openwhisk:{descriptionKey:"plugins.meta.openwhisk.description",nameKey:"plugins.meta.openwhisk.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.openwhisk},"pre-function":{descriptionKey:"plugins.meta.pre-function.description",nameKey:"plugins.meta.pre-function.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["pre-function"]},"post-function":{descriptionKey:"plugins.meta.post-function.description",nameKey:"plugins.meta.post-function.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["post-function"]},datadog:{descriptionKey:"plugins.meta.datadog.description",nameKey:"plugins.meta.datadog.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.datadog},prometheus:{descriptionKey:"plugins.meta.prometheus.description",nameKey:"plugins.meta.prometheus.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.prometheus},zipkin:{descriptionKey:"plugins.meta.zipkin.description",nameKey:"plugins.meta.zipkin.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.zipkin},collector:{descriptionKey:"plugins.meta.collector.description",nameKey:"plugins.meta.collector.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.collector},"response-transformer-advanced":{descriptionKey:"plugins.meta.response-transformer-advanced.description",nameKey:"plugins.meta.response-transformer-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["response-transformer-advanced"]},"correlation-id":{descriptionKey:"plugins.meta.correlation-id.description",nameKey:"plugins.meta.correlation-id.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["correlation-id"]},"request-transformer-advanced":{descriptionKey:"plugins.meta.request-transformer-advanced.description",nameKey:"plugins.meta.request-transformer-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-transformer-advanced"]},"request-transformer":{descriptionKey:"plugins.meta.request-transformer.description",nameKey:"plugins.meta.request-transformer.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-transformer"]},"response-transformer":{descriptionKey:"plugins.meta.response-transformer.description",nameKey:"plugins.meta.response-transformer.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["response-transformer"]},"route-transformer-advanced":{descriptionKey:"plugins.meta.route-transformer-advanced.description",nameKey:"plugins.meta.route-transformer-advanced.name",fieldRules:{atLeastOneOf:[["config.path","config.port","config.host"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["route-transformer-advanced"]},"kafka-upstream":{descriptionKey:"plugins.meta.kafka-upstream.description",nameKey:"plugins.meta.kafka-upstream.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["kafka-upstream"]},degraphql:{descriptionKey:"plugins.meta.degraphql.description",nameKey:"plugins.meta.degraphql.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.degraphql},"exit-transformer":{descriptionKey:"plugins.meta.exit-transformer.description",nameKey:"plugins.meta.exit-transformer.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["exit-transformer"]},jq:{descriptionKey:"plugins.meta.jq.description",nameKey:"plugins.meta.jq.name",fieldRules:{atLeastOneOf:[["config.request_jq_program","config.response_jq_program"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.jq},"file-log":{descriptionKey:"plugins.meta.file-log.description",nameKey:"plugins.meta.file-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["file-log"]},"http-log":{descriptionKey:"plugins.meta.http-log.description",nameKey:"plugins.meta.http-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["http-log"]},loggly:{descriptionKey:"plugins.meta.loggly.description",nameKey:"plugins.meta.loggly.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.loggly},"statsd-advanced":{descriptionKey:"plugins.meta.statsd-advanced.description",nameKey:"plugins.meta.statsd-advanced.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["statsd-advanced"]},statsd:{descriptionKey:"plugins.meta.statsd.description",nameKey:"plugins.meta.statsd.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.statsd},syslog:{descriptionKey:"plugins.meta.syslog.description",nameKey:"plugins.meta.syslog.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.syslog},"tcp-log":{descriptionKey:"plugins.meta.tcp-log.description",nameKey:"plugins.meta.tcp-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["tcp-log"]},"udp-log":{descriptionKey:"plugins.meta.udp-log.description",nameKey:"plugins.meta.udp-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["udp-log"]},"kafka-log":{descriptionKey:"plugins.meta.kafka-log.description",nameKey:"plugins.meta.kafka-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["kafka-log"]},session:{descriptionKey:"plugins.meta.session.description",nameKey:"plugins.meta.session.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.session},"upstream-tls":{descriptionKey:"plugins.meta.upstream-tls.description",nameKey:"plugins.meta.upstream-tls.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["upstream-tls"]},"application-registration":{descriptionKey:"plugins.meta.application-registration.description",nameKey:"plugins.meta.application-registration.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["application-registration"]},"konnect-application-auth":{descriptionKey:"plugins.meta.konnect-application-auth.description",nameKey:"plugins.meta.konnect-application-auth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["konnect-application-auth"]},acme:{descriptionKey:"plugins.meta.acme.description",nameKey:"plugins.meta.acme.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.acme},"grpc-gateway":{descriptionKey:"plugins.meta.grpc-gateway.description",nameKey:"plugins.meta.grpc-gateway.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["grpc-gateway"]},"grpc-web":{descriptionKey:"plugins.meta.grpc-web.description",nameKey:"plugins.meta.grpc-web.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["grpc-web"]},"upstream-timeout":{descriptionKey:"plugins.meta.upstream-timeout.description",nameKey:"plugins.meta.upstream-timeout.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["upstream-timeout"]},opentelemetry:{descriptionKey:"plugins.meta.opentelemetry.description",nameKey:"plugins.meta.opentelemetry.name",fieldRules:{atLeastOneOf:[["config.access_logs_endpoint","config.traces_endpoint","config.logs_endpoint"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP.opentelemetry},"websocket-validator":{descriptionKey:"plugins.meta.websocket-validator.description",nameKey:"plugins.meta.websocket-validator.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["websocket-validator"]},"websocket-size-limit":{descriptionKey:"plugins.meta.websocket-size-limit.description",nameKey:"plugins.meta.websocket-size-limit.name",fieldRules:{atLeastOneOf:[["config.client_max_payload","config.upstream_max_payload"]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["websocket-size-limit"]},"tls-metadata-headers":{descriptionKey:"plugins.meta.tls-metadata-headers.description",nameKey:"plugins.meta.tls-metadata-headers.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["tls-metadata-headers"]},"tls-handshake-modifier":{descriptionKey:"plugins.meta.tls-handshake-modifier.description",nameKey:"plugins.meta.tls-handshake-modifier.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["tls-handshake-modifier"]},"oas-validation":{descriptionKey:"plugins.meta.oas-validation.description",nameKey:"plugins.meta.oas-validation.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["oas-validation"]},"jwe-decrypt":{descriptionKey:"plugins.meta.jwe-decrypt.description",nameKey:"plugins.meta.jwe-decrypt.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["jwe-decrypt"]},"xml-threat-protection":{descriptionKey:"plugins.meta.xml-threat-protection.description",nameKey:"plugins.meta.xml-threat-protection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["xml-threat-protection"]},saml:{descriptionKey:"plugins.meta.saml.description",nameKey:"plugins.meta.saml.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.saml},"app-dynamics":{descriptionKey:"plugins.meta.app-dynamics.description",nameKey:"plugins.meta.app-dynamics.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["app-dynamics"]},"json-threat-protection":{descriptionKey:"plugins.meta.json-threat-protection.description",nameKey:"plugins.meta.json-threat-protection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["json-threat-protection"]},"standard-webhooks":{descriptionKey:"plugins.meta.standard-webhooks.description",nameKey:"plugins.meta.standard-webhooks.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["standard-webhooks"]},"ai-proxy-advanced":{descriptionKey:"plugins.meta.ai-proxy-advanced.description",nameKey:"plugins.meta.ai-proxy-advanced.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-proxy-advanced"]},"ai-semantic-cache":{descriptionKey:"plugins.meta.ai-semantic-cache.description",nameKey:"plugins.meta.ai-semantic-cache.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-semantic-cache"]},"ai-semantic-prompt-guard":{descriptionKey:"plugins.meta.ai-semantic-prompt-guard.description",nameKey:"plugins.meta.ai-semantic-prompt-guard.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-semantic-prompt-guard"]},"header-cert-auth":{descriptionKey:"plugins.meta.header-cert-auth.description",nameKey:"plugins.meta.header-cert-auth.name",fieldRules:{onlyOneOfMutuallyRequired:[[["config.http_proxy_host","config.http_proxy_port"],["config.https_proxy_host","config.https_proxy_port"]]]},...F.PLUGIN_GROUP_AND_SCOPE_MAP["header-cert-auth"]},"upstream-oauth":{descriptionKey:"plugins.meta.upstream-oauth.description",nameKey:"plugins.meta.upstream-oauth.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["upstream-oauth"],freeformRenderRules:{bundles:[["config.cache.strategy","config.cache.redis"]],dependencies:{"config.cache.redis":["config.cache.strategy","redis"]}}},confluent:{descriptionKey:"plugins.meta.confluent.description",nameKey:"plugins.meta.confluent.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.confluent},"service-protection":{descriptionKey:"plugins.meta.service-protection.description",nameKey:"plugins.meta.service-protection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["service-protection"]},"injection-protection":{descriptionKey:"plugins.meta.injection-protection.description",nameKey:"plugins.meta.injection-protection.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["injection-protection"]},redirect:{descriptionKey:"plugins.meta.redirect.description",nameKey:"plugins.meta.redirect.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.redirect},"kafka-consume":{descriptionKey:"plugins.meta.kafka-consume.description",nameKey:"plugins.meta.kafka-consume.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["kafka-consume"]},"confluent-consume":{descriptionKey:"plugins.meta.confluent-consume.description",nameKey:"plugins.meta.confluent-consume.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["confluent-consume"]},"request-callout":{descriptionKey:"plugins.meta.request-callout.description",nameKey:"plugins.meta.request-callout.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["request-callout"]},"ai-sanitizer":{descriptionKey:"plugins.meta.ai-sanitizer.description",nameKey:"plugins.meta.ai-sanitizer.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-sanitizer"]},"ai-rag-injector":{descriptionKey:"plugins.meta.ai-rag-injector.description",nameKey:"plugins.meta.ai-rag-injector.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-rag-injector"]},datakit:{descriptionKey:"plugins.meta.datakit.description",nameKey:"plugins.meta.datakit.name",useUIData:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP.datakit},"ai-prompt-compressor":{descriptionKey:"plugins.meta.ai-prompt-compressor.description",nameKey:"plugins.meta.ai-prompt-compressor.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-prompt-compressor"]},"solace-upstream":{descriptionKey:"plugins.meta.solace-upstream.description",nameKey:"plugins.meta.solace-upstream.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["solace-upstream"]},"ai-aws-guardrails":{descriptionKey:"plugins.meta.ai-aws-guardrails.description",nameKey:"plugins.meta.ai-aws-guardrails.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-aws-guardrails"]},ace:{descriptionKey:"plugins.meta.ace.description",nameKey:"plugins.meta.ace.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP.ace},"solace-consume":{descriptionKey:"plugins.meta.solace-consume.description",nameKey:"plugins.meta.solace-consume.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["solace-consume"]},"solace-log":{descriptionKey:"plugins.meta.solace-log.description",nameKey:"plugins.meta.solace-log.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["solace-log"]},"ai-llm-as-judge":{descriptionKey:"plugins.meta.ai-llm-as-judge.description",nameKey:"plugins.meta.ai-llm-as-judge.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-llm-as-judge"]},"ai-mcp-proxy":{descriptionKey:"plugins.meta.ai-mcp-proxy.description",nameKey:"plugins.meta.ai-mcp-proxy.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-mcp-proxy"]},"ai-gcp-model-armor":{descriptionKey:"plugins.meta.ai-gcp-model-armor.description",nameKey:"plugins.meta.ai-gcp-model-armor.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-gcp-model-armor"]},"ai-mcp-oauth2":{descriptionKey:"plugins.meta.ai-mcp-oauth2.description",nameKey:"plugins.meta.ai-mcp-oauth2.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-mcp-oauth2"]},"ai-semantic-response-guard":{descriptionKey:"plugins.meta.ai-semantic-response-guard.description",nameKey:"plugins.meta.ai-semantic-response-guard.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-semantic-response-guard"]},"ai-lakera-guard":{descriptionKey:"plugins.meta.ai-lakera-guard.description",nameKey:"plugins.meta.ai-lakera-guard.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-lakera-guard"]},"ai-a2a-proxy":{descriptionKey:"plugins.meta.ai-a2a-proxy.description",nameKey:"plugins.meta.ai-a2a-proxy.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-a2a-proxy"]},"ai-custom-guardrail":{descriptionKey:"plugins.meta.ai-custom-guardrail.description",nameKey:"plugins.meta.ai-custom-guardrail.name",useLegacyForm:!0,...F.PLUGIN_GROUP_AND_SCOPE_MAP["ai-custom-guardrail"]},"metering-and-billing":{descriptionKey:"plugins.meta.metering-and-billing.description",nameKey:"plugins.meta.metering-and-billing.name",...F.PLUGIN_GROUP_AND_SCOPE_MAP["metering-and-billing"]}},Rn={acl:{titleKey:"plugins.meta.acl.name",plugin:"acl",schema:Ai,nameKey:"plugins.meta.acl.credential_name",endpoint:"/acls",schemaEndpoint:"acls",fields:pn(Ai),applyCredentialButtonText:"Add group to consumer"},"basic-auth":{titleKey:"plugins.meta.basic-auth.name",plugin:"basic-auth",schema:Si,nameKey:"plugins.meta.basic-auth.credential_name",endpoint:"/basic-auth",schemaEndpoint:"basicauth_credentials",fields:pn(Si)},"key-auth":{titleKey:"plugins.meta.key-auth.name",plugin:"key-auth",schema:Ii,nameKey:"plugins.meta.key-auth.credential_name",endpoint:"/key-auth",schemaEndpoint:"keyauth_credentials",fields:pn(Ii)},"key-auth-enc":{titleKey:"plugins.meta.key-auth-enc.name",plugin:"key-auth-enc",schema:Vi,nameKey:"plugins.meta.key-auth-enc.credential_name",endpoint:"/key-auth-enc",schemaEndpoint:"keyauth_enc_credentials",fields:pn(Vi)},oauth2:{titleKey:"plugins.meta.oauth2.name",plugin:"oauth2",schema:Oi,nameKey:"plugins.meta.oauth2.credential_name",endpoint:"/oauth2",schemaEndpoint:"oauth2_credentials",fields:pn(Oi)},"hmac-auth":{titleKey:"plugins.meta.hmac-auth.name",plugin:"hmac-auth",schema:Ti,nameKey:"plugins.meta.hmac-auth.credential_name",endpoint:"/hmac-auth",schemaEndpoint:"hmacauth_credentials",fields:pn(Ti)},jwt:{titleKey:"plugins.meta.jwt.name",plugin:"jwt",schema:Iu,nameKey:"plugins.meta.jwt.credential_name",endpoint:"/jwt",schemaEndpoint:"jwt_secrets",fields:{id:{},key:{},algorithm:{}}}},$u={acls:wu,basicauth_credentials:Cu,keyauth_credentials:Su,keyauth_enc_credentials:Bu,oauth2_credentials:Ou,hmacauth_credentials:Pu,jwt_secrets:Tu},Ru=()=>{const{i18n:{t}}=Le(),n={},o={};for(const[a,i]of Object.entries(Nt))n[a]={...i,name:t(i.nameKey),description:t(i.descriptionKey)};for(const[a,i]of Object.entries(Rn))o[a]={...i,name:t(i.nameKey),title:t(i.titleKey)};return{pluginMetaData:n,credentialMetaData:o,credentialSchemas:Rn,getDisplayName:a=>{var i;return((i=n[a])==null?void 0:i.name)||a}}},eo={type:"array",showRemoveButton:!1,newElementButtonLabelClasses:"kong-form-new-element-button-label",itemContainerComponent:"FieldArrayCardContainer",fieldClasses:"array-card-container-wrapper"},Fu={"config-prompts-prepend":{...eo,newElementButtonLabel:"+ Add Message",items:{type:"object",schema:{fields:[{label:"Role",model:"role",help:"LLM message role",type:"select",required:!0,values:["system","assistant","user"]},{label:"Content",model:"content",type:"input",required:!0,help:"LLM message content",inputType:"text"}]}}},"config-prompts-append":{...eo,newElementButtonLabel:"+ Add Message",items:{type:"object",schema:{fields:[{label:"Role",model:"role",help:"LLM message role",type:"select",required:!0,values:["system","assistant","user"]},{label:"Content",model:"content",type:"input",required:!0,help:"LLM message content",inputType:"text"}]}}}},Lu={"config-templates":{...eo,newElementButtonLabel:"+ Add Template",items:{type:"object",schema:{fields:[{label:"Template Name",model:"name",help:"Template Name, for reference in user requests",type:"input",required:!0,inputType:"text"},{label:"Template String",model:"template",help:"Template string content, containing {{placeholders}} for variable substitution",type:"textArea",required:!0,inputType:"text"}]}}}},Du={shamefullyTransformPayload:({originalModel:t,model:n,payload:o,schema:r})=>{const a=l=>{var s;return(s=r[l])!=null&&s.required&&n[l]?!0:t[l]===n[l]?!1:t[l]===null?n[l]!==""&&!Number.isNaN(n[l]):!0},i=l=>Object.keys(t).some(s=>s.startsWith(l)&&a(s));i("config-embeddings")||(o.config.embeddings=null),i("config-vectordb")||(o.config.vectordb=null)}},Bi=t=>t.split(",").map(n=>n.trim()).filter(Boolean),Mu={shamefullyTransformPayload:({payload:t})=>{var n;(n=t==null?void 0:t.config)!=null&&n.collection_acl_config&&Object.values(t.config.collection_acl_config).forEach(o=>{typeof(o==null?void 0:o.allow)=="string"&&(o.allow=Bi(o.allow)),typeof(o==null?void 0:o.deny)=="string"&&(o.deny=Bi(o.deny))})}},vu={"config-prompt":{label:"Prompt",placeholder:"Enter your prompt",type:"textArea",rows:4,max:!1}},ju={enabled:{type:"switch",model:"enabled",label:"Enabled",textOn:"This plugin is Enabled",textOff:"This plugin is Disabled",inputType:"hidden",styleClasses:"field-switch top-border bottom-border hide-label",default:!0},name:{default:"application-registration",type:"input",inputType:"hidden",styleClasses:"kong-form-hidden-field-wrapper"},"service-id":{type:"AutoSuggest",label:"Gateway Service",styleClasses:"bottom-border",description:"Specific Gateway Service in this workspace",model:"service-id",entity:"services",placeholder:"Select a Gateway Service",inputValues:{fields:["name","id"]},help:"The Gateway Service that this plugin configuration will target"},tags:$n.tags,protocols:{id:"protocols",default:[],type:"multiselect",label:"Protocols",values:[{label:"grpc",value:"grpc"},{label:"grpcs",value:"grpcs"},{label:"http",value:"http"},{label:"https",value:"https"},{label:"tcp",value:"tcp"},{label:"tls",value:"tls"},{label:"tls_passthrough",value:"tls_passthrough"},{label:"udp",value:"udp"},{label:"ws",value:"ws"},{label:"wss",value:"wss"}],help:"A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type.",placeholder:"Select valid protocols for the plugin",styleClasses:"plugin-protocols-select"}},ve={type:"array",valueType:"string",valueArrayType:"array",itemContainerComponent:"FieldArrayItem",fieldClasses:"kong-form-array-field",fieldItemsClasses:"kong-form-array-field-item",inputAttributes:{class:"form-control",style:{minWidth:"200px"}},validator:"array",styleClasses:"kong-form-field-wrapper",newElementButtonLabel:"+ Add",newElementButtonLabelClasses:"kong-form-new-element-button-label"},$o={type:"array",showRemoveButton:!1,newElementButtonLabelClasses:"kong-form-new-element-button-label",itemContainerComponent:"FieldMetric",fieldClasses:"metrics-wrapper"},Uu={"config-metrics":{...$o,items:{type:"object",default:()=>({}),schema:{fields:[{model:"name",label:"Name",type:"select",values:["request_count","request_size","response_size","latency","status_count","unique_users","request_per_user","upstream_latency","kong_latency"]},{model:"stat_type",label:"Stat Type",type:"select",values:["gauge","timer","counter","histogram","meter","set"]},{model:"sample_rate",label:"Sample Rate",type:"input",inputType:"number",id:"sample_rate"},{model:"consumer_identifier",label:"Consumer Identifier",type:"select",values:["consumer_id","custom_id","username"]},{model:"tags",label:"Tags",type:"array",itemContainerComponent:"FieldArrayItem",fieldClasses:"kong-form-array-field",fieldItemsClasses:"kong-form-array-field-item",inputAttributes:{class:"form-control",style:{minWidth:"200px"}},inputType:"text"}]}}}},Ku={"config-functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},qu={"config-strategy":{label:"Config.Strategy",type:"select",default:"cluster",values:["cluster","redis"]}},Gu={"config-injection_types":{type:"multiselect"},"config-locations":{type:"multiselect"}},zu={"config-api_specification":{label:"Config.API Specification",placeholder:"Enter an API spec",type:"textArea",rows:10,max:!1}},Hu={"config-api_spec":{label:"Config.API Spec",placeholder:"Enter an API spec",type:"textArea",rows:15,max:!1}},Wu={"config-access":{},"config-body_filter":{},"config-header_filter":{},"config-certificate":{},"config-functions":{},"config-log":{},"config-rewrite":{}},$i=["config-access","config-body_filter","config-header_filter","config-certificate","config-functions","config-log","config-rewrite"].reduce((t,n)=>({...t,[n]:$n.fields.arrayItems({newElementButtonLabel:"Add"})}),Wu),Ro={"config-strategy":{label:"Config.Strategy",type:"select",default:"redis",values:["local","redis"]},"config-consumer_groups":{label:"Config.Consumer Groups",type:"input",placeholder:"Enter list of consumer groups",hint:"e.g. group1, group2"}},Yu={"config-remove-headers":{},"config-remove.querystring":{},"config-remove-body":{},"config-replace-headers":{},"config-replace-querystring":{},"config-replace-body":{},"config-rename-headers":{},"config-rename-querystring":{},"config-rename-body":{},"config-add-headers":{},"config-add-querystring":{},"config-add-body":{},"config-append-headers":{},"config-append-querystring":{},"config-append-body":{},"config-allow-body":{}},Ju=["config-remove-headers","config-remove.querystring","config-remove-body","config-replace-headers","config-replace-querystring","config-replace-body","config-rename-headers","config-rename-querystring","config-rename-body","config-add-headers","config-add-querystring","config-add-body","config-append-headers","config-append-querystring","config-append-body","config-allow-body"].reduce((t,n)=>({...t,[n]:$n.fields.arrayItems({newElementButtonLabel:"Add"})}),Yu),Ri={"config-add-json":{...ve,label:"Config.Add.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-append-json":{...ve,label:"Config.Append.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-remove-json":{...ve,label:"Config.Remove.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-rename-json":{...ve,label:"Config.Rename.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-replace-json":{...ve,label:"Config.Replace.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},Xu={...Ri,"config-allow-json":{...ve,label:"Config.Allow.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-replace-body":{label:"Config.Replace.Body",type:"textArea",max:!1},"config-transform-functions":{...ve,label:"Config.Transform.Functions",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},"config-transform-json":{...ve,label:"Config.Transform.Json",inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},Zu={"config-rules":{...eo,newElementButtonLabel:"+ Add Rule",items:{type:"object",schema:{fields:[{label:"Upstream Name",model:"upstream_name",type:"input",help:"Target hostname where traffic will be routed in case of condition match",placeholder:"Hostname",inputType:"text"},{label:"Condition",model:"condition",type:"keyValuePairs",help:"List of headers name and value pairs",newElementButtonLabelClasses:"kong-form-new-element-button-label",newElementButtonLabel:"+ Add Condition",keyInputPlaceholder:"Header name",valueInputPlaceholder:"Header value"}]}}}},Qu={"config-session_redis_cluster_nodes":{...eo,newElementButtonLabel:"+ Add Cluster Node",items:{type:"object",schema:{fields:[{label:"IP",model:"ip",type:"input",inputType:"text"},{label:"Port",model:"port",type:"input",inputType:"number"}]}}}},ef={"config-flow-functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},tf={"config-message-functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}}},nf={"config-metrics":{...$o,items:{type:"object",default:()=>({}),schema:{fields:[{model:"name",label:"Name",type:"select",values:["request_count","request_size","response_size","latency","status_count","unique_users","request_per_user","upstream_latency","kong_latency","status_count_per_user","status_count_per_user_per_route","status_count_per_workspace","shdict_usage"]},{model:"stat_type",label:"Stat Type",type:"select",values:["gauge","timer","counter","histogram","meter","set"]},{model:"sample_rate",label:"Sample Rate",type:"input",inputType:"number",id:"sample_rate"},{model:"consumer_identifier",label:"Consumer Identifier",type:"select",values:["consumer_id","custom_id","username"]},{model:"service_identifier",label:"Service Identifier",type:"select",values:["service_id","service_name","service_host","service_name_or_host"]},{model:"workspace_identifier",label:"Workspace Identifier",type:"select",values:["workspace_id","workspace_name"]}]}}}},of={"config-metrics":{...$o,items:{type:"object",default:()=>({}),schema:{fields:[{model:"name",label:"Name",type:"select",values:["request_count","request_size","response_size","latency","status_count","unique_users","request_per_user","upstream_latency","kong_latency","status_count_per_user","status_count_per_user_per_route","status_count_per_workspace","shdict_usage","cache_datastore_hits_total","cache_datastore_misses_total"]},{model:"stat_type",label:"Stat Type",type:"select",values:["gauge","timer","counter","histogram","meter","set"]},{model:"sample_rate",label:"Sample Rate",type:"input",inputType:"number",id:"sample_rate"},{model:"consumer_identifier",label:"Consumer Identifier",type:"select",values:["consumer_id","custom_id","username"]},{model:"service_identifier",label:"Service Identifier",type:"select",values:["service_id","service_name","service_host","service_name_or_host"]},{model:"workspace_identifier",label:"Workspace Identifier",type:"select",values:["workspace_id","workspace_name"]}]}}}},rf={"config-behavior-idp_error_response_body_template":{type:"textArea",rows:4}},af={"config-vault":{type:"AutoSuggest",entity:"vaults",placeholder:"Select a Vault",inputValues:{fields:["prefix","name","id"]},modelTransformer:t=>({id:t}),keyFromObject:"id"}};var Fi=typeof global=="object"&&global&&global.Object===Object&&global,lf=typeof self=="object"&&self&&self.Object===Object&&self,Ft=Fi||lf||Function("return this")(),xt=Ft.Symbol,Li=Object.prototype,sf=Li.hasOwnProperty,cf=Li.toString,to=xt?xt.toStringTag:void 0;function df(t){var n=sf.call(t,to),o=t[to];try{t[to]=void 0;var r=!0}catch{}var a=cf.call(t);return r&&(n?t[to]=o:delete t[to]),a}var uf=Object.prototype,ff=uf.toString;function pf(t){return ff.call(t)}var mf="[object Null]",gf="[object Undefined]",Di=xt?xt.toStringTag:void 0;function gn(t){return t==null?t===void 0?gf:mf:Di&&Di in Object(t)?df(t):pf(t)}function Lt(t){return t!=null&&typeof t=="object"}var hf="[object Symbol]";function Vr(t){return typeof t=="symbol"||Lt(t)&&gn(t)==hf}function Br(t,n){for(var o=-1,r=t==null?0:t.length,a=Array(r);++o<r;)a[o]=n(t[o],o,t);return a}var Ot=Array.isArray,Mi=xt?xt.prototype:void 0,vi=Mi?Mi.toString:void 0;function ji(t){if(typeof t=="string")return t;if(Ot(t))return Br(t,ji)+"";if(Vr(t))return vi?vi.call(t):"";var n=t+"";return n=="0"&&1/t==-1/0?"-0":n}function hn(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}function Ui(t){return t}var yf="[object AsyncFunction]",_f="[object Function]",bf="[object GeneratorFunction]",kf="[object Proxy]";function Fo(t){if(!hn(t))return!1;var n=gn(t);return n==_f||n==bf||n==yf||n==kf}var $r=Ft["__core-js_shared__"],Ki=(function(){var t=/[^.]+$/.exec($r&&$r.keys&&$r.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function wf(t){return!!Ki&&Ki in t}var Cf=Function.prototype,Ef=Cf.toString;function yn(t){if(t!=null){try{return Ef.call(t)}catch{}try{return t+""}catch{}}return""}var Nf=/[\\^$.*+?()[\]{}|]/g,xf=/^\[object .+?Constructor\]$/,Af=Function.prototype,Sf=Object.prototype,Pf=Af.toString,If=Sf.hasOwnProperty,Tf=RegExp("^"+Pf.call(If).replace(Nf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Of(t){if(!hn(t)||wf(t))return!1;var n=Fo(t)?Tf:xf;return n.test(yn(t))}function Vf(t,n){return t==null?void 0:t[n]}function _n(t,n){var o=Vf(t,n);return Of(o)?o:void 0}var Rr=_n(Ft,"WeakMap"),qi=Object.create,Bf=(function(){function t(){}return function(n){if(!hn(n))return{};if(qi)return qi(n);t.prototype=n;var o=new t;return t.prototype=void 0,o}})();function $f(t,n,o){switch(o.length){case 0:return t.call(n);case 1:return t.call(n,o[0]);case 2:return t.call(n,o[0],o[1]);case 3:return t.call(n,o[0],o[1],o[2])}return t.apply(n,o)}function Rf(t,n){var o=-1,r=t.length;for(n||(n=Array(r));++o<r;)n[o]=t[o];return n}var Ff=800,Lf=16,Df=Date.now;function Mf(t){var n=0,o=0;return function(){var r=Df(),a=Lf-(r-o);if(o=r,a>0){if(++n>=Ff)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}function vf(t){return function(){return t}}var Lo=(function(){try{var t=_n(Object,"defineProperty");return t({},"",{}),t}catch{}})(),jf=Lo?function(t,n){return Lo(t,"toString",{configurable:!0,enumerable:!1,value:vf(n),writable:!0})}:Ui,Gi=Mf(jf);function Uf(t,n){for(var o=-1,r=t==null?0:t.length;++o<r&&n(t[o],o,t)!==!1;);return t}function Kf(t,n,o,r){for(var a=t.length,i=o+-1;++i<a;)if(n(t[i],i,t))return i;return-1}function qf(t){return t!==t}function Gf(t,n,o){for(var r=o-1,a=t.length;++r<a;)if(t[r]===n)return r;return-1}function zf(t,n,o){return n===n?Gf(t,n,o):Kf(t,qf,o)}function Hf(t,n){var o=t==null?0:t.length;return!!o&&zf(t,n,0)>-1}var Wf=9007199254740991,Yf=/^(?:0|[1-9]\d*)$/;function Fr(t,n){var o=typeof t;return n=n??Wf,!!n&&(o=="number"||o!="symbol"&&Yf.test(t))&&t>-1&&t%1==0&&t<n}function zi(t,n,o){n=="__proto__"&&Lo?Lo(t,n,{configurable:!0,enumerable:!0,value:o,writable:!0}):t[n]=o}function Lr(t,n){return t===n||t!==t&&n!==n}var Jf=Object.prototype,Xf=Jf.hasOwnProperty;function Dr(t,n,o){var r=t[n];(!(Xf.call(t,n)&&Lr(r,o))||o===void 0&&!(n in t))&&zi(t,n,o)}function no(t,n,o,r){var a=!o;o||(o={});for(var i=-1,l=n.length;++i<l;){var s=n[i],c=void 0;c===void 0&&(c=t[s]),a?zi(o,s,c):Dr(o,s,c)}return o}var Hi=Math.max;function Wi(t,n,o){return n=Hi(n===void 0?t.length-1:n,0),function(){for(var r=arguments,a=-1,i=Hi(r.length-n,0),l=Array(i);++a<i;)l[a]=r[n+a];a=-1;for(var s=Array(n+1);++a<n;)s[a]=r[a];return s[n]=o(l),$f(t,this,s)}}function Zf(t,n){return Gi(Wi(t,n,Ui),t+"")}var Qf=9007199254740991;function Mr(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Qf}function Do(t){return t!=null&&Mr(t.length)&&!Fo(t)}var ep=Object.prototype;function Mo(t){var n=t&&t.constructor,o=typeof n=="function"&&n.prototype||ep;return t===o}function tp(t,n){for(var o=-1,r=Array(t);++o<t;)r[o]=n(o);return r}var np="[object Arguments]";function Yi(t){return Lt(t)&&gn(t)==np}var Ji=Object.prototype,op=Ji.hasOwnProperty,rp=Ji.propertyIsEnumerable,vo=Yi((function(){return arguments})())?Yi:function(t){return Lt(t)&&op.call(t,"callee")&&!rp.call(t,"callee")};function ap(){return!1}var Xi=typeof be=="object"&&be&&!be.nodeType&&be,Zi=Xi&&typeof module=="object"&&module&&!module.nodeType&&module,ip=Zi&&Zi.exports===Xi,Qi=ip?Ft.Buffer:void 0,lp=Qi?Qi.isBuffer:void 0,oo=lp||ap,sp="[object Arguments]",cp="[object Array]",dp="[object Boolean]",up="[object Date]",fp="[object Error]",pp="[object Function]",mp="[object Map]",gp="[object Number]",hp="[object Object]",yp="[object RegExp]",_p="[object Set]",bp="[object String]",kp="[object WeakMap]",wp="[object ArrayBuffer]",Cp="[object DataView]",Ep="[object Float32Array]",Np="[object Float64Array]",xp="[object Int8Array]",Ap="[object Int16Array]",Sp="[object Int32Array]",Pp="[object Uint8Array]",Ip="[object Uint8ClampedArray]",Tp="[object Uint16Array]",Op="[object Uint32Array]",He={};He[Ep]=He[Np]=He[xp]=He[Ap]=He[Sp]=He[Pp]=He[Ip]=He[Tp]=He[Op]=!0,He[sp]=He[cp]=He[wp]=He[dp]=He[Cp]=He[up]=He[fp]=He[pp]=He[mp]=He[gp]=He[hp]=He[yp]=He[_p]=He[bp]=He[kp]=!1;function Vp(t){return Lt(t)&&Mr(t.length)&&!!He[gn(t)]}function vr(t){return function(n){return t(n)}}var el=typeof be=="object"&&be&&!be.nodeType&&be,ro=el&&typeof module=="object"&&module&&!module.nodeType&&module,Bp=ro&&ro.exports===el,jr=Bp&&Fi.process,Fn=(function(){try{var t=ro&&ro.require&&ro.require("util").types;return t||jr&&jr.binding&&jr.binding("util")}catch{}})(),tl=Fn&&Fn.isTypedArray,Ur=tl?vr(tl):Vp,$p=Object.prototype,Rp=$p.hasOwnProperty;function nl(t,n){var o=Ot(t),r=!o&&vo(t),a=!o&&!r&&oo(t),i=!o&&!r&&!a&&Ur(t),l=o||r||a||i,s=l?tp(t.length,String):[],c=s.length;for(var u in t)(n||Rp.call(t,u))&&!(l&&(u=="length"||a&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Fr(u,c)))&&s.push(u);return s}function ol(t,n){return function(o){return t(n(o))}}var Fp=ol(Object.keys,Object),Lp=Object.prototype,Dp=Lp.hasOwnProperty;function rl(t){if(!Mo(t))return Fp(t);var n=[];for(var o in Object(t))Dp.call(t,o)&&o!="constructor"&&n.push(o);return n}function Kr(t){return Do(t)?nl(t):rl(t)}function Mp(t){var n=[];if(t!=null)for(var o in Object(t))n.push(o);return n}var vp=Object.prototype,jp=vp.hasOwnProperty;function Up(t){if(!hn(t))return Mp(t);var n=Mo(t),o=[];for(var r in t)r=="constructor"&&(n||!jp.call(t,r))||o.push(r);return o}function qr(t){return Do(t)?nl(t,!0):Up(t)}var Kp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qp=/^\w*$/;function Gp(t,n){if(Ot(t))return!1;var o=typeof t;return o=="number"||o=="symbol"||o=="boolean"||t==null||Vr(t)?!0:qp.test(t)||!Kp.test(t)||n!=null&&t in Object(n)}var ao=_n(Object,"create");function zp(){this.__data__=ao?ao(null):{},this.size=0}function Hp(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}var Wp="__lodash_hash_undefined__",Yp=Object.prototype,Jp=Yp.hasOwnProperty;function Xp(t){var n=this.__data__;if(ao){var o=n[t];return o===Wp?void 0:o}return Jp.call(n,t)?n[t]:void 0}var Zp=Object.prototype,Qp=Zp.hasOwnProperty;function em(t){var n=this.__data__;return ao?n[t]!==void 0:Qp.call(n,t)}var tm="__lodash_hash_undefined__";function nm(t,n){var o=this.__data__;return this.size+=this.has(t)?0:1,o[t]=ao&&n===void 0?tm:n,this}function bn(t){var n=-1,o=t==null?0:t.length;for(this.clear();++n<o;){var r=t[n];this.set(r[0],r[1])}}bn.prototype.clear=zp,bn.prototype.delete=Hp,bn.prototype.get=Xp,bn.prototype.has=em,bn.prototype.set=nm;function om(){this.__data__=[],this.size=0}function jo(t,n){for(var o=t.length;o--;)if(Lr(t[o][0],n))return o;return-1}var rm=Array.prototype,am=rm.splice;function im(t){var n=this.__data__,o=jo(n,t);if(o<0)return!1;var r=n.length-1;return o==r?n.pop():am.call(n,o,1),--this.size,!0}function lm(t){var n=this.__data__,o=jo(n,t);return o<0?void 0:n[o][1]}function sm(t){return jo(this.__data__,t)>-1}function cm(t,n){var o=this.__data__,r=jo(o,t);return r<0?(++this.size,o.push([t,n])):o[r][1]=n,this}function jt(t){var n=-1,o=t==null?0:t.length;for(this.clear();++n<o;){var r=t[n];this.set(r[0],r[1])}}jt.prototype.clear=om,jt.prototype.delete=im,jt.prototype.get=lm,jt.prototype.has=sm,jt.prototype.set=cm;var io=_n(Ft,"Map");function dm(){this.size=0,this.__data__={hash:new bn,map:new(io||jt),string:new bn}}function um(t){var n=typeof t;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?t!=="__proto__":t===null}function Uo(t,n){var o=t.__data__;return um(n)?o[typeof n=="string"?"string":"hash"]:o.map}function fm(t){var n=Uo(this,t).delete(t);return this.size-=n?1:0,n}function pm(t){return Uo(this,t).get(t)}function mm(t){return Uo(this,t).has(t)}function gm(t,n){var o=Uo(this,t),r=o.size;return o.set(t,n),this.size+=o.size==r?0:1,this}function Ut(t){var n=-1,o=t==null?0:t.length;for(this.clear();++n<o;){var r=t[n];this.set(r[0],r[1])}}Ut.prototype.clear=dm,Ut.prototype.delete=fm,Ut.prototype.get=pm,Ut.prototype.has=mm,Ut.prototype.set=gm;var hm="Expected a function";function Gr(t,n){if(typeof t!="function"||n!=null&&typeof n!="function")throw new TypeError(hm);var o=function(){var r=arguments,a=n?n.apply(this,r):r[0],i=o.cache;if(i.has(a))return i.get(a);var l=t.apply(this,r);return o.cache=i.set(a,l)||i,l};return o.cache=new(Gr.Cache||Ut),o}Gr.Cache=Ut;var ym=500;function _m(t){var n=Gr(t,function(r){return o.size===ym&&o.clear(),r}),o=n.cache;return n}var bm=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,km=/\\(\\)?/g,wm=_m(function(t){var n=[];return t.charCodeAt(0)===46&&n.push(""),t.replace(bm,function(o,r,a,i){n.push(a?i.replace(km,"$1"):r||o)}),n});function Ko(t){return t==null?"":ji(t)}function Ln(t,n){return Ot(t)?t:Gp(t,n)?[t]:wm(Ko(t))}function qo(t){if(typeof t=="string"||Vr(t))return t;var n=t+"";return n=="0"&&1/t==-1/0?"-0":n}function zr(t,n){n=Ln(n,t);for(var o=0,r=n.length;t!=null&&o<r;)t=t[qo(n[o++])];return o&&o==r?t:void 0}function Go(t,n,o){var r=t==null?void 0:zr(t,n);return r===void 0?o:r}function Hr(t,n){for(var o=-1,r=n.length,a=t.length;++o<r;)t[a+o]=n[o];return t}var al=xt?xt.isConcatSpreadable:void 0;function Cm(t){return Ot(t)||vo(t)||!!(al&&t&&t[al])}function Em(t,n,o,r,a){var i=-1,l=t.length;for(o||(o=Cm),a||(a=[]);++i<l;){var s=t[i];o(s)?Hr(a,s):a[a.length]=s}return a}function Nm(t){var n=t==null?0:t.length;return n?Em(t):[]}function il(t){return Gi(Wi(t,void 0,Nm),t+"")}var Wr=ol(Object.getPrototypeOf,Object),xm="[object Object]",Am=Function.prototype,Sm=Object.prototype,ll=Am.toString,Pm=Sm.hasOwnProperty,Im=ll.call(Object);function Tm(t){if(!Lt(t)||gn(t)!=xm)return!1;var n=Wr(t);if(n===null)return!0;var o=Pm.call(n,"constructor")&&n.constructor;return typeof o=="function"&&o instanceof o&&ll.call(o)==Im}function sl(t,n,o){var r=-1,a=t.length;n<0&&(n=-n>a?0:a+n),o=o>a?a:o,o<0&&(o+=a),a=n>o?0:o-n>>>0,n>>>=0;for(var i=Array(a);++r<a;)i[r]=t[r+n];return i}function Om(t,n,o){var r=t.length;return o=o===void 0?r:o,!n&&o>=r?t:sl(t,n,o)}var Vm="\\ud800-\\udfff",Bm="\\u0300-\\u036f",$m="\\ufe20-\\ufe2f",Rm="\\u20d0-\\u20ff",Fm=Bm+$m+Rm,Lm="\\ufe0e\\ufe0f",Dm="\\u200d",Mm=RegExp("["+Dm+Vm+Fm+Lm+"]");function cl(t){return Mm.test(t)}function vm(t){return t.split("")}var dl="\\ud800-\\udfff",jm="\\u0300-\\u036f",Um="\\ufe20-\\ufe2f",Km="\\u20d0-\\u20ff",qm=jm+Um+Km,Gm="\\ufe0e\\ufe0f",zm="["+dl+"]",Yr="["+qm+"]",Jr="\\ud83c[\\udffb-\\udfff]",Hm="(?:"+Yr+"|"+Jr+")",ul="[^"+dl+"]",fl="(?:\\ud83c[\\udde6-\\uddff]){2}",pl="[\\ud800-\\udbff][\\udc00-\\udfff]",Wm="\\u200d",ml=Hm+"?",gl="["+Gm+"]?",Ym="(?:"+Wm+"(?:"+[ul,fl,pl].join("|")+")"+gl+ml+")*",Jm=gl+ml+Ym,Xm="(?:"+[ul+Yr+"?",Yr,fl,pl,zm].join("|")+")",Zm=RegExp(Jr+"(?="+Jr+")|"+Xm+Jm,"g");function Qm(t){return t.match(Zm)||[]}function eg(t){return cl(t)?Qm(t):vm(t)}function tg(t){return function(n){n=Ko(n);var o=cl(n)?eg(n):void 0,r=o?o[0]:n.charAt(0),a=o?Om(o,1).join(""):n.slice(1);return r[t]()+a}}var ng=tg("toUpperCase");function og(t){return function(n){return t==null?void 0:t[n]}}function rg(){this.__data__=new jt,this.size=0}function ag(t){var n=this.__data__,o=n.delete(t);return this.size=n.size,o}function ig(t){return this.__data__.get(t)}function lg(t){return this.__data__.has(t)}var sg=200;function cg(t,n){var o=this.__data__;if(o instanceof jt){var r=o.__data__;if(!io||r.length<sg-1)return r.push([t,n]),this.size=++o.size,this;o=this.__data__=new Ut(r)}return o.set(t,n),this.size=o.size,this}function Kt(t){var n=this.__data__=new jt(t);this.size=n.size}Kt.prototype.clear=rg,Kt.prototype.delete=ag,Kt.prototype.get=ig,Kt.prototype.has=lg,Kt.prototype.set=cg;function dg(t,n){return t&&no(n,Kr(n),t)}function ug(t,n){return t&&no(n,qr(n),t)}var hl=typeof be=="object"&&be&&!be.nodeType&&be,yl=hl&&typeof module=="object"&&module&&!module.nodeType&&module,fg=yl&&yl.exports===hl,_l=fg?Ft.Buffer:void 0,bl=_l?_l.allocUnsafe:void 0;function pg(t,n){if(n)return t.slice();var o=t.length,r=bl?bl(o):new t.constructor(o);return t.copy(r),r}function mg(t,n){for(var o=-1,r=t==null?0:t.length,a=0,i=[];++o<r;){var l=t[o];n(l,o,t)&&(i[a++]=l)}return i}function kl(){return[]}var gg=Object.prototype,hg=gg.propertyIsEnumerable,wl=Object.getOwnPropertySymbols,Xr=wl?function(t){return t==null?[]:(t=Object(t),mg(wl(t),function(n){return hg.call(t,n)}))}:kl;function yg(t,n){return no(t,Xr(t),n)}var _g=Object.getOwnPropertySymbols,Cl=_g?function(t){for(var n=[];t;)Hr(n,Xr(t)),t=Wr(t);return n}:kl;function bg(t,n){return no(t,Cl(t),n)}function El(t,n,o){var r=n(t);return Ot(t)?r:Hr(r,o(t))}function Zr(t){return El(t,Kr,Xr)}function Nl(t){return El(t,qr,Cl)}var Qr=_n(Ft,"DataView"),ea=_n(Ft,"Promise"),ta=_n(Ft,"Set"),xl="[object Map]",kg="[object Object]",Al="[object Promise]",Sl="[object Set]",Pl="[object WeakMap]",Il="[object DataView]",wg=yn(Qr),Cg=yn(io),Eg=yn(ea),Ng=yn(ta),xg=yn(Rr),At=gn;(Qr&&At(new Qr(new ArrayBuffer(1)))!=Il||io&&At(new io)!=xl||ea&&At(ea.resolve())!=Al||ta&&At(new ta)!=Sl||Rr&&At(new Rr)!=Pl)&&(At=function(t){var n=gn(t),o=n==kg?t.constructor:void 0,r=o?yn(o):"";if(r)switch(r){case wg:return Il;case Cg:return xl;case Eg:return Al;case Ng:return Sl;case xg:return Pl}return n});var Ag=Object.prototype,Sg=Ag.hasOwnProperty;function Pg(t){var n=t.length,o=new t.constructor(n);return n&&typeof t[0]=="string"&&Sg.call(t,"index")&&(o.index=t.index,o.input=t.input),o}var zo=Ft.Uint8Array;function na(t){var n=new t.constructor(t.byteLength);return new zo(n).set(new zo(t)),n}function Ig(t,n){var o=n?na(t.buffer):t.buffer;return new t.constructor(o,t.byteOffset,t.byteLength)}var Tg=/\w*$/;function Og(t){var n=new t.constructor(t.source,Tg.exec(t));return n.lastIndex=t.lastIndex,n}var Tl=xt?xt.prototype:void 0,Ol=Tl?Tl.valueOf:void 0;function Vg(t){return Ol?Object(Ol.call(t)):{}}function Bg(t,n){var o=n?na(t.buffer):t.buffer;return new t.constructor(o,t.byteOffset,t.length)}var $g="[object Boolean]",Rg="[object Date]",Fg="[object Map]",Lg="[object Number]",Dg="[object RegExp]",Mg="[object Set]",vg="[object String]",jg="[object Symbol]",Ug="[object ArrayBuffer]",Kg="[object DataView]",qg="[object Float32Array]",Gg="[object Float64Array]",zg="[object Int8Array]",Hg="[object Int16Array]",Wg="[object Int32Array]",Yg="[object Uint8Array]",Jg="[object Uint8ClampedArray]",Xg="[object Uint16Array]",Zg="[object Uint32Array]";function Qg(t,n,o){var r=t.constructor;switch(n){case Ug:return na(t);case $g:case Rg:return new r(+t);case Kg:return Ig(t,o);case qg:case Gg:case zg:case Hg:case Wg:case Yg:case Jg:case Xg:case Zg:return Bg(t,o);case Fg:return new r;case Lg:case vg:return new r(t);case Dg:return Og(t);case Mg:return new r;case jg:return Vg(t)}}function eh(t){return typeof t.constructor=="function"&&!Mo(t)?Bf(Wr(t)):{}}var th="[object Map]";function nh(t){return Lt(t)&&At(t)==th}var Vl=Fn&&Fn.isMap,oh=Vl?vr(Vl):nh,rh="[object Set]";function ah(t){return Lt(t)&&At(t)==rh}var Bl=Fn&&Fn.isSet,ih=Bl?vr(Bl):ah,lh=1,sh=2,ch=4,$l="[object Arguments]",dh="[object Array]",uh="[object Boolean]",fh="[object Date]",ph="[object Error]",Rl="[object Function]",mh="[object GeneratorFunction]",gh="[object Map]",hh="[object Number]",Fl="[object Object]",yh="[object RegExp]",_h="[object Set]",bh="[object String]",kh="[object Symbol]",wh="[object WeakMap]",Ch="[object ArrayBuffer]",Eh="[object DataView]",Nh="[object Float32Array]",xh="[object Float64Array]",Ah="[object Int8Array]",Sh="[object Int16Array]",Ph="[object Int32Array]",Ih="[object Uint8Array]",Th="[object Uint8ClampedArray]",Oh="[object Uint16Array]",Vh="[object Uint32Array]",Ge={};Ge[$l]=Ge[dh]=Ge[Ch]=Ge[Eh]=Ge[uh]=Ge[fh]=Ge[Nh]=Ge[xh]=Ge[Ah]=Ge[Sh]=Ge[Ph]=Ge[gh]=Ge[hh]=Ge[Fl]=Ge[yh]=Ge[_h]=Ge[bh]=Ge[kh]=Ge[Ih]=Ge[Th]=Ge[Oh]=Ge[Vh]=!0,Ge[ph]=Ge[Rl]=Ge[wh]=!1;function lo(t,n,o,r,a,i){var l,s=n&lh,c=n&sh,u=n&ch;if(o&&(l=a?o(t,r,a,i):o(t)),l!==void 0)return l;if(!hn(t))return t;var p=Ot(t);if(p){if(l=Pg(t),!s)return Rf(t,l)}else{var d=At(t),f=d==Rl||d==mh;if(oo(t))return pg(t,s);if(d==Fl||d==$l||f&&!a){if(l=c||f?{}:eh(t),!s)return c?bg(t,ug(l,t)):yg(t,dg(l,t))}else{if(!Ge[d])return a?t:{};l=Qg(t,d,s)}}i||(i=new Kt);var m=i.get(t);if(m)return m;i.set(t,l),ih(t)?t.forEach(function(h){l.add(lo(h,n,o,h,t,i))}):oh(t)&&t.forEach(function(h,y){l.set(y,lo(h,n,o,y,t,i))});var g=u?c?Nl:Zr:c?qr:Kr,_=p?void 0:g(t);return Uf(_||t,function(h,y){_&&(y=h,h=t[y]),Dr(l,y,lo(h,n,o,y,t,i))}),l}var Bh=1,$h=4;function kn(t){return lo(t,Bh|$h)}var Rh="__lodash_hash_undefined__";function Fh(t){return this.__data__.set(t,Rh),this}function Lh(t){return this.__data__.has(t)}function so(t){var n=-1,o=t==null?0:t.length;for(this.__data__=new Ut;++n<o;)this.add(t[n])}so.prototype.add=so.prototype.push=Fh,so.prototype.has=Lh;function Dh(t,n){for(var o=-1,r=t==null?0:t.length;++o<r;)if(n(t[o],o,t))return!0;return!1}function oa(t,n){return t.has(n)}var Mh=1,vh=2;function Ll(t,n,o,r,a,i){var l=o&Mh,s=t.length,c=n.length;if(s!=c&&!(l&&c>s))return!1;var u=i.get(t),p=i.get(n);if(u&&p)return u==n&&p==t;var d=-1,f=!0,m=o&vh?new so:void 0;for(i.set(t,n),i.set(n,t);++d<s;){var g=t[d],_=n[d];if(r)var h=l?r(_,g,d,n,t,i):r(g,_,d,t,n,i);if(h!==void 0){if(h)continue;f=!1;break}if(m){if(!Dh(n,function(y,w){if(!oa(m,w)&&(g===y||a(g,y,o,r,i)))return m.push(w)})){f=!1;break}}else if(!(g===_||a(g,_,o,r,i))){f=!1;break}}return i.delete(t),i.delete(n),f}function jh(t){var n=-1,o=Array(t.size);return t.forEach(function(r,a){o[++n]=[a,r]}),o}function Uh(t){var n=-1,o=Array(t.size);return t.forEach(function(r){o[++n]=r}),o}var Kh=1,qh=2,Gh="[object Boolean]",zh="[object Date]",Hh="[object Error]",Wh="[object Map]",Yh="[object Number]",Jh="[object RegExp]",Xh="[object Set]",Zh="[object String]",Qh="[object Symbol]",ey="[object ArrayBuffer]",ty="[object DataView]",Dl=xt?xt.prototype:void 0,ra=Dl?Dl.valueOf:void 0;function ny(t,n,o,r,a,i,l){switch(o){case ty:if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)return!1;t=t.buffer,n=n.buffer;case ey:return!(t.byteLength!=n.byteLength||!i(new zo(t),new zo(n)));case Gh:case zh:case Yh:return Lr(+t,+n);case Hh:return t.name==n.name&&t.message==n.message;case Jh:case Zh:return t==n+"";case Wh:var s=jh;case Xh:var c=r&Kh;if(s||(s=Uh),t.size!=n.size&&!c)return!1;var u=l.get(t);if(u)return u==n;r|=qh,l.set(t,n);var p=Ll(s(t),s(n),r,a,i,l);return l.delete(t),p;case Qh:if(ra)return ra.call(t)==ra.call(n)}return!1}var oy=1,ry=Object.prototype,ay=ry.hasOwnProperty;function iy(t,n,o,r,a,i){var l=o&oy,s=Zr(t),c=s.length,u=Zr(n),p=u.length;if(c!=p&&!l)return!1;for(var d=c;d--;){var f=s[d];if(!(l?f in n:ay.call(n,f)))return!1}var m=i.get(t),g=i.get(n);if(m&&g)return m==n&&g==t;var _=!0;i.set(t,n),i.set(n,t);for(var h=l;++d<c;){f=s[d];var y=t[f],w=n[f];if(r)var E=l?r(w,y,f,n,t,i):r(y,w,f,t,n,i);if(!(E===void 0?y===w||a(y,w,o,r,i):E)){_=!1;break}h||(h=f=="constructor")}if(_&&!h){var C=t.constructor,b=n.constructor;C!=b&&"constructor"in t&&"constructor"in n&&!(typeof C=="function"&&C instanceof C&&typeof b=="function"&&b instanceof b)&&(_=!1)}return i.delete(t),i.delete(n),_}var ly=1,Ml="[object Arguments]",vl="[object Array]",Ho="[object Object]",sy=Object.prototype,jl=sy.hasOwnProperty;function cy(t,n,o,r,a,i){var l=Ot(t),s=Ot(n),c=l?vl:At(t),u=s?vl:At(n);c=c==Ml?Ho:c,u=u==Ml?Ho:u;var p=c==Ho,d=u==Ho,f=c==u;if(f&&oo(t)){if(!oo(n))return!1;l=!0,p=!1}if(f&&!p)return i||(i=new Kt),l||Ur(t)?Ll(t,n,o,r,a,i):ny(t,n,c,o,r,a,i);if(!(o&ly)){var m=p&&jl.call(t,"__wrapped__"),g=d&&jl.call(n,"__wrapped__");if(m||g){var _=m?t.value():t,h=g?n.value():n;return i||(i=new Kt),a(_,h,o,r,i)}}return f?(i||(i=new Kt),iy(t,n,o,r,a,i)):!1}function Ul(t,n,o,r,a){return t===n?!0:t==null||n==null||!Lt(t)&&!Lt(n)?t!==t&&n!==n:cy(t,n,o,r,Ul,a)}function dy(t,n){return t!=null&&n in Object(t)}function Kl(t,n,o){n=Ln(n,t);for(var r=-1,a=n.length,i=!1;++r<a;){var l=qo(n[r]);if(!(i=t!=null&&o(t,l)))break;t=t[l]}return i||++r!=a?i:(a=t==null?0:t.length,!!a&&Mr(a)&&Fr(l,a)&&(Ot(t)||vo(t)))}function uy(t,n){return t!=null&&Kl(t,n,dy)}function fy(t){return Lt(t)&&Do(t)}function py(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}var my={"&":"&","<":"<",">":">",'"':""","'":"'"},gy=og(my),ql=/[&<>"']/g,hy=RegExp(ql.source);function yy(t){return t=Ko(t),t&&hy.test(t)?t.replace(ql,gy):t}var _y=Object.prototype,by=_y.hasOwnProperty;function ky(t,n){return t!=null&&by.call(t,n)}function Wo(t,n){return t!=null&&Kl(t,n,ky)}var wy=Math.min;function Cy(t,n,o){for(var r=Hf,a=t[0].length,i=t.length,l=i,s=Array(i),c=1/0,u=[];l--;){var p=t[l];c=wy(p.length,c),s[l]=a>=120&&p.length>=120?new so(l&&p):void 0}p=t[0];var d=-1,f=s[0];e:for(;++d<a&&u.length<c;){var m=p[d],g=m;if(m=m!==0?m:0,!(f?oa(f,g):r(u,g))){for(l=i;--l;){var _=s[l];if(!(_?oa(_,g):r(t[l],g)))continue e}f&&f.push(g),u.push(m)}}return u}function Ey(t){return fy(t)?t:[]}var Ny=Zf(function(t){var n=Br(t,Ey);return n.length&&n[0]===t[0]?Cy(n):[]});function xy(t,n){return n.length<2?t:zr(t,sl(n,0,-1))}var Ay="[object Map]",Sy="[object Set]",Py=Object.prototype,Iy=Py.hasOwnProperty;function Gl(t){if(t==null)return!0;if(Do(t)&&(Ot(t)||typeof t=="string"||typeof t.splice=="function"||oo(t)||Ur(t)||vo(t)))return!t.length;var n=At(t);if(n==Ay||n==Sy)return!t.size;if(Mo(t))return!rl(t).length;for(var o in t)if(Iy.call(t,o))return!1;return!0}function qt(t,n){return Ul(t,n)}var Ty=Object.prototype,Oy=Ty.hasOwnProperty;function zl(t,n){n=Ln(n,t);var o=-1,r=n.length;if(!r)return!0;for(var a=t==null||typeof t!="object"&&typeof t!="function";++o<r;){var i=n[o];if(typeof i=="string"){if(i==="__proto__"&&!Oy.call(t,"__proto__"))return!1;if(i==="constructor"&&o+1<r&&typeof n[o+1]=="string"&&n[o+1]==="prototype"){if(a&&o===0)continue;return!1}}}var l=xy(t,n);return l==null||delete l[qo(py(n))]}function Vy(t){return Tm(t)?void 0:t}var By=1,$y=2,Ry=4,tn=il(function(t,n){var o={};if(t==null)return o;var r=!1;n=Br(n,function(i){return i=Ln(i,t),r||(r=i.length>1),i}),no(t,Nl(t),o),r&&(o=lo(o,By|$y|Ry,Vy));for(var a=n.length;a--;)zl(o,n[a]);return o});function Hl(t,n,o,r){if(!hn(t))return t;n=Ln(n,t);for(var a=-1,i=n.length,l=i-1,s=t;s!=null&&++a<i;){var c=qo(n[a]),u=o;if(c==="__proto__"||c==="constructor"||c==="prototype")return t;if(a!=l){var p=s[c];u=void 0,u===void 0&&(u=hn(p)?p:Fr(n[a+1])?[]:{})}Dr(s,c,u),s=s[c]}return t}function Fy(t,n,o){for(var r=-1,a=n.length,i={};++r<a;){var l=n[r],s=zr(t,l);o(s,l)&&Hl(i,Ln(l,t),s)}return i}function Ly(t,n){return Fy(t,n,function(o,r){return uy(t,r)})}var Wl=il(function(t,n){return t==null?{}:Ly(t,n)});function Yl(t,n,o){return t==null?t:Hl(t,n,o)}var Dy=0;function Yo(t){var n=++Dy;return Ko(t)+n}function Jl(t,n){return t==null?!0:zl(t,n)}const My=[{authentication:{mode:"none"},ssl_verify:!0},{authentication:{basic:{}}},{authentication:{basic:{},oauth2:{token_headers:{},token_post_args:{}},oauth2_client:{}}}],wn=t=>{var n,o,r,a,i,l;((o=(n=t.confluent)==null?void 0:n.authentication)==null?void 0:o.mode)==="none"&&(delete t.confluent.authentication.oauth2,delete t.confluent.authentication.oauth2_client,delete t.confluent.authentication.basic),((a=(r=t.confluent)==null?void 0:r.authentication)==null?void 0:a.mode)==="basic"&&(delete t.confluent.authentication.oauth2,delete t.confluent.authentication.oauth2_client),((l=(i=t.confluent)==null?void 0:i.authentication)==null?void 0:l.mode)==="oauth2"&&delete t.confluent.authentication.basic,My.some(s=>qt(t.confluent,s))&&(t.confluent=null)};function vy(t,n){const o=t.split(""),r=n.split(""),a=o.length,i=r.length,l=Array.from({length:a+1},()=>Array(i+1).fill(0));for(let p=1;p<=a;p++)for(let d=1;d<=i;d++)o[p-1]===r[d-1]?l[p][d]=l[p-1][d-1]+1:l[p][d]=Math.max(l[p-1][d],l[p][d-1]);let s="",c=a,u=i;for(;c>0&&u>0;)o[c-1]===r[u-1]?(s=o[c-1]+s,c--,u--):l[c-1][u]>l[c][u-1]?c--:u--;return s}function jy(t){const n=Date.now(),o=2688*60*60*1e3;return Math.abs(n-t)<=o}const Uy={"config-message_by_lua_functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},shamefullyTransformPayload:({payload:t})=>{var n;wn((n=t.config)==null?void 0:n.schema_registry)}},Ky={"config-message_by_lua_functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},shamefullyTransformPayload:({payload:t})=>{var n;wn((n=t.config)==null?void 0:n.schema_registry)}},qy={"config-message_by_lua_functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},shamefullyTransformPayload:({payload:t})=>{var n,o,r;wn((n=t.config)==null?void 0:n.schema_registry),(r=(o=t.config)==null?void 0:o.topics)==null||r.forEach(a=>{wn(a==null?void 0:a.schema_registry)})}},Gy={"config-message_by_lua_functions":{...ve,inputAttributes:{...ve.inputAttributes,type:"textarea",max:!1}},shamefullyTransformPayload:({payload:t})=>{var n,o,r;wn((n=t.config)==null?void 0:n.schema_registry),(r=(o=t.config)==null?void 0:o.topics)==null||r.forEach(a=>{wn(a==null?void 0:a.schema_registry)})}},zy={shamefullyTransformPayload:({payload:t})=>{var n;wn((n=t.config)==null?void 0:n.schema_registry)}},Hy={"config-static_tags":{...$o,items:{type:"object",default:()=>({}),schema:{fields:[{model:"name",label:"name",type:"input",inputType:"string",id:"schema_name"},{model:"value",label:"value",type:"input",inputType:"string",id:"schema_value"}]}}}},Wy={"request-callout":"RequestCalloutForm","service-protection":{experimental:!0,component:"ServiceProtectionForm"},datakit:"DatakitForm","ai-mcp-proxy":"AIMcpProxyForm","jwt-signer":"CommonForm","upstream-oauth":{experimental:!0,component:"UpstreamOauthForm"},"key-auth":{experimental:!0,component:"KeyAuthForm"},"rate-limiting":{experimental:!0,component:"CommonForm"},jwt:{experimental:!0,component:"CommonForm"},"route-transformer-advanced":{experimental:!0,component:"CommonForm"},"request-transformer":{experimental:!0,component:"CommonForm"},"basic-auth":{experimental:!0,component:"CommonForm"}};function aa(t,n){const o=Wy[t];if(typeof o=="string")return o;if(n.includes(t))return o.component}function Yy(t,n,o){return o?o==="freeform":!!aa(t,n)}const ia=Symbol("EXPERIMENTAL_FREE_FORM_PROVIDER"),Jo={KM_2262_CODE_MODE:"KM-2262-code-mode",KM_2306_CONDITION_FIELD_314:"KM-2306-condition-field-314"},Xl=Symbol("TOASTER_PROVIDER"),Dn="__FREEFORM_SCHEMA_MAP__";function la(){return e.inject(ia,[])}function Jy(t){e.provide(ia,t)}function Xy(){const t=la();return{shouldUseFreeForm:(n,o)=>Yy(n,t,o),getFreeFormName:n=>aa(n,t)||"CommonForm"}}const Zy={shamefullyTransformPayload(t){var o;if(!((o=t.payload.config)!=null&&o.token_exchange))return t;const n=t.payload.config.token_exchange.subject_token_issuers;return n&&n.forEach(r=>{qt(r.conditions,{})&&delete r.conditions,r.conditions&&Object.values(r.conditions).every(a=>Array.isArray(a)&&a.length===0)&&delete r.conditions}),t}},Qy={shamefullyTransformPayload(t){var n,o,r,a,i;if(!((o=(n=t.payload.config)==null?void 0:n.access_logs)!=null&&o.custom_attributes_by_lua))return t;if(qt((a=(r=t.payload.config)==null?void 0:r.access_logs)==null?void 0:a.custom_attributes_by_lua,{})){const l=(i=t.payload.config)==null?void 0:i.access_logs;l&&delete l.custom_attributes_by_lua}return t}},e_=(t,n)=>{const o=t.model.startsWith("config-"),r=n.model.startsWith("config-");return o&&!r?1:!o&&r?-1:0},Zl=(t,n)=>(t.order??0)-(n.order??0),Ql=(t,n)=>e_(t,n)||Zl(t,n)||t.model.localeCompare(n.model),Me={useI18n:Le,usePluginMetaData:Ru,usePluginHelpers:Ni,useSchemas:t=>{const{capitalize:n}=ee.useStringHelpers(),{convertToDotNotation:o}=Ni(),{i18n:{t:r}}=Le(),a=la(),i={"application-registration":{overwriteDefault:!0,formSchema:{...ju}},datadog:{...Uu},"exit-transformer":{...Ku},"upstream-tls":{"config-trusted_certificates":{type:"textArea",valueType:"array",rows:4,help:"A comma separated list of certificate values"}},statsd:{...nf},"statsd-advanced":{...of},"route-by-header":{...Zu},"ai-prompt-decorator":{...Fu},"ai-prompt-template":{...Lu},"ai-proxy-advanced":{...Du},"ai-rag-injector":{...Mu},"ai-llm-as-judge":{...vu},"vault-auth":{...af},"oas-validation":{...Hu},mocking:{...zu},"rate-limiting":{...Ro},"rate-limiting-advanced":(t==null?void 0:t.app)==="kongManager"?{"config-consumer_groups":Ro["config-consumer_groups"]}:{...Ro},"graphql-rate-limiting-advanced":{...qu},"injection-protection":{...Gu},"response-ratelimiting":{...Ro},"pre-function":{...$i},"post-function":{...$i},"request-transformer-advanced":{...Ju},"response-transformer":{...Ri},"response-transformer-advanced":{...Xu},zipkin:{...Hy},"upstream-oauth":{...rf},saml:{...Qu},"kafka-upstream":{...Uy},"solace-consume":{...ef},"solace-upstream":{...tf},"key-auth":Au(t),"key-auth-enc":Vu(t),confluent:{...Ky},"confluent-consume":{...qy},"kafka-consume":{...Gy},"kafka-log":{...zy},"openid-connect":{...Zy},opentelemetry:{...Qy}},l=()=>["created_at","updated_at","id","_isCustomPlugin","_supported_redis_partial_type","_redis_partial_path"],s=(k,N,S,R)=>{let P={};(N||k)&&(P=N||(k.fields?k.fields:k));const A=l().concat(k.blacklist?k.blacklist:[]),T=Object.keys(P).filter(v=>!A.includes(v)),O=T.indexOf("comparator");O>-1&&T.splice(O,1);let I={fields:[]};const q={};T.forEach(v=>{u(P[v],v,P,q,I,S)});const j=q.name,W=Nt[j],U=[],D=v=>{const x=["cluster-cache"];for(const M of x)if(v.model.includes(M))return!1;return new RegExp("(?<=-redis-).*").test(v.model)};if(I._supported_redis_partial_type=k._supported_redis_partial_type,I._redis_partial_path=k._redis_partial_path,je.getSharedFormName(j)||aa(j,a)||W!=null&&W.useLegacyForm||t!=null&&t.credential||R==="freeform"){if(W!=null&&W.useLegacyForm&&(t!=null&&t.enableRedisPartial)&&k._supported_redis_partial_type){for(const v of I.fields)if(D(v)){U.push(v);continue}I.fields=I.fields.filter(v=>!D(v)),U.length&&I.fields.push({id:"_redis",fields:U,model:"__redis_partial",pluginType:k._isCustomPlugin?"custom":"bundled",redisType:k._supported_redis_partial_type,redisPath:k._redis_partial_path})}I.fields.sort((v,x)=>(v.order=v.order||0,x.order=x.order||0,v.order-x.order))}else{const v=[],x=[],M=[],G=[],te={};if(W!=null&&W.fieldRules){const Z=[...W.fieldRules.atLeastOneOf??[],...W.fieldRules.onlyOneOf??[],...W.fieldRules.mutuallyRequired??[]];if(W.fieldRules.onlyOneOfMutuallyRequired)for(const Ne of W.fieldRules.onlyOneOfMutuallyRequired)Z.push(...Ne);for(const Ne of Z)for(const Oe of Ne)te[Oe.replace(/-/g,"_").replace(/\./g,"-")]=!1}for(const Z of I.fields){if(t!=null&&t.enableRedisPartial&&k._supported_redis_partial_type&&D(Z)){G.push(Z);continue}if(Z.pinned){v.push(Z);continue}if(Z.required||te[Z.model]!==void 0){te[Z.model]===!1&&(te[Z.model]=!0),x.push(Z);continue}M.push(Z)}G.length&&M.push({id:"_redis",fields:G,model:"__redis_partial",pluginType:k._isCustomPlugin?"custom":"bundled",redisType:k._supported_redis_partial_type,redisPath:k._redis_partial_path,order:-1});const L=Object.entries(te).filter(([,Z])=>!Z).map(([Z])=>Z.replace(/-/g,".").replace(/_/g,"-"));L.length>0&&console.warn(`Unknown checked fields for plugin ${j}: ${L.join(", ")}`);const H=[];v.length>0&&H.push({fields:v.sort(Zl)}),(x.length>0||M.length>0)&&H.push({fields:x.sort(Ql),collapsible:{title:r("plugins.form.grouping.plugin_configuration.title"),description:r("plugins.form.grouping.plugin_configuration.description"),nestedCollapsible:{fields:M.sort(Ql),triggerLabel:{expand:r("plugins.form.grouping.advanced_parameters.view"),collapse:r("plugins.form.grouping.advanced_parameters.hide")}}},slots:{beforeContent:"plugin-config-before-content",emptyState:"plugin-config-empty-state"}}),I={groups:H}}return{schema:I,model:q,options:{noneSelectedText:"Nothing Selected...",helpAsHtml:!0}}},c=k=>Array.isArray(k.default)||k.default!=null&&typeof k.default!="object"&&k.default!=="function",u=(k,N,S,R,P,A)=>{const T=c(k);return R[N]=T?k.default:null,k.id=N,k.model=N,k.fields&&k.type==="record"?d(k,N,S,R,P,A):(S[N]=k,C(k,R),A&&A[N]&&p(S[N],A[N]),P.fields.push(k)),S},p=(k,N)=>(N&&(Object.assign(k,N),N.label&&(k.label=N.label)),k),d=(k,N,S,R,P,A)=>{k.fields.forEach(T=>{Object.keys(T).forEach(O=>{const I=T[O];S=u(I,N+"-"+O,S,R,P,A)})})},f=(k,N)=>{k.type="input",k.inputType="hidden",k.styleClasses="kong-form-hidden-field-wrapper";const S=t==null?void 0:t.entityId;N[k.model]=S?{id:S}:null},m=k=>{k.type="input",k.inputType="number",k.between&&k.between.length===2&&(k.min=k.between[0],k.max=k.between[1])},g=k=>{Object.prototype.hasOwnProperty.call(k,"one_of")?(k.type="select",k.values=k.one_of,k.selectOptions={hideNoneSelectedText:!0}):(k.type="input",k.inputType="text")},_=k=>{k.type="checkbox",k.default=!0,k.required=!1},h=k=>{if(k.type="object-advanced",k.values.type==="array"){const{type:N}=k.values.elements||{};k.schema={fields:[{schema:{fields:[{...ve,model:k.model,valueArrayType:N==="integer"?"number":N||"string",inputAttributes:{...ve.inputAttributes,type:N==="integer"?"number":"text",inputMode:N==="integer"?"numeric":"text"}}]}}]}}else k.values.fields&&(k.schema={fields:[{type:"object",model:"object",schema:{fields:k.values.fields.map(N=>{const S=Object.keys(N)[0];return{model:S,type:"input",label:n(S),placeholder:S,inputType:N[S].type}})}}]})},y=k=>k.fields.reduce((N,S)=>(S.fields&&S.fields.forEach(R=>{N[R.model]=R}),S.model&&(N[S.model]=S),N),{}),w=(k,N)=>{if(!je.customFields.includes(k.model))return;const S=y(k);je.customFields.forEach(R=>{Object.keys(S).forEach(P=>{const A=c(S[P]);N[P]=A?S[P].default:null}),delete N[R]})},E=(k,N)=>k.inputType==="hidden"?"":o(n(k.label||N.replace(/_/g," "))),C=(k,N)=>{switch(w(k,N),k.type){case"foreign":f(k,N);break;case"number":m(k),k.attributes={step:"any"};break;case"integer":m(k);break;case"string":g(k);break;case"boolean":_(k);break;case"map":h(k);break}k.inputType==="foreign"&&f(k,N),k.label=E(k,k.model)};function b(k,N){if(N==null||N.type&&N.type!=="record"||typeof k!="object"||k==null)return k;const S={};for(const R of N.fields){const P=Object.keys(R)[0],A=R[P];A.type==="record"?S[P]=b(k[P],A):A.type==="array"&&Array.isArray(k[P])&&A.elements.type==="record"?S[P]=k[P].map(T=>b(T,A.elements)):S[P]=k[P]}return S}return{buildFormSchema:u,parseSchema:s,customSchemas:i,typedefs:$n,pruneRecord:b}},useExperimentalFreeForms:la,useProvideExperimentalFreeForms:Jy,useFreeFormResolver:Xy},t_=(t,n)=>({type:"array",valueType:"string",valueArrayType:"array",itemContainerComponent:"FieldArrayItem",fieldClasses:"kong-form-array-field",fieldItemsClasses:"kong-form-array-field-item",validator:"array",styleClasses:"kong-form-field-wrapper",newElementButtonLabel:"+ Add",newElementButtonLabelClasses:"kong-form-new-element-button-label",items:{type:"select",values:t,selectOptions:{hideNoneSelectedText:!0},...(n==null?void 0:n[0])!=null?{default:n[0]}:{}}}),dt="/v2/control-planes/{controlPlaneId}/core-entities",gt="/{workspace}",We={list:{konnect:{all:`${dt}/plugins`,forEntity:`${dt}/{entityType}/{entityId}/plugins`},kongManager:{all:`${gt}/plugins`,forEntity:`${gt}/{entityType}/{entityId}/plugins`}},select:{konnect:{availablePlugins:`${dt}/v1/available-plugins`,streamingCustomPlugins:`${dt}/custom-plugins`,schemaCustomPluginItem:`${dt}/plugin-schemas/{pluginId}`,streamingCustomPluginItem:`${dt}/custom-plugins/{pluginId}`},kongManager:{availablePlugins:`${gt}/kong`,availablePluginsForOss:"/"}},form:{konnect:{create:{all:`${dt}/plugins`,forEntity:`${dt}/{entityType}/{entityId}/plugins`},edit:{all:`${dt}/plugins/{id}`,forEntity:`${dt}/{entityType}/{entityId}/plugins/{id}`},pluginSchema:"/v2/control-planes/{controlPlaneId}/schemas/core-entities/plugins/{plugin}",credential:{create:`${dt}/{resourceEndpoint}`,edit:`${dt}/{resourceEndpoint}/{id}`},credentialSchema:"/v2/control-planes/{controlPlaneId}/schemas/core-entities/{plugin}",entityGetOne:`${dt}/{entity}/{id}`,entityGetAll:`${dt}/{entity}`,entityPeek:`${dt}/{entity}?size={amount}`},kongManager:{create:{all:`${gt}/plugins`,forEntity:`${gt}/{entityType}/{entityId}/plugins`},edit:{all:`${gt}/plugins/{id}`,forEntity:`${gt}/{entityType}/{entityId}/plugins/{id}`},pluginSchema:`${gt}/schemas/plugins/{plugin}`,credential:{create:`${gt}/{resourceEndpoint}`,edit:`${gt}/{resourceEndpoint}/{id}`},credentialSchema:`${gt}/schemas/{plugin}`,entityGetOne:`${gt}/{entity}/{id}`,entityGetAll:`${gt}/{entity}`}},item:{konnect:{all:`${dt}/plugins/{id}`,forEntity:`${dt}/{entityType}/{entityId}/plugins/{id}`},kongManager:{all:`${gt}/plugins/{id}`,forEntity:`${gt}/{entityType}/{entityId}/plugins/{id}`}}},n_={key:0},o_=ke(e.defineComponent({__name:"PluginFieldRuleAlerts",props:{rules:{}},setup(t){const n=t,{formatPluginFieldLabel:o}=Me.usePluginHelpers(),{i18n:{t:r}}=Me.useI18n(),a=s=>s.map(c=>c.replace(/^[cC]onfig\./,"").split(".").map(u=>o(u)).join(".")).join(", "),i=(s,c)=>r(s,{parameters:a(c)}),l=e.computed(()=>{const s=[];if(n.rules.atLeastOneOf)for(const c of n.rules.atLeastOneOf)s.push(i("plugins.form.field_rules.at_least_one_of",c));if(n.rules.onlyOneOf)for(const c of n.rules.onlyOneOf)s.push(i("plugins.form.field_rules.only_one_of",c));if(n.rules.mutuallyRequired)for(const c of n.rules.mutuallyRequired)s.push(i("plugins.form.field_rules.mutually_required",c));return s});return(s,c)=>{const u=e.resolveComponent("KAlert");return e.openBlock(),e.createBlock(u,{class:"plugin-field-rule-alerts"},{default:e.withCtx(()=>[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(p,d)=>(e.openBlock(),e.createElementBlock("li",{key:`simple-alert-${d}`},e.toDisplayString(p),1))),128)),n.rules.onlyOneOfMutuallyRequired&&n.rules.onlyOneOfMutuallyRequired.length>0?(e.openBlock(),e.createElementBlock("li",n_,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.rules.onlyOneOfMutuallyRequired,(p,d)=>(e.openBlock(),e.createElementBlock("div",{key:`only-one-mutually-alert-${d}`},[e.createElementVNode("div",null,e.toDisplayString(e.unref(r)("plugins.form.field_rules.only_one_of_mutually_required")),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p,(f,m)=>(e.openBlock(),e.createElementBlock("li",{key:`only-one-mutually-alert-${d}-combination-${m}`},e.toDisplayString(a(f)),1))),128))])]))),128))])):e.createCommentVNode("",!0)])]),_:1})}}}),[["__scopeId","data-v-d8eb79cf"]]),r_="__request_callout_";function es(){return Yo(r_)}function sa(t){return t.map(n=>({value:n,label:`${n}`}))}const ca="*",Cn="$",Xo=".";function Xe(...t){return t.join(Xo)}function da(...t){return Xe(Cn,...t)}function ts(t){return t.startsWith(Xe(Cn,""))}function _t(t){return t.split(Xo).filter(n=>n!=="")}function En(t){const n=_t(t);return n[n.length-1]}function a_(t){return t.startsWith(Cn)&&(t=Xe(..._t(t).slice(1))),t}function i_(t,n){const o=new RegExp("(?<=config-redis-).*"),r=/Config\.Redis.*/;return n.filter(i=>{const l=i.model.match(o);return l&&!Object.keys(t).includes(l[0])}).map(i=>{const l=i.label.match(r);return{label:l?l[0]:i.label,key:i.model,value:"N/A",type:"text"}})}function l_(t){const n=e.toValue(t);return n?n.type==="set"&&n.elements.type==="string"&&!n.elements.one_of:!1}function ns(t,n){return[...t].sort((o,r)=>{const a=Object.keys(o)[0],i=Object.keys(r)[0],l=n.indexOf(a),s=n.indexOf(i);return l===-1&&s===-1?0:l===-1?1:s===-1?-1:l-s})}function os(t,n){const o=new Map;t.forEach(u=>{const p=Object.keys(u)[0];o.set(p,u)});const r=new Map;n.forEach((u,p)=>{u.forEach((d,f)=>{r.has(d)||r.set(d,[]),r.get(d).push({bundleIndex:p,position:f})})});const a=new Set,i=[],l=new Set,s=u=>{const p=r.get(u);if(!p)return!0;for(const{bundleIndex:d,position:f}of p){const m=n[d];for(let g=0;g<f;g++){const _=m[g];if(o.has(_)&&!a.has(_))return!1}}return!0},c=u=>{if(a.has(u))return;const p=o.get(u);if(!p)return;i.push(p),a.add(u),l.delete(u);const d=r.get(u);if(d)for(const{bundleIndex:m,position:g}of d){const _=n[m];for(let h=g+1;h<_.length;h++){const y=_[h];if(!a.has(y)){const w=o.get(y);w&&(i.push(w),a.add(y),l.delete(y))}}}const f=Array.from(l);for(const m of f)s(m)&&c(m)};for(const u of t){const p=Object.keys(u)[0];a.has(p)||(s(p)?c(p):l.add(p))}return i}function s_(t){var r;const n=_t(t);let o={parent:null};for(n.pop();n.length;){const a=n.shift();o.path=(r=o.parent)!=null&&r.path?Xe(o.parent.path,a):a,o={parent:o}}return o}function rs(t){return e.computed(()=>s_(e.toValue(t)))}const as=Symbol("free-form-field-path"),ua=Symbol("free-form-field-renderer-slots"),is=Symbol("free-form-field-reset-label-path-setting"),Mn="free-form-field-renderers-slot",c_={tooltipAttributes:{maxWidth:"300px",placement:"top"}};function d_(t,n=""){const o={},r=t;return Array.isArray(r.fields)?Object.assign(o,fa(r,n)):t.type==="array"&&t.elements&&Object.assign(o,pa(t,n)),o}function fa(t,n=""){const o={};if(Array.isArray(t.fields))for(const r of t.fields){const a=Object.keys(r)[0],i=r[a],l=n?Xe(n,a):a;if(o[l]=i,i.type==="record"&&Array.isArray(i.fields)){const s=fa(i,l);Object.assign(o,s)}else if(i.type==="array"&&i.elements){const s=pa(i,l);Object.assign(o,s)}}return o}function pa(t,n=""){const o={};if(t.elements){const r=t.elements,a=Xe(n,ca);if(o[a]=r,r.type==="record"&&Array.isArray(r.fields)){const i=fa(r,a);Object.assign(o,i)}else if(r.type==="array"&&r.elements){const i=pa(r,a);Object.assign(o,i)}}return o}function Zo(t){const n=_t(t).map(o=>/^\d+$/.test(o)?ca:o);return Xe(...n)}function u_(t){const n=e.toValue(t),o=e.computed(()=>n?d_(n):{});function r(f){var m;return f==null?n:(m=o.value)==null?void 0:m[Zo(f)]}function a(f,m=!1){const g=r(f);return g?g.default!==void 0?g.default:m||g.required?g.type==="record"?i(g,f):g.type==="array"?[]:g.type==="map"?{}:null:null:null}function i(f,m){const g={};if(Array.isArray(f.fields))for(const _ of f.fields){const h=Object.keys(_)[0],y=m?`${m}.${h}`:h,w=a(y,!1);w!==void 0&&(g[h]=w)}return g}function l(f){return f?a(f,!0):i(r(),"")}function s(f){const m=r(f),g=m!=null&&m.description?Io.marked.parse(m.description,{async:!1}):void 0;return{...c_,"data-testid":`ff-label-${f}`,info:g}}function c(f){var g;const m=r(f);return sa((m==null?void 0:m.one_of)||((g=m.elements)==null?void 0:g.one_of)||[])}function u(f){const m=r(f),g=m==null?void 0:m.default;let _=null;if((m==null?void 0:m.type)==="foreign"&&(g!=null&&g.id))_=g.id;else{if(g==null||typeof g=="object"||g==="")return null;if(Array.isArray(g)){if(g.length===0)return null;_=g.join(", ")}else _=g.toString()}return`Default: ${_}`}function p(){return o.value}function d(f){const m=r(f);return(m==null?void 0:m.required)?l(f):null}return{getSchemaMap:p,getSchema:r,getDefault:l,getSelectItems:c,getLabelAttributes:s,getPlaceholder:u,getEmptyOrDefault:d}}function f_(t){const n=e.ref({}),o=e.ref(new Set);function r(g,_){const h=g.map(w=>_t(w).length),y=h[0];if(!h.every(w=>w===y)){const w=g.map((E,C)=>` - '${E}' is at level ${h[C]}`).join(`
|
|
14
14
|
`);throw new Error(`${_}: Fields must be at the same level. Found mixed levels:
|
|
15
15
|
${w}`)}}function a(g){for(const[_,h]of Object.entries(g)){if(!h.bundles)continue;for(const w of h.bundles)if(new Set(w).size!==w.length){const C=w.filter((b,k)=>w.indexOf(b)!==k);throw new Error(`Self-cycle detected in bundle: field '${C[0]}' appears multiple times in [${w.join(", ")}]`)}const y=new Map;for(const w of h.bundles)for(let E=1;E<w.length;E++){const C=w[E],b=w[E-1];y.has(C)||y.set(C,new Set),y.get(C).add(b)}for(const w of y.keys()){let E=function(k){if(b.includes(k)){const S=[...b,k].join(" -> ");throw new Error(`Circular bundle detected in path '${_}':
|
|
16
16
|
${S}`)}if(C.has(k))return;C.add(k),b.push(k);const N=y.get(k);if(N)for(const S of N)E(S);b.pop()};const C=new Set,b=[];E(w)}}}function i(g){for(const[_,h]of Object.entries(g))if(h.dependencies)for(const y of Object.keys(h.dependencies)){let w=function(b){if(C.includes(b)){const N=[...C,b].join(" -> ");throw new Error(`Circular dependency detected in path '${_}':
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kong-ui-public/entities-plugins",
|
|
3
|
-
"version": "9.166.
|
|
3
|
+
"version": "9.166.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/entities-plugins.umd.js",
|
|
6
6
|
"module": "./dist/entities-plugins.es.js",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"vue": ">= 3.3.13 < 4",
|
|
51
51
|
"vue-router": "^4.6.4",
|
|
52
52
|
"zod": ">= 4.1.3 < 5",
|
|
53
|
-
"@kong-ui-public/
|
|
54
|
-
"@kong-ui-public/
|
|
53
|
+
"@kong-ui-public/entities-shared": "^3.39.11",
|
|
54
|
+
"@kong-ui-public/i18n": "^2.4.6"
|
|
55
55
|
},
|
|
56
56
|
"peerDependenciesMeta": {
|
|
57
57
|
"@playwright/test": {
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"vue": "^3.5.27",
|
|
83
83
|
"vue-router": "^4.6.4",
|
|
84
84
|
"zod": "^4.3.6",
|
|
85
|
-
"@kong-ui-public/entities-vaults": "^4.4.0",
|
|
86
85
|
"@kong-ui-public/entities-shared": "^3.39.11",
|
|
86
|
+
"@kong-ui-public/entities-vaults": "^4.4.0",
|
|
87
87
|
"@kong-ui-public/i18n": "^2.4.6",
|
|
88
88
|
"@kong-ui-public/monaco-editor": "^0.19.1"
|
|
89
89
|
},
|
|
@@ -105,14 +105,14 @@
|
|
|
105
105
|
"lodash-es": "^4.17.23",
|
|
106
106
|
"marked": "^14.1.4",
|
|
107
107
|
"@kong-ui-public/entities-consumers": "^4.2.52",
|
|
108
|
-
"@kong-ui-public/entities-consumer-groups": "^4.2.51",
|
|
109
108
|
"@kong-ui-public/entities-gateway-services": "^3.15.2",
|
|
110
|
-
"@kong-ui-public/entities-plugins-
|
|
111
|
-
"@kong-ui-public/entities-plugins-
|
|
112
|
-
"@kong-ui-public/entities-redis-configurations": "^1.9.
|
|
113
|
-
"@kong-ui-public/entities-vaults": "^4.4.0",
|
|
109
|
+
"@kong-ui-public/entities-plugins-icon": "^1.6.1",
|
|
110
|
+
"@kong-ui-public/entities-plugins-metadata": "^1.13.1",
|
|
111
|
+
"@kong-ui-public/entities-redis-configurations": "^1.9.25",
|
|
114
112
|
"@kong-ui-public/entities-routes": "^3.19.5",
|
|
115
|
-
"@kong-ui-public/
|
|
113
|
+
"@kong-ui-public/entities-vaults": "^4.4.0",
|
|
114
|
+
"@kong-ui-public/forms": "^4.22.0",
|
|
115
|
+
"@kong-ui-public/entities-consumer-groups": "^4.2.51"
|
|
116
116
|
},
|
|
117
117
|
"scripts": {
|
|
118
118
|
"dev": "cross-env USE_SANDBOX=true vite",
|