aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
...
* | util.datamapper: Fix to skip parsing wrapped arrays that aren't thereKim Alvefur2021-03-221-2/+0
| | | | | | | | Turns out the unreachable error is reachable :D
* | util.datamapper: Complete array building supportKim Alvefur2021-03-201-12/+3
| |
* | util.datamapper: Factor out handling of object properties for array reuseKim Alvefur2021-03-201-79/+82
| |
* | util.datamapper: Finally implement support for parsing arraysKim Alvefur2021-03-201-13/+9
| |
* | util.datamapper: Factor out extraction of the XML part to useKim Alvefur2021-03-201-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 elementKim Alvefur2021-03-191-1/+3
| | | | | | | | Fixes error due to attempting to index a nil value
* | util.datamapper: Fix arrays nesting one level too deepKim Alvefur2021-03-191-9/+9
| |
* | util.datamapper: Deal with type name changes in util.jsonschemaKim Alvefur2021-03-191-1/+1
| |
* | util.jsonschema: Rename types for improved readabilityKim Alvefur2021-03-181-3/+12
| |
* | util.datamapper: Limited support for unparsing simple arrays of stringsKim Alvefur2021-03-181-11/+41
| |
* | util.datamapper: Add initial support for parsing arraysKim Alvefur2021-03-181-9/+47
| |
* | util.datamapper: Factor out common schema unpackingKim Alvefur2021-03-141-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 typeKim Alvefur2021-03-141-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 booleansKim Alvefur2021-03-141-20/+20
| | | | | | | | Cleaner and rules out invalid combinations.
* | util.datamapper: Enumerated elementsKim Alvefur2021-03-121-1/+20
| | | | | | | | E.g. error conditions or chat states.
* | util.datamapper: Add references with notesKim Alvefur2021-03-101-0/+3
| |
* | util.jsonschema: Restructure "type" keyword handlingKim Alvefur2021-03-091-9/+10
| | | | | | | | More in line with the other tests
* | util.jsonschema: Syntax tweak to not upset syntax highlightingKim Alvefur2021-03-091-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 Alvefur2021-03-091-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 Alvefur2021-03-091-22/+8
| | | | | | | | This is a bit cleaner, I think
* | util.jsonschema: Fix "uniqueItems" prematurely declaring a matchKim Alvefur2021-03-091-1/+0
| |
* | util.jsonschema: Implement the "prefixItems" keywordKim Alvefur2021-03-091-1/+12
| | | | | | | | This may have been what got me confused about "items" being an array.
* | util.jsonschema: Implement the "contains" keywordKim Alvefur2021-03-091-0/+13
| | | | | | | | And apparently I had mistaken this for an array
* | util.jsonschema: Allow a boolean as schemaKim Alvefur2021-03-091-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" keywordKim Alvefur2021-03-091-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 Alvefur2021-03-071-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 trueKim Alvefur2021-03-071-3/+9
| |
* | util.datamapper: Invent extension for using tag name as valueKim Alvefur2021-03-061-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 XMLKim Alvefur2021-03-071-1/+102
| |
* | util.datamapper: Library for extracting data from stanzasKim Alvefur2021-03-071-0/+96
| | | | | | | | Based on the XML support in the OpenAPI specification.
* | util.jsonschema: Library for JSON Schema validationKim Alvefur2021-03-061-0/+245
| |
* | util.gc: Fix check for Lua 5.4Kim Alvefur2021-03-161-1/+1
| |
* | util.rsm: Correctly coerce integer value for <index> (fix #1642)Kim Alvefur2021-03-061-0/+3
| |
* | util.rsm: Improve readability using compacter stanza building APIKim Alvefur2021-03-061-5/+5
| | | | | | | | At least I think :text_tag improves readability.
* | util.prosodyctl.shell: Allow passing a single command as argumentKim Alvefur2021-03-051-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 --quietKim Alvefur2021-03-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Looked in the wrong table Test procedure: $ prosodyctl shell --quiet Expect: Prosody> (No banner)
* | util.datamanager: Support iterating over any file extensionKim Alvefur2021-02-071-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 Alvefur2021-02-031-1/+1
| | | | | | | | Backout c2d144d3f8dd
* | util.adhoc: Propagate error with producing initial initial dataKim Alvefur2021-01-311-1/+7
| | | | | | | | Bonus: Allow use of util.error tables
* | Merge 0.11->trunkKim Alvefur2021-01-251-2/+2
|\|
| * util.interpolation: Fix combination of filters and fallback values #1623Kim Alvefur2021-01-251-2/+2
| |
* | util.startup: Make installer_plugin_path relative to data directoryKim Alvefur2021-01-241-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 Alvefur2021-01-241-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 installerKim Alvefur2021-01-211-0/+1
| |
* | util.prosodyctl: Remove unused calculation [luacheck]Kim Alvefur2021-01-211-1/+1
| |
* | util.prosodyctl: Rename unused variable to '_' [luacheck]Kim Alvefur2021-01-211-1/+1
| |
* | util.prosodyctl: Always return exit code from luarocksKim Alvefur2021-01-211-4/+1
| | | | | | | | os.exit(true) errors on Lua 5.1
* | prosodyctl: Move UI related calls out of util.prosodyctlKim Alvefur2021-01-211-8/+0
| | | | | | | | | | I think this follows the general separation of duties between prosodyctl and util.prosodyctl better.
* | util.prosodyctl: Reword message to sound more naturalKim Alvefur2021-01-211-1/+1
| | | | | | | | | | | | | | English is hard. "to" might also work, but we'll go with this for now. 18:32:11 <MattJ> s/at/in/ ? 18:32:19 <MattJ> to match luarocks :)
* | util.prosodyctl: Propagate status from luarocks invocationKim Alvefur2021-01-211-1/+6
| |