aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* util.serialization: Make errors fatal by default (like the previous ↵Kim Alvefur2018-10-111-1/+1
| | | | implementation)
* util.promise: ES6-like API for promisesMatthew Wild2018-10-101-0/+133
|
* util.serialization: Stricter type checkKim Alvefur2018-09-231-1/+1
|
* util.json: Use util.iterators.sorted_pairs() in ordered modeMatthew Wild2018-09-211-21/+8
|
* util.iterators: Add sorted_pairs() methodMatthew Wild2018-09-211-0/+13
|
* util.jid: Add missing semicolonKim Alvefur2018-09-211-1/+1
|
* 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.dataforms: Improve default error message for failed datatype validationKim Alvefur2018-09-031-1/+1
|
* util.dataforms: Add support for XEP-0122: Data Forms ValidationKim Alvefur2018-09-011-1/+36
| | | | Initially only basic validation of xs:integer
* util.dataforms: Allow field names to be different from the 'var' attributeKim Alvefur2018-09-011-2/+2
| | | | | | This should allow the usage of long prefixes and namespace-like names to be contained to the XML representation of the form, so that the code can use more convenient names.
* util.pubsub: Expand comment on return type from get_itemsKim Alvefur2018-09-011-1/+1
|
* util.pubsub: Explicitly add all capabilities to the 'outcast' affiliation ↵Kim Alvefur2018-08-311-0/+16
| | | | for completeness
* util.pubsub: Comments describing the return values of methodsKim Alvefur2018-08-221-19/+19
|
* util.pubsub: Add 'service' field to all eventsMatthew Wild2018-08-271-7/+7
|
* util.pubsub: Remove unused argumentKim Alvefur2018-08-211-1/+1
| | | | I think this was probably a copy-paste mistake.
* util.pubsub: Fire item-published/<node> to allow for easier handling of ↵Matthew Wild2018-08-191-1/+3
| | | | per-node items
* util.stanza + tests: Bail out of loop if we are iterating too far, fixes #981Matthew Wild2018-08-191-0/+6
|
* util.startup: Set flag when config fully loadedMatthew Wild2018-08-191-0/+1
|
* util.pubsub, pubsub.lib: Improve error on attempt to publish invalid itemMatthew Wild2018-08-181-1/+1
|
* Pubsub: Add tests for :get_last_item() and fix for non-persistent nodesMatthew Wild2018-08-181-1/+1
|
* util.pubsub: Fix whitespace [luacheck]Matthew Wild2018-08-181-1/+1
|
* Backed out changeset 27d800ddc3b0 (see below)Matthew Wild2018-08-181-2/+2
| | | | | | | | | It's uncertain whether item not existing should be success and nil, or fail with an error. XEP-0060's "fetch most recent item" actually fetches a list of up to N items. N here is a maximum, not a minimum. The feeling is that no items is simply an empty list, not a failure of the operation.
* util.pubsub: get_last_item(): Fail with item-not-found if no item yet publishedMatthew Wild2018-08-181-2/+2
|
* util.pubsub: get_last_item(): Return error if node does not existMatthew Wild2018-08-181-0/+6
|
* pubsub.lib, util.pubsub: Move precondition checks to util.pubsubMatthew Wild2018-08-181-2/+17
|
* util.pubsub: Add comment to clarify return valuesMatthew Wild2018-08-181-0/+1
|
* util.pubsub: Pass "retract" as the type of such broadcastsKim Alvefur2018-08-161-1/+1
| | | | | | | | This moves some XEP-0060 awkwardness out of util.pubsub and into mod_pubsub A retraction is broadcast in an <items> container, whereas most other kinds of broadcasts are in a container with a name matching the 'kind' attribute.
* util.async: Remove sleep functionKim Alvefur2018-08-121-8/+0
| | | | | Dependency on util.timer indirectly caused net.server to be initialized before the config was read, so server_select was always chosen.
* util.pubsub: Allow outcasts to get their subscription statusMatthew Wild2018-08-121-0/+2
|
* util.time: Convert to CKim Alvefur2017-03-091-8/+0
|
* util.pubsub: For open nodes, default affiliation is "member"Matthew Wild2018-08-091-1/+1
| | | | | | | | | This allows entities without an explicit affiliation to retrieve items, which is specified by the XEP. Table 6: "Node Access Models" states that for 'open' nodes, "any entity may retrieve items from the node". See also discussion at: https://mail.jabber.org/pipermail/standards/2018-August/035320.html
* mod_pep, util.pubsub: Rename restricted->outcast, none->member and add new ↵Matthew Wild2018-08-081-2/+24
| | | | 'none' affiliation to better match XEP-0060
* mod_pubsub, mod_pep, util.pubsub: Move capability definitions into ↵Matthew Wild2018-08-081-1/+77
| | | | util.pubsub to avoid duplication
* util.pubsub: Include node defaults from current service objectKim Alvefur2018-08-071-0/+3
|
* util.pubsub: Re-check all subscriptions on access_model change, ↵Kim Alvefur2018-08-061-0/+12
| | | | unsubscribing those no longer allowed
* util.pubsub: Add support for publish_model config optionMatthew Wild2018-08-061-1/+14
|
* util.dataforms: Allow passing the current values to be used in stead of ↵Kim Alvefur2018-08-051-2/+4
| | | | omitted fields
* util.pubsub: Apply defaults metatable before config check (thanks pep.)Kim Alvefur2018-08-051-1/+3
| | | | | Makes it so that the callback sees the default if it?s not in the form, which makes it easier to validate.
* util.dataforms: Normalize indentationKim Alvefur2018-08-041-3/+3
|
* util.pubsub: Add method to retrieve node configurationMatthew Wild2018-08-041-0/+21
|
* util.pubsub: Use service.node_defaults in case config.node_defaults was not ↵Matthew Wild2018-08-041-1/+1
| | | | provided (thanks jonasw)
* util.pubsub: Tweak default affiliation of access models (fixes failing test)Matthew Wild2018-08-041-2/+2
| | | | | | | | | | | 11:56:59 MattJ> Someone who has the ability to subscribe does not have the "subscriber" affiliation until they actually subscribe, they just have the normal "none" affiliation (which has permission to subscribe) 11:58:05 MattJ> However if the access model is whitelist, then anyone not on the whitelist has an implicit negative affiliation, which we don't currently have, so I just named "restricted" 11:58:16 MattJ> Since it doesn't exist in any code yet, it has no permissions
* util.pubsub: Look for a configured callback for more complicated access modelsKim Alvefur2018-08-041-0/+10
|
* util.pubsub: Add initial support for configurable access modelsKim Alvefur2018-08-041-4/+17
|
* util.dataforms: Only allow overriding of options when passed via the :form ↵Kim Alvefur2018-08-031-9/+8
| | | | method
* util.dataforms: Allow overriding default options even if the form has suchKim Alvefur2018-08-031-1/+1
|
* util.dataforms: Allow passing dynamically generated options as values (fixes ↵Kim Alvefur2018-08-031-2/+9
| | | | | | | traceback) This is awkward but there?s currently no better way to do this, short of dynamically generating the entire form each time
* util.dataforms: Exclude descriptive text fields from forms of type 'submit'Kim Alvefur2018-08-031-9/+13
| | | | | The receiving end presumably already have the original form, so these potentially long text fields are of little value.
* util.dataforms: Skip all fields for the 'cancel' form typeKim Alvefur2018-08-031-0/+3
| | | | | | | | | | | XEP-0004 says: > a data form of type "cancel" SHOULD NOT contain any <field/> elements. The title and instructions don't seem to be of much value in this case either. I'm not aware of 'cancel' being used anywhere, so this should break nothing. Early return is always nice.
* util.dataforms: Only include options in 'form' type formsKim Alvefur2018-08-031-1/+1
| | | | Options should not be needed in other types of forms.