PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` 'use strict'; var sequences = {}; var DEFAULTS = { timestamp: function() { return Date.now(); }, datetime: function() { return (new Date).toISOString(); }, date: function() { return (new Date).toISOString().slice(0, 10); }, time: function() { return (new Date).toISOString().slice(11); }, random: function() { return Math.random(); }, randomint: function (args) { var limit = args && args.max || 2; return function() { return Math.floor(Math.random() * limit); }; }, seq: function (args) { var name = args && args.name || ''; sequences[name] = sequences[name] || 0; return function() { return sequences[name]++; }; } }; module.exports = function defFunc(ajv) { defFunc.definition = { compile: function (schema, parentSchema, it) { var funcs = {}; for (var key in schema) { var d = schema[key]; var func = getDefault(typeof d == 'string' ? d : d.func); funcs[key] = func.length ? func(d.args) : func; } return it.opts.useDefaults && !it.compositeRule ? assignDefaults : noop; function assignDefaults(data) { for (var prop in schema){ if (data[prop] === undefined || (it.opts.useDefaults == 'empty' && (data[prop] === null || data[prop] === ''))) data[prop] = funcs[prop](); } return true; } function noop() { return true; } }, DEFAULTS: DEFAULTS, metaSchema: { type: 'object', additionalProperties: { type: ['string', 'object'], additionalProperties: false, required: ['func', 'args'], properties: { func: { type: 'string' }, args: { type: 'object' } } } } }; ajv.addKeyword('dynamicDefaults', defFunc.definition); return ajv; function getDefault(d) { var def = DEFAULTS[d]; if (def) return def; throw new Error('invalid "dynamicDefaults" keyword property value: ' + d); } };