{
  "classes": [
    {
      "constants": [],
      "types": [
        {
          "lua_type": "type RequestOptions = {\n    headers: { [string]: string }?,\n    body: string?,\n    bodyStream: HttpConnection.UploadBodyStream?,\n    bodyLength: number?,\n    query: { [string]: string | number | boolean | { string | number | boolean } }?,\n    form: { [string]: string | number | boolean | { string | number | boolean } }?,\n    json: any?,\n    multipart: { multipart.MultipartField }?,\n    expectContinue: boolean?,\n    timeout: number?,\n    connectTimeout: number?,\n    readTimeout: number?,\n    writeTimeout: number?,\n    verifySsl: boolean?,\n    maxRedirects: number?,\n    decompress: boolean?,\n    cookies: cookieJar.CookieJar?,\n}",
          "name": "RequestOptions",
          "tags": [],
          "source": {
            "path": "",
            "line": 53
          },
          "fields": [
            {
              "lua_type": "headers: { [string]: string }?",
              "name": "headers",
              "desc": ""
            },
            {
              "lua_type": "body: string?",
              "name": "body",
              "desc": ""
            },
            {
              "lua_type": "bodyStream: HttpConnection.UploadBodyStream?",
              "name": "bodyStream",
              "desc": "Incremental upload source. When provided, the request body is read\nchunk-by-chunk from `read(size?)`."
            },
            {
              "lua_type": "bodyLength: number?",
              "name": "bodyLength",
              "desc": "Exact byte length for `bodyStream`. When omitted, chunked request\nframing is used automatically."
            },
            {
              "lua_type": "query: { [string]: string | number | boolean | { string | number | boolean } }?",
              "name": "query",
              "desc": ""
            },
            {
              "lua_type": "form: { [string]: string | number | boolean | { string | number | boolean } }?",
              "name": "form",
              "desc": "Form fields encoded as `application/x-www-form-urlencoded`.\nWhen provided, the request body is generated automatically unless\n`body` is also set, which is treated as an error."
            },
            {
              "lua_type": "json: any?",
              "name": "json",
              "desc": "JSON payload encoded with `@eryx/encoding/json`."
            },
            {
              "lua_type": "multipart: { multipart.MultipartField }?",
              "name": "multipart",
              "desc": "Multipart form fields encoded as `multipart/form-data`."
            },
            {
              "lua_type": "expectContinue: boolean?",
              "name": "expectContinue",
              "desc": ""
            },
            {
              "lua_type": "timeout: number?",
              "name": "timeout",
              "desc": "Applies the same timeout to connect, read, and write phases."
            },
            {
              "lua_type": "connectTimeout: number?",
              "name": "connectTimeout",
              "desc": "Timeout used while opening the TCP/TLS connection."
            },
            {
              "lua_type": "readTimeout: number?",
              "name": "readTimeout",
              "desc": "Timeout used while waiting for response bytes."
            },
            {
              "lua_type": "writeTimeout: number?",
              "name": "writeTimeout",
              "desc": "Timeout used while sending request headers and body bytes."
            },
            {
              "lua_type": "verifySsl: boolean?",
              "name": "verifySsl",
              "desc": ""
            },
            {
              "lua_type": "maxRedirects: number?",
              "name": "maxRedirects",
              "desc": "Maximum number of redirects to follow. Set to 0 to disable redirect\nfollowing. Defaults to 10."
            },
            {
              "lua_type": "decompress: boolean?",
              "name": "decompress",
              "desc": "Automatically decompress gzip/deflate response bodies and send\n`Accept-Encoding`. Set to false to receive raw compressed bytes.\nDefaults to true."
            },
            {
              "lua_type": "cookies: cookieJar.CookieJar?",
              "name": "cookies",
              "desc": "A [[CookieJar]] for automatic cookie handling. When provided,\nmatching cookies are sent with the request and `Set-Cookie`\nresponse headers are stored in the jar."
            }
          ],
          "desc": "Options for one-shot request functions like [[request]], [[get]], and [[post]].\n"
        }
      ],
      "name": "@eryx/http/request",
      "tags": [],
      "functions": [
        {
          "source": {
            "path": "",
            "line": 603
          },
          "is_method": false,
          "signature": "request.request(method: string, url: string, options: RequestOptions?) → HttpConnection.HttpResponse",
          "owner": "request",
          "desc": "",
          "tags": [],
          "name": "request",
          "return_str": "HttpConnection.HttpResponse",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "method",
              "desc": ""
            },
            {
              "lua_type": "string",
              "name": "url",
              "desc": ""
            },
            {
              "lua_type": "RequestOptions?",
              "name": "options",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 625
          },
          "is_method": false,
          "signature": "request.stream(\n    method: string,  -- The HTTP method (e.g. `\"GET\"`, `\"POST\"`).\n    url: string,  -- The full URL including scheme and host.\n    options: RequestOptions?  -- Request options.\n) → (\n    HttpResponseStream  -- The streamed response. \n)",
          "owner": "request",
          "desc": "Makes a one-shot streamed HTTP request.\n\nThe returned response must be fully consumed or explicitly closed.\n",
          "tags": [],
          "name": "stream",
          "return_str": "HttpConnection.HttpResponseStream",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "HttpConnection.HttpResponseStream",
              "desc": "The streamed response. "
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "method",
              "desc": "The HTTP method (e.g. `\"GET\"`, `\"POST\"`)."
            },
            {
              "lua_type": "string",
              "name": "url",
              "desc": "The full URL including scheme and host."
            },
            {
              "lua_type": "RequestOptions?",
              "name": "options",
              "desc": "Request options."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 644
          },
          "is_method": false,
          "signature": "request.get(\n    url: string,  -- The full URL to request.\n    options: RequestOptions?  -- Request options.\n) → (\n    HttpResponse  -- The parsed response. \n)",
          "owner": "request",
          "desc": "Convenience wrapper for a `GET` request.\n",
          "tags": [],
          "name": "get",
          "return_str": "HttpConnection.HttpResponse",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "desc": "The parsed response. "
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "url",
              "desc": "The full URL to request."
            },
            {
              "lua_type": "RequestOptions?",
              "name": "options",
              "desc": "Request options."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 656
          },
          "is_method": false,
          "signature": "request.post(\n    url: string,  -- The full URL to request.\n    body: string?,  -- The request body string.\n    options: RequestOptions?  -- Additional request options.\n) → (\n    HttpResponse  -- The parsed response. \n)",
          "owner": "request",
          "desc": "Convenience wrapper for a `POST` request.\n",
          "tags": [],
          "name": "post",
          "return_str": "HttpConnection.HttpResponse",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "desc": "The parsed response. "
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "url",
              "desc": "The full URL to request."
            },
            {
              "lua_type": "string?",
              "name": "body",
              "desc": "The request body string."
            },
            {
              "lua_type": "RequestOptions?",
              "name": "options",
              "desc": "Additional request options."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 670
          },
          "is_method": false,
          "signature": "request.put(\n    url: string,  -- The full URL to request.\n    body: string?,  -- The request body string.\n    options: RequestOptions?  -- Additional request options.\n) → (\n    HttpResponse  -- The parsed response. \n)",
          "owner": "request",
          "desc": "Convenience wrapper for a `PUT` request.\n",
          "tags": [],
          "name": "put",
          "return_str": "HttpConnection.HttpResponse",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "desc": "The parsed response. "
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "url",
              "desc": "The full URL to request."
            },
            {
              "lua_type": "string?",
              "name": "body",
              "desc": "The request body string."
            },
            {
              "lua_type": "RequestOptions?",
              "name": "options",
              "desc": "Additional request options."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 683
          },
          "is_method": false,
          "signature": "request.delete(\n    url: string,  -- The full URL to request.\n    options: RequestOptions?  -- Request options.\n) → (\n    HttpResponse  -- The parsed response. \n)",
          "owner": "request",
          "desc": "Convenience wrapper for a `DELETE` request.\n",
          "tags": [],
          "name": "delete",
          "return_str": "HttpConnection.HttpResponse",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "desc": "The parsed response. "
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "url",
              "desc": "The full URL to request."
            },
            {
              "lua_type": "RequestOptions?",
              "name": "options",
              "desc": "Request options."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 696
          },
          "is_method": false,
          "signature": "request.head(\n    url: string,  -- The full URL to request.\n    options: RequestOptions?  -- Request options.\n) → (\n    HttpResponse  -- The parsed response (body is empty). \n)",
          "owner": "request",
          "desc": "Convenience wrapper for a `HEAD` request.\n\nReturns headers only - the body will be empty.\n",
          "tags": [],
          "name": "head",
          "return_str": "HttpConnection.HttpResponse",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "desc": "The parsed response (body is empty). "
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "url",
              "desc": "The full URL to request."
            },
            {
              "lua_type": "RequestOptions?",
              "name": "options",
              "desc": "Request options."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 707
          },
          "is_method": false,
          "signature": "request.raiseForStatus(\n    response: HttpConnection.HttpResponse  -- A buffered HTTP response.\n) → (\n    HttpResponse  -- The same response when the status is not an error. \n)",
          "owner": "request",
          "desc": "Raises an error for HTTP 4xx and 5xx responses.\n",
          "tags": [],
          "name": "raiseForStatus",
          "return_str": "HttpConnection.HttpResponse",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "desc": "The same response when the status is not an error. "
            }
          ],
          "params": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "name": "response",
              "desc": "A buffered HTTP response."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 720
          },
          "is_method": false,
          "signature": "request.decodeJsonBody(\n    response: HttpConnection.HttpResponse  -- A buffered HTTP response.\n) → (\n    any  -- The decoded JSON value. \n)",
          "owner": "request",
          "desc": "Decodes a buffered response body as JSON.\n",
          "tags": [],
          "name": "decodeJsonBody",
          "return_str": "any",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "any",
              "desc": "The decoded JSON value. "
            }
          ],
          "params": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "name": "response",
              "desc": "A buffered HTTP response."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 730
          },
          "is_method": false,
          "signature": "request.decodeFormBody(\n    response: HttpConnection.HttpResponse  -- A buffered HTTP response.\n) → (\n    { [string]: string | { string } }  -- The decoded form fields. \n)",
          "owner": "request",
          "desc": "Decodes a buffered response body as `application/x-www-form-urlencoded`.\n",
          "tags": [],
          "name": "decodeFormBody",
          "return_str": "{ [string]: string | { string } }",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "{ [string]: string | { string } }",
              "desc": "The decoded form fields. "
            }
          ],
          "params": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "name": "response",
              "desc": "A buffered HTTP response."
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 744
          },
          "is_method": false,
          "signature": "request.decodeMultipartBody(\n    response: HttpConnection.HttpResponse  -- A buffered HTTP response.\n) → (\n    { multipart.ParsedMultipartField }  -- The decoded multipart fields. \n)",
          "owner": "request",
          "desc": "Decodes a buffered response body as `multipart/form-data`.\n\nThe response must include a `content-type` header with a `boundary`\nparameter.\n",
          "tags": [],
          "name": "decodeMultipartBody",
          "return_str": "{ multipart.ParsedMultipartField }",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "{ multipart.ParsedMultipartField }",
              "desc": "The decoded multipart fields. "
            }
          ],
          "params": [
            {
              "lua_type": "HttpConnection.HttpResponse",
              "name": "response",
              "desc": "A buffered HTTP response."
            }
          ]
        }
      ],
      "properties": [],
      "source": {
        "path": "",
        "line": 0
      },
      "desc": ""
    }
  ]
}