| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Mostly to ensure it is available during tests, as util.startup is not
invoked there
|
|
|
|
|
|
|
|
|
|
|
|
| |
The JSON Schema specification says that schemas are objects or booleans,
and that the 'type' property is optional and can be an array.
This module previously allowed bare type names as schemas and did not
really handle booleans.
It now handles missing 'type' properties and boolean 'true' as a schema.
Objects and arrays are guessed based on the presence of 'properties' or
'items' field.
|
|
|
|
| |
Allows reuse of repetitive definitions in schemas.
|
|
|
|
|
|
| |
Since there is no way to distinguish an empty such array from a
zero-length array. Dropping it seems like the least annoying thing to
do.
|
|
|
|
|
|
| |
Turns falsy values into nil instead of nothing, which ensures this
function always has 1 return value, or table.insert({}) complains. Would
still happen on some unexpected input, but that's actually a good thing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So the problem is that xmlns is not inherited when building a stanza,
and then :get_child(n, ns) with an explicit namespace does not find that
such child tags.
E.g.
local t = st.stanza("foo", { xmlns = "urn:example:bar" })
:text_tag("hello", "world");
assert(t:get_child("hello", "urn:example:bar"), "This fails");
Meanwhile, during parsing (util.xmppstream or util.xml) child tags do
get the parents xmlns when not overriding them.
Thus, in the above example, if the stanza is passed trough
`t = util.xml.parse(tostring(t))` then the assert succeeds.
This change makes it so that it leaves out the namespace argument to
:get_child when it is the same as the current/parent namespace, which
behaves the same for both built and parsed stanzas.
|
|
|
|
| |
Since this was the last severely duplicated code left.
|
| |
|
|
|
|
| |
Turns out the unreachable error is reachable :D
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
So extract_value() takes an XML tag and details about which part we're
interested in and returns that.
Factoring this out will help with array implementation since this will
be common behavior.
|
|
|
|
| |
Fixes error due to attempting to index a nil value
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This code extracts the bits from the schema that determines how the data
is to be mapped to/from XML.
|
|
|
|
|
|
| |
Now it gets the text, attribute or name first, then turns it into
whatever the schema wants. This should be easier to further factor out
into preparation for array support.
|
|
|
|
| |
Cleaner and rules out invalid combinations.
|
|
|
|
| |
E.g. error conditions or chat states.
|
| |
|
|
|
|
|
|
|
| |
attribute matters
E.g. <feature var='foo'/> in XEP-0030 and some other simple
specifications.
|
| |
|
|
|
|
|
| |
Useful for certain enum-like uses where the element name is the relevant
information, e.g. chat states.
|
| |
|
|
Based on the XML support in the OpenAPI specification.
|