aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* Many things: switch from hacky multi-arg xpcall implementations to a ↵Matthew Wild2018-10-263-13/+12
| | | | standard util.xpcall
* util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1Matthew Wild2018-10-261-0/+9
|
* util.dependencies: Remove ztact compatability warningMatthew Wild2018-10-261-13/+0
|
* util.promise: Switch from pcall to xpcall to get tracebacks on exceptionsMatthew Wild2018-10-261-1/+1
|
* util.promise: Remove the non-standard ability to pass a promise to reject()Matthew Wild2018-10-261-3/+1
|
* util.promise: Fix missing parametersMatthew Wild2018-10-251-2/+2
|
* util.promise: Ensure chained promises always receive a value/rejection even ↵Matthew Wild2018-10-251-22/+23
| | | | if an intermediate promise has no handlers
* util.promise: Export is_promise()Matthew Wild2018-10-251-0/+1
|
* util.promise: Remove debug print and assertMatthew Wild2018-10-251-1/+0
|
* util.pubsub: Clarify comment about return valueKim Alvefur2018-10-211-1/+1
|
* util.array: Add __div for parity with util.setMatthew Wild2018-10-211-0/+19
|
* util.array: Break long lineMatthew Wild2018-10-191-1/+5
|
* util.promise: Add promise.try()Matthew Wild2018-10-181-0/+6
|
* util.pubsub: Allow publishing with a config that should be used as defaults onlyMatthew Wild2018-10-181-4/+7
|
* util.promise: Add a string representationKim Alvefur2018-10-181-0/+4
|
* util.promise: Add promise:finally()Matthew Wild2018-10-181-0/+6
|
* util.promise: Some code relocationMatthew Wild2018-10-181-23/+23
|
* util.promise: Also support automatic resolution by returning a promise from ↵Matthew Wild2018-10-181-1/+3
| | | | | | | an on_reject handler Originally unimplemented because it wasn't clear to me what the correct behaviour was, but the A+ spec is clear that both onFulfilled and onRejected may return a promise.
* util.promise: Fix promise.reject() to return a rejected promise, and fix ↵Matthew Wild2018-10-181-1/+1
| | | | buggy test for it
* mod_http: Move normalize_path to util.httpKim Alvefur2018-10-141-0/+11
|
* util.dependencies: Add compat code for normalization of socket constructorsKim Alvefur2018-10-121-0/+4
| | | | | | Old LuaSocket had only tcp() which was IPv4-only. LuaSocket ~3.0 adds a tcp6() that creates a IPv6 socket. Some version moves tcp() to tcp4() and adds an IP-version-agnostic tcp() constructor.
* util.stanza: Set preserialize as freeze metamethodKim Alvefur2018-10-121-0/+2
|
* util.set: Add freeze metamethodKim Alvefur2018-10-121-0/+8
|
* util.array: Add freeze metamethodKim Alvefur2018-10-121-0/+2
|
* util.serialization: Remove encoding of very large or very small numbers in ↵Kim Alvefur2018-10-121-12/+1
| | | | | | | | scientific notation Also difficult to describe this option, easier to remove it. %.18g covers a very large range of numbers
* util.serialization: Simpler metatable pre-processingKim Alvefur2018-10-121-14/+12
| | | | It was too difficult to describe what it did.
* util.serialization: Use '=' prefix for chunk source descriptionKim Alvefur2018-10-111-1/+1
| | | | Like in bd5e4485a245
* util.serialization: Make check of prefix for optional hex encoding stricterKim Alvefur2018-10-111-1/+1
|
* 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.