'use strict';

var KEYWORDS = [

'multipleOf',
'maximum',
'exclusiveMaximum',
'minimum',
'exclusiveMinimum',
'maxLength',
'minLength',
'pattern',
'additionalItems',
'maxItems',
'minItems',
'uniqueItems',
'maxProperties',
'minProperties',
'required',
'additionalProperties',
'enum',
'format',
'const'

];

module.exports = function (metaSchema, keywordsJsonPointers) {

for (var i=0; i<keywordsJsonPointers.length; i++) {
  metaSchema = JSON.parse(JSON.stringify(metaSchema));
  var segments = keywordsJsonPointers[i].split('/');
  var keywords = metaSchema;
  var j;
  for (j=1; j<segments.length; j++)
    keywords = keywords[segments[j]];

  for (j=0; j<KEYWORDS.length; j++) {
    var key = KEYWORDS[j];
    var schema = keywords[key];
    if (schema) {
      keywords[key] = {
        anyOf: [
          schema,
          { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' }
        ]
      };
    }
  }
}

return metaSchema;

};