UNPKG

nyro

Version:

A simple and effective promise-based HTTP & HTTP/2 request library that supports all HTTP methods.

313 lines (294 loc) 12 kB
/** * @file /Users/berkanx/Desktop/Projects/requester/src/helpers/types.ts * @description This file contains various TypeScript enums used for HTTP request and response handling. */ export interface Headers { 'User-Agent'?: string; 'Response-Type'?: string; 'Content-Encoding'?: string; 'Content-Length'?: string; 'Content-Range'?: string; 'Content-Type'?: string; 'Authorization'?: string; 'Accept'?: string; 'Accept-Encoding'?: string; 'Accept-Language'?: string; 'Cache-Control'?: string; 'Connection'?: string; 'Cookie'?: string; 'DNT'?: string; 'Host'?: string; 'Origin'?: string; 'Pragma'?: string; 'Referer'?: string; 'TE'?: string; 'Upgrade-Insecure-Requests'?: string; 'Via'?: string; 'Warning'?: string; 'X-Requested-With'?: string; 'X-Forwarded-For'?: string; 'X-Forwarded-Host'?: string; 'X-Forwarded-Proto'?: string; 'Front-End-Https'?: string; 'X-Http-Method-Override'?: string; 'X-ATT-DeviceId'?: string; 'X-Wap-Profile'?: string; 'Proxy-Connection'?: string; 'X-UIDH'?: string; 'X-Csrf-Token'?: string; 'X-Request-ID'?: string; 'X-Correlation-ID'?: string; 'X-DeviceUserAgent'?: string; 'X-Device-ID'?: string; 'X-Device-OS'?: string; 'X-Device-OS-Version'?: string; 'X-Device-Model'?: string; 'X-Device-Brand'?: string; 'X-Device-Name'?: string; 'X-Device-Carrier'?: string; 'X-Device-Country'?: string; 'X-Device-Locale'?: string; 'X-Device-App'?: string; 'X-Device-App-Version'?: string; 'X-Device-App-Name'?: string; 'X-Device-App-Installer'?: string; 'X-Device-App-Install-Time'?: string; 'X-Device-App-Update-Time'?: string; 'X-Device-App-Store'?: string; 'X-Device-App-Store-Version'?: string; 'X-Device-App-Store-Name'?: string; }; export type UserAgentDevice = ('SM-T210' | 'SM-G900F' | 'SM-G920F' | 'SM-G930F' | 'SM-G950F' | 'SM-G960F' | 'SM-G970F' | 'SM-G973F' | 'SM-G975F' | 'SM-G980F' | 'SM-G985F' | 'SM-G988B' | 'SM-N9005' | 'SM-N910F' | 'SM-N920C' | 'SM-N950F' | 'SM-N960F' | 'SM-N970F' | 'SM-N975F' | 'SM-N980F' | 'SM-N985F' | 'SM-N986B' | 'iPhone' | 'iPad' | 'iPod touch' | 'Nexus 5' | 'Nexus 7' | 'Nexus 10' | 'Nexus 4' | 'Nexus 6' | 'Nexus 9' | 'Nexus 5X' | 'Nexus 6P' | 'Nexus 7 (2013)' | 'Nexus 9 (2014)' | 'Nexus 10 (2012)' | 'Nexus 4 (2012)' | 'Nexus 6 (2014)' | 'Nexus 5X (2015)' | 'Nexus 6P (2015)' | 'Mi 9' | 'Mi 9 SE' | 'Mi 9T' | 'Mi 9T Pro' | 'Mi 10' | 'Mi 10 Pro' | 'Mi 10T' | 'Mi 10T Pro' | 'Mi 11' | 'Mi 11 Lite' | 'Mi 11 Ultra' | 'Redmi Note 8' | 'Redmi Note 8 Pro' | 'Redmi Note 9' | 'Redmi Note 9 Pro' | 'Redmi Note 10' | 'Redmi Note 10 Pro' | 'Redmi Note 11' | 'Redmi Note 11 Pro' | 'Poco F1' | 'Poco F2 Pro' | 'Poco X3' | 'Poco X3 Pro' | 'Poco M3' | 'Poco M3 Pro' & Record<string,string>); export type UserAgentOS = ('Windows' | 'Mac OS' | 'Linux' | 'Android' | 'iOS' & string); export type UserAgentBrowser = ('Chrome' | 'Firefox' | 'Safari' | 'Opera' | 'Edge' | 'IE' & Record<string,string>); export interface GenerateUserAgentOptions { browser?: (UserAgentBrowser & string); version?: string; os?: (UserAgentOS & string); device?: (UserAgentDevice); }; /** * @enum {string} Method * @description Enum representing HTTP methods. * @property {string} Get - HTTP GET method. * @property {string} Post - HTTP POST method. * @property {string} Put - HTTP PUT method. * @property {string} Patch - HTTP PATCH method. * @property {string} Delete - HTTP DELETE method. * @property {string} Head - HTTP HEAD method. * @property {string} Options - HTTP OPTIONS method. * @property {string} Connect - HTTP CONNECT method. * @property {string} Trace - HTTP TRACE method. */ export enum Method { Get = 'GET', Post = 'POST', Put = 'PUT', Patch = 'PATCH', Delete = 'DELETE', Head = 'HEAD', Options = 'OPTIONS', Connect = 'CONNECT', Trace = 'TRACE', }; /** * @enum {string} ResponseEncoding * @description Enum representing possible response encodings. * @property {string} Utf8 - UTF-8 encoding. * @property {string} Ascii - ASCII encoding. * @property {string} Base64 - Base64 encoding. * @property {string} Hex - Hexadecimal encoding. * @property {string} Latin1 - Latin-1 encoding. * @property {string} Binary - Binary encoding. * @property {string} Utf16Le - UTF-16 Little Endian encoding. * @property {string} Utf16Le2 - UTF-16 Little Endian encoding (alternative). * @property {string} Ucs2 - UCS-2 encoding. * @property {string} Ucs22 - UCS-2 encoding (alternative). * @property {string} Base64Url - Base64 URL encoding. */ export enum ResponseEncoding { Utf8 = 'utf8', Ascii = 'ascii', Base64 = 'base64', Hex = 'hex', Latin1 = 'latin1', Binary = 'binary', Utf16Le = 'utf16le', Utf16Le2 = 'utf-16le', Ucs2 = 'ucs2', Ucs22 = 'ucs-2', Base64Url = 'base64url', }; /** * @enum {string} ContentType * @description Enum representing possible content types for HTTP requests. * @property {string} Json - application/json content type. * @property {string} Xml - application/xml content type. * @property {string} UrlEncoded - application/x-www-form-urlencoded content type. * @property {string} FormData - multipart/form-data content type. * @property {string} Text - text/plain content type. * @property {string} OctetStream - application/octet-stream content type. * @property {string} Default - Default content type (application/json). */ export enum ContentType { Json = 'application/json', Xml = 'application/xml', UrlEncoded = 'application/x-www-form-urlencoded', FormData = 'multipart/form-data', Text = 'text/plain', OctetStream = 'application/octet-stream', Default = 'application/json', }; /** * @enum {string} ResponseType * @description Enum representing possible response types. * @property {string} Json - JSON response type. * @property {string} Text - Text response type. * @property {string} Blob - Blob response type. * @property {string} Stream - Stream response type. * @property {string} ArrayBuffer - ArrayBuffer response type. * @property {string} Document - Document response type. * @property {string} Default - Default response type (json). */ export enum ResponseType { Json = 'json', Text = 'text', Blob = 'blob', Stream = 'stream', ArrayBuffer = 'arrayBuffer', Document = 'document', Default = 'json', }; /** * @enum {number} StatusCode * @description Enum representing HTTP status codes. * @property {number} Continue - 100 Continue. * @property {number} SwitchingProtocols - 101 Switching Protocols. * @property {number} Processing - 102 Processing. * @property {number} EarlyHints - 103 Early Hints. * @property {number} Ok - 200 OK. * @property {number} Created - 201 Created. * @property {number} Accepted - 202 Accepted. * @property {number} NonAuthoritativeInformation - 203 Non-Authoritative Information. * @property {number} NoContent - 204 No Content. * @property {number} ResetContent - 205 Reset Content. * @property {number} PartialContent - 206 Partial Content. * @property {number} MultiStatus - 207 Multi-Status. * @property {number} AlreadyReported - 208 Already Reported. * @property {number} ImUsed - 226 IM Used. * @property {number} MultipleChoices - 300 Multiple Choices. * @property {number} MovedPermanently - 301 Moved Permanently. * @property {number} Found - 302 Found. * @property {number} SeeOther - 303 See Other. * @property {number} NotModified - 304 Not Modified. * @property {number} UseProxy - 305 Use Proxy. * @property {number} Unused - 306 Unused. * @property {number} TemporaryRedirect - 307 Temporary Redirect. * @property {number} PermanentRedirect - 308 Permanent Redirect. * @property {number} BadRequest - 400 Bad Request. * @property {number} Unauthorized - 401 Unauthorized. * @property {number} PaymentRequired - 402 Payment Required. * @property {number} Forbidden - 403 Forbidden. * @property {number} NotFound - 404 Not Found. * @property {number} MethodNotAllowed - 405 Method Not Allowed. * @property {number} NotAcceptable - 406 Not Acceptable. * @property {number} ProxyAuthenticationRequired - 407 Proxy Authentication Required. * @property {number} RequestTimeout - 408 Request Timeout. * @property {number} Conflict - 409 Conflict. * @property {number} Gone - 410 Gone. * @property {number} LengthRequired - 411 Length Required. * @property {number} PreconditionFailed - 412 Precondition Failed. * @property {number} PayloadTooLarge - 413 Payload Too Large. * @property {number} UriTooLong - 414 URI Too Long. * @property {number} UnsupportedMediaType - 415 Unsupported Media Type. * @property {number} RangeNotSatisfiable - 416 Range Not Satisfiable. * @property {number} ExpectationFailed - 417 Expectation Failed. * @property {number} ImATeapot - 418 I'm a teapot. * @property {number} MisdirectedRequest - 421 Misdirected Request. * @property {number} UnprocessableEntity - 422 Unprocessable Entity. * @property {number} Locked - 423 Locked. * @property {number} FailedDependency - 424 Failed Dependency. * @property {number} TooEarly - 425 Too Early. * @property {number} UpgradeRequired - 426 Upgrade Required. * @property {number} PreconditionRequired - 428 Precondition Required. * @property {number} TooManyRequests - 429 Too Many Requests. * @property {number} RequestHeaderFieldsTooLarge - 431 Request Header Fields Too Large. * @property {number} UnavailableForLegalReasons - 451 Unavailable For Legal Reasons. * @property {number} InternalServerError - 500 Internal Server Error. * @property {number} NotImplemented - 501 Not Implemented. * @property {number} BadGateway - 502 Bad Gateway. * @property {number} ServiceUnavailable - 503 Service Unavailable. * @property {number} GatewayTimeout - 504 Gateway Timeout. * @property {number} HttpVersionNotSupported - 505 HTTP Version Not Supported. * @property {number} VariantAlsoNegotiates - 506 Variant Also Negotiates. * @property {number} InsufficientStorage - 507 Insufficient Storage. * @property {number} LoopDetected - 508 Loop Detected. * @property {number} NotExtended - 510 Not Extended. * @property {number} NetworkAuthenticationRequired - 511 Network Authentication Required. */ export enum StatusCode { Continue = 100, SwitchingProtocols = 101, Processing = 102, EarlyHints = 103, Ok = 200, Created = 201, Accepted = 202, NonAuthoritativeInformation = 203, NoContent = 204, ResetContent = 205, PartialContent = 206, MultiStatus = 207, AlreadyReported = 208, ImUsed = 226, MultipleChoices = 300, MovedPermanently = 301, Found = 302, SeeOther = 303, NotModified = 304, UseProxy = 305, Unused = 306, TemporaryRedirect = 307, PermanentRedirect = 308, TooManyRedirects = 310, BadRequest = 400, Unauthorized = 401, PaymentRequired = 402, Forbidden = 403, NotFound = 404, MethodNotAllowed = 405, NotAcceptable = 406, ProxyAuthenticationRequired = 407, RequestTimeout = 408, Conflict = 409, Gone = 410, LengthRequired = 411, PreconditionFailed = 412, PayloadTooLarge = 413, UriTooLong = 414, UnsupportedMediaType = 415, RangeNotSatisfiable = 416, ExpectationFailed = 417, ImATeapot = 418, MisdirectedRequest = 421, UnprocessableEntity = 422, Locked = 423, FailedDependency = 424, TooEarly = 425, UpgradeRequired = 426, PreconditionRequired = 428, TooManyRequests = 429, RequestHeaderFieldsTooLarge = 431, UnavailableForLegalReasons = 451, InternalServerError = 500, NotImplemented = 501, BadGateway = 502, ServiceUnavailable = 503, GatewayTimeout = 504, HttpVersionNotSupported = 505, VariantAlsoNegotiates = 506, InsufficientStorage = 507, LoopDetected = 508, NotExtended = 510, NetworkAuthenticationRequired = 511, };