diff --git a/404.html b/404.html index b6e663cb1..d6ad29f9b 100644 --- a/404.html +++ b/404.html @@ -10,10 +10,10 @@ - + - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/8fdf8779.466a213d.js b/assets/js/8fdf8779.466a213d.js new file mode 100644 index 000000000..5c80d9238 --- /dev/null +++ b/assets/js/8fdf8779.466a213d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[5944],{23415:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"directives/http","title":"@http","description":"The @http directive indicates a field or node relies on a REST API.","source":"@site/docs/directives/http.md","sourceDirName":"directives","slug":"/http-directive","permalink":"/docs/http-directive","draft":false,"unlisted":false,"editUrl":"https://github.com/tailcallhq/tailcallhq.github.io/tree/develop/docs/directives/http.md","tags":[],"version":"current","lastUpdatedAt":1733866454000,"frontMatter":{"title":"@http","description":"The @http directive indicates a field or node relies on a REST API.","slug":"../http-directive"},"sidebar":"docs","previous":{"title":"@grpc","permalink":"/docs/grpc-directive"},"next":{"title":"@js","permalink":"/docs/js-directive"}}');var r=n(74848),i=n(28453);const l={title:"@http",description:"The @http directive indicates a field or node relies on a REST API.",slug:"../http-directive"},a=void 0,d={},c=[{value:"@http Directive Definition",id:"http-directive-definition",level:2},{value:"Example: Basic Usage of @http",id:"example-basic-usage-of-http",level:2},{value:"Directive Arguments",id:"directive-arguments",level:2},{value:"url",id:"url",level:3},{value:"method",id:"method",level:3},{value:"query",id:"query",level:3},{value:"Query Fields:",id:"query-fields",level:4},{value:"body",id:"body",level:3},{value:"headers",id:"headers",level:3},{value:"batchKey",id:"batchkey",level:3},{value:"onRequest",id:"onrequest",level:3},{value:"onResponseBody",id:"onresponsebody",level:3},{value:"select",id:"select",level:3},{value:"dedupe",id:"dedupe",level:3},{value:"Batching with POST Requests",id:"batching-with-post-requests",level:2},{value:"Mechanism",id:"mechanism",level:3},{value:"Configuration",id:"configuration",level:3},{value:"Current Limitations",id:"current-limitations",level:3},{value:"Combining Multiple Directives",id:"combining-multiple-directives",level:2}];function o(e){const s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"@http"})," directive enables GraphQL fields to be resolved using REST API endpoints, simplifying the integration of external data sources."]}),"\n",(0,r.jsxs)(s.h2,{id:"http-directive-definition",children:[(0,r.jsx)(s.code,{children:"@http"})," Directive Definition"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:'title="Directive Definition" showLineNumbers',children:"directive @http(\n url: String!\n method: Method\n query: [InputKeyValue!]\n body: JSON\n headers: [InputKeyValue!]\n batchKey: [String!]\n onRequest: String\n onResponseBody: String\n select: JSON\n dedupe: Boolean\n) on FIELD_DEFINITION\n"})}),"\n",(0,r.jsxs)(s.h2,{id:"example-basic-usage-of-http",children:["Example: Basic Usage of ",(0,r.jsx)(s.code,{children:"@http"})]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n users: [User]\n @http(url: "https://jsonplaceholder.typicode.com/users")\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In this example, adding the ",(0,r.jsx)(s.code,{children:"@http"})," directive to the ",(0,r.jsx)(s.code,{children:"users"})," field of the ",(0,r.jsx)(s.code,{children:"Query"})," type indicates reliance on a REST API for the ",(0,r.jsx)(s.code,{children:"users"})," field. The ",(0,r.jsx)(s.a,{href:"#url",children:"url"})," argument specifies the REST API's url, which is ",(0,r.jsx)(s.code,{children:"https://jsonplaceholder.typicode.com/users"})," in this scenario. Querying the ",(0,r.jsx)(s.code,{children:"users"})," field prompts the GraphQL server to issue a GET request to ",(0,r.jsx)(s.code,{children:"https://jsonplaceholder.typicode.com/users"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"directive-arguments",children:"Directive Arguments"}),"\n",(0,r.jsx)(s.h3,{id:"url",children:"url"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"url"})," parameter defines the API endpoint. It can also contain dynamic segments with Mustache templates for variable substitution:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n user(id: ID!): User\n @http(\n url: "https://jsonplaceholder.typicode.com/users/{{.args.id}}"\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"method",children:"method"}),"\n",(0,r.jsxs)(s.p,{children:["Specifies the HTTP method for the request. Defaults to ",(0,r.jsx)(s.code,{children:"GET"})," if not specified:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Mutation {\n createUser(input: UserInput!): User\n @http(\n method: "POST"\n url: "https://jsonplaceholder.typicode.com/users"\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"query",children:"query"}),"\n",(0,r.jsx)(s.p,{children:"Represents the API call's query parameters, either as a static object or with dynamic parameters using Mustache templates. These parameters append to the URL."}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n userPosts(id: ID!): [Post]\n @http(\n url: "https://jsonplaceholder.typicode.com/posts"\n query: [\n {\n key: "userId"\n value: "{{.args.id}}"\n skipEmpty: false\n }\n ]\n )\n}\n'})}),"\n",(0,r.jsx)(s.h4,{id:"query-fields",children:"Query Fields:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"key"})," : Represents the name of the query parameter."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"value"})," : A string literal or a mustache template representing the value of query parameter."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"skipEmpty"})," : When set to ",(0,r.jsx)(s.code,{children:"true"})," the query parameter is skipped if the value of the parameter is null, defaults to false."]}),"\n"]}),"\n",(0,r.jsx)(s.admonition,{type:"important",children:(0,r.jsxs)(s.p,{children:["When ",(0,r.jsx)(s.code,{children:"batchKey"})," is present, Tailcall considers the first ",(0,r.jsx)(s.code,{children:"query"})," parameter to be the batch query key, so remember to adjust the order of the items accordingly."]})}),"\n",(0,r.jsx)(s.h3,{id:"body",children:"body"}),"\n",(0,r.jsx)(s.p,{children:"Defines the API call's body, necessary for methods like POST or PUT. Pass it as a static object or use Mustache templates for variable substitution from the GraphQL variables."}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Mutation {\n createUser(input: UserInput!): User\n @http(\n method: "POST"\n url: "https://jsonplaceholder.typicode.com/users"\n body: "{{.args.input}}"\n )\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In the example above, the ",(0,r.jsx)(s.code,{children:"createUser"})," mutation sends a POST request to ",(0,r.jsx)(s.code,{children:"/users"}),", with the input object converted to JSON and included in the request body."]}),"\n",(0,r.jsx)(s.h3,{id:"headers",children:"headers"}),"\n",(0,r.jsxs)(s.p,{children:["Customizes the HTTP request headers made by the ",(0,r.jsx)(s.code,{children:"@http"})," directive. Specify a key-value map of header names and values."]}),"\n",(0,r.jsx)(s.p,{children:"For instance:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Mutation {\n createUser(input: UserInput!): User\n @http(\n url: "https://jsonplaceholder.typicode.com/users"\n headers: [{key: "X-Server", value: "Tailcall"}]\n )\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In this example, a request to ",(0,r.jsx)(s.code,{children:"/users"})," will include a HTTP header ",(0,r.jsx)(s.code,{children:"X-Server"})," with the value ",(0,r.jsx)(s.code,{children:"Tailcall"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["You can make use of mustache templates to provide dynamic values for headers, derived from the arguments or ",(0,r.jsx)(s.a,{href:"/docs/graphql-resolver-context-tailcall",children:"context"})," provided in the request. For example:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Mutation {\n users(name: String): User\n @http(\n url: "https://jsonplaceholder.typicode.com/users"\n headers: [\n {key: "X-Server", value: "Tailcall"}\n {key: "User-Name", value: "{{.args.name}}"}\n ]\n )\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In this scenario, the ",(0,r.jsx)(s.code,{children:"User-Name"})," header's value will dynamically adjust according to the ",(0,r.jsx)(s.code,{children:"name"})," argument passed in the request."]}),"\n",(0,r.jsx)(s.h3,{id:"batchkey",children:"batchKey"}),"\n",(0,r.jsxs)(s.p,{children:["Groups data requests into a single call, enhancing efficiency. Refer to our ",(0,r.jsx)(s.a,{href:"/docs/graphql-n-plus-one-problem-solved-tailcall",children:"n + 1 guide"})," for more details."]}),"\n",(0,r.jsx)(s.admonition,{type:"important",children:(0,r.jsxs)(s.p,{children:["When ",(0,r.jsx)(s.code,{children:"batchKey"})," is present, Tailcall considers the first ",(0,r.jsx)(s.code,{children:"query"})," parameter to be the batch query key, so remember to adjust the order of the items accordingly. Whereas, the last item from ",(0,r.jsx)(s.code,{children:"batchKey"})," is used to instruct which field is the ID of an object. In case that the returned result is a nested property ",(0,r.jsx)(s.code,{children:"batchKey"})," can be used as a path to extract and group the items for the returned result."]})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Post {\n id: Int!\n name: String!\n userId: Int!\n user: User\n @http(\n url: "https://jsonplaceholder.typicode.com/users"\n query: [{key: "user_id", value: "{{.value.userId}}"}]\n batchKey: ["users", "id"]\n )\n}\n'})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:'query: {key: "user_id", value: "{{.value.userId}}"}]'}),": Instructs Tailcall CLI to generate a URL aligning the user id with ",(0,r.jsx)(s.code,{children:"userId"})," from the parent ",(0,r.jsx)(s.code,{children:"Post"}),", compiling a single URL for a batch of posts, such as ",(0,r.jsx)(s.code,{children:"/users?user_id=1&user_id=2&user_id=3...user_id=10"}),", consolidating requests into one."]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"onrequest",children:"onRequest"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"onRequest"})," property accepts a string value representing the remote function to be called every time an HTTP request is initiated. Typically the remote function is defined in a linked JavaScript worker file."]}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["For defining a request middleware globally for all requests, refer to the ",(0,r.jsx)(s.a,{href:"/docs/upstream-directive#onrequest",children:"upstream directive documentation"}),"."]})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n userPosts(id: ID!): [Post]\n @http(\n url: "https://jsonplaceholder.typicode.com/posts"\n query: [{key: "userId", value: "{{.args.id}}"}]\n onRequest: "someFunctionName"\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"onresponsebody",children:"onResponseBody"}),"\n",(0,r.jsxs)(s.p,{children:["This hook allows you to intercept and modify the response body from upstream services before it's processed by Tailcall. Like ",(0,r.jsx)(s.a,{href:"#onrequest",children:"onRequest"}),", it accepts a string value representing a middleware function defined in a JavaScript file. This function can be used to transform or validate the response data."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n user(id: Int!): User\n @http(\n url: "https://jsonplaceholder.typicode.com/users/{{.args.id}}"\n onResponseBody: "onResponse"\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"select",children:"select"}),"\n",(0,r.jsxs)(s.p,{children:["You can use ",(0,r.jsx)(s.code,{children:"select"})," with mustache syntax to re-construct the directives\nresponse to the desired format. This is useful when data are deeply\nnested or want to keep specific fields only from the response."]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["EXAMPLE 1: if we have a call that returns ",(0,r.jsx)(s.code,{children:'{ "user": { "items": [...], ... } ... }'})," we can use ",(0,r.jsx)(s.code,{children:'"{{.user.items}}"'}),", to extract the ",(0,r.jsx)(s.code,{children:"items"}),"."]}),"\n",(0,r.jsxs)(s.li,{children:["EXAMPLE 2: if we have a call that returns ",(0,r.jsx)(s.code,{children:'{ "foo": "bar", "fizz": { "buzz": "eggs", ... }, ... }'})," we can use ",(0,r.jsx)(s.code,{children:'{ foo: "{{.foo}}", buzz: "{{.fizz.buzz}}" }'})]}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n userCompany(id: Int!): Company\n @http(\n url: "https://jsonplaceholder.typicode.com/users/{{.args.id}}"\n select: "{{.company}}"\n )\n userDetails(id: Int!): UserDetails\n @http(\n url: "https://jsonplaceholder.typicode.com/users/{{.args.id}}"\n select: {\n id: "{{.id}}"\n city: "{{.address.city}}"\n phone: "{{.phone}}"\n }\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"dedupe",children:"dedupe"}),"\n",(0,r.jsxs)(s.p,{children:["A boolean flag, if set to ",(0,r.jsx)(s.code,{children:"true"}),", will enable deduplication of IO operations to enhance performance. This flag prevents duplicate IO requests from being executed concurrently, reducing resource load. If not specified, this feature defaults to ",(0,r.jsx)(s.code,{children:"false"}),"."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'@http(\n url: "https://jsonplaceholder.typicode.com/users/"\n dedupe: true\n)\n'})}),"\n",(0,r.jsx)(s.h2,{id:"batching-with-post-requests",children:"Batching with POST Requests"}),"\n",(0,r.jsx)(s.p,{children:"In some cases, your batch API might use a POST request that accepts a list of items for processing. Tailcall can batch these requests similarly to how it handles GET requests, but instead of sending the input in query parameters, it sends them in the request body."}),"\n",(0,r.jsx)(s.h3,{id:"mechanism",children:"Mechanism"}),"\n",(0,r.jsx)(s.p,{children:"When Tailcall receives multiple POST requests that share the same endpoint but have different parameters, it:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsx)(s.li,{children:"Collects these requests"}),"\n",(0,r.jsx)(s.li,{children:"Transforms them into a single POST request with an array of objects in the body"}),"\n",(0,r.jsx)(s.li,{children:"Sends this consolidated request to the upstream service"}),"\n",(0,r.jsx)(s.li,{children:"Maps the responses back to individual results"}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"configuration",children:"Configuration"}),"\n",(0,r.jsx)(s.p,{children:"To enable batching, configure your schema as follows:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",children:'type Query {\n posts: [Post]\n @http(url: "https://jsonplaceholder.typicode.com/posts")\n}\n\ntype Post {\n id: ID!\n name: String!\n user: User!\n @http(\n url: "https://jsonplaceholder.typicode.com/users"\n method: POST\n body: {\n userId: "{{.value.userId}}"\n staticValue: "static"\n }\n batchKey: ["userId"]\n )\n}\n\ntype User {\n id: ID!\n name: String!\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In this example, the ",(0,r.jsx)(s.code,{children:"posts"})," query fetches a list of posts, and the ",(0,r.jsx)(s.code,{children:"user"})," field fetches user details for each post. The ",(0,r.jsx)(s.code,{children:"batchKey"})," parameter groups the user requests into a single POST request, enhancing efficiency."]}),"\n",(0,r.jsx)(s.p,{children:"Let's say your GraphQL query needs to fetch user details for multiple posts:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",children:"query {\n posts {\n id\n name\n user {\n id\n name\n }\n }\n}\n"})}),"\n",(0,r.jsx)(s.p,{children:"The posts endpoint returns:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-json",children:'[\n {\n "id": 1,\n "name": "post-1",\n "userId": 1\n },\n {\n "id": 2,\n "name": "post-2",\n "userId": 2\n }\n]\n'})}),"\n",(0,r.jsx)(s.p,{children:"Instead of making separate POST requests for each user, Tailcall will batch them into a single request:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:'POST https://jsonplaceholder.typicode.com/users\nContent-Type: application/json\nBody:\n[\n {\n "userId": 1,\n "staticValue": "static"\n },\n {\n "userId": 2,\n "staticValue": "static"\n }\n]\n'})}),"\n",(0,r.jsx)(s.h3,{id:"current-limitations",children:"Current Limitations"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Currently, supports only one dynamic parameter per batched request"}),"\n",(0,r.jsx)(s.li,{children:"All requests in a batch must share the same endpoint and method"}),"\n",(0,r.jsxs)(s.li,{children:["The dynamic parameter must be referenced using the ",(0,r.jsx)(s.code,{children:"{{.value.fieldName}}"})," syntax"]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"combining-multiple-directives",children:"Combining Multiple Directives"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"@http"})," directive can be used in combination with other ",(0,r.jsx)(s.a,{href:"/docs/tailcall-dsl-graphql-custom-directives#resolvable-directives",children:"resolvable directives"}),", with results merged deeply. This allows for powerful and flexible resolver configurations."]}),"\n",(0,r.jsxs)(s.p,{children:["For more details, see ",(0,r.jsx)(s.a,{href:"/docs/tailcall-dsl-graphql-custom-directives",children:"Directives Documentation"}),"."]})]})}function h(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},28453:(e,s,n)=>{n.d(s,{R:()=>l,x:()=>a});var t=n(96540);const r={},i=t.createContext(r);function l(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8fdf8779.bac05a75.js b/assets/js/8fdf8779.bac05a75.js deleted file mode 100644 index 2c317c2b1..000000000 --- a/assets/js/8fdf8779.bac05a75.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[5944],{23415:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>l,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"directives/http","title":"@http","description":"The @http directive indicates a field or node relies on a REST API.","source":"@site/docs/directives/http.md","sourceDirName":"directives","slug":"/http-directive","permalink":"/docs/http-directive","draft":false,"unlisted":false,"editUrl":"https://github.com/tailcallhq/tailcallhq.github.io/tree/develop/docs/directives/http.md","tags":[],"version":"current","lastUpdatedAt":1732818775000,"frontMatter":{"title":"@http","description":"The @http directive indicates a field or node relies on a REST API.","slug":"../http-directive"},"sidebar":"docs","previous":{"title":"@grpc","permalink":"/docs/grpc-directive"},"next":{"title":"@js","permalink":"/docs/js-directive"}}');var r=t(74848),i=t(28453);const l={title:"@http",description:"The @http directive indicates a field or node relies on a REST API.",slug:"../http-directive"},d=void 0,a={},o=[{value:"@http Directive Definition",id:"http-directive-definition",level:2},{value:"Example: Basic Usage of @http",id:"example-basic-usage-of-http",level:2},{value:"Directive Arguments",id:"directive-arguments",level:2},{value:"url",id:"url",level:3},{value:"method",id:"method",level:3},{value:"query",id:"query",level:3},{value:"Query Fields:",id:"query-fields",level:4},{value:"body",id:"body",level:3},{value:"headers",id:"headers",level:3},{value:"batchKey",id:"batchkey",level:3},{value:"onRequest",id:"onrequest",level:3},{value:"onResponseBody",id:"onresponsebody",level:3},{value:"select",id:"select",level:3},{value:"dedupe",id:"dedupe",level:3},{value:"Combining Multiple Directives",id:"combining-multiple-directives",level:2}];function c(e){const s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"@http"})," directive enables GraphQL fields to be resolved using REST API endpoints, simplifying the integration of external data sources."]}),"\n",(0,r.jsxs)(s.h2,{id:"http-directive-definition",children:[(0,r.jsx)(s.code,{children:"@http"})," Directive Definition"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:'title="Directive Definition" showLineNumbers',children:"directive @http(\n url: String!\n method: Method\n query: [InputKeyValue!]\n body: JSON\n headers: [InputKeyValue!]\n batchKey: [String!]\n onRequest: String\n onResponseBody: String\n select: JSON\n dedupe: Boolean\n) on FIELD_DEFINITION\n"})}),"\n",(0,r.jsxs)(s.h2,{id:"example-basic-usage-of-http",children:["Example: Basic Usage of ",(0,r.jsx)(s.code,{children:"@http"})]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n users: [User]\n @http(url: "https://jsonplaceholder.typicode.com/users")\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In this example, adding the ",(0,r.jsx)(s.code,{children:"@http"})," directive to the ",(0,r.jsx)(s.code,{children:"users"})," field of the ",(0,r.jsx)(s.code,{children:"Query"})," type indicates reliance on a REST API for the ",(0,r.jsx)(s.code,{children:"users"})," field. The ",(0,r.jsx)(s.a,{href:"#url",children:"url"})," argument specifies the REST API's url, which is ",(0,r.jsx)(s.code,{children:"https://jsonplaceholder.typicode.com/users"})," in this scenario. Querying the ",(0,r.jsx)(s.code,{children:"users"})," field prompts the GraphQL server to issue a GET request to ",(0,r.jsx)(s.code,{children:"https://jsonplaceholder.typicode.com/users"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"directive-arguments",children:"Directive Arguments"}),"\n",(0,r.jsx)(s.h3,{id:"url",children:"url"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"url"})," parameter defines the API endpoint. It can also contain dynamic segments with Mustache templates for variable substitution:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n user(id: ID!): User\n @http(\n url: "https://jsonplaceholder.typicode.com/users/{{.args.id}}"\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"method",children:"method"}),"\n",(0,r.jsxs)(s.p,{children:["Specifies the HTTP method for the request. Defaults to ",(0,r.jsx)(s.code,{children:"GET"})," if not specified:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Mutation {\n createUser(input: UserInput!): User\n @http(\n method: "POST"\n url: "https://jsonplaceholder.typicode.com/users"\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"query",children:"query"}),"\n",(0,r.jsx)(s.p,{children:"Represents the API call's query parameters, either as a static object or with dynamic parameters using Mustache templates. These parameters append to the URL."}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n userPosts(id: ID!): [Post]\n @http(\n url: "https://jsonplaceholder.typicode.com/posts"\n query: [\n {\n key: "userId"\n value: "{{.args.id}}"\n skipEmpty: false\n }\n ]\n )\n}\n'})}),"\n",(0,r.jsx)(s.h4,{id:"query-fields",children:"Query Fields:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"key"})," : Represents the name of the query parameter."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"value"})," : A string literal or a mustache template representing the value of query parameter."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"skipEmpty"})," : When set to ",(0,r.jsx)(s.code,{children:"true"})," the query parameter is skipped if the value of the parameter is null, defaults to false."]}),"\n"]}),"\n",(0,r.jsx)(s.admonition,{type:"important",children:(0,r.jsxs)(s.p,{children:["When ",(0,r.jsx)(s.code,{children:"batchKey"})," is present, Tailcall considers the first ",(0,r.jsx)(s.code,{children:"query"})," parameter to be the batch query key, so remember to adjust the order of the items accordingly."]})}),"\n",(0,r.jsx)(s.h3,{id:"body",children:"body"}),"\n",(0,r.jsx)(s.p,{children:"Defines the API call's body, necessary for methods like POST or PUT. Pass it as a static object or use Mustache templates for variable substitution from the GraphQL variables."}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Mutation {\n createUser(input: UserInput!): User\n @http(\n method: "POST"\n url: "https://jsonplaceholder.typicode.com/users"\n body: "{{.args.input}}"\n )\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In the example above, the ",(0,r.jsx)(s.code,{children:"createUser"})," mutation sends a POST request to ",(0,r.jsx)(s.code,{children:"/users"}),", with the input object converted to JSON and included in the request body."]}),"\n",(0,r.jsx)(s.h3,{id:"headers",children:"headers"}),"\n",(0,r.jsxs)(s.p,{children:["Customizes the HTTP request headers made by the ",(0,r.jsx)(s.code,{children:"@http"})," directive. Specify a key-value map of header names and values."]}),"\n",(0,r.jsx)(s.p,{children:"For instance:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Mutation {\n createUser(input: UserInput!): User\n @http(\n url: "https://jsonplaceholder.typicode.com/users"\n headers: [{key: "X-Server", value: "Tailcall"}]\n )\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In this example, a request to ",(0,r.jsx)(s.code,{children:"/users"})," will include a HTTP header ",(0,r.jsx)(s.code,{children:"X-Server"})," with the value ",(0,r.jsx)(s.code,{children:"Tailcall"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["You can make use of mustache templates to provide dynamic values for headers, derived from the arguments or ",(0,r.jsx)(s.a,{href:"/docs/graphql-resolver-context-tailcall",children:"context"})," provided in the request. For example:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Mutation {\n users(name: String): User\n @http(\n url: "https://jsonplaceholder.typicode.com/users"\n headers: [\n {key: "X-Server", value: "Tailcall"}\n {key: "User-Name", value: "{{.args.name}}"}\n ]\n )\n}\n'})}),"\n",(0,r.jsxs)(s.p,{children:["In this scenario, the ",(0,r.jsx)(s.code,{children:"User-Name"})," header's value will dynamically adjust according to the ",(0,r.jsx)(s.code,{children:"name"})," argument passed in the request."]}),"\n",(0,r.jsx)(s.h3,{id:"batchkey",children:"batchKey"}),"\n",(0,r.jsxs)(s.p,{children:["Groups data requests into a single call, enhancing efficiency. Refer to our ",(0,r.jsx)(s.a,{href:"/docs/graphql-n-plus-one-problem-solved-tailcall",children:"n + 1 guide"})," for more details."]}),"\n",(0,r.jsx)(s.admonition,{type:"important",children:(0,r.jsxs)(s.p,{children:["When ",(0,r.jsx)(s.code,{children:"batchKey"})," is present, Tailcall considers the first ",(0,r.jsx)(s.code,{children:"query"})," parameter to be the batch query key, so remember to adjust the order of the items accordingly. Whereas, the last item from ",(0,r.jsx)(s.code,{children:"batchKey"})," is used to instruct which field is the ID of an object. In case that the returned result is a nested property ",(0,r.jsx)(s.code,{children:"batchKey"})," can be used as a path to extract and group the items for the returned result."]})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Post {\n id: Int!\n name: String!\n user: User\n @http(\n url: "https://jsonplaceholder.typicode.com/users"\n query: [{key: "user_id", value: "{{.value.userId}}"}]\n batchKey: ["users", "id"]\n )\n}\n'})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:'query: {key: "user_id", value: "{{.value.userId}}"}]'}),": Instructs Tailcall CLI to generate a URL aligning the user id with ",(0,r.jsx)(s.code,{children:"userId"})," from the parent ",(0,r.jsx)(s.code,{children:"Post"}),", compiling a single URL for a batch of posts, such as ",(0,r.jsx)(s.code,{children:"/users?user_id=1&user_id=2&user_id=3...user_id=10"}),", consolidating requests into one."]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"onrequest",children:"onRequest"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"onRequest"})," property accepts a string value representing the remote function to be called every time an HTTP request is initiated. Typically the remote function is defined in a linked JavaScript worker file."]}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["For defining a request middleware globally for all requests, refer to the ",(0,r.jsx)(s.a,{href:"/docs/upstream-directive#onrequest",children:"upstream directive documentation"}),"."]})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n userPosts(id: ID!): [Post]\n @http(\n url: "https://jsonplaceholder.typicode.com/posts"\n query: [{key: "userId", value: "{{.args.id}}"}]\n onRequest: "someFunctionName"\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"onresponsebody",children:"onResponseBody"}),"\n",(0,r.jsxs)(s.p,{children:["This hook allows you to intercept and modify the response body from upstream services before it's processed by Tailcall. Like ",(0,r.jsx)(s.a,{href:"#onrequest",children:"onRequest"}),", it accepts a string value representing a middleware function defined in a JavaScript file. This function can be used to transform or validate the response data."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n user(id: Int!): User\n @http(\n url: "https://jsonplaceholder.typicode.com/users/{{.args.id}}"\n onResponseBody: "onResponse"\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"select",children:"select"}),"\n",(0,r.jsxs)(s.p,{children:["You can use ",(0,r.jsx)(s.code,{children:"select"})," with mustache syntax to re-construct the directives\nresponse to the desired format. This is useful when data are deeply\nnested or want to keep specific fields only from the response."]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["EXAMPLE 1: if we have a call that returns ",(0,r.jsx)(s.code,{children:'{ "user": { "items": [...], ... } ... }'})," we can use ",(0,r.jsx)(s.code,{children:'"{{.user.items}}"'}),", to extract the ",(0,r.jsx)(s.code,{children:"items"}),"."]}),"\n",(0,r.jsxs)(s.li,{children:["EXAMPLE 2: if we have a call that returns ",(0,r.jsx)(s.code,{children:'{ "foo": "bar", "fizz": { "buzz": "eggs", ... }, ... }'})," we can use ",(0,r.jsx)(s.code,{children:'{ foo: "{{.foo}}", buzz: "{{.fizz.buzz}}" }'})]}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'type Query {\n userCompany(id: Int!): Company\n @http(\n url: "https://jsonplaceholder.typicode.com/users/{{.args.id}}"\n select: "{{.company}}"\n )\n userDetails(id: Int!): UserDetails\n @http(\n url: "https://jsonplaceholder.typicode.com/users/{{.args.id}}"\n select: {\n id: "{{.id}}"\n city: "{{.address.city}}"\n phone: "{{.phone}}"\n }\n )\n}\n'})}),"\n",(0,r.jsx)(s.h3,{id:"dedupe",children:"dedupe"}),"\n",(0,r.jsxs)(s.p,{children:["A boolean flag, if set to ",(0,r.jsx)(s.code,{children:"true"}),", will enable deduplication of IO operations to enhance performance. This flag prevents duplicate IO requests from being executed concurrently, reducing resource load. If not specified, this feature defaults to ",(0,r.jsx)(s.code,{children:"false"}),"."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-graphql",metastring:"showLineNumbers",children:'@http(\n url: "https://jsonplaceholder.typicode.com/users/"\n dedupe: true\n)\n'})}),"\n",(0,r.jsx)(s.h2,{id:"combining-multiple-directives",children:"Combining Multiple Directives"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"@http"})," directive can be used in combination with other ",(0,r.jsx)(s.a,{href:"/docs/tailcall-dsl-graphql-custom-directives#resolvable-directives",children:"resolvable directives"}),", with results merged deeply. This allows for powerful and flexible resolver configurations."]}),"\n",(0,r.jsxs)(s.p,{children:["For more details, see ",(0,r.jsx)(s.a,{href:"/docs/tailcall-dsl-graphql-custom-directives",children:"Directives Documentation"}),"."]})]})}function h(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},28453:(e,s,t)=>{t.d(s,{R:()=>l,x:()=>d});var n=t(96540);const r={},i=n.createContext(r);function l(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.3c2e1038.js b/assets/js/main.eb9a9bb6.js similarity index 99% rename from assets/js/main.3c2e1038.js rename to assets/js/main.eb9a9bb6.js index a2306ca7d..f34c18f3e 100644 --- a/assets/js/main.3c2e1038.js +++ b/assets/js/main.eb9a9bb6.js @@ -1,2 +1,2 @@ -/*! For license information please see main.3c2e1038.js.LICENSE.txt */ -(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[8792],{55600:(e,t,n)=>{"use strict";n.d(t,{Bc:()=>O,E8:()=>Kn,a1:()=>Zn});var r=n(96540);n(40961);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0;--o){var i=this.tryEntries[o],l=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(s&&c){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;T(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],s=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw a}}return l}}(e,t)||k(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}function x(e){var t="function"==typeof Map?new Map:void 0;return x=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(g())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var a=new(e.bind.apply(e,r));return n&&y(a,n.prototype),a}(e,arguments,p(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),y(n,e)},x(e)}function S(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function E(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var C=["translations"],j="Ctrl",O=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=v(e,C),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,c=void 0===s?"Search":s,u=A((0,r.useState)(null),2),p=u[0],f=u[1];(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(j))}),[]);var g=A(p===j?[j,"Ctrl",r.createElement(S,null)]:["Meta","Command",p],3),h=g[0],m=g[1],b=g[2];return r.createElement("button",d({type:"button",className:"DocSearch DocSearch-Button","aria-label":"".concat(c," (").concat(m,"+K)")},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(E,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==p&&r.createElement(r.Fragment,null,r.createElement(P,{reactsToKey:h},b),r.createElement(P,{reactsToKey:"k"},"K"))))}));function P(e){var t=e.reactsToKey,n=e.children,a=A((0,r.useState)(!1),2),o=a[0],i=a[1];return(0,r.useEffect)((function(){if(t)return window.addEventListener("keydown",e),window.addEventListener("keyup",n),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",n)};function e(e){e.key===t&&i(!0)}function n(e){e.key!==t&&"Meta"!==e.key||i(!1)}}),[t]),r.createElement("kbd",{className:o?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},n)}function T(e,t){var n=void 0;return function(){for(var r=arguments.length,a=new Array(r),o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Y(e){for(var t=1;t=3||2===n&&r>=4||1===n&&r>=10);function o(t,n,r){if(a&&void 0!==r){var o=r[0].__autocomplete_algoliaCredentials,i={"X-Algolia-Application-Id":o.appId,"X-Algolia-API-Key":o.apiKey};e.apply(void 0,[t].concat(_(n),[{headers:i}]))}else e.apply(void 0,[t].concat(_(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&o("clickedObjectIDsAfterSearch",G(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&o("clickedObjectIDs",G(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&o("convertedObjectIDsAfterSearch",G(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&o("convertedObjectIDs",G(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=X(t,F);return[].concat(_(e),_(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function K(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function J(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function $(e){return $="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$(e)}function ee(e){return function(e){if(Array.isArray(e))return te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return te(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?te(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&le({onItemsChange:a,items:n,insights:c,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive,a=!1;function u(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:re(re({},l?{clickAnalytics:!0}:{}),e?{userToken:ue(e)}:{}),insights:c}})}s("addAlgoliaAgent","insights-plugin"),u(),s("onUserTokenChange",(function(e){a||u(e)})),s("getUserToken",null,(function(e,t){a||u(t)})),s("onAuthenticatedUserTokenChange",(function(e){e?(a=!0,u(e)):(a=!1,s("getUserToken",null,(function(e,t){return u(t)})))})),s("getAuthenticatedUserToken",null,(function(e,t){t&&(a=!0,u(t))})),n((function(e){var t=e.item,n=e.state,r=e.event,a=e.source;J(t)&&o({state:n,event:r,insights:c,item:t,insightsEvents:[re({eventName:"Item Selected"},B({item:t,items:a.getItems().filter(J)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,a=e.event;J(t)&&i({state:r,event:a,insights:c,item:t,insightsEvents:[re({eventName:"Item Active"},B({item:t,items:n.getItems().filter(J)}))]})}))},onStateChange:function(e){var t=e.state;d({state:t})},__autocomplete_pluginOptions:e}}function ce(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(ee(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),["autocomplete-internal"],ee(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function ue(e){return"number"==typeof e?e.toString():e}function de(e,t){var n=t;return{then:function(t,r){return de(e.then(fe(t,n,e),fe(r,n,e)),n)},catch:function(t){return de(e.catch(fe(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),de(e.finally(fe(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function pe(e){return de(e,{isCanceled:!1,onCancelList:[]})}function fe(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function ge(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var a=(null===t?-1:t)+e;return a<=-1||a>=n?null===r?null:0:a}function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function me(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:"autocomplete-".concat(I++),plugins:a,initialState:qe({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(function(e){return function(e){if(Array.isArray(e))return Le(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Le(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Le(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(a.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:W,onResolve:W};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=me(me({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return L(e)})).then((function(e){return e.map((function(e){return qe(qe({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:qe({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function We(e){return We="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},We(e)}function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Be(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,Ge);nt&&a.environment.clearTimeout(nt);var c=s.setCollections,u=s.setIsOpen,d=s.setQuery,p=s.setActiveItemId,f=s.setStatus,g=s.setContext;if(d(o),p(a.defaultActiveItemId),!o&&!1===a.openOnFocus){var h,m=l.getState().collections.map((function(e){return Ke(Ke({},e),{},{items:[]})}));f("idle"),c(m),u(null!==(h=r.isOpen)&&void 0!==h?h:a.shouldPanelOpen({state:l.getState()}));var v=pe(rt(m).then((function(){return Promise.resolve()})));return l.pendingRequests.add(v)}f("loading"),nt=a.environment.setTimeout((function(){f("stalled")}),a.stallThreshold);var b=pe(rt(a.getSources(Ke({query:o,refresh:i,state:l.getState()},s)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(Ke({query:o,refresh:i,state:l.getState()},s))).then((function(t){return function(e,t,n){if(a=e,Boolean(null==a?void 0:a.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(Ve(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return Ue(Ue({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?Ue(Ue({},n),{},{params:Ue(Ue({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var a;return{items:e,sourceId:t}}(t,e.sourceId,l.getState())}))}))).then(Ye).then((function(t){var n,r=t.some((function(e){return function(e){return!Array.isArray(e)&&Boolean(null==e?void 0:e._automaticInsights)}(e.items)}));return r&&g({algoliaInsightsPlugin:Ke(Ke({},(null===(n=l.getState().context)||void 0===n?void 0:n.algoliaInsightsPlugin)||{}),{},{__automaticInsights:r})}),function(e,t,n){return t.map((function(t){var r,a=e.filter((function(e){return e.sourceId===t.sourceId})),o=a.map((function(e){return e.items})),i=a[0].transformResponse,l=i?i({results:r=o,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):o;return t.onResolve({source:t,results:o,items:l,state:n.getState()}),l.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:l}}))}(t,e,l)})).then((function(e){return function(e){var t=e.props,n=e.state,r=e.collections.reduce((function(e,t){return Be(Be({},e),{},De({},t.source.sourceId,Be(Be({},t.source),{},{getItems:function(){return L(t.items)}})))}),{}),a=t.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:r,state:n}).sourcesBySourceId;return L(t.reshape({sourcesBySourceId:a,sources:Object.values(a),state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:a,state:l.getState()})}))})))).then((function(e){var n;f("idle"),c(e);var d=a.shouldPanelOpen({state:l.getState()});u(null!==(n=r.isOpen)&&void 0!==n?n:a.openOnFocus&&!o&&d||d);var p=ye(l.getState());if(null!==l.getState().activeItemId&&p){var g=p.item,h=p.itemInputValue,m=p.itemUrl,v=p.source;v.onActive(Ke({event:t,item:g,itemInputValue:h,itemUrl:m,refresh:i,source:v,state:l.getState()},s))}})).finally((function(){f("idle"),nt&&a.environment.clearTimeout(nt)}));return l.pendingRequests.add(b)}function ot(e){return ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ot(e)}var it=["event","props","refresh","store"];function lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function st(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function wt(e){var t=e.props,n=e.refresh,r=e.store,a=At(e,dt);return{getEnvironmentProps:function(e){var n=e.inputElement,a=e.formElement,o=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[a,o].some((function(t){return(n=t)===(r=e.target)||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return bt({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},At(e,pt))},getRootProps:function(e){return bt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Ae(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Ae(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,bt({action:"",noValidate:!0,role:"search",onSubmit:function(o){var i;o.preventDefault(),t.onSubmit(bt({event:o,refresh:n,state:r.getState()},a)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(o){var i;o.preventDefault(),t.onReset(bt({event:o,refresh:n,state:r.getState()},a)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},At(e,ft))},getLabelProps:function(e){return bt({htmlFor:Ae(t.id,"input"),id:Ae(t.id,"label")},e)},getInputProps:function(e){var o;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&at(bt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},a)),r.dispatch("focus",null)}var l=e||{};l.inputElement;var s=l.maxLength,c=void 0===s?512:s,u=At(l,gt),d=ye(r.getState()),p=function(e){return Boolean(e&&e.match(we))}((null===(o=t.environment.navigator)||void 0===o?void 0:o.userAgent)||""),f=t.enterKeyHint||(null!=d&&d.itemUrl&&!p?"go":"search");return bt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?Ae(t.id,"item-".concat(r.getState().activeItemId),null==d?void 0:d.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Ae(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Ae(t.id,"label"),value:r.getState().completion||r.getState().query,id:Ae(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:f,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){var o=e.currentTarget.value;t.ignoreCompositionEvents&&ke(e).isComposing?a.setQuery(o):at(bt({event:e,props:t,query:o.slice(0,c),refresh:n,store:r},a))},onCompositionEnd:function(e){at(bt({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},a))},onKeyDown:function(e){ke(e).isComposing||function(e){var t=e.event,n=e.props,r=e.refresh,a=e.store,o=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,it);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=ye(a.getState()),t=n.environment.document.getElementById(Ae(n.id,"item-".concat(a.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},l=function(){var e=ye(a.getState());if(null!==a.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,l=e.itemUrl,s=e.source;s.onActive(st({event:t,item:n,itemInputValue:i,itemUrl:l,refresh:r,source:s,state:a.getState()},o))}};t.preventDefault(),!1===a.getState().isOpen&&(n.openOnFocus||Boolean(a.getState().query))?at(st({event:t,props:n,query:a.getState().query,refresh:r,store:a},o)).then((function(){a.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),l(),setTimeout(i,0)})):(a.dispatch(t.key,{}),l(),i())}else if("Escape"===t.key)t.preventDefault(),a.dispatch(t.key,null),a.pendingRequests.cancelAll();else if("Tab"===t.key)a.dispatch("blur",null),a.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===a.getState().activeItemId||a.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||a.pendingRequests.cancelAll());t.preventDefault();var s=ye(a.getState()),c=s.item,u=s.itemInputValue,d=s.itemUrl,p=s.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(p.onSelect(st({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:a.getState()},o)),n.navigator.navigateNewTab({itemUrl:d,item:c,state:a.getState()}));else if(t.shiftKey)void 0!==d&&(p.onSelect(st({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:a.getState()},o)),n.navigator.navigateNewWindow({itemUrl:d,item:c,state:a.getState()}));else if(t.altKey);else{if(void 0!==d)return p.onSelect(st({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:a.getState()},o)),void n.navigator.navigate({itemUrl:d,item:c,state:a.getState()});at(st({event:t,nextState:{isOpen:!1},props:n,query:u,refresh:r,store:a},o)).then((function(){p.onSelect(st({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:a.getState()},o))}))}}}(bt({event:e,props:t,refresh:n,store:r},a))},onFocus:i,onBlur:W,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},u)},getPanelProps:function(e){return bt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,a=At(n,ht);return bt({role:"listbox","aria-labelledby":Ae(t.id,"label"),id:Ae(t.id,"list",r)},a)},getItemProps:function(e){var o=e.item,i=e.source,l=At(e,mt);return bt({id:Ae(t.id,"item-".concat(o.__autocomplete_id),i),role:"option","aria-selected":r.getState().activeItemId===o.__autocomplete_id,onMouseMove:function(e){if(o.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",o.__autocomplete_id);var t=ye(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,l=t.itemInputValue,s=t.itemUrl,c=t.source;c.onActive(bt({event:e,item:i,itemInputValue:l,itemUrl:s,refresh:n,source:c,state:r.getState()},a))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var l=i.getItemInputValue({item:o,state:r.getState()}),s=i.getItemUrl({item:o,state:r.getState()});(s?Promise.resolve():at(bt({event:e,nextState:{isOpen:!1},props:t,query:l,refresh:n,store:r},a))).then((function(){i.onSelect(bt({event:e,item:o,itemInputValue:l,itemUrl:s,refresh:n,source:i,state:r.getState()},a))}))}},l)}}}function kt(e){return kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kt(e)}function xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function St(e){for(var t=1;t0&&r.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},r.createElement("p",{className:"DocSearch-Help"},s,":"),r.createElement("ul",null,f.slice(0,3).reduce((function(e,t){return[].concat(w(e),[r.createElement("li",{key:t},r.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){a.setQuery(t.toLowerCase()+" "),a.refresh(),a.inputRef.current.focus()}},t))])}),[]))),a.getMissingResultsUrl&&r.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),r.createElement("a",{href:a.getMissingResultsUrl({query:a.state.query}),target:"_blank",rel:"noopener noreferrer"},p)))}var nn=["hit","attribute","tagName"];function rn(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function an(e){var t=e.hit,n=e.attribute,a=e.tagName,o=void 0===a?"span":a,i=v(e,nn);return(0,r.createElement)(o,m(m({},i),{},{dangerouslySetInnerHTML:{__html:rn(t,"_snippetResult.".concat(n,".value"))||rn(t,n)}}))}function on(e){return e.collection&&0!==e.collection.items.length?r.createElement("section",{className:"DocSearch-Hits"},r.createElement("div",{className:"DocSearch-Hit-source"},e.title),r.createElement("ul",e.getListProps(),e.collection.items.map((function(t,n){return r.createElement(ln,d({key:[e.title,t.objectID].join(":"),item:t,index:n},e))})))):null}function ln(e){var t=e.item,n=e.index,a=e.renderIcon,o=e.renderAction,i=e.getItemProps,l=e.onItemClick,s=e.collection,c=e.hitComponent,u=A(r.useState(!1),2),p=u[0],f=u[1],g=A(r.useState(!1),2),h=g[0],m=g[1],v=r.useRef(null),b=c;return r.createElement("li",d({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",p&&"DocSearch-Hit--deleting",h&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){v.current&&v.current()}},i({item:t,source:s.source,onClick:function(e){l(t,e)}})),r.createElement(b,{hit:t},r.createElement("div",{className:"DocSearch-Hit-Container"},a({item:t,index:n}),t.hierarchy[t.type]&&"lvl1"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(an,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&r.createElement(an,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(an,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),r.createElement(an,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(an,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),r.createElement(an,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),o({item:t,runDeleteTransition:function(e){f(!0),v.current=e},runFavoriteTransition:function(e){m(!0),v.current=e}}))))}function sn(e,t,n){return e.reduce((function(e,r){var a=t(r);return e.hasOwnProperty(a)||(e[a]=[]),e[a].length<(n||5)&&e[a].push(r),e}),{})}function cn(e){return e}function un(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function dn(){}var pn=/(|<\/mark>)/g,fn=RegExp(pn.source);function gn(e){var t,n,r=e;if(!r.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var a=r.__docsearch_parent?null===(t=r.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(n=e._highlightResult)||void 0===n||null===(n=n.hierarchy)||void 0===n?void 0:n.lvl0;return a?a.value&&fn.test(a.value)?a.value.replace(pn,""):a.value:e.hierarchy.lvl0}function hn(e){return r.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var n=gn(t.items[0]);return r.createElement(on,d({},e,{key:t.source.sourceId,title:n,collection:t,renderIcon:function(e){var n,a=e.item,o=e.index;return r.createElement(r.Fragment,null,a.__docsearch_parent&&r.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},r.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.__docsearch_parent!==(null===(n=t.items[o+1])||void 0===n?void 0:n.__docsearch_parent)?r.createElement("path",{d:"M8 6v21M20 27H8.3"}):r.createElement("path",{d:"M8 6v42M20 27H8.3"}))),r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Yt,{type:a.type})))},renderAction:function(){return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement(Xt,null))}}))})),e.resultsFooterComponent&&r.createElement("section",{className:"DocSearch-HitsFooter"},r.createElement(e.resultsFooterComponent,{state:e.state})))}var mn=["translations"];function vn(e){var t=e.translations,n=void 0===t?{}:t,a=v(e,mn),o=n.recentSearchesTitle,i=void 0===o?"Recent":o,l=n.noRecentSearchesText,s=void 0===l?"No recent searches":l,c=n.saveRecentSearchButtonTitle,u=void 0===c?"Save this search":c,p=n.removeRecentSearchButtonTitle,f=void 0===p?"Remove this search from history":p,g=n.favoriteSearchesTitle,h=void 0===g?"Favorite":g,m=n.removeFavoriteSearchButtonTitle,b=void 0===m?"Remove this search from favorites":m;return"idle"===a.state.status&&!1===a.hasCollections?a.disableUserPersonalization?null:r.createElement("div",{className:"DocSearch-StartScreen"},r.createElement("p",{className:"DocSearch-Help"},s)):!1===a.hasCollections?null:r.createElement("div",{className:"DocSearch-Dropdown-Container"},r.createElement(on,d({},a,{title:i,collection:a.state.collections[0],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(_t,null))},renderAction:function(e){var t=e.item,n=e.runFavoriteTransition,o=e.runDeleteTransition;return r.createElement(r.Fragment,null,r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){a.favoriteSearches.add(t),a.recentSearches.remove(t),a.refresh()}))}},r.createElement(Zt,null))),r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){a.recentSearches.remove(t),a.refresh()}))}},r.createElement(Vt,null))))}})),r.createElement(on,d({},a,{title:h,collection:a.state.collections[1],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Zt,null))},renderAction:function(e){var t=e.item,n=e.runDeleteTransition;return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:b,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){a.favoriteSearches.remove(t),a.refresh()}))}},r.createElement(Vt,null)))}})))}var bn=["translations"],yn=r.memo((function(e){var t=e.translations,n=void 0===t?{}:t,a=v(e,bn);if("error"===a.state.status)return r.createElement($t,{translations:null==n?void 0:n.errorScreen});var o=a.state.collections.some((function(e){return e.items.length>0}));return a.state.query?!1===o?r.createElement(tn,d({},a,{translations:null==n?void 0:n.noResultsScreen})):r.createElement(hn,a):r.createElement(vn,d({},a,{hasCollections:o,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),An=["translations"];function wn(e){var t=e.translations,n=void 0===t?{}:t,a=v(e,An),o=n.resetButtonTitle,i=void 0===o?"Clear the query":o,l=n.resetButtonAriaLabel,s=void 0===l?"Clear the query":l,c=n.cancelButtonText,u=void 0===c?"Cancel":c,p=n.cancelButtonAriaLabel,f=void 0===p?"Cancel":p,g=n.searchInputLabel,h=void 0===g?"Search":g,m=a.getFormProps({inputElement:a.inputRef.current}).onReset;return r.useEffect((function(){a.autoFocus&&a.inputRef.current&&a.inputRef.current.focus()}),[a.autoFocus,a.inputRef]),r.useEffect((function(){a.isFromSelection&&a.inputRef.current&&a.inputRef.current.select()}),[a.isFromSelection,a.inputRef]),r.createElement(r.Fragment,null,r.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},r.createElement("label",d({className:"DocSearch-MagnifierLabel"},a.getLabelProps()),r.createElement(E,null),r.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},h)),r.createElement("div",{className:"DocSearch-LoadingIndicator"},r.createElement(Ut,null)),r.createElement("input",d({className:"DocSearch-Input",ref:a.inputRef},a.getInputProps({inputElement:a.inputRef.current,autoFocus:a.autoFocus,maxLength:64}))),r.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":s,hidden:!a.state.query},r.createElement(Vt,null))),r.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:a.onClose},u))}var kn=["_highlightResult","_snippetResult"];function xn(e){var t=e.key,n=e.limit,r=void 0===n?5:n,a=function(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}(t),o=a.getItem().slice(0,r);return{add:function(e){var t=e;t._highlightResult,t._snippetResult;var n=v(t,kn),i=o.findIndex((function(e){return e.objectID===n.objectID}));i>-1&&o.splice(i,1),o.unshift(n),o=o.slice(0,r),a.setItem(o)},remove:function(e){o=o.filter((function(t){return t.objectID!==e.objectID})),a.setItem(o)},getAll:function(){return o}}}function Sn(e){var t,n="algolia-client-js-".concat(e.key);function r(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function a(){return JSON.parse(r().getItem(n)||"{}")}function o(e){r().setItem(n,JSON.stringify(e))}return{get:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var n,r,i;return n=e.timeToLive?1e3*e.timeToLive:null,r=a(),o(i=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==A(e,2)[1].timestamp})))),n&&o(Object.fromEntries(Object.entries(i).filter((function(e){var t=A(e,2)[1],r=(new Date).getTime();return!(t.timestamp+n2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,n.miss(e)])})).then((function(e){return A(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(e,r,a).catch((function(){return En({caches:t}).get(e,r,a)}))},set:function(e,r){return n.set(e,r).catch((function(){return En({caches:t}).set(e,r)}))},delete:function(e){return n.delete(e).catch((function(){return En({caches:t}).delete(e)}))},clear:function(){return n.clear().catch((function(){return En({caches:t}).clear()}))}}}function Cn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(n,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(n);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);var i=r();return i.then((function(e){return a.miss(e)})).then((function(){return i}))},set:function(n,r){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function jn(e){var t=e.algoliaAgents,n=e.client,r=e.version,a=function(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var n="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(n)&&(t.value="".concat(t.value).concat(n)),t}};return t}(r).add({segment:n,version:r});return t.forEach((function(e){return a.add(e)})),a}var On=12e4;function Pn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"up",n=Date.now();return m(m({},e),{},{status:t,lastUpdate:n,isUp:function(){return"up"===t||Date.now()-n>On},isTimedOut:function(){return"timed out"===t&&Date.now()-n<=On}})}var Tn=function(){function e(t,n){var r;return s(this,e),u(r=l(this,e,[t]),"name","AlgoliaError"),n&&(r.name=n),r}return f(e,x(Error)),c(e)}(),Ln=function(){function e(t,n,r){var a;return s(this,e),u(a=l(this,e,[t,r]),"stackTrace",void 0),a.stackTrace=n,a}return f(e,Tn),c(e)}(),In=function(){function e(t){return s(this,e),l(this,e,["Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError"])}return f(e,Ln),c(e)}(),qn=function(){function e(t,n,r){var a,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ApiError";return s(this,e),u(a=l(this,e,[t,r,o]),"status",void 0),a.status=n,a}return f(e,Ln),c(e)}(),Nn=function(){function e(t,n){var r;return s(this,e),u(r=l(this,e,[t,"DeserializationError"]),"response",void 0),r.response=n,r}return f(e,Tn),c(e)}(),Rn=function(){function e(t,n,r,a){var o;return s(this,e),u(o=l(this,e,[t,n,a,"DetailedApiError"]),"error",void 0),o.error=r,o}return f(e,qn),c(e)}();function Wn(e,t,n){var r,a=(r=n,Object.keys(r).filter((function(e){return void 0!==r[e]})).sort().map((function(e){return"".concat(e,"=").concat(encodeURIComponent("[object Array]"===Object.prototype.toString.call(r[e])?r[e].join(","):r[e]).replace(/\+/g,"%20"))})).join("&")),o="".concat(e.protocol,"://").concat(e.url).concat(e.port?":".concat(e.port):"","/").concat("/"===t.charAt(0)?t.substring(1):t);return a.length&&(o+="?".concat(a)),o}function Mn(e,t){if("GET"!==e.method&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:m(m({},e.data),t.data);return JSON.stringify(n)}}function Bn(e,t,n){var r=m(m(m({Accept:"application/json"},e),t),n),a={};return Object.keys(r).forEach((function(e){var t=r[e];a[e.toLowerCase()]=t})),a}function Dn(e){try{return JSON.parse(e.content)}catch(t){throw new Nn(t.message,e)}}function zn(e,t){var n=e.content,r=e.status;try{var a=JSON.parse(n);return"error"in a?new Rn(a.message,r,a.error,t):new qn(a.message,r,t)}catch(e){}return new qn(n,r,t)}function Fn(e){return e.map((function(e){return Un(e)}))}function Un(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return m(m({},e),{},{request:m(m({},e.request),{},{headers:m(m({},e.request.headers),t)})})}var _n=["appId","apiKey","authMode","algoliaAgents"],Vn=["params"],Xn="5.12.0";function Hn(e){return[{url:"".concat(e,"-dsn.algolia.net"),accept:"read",protocol:"https"},{url:"".concat(e,".algolia.net"),accept:"write",protocol:"https"}].concat(function(e){for(var t=e,n=e.length-1;n>0;n--){var r=Math.floor(Math.random()*(n+1)),a=e[n];t[n]=e[r],t[r]=a}return t}([{url:"".concat(e,"-1.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-2.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-3.algolianet.com"),accept:"readWrite",protocol:"https"}]))}var Yn="3.8.0";function Qn(e,t,n){return r.useMemo((function(){var r=function(e,t,n){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!t||"string"!=typeof t)throw new Error("`apiKey` is missing.");return function(e){var t=e.appId,n=e.apiKey,r=e.authMode,a=e.algoliaAgents,o=v(e,_n),l=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"WithinHeaders",r={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:function(){return"WithinHeaders"===n?r:{}},queryParameters:function(){return"WithinQueryParameters"===n?r:{}}}}(t,n,r),s=function(e){var t=e.hosts,n=e.hostsCache,r=e.baseHeaders,a=e.logger,o=e.baseQueryParameters,l=e.algoliaAgent,s=e.timeouts,c=e.requester,u=e.requestsCache,d=e.responsesCache;function p(e){return f.apply(this,arguments)}function f(){return(f=i(b().mark((function e(t){var r,a,o,i,l;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return n.get(e,(function(){return Promise.resolve(Pn(e))}))})));case 2:return r=e.sent,a=r.filter((function(e){return e.isUp()})),o=r.filter((function(e){return e.isTimedOut()})),i=[].concat(w(a),w(o)),l=i.length>0?i:t,e.abrupt("return",{hosts:l,getTimeout:function(e,t){return(0===o.length&&0===e?1:o.length+3+e)*t}});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function g(e,t){return h.apply(this,arguments)}function h(){return h=i(b().mark((function e(u,d){var f,g,h,v,y,A,k,x,S,E,C,j,O,P=arguments;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(f=!(P.length>2&&void 0!==P[2])||P[2],g=[],h=Mn(u,d),v=Bn(r,u.headers,d.headers),y="GET"===u.method?m(m({},u.data),d.data):{},A=m(m(m({},o),u.queryParameters),y),l.value&&(A["x-algolia-agent"]=l.value),d&&d.queryParameters)for(k=0,x=Object.keys(d.queryParameters);k1&&void 0!==arguments[1]?arguments[1]:{},n=e.useReadTransporter||"GET"===e.method;if(!n)return g(e,t,n);var a=function(){return g(e,t)};if(!0!==(t.cacheable||e.cacheable))return a();var i={request:e,requestOptions:t,transporter:{queryParameters:o,headers:r}};return d.get(i,(function(){return u.get(i,(function(){return u.set(i,a()).then((function(e){return Promise.all([u.delete(i),e])}),(function(e){return Promise.all([u.delete(i),Promise.reject(e)])})).then((function(e){var t=A(e,2);return t[0],t[1]}))}))}),{miss:function(e){return d.set(i,e)}})},requestsCache:u,responsesCache:d}}(m(m({hosts:Hn(t)},o),{},{algoliaAgent:jn({algoliaAgents:a,client:"Lite",version:Xn}),baseHeaders:m(m({"content-type":"text/plain"},l.headers()),o.baseHeaders),baseQueryParameters:m(m({},l.queryParameters()),o.baseQueryParameters)}));return{transporter:s,appId:t,clearCache:function(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then((function(){}))},get _ua(){return s.algoliaAgent.value},addAlgoliaAgent:function(e,t){s.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;r&&"WithinHeaders"!==r?s.baseQueryParameters["x-algolia-api-key"]=t:s.baseHeaders["x-algolia-api-key"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var n=e.path,r=e.parameters,a=e.body;if(!n)throw new Error("Parameter `path` is required when calling `customPost`.");var o={method:"POST",path:"/{path}".replace("{path}",n),queryParameters:r||{},headers:{},data:a||{}};return s.request(o,t)},getRecommendations:function(e,t){if(e&&Array.isArray(e)&&(e={requests:e}),!e)throw new Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!e.requests)throw new Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");var n={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return s.request(n,t)},search:function(e,t){if(e&&Array.isArray(e)){var n={requests:e.map((function(e){var t=e.params,n=v(e,Vn);return"facet"===n.type?m(m(m({},n),t),{},{type:"facet"}):m(m(m({},n),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}))};e=n}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");var r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return s.request(r,t)}}}(m({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise((function(t){var n=new XMLHttpRequest;n.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return n.setRequestHeader(t,e.headers[t])}));var r,a=function(e,r){return setTimeout((function(){n.abort(),t({status:0,content:r,isTimedOut:!0})}),e)},o=a(e.connectTimeout,"Connection timeout");n.onreadystatechange=function(){n.readyState>n.OPENED&&void 0===r&&(clearTimeout(o),r=a(e.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(o),clearTimeout(r),t({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(o),clearTimeout(r),t({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:Cn(),requestsCache:Cn({serializable:!1}),hostsCache:En({caches:[Sn({key:"".concat(Xn,"-").concat(e)}),Cn()]})},void 0))}(e,t);return r.addAlgoliaAgent("docsearch",Yn),!1===/docsearch.js \(.*\)/.test(r.transporter.algoliaAgent.value)&&r.addAlgoliaAgent("docsearch-react",Yn),n(r)}),[e,t,n])}var Gn=["footer","searchBox"];function Zn(e){var t=e.appId,n=e.apiKey,a=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,l=e.searchParameters,s=e.maxResultsPerGroup,c=e.onClose,u=void 0===c?dn:c,p=e.transformItems,f=void 0===p?cn:p,g=e.hitComponent,h=void 0===g?Ft:g,b=e.resultsFooterComponent,y=void 0===b?function(){return null}:b,w=e.navigator,k=e.initialScrollY,x=void 0===k?0:k,S=e.transformSearchClient,E=void 0===S?cn:S,C=e.disableUserPersonalization,j=void 0!==C&&C,O=e.initialQuery,P=void 0===O?"":O,T=e.translations,L=void 0===T?{}:T,I=e.getMissingResultsUrl,q=e.insights,N=void 0!==q&&q,R=L.footer,W=L.searchBox,M=v(L,Gn),B=A(r.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),D=B[0],z=B[1],F=r.useRef(null),U=r.useRef(null),_=r.useRef(null),V=r.useRef(null),X=r.useRef(null),H=r.useRef(10),Y=r.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,Q=r.useRef(P||Y).current,G=Qn(t,n,E),Z=r.useRef(xn({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(a),limit:10})).current,K=r.useRef(xn({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(a),limit:0===Z.getAll().length?7:4})).current,J=r.useCallback((function(e){if(!j){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===Z.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&K.add(t)}}),[Z,K,j]),$=r.useCallback((function(e){if(D.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,n={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};D.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(n)}}),[D.context.algoliaInsightsPlugin]),ee=r.useMemo((function(){return Mt({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:Q,context:{searchSuggestions:[]}},insights:N,navigator:w,onStateChange:function(e){z(e.state)},getSources:function(e){var r=e.query,o=e.state,i=e.setContext,c=e.setStatus;if(!r)return j?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,n=e.event;J(t),un(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return K.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,n=e.event;J(t),un(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Z.getAll()}}];var d=Boolean(N);return G.search({requests:[m({query:r,indexName:a,attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(H.current),"hierarchy.lvl2:".concat(H.current),"hierarchy.lvl3:".concat(H.current),"hierarchy.lvl4:".concat(H.current),"hierarchy.lvl5:".concat(H.current),"hierarchy.lvl6:".concat(H.current),"content:".concat(H.current)],snippetEllipsisText:"\u2026",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:d},l)]}).catch((function(e){throw"RetryError"===e.name&&c("error"),e})).then((function(e){var r=e.results[0],l=r.hits,c=r.nbHits,p=sn(l,(function(e){return gn(e)}),s);o.context.searchSuggestions.length0&&(re(),X.current&&X.current.focus())}),[Q,re]),r.useEffect((function(){function e(){if(U.current){var e=.01*window.innerHeight;U.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),r.createElement("div",d({ref:F},ne({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===D.status&&"DocSearch-Container--Stalled","error"===D.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&u()}}),r.createElement("div",{className:"DocSearch-Modal",ref:U},r.createElement("header",{className:"DocSearch-SearchBar",ref:_},r.createElement(wn,d({},ee,{state:D,autoFocus:0===Q.length,inputRef:X,isFromSelection:Boolean(Q)&&Q===Y,translations:W,onClose:u}))),r.createElement("div",{className:"DocSearch-Dropdown",ref:V},r.createElement(yn,d({},ee,{indexName:a,state:D,hitComponent:h,resultsFooterComponent:y,disableUserPersonalization:j,recentSearches:K,favoriteSearches:Z,inputRef:X,translations:M,getMissingResultsUrl:I,onItemClick:function(e,t){$(e),J(e),un(t)||u()}}))),r.createElement("footer",{className:"DocSearch-Footer"},r.createElement(zt,{translations:R}))))}function Kn(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;if("Escape"===e.code&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)return e.preventDefault(),void(t?a():document.body.classList.contains("DocSearch--active")||n());i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}},9018:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:32,height:32,fill:"none",viewBox:"0 0 32 32","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M14 2.67c-.9.013-1.441.065-1.878.287-.502.256-.91.664-1.165 1.166-.223.437-.275.977-.287 1.877M26 2.67c.9.013 1.44.065 1.877.287.501.256.91.664 1.165 1.166.223.437.275.977.287 1.877m0 12c-.012.9-.064 1.44-.287 1.877-.256.502-.664.91-1.165 1.166-.437.222-.978.274-1.878.287m3.334-10.663v2.666M18.666 2.667h2.667m-14.4 26.666h10.133c1.494 0 2.24 0 2.81-.29.502-.256.91-.664 1.166-1.166.29-.57.29-1.317.29-2.81V14.933c0-1.493 0-2.24-.29-2.81a2.67 2.67 0 0 0-1.165-1.166c-.57-.29-1.317-.29-2.811-.29H6.933c-1.494 0-2.24 0-2.811.29-.502.256-.91.664-1.165 1.166-.291.57-.291 1.317-.291 2.81v10.134c0 1.493 0 2.24.29 2.81.256.502.664.91 1.166 1.166.57.29 1.317.29 2.81.29"})))}},15841:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:30,height:30,fill:"none",viewBox:"0 0 30 30","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M20.334 9.667V5.933c0-1.493 0-2.24-.291-2.81a2.67 2.67 0 0 0-1.165-1.166c-.57-.29-1.317-.29-2.811-.29H5.934c-1.494 0-2.24 0-2.811.29-.502.256-.91.664-1.165 1.166-.291.57-.291 1.317-.291 2.81v10.134c0 1.493 0 2.24.29 2.81.256.502.664.91 1.166 1.166.57.29 1.317.29 2.81.29h3.734M15 19l2.667 2.667 6-6m-9.733 12.666h10.133c1.494 0 2.24 0 2.81-.29.502-.256.91-.664 1.166-1.166.29-.57.29-1.317.29-2.81V13.933c0-1.493 0-2.24-.29-2.81a2.67 2.67 0 0 0-1.165-1.166c-.57-.29-1.317-.29-2.811-.29H13.934c-1.494 0-2.24 0-2.811.29-.502.256-.91.664-1.165 1.166-.291.57-.291 1.317-.291 2.81v10.134c0 1.493 0 2.24.29 2.81.256.502.664.91 1.166 1.166.57.29 1.317.29 2.81.29"})))}},24298:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:26,height:30,fill:"none",viewBox:"0 0 26 30","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M13 11.667V17l3.334 2M13 5.667C6.741 5.667 1.667 10.74 1.667 17S6.741 28.333 13 28.333 24.334 23.26 24.334 17 19.26 5.667 13 5.667m0 0v-4m-2.666 0h5.333m8.439 4.79-2-2 1 1m-21.211 1 2-2-1 1"})))}},57834:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:32,height:32,fill:"none",viewBox:"0 0 32 32","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M5.333 24v-.267c0-2.24 0-3.36.436-4.216a4 4 0 0 1 1.748-1.748c.855-.436 1.975-.436 4.216-.436h8.533c2.24 0 3.36 0 4.216.436a4 4 0 0 1 1.748 1.749c.436.855.436 1.975.436 4.215V24M5.333 24a2.667 2.667 0 1 0 0 5.333 2.667 2.667 0 0 0 0-5.333m21.333 0a2.667 2.667 0 1 0 0 5.334 2.667 2.667 0 0 0 0-5.334m-10.667 0a2.667 2.667 0 1 0 0 5.333A2.667 2.667 0 0 0 16 24m0 0V10.667m-8 0h16c1.243 0 1.864 0 2.354-.203a2.67 2.67 0 0 0 1.443-1.443C28 8.53 28 7.909 28 6.667c0-1.243 0-1.864-.203-2.354a2.67 2.67 0 0 0-1.443-1.443c-.49-.203-1.111-.203-2.354-.203H8c-1.242 0-1.863 0-2.353.203-.654.27-1.173.79-1.444 1.443C4 4.803 4 5.424 4 6.667c0 1.242 0 1.864.203 2.354.271.653.79 1.172 1.444 1.443.49.203 1.11.203 2.353.203"})))}},11487:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:28,height:28,fill:"none",viewBox:"0 0 28 28","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M9.2 2H4.133c-.746 0-1.12 0-1.405.145-.25.128-.455.332-.583.583C2 3.013 2 3.387 2 4.133V9.2c0 .747 0 1.12.145 1.405.128.251.332.455.583.583.285.145.659.145 1.405.145H9.2c.747 0 1.12 0 1.405-.145.251-.128.455-.332.583-.583.145-.285.145-.658.145-1.405V4.133c0-.746 0-1.12-.145-1.405a1.33 1.33 0 0 0-.583-.583C10.32 2 9.947 2 9.2 2M23.867 2H18.8c-.747 0-1.12 0-1.405.145-.251.128-.455.332-.583.583-.145.285-.145.659-.145 1.405V9.2c0 .747 0 1.12.145 1.405.128.251.332.455.583.583.285.145.658.145 1.405.145h5.067c.746 0 1.12 0 1.405-.145.25-.128.455-.332.583-.583C26 10.32 26 9.947 26 9.2V4.133c0-.746 0-1.12-.145-1.405a1.33 1.33 0 0 0-.583-.583C24.987 2 24.613 2 23.867 2M23.867 16.667H18.8c-.747 0-1.12 0-1.405.145-.251.128-.455.332-.583.583-.145.285-.145.658-.145 1.405v5.067c0 .746 0 1.12.145 1.405.128.25.332.455.583.583.285.145.658.145 1.405.145h5.067c.746 0 1.12 0 1.405-.145.25-.128.455-.332.583-.583.145-.285.145-.659.145-1.405V18.8c0-.747 0-1.12-.145-1.405a1.33 1.33 0 0 0-.583-.583c-.285-.145-.659-.145-1.405-.145M9.2 16.667H4.133c-.746 0-1.12 0-1.405.145-.25.128-.455.332-.583.583C2 17.68 2 18.053 2 18.8v5.067c0 .746 0 1.12.145 1.405.128.25.332.455.583.583.285.145.659.145 1.405.145H9.2c.747 0 1.12 0 1.405-.145.251-.128.455-.332.583-.583.145-.285.145-.659.145-1.405V18.8c0-.747 0-1.12-.145-1.405a1.33 1.33 0 0 0-.583-.583c-.285-.145-.658-.145-1.405-.145"})))}},98812:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:32,height:32,fill:"none",viewBox:"0 0 32 32","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M12 9.333H6.133c-.746 0-1.12 0-1.405.146-.25.127-.455.331-.583.582C4 10.347 4 10.72 4 11.467v14.4c0 .746 0 1.12.145 1.405.128.25.332.455.583.583.285.145.659.145 1.405.145H12m0 0h8m-8 0V6.133c0-.746 0-1.12.145-1.405.128-.25.332-.455.583-.583C13.013 4 13.387 4 14.133 4h3.734c.746 0 1.12 0 1.405.145.25.128.455.332.583.583.145.285.145.659.145 1.405V28m0-13.333h5.867c.746 0 1.12 0 1.405.145.25.128.455.332.583.583.145.285.145.658.145 1.405v9.067c0 .746 0 1.12-.145 1.405-.128.25-.332.455-.583.583-.285.145-.659.145-1.405.145H20"})))}},70805:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:28,height:28,fill:"none",viewBox:"0 0 28 28","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M26 26H4.133c-.746 0-1.12 0-1.405-.145a1.33 1.33 0 0 1-.583-.583C2 24.987 2 24.613 2 23.867V2m24 5.333-7.246 7.246c-.264.264-.396.396-.548.446a.67.67 0 0 1-.412 0c-.152-.05-.284-.182-.548-.446l-2.492-2.491c-.264-.264-.396-.396-.548-.446a.67.67 0 0 0-.412 0c-.152.05-.284.182-.548.446L7.333 18M26 7.333h-5.333m5.333 0v5.334"})))}},59550:(e,t,n)=>{"use strict";n(96540)},57900:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:30,height:30,fill:"none",viewBox:"0 0 30 30","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M9 5a3.333 3.333 0 1 1 6.667 0v2H17c1.864 0 2.796 0 3.531.305a4 4 0 0 1 2.165 2.164C23 10.204 23 11.136 23 13h2a3.333 3.333 0 1 1 0 6.667h-2v2.266c0 2.24 0 3.36-.436 4.216a4 4 0 0 1-1.748 1.748c-.855.436-1.976.436-4.216.436h-.933V26a3 3 0 0 0-6 0v2.333h-1.6c-2.24 0-3.36 0-4.216-.436a4 4 0 0 1-1.748-1.748c-.436-.855-.436-1.975-.436-4.216v-2.266h2a3.333 3.333 0 1 0 0-6.667h-2c0-1.864 0-2.796.304-3.53a4 4 0 0 1 2.165-2.165C4.871 7 5.803 7 7.667 7H9z"})))}},74919:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:32,height:32,fill:"none",viewBox:"0 0 32 32","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M16 4v4m0 6v4m0 6v4M4.382 10.654l5.85 4.5c.375.288.562.432.629.607a.67.67 0 0 1 0 .478c-.067.175-.254.319-.628.607l-5.851 4.5c-.551.424-.827.636-1.058.633a.67.67 0 0 1-.516-.253c-.143-.182-.143-.53-.143-1.226v-9c0-.696 0-1.044.143-1.226a.67.67 0 0 1 .516-.253c.23-.003.507.209 1.058.633m23.233 0-5.85 4.5c-.375.288-.562.432-.63.607a.67.67 0 0 0 0 .478c.068.175.255.319.63.607l5.85 4.5c.551.424.827.636 1.058.633a.67.67 0 0 0 .515-.253c.144-.182.144-.53.144-1.226v-9c0-.696 0-1.044-.144-1.226a.67.67 0 0 0-.515-.253c-.231-.003-.507.209-1.058.633"})))}},87898:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:32,height:32,fill:"none",viewBox:"0 0 32 32","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"m16 20-4-4m4 4a30 30 0 0 0 5.333-2.667M16 20v6.667s4.04-.734 5.333-2.667c1.44-2.16 0-6.667 0-6.667M12 16a29.3 29.3 0 0 1 2.666-5.267 17.17 17.17 0 0 1 14.667-8.066c0 3.626-1.04 10-8 14.666M12 16H5.333S6.066 11.96 8 10.667c2.16-1.44 6.666 0 6.666 0M6 22c-2 1.68-2.667 6.667-2.667 6.667S8.32 28 10 26c.946-1.12.933-2.84-.12-3.88A2.907 2.907 0 0 0 6 22"})))}},10122:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:24,height:28,fill:"none",viewBox:"0 0 24 28","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M18.666 11.333V8.667a6.667 6.667 0 1 0-13.333 0v2.666m6.667 6V20m-4.267 6h8.533c2.24 0 3.36 0 4.216-.436a4 4 0 0 0 1.748-1.748c.436-.856.436-1.976.436-4.216v-1.867c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.748c-.855-.436-1.975-.436-4.216-.436H7.733c-2.24 0-3.36 0-4.216.436a4 4 0 0 0-1.748 1.748c-.436.856-.436 1.976-.436 4.216V19.6c0 2.24 0 3.36.436 4.216a4 4 0 0 0 1.748 1.748C4.373 26 5.493 26 7.733 26"})))}},59515:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:24,height:30,fill:"none",viewBox:"0 0 24 30","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{stroke:"#121315",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.667,d:"M8 14.334 10.666 17l6-6m6 4c0 6.545-7.138 11.305-9.736 12.82-.295.172-.442.258-.65.303a1.5 1.5 0 0 1-.56 0c-.208-.045-.356-.13-.651-.303C8.472 26.305 1.333 21.545 1.333 15V8.624c0-1.066 0-1.6.174-2.057.154-.405.405-.766.73-1.053.367-.324.866-.511 1.865-.885l7.149-2.681c.277-.104.415-.156.558-.177q.191-.027.381 0c.143.02.282.073.559.177l7.149 2.68c.998.375 1.497.562 1.865.886.325.287.575.648.729 1.053.174.458.174.99.174 2.057z"})))}},54553:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r,a,o=n(96540);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",width:24,height:24,fill:"none",viewBox:"0 0 24 24","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,o.createElement("mask",{id:"a",width:20,height:16,x:2,y:4,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},r||(r=o.createElement("path",{fill:"#fff",d:"M22 4H2v16h20z"}))),a||(a=o.createElement("g",{mask:"url(#a)"},o.createElement("path",{fill:"#B6B6B7",d:"M18.93 5.425a16.1 16.1 0 0 0-4.07-1.304.06.06 0 0 0-.066.032c-.175.323-.37.744-.506 1.075a14.8 14.8 0 0 0-4.573 0A11 11 0 0 0 9.2 4.153a.06.06 0 0 0-.065-.032 16 16 0 0 0-4.07 1.304.06.06 0 0 0-.028.024c-2.593 4-3.303 7.902-2.954 11.756a.07.07 0 0 0 .026.048 16.4 16.4 0 0 0 4.994 2.608.06.06 0 0 0 .07-.024 12.3 12.3 0 0 0 1.022-1.716.066.066 0 0 0-.035-.091 11 11 0 0 1-1.56-.768.068.068 0 0 1-.007-.11q.159-.122.31-.251a.06.06 0 0 1 .065-.01c3.273 1.544 6.817 1.544 10.051 0a.06.06 0 0 1 .066.01c.1.084.205.17.31.25a.068.068 0 0 1-.005.11q-.747.45-1.561.768a.067.067 0 0 0-.034.091c.3.601.643 1.173 1.02 1.716a.06.06 0 0 0 .07.025 16.3 16.3 0 0 0 5.003-2.608.07.07 0 0 0 .026-.047c.417-4.455-.699-8.325-2.957-11.756a.05.05 0 0 0-.026-.025M8.684 14.86c-.985 0-1.797-.935-1.797-2.082 0-1.148.796-2.082 1.797-2.082 1.01 0 1.814.943 1.798 2.082 0 1.147-.796 2.082-1.798 2.082m6.646 0c-.985 0-1.797-.935-1.797-2.082 0-1.148.796-2.082 1.797-2.082 1.009 0 1.813.943 1.797 2.082 0 1.147-.788 2.082-1.797 2.082"}))))}},92028:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r,a,o=n(96540);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",width:24,height:24,fill:"none",viewBox:"0 0 24 24","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("g",{clipPath:"url(#a)"},o.createElement("path",{fill:"#B6B6B7",fillRule:"evenodd",d:"M11.967 1C5.903 1 1 6.042 1 12.279c0 4.986 3.141 9.206 7.5 10.7.544.112.743-.243.743-.542 0-.261-.017-1.157-.017-2.091C6.175 21.018 5.539 19 5.539 19c-.49-1.307-1.216-1.643-1.216-1.643-.999-.69.072-.69.072-.69 1.108.074 1.69 1.157 1.69 1.157.98 1.718 2.56 1.232 3.195.934.09-.729.381-1.233.69-1.513-2.433-.261-4.993-1.232-4.993-5.565 0-1.232.435-2.24 1.125-3.025-.109-.28-.49-1.438.11-2.988 0 0 .925-.298 3.013 1.158a10.3 10.3 0 0 1 2.742-.373c.926 0 1.87.13 2.742.373 2.088-1.456 3.014-1.158 3.014-1.158.6 1.55.218 2.708.109 2.988.708.784 1.126 1.793 1.126 3.025 0 4.333-2.56 5.285-5.012 5.565.4.355.745 1.027.745 2.092 0 1.512-.018 2.726-.018 3.1 0 .298.2.653.744.54 4.358-1.493 7.5-5.713 7.5-10.7C22.933 6.043 18.013 1 11.966 1",clipRule:"evenodd"}))),a||(a=o.createElement("defs",null,o.createElement("clipPath",{id:"a"},o.createElement("path",{fill:"#fff",d:"M1 1h22v22H1z"})))))}},18257:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r,a,o=n(96540);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",width:24,height:24,fill:"none",viewBox:"0 0 24 24","aria-labelledby":n},l),t?o.createElement("title",{id:n},t):null,o.createElement("mask",{id:"a",width:18,height:18,x:3,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},r||(r=o.createElement("path",{fill:"#fff",d:"M21 3H3v18h18z"}))),a||(a=o.createElement("g",{mask:"url(#a)"},o.createElement("path",{fill:"#B6B6B7",d:"M8.178 19V9.554H5.177V19zm-1.5-10.736c1.046 0 1.698-.725 1.698-1.632C8.356 5.705 7.724 5 6.698 5 5.671 5 5 5.705 5 6.632c0 .907.651 1.632 1.658 1.632zM9.84 19h3.001v-5.275c0-.282.02-.564.099-.766.217-.564.71-1.148 1.54-1.148 1.086 0 1.52.866 1.52 2.136V19H19v-5.416c0-2.902-1.48-4.252-3.455-4.252-1.619 0-2.33.947-2.725 1.591h.02v-1.37h-3c.039.887 0 9.447 0 9.447"}))))}},42489:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",width:28,height:28,fill:"none",viewBox:"0 0 28 28","aria-labelledby":n},i),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{fill:"#B6B6B7",d:"M18.745 6.428h2.53l-5.528 6.318 6.503 8.597h-5.092l-3.988-5.215-4.563 5.215H6.076l5.912-6.758L5.75 6.428h5.22l3.605 4.766zm-.888 13.4h1.402l-9.05-11.965H8.705z"})))}},35947:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(96540);var r=n(53259),a=n.n(r),o=n(84054);const i={"00e9e322":[()=>n.e(8713).then(n.t.bind(n,72587,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-apollo-client-f5a.json",72587],"0125e8dd":[()=>n.e(8142).then(n.t.bind(n,61622,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-microservices-538.json",61622],"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,69158)),"@theme/BlogTagsListPage",69158],"03fed099":[()=>n.e(7045).then(n.bind(n,70178)),"@site/blog/grpc-vs-graphql-2024-07-26.mdx?truncated=true",70178],"050693d2":[()=>n.e(3194).then(n.bind(n,63333)),"@site/graphql/mutations.md",63333],"059f3472":[()=>n.e(6433).then(n.bind(n,89524)),"@site/docs/directives/addField.md",89524],"073968ed":[()=>n.e(9429).then(n.t.bind(n,50378,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-graphi-ql-027.json",50378],"087a41b6":[()=>n.e(7418).then(n.bind(n,78162)),"@site/docs/directives/grpc.md",78162],"08af526d":[()=>n.e(529).then(n.t.bind(n,41344,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-3ce.json",41344],"093cc66a":[()=>n.e(1664).then(n.bind(n,56735)),"@site/docs/http-cache.md",56735],"0bbc2d00":[()=>n.e(4262).then(n.t.bind(n,13663,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-fetch-api-22d.json",13663],"0ce74438":[()=>Promise.all([n.e(1869),n.e(457),n.e(3365)]).then(n.bind(n,29414)),"@site/src/pages/playground.tsx",29414],"0db6b546":[()=>n.e(9602).then(n.t.bind(n,71271,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-introspection-877.json",71271],"0e2e10eb":[()=>n.e(111).then(n.bind(n,80647)),"@site/blog/graphql-schema-part-2-2-2024-07-22.mdx?truncated=true",80647],"11b43341":[()=>n.e(2256).then(n.t.bind(n,15293,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-7fc.json",15293],"12e32ce8":[()=>n.e(788).then(n.bind(n,65033)),"@site/blog/graphql-schema-part-2-3-2024-07-23.mdx?truncated=true",65033],"138116d2":[()=>n.e(1145).then(n.bind(n,29751)),"@site/blog/bff-case-study-2024-08-30.md",29751],"14722da1":[()=>n.e(1095).then(n.bind(n,50935)),"@site/docs/llm.md",50935],17896441:[()=>Promise.all([n.e(1869),n.e(1432),n.e(6285),n.e(8401)]).then(n.bind(n,43239)),"@theme/DocItem",43239],"18090ca0":[()=>n.e(5873).then(n.bind(n,50795)),"@site/docs/context.md",50795],"199f86e5":[()=>n.e(2564).then(n.bind(n,94713)),"@site/blog/bff-challenges-2023-06-19.md?truncated=true",94713],"1a20bc57":[()=>Promise.all([n.e(1869),n.e(9114)]).then(n.bind(n,46768)),"@site/docs/cli.md",46768],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(629),n.e(2138)]).then(n.bind(n,85787)),"@theme/SearchPage",85787],"1da478a7":[()=>n.e(4142).then(n.bind(n,22921)),"@site/blog/guide-on-graphiql-2024-07-24.md",22921],"1df93b7f":[()=>Promise.all([n.e(1869),n.e(1432),n.e(5697),n.e(4583)]).then(n.bind(n,17613)),"@site/src/pages/index.tsx",17613],"1e0b7ff8":[()=>n.e(5950).then(n.t.bind(n,783,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-vue-977.json",783],"2063472f":[()=>n.e(3215).then(n.t.bind(n,17646,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-18b.json",17646],"277b91c0":[()=>n.e(602).then(n.bind(n,31653)),"@site/blog/graphql-schema-2024-07-11.md?truncated=true",31653],"27ae5973":[()=>n.e(2812).then(n.t.bind(n,17718,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-node-js-66d.json",17718],"28b044f6":[()=>n.e(4447).then(n.bind(n,23775)),"@site/blog/graphql-introspection-security-2024-7-12.md?truncated=true",23775],"2cf484fc":[()=>n.e(1653).then(n.t.bind(n,91834,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-flexibility-027.json",91834],"2e41f3e3":[()=>n.e(8684).then(n.bind(n,47538)),"@site/blog/no-code-graphql-2024-05-30.md",47538],"2edd2aef":[()=>n.e(2286).then(n.bind(n,65405)),"@site/graphql/variables.md",65405],"3021cf83":[()=>Promise.all([n.e(1869),n.e(1432),n.e(2857)]).then(n.bind(n,22430)),"@site/docs/getting-started.mdx",22430],"36994c47":[()=>n.e(9858).then(n.t.bind(n,45516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",45516],"3818678a":[()=>n.e(8829).then(n.bind(n,89813)),"@site/blog/graphql-vue-clients-2024-08-01.md",89813],"39620ee0":[()=>n.e(441).then(n.bind(n,15529)),"@site/blog/api-strategy-2024-08-13.md",15529],"3abe8fb9":[()=>n.e(4485).then(n.bind(n,84216)),"@site/docs/logging.md",84216],"3b7584c1":[()=>n.e(1252).then(n.bind(n,81052)),"@site/docs/directives/protected.md",81052],"3bde1dc8":[()=>n.e(4599).then(n.bind(n,50071)),"@site/docs/contributors/integration-testing.md",50071],"3def974e":[()=>n.e(4518).then(n.bind(n,5551)),"@site/graphql/introspection.md",5551],"421122da":[()=>n.e(626).then(n.bind(n,79767)),"@site/docs/apollo-studio.md",79767],"42d47d97":[()=>n.e(6836).then(n.bind(n,51168)),"@site/blog/graphql-vs-rest-vs-grpc-2024-03-30.md?truncated=true",51168],"44fc3770":[()=>n.e(9357).then(n.bind(n,81768)),"@site/docs/N+1.md",81768],"4558a902":[()=>n.e(6985).then(n.bind(n,50626)),"@site/docs/new-relic.md",50626],"4b05baea":[()=>n.e(189).then(n.bind(n,46876)),"@site/graphql/faq.md",46876],"4b8fa850":[()=>n.e(931).then(n.bind(n,83945)),"@site/blog/bff-case-study-2024-08-30.md?truncated=true",83945],"4c3efee9":[()=>n.e(8229).then(n.bind(n,5610)),"@site/blog/2023-graphql-conf-2023-09-29.md?truncated=true",5610],"4c4ded1b":[()=>n.e(1050).then(n.t.bind(n,79936,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-urql-a5d.json",79936],"4e368601":[()=>n.e(1466).then(n.t.bind(n,17585,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-backend-for-frontend-5f3.json",17585],55806362:[()=>n.e(168).then(n.bind(n,3355)),"@site/docs/scalar.md",3355],"590ffac3":[()=>n.e(7378).then(n.bind(n,35463)),"@site/blog/bff-challenges-2023-06-19.md",35463],"5b83592a":[()=>n.e(1136).then(n.t.bind(n,39369,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-tooling-784.json",39369],"5c341042":[()=>n.e(8787).then(n.bind(n,17649)),"@site/docs/honey-comb.md",17649],"5c9886f8":[()=>Promise.all([n.e(1869),n.e(2420)]).then(n.bind(n,73093)),"@site/docs/config-generation.md",73093],"5cfab99f":[()=>n.e(3166).then(n.bind(n,91556)),"@site/blog/automatic-persisted-queries-2023-08-11.md",91556],"5da3eb42":[()=>n.e(8519).then(n.bind(n,32058)),"@site/docs/directives/omit.md",32058],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5eee67cc":[()=>n.e(2060).then(n.bind(n,94579)),"@site/blog/graphql-angular-clients-2024-07-20.md?truncated=true",94579],"5ef8eefa":[()=>n.e(4558).then(n.bind(n,9481)),"@site/blog/graphql-schema-part-2-1-2024-07-21.mdx?truncated=true",9481],"6043d7b1":[()=>n.e(1598).then(n.t.bind(n,91917,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-best-practices-f02.json",91917],"628b38f9":[()=>n.e(6355).then(n.bind(n,38624)),"@site/blog/what-is-grpc-2024-07-13.mdx",38624],"648b6696":[()=>n.e(914).then(n.t.bind(n,89845,19)),"@generated/docusaurus-plugin-content-docs/graphql/p/graphql-19d.json",89845],"675abbaa":[()=>n.e(7538).then(n.bind(n,84234)),"@site/docs/directives/discriminate.md",84234],"68003dd4":[()=>n.e(5684).then(n.bind(n,14051)),"@site/docs/http2.md",14051],"6828afed":[()=>n.e(233).then(n.bind(n,41068)),"@site/blog/what-is-grpc-2024-07-13.mdx?truncated=true",41068],"6875c492":[()=>Promise.all([n.e(1869),n.e(4813)]).then(n.bind(n,50561)),"@theme/BlogTagsPostsPage",50561],"69148c91":[()=>n.e(7822).then(n.t.bind(n,15677,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-graph-ql-66e.json",15677],"6ace9a37":[()=>n.e(6252).then(n.bind(n,44055)),"@site/blog/graphql-schema-part-2-1-2024-07-21.mdx",44055],"6b892662":[()=>n.e(3242).then(n.t.bind(n,93836,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-api-954.json",93836],"6beacf8d":[()=>n.e(4326).then(n.bind(n,46190)),"@site/docs/directives/modify.md",46190],"6e5312e2":[()=>n.e(4528).then(n.bind(n,73770)),"@site/docs/directives/call.md",73770],"6e9d1f98":[()=>n.e(3001).then(n.bind(n,92320)),"@site/docs/contributors/telemetry.md",92320],"70683b2a":[()=>n.e(2892).then(n.bind(n,45891)),"@site/docs/grpc.md",45891],"70c3f6ce":[()=>n.e(3688).then(n.bind(n,6908)),"@site/docs/environment-variables.md",6908],"71c38ae3":[()=>n.e(4076).then(n.t.bind(n,83761,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-villus-6f4.json",83761],"75ffac00":[()=>n.e(67).then(n.bind(n,70070)),"@site/docs/directives/graphQL.md",70070],"764233b2":[()=>n.e(5564).then(n.bind(n,37572)),"@site/blog/graphql-vs-rest-vs-grpc-2024-03-30.md",37572],"764a190e":[()=>n.e(4678).then(n.bind(n,54110)),"@site/graphql/graphql.md",54110],78097414:[()=>n.e(9241).then(n.bind(n,91517)),"@site/blog/graphql-introspection-security-2024-7-12.md",91517],"789db788":[()=>n.e(7656).then(n.bind(n,60644)),"@site/graphql/problem-statement.md",60644],"799c74e5":[()=>n.e(9924).then(n.bind(n,82010)),"@site/docs/contributors/wrk-benchmark.md",82010],"7a2208a1":[()=>n.e(6901).then(n.t.bind(n,1562,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-scalability-180.json",1562],"7a278406":[()=>n.e(4088).then(n.bind(n,46343)),"@site/docs/rest.md",46343],"7afa91f6":[()=>n.e(2278).then(n.bind(n,83738)),"@site/docs/directives/server.md",83738],"7bf7dd2a":[()=>n.e(2762).then(n.bind(n,81047)),"@site/blog/graphql-schema-part-2-3-2024-07-23.mdx",81047],"7f24d630":[()=>n.e(3313).then(n.bind(n,75925)),"@site/docs/contributors/bounty.md",75925],"814f3328":[()=>n.e(7472).then(n.t.bind(n,55513,19)),"~blog/default/blog-post-list-prop-default.json",55513],"820a9a7b":[()=>n.e(9541).then(n.bind(n,63354)),"@site/blog/graphql-vs-openapi-part-3-2024-07-31.md?truncated=true",63354],"82b52374":[()=>n.e(1642).then(n.bind(n,21800)),"@site/blog/graphql-vs-openapi-part-2-2024-07-30.md",21800],"84028de1":[()=>n.e(6895).then(n.bind(n,16142)),"@site/blog/tailcall-n+1-working-2024-08-04.md",16142],"84bf3085":[()=>n.e(4663).then(n.bind(n,19757)),"@site/blog/graphql-vs-openapi-part-1-2024-07-29.md",19757],"86ac7b20":[()=>n.e(7188).then(n.bind(n,96987)),"@site/docs/data-dog.md",96987],"87cea47c":[()=>n.e(6265).then(n.bind(n,51993)),"@site/docs/client-tuning.md",51993],"8b3a140c":[()=>n.e(6101).then(n.bind(n,80965)),"@site/src/pages/contact.tsx",80965],"8b7fe9c2":[()=>n.e(1015).then(n.bind(n,87695)),"@site/blog/graphql-vs-openapi-part-1-2024-07-29.md?truncated=true",87695],"8cf6c604":[()=>n.e(8179).then(n.bind(n,47738)),"@site/docs/tailcall-on-aws.md",47738],"8e0e717b":[()=>n.e(324).then(n.bind(n,35435)),"@site/graphql/cto-guide.md",35435],"8f94f50f":[()=>n.e(7899).then(n.bind(n,44446)),"@site/docs/directives/js.md",44446],"8fdf2b66":[()=>n.e(883).then(n.t.bind(n,3716,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-security-0c3.json",3716],"8fdf8779":[()=>n.e(5944).then(n.bind(n,23415)),"@site/docs/directives/http.md",23415],"90a2a22c":[()=>n.e(6501).then(n.bind(n,92698)),"@site/blog/graphql-and-ms-match-2024-08-18.md?truncated=true",92698],"9170f378":[()=>n.e(7420).then(n.bind(n,85086)),"@site/docs/directives/telemetry.md",85086],"977a96e5":[()=>n.e(2984).then(n.t.bind(n,82081,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-angular-58f.json",82081],"98ec7d34":[()=>n.e(2964).then(n.bind(n,67974)),"@site/docs/directives/cache.md",67974],"9c5a8947":[()=>n.e(5323).then(n.bind(n,28789)),"@site/graphql/queries.md",28789],"9db421fd":[()=>n.e(9183).then(n.bind(n,36682)),"@site/graphql/directives.md",36682],"9e4087bc":[()=>n.e(2711).then(n.bind(n,89331)),"@theme/BlogArchivePage",89331],a07f3d6f:[()=>n.e(6802).then(n.bind(n,99678)),"@site/docs/contributors/micro-benchmark.md",99678],a3d8c5ac:[()=>n.e(8891).then(n.bind(n,90675)),"@site/docs/watch-mode.md",90675],a470a8ad:[()=>n.e(7745).then(n.t.bind(n,48196,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-ide-c9f.json",48196],a5e65760:[()=>n.e(3614).then(n.t.bind(n,98485,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-migration-fc6.json",98485],a679ac6c:[()=>n.e(3671).then(n.bind(n,47893)),"@site/docs/playground.md",47893],a6aa9e1f:[()=>n.e(7643).then(n.bind(n,85591)),"@theme/BlogListPage",85591],a7456010:[()=>n.e(1235).then(n.t.bind(n,88552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",88552],a7502aaa:[()=>n.e(3745).then(n.bind(n,81134)),"@site/graphql/schema-and-types.md",81134],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,74532)),"@theme/DocVersionRoot",74532],a87fa11a:[()=>n.e(4075).then(n.t.bind(n,27501,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-strategy-eb3.json",27501],a94703ab:[()=>Promise.all([n.e(1869),n.e(2621),n.e(9048)]).then(n.bind(n,20511)),"@theme/DocRoot",20511],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,27093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",27093],abdac787:[()=>n.e(9430).then(n.bind(n,80745)),"@site/privacy/index.md",80745],acecf23e:[()=>n.e(1903).then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],af463c01:[()=>n.e(2219).then(n.t.bind(n,21911,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-schema-1e2.json",21911],afa63021:[()=>n.e(9193).then(n.bind(n,24322)),"@site/docs/contributors/guidelines.md",24322],b0d43028:[()=>n.e(4946).then(n.bind(n,89694)),"@site/docs/scripting.md",89694],b2fc40a3:[()=>n.e(4674).then(n.t.bind(n,18919,19)),"@generated/docusaurus-plugin-content-docs/privacy/p/privacy-e8a.json",18919],b325a9ad:[()=>n.e(5996).then(n.bind(n,54798)),"@site/docs/contributors/mutability.md",54798],b56a5946:[()=>n.e(391).then(n.bind(n,28004)),"@site/blog/graphql-microservices-migration-2024-08-15.md?truncated=true",28004],b650b829:[()=>n.e(6493).then(n.bind(n,3608)),"@site/blog/graphql-microservices-migration-2024-08-15.md",3608],b73205fc:[()=>n.e(1625).then(n.bind(n,68342)),"@site/docs/tailcall-on-fly.md",68342],ba0ccc14:[()=>n.e(178).then(n.bind(n,81766)),"@site/blog/2023-graphql-conf-2023-09-29.md",81766],bc54528d:[()=>n.e(8828).then(n.bind(n,86790)),"@site/blog/no-code-graphql-2024-05-30.md?truncated=true",86790],be97ef27:[()=>n.e(4160).then(n.t.bind(n,91055,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-java-script-9ae.json",91055],be9de49e:[()=>n.e(3698).then(n.bind(n,1723)),"@site/docs/directives/expr.md",1723],c141421f:[()=>n.e(957).then(n.t.bind(n,40936,19)),"@generated/docusaurus-theme-search-algolia/default/__plugin.json",40936],c3272686:[()=>n.e(4082).then(n.t.bind(n,79817,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-debugging-399.json",79817],c3841199:[()=>n.e(9737).then(n.bind(n,75585)),"@site/docs/contributors/testing.md",75585],c4c96681:[()=>n.e(1999).then(n.bind(n,72939)),"@site/docs/directives/link.md",72939],c4e90ab9:[()=>n.e(6710).then(n.bind(n,10443)),"@site/blog/api-strategy-2024-08-13.md?truncated=true",10443],c6c2e31a:[()=>n.e(7817).then(n.t.bind(n,96277,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-design-bfe.json",96277],c74732f0:[()=>n.e(2167).then(n.bind(n,48979)),"@site/blog/graphql-schema-2024-07-11.md",48979],c90daea4:[()=>n.e(1706).then(n.bind(n,93783)),"@site/blog/graphql-vue-clients-2024-08-01.md?truncated=true",93783],ca623a1a:[()=>n.e(137).then(n.bind(n,13259)),"@site/blog/guide-on-graphiql-2024-07-24.md?truncated=true",13259],cb769c5c:[()=>n.e(3407).then(n.bind(n,2894)),"@site/docs/auth.md",2894],cbfbeb7e:[()=>n.e(3981).then(n.bind(n,86614)),"@site/blog/graphql-vs-openapi-part-3-2024-07-31.md",86614],ccc49370:[()=>Promise.all([n.e(1869),n.e(1432),n.e(6285),n.e(3249)]).then(n.bind(n,36630)),"@theme/BlogPostPage",36630],cd6518f5:[()=>n.e(6497).then(n.bind(n,70818)),"@site/docs/conventions.md",70818],cd9a430b:[()=>n.e(9869).then(n.bind(n,97792)),"@site/docs/telemetry.md",97792],d12a07bb:[()=>n.e(318).then(n.bind(n,64285)),"@site/docs/gh-action.md",64285],d15f2df5:[()=>n.e(4690).then(n.t.bind(n,85997,19)),"@generated/docusaurus-plugin-content-docs/graphql/__plugin.json",85997],d45efe07:[()=>n.e(6033).then(n.bind(n,54897)),"@site/blog/graphql-angular-clients-2024-07-20.md",54897],d65909cc:[()=>n.e(32).then(n.bind(n,45970)),"@site/blog/tailcall-n+1-working-2024-08-04.md?truncated=true",45970],d660ea01:[()=>n.e(2324).then(n.bind(n,92293)),"@site/blog/graphql-schema-part-2-2-2024-07-22.mdx",92293],daaeb1c9:[()=>n.e(3059).then(n.bind(n,18006)),"@site/blog/graphql-and-ms-match-2024-08-18.md",18006],dad85226:[()=>n.e(115).then(n.t.bind(n,84405,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-performance-a51.json",84405],db262556:[()=>n.e(743).then(n.bind(n,27760)),"@site/docs/directives/rest.md",27760],dbfc4782:[()=>n.e(8749).then(n.t.bind(n,91895,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-archive-61f.json",91895],dc896384:[()=>n.e(688).then(n.bind(n,76577)),"@site/graphql/graphql-react-client.md",76577],e03ef218:[()=>n.e(7063).then(n.bind(n,25637)),"@site/docs/execution-strategy.md",25637],e0e19029:[()=>n.e(5202).then(n.bind(n,23242)),"@site/graphql/graphql-vs-rest.mdx",23242],e2e180b4:[()=>n.e(2770).then(n.bind(n,7486)),"@site/blog/grpc-vs-graphql-2024-07-26.mdx",7486],e37fd8fc:[()=>n.e(2385).then(n.bind(n,32097)),"@site/docs/apollo-federation-subgraph.md",32097],e5bb878f:[()=>n.e(3452).then(n.bind(n,2443)),"@site/blog/api-orchestration-2023-06-12.md?truncated=true",2443],ee1c9133:[()=>n.e(4793).then(n.t.bind(n,10245,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-microservice-015.json",10245],efc12651:[()=>n.e(5216).then(n.t.bind(n,63934,19)),"@generated/docusaurus-plugin-content-docs/privacy/__plugin.json",63934],f16cce32:[()=>n.e(6798).then(n.bind(n,68425)),"@site/graphql/what-is-graphql.md",68425],f22ae3f6:[()=>n.e(5256).then(n.bind(n,57258)),"@site/graphql/graphql-conf-hackathon-2024.md",57258],f2dcbb51:[()=>n.e(2014).then(n.bind(n,47968)),"@site/blog/automatic-persisted-queries-2023-08-11.md?truncated=true",47968],f3f788ea:[()=>n.e(4105).then(n.bind(n,19924)),"@site/blog/graphql-vs-openapi-part-2-2024-07-30.md?truncated=true",19924],f4a71104:[()=>n.e(6287).then(n.bind(n,69075)),"@site/docs/directives/upstream.md",69075],f5f1205b:[()=>n.e(6236).then(n.bind(n,71179)),"@site/graphql/fragments.md",71179],f91a5092:[()=>n.e(1956).then(n.t.bind(n,91655,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-open-api-8f0.json",91655],f97e9239:[()=>n.e(7033).then(n.bind(n,38913)),"@site/docs/directives.md",38913],fd989410:[()=>n.e(6814).then(n.bind(n,62825)),"@site/blog/api-orchestration-2023-06-12.md",62825]};var l=n(74848);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(86921),u=n(53102);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(2237).then(n.bind(n,82237)),modules:["@theme/NotFound"],webpack:()=>[82237],render(e,t){const n=e.default;return(0,l.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],g=(0,c.A)(r);return Object.entries(g).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;delete a.__context;const s=a.__props;return delete a.__props,(0,l.jsx)(u.W,{value:i,children:(0,l.jsx)(o,{...a,...s,...n})})}})}const p=[{path:"/blog/",component:d("/blog/","2a5"),exact:!0},{path:"/blog/api-strategy/",component:d("/blog/api-strategy/","257"),exact:!0},{path:"/blog/archive/",component:d("/blog/archive/","1d9"),exact:!0},{path:"/blog/dream11-graphql-case-study/",component:d("/blog/dream11-graphql-case-study/","e32"),exact:!0},{path:"/blog/exploring-graphiql/",component:d("/blog/exploring-graphiql/","611"),exact:!0},{path:"/blog/graphql-angular-client/",component:d("/blog/graphql-angular-client/","be2"),exact:!0},{path:"/blog/graphql-conf-2023/",component:d("/blog/graphql-conf-2023/","d30"),exact:!0},{path:"/blog/graphql-introspection-security/",component:d("/blog/graphql-introspection-security/","cb4"),exact:!0},{path:"/blog/graphql-match-microservices/",component:d("/blog/graphql-match-microservices/","527"),exact:!0},{path:"/blog/graphql-microservices-migration/",component:d("/blog/graphql-microservices-migration/","a92"),exact:!0},{path:"/blog/graphql-schema-part-2-1/",component:d("/blog/graphql-schema-part-2-1/","42d"),exact:!0},{path:"/blog/graphql-schema-part-2-2/",component:d("/blog/graphql-schema-part-2-2/","291"),exact:!0},{path:"/blog/graphql-schema-part-2-3/",component:d("/blog/graphql-schema-part-2-3/","319"),exact:!0},{path:"/blog/graphql-schema/",component:d("/blog/graphql-schema/","510"),exact:!0},{path:"/blog/graphql-vs-grpc/",component:d("/blog/graphql-vs-grpc/","d15"),exact:!0},{path:"/blog/graphql-vs-openapi-part-1/",component:d("/blog/graphql-vs-openapi-part-1/","e12"),exact:!0},{path:"/blog/graphql-vs-openapi-part-2/",component:d("/blog/graphql-vs-openapi-part-2/","402"),exact:!0},{path:"/blog/graphql-vs-openapi-part-3/",component:d("/blog/graphql-vs-openapi-part-3/","de6"),exact:!0},{path:"/blog/graphql-vs-rest-vs-grpc/",component:d("/blog/graphql-vs-rest-vs-grpc/","a92"),exact:!0},{path:"/blog/graphql-vue-client/",component:d("/blog/graphql-vue-client/","12b"),exact:!0},{path:"/blog/no-one-talks-about-api-orchestration/",component:d("/blog/no-one-talks-about-api-orchestration/","e22"),exact:!0},{path:"/blog/tags/",component:d("/blog/tags/","e17"),exact:!0},{path:"/blog/tags/angular/",component:d("/blog/tags/angular/","84e"),exact:!0},{path:"/blog/tags/api/",component:d("/blog/tags/api/","561"),exact:!0},{path:"/blog/tags/apollo-client/",component:d("/blog/tags/apollo-client/","78b"),exact:!0},{path:"/blog/tags/backend-for-frontend/",component:d("/blog/tags/backend-for-frontend/","460"),exact:!0},{path:"/blog/tags/best-practices/",component:d("/blog/tags/best-practices/","bb6"),exact:!0},{path:"/blog/tags/debugging/",component:d("/blog/tags/debugging/","c14"),exact:!0},{path:"/blog/tags/design/",component:d("/blog/tags/design/","45b"),exact:!0},{path:"/blog/tags/fetch-api/",component:d("/blog/tags/fetch-api/","aa7"),exact:!0},{path:"/blog/tags/flexibility/",component:d("/blog/tags/flexibility/","951"),exact:!0},{path:"/blog/tags/graph-ql/",component:d("/blog/tags/graph-ql/","353"),exact:!0},{path:"/blog/tags/graphi-ql/",component:d("/blog/tags/graphi-ql/","960"),exact:!0},{path:"/blog/tags/ide/",component:d("/blog/tags/ide/","de8"),exact:!0},{path:"/blog/tags/introspection/",component:d("/blog/tags/introspection/","4de"),exact:!0},{path:"/blog/tags/java-script/",component:d("/blog/tags/java-script/","70d"),exact:!0},{path:"/blog/tags/microservice/",component:d("/blog/tags/microservice/","cd0"),exact:!0},{path:"/blog/tags/microservices/",component:d("/blog/tags/microservices/","7e2"),exact:!0},{path:"/blog/tags/migration/",component:d("/blog/tags/migration/","dc3"),exact:!0},{path:"/blog/tags/node-js/",component:d("/blog/tags/node-js/","f42"),exact:!0},{path:"/blog/tags/open-api/",component:d("/blog/tags/open-api/","68c"),exact:!0},{path:"/blog/tags/performance/",component:d("/blog/tags/performance/","7fe"),exact:!0},{path:"/blog/tags/scalability/",component:d("/blog/tags/scalability/","bae"),exact:!0},{path:"/blog/tags/schema/",component:d("/blog/tags/schema/","f00"),exact:!0},{path:"/blog/tags/security/",component:d("/blog/tags/security/","d43"),exact:!0},{path:"/blog/tags/strategy/",component:d("/blog/tags/strategy/","4f2"),exact:!0},{path:"/blog/tags/tooling/",component:d("/blog/tags/tooling/","1df"),exact:!0},{path:"/blog/tags/urql/",component:d("/blog/tags/urql/","dea"),exact:!0},{path:"/blog/tags/villus/",component:d("/blog/tags/villus/","fb2"),exact:!0},{path:"/blog/tags/vue/",component:d("/blog/tags/vue/","851"),exact:!0},{path:"/blog/tailcall-n+1-identification-algorithm/",component:d("/blog/tailcall-n+1-identification-algorithm/","edd"),exact:!0},{path:"/blog/the-truth-about-scaling-automatic-persisted-queries/",component:d("/blog/the-truth-about-scaling-automatic-persisted-queries/","bb6"),exact:!0},{path:"/blog/unraveling-the-challenges-of-bff-federation/",component:d("/blog/unraveling-the-challenges-of-bff-federation/","0ea"),exact:!0},{path:"/blog/what-is-grpc/",component:d("/blog/what-is-grpc/","d97"),exact:!0},{path:"/blog/writing-a-graphql-backend-by-hand-is-long-gone/",component:d("/blog/writing-a-graphql-backend-by-hand-is-long-gone/","582"),exact:!0},{path:"/contact/",component:d("/contact/","800"),exact:!0},{path:"/playground/",component:d("/playground/","214"),exact:!0},{path:"/search/",component:d("/search/","21e"),exact:!0},{path:"/docs/",component:d("/docs/","1c3"),routes:[{path:"/docs/",component:d("/docs/","55e"),routes:[{path:"/docs/",component:d("/docs/","779"),routes:[{path:"/docs/",component:d("/docs/","90f"),exact:!0,sidebar:"docs"},{path:"/docs/addField-directive/",component:d("/docs/addField-directive/","2c8"),exact:!0,sidebar:"docs"},{path:"/docs/cache-directive/",component:d("/docs/cache-directive/","643"),exact:!0,sidebar:"docs"},{path:"/docs/call-directive/",component:d("/docs/call-directive/","125"),exact:!0,sidebar:"docs"},{path:"/docs/contribution-guidelines/",component:d("/docs/contribution-guidelines/","dbd"),exact:!0,sidebar:"docs"},{path:"/docs/contributors/bounty/",component:d("/docs/contributors/bounty/","6f6"),exact:!0,sidebar:"docs"},{path:"/docs/contributors/integration-testing/",component:d("/docs/contributors/integration-testing/","e4c"),exact:!0,sidebar:"docs"},{path:"/docs/contributors/micro-benchmark/",component:d("/docs/contributors/micro-benchmark/","f95"),exact:!0,sidebar:"docs"},{path:"/docs/contributors/mutability/",component:d("/docs/contributors/mutability/","00b"),exact:!0,sidebar:"docs"},{path:"/docs/contributors/telemetry/",component:d("/docs/contributors/telemetry/","976"),exact:!0,sidebar:"docs"},{path:"/docs/contributors/testing/",component:d("/docs/contributors/testing/","1be"),exact:!0,sidebar:"docs"},{path:"/docs/contributors/wrk-benchmark/",component:d("/docs/contributors/wrk-benchmark/","165"),exact:!0,sidebar:"docs"},{path:"/docs/deploy-graphql-github-actions/",component:d("/docs/deploy-graphql-github-actions/","af9"),exact:!0,sidebar:"docs"},{path:"/docs/deploy-tailcall-graphql-fly-actions/",component:d("/docs/deploy-tailcall-graphql-fly-actions/","c2e"),exact:!0,sidebar:"docs"},{path:"/docs/discriminate/",component:d("/docs/discriminate/","ad3"),exact:!0,sidebar:"docs"},{path:"/docs/expr-directive/",component:d("/docs/expr-directive/","4a0"),exact:!0,sidebar:"docs"},{path:"/docs/field-level-access-control-graphql-authentication/",component:d("/docs/field-level-access-control-graphql-authentication/","daf"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-best-practices-tailcall/",component:d("/docs/graphql-best-practices-tailcall/","783"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-client-performance-tuning/",component:d("/docs/graphql-client-performance-tuning/","039"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-configuration-generation-with-tailcall/",component:d("/docs/graphql-configuration-generation-with-tailcall/","162"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-data-access-parallel-vs-sequence/",component:d("/docs/graphql-data-access-parallel-vs-sequence/","5ec"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-data-dog-telemetry-tailcall/",component:d("/docs/graphql-data-dog-telemetry-tailcall/","4f2"),exact:!0,sidebar:"docs"},{path:"/docs/graphQL-directive/",component:d("/docs/graphQL-directive/","ec2"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-environment-variables/",component:d("/docs/graphql-environment-variables/","d05"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-grpc-tailcall/",component:d("/docs/graphql-grpc-tailcall/","6a9"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-honeycomb-telemetry-tailcall/",component:d("/docs/graphql-honeycomb-telemetry-tailcall/","6a5"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-http-cache-guide-tailcall/",component:d("/docs/graphql-http-cache-guide-tailcall/","744"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-http2-guide-tailcall/",component:d("/docs/graphql-http2-guide-tailcall/","bb0"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-javascript-customization/",component:d("/docs/graphql-javascript-customization/","523"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-logging-levels-tailcall/",component:d("/docs/graphql-logging-levels-tailcall/","f46"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-n-plus-one-problem-solved-tailcall/",component:d("/docs/graphql-n-plus-one-problem-solved-tailcall/","485"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-newrelic-guide-telemetry/",component:d("/docs/graphql-newrelic-guide-telemetry/","1c9"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-playground-guide/",component:d("/docs/graphql-playground-guide/","55c"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-resolver-context-tailcall/",component:d("/docs/graphql-resolver-context-tailcall/","cc9"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-rest-integration/",component:d("/docs/graphql-rest-integration/","dc5"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-scalars-guide/",component:d("/docs/graphql-scalars-guide/","c04"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-telemetry-guide/",component:d("/docs/graphql-telemetry-guide/","473"),exact:!0,sidebar:"docs"},{path:"/docs/graphql-watch-mode-tailcall/",component:d("/docs/graphql-watch-mode-tailcall/","d15"),exact:!0,sidebar:"docs"},{path:"/docs/grpc-directive/",component:d("/docs/grpc-directive/","c38"),exact:!0,sidebar:"docs"},{path:"/docs/http-directive/",component:d("/docs/http-directive/","8f0"),exact:!0,sidebar:"docs"},{path:"/docs/integrate-apollo-federation-graphql-tailcall-subgraph/",component:d("/docs/integrate-apollo-federation-graphql-tailcall-subgraph/","e07"),exact:!0,sidebar:"docs"},{path:"/docs/integrate-apollo-studio-graphql-tailcall/",component:d("/docs/integrate-apollo-studio-graphql-tailcall/","dd9"),exact:!0,sidebar:"docs"},{path:"/docs/js-directive/",component:d("/docs/js-directive/","e06"),exact:!0,sidebar:"docs"},{path:"/docs/link-directive/",component:d("/docs/link-directive/","df3"),exact:!0,sidebar:"docs"},{path:"/docs/llm-integration/",component:d("/docs/llm-integration/","bb8"),exact:!0,sidebar:"docs"},{path:"/docs/modify-directive/",component:d("/docs/modify-directive/","122"),exact:!0,sidebar:"docs"},{path:"/docs/omit-directive/",component:d("/docs/omit-directive/","7fc"),exact:!0,sidebar:"docs"},{path:"/docs/protected-directive/",component:d("/docs/protected-directive/","d9b"),exact:!0,sidebar:"docs"},{path:"/docs/rest-directive/",component:d("/docs/rest-directive/","4c6"),exact:!0,sidebar:"docs"},{path:"/docs/server-directive/",component:d("/docs/server-directive/","b5c"),exact:!0,sidebar:"docs"},{path:"/docs/tailcall-dsl-graphql-custom-directives/",component:d("/docs/tailcall-dsl-graphql-custom-directives/","c44"),exact:!0,sidebar:"docs"},{path:"/docs/tailcall-graphql-cli/",component:d("/docs/tailcall-graphql-cli/","e17"),exact:!0,sidebar:"docs"},{path:"/docs/tailcall-on-aws/",component:d("/docs/tailcall-on-aws/","1b7"),exact:!0,sidebar:"docs"},{path:"/docs/telemetry-directive/",component:d("/docs/telemetry-directive/","794"),exact:!0,sidebar:"docs"},{path:"/docs/upstream-directive/",component:d("/docs/upstream-directive/","874"),exact:!0,sidebar:"docs"}]}]}]},{path:"/graphql/",component:d("/graphql/","ec0"),routes:[{path:"/graphql/",component:d("/graphql/","7af"),routes:[{path:"/graphql/",component:d("/graphql/","cca"),routes:[{path:"/graphql/",component:d("/graphql/","ace"),exact:!0,sidebar:"graphql"},{path:"/graphql/cto-guide/",component:d("/graphql/cto-guide/","f26"),exact:!0,sidebar:"graphql"},{path:"/graphql/faq/",component:d("/graphql/faq/","836"),exact:!0,sidebar:"graphql"},{path:"/graphql/graphql-conf-hackathon-2024/",component:d("/graphql/graphql-conf-hackathon-2024/","627"),exact:!0},{path:"/graphql/graphql-directives/",component:d("/graphql/graphql-directives/","18c"),exact:!0,sidebar:"graphql"},{path:"/graphql/graphql-fragments/",component:d("/graphql/graphql-fragments/","984"),exact:!0,sidebar:"graphql"},{path:"/graphql/graphql-introspection/",component:d("/graphql/graphql-introspection/","bb5"),exact:!0,sidebar:"graphql"},{path:"/graphql/graphql-mutations/",component:d("/graphql/graphql-mutations/","7d7"),exact:!0,sidebar:"graphql"},{path:"/graphql/graphql-queries/",component:d("/graphql/graphql-queries/","9e6"),exact:!0,sidebar:"graphql"},{path:"/graphql/graphql-react-client/",component:d("/graphql/graphql-react-client/","76e"),exact:!0,sidebar:"graphql"},{path:"/graphql/graphql-variables/",component:d("/graphql/graphql-variables/","15a"),exact:!0,sidebar:"graphql"},{path:"/graphql/graphql-vs-rest-api-comparison/",component:d("/graphql/graphql-vs-rest-api-comparison/","c72"),exact:!0,sidebar:"graphql"},{path:"/graphql/problem-statement/",component:d("/graphql/problem-statement/","dfd"),exact:!0,sidebar:"graphql"},{path:"/graphql/schemas-and-types/",component:d("/graphql/schemas-and-types/","ef1"),exact:!0,sidebar:"graphql"},{path:"/graphql/what-is-graphql/",component:d("/graphql/what-is-graphql/","2e0"),exact:!0,sidebar:"graphql"}]}]}]},{path:"/privacy/",component:d("/privacy/","2da"),routes:[{path:"/privacy/",component:d("/privacy/","7f6"),routes:[{path:"/privacy/",component:d("/privacy/","88d"),routes:[{path:"/privacy/",component:d("/privacy/","525"),exact:!0,sidebar:"privacy"}]}]}]},{path:"/",component:d("/","e5f"),exact:!0},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(96540),a=n(74848);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},38536:(e,t,n)=>{"use strict";var r=n(96540),a=n(5338),o=n(80545),i=n(54625),l=n(4784),s=n(38193);const c=[n(10119),n(26134),n(76294),n(51043)];var u=n(35947),d=n(56347),p=n(22831),f=n(74848);function g(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(5260),m=n(44586),v=n(86025),b=n(6342),y=n(45500),A=n(32131),w=n(14090),k=n(2967),x=n(70440),S=n(41463);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.A)(),r=(0,A.o)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,f.jsxs)(h.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.A)(),{pathname:r}=(0,d.zy)();return e+(0,x.Ks)((0,v.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function j(){const{i18n:{currentLocale:e}}=(0,m.A)(),{metadata:t,image:n}=(0,b.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.w})]}),n&&(0,f.jsx)(y.be,{image:n}),(0,f.jsx)(C,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.A,{tag:k.C,locale:e}),(0,f.jsx)(h.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const O=new Map;var P=n(6125),T=n(26988),L=n(205);function I(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const q=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),I("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,p.u)(u.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?I("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=I("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(q,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const W=R,M="__docusaurus-base-url-issue-banner-container",B="__docusaurus-base-url-issue-banner",D="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{let{route:t}=e;return!0===t.exact})))return O.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,f.jsx)(W,{location:e,children:Y})}function G(){return(0,f.jsx)(V.A,{children:(0,f.jsx)(T.l,{children:(0,f.jsxs)(P.x,{children:[(0,f.jsxs)(g,{children:[(0,f.jsx)(_,{}),(0,f.jsx)(j,{}),(0,f.jsx)(U,{}),(0,f.jsx)(Q,{})]}),(0,f.jsx)(H,{})]})})})}var Z=n(84054);const K=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var J=n(86921);const $=new Set,ee=new Set,te=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ne={prefetch:e=>{if(!(e=>!te()&&!ee.has(e)&&!$.has(e))(e))return!1;$.add(e);const t=(0,p.u)(u.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Z).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,J.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!te()&&!ee.has(e))(e)&&(ee.add(e),N(e))},re=Object.freeze(ne);function ae(e){let{children:t}=e;return"hash"===l.default.future.experimental_router?(0,f.jsx)(i.I9,{children:t}):(0,f.jsx)(i.Kd,{children:t})}const oe=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=re;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(o.vd,{children:(0,f.jsx)(ae,{children:(0,f.jsx)(G,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(oe)window.docusaurusRoot=a.hydrateRoot(e,t,{onRecoverableError:n});else{const r=a.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};N(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},26988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(96540),a=n(4784);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"getting-started","docs":[{"id":"apollo-federation-subgraph","path":"/docs/integrate-apollo-federation-graphql-tailcall-subgraph","sidebar":"docs"},{"id":"apollo-studio","path":"/docs/integrate-apollo-studio-graphql-tailcall","sidebar":"docs"},{"id":"auth","path":"/docs/field-level-access-control-graphql-authentication","sidebar":"docs"},{"id":"cli","path":"/docs/tailcall-graphql-cli","sidebar":"docs"},{"id":"client-tuning","path":"/docs/graphql-client-performance-tuning","sidebar":"docs"},{"id":"config-generation","path":"/docs/graphql-configuration-generation-with-tailcall","sidebar":"docs"},{"id":"context","path":"/docs/graphql-resolver-context-tailcall","sidebar":"docs"},{"id":"contributors/bounty","path":"/docs/contributors/bounty","sidebar":"docs"},{"id":"contributors/guidelines","path":"/docs/contribution-guidelines","sidebar":"docs"},{"id":"contributors/integration-testing","path":"/docs/contributors/integration-testing","sidebar":"docs"},{"id":"contributors/micro-benchmark","path":"/docs/contributors/micro-benchmark","sidebar":"docs"},{"id":"contributors/mutability","path":"/docs/contributors/mutability","sidebar":"docs"},{"id":"contributors/telemetry","path":"/docs/contributors/telemetry","sidebar":"docs"},{"id":"contributors/testing","path":"/docs/contributors/testing","sidebar":"docs"},{"id":"contributors/wrk-benchmark","path":"/docs/contributors/wrk-benchmark","sidebar":"docs"},{"id":"conventions","path":"/docs/graphql-best-practices-tailcall","sidebar":"docs"},{"id":"data-dog","path":"/docs/graphql-data-dog-telemetry-tailcall","sidebar":"docs"},{"id":"directives","path":"/docs/tailcall-dsl-graphql-custom-directives","sidebar":"docs"},{"id":"directives/addField","path":"/docs/addField-directive","sidebar":"docs"},{"id":"directives/cache","path":"/docs/cache-directive","sidebar":"docs"},{"id":"directives/call","path":"/docs/call-directive","sidebar":"docs"},{"id":"directives/discriminate","path":"/docs/discriminate","sidebar":"docs"},{"id":"directives/expr","path":"/docs/expr-directive","sidebar":"docs"},{"id":"directives/graphQL","path":"/docs/graphQL-directive","sidebar":"docs"},{"id":"directives/grpc","path":"/docs/grpc-directive","sidebar":"docs"},{"id":"directives/http","path":"/docs/http-directive","sidebar":"docs"},{"id":"directives/js","path":"/docs/js-directive","sidebar":"docs"},{"id":"directives/link","path":"/docs/link-directive","sidebar":"docs"},{"id":"directives/modify","path":"/docs/modify-directive","sidebar":"docs"},{"id":"directives/omit","path":"/docs/omit-directive","sidebar":"docs"},{"id":"directives/protected","path":"/docs/protected-directive","sidebar":"docs"},{"id":"directives/rest","path":"/docs/rest-directive","sidebar":"docs"},{"id":"directives/server","path":"/docs/server-directive","sidebar":"docs"},{"id":"directives/telemetry","path":"/docs/telemetry-directive","sidebar":"docs"},{"id":"directives/upstream","path":"/docs/upstream-directive","sidebar":"docs"},{"id":"environment-variables","path":"/docs/graphql-environment-variables","sidebar":"docs"},{"id":"execution-strategy","path":"/docs/graphql-data-access-parallel-vs-sequence","sidebar":"docs"},{"id":"getting-started","path":"/docs/","sidebar":"docs"},{"id":"gh-action","path":"/docs/deploy-graphql-github-actions","sidebar":"docs"},{"id":"grpc","path":"/docs/graphql-grpc-tailcall","sidebar":"docs"},{"id":"honey-comb","path":"/docs/graphql-honeycomb-telemetry-tailcall","sidebar":"docs"},{"id":"http-cache","path":"/docs/graphql-http-cache-guide-tailcall","sidebar":"docs"},{"id":"http2","path":"/docs/graphql-http2-guide-tailcall","sidebar":"docs"},{"id":"llm","path":"/docs/llm-integration","sidebar":"docs"},{"id":"logging","path":"/docs/graphql-logging-levels-tailcall","sidebar":"docs"},{"id":"N+1","path":"/docs/graphql-n-plus-one-problem-solved-tailcall","sidebar":"docs"},{"id":"new-relic","path":"/docs/graphql-newrelic-guide-telemetry","sidebar":"docs"},{"id":"playground","path":"/docs/graphql-playground-guide","sidebar":"docs"},{"id":"rest","path":"/docs/graphql-rest-integration","sidebar":"docs"},{"id":"scalar","path":"/docs/graphql-scalars-guide","sidebar":"docs"},{"id":"scripting","path":"/docs/graphql-javascript-customization","sidebar":"docs"},{"id":"tailcall-on-aws","path":"/docs/tailcall-on-aws","sidebar":"docs"},{"id":"tailcall-on-fly","path":"/docs/deploy-tailcall-graphql-fly-actions","sidebar":"docs"},{"id":"telemetry","path":"/docs/graphql-telemetry-guide","sidebar":"docs"},{"id":"watch-mode","path":"/docs/graphql-watch-mode-tailcall","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/","label":"getting-started"}}}}],"breadcrumbs":true},"privacy":{"path":"/privacy","versions":[{"name":"current","label":"Next","isLast":true,"path":"/privacy","mainDocId":"index","docs":[{"id":"index","path":"/privacy/","sidebar":"privacy"}],"draftIds":[],"sidebars":{"privacy":{"link":{"path":"/privacy/","label":"Policies"}}}}],"breadcrumbs":true},"graphql":{"path":"/graphql","versions":[{"name":"current","label":"Next","isLast":true,"path":"/graphql","mainDocId":"graphql","docs":[{"id":"cto-guide","path":"/graphql/cto-guide","sidebar":"graphql"},{"id":"directives","path":"/graphql/graphql-directives","sidebar":"graphql"},{"id":"faq","path":"/graphql/faq","sidebar":"graphql"},{"id":"fragments","path":"/graphql/graphql-fragments","sidebar":"graphql"},{"id":"graphql","path":"/graphql/","sidebar":"graphql"},{"id":"graphql-conf-hackathon-2024","path":"/graphql/graphql-conf-hackathon-2024"},{"id":"graphql-react-client","path":"/graphql/graphql-react-client","sidebar":"graphql"},{"id":"graphql-vs-rest","path":"/graphql/graphql-vs-rest-api-comparison","sidebar":"graphql"},{"id":"introspection","path":"/graphql/graphql-introspection","sidebar":"graphql"},{"id":"mutations","path":"/graphql/graphql-mutations","sidebar":"graphql"},{"id":"problem-statement","path":"/graphql/problem-statement","sidebar":"graphql"},{"id":"queries","path":"/graphql/graphql-queries","sidebar":"graphql"},{"id":"schema-and-types","path":"/graphql/schemas-and-types","sidebar":"graphql"},{"id":"variables","path":"/graphql/graphql-variables","sidebar":"graphql"},{"id":"what-is-graphql","path":"/graphql/what-is-graphql","sidebar":"graphql"}],"draftIds":[],"sidebars":{"graphql":{"link":{"path":"/graphql/","label":"graphql"}}}}],"breadcrumbs":true}},"docusaurus-plugin-content-blog":{"default":{"recentBlogPostsMetadata":[{"date":"2024-08-30T00:00:00.000Z","title":"Lessons from the Frontlines: Our GraphQL Adventure at Dream11","description":"Learn how Dream11 leverages GraphQL to build a scalable, performant, and user-friendly fantasy sports platform.","authors":[{"name":"Tushar Mathur","title":"CEO @ Tailcall | | Ex VP of Engineering @ Dream11","url":"https://github.com/tusharmath","image_url":"https://avatars.githubusercontent.com/u/194482?v=4","imageURL":"https://avatars.githubusercontent.com/u/194482?v=4","socials":{},"key":null,"page":null},{"name":"Amit Singh","title":"Head of Growth and Strategy @ Tailcall | Ex Director of Engineering @ Dream11","url":"https://github.com/amitksingh1490","image_url":"https://avatars.githubusercontent.com/u/23661702?v=5","imageURL":"https://avatars.githubusercontent.com/u/23661702?v=5","socials":{},"key":null,"page":null}],"permalink":"/blog/dream11-graphql-case-study"},{"date":"2024-08-18T00:00:00.000Z","title":"GraphQL and Microservices: A Match Made in Heaven?","description":"Is it really worth combining GraphQL with microservices or is it just a new shiny object with all the hype?","authors":[{"name":"Hunain Ahmed","title":"A freelance software developer, always working on something new and fascinating.","url":"https://github.com/hunxjunedo","image_url":"https://avatars.githubusercontent.com/u/89797440?v=4","imageURL":"https://avatars.githubusercontent.com/u/89797440?v=4","socials":{},"key":null,"page":null},{"name":"Jacob Gaffke","title":"Freelance web and game developer with experience in Rust, Godot and Web3.","url":"https://masterofgiraffe.com/","image_url":"https://masterofgiraffe.com/favicon.ico","imageURL":"https://masterofgiraffe.com/favicon.ico","socials":{},"key":null,"page":null}],"permalink":"/blog/graphql-match-microservices"},{"date":"2024-08-15T00:00:00.000Z","title":"Simplify your monolith to microservices migration using GraphQL","description":"Streamline your migration from monolithic architecture to microservices with expert tips, practical examples, and step-by-step guidance using GraphQL.","authors":[{"name":"Jacob Gaffke","title":"Freelance web and game developer with experience in Rust, Godot and Web3.","url":"https://masterofgiraffe.com/","image_url":"https://masterofgiraffe.com/favicon.ico","imageURL":"https://masterofgiraffe.com/favicon.ico","socials":{},"key":null,"page":null}],"permalink":"/blog/graphql-microservices-migration"},{"date":"2024-08-13T00:00:00.000Z","title":"API Strategy: Driving Innovation and Growth in Modern Business","description":"Learn how a well-defined API strategy can drive innovation, improve efficiency, and create new opportunities for growth in modern businesses.","authors":[{"name":"Amit Singh","title":"Head of Growth and Strategy @ Tailcall","url":"https://github.com/amitksingh1490","image_url":"https://avatars.githubusercontent.com/u/23661702?v=5","imageURL":"https://avatars.githubusercontent.com/u/23661702?v=5","socials":{},"key":null,"page":null}],"permalink":"/blog/api-strategy"},{"date":"2024-08-04T00:00:00.000Z","title":"How Tailcall statically identifies N+1 issues in GraphQL","description":"A deep dive into the implementation details of the N+1 tracker","authors":[{"name":"Tushar Mathur","title":"CEO @ Tailcall | Love to talk about programming, scale, distributed systems, and building high-performance systems.","url":"https://github.com/tusharmath","image_url":"https://avatars.githubusercontent.com/u/194482?v=4","imageURL":"https://avatars.githubusercontent.com/u/194482?v=4","socials":{},"key":null,"page":null}],"permalink":"/blog/tailcall-n+1-identification-algorithm"},{"date":"2024-08-01T00:00:00.000Z","title":"GraphQL in Vue: 5 Best Approaches for Data Fetching","description":"Unleash the power of GraphQL in your Vue applications! Explore the top 5 methods for seamless data fetching, including in-depth comparisons and error handling strategies.","authors":[{"name":"David Onyedikachi","title":"NodeJs-Golang Backend Developer, with experience in Python, Rust, and Solidity","url":"https://github.com/onyedikachi-david","image_url":"https://avatars.githubusercontent.com/u/51977119?v=4","imageURL":"https://avatars.githubusercontent.com/u/51977119?v=4","socials":{},"key":null,"page":null}],"permalink":"/blog/graphql-vue-client"},{"date":"2024-07-31T00:00:00.000Z","title":"GraphQL vs OpenAPI: Part 3 of the API Comparison Series","description":"An exploration of the security, tooling, and future prospects of GraphQL and OpenAPI.","authors":[{"name":"Shivam Chaudhary","title":"Cloud and Infra Associate","url":"https://blog.shivamchaudhary.com","image_url":"https://avatars.githubusercontent.com/u/68141773?v=4","imageURL":"https://avatars.githubusercontent.com/u/68141773?v=4","socials":{},"key":null,"page":null}],"permalink":"/blog/graphql-vs-openapi-part-3"},{"date":"2024-07-30T00:00:00.000Z","title":"GraphQL vs OpenAPI: Part 2 of the API Comparison Series","description":"A detailed comparison of the performance, flexibility, and ecosystems of GraphQL and OpenAPI.","authors":[{"name":"Shivam Chaudhary","title":"Cloud and Infra Associate","url":"https://blog.shivamchaudhary.com","image_url":"https://avatars.githubusercontent.com/u/68141773?v=4","imageURL":"https://avatars.githubusercontent.com/u/68141773?v=4","socials":{},"key":null,"page":null}],"permalink":"/blog/graphql-vs-openapi-part-2"},{"date":"2024-07-29T00:00:00.000Z","title":"GraphQL vs OpenAPI: Part 1 of the API Comparison Series","description":"An Introduction to GraphQL and OpenAPI, outlining their core concepts and initial setup.","authors":[{"name":"Shivam Chaudhary","title":"Cloud and Infra Associate","url":"https://blog.shivamchaudhary.com","image_url":"https://avatars.githubusercontent.com/u/68141773?v=4","imageURL":"https://avatars.githubusercontent.com/u/68141773?v=4","socials":{},"key":null,"page":null}],"permalink":"/blog/graphql-vs-openapi-part-1"},{"date":"2024-07-26T00:00:00.000Z","title":"GraphQL vs gRPC: Which is Better? Uncover the Best Choice!","description":"Discover the differences between GraphQL and gRPC. Learn which is better for your needs in this comprehensive guide. Find out now!","authors":[{"name":"Hunain Ahmed","title":"A freelance software developer, always working on something new and fascinating.","url":"https://github.com/hunxjunedo","image_url":"https://avatars.githubusercontent.com/u/89797440?v=4","imageURL":"https://avatars.githubusercontent.com/u/89797440?v=4","socials":{},"key":null,"page":null}],"permalink":"/blog/graphql-vs-grpc"}]}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(22654);const s=JSON.parse('{"docusaurusVersion":"3.6.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.6.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.6.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.6.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.6.3"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.6.3"},"docusaurus-plugin-content-blog":{"type":"project"},"docusaurus-tailwindcss":{"type":"local"}}}');var c=n(74848);const u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},67489:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(96540),a=n(38193),o=n(5260),i=n(70440),l=n(48415),s=n(53102),c=n(74848);function u(e){let{error:t,tryAgain:n}=e;return(0,c.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.rA)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,c.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(p,{children:(0,c.jsxs)(h,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(o.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(l.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const g=e=>(0,c.jsx)(f,{...e});class h extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??g)(e)}return e??null}}},38193:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);var r=n(80545),a=n(74848);function o(e){return(0,a.jsx)(r.mg,{...e})}},28774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(96540),a=n(54625),o=n(70440),i=n(44586),l=n(16654),s=n(38193),c=n(63427),u=n(86025),d=n(74848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:g,isActive:h,"data-noBrokenLinkCheck":m,autoAddBaseUrl:v=!0,...b}=e;const{siteConfig:y}=(0,i.A)(),{trailingSlash:A,baseUrl:w}=y,k=y.future.experimental_router,{withBaseUrl:x}=(0,u.hH)(),S=(0,c.A)(),E=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>E.current));const C=p||f;const j=(0,l.A)(C),O=C?.replace("pathname://","");let P=void 0!==O?(T=O,v&&(e=>e.startsWith("/"))(T)?x(T):T):void 0;var T;"hash"===k&&P?.startsWith("./")&&(P=P?.slice(1)),P&&j&&(P=(0,o.Ks)(P,{trailingSlash:A,baseUrl:w}));const L=(0,r.useRef)(!1),I=n?a.k2:a.N_,q=s.A.canUseIntersectionObserver,N=(0,r.useRef)(),R=()=>{L.current||null==P||(window.docusaurus.preload(P),L.current=!0)};(0,r.useEffect)((()=>(!q&&j&&s.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{q&&N.current&&N.current.disconnect()})),[N,P,q,j]);const W=P?.startsWith("#")??!1,M=!b.target||"_self"===b.target,B=!P||!j||!M||W&&"hash"!==k;m||!W&&B||S.collectLink(P),b.id&&S.collectAnchor(b.id);const D={};return B?(0,d.jsx)("a",{ref:E,href:P,...C&&!j&&{target:"_blank",rel:"noopener noreferrer"},...b,...D}):(0,d.jsx)(I,{...b,onMouseEnter:R,onTouchStart:R,innerRef:e=>{E.current=e,q&&e&&j&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))}))})),N.current.observe(e))},to:P,...n&&{isActive:h,activeClassName:g},...D})}const f=r.forwardRef(p)},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>s});var r=n(96540),a=n(74848);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(22654);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(l({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=l({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},16654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},86025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(96540),a=n(44586),o=n(16654);function i(){const{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,l=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:a=!1,absolute:i=!1}={},router:l}=e;if(!r||r.startsWith("#")||(0,o.z)(r))return r;if("hash"===l)return r.startsWith("/")?`.${r}`:`./${r}`;if(a)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const s=r.startsWith(n)?r:n+r.replace(/^\//,"");return i?t+s:s}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:l}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},63427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540);n(74848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},44586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540),a=n(26988);function o(){return(0,r.useContext)(a.o)}},66588:(e,t,n)=>{"use strict";n.d(t,{P_:()=>i,kh:()=>o});var r=n(44586),a=n(17065);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=o(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},92303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540);const a=n(38193).A.canUseDOM?r.useLayoutEffect:r.useEffect},36803:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540),a=n(53102);function o(){const e=r.useContext(a.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},86921:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},53102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(96540),a=n(74848);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:l,children:t})}},53886:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>m,XK:()=>y,g1:()=>b});var r=n(96540),a=n(48295),o=n(17065),i=n(6342),l=n(70679),s=n(89532),c=n(74848);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,l.Wf)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,l.Wf)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,l.Wf)(u(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function g(){const e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,c.jsx)(f.Provider,{value:n,children:t})}function m(e){let{children:t}=e;return(0,c.jsx)(h,{children:t})}function v(){const e=(0,r.useContext)(f);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=o.W);const t=(0,a.ht)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a.Gy)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},82565:(e,t,n)=>{"use strict";n.d(t,{k:()=>o,v:()=>i});var r=n(48295),a=n(53886);function o(e,t){return`docs-${e}-${t}`}function i(){const e=(0,r.Gy)(),t=(0,r.gk)(),n=(0,a.XK)();return[...Object.keys(e).map((function(r){const a=t?.activePlugin.pluginId===r?t.activeVersion:void 0,i=n[r],l=e[r].versions.find((e=>e.isLast));return o(r,(a??i??l).name)}))]}},60609:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>c});var r=n(96540),a=n(89532),o=n(74848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(l.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(l);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},26972:(e,t,n)=>{"use strict";n.d(t,{B5:()=>x,Nr:()=>p,OF:()=>y,QB:()=>k,Vd:()=>A,Y:()=>v,fW:()=>w,w8:()=>h});var r=n(96540),a=n(56347),o=n(22831),i=n(48295),l=n(99169),s=n(31682),c=n(53886),u=n(23025),d=n(60609);function p(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=p(t);if(e)return e}}(e):void 0:e.href}const f=(e,t)=>void 0!==e&&(0,l.ys)(e,t),g=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||g(e.items,t))}function m(e,t){switch(e.type){case"category":return h(e,t)||e.items.some((e=>m(e,t)));case"link":return!e.unlisted||h(e,t);default:return!0}}function v(e,t){return(0,r.useMemo)((()=>e.filter((e=>m(e,t)))),[e,t])}function b(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,l.ys)(o.href,n)||e(o.items))||"link"===o.type&&(0,l.ys)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function y(){const e=(0,d.t)(),{pathname:t}=(0,a.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?b({sidebarItems:e.items,pathname:t}):null}function A(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,c.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)((()=>(0,s.sb)([t,n,a].filter(Boolean))),[t,n,a])}function w(e,t){const n=A(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function k(e,t){const n=A(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,s.sb)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t}=e;const n=(0,a.zy)(),r=(0,u.r)(),i=t.routes,l=i.find((e=>(0,a.B6)(n.pathname,e)));if(!l)return null;const s=l.sidebar,c=s?r.docsSidebars[s]:void 0;return{docElement:(0,o.v)(i),sidebarName:s,sidebarItems:c}}},23025:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(96540),a=n(89532),o=n(74848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},48295:(e,t,n)=>{"use strict";n.d(t,{zK:()=>h,vT:()=>d,gk:()=>p,Gy:()=>c,HW:()=>m,ht:()=>u,r7:()=>g,jh:()=>f});var r=n(56347),a=n(66588);const o=e=>e.versions.find((e=>e.isLast));function i(e,t){return[...e.versions].sort(((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0)).find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=i(e,t),a=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const s={},c=()=>(0,a.kh)("docusaurus-plugin-content-docs")??s,u=e=>{try{return(0,a.P_)("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function d(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function p(e){void 0===e&&(e={});const t=d(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function f(e){return u(e).versions}function g(e){const t=u(e);return o(t)}function h(e){const t=u(e),{pathname:n}=(0,r.zy)();return l(t,n)}function m(e){const t=u(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=o(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},76294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},26134:(e,t,n)=>{"use strict";var r=n(71765),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t,o=globalThis.Prism;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(19700),n(8196)(`./prism-${e}`)})),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=e)}(r.My)},51107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(34164),a=n(21312),o=n(6342),i=n(28774),l=n(63427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(74848);function u(e){let{as:t,id:n,...u}=e;const d=(0,l.A)(),{navbar:{hideOnScroll:p}}=(0,o.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},43186:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(74848);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},23465:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(28774),a=n(86025),o=n(44586),i=n(6342),l=n(21122),s=n(74848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Ay)(t.src),dark:(0,a.Ay)(t.srcDark||t.src)},i=(0,s.jsx)(l.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,o.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,a.Ay)(l?.href||"/"),g=n?"":t,h=l?.alt??g;return(0,s.jsxs)(r.A,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(c,{logo:l,alt:h,imageClassName:u}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},41463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);var r=n(5260),a=n(74848);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},21122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(96540),a=n(34164),o=n(92303),i=n(95293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(74848);function c(e){let{className:t,children:n}=e;const c=(0,o.A)(),{colorMode:u}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.A)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:o},e)}))})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(c,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},41422:(e,t,n)=>{"use strict";n.d(t,{N:()=>v,u:()=>c});var r=n(96540),a=n(38193),o=n(205),i=n(53109),l=n(74848);const s="ease-in-out";function c(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function g(e){if(!a.A.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),(0,l.jsx)(t,{ref:u,style:c?void 0:g(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:s,children:a})}function m(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[s,c]=(0,r.useState)(t);return(0,o.A)((()=>{t||i(!0)}),[t]),(0,o.A)((()=>{a&&c(t)}),[a,t]),a?(0,l.jsx)(h,{...n,collapsed:s}):null}function v(e){let{lazy:t,...n}=e;const r=t?m:h;return(0,l.jsx)(r,{...n})}},65041:(e,t,n)=>{"use strict";n.d(t,{M:()=>h,o:()=>g});var r=n(96540),a=n(92303),o=n(70679),i=n(89532),l=n(6342),s=n(74848);const c=(0,o.Wf)("docusaurus.announcement.dismiss"),u=(0,o.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function g(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},95293:(e,t,n)=>{"use strict";n.d(t,{G:()=>v,a:()=>m});var r=n(96540),a=n(38193),o=n(89532),i=n(70679),l=n(6342),s=n(74848);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,g=e=>a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[a,o]=(0,r.useState)(g(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,s.jsx)(c.Provider,{value:n,children:t})}function v(){const e=(0,r.useContext)(c);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},22069:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(96540),a=n(75600),o=n(24581),i=n(57485),l=n(6342),s=n(89532),c=n(74848);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,l.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[s,c]=(0,r.useState)(!1);(0,i.$Z)((()=>{if(s)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:s})),[e,n,u,s])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},75600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>s,y_:()=>l});var r=n(96540),a=n(89532),o=n(74848);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Be)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(96540);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},24255:(e,t,n)=>{"use strict";n.d(t,{b:()=>l,w:()=>s});var r=n(96540),a=n(44586),o=n(57485);const i="q";function l(){return(0,o.l)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.A)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},24581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(96540),a=n(38193);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,l]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){l(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},17559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},53109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},20481:(e,t,n)=>{"use strict";n.d(t,{s:()=>a});var r=n(44586);function a(e){const{siteConfig:t}=(0,r.A)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},57485:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>i,aZ:()=>s,l:()=>c});var r=n(96540),a=n(56347),o=n(89532);function i(e){!function(e){const t=(0,a.W6)(),n=(0,o._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function l(e){const t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}function s(e){return l((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=s(e)??"",n=function(e){const t=(0,a.W6)();return(0,r.useCallback)(((n,r)=>{const a=new URLSearchParams(t.location.search);n?a.set(e,n):a.delete(e),(r?.push?t.push:t.replace)({search:a.toString()})}),[e,t])}(e);return[t,n]}},31682:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{XI:()=>r,sb:()=>a})},45500:(e,t,n)=>{"use strict";n.d(t,{Jx:()=>f,be:()=>u,e3:()=>p});var r=n(96540),a=n(34164),o=n(5260),i=n(36803),l=n(86025),s=n(20481),c=n(74848);function u(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const u=(0,s.s)(t),{withBaseUrl:d}=(0,l.hH)(),p=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(o.A,{children:[t&&(0,c.jsx)("title",{children:u}),t&&(0,c.jsx)("meta",{property:"og:title",content:u}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),i]})}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.A)(i,t);return(0,c.jsxs)(d.Provider,{value:l,children:[(0,c.jsx)(o.A,{children:(0,c.jsx)("html",{className:l})}),n]})}function f(e){let{children:t}=e;const n=(0,i.A)(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(p,{className:(0,a.A)(r,o),children:t})}},89532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>u});var r=n(96540),a=n(205),o=n(74848);function i(e){const t=(0,r.useRef)(e);return(0,a.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,a.A)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},91252:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{G:()=>r})},99169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(96540),a=n(35947),o=n(44586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.A,baseUrl:e})),[e])}},23104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>u,a_:()=>g,gk:()=>h});var r=n(96540),a=n(38193),o=n(92303),i=n(205),l=n(89532),s=n(74848);const c=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(c.Provider,{value:n,children:t})}function d(){const e=(0,r.useContext)(c);if(null==e)throw new l.dV("ScrollControllerProvider");return e}const p=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),a=(0,r.useRef)(p()),o=(0,l._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=p();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function g(){const e=d(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,i.A)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function h(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{C:()=>r});const r="default"},70679:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>u,Dv:()=>d});var r=n(96540);const a=JSON.parse('{"N":"localStorage","M":""}'),o=a.N;function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const c={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){const n=`${e}${a.M}`;if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(n);const r=l(t?.persistence);return null===r?c:{get:()=>{try{return r.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=r.getItem(n);r.setItem(n,e),i({key:n,oldValue:t,newValue:e,storage:r})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=r.getItem(n);r.removeItem(n),i({key:n,oldValue:e,newValue:null,storage:r})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===r&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?c:u(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},32131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(44586),a=n(56347),o=n(70440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,a.zy)(),c=(0,o.Ks)(s,{trailingSlash:n,baseUrl:e}),u=l===i?e:e.replace(`/${l}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},75062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(96540),a=n(56347),o=n(89532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(44586);function a(){return(0,r.A)().siteConfig.themeConfig}},38126:(e,t,n)=>{"use strict";n.d(t,{c:()=>a});var r=n(44586);function a(){const{siteConfig:{themeConfig:e}}=(0,r.A)();return e}},51062:(e,t,n)=>{"use strict";n.d(t,{C:()=>l});var r=n(96540),a=n(91252),o=n(86025),i=n(38126);function l(){const{withBaseUrl:e}=(0,o.hH)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.c)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.G)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},12983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,c=n,c?a(s):o(s));var s,c;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;const r=n(42566);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},80253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){if(t.cause)return[t,...e(t.cause)];return[t]}},70440:(e,t,n)=>{"use strict";t.rA=t.Ks=t.LU=void 0;const r=n(31635);t.LU="__blog-post-container";var a=n(12983);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(a).default}});var o=n(42566);var i=n(80253);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},42566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){if(""===t)return e;return e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},75957:(e,t,n)=>{"use strict";n.d(t,{Cl:()=>y,K1:()=>f,Kw:()=>s,Ng:()=>c,PX:()=>h,Sx:()=>m,V$:()=>p,YZ:()=>g,eN:()=>b,hF:()=>k,hZ:()=>l,kK:()=>A,lj:()=>o,nu:()=>u,rR:()=>v,ue:()=>i,ul:()=>w});n(96540);var r=n(10737),a=n(74848);const o="https://github.com/tailcallhq/graphql-benchmarks#benchmark-results",i="https://hooks.zapier.com/hooks/catch/2793322/3a1gxp2/",l="AW-16578154380/3FH_CJrawsgZEIyfiuE9";let s=function(e){return e.USER_CONSENT="userConsent",e}({});const c={categoryFacet:"category",searchModalPlaceholder:"What do you want to know about graphql ?"},u=[{name:"Digital Ocean",logo:n(23440).A},{name:"Vercel",logo:n(89200).A},{name:"Fastly",logo:n(86798).A},{name:"Cloud Flare",logo:n(56572).A},{name:"AWS",logo:n(56514).A},{name:"Google Cloud",logo:n(87388).A},{name:"Fly",logo:n(91509).A}],d=e=>{let{text:t}=e;return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("span",{className:"text-content-tiny font-bold sm:text-title-tiny lg:text-title-small bg-tailCall-yellow rounded-[4px] sm:rounded-md px-SPACE_01",children:t})})},p=(n(21496).A,a.Fragment,n(9863).A,a.Fragment,n(21384).A,a.Fragment,n(91745).A,a.Fragment,n(87898).A,n(11487).A,n(59515).A,n(15841).A,n(70805).A,n(10122).A,n(57900).A,n(24298).A,n(9018).A,n(98812).A,n(57834).A,[{id:1,name:"github",image:n(92028).A,href:"https://github.com/tailcallhq/tailcall"},{id:2,name:"discord",image:n(54553).A,href:"https://discord.gg/kRZBPpkgwq"},{id:3,name:"linkedin",image:n(18257).A,href:"https://www.linkedin.com/company/tailcall"},{id:4,name:"twitter",image:n(42489).A,href:"https://twitter.com/tailcallhq"}]),f=[{id:1,title:"Top developer experience",description:"Design your APIs, with syntax highlighting and lint checks within your favourite IDE.",image:n(2681).A},{id:2,title:"Performance",description:"Get performance that\u2019s higher than your hand optimized implementation",image:n(70505).A},{id:3,title:"Scale Fearlessly",description:"Leverage built-in best practices that guarantee robustness at any scale.",image:n(23349).A}],g=[{id:1,title:"Powerful Batching Primitive",image:n(84622).A,redirection_url:"/docs/graphql-n-plus-one-problem-solved-tailcall/#using-batch-apis"},{id:2,title:"Extensions with plugins and JS support",image:n(17706).A,redirection_url:"/docs/graphql-javascript-customization/"},{id:3,title:"Field based Authentication & Authorisation",image:n(84083).A,redirection_url:"/docs/field-level-access-control-graphql-authentication/"},{id:4,title:"Protocol agnostic",image:n(30919).A,redirection_url:"/docs/graphql-grpc-tailcall/"},{id:5,title:"Performance",image:n(87509).A,redirection_url:"https://github.com/tailcallhq/graphql-benchmarks"},{id:6,title:"Security",image:n(79659).A,redirection_url:"/docs/field-level-access-control-graphql-authentication/"},{id:7,title:"Edge Compatible",image:n(51171).A,redirection_url:"/docs/deploy-graphql-github-actions/"},{id:8,title:"Compile time checks",image:n(78112).A,redirection_url:"/docs/tailcall-graphql-cli/#check"}],h=[{id:1,title:"Secure",description:"Tailcall has been validated against a comprehensive database of GraphQL vulnerabilities. Rest easy knowing your GraphQL backends are secure.",image:n(41284).A,redirection_url:"/docs/field-level-access-control-graphql-authentication/"},{id:2,title:"High-Performance",description:"Tailcall performs ahead-of-time optimizations based on analysis of the schema and data dependencies. Deploy GraphQL without compromises.",image:n(70505).A,redirection_url:"https://github.com/tailcallhq/graphql-benchmarks"},{id:3,title:"Statically Verified",description:"Tailcall statically verifies that GraphQL schemas match resolvers and warns about N + 1 issues. Deploy new APIs with confidence.",image:n(39210).A,redirection_url:"/docs/graphql-n-plus-one-problem-solved-tailcall/"},{id:4,title:"Simple",description:"Tailcall configuration generator can integrate thousands of APIs in a matter of minutes. Configure with ease and deploy with confidence.",image:n(11435).A,redirection_url:"/docs/tailcall-dsl-graphql-custom-directives/"},{id:5,title:"Customizable",description:"Write custom Javascript to customize any aspect of your GraphQL backend. Leverage this escape hatch to satisfy any requirement.",image:n(95837).A,redirection_url:"/docs/graphql-javascript-customization/"},{id:6,title:"Plug & Play",description:"Engineered to stay out of your way, shipping as a single executable with no dependencies or requirements. Get started quickly and easily.",image:n(2300).A,redirection_url:"/docs/"},{id:7,title:"Open Source",description:"Tailcall is developed and released under the Apache 2 open source license, the gold standard for OSS. Embrace a vendor-neutral solution.",image:n(51507).A,redirection_url:"https://github.com/tailcallhq/tailcall"}];n(9018).A,n(74919).A,n(98812).A,n(57834).A,n(9018).A,n(9018).A,n(9018).A,n(9018).A,n(9018).A,n(9018).A;let m=function(e){return e.Light="light",e.Dark="dark",e.Gray="gray",e.Tailcall="tailcall",e}({});const v=[{id:1,citation:"Having a completely open-source GraphQL solution under my control is a dream. I can customize everything to fit our exact needs, with full transparency and flexibility. No more blocking on backend teams\u2014I can iterate and build and deploy the frontend faster than ever before.",designation:"Sr. Frontend Engineer",name:"John Doe",department:"Front-end"},{id:2,citation:"I love that I no longer have to wrangle with GraphQL for the frontend teams. It saves me a ton of time, reduces complexity, and lets me focus on what I do best\u2014optimizing our microservices. The clear separation of concerns has made collaboration smoother, and now with Tailcall's static verification, I can expose APIs with even more confidence.",designation:"Sr. Backend Engineer - Big Co. Inc.",name:"John Doe",department:"Backend"},{id:3,citation:"Switching to a battle-tested, open-source GraphQL solution has been a game-changer. It\u2019s rock-solid, easy to manage, and scales effortlessly. I no longer worry about security gaps, and the faster iteration cycle means I can focus on bigger challenges. It's like having a superpower in my toolkit!",designation:"Sr. Frontend Engineer - Big Co. Inc.",name:"John Doe",department:"Ops"}],b={"Technologies and Frameworks":[{label:"Angular",permalink:"/blog/tags/angular"},{label:"Apollo client",permalink:"/blog/tags/apollo-client"},{label:"JavaScript",permalink:"/blog/tags/java-script"},{label:"Node.js",permalink:"/blog/tags/node-js"},{label:"URQL",permalink:"/blog/tags/urql"},{label:"Villus",permalink:"/blog/tags/villus"},{label:"Vue",permalink:"/blog/tags/vue"}],"Debugging and Tooling":[{label:"debugging",permalink:"/blog/tags/debugging"},{label:"IDE",permalink:"/blog/tags/ide"},{label:"Tooling",permalink:"/blog/tags/tooling"}],"API Concepts and Tools":[{label:"API",permalink:"/blog/tags/api"},{label:"Fetch API",permalink:"/blog/tags/fetch-api"},{label:"GraphiQL",permalink:"/blog/tags/graphi-ql"},{label:"GraphQL",permalink:"/blog/tags/graph-ql"},{label:"OpenAPI",permalink:"/blog/tags/open-api"},{label:"Microservice",permalink:"/blog/tags/microservice"},{label:"Microservices",permalink:"/blog/tags/microservices"},{label:"Backend-for-Frontend",permalink:"/blog/tags/backend-for-frontend"}],"Schema and Introspection":[{label:"Introspection",permalink:"/blog/tags/introspection"},{label:"Schema",permalink:"/blog/tags/schema"}],"General Terms":[{label:"Performance",permalink:"/blog/tags/performance"},{label:"Scalability",permalink:"/blog/tags/scalability"},{label:"Security",permalink:"/blog/tags/security"},{label:"Strategy",permalink:"/blog/tags/strategy"},{label:"Migration",permalink:"/blog/tags/migration"},{label:"Design",permalink:"/blog/tags/design"},{label:"Flexibility",permalink:"/blog/tags/flexibility"}],"Development Practices":[{label:"Best Practices",permalink:"/blog/tags/best-practices"}]};let y=function(e){return e.NECESSARY="Necessary",e.ANALYTICS="Analytics",e.PREFERENCE="Preference",e.MARKETING="Marketing",e}({});const A='\n!function () {var reb2b = window.reb2b = window.reb2b || [];\n if (reb2b.invoked) return;reb2b.invoked = true;reb2b.methods = ["identify", "collect"];\n reb2b.factory = function (method) {return function () {var args = Array.prototype.slice.call(arguments);\n args.unshift(method);reb2b.push(args);return reb2b;};};\n for (var i = 0; i < reb2b.methods.length; i++) {var key = reb2b.methods[i];reb2b[key] = reb2b.factory(key);}\n reb2b.load = function (key) {var script = document.createElement("script");script.type = "text/javascript";script.async = true;\n script.src = "https://s3-us-west-2.amazonaws.com/b2bjsstore/b/" + key + "/reb2b.js.gz";\n var first = document.getElementsByTagName("script")[0];\n first.parentNode.insertBefore(script, first);};\n reb2b.SNIPPET_VERSION = "1.0.1";reb2b.load("0OV0VHL3P56Z");}();\n',w='\nfunction gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-JEP3QDWT0G",{})\n',k=[{name:"Documentation",link:r.$.docs},{name:"Blog",link:"https://blog.tailcall.run/"},{name:"Contributors",link:r.$.contributors},{name:"Privacy Policy",link:r.$.privacyPolicy}]},10737:(e,t,n)=>{"use strict";n.d(t,{$:()=>r});const r={home:"/",docs:"/docs",introduction:"/graphql/",pricing:"/pricing",contact:"/contact",contributors:"/docs/contribution-guidelines",privacyPolicy:"/privacy/"}},48415:(e,t,n)=>{"use strict";n.d(t,{A:()=>Rt});var r=n(96540),a=n(34164),o=n(67489),i=n(45500),l=n(56347),s=n(21312),c=n(75062),u=n(74848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const g=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??g,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var m=n(17559),v=n(14090);const b={skipToContent:"skipToContent_fXgn"};function y(){return(0,u.jsx)(h,{className:b.skipToContent})}var A=n(6342),w=n(65041);function k(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:a,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const x={closeButton:"closeButton_CVFx"};function S(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",x.closeButton,e.className),children:(0,u.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,A.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const j={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function O(){const{announcementBar:e}=(0,A.p)(),{isActive:t,close:n}=(0,w.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,u.jsxs)("div",{className:j.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,u.jsx)("div",{className:j.announcementBarPlaceholder}),(0,u.jsx)(C,{className:j.announcementBarContent}),o&&(0,u.jsx)(S,{onClick:n,className:j.announcementBarClose})]})}var P=n(22069),T=n(23104);var L=n(89532),I=n(75600);const q=r.createContext(null);function N(e){let{children:t}=e;const n=function(){const e=(0,P.M)(),t=(0,I.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,L.ZC)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,u.jsx)(q.Provider,{value:n,children:t})}function R(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function W(){const e=(0,r.useContext)(q);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,I.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:R(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=W();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var B=n(95293),D=n(92303);function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function F(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function _(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,D.A)(),l=(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.A)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite","aria-pressed":"dark"===r?"true":"false",children:[(0,u.jsx)(z,{className:(0,a.A)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)(F,{className:(0,a.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const V=r.memo(_),X={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function H(e){let{className:t}=e;const n=(0,A.p)().navbar.style,r=(0,A.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,B.G)();return r?null:(0,u.jsx)(V,{className:t,buttonClassName:"dark"===n?X.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var Y=n(23465);function Q(){return(0,u.jsx)(Y.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,P.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function Z(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(Q,{}),(0,u.jsx)(H,{className:"margin-right--md"}),(0,u.jsx)(G,{})]})}var K=n(28774),J=n(86025),$=n(16654),ee=n(91252),te=n(43186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...c}=e;const d=(0,J.Ay)(r),p=(0,J.Ay)(t),f=(0,J.Ay)(a,{forcePrependBaseUrl:!0}),g=o&&a&&!(0,$.A)(a),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,g&&(0,u.jsx)(te.A,{...l&&{width:12,height:12}})]})};return a?(0,u.jsx)(K.A,{href:s?f:a,...c,...h}):(0,u.jsx)(K.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.G)(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,u.jsx)(ne,{className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,a.A)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,u.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(41422),le=n(99169),se=n(44586);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.ys)(e.to,t)||!!(0,ee.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const s=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,u.jsxs)("div",{ref:s,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:l.to?void 0:"#",className:(0,a.A)("navbar__link",o),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:l.children??l.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ce,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:g}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&g(!d)}),[c,d,g]),(0,u.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,a.A)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ce,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var ge=n(32131);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const me="iconLanguage_nlXk";var ve=n(14101);const be={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ye(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,a.A)(n,be.navbarSearchContainer),children:t})}var Ae=n(48295),we=n(26972);var ke=n(53886);function xe(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find((t=>t.id===e.mainDocId))}(e)}const Se={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.A)(),p=(0,ge.o)(),{search:f,hash:g}=(0,l.zy)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${g}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],m=t?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...o,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(he,{className:me}),m]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ye,{className:n,children:(0,u.jsx)(ve.A,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,u.jsx)(i,{className:(0,a.A)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,Ae.zK)(r),i=(0,we.QB)(t,r),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,Ae.zK)(r),i=(0,we.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,we.Vd)(r)[0],i=t??o.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,u.jsx)(oe,{...a,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:c,hash:d}=(0,l.zy)(),p=(0,Ae.zK)(n),f=(0,Ae.jh)(n),{savePreferredVersionName:g}=(0,ke.g1)(n),h=[...a,...f.map((function(e){const t=xe(e,p);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>g(e.name)}})),...o],m=(0,we.Vd)(n)[0],v=t&&h.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,b=t&&h.length>1?void 0:xe(m,p).path;return h.length<=1?(0,u.jsx)(oe,{...i,mobile:t,label:v,to:b,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:v,to:b,items:h,isActive:r?()=>!1:void 0})}},Ee=Se;function Ce(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ee[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(a,{...n})}const je=()=>{const e=(0,P.M)(),t=(0,A.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ce,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})};function Oe(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Pe(){const e=0===(0,A.p)().navbar.items.length,t=W();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Oe,{onClick:()=>t.hide()}),t.content]})}function Te(){const e=(0,P.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(M,{header:(0,u.jsx)(Z,{}),primaryMenu:(0,u.jsx)(je,{}),secondaryMenu:(0,u.jsx)(Pe,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ie(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function qe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,A.p)(),i=(0,P.M)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,T.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:l,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!d&&Le.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ie,{onClick:i.toggle}),(0,u.jsx)(Te,{})]})}var Ne=n(70440);const Re={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function We(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Me(e){let{error:t}=e;const n=(0,Ne.rA)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Re.errorBoundaryError,children:n})}class Be extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}function De(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function ze(){const{toggle:e,shown:t}=(0,P.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(De,{})})}n(59550);const Fe="colorModeToggle_x44X";n(22375);const Ue=e=>{let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Be,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`),children:(0,u.jsx)(Ce,{...e})},t)))})},_e=e=>{let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})},Ve=()=>{const e=(0,P.M)(),t=(0,A.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t);return(0,u.jsx)(_e,{left:(0,u.jsxs)(u.Fragment,{children:[e.shouldRender&&(0,u.jsx)(ve.A,{}),!e.disabled&&(0,u.jsx)(ze,{}),(0,u.jsx)(Q,{}),(0,u.jsx)(Ue,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ue,{items:r}),(0,u.jsx)(H,{className:Fe})]})})};function Xe(){return(0,u.jsx)(qe,{children:(0,u.jsx)(Ve,{})})}function He(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,l=(0,J.Ay)(n),s=(0,J.Ay)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(K.A,{className:"footer__link-item",...r?{href:o?s:r}:{to:l},...i,children:[a,r&&!(0,$.A)(r)&&(0,u.jsx)(te.A,{})]})}function Ye(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(He,{item:t})},t.href??t.to)}function Qe(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(Ye,{item:e},t)))})]})}function Ge(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Qe,{column:e},t)))})}function Ze(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ke(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(He,{item:t})}function Je(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Ke,{item:e}),t.length!==n+1&&(0,u.jsx)(Ze,{})]},n)))})})}function $e(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Ge,{columns:t}):(0,u.jsx)(Je,{links:t})}var et=n(21122);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,J.hH)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(et.A,{className:(0,a.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,u.jsx)(K.A,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,u.jsx)(nt,{logo:t})}):(0,u.jsx)(nt,{logo:t})}function at(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsx)("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function it(){const{footer:e}=(0,A.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(ot,{style:a,links:n&&n.length>0&&(0,u.jsx)($e,{links:n}),logo:r&&(0,u.jsx)(rt,{logo:r}),copyright:t&&(0,u.jsx)(at,{copyright:t})})}const lt=r.memo(it),st=(0,r.createContext)(null),ct={get:e=>"undefined"!=typeof window&&window.__tc_data__?window.__tc_data__[e]:null,set(e,t){"undefined"!=typeof window&&(window.__tc_data__=window.__tc_data__||{},window.__tc_data__[e]=t)}},ut=e=>{let{children:t}=e;const[n,a]=(0,r.useState)(ct.get("githubStars"));return(0,r.useEffect)((()=>{fetch("https://api.github.com/repos/tailcallhq/tailcall").then((e=>e.json())).then((e=>{const t=e.stargazers_count;return a(t),ct.set("githubStars",t),t})).catch((()=>{console.error("Failed to fetch Github stars count")}))}),[]),(0,u.jsx)(st.Provider,{value:n,children:t})};var dt,pt,ft,gt=n(75957);function ht(){return ht=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...a}=e;return r.createElement("svg",ht({xmlns:"http://www.w3.org/2000/svg",width:115,height:40,fill:"none",viewBox:"0 0 115 40","aria-labelledby":n},a),t?r.createElement("title",{id:n},t):null,dt||(dt=r.createElement("g",{clipPath:"url(#a)"},r.createElement("path",{fill:"#FDEA2E",d:"m33.197 8.055-.965-.562-1.111-.644-1.16-.675-1.063-.618L20.561.711a5.26 5.26 0 0 0-5.284 0L2.642 8.055A5.32 5.32 0 0 0 0 12.658V27.34a5.32 5.32 0 0 0 2.642 4.604l6.4 3.718 2.27 1.32 3.965 2.304c1.635.95 3.65.95 5.284 0l12.636-7.342a5.32 5.32 0 0 0 2.641-4.604V12.658c0-1.9-1.007-3.655-2.641-4.605z"}),r.createElement("path",{fill:"#000",fillRule:"evenodd",d:"M28.668 26.788a2.62 2.62 0 0 1-2.618 2.625 2.6 2.6 0 0 1-1.562-.518l-3.735 2.162-.042.023-.465.262a4.32 4.32 0 0 1-4.222.037 4.36 4.36 0 0 1-2.302-3.869v-9.562h-.002l-3.41 1.973q.014.136.014.274a2.617 2.617 0 1 1-5.222-.283 2.62 2.62 0 0 1 2.604-2.343c.61 0 1.17.21 1.615.56l4.399-2.544v-1.697c0-1.128.602-2.166 1.575-2.726l4.788-2.746a1.04 1.04 0 0 1 1.423.388 1.05 1.05 0 0 1-.388 1.427l-4.788 2.747a1.05 1.05 0 0 0-.527.91V27.51c0 1.76 1.89 2.87 3.419 2.008l.666-.375 3.56-2.06a2 2 0 0 1-.015-.215q-.003-.04-.002-.08a2.62 2.62 0 0 1 2.62-2.625q.052 0 .105.002.04 0 .08.004l.068.006q.125.012.247.036l.08.017q.04.009.08.02.038.009.074.02.049.014.097.03l.017.006q.065.022.129.049.072.028.142.061a2.7 2.7 0 0 1 .41.245l.024.016q0 .002.002.002a2.62 2.62 0 0 1 1.061 2.078z",clipRule:"evenodd"}),r.createElement("path",{fill:"#000",fillRule:"evenodd",d:"M28.67 10.953c0 .34-.064.664-.182.96q-.03.074-.062.147l-.035.071a2 2 0 0 1-.077.143q-.015.03-.034.058a2.5 2.5 0 0 1-.513.603l-.074.063a2.5 2.5 0 0 1-.505.321 2.61 2.61 0 0 1-2.816-.353l-4.54 2.627v10.445c0 .578-.466 1.046-1.042 1.046a1.044 1.044 0 0 1-1.043-1.046v-10.69c0-.564.283-1.086.746-1.395l.017-.01q0 0 .003-.002l.075-.044 4.847-2.804q0-.015-.002-.031-.004-.053-.005-.108a2.619 2.619 0 0 1 2.822-2.62h.001q.078.006.155.018h.003l.154.026.005.002.048.01q.037.007.071.017.065.015.128.035.023.007.047.015.023.006.046.016.047.015.092.034.255.097.479.246c.312.202.578.47.778.785a2.6 2.6 0 0 1 .413 1.415",clipRule:"evenodd"}))),pt||(pt=r.createElement("path",{fill:"#fff",d:"M50.151 28.543q-1.196 0-1.953-.732-.732-.757-.732-2.002v-6.834H44.44v-2.539h3.027v-3.759h3.076v3.76h3.32v2.538h-3.32v6.297q0 .733.683.733h2.343v2.538zM59.428 28.885q-1.294 0-2.319-.44a4 4 0 0 1-1.635-1.318q-.585-.878-.586-2.123 0-1.245.586-2.075.61-.855 1.66-1.27 1.074-.439 2.44-.439h3.32v-.683q0-.855-.537-1.391-.537-.562-1.709-.562-1.147 0-1.708.537-.562.513-.733 1.343l-2.831-.952q.292-.928.928-1.684.659-.782 1.733-1.245 1.098-.489 2.66-.488 2.392 0 3.784 1.196 1.39 1.195 1.39 3.466v4.515q0 .733.684.733h.977v2.538h-2.05q-.904 0-1.49-.44a1.39 1.39 0 0 1-.585-1.17v-.025h-.464q-.098.293-.44.78-.34.465-1.074.83-.732.367-2.001.367m.537-2.49q1.293 0 2.1-.708.828-.731.829-1.928v-.244h-3.1q-.855 0-1.342.366-.489.366-.489 1.025 0 .66.513 1.074t1.489.415M68.804 28.543V16.436h3.076v12.107zm1.538-13.522a2.02 2.02 0 0 1-1.416-.538q-.561-.537-.561-1.415 0-.879.561-1.416a2.02 2.02 0 0 1 1.416-.537q.854 0 1.416.537t.561 1.416-.561 1.415-1.416.537M74.311 28.543V11.457h3.076v17.086zM85.506 28.885q-1.757 0-3.198-.732a5.53 5.53 0 0 1-2.245-2.124q-.83-1.39-.83-3.369v-.341q0-1.977.83-3.369a5.53 5.53 0 0 1 2.245-2.123q1.44-.733 3.198-.733 1.733 0 2.978.61t2.002 1.685q.78 1.05 1.025 2.392l-2.978.635a3.5 3.5 0 0 0-.44-1.318q-.341-.586-.976-.928-.61-.342-1.538-.342-.927 0-1.684.415-.732.391-1.172 1.196-.415.781-.415 1.929v.244q0 1.148.415 1.953.44.78 1.172 1.195.757.39 1.684.391 1.392 0 2.1-.708.732-.732.927-1.904l2.978.708a6.7 6.7 0 0 1-1.099 2.368q-.756 1.05-2.001 1.66t-2.978.61M96.904 28.885q-1.294 0-2.32-.44a4 4 0 0 1-1.635-1.318q-.585-.878-.585-2.123t.585-2.075q.61-.855 1.66-1.27 1.074-.439 2.441-.439h3.32v-.683q0-.855-.537-1.391-.537-.562-1.709-.562-1.147 0-1.709.537-.561.513-.732 1.343l-2.831-.952a4.9 4.9 0 0 1 .927-1.684q.66-.782 1.733-1.245 1.1-.489 2.66-.488 2.394 0 3.784 1.196 1.392 1.195 1.392 3.466v4.515q0 .733.683.733h.976v2.538h-2.05q-.903 0-1.489-.44a1.4 1.4 0 0 1-.586-1.17v-.025h-.463q-.099.293-.44.78-.342.465-1.074.83-.732.367-2.001.367m.537-2.49q1.293 0 2.099-.708.83-.731.83-1.928v-.244h-3.1q-.854 0-1.343.366-.488.366-.488 1.025 0 .66.513 1.074.512.415 1.489.415M106.28 28.543V11.457h3.075v17.086zM111.787 28.543V11.457h3.076v17.086z"})),ft||(ft=r.createElement("defs",null,r.createElement("clipPath",{id:"a"},r.createElement("path",{fill:"#fff",d:"M0 0h35.838v40H0z"})))))};var vt=n(17111);const bt=(0,r.createContext)(null),yt=()=>{const e=(0,r.useContext)(bt);if(!e)throw new Error("useCookieConsentManager must be used within a CookieConsentProvider");return e},At=()=>{const{openCookieConsentModal:e}=yt(),t=(new Date).getFullYear();return(0,u.jsxs)("footer",{className:"bg-tailCall-dark-700 grid-dark pt-SPACE_16 pb-SPACE_05 flex flex-col items-center justify-center gap-SPACE_10 w-full relative px-SPACE_04",children:[(0,u.jsx)(mt,{className:"w-[120px] h-10 z-10"}),(0,u.jsx)("div",{className:"text-content-tiny sm:text-title-small space-x-SPACE_06 text-tailCall-light-500 z-10",children:gt.hF.map(((e,t)=>(0,u.jsx)(K.A,{href:e.link,className:"text-tailCall-light-500 hover:text-tailCall-light-300 hover:no-underline",children:e.name},t)))}),(0,u.jsxs)("div",{className:"flex flex-col sm:flex-row items-center gap-y-SPACE_04 sm:justify-between w-[100%] max-w-7xl sm:mt-SPACE_10 z-10",children:[(0,u.jsx)("p",{className:"text-content-tiny text-tailCall-light-700 font-space-mono font-normal cursor-pointer mb-0 sm:mb-5 order-2 sm:order-1",onClick:e,children:"Cookie Settings"}),(0,u.jsxs)("p",{className:"text-content-tiny text-tailCall-light-700 font-space-mono font-normal mb-0 sm:mb-5 order-3 sm:order-2",children:["Copyright \xa9 ",t," Tailcall, Inc."]}),(0,u.jsx)("div",{className:"space-x-SPACE_04 order-1 sm:order-3",children:gt.V$.map((e=>(0,u.jsx)(K.A,{href:e.href,className:"cursor-pointer",children:(0,u.jsx)(e.image,{className:"h-6 w-6"})},e.id)))})]})]})};var wt=n(54164);const kt=e=>{let{children:t}=e;return(0,u.jsx)(wt.vD,{children:t})},xt=(0,L.fM)([B.a,kt,e=>{let{children:t}=e;const n=(()=>{const{getCookieConsent:e,setCookieConsent:t}=(0,vt.u)(),[n,a]=(0,r.useState)(!1),o=e(),i=(0,r.useCallback)((()=>{a(!0)}),[]),l=(0,r.useCallback)((()=>{a(!1)}),[]),s=(0,r.useCallback)((e=>{const n=o;t(e),l(),n&&window.location.reload()}),[o,t,l]),c=(0,r.useCallback)((()=>{s({accepted:!0})}),[t]),u=(0,r.useCallback)((()=>{s({accepted:!1})}),[t]),d=(0,r.useCallback)((e=>{s({accepted:!0,preferences:e})}),[t]);return{cookieConsent:o,isCookieConsentModalVisible:n,openCookieConsentModal:i,closeCookieConsentModal:l,onAccept:c,onDeny:u,onPartialAccept:d}})();return(0,u.jsx)(bt.Provider,{value:n,children:t})},w.o,T.Tv,ke.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(I.y_,{children:(0,u.jsx)(P.e,{children:(0,u.jsx)(N,{children:t})})})},ut]),St=e=>{let{children:t}=e;return(0,u.jsxs)(xt,{children:[t,(0,u.jsx)(At,{})]})};var Et=n(51107);function Ct(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(Et.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(We,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Me,{error:t})})]})})})}const jt={mainWrapper:"mainWrapper_eExm"};var Ot=n(10737);const Pt={cookieConsentModal:"cookieConsentModal_YaOX",consentOption:"consentOption_xHhv",closeBtn:"closeBtn_ghZ_"},Tt=e=>{let{open:t,onAccept:o,onDeny:i,onPartialAccept:l,onClose:s}=e;const[c,d]=(0,r.useState)(!1),p=[{text:"Accept All",onClick:o},c?{text:"Accept Selected",onClick:()=>{l(m)}}:{text:"Manage Settings",onClick:()=>d(!0)},{text:"Deny",onClick:i}],f=[{name:gt.Cl.NECESSARY,selected:!0,readonly:!0},{name:gt.Cl.PREFERENCE,selected:!1},{name:gt.Cl.MARKETING,selected:!1},{name:gt.Cl.ANALYTICS,selected:!1}],[g,h]=(0,r.useState)(f),m=(0,r.useMemo)((()=>g.reduce(((e,t)=>(t.selected&&e.push(t.name),e)),[])),[g]);return(0,u.jsx)(u.Fragment,{children:t?(0,u.jsx)(u.Fragment,{children:(0,u.jsxs)("div",{className:(0,a.A)("flex flex-col xl:flex-row xl:justify-between relative py-6 px-8 gap-4 sm:gap-12 xl:gap-0 font-space-mono bg-black rounded-xl",Pt.cookieConsentModal),children:[(0,u.jsxs)("div",{className:"flex flex-col gap-4 text-tailCall-light-300",children:[(0,u.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,u.jsx)("span",{className:"text-content-small font-bold xl:text-title-small",children:"We Value Your Privacy"}),(0,u.jsxs)("span",{className:"text-content-tiny xl:text-content-small",children:["This website uses cookies to ensure you receive the best possible experience."," ",(0,u.jsx)(K.A,{href:Ot.$.privacyPolicy,className:"text-tailCall-light-300 hover:text-tailCall-light-300 underline",children:"Learn More"})]})]}),c&&(0,u.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 sm:w-6/12 xl:w-full gap-6 xl:gap-8",children:g.map(((e,t)=>(0,u.jsxs)("span",{className:(0,a.A)("flex cursor-pointer text-content-tiny xl:text-content-small gap-2",e.selected?"text-tailCall-light-600":""),onClick:()=>(e=>{if(g[e].readonly)return;const t=[...g];t[e].selected=!t[e].selected,h(t)})(t),children:[(0,u.jsx)("span",{className:"whitespace-pre",children:""+(e.selected?"[ X ]":"[ ]")}),(0,u.jsx)("span",{children:e.name})]},t)))})]}),(0,u.jsx)("div",{className:"flex items-end",children:(0,u.jsx)("div",{className:(0,a.A)("flex flex-col sm:flex-row flex-1 gap-6 h-fit sm:justify-end",Pt.consentOptionsContainer),children:p.map(((e,t)=>(0,u.jsx)("span",{className:(0,a.A)("sm:whitespace-nowrap py-1 px-3 text-title-tiny bg-tailCall-dark-400 border border-solid border-tailCall-dark-300 cursor-pointer text-center",Pt.consentOption),onClick:e.onClick,children:e.text},t)))})}),(0,u.jsx)("img",{className:(0,a.A)("absolute cursor-pointer",Pt.closeBtn),src:n(20602).A,height:16,width:25,onClick:()=>{d(!1),h(f),s&&s()}})]})}):null})};var Lt=n(5260);const It=e=>{let{isCookieConsentAccepted:t=!1,preferences:n}=e;const a=()=>(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("script",{async:!0,src:"https://www.googletagmanager.com/gtag/js?id=G-JEP3QDWT0G"}),(0,u.jsx)("script",{children:gt.ul}),(0,u.jsx)("script",{async:!0,src:"https://tag.clearbitscripts.com/v1/pk_498a76355e253f5c7f4e7c7bed78748e/tags.js",referrerPolicy:"strict-origin-when-cross-origin"}),(0,u.jsx)("script",{type:"text/javascript",children:gt.kK})]});return(0,u.jsx)(Lt.A,{children:t&&(e=>{const t=[],n={Analytics:a};return e?e.forEach((e=>{const r=n[e];r&&t.push(r())})):Object.values(n).forEach(((e,n)=>t.push((0,u.jsx)(r.Fragment,{children:e()},n)))),t})(n)})},qt=()=>{const{isCookieConsentModalVisible:e,openCookieConsentModal:t,closeCookieConsentModal:n,onAccept:a,onDeny:o,onPartialAccept:i,cookieConsent:l}=yt();return(0,r.useEffect)((()=>{"undefined"!=typeof window&&window.location.pathname.includes(Ot.$.privacyPolicy)||l||t()}),[l]),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Tt,{open:e,onClose:n,onAccept:a,onDeny:o,onPartialAccept:i}),(0,u.jsx)(It,{isCookieConsentAccepted:Boolean(l?.accepted),preferences:l?.preferences})]})},Nt=e=>{let{text:t,refLink:n,refText:r}=e;return(0,u.jsx)("div",{className:"w-full h-auto bg-black text-white flex items-center justify-center p-2 sm:p-3",children:(0,u.jsx)("div",{className:"text-center",children:(0,u.jsxs)("span",{className:"text-sm sm:text-base md:text-lg font-bold",children:[t,n&&r&&(0,u.jsx)("a",{className:"text-tailCall-yellow font-bold ml-2",href:n,children:r})]})})})};function Rt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;(0,v.J)();const c=new Date("2024-11-25T20:00:00-08:00"),p=new Date;return(0,u.jsxs)(St,{children:[(0,u.jsx)(qt,{}),(0,u.jsx)(i.be,{title:l,description:s}),(0,u.jsx)(y,{}),(0,u.jsx)(O,{}),p(0,u.jsx)(Ct,{...e}),children:t})}),!n&&(0,u.jsx)(lt,{})]})}},14101:(e,t,n)=>{"use strict";n.d(t,{A:()=>S});var r=n(96540),a=n(40961),o=n(55600),i=n(5260),l=n(28774),s=n(56347),c=n(24255),u=n(91252),d=n(51062),p=n(2967),f=n(82565),g=n(44586);function h(){return[`language:${(0,g.A)().i18n.currentLocale}`,function(){const e=(0,f.v)();return[p.C,...e]}().map((e=>`docusaurus_tag:${e}`))]}var m=n(21312);const v={button:{buttonText:(0,m.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,m.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,m.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,m.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,m.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,m.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,m.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,m.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,m.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,m.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,m.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,m.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,m.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,m.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,m.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,m.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,m.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,m.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,m.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,m.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,m.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,m.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,m.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,m.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,m.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,m.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,m.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};var b=n(75957),y=n(74848);let A=null;function w(e){let{hit:t,children:n}=e;return(0,y.jsx)(l.A,{to:t.url,children:n})}function k(e){let{state:t,onClose:n}=e;const r=(0,c.w)();return(0,y.jsxs)("div",{className:"flex justify-between w-full",children:[(0,y.jsx)("span",{children:`${t.context.nbHits} results found`}),(0,y.jsx)(l.A,{to:r(t.query),onClick:n,children:(0,y.jsx)(m.A,{id:"theme.SearchBar.seeAll",children:"See all results"})})]})}function x(e){let{contextualSearch:t,externalUrlRegex:l,...c}=e;const{siteMetadata:p}=(0,g.A)(),f=(0,d.C)(),m=h(),x=c.searchParameters?.facetFilters??[],S=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(m,x):x,E={...c.searchParameters,facetFilters:S},C=(0,s.W6)(),j=(0,r.useRef)(null),O=(0,r.useRef)(null),[P,T]=(0,r.useState)(!1),[L,I]=(0,r.useState)(void 0),q=(0,r.useCallback)((()=>A?Promise.resolve():Promise.all([n.e(8158).then(n.bind(n,48158)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,58913)),Promise.all([n.e(1869),n.e(3760)]).then(n.bind(n,63760))]).then((e=>{let[{DocSearchModal:t}]=e;A=t}))),[]),N=(0,r.useCallback)((()=>{if(!j.current){const e=document.createElement("div");j.current=e,document.body.insertBefore(e,document.body.firstChild)}}),[]),R=(0,r.useCallback)((()=>{N(),q().then((()=>T(!0)))}),[q,N]),W=(0,r.useCallback)((()=>{T(!1),O.current?.focus()}),[]),M=(0,r.useCallback)((e=>{e.preventDefault(),I(e.key),R()}),[R]),B=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,u.G)(l,t)?window.location.href=t:C.push(t)}}).current,D=(0,r.useRef)((e=>c.transformItems?c.transformItems(e):e.map((e=>({...e,url:f(e.url)}))))).current,z=(0,r.useMemo)((()=>e=>(0,y.jsx)(k,{...e,onClose:W})),[W]),F=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",p.docusaurusVersion),e)),[p.docusaurusVersion]);return(0,o.E8)({isOpen:P,onOpen:R,onClose:W,onInput:M,searchButtonRef:O}),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(i.A,{children:(0,y.jsx)("link",{rel:"preconnect",href:`https://${c.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,y.jsx)(o.Bc,{onTouchStart:q,onFocus:q,onMouseOver:q,onClick:R,ref:O,translations:v.button}),P&&A&&j.current&&(0,a.createPortal)((0,y.jsx)(A,{onClose:W,initialScrollY:window.scrollY,initialQuery:L,navigator:B,transformItems:D,hitComponent:w,transformSearchClient:F,...c.searchPagePath&&{resultsFooterComponent:z},...c,searchParameters:E,placeholder:b.Ng.searchModalPlaceholder,translations:v.modal}),j.current)]})}function S(){const{siteConfig:e}=(0,g.A)();return(0,y.jsx)(x,{...e.themeConfig.algolia})}},17111:(e,t,n)=>{"use strict";n.d(t,{u:()=>o});var r=n(54164),a=n(75957);const o=()=>{const[e,t]=(0,r.lT)([a.Kw.USER_CONSENT]);return{getCookieConsent:()=>e.userConsent,setCookieConsent:e=>{t(a.Kw.USER_CONSENT,JSON.stringify(e),{maxAge:31622400})}}}},22375:(e,t,n)=>{"use strict";n.d(t,{DT:()=>i,Gz:()=>l,N7:()=>s,ZM:()=>o,p8:()=>a});var r=n(29970);const a=(e,t,n)=>{r.Ay.event({category:e,action:t,label:n})},o=(e,t)=>{"undefined"!=typeof window&&window.gtag&&window.gtag("event","conversion",{send_to:e,event_callback:t})},i=e=>/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e),l=e=>{try{return new URL(e),!0}catch(t){return!1}},s=()=>{const e=new URL(location.pathname,window.location.origin).pathname.split("/").filter(Boolean);return"blog"===e[0]&&e.length>1&&"page"!==e[1]}},31513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>A,TM:()=>C,yJ:()=>f,sC:()=>O,AO:()=>p});var r=n(58168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var g=i.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var l=n(11561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),A.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(A.entries[A.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=A.index+e;return t>=0&&t{"use strict";var r=n(44363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var a=f(n);a&&a!==g&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),m=0;m{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},64634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},10119:(e,t,n)=>{"use strict";n.r(t)},51043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},35302:(e,t,n)=>{var r=n(64634);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var g=e[i],h=n[2],m=n[3],v=n[4],b=n[5],y=n[6],A=n[7];l&&(r.push(l),l="");var w=null!=h&&null!=g&&g!==h,k="+"===y||"*"===y,x="?"===y||"*"===y,S=n[2]||u,E=v||b;r.push({name:m||o++,prefix:h||"",delimiter:S,optional:x,repeat:k,partial:w,asterisk:!!A,pattern:E?c(E):A?".*":"[^"+s(S)+"]+?"})}}return i{!function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(Prism)},72514:()=>{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=o.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),g=p.indexOf(f);if(g>-1){++a;var h=p.substring(0,g),m=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=p.substring(g+f.length),b=[];h&&b.push.apply(b,i([h])),b.push(m),v&&b.push.apply(b,i([v])),"string"==typeof c?l.splice.apply(l,[s,1].concat(b)):c.content=b}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(Prism)},39535:()=>{!function(e){var t=/\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\b/;e.languages.protobuf=e.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),e.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:t}},builtin:t,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})}(Prism)},8196:(e,t,n)=>{var r={"./prism-diff":47839,"./prism-json":72514,"./prism-protobuf":39535};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=8196},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},22551:(e,t,n)=>{"use strict";var r=n(96540),a=n(69982);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n