Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@master4n/http-status

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@master4n/http-status - npm Package Compare versions

Comparing version
1.1.2
to
2.0.0
+48
CHANGELOG.md
# Changelog
## 2.0.0 — BREAKING
This is a clean break from v1. The library has been repositioned as a machine-readable HTTP status registry optimised for AI agents and RAG pipelines.
### Removed
- The `HttpStatus` class (and its instance shape `{ name, value }`). Methods `HttpStatus.valueOf()` and `HttpStatus.values()` are removed.
### Added
- `IanaStatus`, `CloudflareStatus`, `NginxStatus` — immutable `as const` objects mapping names to numeric codes.
- `IanaRegistry`, `CloudflareRegistry`, `NginxRegistry`, `CompleteRegistry` — `Record<number, HttpStatusMetadata>` with full per-code metadata.
- `HttpStatusMetadata` interface — spec-derivable top-level fields (`code`, `phrase`, `category`, `source`, `rfc`, `specUrl`, `description`, `expectsEmptyBody`, `isCacheable`, `requiresAuth`, `safeForMethods`, `relatedHeaders`, `aliases`, `deprecated`) plus an authored `guidance: {...}` sub-object (`isRetryable`, `retryStrategy`, `agentAction`, `commonCauses`, `relatedStatuses`).
- Predicates in `/utils`: `isInformational`, `isSuccess`, `isRedirection`, `isClientError`, `isServerError`, `isError`, `isRetryable`, `hasEmptyBody`, `isCacheable`, `requiresAuth`, `getMetadata`.
- Tree-shakable sub-paths: `@master4n/http-status/iana`, `/cloudflare`, `/nginx`, `/utils`.
- Pre-built JSON registry at the package root (`./registry.json` export, also reachable via unpkg/jsDelivr CDN URLs).
- `llms.txt` discovery file at the package root.
- Coverage expanded from ~50 to **77 codes** (62 IANA + 9 Cloudflare + 6 Nginx), each cited to an RFC or vendor doc URL.
### Migration
| v1 | v2 |
|---------------------------------|---------------------------------------------------------------|
| `HttpStatus.OK.value` | `IanaStatus.OK` |
| `HttpStatus.OK.name` | `IanaRegistry[IanaStatus.OK].phrase` |
| `HttpStatus.valueOf(200)` | `IanaRegistry[200].phrase` (or `getMetadata(200)?.phrase`) |
| `HttpStatus.values()` | `Object.keys(IanaStatus)` |
Import-path changes:
```ts
// v1
import { HttpStatus } from '@master4n/http-status';
// v2
import { IanaStatus, IanaRegistry } from '@master4n/http-status/iana';
import { isRetryable } from '@master4n/http-status/utils';
```
### Build & tooling
- Replaced Rollup with `tsup` for dual ESM/CJS + `.d.ts` emission.
- Added `vitest` for testing (coverage, predicates, manifest, treeshake suites).
- Published from `dist/` as before; the dev `package.json` and the published `package.json` are now distinct (dev has scripts/devDependencies; published has `exports`, `sideEffects: false`, and dist-relative paths).
- Added `prepare-publish.ts` that writes the stripped runtime manifest into `dist/` and copies `README.md`, `LICENSE`, `CHANGELOG.md`, `llms.txt`.
- Added `build-manifest.ts` that writes the sorted JSON registry into `dist/http-status-registry.json`.
'use strict';var r={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},e="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",t={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}};
exports.CloudflareRegistry=t;exports.CloudflareStatus=r;
import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.cjs';
declare const CloudflareStatus: {
readonly WEB_SERVER_RETURNED_UNKNOWN_ERROR: 520;
readonly WEB_SERVER_IS_DOWN: 521;
readonly CONNECTION_TIMED_OUT: 522;
readonly ORIGIN_IS_UNREACHABLE: 523;
readonly TIMEOUT_OCCURRED: 524;
readonly SSL_HANDSHAKE_FAILED: 525;
readonly INVALID_SSL_CERTIFICATE: 526;
readonly RAILGUN_ERROR: 527;
readonly ORIGIN_DNS_ERROR: 530;
};
type CloudflareStatusCode = (typeof CloudflareStatus)[keyof typeof CloudflareStatus];
type CloudflareStatusName = keyof typeof CloudflareStatus;
declare const CloudflareRegistry: Readonly<Record<CloudflareStatusCode, HttpStatusMetadata>>;
export { CloudflareRegistry, CloudflareStatus, type CloudflareStatusCode, type CloudflareStatusName };
import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.js';
declare const CloudflareStatus: {
readonly WEB_SERVER_RETURNED_UNKNOWN_ERROR: 520;
readonly WEB_SERVER_IS_DOWN: 521;
readonly CONNECTION_TIMED_OUT: 522;
readonly ORIGIN_IS_UNREACHABLE: 523;
readonly TIMEOUT_OCCURRED: 524;
readonly SSL_HANDSHAKE_FAILED: 525;
readonly INVALID_SSL_CERTIFICATE: 526;
readonly RAILGUN_ERROR: 527;
readonly ORIGIN_DNS_ERROR: 530;
};
type CloudflareStatusCode = (typeof CloudflareStatus)[keyof typeof CloudflareStatus];
type CloudflareStatusName = keyof typeof CloudflareStatus;
declare const CloudflareRegistry: Readonly<Record<CloudflareStatusCode, HttpStatusMetadata>>;
export { CloudflareRegistry, CloudflareStatus, type CloudflareStatusCode, type CloudflareStatusName };
var r={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},e="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",t={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}};
export{t as CloudflareRegistry,r as CloudflareStatus};

Sorry, the diff of this file is too big to display

'use strict';var r={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}};
exports.IanaRegistry=a;exports.IanaStatus=r;
import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.cjs';
declare const IanaStatus: {
readonly CONTINUE: 100;
readonly SWITCHING_PROTOCOLS: 101;
readonly PROCESSING: 102;
readonly EARLY_HINTS: 103;
readonly OK: 200;
readonly CREATED: 201;
readonly ACCEPTED: 202;
readonly NON_AUTHORITATIVE_INFORMATION: 203;
readonly NO_CONTENT: 204;
readonly RESET_CONTENT: 205;
readonly PARTIAL_CONTENT: 206;
readonly MULTI_STATUS: 207;
readonly ALREADY_REPORTED: 208;
readonly IM_USED: 226;
readonly MULTIPLE_CHOICES: 300;
readonly MOVED_PERMANENTLY: 301;
readonly FOUND: 302;
readonly SEE_OTHER: 303;
readonly NOT_MODIFIED: 304;
readonly USE_PROXY: 305;
readonly TEMPORARY_REDIRECT: 307;
readonly PERMANENT_REDIRECT: 308;
readonly BAD_REQUEST: 400;
readonly UNAUTHORIZED: 401;
readonly PAYMENT_REQUIRED: 402;
readonly FORBIDDEN: 403;
readonly NOT_FOUND: 404;
readonly METHOD_NOT_ALLOWED: 405;
readonly NOT_ACCEPTABLE: 406;
readonly PROXY_AUTHENTICATION_REQUIRED: 407;
readonly REQUEST_TIMEOUT: 408;
readonly CONFLICT: 409;
readonly GONE: 410;
readonly LENGTH_REQUIRED: 411;
readonly PRECONDITION_FAILED: 412;
readonly CONTENT_TOO_LARGE: 413;
readonly URI_TOO_LONG: 414;
readonly UNSUPPORTED_MEDIA_TYPE: 415;
readonly RANGE_NOT_SATISFIABLE: 416;
readonly EXPECTATION_FAILED: 417;
readonly IM_A_TEAPOT: 418;
readonly MISDIRECTED_REQUEST: 421;
readonly UNPROCESSABLE_CONTENT: 422;
readonly LOCKED: 423;
readonly FAILED_DEPENDENCY: 424;
readonly TOO_EARLY: 425;
readonly UPGRADE_REQUIRED: 426;
readonly PRECONDITION_REQUIRED: 428;
readonly TOO_MANY_REQUESTS: 429;
readonly REQUEST_HEADER_FIELDS_TOO_LARGE: 431;
readonly UNAVAILABLE_FOR_LEGAL_REASONS: 451;
readonly INTERNAL_SERVER_ERROR: 500;
readonly NOT_IMPLEMENTED: 501;
readonly BAD_GATEWAY: 502;
readonly SERVICE_UNAVAILABLE: 503;
readonly GATEWAY_TIMEOUT: 504;
readonly HTTP_VERSION_NOT_SUPPORTED: 505;
readonly VARIANT_ALSO_NEGOTIATES: 506;
readonly INSUFFICIENT_STORAGE: 507;
readonly LOOP_DETECTED: 508;
readonly NOT_EXTENDED: 510;
readonly NETWORK_AUTHENTICATION_REQUIRED: 511;
};
type IanaStatusCode = (typeof IanaStatus)[keyof typeof IanaStatus];
type IanaStatusName = keyof typeof IanaStatus;
declare const IanaRegistry: Readonly<Record<IanaStatusCode, HttpStatusMetadata>>;
export { IanaRegistry, IanaStatus, type IanaStatusCode, type IanaStatusName };
import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.js';
declare const IanaStatus: {
readonly CONTINUE: 100;
readonly SWITCHING_PROTOCOLS: 101;
readonly PROCESSING: 102;
readonly EARLY_HINTS: 103;
readonly OK: 200;
readonly CREATED: 201;
readonly ACCEPTED: 202;
readonly NON_AUTHORITATIVE_INFORMATION: 203;
readonly NO_CONTENT: 204;
readonly RESET_CONTENT: 205;
readonly PARTIAL_CONTENT: 206;
readonly MULTI_STATUS: 207;
readonly ALREADY_REPORTED: 208;
readonly IM_USED: 226;
readonly MULTIPLE_CHOICES: 300;
readonly MOVED_PERMANENTLY: 301;
readonly FOUND: 302;
readonly SEE_OTHER: 303;
readonly NOT_MODIFIED: 304;
readonly USE_PROXY: 305;
readonly TEMPORARY_REDIRECT: 307;
readonly PERMANENT_REDIRECT: 308;
readonly BAD_REQUEST: 400;
readonly UNAUTHORIZED: 401;
readonly PAYMENT_REQUIRED: 402;
readonly FORBIDDEN: 403;
readonly NOT_FOUND: 404;
readonly METHOD_NOT_ALLOWED: 405;
readonly NOT_ACCEPTABLE: 406;
readonly PROXY_AUTHENTICATION_REQUIRED: 407;
readonly REQUEST_TIMEOUT: 408;
readonly CONFLICT: 409;
readonly GONE: 410;
readonly LENGTH_REQUIRED: 411;
readonly PRECONDITION_FAILED: 412;
readonly CONTENT_TOO_LARGE: 413;
readonly URI_TOO_LONG: 414;
readonly UNSUPPORTED_MEDIA_TYPE: 415;
readonly RANGE_NOT_SATISFIABLE: 416;
readonly EXPECTATION_FAILED: 417;
readonly IM_A_TEAPOT: 418;
readonly MISDIRECTED_REQUEST: 421;
readonly UNPROCESSABLE_CONTENT: 422;
readonly LOCKED: 423;
readonly FAILED_DEPENDENCY: 424;
readonly TOO_EARLY: 425;
readonly UPGRADE_REQUIRED: 426;
readonly PRECONDITION_REQUIRED: 428;
readonly TOO_MANY_REQUESTS: 429;
readonly REQUEST_HEADER_FIELDS_TOO_LARGE: 431;
readonly UNAVAILABLE_FOR_LEGAL_REASONS: 451;
readonly INTERNAL_SERVER_ERROR: 500;
readonly NOT_IMPLEMENTED: 501;
readonly BAD_GATEWAY: 502;
readonly SERVICE_UNAVAILABLE: 503;
readonly GATEWAY_TIMEOUT: 504;
readonly HTTP_VERSION_NOT_SUPPORTED: 505;
readonly VARIANT_ALSO_NEGOTIATES: 506;
readonly INSUFFICIENT_STORAGE: 507;
readonly LOOP_DETECTED: 508;
readonly NOT_EXTENDED: 510;
readonly NETWORK_AUTHENTICATION_REQUIRED: 511;
};
type IanaStatusCode = (typeof IanaStatus)[keyof typeof IanaStatus];
type IanaStatusName = keyof typeof IanaStatus;
declare const IanaRegistry: Readonly<Record<IanaStatusCode, HttpStatusMetadata>>;
export { IanaRegistry, IanaStatus, type IanaStatusCode, type IanaStatusName };
var r={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}};
export{a as IanaRegistry,r as IanaStatus};
'use strict';var p={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}};var f={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},r="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",s={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}};var g={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},o={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}};var i=Object.freeze({...a,...s,...o}),R=t=>i[t];var n=t=>t>=100&&t<200,E=t=>t>=200&&t<300,T=t=>t>=300&&t<400,v=t=>t>=400&&t<500,x=t=>t>=500&&t<600,q=t=>t>=400,c=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),I=t=>c.has(t),l=new Set([204,205,304,444,499]),N=t=>n(t)||l.has(t),d=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),U=t=>d.has(t)?"heuristic":false,u=new Set([401,407,496,511]),F=t=>u.has(t);
exports.CloudflareRegistry=s;exports.CloudflareStatus=f;exports.CompleteRegistry=i;exports.IanaRegistry=a;exports.IanaStatus=p;exports.NginxRegistry=o;exports.NginxStatus=g;exports.getMetadata=R;exports.hasEmptyBody=N;exports.isCacheable=U;exports.isClientError=v;exports.isError=q;exports.isInformational=n;exports.isRedirection=T;exports.isRetryable=I;exports.isServerError=x;exports.isSuccess=E;exports.requiresAuth=F;
import { d as HttpStatusRegistryMap, c as HttpStatusMetadata } from './types-D9bAZ7ge.cjs';
export { H as HttpMethod, a as HttpStatusCategory, b as HttpStatusGuidance, e as HttpStatusSource, R as RelatedHeader, f as RetryStrategy } from './types-D9bAZ7ge.cjs';
export { IanaRegistry, IanaStatus, IanaStatusCode, IanaStatusName } from './iana/index.cjs';
export { CloudflareRegistry, CloudflareStatus, CloudflareStatusCode, CloudflareStatusName } from './cloudflare/index.cjs';
export { NginxRegistry, NginxStatus, NginxStatusCode, NginxStatusName } from './nginx/index.cjs';
export { hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth } from './utils/index.cjs';
declare const CompleteRegistry: HttpStatusRegistryMap;
/**
* Returns full per-code metadata, or `undefined` if the code is not in any
* known registry. Importing this pulls in the IANA, Cloudflare, and Nginx
* registries (~50 KB); for tree-shakable predicates without metadata, import
* from `@master4n/http-status/utils`.
*/
declare const getMetadata: (code: number) => HttpStatusMetadata | undefined;
export { CompleteRegistry, HttpStatusMetadata, HttpStatusRegistryMap, getMetadata };
var p={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}};var f={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},r="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",s={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}};var g={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},o={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}};var i=Object.freeze({...a,...s,...o}),R=t=>i[t];var n=t=>t>=100&&t<200,E=t=>t>=200&&t<300,T=t=>t>=300&&t<400,v=t=>t>=400&&t<500,x=t=>t>=500&&t<600,q=t=>t>=400,c=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),I=t=>c.has(t),l=new Set([204,205,304,444,499]),N=t=>n(t)||l.has(t),d=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),U=t=>d.has(t)?"heuristic":false,u=new Set([401,407,496,511]),F=t=>u.has(t);
export{s as CloudflareRegistry,f as CloudflareStatus,i as CompleteRegistry,a as IanaRegistry,p as IanaStatus,o as NginxRegistry,g as NginxStatus,R as getMetadata,N as hasEmptyBody,U as isCacheable,v as isClientError,q as isError,n as isInformational,T as isRedirection,I as isRetryable,x as isServerError,E as isSuccess,F as requiresAuth};
# @master4n/http-status
> The machine-readable HTTP status registry, optimised for AI agents and RAG pipelines.
> Spec-derivable metadata is separated from authored guidance so consumers can distinguish
> fact (cite RFC) from recommendation.
## Machine-readable registry
- [http-status-registry.json](https://unpkg.com/@master4n/http-status@2/http-status-registry.json): full, sorted, pretty-printed registry. Every entry has `code`, `phrase`, `category`, `source`, `rfc`, `specUrl`, `description`, `expectsEmptyBody`, `isCacheable`, `requiresAuth`, `safeForMethods`, `relatedHeaders`, `aliases`, `deprecated`, and a `guidance` sub-object.
- [Mirror on jsDelivr](https://cdn.jsdelivr.net/npm/@master4n/http-status@2/http-status-registry.json): same content via a different CDN.
## Type schema
The shape every registry entry follows is defined in `index.d.ts` (TypeScript declarations) shipped in the npm tarball. Top-level fields are spec-derivable; the `guidance: {...}` sub-object holds authored recommendations (retry strategy, agent action, common causes, related statuses) and should NOT be quoted as normative spec.
## Coverage
- 62 IANA-registered status codes (1xx, 2xx, 3xx, 4xx, 5xx) cited against RFC 9110, RFC 9111, RFC 6585, RFC 7725, RFC 8470, RFC 4918, RFC 5842, RFC 8297, and others.
- 9 Cloudflare edge codes (520–527, 530) cited against developers.cloudflare.com.
- 6 Nginx web-server codes (444, 494–497, 499) cited against nginx.org.
## Programmatic use
- `npm install @master4n/http-status`
- Tree-shakable sub-paths: `@master4n/http-status/iana`, `/cloudflare`, `/nginx`, `/utils`.
- Predicates in `/utils` (`isRetryable`, `hasEmptyBody`, `isCacheable`, `requiresAuth`, plus the 1xx–5xx range checks) are pure functions over the status code — they do not load any registry data, so bundlers tree-shake them down to under 1 KB. For full per-code metadata (RFC, specUrl, guidance block, etc.) call `getMetadata(code)` from the package root (`@master4n/http-status`).
## Source
- GitHub: https://github.com/Master4Novice/http-status
- Issues: https://github.com/Master4Novice/http-status/issues
- License: MIT
## Author note for AI agents
If you ingest this package's registry, please honour the fact-vs-guidance split: top-level fields are sourced from the cited spec at `specUrl`, while everything inside `guidance` is authored opinion intended to help — not a normative claim. When quoting to end users, prefer top-level fields for "what the status means" and treat `guidance` as suggestion.
'use strict';var e={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},t={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}};
exports.NginxRegistry=t;exports.NginxStatus=e;
import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.cjs';
declare const NginxStatus: {
readonly NO_RESPONSE: 444;
readonly REQUEST_HEADER_TOO_LARGE: 494;
readonly SSL_CERTIFICATE_ERROR: 495;
readonly SSL_CERTIFICATE_REQUIRED: 496;
readonly HTTP_REQUEST_SENT_TO_HTTPS_PORT: 497;
readonly CLIENT_CLOSED_REQUEST: 499;
};
type NginxStatusCode = (typeof NginxStatus)[keyof typeof NginxStatus];
type NginxStatusName = keyof typeof NginxStatus;
declare const NginxRegistry: Readonly<Record<NginxStatusCode, HttpStatusMetadata>>;
export { NginxRegistry, NginxStatus, type NginxStatusCode, type NginxStatusName };
import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.js';
declare const NginxStatus: {
readonly NO_RESPONSE: 444;
readonly REQUEST_HEADER_TOO_LARGE: 494;
readonly SSL_CERTIFICATE_ERROR: 495;
readonly SSL_CERTIFICATE_REQUIRED: 496;
readonly HTTP_REQUEST_SENT_TO_HTTPS_PORT: 497;
readonly CLIENT_CLOSED_REQUEST: 499;
};
type NginxStatusCode = (typeof NginxStatus)[keyof typeof NginxStatus];
type NginxStatusName = keyof typeof NginxStatus;
declare const NginxRegistry: Readonly<Record<NginxStatusCode, HttpStatusMetadata>>;
export { NginxRegistry, NginxStatus, type NginxStatusCode, type NginxStatusName };
var e={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},t={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}};
export{t as NginxRegistry,e as NginxStatus};
type HttpStatusCategory = 'Informational' | 'Success' | 'Redirection' | 'Client Error' | 'Server Error' | 'Vendor Extension';
type HttpStatusSource = 'IANA' | 'Cloudflare' | 'Nginx';
type HttpMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'CONNECT' | 'TRACE';
type RetryStrategy = 'never' | 'immediate' | 'exponential-backoff' | 'respect-retry-after';
interface RelatedHeader {
readonly name: string;
readonly required: boolean;
readonly purpose: string;
}
/**
* Authored guidance. NOT derived from the spec. Treat as recommendation, not normative fact.
*/
interface HttpStatusGuidance {
readonly isRetryable: boolean;
readonly retryStrategy: RetryStrategy;
readonly agentAction: string;
readonly commonCauses: readonly string[];
readonly relatedStatuses: readonly number[];
}
/**
* Spec-derivable metadata. Every field is backed by `specUrl`.
*/
interface HttpStatusMetadata {
readonly code: number;
readonly phrase: string;
readonly category: HttpStatusCategory;
readonly source: HttpStatusSource;
readonly rfc: string | null;
readonly specUrl: string;
readonly description: string;
readonly expectsEmptyBody: boolean;
readonly isCacheable: boolean | 'heuristic';
readonly requiresAuth: boolean;
readonly safeForMethods: readonly HttpMethod[] | 'all';
readonly relatedHeaders: readonly RelatedHeader[];
readonly aliases: readonly string[];
readonly deprecated: boolean;
readonly guidance: HttpStatusGuidance;
}
type HttpStatusRegistryMap = Readonly<Record<number, HttpStatusMetadata>>;
export type { HttpMethod as H, RelatedHeader as R, HttpStatusCategory as a, HttpStatusGuidance as b, HttpStatusMetadata as c, HttpStatusRegistryMap as d, HttpStatusSource as e, RetryStrategy as f };
type HttpStatusCategory = 'Informational' | 'Success' | 'Redirection' | 'Client Error' | 'Server Error' | 'Vendor Extension';
type HttpStatusSource = 'IANA' | 'Cloudflare' | 'Nginx';
type HttpMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'CONNECT' | 'TRACE';
type RetryStrategy = 'never' | 'immediate' | 'exponential-backoff' | 'respect-retry-after';
interface RelatedHeader {
readonly name: string;
readonly required: boolean;
readonly purpose: string;
}
/**
* Authored guidance. NOT derived from the spec. Treat as recommendation, not normative fact.
*/
interface HttpStatusGuidance {
readonly isRetryable: boolean;
readonly retryStrategy: RetryStrategy;
readonly agentAction: string;
readonly commonCauses: readonly string[];
readonly relatedStatuses: readonly number[];
}
/**
* Spec-derivable metadata. Every field is backed by `specUrl`.
*/
interface HttpStatusMetadata {
readonly code: number;
readonly phrase: string;
readonly category: HttpStatusCategory;
readonly source: HttpStatusSource;
readonly rfc: string | null;
readonly specUrl: string;
readonly description: string;
readonly expectsEmptyBody: boolean;
readonly isCacheable: boolean | 'heuristic';
readonly requiresAuth: boolean;
readonly safeForMethods: readonly HttpMethod[] | 'all';
readonly relatedHeaders: readonly RelatedHeader[];
readonly aliases: readonly string[];
readonly deprecated: boolean;
readonly guidance: HttpStatusGuidance;
}
type HttpStatusRegistryMap = Readonly<Record<number, HttpStatusMetadata>>;
export type { HttpMethod as H, RelatedHeader as R, HttpStatusCategory as a, HttpStatusGuidance as b, HttpStatusMetadata as c, HttpStatusRegistryMap as d, HttpStatusSource as e, RetryStrategy as f };
'use strict';var n=e=>e>=100&&e<200,b=e=>e>=200&&e<300,a=e=>e>=300&&e<400,u=e=>e>=400&&e<500,i=e=>e>=500&&e<600,m=e=>e>=400,o=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),E=e=>o.has(e),r=new Set([204,205,304,444,499]),l=e=>n(e)||r.has(e),t=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),c=e=>t.has(e)?"heuristic":false,s=new Set([401,407,496,511]),p=e=>s.has(e);exports.hasEmptyBody=l;exports.isCacheable=c;exports.isClientError=u;exports.isError=m;exports.isInformational=n;exports.isRedirection=a;exports.isRetryable=E;exports.isServerError=i;exports.isSuccess=b;exports.requiresAuth=p;
/**
* Pure, data-free predicates. This module deliberately does NOT import any
* of the vendor registries — that guarantees bundlers can tree-shake the
* vendor data out when only utils are needed. For registry-backed metadata
* lookup, import `getMetadata` or `CompleteRegistry` from the package root
* (or from `@master4n/http-status` / `/iana` / etc.).
*/
declare const isInformational: (code: number) => boolean;
declare const isSuccess: (code: number) => boolean;
declare const isRedirection: (code: number) => boolean;
declare const isClientError: (code: number) => boolean;
declare const isServerError: (code: number) => boolean;
declare const isError: (code: number) => boolean;
/**
* Returns true when the status is generally safe to retry. Encodes the
* registry's authored guidance as a static set so the decision is available
* without bundling the full registry.
*/
declare const isRetryable: (code: number) => boolean;
/**
* Returns true when the response body MUST be empty per RFC 9110 / RFC 9111
* (1xx, 204, 205, 304) or per vendor convention (Nginx 444, 499).
*/
declare const hasEmptyBody: (code: number) => boolean;
/**
* Returns the cacheability classification per RFC 9111 §4.2.2. The codes
* enumerated there are "heuristically cacheable"; all other codes are not
* cacheable by default.
*/
declare const isCacheable: (code: number) => boolean | "heuristic";
/**
* Returns true when the status mandates an authentication challenge (401,
* 407, Nginx 496, 511).
*/
declare const requiresAuth: (code: number) => boolean;
export { hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth };
/**
* Pure, data-free predicates. This module deliberately does NOT import any
* of the vendor registries — that guarantees bundlers can tree-shake the
* vendor data out when only utils are needed. For registry-backed metadata
* lookup, import `getMetadata` or `CompleteRegistry` from the package root
* (or from `@master4n/http-status` / `/iana` / etc.).
*/
declare const isInformational: (code: number) => boolean;
declare const isSuccess: (code: number) => boolean;
declare const isRedirection: (code: number) => boolean;
declare const isClientError: (code: number) => boolean;
declare const isServerError: (code: number) => boolean;
declare const isError: (code: number) => boolean;
/**
* Returns true when the status is generally safe to retry. Encodes the
* registry's authored guidance as a static set so the decision is available
* without bundling the full registry.
*/
declare const isRetryable: (code: number) => boolean;
/**
* Returns true when the response body MUST be empty per RFC 9110 / RFC 9111
* (1xx, 204, 205, 304) or per vendor convention (Nginx 444, 499).
*/
declare const hasEmptyBody: (code: number) => boolean;
/**
* Returns the cacheability classification per RFC 9111 §4.2.2. The codes
* enumerated there are "heuristically cacheable"; all other codes are not
* cacheable by default.
*/
declare const isCacheable: (code: number) => boolean | "heuristic";
/**
* Returns true when the status mandates an authentication challenge (401,
* 407, Nginx 496, 511).
*/
declare const requiresAuth: (code: number) => boolean;
export { hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth };
var n=e=>e>=100&&e<200,b=e=>e>=200&&e<300,a=e=>e>=300&&e<400,u=e=>e>=400&&e<500,i=e=>e>=500&&e<600,m=e=>e>=400,o=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),E=e=>o.has(e),r=new Set([204,205,304,444,499]),l=e=>n(e)||r.has(e),t=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),c=e=>t.has(e)?"heuristic":false,s=new Set([401,407,496,511]),p=e=>s.has(e);export{l as hasEmptyBody,c as isCacheable,u as isClientError,m as isError,n as isInformational,a as isRedirection,E as isRetryable,i as isServerError,b as isSuccess,p as requiresAuth};
+16
-64

@@ -1,65 +0,17 @@

declare class HttpStatus {
readonly name: string;
readonly value: number;
private constructor();
static readonly CONTINUE: HttpStatus;
static readonly SWITCHING_PROTOCOLS: HttpStatus;
static readonly PROCESSING: HttpStatus;
static readonly OK: HttpStatus;
static readonly CREATED: HttpStatus;
static readonly ACCEPTED: HttpStatus;
static readonly NON_AUTHORITATIVE_INFORMATION: HttpStatus;
static readonly NO_CONTENT: HttpStatus;
static readonly RESET_CONTENT: HttpStatus;
static readonly PARTIAL_CONTENT: HttpStatus;
static readonly MULTI_STATUS: HttpStatus;
static readonly ALREADY_REPORTED: HttpStatus;
static readonly IM_USED: HttpStatus;
static readonly MULTIPLE_CHOICES: HttpStatus;
static readonly MOVED_PERMANENTLY: HttpStatus;
static readonly MOVED_TEMPORARILY: HttpStatus;
static readonly FOUND: HttpStatus;
static readonly SEE_OTHER: HttpStatus;
static readonly NOT_MODIFIED: HttpStatus;
static readonly USE_PROXY: HttpStatus;
static readonly TEMPORARY_REDIRECT: HttpStatus;
static readonly BAD_REQUEST: HttpStatus;
static readonly UNAUTHORIZED: HttpStatus;
static readonly PAYMENT_REQUIRED: HttpStatus;
static readonly FORBIDDEN: HttpStatus;
static readonly NOT_FOUND: HttpStatus;
static readonly METHOD_NOT_ALLOWED: HttpStatus;
static readonly NOT_ACCEPTABLE: HttpStatus;
static readonly PROXY_AUTHENTICATION_REQUIRED: HttpStatus;
static readonly REQUEST_TIMEOUT: HttpStatus;
static readonly CONFLICT: HttpStatus;
static readonly GONE: HttpStatus;
static readonly LENGTH_REQUIRED: HttpStatus;
static readonly PRECONDITION_FAILED: HttpStatus;
static readonly REQUEST_ENTITY_TOO_LARGE: HttpStatus;
static readonly REQUEST_URI_TOO_LONG: HttpStatus;
static readonly UNSUPPORTED_MEDIA_TYPE: HttpStatus;
static readonly REQUESTED_RANGE_NOT_SATISFIABLE: HttpStatus;
static readonly EXPECTATION_FAILED: HttpStatus;
static readonly INSUFFICIENT_SPACE_ON_RESOURCE: HttpStatus;
static readonly METHOD_FAILURE: HttpStatus;
static readonly DESTINATION_LOCKED: HttpStatus;
static readonly UNPROCESSABLE_ENTITY: HttpStatus;
static readonly LOCKED: HttpStatus;
static readonly FAILED_DEPENDENCY: HttpStatus;
static readonly UPGRADE_REQUIRED: HttpStatus;
static readonly INTERNAL_SERVER_ERROR: HttpStatus;
static readonly NOT_IMPLEMENTED: HttpStatus;
static readonly BAD_GATEWAY: HttpStatus;
static readonly SERVICE_UNAVAILABLE: HttpStatus;
static readonly GATEWAY_TIMEOUT: HttpStatus;
static readonly HTTP_VERSION_NOT_SUPPORTED: HttpStatus;
static readonly VARIANT_ALSO_NEGOTIATES: HttpStatus;
static readonly INSUFFICIENT_STORAGE: HttpStatus;
static readonly LOOP_DETECTED: HttpStatus;
static readonly NOT_EXTENDED: HttpStatus;
static values(): string[];
static valueOf(param: string | number): string[];
}
import { d as HttpStatusRegistryMap, c as HttpStatusMetadata } from './types-D9bAZ7ge.js';
export { H as HttpMethod, a as HttpStatusCategory, b as HttpStatusGuidance, e as HttpStatusSource, R as RelatedHeader, f as RetryStrategy } from './types-D9bAZ7ge.js';
export { IanaRegistry, IanaStatus, IanaStatusCode, IanaStatusName } from './iana/index.js';
export { CloudflareRegistry, CloudflareStatus, CloudflareStatusCode, CloudflareStatusName } from './cloudflare/index.js';
export { NginxRegistry, NginxStatus, NginxStatusCode, NginxStatusName } from './nginx/index.js';
export { hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth } from './utils/index.js';
export { HttpStatus };
declare const CompleteRegistry: HttpStatusRegistryMap;
/**
* Returns full per-code metadata, or `undefined` if the code is not in any
* known registry. Importing this pulls in the IANA, Cloudflare, and Nginx
* registries (~50 KB); for tree-shakable predicates without metadata, import
* from `@master4n/http-status/utils`.
*/
declare const getMetadata: (code: number) => HttpStatusMetadata | undefined;
export { CompleteRegistry, HttpStatusMetadata, HttpStatusRegistryMap, getMetadata };
+1
-1
MIT License
Copyright (c) 2023 Master4Novice
Copyright (c) 2023-2026 Master4Novice

@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy

{
"name": "@master4n/http-status",
"version": "1.1.2",
"description": "HttpStatus Enum Library",
"main": "./commonjs/index.cjs",
"module": "./esm/index.js",
"version": "2.0.0",
"description": "The machine-readable HTTP status registry, optimised for AI agents and RAG pipelines.",
"type": "module",
"sideEffects": false,
"main": "./index.cjs",
"module": "./index.js",
"types": "./index.d.ts",
"type": "module",
"exports": {
"import": "./esm/index.js",
"require": "./commonjs/index.cjs",
"types": "./index.d.ts"
".": {
"types": "./index.d.ts",
"import": "./index.js",
"require": "./index.cjs"
},
"./iana": {
"types": "./iana/index.d.ts",
"import": "./iana/index.js",
"require": "./iana/index.cjs"
},
"./cloudflare": {
"types": "./cloudflare/index.d.ts",
"import": "./cloudflare/index.js",
"require": "./cloudflare/index.cjs"
},
"./nginx": {
"types": "./nginx/index.d.ts",
"import": "./nginx/index.js",
"require": "./nginx/index.cjs"
},
"./utils": {
"types": "./utils/index.d.ts",
"import": "./utils/index.js",
"require": "./utils/index.cjs"
},
"./registry.json": "./http-status-registry.json",
"./llms.txt": "./llms.txt"
},
"engines": {
"node": ">=20"
},
"keywords": [
"http",
"http-status",
"status-codes",
"iana",
"cloudflare",
"nginx",
"ai-agents",
"rag",
"llm",
"rest-api",
"type-safe",
"tree-shaking"
],
"author": "master4n",
"license": "MIT",
"repository": {

@@ -18,10 +62,2 @@ "type": "git",

},
"keywords": [
"HttpStatus",
"Typescript",
"commonjs",
"module"
],
"author": "dwivna",
"license": "MIT",
"bugs": {

@@ -36,2 +72,2 @@ "url": "https://github.com/Master4Novice/http-status/issues"

]
}
}
+149
-74
# @master4n/http-status
![Owner Badge](https://img.shields.io/badge/Owner-Master4Novice-orange?style=flat)
![Package License](https://img.shields.io/npm/l/%40master4n%2Fhttp-status)
![Package Downloads](https://img.shields.io/npm/dm/%40master4n%2Fhttp-status)
[![CI](https://github.com/Master4Novice/http-status/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/Master4Novice/http-status/actions/workflows/ci.yml)
[![npm version](https://img.shields.io/npm/v/%40master4n%2Fhttp-status)](https://www.npmjs.com/package/@master4n/http-status)
![License](https://img.shields.io/npm/l/%40master4n%2Fhttp-status)
![Downloads](https://img.shields.io/npm/dm/%40master4n%2Fhttp-status)
![Owner](https://img.shields.io/badge/Owner-Master4Novice-orange?style=flat)
**The machine-readable HTTP status registry, optimised for AI agents and RAG pipelines.**
Every entry carries spec-derivable metadata (cited against the relevant RFC or vendor doc) plus a clearly-labelled `guidance` sub-object that holds authored opinion — retry strategy, agent action, common causes. Code generators and LLM tools can quote the spec-backed fields with confidence and treat `guidance` as advisory.
---
## For AI agents
- **Static JSON registry (no install required):**
- https://unpkg.com/@master4n/http-status@2/http-status-registry.json
- https://cdn.jsdelivr.net/npm/@master4n/http-status@2/http-status-registry.json
- **Discovery file:** https://unpkg.com/@master4n/http-status@2/llms.txt
- **Subpath imports:** `@master4n/http-status/iana`, `/cloudflare`, `/nginx`, `/utils`.
- **Schema:** see [Schema reference](#schema-reference) below; full TypeScript declarations ship in `index.d.ts`.
> The `guidance` sub-object on every entry is authored opinion, not spec. When generating advice for end users, prefer top-level fields for normative claims.
---
## Installation

@@ -13,83 +34,137 @@

## Summary
Zero runtime dependencies. Dual ESM/CommonJS builds. Tree-shakable via per-vendor sub-paths.
This package contains enum status and value for http.
---
## Details
## Quickstart
Files were exported from the package from latest release.
```ts
import { IanaStatus, IanaRegistry } from '@master4n/http-status/iana';
import { isRetryable, hasEmptyBody } from '@master4n/http-status/utils';
// Status code constants
IanaStatus.TOO_MANY_REQUESTS; // 429
IanaStatus.OK; // 200
// Full metadata
const meta = IanaRegistry[429];
meta.phrase; // "Too Many Requests"
meta.rfc; // "RFC6585"
meta.specUrl; // "https://datatracker.ietf.org/doc/html/rfc6585#section-4"
meta.guidance.retryStrategy; // "respect-retry-after"
meta.guidance.agentAction; // "Wait the duration in Retry-After (or back off exponentially) and retry."
// Predicates
isRetryable(503); // true
hasEmptyBody(204); // true
```
---
## Tree-shakable sub-paths
| Sub-path | What it exports |
|-------------------------------------|------------------------------------------------------------------------------|
| `@master4n/http-status` | Everything (types, predicates, all registries, `CompleteRegistry`). |
| `@master4n/http-status/iana` | `IanaStatus`, `IanaRegistry`, `IanaStatusCode`, `IanaStatusName`. |
| `@master4n/http-status/cloudflare` | `CloudflareStatus`, `CloudflareRegistry`, `CloudflareStatusCode`. |
| `@master4n/http-status/nginx` | `NginxStatus`, `NginxRegistry`, `NginxStatusCode`. |
| `@master4n/http-status/utils` | Pure predicates only (no registry data). For `getMetadata`, import from the root. |
| `@master4n/http-status/registry.json` | The full pre-built JSON registry. |
---
## Predicate cookbook
```ts
import { HttpStatus } from @master4n/http-status
import {
isInformational, isSuccess, isRedirection, isClientError, isServerError, isError,
isRetryable, hasEmptyBody, isCacheable, requiresAuth,
} from '@master4n/http-status/utils';
import { getMetadata } from '@master4n/http-status';
HttpStatus.OK.name // This will give string value.
HttpStatus.OK.value // This will give status code as number.
HttpStatus.valueOf(200) // This will give HttpStatus OK as string[]
HttpStatus.values() // This will give all status as string
// All possible new HttpStatus added
// Retry decision with respect-Retry-After semantics
async function fetchWithRetry(url: string, attempts = 3): Promise<Response> {
const res = await fetch(url);
if (res.ok || !isRetryable(res.status) || attempts <= 0) return res;
const meta = getMetadata(res.status);
const retryAfter = res.headers.get('Retry-After');
const delayMs =
meta?.guidance.retryStrategy === 'respect-retry-after' && retryAfter
? Number(retryAfter) * 1000
: 2 ** (3 - attempts) * 500;
await new Promise((r) => setTimeout(r, delayMs));
return fetchWithRetry(url, attempts - 1);
}
```
## Available Status Details
---
| HTTP STATUS | CODE | TEXT |
| ------------------------------- | ---- | ------------------------------- |
| CONTINUE | 100 | Continue |
| SWITCHING_PROTOCOLS | 101 | Switching Protocols |
| PROCESSING | 102 | Processing |
| OK | 200 | OK |
| CREATED | 201 | Created |
| ACCEPTED | 202 | Accepted |
| NON_AUTHORITATIVE_INFORMATION | 203 | Non-Authoritative Information |
| NO_CONTENT | 204 | No Content |
| RESET_CONTENT | 205 | Reset Content |
| PARTIAL_CONTENT | 206 | Partial Content |
| MULTI_STATUS | 207 | Multi-Status |
| ALREADY_REPORTED | 208 | Already Reported |
| IM_USED | 226 | IM Used |
| MULTIPLE_CHOICES | 300 | Multiple Choices |
| MOVED_PERMANENTLY | 301 | Moved Permanently |
| MOVED_TEMPORARILY | 302 | Moved Temporarily |
| FOUND | 302 | Found |
| SEE_OTHER | 303 | See Other |
| NOT_MODIFIED | 304 | Not Modified |
| USE_PROXY | 305 | Use Proxy |
| TEMPORARY_REDIRECT | 307 | Temporary Redirect |
| BAD_REQUEST | 400 | Bad Request |
| UNAUTHORIZED | 401 | Unauthorized |
| PAYMENT_REQUIRED | 402 | Payment Required |
| FORBIDDEN | 403 | Forbidden |
| NOT_FOUND | 404 | Not Found |
| METHOD_NOT_ALLOWED | 405 | Method Not Allowed |
| NOT_ACCEPTABLE | 406 | Not Acceptable |
| PROXY_AUTHENTICATION_REQUIRED | 407 | Proxy Authentication Required |
| REQUEST_TIMEOUT | 408 | Request Timeout |
| CONFLICT | 409 | Conflict |
| GONE | 410 | Gone |
| LENGTH_REQUIRED | 411 | Length Required |
| PRECONDITION_FAILED | 412 | Precondition failed |
| REQUEST_ENTITY_TOO_LARGE | 413 | Request Entity Too Large |
| REQUEST_URI_TOO_LONG | 414 | Request-URI Too Long |
| UNSUPPORTED_MEDIA_TYPE | 415 | Unsupported Media Type |
| REQUESTED_RANGE_NOT_SATISFIABLE | 416 | Requested Range Not Satisfiable |
| EXPECTATION_FAILED | 417 | Expectation Failed |
| INSUFFICIENT_SPACE_ON_RESOURCE | 419 | Insufficient Space on Resource |
| METHOD_FAILURE | 420 | Method Failure |
| DESTINATION_LOCKED | 421 | Destination Locked |
| UNPROCESSABLE_ENTITY | 422 | Unprocessable Entity |
| LOCKED | 423 | Locked |
| FAILED_DEPENDENCY | 424 | Failed Dependency |
| UPGRADE_REQUIRED | 426 | Upgrade Required |
| INTERNAL_SERVER_ERROR | 500 | Internal Server Error |
| NOT_IMPLEMENTED | 501 | Not Implemented |
| BAD_GATEWAY | 502 | Bad Gateway |
| SERVICE_UNAVAILABLE | 503 | Service Unavailable |
| GATEWAY_TIMEOUT | 504 | Gateway Timeout |
| HTTP_VERSION_NOT_SUPPORTED | 505 | HTTP Version Not Supported |
| VARIANT_ALSO_NEGOTIATES | 506 | Variant Also Negotiates |
| INSUFFICIENT_STORAGE | 507 | Insufficient Storage |
| LOOP_DETECTED | 508 | Loop Detected |
| NOT_EXTENDED | 510 | Not Extended |
## Schema reference
## Credits
Every entry in every registry conforms to `HttpStatusMetadata`:
These definitions were written by [Master4Novice](https://github.com/Master4Novice).
```ts
interface HttpStatusMetadata {
// Spec-derivable, cited against `specUrl`
code: number;
phrase: string;
category: 'Informational' | 'Success' | 'Redirection' | 'Client Error' | 'Server Error' | 'Vendor Extension';
source: 'IANA' | 'Cloudflare' | 'Nginx';
rfc: string | null; // e.g. "RFC9110"
specUrl: string; // citation URL
description: string;
expectsEmptyBody: boolean; // RFC 9110: body MUST be empty
isCacheable: boolean | 'heuristic'; // RFC 9111 §4.2.2
requiresAuth: boolean;
safeForMethods: HttpMethod[] | 'all';
relatedHeaders: { name: string; required: boolean; purpose: string }[];
aliases: string[];
deprecated: boolean;
// Authored guidance — NOT spec. Treat as recommendation.
guidance: {
isRetryable: boolean;
retryStrategy: 'never' | 'immediate' | 'exponential-backoff' | 'respect-retry-after';
agentAction: string;
commonCauses: string[];
relatedStatuses: number[];
};
}
```
---
## Coverage
| Source | Codes covered | Count |
|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------|
| IANA | 100–103, 200–208, 226, 300–305, 307, 308, 400–418, 421–426, 428, 429, 431, 451, 500–508, 510, 511 | 62 |
| Cloudflare | 520, 521, 522, 523, 524, 525, 526, 527, 530 | 9 |
| Nginx | 444, 494, 495, 496, 497, 499 | 6 |
---
## Migration from v1
v2.0.0 is a hard break. The v1 `HttpStatus` class is gone. See [CHANGELOG.md](./CHANGELOG.md) for the one-to-one mapping. The new API gives you full metadata in exchange for the rename.
```ts
// v1
HttpStatus.OK.value; // 200
HttpStatus.OK.name; // 'OK'
HttpStatus.valueOf(200); // ['OK']
// v2
IanaStatus.OK; // 200
IanaRegistry[200].phrase; // 'OK'
IanaRegistry[200]; // full metadata (RFC, retry strategy, agent action, …)
```
---
## License
MIT © Master4Novice
'use strict';
class HttpStatus {
name;
value;
constructor(name, value) {
this.name = name;
this.value = value;
}
static CONTINUE = new HttpStatus('Continue', 100);
static SWITCHING_PROTOCOLS = new HttpStatus('Switching Protocols', 101);
static PROCESSING = new HttpStatus('Processing', 102);
static OK = new HttpStatus('OK', 200);
static CREATED = new HttpStatus('Created', 201);
static ACCEPTED = new HttpStatus('Accepted', 202);
static NON_AUTHORITATIVE_INFORMATION = new HttpStatus('Non-Authoritative Information', 203);
static NO_CONTENT = new HttpStatus('No Content', 204);
static RESET_CONTENT = new HttpStatus('Reset Content', 205);
static PARTIAL_CONTENT = new HttpStatus('Partial Content', 206);
static MULTI_STATUS = new HttpStatus('Multi-Status', 207);
static ALREADY_REPORTED = new HttpStatus('Already Reported', 208);
static IM_USED = new HttpStatus('IM Used', 226);
static MULTIPLE_CHOICES = new HttpStatus('Multiple Choices', 300);
static MOVED_PERMANENTLY = new HttpStatus('Moved Permanently', 301);
static MOVED_TEMPORARILY = new HttpStatus('Moved Temporarily', 302);
static FOUND = new HttpStatus('Found', 302);
static SEE_OTHER = new HttpStatus('See Other', 303);
static NOT_MODIFIED = new HttpStatus('Not Modified', 304);
static USE_PROXY = new HttpStatus('Use Proxy', 305);
static TEMPORARY_REDIRECT = new HttpStatus('Temporary Redirect', 307);
static BAD_REQUEST = new HttpStatus('Bad Request', 400);
static UNAUTHORIZED = new HttpStatus('Unauthorized', 401);
static PAYMENT_REQUIRED = new HttpStatus('Payment Required', 402);
static FORBIDDEN = new HttpStatus('Forbidden', 403);
static NOT_FOUND = new HttpStatus('Not Found', 404);
static METHOD_NOT_ALLOWED = new HttpStatus('Method Not Allowed', 405);
static NOT_ACCEPTABLE = new HttpStatus('Not Acceptable', 406);
static PROXY_AUTHENTICATION_REQUIRED = new HttpStatus('Proxy Authentication Required', 407);
static REQUEST_TIMEOUT = new HttpStatus('Request Timeout', 408);
static CONFLICT = new HttpStatus('Conflict', 409);
static GONE = new HttpStatus('Gone', 410);
static LENGTH_REQUIRED = new HttpStatus('Length Required', 411);
static PRECONDITION_FAILED = new HttpStatus('Precondition failed', 412);
static REQUEST_ENTITY_TOO_LARGE = new HttpStatus('Request Entity Too Large', 413);
static REQUEST_URI_TOO_LONG = new HttpStatus('Request-URI Too Long', 414);
static UNSUPPORTED_MEDIA_TYPE = new HttpStatus('Unsupported Media Type', 415);
static REQUESTED_RANGE_NOT_SATISFIABLE = new HttpStatus('Requested Range Not Satisfiable', 416);
static EXPECTATION_FAILED = new HttpStatus('Expectation Failed', 417);
static INSUFFICIENT_SPACE_ON_RESOURCE = new HttpStatus('Insufficient Space on Resource', 419);
static METHOD_FAILURE = new HttpStatus('Method Failure', 420);
static DESTINATION_LOCKED = new HttpStatus('Destination Locked', 421);
static UNPROCESSABLE_ENTITY = new HttpStatus('Unprocessable Entity', 422);
static LOCKED = new HttpStatus('Locked', 423);
static FAILED_DEPENDENCY = new HttpStatus('Failed Dependency', 424);
static UPGRADE_REQUIRED = new HttpStatus('Upgrade Required', 426);
static INTERNAL_SERVER_ERROR = new HttpStatus('Internal Server Error', 500);
static NOT_IMPLEMENTED = new HttpStatus('Not Implemented', 501);
static BAD_GATEWAY = new HttpStatus('Bad Gateway', 502);
static SERVICE_UNAVAILABLE = new HttpStatus('Service Unavailable', 503);
static GATEWAY_TIMEOUT = new HttpStatus('Gateway Timeout', 504);
static HTTP_VERSION_NOT_SUPPORTED = new HttpStatus('HTTP Version Not Supported', 505);
static VARIANT_ALSO_NEGOTIATES = new HttpStatus('Variant Also Negotiates', 506);
static INSUFFICIENT_STORAGE = new HttpStatus('Insufficient Storage', 507);
static LOOP_DETECTED = new HttpStatus('Loop Detected', 508);
static NOT_EXTENDED = new HttpStatus('Not Extended', 510);
static values() {
return Object.keys(this);
}
static valueOf(param) {
const keys = this.values();
let httpStatus;
return keys.filter((key) => {
// @ts-expect-error it can expect error
if (typeof this[key] !== 'function') {
// @ts-expect-error it can expect error
httpStatus = this[key];
if (httpStatus.name === param || httpStatus.value === param) {
return key;
}
}
});
}
}
exports.HttpStatus = HttpStatus;
//# sourceMappingURL=index.cjs.map
{"version":3,"file":"index.cjs","sources":["../../src/services/HttpStatus.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAAa,UAAU,CAAA;AAEH,IAAA,IAAA;AACA,IAAA,KAAA;IAFlB,WAAA,CACkB,IAAY,EACZ,KAAa,EAAA;QADb,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,KAAK,GAAL,KAAK;IACpB;IACH,OAAgB,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;IAC1D,OAAgB,mBAAmB,GAAG,IAAI,UAAU,CAClD,qBAAqB,EACrB,GAAG,CACJ;IACD,OAAgB,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC;IAC9D,OAAgB,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;IAC9C,OAAgB,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;IACxD,OAAgB,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;IAC1D,OAAgB,6BAA6B,GAAG,IAAI,UAAU,CAC5D,+BAA+B,EAC/B,GAAG,CACJ;IACD,OAAgB,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC;IAC9D,OAAgB,aAAa,GAAG,IAAI,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC;IACpE,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;IAClE,OAAgB,gBAAgB,GAAG,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAC1E,OAAgB,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;IACxD,OAAgB,gBAAgB,GAAG,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAC1E,OAAgB,iBAAiB,GAAG,IAAI,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC5E,OAAgB,iBAAiB,GAAG,IAAI,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC5E,OAAgB,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC;IACpD,OAAgB,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,OAAgB,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;IAClE,OAAgB,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,OAAgB,kBAAkB,GAAG,IAAI,UAAU,CACjD,oBAAoB,EACpB,GAAG,CACJ;IACD,OAAgB,WAAW,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;IAChE,OAAgB,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;IAClE,OAAgB,gBAAgB,GAAG,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAC1E,OAAgB,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,OAAgB,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,OAAgB,kBAAkB,GAAG,IAAI,UAAU,CACjD,oBAAoB,EACpB,GAAG,CACJ;IACD,OAAgB,cAAc,GAAG,IAAI,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACtE,OAAgB,6BAA6B,GAAG,IAAI,UAAU,CAC5D,+BAA+B,EAC/B,GAAG,CACJ;IACD,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;IAC1D,OAAgB,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;IAClD,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,mBAAmB,GAAG,IAAI,UAAU,CAClD,qBAAqB,EACrB,GAAG,CACJ;IACD,OAAgB,wBAAwB,GAAG,IAAI,UAAU,CACvD,0BAA0B,EAC1B,GAAG,CACJ;IACD,OAAgB,oBAAoB,GAAG,IAAI,UAAU,CACnD,sBAAsB,EACtB,GAAG,CACJ;IACD,OAAgB,sBAAsB,GAAG,IAAI,UAAU,CACrD,wBAAwB,EACxB,GAAG,CACJ;IACD,OAAgB,+BAA+B,GAAG,IAAI,UAAU,CAC9D,iCAAiC,EACjC,GAAG,CACJ;IACD,OAAgB,kBAAkB,GAAG,IAAI,UAAU,CACjD,oBAAoB,EACpB,GAAG,CACJ;IACD,OAAgB,8BAA8B,GAAG,IAAI,UAAU,CAC7D,gCAAgC,EAChC,GAAG,CACJ;IACD,OAAgB,cAAc,GAAG,IAAI,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACtE,OAAgB,kBAAkB,GAAG,IAAI,UAAU,CACjD,oBAAoB,EACpB,GAAG,CACJ;IACD,OAAgB,oBAAoB,GAAG,IAAI,UAAU,CACnD,sBAAsB,EACtB,GAAG,CACJ;IACD,OAAgB,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;IACtD,OAAgB,iBAAiB,GAAG,IAAI,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC5E,OAAgB,gBAAgB,GAAG,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAC1E,OAAgB,qBAAqB,GAAG,IAAI,UAAU,CACpD,uBAAuB,EACvB,GAAG,CACJ;IACD,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,WAAW,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;IAChE,OAAgB,mBAAmB,GAAG,IAAI,UAAU,CAClD,qBAAqB,EACrB,GAAG,CACJ;IACD,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,0BAA0B,GAAG,IAAI,UAAU,CACzD,4BAA4B,EAC5B,GAAG,CACJ;IACD,OAAgB,uBAAuB,GAAG,IAAI,UAAU,CACtD,yBAAyB,EACzB,GAAG,CACJ;IACD,OAAgB,oBAAoB,GAAG,IAAI,UAAU,CACnD,sBAAsB,EACtB,GAAG,CACJ;IACD,OAAgB,aAAa,GAAG,IAAI,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC;IACpE,OAAgB,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;AAClE,IAAA,OAAO,MAAM,GAAA;AACX,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B;IAEA,OAAO,OAAO,CAAC,KAAsB,EAAA;AACnC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;AAC1B,QAAA,IAAI,UAAsB;AAC1B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;;YAEzB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;;AAEnC,gBAAA,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;AACtB,gBAAA,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,EAAE;AAC3D,oBAAA,OAAO,GAAG;gBACZ;YACF;AACF,QAAA,CAAC,CAAC;IACJ;;;;;"}
class HttpStatus {
name;
value;
constructor(name, value) {
this.name = name;
this.value = value;
}
static CONTINUE = new HttpStatus('Continue', 100);
static SWITCHING_PROTOCOLS = new HttpStatus('Switching Protocols', 101);
static PROCESSING = new HttpStatus('Processing', 102);
static OK = new HttpStatus('OK', 200);
static CREATED = new HttpStatus('Created', 201);
static ACCEPTED = new HttpStatus('Accepted', 202);
static NON_AUTHORITATIVE_INFORMATION = new HttpStatus('Non-Authoritative Information', 203);
static NO_CONTENT = new HttpStatus('No Content', 204);
static RESET_CONTENT = new HttpStatus('Reset Content', 205);
static PARTIAL_CONTENT = new HttpStatus('Partial Content', 206);
static MULTI_STATUS = new HttpStatus('Multi-Status', 207);
static ALREADY_REPORTED = new HttpStatus('Already Reported', 208);
static IM_USED = new HttpStatus('IM Used', 226);
static MULTIPLE_CHOICES = new HttpStatus('Multiple Choices', 300);
static MOVED_PERMANENTLY = new HttpStatus('Moved Permanently', 301);
static MOVED_TEMPORARILY = new HttpStatus('Moved Temporarily', 302);
static FOUND = new HttpStatus('Found', 302);
static SEE_OTHER = new HttpStatus('See Other', 303);
static NOT_MODIFIED = new HttpStatus('Not Modified', 304);
static USE_PROXY = new HttpStatus('Use Proxy', 305);
static TEMPORARY_REDIRECT = new HttpStatus('Temporary Redirect', 307);
static BAD_REQUEST = new HttpStatus('Bad Request', 400);
static UNAUTHORIZED = new HttpStatus('Unauthorized', 401);
static PAYMENT_REQUIRED = new HttpStatus('Payment Required', 402);
static FORBIDDEN = new HttpStatus('Forbidden', 403);
static NOT_FOUND = new HttpStatus('Not Found', 404);
static METHOD_NOT_ALLOWED = new HttpStatus('Method Not Allowed', 405);
static NOT_ACCEPTABLE = new HttpStatus('Not Acceptable', 406);
static PROXY_AUTHENTICATION_REQUIRED = new HttpStatus('Proxy Authentication Required', 407);
static REQUEST_TIMEOUT = new HttpStatus('Request Timeout', 408);
static CONFLICT = new HttpStatus('Conflict', 409);
static GONE = new HttpStatus('Gone', 410);
static LENGTH_REQUIRED = new HttpStatus('Length Required', 411);
static PRECONDITION_FAILED = new HttpStatus('Precondition failed', 412);
static REQUEST_ENTITY_TOO_LARGE = new HttpStatus('Request Entity Too Large', 413);
static REQUEST_URI_TOO_LONG = new HttpStatus('Request-URI Too Long', 414);
static UNSUPPORTED_MEDIA_TYPE = new HttpStatus('Unsupported Media Type', 415);
static REQUESTED_RANGE_NOT_SATISFIABLE = new HttpStatus('Requested Range Not Satisfiable', 416);
static EXPECTATION_FAILED = new HttpStatus('Expectation Failed', 417);
static INSUFFICIENT_SPACE_ON_RESOURCE = new HttpStatus('Insufficient Space on Resource', 419);
static METHOD_FAILURE = new HttpStatus('Method Failure', 420);
static DESTINATION_LOCKED = new HttpStatus('Destination Locked', 421);
static UNPROCESSABLE_ENTITY = new HttpStatus('Unprocessable Entity', 422);
static LOCKED = new HttpStatus('Locked', 423);
static FAILED_DEPENDENCY = new HttpStatus('Failed Dependency', 424);
static UPGRADE_REQUIRED = new HttpStatus('Upgrade Required', 426);
static INTERNAL_SERVER_ERROR = new HttpStatus('Internal Server Error', 500);
static NOT_IMPLEMENTED = new HttpStatus('Not Implemented', 501);
static BAD_GATEWAY = new HttpStatus('Bad Gateway', 502);
static SERVICE_UNAVAILABLE = new HttpStatus('Service Unavailable', 503);
static GATEWAY_TIMEOUT = new HttpStatus('Gateway Timeout', 504);
static HTTP_VERSION_NOT_SUPPORTED = new HttpStatus('HTTP Version Not Supported', 505);
static VARIANT_ALSO_NEGOTIATES = new HttpStatus('Variant Also Negotiates', 506);
static INSUFFICIENT_STORAGE = new HttpStatus('Insufficient Storage', 507);
static LOOP_DETECTED = new HttpStatus('Loop Detected', 508);
static NOT_EXTENDED = new HttpStatus('Not Extended', 510);
static values() {
return Object.keys(this);
}
static valueOf(param) {
const keys = this.values();
let httpStatus;
return keys.filter((key) => {
// @ts-expect-error it can expect error
if (typeof this[key] !== 'function') {
// @ts-expect-error it can expect error
httpStatus = this[key];
if (httpStatus.name === param || httpStatus.value === param) {
return key;
}
}
});
}
}
export { HttpStatus };
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sources":["../../src/services/HttpStatus.ts"],"sourcesContent":[null],"names":[],"mappings":"MAAa,UAAU,CAAA;AAEH,IAAA,IAAA;AACA,IAAA,KAAA;IAFlB,WAAA,CACkB,IAAY,EACZ,KAAa,EAAA;QADb,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,KAAK,GAAL,KAAK;IACpB;IACH,OAAgB,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;IAC1D,OAAgB,mBAAmB,GAAG,IAAI,UAAU,CAClD,qBAAqB,EACrB,GAAG,CACJ;IACD,OAAgB,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC;IAC9D,OAAgB,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;IAC9C,OAAgB,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;IACxD,OAAgB,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;IAC1D,OAAgB,6BAA6B,GAAG,IAAI,UAAU,CAC5D,+BAA+B,EAC/B,GAAG,CACJ;IACD,OAAgB,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC;IAC9D,OAAgB,aAAa,GAAG,IAAI,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC;IACpE,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;IAClE,OAAgB,gBAAgB,GAAG,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAC1E,OAAgB,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;IACxD,OAAgB,gBAAgB,GAAG,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAC1E,OAAgB,iBAAiB,GAAG,IAAI,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC5E,OAAgB,iBAAiB,GAAG,IAAI,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC5E,OAAgB,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC;IACpD,OAAgB,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,OAAgB,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;IAClE,OAAgB,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,OAAgB,kBAAkB,GAAG,IAAI,UAAU,CACjD,oBAAoB,EACpB,GAAG,CACJ;IACD,OAAgB,WAAW,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;IAChE,OAAgB,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;IAClE,OAAgB,gBAAgB,GAAG,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAC1E,OAAgB,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,OAAgB,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,OAAgB,kBAAkB,GAAG,IAAI,UAAU,CACjD,oBAAoB,EACpB,GAAG,CACJ;IACD,OAAgB,cAAc,GAAG,IAAI,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACtE,OAAgB,6BAA6B,GAAG,IAAI,UAAU,CAC5D,+BAA+B,EAC/B,GAAG,CACJ;IACD,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;IAC1D,OAAgB,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;IAClD,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,mBAAmB,GAAG,IAAI,UAAU,CAClD,qBAAqB,EACrB,GAAG,CACJ;IACD,OAAgB,wBAAwB,GAAG,IAAI,UAAU,CACvD,0BAA0B,EAC1B,GAAG,CACJ;IACD,OAAgB,oBAAoB,GAAG,IAAI,UAAU,CACnD,sBAAsB,EACtB,GAAG,CACJ;IACD,OAAgB,sBAAsB,GAAG,IAAI,UAAU,CACrD,wBAAwB,EACxB,GAAG,CACJ;IACD,OAAgB,+BAA+B,GAAG,IAAI,UAAU,CAC9D,iCAAiC,EACjC,GAAG,CACJ;IACD,OAAgB,kBAAkB,GAAG,IAAI,UAAU,CACjD,oBAAoB,EACpB,GAAG,CACJ;IACD,OAAgB,8BAA8B,GAAG,IAAI,UAAU,CAC7D,gCAAgC,EAChC,GAAG,CACJ;IACD,OAAgB,cAAc,GAAG,IAAI,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACtE,OAAgB,kBAAkB,GAAG,IAAI,UAAU,CACjD,oBAAoB,EACpB,GAAG,CACJ;IACD,OAAgB,oBAAoB,GAAG,IAAI,UAAU,CACnD,sBAAsB,EACtB,GAAG,CACJ;IACD,OAAgB,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;IACtD,OAAgB,iBAAiB,GAAG,IAAI,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC5E,OAAgB,gBAAgB,GAAG,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAC1E,OAAgB,qBAAqB,GAAG,IAAI,UAAU,CACpD,uBAAuB,EACvB,GAAG,CACJ;IACD,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,WAAW,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;IAChE,OAAgB,mBAAmB,GAAG,IAAI,UAAU,CAClD,qBAAqB,EACrB,GAAG,CACJ;IACD,OAAgB,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxE,OAAgB,0BAA0B,GAAG,IAAI,UAAU,CACzD,4BAA4B,EAC5B,GAAG,CACJ;IACD,OAAgB,uBAAuB,GAAG,IAAI,UAAU,CACtD,yBAAyB,EACzB,GAAG,CACJ;IACD,OAAgB,oBAAoB,GAAG,IAAI,UAAU,CACnD,sBAAsB,EACtB,GAAG,CACJ;IACD,OAAgB,aAAa,GAAG,IAAI,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC;IACpE,OAAgB,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;AAClE,IAAA,OAAO,MAAM,GAAA;AACX,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B;IAEA,OAAO,OAAO,CAAC,KAAsB,EAAA;AACnC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;AAC1B,QAAA,IAAI,UAAsB;AAC1B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;;YAEzB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;;AAEnC,gBAAA,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;AACtB,gBAAA,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,EAAE;AAC3D,oBAAA,OAAO,GAAG;gBACZ;YACF;AACF,QAAA,CAAC,CAAC;IACJ;;;;;"}