Commit Graph

541 Commits (d97543f327b61ff72b0fea1848cd012d2c96d3d8)

Author SHA1 Message Date
Evgeny Poberezkin 53a6c70138 asynchronous custom keywords can define custom errors by returning the promise that rejects with Ajv.ValidationError, closes #118 2016-02-28 22:14:18 +00:00
Evgeny Poberezkin 3aaeaf6ec0 removeSchema with RegExp to remove multiple schemas or without argument to remove all schemas, closes #103 2016-02-28 01:16:48 +00:00
Evgeny Poberezkin f48efb564a optimised "not" keyword in {allErrors: true} mode to fail on the first error in subschema, closes #131 2016-02-27 23:01:03 +00:00
Evgeny Poberezkin ec0f1c1b22 patternRequired keyword (v5 proposal), closes #123 2016-02-27 22:36:11 +00:00
Evgeny Poberezkin 503b427b7f eslint no-trailing spaces 2016-02-26 20:25:15 +00:00
Evgeny Poberezkin bdd1748dec schema: false option in "validate" custom keyword definition for custom keywords that do not depend on the schema 2016-02-21 13:27:38 +00:00
Evgeny Poberezkin 8fa4d0f05f test for passContext option 2016-02-16 10:12:32 +00:00
Evgeny Poberezkin de65510f1e passContext option; pass parent data to custom keyword functions 2016-02-16 00:15:20 +00:00
Evgeny Poberezkin 14d0eb0645 fix inlineRefs option, fix test, fix $ref to pass parentData[Property] to the referenced schema if it was passed to validate function 2016-02-15 22:04:04 +00:00
Evgeny Poberezkin b2a67e7a65 options passContext (undocumented) to pass the context of validation function to referenced (not inlined) schemas 2016-02-14 20:34:10 +00:00
Evgeny Poberezkin a0a172c90a removeSchema called with id without matching schema does not throw error 2016-02-13 20:14:04 +00:00
Evgeny Poberezkin 79d16b3dee alvays pass parent data and current data property when referenced schema called as a function (previously was passed only with option coerceTypes) 2016-02-12 23:08:28 +00:00
Evgeny Poberezkin fa6b702db0 error message for enum keyword, closes #115 2016-02-07 20:03:14 +00:00
Evgeny Poberezkin c62c6452aa eslint: no-console 2016-02-04 22:36:12 +00:00
Evgeny Poberezkin 5c8e32dffc eslint: no-shadow, no-invalid-this 2016-02-04 22:24:59 +00:00
Evgeny Poberezkin 5db986276c fixed bug: custom sync keyword in async schema 2016-02-04 19:56:04 +00:00
Evgeny Poberezkin 2f6213111d validate method for asynchronous schema always returns promise 2016-02-02 23:42:07 +00:00
Evgeny Poberezkin cc32c46a25 update json-stable-stringify; closes #67 2016-02-02 21:39:45 +00:00
Evgeny Poberezkin 89a5ce76f9 eslint; code style 2016-02-02 18:55:02 +00:00
Evgeny Poberezkin 644a73b8f7 enable tests for nodent 2016-02-01 17:56:47 +00:00
Evgeny Poberezkin 0ecd3eaa13 change async/transpile options 2016-01-31 22:07:19 +00:00
Evgeny Poberezkin 86d97d4337 async options, expose Ajv.ValidationError class 2016-01-30 22:13:00 +00:00
Evgeny Poberezkin c19c02aa04 nodent usage 2016-01-29 23:29:45 +00:00
Evgeny Poberezkin 2fe6715e3c readme: async and transpile options 2016-01-29 18:01:03 +00:00
Evgeny Poberezkin dba7096f2b additional check for compatibility with nodent 2016-01-29 15:11:13 +00:00
Evgeny Poberezkin 6e583554a1 async with nodent transpiler 2016-01-29 09:26:11 +00:00
Evgeny Poberezkin 7365dd6e41 transpiling async validation functions from es7 with nodent 2016-01-28 12:31:20 +00:00
Evgeny Poberezkin 98c9c195aa references to async schemas 2016-01-27 23:43:28 +00:00
Evgeny Poberezkin 002c99311f use regenerator to transpile asynchronous validation functions if generators are not supported, #40 2016-01-26 23:56:38 +00:00
Evgeny Poberezkin 873426b6a7 async custom keywords, #40 2016-01-25 23:57:16 +00:00
Evgeny Poberezkin d5808a3ee4 async format when format is $data, #40 2016-01-25 22:05:15 +00:00
Evgeny Poberezkin 0729d6d19d async schemas and async formats using generators, #40 2016-01-25 06:37:36 +00:00
Evgeny Poberezkin 27bd49f182 renamed opts property of ajv instance to _opts; options object passed to constructor is copied 2016-01-25 06:37:36 +00:00
Evgeny Poberezkin 0c60364a7f coerce type when schema is in ref that is not inlined, #95 2016-01-17 14:08:50 +00:00
Evgeny Poberezkin 878f3559f6 do not try to coerce to object/array, #95 2016-01-17 13:12:28 +00:00
Evgeny Poberezkin b5b6a06f09 coerceTypes option, #95 2016-01-17 01:05:06 +00:00
Evgeny Poberezkin 5b7d9f9ff7 fixed inline reference resolution 2016-01-16 14:33:46 +00:00
Evgeny Poberezkin c99d6751ad option addUsedSchema 2016-01-15 06:54:53 +00:00
Evgeny Poberezkin 8c4557f1ac fixed relative json-pointer pattern/code to access data 2016-01-14 21:31:00 +00:00
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
Evgeny Poberezkin f3b65f4a58 Merge branch 'master' into inline 2015-08-23 12:04:38 +01:00
Evgeny Poberezkin 843557e03f optimised regexps to create them during compile time, reuse regexp instances 2015-08-22 23:57:16 +01:00
Evgeny Poberezkin 1c508fa98c removed compiled dot templates from the repo, #34 2015-08-22 22:17:07 +01:00
Evgeny Poberezkin f9017a54d3 dataPath using jsonPointers in "required" keyword when allErrors == false, #32 2015-08-22 21:58:38 +01:00
Evgeny Poberezkin 4c4fdd5afc optimised getExprPath for numbers (items keyword), #32 2015-08-22 21:21:18 +01:00
Evgeny Poberezkin 00419a120e Merge pull request #36 from blakeembrey/json-pointers
Support JSON pointers
2015-08-22 20:23:55 +01:00
Blake Embrey e6da675f91 Support JSON pointers 2015-08-22 11:52:05 -07:00
Evgeny Poberezkin 7f37f1b546 removed hyper meta-schema, same schema is used as latest meta-schema 2015-08-21 23:11:18 +01:00
Evgeny Poberezkin d8d59ed352 inline refs with all keywords but "$ref" 2015-08-21 22:52:29 +01:00
Blake Embrey 4989662947 Add latest meta schemas according to schema spec 2015-08-21 10:14:36 -07:00
Evgeny Poberezkin 7d0c6d1d25 inline simple refs, #6 2015-08-19 22:54:05 +01:00
Evgeny Poberezkin cfec9e3fb3 removed unused it.dataPath, related to #32 2015-08-19 00:31:19 +01:00
Evgeny Poberezkin e74f79eea6 removed unused code with _debug option 2015-08-19 00:22:05 +01:00
Evgeny Poberezkin 8abbf63e9b Merge branch 'master' into 1.0.0 2015-08-16 23:00:43 +01:00
Evgeny Poberezkin 982cfab809 removed unused code 2015-08-16 02:11:00 +01:00
Evgeny Poberezkin 704fb11c1d optimized not rule 2015-08-16 01:21:35 +01:00
Evgeny Poberezkin 286368fb23 optimized required rule compilation 2015-08-16 01:10:43 +01:00
Evgeny Poberezkin dfd6de5857 removed _debug option 2015-08-16 00:59:28 +01:00
Evgeny Poberezkin fe53458a6e missingRefs option tests 2015-08-15 23:59:14 +01:00
Evgeny Poberezkin 87cc09501b tests: options, format regex 2015-08-12 01:00:46 +01:00
Evgeny Poberezkin c4fb165f8d simplified util.toHash 2015-08-11 22:52:34 +01:00
Evgeny Poberezkin eeb1307448 jshint "validthis" option 2015-08-11 19:24:31 +01:00
Evgeny Poberezkin a3be10e40d .jshintrc: node, allow == 2015-08-11 19:13:08 +01:00
Evgeny Poberezkin 1a1353717b .jshintrc, code style 2015-08-11 19:06:32 +01:00
Evgeny Poberezkin dfa640a1b2 readme, fixed addMetaSchema 2015-08-09 12:49:05 +01:00
Evgeny Poberezkin 22d4c6e40d addSchema no longer returns compiled schema 2015-08-09 11:46:44 +01:00
Evgeny Poberezkin 0012b09ccf do not replace schema object with compiled function 2015-08-09 00:54:06 +01:00
Evgeny Poberezkin c175259b48 clean up resolve 2015-08-08 20:57:50 +01:00
Evgeny Poberezkin 234729121f Merge branch 'master' into 1.0.0 2015-08-08 19:39:27 +01:00
Evgeny Poberezkin ab32638acc addMetaSchema validates metaschema by default 2015-08-08 19:34:01 +01:00
Evgeny Poberezkin 1b8c922ebc preserve roots during ref resolution, closes #27 2015-08-08 19:06:51 +01:00
Evgeny Poberezkin 41ed37f36f resolves recursive schema issue #27, breaks test for issue #13, raml schema has regex issue 2015-08-08 12:21:41 +01:00
Evgeny Poberezkin 9466859f92 addMetaSchema method, closes #26 2015-08-08 10:56:19 +01:00
Evgeny Poberezkin 22513f598a Merge branch 'master' into 1.0.0 2015-08-07 23:17:06 +01:00
Evgeny Poberezkin a0c342c58f fixed resolving recursive references, closes issue #27 2015-08-07 01:54:07 +01:00
Evgeny Poberezkin bde23cbe9e removed type escaping in errors 2015-08-07 00:14:08 +01:00
Blake Embrey b7877a2dcf Compile dot templates 2015-08-06 14:47:17 -07:00
Blake Embrey 2a8ce631dd Escape everything else that might need escaping 2015-08-06 14:47:17 -07:00
Blake Embrey 02d6a5431d Escape schema strings in output 2015-08-06 14:29:45 -07:00
Evgeny Poberezkin 021b20a366 fixed removeAdditional/validateSchema 2015-07-31 21:00:44 +01:00
Evgeny Poberezkin 94f51e1248 Merge branch 'master' into 1.0.0 2015-07-31 20:06:43 +01:00
Evgeny Poberezkin 62adbbe1ed fixed removeAdditional, tests, added "failing" for removeAdditional; closes #25, related to #23 2015-07-31 19:23:35 +01:00
Evgeny Poberezkin 23bf0ac5fb option removeAdditional equal to "all" 2015-07-30 09:22:15 +01:00
Evgeny Poberezkin 232a7aeb49 option removeAdditional equal to "all" 2015-07-30 09:21:36 +01:00
Evgeny Poberezkin 36085debf5 indentations 2015-07-30 09:06:31 +01:00
Andy Scott cff345ae16 Move `removeAdditional` option out of shared definitions 2015-07-29 09:56:57 -07:00
Andy Scott 94ddac2bc9 Add test for options (just `removeAdditional`, for now) 2015-07-29 09:56:11 -07:00
Andy Scott d5ed4403b8 During validation allow flag to remove values flagged by `additionalProperties: false` 2015-07-28 16:34:46 -07:00
Evgeny Poberezkin be023eda11 Merge branch 'master' into 1.0.0 2015-07-26 10:37:56 +01:00
Evgeny Poberezkin 6c93d0346d fixed "required" with properties that are not identifiers, closes #20 2015-07-22 16:26:28 +01:00
Evgeny Poberezkin 32ee26ec94 readme: supported formats 2015-07-21 22:36:20 +01:00
Evgeny Poberezkin af46a38428 fixed required for inner level with many properties, closes #19 2015-07-20 17:41:06 +01:00
Evgeny Poberezkin 9b1361c92e readme, removed unused code 2015-07-04 01:58:08 +01:00
Evgeny Poberezkin 8a5d8f32b7 fixed losing errors when validating mutually recursive schemas, #5 2015-07-04 01:37:35 +01:00
Evgeny Poberezkin 5641185396 adding schemas without compiling them, support for recursive schemas, adding dependencies in any order, #5 2015-07-04 00:48:32 +01:00
Evgeny Poberezkin 5416eaf86d improved error messages for "required" keyword, closes #18 2015-07-01 00:30:57 +01:00
Evgeny Poberezkin 5fc0b18287 improved error reporting for "required" keyword with large size schema, #18 2015-06-30 22:26:00 +01:00
Evgeny Poberezkin 22cdf02e51 improved error reporting for "required" keyword with limited size schema, #18 2015-06-30 22:09:14 +01:00
Evgeny Poberezkin 1cbcade81f fixed #1 IDs in refs without root id 2015-06-24 01:28:40 +01:00
Evgeny Poberezkin e7b0ee76e2 do not create global (instance level) refs for IDs that start from # 2015-06-24 00:55:38 +01:00
Evgeny Poberezkin 0ccf7e73f1 use properties as properties or indeces correctly in all cases 2015-06-24 00:43:52 +01:00
Evgeny Poberezkin 391d60482c fixed escaping pattern property (fixes #17) 2015-06-23 17:26:03 +01:00
Evgeny Poberezkin 853ed64bf9 prevent including js-beautify in the browser 2015-06-22 14:40:25 +01:00
Evgeny Poberezkin a97e6740e7 removeSchema method, closes #8 2015-06-20 18:41:56 +01:00
Evgeny Poberezkin b16989f779 cache option to change the way the schemas are cached, issue #8 2015-06-20 15:37:29 +01:00
Evgeny Poberezkin 4e1f0e54c4 prevent possible issues like #13 2015-06-19 00:59:53 +01:00
Evgeny Poberezkin cbdd00e9c6 fixed #13 - root ref in remote ref 2015-06-19 00:57:19 +01:00
Evgeny Poberezkin 8bfb3f9b4a added anyOf error, refactored test 2015-06-18 23:01:39 +01:00
Evgeny Poberezkin 46812e0ac6 fixed #14: remote ref in definitions in remote ref with ids 2015-06-18 20:48:35 +01:00
Evgeny Poberezkin 123aa99b15 test for #13 2015-06-18 15:01:15 +01:00
Evgeny Poberezkin a285b060ab option schemas added to readme 2015-06-18 08:13:39 +01:00
Evgeny Poberezkin 5b2ba08813 missingRefs option - "ignore", "fail" or throw error during compilation (default) 2015-06-17 22:23:49 +01:00
Evgeny Poberezkin 2ae8c89708 allow uri and throw on error when validating schemas against meta-schema 2015-06-17 22:06:07 +01:00
Evgeny Poberezkin 9931223dd9 list rules requires explicitely to make browserify work 2015-06-17 15:52:24 +01:00
Evgeny Poberezkin 5f36f17f63 precompiled dot templates, dot is devDependency, closes #3 2015-06-17 14:42:13 +01:00
Evgeny Poberezkin 5b434b426e validate schema against meta-schema 2015-06-17 02:05:52 +01:00
Evgeny Poberezkin 08c8032fe1 include property in error.dataPath for additionalProperty, closes #11 2015-06-16 22:54:08 +01:00
Evgeny Poberezkin 0576ea986e removed unused code 2015-06-16 22:19:26 +01:00
Evgeny Poberezkin f19f7fdedf refactor $ref.dot 2015-06-16 22:04:17 +01:00
Evgeny Poberezkin 058fcfb5cb fixed ref resolution using wrong root when compiling resolved schema 2015-06-16 18:14:24 +01:00
Evgeny Poberezkin e0d6afe7dc evgeny, jason: fixed incorrect root replacing and failure to resolve ref to another file root from inside ref, closes #12 2015-06-16 17:10:27 +01:00
Evgeny Poberezkin 082284d9cc fixed incorrect resolution of root ref in ref, fixes #2 2015-06-16 15:11:33 +01:00
Evgeny Poberezkin 536d958cf1 fixed incorrect dataPath in errors for refs, closes #9 2015-06-16 00:21:14 +01:00
Evgeny Poberezkin 993e2a73d7 optimized $ref for simple cases 2015-06-15 16:30:48 +01:00
Evgeny Poberezkin 5582e13c1d maximum/minimum keywords optimized 2015-06-15 11:14:13 +01:00
Evgeny Poberezkin 13e4f251cc removed redundant extra check in properties 2015-06-14 10:05:45 +01:00
Evgeny Poberezkin 9dfa073e28 optimized generated code for simple schemas 2015-06-14 09:04:11 +01:00
Evgeny Poberezkin 31c7d22c8b fixed bug: subschema with additiona/patternProperties only was ignored as always valid 2015-06-13 23:41:57 +01:00
Evgeny Poberezkin de59b7342e refactor properties 2015-06-13 19:59:08 +01:00
Evgeny Poberezkin e3a692f602 optimized additionalProperties validation 2015-06-13 16:35:15 +01:00
Evgeny Poberezkin 60b186402f custom formats support 2015-06-13 13:55:23 +01:00
Evgeny Poberezkin 0b3806fd18 do not create errors array until the first error 2015-06-13 13:01:05 +01:00
Evgeny Poberezkin 1f0eca163d removed recursive parameter, improved performance 2015-06-13 11:40:45 +01:00
Evgeny Poberezkin db3ec5d51e fixed code cleanup that was removing empty "if" leaving "else" 2015-06-13 10:27:05 +01:00
Evgeny Poberezkin 4bc538933d fixed broken template 2015-06-12 23:30:50 +01:00
Evgeny Poberezkin 32e83e5f28 exclude schemas without validation keywords, dont create data variables unless they are used at least twice 2015-06-12 22:12:34 +01:00
Evgeny Poberezkin 0aaa78eca4 optimize generated code to skip following rule groups if validation had already failed 2015-06-12 18:16:54 +01:00
Evgeny Poberezkin 5c7f764c6d fixed validation bug with recursive schemas 2015-06-12 14:22:33 +01:00
Evgeny Poberezkin 80b04dfc4c optimised generated code for all keywords 2015-06-12 11:43:41 +01:00
Evgeny Poberezkin 804627efe4 optimized generated code for oneOf keyword 2015-06-12 01:43:31 +01:00
Evgeny Poberezkin 0dfa95c011 optimized generated code for patternProperties 2015-06-10 23:58:49 +01:00
Evgeny Poberezkin ea974ab48d fast mode for format validation; optimised code generated for enum rule 2015-06-10 21:51:14 +01:00
Evgeny Poberezkin 1cd5eb5c72 make errors available after validate method call 2015-06-08 08:03:33 +01:00
Evgeny Poberezkin 606e81ad4b full support of remote refs 2015-06-07 21:55:40 +01:00
Evgeny Poberezkin 6284b83db7 ajv api changed, api tests, "resolve refs" progress 2015-06-07 12:47:57 +01:00
Evgeny Poberezkin fca4c77820 more tests, fixed resolve infinite loop 2015-06-06 19:44:07 +01:00
Evgeny Poberezkin 64b80cbfff more tests, fixed/optimized refs 2015-06-06 16:18:52 +01:00
Evgeny Poberezkin 4db4008e2c optimized code generation, beautify option 2015-06-06 14:13:31 +01:00
Evgeny Poberezkin 808e2270f8 removed unused dataPath 2015-06-06 02:40:17 +01:00
Evgeny Poberezkin 22a6852967 only compute paths when needed 2015-06-06 02:32:23 +01:00
Evgeny Poberezkin d0089f82e5 optimize & tidy up 2015-06-06 02:07:50 +01:00
Evgeny Poberezkin 1a6e9c8d63 replace hasOwnProperty with !== undefined 2015-06-05 19:08:11 +01:00
Evgeny Poberezkin f47d821418 unicode lengths are used by default; tidy up 2015-06-05 00:44:04 +01:00
Evgeny Poberezkin b9b9affcf4 correct unicode string lengths with "unicode" option 2015-06-04 23:08:45 +01:00
Evgeny Poberezkin 62e0d23a00 inline subschemas unconditionally, cleanup 2015-06-04 21:43:16 +01:00
Evgeny Poberezkin 568e76a351 removed potentially leaking "valid" variable 2015-06-04 21:18:31 +01:00
Evgeny Poberezkin c441624009 inlined subschemas in properties rule 2015-06-04 18:04:09 +01:00
Evgeny Poberezkin 0832e55c4c inlined subschemas in items rulw 2015-06-04 00:31:24 +01:00
Evgeny Poberezkin 7b790a4b0f inlined subschemas in allOf, anyOf, not, oneOf and dependencies 2015-06-04 00:17:33 +01:00
Evgeny Poberezkin 34a98e273a refactor with defs; use numbered variable names in different levels 2015-06-03 22:30:04 +01:00
Evgeny Poberezkin 4a54f9bb73 inline validate progress 2015-06-02 01:59:32 +01:00
Evgeny Poberezkin 3d58b95f56 optimized uniqueItems 2015-06-02 00:14:38 +01:00
Evgeny Poberezkin e7c3cb39aa optimized uniqueItems 2015-06-01 23:43:46 +01:00
Evgeny Poberezkin a013017af7 all rules are inlined 2015-06-01 20:44:12 +01:00
Evgeny Poberezkin ed4130f031 inline items 2015-06-01 18:51:22 +01:00
Evgeny Poberezkin 8f48bb1392 inlined properties 2015-06-01 01:59:58 +01:00
Evgeny Poberezkin ddf192e172 inlined not, anyOf, oneOf, allOf 2015-05-31 21:46:25 +01:00
Evgeny Poberezkin 99bec2b8c4 uniqueItems, $ref inlined 2015-05-31 18:40:04 +01:00
Evgeny Poberezkin dcf20e93dc use glob in test 2015-05-31 13:26:54 +01:00
Evgeny Poberezkin d784d95959 refactor validate generator 2015-05-31 12:21:41 +01:00
Evgeny Poberezkin 0021032091 removed dataType parameter 2015-05-31 10:46:44 +01:00
Evgeny Poberezkin 46cf5f9930 optimized required keyword 2015-05-31 02:01:30 +01:00
Evgeny Poberezkin 089ac03b1b simplified check for type "integer" 2015-05-31 01:11:32 +01:00
Evgeny Poberezkin 5fdf8ff720 schema in errors only in verbose mode, changed validate 2015-05-31 00:42:13 +01:00
Evgeny Poberezkin 13eb132cb9 refactored rules iteration to optimize code 2015-05-30 23:04:46 +01:00
Evgeny Poberezkin baa7ea128b refactor to return boolean 2015-05-30 21:10:21 +01:00
Evgeny Poberezkin 1a597d1e2d removed wrapper function from generated code 2015-05-30 19:11:06 +01:00
Evgeny Poberezkin 1c2444f4d7 $ref with internal refs 2015-05-30 11:50:18 +01:00
Evgeny Poberezkin 32e39f64a2 fixed inlined rules 2015-05-30 09:59:35 +01:00
Evgeny Poberezkin 884fcfb511 inline simple rules 2015-05-30 09:53:04 +01:00
Evgeny Poberezkin 5de2ee7513 fix 2015-05-30 00:30:20 +01:00
Evgeny Poberezkin 3b928b83a6 no caching of compiled schemas 2015-05-30 00:28:20 +01:00
Evgeny Poberezkin daf592adc4 ajv 2015-05-29 23:32:47 +01:00
Evgeny Poberezkin ec1f473804 formats, readme 2015-05-29 23:22:59 +01:00
Evgeny Poberezkin c4816e4836 dependencies rule 2015-05-29 15:58:02 +01:00
Evgeny Poberezkin 4a7a586bac refactored properties rule 2015-05-29 14:32:50 +01:00
Evgeny Poberezkin 67762549d8 items, uniqueItems, patternProperties, additionalProperties 2015-05-29 12:42:55 +01:00
Evgeny Poberezkin 26abbd96d2 anyOf, enum, maxItems, minItems, maxLength, minLength, maxProperties, minProperties, multipleOf, oneOf, pattern rules 2015-05-28 22:27:16 +01:00
Evgeny Poberezkin 008a93f447 not, allOf, maximum, minimum, properties, required rules implemented 2015-05-28 01:24:42 +01:00
Evgeny Poberezkin 8902a1bcfe "type" rule passes all tests 2015-05-26 02:11:55 +01:00
Evgeny Poberezkin 7dd2218fd4 always stable-stringify schema, even if the string is passed 2015-05-20 02:02:47 +01:00
Evgeny Poberezkin c32264b258 jv api 2015-05-20 01:55:53 +01:00