aboutsummaryrefslogtreecommitdiffstats
path: root/util/stanza.lua
Commit message (Collapse)AuthorAgeFilesLines
* util: Prefix module imports with prosody namespaceKim Alvefur2023-03-171-4/+4
|
* Merge 0.12->trunkKim Alvefur2022-12-121-36/+60
|\
| * Merge 0.12->trunkKim Alvefur2022-09-151-0/+5
| |\
| * | util.stanza: Add add_error() to simplify adding error tags to existing stanzasMatthew Wild2022-08-291-25/+31
| | | | | | | | | | | | | | | Some fiddling is required now in error_reply() to ensure the cursor is in the same place as before this change (a lot of code apparently uses that feature).
| * | util.stanza: Add method for extracting a single attribute valueKim Alvefur2022-08-171-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes you only care about a single attribute, but the child tag itself may be optional, leading to needing `tag and tag.attr.foo` or `stanza:find("tag@foo")`. The `:find()` method is fairly complex, so avoiding it for this kind of simpler use case is a win.
| * | util.stanza: Create tables with correct size to avoid reallocationsKim Alvefur2022-03-181-2/+15
| | | | | | | | | | | | | | | Potential performance gain since the tables don't need to be resized as they grow to the final size.
| * | util.stanza: Use table.move in cloneKim Alvefur2022-03-181-9/+6
| | | | | | | | | | | | Code reduction, potentially a performance gain.
* | | Merge 0.11->0.120.12.2Kim Alvefur2022-12-121-1/+5
|\ \ \ | |_|/ |/| |
| * | util.stanza: Allow U+7F0.11.14Kim Alvefur2022-11-221-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | Allowed by XML despite arguably being a control character. Drops the part of the range meant to rule out octets invalid in UTF-8 (\247 starts a 4-byte sequence), since UTF-8 correctness is validated by util.encodings.utf8.valid().
* | | util.stanza: Return nil instead of nothing (fix test with luassert >=1.9)Kim Alvefur2022-09-151-0/+5
| |/ |/| | | | | | | Due to a change in luassert, a dependency luassert of the Busted test framework, returning nothing is no longer treated as not falsy.
* | util.stanza: Remove dead codeKim Alvefur2021-12-311-5/+0
| | | | | | | | | | These cases are caught by `check_text(v, ..)` above. Those errors do not contain the attribute however, which would have been nice.
* | util.stanza: Make type error message consistent with othersKim Alvefur2021-12-311-1/+1
| |
* | util.stanza: Adjust pretty printing for symmetryKim Alvefur2021-11-291-1/+1
| | | | | | | | | | Self-closing <tags/> and <?processing instructions?> had some asymmetries in applied colors.
* | util.stanza: Add :get_child_with_attr() + testsMatthew Wild2021-09-121-0/+8
| |
* | util.stanza: Export pretty printing functionKim Alvefur2021-06-291-1/+3
| |
* | util.stanza: Simplify and make pretty-printing look nicerKim Alvefur2020-11-071-29/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I've had this color theme in a local debug module for some time and I quite like it. The colors are from the XMPP logo. Removes extra XML serialization implementation in favor of the standard one. Also removes recursive str=str..more string building. The new two-level gsub has the accumulator in C space so shouldn't be too bad. The inner gsub calls use no callback, so should be fast and not create all that much garbage. No serious benchmarking has been done, but who cares if it looks nice?
* | util.stanza: Remove Windows "support" (disabling ANSI color pretty printing)Kim Alvefur2020-11-071-11/+2
| | | | | | | | | | | | Always enable pretty printing if util.termcolours is available util.termcolours can be nooped out to disable pretty printing.
* | util.stanza: add at_top helperJonas Schäfer2021-05-081-0/+4
| | | | | | | | | | | | This allows the user to detect whether the cursor is currently at the top of the stanza. This will be used by util.xmppstream to be able to port it over.
* | Merge 0.11->trunkKim Alvefur2021-01-081-2/+2
|\|
| * util.stanza: Move misplaced argument to correct placeKim Alvefur2020-12-241-2/+2
| | | | | | | | | | valid_utf8() takes only one argument, so the false was probably meant to be valid_xml_cdata(text, attribute=false)
* | Merge 0.11->trunkKim Alvefur2020-11-111-1/+9
|\|
| * util.stanza: Reject ASCII control characters (fixes #1606)Kim Alvefur2020-11-111-1/+9
| |
* | util.stanza: Extract Application-Specific Condition from errorsKim Alvefur2020-09-261-6/+8
| | | | | | | | API change
* | util.stanza: Support Application-Specific Conditions in util.errorKim Alvefur2020-09-261-0/+5
| |
* | util.stanza: Get 'by' from context insteadKim Alvefur2020-09-261-1/+1
| | | | | | | | | | | | | | Zash> <error by=?> should go where? extra.by? context? source? Zash> In Prosody this would usually be module.host or a bare user/room JID MattJ> Zash: context MattJ> context.by, basically the opposite of context.actor
* | util.stanza: Support inclusion of <gone> URI from util.error objectKim Alvefur2020-09-261-2/+8
| |
* | util.stanza: Support getting 'by' from util.error objectKim Alvefur2020-09-261-0/+3
| |
* | util.stanza: Reorder code to prepare for extracting 'by' from util.errorKim Alvefur2020-09-261-3/+3
| |
* | util.stanza: Add method returning stanza with added indentationKim Alvefur2020-04-121-0/+30
| | | | | | | | | | Adds indentation and line breaks to stanzas, to make stanzas easier to read for humans.
* | util.stanza: Accept util.error object to error_replyKim Alvefur2019-12-141-0/+3
| | | | | | | | | | | | | | | | If we're moving towards util.error as the standard error container then this makes sense. This may allow for future extensibility without needing a lot of optional arguments.
* | util.stanza: Support the 'by' attribute on errorsKim Alvefur2019-11-251-2/+5
| | | | | | | | | | This is to be used when the entity generating the error is not the same as the one the stanza was directed to, e.g. an intermediate server.
* | util.stanza: Check that argument to error_reply is NOT a stanza of type errorKim Alvefur2019-11-251-0/+2
| | | | | | | | Replying to an error is Very Bad
* | util.stanza: Check that argument to error_reply is a stanzaKim Alvefur2019-11-251-0/+3
| |
* | util.stanza: Remove redundant check for attrsKim Alvefur2019-11-251-1/+1
| | | | | | | | A stanza can't not have attrs if created the correct way
* | util.stanza: Check that argument to reply is a stanzaKim Alvefur2019-11-251-0/+3
| |
* | util.stanza: Use :text_tag internally everywhereKim Alvefur2019-08-021-3/+3
| | | | | | | | May allow future changes in a single place.
* | util.stanza: Fix :top_tag() handling of namespaced attributesMatthew Wild2019-03-251-32/+30
| |
* | util.stanza: Require a type attribute for iq stanzasKim Alvefur2018-12-281-1/+7
|/
* util.stanza: Deserialize stanza without mutating input (fixes #711)Kim Alvefur2018-12-011-27/+17
|
* util.stanza: Validate input to clone() (with brief tests)Kim Alvefur2018-11-171-2/+9
|
* util.stanza: Set preserialize as freeze metamethodKim Alvefur2018-10-121-0/+2
|
* util.stanza: Don't automatically generate ids for iq stanzasMatthew Wild2018-09-131-9/+4
| | | | | | | | | | Users of this API should provide their own id attribute that meets their uniqueness requirements. The current implementation leaks information (i.e. how many iq stanzas have been sent by the server to other JIDs). Providing any strong guarantees of randomness here would need to pull in additional dependencies that we don't want in this simple library.
* util.stanza + tests: Bail out of loop if we are iterating too far, fixes #981Matthew Wild2018-08-191-0/+6
|
* Merge 0.10->trunkKim Alvefur2018-07-081-0/+10
|\
| * util.stanza: Add method for removing all children with a specific name, xmlnsKim Alvefur2018-07-081-0/+10
| |
* | util.stanza: Remove redundant check from :text now done in :add_direct_childKim Alvefur2018-06-081-1/+0
| |
* | util.stanza: Verify that other objects added as children are valid stringsKim Alvefur2018-06-081-1/+4
| |
* | util.stanza: Verify that child tags added are really stanzas (closes #1165)Kim Alvefur2018-06-081-1/+1
| |
* | util.stanza: Add :text_tag(), a shortcut for adding nodes with textKim Alvefur2018-03-211-0/+4
| |
* | util.stanza: Allow :text(nil) and :text("") as harmless nopsMatthew Wild2018-03-211-3/+5
| |