@jarenjs/validate 0.8.2 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +210 -14
- package/dist/index.js.map +3 -3
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/package.json +1 -1
package/dist/index.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function y(e){return typeof e=="function"}function ze(e){switch(e){case"string":case"number":case"boolean":case"integer":case"bigint":return!0;default:return!1}}function J(e){return e!=null&&ze(typeof e)}function x(e){return typeof e=="string"}function G(e){return e===!0||e===!1}function W(e){return e!=null&&typeof e=="number"}function xe(e){return Number.isInteger(e)}function q(e){return typeof e=="bigint"}function Ee(e,t=void 0){return x(e)?e:t}function K(e,t=void 0){return q(e)?e:t}function ie(e){return e===null}function L(e,t){return e!=null&&e.constructor===t}function E(e){return L(e,Object)}function ge(e){return L(e,Map)}function Y(e){return e!=null&&typeof e=="object"&&e.constructor!==Array}function M(e){return L(e,Array)}function he(e){return L(e,Set)}var oe=Object.getPrototypeOf(Uint8Array);function ve(e){if(e==null)return!1;let t=e.__proto__.__proto__;return t!=null&&t.constructor===oe}function C(e,t=void 0){return E(e)?e:t}function V(e,t,r){let n=e(t),o=r===!0?n:e(r);return o===void 0?[n,void 0]:[void 0,o]}function ye(e){return e!=null&&(e instanceof Array||e instanceof Set||e instanceof oe)}function ue(e,t=void 0){return e==null?t:e.constructor===Array?e.filter((r,n,o)=>n===o.indexOf(r)):e.constructor===Set?Array.from(e):t}function Ce(e){let t=ue(e);return t!=null&&t.length==e.length}function se(e,t){return t.every(r=>e.includes(r))}function Q(e){return e===!0||e===!1||e==="true"||e==="false"}function B(e,t=void 0){return Q(e)||e==="true"||e==="false"?e:t}function He(e){return typeof e!="bigint"&&!Number.isNaN(Number(e))}function Ge(e){return Number.isInteger(Number(e))}function j(e,t=void 0){return He(e)?Number(e):t}function h(e,t=void 0){return Ge(e)?Number(e):t}function d(e,t=void 0,r=void 0,n=void 0){return e===!0||!0}function _(e,t=void 0,r=void 0,n=void 0){return!1}function le(e,t=d){return y(e)?e:y(t)?t:d}function v(e=[],t){if(t==null)return e;if(y(t))e.push(t);else if(t.constructor===Array)for(let r=0;r<t.length;++r)y(t[r])&&e.push(t[r]);return e}function T(e){return e==null||/^\s*$/.test(e)}function fe(e){return L(e,RegExp)}function ee(e){if(e!=null){if(fe(e))return e;if(x(e))if(e[0]==="/"){let t=e.lastIndexOf("/");if(t>=0){let r=e.substring(1,t),n=e.substring(t+1);return new RegExp(r,n)}}else return new RegExp(e);throw new Error(`Unknown Regular Expression Pattern Type: ${e}`)}}function N(e){return G(e)||E(e)}function $(e,t=void 0){return N(e)?e:t}function A(e,t=1,r=void 0){return M(e)&&e.length>=t&&e||r}function te(e,t){let r=e.type;return r==null?!1:r===t?!0:r.constructor===Array?r.includes(t):r.constructor===Set?r.has(t):!1}function Z(e){return E(e)&&x(e.$ref)&&!T(e.$ref)}function ce(e,t=!1){switch(e){case"null":return ie;case"boolean":return G;case"integer":return xe;case"bigint":return q;case"number":return W;case"string":return x;case"object":return t?E:Y;case"array":return t?ye:M;case"set":return he;case"map":return ge;case"tuple":return M;case"regex":return fe;default:break}if(e===null)return ie;if(typeof e=="function")throw new Error("This is interesting!")}var S=class e{static undefThat(){return new e}constructor(t=!1,r=0){this.match=t,this.errors=Number(r)}addValid(t=!0){return t===!1&&this.errors++,this}addMatch(t=!0){return this.match=!0,t===!1&&this.errors++,this}addResult(t=new e){return this.match=this.match||t.match,this.errors+=t.errors,this}isValid(){return this.errors===0}};function Le(e,t,r){return e[t]==null&&y(r)?(e[t]=r,!0):!1}function Ve(e,t){let r=Object.keys(t);for(let n=0;n<r.length;++n){let o=r[n],u=t[o];Le(e,o,u)}return e}function ke(e,t){if(x(t))return e[t]}function Te(e,t){if(!x(t.format))return;let r=ke(e.formats,t.format);if(r)return r(e,t);throw new Error(`Unknown format ${t.format}`)}function b(e,t){if(e===t)return!0;if(e==null||t==null||G(e)||G(t))return!1;if(y(e))return e.toString()===t.toString();if(J(e)||e.constructor!==t.constructor)return!1;if(e.constructor===Object){let o=Object.keys(e),u=Object.keys(t);if(o.length!==u.length)return!1;for(let i=0;i<o.length;++i){let s=o[i];if(!b(e[s],t[s]))return!1}return!0}if(e.constructor===Map){if(e.size!==t.size)return!1;for(let[o,u]of e)if(t.has(o)===!1||!b(u,t.get(o)))return!1;return!0}if(e.constructor===Array){if(e.length!==t.length)return!1;for(let o=0;o<e.length;++o)if(!b(e[o],t[o]))return!1;return!0}if(e.constructor===Set){if(e.size!==t.size)return!1;for(let o of e)if(t.has(o)===!1)return!1;return!0}if(e.constructor===RegExp)return e.toString()===t.toString();if(ve(e)){if(e.length!==t.length)return!1;for(let o=0;o<e.length;++o)if(e[o]!==t[o])return!1;return!0}let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;if(r.length===0)return!0;for(let o=0;o<r.length;++o){let u=r[o];if(!b(e[u],t[u]))return!1}return!0}function Ue(e,t){let r=t.const;if(r===void 0)return;let n=e.createErrorHandler(r,"const");return r===null||J(r)?function(u,i){return r===u||n(u,i)}:function(u,i){return b(r,u)||n(u,i)}}function Xe(e,t){let r=A(t.enum,1);if(r==null)return;let n=!1;for(let u=0;u<r.length;++u){let i=r[u];if(i!=null&&typeof i=="object"){n=!0;break}}let o=e.createErrorHandler(r,"enum");return n===!1?function(i,s){return i===void 0||r.includes(i)?!0:o(i,s)}:function(i,s){if(i===void 0)return!0;if(i===null||typeof i!="object")return r.includes(i)?!0:o(i,s);for(let f=0;f<r.length;++f)if(b(r[f],i)===!0)return!0;return o(i,s)}}function Ae(e,t){return[Ue(e,t),Xe(e,t)]}function qe(e,t){let[r,n]=V(j,t.maximum,t.exclusiveMaximum);if(n!=null){let o=e.createErrorHandler(n,"exclusiveMaximum");return function(i,s){return i<n||o(i,s)}}else if(r!=null){let o=e.createErrorHandler(r,"maximum");return function(i,s){return i<=r||o(i,s)}}}function Ze(e,t){let[r,n]=V(j,t.minimum,t.exclusiveMinimum);if(n!=null){let o=e.createErrorHandler(n,"exclusiveMinimum");return function(i,s){return i>n||o(i,s)}}else if(r!=null){let o=e.createErrorHandler(r,"minimum");return function(i,s){return i>=r||o(i,s)}}}function Je(e,t){let r=j(t.multipleOf);if(r==null)return;let n=e.createErrorHandler(r,"multipleOf");return function(u,i){return u%r===0||n(u,i)}}function We(e,t){let r=qe(e,t),n=Ze(e,t),o=Je(e,t);if(r==null&&n==null&&o==null)return;let u=r||d,i=n||d,s=o||d;return function(l,c){return u(l,c)&&i(l,c)&&s(l,c)}}function Ie(e,t){let r=We(e,t);if(r!=null)return function(o,u){return W(o)?r(o,u):!0}}function Ke(e,t){let[r,n]=V(K,t.maximum,t.exclusiveMaximum);if(n!=null){let o=e.createErrorHandler(n,"exclusiveMaximum");return function(i,s){return i<n||o(i,s)}}else if(r!=null){let o=e.createErrorHandler(r,"maximum");return function(i,s){return i<=r||o(i,s)}}}function Ye(e,t){let[r,n]=V(K,t.minimum,t.exclusiveMinimum);if(n!=null){let o=e.createErrorHandler(n,"exclusiveMinimum");return function(i,s){return i>n||o(i,s)}}else if(r!=null){let o=e.createErrorHandler(r,"minimum");return function(i,s){return i>=r||o(i,s)}}}function Qe(e,t){let r=K(t.multipleOf);if(r==null)return;let n=e.createErrorHandler(r,"multipleOf");return function(u,i){return u%r===BigInt(0)||n(u,i)}}function _e(e,t){let r=Ke(e,t),n=Ye(e,t),o=Qe(e,t);if(r==null&&n==null&&o==null)return;let u=r||d,i=n||d,s=o||d;return function(l,c){return q(l)?u(l,c)&&i(l,c)&&s(l,c):!0}}function je(e,t){let r=h(t.minLength)||0;if(r<1)return;let n=e.createErrorHandler(r,"minLength");return function(u=0,i){return u>=r||n(u,i)}}function et(e,t){let r=h(t.maxLength)||-1;if(r<0)return;let n=e.createErrorHandler(r,"maxlength");return function(u=0,i){return u<=r||n(u,i)}}function tt(e,t){let r=ee(t.pattern);if(r==null)return;let n=e.createErrorHandler(r,"pattern");return function(u="",i){return r.test(u)||n(u,i)}}function rt(e,t){let r=je(e,t),n=et(e,t),o=tt(e,t);if((r||n||o)==null)return;let u=r||d,i=n||d,s=o||d;return function(l,c){let a=l.length;return u(a,c)&&i(a,c)&&s(l,c)}}function Se(e,t){let r=rt(e,t);if(r!=null)return function(o,u){return x(o)&&r(o,u)}}function nt(e,t){let r=h(t.minProperties)||0;if(r<1)return;let n=e.createErrorHandler(r,"minProperties");return function(u=0,i=""){return u>=r||n(u,i)}}function it(e,t){let r=h(t.maxProperties)||-1;if(r<0)return;let n=h(t.minProperties)||0;if(r<n)throw new Error("maxProperties must be greater then minProperties");let o=e.createErrorHandler(r,"maxProperties");return function(i=0,s=""){return i<=r||o(i,s)}}function ot(e,t){let r=A(t.required,1);if(r==null)return;let n=r.length,o=e.createErrorHandler(r,"requiredProperties");return function(i=[],s=""){let f=!0;for(let l=0;l<n;++l){let c=r[l];i.indexOf(c)===-1&&(f&&=o(c,s))}return f}}function ut(e,t){let r=$(t.propertyNames);if(r!=null)return e.createValidator(r,"propertyNames")}function st(e,t){let r=C(t.properties);if(r==null)return;let n=Object.keys(r);if(n.length===0)return;let o={};for(let u=0;u<n.length;u++){let i=n[u],s=r[i],f=e.createValidator(s,"properties",i);f!=null&&(o[i]=f)}if(Object.keys(o).length!==0)return function(i,s,f,l){let c=new S,a=o[l];return a==null?c:c.addMatch(a(i[l],s,f,l))}}function lt(e,t){let r=C(t.patternProperties);if(r==null)return;let n=Object.keys(r);if(n.length===0)return;let o={};for(let f=0;f<n.length;++f){let l=n[f],c=ee(l);c!=null&&(o[l]=c)}let u=Object.keys(o);if(u.length===0)return;let i={};for(let f=0;f<u.length;++f){let l=u[f],c=r[l],a=e.createValidator(c,"patternProperties",l);a!=null&&(i[l]=a)}let s=Object.keys(i);if(s.length!==0)return function(l,c,a,p){let m=new S;for(let F=0;F<s.length;++F){let g=s[F];if(o[g].test(p)){let I=i[g];m.addMatch(I(l[p],c,a,p))}}return m}}function ft(e,t){let r=$(t.additionalProperties);if(r==null)return;if(r===!1){let o=e.createErrorHandler(!1,"additionalProperties");return function(i,s,f,l){return o(l,i)}}let n=e.createValidator(r,"additionalProperties");return function(u,i,s,f){return n(u[f],i,s,f)}}function ct(e,t){let r=$(t.unevaluatedProperties);if(r!=null){if(r===!1){let n=e.createErrorHandler(!1,"unevaluatedProperties");return(o,u,i,s)=>n(s,o)}return e.createValidator(r,"unevaluatedProperties")}}function at(e,t){let r=C(t.dependentRequired);if(r==null||Object.keys(r).length===0)return;let n=e.createErrorHandler(!1,"dependentRequired");return function(u,i,s,f){if(f in r){let l=r[f];return se(Object.keys(u),l)||n(u,f,i)}return!0}}function dt(e,t){let r=C(t.dependentSchemas);if(r==null)return;let n={};for(let o in r)if(o in r){let u=r[o];if(!N(u)&&!e.options.skipErrors)throw new Error(`Expected Schema at '${e.path}/${o}'`);let i=e.createValidator(u,"dependentSchemas",o);if(i!=null)n[o]=i;else throw new Error(`Expected Validator at '${e.path}/${o}'`)}if(Object.keys(n).length!==0)return function(u,i,s,f){if(f in n){let l=n[f];return l(u,i,s,f)}return!0}}function pt(e,t){let r=C(t.dependencies);if(r==null)return;let n={};for(let o in r)if(o in r){let u=r[o];if(N(u)){let i=e.createValidator(u,"dependencies",o);if(i!=null)n[o]=i;else throw new Error(`Expected Validator at '${e.path}/${o}'`)}else if(M(u)){let i=e.createErrorHandler(u,["dependencies",o]);n[o]=function(f,l,c,a){return se(Object.keys(f),u)||i(f,a,l)}}else if(!e.options.skipErrors)throw new Error(`Expected Schema or Array at '${e.path}/${o}'`)}if(Object.keys(n).length!==0)return function(u,i,s,f){if(f in n){let l=n[f];return l(u,i,s,f)}return!0}}function mt(e,t){let r=nt(e,t),n=it(e,t),o=ot(e,t);if((r||n||o)==null)return;let u=r||d,i=n||d,s=o||d;return function(l,c,a,p){let m=p||Object.keys(l),F=m.length;return u(F,c)&&i(F,c)&&s(m,c)}}function Ft(e,t){let r=ut(e,t),n=st(e,t),o=lt(e,t),u=ft(e,t),i=dt(e,t),s=pt(e,t),f=at(e,t),l=ct(e,t);if((o||r||n||f||i||s||u||l)==null)return;let c=r||d,a=n||S.undefThat,p=o||S.undefThat,m=f||d,F=i||d,g=s||d;return function(I,w,R,D){let H=new S;return H.addValid(c(D)).addResult(a(I,w,R,D)).addResult(p(I,w,R,D)).addValid(m(I,w,R,D)).addValid(F(I,w,R,D)).addValid(g(I,w,R,D)),u?H.match?H:H.addMatch(u(I,w,R,D)):(l&&H.addValid(l(I,w,R,D)),H)}}function xt(e,t){let r=Ft(e,t);if(r!=null)return function(o,u,i,s){let f=new S;for(let l=0;l<s.length;++l){let c=s[l];f.addResult(r(o,u,i,c))}return f.isValid()}}function De(e,t){if(te(t,"map"))return;let r=mt(e,t),n=xt(e,t);if((r||n)==null)return;let o=r||d,u=n||d;return function(s,f,l){if(E(s)){let c=Object.keys(s);return o(s,f,l,c)&&u(s,f,l,c)}return!0}}function Et(e,t){let r=h(t.minItems)||0;if(r<1)return;let n=e.createErrorHandler(r,"minItems");return function(u=0,i=""){return u>=r||n(u,i)}}function gt(e,t){let r=h(t.maxItems)||-1;if(r<0)return;let n=h(t.minItems)||0;if(r<n)throw new Error("maxItems must be greater then minItems");let o=e.createErrorHandler(r,"maxItems");return function(i=0,s=""){return i<=r||o(i,s)}}function ht(e,t,r,n){let o=B(t[r]);if(o!==!0)return;let u=e.createErrorHandler(o,r);return function(s,f){return n(s)||u(s,f)}}var vt=(e,t)=>ht(e,t,"uniqueItems",Ce);function Me(e,t,r,n){let o=A(t[r],1);if(o==null)return;let u=o.map((l,c)=>l===!0?d:l===!1?_:e.createValidator(l,r,c)),i=u.length,s=$(t[n],!0);if(typeof s=="boolean")return function(c,a,p,m){return m>=i?s:u[m](c,a,p)};let f=e.createValidator(s,n);return function(c,a,p,m){return m<i?u[m](c,a,p):f(c,a,p)}}function yt(e,t){return Me(e,t,"prefixItems","items")}function Ct(e,t){return Me(e,t,"items","additionalItems")}function Tt(e,t){let r=C(t.contains);if(r!=null)return e.createValidator(r,"contains")}function At(e,t){if(C(t.contains)==null)return;let n=h(t.minContains),o=h(t.maxContains),u=e.createErrorHandler(0,"contains"),i=e.createErrorHandler(n,"minContains"),s=e.createErrorHandler(o,"maxContains");return n==null&&o==null?function(l,c){return l>0||u(l,c)}:o==null?function(l,c){return l>=(n||0)||i(l,c)}:n==null?function(l,c){return l===0?u(l,c):l<=o||s(l,c)}:function(l,c){return(l>=n||i(l,c))&&(l<=o||s(l,c))}}function It(e,t){let r=B(t.contains);if(r===!0){let n=e.createErrorHandler(!0,"contains");return function(u,i){return u.length>0||n(u,i)}}if(r===!1){let n=e.createErrorHandler(!1,"contains");return function(u,i){return n(u,i)}}}function _t(e,t){let r=B(t.items);if(r===!0)return d;if(r!==!1)return;let n=e.createErrorHandler(!1,"items");return function(u,i){return u.length===0||n(u,i)}}function St(e,t){let r=C(t.items);if(r!=null)return e.createValidator(r,"items")}function Dt(e,t){let r=C(t.unevaluatedItems);if(r!=null)return e.createValidator(r,"unevaluatedItems")}function Mt(e,t){let r=Et(e,t),n=gt(e,t),o=vt(e,t);if((r||n||o)==null)return;let u=r||d,i=n||d,s=o||d;return function(l,c){let a=l.length;return u(a,c)&&i(a,c)&&s(l,c)}}function Nt(e,t){let r=yt(e,t)||Ct(e,t)||St(e,t),n=Tt(e,t),o=Dt(e,t);if((r||n||o)==null)return;let u=At(e,t)||d,i=h(t.maxItems)||0,s=f=>i>0?Math.min(i,f):f;if(n==null){let f=e.createErrorHandler(0,"items");return function(c,a,p){let m=s(c.length),F=0;for(let g=0;g<m;++g){let z=c[g];r(z,a,p,g)===!1&&F++}return F===0||f(F,a)}}return r==null?function(l,c){let a=s(l.length),p=0;for(let m=0;m<a;++m){let F=l[m];n(F,c)===!0&&p++}return u(p,c)}:function(l,c,a){let p=s(l.length),m=0,F=0;for(let g=0;g<p;++g){let z=l[g];r(z,c,a,g)!==!0&&m++,n(z,c,a)===!0&&F++}return m===0&&u(F,c)}}function Ne(e,t){if(te(t,"set"))return;let r=Mt(e,t),n=_t(e,t),o=It(e,t),u=Nt(e,t);if((r||n||o||u)===void 0)return;let i=r||d,s=n||d,f=o||d,l=u||d;return function(a,p,m){return M(a)?i(a,p)&&s(a,p,m)&&f(a,p,m)&&l(a,p,m):!0}}function $t(e,t){let r=A(t.allOf,1);if(r==null)return;let n=[];for(let u=0;u<r.length;++u){let i=r[u];if(i===!0)n.push(d);else if(i===!1)n.push(_);else{let s=e.createValidator(i,"allOf",u);n.push(s)}}if(n.length===0)return;let o=e.createErrorHandler(r,"allOf");return function(i,s,f,l){if(i!==void 0)for(let c=0;c<n.length;++c){let a=n[c];if(a(i,s,f,l)===!1)return o(i,s)}return!0}}function Ot(e,t){let r=A(t.anyOf,1);if(r==null)return;let n=[];for(let u=0;u<r.length;++u){let i=r[u];if(i===!0)n.push(d);else if(i===!1)n.push(_);else{let s=e.createValidator(i,"anyOf",u);n.push(s)}}if(n.length===0)return;let o=e.createErrorHandler(r,"anyOf");return function(i,s,f,l){if(i!==void 0){for(let c=0;c<n.length;++c){let a=n[c];if(a(i,s,f,l)===!0)return!0}return o(i,s)}return!0}}function wt(e,t){let r=A(t.oneOf,1);if(r==null)return;let n=[];for(let u=0;u<r.length;++u){let i=r[u];if(i===!0)n.push(d);else if(i===!1)n.push(_);else{let s=e.createValidator(i,"oneOf",u);n.push(s)}}if(n.length===0)return;let o=e.createErrorHandler(r,"oneOf");return function(i,s,f,l){let c=!1;for(let a=0;a<n.length;++a){let p=n[a];if(p(i,s,f,l)===!0){if(c===!0)return o(i,s);c=!0}}return c}}function Rt(e,t){let r=$(t.not);if(r==null)return;if(r===!0)return _;if(r===!1)return d;let n=e.createValidator(r,"not"),o=e.createErrorHandler(r,"not");return function(i,s,f,l){return i===void 0||n(i,s,f,l)===!1?!0:o(i,s)}}function $e(e,t){let r=[];function n(o){y(o)&&r.push(o)}if(n($t(e,t)),n(Ot(e,t)),n(wt(e,t)),n(Rt(e,t)),r.length!==0){if(r.length===1)return r[0];if(r.length===2){let o=r[0],u=r[1];return function(s,f,l,c){return o(s,f,l,c)&&u(s,f,l,c)}}else return function(u,i,s,f){for(let l=0;l<r.length;++l){let c=r[l];if(c(u,i,s,f)===!1)return!1}return!0}}}function Oe(e,t){let r=e.createValidator(t.if,"if"),n=e.createValidator(t.then,"then"),o=e.createValidator(t.else,"else");if(r==null||n==null&&o==null)return;let u=le(n),i=le(o);return function(f,l){return r(f)?u(f,l):i(f,l)}}function Bt(e,t){let r=B(t.required);if(r!==!0)return;let n=e.createErrorHandler(r,"required");return function(u,i){return u===void 0?n(u,i):!0}}function bt(e,t){let r=Ee(t.type);if(r==null)return;let n=ce(r);if(!n)throw new Error(`The explicit schema type '${r}' is unknown. (TODO: add trace)`);let o=e.createErrorHandler(r,"type");return function(i,s){return n(i)?!0:o(i,s)}}function Pt(e,t){let r=ue(t.type);if(r==null)return;if(r.length===0)throw new Error("The schema type property can not be an empty array.");let n=[],o=[];for(let i=0;i<r.length;++i){let s=r[i],f=ce(s);if(!f)throw new Error(`The explicit schema type '${s}' of '${n} is unknown. (TODO: add trace)`);n.push(f),o.push(s)}let u=e.createErrorHandler(o,"type");if(n.length===1){let i=n[0];return function(f,l){return i(f)?!0:u(f,l)}}else if(n.length===2){let i=n[0],s=n[1];return function(l,c){return i(l)||s(l)?!0:u(l,c)}}else if(n.length===3){let i=n[0],s=n[1],f=n[2];return function(c,a){return i(c)||s(c)||f(c)?!0:u(c,a)}}else return function(s,f){for(let l=0;l<n.length;++l)if(n[l](s)===!0)return!0;return u(s,f)}}function zt(e,t){let r=bt(e,t)||Pt(e,t),n=B(t.nullable);if(r==null){if(n!==!1)return;let o=e.createErrorHandler(n,"nullable");return function(i,s){return i===void 0||i!==null||o(i,s)}}return n===!0?function(u,i){return u==null||r(u,i)}:function(u,i){return u===void 0||r(u,i)}}function we(e,t){if(t===!0)return d;if(t===!1)return _;if(!Y(t))throw new Error("JSON Schema MUST be a boolean or Object Type");if(Object.keys(t).length===0)return d;let r=[];if(v(r,Bt(e,t)),v(r,zt(e,t)),v(r,Ae(e,t)),v(r,Ie(e,t)),v(r,_e(e,t)),v(r,Se(e,t)),v(r,Te(e,t)),v(r,Ne(e,t)),v(r,De(e,t)),v(r,$e(e,t)),v(r,Oe(e,t)),r.length===0)return d;if(r.length===1)return r[0];if(r.length===2){let n=r[0],o=r[1];return function(i,s,f){return n(i,s,f)&&o(i,s,f)}}if(r.length===3){let n=r[0],o=r[1],u=r[2];return function(s,f,l){return n(s,f,l)&&o(s,f,l)&&u(s,f,l)}}return function(o,u,i){for(let s=0;s<r.length;++s){let f=r[s];if(f(o,u,i)===!1)return!1}return!0}}var on=String.fromCharCode;var Ht=/^[A-Za-z]+[\w\-\:\.]{0,30}$/;function Re(e){return Ht.test(e)}function ae(e){return encodeURIComponent(e.replace("~","~0").replace("/","~1"))}function U(e,t,r){return r==null?`${e}/${ae(t)}`:`${e}/${ae(t)}/${ae(r)}`}function Gt(e){return decodeURIComponent(e.replace("~0","~").replace("~1","/"))}function Lt(e){return e.split("/").map(Gt).splice(1)}var P=class{constructor(t=!0,r=!0,n=!0){this.anchorsGlobal=t,this.anchorsAllowed=r,this.skipErrors=n}},k=class{constructor(t,r,n,o){this.id=t,this.search=r,this.leftUri=n,this.fragment=o}};function O(e,t,r=new P){let n=!x(e)||T(e)?new URL(t):!x(t)||T(t)?new URL(e):new URL(e,t),[o,u]=n.href.split("#"),[i,s]=o.split("?");if(!T(u)){if(r.anchorsAllowed==!0&&Re(u))return r.anchorsGlobal==!0?new k(`#${u}`,s,`${i}#`,u):new k(`${i}#${u}`,s,`${i}#`,u);if(u.startsWith("/"))return new k(`${i}#${u}`,s,`${i}#`,u)}return new k(`${i}#`,s,`${i}#`,null)}var Vt=["items","prefixItems","additionalItems","contains","unevaluatedItems","additionalProperties","propertyNames","unevaluatedProperties","not","oneOf","anyOf","allOf","if","then","else"],kt=["properties","patternProperties","dependencies","dependentSchemas","dependentRequired","definitions","$defs","components"];function de(e,t,r,n=new P){if(!E(r))return e.set(t,r),null;let{id:o}=O(r.$id,t,n);if(!x(r.$id)||T(r.$id)){if(e.has(o))throw new Error(`Schema '${o}' already exists`);e.set(o,r)}t=o;let u=[{obj:r,base:o,path:"#"}];for(;u.length>0;){let{obj:i,base:s,path:f}=u.shift();if(x(i.$id)&&!T(i.$id)){let{id:l}=O(i.$id,s,n);if(!e.has(l))e.set(l,i);else if(e.get(l)==null)e.set(l,i);else throw new Error(`Schema '${l}' for path '${f}' in '${s}' already exists`);t=l}else t=s;if(x(i.$anchor)&&!T(i.$anchor)){let{id:l}=O(`#${i.$anchor}`,t,n);if(!e.has(l))e.set(l,i);else if(e.get(l)==null)e.set(l,i);else throw new Error(`Schema '${l}' for path '${f}' in '${s}' already exists`);l.startsWith("#")||(t=l)}if(x(i.$ref)&&!T(i.$ref)){let{id:l}=O(i.$ref,t,n);e.has(l)||e.set(l,null);continue}for(let[l,c]of Object.entries(i))if(E(c)){if(Vt.includes(l))if(Array.isArray(c)){let a=c.length;for(let p=0;p<a;p++){let m=c[p],F=U(f,l,p);if(!Q(m)){if(!E(m)){if(n.skipErrors===!0)continue;throw new Error(`${F} is not a schema`)}u.push({obj:m,base:t,path:F})}}}else{let a=U(f,l);u.push({obj:c,base:t,path:a})}else if(kt.includes(l)){if(Array.isArray(c))continue;for(let[a,p]of Object.entries(c)){let m=U(f,l,a);if(!Q(p)){if(!E(p)){if(n.skipErrors===!0)continue;throw new Error(`${m} is not a schema`)}u.push({obj:p,base:t,path:m})}}}}}return o}function Be(e,t,r,n=new P){let{id:o,leftUri:u,fragment:i}=O(t,r,n);if(!e.has(u))throw new Error(`The root of reference: '$ref': '${o}', is not found in init-cache`);let s=e.get(u);if(T(i))return{id:o,schema:s};let f=Lt(i),l="";for(let c of f){if(l=l+"/"+c,!N(s[c]))throw new Error(`The '${l}' is not is not a valid schema in '${u}'`);s=s[c]}return{id:o,schema:s}}function be(e,t=new P){for(let[r,n]of e.entries()){if(n!=null)continue;let{schema:o}=Be(e,r,null,t);if(o==null)throw new Error(`Can not resolve schema for '${r}'`);e.set(r,o)}}var X=class extends P{constructor(t="https://github.com/jklarenbeek/jaren",r=!0,n,o,u){super(n,o,u),this.origin=t,this.mergeSchemas=r}};function Pe(e,t,r,n=new X){if(!E(r))return{id:t,schema:r};if(!Z(r))return{id:t,schema:r};let o=[{item:r,base:t}],u=new Set,i={};for(;o.length>0;){let{item:s,base:f}=o.shift();if(!E(s))return{id:f,schema:s};if(i=n.mergeSchemas==!0?{...s,...i}:{...s},!Z(s))return{id:f,schema:i};delete i.$ref;let l=s.$ref,{id:c,schema:a}=Be(e,l,f,n);if(u.has(c))return{id:f,schema:i};u.add(c),o.push({item:a,base:c})}throw new Error(`The json schema '${t}' can not be resolved!`)}var Ut=typeof window<"u",Xt=Ut?window.performance:{now:function(t){let r=process;if(!t)return r.hrtime();let n=r.hrtime(t);return Math.round(n[0]*1e3+n[1]/1e6)}},re=class{constructor(t,r,n,o,u,i){this.timeStamp=Xt.now(),this.object=t,this.key=r,this.expected=n,this.dataKey=o,this.value=u,this.rest=i}},ne=class{constructor(t=!0){this.skipErrors=t}},pe=class e{static _createObject(t,r,n){let o=t._objects;if(o.has(r)&&o.get(r)!=null)throw new Error(`Object at '${r}' is already created`);let u=new me(t,r,n);return o.set(r,u),u}constructor(t,r,n,o,u=new ne,i=new X){this._options=u,this._traverse=i,this._schemas=t,this._rootOrigin=n,this._formats=o,this._objects=new Map,this._errors=[],this._firstSchema=e._createObject(this,n,r)}get options(){return this._options}get formats(){return this._formats}createObject(t,r){return e._createObject(this,t,r)}unresolvedObject(t){let r=this._objects;return r.has(t)?r.get(t):(r.set(t,null),null)}resolveObject(t,r,n){let o=this._objects;if(o.has(t)&&o.get(t)!=null)return o.get(t);let u=this._schemas,i=this._traverse,{id:s,schema:f}=Pe(u,r,n,i);return e._createObject(this,s,f)}addError(t){return this._errors.push(t),!1}validate(t){return this._errors.length=0,this._firstSchema.validate(t,t)}},me=class e{static _compileValidator(t,r,n){if(!Z(n))return we(t,n);let o=t._root,{id:u}=O(n.$ref,r,o.options),i=o.unresolvedObject(u);if(i!=null){let s=i.validate;return t._validator=function(l,c){return s(l,c)},t._validator}return function(f,l){let a=o.resolveObject(u,r,n).validate;return t._validator=function(m,F){return a(m,F)},t._validator(f,l)}}constructor(t,r,n){this._root=t,this._path=r,this._members=[],this._schema=n,this._validator=null,this._validator=e._compileValidator(this,r,n)}get path(){return this._path}get errors(){return this._root.errors}get validate(){return this._validator}get options(){return this._root.options}get formats(){return this._root.formats}createErrorHandler(t,r){let n=this;return Array.isArray(r)?function(u,i,...s){let f=new re(n,r,t,u,i,s);return n._root.addError(f)}:function(u,...i){let s=new re(n,r,t,null,u,i);return n._root.addError(s)}}createValidator(t,r,n){if(!N(t))return;let o=E(t)?O(t.$id,this._path).id:this._path,u=this._root,i=n==null?U(o,r):U(o,r,String(n)),s=u.createObject(i,t);return this._members.push(s),s._validator}},Fe=class{constructor(t={},r=[],n=new ne,o=new X){this.formats=t,this.schemas=r,this.validation=n,this.traverse=o}};function vn(e,t=new Fe){let r=new Map,n=de(r,t.traverse.origin,e,t.traverse);t.schemas.forEach(u=>de(r,n,u,t.traverse)),be(r,t.traverse);let o=new pe(r,e,n,t.formats,t.validation,t.traverse);return{validate:u=>o.validate(u)}}export{X as TraverseOptions,Fe as ValidatorOptions,vn as compileSchemaValidator,Ve as registerFormatCompilers};
|
|
1
|
+
function y(e){return typeof e=="function"}function Le(e){switch(e){case"string":case"number":case"boolean":case"integer":case"bigint":return!0;default:return!1}}function W(e){return e!=null&&Le(typeof e)}function x(e){return typeof e=="string"}function G(e){return e===!0||e===!1}function Y(e){return e!=null&&typeof e=="number"}function ve(e){return Number.isInteger(e)}function q(e){return typeof e=="bigint"}function ye(e,t=void 0){return x(e)?e:t}function Q(e,t=void 0){return q(e)?e:t}function se(e){return e===null}function L(e,t){return e!=null&&e.constructor===t}function E(e){return L(e,Object)}function Ce(e){return L(e,Map)}function j(e){return e!=null&&typeof e=="object"&&e.constructor!==Array}function N(e){return L(e,Array)}function Ae(e){return L(e,Set)}var le=Object.getPrototypeOf(Uint8Array);function Te(e){if(e==null)return!1;let t=e.__proto__.__proto__;return t!=null&&t.constructor===le}function C(e,t=void 0){return E(e)?e:t}function U(e,t,r){let n=e(t),o=r===!0?n:e(r);return o===void 0?[n,void 0]:[void 0,o]}function Ie(e){return e!=null&&(e instanceof Array||e instanceof Set||e instanceof le)}function ce(e,t=void 0){return e==null?t:e.constructor===Array?e.filter((r,n,o)=>n===o.indexOf(r)):e.constructor===Set?Array.from(e):t}function _e(e){let t=ce(e);return t!=null&&t.length==e.length}function fe(e,t){return t.every(r=>e.includes(r))}function ee(e){return e===!0||e===!1||e==="true"||e==="false"}function b(e,t=void 0){return ee(e)||e==="true"||e==="false"?e:t}function Ue(e){return typeof e!="bigint"&&!Number.isNaN(Number(e))}function ke(e){return Number.isInteger(Number(e))}function te(e,t=void 0){return Ue(e)?Number(e):t}function g(e,t=void 0){return ke(e)?Number(e):t}function d(e,t=void 0,r=void 0,n=void 0){return e===!0||!0}function _(e,t=void 0,r=void 0,n=void 0){return!1}function ae(e,t=d){return y(e)?e:y(t)?t:d}function v(e=[],t){if(t==null)return e;if(y(t))e.push(t);else if(t.constructor===Array)for(let r=0;r<t.length;++r)y(t[r])&&e.push(t[r]);return e}function A(e){return e==null||/^\s*$/.test(e)}function de(e){return L(e,RegExp)}function re(e){if(e!=null){if(de(e))return e;if(x(e))if(e[0]==="/"){let t=e.lastIndexOf("/");if(t>=0){let r=e.substring(1,t),n=e.substring(t+1);return new RegExp(r,n)}}else return new RegExp(e);throw new Error(`Unknown Regular Expression Pattern Type: ${e}`)}}function M(e){return G(e)||E(e)}function O(e,t=void 0){return M(e)?e:t}function T(e,t=1,r=void 0){return N(e)&&e.length>=t&&e||r}function ne(e,t){let r=e.type;return r==null?!1:r===t?!0:r.constructor===Array?r.includes(t):r.constructor===Set?r.has(t):!1}function Z(e){return E(e)&&x(e.$ref)&&!A(e.$ref)}function pe(e,t=!1){switch(e){case"null":return se;case"boolean":return G;case"integer":return ve;case"bigint":return q;case"number":return Y;case"string":return x;case"object":return t?E:j;case"array":return t?Ie:N;case"set":return Ae;case"map":return Ce;case"tuple":return N;case"regex":return de;default:break}if(e===null)return se;if(typeof e=="function")throw new Error("This is interesting!")}var D=class e{static undefThat(){return new e}constructor(t=!1,r=0){this.match=t,this.errors=Number(r)}addValid(t=!0){return t===!1&&this.errors++,this}addMatch(t=!0){return this.match=!0,t===!1&&this.errors++,this}addResult(t=new e){return this.match=this.match||t.match,this.errors+=t.errors,this}isValid(){return this.errors===0}};function me(e,t,r){return e[t]==null&&y(r)?(e[t]=r,!0):!1}function Fe(e,t){let r=Object.keys(t);for(let n=0;n<r.length;++n){let o=r[n],u=t[o];me(e,o,u)}return e}function Xe(e,t){if(x(t))return e[t]}function De(e,t){if(!x(t.format))return;let r=Xe(e.formats,t.format);if(r)return r(e,t);throw new Error(`Unknown format ${t.format}`)}function P(e,t){if(e===t)return!0;if(e==null||t==null||G(e)||G(t))return!1;if(y(e))return e.toString()===t.toString();if(W(e)||e.constructor!==t.constructor)return!1;if(e.constructor===Object){let o=Object.keys(e),u=Object.keys(t);if(o.length!==u.length)return!1;for(let i=0;i<o.length;++i){let s=o[i];if(!P(e[s],t[s]))return!1}return!0}if(e.constructor===Map){if(e.size!==t.size)return!1;for(let[o,u]of e)if(t.has(o)===!1||!P(u,t.get(o)))return!1;return!0}if(e.constructor===Array){if(e.length!==t.length)return!1;for(let o=0;o<e.length;++o)if(!P(e[o],t[o]))return!1;return!0}if(e.constructor===Set){if(e.size!==t.size)return!1;for(let o of e)if(t.has(o)===!1)return!1;return!0}if(e.constructor===RegExp)return e.toString()===t.toString();if(Te(e)){if(e.length!==t.length)return!1;for(let o=0;o<e.length;++o)if(e[o]!==t[o])return!1;return!0}let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;if(r.length===0)return!0;for(let o=0;o<r.length;++o){let u=r[o];if(!P(e[u],t[u]))return!1}return!0}function xe(e,...t){for(let r of t)for(let n of r)e.set(...n)}function qe(e,t){let r=t.const;if(r===void 0)return;let n=e.createErrorHandler(r,"const");return r===null||W(r)?function(u,i){return r===u||n(u,i)}:function(u,i){return P(r,u)||n(u,i)}}function Ze(e,t){let r=T(t.enum,1);if(r==null)return;let n=!1;for(let u=0;u<r.length;++u){let i=r[u];if(i!=null&&typeof i=="object"){n=!0;break}}let o=e.createErrorHandler(r,"enum");return n===!1?function(i,s){return i===void 0||r.includes(i)?!0:o(i,s)}:function(i,s){if(i===void 0)return!0;if(i===null||typeof i!="object")return r.includes(i)?!0:o(i,s);for(let c=0;c<r.length;++c)if(P(r[c],i)===!0)return!0;return o(i,s)}}function Me(e,t){return[qe(e,t),Ze(e,t)]}function Je(e,t){let[r,n]=U(te,t.maximum,t.exclusiveMaximum);if(n!=null){let o=e.createErrorHandler(n,"exclusiveMaximum");return function(i,s){return i<n||o(i,s)}}else if(r!=null){let o=e.createErrorHandler(r,"maximum");return function(i,s){return i<=r||o(i,s)}}}function Ke(e,t){let[r,n]=U(te,t.minimum,t.exclusiveMinimum);if(n!=null){let o=e.createErrorHandler(n,"exclusiveMinimum");return function(i,s){return i>n||o(i,s)}}else if(r!=null){let o=e.createErrorHandler(r,"minimum");return function(i,s){return i>=r||o(i,s)}}}function We(e,t){let r=te(t.multipleOf);if(r==null)return;let n=e.createErrorHandler(r,"multipleOf");return function(u,i){return u%r===0||n(u,i)}}function Ye(e,t){let r=Je(e,t),n=Ke(e,t),o=We(e,t);if(r==null&&n==null&&o==null)return;let u=r||d,i=n||d,s=o||d;return function(l,f){return u(l,f)&&i(l,f)&&s(l,f)}}function Se(e,t){let r=Ye(e,t);if(r!=null)return function(o,u){return Y(o)?r(o,u):!0}}function Qe(e,t){let[r,n]=U(Q,t.maximum,t.exclusiveMaximum);if(n!=null){let o=e.createErrorHandler(n,"exclusiveMaximum");return function(i,s){return i<n||o(i,s)}}else if(r!=null){let o=e.createErrorHandler(r,"maximum");return function(i,s){return i<=r||o(i,s)}}}function je(e,t){let[r,n]=U(Q,t.minimum,t.exclusiveMinimum);if(n!=null){let o=e.createErrorHandler(n,"exclusiveMinimum");return function(i,s){return i>n||o(i,s)}}else if(r!=null){let o=e.createErrorHandler(r,"minimum");return function(i,s){return i>=r||o(i,s)}}}function et(e,t){let r=Q(t.multipleOf);if(r==null)return;let n=e.createErrorHandler(r,"multipleOf");return function(u,i){return u%r===BigInt(0)||n(u,i)}}function we(e,t){let r=Qe(e,t),n=je(e,t),o=et(e,t);if(r==null&&n==null&&o==null)return;let u=r||d,i=n||d,s=o||d;return function(l,f){return q(l)?u(l,f)&&i(l,f)&&s(l,f):!0}}function tt(e,t){let r=g(t.minLength)||0;if(r<1)return;let n=e.createErrorHandler(r,"minLength");return function(u=0,i){return u>=r||n(u,i)}}function rt(e,t){let r=g(t.maxLength)||-1;if(r<0)return;let n=e.createErrorHandler(r,"maxlength");return function(u=0,i){return u<=r||n(u,i)}}function nt(e,t){let r=re(t.pattern);if(r==null)return;let n=e.createErrorHandler(r,"pattern");return function(u="",i){return r.test(u)||n(u,i)}}function it(e,t){let r=tt(e,t),n=rt(e,t),o=nt(e,t);if((r||n||o)==null)return;let u=r||d,i=n||d,s=o||d;return function(l,f){let a=l.length;return u(a,f)&&i(a,f)&&s(l,f)}}function $e(e,t){let r=it(e,t);if(r!=null)return function(o,u){return x(o)&&r(o,u)}}function ot(e,t){let r=g(t.minProperties)||0;if(r<1)return;let n=e.createErrorHandler(r,"minProperties");return function(u=0,i=""){return u>=r||n(u,i)}}function ut(e,t){let r=g(t.maxProperties)||-1;if(r<0)return;let n=g(t.minProperties)||0;if(r<n)throw new Error("maxProperties must be greater then minProperties");let o=e.createErrorHandler(r,"maxProperties");return function(i=0,s=""){return i<=r||o(i,s)}}function st(e,t){let r=T(t.required,1);if(r==null)return;let n=r.length,o=e.createErrorHandler(r,"requiredProperties");return function(i=[],s=""){let c=!0;for(let l=0;l<n;++l){let f=r[l];i.indexOf(f)===-1&&(c&&=o(f,s))}return c}}function lt(e,t){let r=O(t.propertyNames);if(r!=null)return e.createValidator(r,"propertyNames")}function ct(e,t){let r=C(t.properties);if(r==null)return;let n=Object.keys(r);if(n.length===0)return;let o={};for(let u=0;u<n.length;u++){let i=n[u],s=r[i],c=e.createValidator(s,"properties",i);c!=null&&(o[i]=c)}if(Object.keys(o).length!==0)return function(i,s,c,l){let f=new D,a=o[l];return a==null?f:f.addMatch(a(i[l],s,c,l))}}function ft(e,t){let r=C(t.patternProperties);if(r==null)return;let n=Object.keys(r);if(n.length===0)return;let o={};for(let c=0;c<n.length;++c){let l=n[c],f=re(l);f!=null&&(o[l]=f)}let u=Object.keys(o);if(u.length===0)return;let i={};for(let c=0;c<u.length;++c){let l=u[c],f=r[l],a=e.createValidator(f,"patternProperties",l);a!=null&&(i[l]=a)}let s=Object.keys(i);if(s.length!==0)return function(l,f,a,p){let m=new D;for(let F=0;F<s.length;++F){let h=s[F];if(o[h].test(p)){let I=i[h];m.addMatch(I(l[p],f,a,p))}}return m}}function at(e,t){let r=O(t.additionalProperties);if(r==null)return;if(r===!1){let o=e.createErrorHandler(!1,"additionalProperties");return function(i,s,c,l){return o(l,i)}}let n=e.createValidator(r,"additionalProperties");return function(u,i,s,c){return n(u[c],i,s,c)}}function dt(e,t){let r=O(t.unevaluatedProperties);if(r!=null){if(r===!1){let n=e.createErrorHandler(!1,"unevaluatedProperties");return(o,u,i,s)=>n(s,o)}return e.createValidator(r,"unevaluatedProperties")}}function pt(e,t){let r=C(t.dependentRequired);if(r==null||Object.keys(r).length===0)return;let n=e.createErrorHandler(!1,"dependentRequired");return function(u,i,s,c){if(c in r){let l=r[c];return fe(Object.keys(u),l)||n(u,c,i)}return!0}}function mt(e,t){let r=C(t.dependentSchemas);if(r==null)return;let n={};for(let o in r)if(o in r){let u=r[o];if(!M(u)&&!e.options.skipErrors)throw new Error(`Expected Schema at '${e.path}/${o}'`);let i=e.createValidator(u,"dependentSchemas",o);if(i!=null)n[o]=i;else throw new Error(`Expected Validator at '${e.path}/${o}'`)}if(Object.keys(n).length!==0)return function(u,i,s,c){if(c in n){let l=n[c];return l(u,i,s,c)}return!0}}function Ft(e,t){let r=C(t.dependencies);if(r==null)return;let n={};for(let o in r)if(o in r){let u=r[o];if(M(u)){let i=e.createValidator(u,"dependencies",o);if(i!=null)n[o]=i;else throw new Error(`Expected Validator at '${e.path}/${o}'`)}else if(N(u)){let i=e.createErrorHandler(u,["dependencies",o]);n[o]=function(c,l,f,a){return fe(Object.keys(c),u)||i(c,a,l)}}else if(!e.options.skipErrors)throw new Error(`Expected Schema or Array at '${e.path}/${o}'`)}if(Object.keys(n).length!==0)return function(u,i,s,c){if(c in n){let l=n[c];return l(u,i,s,c)}return!0}}function xt(e,t){let r=ot(e,t),n=ut(e,t),o=st(e,t);if((r||n||o)==null)return;let u=r||d,i=n||d,s=o||d;return function(l,f,a,p){let m=p||Object.keys(l),F=m.length;return u(F,f)&&i(F,f)&&s(m,f)}}function Et(e,t){let r=lt(e,t),n=ct(e,t),o=ft(e,t),u=at(e,t),i=mt(e,t),s=Ft(e,t),c=pt(e,t),l=dt(e,t);if((o||r||n||c||i||s||u||l)==null)return;let f=r||d,a=n||D.undefThat,p=o||D.undefThat,m=c||d,F=i||d,h=s||d;return function(I,R,B,$){let H=new D;return H.addValid(f($)).addResult(a(I,R,B,$)).addResult(p(I,R,B,$)).addValid(m(I,R,B,$)).addValid(F(I,R,B,$)).addValid(h(I,R,B,$)),u?H.match?H:H.addMatch(u(I,R,B,$)):(l&&H.addValid(l(I,R,B,$)),H)}}function ht(e,t){let r=Et(e,t);if(r!=null)return function(o,u,i,s){let c=new D;for(let l=0;l<s.length;++l){let f=s[l];c.addResult(r(o,u,i,f))}return c.isValid()}}function Ne(e,t){if(ne(t,"map"))return;let r=xt(e,t),n=ht(e,t);if((r||n)==null)return;let o=r||d,u=n||d;return function(s,c,l){if(E(s)){let f=Object.keys(s);return o(s,c,l,f)&&u(s,c,l,f)}return!0}}function gt(e,t){let r=g(t.minItems)||0;if(r<1)return;let n=e.createErrorHandler(r,"minItems");return function(u=0,i=""){return u>=r||n(u,i)}}function vt(e,t){let r=g(t.maxItems)||-1;if(r<0)return;let n=g(t.minItems)||0;if(r<n)throw new Error("maxItems must be greater then minItems");let o=e.createErrorHandler(r,"maxItems");return function(i=0,s=""){return i<=r||o(i,s)}}function yt(e,t,r,n){let o=b(t[r]);if(o!==!0)return;let u=e.createErrorHandler(o,r);return function(s,c){return n(s)||u(s,c)}}var Ct=(e,t)=>yt(e,t,"uniqueItems",_e);function Oe(e,t,r,n){let o=T(t[r],1);if(o==null)return;let u=o.map((l,f)=>l===!0?d:l===!1?_:e.createValidator(l,r,f)),i=u.length,s=O(t[n],!0);if(typeof s=="boolean")return function(f,a,p,m){return m>=i?s:u[m](f,a,p)};let c=e.createValidator(s,n);return function(f,a,p,m){return m<i?u[m](f,a,p):c(f,a,p)}}function At(e,t){return Oe(e,t,"prefixItems","items")}function Tt(e,t){return Oe(e,t,"items","additionalItems")}function It(e,t){let r=C(t.contains);if(r!=null)return e.createValidator(r,"contains")}function _t(e,t){if(C(t.contains)==null)return;let n=g(t.minContains),o=g(t.maxContains),u=e.createErrorHandler(0,"contains"),i=e.createErrorHandler(n,"minContains"),s=e.createErrorHandler(o,"maxContains");return n==null&&o==null?function(l,f){return l>0||u(l,f)}:o==null?function(l,f){return l>=(n||0)||i(l,f)}:n==null?function(l,f){return l===0?u(l,f):l<=o||s(l,f)}:function(l,f){return(l>=n||i(l,f))&&(l<=o||s(l,f))}}function Dt(e,t){let r=b(t.contains);if(r===!0){let n=e.createErrorHandler(!0,"contains");return function(u,i){return u.length>0||n(u,i)}}if(r===!1){let n=e.createErrorHandler(!1,"contains");return function(u,i){return n(u,i)}}}function Mt(e,t){let r=b(t.items);if(r===!0)return d;if(r!==!1)return;let n=e.createErrorHandler(!1,"items");return function(u,i){return u.length===0||n(u,i)}}function St(e,t){let r=C(t.items);if(r!=null)return e.createValidator(r,"items")}function wt(e,t){let r=C(t.unevaluatedItems);if(r!=null)return e.createValidator(r,"unevaluatedItems")}function $t(e,t){let r=gt(e,t),n=vt(e,t),o=Ct(e,t);if((r||n||o)==null)return;let u=r||d,i=n||d,s=o||d;return function(l,f){let a=l.length;return u(a,f)&&i(a,f)&&s(l,f)}}function Nt(e,t){let r=At(e,t)||Tt(e,t)||St(e,t),n=It(e,t),o=wt(e,t);if((r||n||o)==null)return;let u=_t(e,t)||d,i=g(t.maxItems)||0,s=c=>i>0?Math.min(i,c):c;if(n==null){let c=e.createErrorHandler(0,"items");return function(f,a,p){let m=s(f.length),F=0;for(let h=0;h<m;++h){let z=f[h];r(z,a,p,h)===!1&&F++}return F===0||c(F,a)}}return r==null?function(l,f){let a=s(l.length),p=0;for(let m=0;m<a;++m){let F=l[m];n(F,f)===!0&&p++}return u(p,f)}:function(l,f,a){let p=s(l.length),m=0,F=0;for(let h=0;h<p;++h){let z=l[h];r(z,f,a,h)!==!0&&m++,n(z,f,a)===!0&&F++}return m===0&&u(F,f)}}function Re(e,t){if(ne(t,"set"))return;let r=$t(e,t),n=Mt(e,t),o=Dt(e,t),u=Nt(e,t);if((r||n||o||u)===void 0)return;let i=r||d,s=n||d,c=o||d,l=u||d;return function(a,p,m){return N(a)?i(a,p)&&s(a,p,m)&&c(a,p,m)&&l(a,p,m):!0}}function Ot(e,t){let r=T(t.allOf,1);if(r==null)return;let n=[];for(let u=0;u<r.length;++u){let i=r[u];if(i===!0)n.push(d);else if(i===!1)n.push(_);else{let s=e.createValidator(i,"allOf",u);n.push(s)}}if(n.length===0)return;let o=e.createErrorHandler(r,"allOf");return function(i,s,c,l){if(i!==void 0)for(let f=0;f<n.length;++f){let a=n[f];if(a(i,s,c,l)===!1)return o(i,s)}return!0}}function Rt(e,t){let r=T(t.anyOf,1);if(r==null)return;let n=[];for(let u=0;u<r.length;++u){let i=r[u];if(i===!0)n.push(d);else if(i===!1)n.push(_);else{let s=e.createValidator(i,"anyOf",u);n.push(s)}}if(n.length===0)return;let o=e.createErrorHandler(r,"anyOf");return function(i,s,c,l){if(i!==void 0){for(let f=0;f<n.length;++f){let a=n[f];if(a(i,s,c,l)===!0)return!0}return o(i,s)}return!0}}function Bt(e,t){let r=T(t.oneOf,1);if(r==null)return;let n=[];for(let u=0;u<r.length;++u){let i=r[u];if(i===!0)n.push(d);else if(i===!1)n.push(_);else{let s=e.createValidator(i,"oneOf",u);n.push(s)}}if(n.length===0)return;let o=e.createErrorHandler(r,"oneOf");return function(i,s,c,l){let f=!1;for(let a=0;a<n.length;++a){let p=n[a];if(p(i,s,c,l)===!0){if(f===!0)return o(i,s);f=!0}}return f}}function bt(e,t){let r=O(t.not);if(r==null)return;if(r===!0)return _;if(r===!1)return d;let n=e.createValidator(r,"not"),o=e.createErrorHandler(r,"not");return function(i,s,c,l){return i===void 0||n(i,s,c,l)===!1?!0:o(i,s)}}function Be(e,t){let r=[];function n(o){y(o)&&r.push(o)}if(n(Ot(e,t)),n(Rt(e,t)),n(Bt(e,t)),n(bt(e,t)),r.length!==0){if(r.length===1)return r[0];if(r.length===2){let o=r[0],u=r[1];return function(s,c,l,f){return o(s,c,l,f)&&u(s,c,l,f)}}else return function(u,i,s,c){for(let l=0;l<r.length;++l){let f=r[l];if(f(u,i,s,c)===!1)return!1}return!0}}}function be(e,t){let r=e.createValidator(t.if,"if"),n=e.createValidator(t.then,"then"),o=e.createValidator(t.else,"else");if(r==null||n==null&&o==null)return;let u=ae(n),i=ae(o);return function(c,l){return r(c)?u(c,l):i(c,l)}}function Pt(e,t){let r=b(t.required);if(r!==!0)return;let n=e.createErrorHandler(r,"required");return function(u,i){return u===void 0?n(u,i):!0}}function Vt(e,t){let r=ye(t.type);if(r==null)return;let n=pe(r);if(!n)throw new Error(`The explicit schema type '${r}' is unknown. (TODO: add trace)`);let o=e.createErrorHandler(r,"type");return function(i,s){return n(i)?!0:o(i,s)}}function zt(e,t){let r=ce(t.type);if(r==null)return;if(r.length===0)throw new Error("The schema type property can not be an empty array.");let n=[],o=[];for(let i=0;i<r.length;++i){let s=r[i],c=pe(s);if(!c)throw new Error(`The explicit schema type '${s}' of '${n} is unknown. (TODO: add trace)`);n.push(c),o.push(s)}let u=e.createErrorHandler(o,"type");if(n.length===1){let i=n[0];return function(c,l){return i(c)?!0:u(c,l)}}else if(n.length===2){let i=n[0],s=n[1];return function(l,f){return i(l)||s(l)?!0:u(l,f)}}else if(n.length===3){let i=n[0],s=n[1],c=n[2];return function(f,a){return i(f)||s(f)||c(f)?!0:u(f,a)}}else return function(s,c){for(let l=0;l<n.length;++l)if(n[l](s)===!0)return!0;return u(s,c)}}function Ht(e,t){let r=Vt(e,t)||zt(e,t),n=b(t.nullable);if(r==null){if(n!==!1)return;let o=e.createErrorHandler(n,"nullable");return function(i,s){return i===void 0||i!==null||o(i,s)}}return n===!0?function(u,i){return u==null||r(u,i)}:function(u,i){return u===void 0||r(u,i)}}function Pe(e,t){if(t===!0)return d;if(t===!1)return _;if(!j(t))throw new Error("JSON Schema MUST be a boolean or Object Type");if(Object.keys(t).length===0)return d;let r=[];if(v(r,Pt(e,t)),v(r,Ht(e,t)),v(r,Me(e,t)),v(r,Se(e,t)),v(r,we(e,t)),v(r,$e(e,t)),v(r,De(e,t)),v(r,Re(e,t)),v(r,Ne(e,t)),v(r,Be(e,t)),v(r,be(e,t)),r.length===0)return d;if(r.length===1)return r[0];if(r.length===2){let n=r[0],o=r[1];return function(i,s,c){return n(i,s,c)&&o(i,s,c)}}if(r.length===3){let n=r[0],o=r[1],u=r[2];return function(s,c,l){return n(s,c,l)&&o(s,c,l)&&u(s,c,l)}}return function(o,u,i){for(let s=0;s<r.length;++s){let c=r[s];if(c(o,u,i)===!1)return!1}return!0}}var ln=String.fromCharCode;var Gt=/^[A-Za-z]+[\w\-\:\.]{0,30}$/;function Ve(e){return Gt.test(e)}function Ee(e){return encodeURIComponent(e.replace("~","~0").replace("/","~1"))}function X(e,t,r){return r==null?`${e}/${Ee(t)}`:`${e}/${Ee(t)}/${Ee(r)}`}function Lt(e){return decodeURIComponent(e.replace("~0","~").replace("~1","/"))}function Ut(e){return e.split("/").map(Lt).splice(1)}var V=class{constructor(t=!0,r=!0,n=!0){this.anchorsGlobal=t,this.anchorsAllowed=r,this.skipErrors=n}},k=class{constructor(t,r,n,o){this.id=t,this.search=r,this.leftUri=n,this.fragment=o}};function S(e,t,r=new V){let n=!x(e)||A(e)?new URL(t):!x(t)||A(t)?new URL(e):new URL(e,t),[o,u]=n.href.split("#"),[i,s]=o.split("?");if(!A(u)){if(r.anchorsAllowed==!0&&Ve(u))return r.anchorsGlobal==!0?new k(`#${u}`,s,`${i}#`,u):new k(`${i}#${u}`,s,`${i}#`,u);if(u.startsWith("/"))return new k(`${i}#${u}`,s,`${i}#`,u)}return new k(`${i}#`,s,`${i}#`,null)}var kt=["items","prefixItems","additionalItems","contains","unevaluatedItems","additionalProperties","propertyNames","unevaluatedProperties","not","oneOf","anyOf","allOf","if","then","else"],Xt=["properties","patternProperties","dependencies","dependentSchemas","dependentRequired","definitions","$defs","components"];function J(e,t,r,n=new V){if(!E(r)){let{id:i}=S(t,void 0,n);return e.set(i,r),i}let{id:o}=S(r.$id,t,n);if(!x(r.$id)||A(r.$id)){if(e.has(o))throw new Error(`Schema '${o}' already exists`);e.set(o,r)}t=o;let u=[{obj:r,base:o,path:"#"}];for(;u.length>0;){let{obj:i,base:s,path:c}=u.shift();if(x(i.$id)&&!A(i.$id)){let{id:l}=S(i.$id,s,n);if(!e.has(l))e.set(l,i);else if(e.get(l)==null)e.set(l,i);else throw new Error(`Schema '${l}' for path '${c}' in '${s}' already exists`);t=l}else t=s;if(x(i.$anchor)&&!A(i.$anchor)){let{id:l}=S(`#${i.$anchor}`,t,n);if(!e.has(l))e.set(l,i);else if(e.get(l)==null)e.set(l,i);else throw new Error(`Schema '${l}' for path '${c}' in '${s}' already exists`);l.startsWith("#")||(t=l)}if(x(i.$ref)&&!A(i.$ref)){let{id:l}=S(i.$ref,t,n);e.has(l)||e.set(l,null);continue}for(let[l,f]of Object.entries(i))if(E(f)){if(kt.includes(l))if(Array.isArray(f)){let a=f.length;for(let p=0;p<a;p++){let m=f[p],F=X(c,l,p);if(!ee(m)){if(!E(m)){if(n.skipErrors===!0)continue;throw new Error(`${F} is not a schema`)}u.push({obj:m,base:t,path:F})}}}else{let a=X(c,l);u.push({obj:f,base:t,path:a})}else if(Xt.includes(l)){if(Array.isArray(f))continue;for(let[a,p]of Object.entries(f)){let m=X(c,l,a);if(!ee(p)){if(!E(p)){if(n.skipErrors===!0)continue;throw new Error(`${m} is not a schema`)}u.push({obj:p,base:t,path:m})}}}}}return o}function ze(e,t,r,n=new V){let{id:o,leftUri:u,fragment:i}=S(t,r,n);if(!e.has(u))throw new Error(`The root of reference: '$ref': '${o}', is not found in init-cache`);let s=e.get(u);if(A(i))return{id:o,schema:s};let c=Ut(i),l="";for(let f of c){if(l=l+"/"+f,!M(s[f]))throw new Error(`The '${l}' is not is not a valid schema in '${u}'`);s=s[f]}return{id:o,schema:s}}function he(e,t=new V){for(let[r,n]of e.entries()){if(n!=null)continue;let{schema:o}=ze(e,r,null,t);if(o==null)throw new Error(`Can not resolve schema for '${r}'`);e.set(r,o)}}var w=class extends V{constructor(t="https://github.com/jklarenbeek/jaren",r=!0,n=!0,o=!0,u=!0){super(n,o,u),this.origin=t,this.mergeSchemas=r}};function He(e,t,r,n=new w){if(!E(r))return{id:t,schema:r};if(!Z(r))return{id:t,schema:r};let o=[{item:r,base:t}],u=new Set,i={};for(;o.length>0;){let{item:s,base:c}=o.shift();if(!E(s))return{id:c,schema:s};if(i=n.mergeSchemas==!0?{...s,...i}:{...s},!Z(s))return{id:c,schema:i};delete i.$ref;let l=s.$ref,{id:f,schema:a}=ze(e,l,c,n);if(u.has(f))return{id:c,schema:i};u.add(f),o.push({item:a,base:f})}throw new Error(`The json schema '${t}' can not be resolved!`)}var qt="http://json-schema.org/draft-06/schema#",Zt=typeof window<"u",Jt=Zt?window.performance:{now:function(t){let r=process;if(!t)return r.hrtime();let n=r.hrtime(t);return Math.round(n[0]*1e3+n[1]/1e6)}},ie=class{constructor(t,r,n,o,u,i){this.timeStamp=Jt.now(),this.object=t,this.key=r,this.expected=n,this.dataKey=o,this.value=u,this.rest=i}},oe=class{constructor(t=!0){this.skipErrors=t}},ue=class e{static _createObject(t,r,n){let o=t._objects;if(o.has(r)&&o.get(r)!=null)throw new Error(`Object at '${r}' is already created`);let u=new ge(t,r,n);return o.set(r,u),u}constructor(t,r,n,o=new oe,u=new w){let i=r.get(t);this._rootOrigin=t,this._schemas=r,this._formats=n,this._options=o,this._traverse=u,this._objects=new Map,this._errors=[],this._firstSchema=e._createObject(this,t,i)}get options(){return this._options}get formats(){return this._formats}get errors(){return this._errors}createObject(t,r){return e._createObject(this,t,r)}unresolvedObject(t){let r=this._objects;return r.has(t)?r.get(t):(r.set(t,null),null)}resolveObject(t,r,n){let o=this._objects;if(o.has(t)&&o.get(t)!=null)return o.get(t);let u=this._schemas,i=this._traverse,{id:s,schema:c}=He(u,r,n,i);return e._createObject(this,s,c)}addError(t){return this._errors.push(t),!1}validate(t){return this._errors=[],this._firstSchema.validate(t,t)}},ge=class e{static _compileValidator(t,r,n){if(!Z(n))return Pe(t,n);let o=t._root,{id:u}=S(n.$ref,r,o.options),i=o.unresolvedObject(u);if(i!=null){let s=i.validate;return t._validator=function(l,f){return s(l,f)},t._validator}return function(c,l){let a=o.resolveObject(u,r,n).validate;return t._validator=function(m,F){return a(m,F)},t._validator(c,l)}}constructor(t,r,n){this._root=t,this._path=r,this._members=[],this._schema=n,this._validator=null,this._validator=e._compileValidator(this,r,n)}get path(){return this._path}get errors(){return this._root.errors}get validate(){return this._validator}get options(){return this._root.options}get formats(){return this._root.formats}createErrorHandler(t,r){let n=this;return Array.isArray(r)?function(u,i,...s){let c=new ie(n,r,t,u,i,s);return n._root.addError(c)}:function(u,...i){let s=new ie(n,r,t,null,u,i);return n._root.addError(s)}}createValidator(t,r,n){if(!M(t))return;let o=E(t)?S(t.$id,this._path).id:this._path,u=this._root,i=n==null?X(o,r):X(o,r,String(n)),s=u.createObject(i,t);return this._members.push(s),s._validator}},K=class{constructor(t={},r=[],n=new oe,o=new w){this.formats=t,this.schemas=r,this.validation=n,this.traverse=o}};function In(e,t=new K){let r=new Map,n=J(r,t.traverse.origin,e,t.traverse);t.schemas.forEach(u=>J(r,n,u,t.traverse)),he(r,t.traverse);let o=new ue(n,r,t.formats,t.validation,t.traverse);return{validate:u=>o.validate(u)}}var Ge=class e{#r={};#e=new Map;#t=new Map;#n=new K;constructor(t=new K){this.#r=t.formats||{},this.#e=new Map,this.#t=new Map,this.#n=t}addFormat(t,r){return me(this.#r,t,r),this}addFormats(t){return Fe(this.#r,t),this}static#i(t,r=void 0,n=void 0,o=new w){let u=new Map(n),i=J(u,o.origin,t,o);return Array.isArray(r)&&r.length>0&&r.forEach(s=>J(u,i,s,o)),he(u,o),{origin:i,map:u}}addSchema(t,r=void 0){if(Array.isArray(t))t.forEach((n,o)=>this.addSchema(n,r?`${r}[${o}]`:void 0));else if(typeof t=="object"){let n=r||t.$id;n&&this.#e.set(n,t)}return this}static#o(t,r,n){let o=new ue(r,n,t.#r,t.#n.validation,t.#n.traverse);function u(i){return o.validate(i)}return Object.defineProperty(u,"errors",{get:function(){return o._errors}}),u}static normalizeUriKey(t){return t}addMetaSchema(t,r=void 0){if(r=e.normalizeUriKey(r),Array.isArray(t)){let n=t.shift(),{origin:o,map:u}=e.#i(n,t,void 0,new w(r)),i=e.#o(this,o,u);this.#t.set(o,i),xe(this.#e,u)}else if(M(t)){let{origin:n,map:o}=e.#i(t,void 0,void 0,new w(r)),u=e.#o(this,n,o);this.#t.set(n,u),xe(this.#e,o)}return this}getSchema(t){return t=e.normalizeUriKey(t),this.#e.get(t)||null}validateSchema(t){if(this.#t.size==0)return!0;let r=e.normalizeUriKey(t.$schema||qt),n=this.#t.get(r);return n?n(t):!1}compile(t,r=void 0){let{origin:n,map:o}=e.#i(t,r,this.#e,this.#n.traverse);return e.#o(this,n,o)}compileAsync(t){throw new Error("compileAsync is not implemented")}};export{qt as DEFAULT_SCHEMA_DRAFT,Ge as JarenValidator,w as TraverseOptions,K as ValidatorOptions,In as compileSchemaValidator,Fe as registerFormatCompilers};
|
|
2
2
|
//# sourceMappingURL=index.min.js.map
|