Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | util.promise: Add support for arbitrary keys in all()/all_settled() | Matthew Wild | 2021-03-25 | 1 | -15/+27 |
| | |||||
* | util.datamapper: Don't include empty unwrapped arrays | Kim Alvefur | 2021-03-24 | 1 | -1/+4 |
| | | | | | | 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: Fix error on attempt to coerce nil to something | Kim Alvefur | 2021-03-23 | 1 | -0/+3 |
| | | | | | | 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. | ||||
* | util.datamapper: Deal with locally built stanzas missing xmlns | Kim Alvefur | 2021-03-23 | 1 | -5/+5 |
| | | | | | | | | | | | | | | | | | | | | | 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 | 1 | -29/+17 |
| | | | | Since this was the last severely duplicated code left. | ||||
* | util.datamapper: Handle nested arrays or objects in arrays | Kim Alvefur | 2021-03-22 | 1 | -4/+22 |
| | |||||
* | util.datamapper: Fix to skip parsing wrapped arrays that aren't there | Kim Alvefur | 2021-03-22 | 1 | -2/+0 |
| | | | | Turns out the unreachable error is reachable :D | ||||
* | util.datamapper: Complete array building support | Kim Alvefur | 2021-03-20 | 1 | -12/+3 |
| | |||||
* | util.datamapper: Factor out handling of object properties for array reuse | Kim Alvefur | 2021-03-20 | 1 | -79/+82 |
| | |||||
* | util.datamapper: Finally implement support for parsing arrays | Kim Alvefur | 2021-03-20 | 1 | -13/+9 |
| | |||||
* | util.datamapper: Factor out extraction of the XML part to use | Kim Alvefur | 2021-03-20 | 1 | -40/+42 |
| | | | | | | | | 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 | 1 | -1/+3 |
| | | | | Fixes error due to attempting to index a nil value | ||||
* | util.datamapper: Fix arrays nesting one level too deep | Kim Alvefur | 2021-03-19 | 1 | -9/+9 |
| | |||||
* | util.datamapper: Deal with type name changes in util.jsonschema | Kim Alvefur | 2021-03-19 | 1 | -1/+1 |
| | |||||
* | util.jsonschema: Rename types for improved readability | Kim Alvefur | 2021-03-18 | 1 | -3/+12 |
| | |||||
* | util.datamapper: Limited support for unparsing simple arrays of strings | Kim Alvefur | 2021-03-18 | 1 | -11/+41 |
| | |||||
* | util.datamapper: Add initial support for parsing arrays | Kim Alvefur | 2021-03-18 | 1 | -9/+47 |
| | |||||
* | util.datamapper: Factor out common schema unpacking | Kim Alvefur | 2021-03-14 | 1 | -80/+53 |
| | | | | | 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 | 1 | -34/+28 |
| | | | | | | 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 | 1 | -20/+20 |
| | | | | Cleaner and rules out invalid combinations. | ||||
* | util.datamapper: Enumerated elements | Kim Alvefur | 2021-03-12 | 1 | -1/+20 |
| | | | | E.g. error conditions or chat states. | ||||
* | util.datamapper: Add references with notes | Kim Alvefur | 2021-03-10 | 1 | -0/+3 |
| | |||||
* | util.jsonschema: Restructure "type" keyword handling | Kim Alvefur | 2021-03-09 | 1 | -9/+10 |
| | | | | More in line with the other tests | ||||
* | util.jsonschema: Syntax tweak to not upset syntax highlighting | Kim Alvefur | 2021-03-09 | 1 | -2/+2 |
| | | | | | 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 | 1 | -0/+6 |
| | | | | 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 | 1 | -22/+8 |
| | | | | This is a bit cleaner, I think | ||||
* | util.jsonschema: Fix "uniqueItems" prematurely declaring a match | Kim Alvefur | 2021-03-09 | 1 | -1/+0 |
| | |||||
* | util.jsonschema: Implement the "prefixItems" keyword | Kim Alvefur | 2021-03-09 | 1 | -1/+12 |
| | | | | This may have been what got me confused about "items" being an array. | ||||
* | util.jsonschema: Implement the "contains" keyword | Kim Alvefur | 2021-03-09 | 1 | -0/+13 |
| | | | | And apparently I had mistaken this for an array | ||||
* | util.jsonschema: Allow a boolean as schema | Kim Alvefur | 2021-03-09 | 1 | -0/+3 |
| | | | | | | 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 | 1 | -12/+4 |
| | | | | | | 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 | 1 | -0/+34 |
| | | | | | | | 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 | 1 | -3/+9 |
| | |||||
* | util.datamapper: Invent extension for using tag name as value | Kim Alvefur | 2021-03-06 | 1 | -2/+15 |
| | | | | | Useful for certain enum-like uses where the element name is the relevant information, e.g. chat states. | ||||
* | util.datamapper: Add 'unparse' for turning tables into XML | Kim Alvefur | 2021-03-07 | 1 | -1/+102 |
| | |||||
* | util.datamapper: Library for extracting data from stanzas | Kim Alvefur | 2021-03-07 | 1 | -0/+96 |
| | | | | Based on the XML support in the OpenAPI specification. | ||||
* | util.jsonschema: Library for JSON Schema validation | Kim Alvefur | 2021-03-06 | 1 | -0/+245 |
| | |||||
* | util.gc: Fix check for Lua 5.4 | Kim Alvefur | 2021-03-16 | 1 | -1/+1 |
| | |||||
* | util.rsm: Correctly coerce integer value for <index> (fix #1642) | Kim Alvefur | 2021-03-06 | 1 | -0/+3 |
| | |||||
* | util.rsm: Improve readability using compacter stanza building API | Kim Alvefur | 2021-03-06 | 1 | -5/+5 |
| | | | | At least I think :text_tag improves readability. | ||||
* | util.prosodyctl.shell: Allow passing a single command as argument | Kim Alvefur | 2021-03-05 | 1 | -0/+29 |
| | | | | | | | | | | | | | | | | | | | | | | | | Test procedure: $ prosodyctl shell 'server:version()' Expect: > OK: hg:926d53af9a7a $ prosodyctl shell 'server:version()' 'hello' Expect: > Only one command is supported as argument $ prosodyctl shell 'lorem ipsum'; echo $? Expect: > Sorry, I couldn't understand that... console:1: syntax error near 'show' > 1 (error code) Thanks Menel for mentioning the feature | ||||
* | util.prosodyctl.shell: Fix check for --quiet | Kim Alvefur | 2021-03-05 | 1 | -1/+1 |
| | | | | | | | | | | | | | Looked in the wrong table Test procedure: $ prosodyctl shell --quiet Expect: Prosody> (No banner) | ||||
* | util.datamanager: Support iterating over any file extension | Kim Alvefur | 2021-02-07 | 1 | -4/+3 |
| | | | | | | | | The 'typ' argument to all other functions is the actual file extension, but not here for some reason. May need this for iterating over the .bin files created by mod_http_file_share in the future. | ||||
* | util.xmppstream: Ensure stream 'id' is always present (fix #1626) | Kim Alvefur | 2021-02-03 | 1 | -1/+1 |
| | | | | Backout c2d144d3f8dd | ||||
* | util.adhoc: Propagate error with producing initial initial data | Kim Alvefur | 2021-01-31 | 1 | -1/+7 |
| | | | | Bonus: Allow use of util.error tables | ||||
* | Merge 0.11->trunk | Kim Alvefur | 2021-01-25 | 1 | -2/+2 |
|\ | |||||
| * | util.interpolation: Fix combination of filters and fallback values #1623 | Kim Alvefur | 2021-01-25 | 1 | -2/+2 |
| | | |||||
* | | util.startup: Make installer_plugin_path relative to data directory | Kim Alvefur | 2021-01-24 | 1 | -3/+2 |
| | | | | | | | | | | | | Having it relative to current working directory is problematic since this depends on how Prosody was started and changes to the data directory during startup (but after this point). | ||||
* | | util.startup: Don't create installer plugin path (as root) | Kim Alvefur | 2021-01-24 | 1 | -2/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since this runs before dropping root, the directory ends up being owned by root, resulting in luarocks failing to install anything, since by then it would be running as the prosody user. luarocks creates this directory if needed, so creating it during startup is not necessary. One potential issue is if the directory is somewhere where Prosody can't write, but then you will simply have to create it yourself with the appropriate permissions. | ||||
* | | util.prosodyctl.check: Recognise global options related to plugin installer | Kim Alvefur | 2021-01-21 | 1 | -0/+1 |
| | |