Commit Graph

302 Commits (19f94a1cd3e4376dd84d5bf4af34d5b93bb142df)

Author SHA1 Message Date
Evgeny Poberezkin 37dd0415da fixed relative JSON-pointer pattern 2016-01-13 22:23:32 +00:00
Evgeny Poberezkin 8fe96db455 refactored "default" to correctly validate minProperties, minItems, etc. when defaults are present, closes #42 2016-01-09 13:28:40 +00:00
Evgeny Poberezkin d7dd660d25 "default" keyword in "items" subschemas, #42 2016-01-09 01:37:45 +00:00
Evgeny Poberezkin 0b725bbc31 "default" keyword in "properties" subschemas, #42 2016-01-09 01:07:33 +00:00
Evgeny Poberezkin a1afce910c prevent scope change if definitions uses id 2016-01-04 22:28:05 +00:00
Evgeny Poberezkin 5f2cc30449 option multipleOfPrecision, closes #84 2016-01-02 17:16:01 +00:00
Evgeny Poberezkin c3d09d7699 fixed bug in dependencies keyword, closes #94 2015-12-30 23:04:14 +00:00
Evgeny Poberezkin 2eef59dede minified browser bundle 2015-12-27 21:33:07 +00:00
Evgeny Poberezkin 17ed9c90f4 keyword property in errors for custom keywords is set to the keyword itself instead of "custom" 2015-12-26 23:18:57 +00:00
Evgeny Poberezkin 694e81684f throw exception if custom keyword is not an identifier; update tests as macro keyword definition supports type 2015-12-26 23:04:45 +00:00
Evgeny Poberezkin c4786866e2 simplify compiling macro keywords 2015-12-26 22:27:13 +00:00
Evgeny Poberezkin eab087a792 loopRequired option 2015-12-26 00:05:39 +00:00
Evgeny Poberezkin f449f68a3d safe access with guards to $data ref 2015-12-25 22:36:23 +00:00
Evgeny Poberezkin 1d9cad5ab7 $data ref equal to undefined is always valid 2015-12-25 20:10:15 +00:00
Evgeny Poberezkin 2d7b06a6db support $data ref in required keyword, #81 2015-12-25 00:30:50 +00:00
Evgeny Poberezkin 2ab6aba454 support $data ref in uniqueItems, #81 2015-12-24 18:58:15 +00:00
Evgeny Poberezkin 10c6685027 support $data ref in formatMaximum/Minimum and exclusiveFormatMaximum/Minimum, #81 2015-12-24 17:43:48 +00:00
Evgeny Poberezkin 3915d22a22 refactor 2015-12-23 16:45:54 +00:00
Evgeny Poberezkin abff815d38 refactored schema compilation to reduce browser bundle size 2015-12-23 01:50:11 +00:00
Evgeny Poberezkin a38bf04418 refactor keywords with common code 2015-12-22 17:03:09 +00:00
Evgeny Poberezkin cdf172c2b8 support $data ref in constant keyword, #81; constant keyword is implemented as inline, closes #91 2015-12-22 11:47:12 +00:00
Evgeny Poberezkin 8648a98047 support $data ref in format keyword, #81 2015-12-22 01:18:52 +00:00
Evgeny Poberezkin ae4e6009a1 support $data ref in maximum/minimum and exclusiveMaximum/Minimum keywords, #81 2015-12-21 15:37:12 +00:00
Evgeny Poberezkin 4bb4059e80 $data ref in pattern and enum keywords, #81 2015-12-21 00:39:09 +00:00
Evgeny Poberezkin aa18f7cab1 support $data ref in max/minLength, max/minItems and max/minProperties keywords, #81 2015-12-20 22:40:19 +00:00
Evgeny Poberezkin 9d4be9c72a $data ref in multipleOf keyword, #81 2015-12-20 20:48:15 +00:00
Evgeny Poberezkin 32fe82697a v5 schema allowing $data references in some keywords 2015-12-19 22:26:26 +00:00
Evgeny Poberezkin bed46b41aa relative-json-pointer format 2015-12-19 21:58:45 +00:00
Evgeny Poberezkin 984a70d36c json-pointer format 2015-12-19 21:23:40 +00:00
Evgeny Poberezkin 35214f3c68 uuid format 2015-12-19 20:03:41 +00:00
Evgeny Poberezkin ca80b2ec42 correct schemaPath for $refs, additionalProperties, additionalItems, etc. 2015-12-19 15:56:08 +00:00
Evgeny Poberezkin 1c5be913b6 correctly report schema path, #80 2015-12-19 10:52:39 +00:00
Evgeny Poberezkin afd3831b52 semicolon 2015-12-12 22:29:45 +00:00
Evgeny Poberezkin 723258f052 v5 meta-schema 2015-12-12 21:18:41 +00:00
Evgeny Poberezkin 081f061371 more tests for switch keyword 2015-12-12 19:43:38 +00:00
Evgeny Poberezkin b5e3e7da6e ignore coverage for code branches where error objects are not crerated 2015-12-12 18:27:57 +00:00
Evgeny Poberezkin 8114a2b442 tests for switch keyword 2015-12-12 18:14:53 +00:00
Evgeny Poberezkin 318af74629 switch keyword 2015-12-12 13:41:51 +00:00
Evgeny Poberezkin 7c7abbbc74 "parentSchema" property added to error objects when using "verbose" option 2015-12-11 21:35:14 +00:00
Evgeny Poberezkin 610dcd17eb replace $ in properties with $$ replace pattern, closes #87 2015-12-07 21:55:38 +00:00
Evgeny Poberezkin 5dac3dd4b3 "contains" keyword (v5) is now valid if data is not an array 2015-12-06 21:57:41 +00:00
Evgeny Poberezkin 7141f1375e cleanup formatMaximum/formatMinimum 2015-12-06 21:25:42 +00:00
Evgeny Poberezkin 1c16707ee5 readme 2015-12-06 20:34:46 +00:00
Evgeny Poberezkin faae5585c2 semicolon 2015-12-05 21:31:56 +00:00
Evgeny Poberezkin d7fd8229a9 time format; formatMaximum/formatMinimum and exclusiveFormatMaximum/exclusiveFormatMinimum keywords from v5 proposals 2015-12-05 21:16:28 +00:00
Evgeny Poberezkin 5ebfb41903 fixed missing schemaPath in type keyword 2015-11-29 00:44:25 +00:00
Evgeny Poberezkin 8a0719ea27 additionalItems added to reserved keywords (can be defined as custom) 2015-11-28 16:11:56 +00:00
Evgeny Poberezkin 7d96e1b642 patternGroups keyword (v5 proposals) 2015-11-28 14:59:08 +00:00
Evgeny Poberezkin cf35958df4 schemaPath in errors, #76 2015-11-27 09:19:04 +00:00
Evgeny Poberezkin 2ddf957554 fixed schema substitution with some options when refs are inlined, closes #77 2015-11-26 22:49:49 +00:00
Evgeny Poberezkin 06fd23217a removed peerDependency, closes #78 2015-11-24 06:35:50 +00:00
Evgeny Poberezkin cffb7c7f72 move compileAsync and addKeyword to Ajv prototype, remove reduce 2015-11-22 02:13:03 +00:00
Evgeny Poberezkin a6de2b8047 addKeyword to separate file, whitespace 2015-11-22 02:07:41 +00:00
Evgeny Poberezkin 6ab3337ddf compileAsync to separate file 2015-11-22 01:47:15 +00:00
Evgeny Poberezkin 0fe807b68a v5 keywords constant and contains 2015-11-22 00:31:01 +00:00
Evgeny Poberezkin 65e534ee8b check/extend errors in inline custom keywords; tests for custom keywords creating errors 2015-11-21 23:12:03 +00:00
Evgeny Poberezkin 56a8b5b582 "dependencies" with option errorDataPath = "property" sets dataPath to missing property, error params has missingProperty, #68, #69 2015-11-21 12:43:44 +00:00
Evgeny Poberezkin 5c0c8b3b1c default behaviour of "additionalProperties" in >=2.0.0 (#69) reverts #11 - now dataPath points to the object that is validated and not to the additional property; old (<=1.4.10 ) error reporting of dataPath for "additionalProperties" keyword is available with option errorDataPath == "property" 2015-11-21 01:45:52 +00:00
Evgeny Poberezkin 79ab4add57 fixed errors for "required", tests 2015-11-20 22:52:54 +00:00
Evgeny Poberezkin a46600e14a default behaviour in >=2.0.0 (#69) reverts #18 and #55 - now dataPath points to the object that is validated and not to the missing property; old (<=1.4.10 ) error reporting of dataPath for "required" keyword is available with option errorDataPath == "property" 2015-11-19 23:59:10 +00:00
Evgeny Poberezkin 982264f192 removed i18n option (params always added to error objects) 2015-11-17 23:45:19 +00:00
Evgeny Poberezkin 6a2961bcf3 updated error parameters so that ajv-i18n does not depend on schema, compatible with ajv-i18n >= 1.0.0 2015-11-17 23:20:12 +00:00
Evgeny Poberezkin ee450ec8d0 removed caching of compiled subschemas of custom keywords (it made performance worse in most cases) 2015-11-17 23:20:12 +00:00
Evgeny Poberezkin ae5b4c0f45 support for "inline" custom keywords, #69 2015-11-17 23:20:12 +00:00
Evgeny Poberezkin 87292f80ea validate schemas generated by macro keywords 2015-11-17 23:20:12 +00:00
Evgeny Poberezkin 18c1ef858c support for "macro" custom keywords, #69 2015-11-17 23:20:11 +00:00
Evgeny Poberezkin 285850ce20 pass parent schema to compile/validate functions of custom keywords if they use it, #69 2015-11-17 23:17:59 +00:00
Evgeny Poberezkin 5e45d4eadf support compiling schemas in custom keywords, #69 2015-11-17 23:17:59 +00:00
Evgeny Poberezkin fcc776e794 basic implementation of custom keywords, #69 2015-11-17 23:17:59 +00:00
Evgeny Poberezkin 368332ab42 fixed bug in remote ref resolution, closes #70 2015-11-07 13:53:41 +00:00
Evgeny Poberezkin 7b142c56bd optimized generated code for deep schemas 2015-10-25 21:55:07 +00:00
Evgeny Poberezkin 889fcc12c5 fixed email format regex 2015-10-25 18:50:50 +00:00
Evgeny Poberezkin c4bf67cab0 changed uri format to allow URNs, closes #59 2015-10-25 11:31:07 +00:00
Evgeny Poberezkin d1ff86ef5e refactor resolve 2015-10-25 01:49:07 +01:00
Evgeny Poberezkin 70844207cf fixed resolution scope change - changing folder in subschema, closes #62 2015-10-25 01:03:19 +01:00
Evgeny Poberezkin b161a6f1d0 fixed resolution scope change - changing folder, fixed test for #62 2015-10-24 23:16:37 +01:00
Evgeny Poberezkin 2259dc76cd find schema ref that changes resolution scope in another schema, fixed one test for #62 2015-10-24 22:25:08 +01:00
Evgeny Poberezkin 579e5c5a1d refactor, remove unused code, test 2015-10-16 19:37:43 +01:00
Evgeny Poberezkin 40eafe036f removed unused code 2015-10-15 21:41:50 +01:00
Evgeny Poberezkin 50d30a262a fixed incorrect resolution scope change when "id" property is not a schema id - closes #61, closes #63 2015-10-15 18:53:55 +01:00
Le Lan Johan c486e8f25b Do not force two slashes for uris
To allow relative urls (conformed to https://tools.ietf.org/html/rfc1808), URI regex do not force two slashes after scheme.
2015-10-14 09:52:28 +02:00
Evgeny Poberezkin e02972207c validate "required" properties within "properties" keyword, closes #41 2015-10-11 00:08:58 +01:00
Evgeny Poberezkin 80dc982d59 replaced Array functions with for loop, added ajv instances to tests 2015-10-10 20:50:57 +01:00
Evgeny Poberezkin 738e343ccf fixed reference resolution when multiple schema files are compiled, closes #50, closes #53 2015-10-02 22:06:00 +01:00
Marc MacLeod 71e8ff3f2c update the required message rather than dataPath 2015-09-26 12:11:20 -05:00
Marc MacLeod f024918133 remove redundant property val in error message
For required properties, the error message is currently:

"data.name should have required property .name"

This works for other validations, where the property is present, but required is a special case that indicates the property is not there. The above message is somewhat confusing. I've simply updated the required errors to read:

"data should have required property .name"
2015-09-25 15:18:17 -05:00
Evgeny Poberezkin a67b661e10 fixed #52 (compileAsync); loadSchema should be called only once for any schema; error is always passed via callback 2015-09-23 23:42:33 +01:00
Evgeny Poberezkin d6ed06766c fixed #48 - indices in dataPath in error messages for items keyword 2015-09-23 21:58:19 +01:00
Evgeny Poberezkin de3d3469fe fixed #51 (compileAsync); ensure that callback in compileAsync is always called asynchronously 2015-09-23 21:04:34 +01:00
Evgeny Poberezkin f23deffff3 update text returned by errorsText method 2015-09-22 22:47:54 +01:00
Evgeny Poberezkin 34993de951 i18n support for ajv-i18n package 2015-09-13 01:01:20 +01:00
Evgeny Poberezkin 6723287c3e optimized equal 2015-09-07 09:58:33 +01:00
Yury Chebotaev de02d4d8ab Compare objects with better approach by @blakeembrey that not count order of keys 2015-09-07 03:45:10 +05:00
Yury Chebotaev 1b0a471448 equal fail when order of keys is different 2015-09-07 02:58:01 +05:00
Evgeny Poberezkin fe097794a9 asynchronous schema compilation with loading missing remote schemas using supplied function, #43, mulesoft-labs/osprey-mock-service#11 2015-09-03 00:17:50 +01:00
Evgeny Poberezkin bec34c5ba5 error thrown in case of missing reference has properties missingRef and missingSchema, related to #43, mulesoft-labs/osprey-mock-service#11 2015-09-02 18:20:43 +01:00
Evgeny Poberezkin ed7c14801d jshint, closes #34 2015-08-27 20:55:44 +01:00
Evgeny Poberezkin d99e707a69 improved performance of "properties" keyword; schema tests for 64 options combinations 2015-08-24 00:40:27 +01:00
Evgeny Poberezkin cc8de5bb8e tests for inlined schemas, #6 2015-08-23 21:17:11 +01:00
Evgeny Poberezkin 69bc41a38c optimised access to compiled/inlined referenced schemas 2015-08-23 13:27:05 +01:00