build(types): luasocket
This commit is contained in:
parent
b7f84d5744
commit
90c2aa4bc2
|
@ -0,0 +1,45 @@
|
|||
|
||||
local record ltn12
|
||||
type Filter = function(string): string, string
|
||||
type Sink = function(string, string): boolean, string
|
||||
type Source = function(): string, string
|
||||
|
||||
type FancySink = function(string, string): boolean, string | FancySink
|
||||
type FancySource = function(): string, string | FancySource
|
||||
|
||||
-- Docs just say returns a truthy value on success
|
||||
-- Since this value should really only be
|
||||
-- used to check for truthiness, any seems fine here
|
||||
type Pump = function(Source, Sink): any, string
|
||||
|
||||
record filter
|
||||
chain: function(Filter, Filter, ...: Filter): Filter
|
||||
|
||||
cycle: function(string, string, any): Filter
|
||||
end
|
||||
record pump
|
||||
all: Pump
|
||||
step: Pump
|
||||
end
|
||||
record sink
|
||||
chain: function(Filter, Sink): Sink
|
||||
error: function(string): Sink
|
||||
file: function(FILE, string): Sink
|
||||
null: function(): Sink
|
||||
simplify: function(FancySink): Sink
|
||||
table: function({string}): Sink, {string}
|
||||
end
|
||||
record source
|
||||
cat: function(Source, ...: Source): Source
|
||||
chain: function(Source, Filter): Source
|
||||
empty: function(): Source
|
||||
error: function(string): Source
|
||||
file: function(FILE): Source
|
||||
file: function(FILE, string): Source
|
||||
simplify: function(FancySource): Source
|
||||
string: function(string): Source
|
||||
table: function({string}): Source, {string}
|
||||
end
|
||||
end
|
||||
|
||||
return ltn12
|
|
@ -0,0 +1,42 @@
|
|||
local ltn12 = require("ltn12")
|
||||
local type Filter = ltn12.Filter
|
||||
|
||||
local record mime
|
||||
normalize: function(): Filter
|
||||
normalize: function(string): Filter
|
||||
|
||||
enum Encoding
|
||||
"base64"
|
||||
"quoted-printable"
|
||||
end
|
||||
enum Mode
|
||||
"text"
|
||||
"binary"
|
||||
end
|
||||
|
||||
decode: function(Encoding): Filter
|
||||
encode: function(Encoding, Mode): Filter
|
||||
|
||||
stuff: function(): Filter
|
||||
|
||||
wrap: function(string, integer): Filter
|
||||
wrap: function(Encoding): Filter
|
||||
|
||||
b64: function(string, string): string, string
|
||||
|
||||
dot: function(integer, string): string, integer
|
||||
|
||||
eol: function(integer, string, string): string, integer
|
||||
|
||||
qp: function(string, string, string): string, string
|
||||
|
||||
qpwrp: function(integer, string, integer): string, integer
|
||||
|
||||
unb64: function(string, string): string, string
|
||||
|
||||
unqp: function(string, string): string, string
|
||||
|
||||
wrp: function(integer, string, integer): string, integer
|
||||
end
|
||||
|
||||
return mime
|
|
@ -0,0 +1,158 @@
|
|||
local ltn12 = require("ltn12")
|
||||
local Sink = ltn12.Sink
|
||||
local Source = ltn12.Source
|
||||
|
||||
local record socket
|
||||
record TCP
|
||||
-- master methods
|
||||
bind: function(TCP, string, integer)
|
||||
connect: function(TCP, string, integer): integer, string
|
||||
listen: function(TCP, integer): integer, string
|
||||
|
||||
-- client methods
|
||||
getpeername: function(TCP): string, integer
|
||||
|
||||
enum TCPReceivePattern
|
||||
"*l"
|
||||
"*a"
|
||||
end
|
||||
enum TCPReceiveError
|
||||
"closed"
|
||||
"timeout"
|
||||
end
|
||||
receive: function(TCP, TCPReceivePattern|integer, string): string, TCPReceiveError
|
||||
|
||||
send: function(TCP, string, integer, integer): integer, string, integer
|
||||
|
||||
enum TCPShutdownMode
|
||||
"both"
|
||||
"send"
|
||||
"receive"
|
||||
end
|
||||
shutdown: function(TCP, TCPShutdownMode): integer
|
||||
|
||||
-- server methods
|
||||
accept: function(TCP): TCP, string
|
||||
|
||||
-- client and server methods
|
||||
enum TCPOption
|
||||
"keepalive"
|
||||
"reuseaddr"
|
||||
"tcp-nodelay"
|
||||
end
|
||||
enum TCPLinger
|
||||
"linger"
|
||||
end
|
||||
record TCPLingerOption
|
||||
on: boolean
|
||||
timeout: integer
|
||||
end
|
||||
setoption: function(TCP, TCPOption): integer
|
||||
setoption: function(TCP, TCPLinger, TCPLingerOption): integer
|
||||
|
||||
-- master, client, and server methods
|
||||
close: function(TCP)
|
||||
|
||||
getsockname: function(TCP): string, integer
|
||||
|
||||
getstats: function(TCP): integer, integer, integer
|
||||
|
||||
setstats: function(TCP, integer, integer, integer): integer
|
||||
|
||||
enum TCPTimeoutMode
|
||||
"b"
|
||||
"t"
|
||||
end
|
||||
settimeout: function(TCP, integer, TCPTimeoutMode)
|
||||
end
|
||||
record UDP
|
||||
close: function(UDP)
|
||||
|
||||
getpeername: function(UDP): string, integer
|
||||
|
||||
getsockname: function(UDP): string, integer
|
||||
|
||||
enum UDPTimeout
|
||||
"timeout"
|
||||
end
|
||||
receive: function(UDP, integer): string, UDPTimeout
|
||||
|
||||
receivefrom: function(UDP, integer): string, string, integer, UDPTimeout
|
||||
|
||||
send: function(UDP, string): integer, string
|
||||
|
||||
sendto: function(UDP, string, string, integer): integer, string
|
||||
|
||||
setpeername: function(UDP, string, integer): integer, string
|
||||
|
||||
setsockname: function(UDP, string, integer): integer, string
|
||||
|
||||
enum UDPOptions
|
||||
"dontroute"
|
||||
"broadcast"
|
||||
end
|
||||
setoption: function(UDP, UDPOptions, boolean): integer, string
|
||||
|
||||
settimeout: function(UDP, integer)
|
||||
end
|
||||
tcp: function(): TCP, string
|
||||
|
||||
udp: function(): UDP, string
|
||||
|
||||
record dns
|
||||
record DNSResolved
|
||||
name: string
|
||||
alias: {string}
|
||||
ip: {string}
|
||||
end
|
||||
toip: function(): string
|
||||
tohostname: function(string): string, DNSResolved|string
|
||||
gethostname: function(string): string, DNSResolved|string
|
||||
end
|
||||
|
||||
bind: function(string, integer, integer): TCP
|
||||
|
||||
connect: function(string, integer, string, integer): TCP
|
||||
|
||||
_DEBUG: boolean
|
||||
|
||||
newtry: function(function): function
|
||||
|
||||
protect: function(function): function
|
||||
|
||||
-- tagged records/Table Union types would be nice here,
|
||||
-- as this should be {TCP|UDP}
|
||||
-- but I imagine this should be fine for most uses
|
||||
select: function({UDP}, {UDP}, integer): {UDP}, {UDP}, string
|
||||
select: function({TCP}, {TCP}, integer): {TCP}, {TCP}, string
|
||||
|
||||
enum SinkMode
|
||||
"http-chunked"
|
||||
"close-when-done"
|
||||
"keep-open"
|
||||
end
|
||||
|
||||
sink: function(SinkMode, UDP): Sink
|
||||
sink: function(SinkMode, TCP): Sink
|
||||
|
||||
skip: function(integer, ...: any): any...
|
||||
|
||||
sleep: function(integer)
|
||||
|
||||
enum SourceMode
|
||||
"http-chunked"
|
||||
"by-length"
|
||||
"until-closed"
|
||||
end
|
||||
|
||||
source: function(SourceMode, TCP, integer): Source
|
||||
source: function(SourceMode, UDP, integer): Source
|
||||
|
||||
gettime: function(): integer
|
||||
|
||||
try: function(...: any): any...
|
||||
|
||||
_VERSION: string
|
||||
end
|
||||
|
||||
return socket
|
|
@ -0,0 +1,39 @@
|
|||
local ltn12 = require("ltn12")
|
||||
local type Pump = ltn12.Pump
|
||||
local type Sink = ltn12.Sink
|
||||
|
||||
local record ftp
|
||||
get: function(string): string, string
|
||||
record FTPGetInfo
|
||||
host: string
|
||||
sink: Sink
|
||||
argument: string
|
||||
path: string
|
||||
user: string
|
||||
password: string
|
||||
command: string
|
||||
port: integer
|
||||
type: string
|
||||
step: Pump
|
||||
create: function()
|
||||
end
|
||||
get: function(FTPGetInfo): integer, string
|
||||
|
||||
record FTPPutInfo
|
||||
host: string
|
||||
source: Sink -- yes, this is a sink
|
||||
argument: string
|
||||
path: string
|
||||
user: string
|
||||
password: string
|
||||
command: string
|
||||
port: integer
|
||||
type: string
|
||||
step: Pump
|
||||
create: function()
|
||||
end
|
||||
put: function(string, string): integer, string
|
||||
put: function(FTPPutInfo): integer, string
|
||||
end
|
||||
|
||||
return ftp
|
|
@ -0,0 +1,28 @@
|
|||
local ltn12 = require("ltn12")
|
||||
local type Pump = ltn12.Pump
|
||||
local type Sink = ltn12.Sink
|
||||
local type Source = ltn12.Source
|
||||
|
||||
local record http
|
||||
request: function(string): string, integer|string, string, string
|
||||
request: function(string, string): string, integer|string, string, string
|
||||
record HTTPRequest
|
||||
url: string
|
||||
sink: Sink
|
||||
method: string
|
||||
headers: {string:string}
|
||||
source: Source
|
||||
step: Pump
|
||||
proxy: string
|
||||
redirect: boolean
|
||||
create: function
|
||||
end
|
||||
request: function(HTTPRequest): string, integer|string, string, string
|
||||
|
||||
PORT: integer
|
||||
PROXY: string
|
||||
TIMEOUT: integer
|
||||
USERAGENT: string
|
||||
end
|
||||
|
||||
return http
|
|
@ -0,0 +1,32 @@
|
|||
local ltn12 = require("ltn12")
|
||||
local type Pump = ltn12.Pump
|
||||
local type Source = ltn12.Source
|
||||
|
||||
local record smtp
|
||||
record Message
|
||||
headers: {string:string}
|
||||
body: Source | string | MultipartMessage
|
||||
end
|
||||
record MultipartMessage
|
||||
{Message}
|
||||
preamble: string
|
||||
epilogue: string
|
||||
end
|
||||
message: function(Message): Source
|
||||
|
||||
record SMTPSendFormat
|
||||
from: string
|
||||
rcpt: string | {string}
|
||||
source: Source
|
||||
user: string
|
||||
password: string
|
||||
server: string
|
||||
port: integer
|
||||
domain: string
|
||||
step: Pump
|
||||
create: function
|
||||
end
|
||||
send: function(SMTPSendFormat): integer, string
|
||||
end
|
||||
|
||||
return smtp
|
|
@ -0,0 +1,25 @@
|
|||
local record url
|
||||
record ParsedUrl
|
||||
url: string
|
||||
scheme: string
|
||||
authority: string
|
||||
path: string
|
||||
params: string
|
||||
query: string
|
||||
fragment: string
|
||||
userinfo: string
|
||||
host: string
|
||||
port: string
|
||||
user: string
|
||||
password: string
|
||||
end
|
||||
|
||||
absolute: function(string, string): string
|
||||
build: function(ParsedUrl): string
|
||||
build_path: function({string}, any): string
|
||||
escape: function(string): string
|
||||
parse: function(string, table): ParsedUrl
|
||||
parse_path: function(string): {string}
|
||||
unescape: function(string): string
|
||||
end
|
||||
return url
|
Loading…
Reference in New Issue