diff --git a/rules/from-draft3/to-draft4/016-disallow-has-value-equals-any.json b/rules/from-draft3/to-draft4/016-disallow-has-value-equals-any.json new file mode 100644 index 0000000..4e98330 --- /dev/null +++ b/rules/from-draft3/to-draft4/016-disallow-has-value-equals-any.json @@ -0,0 +1,11 @@ +{ + "vocabulary": "core", + "condition": [ + { "operation": "has-key", "path": [], "value": "disallow" }, + { "operation": "equals", "path": [ "disallow" ], "value": "any" } + ], + "transform": [ + { "operation": "add", "path": [ "not" ], "value": {} }, + { "operation": "remove", "path": [ "disallow" ] } + ] +} diff --git a/rules/from-draft3/to-draft4/017-disallow-has-any-in-its-array.json b/rules/from-draft3/to-draft4/017-disallow-has-any-in-its-array.json new file mode 100644 index 0000000..bc3fb76 --- /dev/null +++ b/rules/from-draft3/to-draft4/017-disallow-has-any-in-its-array.json @@ -0,0 +1,11 @@ +{ + "vocabulary": "core", + "condition": [ + { "operation": "has-key", "path": [], "value": "disallow" }, + { "operation": "equals", "path": [ "disallow", {} ], "value": "any" } + ], + "transform": [ + { "operation": "add", "path": [ "not" ], "value": {} }, + { "operation": "remove", "path": [ "disallow" ] } + ] +} diff --git a/rules/from-draft3/to-draft4/018-disallow-has-atleast-one-object-in-its-array-initialize-allOf.json b/rules/from-draft3/to-draft4/018-disallow-has-atleast-one-object-in-its-array-initialize-allOf.json new file mode 100644 index 0000000..644095e --- /dev/null +++ b/rules/from-draft3/to-draft4/018-disallow-has-atleast-one-object-in-its-array-initialize-allOf.json @@ -0,0 +1,12 @@ +{ + "vocabulary": "core", + "condition": [ + { "operation": "has-key", "path": [], "value": "disallow" }, + { "operation": "not-has-key", "path": [], "value": "not" }, + { "operation": "type-is", "path": [ "disallow" ], "value": "array" }, + { "operation": "contains-type", "path": [ "disallow" ], "value": "object" } + ], + "transform": [ + { "operation": "add", "path": [ "allOf" ], "value": [] } + ] +} diff --git a/rules/from-draft3/to-draft4/019-disallow-has-atleast-one-object-in-its-array.json b/rules/from-draft3/to-draft4/019-disallow-has-atleast-one-object-in-its-array.json new file mode 100644 index 0000000..ceef65e --- /dev/null +++ b/rules/from-draft3/to-draft4/019-disallow-has-atleast-one-object-in-its-array.json @@ -0,0 +1,13 @@ +{ + "vocabulary": "core", + "condition": [ + { "operation": "has-key", "path": [], "value": "disallow" }, + { "operation": "has-key", "path": [], "value": "allOf" }, + { "operation": "type-is", "path": [ "disallow" ], "value": "array" }, + { "operation": "type-is", "path": [ "disallow", {} ], "value": "object" } + ], + "transform": [ + { "operation": "add", "path": [ "allOf", "-" ], "value": { "not": "temp"} }, + { "operation": "move", "to": [ "allOf", "-", "not" ], "from": [ "disallow", {} ] } + ] +} diff --git a/rules/from-draft3/to-draft4/020-disallow-is-an-array-of-strings-allOf-present.json b/rules/from-draft3/to-draft4/020-disallow-is-an-array-of-strings-allOf-present.json new file mode 100644 index 0000000..192ed24 --- /dev/null +++ b/rules/from-draft3/to-draft4/020-disallow-is-an-array-of-strings-allOf-present.json @@ -0,0 +1,12 @@ +{ + "vocabulary": "core", + "condition": [ + { "operation": "has-key", "path": [], "value": "disallow" }, + { "operation": "type-is", "path": [ "disallow" ], "value": "array" } + ], + "transform": [ + { "operation": "add", "path": [ "allOf", "-" ], "value": { "not": "temp" } }, + { "operation": "add", "path": [ "allOf", "-", "not" ], "value": { "type": "temp" } }, + { "operation": "move", "to": [ "allOf", "-", "not", "type" ], "from": [ "disallow" ] } + ] +} diff --git a/rules/from-draft3/to-draft4/021-disallow-is-an-array-of-strings-allOf-absent.json b/rules/from-draft3/to-draft4/021-disallow-is-an-array-of-strings-allOf-absent.json new file mode 100644 index 0000000..edb8754 --- /dev/null +++ b/rules/from-draft3/to-draft4/021-disallow-is-an-array-of-strings-allOf-absent.json @@ -0,0 +1,12 @@ +{ + "vocabulary": "core", + "condition": [ + { "operation": "has-key", "path": [], "value": "disallow" }, + { "operation": "type-is", "path": [ "disallow" ], "value": "array" }, + { "operation": "not-has-key", "path": [], "value": "allOf" } + ], + "transform": [ + { "operation": "add", "path": [ "allOf" ], "value": [ { "not": { "type": "temp" } } ] }, + { "operation": "move", "to": [ "allOf", "-", "not", "type" ], "from": [ "disallow" ] } + ] +} diff --git a/test/from-draft3/to-draft4/disallow-has-any-in-its-array.json b/test/from-draft3/to-draft4/disallow-has-any-in-its-array.json new file mode 100644 index 0000000..b9e75c0 --- /dev/null +++ b/test/from-draft3/to-draft4/disallow-has-any-in-its-array.json @@ -0,0 +1,11 @@ +[ + { + "title": "`disallow` is present and contains `any` in it", + "from": { + "disallow": [ "any", {}, "string" ] + }, + "to": { + "not": {} + } + } +] diff --git a/test/from-draft3/to-draft4/disallow-has-atleast-one-object-in-its-array-initialize-allOf.json b/test/from-draft3/to-draft4/disallow-has-atleast-one-object-in-its-array-initialize-allOf.json new file mode 100644 index 0000000..495bf39 --- /dev/null +++ b/test/from-draft3/to-draft4/disallow-has-atleast-one-object-in-its-array-initialize-allOf.json @@ -0,0 +1,12 @@ +[ + { + "title": "`disallow` is present and contains atleast one object in it", + "from": { + "disallow": [ {}, "string" ] + }, + "to": { + "disallow": [ {}, "string" ], + "allOf": [] + } + } +] diff --git a/test/from-draft3/to-draft4/disallow-has-atleast-one-object-in-its-array.json b/test/from-draft3/to-draft4/disallow-has-atleast-one-object-in-its-array.json new file mode 100644 index 0000000..b346cd7 --- /dev/null +++ b/test/from-draft3/to-draft4/disallow-has-atleast-one-object-in-its-array.json @@ -0,0 +1,15 @@ +[ + { + "title": "`disallow` is present and contains atleast one object and allOf present", + "from": { + "disallow": [ "string", {} ], + "allOf": [] + }, + "to": { + "disallow": [ "string" ], + "allOf": [ + { "not": {} } + ] + } + } +] diff --git a/test/from-draft3/to-draft4/disallow-has-value-equals-any.json b/test/from-draft3/to-draft4/disallow-has-value-equals-any.json new file mode 100644 index 0000000..4aaf43d --- /dev/null +++ b/test/from-draft3/to-draft4/disallow-has-value-equals-any.json @@ -0,0 +1,11 @@ +[ + { + "title": "`disallow` is present and value equals to any", + "from": { + "disallow": "any" + }, + "to": { + "not": {} + } + } +] diff --git a/test/from-draft3/to-draft4/disallow-is-an-array-of-strings-allOf-absent.json b/test/from-draft3/to-draft4/disallow-is-an-array-of-strings-allOf-absent.json new file mode 100644 index 0000000..abd1bb7 --- /dev/null +++ b/test/from-draft3/to-draft4/disallow-is-an-array-of-strings-allOf-absent.json @@ -0,0 +1,13 @@ +[ + { + "title": "`disallow` is present and is an array, allOf absent", + "from": { + "disallow": [ "number", "string" ] + }, + "to": { + "allOf": [ + { "not": { "type": [ "number", "string" ] } } + ] + } + } +] diff --git a/test/from-draft3/to-draft4/disallow-is-an-array-of-strings-allOf-present.json b/test/from-draft3/to-draft4/disallow-is-an-array-of-strings-allOf-present.json new file mode 100644 index 0000000..ee16385 --- /dev/null +++ b/test/from-draft3/to-draft4/disallow-is-an-array-of-strings-allOf-present.json @@ -0,0 +1,14 @@ +[ + { + "title": "`disallow` is present and is an array, allOf present", + "from": { + "disallow": [ "number", "string" ], + "allOf": [] + }, + "to": { + "allOf": [ + { "not": { "type": [ "number", "string" ] } } + ] + } + } +]