json-schema-library
Version:
Customizable and hackable json-validator and json-schema utilities for traversal, data generation and validation
1 lines • 99.9 kB
JavaScript
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`fast-copy`);c=s(c);let l=require(`@sagold/json-pointer`);l=s(l);let u=require(`fast-deep-equal`);u=s(u);let d=require(`valid-url`);d=s(d);let ee=require(`smtp-address-parser`);ee=s(ee);const te=/(#)+$/,ne=/#$/,re=/^[#/]+/,ie=/^[^:]+:\/\/[^/]+\//,ae=/\/[^/]*$/,oe=/#.*$/,se=/^urn:uuid:[0-9A-Fa-f]/;function ce(e,t){return e==null&&(t==null||t===``)?`#`:t==null||t===``?e.replace(ne,``):se.test(t)?t:e==null||e===``||e===`#`?t.replace(ne,``):t[0]===`#`?e[0]===`/`?t:`${e.replace(oe,``)}${t.replace(te,``)}`:ie.test(t)?t.replace(ne,``):ie.test(e)&&t.startsWith(`/`)?`${e.replace(/(^[^:]+:\/\/[^/]+)(.*)/,`$1`)}/${t.replace(re,``)}`:`${e.replace(ae,``)}/${t.replace(re,``)}`}function f(e,t){let n=ce(e,t);return n===``?`#`:n}const le=/(#)+$/g,ue=[``,null,`#`];function de(e){if(ue.includes(e))return[];if(e=e.replace(le,``),e.indexOf(`#`)===-1)return[e.replace(/(#|\/)+$/g,``)];if(e.indexOf(`#`)===0)return[e.replace(le,``)];let t=e.split(`#`);return t[0]=t[0].replace(/(#|\/)+$/g,``),t[1]=`#${t[1].replace(le,``)}`,t}function fe(e,...t){let n={};return Object.keys(e).forEach(r=>{t.includes(r)||(n[r]=e[r])}),n}const pe=Object.prototype.toString;function p(e){let t=pe.call(e).slice(8,-1).toLowerCase();return t===`file`?`object`:t}function m(e){return p(e)===`object`}var h={DECLARATOR_ONEOF:`oneOfProperty`,propertyBlacklist:[`_id`],DYNAMIC_PROPERTIES:[`$ref`,`$defs`,`if`,`then`,`else`,`allOf`,`anyOf`,`oneOf`,`dependentSchemas`,`dependentRequired`,`definitions`,`dependencies`,`patternProperties`],REGEX_FLAGS:`u`};function g(e){let t=e===void 0?{}:{type:p(e)};return t.type===`object`&&m(e)&&(t.properties={},Object.keys(e).forEach(n=>t.properties[n]=g(e[n]))),t.type===`array`&&Array.isArray(e)&&(e.length===1?t.items=g(e[0]):(t.items=e.map(g),t.items.find(e=>e.type!==t.items[0].type)??(t.items=t.items[0]))),t}function me(e,t){t!=null&&Object.values(t).forEach(t=>_(t,e))}function he(e,t){t?.forEach(t=>_(t,e))}function _(e,t=[]){return x(e)?(t.push(e),me(t,e.$defs),e.additionalProperties&&_(e.additionalProperties,t),he(t,e.allOf),he(t,e.anyOf),e.contains&&_(e.contains,t),me(t,e.dependentSchemas),e.if&&_(e.if,t),e.else&&_(e.else,t),e.then&&_(e.then,t),e.items&&_(e.items,t),he(t,e.prefixItems),e.not&&_(e.not,t),he(t,e.oneOf),e.patternProperties&&Object.values(e.patternProperties).forEach(({node:e})=>_(e,t)),me(t,e.properties),e.propertyNames&&_(e.propertyNames,t),e.unevaluatedProperties&&_(e.unevaluatedProperties,t),e.unevaluatedItems&&_(e.unevaluatedItems,t),t):t}function v(e,t,...n){if(t?.type===`error`)return t;if(e?.type===`error`||p(e)!==p(t))return e;let r=ge(e,t);for(let e=0;e<n.length;e+=1)delete r[n[e]];return r}function ge(e,t,n){if(m(e)&&m(t)){let n={};return[...Object.keys(e),...Object.keys(t)].filter((e,t,n)=>n.indexOf(e)===t).forEach(r=>n[r]=ge(e[r],t[r],r)),n}if(Array.isArray(e)&&Array.isArray(t)){if(n===`required`||n===`anyOf`)return e.concat(t).filter((e,t,n)=>n.indexOf(e)===t);if(n===`items`||n===`prefixItems`){let n=[];for(let r=0;r<t.length;r+=1)m(e[r])&&m(t[r])&&e[r].type===t[r].type?n[r]=ge(e[r],t[r]):n.push(t[r]??e[r]);return n}let r=[],i=[];for(let n=0;n<Math.max(e.length,t.length);n+=1)m(e[n])&&m(t[n])?r[n]=ge(e[n],t[n]):e[n]!==void 0&&t[n]!==void 0?(r[n]=e[n],i.push(t[n])):e[n]===void 0?t[n]!==void 0&&i.push(t[n]):r[n]=e[n];return[...r,...i].filter((e,t,n)=>n.indexOf(e)===t)}return Array.isArray(t)?t:Array.isArray(e)||t===void 0?e:t}function _e(e,t){return(t.order??0)-(e.order??0)}function ve(e,t,n){if(e==null||n.indexOf(e)!==t)return!1;let r=e.toJSON?.()??e.name;return n.find((e,n)=>(e.toJSON?.()??e.name)===r&&n===t)}function ye(e,t){if(e==null||t==null)return t||e;let n={};return[...Object.keys(e),...Object.keys(t)].filter((e,t,n)=>n.indexOf(e)===t).forEach(r=>{let i=y(e[r],t[r]);x(i)&&(n[r]=i)}),n}function be(e,t){if(e==null||t==null)return e||t;let n=[...e],r=e.map(e=>e.node.evaluationPath);return t.forEach(e=>{r.includes(e.node.evaluationPath)||n.push(e)}),n}function y(e,t,...n){if(e==null||t==null)return e||t;let r={};e.items&&t.prefixItems||e.prefixItems&&t.items?t.prefixItems?r.prefixItems=t.prefixItems:r.items=t.items:(r.prefixItems=t.prefixItems??e.prefixItems,r.items=y(e.items,t.items));let i={...e,...t,...r,dynamicId:je(e.dynamicId,t.dynamicId),oneOfIndex:e.oneOfIndex??t.oneOfIndex,schema:v(e.schema,t.schema,...n),parent:e.parent,resolvers:e.resolvers.concat(t.resolvers).filter(ve).sort(_e),reducers:e.reducers.concat(t.reducers).filter(ve).sort(_e),validators:e.validators.concat(t.validators).filter(ve).sort(_e),additionalProperties:y(e.additionalProperties,t.additionalProperties),contains:y(e.contains,t.contains),if:y(e.if,t.if),then:y(e.then,t.then),else:y(e.else,t.else),not:y(e.not,t.not),propertyNames:y(e.propertyNames,t.propertyNames),unevaluatedProperties:y(e.unevaluatedProperties,t.unevaluatedProperties),unevaluatedItems:y(e.unevaluatedItems,t.unevaluatedItems),$defs:ye(e.$defs,t.$defs),patternProperties:be(e.patternProperties,t.patternProperties),properties:ye(e.properties,t.properties)};function a(e){let t=e.toJSON?.()??e.name;return i.schema?.[t]===void 0?(i[t]=void 0,!1):!0}return n?.forEach(e=>i[e]=void 0),i.resolvers=i.resolvers.filter(a),i.reducers=i.reducers.filter(a),i.validators=i.validators.filter(a),i}function xe(e,...t){if(!m(e)||t.length===0)return e;let n={};return t.forEach(t=>{e[t]!==void 0&&(n[t]=e[t])}),n}function Se(e,t={}){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>{let r=t[n];return r==null?``:typeof r==`object`?JSON.stringify(r):String(r)})}const Ce=Object.prototype.hasOwnProperty,we=(e,t)=>!(e[t]===void 0||!Ce.call(e,t));function b(e,t){if(m(e)||Array.isArray(e))return e[t]}function Te(e,t,n={}){n.path=n.path??[],n.withSchemaWarning=n.withSchemaWarning??!1,n.pointer=n.pointer??`#`;let r=this,i=(0,l.split)(e);if(i.length===0){let e=r.resolveRef(n);return S(e)?{node:void 0,error:e}:{node:e,error:void 0}}let a=`#`,o=r;for(let e=0,r=i.length;e<r;e+=1){a=`${a}/${i[e]}`;let r=o.getNodeChild(i[e],t,{...n,pointer:a});if(r.error||r.node==null)return r;o=r.node,t=b(t,i[e])}let s=o.resolveRef(n);return S(s)?{node:void 0,error:s}:{node:s,error:void 0}}function Ee(e,t,n={}){n.path=n.path??[],n.withSchemaWarning=n.withSchemaWarning??!1,n.pointer=n.pointer??`#`;let{path:r,pointer:i}=n,a=this;if(a.reducers.length){let n=a.reduceNode(t,{key:e,path:r,pointer:i});if(n.error)return n;x(n.node)&&(a=n.node)}for(let n of a.resolvers){let r=n({data:t,key:e,node:a});if(x(r))return{node:r,error:void 0};if(S(r))return{node:void 0,error:r}}let o=a.resolveRef({path:r});return o===a?n.createSchema===!0?{node:a.compileSchema(a.createSchema(b(t,e)),`${a.evaluationPath}/additional`,`${a.schemaLocation}/additional`),error:void 0}:n.withSchemaWarning===!0?{node:void 0,error:a.createError(`schema-warning`,{pointer:i,value:t,schema:a.schema,key:e})}:{node:void 0,error:void 0}:o.getNodeChild(e,t,n)}const{DYNAMIC_PROPERTIES:De,REGEX_FLAGS:Oe}=h;function x(e){return m(e)&&Array.isArray(e?.reducers)&&Array.isArray(e?.resolvers)}function ke(e){for(let t=0,n=De.length;t<n;t+=1)if(we(e,De[t]))return!0;return!1}function Ae(e,t){if(!Array.isArray(e)||e.length===0)throw Error(`Missing drafts in 'compileSchema({ $schema: "${t}" })'`);return e.length===1?e[0]:e.find(e=>new RegExp(e.$schemaRegEx,Oe).test(t))??e[e.length-1]}function je(e,t){return e==t?e??``:e==null||t==null?e||t:e.startsWith(t)?e:t.startsWith(e)?t:`${e}+${t}`}const Me={compileSchema(e,t=this.evaluationPath,n,r){let i=t.split(`/$ref`)[0],a=this,o={lastIdPointer:a.lastIdPointer,context:a.context,parent:a,evaluationPath:t,dynamicId:je(a.dynamicId,r),schemaLocation:n??(0,l.join)(a.schemaLocation,i),reducers:[],resolvers:[],validators:[],schema:e,...Me};return Fe(o),o},createError(e,t,n){let r=n;if(r===void 0){let n=this.schema?.errorMessages?.[e]??this.context.errors[e];if(typeof n==`function`)return n(t);r=Se(n??name,t)}return{type:`error`,code:e,message:r,data:t}},createSchema:g,getChildSelection(e){let t=this;return t.context.methods.getChildSelection(t,e)},getNode:Te,getNodeChild:Ee,getNodeRef(e){return this.compileSchema({$ref:e},`$dynamic`).resolveRef()},getNodeRoot(){return this.context.rootNode},getDraftVersion(){return this.context.version},getData(e,t){let n=this,r={recursionLimit:1,...n.context.getDataDefaultOptions,cache:{},...t??{}};return n.context.methods.getData(n,e,r)},reduceNode(e,t={}){let n=this,{key:r,pointer:i,path:a}=t;if(n.schema===!1)return{node:n,error:void 0};if(n.schema===!0){let t=n.compileSchema(g(e),n.evaluationPath,n.schemaLocation);return a?.push({pointer:i,node:n}),{node:t,error:void 0}}let o,s=n.compileSchema(n.schema,n.evaluationPath,n.schemaLocation),c=n.reducers;for(let t=0;t<c.length;t+=1){let l=c[t]({data:e,key:r,node:n,pointer:i,path:a});if(S(l))return{node:void 0,error:l};if(l){if(l.schema===!1){o=!1;break}s=y(s,l)}}return o===!1?{node:{...n,schema:!1,reducers:[]},error:void 0}:(s!==n&&a?.push({pointer:i,node:n}),s.schema=fe(s.schema,...De),De.forEach(e=>s[e]=void 0),{node:s,error:void 0})},validate(e,t=`#`,n=[]){let r=w(this,e,t,n)??[],i=[],a=C(Array.isArray(r)?r:[r]).filter(S),o=[];return C(Array.isArray(r)?r:[r]).forEach(e=>{S(e)?i.push(e):e instanceof Promise&&o.push(e)}),{valid:a.length===0,errors:i,errorsAsync:o}},addRemoteSchema(e,t){t.$id=f(t.$id||e);let{context:n}=this,r=Ae(n.drafts,t?.$schema??this.context.rootNode.$schema),i={evaluationPath:`#`,lastIdPointer:`#`,schemaLocation:`#`,dynamicId:``,reducers:[],resolvers:[],validators:[],schema:t,context:{...n,refs:{},anchors:{},...(0,c.default)(xe(r,`methods`,`keywords`,`version`,`formats`,`errors`))},...Me};return i.context.rootNode=i,i.context.remotes[f(e)]=i,Fe(i),this},toSchemaNodes(){return _(this)},toDataNodes(e,t){let n=this;return n.context.methods.toDataNodes(n,e,t)},toJSON(){return{...this,context:void 0,errors:void 0,parent:this.parent?.evaluationPath}}},Ne=[`$ref`,`if`,`$defs`],Pe=[`draft-04`,`draft-06`,`draft-07`];function Fe(e){if(e.schema.$ref&&Pe.includes(e.context.version)){e.context.keywords.filter(({keyword:e})=>Ne.includes(e)).forEach(t=>Ie(t,e));return}let t=Object.keys(e.schema);e.context.keywords.filter(({keyword:e})=>t.includes(e)||Ne.includes(e)).forEach(t=>Ie(t,e))}function Ie(e,t){e.parse?.(t),e.addReduce?.(t)&&t.reducers.push(e.reduce),e.addResolve?.(t)&&t.resolvers.push(e.resolve),e.addValidate?.(t)&&t.validators.push(e.validate)}function S(e){return e?.type===`error`}function C(e,t=[]){if(!Array.isArray(e))return[e];for(let n=0;n<e.length;n+=1){let r=e[n];Array.isArray(r)?C(r,t):(S(r)||r instanceof Promise)&&t.push(r)}return t}function w(e,t,n,r){r?.push({pointer:n,node:e});let i=e.schema;if(i===!0)return[];if(i===!1)return[e.createError(`invalid-data-error`,{value:t,pointer:n,schema:e.schema})];let a=[];for(let i of e.validators){let o=i({node:e,data:t,pointer:n,path:r});Array.isArray(o)?a.push(...o):o&&a.push(o)}return C(a)}const Le={id:`$ref`,keyword:`$ref`,order:10,parse:ze,addReduce:e=>e.$ref!=null||e.schema.$dynamicRef!=null,reduce:Be,addValidate:({schema:e})=>e.$ref!=null||e.$dynamicRef!=null,validate:He};function Re(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function ze(e){e.resolveRef=Ve;let t=f(e.parent?.$id,e.schema?.$id);e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,t!==e.parent?.$id&&e.evaluationPath!==`#`&&(e.lastIdPointer=e.evaluationPath),e.lastIdPointer!==`#`&&e.evaluationPath.startsWith(e.lastIdPointer)&&Re(e,f(t,`#${e.evaluationPath.replace(e.lastIdPointer,``)}`)),Re(e,f(e.context.rootNode.$id,e.evaluationPath));let n=e.schema.$anchor;if(n){let r=`${t.replace(/#$/,``)}#${n}`;e.context.anchors[r]??(e.context.anchors[r]=e)}let r=e.schema.$dynamicAnchor;if(r){let n=`${t.replace(/#$/,``)}#${r}`;e.context.dynamicAnchors[n]??(e.context.dynamicAnchors[n]=e)}e.schema.$ref&&(e.$ref=f(t,e.schema.$ref),e.$ref.startsWith(`/`)&&(e.$ref=`#${e.$ref}`))}function Be({node:e,data:t,key:n,pointer:r,path:i}){if(e==null)return;let a=e.resolveRef({pointer:r,path:i});if(a==null)return;if(a.schemaLocation===e.schemaLocation)return a;let{node:o,error:s}=y(e,a).reduceNode(t,{key:n,pointer:r,path:i});return o??s}function Ve({pointer:e,path:t}={}){let n=this;if(n.schema.$dynamicRef){let r=Ue(n,t);return t?.push({pointer:e,node:r}),r}if(n.$ref==null)return n;let r=E(n);return r!=null&&t?.push({pointer:e,node:r}),r}function He({node:e,data:t,pointer:n=`#`,path:r}){let i=e.resolveRef({pointer:n,path:r});if(i!=null)return w(i,t,n,r)}function Ue(e,t){let n=t,r=f(e.$id,e.schema.$dynamicRef);if(e.context.dynamicAnchors[r]==null&&e.context.anchors[r])return T(e.context.anchors[r],e);for(let t=0;t<n.length;t+=1){if(n[t].node.schema.$dynamicAnchor)return T(n[t].node,e);let r=e.schema.$dynamicRef.split(`#`).pop(),i=f(n[t].node.$id,`#${r}`);if(e.context.dynamicAnchors[i])return T(e.context.dynamicAnchors[i],e)}return E(e,r)}const We=[`title`,`description`,`options`,`readOnly`,`writeOnly`];function T(e,t){let n=e.schema;return m(e.schema)&&(n={...fe(e.schema,`$id`),...xe(t.schema,...We)}),e.compileSchema(n,`${t.evaluationPath}/$ref`,e.schemaLocation)}function E(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return T(e.context.refs[t],e);if(e.context.anchors[t])return T(e.context.anchors[t],e);if(e.context.dynamicAnchors[t])return T(e.context.dynamicAnchors[t],e);let n=de(t);if(n.length!==0){if(n.length===1){let t=n[0];if(e.context.remotes[t])return T(e.context.remotes[t],e);if(t[0]===`#`){let n=e.context.rootNode.schema,r=(0,l.get)(n,t);if(r)return e.compileSchema(r,`${e.evaluationPath}/$ref`,t)}return}if(n.length===2){let r=n[0];if(e.context.remotes[r]&&e!==e.context.remotes[r]){let i=e.context.remotes[r],a=E(i,t);if(a||(a=E(i,n[1]),a))return a}if(e.context.refs[r]){let t=e.context.refs[r],i=(0,l.split)(n[1]),a=t;for(let e=0;e<i.length;e+=1){let t=i[e]===`definitions`?`$defs`:i[e];if(a=a[t],a==null){console.error(`REF: FAILED RESOLVING ref json-pointer`,n[1]);return}}return a}console.error(`REF: UNFOUND 2`,t);return}console.error(`REF: UNHANDLED`,t)}}const Ge={id:`additionalItems`,keyword:`additionalItems`,order:-10,parse:Ke,addResolve:e=>e.items!=null,resolve:qe,addValidate:({schema:e})=>e.additionalItems!=null&&e.additionalItems!==!0&&Array.isArray(e.items),validate:Je};function Ke(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;(m(t.additionalItems)||t.additionalItems===!0)&&Array.isArray(t.items)&&(e.items=e.compileSchema(t.additionalItems,`${n}/additionalItems`,`${r}/additionalItems`))}function qe({node:e,key:t,data:n}){if(Array.isArray(n)){let r=b(n,t),{node:i,error:a}=e.items.reduceNode(r);return i??a}}function Je({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0||Array.isArray(i.items)&&i.items.length>=t.length)return;let a=Array.isArray(i.items)?i.items.length:0,o=[];for(let s=a;s<t.length;s+=1){let a=t[s];if(e.items){let t=w(e.items,a,`${n}/${s}`,r);t&&o.push(...t)}else i.additionalItems===!1&&o.push(e.createError(`additional-items-error`,{key:s,pointer:`${n}/${s}`,value:t,schema:i}))}return o}const D={id:`additionalProperties`,keyword:`additionalProperties`,order:-10,parse:Ye,addResolve:({schema:e})=>e.additionalProperties!=null,resolve:Xe,addValidate:({schema:e})=>e.additionalProperties!==!0&&e.additionalProperties!=null&&!(e.additionalProperties===!1&&m(e.patternProperties)),validate:Ze};function Ye(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;m(t.additionalProperties)&&(e.additionalProperties=e.compileSchema(t.additionalProperties,`${n}/additionalProperties`,`${r}/additionalProperties`))}function Xe({node:e,data:t,key:n}){let r=b(t,n);if(e.additionalProperties){let{node:t,error:n}=e.additionalProperties.reduceNode(r);return t??n}if(e.schema.additionalProperties===!1)return e.createError(`no-additional-properties-error`,{pointer:`${n}`,schema:e.schema,value:b(t,n),property:`${n}`})}function Ze({node:e,data:t,pointer:n=`#`,path:r}){if(!m(t))return;let{schema:i}=e,a=[],o=Object.keys(t).filter(e=>h.propertyBlacklist.includes(e)===!1);Array.isArray(e.patternProperties)&&(o=o.filter(t=>{for(let n=0;n<e.patternProperties.length;n+=1)if(e.patternProperties[n].pattern.test(t))return!1;return!0}));let s=e.properties?Object.keys(e.properties):[];return o.filter(e=>s.indexOf(e)===-1).forEach(o=>{let c=b(t,o);if(m(e.additionalProperties)){let t=w(e.additionalProperties,c,`${n}/${o}`,r);t&&a.push(...t)}else a.push(e.createError(`no-additional-properties-error`,{pointer:`${n}/${o}`,schema:i,value:t,property:o,properties:s}))}),a}const O={id:`allOf`,keyword:`allOf`,parse:Qe,addReduce:e=>e.allOf!=null,reduce:$e,addValidate:e=>e.allOf!=null,validate:et};function Qe(e){let{schema:t,evaluationPath:n}=e;Array.isArray(t.allOf)&&t.allOf.length&&(e.allOf=t.allOf.map((t,r)=>e.compileSchema(t,`${n}/allOf/${r}`,`${e.schemaLocation}/allOf/${r}`)))}function $e({node:e,data:t,key:n,pointer:r,path:i}){if(e.allOf==null)return;let a={},o=``;for(let s=0;s<e.allOf.length;s+=1){let{node:c}=e.allOf[s].reduceNode(t,{key:n,pointer:r,path:i});if(c){let t=c.dynamicId?.replace(e.dynamicId,``)??``,n=t===``?`allOf/${s}`:t;o+=`${o===``?``:`,`}${n}`;let r=v(e.allOf[s].schema,c.schema);a=v(a,r,`allOf`,`contains`)}}return e.compileSchema(a,`${e.evaluationPath}/${o}`,e.schemaLocation,`${e.schemaLocation}(${o})`)}function et({node:e,data:t,pointer:n,path:r}){if(!Array.isArray(e.allOf)||e.allOf.length===0)return;let i=[];return e.allOf.forEach(e=>{i.push(...w(e,t,n,r))}),i}const k={id:`anyOf`,keyword:`anyOf`,parse:tt,addReduce:e=>e.anyOf!=null,reduce:nt,addValidate:e=>e.anyOf!=null,validate:rt};function tt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;Array.isArray(t.anyOf)&&t.anyOf.length&&(e.anyOf=t.anyOf.map((t,i)=>e.compileSchema(t,`${n}/anyOf/${i}`,`${r}/anyOf/${i}`)))}function nt({node:e,data:t,pointer:n,path:r}){if(e.anyOf==null)return;let i={},a=``;for(let o=0;o<e.anyOf.length;o+=1)if(w(e.anyOf[o],t,n,r).length===0){let{node:n}=e.anyOf[o].reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``)??``,r=t===``?`anyOf/${o}`:t;a+=`${a===``?``:`,`}${r}`;let s=v(e.anyOf[o].schema,n.schema);i=v(i,s,`anyOf`)}}return e.compileSchema(i,`${e.evaluationPath}${a}`,e.schemaLocation,`${e.schemaLocation}(${a})`)}function rt({node:e,data:t,pointer:n,path:r}){for(let i=0;i<e.anyOf.length;i+=1)if(w(e.anyOf[i],t,n,r).length===0)return;return e.createError(`any-of-error`,{pointer:n,schema:e.schema,value:t,anyOf:e.schema.anyOf})}const A={id:`contains`,keyword:`contains`,parse:it,addValidate:e=>e.contains!=null,validate:at,addReduce:e=>e.contains!=null,reduce:({node:e})=>e.compileSchema({items:{anyOf:[e.contains.schema]}},e.evaluationPath,e.schemaLocation)};function it(e){let{schema:t,evaluationPath:n}=e;t.contains!=null&&(e.contains=e.compileSchema(t.contains,`${n}/contains`))}function at({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!Array.isArray(t))return;if(i.contains===!1)return e.createError(`contains-array-error`,{pointer:n,value:t,schema:i});if(i.contains===!0)return Array.isArray(t)&&t.length===0?e.createError(`contains-any-error`,{pointer:n,value:t,schema:i}):void 0;if(!m(i.contains)||!Array.isArray(t))return;let a=0;for(let i=0;i<t.length;i+=1)w(e.contains,t[i],n,r).length===0&&a++;let o=i.maxContains??1/0,s=i.minContains??1;if(!(o>=a&&s<=a))return o<a?e.createError(`contains-max-error`,{pointer:n,schema:i,delta:a-o,value:t}):s>a?e.createError(`contains-min-error`,{pointer:n,schema:i,delta:s-a,value:t}):e.createError(`contains-error`,{pointer:n,schema:i,value:t})}const j={id:`$defs`,keyword:`$defs`,parse:ot};function ot(e){e.schema.$defs&&(e.$defs=e.$defs??{},Object.keys(e.schema.$defs).forEach(t=>{e.$defs[t]=e.compileSchema(e.schema.$defs[t],`${e.evaluationPath}/$defs/${st(t)}`,`${e.schemaLocation}/$defs/${t}`)})),e.schema.definitions&&(e.$defs=e.$defs??{},Object.keys(e.schema.definitions).forEach(t=>{e.$defs[t]=e.compileSchema(e.schema.definitions[t],`${e.evaluationPath}/definitions/${st(t)}`,`${e.schemaLocation}/definitions/${st(t)}`)}))}function st(e){return e=e.replace(/~/g,`~0`),e=e.replace(/\//g,`~1`),encodeURIComponent(e)}const ct={id:`dependentRequired`,keyword:`dependentRequired`,parse:lt,addValidate:e=>m(e.schema.dependentRequired),validate:ut};function lt(e){m(e.schema.dependentRequired)&&(e.dependentRequired=e.schema.dependentRequired??{})}function ut({node:e,data:t,pointer:n=`#`}){if(!m(t))return;let{dependentRequired:r}=e,i=[];return r&&Object.keys(t).forEach(a=>{let o=r[a];if(o!==!0){if(o===!1){i.push(e.createError(`missing-dependency-error`,{pointer:n,schema,value:t}));return}if(Array.isArray(o))for(let r=0,a=o.length;r<a;r+=1)t[o[r]]===void 0&&i.push(e.createError(`missing-dependency-error`,{missingProperty:o[r],pointer:n,schema:e.schema,value:t}))}}),i}const dt={id:`dependentSchemas`,keyword:`dependentSchemas`,parse:ft,addReduce:e=>e.dependentSchemas!=null,reduce:pt,addValidate:e=>e.dependentSchemas!=null,validate:mt};function ft(e){let{dependentSchemas:t}=e.schema;if(!m(t))return;let n=Object.keys(t);n.length!==0&&(e.dependentSchemas={},n.forEach(n=>{let r=t[n];m(r)?e.dependentSchemas[n]=e.compileSchema(r,`${e.evaluationPath}/dependentSchemas/${n}`,`${e.schemaLocation}/dependentSchemas/${n}`):typeof r==`boolean`&&(e.dependentSchemas[n]=r)}))}function pt({node:e,data:t}){if(!m(t))return e;let n,{dependentSchemas:r}=e,i=0,a=`${e.schemaLocation}(`;return Object.keys(t).forEach(e=>{r[e]!=null&&(n??={properties:{}},x(r[e])?n=v(n,r[e].schema):n.properties[e]=r[e],a+=`${i?`,`:``}dependentSchemas/${e}`,i++)}),n==null?e:(n=v(e.schema,n,`dependentSchemas`),e.compileSchema(n,e.evaluationPath,e.schemaLocation,`${a})`))}function mt({node:e,data:t,pointer:n,path:r}){let{schema:i,dependentSchemas:a}=e;if(!m(t)||a==null)return;let o=[];return Object.keys(t).forEach(s=>{let c=a[s];if(c!==!0){if(c===!1){o.push(e.createError(`missing-dependency-error`,{pointer:n,schema:i,value:t}));return}if(x(c)){o.push(...w(c,t,n,r));return}}}),o}const M={id:`dependencies`,keyword:`dependencies`,parse:ht,order:-9,addReduce:e=>e.schema.dependencies!=null,reduce:gt,addValidate:e=>e.schema.dependencies!=null,validate:_t};function ht(e){let{dependencies:t}=e.schema;m(t)&&Object.keys(t).forEach(n=>{let r=t[n];m(r)||typeof r==`boolean`?(e.dependentSchemas=e.dependentSchemas??{},e.dependentSchemas[n]=e.compileSchema(r,`${e.evaluationPath}/dependencies/${n}`,`${e.schemaLocation}/dependencies/${n}`)):(e.dependentRequired=e.dependentRequired??{},e.dependentRequired[n]=r)})}function gt({node:e,data:t,key:n,pointer:r,path:i}){if(!m(t)||e.dependentRequired==null&&e.dependentSchemas==null)return e;let a=e.compileSchema(e.schema,e.evaluationPath,e.schemaLocation),o=a.schema.required??[],s=``;return e.dependentRequired&&Object.keys(e.dependentRequired).forEach(n=>{if(!we(t,n)&&!o.includes(n)||e.dependentRequired[n]==null)return;o.push(...e.dependentRequired[n]);let r=`dependencies/${n}`;s+=`${s===``?``:`,`}${r}`}),e.dependentSchemas&&Object.keys(e.dependentSchemas).forEach(c=>{if(!we(t,c)&&!o.includes(c))return!0;let l=e.dependentSchemas[c];if(!x(l))return!0;Array.isArray(l.schema.required)&&o.push(...l.schema.required);let u={...l,schema:{...l.schema,required:o}}.reduceNode(t,{key:n,pointer:`${r}/dependencies/${c}`,path:i}).node;a=y(a,u);let d=u.dynamicId?.replace(e.dynamicId,``)??``,ee=d===``?`dependencies/${c}`:d;s+=`${s===``?``:`,`}${ee}`}),a===e?e:o.length===0?a:(o=a.schema.required?a.schema.required.concat(...o):o,o=o.filter((e,t,n)=>n.indexOf(e)===t),a=y(a,a,`dependencies`),a.compileSchema({...a.schema,required:o},a.evaluationPath,a.schemaLocation,`${e.schemaLocation}(${s})`))}function _t({node:e,data:t,pointer:n,path:r}){if(!m(t))return;let i;if(e.dependentRequired&&(i=ut({node:e,data:t,pointer:n,path:r})??[]),e.dependentSchemas){let a=mt({node:e,data:t,pointer:n,path:r});a&&(i??=[],i.push(...a))}return i}const N={id:`enum`,keyword:`enum`,addValidate:({schema:e})=>Array.isArray(e.enum),validate:vt};function vt({node:e,data:t,pointer:n=`#`}){let{schema:r}=e,i=p(t);if(i===`object`||i===`array`){let e=JSON.stringify(t);for(let t=0;t<r.enum.length;t+=1)if(JSON.stringify(r.enum[t])===e)return}else if(r.enum.includes(t))return;return e.createError(`enum-error`,{pointer:n,schema:r,value:t})}const yt={id:`exclusiveMaximum`,keyword:`exclusiveMaximum`,addValidate:({schema:e})=>e.exclusiveMaximum===!0||!isNaN(e.maximum),validate:bt};function bt({node:e,data:t,pointer:n}){if(typeof t==`number`&&e.schema.exclusiveMaximum&&e.schema.maximum===t)return e.createError(`maximum-error`,{maximum:e.schema.exclusiveMaximum,length:t,pointer:n,schema:e.schema,value:t})}const xt={id:`exclusiveMinimum`,keyword:`exclusiveMinimum`,addValidate:({schema:e})=>e.exclusiveMinimum===!0||!isNaN(e.minimum),validate:St};function St({node:e,data:t,pointer:n}){if(typeof t==`number`&&e.schema.exclusiveMinimum&&e.schema.minimum===t)return e.createError(`minimum-error`,{minimum:e.schema.exclusiveMinimum,length:t,pointer:n,schema:e.schema,value:t})}const P={id:`format`,keyword:`format`,addValidate:({schema:e})=>e?.format!=null,validate:Ct};function Ct(e){let{node:t}=e,n=t.context.formats[t.schema.format];return n?.(e)}const wt={id:`items`,keyword:`items`,parse:Et,addResolve:e=>(e.prefixItems||e.items)!=null,resolve:Tt,addValidate:({schema:e})=>e.items!=null,validate:Dt};function Tt({node:e,key:t}){if(e.prefixItems?.[t])return e.prefixItems[t];if(e.items)return e.items}function Et(e){let{schema:t,evaluationPath:n}=e;m(t.items)?e.items=e.compileSchema(t.items,`${n}/items`,`${e.schemaLocation}/items`):Array.isArray(t.items)&&(e.prefixItems=t.items.map((t,r)=>e.compileSchema(t,`${n}/items/${r}`,`${e.schemaLocation}/items/${r}`)))}function Dt({node:e,data:t,pointer:n=`#`,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0)return;if(i.items===!1)return Array.isArray(t)&&t.length===0?void 0:e.createError(`invalid-data-error`,{pointer:n,value:t,schema:i});let a=[];if(e.prefixItems){for(let i=0;i<Math.min(e.prefixItems.length,t.length);i+=1){let o=t[i],s=e.prefixItems[i],c=w(s,o,`${n}/${i}`,r);a.push(...c)}return a}if(e.items){for(let i=0;i<t.length;i+=1){let o=t[i],s=w(e.items,o,`${n}/${i}`,r);s&&a.push(...s)}return a}}const F={id:`maximum`,keyword:`maximum`,addValidate:({schema:e})=>!isNaN(e.maximum),validate:Ot};function Ot({node:e,data:t,pointer:n}){if(isNaN(t))return;let{schema:r}=e;if(r.maximum&&r.maximum<t)return e.createError(`maximum-error`,{maximum:r.maximum,length:t,value:t,pointer:n,schema:r});if(r.maximum&&r.exclusiveMaximum===!0&&r.maximum===t)return e.createError(`maximum-error`,{maximum:r.maximum,length:t,pointer:n,schema:r,value:t})}const I={id:`maxItems`,keyword:`maxItems`,addValidate:({schema:e})=>!isNaN(e.maxItems),validate:kt};function kt({node:e,data:t,pointer:n}){let{schema:r}=e;if(Array.isArray(t)&&r.maxItems<t.length)return e.createError(`max-items-error`,{maximum:r.maxItems,length:t.length,schema:r,value:t,pointer:n})}function At(e){let t=[],n=0,r=e.length;for(;n<r;){let i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){let r=e.charCodeAt(n++);(r&64512)==56320?t.push(((i&1023)<<10)+(r&1023)+65536):(t.push(i),n--)}else t.push(i)}return t}const L={id:`maxLength`,keyword:`maxLength`,addValidate:({schema:e})=>!isNaN(e.maxLength),validate:jt};function jt({node:e,data:t,pointer:n=`#`}){if(typeof t!=`string`)return;let{schema:r}=e,i=At(t).length;if(r.maxLength<i)return e.createError(`max-length-error`,{maxLength:r.maxLength,length:i,pointer:n,schema:r,value:t})}const R={id:`maxProperties`,keyword:`maxProperties`,addValidate:({schema:e})=>!isNaN(e.maxProperties),validate:Mt};function Mt({node:e,data:t,pointer:n=`#`}){if(!m(t))return;let{schema:r}=e,i=Object.keys(t).length;if(isNaN(r.maxProperties)===!1&&r.maxProperties<i)return e.createError(`max-properties-error`,{maxProperties:r.maxProperties,length:i,pointer:n,schema:r,value:t})}const z={id:`minimum`,keyword:`minimum`,addValidate:({schema:e})=>!isNaN(e.minimum),validate:Nt};function Nt({node:e,data:t,pointer:n}){if(isNaN(t))return;let{schema:r}=e;if(r.minimum>t||r.exclusiveMinimum===!0&&r.minimum===t)return e.createError(`minimum-error`,{minimum:r.minimum,length:t,pointer:n,schema:r,value:t})}const B={id:`minItems`,keyword:`minItems`,addValidate:({schema:e})=>!isNaN(e.minItems),validate:Pt};function Pt({node:e,data:t,pointer:n}){if(!Array.isArray(t))return;let{schema:r}=e;if(r.minItems>t.length)return e.createError(`min-items-error`,{minItems:r.minItems,length:t.length,pointer:n,schema:r,value:t})}const V={id:`minLength`,keyword:`minLength`,addValidate:({schema:e})=>!isNaN(e.minLength),validate:Ft};function Ft({node:e,data:t,pointer:n=`#`}){if(typeof t!=`string`)return;let{schema:r}=e,i=At(t).length;if(!(r.minLength<=i))return e.createError(`min-length-error`,{minLength:r.minLength,length:i,pointer:n,schema:r,value:t})}const H={id:`minProperties`,keyword:`minProperties`,addValidate:({schema:e})=>!isNaN(e.minProperties),validate:It};function It({node:e,data:t,pointer:n=`#`}){if(!m(t))return;let r=Object.keys(t).length;if(e.schema.minProperties>r)return e.createError(`min-properties-error`,{minProperties:e.schema.minProperties,length:r,pointer:n,schema:e.schema,value:t})}function Lt(e){let t=`${e}`;if(t.includes(`e-`))return parseInt(t.replace(/.*e-/,``));let n=t.indexOf(`.`);return n===-1?0:t.length-(n+1)}const U={id:`multipleOf`,keyword:`multipleOf`,addValidate:({schema:e})=>!isNaN(e.multipleOf),validate:Rt};function Rt({node:e,data:t,pointer:n}){if(typeof t!=`number`)return;let{schema:r}=e,i=Lt(t),a=Lt(r.multipleOf);if(i>a)return e.createError(`multiple-of-error`,{multipleOf:r.multipleOf,value:t,pointer:n,schema:r});let o=10**a;if(Math.round(t*o)%Math.round(r.multipleOf*o)/o!==0)return e.createError(`multiple-of-error`,{multipleOf:r.multipleOf,value:t,pointer:n,schema:r})}const W={id:`not`,keyword:`not`,parse:zt,addValidate:e=>e.not!=null,validate:Bt};function zt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;t.not!=null&&(e.not=e.compileSchema(t.not,`${n}/not`,`${r}/not`))}function Bt({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(w(e.not,t,n,r).length===0)return e.createError(`not-error`,{value:t,not:i.not,pointer:n,schema:i})}const{DECLARATOR_ONEOF:Vt}=h,G={id:`oneOf`,keyword:`oneOf`,parse:Ut,addReduce:e=>e.oneOf!=null,reduce:Wt,addValidate:e=>e.oneOf!=null,validate:Jt},Ht={id:`oneOf-fuzzy`,keyword:`oneOf`,parse:Ut,addReduce:e=>e.oneOf!=null,reduce:qt,addValidate:e=>e.oneOf!=null,validate:Jt};function Ut(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;Array.isArray(t.oneOf)&&t.oneOf.length&&(e.oneOf=t.oneOf.map((t,i)=>e.compileSchema(t,`${n}/oneOf/${i}`,`${r}/oneOf/${i}`)))}function Wt({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;if(t!=null&&e.schema[Vt])return Gt({node:e,data:t,pointer:n,path:r});let i=[],a=[];for(let o=0;o<e.oneOf.length;o+=1){let s=w(e.oneOf[o],t,n,r);s.length===0?i.push({index:o,node:e.oneOf[o]}):a.push(...s)}if(i.length===1){let{node:e,index:a}=i[0],{node:o,error:s}=e.reduceNode(t,{pointer:n,path:r});if(o){let t=o.dynamicId?.replace(e.dynamicId,``)??``,n=t===``?`oneOf/${a}`:t;return o.oneOfIndex=a,o.dynamicId=je(o.dynamicId,`+${e.schemaLocation}(${n})`),o}return s}return i.length,e.createError(`one-of-error`,{value:JSON.stringify(t),pointer:n,schema:e.schema,oneOf:e.schema.oneOf,errors:a})}function Gt({node:e,data:t,pointer:n,path:r}){let i=[],a=e.schema[Vt],o=b(t,a);if(o===void 0)return e.createError(`missing-one-of-property-error`,{property:a,pointer:n,schema:e.schema,value:t});for(let s=0;s<e.oneOf.length;s+=1){let{node:c}=e.oneOf[s].getNodeChild(a,t);if(!x(c))return e.createError(`missing-one-of-declarator-error`,{declarator:Vt,oneOfProperty:a,schemaPointer:e.oneOf[s].schemaLocation,pointer:`${n}/oneOf/${s}`,schema:e.schema,value:t});let l=C(w(c,o,n,r));if(l.length>0)i.push(...l);else{let{node:i}=e.oneOf[s].reduceNode(t,{pointer:n,path:r});if(i)return i.oneOfIndex=s,i}}return e.createError(`one-of-property-error`,{property:a,value:o,pointer:n,schema:e.schema,errors:i})}function Kt(e,t,n,r){if(t==null||e.properties==null)return-1;let i=0,a=Object.keys(e.properties??{});for(let o=0;o<a.length;o+=1){let s=a[o];t[s]&&w(e.properties[s],t[s],n,r).length===0&&(i+=1)}return i}function qt({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return e;let i=Wt({node:e,data:t,pointer:n,path:r});if(x(i))return i;if(m(t)){let i,a=-1,o=0;for(let s=0;s<e.oneOf.length;s+=1){let c=e.oneOf[s],l=Kt(c,t,n,r);o<l&&(o=l,i=c,a=s)}if(i===void 0)return e.createError(`one-of-error`,{value:JSON.stringify(t),pointer:n,schema:e.schema,oneOf:e.schema.oneOf});let{node:s,error:c}=i.reduceNode(t,{pointer:n,path:r});return s?(s.oneOfIndex=a,s):c}return i}function Jt({node:e,data:t,pointer:n=`#`,path:r}){let{oneOf:i,schema:a}=e;if(!i)return;let o=[],s=[];for(let e=0;e<i.length;e+=1){let a=w(i[e],t,n,r);a.length>0?s.push(...a):o.push({index:e,node:i[e]})}if(o.length===1){let{node:e,index:t}=o[0];e.oneOfIndex=t;return}return o.length>1?e.createError(`multiple-one-of-error`,{value:t,pointer:n,schema:a,matches:o}):e.createError(`one-of-error`,{value:JSON.stringify(t),pointer:n,schema:a,oneOf:a.oneOf,errors:s})}const{REGEX_FLAGS:Yt}=h,K={id:`pattern`,keyword:`pattern`,addValidate:({schema:e})=>typeof e.pattern==`string`,validate:Xt};function Xt({node:e,data:t,pointer:n=`#`}){let{schema:r}=e;if(typeof t==`string`&&new RegExp(r.pattern,r.regexFlags??Yt).test(t)===!1)return e.createError(`pattern-error`,{pattern:r.pattern,description:r.patternExample||r.pattern,received:t,schema:r,value:t,pointer:n})}const{REGEX_FLAGS:Zt}=h,Qt={id:`patternProperties`,keyword:`patternProperties`,parse:$t,addReduce:e=>e.patternProperties!=null,reduce:tn,addResolve:e=>e.patternProperties!=null,resolve:en,addValidate:e=>e.patternProperties!=null,validate:nn};function $t(e){let{schema:t}=e;if(!m(t.patternProperties))return;let n=Object.keys(t.patternProperties);n.length!==0&&(e.patternProperties=n.map(n=>({name:n,pattern:new RegExp(n,t.regexFlags??Zt),node:e.compileSchema(t.patternProperties[n],`${e.evaluationPath}/patternProperties/${n}`,`${e.schemaLocation}/patternProperties/${n}`)})))}function en({node:e,key:t}){return e.patternProperties?.find(({pattern:e})=>e.test(`${t}`))?.node}function tn({node:e,data:t,key:n}){let{patternProperties:r}=e;if(r==null)return;let i,a=Object.keys(t??{});n&&a.push(`${n}`);let o=`${e.schemaLocation}(`;return a.push(...Object.keys(e.schema.properties??{})),a.forEach((t,n,a)=>{if(a.indexOf(t)!==n)return;let s=e.schema.properties?.[t]??{},c=r.filter(e=>e.pattern.test(t));c.forEach(e=>s=v(s,e.node.schema)),c.length>0&&(i??={properties:{}},i.properties[t]=s,o+=`${c.map(({name:e})=>`patternProperties/${e}`).join(`,`)}`)}),i==null?e:(i=v(e.schema,i,`patternProperties`),e.compileSchema(i,e.evaluationPath,e.schemaLocation,`${o})`))}function nn({node:e,data:t,pointer:n,path:r}){if(!m(t))return;let{schema:i,patternProperties:a}=e,o=i.properties||{},s=Object.keys(i.patternProperties).join(`,`),c=[];return Object.keys(t).forEach(l=>{let u=b(t,l),d=a.filter(e=>e.pattern.test(l));d.forEach(({node:e})=>c.push(...w(e,u,`${n}/${l}`,r))),!o[l]&&d.length===0&&i.additionalProperties===!1&&c.push(e.createError(`no-additional-properties-error`,{key:l,pointer:`${n}/${l}`,schema:i,value:u,patterns:s}))}),c}const rn={id:`property`,keyword:`properties`,parse:on,addResolve:e=>e.properties!=null,resolve:an,addValidate:e=>e.properties!=null,validate:sn};function an({node:e,key:t}){return e.properties?.[t]}function on(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;t.properties&&(e.properties={},Object.keys(t.properties).forEach(i=>{let a=e.compileSchema(t.properties[i],`${n}/properties/${i}`,`${r}/properties/${i}`);e.properties[i]=a}))}function sn({node:e,data:t,pointer:n,path:r}){if(!m(t))return;let i=[];return Object.keys(t).forEach(a=>{if(e.properties[a]==null)return;let o=e.properties[a],s=w(o,b(t,a),`${n}/${a}`,r);i.push(...s)}),i}const cn={id:`propertyNames`,keyword:`propertyNames`,parse:ln,addValidate:({schema:e})=>e.propertyNames!=null,validate:un};function ln(e){let{propertyNames:t}=e.schema;t!=null&&m(t)&&(e.propertyNames=e.compileSchema(t,`${e.evaluationPath}/propertyNames`,`${e.schemaLocation}/propertyNames`))}function un({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!m(t))return;if(i.propertyNames===!1)return Object.keys(t).length===0?void 0:e.createError(`invalid-property-name-error`,{property:Object.keys(t),pointer:n,value:t,schema:i});if(i.propertyNames===!0||!m(e.propertyNames))return;let a=[];return Object.keys(t).forEach(o=>{let s=w(e.propertyNames,o,`${n}/prop`,r);s.length>0&&a.push(e.createError(`invalid-property-name-error`,{property:o,pointer:n,validationError:s[0],value:t[o],schema:i}))}),a}const dn={id:`$ref`,keyword:`$ref`,parse:fn,addValidate:({schema:e})=>e.$ref!=null,validate:pn};function fn(e){let t=e.parent?.$id;if(e.schema?.$ref??(t=f(e.parent?.$id,e.schema?.$id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=Ve,e.context.refs[t]??(e.context.refs[t]=e),t!==e.parent?.$id&&(e.lastIdPointer=e.evaluationPath),e.lastIdPointer!==`#`&&e.evaluationPath.startsWith(e.lastIdPointer)){let n=`#${e.evaluationPath.replace(e.lastIdPointer,``)}`;e.context.refs[f(t,n)]=e}else e.context.refs[f(t,e.evaluationPath)]=e;e.context.refs[f(e.context.rootNode.$id,e.evaluationPath)]=e,e.schema.$ref&&(e.$ref=f(t,e.schema.$ref))}function pn({node:e,data:t,pointer:n=`#`,path:r}){let i=mn(e,n,r);if(i!=null)return w(i,t,n,r)}function mn(e,t,n){let r=e.resolveRef({pointer:t,path:n});if(r!=null)return r!==e&&r?mn(r,t,n):e}const hn={id:`$ref`,keyword:`$ref`,parse:_n,addValidate:({schema:e})=>e.$ref!=null,validate:dn.validate};function gn(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function _n(e){let t=e.parent?.$id;if(e.schema?.$ref==null&&e.schema?.id&&(t=f(e.parent?.$id,e.schema.id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=vn,e.context.refs[t]??(e.context.refs[t]=e),t!==e.parent?.$id&&(e.lastIdPointer=e.evaluationPath),e.lastIdPointer!==`#`&&e.evaluationPath.startsWith(e.lastIdPointer)){let n=`#${e.evaluationPath.replace(e.lastIdPointer,``)}`;gn(e,f(t,n))}else gn(e,f(t,e.evaluationPath));gn(e,f(e.context.rootNode.$id,e.evaluationPath)),e.schema.$ref&&(e.$ref=f(t,e.schema.$ref))}function vn({pointer:e,path:t}={}){let n=this;if(n.$ref==null)return n;let r=bn(n);return r==null?console.log(`failed resolving`,n.$ref,`from`,Object.keys(n.context.refs)):t?.push({pointer:e,node:r}),r}function yn(e,t=e.evaluationPath){let n=m(e.schema)?fe(e.schema,`id`):e.schema;return e.compileSchema(n,`${t}/$ref`,n.schemaLocation)}function bn(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return yn(e.context.refs[t],e.evaluationPath);if(e.context.anchors[t])return yn(e.context.anchors[t],e.evaluationPath);let n=de(t);if(n.length!==0){if(n.length===1){let t=n[0];return e.context.remotes[t]?yn(e.context.remotes[t],e.evaluationPath):void 0}if(n.length===2){let r=n[0];if(e.context.remotes[r]&&e!==e.context.remotes[r]){let i=e.context.remotes[r],a=bn(i,t);if(a||(a=bn(i,n[1]),a))return a}let i=n[0];if(e.context.refs[i]){let t=e.context.refs[i],r=n[1].split(`$defs/`).pop();return bn(t?.$defs?.[r])}return}console.error(`REF: INVALID`,t)}}const xn={id:`required`,keyword:`required`,addValidate:({schema:e})=>Array.isArray(e.required),validate:Sn};function Sn({node:e,data:t,pointer:n=`#`}){let{schema:r}=e;if(m(t))return r.required.map(i=>{if(!we(t,i))return e.createError(`required-property-error`,{key:i,pointer:n,schema:r,value:t})})}function Cn(e){return{...e,keywords:[...e.keywords.map(e=>({...e}))]}}function wn(e,t){let{keywords:n}=Tn(e,...t.keywords??[]),r={...e.errors,...t.errors??{}},i={...e.formats,...t.formats??{}};return q({...e,...t,formats:i,keywords:n,errors:r})}function Tn(e,...t){let n=Cn(e);return t.forEach(e=>En(n,e)),n}function En(e,t){let n=e.keywords.findIndex(e=>e.keyword===t.keyword);n===-1?e.keywords.push(t):e.keywords[n]=t}function q(e){return e.keywords.forEach(e=>{let t=()=>e.keyword;e.validate&&(e.validate.toJSON=t,e.validate.order=e.order??0),e.reduce&&(e.reduce.toJSON=t,e.reduce.order=e.order??0),e.resolve&&(e.resolve.toJSON=t,e.resolve.order=e.order??0)}),e.keywords.sort((e,t)=>(t.order??0)-(e.order??0)),e}const Dn={id:`type`,keyword:`type`,addReduce:e=>Array.isArray(e.schema.type),reduce:On,addValidate:({schema:e})=>e.type!=null,validate:An};function On({node:e,pointer:t,data:n}){let r=kn(n,e.schema.type);if(r!==`undefined`&&Array.isArray(e.schema.type)&&e.schema.type.includes(r))return e.compileSchema({...e.schema,pointer:t,type:r},e.evaluationPath)}function kn(e,t){let n=p(e);return n===`number`&&(t===`integer`||Array.isArray(t)&&t.includes(`integer`))?Number.isInteger(e)||isNaN(e)?`integer`:`number`:n}function An({node:e,data:t,pointer:n}){let r=e.schema,i=kn(t,r.type);if(!(t===void 0||r.type===i||Array.isArray(r.type)&&r.type.includes(i)))return e.createError(`type-error`,{value:t,received:i,expected:r.type,schema:r,pointer:n})}const jn={id:`uniqueItems`,keyword:`uniqueItems`,addValidate:({schema:e})=>e.uniqueItems===!0,validate:Mn};function Mn({node:e,data:t,pointer:n}){if(!Array.isArray(t))return;let{schema:r}=e,i=[],a=[];return t.forEach((o,s)=>{for(let c=s+1;c<t.length;c+=1)(0,u.default)(o,t[c])&&!i.includes(c)&&(a.push(e.createError(`unique-items-error`,{pointer:`${n}/${c}`,duplicatePointer:`${n}/${s}`,arrayPointer:n,value:JSON.stringify(o),schema:r})),i.push(c))}),a}function Nn(e,t){if(e.oneOf)return e.oneOf.map(e=>e.resolveRef());if(e.items?.oneOf)return e.items.oneOf.map(e=>e.resolveRef());if(e.prefixItems&&e.prefixItems.length>+t){let{node:n,error:r}=e.getNodeChild(t);return e?[n]:r}if(e.schema.additionalItems)return e.schema.additionalItems===!0?[e.compileSchema({type:`string`})]:[e.items.resolveRef()];if(e.prefixItems&&e.prefixItems.length<=+t)return[];let{node:n,error:r}=e.getNodeChild(t);return r||[n]}const Pn=[`string`,`number`,`integer`,`boolean`,`null`,`array`,`object`],Fn=[`additionalProperties`,`dependencies`,`dependentSchemas`,`dependentRequired`,`maxProperties`,`minProperties`,`patternProperties`,`properties`,`propertyNames`,`required`,`unevaluatedProperties`],In=[`contains`,`items`,`maxItems`,`minItems`,`unevaluatedItems`,`uniqueItems`];function J(e,t){let n=p(t),r=e.schema;if(r===!0)return Pn.includes(n)?n:void 0;if(!m(r))return;let i=r.type;if(Array.isArray(i)){if(i.includes(n))return n;let e=p(r.default);return i.includes(e)?e:i[0]}if(i)return i;if(Array.isArray(r.enum)){let e=r.enum.map(e=>p(e)).filter((e,t,n)=>n.indexOf(e)===t);if(e.includes(n))return n;let t=p(r.default);return e.includes(t)?t:e[0]}let a=Object.keys(e.schema),o=a.filter(e=>Fn.includes(e)),s=a.filter(e=>In.includes(e));if(o.length>0&&o.length>s.length)return`object`;if(s.length>0&&s.length>o.length)return`array`;if(e.if)return J(e.if,t);if(e.allOf)for(let n=0;n<e.allOf.length;n+=1){let r=J(e.allOf[n],t);if(r)return r}if(e.oneOf)for(let n=0;n<e.oneOf.length;n+=1){let r=J(e.oneOf[n],t);if(r)return r}if(e.anyOf)for(let n=0;n<e.anyOf.length;n+=1){let r=J(e.anyOf[n],t);if(r)return r}}function Ln(e){switch(p(e)){case`string`:case`array`:return e?.length===0;case`null`:case`undefined`:return!0;case`object`:return Object.keys(e).length===0;default:return!1}}let Rn=()=>!1;try{typeof File==`function`&&(Rn=e=>e instanceof File)}catch{}function zn(e,t){if(e.$ref==null)return;let{cache:n,recursionLimit:r=1}=t,i=e.schemaLocation;if(n[i]=n[i]??{},n[i][e.$ref]=n[i][e.$ref]??0,n[i][e.$ref]>=r&&t.disableRecursionLimit!==!0)return!1;t.disableRecursionLimit=!1,n[i][e.$ref]+=1;let a=e.resolveRef();if(a&&a!==e)return a}function Bn(e,t){return(t.cache?.[e.schemaLocation]?.[e.$ref]??-1)<t.recursionLimit}function Vn(e,t){let n=p(t);if(e===void 0||t==null||n===e||n===`number`&&e===`integer`)return t;if(e===`string`)return JSON.stringify(t);if(n!==`string`)return t;try{let n=JSON.parse(t);if(p(n)===e)return n}catch{}return t}function Hn(e,t,n){if(n?.cache==null)throw Error(`Missing options`);if(e.schema===!1||e.schema===!0||Rn(t))return t;if(e.schema?.const!==void 0)return e.schema?.const;let r=e,i=t;if(Array.isArray(e.schema.enum)&&e.schema.enum.length>0&&t===void 0)return e.schema.default??e.schema.enum[0];if(e.schema.default!==void 0&&i===void 0&&(i=e.schema.default),r.allOf?.length&&r.allOf.forEach(e=>{i=e.getData(i,n)??i}),r.anyOf?.length>0&&(i=r.anyOf[0].getData(i,n)??i),r.oneOf?.length>0)if(Ln(i))r=y(r,r.oneOf[0]);else{let e=qt({node:r,data:i,path:[],pointer:`#`});if(S(e)){if(i!=null&&n.removeInvalidData!==!0)return i;r=r.oneOf[0],i=void 0}else r=y(r,e)}let a=zn(r,n);if(a===!1)return i;a&&a!==r&&(i=a.getData(i,n)??i,r=a);let o=Un[J(r,i)]?.(r,i,n);return o===void 0?i:o}const Un={null:(e,t,n)=>Wn(e,t,null,n.useTypeDefaults),string:(e,t,n)=>Wn(e,t,``,n.useTypeDefaults),number:(e,t,n)=>Wn(e,t,0,n.useTypeDefaults),integer:(e,t,n)=>Wn(e,t,0,n.useTypeDefaults),boolean:(e,t,n)=>Wn(e,t,!1,n.useTypeDefaults),object:(e,t,n)=>{let r=e.schema,i=r.default===void 0?{}:r.default,a={},o=n.extendDefaults===!1&&r.default!==void 0?[]:r.required??[];if(e.properties&&Object.keys(e.properties).forEach(r=>{let s=e.properties[r],c=o.includes(r),l=b(t,r),u=t===void 0||l===void 0?b(i,r):l;if(u!=null||c||n.addOptionalProps){let e=s.getData(u,n);(e!==void 0||n.useTypeDefaults!==!1)&&(a[r]=e)}}),m(e.dependentRequired)&&Object.keys(e.dependentRequired).forEach(t=>{let r=e.dependentRequired[t];b(a,t)!==void 0&&r.forEach(t=>{let{node:r}=e.getNodeChild(t,a);r&&(a[t]=r.getData(b(a,t),n))})}),e.dependentSchemas&&Object.keys(e.dependentSchemas).forEach(r=>{let i=e.dependentSchemas[r];if(a[r]!==void 0&&x(i)){let e=i.getData(t??a,n);Object.assign(a,e)}}),t&&(n.removeInvalidData===!0&&(r.additionalProperties===!1||m(r.additionalProperties))?x(e.additionalProperties)&&Object.keys(t).forEach(n=>{if(a[n]==null){let r=b(t,n);e.additionalProperties.validate(r).valid&&(a[n]=r)}}):Object.keys(t).forEach(e=>a[e]==null&&(a[e]=b(t,e)))),e.if){let{valid:t}=e.if.validate(a);if(t&&e.then){let t=e.then.getData(a,n);Object.assign(a,t)}else if(!t&&e.else){let t=e.else.getData(a,n);Object.assign(a,t)}}return{...i,...a}},array:(e,t,n)=>{let r=e.schema,i=r.default===void 0?[]:r.default,a=Array.isArray(t)?[...t]:i,o=n.extendDefaults===!1&&r.default!==void 0?0:r.minItems??0;if(r.items==null){if(e.items){let t=Math.max(o,a.length);for(let r=0;r<t;r+=1)a[r]=e.items.getData(a[r],n)}return a||[]}if(e.prefixItems){let r=Array.isArray(t)?t:[],s=Math.max(o??0,e.prefixItems.length);for(let t=0;t<s;t+=1){let o=e.prefixItems[t]??e.items;if(o&&Bn(o,n)||r[t]!==void 0){let e=o.getData(a[t]==null?i[t]:a[t],n);e!==void 0&&(a[t]=e)}}return a||[]}if(e.items==null)return a;if(e.items&&Bn(e.items,n)||Array.isArray(t)&&t?.length>0){let t={...n.cache};for(let r=0,s=Math.max(o,a.length);r<s;r+=1){n.cache=(0,c.default)(t);let o={...n,disableRecursionLimit:!0},s=e.items.getData(a[r]==null?i[r]:a[r],o);if(s===void 0)return a;a[r]=s}}return a}};function Wn({schema:e},t,n,r){return t===void 0?e.const?e.const:e.default===void 0&&Array.isArray(e.enum)?e.enum[0]:e.default===void 0&&r!==!1?n:e.default:Vn(e.type,t)}function Y(e,t,n=`#`,r=[]){let i=e.resolveRef();return r.push({node:i,value:t,pointer:n}),m(t)?Object.keys(t).forEach(e=>{let{node:a}=i.getNodeChild(e,t);a&&Y(a,b(t,e),`${n}/${e}`,r)}):Array.isArray(t)&&t.forEach((e,a)=>{let{node:o}=i.getNodeChild(a,t);o&&Y(o,b(t,a),`${n}/${a}`,r)}),r}const Gn={"additional-items-error":"Array at `{{pointer}}` may not have an additional item `{{key}}`","additional-properties-error":"Additional property `{{property}}` on `{{pointer}}` does not match schema `{{schema}}`","all-of-error":"Value `{{value}}` at `{{pointer}}` does not match schema of `{{allOf}}`","any-of-error":"Value `{{value}}` at `{{pointer}}` does not match any schema of `{{anyOf}}`","const-error":"Expected value at `{{pointer}}` to be `{{expected}}`, but value given is `{{value}}`","contains-any-error":"The array at `{{pointer}}` must contain at least one item","contains-array-error":"The property at `{{pointer}}` must not be an array","contains-error":"The array at `{{pointer}}` must contain an element that matches `{{schema}}`","contains-min-error":"The array at `{{pointer}}` contains {{delta}} too few items matching `{{schema}}`","contains-max-error":"The array at `{{pointer}}` contains {{delta}} too many items matching `{{schema}}`","enum-error":"Expected given value `{{value}}` in `{{pointer}}` to be one of `{{values}}`","exclusive-maximum-error":"Value in `{{pointer}}` is `{{length}}`, but should be at most `{{maximum}}`","exclusive-minimum-error":"Value in `{{pointer}}` is `{{length}}`, but should be at minimum `{{minimum}}`","forbidden-property-error":"Property name `{{property}}` at `{{pointer}}` is not allowed","format-date-error":"Value `{{value}}` at `{{pointer}}` is not a valid date","format-date-time-error":"Value `{{value}}` at `{{pointer}}` is not a valid date-time","format-duration-error":"Value `{{value}}` at `{{pointer}}` is not a valid duration","format-email-error":"Value `{{value}}` at `{{pointer}}` is not a valid email","format-hostname-error":"Value `{{value}}` at `{{pointer}}` is not a valid hostname","format-ipv4-error":"Value `{{value}}` at `{{pointer}}` is not a valid IPv4 address","format-ipv4-leading-zero-error":`IPv4 addresses starting with zero are invalid, since they are interpreted as octals`,"format-ipv6-error":"Value `{{value}}` at `{{pointer}}` is not a valid IPv6 address","format-ipv6-leading-zero-error":`IPv6 addresses starting with zero are invalid, since they are interpreted as octals`,"format-json-pointer-error":"Value `{{value}}` at `{{pointer}}` is not a valid json-pointer","format-regex-error":"Value `{{value}}` at `{{pointer}}` is not a valid regular expression","format-time-error":"Value `{{value}}` at `{{pointer}}` is not a valid time","format-u