aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* util.datamapper: Factor out extraction of the XML part to useKim Alvefur2021-03-202-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 elementKim Alvefur2021-03-192-2/+6
| | | | Fixes error due to attempting to index a nil value
* make: Magic trick for teal-src/*.tl -> ./*.luaKim Alvefur2021-03-191-1/+2
|
* util.datamapper: Fix arrays nesting one level too deepKim Alvefur2021-03-193-25/+31
|
* util.datamapper: Deal with type name changes in util.jsonschemaKim Alvefur2021-03-192-30/+34
|
* util.jsonschema: Rename types for improved readabilityKim Alvefur2021-03-183-30/+56
|
* teal: Use new integer support in Teal 0.13.0Kim Alvefur2021-03-1814-53/+57
|
* util.datamapper: Limited support for unparsing simple arrays of stringsKim Alvefur2021-03-183-19/+75
|
* util.datamapper: Add initial support for parsing arraysKim Alvefur2021-03-183-19/+118
|
* util.datamapper: Factor out common schema unpackingKim Alvefur2021-03-142-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 typeKim Alvefur2021-03-142-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 booleansKim Alvefur2021-03-142-40/+47
| | | | Cleaner and rules out invalid combinations.
* util.datamapper: Enumerated elementsKim Alvefur2021-03-123-3/+49
| | | | E.g. error conditions or chat states.
* util.datamapper: Some TODOsKim Alvefur2021-03-101-0/+4
|
* util.datamapper: Add references with notesKim Alvefur2021-03-102-0/+17
|
* util.datamapper: Add Copyright headerKim Alvefur2021-03-101-0/+6
|
* util.jsonschema: Add copyright-headerKim Alvefur2021-03-101-0/+9
|
* util.jsonschema: Restructure "type" keyword handlingKim Alvefur2021-03-092-18/+20
| | | | More in line with the other tests
* util.jsonschema: Syntax tweak to not upset syntax highlightingKim Alvefur2021-03-092-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 Alvefur2021-03-092-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 Alvefur2021-03-092-44/+16
| | | | This is a bit cleaner, I think
* util.jsonschema: Fix "uniqueItems" prematurely declaring a matchKim Alvefur2021-03-092-2/+0
|
* util.jsonschema: Implement the "prefixItems" keywordKim Alvefur2021-03-092-2/+25
| | | | This may have been what got me confused about "items" being an array.
* util.jsonschema: Implement the "contains" keywordKim Alvefur2021-03-092-1/+27
| | | | And apparently I had mistaken this for an array
* util.jsonschema: Allow a boolean as schemaKim Alvefur2021-03-092-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" keywordKim Alvefur2021-03-092-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 Alvefur2021-03-074-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 trueKim Alvefur2021-03-073-6/+24
|
* util.datamapper: Invent extension for using tag name as valueKim Alvefur2021-03-064-9/+42
| | | | | 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-073-2/+216
|
* util.datamapper: Library for extracting data from stanzasKim Alvefur2021-03-074-0/+255
| | | | Based on the XML support in the OpenAPI specification.
* util.jsonschema: Library for JSON Schema validationKim Alvefur2021-03-063-0/+575
|
* make: Add target for building Teal sourcesKim Alvefur2021-03-091-0/+4
| | | | | Compiled Lua targets included in parallel in order to not add a hard dependency on Teal, at least not yet.
* util: Add Teal interface definition filesKim Alvefur2021-03-0924-0/+489
| | | | | | | | Enables writing code in Teal that is aware of the interfaces and function prototypes in these other utils. Could also be used to do type checks on Lua sources, but this tends to have a lot of noise.
* util.gc: Fix check for Lua 5.4Kim Alvefur2021-03-161-1/+1
|
* net.resolvers.basic: Fix completion condition when IPv6 is disabledKim Alvefur2021-03-151-0/+2
| | | | | | | | | | Fixes mistake introduced in 5a71f14ab77c that made it so this ready() newer got called and thus it would be stuck waiting for it. Looks like the kind of thing that could have been introduced by a merge or rebase. Thanks MattJ
* mod_pubsub: Include <pubsub> with unsubscribe replyKim Alvefur2021-03-152-2/+12
| | | | | | | | | XEP-0060 6.2.2 This is a MAY but it makes it nice and symmetric with the subscription response. Reduces the need to remember which node you unsubscribed from. Explicit > implicit etc.
* util.rsm: Correctly coerce integer value for <index> (fix #1642)Kim Alvefur2021-03-061-0/+3
|
* util.rsm: Increase test coverageKim Alvefur2021-03-061-0/+43
| | | | Test all fields in both directions in order to catch #1642
* util.rsm: Improve readability using compacter stanza building APIKim Alvefur2021-03-061-5/+5
| | | | At least I think :text_tag improves readability.
* mod_csi_simple: s/algoritm/algorithm/ [codespell]Kim Alvefur2021-03-051-1/+1
|
* core.storagemanager: s/Multilpe/Multiple/ [codespell]Kim Alvefur2021-03-051-1/+1
|
* 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)
* net.resolvers.basic: Disable DANE for now, completely brokenKim Alvefur2021-03-032-6/+4
| | | | | Turns out 'extra' is, at least for mod_s2s, the same table for *all* connections.
* net.resolvers.basic: Don't enable DANE with zero TLSA recordsKim Alvefur2021-03-031-1/+1
| | | | Turns out it doesn't work with zero.
* mod_s2s: Buffer stream error + stream closing tagKim Alvefur2021-03-031-1/+4
| | | | | In "opportunistic writes" mode, prevents ondisconnect from happening while writing the stream closing tag.
* core.s2smanager: Set "direction" on destroyed sessions (fixes #1641)Kim Alvefur2021-03-031-0/+1
| | | | | | | | Should prevent errors in certain places where it logs session.direction captialized using gsub. Might cause bugs tho, but then the session is destroyed so maybe it doesn't matter?
* mod_s2s: Check direction in bidi-aware styleKim Alvefur2021-03-031-1/+1
| | | | | | Both session.incoming and session.outgoing are truthy here, but session.direction indicates the "real" direction in the way that matters for the order of events when opening or closing streams.
* doap: Add RFC 7673Kim Alvefur2021-03-021-0/+1
| | | | Supported in the DNS layer, this isn't RFC about how to use it in XMPP.