3 var META_SCHEMA_ID = 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json';
7 META_SCHEMA_ID: META_SCHEMA_ID
11 function enableV5(ajv) {
12 var inlineFunctions = {
13 'switch': require('./dotjs/switch'),
14 'constant': require('./dotjs/constant'),
15 '_formatLimit': require('./dotjs/_formatLimit'),
16 'patternRequired': require('./dotjs/patternRequired')
19 if (ajv._opts.meta !== false) {
20 var metaSchema = require('./refs/json-schema-v5.json');
21 ajv.addMetaSchema(metaSchema, META_SCHEMA_ID);
23 _addKeyword('constant');
24 ajv.addKeyword('contains', { type: 'array', macro: containsMacro });
26 _addKeyword('formatMaximum', 'string', inlineFunctions._formatLimit);
27 _addKeyword('formatMinimum', 'string', inlineFunctions._formatLimit);
28 ajv.addKeyword('formatExclusiveMaximum');
29 ajv.addKeyword('formatExclusiveMinimum');
31 ajv.addKeyword('patternGroups'); // implemented in properties.jst
32 _addKeyword('patternRequired', 'object');
33 _addKeyword('switch');
36 function _addKeyword(keyword, types, inlineFunc) {
38 inline: inlineFunc || inlineFunctions[keyword],
42 if (types) definition.type = types;
43 ajv.addKeyword(keyword, definition);
48 function containsMacro(schema) {
50 not: { items: { not: schema } }