json-schema-library
Version:
Customizable and hackable json-validator and json-schema utilities for traversal, data generation and validation
1 lines • 94.5 kB
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-350yNsax.cjs`);let t=require(`fast-copy`),n=require(`@sagold/json-pointer`),r=require(`uri-js`),i=require(`valid-url`),a=require(`fast-deep-equal`);a=e.n(a);function o(e,t=[]){if(!Array.isArray(e))return e===void 0?[]:[e];for(let n of e)Array.isArray(n)?o(n,t):(je(n)||n instanceof Promise)&&t.push(n);return t}var s={DECLARATOR_ONEOF:`oneOfProperty`,propertyBlacklist:[`_id`],DYNAMIC_PROPERTIES:[`$ref`,`$defs`,`if`,`then`,`else`,`allOf`,`anyOf`,`oneOf`,`dependentSchemas`,`dependentRequired`,`definitions`,`dependencies`,`patternProperties`,`propertyDependencies`],REGEX_FLAGS:`u`,VALID_ANNOTATION_KEYWORDS:[`$id`,`$schema`,`title`,`description`,`default`,`oneOfProperty`],PROPERTIES_TO_MERGE:[`title`,`description`,`default`,`options`,`x-options`,`readOnly`,`writeOnly`]};const c=Object.prototype.toString;function l(e){let t=c.call(e).slice(8,-1).toLowerCase();return t===`file`?`object`:t}function u(e){return l(e)===`object`}function d(e){let t=e===void 0?{}:{type:l(e)};return t.type===`object`&&u(e)&&(t.properties={},Object.keys(e).forEach(n=>t.properties[n]=d(e[n]))),t.type===`array`&&Array.isArray(e)&&(e.length===1?t.items=d(e[0]):(t.items=e.map(d),t.items.find(e=>e.type!==t.items[0].type)??(t.items=t.items[0]))),t}function ee(e,t){t!=null&&Object.values(t).forEach(t=>f(t,e))}function te(e,t){t?.forEach(t=>f(t,e))}function f(e,t=[]){return v(e)?(t.push(e),ee(t,e.$defs),e.additionalProperties&&f(e.additionalProperties,t),te(t,e.allOf),te(t,e.anyOf),e.contains&&f(e.contains,t),ee(t,e.dependentSchemas),e.if&&f(e.if,t),e.else&&f(e.else,t),e.then&&f(e.then,t),e.items&&f(e.items,t),te(t,e.prefixItems),e.not&&f(e.not,t),te(t,e.oneOf),e.patternProperties&&Object.values(e.patternProperties).forEach(({node:e})=>f(e,t)),ee(t,e.properties),e.propertyNames&&f(e.propertyNames,t),e.unevaluatedProperties&&f(e.unevaluatedProperties,t),e.unevaluatedItems&&f(e.unevaluatedItems,t),t):t}const ne=/(#)+$/,re=/#$/,ie=/^[^:]+:\/\/[^/]+\//,ae=/#.*$/;function p(e,t){return t==null?e?.replace(re,``)??`#`:e==null||e===`#`?t?.replace(re,``):t[0]===`#`?e[0]===`/`?t:`${e.replace(ae,``)}${t.replace(ne,``)}`:ie.test(t)?t.replace(re,``):(0,r.resolve)(e,t??``)??`#`}function m(e,t,...n){if(t?.type===`error`)return t;if(e?.type===`error`||l(e)!==l(t))return e;let r=oe(e,t);for(let e of n)delete r[e];return r}function oe(e,t,n){if(u(e)&&u(t)){let n={};return[...Object.keys(e),...Object.keys(t)].filter((e,t,n)=>n.indexOf(e)===t).forEach(r=>n[r]=oe(e[r],t[r],r)),n}let r=Array.isArray(e),i=Array.isArray(t);if(r&&i){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)u(e[r])&&u(t[r])&&e[r].type===t[r].type?n[r]=oe(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)u(e[n])&&u(t[n])?r[n]=oe(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)}if(n===`type`&&(r||i)){if(r&&e.includes(t))return t;if(i&&t.includes(e))return e;if(r)return[...e,t];if(i)return[...t,e]}return i?t:r||t===void 0?e:t}function se(e,t){return(t.order??0)-(e.order??0)}function ce(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 le(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=h(e[r],t[r]);v(i)&&(n[r]=i)}),n}function ue(e,t){return e==null||t==null?t||e:e.concat(t).filter((e,t,n)=>n.indexOf(e)===t)}function de(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 h(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=h(e.items,t.items));let i={...e,...t,...r,dynamicId:Te(e.dynamicId,t.dynamicId),oneOfIndex:e.oneOfIndex??t.oneOfIndex,schema:m(e.schema,t.schema,...n),parent:e.parent,resolvers:e.resolvers.concat(t.resolvers).filter(ce).sort(se),reducers:e.reducers.concat(t.reducers).filter(ce).sort(se),validators:e.validators.concat(t.validators).filter(ce).sort(se),additionalProperties:h(e.additionalProperties,t.additionalProperties),contains:h(e.contains,t.contains),enum:ue(e.enum,t.enum),if:h(e.if,t.if),then:h(e.then,t.then),else:h(e.else,t.else),not:h(e.not,t.not),propertyNames:h(e.propertyNames,t.propertyNames),unevaluatedProperties:h(e.unevaluatedProperties,t.unevaluatedProperties),unevaluatedItems:h(e.unevaluatedItems,t.unevaluatedItems),$defs:le(e.$defs,t.$defs),patternProperties:de(e.patternProperties,t.patternProperties),properties:le(e.properties,t.properties),required:ue(e.required,t.required)};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 fe(e,...t){let n={};return Object.keys(e).forEach(r=>{t.includes(r)||(n[r]=e[r])}),n}function pe(e,...t){if(!u(e)||t.length===0)return e;let n={};return t.forEach(t=>{e[t]!==void 0&&(n[t]=e[t])}),n}function me(e,t={}){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>{let r=t[n];return r==null?``:typeof r==`object`?JSON.stringify(r):String(r)})}function g(e,t,n,r){if(x(e))return[e];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 o(a)}const he=Object.prototype.hasOwnProperty,ge=(e,t)=>!(e[t]===void 0||!he.call(e,t));function _(e,t){if(u(e)||Array.isArray(e))return e[t]}function _e(e,t,r={}){r.path=r.path??[],r.withSchemaWarning=r.withSchemaWarning??!1,r.pointer=r.pointer??`#`;let i=this,a=(0,n.split)(e);if(a.length===0){let e=i.resolveRef(r);return x(e)?{node:void 0,error:e}:{node:e,error:void 0}}let o=`#`,s=i;for(let e=0,n=a.length;e<n;e+=1){o=`${o}/${a[e]}`;let n=s.getNodeChild(a[e],t,{...r,pointer:o});if(n.error||n.node==null)return n;s=n.node,t=_(t,a[e])}let{node:c,error:l}=s.resolveRef(r).reduceNode(t);return x(l)?{node:void 0,error:l}:v(c)?{node:c,error:void 0}:{error:void 0}}function ve(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;v(n.node)&&(a=n.node)}for(let n of a.resolvers){let o=n({data:t,key:e,node:a});if(x(o))return{node:void 0,error:o};if(v(o))return{node:o.resolveRef({pointer:i,path:r}),error:void 0}}return n.createSchema===!0?{node:a.compileSchema(a.createSchema(_(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}}const{DYNAMIC_PROPERTIES:ye,REGEX_FLAGS:be,DECLARATOR_ONEOF:xe,VALID_ANNOTATION_KEYWORDS:Se}=s;function v(e){return u(e)&&Array.isArray(e?.reducers)&&Array.isArray(e?.resolvers)}function Ce(e){for(let t=0,n=ye.length;t<n;t+=1)if(ge(e,ye[t]))return!0;return!1}function we(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,be).test(t))??e[e.length-1]}function Te(e,t){return e==t?e??``:e==null||t==null?(e||t)??``:e.startsWith(t)?e:t.startsWith(e)?t:`${e}+${t}`}const Ee={compileSchema(e,t,r,i){let a=this;t??=a.evaluationPath;let s=t.split(`/$ref`)[0],c={lastIdPointer:a.lastIdPointer,context:a.context,parent:a,evaluationPath:t,dynamicId:Te(a.dynamicId,i),schemaLocation:r??(0,n.join)(a.schemaLocation,s),reducers:[],resolvers:[],validators:[],schema:e,...Ee};return!y(e)&&!b(e)?(c.schemaValidation=[c.createError(`schema-error`,{pointer:r??t,schema:e,value:void 0,message:`JSON schema must be object or boolean - reveived: '${e}'`})],c):(c.schemaValidation=o(ke(c).filter(e=>e!=null)),c)},createError(e,t,n){let r=this,i=n;if(i===void 0){let n=r.schema?.errorMessages?.[e]??r.context.errors[e];if(typeof n==`function`)return n(t);i=me(n??name,t)}return{type:`error`,code:e,message:i,data:t}},createAnnotation(e,t,n){let r=this,i=n;if(i===void 0){let n=r.schema?.errorMessages?.[e]??r.context.errors[e];if(typeof n==`function`)return n(t);i=me(n??name,t)}return{type:`annotation`,code:e,message:i,data:t}},createSchema:d,getChildSelection(e){let t=this;return t.context.methods.getChildSelection(t,e)},getNode:_e,getNodeChild:ve,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=`missing-key`,pointer:i=n.evaluationPath,path:a}=t;if(n.schema===!1)return{node:n,error:void 0};if(n.schema===!0){let t=n.compileSchema(d(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 of c){let c=t({data:e,key:r,node:n,pointer:i,path:a??[]});if(x(c))return{node:void 0,error:c};if(c){if(c.schema===!1){o=!1;break}s=h(s,c)}}return o===!1?{node:{...n,schema:!1,reducers:[]},error:void 0}:(s!==n&&a?.push({pointer:i,node:n}),s.schema=fe(s.schema,xe,...ye),ye.forEach(e=>s[e]=void 0),{node:s,error:void 0})},validate(e,t=`#`,n=[]){let r=this,i=g(r,e,t,n)??[],a=[],s=[],c=o(Array.isArray(i)?i:[i]).filter(x),l=[];return o(Array.isArray(i)?i:[i]).forEach(e=>{if(x(e)){if(r.context.throwOnInvalidRef&&e.code===`ref-error`){let t=Error(`Invalid $ref: `+e.message);throw t.data=a,t}a.push(e)}else e instanceof Promise?l.push(e.then(o)):Me(e)&&s.push(e)}),{valid:c.length===0,errors:a,annotations:s,errorsAsync:l}},addRemoteSchema(e,n){y(n)&&(n.$id=p(n.$id||e));let r=this,{context:i}=r,a=y(n)?r.context.draft??n.$schema:void 0,o=we(i.drafts,a??i.rootNode.schema?.$schema),s={evaluationPath:`#`,lastIdPointer:`#`,schemaLocation:`#`,dynamicId:``,reducers:[],resolvers:[],validators:[],schema:n,context:{...i,refs:{},anchors:{},...(0,t.copy)(pe(o,`methods`,`keywords`,`version`,`formats`,`errors`))},...Ee};return s.context.rootNode=s,s.context.remotes[p(e)]=s,ke(s),r},resolveRef(e){throw Error(`method 'resolveRef' is not implemented`)},toSchemaNodes(){return f(this)},toDataNodes(e,t){let n=this;return n.context.methods.toDataNodes(n,e,t)},toJSON(){let e=this;return{...e,context:void 0,errors:void 0,parent:e.parent?.evaluationPath}}},De=[`$ref`,`if`,`$defs`],Oe=[`draft-04`,`draft-06`,`draft-07`];function ke(e){if(e.schema.$ref&&Oe.includes(e.context.version))return e.context.keywords.filter(({keyword:e})=>De.includes(e)).map(t=>Ae(t,e));let t=Object.keys(e.schema),n=e.context.keywords.filter(({keyword:e})=>De.includes(e)||t.includes(e)).map(t=>Ae(t,e));return t.filter(t=>!t.startsWith(`x-`)&&!Se.includes(t)&&e.context.keywords.find(e=>e.keyword===t)==null).forEach(t=>{n.push(e.createAnnotation(`unknown-keyword-warning`,{pointer:`${e.schemaLocation}/${t}`,schema:e.schema,value:t,draft:e.getDraftVersion()}))}),n}function Ae(e,t){let n=e.parse?.(t);return e.reduce&&e.addReduce?.(t)&&t.reducers.push(e.reduce),e.resolve&&e.addResolve?.(t)&&t.resolvers.push(e.resolve),e.validate&&e.addValidate?.(t)&&t.validators.push(e.validate),n}function y(e){return u(e)}function b(e){return typeof e==`boolean`}function je(e){return u(e)&&(e?.type&&e?.code&&e?.data)!=null}function Me(e){return u(e)&&e.type===`annotation`}function x(e){return u(e)&&e.type===`error`}function S(e){return typeof e==`number`}const Ne=/(#)+$/g,Pe=[``,null,`#`];function Fe(e){if(Pe.includes(e))return[];if(e=e.replace(Ne,``),e.indexOf(`#`)===-1)return[e.replace(/(#|\/)+$/g,``)];if(e.indexOf(`#`)===0)return[e.replace(Ne,``)];let t=e.split(`#`);return t[0]=t[0].replace(/(#|\/)+$/g,``),t[1]=`#${t[1].replace(Ne,``)}`,t}const Ie={id:`$ref`,keyword:`$ref`,order:10,parse:Re,addReduce:e=>e.$ref!=null||e.schema.$dynamicRef!=null,reduce:ze,addValidate:({schema:e})=>e.$ref!=null||e.$dynamicRef!=null,validate:Ve};function Le(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function Re(e){e.resolveRef=Be;let t=p(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)&&Le(e,p(t,`#${e.evaluationPath.replace(e.lastIdPointer,``)}`)),Le(e,p(e.context.rootNode.$id,e.evaluationPath));let r=e.schema.$anchor;if(r){let n=`${t.replace(/#$/,``)}#${r}`;e.context.anchors[n]??(e.context.anchors[n]=e)}let i=e.schema.$dynamicAnchor;if(i){let n=`${t.replace(/#$/,``)}#${i}`;e.context.dynamicAnchors[n]??(e.context.dynamicAnchors[n]=e)}if(e.schema.$ref&&(e.$ref=p(t,e.schema.$ref),e.$ref.startsWith(`/`)&&(e.$ref=`#${e.$ref}`)),e.$ref?.startsWith(`#/$defs/`)&&(0,n.get)(e.getNodeRoot().schema,e.$ref)==null)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/$ref`,schema:e.schema,value:e.schema.$ref,message:`Invalid $ref to missing target '${e.schema.ref}'`})}function ze({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 e.createError(`ref-error`,{ref:e.schema.$ref??e.schema.$dynamicRef,pointer:r,schema:e.schema,value:t});if(a.schemaLocation===e.schemaLocation)return a;let{node:o,error:s}=h(e,a).reduceNode(t,{key:n,pointer:r,path:i});return o??s}function Be({pointer:e,path:t=[]}={}){if(this.schema.$dynamicRef){let n=He(this,t);return x(n)||t.push({pointer:e,node:n}),n}if(this.$ref==null)return this;let n=Ue(this);return v(n)&&t.push({pointer:e,node:n}),n}function Ve({node:e,data:t,pointer:n=`#`,path:r}){let i=e.resolveRef({pointer:n,path:r});return i==null?e.createError(`ref-error`,{ref:e.schema.$ref??e.schema.$dynamicRef,pointer:n,schema:e.schema,value:t}):g(i,t,n,r)}function He(e,t){let n=t,r=p(e.$id,e.schema.$dynamicRef);if(e.context.dynamicAnchors[r]==null&&e.context.anchors[r])return C(e.context.anchors[r],e);for(let t of n){if(t.node.schema.$dynamicAnchor)return C(t.node,e);let n=e.schema.$dynamicRef.split(`#`).pop(),r=p(t.node.$id,`#${n}`);if(e.context.dynamicAnchors[r])return C(e.context.dynamicAnchors[r],e)}return Ue(e,r)}function C(e,t){let n=e.schema;return u(e.schema)&&(n={...fe(e.schema,`$id`),...pe(t.schema,...s.PROPERTIES_TO_MERGE)}),e.compileSchema(n,`${t.evaluationPath}/$ref`,e.schemaLocation)}function Ue(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return C(e.context.refs[t],e);if(e.context.anchors[t])return C(e.context.anchors[t],e);if(e.context.dynamicAnchors[t])return C(e.context.dynamicAnchors[t],e);let r=Fe(t);if(r.length===0)return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0});if(r.length===1){let t=r[0];if(e.context.remotes[t])return C(e.context.remotes[t],e);if(t[0]===`#`){let r=e.context.rootNode.schema,i=(0,n.get)(r,t);if(i)return e.compileSchema(i,`${e.evaluationPath}/$ref`,t)}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}if(r.length===2){let i=r[0];if(e.context.remotes[i]&&e!==e.context.remotes[i]){let n=e.context.remotes[i],a=Ue(n,t);if(a||(a=Ue(n,r[1]),a))return a}if(e.context.refs[i]){let a=e.context.refs[i],o=(0,n.split)(r[1]),s=a;for(let n of o)if(s=s[n===`definitions`?`$defs`:n],s==null)return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0,host:r[0],local:r[1]});return s}}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}function w(e,...t){return t.reduce((e,t)=>(t.schemaValidation&&e.push(...t.schemaValidation),e),e)}const We={id:`$defs`,keyword:`$defs`,parse:Ge};function Ge(e){let t=[];return e.schema.$defs&&(u(e.schema.$defs)?(e.$defs=e.$defs??{},Object.keys(e.schema.$defs).forEach(n=>{e.$defs[n]=e.compileSchema(e.schema.$defs[n],`${e.evaluationPath}/$defs/${Ke(n)}`,`${e.schemaLocation}/$defs/${n}`),w(t,e.$defs[n])})):t.push(e.createError(`schema-error`,{pointer:e.schemaLocation,schema:e.schema,value:e.schema.$defs,message:`$defs must be an object - received: ${typeof e.schema.$defs}`}))),e.schema.definitions&&(u(e.schema.definitions)||t.push(e.createError(`schema-error`,{pointer:e.schemaLocation,schema:e.schema,value:e.schema.$defs,message:`definitions must be an object - received: ${typeof e.schema.definitions}`})),e.$defs=e.$defs??{},Object.keys(e.schema.definitions).forEach(n=>{e.$defs[n]=e.compileSchema(e.schema.definitions[n],`${e.evaluationPath}/definitions/${Ke(n)}`,`${e.schemaLocation}/definitions/${Ke(n)}`),w(t,e.$defs[n])})),t}function Ke(e){return e=e.replace(/~/g,`~0`),e=e.replace(/\//g,`~1`),encodeURIComponent(e)}const qe={id:`$ref`,keyword:`$ref`,parse:Je,addValidate:({schema:e})=>e.$ref!=null,validate:Ye};function Je(e){let t=e.parent?.$id;if(e.schema?.$ref??(t=p(e.parent?.$id,e.schema?.$id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=Be,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[p(t,n)]=e}else e.context.refs[p(t,e.evaluationPath)]=e;e.context.refs[p(e.context.rootNode.$id,e.evaluationPath)]=e,e.schema.$ref&&(e.$ref=p(t,e.schema.$ref))}function Ye({node:e,data:t,pointer:n=`#`,path:r}){let i=Xe(e,n,r);return v(i)?g(i,t,n,r):e.createError(`ref-error`,{ref:e.schema.$ref,pointer:n,schema:e.schema,value:t})}function Xe(e,t,n){let r=e.resolveRef({pointer:t,path:n});return v(r)?r!==e&&r?Xe(r,t,n):e:e.createError(`ref-error`,{ref:e.schema.$ref,pointer:t,schema:e.schema,value:void 0})}const Ze={id:`$ref`,keyword:`$ref`,parse:$e,addValidate:({schema:e})=>e.$ref!=null,validate:qe.validate};function Qe(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function $e(e){let t=e.parent?.$id;if(e.schema?.$ref==null&&e.schema?.id&&(t=p(e.parent?.$id,e.schema.id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=et,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,``)}`;Qe(e,p(t,n))}else Qe(e,p(t,e.evaluationPath));Qe(e,p(e.context.rootNode.$id,e.evaluationPath)),e.schema.$ref&&(e.$ref=p(t,e.schema.$ref))}function et({pointer:e,path:t}={}){if(this.$ref==null)return this;let n=nt(this);return v(n)&&t?.push({pointer:e,node:n}),n}function tt(e,t=e.evaluationPath){let n=u(e.schema)?fe(e.schema,`id`):e.schema;return e.compileSchema(n,`${t}/$ref`,n.schemaLocation)}function nt(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return tt(e.context.refs[t],e.evaluationPath);if(e.context.anchors[t])return tt(e.context.anchors[t],e.evaluationPath);let n=Fe(t);if(n.length===0)return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0});if(n.length===1){let t=n[0];return e.context.remotes[t]?tt(e.context.remotes[t],e.evaluationPath):e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value: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=nt(i,t);if(a||(a=nt(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();if(r&&t?.$defs)return nt(t.$defs[r])}return}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}const T=`additionalItems`,rt={id:T,keyword:T,order:-10,parse:it,addResolve:e=>e.items!=null,resolve:at,addValidate:({schema:e})=>e[T]!=null&&e[T]!==!0&&Array.isArray(e.items),validate:ot};function it(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t.additionalItems==null||t.additionalItems===!1)return;let i=t[T];if(!(u(i)||i===!0))return e.createError(`schema-error`,{pointer:n,schema:t,value:void 0,message:`Keyword '${T}' must be an object or a boolean - received '${typeof i}'`});if(!Array.isArray(t.items))return e.createAnnotation(`schema-error`,{pointer:n,schema:t,value:void 0,message:`Keyword '${T}' is only evaluated with a given items-array`});e.items=e.compileSchema(t.additionalItems,`${n}/additionalItems`,`${r}/additionalItems`)}function at({node:e,key:t,data:n}){if(Array.isArray(n)){let r=_(n,t),{node:i,error:a}=e.items.reduceNode(r);return i??a}}function ot({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=g(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 st={id:`additionalProperties`,keyword:`additionalProperties`,order:-10,parse:ct,addResolve:({schema:e})=>e.additionalProperties!=null,resolve:lt,addValidate:({schema:e})=>e.additionalProperties!==!0&&e.additionalProperties!=null&&!(e.additionalProperties===!1&&u(e.patternProperties)),validate:ut};function ct(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(!(t.additionalProperties==null||b(t.additionalProperties)))return u(t.additionalProperties)?(e.additionalProperties=e.compileSchema(t.additionalProperties,`${n}/additionalProperties`,`${r}/additionalProperties`),e.additionalProperties.schemaValidation):e.createError(`schema-error`,{pointer:e.schemaLocation,schema:t,value:t.additionalProperties,message:`keyword 'additionalProperties' must be a valid JSON Schema - receoved: ${typeof t.additionalProperties}`})}function lt({node:e,data:t,key:n}){let r=_(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:_(t,n),property:`${n}`})}function ut({node:e,data:t,pointer:n=`#`,path:r}){if(!u(t))return;let{schema:i}=e,a=[],o=Object.keys(t).filter(e=>s.propertyBlacklist.includes(e)===!1),c=e.patternProperties;Array.isArray(c)&&(o=o.filter(e=>{for(let t of c)if(t.pattern.test(e))return!1;return!0}));let l=e.properties?Object.keys(e.properties):[];return o.filter(e=>l.indexOf(e)===-1).forEach(o=>{let s=_(t,o);if(s!==void 0)if(u(e.additionalProperties)){let t=g(e.additionalProperties,s,`${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:l}))}),a}const E=`allOf`,dt={id:E,keyword:E,parse:ft,addReduce:e=>e[E]!=null,reduce:pt,addValidate:e=>e[E]!=null,validate:mt};function ft(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t[E]!=null){if(!Array.isArray(t[E]))return e.createError(`schema-error`,{pointer:r,schema:t,value:t[E],message:`Keyword '${E}' must be an array - received '${typeof t[E]}'`});if(t[E].length!==0)return e[E]=t[E].map((t,i)=>e.compileSchema(t,`${n}/${E}/${i}`,`${r}/${E}/${i}`)),w([],...e[E])}}function pt({node:e,data:t,key:n,pointer:r,path:i}){if(e[E]==null)return;let a={},o=``;for(let s=0;s<e[E].length;s+=1){let{node:c}=e[E][s].reduceNode(t,{key:n,pointer:r,path:i});if(c){let t=c.dynamicId?.replace(e.dynamicId,``)??``,n=t===``?`${E}/${s}`:t;o+=`${o===``?``:`,`}${n}`;let r=m(e[E][s].schema,c.schema);a=m(a,r,E,`contains`)}}return e.compileSchema(a,`${e.evaluationPath}/${o}`,e.schemaLocation,`${e.schemaLocation}(${o})`)}function mt({node:e,data:t,pointer:n,path:r}){if(!Array.isArray(e[E])||e[E].length===0)return;let i=[];return e[E].forEach(e=>{i.push(...g(e,t,n,r))}),i}const D=`anyOf`,ht={id:D,keyword:D,parse:gt,addReduce:e=>e[D]!=null,reduce:_t,addValidate:e=>e[D]!=null,validate:vt};function gt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t[D]!=null){if(!Array.isArray(t[D]))return e.createError(`schema-error`,{pointer:r,schema:t,value:t[D],message:`Keyword '${D}' must be an array - received '${typeof t[D]}'`});if(t[D].length!==0)return e[D]=t[D].map((t,i)=>e.compileSchema(t,`${n}/${D}/${i}`,`${r}/${D}/${i}`)),w([],...e[D])}}function _t({node:e,data:t,pointer:n,path:r}){if(e[D]==null)return;let i={},a=``;for(let o=0;o<e[D].length;o+=1)if(g(e[D][o],t,n,r).length===0){let{node:n}=e[D][o].reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``)??``,r=t===``?`${D}/${o}`:t;a+=`${a===``?``:`,`}${r}`;let s=m(e[D][o].schema,n.schema);i=m(i,s,D)}}return e.compileSchema(i,`${e.evaluationPath}${a}`,e.schemaLocation,`${e.schemaLocation}(${a})`)}function vt({node:e,data:t,pointer:n,path:r}){if(e[D]!=null){for(let i of e[D])if(g(i,t,n,r).length===0)return;return e.createError(`any-of-error`,{pointer:n,schema:e.schema,value:t,anyOf:e.schema[D]})}}const O=`contains`,yt={id:O,keyword:O,parse:bt,addValidate:e=>e[O]!=null,validate:xt,addReduce:e=>e[O]!=null,reduce:({node:e})=>e.compileSchema({items:{anyOf:[e[O].schema]}},e.evaluationPath,e.schemaLocation)};function bt(e){let t=e.schema[O];if(t!=null)return y(t)||b(t)?(e[O]=e.compileSchema(t,`${e.evaluationPath}/${O}`),e[O].schemaValidation):e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${O}`,schema:e.schema,value:t,message:`Keyword '${O}' must be a valid JSON Schema - received '${typeof t}'`})}function xt({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(!u(i.contains)||!Array.isArray(t))return;let a=0;for(let i of t)g(e.contains,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})}function St(e){return Array.isArray(e)&&e.find(e=>typeof e!=`string`)==null}const k=`dependentRequired`,Ct={id:k,keyword:k,parse:wt,addValidate:e=>e[k]!=null,validate:Tt};function wt(e){let{schema:t}=e;if(t[k]==null)return;if(!u(t[k]))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${k}`,schema:t,value:t[k],message:`Keyword '${k}' must be an object - received '${typeof t[k]}'`});let n=[];e.dependentRequired={};for(let r of Object.keys(t[k])){let i=t[k][r];St(i)?e.dependentRequired[r]=i:n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${k}/${r}`,schema:t,value:i,message:`Keyword '${k}[string]' must be a string[] - received '${typeof i}'`}))}return n}function Tt({node:e,data:t,pointer:n=`#`}){let{dependentRequired:r}=e;if(r==null||!u(t))return;let i=[];return Object.keys(t).forEach(a=>{let o=r[a];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 A=`dependentSchemas`,Et={id:A,keyword:A,parse:Dt,addReduce:e=>e.dependentSchemas!=null,reduce:Ot,addValidate:e=>e.dependentSchemas!=null,validate:kt};function Dt(e){let{dependentSchemas:t}=e.schema;if(t==null)return;if(!u(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${A}`,schema:e.schema,value:t,message:`Keyword '${A}' must be an object - received '${typeof t}'`});if(Object.keys(t).length===0)return;let n=[],r={};for(let i of Object.keys(t)){let a=t[i];u(a)?(r[i]=e.compileSchema(a,`${e.evaluationPath}/${A}/${i}`,`${e.schemaLocation}/${A}/${i}`),w(n,r[i])):b(a)?r[i]=a:n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${A}/${i}`,schema:e.schema,value:a,message:`Keyword '${A}[string]' must be a valid JSON Schema'`}))}return e.dependentSchemas=r,n}function Ot({node:e,data:t}){let{dependentSchemas:n}=e;if(!u(t)||n==null)return e;let r,i=0,a=`${e.schemaLocation}(`;return Object.keys(t).forEach(e=>{n[e]!=null&&(r??={properties:{}},v(n[e])?r=m(r,n[e].schema):r.properties[e]=n[e],a+=`${i?`,`:``}${A}/${e}`,i++)}),r==null?e:(r=m(e.schema,r,A),e.compileSchema(r,e.evaluationPath,e.schemaLocation,`${a})`))}function kt({node:e,data:t,pointer:n,path:r}){let{schema:i,dependentSchemas:a}=e;if(!u(t)||a==null)return;let s=[];return Object.keys(t).forEach(c=>{let l=a[c];if(l!==!0){if(l===!1){s.push(e.createError(`missing-dependency-error`,{pointer:n,schema:i,value:t}));return}if(v(l)){o(g(l,t,n,r),s);return}}}),s}const j=`dependencies`,At={id:j,keyword:j,parse:jt,order:-9,addReduce:e=>e.schema[j]!=null,reduce:Mt,addValidate:e=>e.schema[j]!=null,validate:Nt};function jt(e){let{dependencies:t}=e.schema;if(!u(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${j}`,schema:e.schema,value:t,message:`Keyword '${j}' must be an object - received ${typeof t}`});let n=[];for(let r of Object.keys(t)){let i=t[r];y(i)||b(i)?(e.dependentSchemas=e.dependentSchemas??{},e.dependentSchemas[r]=e.compileSchema(i,`${e.evaluationPath}/${j}/${r}`,`${e.schemaLocation}/${j}/${r}`),w(n,e.dependentSchemas[r])):St(i)?(e.dependentRequired=e.dependentRequired??{},e.dependentRequired[r]=i):n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${j}`,schema:e.schema,value:t,message:`Keyword '${j}[string]' must be JSON Schema or string[]`}))}return n}function Mt({node:e,data:t,key:n,pointer:r,path:i}){if(!u(t)||e.dependentRequired==null&&e.dependentSchemas==null)return e;let a=e.compileSchema(e.schema,e.evaluationPath,e.schemaLocation),o=a.schema.required??[],s=``,c=e.dependentRequired;c&&Object.keys(c).forEach(e=>{if(!ge(t,e)&&!o.includes(e)||c[e]==null)return;o.push(...c[e]);let n=`${j}/${e}`;s+=`${s===``?``:`,`}${n}`});let l=e.dependentSchemas;return l&&Object.keys(l).forEach(c=>{if(!ge(t,c)&&!o.includes(c))return!0;let u=l[c];if(!v(u))return!0;Array.isArray(u.schema.required)&&o.push(...u.schema.required);let d={...u,schema:{...u.schema,required:o}}.reduceNode(t,{key:n,pointer:`${r}/${j}/${c}`,path:i}).node;a=h(a,d);let ee=d.dynamicId?.replace(e.dynamicId,``)??``,te=ee===``?`${j}/${c}`:ee;s+=`${s===``?``:`,`}${te}`}),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=h(a,a,j),a.compileSchema({...a.schema,required:o},a.evaluationPath,a.schemaLocation,`${e.schemaLocation}(${s})`))}function Nt({node:e,data:t,pointer:n,path:r}){if(!u(t))return;let i=[];return e.dependentRequired&&o(Tt({node:e,data:t,pointer:n,path:r}),i),e.dependentSchemas&&o(kt({node:e,data:t,pointer:n,path:r}),i),i}const M=`deprecated`,Pt={id:M,keyword:M,parse:Ft,addValidate:e=>e[M]===!0,validate:It};function Ft(e){let t=e.schema[M];if(t!=null){if(typeof t!=`boolean`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${M}`,schema:e.schema,value:t,message:`Keyword '${M}' must be a boolean - received '${typeof t}'`});e[M]=t}}function It({node:e,data:t,pointer:n}){return[e.createAnnotation(`deprecated-warning`,{pointer:n,schema:e.schema,value:t},e.schema.deprecatedMessage)]}const N=`enum`,Lt={id:N,keyword:N,parse:Rt,addValidate:e=>e.enum!=null,validate:zt};function Rt(e){let{schema:t}=e;if(t[N]!=null){if(!Array.isArray(t[N]))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${N}`,schema:t,value:t[N],message:`Keyword '${N}' must be an array - received '${typeof t[N]}'`});e.enum=t[N]}}function zt({node:e,data:t,pointer:n=`#`}){if(e.enum==null)return;let r=l(t);if(r===`object`||r===`array`){let n=JSON.stringify(t);for(let t of e.enum)if(JSON.stringify(t)===n)return}else if(e.enum.includes(t))return;return e.createError(`enum-error`,{pointer:n,schema:e.schema,value:t,values:e.enum})}const Bt={"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-idn-hostname-error":"Value `{{value}}` at `{{pointer}}` is not a valid idn 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-iri-error":"Value `{{value}}` at `{{pointer}}` is not a valid iri","format-iri-reference-error":"Value `{{value}}` at `{{pointer}}` is not a valid iri-reference","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-uri-error":"Value `{{value}}` at `{{pointer}}` is not a valid uri","format-uri-reference-error":"Value `{{value}}` at `{{pointer}}` is not a valid uri-reference","format-uri-template-error":"Value `{{value}}` at `{{pointer}}` is not a valid uri-template","format-url-error":"Value `{{value}}` at `{{pointer}}` is not a valid url","format-uuid-error":"Value `{{value}}` at `{{pointer}}` is not a valid uuid","invalid-data-error":"No value may be specified in `{{pointer}}`","invalid-property-name-error":"Invalid property name `{{property}}` at `{{pointer}}`","maximum-error":"Value in `{{pointer}}` is `{{length}}`, but should be `{{maximum}}` at maximum","max-items-error":"Too many items in `{{pointer}}`, should be `{{maximum}}` at most, but got `{{length}}`","max-length-error":"Value `{{pointer}}` should have a maximum length of `{{maxLength}}`, but got `{{length}}`.","max-properties-error":"Too many properties in `{{pointer}}`, should be `{{maxProperties}}` at most, but got `{{length}}`","minimum-error":"Value in `{{pointer}}` is `{{length}}`, but should be `{{minimum}}` at minimum","min-items-error":"Too few items in `{{pointer}}`, should be at least `{{minItems}}`, but got `{{length}}`","min-items-one-error":"At least one item is required in `{{pointer}}`","min-length-error":"Value `{{pointer}}` should have a minimum length of `{{minLength}}`, but got `{{length}}`.","min-length-one-error":"A value is required in `{{pointer}}`","missing-one-of-declarator-error":"Missing oneOf declarator `{{declarator}}` in schema `{{schemaLocation}}`","min-properties-error":"Too few properties in `{{pointer}}`, should be at least `{{minProperties}}`, but got `{{length}}`","missing-array-item-error":`Array at '{{pointer}}' has a missing item at '{{key}}'`,"missing-dependency-error":"The required propery '{{missingProperty}}' in `{{pointer}}` is missing","missing-one-of-property-error":"Value at `{{pointer}}` must be object or array and have a property ${oneOfProperty}: ${value}","multiple-of-error":"Expected `{{value}}` in `{{pointer}}` to be multiple of `{{multipleOf}}`","multiple-one-of-error":"Value `{{value}}` should not match multiple schemas in oneOf `{{matches}}`","no-additional-properties-error":"Additional property `{{property}}` in `{{pointer}}` is not allowed","not-error":"Value `{{value}}` at pointer should not match schema `{{not}}`","one-of-error":"Value `{{value}}` in `{{pointer}}` does not match any given oneof schema","one-of-property-error":"Failed finding a matching oneOfProperty schema in `{{pointer}}` where `{{property}}` matches `{{value}}`","pattern-error":"Value in `{{pointer}}` should match `{{description}}`, but received `{{received}}`","pattern-properties-error":"Property `{{key}}` does not match any patterns in `{{pointer}}`. Valid patterns are: {{patterns}}","ref-error":`Could not resolve $ref '{{ref}}' from '{{pointer}}'`,"required-property-error":"The required property `{{key}}` is missing at `{{pointer}}`","schema-warning":`Failed retrieving a schema from '{{pointer}}' to key '{{key}}'`,"type-error":"Expected `{{value}}` ({{received}}) in `{{pointer}}` to be of type `{{expected}}`","undefined-value-error":"Value must not be undefined in `{{pointer}}`","unevaluated-property-error":"Invalid unevaluated property `{{pointer}}`","unevaluated-items-error":"Invalid unevaluated item `{{pointer}}`","unique-items-error":"Items in array must be unique. Value `{{value}}` in `{{pointer}}` is a duplicate of {{duplicatePointer}}.","unknown-property-error":"Could not find a valid schema for property `{{pointer}}` within object","value-not-empty-error":"A value for `{{property}}` is required at `{{pointer}}`","deprecated-warning":"Value at `{{pointer}}` is deprecated","schema-error":`Invalid schema found at {{pointer}}: {{message}}`,"unknown-keyword-warning":`Keyword '{{value}}' is not a valid keyword to draft '{{draft}}'`,"unknown-format-warning":`Format {{value}} is not a valid format`},Vt={id:`exclusiveMaximum`,keyword:`exclusiveMaximum`,parse:Ht,addValidate:({schema:e})=>e.exclusiveMaximum===!0||!isNaN(e.maximum),validate:Ut};function Ht(e){let{exclusiveMaximum:t}=e.schema;if(t!=null&&!(typeof t==`number`||typeof t==`boolean`))return e.createError(`schema-error`,{pointer:e.evaluationPath,schema:e.schema,value:void 0,message:`Keyword 'exclusiveMaximum' must be a number - received '${typeof t}'`})}function Ut({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 Wt={id:`exclusiveMinimum`,keyword:`exclusiveMinimum`,parse:Gt,addValidate:({schema:e})=>e.exclusiveMinimum===!0||!isNaN(e.minimum),validate:Kt};function Gt(e){let{exclusiveMinimum:t}=e.schema;if(t!=null&&!(typeof t==`number`||typeof t==`boolean`))return e.createError(`schema-error`,{pointer:e.evaluationPath,schema:e.schema,value:void 0,message:`Keyword 'exclusiveMinimum' must be a number - received '${typeof t}'`})}function Kt({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=`format`,qt={id:P,keyword:P,parse:Jt,addValidate:({schema:e})=>e?.format!=null,validate:Yt};function Jt(e){let t=e.schema[P];if(t!=null){if(typeof t!=`string`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${P}`,schema:e.schema,value:t,message:`Keyword '${P}' must be a string - received '${typeof t}'`});if(e.context.formats[t]==null)return e.createAnnotation(`unknown-format-warning`,{pointer:`${e.schemaLocation}/${P}`,schema:e.schema,value:t,message:`Keyword '${P}' must be a string - received '${typeof t}'`})}}function Yt(e){let{node:t}=e,n=t.context.formats[t.schema.format];return n?.(e)}const{REGEX_FLAGS:Xt}=s,Zt=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,Qt=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,$t=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,en=/^(?<time>(?:([0-1]\d|2[0-3]):[0-5]\d:(?<second>[0-5]\d|60)))(?:\.\d+)?(?<offset>(?:z|[+-]([0-1]\d|2[0-3])(?::?[0-5]\d)?))$/i,tn=[0,31,28,31,30,31,30,31,31,30,31,30,31],nn=/^(?:\/(?:[^~/]|~0|~1)*)*$/,rn=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,an=/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,F={date:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(typeof n!=`string`||n===``)return;let i=n.match($t);if(!i)return e.createError(`format-date-error`,{value:n,pointer:t,schema:r});let a=+i[1],o=+i[2],s=+i[3],c=a%4==0&&(a%100!=0||a%400==0);if(!(o>=1&&o<=12&&s>=1&&s<=(o==2&&c?29:tn[o])))return e.createError(`format-date-error`,{value:n,pointer:t,schema:r})},"date-time":({node:e,pointer:t,data:n,path:r})=>{let{schema:i}=e;if(typeof n!=`string`||n===``)return;let a=n.split(/t/i);if(a.length===2){let n=F.date({node:e,pointer:t,data:a[0],path:r})===void 0,i=F.time({node:e,pointer:t,data:a[1],path:r})===void 0;if(n&&i)return}return e.createError(`format-date-time-error`,{value:n,pointer:t,schema:i})},duration:({node:e,pointer:t,data:n})=>{if(l(n)===`string`&&(!an.test(n)||/(\d+M)(\d+W)|(\d+Y)(\d+W)/.test(n)))return e.createError(`format-duration-error`,{value:n,pointer:t,schema:e.schema})},email:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(typeof n!=`string`||n===``)return;let i=n.lastIndexOf(`@`),a=n.substr(0,i),o=n.substr(i+1);if(!a||!o||a.length>64||o.length>253)return e.createError(`format-email-error`,{value:n,pointer:t,schema:r});let s=a;if(/^".*"$/.test(a)&&(s=a.replace(/(^")|([. @]+)|("$)/g,``)),s[0]===`.`||s.endsWith(`.`)||s.includes(`..`)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(s))return e.createError(`format-email-error`,{value:n,pointer:t,schema:r});if(/^\[.*\]$/.test(o)){let e=o.substr(1,o.length-2);if(Zt.test(e)||Qt.test(e)||/IPv6:::[0-9a-f]{1,4}/.test(e))return}if(!/^[a-z0-9.-]+$/i.test(o)||!o.split(`.`).every(e=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(e)))return e.createError(`format-email-error`,{value:n,pointer:t,schema:r})},"json-pointer":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!nn.test(n))return e.createError(`format-json-pointer-error`,{value:n,pointer:t,schema:r})},"relative-json-pointer":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(typeof n==`string`&&!rn.test(n))return e.createError(`format-json-pointer-error`,{value:n,pointer:t,schema:r})},regex:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n==`object`||typeof n==`number`||Array.isArray(n)||l(n)===`boolean`)){if(typeof n==`string`&&/\\Z$/.test(n)===!1){try{new RegExp(n,r.regexFlags??Xt);return}catch{}return e.createError(`format-regex-error`,{value:n,pointer:t,schema:r})}return e.createError(`format-regex-error`,{value:n,pointer:t,schema:r})}},time:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(typeof n!=`string`||n===``)return;let i=n.match(en);if(!i)return e.createError(`format-date-time-error`,{value:n,pointer:t,schema:r});if(i.groups?.second===`60`){if(/23:59:60(z|\+00:00)/i.test(n))return;let a=i.groups.time.match(/(\d+):(\d+):/),o=i.groups.offset.match(/(\d+):(\d+)/);if(a&&o){let e=parseInt(a[1]),t=parseInt(o[1]),n=parseInt(a[2]),r=parseInt(o[2]),s;s=/^-/.test(i.groups.offset)?(e+t)*60+(n+r):(24+e-t)*60+(n-r);let c=Math.floor(s/60),l=c%24,u=s-c*60;if(l===23&&u===59)return}return e.createError(`format-date-time-error`,{value:n,pointer:t,schema:r})}},url:({node:e,data:t,pointer:n})=>{let{schema:r}=e;if(!(t===``||(0,i.isWebUri)(`${t}`)))return e.createError(`format-url-error`,{value:t,pointer:n,schema:r})},uuid:({node:e,data:t,pointer:n})=>{let{schema:r}=e;if(!(typeof t!=`string`||t===``)&&!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t))return e.createError(`format-uuid-error`,{value:t,pointer:n,schema:r})}};function on(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 n?[n]:r}if(e.schema.additionalItems){if(e.schema.additionalItems===!0)return[e.compileSchema({type:`string`})];if(e.items)return[e.items.resolveRef()]}if(e.prefixItems&&e.prefixItems.length<=+t)return[];let{node:n,error:r}=e.getNodeChild(t);return n?[n]:r}const sn=[`string`,`number`,`integer`,`boolean`,`null`,`array`,`object`],cn=[`additionalProperties`,`dependencies`,`dependentSchemas`,`dependentRequired`,`maxProperties`,`minProperties`,`patternProperties`,`properties`,`propertyNames`,`required`,`unevaluatedProperties`],ln=[`contains`,`items`,`maxItems`,`minItems`,`unevaluatedItems`,`uniqueItems`];function I(e,t){let n=l(t),r=e.schema;if(r===!0)return n===`bigint`?`number`:sn.some(e=>e===n)?n:void 0;if(!u(r))return;let i=r.type;if(Array.isArray(i)){if(i.includes(n))return n;let e=l(r.default);return i.includes(e)?e:i[0]}if(i)return i;if(Array.isArray(r.enum)){let e=r.enum.map(e=>l(e)).filter((e,t,n)=>n.indexOf(e)===t);if(e.includes(n))return n;let t=l(r.default);return e.includes(t)?t:e[0]}let a=Object.keys(e.schema),o=a.filter(e=>cn.includes(e)),s=a.filter(e=>ln.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 I(e.if.resolveRef()??e.if,t);if(e.allOf)for(let n of e.allOf){let e=I(n.resolveRef()??n,t);if(e)return e}if(e.oneOf)for(let n of e.oneOf){let e=I(n.resolveRef()??n,t);if(e)return e}if(e.anyOf)for(let n of e.anyOf){let e=I(n.resolveRef()??n,t);if(e)return e}if(r.$ref){let n=e.resolveRef();if(n)return I(n,t)}}function un(e){switch(l(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}}const L=`oneOf`,{DECLARATOR_ONEOF:dn}=s,fn={id:L,keyword:L,parse:mn,addReduce:e=>e[L]!=null,reduce:hn,addValidate:e=>e[L]!=null,validate:bn},pn={id:`oneOf-fuzzy`,keyword:`oneOf`,parse:mn,addReduce:e=>e.oneOf!=null,reduce:vn,addValidate:e=>e.oneOf!=null,validate:bn};function mn(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t[L]!=null){if(!Array.isArray(t[L]))return e.createError(`schema-error`,{pointer:r,schema:t,value:t[L],message:`Keyword '${L}' must be an array - received '${typeof t[L]}'`});if(t[L].length!==0)return e[L]=t[L].map((t,i)=>e.compileSchema(t,`${n}/${L}/${i}`,`${r}/${L}/${i}`)),w([],...e[L])}}function hn({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;if(t!=null&&e.schema[dn])return gn({node:e,data:t,pointer:n,path:r});let i=[],a=[];for(let o=0;o<e.oneOf.length;o+=1){let s=g(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=Te(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 gn({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;let i=e.schema[dn],a=_(t,i);if(t===void 0||a===void 0)return e.createError(`missing-one-of-property-error`,{oneOfProperty:i,pointer:n,schema:e.schema,value:t});let s=[];for(let c=0;c<e.oneOf.length;c+=1){let{node:l}=e.oneOf[c].getNodeChild(i,t);if(!v(l))return e.createError(`missing-one-of-declarator-error`,{declarator:dn,oneOfProperty:i,schemaLocation:e.oneOf[c].schemaLocation,pointer:`${n}/oneOf/${c}`,schema:e.schema,value:t});let u=o(g(l,a,`${n}/${i}`,r));if(u.length>0)s.push(...u);else{let{node:i}=e.oneOf[c].reduceNode(t,{pointer:n,path:r});if(i)return i.oneOfIndex=c,i}}return e.createError(`one-of-property-error`,{property:i,value:t,pointer:n,schema:e.schema,errors:s})}function _n(e,t,n,r){if(t==null||e.properties==null)return-1;let i=0,a=Object.keys(e.properties??{});for(let o of a)t[o]&&g(e.properties[o],t[o],n,r).length===0&&(i+=1);return i}function vn({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return e;let i=hn({node:e,data:t,pointer:n,path:r});if(v(i))return i;if(u(t)){let i,a=-1,o=0;for(let s=0;s<e.oneOf.length;s+=1){let c=e.oneOf[s],l=_n(c,t