172 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			172 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Copyright (C)2014-2020 Haxe Foundation
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Permission is hereby granted, free of charge, to any person obtaining a
							 | 
						||
| 
								 | 
							
								 * copy of this software and associated documentation files (the "Software"),
							 | 
						||
| 
								 | 
							
								 * to deal in the Software without restriction, including without limitation
							 | 
						||
| 
								 | 
							
								 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
							 | 
						||
| 
								 | 
							
								 * and/or sell copies of the Software, and to permit persons to whom the
							 | 
						||
| 
								 | 
							
								 * Software is furnished to do so, subject to the following conditions:
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * The above copyright notice and this permission notice shall be included in
							 | 
						||
| 
								 | 
							
								 * all copies or substantial portions of the Software.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
							 | 
						||
| 
								 | 
							
								 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
							 | 
						||
| 
								 | 
							
								 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
							 | 
						||
| 
								 | 
							
								 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
							 | 
						||
| 
								 | 
							
								 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
							 | 
						||
| 
								 | 
							
								 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
							 | 
						||
| 
								 | 
							
								 * DEALINGS IN THE SOFTWARE.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								package js.node.http;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import haxe.DynamicAccess;
							 | 
						||
| 
								 | 
							
								import js.node.events.EventEmitter.Event;
							 | 
						||
| 
								 | 
							
								import js.node.net.Socket;
							 | 
						||
| 
								 | 
							
								import js.node.stream.Readable;
							 | 
						||
| 
								 | 
							
								#if haxe4
							 | 
						||
| 
								 | 
							
								import js.lib.Error;
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								import js.Error;
							 | 
						||
| 
								 | 
							
								#end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									Enumeration of events emitted by the `IncomingMessage` objects in addition to its parent class events.
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								@:enum abstract IncomingMessageeEvent<T:haxe.Constraints.Function>(Event<T>) to Event<T> {
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Emitted when the request has been aborted.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var Aborted:IncomingMessageeEvent<Void->Void> = "aborted";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Indicates that the underlying connection was closed.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var Close:IncomingMessageeEvent<Void->Void> = "close";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									An `IncomingMessage` object is created by `http.Server` or `http.ClientRequest` and passed as the first argument to the `'request'` and `'response'` event respectively.
							 | 
						||
| 
								 | 
							
									It may be used to access response status, headers and data.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									It implements the `Readable Stream` interface, as well as the following additional events, methods, and properties.
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								@:jsRequire("http", "IncomingMessage")
							 | 
						||
| 
								 | 
							
								extern class IncomingMessage extends Readable<IncomingMessage> {
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `aborted` property will be `true` if the request has been aborted.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var aborted(default, null):Bool;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `complete` property will be `true` if a complete HTTP message has been received and successfully parsed.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var complete(default, null):Bool;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Calls `destroy()` on the socket that received the `IncomingMessage`.
							 | 
						||
| 
								 | 
							
										If `error` is provided, an `'error'` event is emitted and `error` is passed as an argument to any listeners on the event.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									override function destroy(?error:Error):IncomingMessage;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The request/response headers object.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Key-value pairs of header names and values. Header names are lower-cased.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Duplicates in raw headers are handled in the following ways, depending on the header name:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										- Duplicates of `age`, `authorization`, `content-length`, `content-type`, `etag`, `expires`, `from`, `host`, `if-modified-since`, `if-unmodified-since`,
							 | 
						||
| 
								 | 
							
										  `last-modified`, `location`, `max-forwards`, `proxy-authorization`, `referer`, `retry-after`, or `user-agent` are discarded.
							 | 
						||
| 
								 | 
							
										- `set-cookie` is always an array. Duplicates are added to the array.
							 | 
						||
| 
								 | 
							
										- For duplicate `cookie` headers, the values are joined together with '; '.
							 | 
						||
| 
								 | 
							
										- For all other headers, the values are joined together with ', '.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var headers(default, null):DynamicAccess<haxe.extern.EitherType<String, Array<String>>>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										In case of server request, the HTTP version sent by the client.
							 | 
						||
| 
								 | 
							
										In the case of client response, the HTTP version of the connected-to server.
							 | 
						||
| 
								 | 
							
										Probably either `'1.1'` or `'1.0'`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var httpVersion(default, null):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										HTTP Version first integer
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var httpVersionMajor(default, null):Int;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										HTTP Version second integer
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var httpVersionMinor(default, null):Int;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										*Only valid for request obtained from* `Server`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										The request method as a string.
							 | 
						||
| 
								 | 
							
										Read only. Example: `'GET'`, `'DELETE'`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var method(default, null):Method;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The raw request/response headers list exactly as they were received.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										The keys and values are in the same list. It is not a list of tuples. So, the even-numbered offsets are key values,
							 | 
						||
| 
								 | 
							
										and the odd-numbered offsets are the associated values.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Header names are not lowercased, and duplicates are not merged.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var rawHeaders(default, null):Array<String>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The raw request/response trailer keys and values exactly as they were received.
							 | 
						||
| 
								 | 
							
										Only populated at the `'end'` event.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var rawTrailers(default, null):Array<String>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Calls `connection.setTimeout(msecs, callback)`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									function setTimeout(msecs:Int, ?callback:Void->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `Socket` object associated with the connection.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										With HTTPS support, use `request.socket.getPeerCertificate()` to obtain the client's authentication details.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var socket(default, null):Socket;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Alias for `socket`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var connection(default, null):Socket;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										*Only valid for response obtained from* `ClientRequest`.
							 | 
						||
| 
								 | 
							
										The 3-digit HTTP response status code. E.G. `404`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var statusCode(default, null):Int;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										*Only valid for response obtained from* `ClientRequest`.
							 | 
						||
| 
								 | 
							
										The HTTP response status message (reason phrase). E.G. `OK` or `Internal Server Error`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var statusMessage(default, null):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The request/response trailers object.
							 | 
						||
| 
								 | 
							
										Only populated after the `'end'` event.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var trailers(default, null):DynamicAccess<String>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										*Only valid for request obtained from* `Server`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Request URL string. This contains only the URL that is present in the actual HTTP request.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var url(default, null):String;
							 | 
						||
| 
								 | 
							
								}
							 |