Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | util.promise: Switch order of parameters to join() | Matthew Wild | 2021-03-25 | 2 | -6/+4 | |
| | | | | | | | | | | This saves awkward fiddlery with varargs and also echoes the signature of pcall/xpcall. | |||||
* | | util.promise: all()/all_settled() pass through non-promise values | Matthew Wild | 2021-03-25 | 2 | -22/+63 | |
| | | ||||||
* | | util.promise: Add join() convenience method | Matthew Wild | 2021-03-25 | 2 | -0/+37 | |
| | | | | | | | | | | | | Usage: promise.join(p1, p2, function (result1, result2) [...] end) | |||||
* | | util.promise: Add support for arbitrary keys in all()/all_settled() | Matthew Wild | 2021-03-25 | 2 | -15/+64 | |
| | | ||||||
* | | mod_message: Stop advertising offline message support (mod_offline does that) | Kim Alvefur | 2021-03-24 | 1 | -2/+0 | |
| | | | | | | | | mod_offline also already advertises this feature, so it's added twice. | |||||
* | | util.datamapper: Don't include empty unwrapped arrays | Kim Alvefur | 2021-03-24 | 2 | -2/+8 | |
| | | | | | | | | | | | | 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. | |||||
* | | util.datamapper: Add test coverage of unwrapped arrays of objects | Kim Alvefur | 2021-03-24 | 1 | -0/+14 | |
| | | | | | | | | | | Should the xml name/ns go on the array or the items schema? The later apparently. | |||||
* | | util.datamapper: Fix error on attempt to coerce nil to something | Kim Alvefur | 2021-03-23 | 2 | -0/+4 | |
| | | | | | | | | | | | | 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. | |||||
* | | mod_admin_shell: Sort timers by time in debug:timers() | Kim Alvefur | 2021-03-23 | 1 | -1/+6 | |
| | | | | | | | | | | Easier to see which timers are happening soon vs further in the future if they are in some sensible order. | |||||
* | | mod_c2s: Log a debug message before closing due to c2s_timeout | Kim Alvefur | 2021-03-23 | 1 | -0/+1 | |
| | | | | | | | | | | | | | | It was confusing that the connection would just close without much explanation. Wanted this while investigating https://github.com/conversejs/converse.js/issues/2438 | |||||
* | | util.datamapper: Deal with locally built stanzas missing xmlns | Kim Alvefur | 2021-03-23 | 3 | -10/+38 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | |||||
* | | util.datamapper: Factor out conversion from any value to XML string | Kim Alvefur | 2021-03-22 | 2 | -58/+34 | |
| | | | | | | | | Since this was the last severely duplicated code left. | |||||
* | | mod_authz_internal: Ignore unused argument for now [luachec] | Kim Alvefur | 2021-03-22 | 1 | -1/+1 | |
| | | ||||||
* | | usermanager: expose set_roles through API | Jonas Schäfer | 2021-03-22 | 1 | -0/+18 | |
| | | ||||||
* | | mod_authz_internal: add support for setting roles of a local user | Jonas Schäfer | 2021-03-22 | 1 | -1/+8 | |
| | | ||||||
* | | util.datamapper: Handle nested arrays or objects in arrays | Kim Alvefur | 2021-03-22 | 2 | -8/+44 | |
| | | ||||||
* | | util.datamapper: Fix to skip parsing wrapped arrays that aren't there | Kim Alvefur | 2021-03-22 | 2 | -4/+0 | |
| | | | | | | | | Turns out the unreachable error is reachable :D | |||||
* | | util.datamapper: Clear done TODO (arrays) | Kim Alvefur | 2021-03-21 | 1 | -1/+0 | |
| | | | | | | | | | | | | | | | | | | Relevant commits: * 6a51749af7f4 * 0e00fa518688 * d1982b7eb00d * c098d07e6717 * 348b191cd850 | |||||
* | | util.datamapper: Complete array building support | Kim Alvefur | 2021-03-20 | 3 | -24/+17 | |
| | | ||||||
* | | util.datamapper: Factor out handling of object properties for array reuse | Kim Alvefur | 2021-03-20 | 2 | -158/+164 | |
| | | ||||||
* | | util.datamapper: Finally implement support for parsing arrays | Kim Alvefur | 2021-03-20 | 3 | -30/+85 | |
| | | ||||||
* | | util.datamapper: Factor out extraction of the XML part to use | Kim Alvefur | 2021-03-20 | 2 | -80/+84 | |
| | | | | | | | | | | | | | | | | 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. | |||||
* | | util.datamapper: Only get element name if there's an element | Kim Alvefur | 2021-03-19 | 2 | -2/+6 | |
| | | | | | | | | Fixes error due to attempting to index a nil value | |||||
* | | make: Magic trick for teal-src/*.tl -> ./*.lua | Kim Alvefur | 2021-03-19 | 1 | -1/+2 | |
| | | ||||||
* | | util.datamapper: Fix arrays nesting one level too deep | Kim Alvefur | 2021-03-19 | 3 | -25/+31 | |
| | | ||||||
* | | util.datamapper: Deal with type name changes in util.jsonschema | Kim Alvefur | 2021-03-19 | 2 | -30/+34 | |
| | | ||||||
* | | util.jsonschema: Rename types for improved readability | Kim Alvefur | 2021-03-18 | 3 | -30/+56 | |
| | | ||||||
* | | teal: Use new integer support in Teal 0.13.0 | Kim Alvefur | 2021-03-18 | 14 | -53/+57 | |
| | | ||||||
* | | util.datamapper: Limited support for unparsing simple arrays of strings | Kim Alvefur | 2021-03-18 | 3 | -19/+75 | |
| | | ||||||
* | | util.datamapper: Add initial support for parsing arrays | Kim Alvefur | 2021-03-18 | 3 | -19/+118 | |
| | | ||||||
* | | util.datamapper: Factor out common schema unpacking | Kim Alvefur | 2021-03-14 | 2 | -163/+110 | |
| | | | | | | | | | | This code extracts the bits from the schema that determines how the data is to be mapped to/from XML. | |||||
* | | util.datamapper: Separate extraction of xml from coercion to target type | Kim Alvefur | 2021-03-14 | 2 | -68/+56 | |
| | | | | | | | | | | | | 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. | |||||
* | | util.datamapper: Use enum instead of mutually exclusive booleans | Kim Alvefur | 2021-03-14 | 2 | -40/+47 | |
| | | | | | | | | Cleaner and rules out invalid combinations. | |||||
* | | util.datamapper: Enumerated elements | Kim Alvefur | 2021-03-12 | 3 | -3/+49 | |
| | | | | | | | | E.g. error conditions or chat states. | |||||
* | | util.datamapper: Some TODOs | Kim Alvefur | 2021-03-10 | 1 | -0/+4 | |
| | | ||||||
* | | util.datamapper: Add references with notes | Kim Alvefur | 2021-03-10 | 2 | -0/+17 | |
| | | ||||||
* | | util.datamapper: Add Copyright header | Kim Alvefur | 2021-03-10 | 1 | -0/+6 | |
| | | ||||||
* | | util.jsonschema: Add copyright-header | Kim Alvefur | 2021-03-10 | 1 | -0/+9 | |
| | | ||||||
* | | util.jsonschema: Restructure "type" keyword handling | Kim Alvefur | 2021-03-09 | 2 | -18/+20 | |
| | | | | | | | | More in line with the other tests | |||||
* | | util.jsonschema: Syntax tweak to not upset syntax highlighting | Kim Alvefur | 2021-03-09 | 2 | -4/+4 | |
| | | | | | | | | | | That whole condition stanza was shown as angry red, I think it's something with 'enum' being a key word in Teal. | |||||
* | | util.jsonschema: Implement "propertyNames" | Kim Alvefur | 2021-03-09 | 2 | -0/+13 | |
| | | | | | | | | This is a bit special in Lua as tables are not limited to string keys | |||||
* | | util.jsonschema: Restructure handling of "properties" and "additionalProperties" | Kim Alvefur | 2021-03-09 | 2 | -44/+16 | |
| | | | | | | | | This is a bit cleaner, I think | |||||
* | | util.jsonschema: Fix "uniqueItems" prematurely declaring a match | Kim Alvefur | 2021-03-09 | 2 | -2/+0 | |
| | | ||||||
* | | util.jsonschema: Implement the "prefixItems" keyword | Kim Alvefur | 2021-03-09 | 2 | -2/+25 | |
| | | | | | | | | This may have been what got me confused about "items" being an array. | |||||
* | | util.jsonschema: Implement the "contains" keyword | Kim Alvefur | 2021-03-09 | 2 | -1/+27 | |
| | | | | | | | | And apparently I had mistaken this for an array | |||||
* | | util.jsonschema: Allow a boolean as schema | Kim Alvefur | 2021-03-09 | 2 | -1/+7 | |
| | | | | | | | | | | | | Apparently a schema must be either an object or a boolean. Not sure where I got this string shortcut from, but I think I will keep it as it is very convenient. | |||||
* | | util.jsonschema: Correct "items" keyword | Kim Alvefur | 2021-03-09 | 2 | -25/+9 | |
| | | | | | | | | | | | | Upon re-reading the JSON Schema spec, I found that 'items' wasn't a union of an array of schemas or a single schema, not sure where I got that from. | |||||
* | | util.datamapper: Add support for mapping of elements where only one ↵ | Kim Alvefur | 2021-03-07 | 4 | -0/+76 | |
| | | | | | | | | | | | | | | attribute matters E.g. <feature var='foo'/> in XEP-0030 and some other simple specifications. | |||||
* | | util.datamapper: Add logic for "boolean" tags here the presence means true | Kim Alvefur | 2021-03-07 | 3 | -6/+24 | |
| | | ||||||
* | | util.datamapper: Invent extension for using tag name as value | Kim Alvefur | 2021-03-06 | 4 | -9/+42 | |
| | | | | | | | | | | Useful for certain enum-like uses where the element name is the relevant information, e.g. chat states. |