From 9c7c94ab73eb1e9fe78fc022805a06be0579d4b9 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sat, 22 Apr 2023 12:48:51 +0200 Subject: util.jsonschema: Implement 'luaPattern' - Lua variant of 'pattern' Like 'pattern' but uses Lua patterns instead of Regular Expressions, since only a subset of regex are also valid Lua patterns. --- teal-src/prosody/util/jsonschema.tl | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'teal-src/prosody/util/jsonschema.tl') diff --git a/teal-src/prosody/util/jsonschema.tl b/teal-src/prosody/util/jsonschema.tl index 75cfab92..8acb1309 100644 --- a/teal-src/prosody/util/jsonschema.tl +++ b/teal-src/prosody/util/jsonschema.tl @@ -98,6 +98,7 @@ local record json_schema_object -- for Lua luaPatternProperties: { string : schema_t } + luaPattern : string -- xml record xml_t @@ -225,6 +226,9 @@ function complex_validate (schema : json_schema_object, data : any, root : json_ if schema.minLength and #data < schema.minLength then return false end + if schema.luaPattern and not data:match(schema.luaPattern) then + return false + end end if data is number then -- cgit v1.2.3