emerging-ezhttp
Releases (14)
-
0.21.0.0 indexed
-
0.20.0.0 unindexed
-
0.19.0.0 unindexed
-
0.18.0.0 unindexed
-
0.17.0.0 unindexed
-
0.16.0.0 unindexed
-
0.15.0.0 unindexed
-
0.14.0.0 unindexed
-
0.13.0.0 unindexed
-
0.12.0.0 unindexed
-
0.11.0.0 unindexed
-
0.10.0.0 unindexed
-
0.9.0.0 invalid
expected a fresh constructor name (duplicate declaration: Text)
-
0.8.0.0 invalid
expected a fresh constructor name (duplicate declaration: Text)
Definitions (909)
src/cookie.bend
- def cookie.path_slashthe next request character is `/`, or the cookie-path already ended in `/`
- def cookie.path_restidentical paths match; otherwise the prefix rules (RFC 6265 §5.1.4)
- def cookie.path_prefixpath-match once the cookie-path is known to be a prefix
- def cookie.path_okpath-match (RFC 6265 §5.1.4)
- def cookie.send.secureSecure cookies ride only on TLS (RFC 6265 §5.4)
- def cookie.send.pathpath-match, then the Secure bit
- def cookie.send.domaindomain-match, then path-match
- def cookie.sendwhether this cookie is sent on this request (RFC 6265 §5.4)
- def cookie.alive.ofno Max-Age means a session cookie (still sendable).
- def cookie.aliveMax-Age against an age in seconds.
- def cookie.select.conscons when the cookie matches the request
- def cookie.selectcookies that would be sent (domain, path, secure)
src/cors.bend
- type Cfgallow-list for a server.
- def cors.star.stepwhether `*` is one of the allowed origins
- def cors.starwalk origins for `*`
- def cors.hit.stepcase-sensitive membership
- def cors.hitwhether the needle is in the list
- def cors.lowerlowercase a list of names
- def cors.hit_cicase-insensitive membership (header names, RFC 9110 §5.1)
- def cors.allowed`*`, or an explicit origin
- def cors.acao.star`*` when every origin is allowed and credentials are off; else the origin
- def cors.acao.credcredentials always reflect the origin (Fetch: `*` cannot be used)
- def cors.acao.okempty when the origin is not allowed
- def cors.acaoAccess-Control-Allow-Origin value, or "" when the origin is refused
- def cors.varytrue when ACAO is a specific origin and Vary: Origin should be set
- def cors.names.stepevery requested header name is allowed.
- def cors.namesrequested header names against the allow list
- def cors.headers_emptyan empty request-header list asks for nothing
- def cors.headers_okAccess-Control-Request-Headers, comma-separated
- def cors.joinjoin with ", "
- def cors.vary_onappend Vary when the origin is reflected
- def cors.cred_onappend credentials when they are allowed
- def cors.preflight_hspreflight response headers
- def cors.preflight.headers400 when a requested header is not allowed; otherwise 200
- def cors.preflight.method400 when the method is not allowed
- def cors.preflight.deniedskip the method check when the origin was refused
- def cors.preflightOPTIONS preflight (Fetch CORS).
- def cors.expose_ofAccess-Control-Expose-Headers when the list is not empty
- def cors.expose_onAccess-Control-Expose-Headers when the list is not empty
- def cors.simple_hssimple-response CORS headers (ACAO, optional credentials, expose, vary)
- def cors.simple.skipleave a reply alone when there is nothing to add
- def cors.simple.addappend CORS headers when the origin is allowed
- def cors.simplea non-preflight response.
- def cors.originOrigin request header
- def cors.request_methodAccess-Control-Request-Method
- def cors.request_headersAccess-Control-Request-Headers
- def cors.is_preflight.methodOPTIONS with Access-Control-Request-Method is a preflight
- def cors.is_preflightwhether this request is a CORS preflight
- def cors.preflight_reqpreflight from the request's CORS headers
- def cors.simple_reqsimple CORS from the request Origin
- def cors.routepreflight, or CORS headers on the handler reply
- def cors.onanswer a request: preflight or simple CORS on top of `reply`
src/echo.bend
- def wspwhitespace as RFC 6265 §5.2 strips it: SP or HTAB (RFC 5234 WSP)
- def wsp.lead.ifone character of the leading strip: dropped, and the strip goes on, when it is WSP
- def wsp.leada string without its leading WSP
- def wsp.trima string without its leading and trailing WSP
- def pair.nameda pair whose name is known: ignored when the name is empty (§5.2 step 5)
- def pair.cutthe name-value-pair cut at its first `=`: none without one (§5.2 step 2), else the name before it and the value after it, each without leading and trailing WSP (steps 3, 4)
- def pairthe cookie one Set-Cookie field value sets: its name-value-pair is the text before its first `;`, all of it without one (§5.2 step 1)
- def put.atone stored cookie, once it is known whether it has the new one's name: that one takes the new value in its place, any other is kept and the rest of the store looked at
- def puta cookie put in a store: a stored one of the same name (compared exactly) keeps its place and takes the new value (§5.3 step 11.3 keeps its creation-time, which orders it, §5.4 step 2), else it goes after the others
- def adda store after one Set-Cookie field value: unchanged when it sets nothing
- def storea store after Set-Cookie field values, in the order they came
- def oneone cookie in the Cookie header: its name, `=`, its value (§5.4 step 4.1)
- def morethe cookies after the first, each after `; ` (§5.4 step 4.2)
- def linea store as the Cookie header's value, empty for an empty store
- def echothe Cookie header value to send after these Set-Cookie field values
- def values.putone header field: its value in front of the rest when it is Set-Cookie
- def valuesthe values of the Set-Cookie fields among response headers, in order (field names compared case-insensitively, RFC 9110 §5.1)
src/entities.bend
- type Refone named character reference: its name (with its `;` when it has one) and the one or two code points it stands for, `second` 0 when one
- def tableevery named character reference, sorted by name
src/form.bend
- type Uploadone part handed to the builder: a text field, or a file with its name, content type and bytes
- type Partone part as the plan sees it: a text field, or a file whose content is known only by whether the delimiter occurs in it
- type Segone run of the body the plan lays out: octets, or the next file's bytes
- type Plana planned form (the Content-Type field value and the body's runs), or why not
- type Forma built form (the Content-Type field value and the body), or why not
- def form.fielda text field
- def form.filea file part: its field name, its filename, its content type and its bytes
- def octets.ontoa string's UTF-8 octets in front of `rest` (RFC 3629 §3)
- def all.stepa check that holds when this does and the rest does: a false ends it
- def any.stepa search that hits when this does or the rest does: a true ends it
- def octets.startswhether octets open with a pattern's octets
- def octets.haswhether a pattern's octets occur as a contiguous run anywhere in octets
- def form.bchara boundary character this builder allows: A-Z a-z 0-9 - _ .
- def form.bcharsevery character of a string is a boundary character
- def form.boundary.oka boundary is 1 to 70 boundary characters
- def form.delimthe delimiter a reader looks for: "--" and the boundary, as octets
- def form.one.lfa character that is not `"` or CR: LF as %0A, anything else as itself
- def form.one.cra character that is not `"`: CR as %0D, else on to LF
- def form.one.dqa character of a quoted name, once it is known whether it is `"`: as %22
- def form.oneone character of a quoted name, followed by `rest`
- def form.quotea name or filename as the inside of its quoted-string, as HTML's form submission writes it: `"`, CR and LF percent-encoded, the rest as itself
- def form.dispositionthe Content-Disposition line's text up to its name parameter's end
- def form.heada part's header lines, each ended by CRLF (RFC 7578 §4.2, §4.4)
- def form.contenta part's content in front of `rest`: a field's value as UTF-8 octets, a file's bytes as they are
- def form.partone part in front of `rest`: the delimiter line, its head, a blank line, its content and a CRLF
- def form.partsevery part in order, then the close delimiter (RFC 2046 §5.1.1)
- def form.hitwhether a part's content holds the delimiter: a field's octets are searched, a file's answer was found in its bytes
- def form.clashwhether some part's content holds the delimiter
- def form.badtype.onewhether a part's content type holds a CR or an LF