json-schema-library 11.2.0 → 11.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/bowtie/BOWTIE.md +4 -4
- package/bowtie/Dockerfile +1 -1
- package/bowtie/{bowtie.ts → bowtie-jlib.ts} +11 -17
- package/bowtie/bowtie.test.ts +207 -16
- package/bowtie/package.json +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +75 -4
- package/dist/index.d.mts +75 -4
- package/dist/index.mjs +1 -1
- package/dist/jlib.js +2 -2
- package/package.json +2 -2
- package/src/compileSchema.test.ts +52 -0
- package/src/compileSchema.ts +51 -4
- package/src/draft04.ts +2 -2
- package/src/draft06.ts +2 -2
- package/src/draft07.ts +2 -2
- package/src/draft2019-09/keywords/$ref.ts +4 -14
- package/src/draft2019.ts +1 -1
- package/src/draft2020.ts +1 -1
- package/src/keywords/$ref.ts +3 -4
- package/src/keywords/oneOf.test.ts +3 -3
- package/src/settings.ts +27 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});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`),l=require(`@sagold/json-pointer`),u=require(`uri-js`),d=require(`@hyperjump/json-schema-formats`),ee=require(`valid-url`);ee=s(ee);let te=require(`fast-deep-equal`);te=s(te);function f(e,t=[]){if(!Array.isArray(e))return e===void 0?[]:[e];for(let n of e)Array.isArray(n)?f(n,t):(Ne(n)||n instanceof Promise)&&t.push(n);return t}var p={DECLARATOR_ONEOF:`oneOfProperty`,propertyBlacklist:[`_id`],DYNAMIC_PROPERTIES:[`$ref`,`$defs`,`if`,`then`,`else`,`allOf`,`anyOf`,`oneOf`,`dependentSchemas`,`dependentRequired`,`definitions`,`dependencies`,`patternProperties`,`propertyDependencies`],REGEX_FLAGS:`u`};const ne=Object.prototype.toString;function m(e){let t=ne.call(e).slice(8,-1).toLowerCase();return t===`file`?`object`:t}function h(e){return m(e)===`object`}function g(e){let t=e===void 0?{}:{type:m(e)};return t.type===`object`&&h(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 re(e,t){t!=null&&Object.values(t).forEach(t=>_(t,e))}function ie(e,t){t?.forEach(t=>_(t,e))}function _(e,t=[]){return C(e)?(t.push(e),re(t,e.$defs),e.additionalProperties&&_(e.additionalProperties,t),ie(t,e.allOf),ie(t,e.anyOf),e.contains&&_(e.contains,t),re(t,e.dependentSchemas),e.if&&_(e.if,t),e.else&&_(e.else,t),e.then&&_(e.then,t),e.items&&_(e.items,t),ie(t,e.prefixItems),e.not&&_(e.not,t),ie(t,e.oneOf),e.patternProperties&&Object.values(e.patternProperties).forEach(({node:e})=>_(e,t)),re(t,e.properties),e.propertyNames&&_(e.propertyNames,t),e.unevaluatedProperties&&_(e.unevaluatedProperties,t),e.unevaluatedItems&&_(e.unevaluatedItems,t),t):t}const ae=/(#)+$/,oe=/#$/,se=/^[^:]+:\/\/[^/]+\//,ce=/#.*$/;function v(e,t){return t==null?e?.replace(oe,``)??`#`:e==null||e===`#`?t?.replace(oe,``):t[0]===`#`?e[0]===`/`?t:`${e.replace(ce,``)}${t.replace(ae,``)}`:se.test(t)?t.replace(oe,``):(0,u.resolve)(e,t??``)??`#`}function y(e,t,...n){if(t?.type===`error`)return t;if(e?.type===`error`||m(e)!==m(t))return e;let r=le(e,t);for(let e of n)delete r[e];return r}function le(e,t,n){if(h(e)&&h(t)){let n={};return[...Object.keys(e),...Object.keys(t)].filter((e,t,n)=>n.indexOf(e)===t).forEach(r=>n[r]=le(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)h(e[r])&&h(t[r])&&e[r].type===t[r].type?n[r]=le(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)h(e[n])&&h(t[n])?r[n]=le(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 ue(e,t){return(t.order??0)-(e.order??0)}function de(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 fe(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=b(e[r],t[r]);C(i)&&(n[r]=i)}),n}function pe(e,t){return e==null||t==null?t||e:e.concat(t).filter((e,t,n)=>n.indexOf(e)===t)}function me(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 b(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=b(e.items,t.items));let i={...e,...t,...r,dynamicId:De(e.dynamicId,t.dynamicId),oneOfIndex:e.oneOfIndex??t.oneOfIndex,schema:y(e.schema,t.schema,...n),parent:e.parent,resolvers:e.resolvers.concat(t.resolvers).filter(de).sort(ue),reducers:e.reducers.concat(t.reducers).filter(de).sort(ue),validators:e.validators.concat(t.validators).filter(de).sort(ue),additionalProperties:b(e.additionalProperties,t.additionalProperties),contains:b(e.contains,t.contains),enum:pe(e.enum,t.enum),if:b(e.if,t.if),then:b(e.then,t.then),else:b(e.else,t.else),not:b(e.not,t.not),propertyNames:b(e.propertyNames,t.propertyNames),unevaluatedProperties:b(e.unevaluatedProperties,t.unevaluatedProperties),unevaluatedItems:b(e.unevaluatedItems,t.unevaluatedItems),$defs:fe(e.$defs,t.$defs),patternProperties:me(e.patternProperties,t.patternProperties),properties:fe(e.properties,t.properties),required:pe(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 he(e,...t){let n={};return Object.keys(e).forEach(r=>{t.includes(r)||(n[r]=e[r])}),n}function ge(e,...t){if(!h(e)||t.length===0)return e;let n={};return t.forEach(t=>{e[t]!==void 0&&(n[t]=e[t])}),n}function _e(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 x(e,t,n,r){if(E(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 f(a)}const ve=Object.prototype.hasOwnProperty,ye=(e,t)=>!(e[t]===void 0||!ve.call(e,t));function S(e,t){if(h(e)||Array.isArray(e))return e[t]}function be(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 E(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=S(t,i[e])}let{node:s,error:c}=o.resolveRef(n).reduceNode(t);return E(c)?{node:void 0,error:c}:C(s)?{node:s,error:void 0}:{error:void 0}}function xe(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;C(n.node)&&(a=n.node)}for(let n of a.resolvers){let o=n({data:t,key:e,node:a});if(E(o))return{node:void 0,error:o};if(C(o))return{node:o.resolveRef({pointer:i,path:r}),error:void 0}}return n.createSchema===!0?{node:a.compileSchema(a.createSchema(S(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:Se,REGEX_FLAGS:Ce,DECLARATOR_ONEOF:we}=p;function C(e){return h(e)&&Array.isArray(e?.reducers)&&Array.isArray(e?.resolvers)}function Te(e){for(let t=0,n=Se.length;t<n;t+=1)if(ye(e,Se[t]))return!0;return!1}function Ee(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,Ce).test(t))??e[e.length-1]}function De(e,t){return e==t?e??``:e==null||t==null?(e||t)??``:e.startsWith(t)?e:t.startsWith(e)?t:`${e}+${t}`}const Oe={compileSchema(e,t,n,r){let i=this;t??=i.evaluationPath;let a=t.split(`/$ref`)[0],o={lastIdPointer:i.lastIdPointer,context:i.context,parent:i,evaluationPath:t,dynamicId:De(i.dynamicId,r),schemaLocation:n??(0,l.join)(i.schemaLocation,a),reducers:[],resolvers:[],validators:[],schema:e,...Oe};return!w(e)&&!T(e)?(o.schemaValidation=[o.createError(`schema-error`,{pointer:n??t,schema:e,value:void 0,message:`JSON schema must be object or boolean - reveived: '${e}'`})],o):(o.schemaValidation=f(je(o).filter(e=>e!=null)),o)},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=_e(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=_e(n??name,t)}return{type:`annotation`,code:e,message:i,data:t}},createSchema:g,getChildSelection(e){let t=this;return t.context.methods.getChildSelection(t,e)},getNode:be,getNodeChild:xe,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(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 of c){let c=t({data:e,key:r,node:n,pointer:i,path:a??[]});if(E(c))return{node:void 0,error:c};if(c){if(c.schema===!1){o=!1;break}s=b(s,c)}}return o===!1?{node:{...n,schema:!1,reducers:[]},error:void 0}:(s!==n&&a?.push({pointer:i,node:n}),s.schema=he(s.schema,we,...Se),Se.forEach(e=>s[e]=void 0),{node:s,error:void 0})},validate(e,t=`#`,n=[]){let r=this,i=x(r,e,t,n)??[],a=[],o=[],s=f(Array.isArray(i)?i:[i]).filter(E),c=[];return f(Array.isArray(i)?i:[i]).forEach(e=>{if(E(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?c.push(e.then(f)):Pe(e)&&o.push(e)}),{valid:s.length===0,errors:a,annotations:o,errorsAsync:c}},addRemoteSchema(e,t){w(t)&&(t.$id=v(t.$id||e));let n=this,{context:r}=n,i=w(t)?t.$schema:void 0,a=Ee(r.drafts,i??r.rootNode.schema?.$schema),o={evaluationPath:`#`,lastIdPointer:`#`,schemaLocation:`#`,dynamicId:``,reducers:[],resolvers:[],validators:[],schema:t,context:{...r,refs:{},anchors:{},...(0,c.copy)(ge(a,`methods`,`keywords`,`version`,`formats`,`errors`))},...Oe};return o.context.rootNode=o,o.context.remotes[v(e)]=o,je(o),n},resolveRef(e){throw Error(`method 'resolveRef' is not implemented`)},toSchemaNodes(){return _(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}}},ke=[`$ref`,`if`,`$defs`],Ae=[`draft-04`,`draft-06`,`draft-07`];function je(e){if(e.schema.$ref&&Ae.includes(e.context.version))return e.context.keywords.filter(({keyword:e})=>ke.includes(e)).map(t=>Me(t,e));let t=Object.keys(e.schema),n=e.context.keywords.filter(({keyword:e})=>ke.includes(e)||t.includes(e)).map(t=>Me(t,e));return e.context.withSchemaAnnotations&&Object.keys(e.schema).filter(t=>!t.startsWith(`x-`)&&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 Me(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 w(e){return h(e)}function T(e){return typeof e==`boolean`}function Ne(e){return h(e)&&(e?.type&&e?.code&&e?.data)!=null}function Pe(e){return h(e)&&e.type===`annotation`}function E(e){return h(e)&&e.type===`error`}function D(e){return typeof e==`number`}const Fe=/(#)+$/g,Ie=[``,null,`#`];function Le(e){if(Ie.includes(e))return[];if(e=e.replace(Fe,``),e.indexOf(`#`)===-1)return[e.replace(/(#|\/)+$/g,``)];if(e.indexOf(`#`)===0)return[e.replace(Fe,``)];let t=e.split(`#`);return t[0]=t[0].replace(/(#|\/)+$/g,``),t[1]=`#${t[1].replace(Fe,``)}`,t}const Re={id:`$ref`,keyword:`$ref`,order:10,parse:Be,addReduce:e=>e.$ref!=null||e.schema.$dynamicRef!=null,reduce:Ve,addValidate:({schema:e})=>e.$ref!=null||e.$dynamicRef!=null,validate:Ue};function ze(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function Be(e){e.resolveRef=He;let t=v(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)&&ze(e,v(t,`#${e.evaluationPath.replace(e.lastIdPointer,``)}`)),ze(e,v(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)}if(e.schema.$ref&&(e.$ref=v(t,e.schema.$ref),e.$ref.startsWith(`/`)&&(e.$ref=`#${e.$ref}`)),e.$ref?.startsWith(`#/$defs/`)&&(0,l.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 Ve({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}=b(e,a).reduceNode(t,{key:n,pointer:r,path:i});return o??s}function He({pointer:e,path:t=[]}={}){if(this.schema.$dynamicRef){let n=We(this,t);return E(n)||t.push({pointer:e,node:n}),n}if(this.$ref==null)return this;let n=Ke(this);return C(n)&&t.push({pointer:e,node:n}),n}function Ue({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}):x(i,t,n,r)}function We(e,t){let n=t,r=v(e.$id,e.schema.$dynamicRef);if(e.context.dynamicAnchors[r]==null&&e.context.anchors[r])return O(e.context.anchors[r],e);for(let t of n){if(t.node.schema.$dynamicAnchor)return O(t.node,e);let n=e.schema.$dynamicRef.split(`#`).pop(),r=v(t.node.$id,`#${n}`);if(e.context.dynamicAnchors[r])return O(e.context.dynamicAnchors[r],e)}return Ke(e,r)}const Ge=[`title`,`description`,`options`,`readOnly`,`writeOnly`];function O(e,t){let n=e.schema;return h(e.schema)&&(n={...he(e.schema,`$id`),...ge(t.schema,...Ge)}),e.compileSchema(n,`${t.evaluationPath}/$ref`,e.schemaLocation)}function Ke(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return O(e.context.refs[t],e);if(e.context.anchors[t])return O(e.context.anchors[t],e);if(e.context.dynamicAnchors[t])return O(e.context.dynamicAnchors[t],e);let n=Le(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];if(e.context.remotes[t])return O(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 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=Ke(i,t);if(a||(a=Ke(i,n[1]),a))return a}if(e.context.refs[r]){let i=e.context.refs[r],a=(0,l.split)(n[1]),o=i;for(let r of a)if(o=o[r===`definitions`?`$defs`:r],o==null)return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0,host:n[0],local:n[1]});return o}}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}const qe={id:`$defs`,keyword:`$defs`,parse:Je};function Je(e){let t=[];return e.schema.$defs&&(h(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/${Ye(t)}`,`${e.schemaLocation}/$defs/${t}`)})):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&&(h(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(t=>{e.$defs[t]=e.compileSchema(e.schema.definitions[t],`${e.evaluationPath}/definitions/${Ye(t)}`,`${e.schemaLocation}/definitions/${Ye(t)}`)})),t}function Ye(e){return e=e.replace(/~/g,`~0`),e=e.replace(/\//g,`~1`),encodeURIComponent(e)}const Xe={id:`$ref`,keyword:`$ref`,parse:Ze,addValidate:({schema:e})=>e.$ref!=null,validate:Qe};function Ze(e){let t=e.parent?.$id;if(e.schema?.$ref??(t=v(e.parent?.$id,e.schema?.$id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=He,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[v(t,n)]=e}else e.context.refs[v(t,e.evaluationPath)]=e;e.context.refs[v(e.context.rootNode.$id,e.evaluationPath)]=e,e.schema.$ref&&(e.$ref=v(t,e.schema.$ref))}function Qe({node:e,data:t,pointer:n=`#`,path:r}){let i=$e(e,n,r);return C(i)?x(i,t,n,r):e.createError(`ref-error`,{ref:e.schema.$ref,pointer:n,schema:e.schema,value:t})}function $e(e,t,n){let r=e.resolveRef({pointer:t,path:n});return C(r)?r!==e&&r?$e(r,t,n):e:e.createError(`ref-error`,{ref:e.schema.$ref,pointer:t,schema:e.schema,value:void 0})}const et={id:`$ref`,keyword:`$ref`,parse:nt,addValidate:({schema:e})=>e.$ref!=null,validate:Xe.validate};function tt(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function nt(e){let t=e.parent?.$id;if(e.schema?.$ref==null&&e.schema?.id&&(t=v(e.parent?.$id,e.schema.id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=rt,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,``)}`;tt(e,v(t,n))}else tt(e,v(t,e.evaluationPath));tt(e,v(e.context.rootNode.$id,e.evaluationPath)),e.schema.$ref&&(e.$ref=v(t,e.schema.$ref))}function rt({pointer:e,path:t}={}){if(this.$ref==null)return this;let n=at(this);return C(n)&&t?.push({pointer:e,node:n}),n}function it(e,t=e.evaluationPath){let n=h(e.schema)?he(e.schema,`id`):e.schema;return e.compileSchema(n,`${t}/$ref`,n.schemaLocation)}function at(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return it(e.context.refs[t],e.evaluationPath);if(e.context.anchors[t])return it(e.context.anchors[t],e.evaluationPath);let n=Le(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]?it(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=at(i,t);if(a||(a=at(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 at(t.$defs[r])}return}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}const k=`additionalItems`,ot={id:k,keyword:k,order:-10,parse:st,addResolve:e=>e.items!=null,resolve:ct,addValidate:({schema:e})=>e[k]!=null&&e[k]!==!0&&Array.isArray(e.items),validate:lt};function st(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t.additionalItems==null||t.additionalItems===!1)return;let i=t[k];if(!(h(i)||i===!0))return e.createError(`schema-error`,{pointer:n,schema:t,value:void 0,message:`Keyword '${k}' 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 '${k}' is only evaluated with a given items-array`});e.items=e.compileSchema(t.additionalItems,`${n}/additionalItems`,`${r}/additionalItems`)}function ct({node:e,key:t,data:n}){if(Array.isArray(n)){let r=S(n,t),{node:i,error:a}=e.items.reduceNode(r);return i??a}}function lt({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=x(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 ut={id:`additionalProperties`,keyword:`additionalProperties`,order:-10,parse:dt,addResolve:({schema:e})=>e.additionalProperties!=null,resolve:ft,addValidate:({schema:e})=>e.additionalProperties!==!0&&e.additionalProperties!=null&&!(e.additionalProperties===!1&&h(e.patternProperties)),validate:pt};function dt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(!(t.additionalProperties==null||T(t.additionalProperties))){if(!h(t.additionalProperties))return 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}`});e.additionalProperties=e.compileSchema(t.additionalProperties,`${n}/additionalProperties`,`${r}/additionalProperties`)}}function ft({node:e,data:t,key:n}){let r=S(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:S(t,n),property:`${n}`})}function pt({node:e,data:t,pointer:n=`#`,path:r}){if(!h(t))return;let{schema:i}=e,a=[],o=Object.keys(t).filter(e=>p.propertyBlacklist.includes(e)===!1),s=e.patternProperties;Array.isArray(s)&&(o=o.filter(e=>{for(let t of s)if(t.pattern.test(e))return!1;return!0}));let c=e.properties?Object.keys(e.properties):[];return o.filter(e=>c.indexOf(e)===-1).forEach(o=>{let s=S(t,o);if(s!==void 0)if(h(e.additionalProperties)){let t=x(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:c}))}),a}const A=`allOf`,mt={id:A,keyword:A,parse:ht,addReduce:e=>e[A]!=null,reduce:gt,addValidate:e=>e[A]!=null,validate:_t};function ht(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t[A]!=null){if(!Array.isArray(t[A]))return e.createError(`schema-error`,{pointer:r,schema:t,value:t[A],message:`Keyword '${A}' must be an array - received '${typeof t[A]}'`});if(t[A].length!==0)return e[A]=t[A].map((t,i)=>e.compileSchema(t,`${n}/${A}/${i}`,`${r}/${A}/${i}`)),e[A].reduce((e,t)=>(t.schemaValidation&&e.push(...t.schemaValidation),e),[])}}function gt({node:e,data:t,key:n,pointer:r,path:i}){if(e[A]==null)return;let a={},o=``;for(let s=0;s<e[A].length;s+=1){let{node:c}=e[A][s].reduceNode(t,{key:n,pointer:r,path:i});if(c){let t=c.dynamicId?.replace(e.dynamicId,``)??``,n=t===``?`${A}/${s}`:t;o+=`${o===``?``:`,`}${n}`;let r=y(e[A][s].schema,c.schema);a=y(a,r,A,`contains`)}}return e.compileSchema(a,`${e.evaluationPath}/${o}`,e.schemaLocation,`${e.schemaLocation}(${o})`)}function _t({node:e,data:t,pointer:n,path:r}){if(!Array.isArray(e[A])||e[A].length===0)return;let i=[];return e[A].forEach(e=>{i.push(...x(e,t,n,r))}),i}const j=`anyOf`,vt={id:j,keyword:j,parse:yt,addReduce:e=>e[j]!=null,reduce:bt,addValidate:e=>e[j]!=null,validate:xt};function yt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t[j]!=null){if(!Array.isArray(t[j]))return e.createError(`schema-error`,{pointer:r,schema:t,value:t[j],message:`Keyword '${j}' must be an array - received '${typeof t[j]}'`});if(t[j].length!==0)return e[j]=t[j].map((t,i)=>e.compileSchema(t,`${n}/${j}/${i}`,`${r}/${j}/${i}`)),e[j].reduce((e,t)=>(t.schemaValidation&&e.push(...t.schemaValidation),e),[])}}function bt({node:e,data:t,pointer:n,path:r}){if(e[j]==null)return;let i={},a=``;for(let o=0;o<e[j].length;o+=1)if(x(e[j][o],t,n,r).length===0){let{node:n}=e[j][o].reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``)??``,r=t===``?`${j}/${o}`:t;a+=`${a===``?``:`,`}${r}`;let s=y(e[j][o].schema,n.schema);i=y(i,s,j)}}return e.compileSchema(i,`${e.evaluationPath}${a}`,e.schemaLocation,`${e.schemaLocation}(${a})`)}function xt({node:e,data:t,pointer:n,path:r}){if(e[j]!=null){for(let i of e[j])if(x(i,t,n,r).length===0)return;return e.createError(`any-of-error`,{pointer:n,schema:e.schema,value:t,anyOf:e.schema[j]})}}const M=`contains`,St={id:M,keyword:M,parse:Ct,addValidate:e=>e[M]!=null,validate:wt,addReduce:e=>e[M]!=null,reduce:({node:e})=>e.compileSchema({items:{anyOf:[e[M].schema]}},e.evaluationPath,e.schemaLocation)};function Ct(e){let t=e.schema[M];if(t!=null)return w(t)||T(t)?(e[M]=e.compileSchema(t,`${e.evaluationPath}/${M}`),e[M].schemaValidation):e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${M}`,schema:e.schema,value:t,message:`Keyword '${M}' must be a valid JSON Schema - received '${typeof t}'`})}function wt({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(!h(i.contains)||!Array.isArray(t))return;let a=0;for(let i of t)x(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 Tt(e){return Array.isArray(e)&&e.find(e=>typeof e!=`string`)==null}const N=`dependentRequired`,Et={id:N,keyword:N,parse:Dt,addValidate:e=>e[N]!=null,validate:Ot};function Dt(e){let{schema:t}=e;if(t[N]==null)return;if(!h(t[N]))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${N}`,schema:t,value:t[N],message:`Keyword '${N}' must be an object - received '${typeof t[N]}'`});let n=[];e.dependentRequired={};for(let r of Object.keys(t[N])){let i=t[N][r];Tt(i)?e.dependentRequired[r]=i:n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${N}/${r}`,schema:t,value:i,message:`Keyword '${N}[string]' must be a string[] - received '${typeof i}'`}))}return n}function Ot({node:e,data:t,pointer:n=`#`}){let{dependentRequired:r}=e;if(r==null||!h(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 P=`dependentSchemas`,kt={id:P,keyword:P,parse:At,addReduce:e=>e.dependentSchemas!=null,reduce:jt,addValidate:e=>e.dependentSchemas!=null,validate:Mt};function At(e){let{dependentSchemas:t}=e.schema;if(t==null)return;if(!h(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${P}`,schema:e.schema,value:t,message:`Keyword '${P}' 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];h(a)?(r[i]=e.compileSchema(a,`${e.evaluationPath}/${P}/${i}`,`${e.schemaLocation}/${P}/${i}`),r[i].schemaValidation&&n.push(...r[i].schemaValidation)):T(a)?r[i]=a:n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${P}/${i}`,schema:e.schema,value:a,message:`Keyword '${P}[string]' must be a valid JSON Schema'`}))}return e.dependentSchemas=r,n}function jt({node:e,data:t}){let{dependentSchemas:n}=e;if(!h(t)||n==null)return e;let r,i=0,a=`${e.schemaLocation}(`;return Object.keys(t).forEach(e=>{n[e]!=null&&(r??={properties:{}},C(n[e])?r=y(r,n[e].schema):r.properties[e]=n[e],a+=`${i?`,`:``}${P}/${e}`,i++)}),r==null?e:(r=y(e.schema,r,P),e.compileSchema(r,e.evaluationPath,e.schemaLocation,`${a})`))}function Mt({node:e,data:t,pointer:n,path:r}){let{schema:i,dependentSchemas:a}=e;if(!h(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(C(c)){f(x(c,t,n,r),o);return}}}),o}const F=`dependencies`,Nt={id:F,keyword:F,parse:Pt,order:-9,addReduce:e=>e.schema[F]!=null,reduce:Ft,addValidate:e=>e.schema[F]!=null,validate:It};function Pt(e){let{dependencies:t}=e.schema;if(!h(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${F}`,schema:e.schema,value:t,message:`Keyword '${F}' must be an object - received ${typeof t}`});let n=[];for(let r of Object.keys(t)){let i=t[r];w(i)||T(i)?(e.dependentSchemas=e.dependentSchemas??{},e.dependentSchemas[r]=e.compileSchema(i,`${e.evaluationPath}/${F}/${r}`,`${e.schemaLocation}/${F}/${r}`)):Tt(i)?(e.dependentRequired=e.dependentRequired??{},e.dependentRequired[r]=i):n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${F}`,schema:e.schema,value:t,message:`Keyword '${F}[string]' must be JSON Schema or string[]`}))}return n}function Ft({node:e,data:t,key:n,pointer:r,path:i}){if(!h(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(!ye(t,e)&&!o.includes(e)||c[e]==null)return;o.push(...c[e]);let n=`${F}/${e}`;s+=`${s===``?``:`,`}${n}`});let l=e.dependentSchemas;return l&&Object.keys(l).forEach(c=>{if(!ye(t,c)&&!o.includes(c))return!0;let u=l[c];if(!C(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}/${F}/${c}`,path:i}).node;a=b(a,d);let ee=d.dynamicId?.replace(e.dynamicId,``)??``,te=ee===``?`${F}/${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=b(a,a,F),a.compileSchema({...a.schema,required:o},a.evaluationPath,a.schemaLocation,`${e.schemaLocation}(${s})`))}function It({node:e,data:t,pointer:n,path:r}){if(!h(t))return;let i=[];return e.dependentRequired&&f(Ot({node:e,data:t,pointer:n,path:r}),i),e.dependentSchemas&&f(Mt({node:e,data:t,pointer:n,path:r}),i),i}const Lt=`deprecated`,Rt={id:Lt,keyword:Lt,parse:zt,addValidate:e=>e[Lt]===!0,validate:Bt};function zt(e){let t=e.schema[Lt];if(t!=null){if(typeof t!=`boolean`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Lt}`,schema:e.schema,value:t,message:`Keyword '${Lt}' must be a boolean - received '${typeof t}'`});e[Lt]=t}}function Bt({node:e,data:t,pointer:n}){return[e.createAnnotation(`deprecated-warning`,{pointer:n,schema:e.schema,value:t},e.schema.deprecatedMessage)]}const I=`enum`,Vt={id:I,keyword:I,parse:Ht,addValidate:e=>e.enum!=null,validate:Ut};function Ht(e){let{schema:t}=e;if(t[I]!=null){if(!Array.isArray(t[I]))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${I}`,schema:t,value:t[I],message:`Keyword '${I}' must be an array - received '${typeof t[I]}'`});e.enum=t[I]}}function Ut({node:e,data:t,pointer:n=`#`}){if(e.enum==null)return;let r=m(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 Wt={"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}}'`},Gt={id:`exclusiveMaximum`,keyword:`exclusiveMaximum`,parse:Kt,addValidate:({schema:e})=>e.exclusiveMaximum===!0||!isNaN(e.maximum),validate:qt};function Kt(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 qt({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 Jt={id:`exclusiveMinimum`,keyword:`exclusiveMinimum`,parse:Yt,addValidate:({schema:e})=>e.exclusiveMinimum===!0||!isNaN(e.minimum),validate:Xt};function Yt(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 Xt({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 Zt=`format`,Qt={id:Zt,keyword:Zt,parse:$t,addValidate:({schema:e})=>e?.format!=null,validate:en};function $t(e){let t=e.schema[Zt];if(t!=null&&typeof t!=`string`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Zt}`,schema:e.schema,value:t,message:`Keyword '${Zt}' must be a string - received '${typeof t}'`})}function en(e){let{node:t}=e,n=t.context.formats[t.schema.format];return n?.(e)}const{REGEX_FLAGS:tn}=p,nn=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,rn=/^((([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,an=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,on=/^(?<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,sn=[0,31,28,31,30,31,30,31,31,30,31,30,31],cn=/^(?:\/(?:[^~/]|~0|~1)*)*$/,ln=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,un=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,dn=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,fn=/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,pn={date:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(typeof n!=`string`||n===``)return;let i=n.match(an);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:sn[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=pn.date({node:e,pointer:t,data:a[0],path:r})===void 0,i=pn.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(m(n)===`string`&&(!fn.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(nn.test(e)||rn.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})},hostname:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||(0,d.isAsciiIdn)(n)))return e.createError(`format-hostname-error`,{value:n,pointer:t,schema:r})},"idn-hostname":({node:e,pointer:t,data:n})=>{if(!(typeof n!=`string`||(0,d.isIdn)(n)))return e.createError(`format-idn-hostname-error`,{value:n,pointer:t,schema:e.schema})},"idn-email":({node:e,pointer:t,data:n})=>{if(!(typeof n!=`string`||n===``||(0,d.isIdnEmail)(n)))return e.createError(`format-email-error`,{value:n,pointer:t,schema:e.schema})},ipv4:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)){if(n&&n[0]===`0`)return e.createError(`format-ipv4-leading-zero-error`,{value:n,pointer:t,schema:r});if(!(n.length<=15&&nn.test(n)))return e.createError(`format-ipv4-error`,{value:n,pointer:t,schema:r})}},ipv6:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)){if(n&&n[0]===`0`)return e.createError(`format-ipv6-leading-zero-error`,{value:n,pointer:t,schema:r});if(!(n.length<=45&&rn.test(n)))return e.createError(`format-ipv6-error`,{value:n,pointer:t,schema:r})}},iri:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``||(0,d.isIri)(n)))return e.createError(`format-iri-error`,{value:n,pointer:t,schema:r})},"iri-reference":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``||(0,d.isIriReference)(n)))return e.createError(`format-iri-reference-error`,{value:n,pointer:t,schema:r})},"json-pointer":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!cn.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`&&!ln.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)||m(n)===`boolean`)){if(typeof n==`string`&&/\\Z$/.test(n)===!1){try{new RegExp(n,r.regexFlags??tn);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(on);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})}},uri:({node:e,pointer:t,data:n})=>{if(!(typeof n!=`string`||n===``||(0,d.isUri)(n)))return e.createError(`format-uri-error`,{value:n,pointer:t,schema:e.schema})},"uri-reference":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!un.test(n))return e.createError(`format-uri-reference-error`,{value:n,pointer:t,schema:r})},"uri-template":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!dn.test(n))return e.createError(`format-uri-template-error`,{value:n,pointer:t,schema:r})},url:({node:e,data:t,pointer:n})=>{let{schema:r}=e;if(!(t===``||ee.default.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 mn(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 hn=[`string`,`number`,`integer`,`boolean`,`null`,`array`,`object`],gn=[`additionalProperties`,`dependencies`,`dependentSchemas`,`dependentRequired`,`maxProperties`,`minProperties`,`patternProperties`,`properties`,`propertyNames`,`required`,`unevaluatedProperties`],_n=[`contains`,`items`,`maxItems`,`minItems`,`unevaluatedItems`,`uniqueItems`];function L(e,t){let n=m(t),r=e.schema;if(r===!0)return n===`bigint`?`number`:hn.some(e=>e===n)?n:void 0;if(!h(r))return;let i=r.type;if(Array.isArray(i)){if(i.includes(n))return n;let e=m(r.default);return i.includes(e)?e:i[0]}if(i)return i;if(Array.isArray(r.enum)){let e=r.enum.map(e=>m(e)).filter((e,t,n)=>n.indexOf(e)===t);if(e.includes(n))return n;let t=m(r.default);return e.includes(t)?t:e[0]}let a=Object.keys(e.schema),o=a.filter(e=>gn.includes(e)),s=a.filter(e=>_n.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 L(e.if.resolveRef()??e.if,t);if(e.allOf)for(let n of e.allOf){let e=L(n.resolveRef()??n,t);if(e)return e}if(e.oneOf)for(let n of e.oneOf){let e=L(n.resolveRef()??n,t);if(e)return e}if(e.anyOf)for(let n of e.anyOf){let e=L(n.resolveRef()??n,t);if(e)return e}if(r.$ref){let n=e.resolveRef();if(n)return L(n,t)}}function vn(e){switch(m(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 R=`oneOf`,{DECLARATOR_ONEOF:yn}=p,bn={id:R,keyword:R,parse:Sn,addReduce:e=>e[R]!=null,reduce:Cn,addValidate:e=>e[R]!=null,validate:On},xn={id:`oneOf-fuzzy`,keyword:`oneOf`,parse:Sn,addReduce:e=>e.oneOf!=null,reduce:En,addValidate:e=>e.oneOf!=null,validate:On};function Sn(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t[R]!=null){if(!Array.isArray(t[R]))return e.createError(`schema-error`,{pointer:r,schema:t,value:t[R],message:`Keyword '${R}' must be an array - received '${typeof t[R]}'`});if(t[R].length!==0)return e[R]=t[R].map((t,i)=>e.compileSchema(t,`${n}/${R}/${i}`,`${r}/${R}/${i}`)),e[R].reduce((e,t)=>(t.schemaValidation&&e.push(...t.schemaValidation),e),[])}}function Cn({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;if(t!=null&&e.schema[yn])return wn({node:e,data:t,pointer:n,path:r});let i=[],a=[];for(let o=0;o<e.oneOf.length;o+=1){let s=x(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=De(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 wn({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;let i=e.schema[yn],a=S(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 o=[];for(let s=0;s<e.oneOf.length;s+=1){let{node:c}=e.oneOf[s].getNodeChild(i,t);if(!C(c))return e.createError(`missing-one-of-declarator-error`,{declarator:yn,oneOfProperty:i,schemaLocation:e.oneOf[s].schemaLocation,pointer:`${n}/oneOf/${s}`,schema:e.schema,value:t});let l=f(x(c,a,`${n}/${i}`,r));if(l.length>0)o.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:i,value:t,pointer:n,schema:e.schema,errors:o})}function Tn(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]&&x(e.properties[o],t[o],n,r).length===0&&(i+=1);return i}function En({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return e;let i=Cn({node:e,data:t,pointer:n,path:r});if(C(i))return i;if(h(t)){let i,a=-1,o=0;for(let s=0;s<e.oneOf.length;s+=1){let c=e.oneOf[s],l=Tn(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 Dn({node:e,data:t,pointer:n=`#`,path:r}){let{oneOf:i,schema:a}=e;if(!i)return;let o=a[yn],s=S(t,o),c=[],l=[];for(let e of i){let{node:t,error:a}=e.getNodeChild(o,s);if(t){let a=x(t,s,`${n}/${o}`,r);a.length>0?l.push(...a):c.push({index:i.indexOf(e),node:e})}else console.log(`jlib oneOf error: failed getting schema for '${o}' to resolve ${yn} in ${n}/oneOf/${i.indexOf(e)}`,a)}if(c.length===1){let e=c[0];return e.node.oneOfIndex=e.index,x(e.node,t,n,r)}return c.length>1?e.createError(`multiple-one-of-error`,{value:t,pointer:n,schema:a,matches:c}):e.createError(`one-of-error`,{value:JSON.stringify(t),pointer:n,schema:a,oneOf:a.oneOf,errors:l})}function On({node:e,data:t,pointer:n=`#`,path:r}){let{oneOf:i,schema:a}=e;if(!i)return;if(a[yn])return Dn({node:e,data:t,pointer:n,path:r});let o=[],s=[];for(let e=0;e<i.length;e+=1){let a=x(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})}let kn=()=>!1;try{typeof File==`function`&&(kn=e=>e instanceof File)}catch{}function An(e,t){if(e.$ref==null)return;t.cache=t.cache??{};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 jn(e,t){return(t.cache?.[e.schemaLocation]?.[e.$ref]??-1)<(t.recursionLimit??1)}function Mn(e,t){let n=m(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(m(n)===e)return n}catch{}return t}function Nn(e,t,n){if(n?.cache==null)throw Error(`Missing options`);if(e.schema===!1||e.schema===!0||kn(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&&r.anyOf?.length>0&&(i=r.anyOf[0].getData(i,n)??i),r.oneOf&&r.oneOf?.length>0)if(vn(i))r=b(r,r.oneOf[0]);else{let e=En({node:r,data:i,path:[],pointer:`#`});if(E(e)){if(i!=null&&n.removeInvalidData!==!0)return i;r=r.oneOf[0],i=void 0}else r=b(r,e)}let a=An(r,n);if(a===!1)return i;C(a)&&(i=a.getData(i,n)??i,r=a);let o=Pn[L(r,i)]?.(r,i,n);return o===void 0?i:o}const Pn={null:(e,t,n)=>Fn(e,t,null,n.useTypeDefaults),string:(e,t,n)=>Fn(e,t,``,n.useTypeDefaults),number:(e,t,n)=>Fn(e,t,0,n.useTypeDefaults),integer:(e,t,n)=>Fn(e,t,0,n.useTypeDefaults),boolean:(e,t,n)=>Fn(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??[],s=e.properties;s&&Object.keys(s).forEach(e=>{let r=s[e],c=o.includes(e),l=S(t,e),u=t===void 0||l===void 0?S(i,e):l;if(u!=null||c||n.addOptionalProps){let t=r.getData(u,n);(t!==void 0||n.useTypeDefaults!==!1)&&(a[e]=t)}});let c=e.dependentRequired;h(c)&&Object.keys(c).forEach(t=>{let r=c[t];S(a,t)!==void 0&&r.forEach(t=>{let{node:r}=e.getNodeChild(t,a);r&&(a[t]=r.getData(S(a,t),n))})});let l=e.dependentSchemas;if(l&&Object.keys(l).forEach(e=>{let r=l[e];if(a[e]!==void 0&&C(r)){let e=r.getData(t??a,n);Object.assign(a,e)}}),t)if(n.removeInvalidData===!0&&(r.additionalProperties===!1||h(r.additionalProperties))){let n=e.additionalProperties;C(n)&&Object.keys(t).forEach(e=>{if(a[e]==null){let r=S(t,e);n.validate(r).valid&&(a[e]=r)}})}else Object.keys(t).forEach(e=>a[e]==null&&(a[e]=S(t,e)));if(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&&jn(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&&jn(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.copy)(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 Fn({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:Mn(e.type,t)}const z=`items`,In={id:z,keyword:z,parse:Rn,addResolve:e=>(e.prefixItems||e[z])!=null,resolve:Ln,addValidate:({schema:e})=>e.items!=null,validate:zn};function Ln({node:e,key:t}){if(e.prefixItems?.[t])return e.prefixItems[t];if(e.items)return e.items}function Rn(e){let{schema:t,evaluationPath:n}=e,r=t[z];if(!(r==null||typeof r==`boolean`)){if(h(r)){e.items=e.compileSchema(r,`${n}/${z}`,`${e.schemaLocation}/${z}`);return}if(Array.isArray(r)){e.prefixItems=r.map((t,r)=>e.compileSchema(t,`${n}/${z}/${r}`,`${e.schemaLocation}/${z}/${r}`));return}return e.createError(`schema-error`,{pointer:n,schema:t,value:void 0,message:`Keyword '${z}' must be an object or array - received '${typeof r}'`})}}function zn({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=x(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=x(e.items,o,`${n}/${i}`,r);s&&a.push(...s)}return a}}const Bn=`maximum`,Vn={id:Bn,keyword:Bn,parse:Hn,addValidate:e=>e.maximum!=null,validate:Un};function Hn(e){let t=e.schema[Bn];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Bn}`,schema:e.schema,value:t,message:`Keyword '${Bn}' must be a number - received '${typeof t}'`});e[Bn]=t}}function Un({node:e,data:t,pointer:n}){if(!D(t))return;let r=e[Bn],{schema:i}=e;if(r&&r<t)return e.createError(`maximum-error`,{maximum:r,length:t,value:t,pointer:n,schema:i});if(r&&i.exclusiveMaximum===!0&&r===t)return e.createError(`maximum-error`,{maximum:r,length:t,pointer:n,schema:i,value:t})}const Wn=`maxItems`,Gn={id:Wn,keyword:Wn,parse:Kn,addValidate:({schema:e})=>!isNaN(e.maxItems),validate:qn};function Kn(e){let t=e.schema[Wn];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Wn}`,schema:e.schema,value:t,message:`Keyword '${Wn}' must be a number - received '${typeof t}'`});e[Wn]=t}}function qn({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 Jn(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 B=`maxLength`,Yn={id:B,keyword:B,parse:Xn,addValidate:e=>e[B]!=null,validate:Zn};function Xn(e){let t=e.schema[B];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${B}`,schema:e.schema,value:t,message:`Keyword '${B}' must be a number - received '${typeof t}'`});e[B]=t}}function Zn({node:e,data:t,pointer:n=`#`}){if(typeof t!=`string`)return;let r=e[B],i=Jn(t).length;if(r<i)return e.createError(`max-length-error`,{maxLength:r,length:i,pointer:n,schema:e.schema,value:t})}const V=`maxProperties`,Qn={id:V,keyword:V,parse:$n,addValidate:e=>e[V]!=null,validate:er};function $n(e){let t=e.schema[V];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${V}`,schema:e.schema,value:t,message:`Keyword '${V}' must be a number - received '${typeof t}'`});e[V]=t}}function er({node:e,data:t,pointer:n=`#`}){if(!h(t))return;let r=e[V],i=Object.keys(t).length;if(r<i)return e.createError(`max-properties-error`,{maxProperties:r,length:i,pointer:n,schema:e.schema,value:t})}const H=`minimum`,tr={id:H,keyword:H,parse:nr,addValidate:e=>e[H]!=null,validate:rr};function nr(e){let t=e.schema[H];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${H}`,schema:e.schema,value:t,message:`Keyword '${H}' must be a number - received '${typeof t}'`});e[H]=t}}function rr({node:e,data:t,pointer:n}){if(!D(t))return;let r=e[H];if(r>t||e.schema.exclusiveMinimum===!0&&e.schema.minimum===t)return e.createError(`minimum-error`,{minimum:r,length:t,pointer:n,schema:e.schema,value:t})}const U=`minItems`,ir={id:U,keyword:U,parse:ar,addValidate:e=>e[U]!=null,validate:or};function ar(e){let t=e.schema[U];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${U}`,schema:e.schema,value:t,message:`Keyword '${U}' must be a number - received '${typeof t}'`});e[U]=t}}function or({node:e,data:t,pointer:n}){if(!Array.isArray(t))return;let r=e[U];if(r>t.length)return e.createError(`min-items-error`,{minItems:r,length:t.length,pointer:n,schema:e.schema,value:t})}const W=`minLength`,sr={id:W,keyword:W,parse:cr,addValidate:e=>e[W]!=null,validate:lr};function cr(e){let t=e.schema[W];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${W}`,schema:e.schema,value:t,message:`Keyword '${W}' must be a number - received '${typeof t}'`});e[W]=t}}function lr({node:e,data:t,pointer:n=`#`}){if(typeof t!=`string`)return;let r=Jn(t).length,i=e[W];if(!(i<=r))return e.createError(`min-length-error`,{minLength:i,length:r,pointer:n,schema:e.schema,value:t})}const G=`minProperties`,ur={id:G,keyword:G,parse:dr,addValidate:e=>e[G]!=null,validate:fr};function dr(e){let t=e.schema[G];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${G}`,schema:e.schema,value:t,message:`Keyword '${G}' must be a number - received '${typeof t}'`});e[G]=t}}function fr({node:e,data:t,pointer:n=`#`}){if(!h(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 pr(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 K=`multipleOf`,mr={id:K,keyword:K,parse:hr,addValidate:e=>e[K]!=null,validate:gr};function hr(e){let t=e.schema[K];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${K}`,schema:e.schema,value:t,message:`Keyword '${K}' must be a number - received '${typeof t}'`});e[K]=t}}function gr({node:e,data:t,pointer:n}){if(typeof t!=`number`)return;let r=e[K],i=pr(t),a=pr(r);if(i>a)return e.createError(`multiple-of-error`,{multipleOf:r,value:t,pointer:n,schema:e.schema});let o=10**a;if(Math.round(t*o)%Math.round(r*o)/o!==0)return e.createError(`multiple-of-error`,{multipleOf:r,value:t,pointer:n,schema:e.schema})}const _r={id:`not`,keyword:`not`,parse:vr,addValidate:e=>e.not!=null,validate:yr};function vr(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e,i=t.not;if(i!=null)return!w(i)&&!T(i)?e.createError(`schema-error`,{pointer:`${r}/not`,schema:t,value:i,message:`Keyword 'not' must be a valid JSON Schema - received '${typeof i}'`}):(e.not=e.compileSchema(t.not,`${n}/not`,`${r}/not`),e.not.schemaValidation)}function yr({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(x(e.not,t,n,r).length===0)return e.createError(`not-error`,{value:t,not:i.not,pointer:n,schema:i})}const br=`pattern`,{REGEX_FLAGS:xr}=p,Sr={id:br,keyword:br,parse:Cr,addValidate:e=>e[br]!=null,validate:wr};function Cr(e){let t=e.schema[br];if(t!=null){if(typeof t!=`string`)return e.createError(`schema-error`,{pointer:e.schemaLocation,schema:e.schema,value:t,message:`Keyword 'pattern' must be a string - received '${typeof t}'`});try{e[br]=new RegExp(t,e.schema.regexFlags??xr)}catch(n){return e.createError(`schema-error`,{pointer:e.schemaLocation,schema:e.schema,value:t,message:n.message})}}}function wr({node:e,data:t,pointer:n=`#`}){if(typeof t==`string`&&e.pattern.test(t)===!1){let{schema:r}=e;return e.createError(`pattern-error`,{pattern:r.pattern,description:r.patternExample||r.pattern,received:t,schema:r,value:t,pointer:n})}}const{REGEX_FLAGS:Tr}=p,Er={id:`patternProperties`,keyword:`patternProperties`,parse:Dr,addReduce:e=>e.patternProperties!=null,reduce:kr,addResolve:e=>e.patternProperties!=null,resolve:Or,addValidate:e=>e.patternProperties!=null,validate:Ar};function Dr(e){let{schema:t}=e;if(!h(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??Tr),node:e.compileSchema(t.patternProperties[n],`${e.evaluationPath}/patternProperties/${n}`,`${e.schemaLocation}/patternProperties/${n}`)})))}function Or({node:e,key:t}){return e.patternProperties?.find(({pattern:e})=>e.test(`${t}`))?.node}function kr({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=y(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=y(e.schema,i,`patternProperties`),e.compileSchema(i,e.evaluationPath,e.schemaLocation,`${o})`))}function Ar({node:e,data:t,pointer:n,path:r}){if(!h(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=S(t,l),d=a.filter(e=>e.pattern.test(l));d.forEach(({node:e})=>c.push(...x(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 jr={id:`property`,keyword:`properties`,parse:Nr,addResolve:e=>e.properties!=null,resolve:Mr,addValidate:e=>e.properties!=null,validate:Pr};function Mr({node:e,key:t}){return e.properties?.[t]}function Nr(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t.properties==null)return;if(t.properties&&!h(t.properties))return e.createError(`schema-error`,{pointer:r,schema:t,value:void 0,message:"keyword `properties` must be of type `object`"});let i=[],a={};return Object.keys(t.properties).forEach(o=>{a[o]=e.compileSchema(t.properties[o],`${n}/properties/${o}`,`${r}/properties/${o}`),a[o].schemaValidation&&i.push(...a[o].schemaValidation)}),e.properties=a,i}function Pr({node:e,data:t,pointer:n,path:r}){if(!h(t))return;let i=[],a=e.properties??{};return Object.keys(t).forEach(e=>{let o=S(t,e),s=a[e];if(s==null||o===void 0)return;let c=x(s,o,`${n}/${e}`,r);i.push(...c)}),i}const q=`propertyNames`,Fr={id:q,keyword:q,parse:Ir,addValidate:e=>e.schema[q]!=null,validate:Lr};function Ir(e){let t=e.schema[q];if(t!=null){if(!(w(t)||T(t)))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${q}`,schema:e.schema,value:t,message:`Keyword '${q}' must be a valid JSON Schema - received '${typeof t}'`});if(!T(t))return e.propertyNames=e.compileSchema(t,`${e.evaluationPath}/propertyNames`,`${e.schemaLocation}/propertyNames`),e.schemaValidation}}function Lr({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!h(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[q]===!0)return;let a=e[q];if(!h(a))return;let o=[];return Object.keys(t).forEach(s=>{let c=x(a,s,`${n}/${s}`,r);c.length>0&&o.push(e.createError(`invalid-property-name-error`,{property:s,pointer:n,validationError:c[0],value:t[s],schema:i}))}),o}const Rr=`required`,zr={id:Rr,keyword:Rr,parse:Br,addValidate:e=>e.required!=null,validate:Vr};function Br(e){let t=e.schema[Rr];if(t!=null){if(!Tt(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Rr}`,schema:e.schema,value:t,message:`Keyword '${Rr}' must be a string[]`});e.required=t}}function Vr({node:e,data:t,pointer:n=`#`}){let{required:r}=e;if(h(t))return r.map(r=>{if(!ye(t,r))return e.createError(`required-property-error`,{key:r,pointer:n,schema:e.schema,value:t})})}function Hr(e){return{...e,keywords:[...e.keywords.map(e=>({...e}))]}}function Ur(e,t){let{keywords:n}=Wr(e,...t.keywords??[]),r={...e.errors,...t.errors??{}},i={...e.formats,...t.formats??{}};return Kr({...e,...t,formats:i,keywords:n,errors:r})}function Wr(e,...t){let n=Hr(e);return t.forEach(e=>Gr(n,e)),n}function Gr(e,t){let n=e.keywords.findIndex(e=>e.keyword===t.keyword);n===-1?e.keywords.push(t):e.keywords[n]=t}function Kr(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}function qr(e,t,n=`#`,r=[]){let i=e.resolveRef()??e;return r.push({node:i,value:t,pointer:n}),h(t)?Object.keys(t).forEach(e=>{let{node:a}=i.getNodeChild(e,t);a&&qr(a,S(t,e),`${n}/${e}`,r)}):Array.isArray(t)&&t.forEach((e,a)=>{let{node:o}=i.getNodeChild(a,t);o&&qr(o,S(t,a),`${n}/${a}`,r)}),r}const J=`type`,Jr=[`null`,`boolean`,`number`,`integer`,`string`,`object`,`array`],Yr={id:J,keyword:J,parse:Xr,addReduce:e=>Array.isArray(e.type),reduce:Zr,addValidate:e=>e.type!=null,validate:$r};function Xr(e){let t=e.schema[J];if(t!=null){if(typeof t!=`string`&&!Array.isArray(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${J}`,schema:e.schema,value:t,message:`Keyword '${J}' must be a string or a string[] - received ${typeof t}`});if(typeof t==`string`&&!Jr.includes(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${J}`,schema:e.schema,value:t,message:`Keyword '${J}' is not a valid JSON Schema type - received '${t}'. Expected one of ${Jr.join(`, `)}`});if(Array.isArray(t)){let n=t.findIndex(e=>!Jr.includes(e));if(n!==-1)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${J}/${n}`,schema:e.schema,value:t[n],message:`Keyword '${J}' contains an invalid JSON Schema type: '${t[n]}'`})}e[J]=t}}function Zr({node:e,pointer:t,data:n}){let r=Qr(n,e.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 Qr(e,t){let n=m(e);return n===`number`&&(t===`integer`||Array.isArray(t)&&t.includes(`integer`))?Number.isInteger(e)||isNaN(e)?`integer`:`number`:n}function $r({node:e,data:t,pointer:n}){let r=e[J],i=Qr(t,r);if(!(t===void 0||r===i||Array.isArray(r)&&r.includes(i)))return e.createError(`type-error`,{value:t,received:i,expected:r,schema:e.schema,pointer:n})}const ei=`uniqueItems`,ti={id:ei,keyword:ei,parse:ni,addValidate:({schema:e})=>e[ei]===!0,validate:ri};function ni(e){let t=e.schema[ei];if(!(t==null||t===!1)){if(typeof t!=`boolean`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${ei}`,schema:e.schema,value:t,message:`Keyword '${ei}' must be a boolean - received ${typeof t}`});e.uniqueItems=!0}}function ri({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,te.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}const ii=Kr({version:`draft-04`,$schemaRegEx:`draft-04`,$schema:`http://json-schema.org/draft-04/schema`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Nn,getChildSelection:mn,toDataNodes:qr},keywords:[et,mt,vt,St,qe,Nt,Rt,Vt,Gt,Jt,Qt,In,Vn,Gn,Yn,Qn,tr,ir,sr,ur,mr,_r,Er,Sr,jr,Fr,zr,Yr,ti,bn,ot,ut]}),ai={id:`const`,keyword:`const`,addValidate:({schema:e})=>e.const!==void 0,validate:oi};function oi({node:e,data:t,pointer:n}){if(!(0,te.default)(t,e.schema.const))return[e.createError(`const-error`,{pointer:n,schema:e.schema,value:t,expected:e.schema.const})]}const si=`exclusiveMaximum`,ci={id:si,keyword:si,parse:li,addValidate:({schema:e})=>e.exclusiveMaximum!=null&&!isNaN(parseInt(e.exclusiveMaximum)),validate:ui};function li(e){let t=e.schema[si];if(t!=null&&typeof t!=`number`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${si}`,schema:e.schema,value:t,message:`Keyword '${si}' must be a number - received '${typeof t}'`})}function ui({node:e,data:t,pointer:n}){if(typeof t==`number`&&e.schema.exclusiveMaximum<=t)return e.createError(`exclusive-maximum-error`,{maximum:e.schema.exclusiveMaximum,length:t,pointer:n,schema:e.schema,value:t})}const di=`exclusiveMinimum`,fi={id:di,keyword:di,parse:pi,addValidate:({schema:e})=>e[di]!=null&&!isNaN(parseInt(e[di])),validate:mi};function pi(e){let t=e.schema[di];if(t!=null&&typeof t!=`number`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${di}`,schema:e.schema,value:t,message:`Keyword '${di}' must be a number - received '${typeof t}'`})}function mi({node:e,data:t,pointer:n}){if(typeof t==`number`&&e.schema.exclusiveMinimum>=t)return e.createError(`exclusive-minimum-error`,{minimum:e.schema.exclusiveMinimum,length:t,pointer:n,schema:e.schema,value:t})}const hi=Kr({version:`draft-06`,$schemaRegEx:`draft-06`,$schema:`http://json-schema.org/draft-06/schema`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Nn,getChildSelection:mn,toDataNodes:qr},keywords:[Xe,mt,vt,ai,St,qe,Nt,Rt,Vt,ci,fi,Qt,In,Vn,Gn,Yn,Qn,tr,ir,sr,ur,mr,_r,Er,Sr,jr,Fr,zr,Yr,ti,bn,ot,ut]}),gi={id:`if-then-else`,keyword:`if`,parse:_i,addReduce:e=>e.if!=null&&(e.then!=null||e.else!=null),reduce:vi,addValidate:e=>e.if!=null,validate:yi};function _i(e){let{schema:t,evaluationPath:n}=e,r=[];return t.if!=null&&(w(t.if)||T(t.if)?(e.if=e.compileSchema(t.if,`${n}/if`),e.if.schemaValidation&&r.push(...e.if.schemaValidation)):r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/if`,schema:e.schema,value:t.if,message:`Keyword 'if' must be valid JSON Schema - received '${typeof t.if}'`}))),t.then!=null&&(w(t.then)||T(t.then)?(e.then=e.compileSchema(t.then,`${n}/then`),e.then.schemaValidation&&r.push(...e.then.schemaValidation)):r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/then`,schema:e.schema,value:t.then,message:`Keyword 'then' must be valid JSON Schema - received '${typeof t.then}'`}))),t.else!=null&&(w(t.else)||T(t.else)?(e.else=e.compileSchema(t.else,`${n}/else`),e.else.schemaValidation&&r.push(...e.else.schemaValidation)):r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/else`,schema:e.schema,value:t.else,message:`Keyword 'else' must be valid JSON Schema - received '${typeof t.else}'`}))),r}function vi({node:e,data:t,pointer:n,path:r}){if(!(t===void 0||e.if==null)){if(x(e.if,t,n,[...r??[]]).length===0){if(e.then){let{node:n}=e.then.reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``).replace(/^#/,``)??``,r=t===``?`(then)`:t,i=y(e.then.schema,n.schema,`if`,`then`,`else`);return e.compileSchema(i,e.then.evaluationPath,e.schemaLocation,`${e.schemaLocation}${r}`)}}}else if(e.else){let{node:n}=e.else.reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``)??``,r=t===``?`(else)`:t,i=y(e.else.schema,n.schema,`if`,`then`,`else`);return e.compileSchema(i,e.else.evaluationPath,e.schemaLocation,`${e.schemaLocation}${r}`)}}}}function yi({node:e,data:t,pointer:n,path:r}){if(e.if!=null){if(x(e.if,t,n,[...r??[]]).length===0){if(e.then)return x(e.then,t,n,r)}else if(e.else)return x(e.else,t,n,r)}}const bi=Kr({version:`draft-07`,$schemaRegEx:`draft-07`,$schema:`http://json-schema.org/draft-07/schema`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Nn,getChildSelection:mn,toDataNodes:qr},keywords:[Xe,mt,vt,ai,St,qe,Nt,Rt,Vt,ci,fi,Qt,gi,In,Vn,Gn,Yn,Qn,tr,ir,sr,ur,mr,_r,Er,Sr,jr,Fr,zr,Yr,ti,bn,ot,ut]}),xi={id:`$ref`,keyword:`$ref`,parse:Ci,addValidate:({schema:e})=>e.$ref!=null||e.$recursiveRef!=null,validate:Ti,addReduce:({schema:e})=>e.$ref!=null||e.$recursiveRef!=null,reduce:Ve};function Si(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function Ci(e){e.resolveRef=wi;let t=v(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)&&Si(e,v(t,`#${e.evaluationPath.replace(e.lastIdPointer,``)}`)),Si(e,v(e.context.rootNode.$id,e.evaluationPath)),e.schema.$anchor&&(e.context.anchors[`${t.replace(/#$/,``)}#${e.schema.$anchor}`]=e),e.schema.$ref&&(e.$ref=v(t,e.schema.$ref),e.$ref.startsWith(`/`)&&(e.$ref=`#${e.$ref}`))}function wi({pointer:e,path:t}={}){if(this.schema.$recursiveRef){let n=Ei(this,t??[]);return C(n)&&t?.push({pointer:e,node:n}),n}if(this.$ref==null)return this;let n=Oi(this);return C(n)&&t?.push({pointer:e,node:n}),n}function Ti({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.$recursiveRef,pointer:n,schema:e.schema,value:t}):x(i,t,n,r)}function Ei(e,t){let n=t,r=0;for(let t=n.length-1;t>=0;t--){if(n[t].node.schema.$recursiveAnchor===!1)return Oi(e,v(e.$id,e.schema.$recursiveRef));if(/^https?:\/\//.test(n[t].node.schema.$id??``)&&n[t].node.schema.$recursiveAnchor!==!0){r=t;break}}let i=n.find((e,t)=>t>=r&&e.node.schema.$recursiveAnchor===!0);return i?i.node:Oi(e,v(e.$id,e.schema.$recursiveRef))}function Di(e,t=e.evaluationPath){let n=h(e.schema)?he(e.schema,`$id`):e.schema;return e.compileSchema(n,`${t}/$ref`,e.schemaLocation)}function Oi(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return Di(e.context.refs[t],e.evaluationPath);if(e.context.anchors[t])return Di(e.context.anchors[t],e.evaluationPath);let n=Le(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];if(e.context.remotes[t])return Di(e.context.remotes[t],e.evaluationPath);if(t[0]===`#`){let n=t.match(/#[^#]*$/)?.pop(),r=e.context.rootNode.schema,i=(0,l.get)(r,n);if(i)return e.compileSchema(i,`${e.evaluationPath}/$ref`,n)}return 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=Oi(i,t);if(a||(a=Oi(i,n[1]),a))return a}if(e.context.refs[r]){let i=e.context.refs[r],a=(0,l.split)(n[1]),o=i;for(let r of a)if(o=o[r===`definitions`?`$defs`:r],o==null)return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0,host:n[0],local:n[1]});return o}}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}const ki=`unevaluatedItems`,Ai={id:ki,keyword:ki,parse:ji,addValidate:({schema:e})=>e[ki]!=null,validate:Mi};function ji(e){let{unevaluatedItems:t}=e.schema;if(!(t==null||typeof t==`boolean`)){if(!h(t))return e.createError(`schema-error`,{pointer:e.evaluationPath,schema:e.schema,value:void 0,message:`Keyword '${ki}' must be an object - received '${typeof t}'`});e.unevaluatedItems=e.compileSchema(e.schema.unevaluatedItems,`${e.evaluationPath}/${ki}`,`${e.schemaLocation}/${ki}`)}}function Mi({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0||i.unevaluatedItems==null||i.unevaluatedItems===!0)return;let{node:a}=e.reduceNode(t,{pointer:n,path:r});if(a??=e,a.schema.unevaluatedItems===!0||a.schema.additionalItems===!0)return;let o=e.if!=null&&x(e.if,t,n,r).length===0,s=[];for(let a=0;a<t.length;a+=1){let c=t[a],{node:l}=e.getNodeChild(a,t,{path:r});if(l&&x(l,c,`${n}/${a}`,r).length>0){let o=e.unevaluatedItems;if(o&&t.forEach(e=>{let t=x(o,e,`${n}/${a}`,r);if(t!=null){if(Array.isArray(t))return s.push(...t);s.push(t)}}),e.schema.unevaluatedItems===!1)return e.createError(`unevaluated-items-error`,{pointer:`${n}/${a}`,value:JSON.stringify(c),schema:i})}if(l===void 0&&!(o&&e.if.prefixItems&&e.if.prefixItems.length>a))if(e.unevaluatedItems){let t=x(e.unevaluatedItems,c,`${n}/${a}`,r);t.length>0&&s.push(...t)}else s.push(e.createError(`unevaluated-items-error`,{pointer:`${n}/${a}`,value:JSON.stringify(c),schema:i}))}return s}function Y({node:e,data:t,key:n,pointer:r,path:i}){if(Array.isArray(e.schema.required)&&!e.schema.required.find(e=>ye(t,e)))return!1;if(e.schema.unevaluatedProperties===!0||e.schema.additionalProperties===!0||e.properties?.[n]&&e.properties[n].validate(t[n],r,i).valid||e.patternProperties&&e.patternProperties.find(e=>e.pattern.test(n)))return!0;if(e.allOf){for(let a of e.allOf)if(Y({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.anyOf){for(let a of e.anyOf)if(Y({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.oneOf){for(let a of e.oneOf)if(Y({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.if){if(Y({node:e.if,data:t,key:n,pointer:r,path:i}))return!0;let a=x(e.if,t,r,i).length===0;if(a&&e.then){if(Y({node:e.then,data:t,key:n,pointer:r,path:i}))return!0}else if(!a&&e.else&&Y({node:e.else,data:t,key:n,pointer:r,path:i}))return!0}let a=e.resolveRef({pointer:r,path:i});return!!(a!==e&&Y({node:a,data:t,key:n,pointer:r,path:i}))}const X=`unevaluatedProperties`,Ni={id:X,keyword:X,parse:Pi,addValidate:({schema:e})=>e[X]!=null,validate:Fi};function Pi(e){let t=e.schema[X];if(t!=null){if(!(w(t)||T(t)))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${X}`,schema:e.schema,value:t,message:`Keyword '${X}' must be a valid JSON Schema - received '${typeof t}'`});if(!T(t))return e.unevaluatedProperties=e.compileSchema(e.schema.unevaluatedProperties,`${e.evaluationPath}/${X}`,`${e.schemaLocation}/${X}`),e.unevaluatedProperties.schemaValidation}}function Fi({node:e,data:t,pointer:n,path:r}){if(!h(t))return;let i=Object.keys(t).filter(e=>t[e]!==void 0);if(i.length===0)return;let a=[];for(let o of i){if(Y({node:e,data:t,key:o,pointer:n,path:r}))continue;let{node:i}=e.getNodeChild(o,t,{pointer:n,path:r});if(i===void 0)if(e.unevaluatedProperties){let i=x(e.unevaluatedProperties,t[o],`${n}/${o}`,r);a.push(...i)}else e.schema.unevaluatedProperties===!1&&a.push(e.createError(`unevaluated-property-error`,{pointer:`${n}/${o}`,value:JSON.stringify(t[o]),schema:e.schema}));if(i&&x(i,t[o],`${n}/${o}`,r).length>0)if(e.unevaluatedProperties){let i=x(e.unevaluatedProperties,t[o],`${n}/${o}`,r);a.push(...i)}else e.schema.unevaluatedProperties===!1&&a.push(e.createError(`unevaluated-property-error`,{pointer:`${n}/${o}`,value:JSON.stringify(t[o]),schema:e.schema}))}return a}const Ii=Kr({version:`draft-2019-09`,$schemaRegEx:`draft[/-]2019-09`,$schema:`https://json-schema.org/draft/2019-09/schema`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Nn,getChildSelection:mn,toDataNodes:qr},keywords:[xi,mt,vt,ai,St,qe,Nt,Et,kt,Rt,Vt,ci,fi,Qt,gi,In,Vn,Gn,Yn,Qn,tr,ir,sr,ur,mr,_r,Er,Sr,jr,Fr,zr,Yr,Ai,Ni,ti,bn,ot,ut]});function Li(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 C(n)?[n]:r}if(e.schema.items===!0)return[e.compileSchema({type:`string`})];if(e.schema.items===!1)return[];if(e.items)return[e.items.resolveRef()];if(e.prefixItems&&e.prefixItems.length<=+t)return[];let{node:n,error:r}=e.getNodeChild(t);return r??[n]}function Ri(e,t){if(e.$ref==null)return;t.cache=t.cache??{};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 zi(e,t){return(t.cache?.[e.schemaLocation]?.[e.$ref]??-1)<(t.recursionLimit??1)}function Bi(e,t){let n=m(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(m(n)===e)return n}catch{}return t}function Vi(e,t,n){if(n?.cache==null)throw Error(`Missing options`);if(e.schema===!1||e.schema===!0||kn(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&&r.anyOf?.length>0&&(i=r.anyOf[0].getData(i,n)??i),r.oneOf&&r.oneOf?.length>0)if(vn(i))r=b(r,r.oneOf[0]);else{let e=En({node:r,data:i,path:[],pointer:`#`});if(E(e)){if(i!=null&&n.removeInvalidData!==!0)return i;r=r.oneOf[0],i=void 0}else r=b(r,e)}let a=Ri(r,n);if(a===!1)return i;C(a)&&(i=a.getData(i,n)??i,r=a);let o=Hi[L(r,i)]?.(r,i,n);return o===void 0?i:o}const Hi={null:(e,t,n)=>Ui(e,t,null,n.useTypeDefaults),string:(e,t,n)=>Ui(e,t,``,n.useTypeDefaults),number:(e,t,n)=>Ui(e,t,0,n.useTypeDefaults),integer:(e,t,n)=>Ui(e,t,0,n.useTypeDefaults),boolean:(e,t,n)=>Ui(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??[],s=e.properties;s&&Object.keys(s).forEach(e=>{let r=s[e],c=o.includes(e),l=S(t,e),u=t===void 0||l===void 0?S(i,e):l;if(u!=null||c||n.addOptionalProps){let t=r.getData(u,n);(t!==void 0||n.useTypeDefaults!==!1)&&(a[e]=t)}});let c=e.dependentRequired;h(c)&&Object.keys(c).forEach(t=>{let r=c[t];S(a,t)!==void 0&&r.forEach(t=>{let{node:r}=e.getNodeChild(t,a);r&&(a[t]=r.getData(S(a,t),n))})});let l=e.dependentSchemas;if(l&&Object.keys(l).forEach(e=>{let r=l[e];if(a[e]!==void 0&&C(r)){let e=r.getData(t??a,n);Object.assign(a,e)}}),t&&(n.removeInvalidData===!0&&(r.additionalProperties===!1||h(r.additionalProperties))?C(e.additionalProperties)&&Object.keys(t).forEach(n=>{if(a[n]==null){let r=S(t,n);e.additionalProperties?.validate(r).valid&&(a[n]=r)}}):Object.keys(t).forEach(e=>a[e]==null&&(a[e]=S(t,e)))),e.if){let{errors:t}=e.if.validate(a);if(t.length===0&&e.then){let t=e.then.getData(a,n);Object.assign(a,t)}else if(t.length>0&&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.prefixItems==null){if(e.items&&(zi(e.items,n)||a?.length>0)){let t={...n.cache},r=Math.max(o,a.length);for(let o=0;o<r;o+=1){n.cache=(0,c.copy)(t);let r={...n,disableRecursionLimit:!0};a[o]=e.items.getData(a[o]==null?i[o]:a[o],r)}}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&&zi(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&&zi(e.items,n)||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.copy)(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 Ui({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:Bi(e.type,t)}const Z=`items`,Wi={id:Z,keyword:Z,parse:Ki,addResolve:e=>e[Z]!=null,resolve:Gi,addValidate:e=>e[Z]!=null,validate:qi};function Gi({node:e,key:t}){if(!(e.prefixItems&&e.prefixItems?.length>+t))return e.items}function Ki(e){let t=e.schema[Z];if(t!=null){if(!(w(t)||T(t)))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Z}`,schema:e.schema,value:t,message:`Keyword '${Z}' must be a valid JSON Schema - received '${typeof t}'`});if(t!==!0)return e[Z]=e.compileSchema(t,`${e.evaluationPath}/${Z}`,`${e.schemaLocation}/${Z}`),e[Z].schemaValidation}}function qi({node:e,data:t,pointer:n=`#`,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0||Array.isArray(i.prefixItems)&&i.prefixItems.length>=t.length)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.items){for(let o=i.prefixItems?.length??0;o<t.length;o+=1){let i=t[o],s=x(e.items,i,`${n}/${o}`,r);s&&a.push(...s)}return a}}const Ji={id:`prefixItems`,keyword:`prefixItems`,parse:Xi,addResolve:e=>e.prefixItems!=null,resolve:Yi,addValidate:({schema:e})=>e.prefixItems!=null,validate:Zi};function Yi({node:e,key:t}){if(e.prefixItems&&e.prefixItems[t])return e.prefixItems[t]}function Xi(e){let{schema:t,evaluationPath:n}=e;Array.isArray(t.prefixItems)&&(e.prefixItems=t.prefixItems.map((t,r)=>e.compileSchema(t,`${n}/prefixItems/${r}`,`${e.schemaLocation}/prefixItems/${r}`)))}function Zi({node:e,data:t,pointer:n=`#`,path:r}){if(!Array.isArray(t)||t.length===0)return;let i=[];if(e.prefixItems){for(let a=0;a<Math.min(e.prefixItems.length,t.length);a+=1){let o=t[a],s=e.prefixItems[a],c=x(s,o,`${n}/${a}`,r);i.push(...c)}return i}}function Qi({node:e,data:t,key:n,pointer:r,path:i}){let a=S(t,n);if(e.schema.unevaluatedItems===!0||e.schema.items===!0||e.contains&&x(e.contains,a,`${r}/${n}`,i).length===0)return!0;if(e.allOf){for(let a of e.allOf)if(Qi({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.anyOf){for(let a of e.anyOf)if(Qi({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.oneOf){for(let a of e.oneOf)if(Qi({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.if){if(Qi({node:e.if,data:t,key:n,pointer:r,path:i}))return!0;let a=x(e.if,t,r,i).length===0;if(a&&e.if.prefixItems&&e.if.prefixItems.length>n)return!0;if(a&&e.then){if(Qi({node:e.then,data:t,key:n,pointer:r,path:i}))return!0}else if(!a&&e.else&&Qi({node:e.else,data:t,key:n,pointer:r,path:i}))return!0}}const Q=`unevaluatedItems`,$i={id:Q,keyword:Q,parse:ea,addValidate:({schema:e})=>e.unevaluatedItems!=null,validate:ta};function ea(e){let t=e.schema[Q];if(t!=null){if(!(w(t)||T(t)))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Q}`,schema:e.schema,value:t,message:`Keyword '${Q}' must be a valid JSON Schema - received '${typeof t}'`});if(!T(t))return e.unevaluatedItems=e.compileSchema(e.schema.unevaluatedItems,`${e.evaluationPath}/${Q}`,`${e.schemaLocation}/${Q}`),e.unevaluatedItems.schemaValidation}}function ta({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0||i.unevaluatedItems==null||i.unevaluatedItems===!0)return;let a=[];for(let o=0;o<t.length;o+=1){if(Qi({node:e,data:t,pointer:n,key:o,path:r}))continue;let s=t[o],{node:c}=e.getNodeChild(o,t,{path:r});if(c===void 0)if(e.unevaluatedItems){let t=x(e.unevaluatedItems,s,`${n}/${o}`,r);t.length>0&&a.push(...t)}else a.push(e.createError(`unevaluated-items-error`,{pointer:`${n}/${o}`,value:JSON.stringify(s),schema:i}));if(c&&x(c,s,`${n}/${o}`,r).length>0&&(e.unevaluatedItems&&e.unevaluatedItems.validate(s,`${n}/${o}`,r).valid===!1||e.schema.unevaluatedItems===!1))return e.createError(`unevaluated-items-error`,{pointer:`${n}/${o}`,value:JSON.stringify(s),schema:i})}return a}const na=Kr({version:`draft-2020-12`,$schemaRegEx:`draft[/-]2020-12`,$schema:`https://json-schema.org/draft/2020-12/schema`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Vi,getChildSelection:Li,toDataNodes:qr},keywords:[Re,ut,mt,vt,ai,St,qe,Nt,Et,kt,Rt,Vt,ci,fi,Qt,gi,Wi,Vn,Gn,Yn,Qn,tr,ir,sr,ur,mr,_r,bn,Sr,Er,Ji,jr,Fr,zr,Yr,$i,Ni,ti]}),{REGEX_FLAGS:ra}=p,ia=[ii,hi,bi,Ii,na];function aa(e,t){return e.find(e=>new RegExp(e.$schemaRegEx,ra).test(t))??e[e.length-1]}function oa(e,t={}){let n=t.formatAssertion??!0,r=t.drafts??ia,i=aa(r,w(e)?e.$schema:void 0),a={evaluationPath:`#`,lastIdPointer:`#`,schemaLocation:`#`,dynamicId:``,reducers:[],resolvers:[],validators:[],schema:e,context:{remotes:{},dynamicAnchors:{},...t.remote?.context??{},anchors:{},refs:{},...(0,c.copy)(ge(i,`methods`,`keywords`,`version`,`formats`,`errors`)),getDataDefaultOptions:t.getDataDefaultOptions,withSchemaAnnotations:t.withSchemaAnnotations??!1,throwOnInvalidRef:t.throwOnInvalidRef??!1,drafts:r},...Oe};if(a.context.rootNode=a,a.context.remotes[(w(e)?e.$id:void 0)??`#`]=a,t.remote){let e=Ke(a,a.schema.$schema);if(C(e)&&e.schema.$vocabulary){let t=Object.keys(e.schema.$vocabulary).find(e=>e.includes(`vocab/format-assertion`));t&&n===`meta-schema`&&(n=e.schema.$vocabulary[t]===!0);let r=Object.keys(e.getData({},{addOptionalProps:!0}));r.length>0&&(a.context.keywords=a.context.keywords.filter(e=>r.includes(e.keyword)))}}if(n===!1&&(a.context.keywords=a.context.keywords.filter(e=>e.keyword!==`format`)),!w(e)&&!T(e))return a.schemaErrors=[a.createError(`schema-error`,{pointer:`#`,schema:e,value:void 0,message:`JSON schema must be object or boolean - reveived: '${e}'`})],a;let o=je(a).filter(e=>e!=null);o=f(o);let s=[],l=[];if(o.forEach(e=>{E(e)?s.push(e):Pe(e)&&l.push(e)}),t.throwOnInvalidSchema&&s.length>0){let e=Error(`Invalid schema passed to compileSchema`);throw e.data=s,e}return a.schemaErrors=s,a.schemaAnnotations=l,a}const sa=Ur(na,{$schemaRegEx:`.`,keywords:[xn],errors:{"min-length-error":e=>e.minLength===1?{type:`error`,code:`min-length-one-error`,message:`An input is required`,data:e}:{type:`error`,code:`min-length-error`,message:_e("Value in `{{pointer}}` is `{{length}}`, but should be `{{minLength}}` at minimum",e),data:e}}}),$=`propertyDependencies`;function ca(e,t){let n=e[$];if(n==null)return;let r=Object.keys(n),i=[];for(let e of r)if(ye(t,e)){let r=t[e];n[e][r]&&i.push({property:e,value:`${r}`,node:n[e][r]})}return i}const la={id:$,keyword:$,parse:ua,addValidate:e=>e[$]!=null,validate:da,addReduce:e=>e[$]!=null,reduce:fa};function ua(e){let t=e.schema[$];if(!h(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${$}`,schema:e.schema,value:t,message:`Keyword '${$}' must be an object - received '${typeof t}'`});let n={},r=[];return Object.keys(t).map(i=>{let a=t[i];if(!h(a)){r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${$}/${i}`,schema:e.schema,value:t,message:`Keyword '${$}[string]' must be an object - received '${typeof t}'`}));return}Object.keys(a).forEach(t=>{let o=a[t];if(!(w(o)||T(o))){r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${$}/${i}/${t}`,schema:e.schema,value:o,message:`Keyword '${$}[string][string]' must be a valid JSON Schema - received '${typeof o}'`}));return}n[i]=n[i]??{},n[i][t]=e.compileSchema(o,`${e.evaluationPath}/${$}/${i}/${t}`,`${e.schemaLocation}/${$}/${i}/${t}`),n[i][t].schemaValidation&&r.push(...n[i][t].schemaValidation)})}),e[$]=n,r}function da({node:e,data:t,pointer:n=`#`,path:r}){if(!h(t))return;let i=ca(e,t);if(i==null||i.length===0)return;let a=[];for(let e of i){let i=x(e.node,t,n,r);a.push(i)}return f(a)}function fa({node:e,data:t,key:n,pointer:r,path:i}){if(!h(t))return;let a=ca(e,t);if(a==null||a.length===0)return;let o={},s=``;for(let c of a){let{node:a}=c.node.reduceNode(t,{key:n,pointer:r,path:i});if(a){let t=a.dynamicId?.replace(e.dynamicId,``)??``,n=t===``?`propertyDependencies/${c.property}/${c.value}`:t;s+=`${s===``?``:`,`}${n}`;let r=y(c.node.schema,a.schema);o=y(o,r,`propertyDependencies`)}}return e.compileSchema(o,`${e.evaluationPath}/${s}`,e.schemaLocation,`${e.schemaLocation}(${s})`)}exports.addKeywords=Wr,exports.compileSchema=oa,exports.draft04=ii,exports.draft06=hi,exports.draft07=bi,exports.draft2019=Ii,exports.draft2020=na,exports.draftEditor=sa,exports.extendDraft=Ur,exports.getSchemaType=L,exports.getTypeOf=m,exports.isAnnotation=Ne,exports.isBooleanSchema=T,exports.isJsonAnnotation=Pe,exports.isJsonError=E,exports.isJsonSchema=w,exports.isReduceable=Te,exports.isSchemaNode=C,exports.mergeNode=b,exports.mergeSchema=y,exports.oneOfFuzzyKeyword=xn,exports.oneOfKeyword=bn,exports.propertyDependenciesKeyword=la,exports.render=_e,exports.sanitizeErrors=f,exports.settings=p;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});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`),l=require(`@sagold/json-pointer`),u=require(`uri-js`),d=require(`@hyperjump/json-schema-formats`),ee=require(`valid-url`);ee=s(ee);let te=require(`fast-deep-equal`);te=s(te);function f(e,t=[]){if(!Array.isArray(e))return e===void 0?[]:[e];for(let n of e)Array.isArray(n)?f(n,t):(Ne(n)||n instanceof Promise)&&t.push(n);return t}var p={DECLARATOR_ONEOF:`oneOfProperty`,propertyBlacklist:[`_id`],DYNAMIC_PROPERTIES:[`$ref`,`$defs`,`if`,`then`,`else`,`allOf`,`anyOf`,`oneOf`,`dependentSchemas`,`dependentRequired`,`definitions`,`dependencies`,`patternProperties`,`propertyDependencies`],REGEX_FLAGS:`u`,PROPERTIES_TO_MERGE:[`title`,`description`,`options`,`x-options`,`readOnly`,`writeOnly`]};const ne=Object.prototype.toString;function m(e){let t=ne.call(e).slice(8,-1).toLowerCase();return t===`file`?`object`:t}function h(e){return m(e)===`object`}function g(e){let t=e===void 0?{}:{type:m(e)};return t.type===`object`&&h(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 re(e,t){t!=null&&Object.values(t).forEach(t=>_(t,e))}function ie(e,t){t?.forEach(t=>_(t,e))}function _(e,t=[]){return C(e)?(t.push(e),re(t,e.$defs),e.additionalProperties&&_(e.additionalProperties,t),ie(t,e.allOf),ie(t,e.anyOf),e.contains&&_(e.contains,t),re(t,e.dependentSchemas),e.if&&_(e.if,t),e.else&&_(e.else,t),e.then&&_(e.then,t),e.items&&_(e.items,t),ie(t,e.prefixItems),e.not&&_(e.not,t),ie(t,e.oneOf),e.patternProperties&&Object.values(e.patternProperties).forEach(({node:e})=>_(e,t)),re(t,e.properties),e.propertyNames&&_(e.propertyNames,t),e.unevaluatedProperties&&_(e.unevaluatedProperties,t),e.unevaluatedItems&&_(e.unevaluatedItems,t),t):t}const ae=/(#)+$/,oe=/#$/,se=/^[^:]+:\/\/[^/]+\//,ce=/#.*$/;function v(e,t){return t==null?e?.replace(oe,``)??`#`:e==null||e===`#`?t?.replace(oe,``):t[0]===`#`?e[0]===`/`?t:`${e.replace(ce,``)}${t.replace(ae,``)}`:se.test(t)?t.replace(oe,``):(0,u.resolve)(e,t??``)??`#`}function y(e,t,...n){if(t?.type===`error`)return t;if(e?.type===`error`||m(e)!==m(t))return e;let r=le(e,t);for(let e of n)delete r[e];return r}function le(e,t,n){if(h(e)&&h(t)){let n={};return[...Object.keys(e),...Object.keys(t)].filter((e,t,n)=>n.indexOf(e)===t).forEach(r=>n[r]=le(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)h(e[r])&&h(t[r])&&e[r].type===t[r].type?n[r]=le(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)h(e[n])&&h(t[n])?r[n]=le(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 ue(e,t){return(t.order??0)-(e.order??0)}function de(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 fe(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=b(e[r],t[r]);C(i)&&(n[r]=i)}),n}function pe(e,t){return e==null||t==null?t||e:e.concat(t).filter((e,t,n)=>n.indexOf(e)===t)}function me(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 b(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=b(e.items,t.items));let i={...e,...t,...r,dynamicId:De(e.dynamicId,t.dynamicId),oneOfIndex:e.oneOfIndex??t.oneOfIndex,schema:y(e.schema,t.schema,...n),parent:e.parent,resolvers:e.resolvers.concat(t.resolvers).filter(de).sort(ue),reducers:e.reducers.concat(t.reducers).filter(de).sort(ue),validators:e.validators.concat(t.validators).filter(de).sort(ue),additionalProperties:b(e.additionalProperties,t.additionalProperties),contains:b(e.contains,t.contains),enum:pe(e.enum,t.enum),if:b(e.if,t.if),then:b(e.then,t.then),else:b(e.else,t.else),not:b(e.not,t.not),propertyNames:b(e.propertyNames,t.propertyNames),unevaluatedProperties:b(e.unevaluatedProperties,t.unevaluatedProperties),unevaluatedItems:b(e.unevaluatedItems,t.unevaluatedItems),$defs:fe(e.$defs,t.$defs),patternProperties:me(e.patternProperties,t.patternProperties),properties:fe(e.properties,t.properties),required:pe(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 he(e,...t){let n={};return Object.keys(e).forEach(r=>{t.includes(r)||(n[r]=e[r])}),n}function ge(e,...t){if(!h(e)||t.length===0)return e;let n={};return t.forEach(t=>{e[t]!==void 0&&(n[t]=e[t])}),n}function _e(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 x(e,t,n,r){if(E(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 f(a)}const ve=Object.prototype.hasOwnProperty,ye=(e,t)=>!(e[t]===void 0||!ve.call(e,t));function S(e,t){if(h(e)||Array.isArray(e))return e[t]}function be(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 E(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=S(t,i[e])}let{node:s,error:c}=o.resolveRef(n).reduceNode(t);return E(c)?{node:void 0,error:c}:C(s)?{node:s,error:void 0}:{error:void 0}}function xe(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;C(n.node)&&(a=n.node)}for(let n of a.resolvers){let o=n({data:t,key:e,node:a});if(E(o))return{node:void 0,error:o};if(C(o))return{node:o.resolveRef({pointer:i,path:r}),error:void 0}}return n.createSchema===!0?{node:a.compileSchema(a.createSchema(S(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:Se,REGEX_FLAGS:Ce,DECLARATOR_ONEOF:we}=p;function C(e){return h(e)&&Array.isArray(e?.reducers)&&Array.isArray(e?.resolvers)}function Te(e){for(let t=0,n=Se.length;t<n;t+=1)if(ye(e,Se[t]))return!0;return!1}function Ee(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,Ce).test(t))??e[e.length-1]}function De(e,t){return e==t?e??``:e==null||t==null?(e||t)??``:e.startsWith(t)?e:t.startsWith(e)?t:`${e}+${t}`}const Oe={compileSchema(e,t,n,r){let i=this;t??=i.evaluationPath;let a=t.split(`/$ref`)[0],o={lastIdPointer:i.lastIdPointer,context:i.context,parent:i,evaluationPath:t,dynamicId:De(i.dynamicId,r),schemaLocation:n??(0,l.join)(i.schemaLocation,a),reducers:[],resolvers:[],validators:[],schema:e,...Oe};return!w(e)&&!T(e)?(o.schemaValidation=[o.createError(`schema-error`,{pointer:n??t,schema:e,value:void 0,message:`JSON schema must be object or boolean - reveived: '${e}'`})],o):(o.schemaValidation=f(je(o).filter(e=>e!=null)),o)},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=_e(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=_e(n??name,t)}return{type:`annotation`,code:e,message:i,data:t}},createSchema:g,getChildSelection(e){let t=this;return t.context.methods.getChildSelection(t,e)},getNode:be,getNodeChild:xe,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(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 of c){let c=t({data:e,key:r,node:n,pointer:i,path:a??[]});if(E(c))return{node:void 0,error:c};if(c){if(c.schema===!1){o=!1;break}s=b(s,c)}}return o===!1?{node:{...n,schema:!1,reducers:[]},error:void 0}:(s!==n&&a?.push({pointer:i,node:n}),s.schema=he(s.schema,we,...Se),Se.forEach(e=>s[e]=void 0),{node:s,error:void 0})},validate(e,t=`#`,n=[]){let r=this,i=x(r,e,t,n)??[],a=[],o=[],s=f(Array.isArray(i)?i:[i]).filter(E),c=[];return f(Array.isArray(i)?i:[i]).forEach(e=>{if(E(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?c.push(e.then(f)):Pe(e)&&o.push(e)}),{valid:s.length===0,errors:a,annotations:o,errorsAsync:c}},addRemoteSchema(e,t){w(t)&&(t.$id=v(t.$id||e));let n=this,{context:r}=n,i=w(t)?t.$schema:void 0,a=Ee(r.drafts,i??r.rootNode.schema?.$schema),o={evaluationPath:`#`,lastIdPointer:`#`,schemaLocation:`#`,dynamicId:``,reducers:[],resolvers:[],validators:[],schema:t,context:{...r,refs:{},anchors:{},...(0,c.copy)(ge(a,`methods`,`keywords`,`version`,`formats`,`errors`))},...Oe};return o.context.rootNode=o,o.context.remotes[v(e)]=o,je(o),n},resolveRef(e){throw Error(`method 'resolveRef' is not implemented`)},toSchemaNodes(){return _(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}}},ke=[`$ref`,`if`,`$defs`],Ae=[`draft-04`,`draft-06`,`draft-07`];function je(e){if(e.schema.$ref&&Ae.includes(e.context.version))return e.context.keywords.filter(({keyword:e})=>ke.includes(e)).map(t=>Me(t,e));let t=Object.keys(e.schema),n=e.context.keywords.filter(({keyword:e})=>ke.includes(e)||t.includes(e)).map(t=>Me(t,e));return e.context.withSchemaAnnotations&&Object.keys(e.schema).filter(t=>!t.startsWith(`x-`)&&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 Me(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 w(e){return h(e)}function T(e){return typeof e==`boolean`}function Ne(e){return h(e)&&(e?.type&&e?.code&&e?.data)!=null}function Pe(e){return h(e)&&e.type===`annotation`}function E(e){return h(e)&&e.type===`error`}function D(e){return typeof e==`number`}const Fe=/(#)+$/g,Ie=[``,null,`#`];function Le(e){if(Ie.includes(e))return[];if(e=e.replace(Fe,``),e.indexOf(`#`)===-1)return[e.replace(/(#|\/)+$/g,``)];if(e.indexOf(`#`)===0)return[e.replace(Fe,``)];let t=e.split(`#`);return t[0]=t[0].replace(/(#|\/)+$/g,``),t[1]=`#${t[1].replace(Fe,``)}`,t}const Re={id:`$ref`,keyword:`$ref`,order:10,parse:Be,addReduce:e=>e.$ref!=null||e.schema.$dynamicRef!=null,reduce:Ve,addValidate:({schema:e})=>e.$ref!=null||e.$dynamicRef!=null,validate:Ue};function ze(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function Be(e){e.resolveRef=He;let t=v(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)&&ze(e,v(t,`#${e.evaluationPath.replace(e.lastIdPointer,``)}`)),ze(e,v(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)}if(e.schema.$ref&&(e.$ref=v(t,e.schema.$ref),e.$ref.startsWith(`/`)&&(e.$ref=`#${e.$ref}`)),e.$ref?.startsWith(`#/$defs/`)&&(0,l.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 Ve({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}=b(e,a).reduceNode(t,{key:n,pointer:r,path:i});return o??s}function He({pointer:e,path:t=[]}={}){if(this.schema.$dynamicRef){let n=We(this,t);return E(n)||t.push({pointer:e,node:n}),n}if(this.$ref==null)return this;let n=Ge(this);return C(n)&&t.push({pointer:e,node:n}),n}function Ue({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}):x(i,t,n,r)}function We(e,t){let n=t,r=v(e.$id,e.schema.$dynamicRef);if(e.context.dynamicAnchors[r]==null&&e.context.anchors[r])return O(e.context.anchors[r],e);for(let t of n){if(t.node.schema.$dynamicAnchor)return O(t.node,e);let n=e.schema.$dynamicRef.split(`#`).pop(),r=v(t.node.$id,`#${n}`);if(e.context.dynamicAnchors[r])return O(e.context.dynamicAnchors[r],e)}return Ge(e,r)}function O(e,t){let n=e.schema;return h(e.schema)&&(n={...he(e.schema,`$id`),...ge(t.schema,...p.PROPERTIES_TO_MERGE)}),e.compileSchema(n,`${t.evaluationPath}/$ref`,e.schemaLocation)}function Ge(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return O(e.context.refs[t],e);if(e.context.anchors[t])return O(e.context.anchors[t],e);if(e.context.dynamicAnchors[t])return O(e.context.dynamicAnchors[t],e);let n=Le(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];if(e.context.remotes[t])return O(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 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=Ge(i,t);if(a||(a=Ge(i,n[1]),a))return a}if(e.context.refs[r]){let i=e.context.refs[r],a=(0,l.split)(n[1]),o=i;for(let r of a)if(o=o[r===`definitions`?`$defs`:r],o==null)return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0,host:n[0],local:n[1]});return o}}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}const Ke={id:`$defs`,keyword:`$defs`,parse:qe};function qe(e){let t=[];return e.schema.$defs&&(h(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/${Je(t)}`,`${e.schemaLocation}/$defs/${t}`)})):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&&(h(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(t=>{e.$defs[t]=e.compileSchema(e.schema.definitions[t],`${e.evaluationPath}/definitions/${Je(t)}`,`${e.schemaLocation}/definitions/${Je(t)}`)})),t}function Je(e){return e=e.replace(/~/g,`~0`),e=e.replace(/\//g,`~1`),encodeURIComponent(e)}const Ye={id:`$ref`,keyword:`$ref`,parse:Xe,addValidate:({schema:e})=>e.$ref!=null,validate:Ze};function Xe(e){let t=e.parent?.$id;if(e.schema?.$ref??(t=v(e.parent?.$id,e.schema?.$id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=He,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[v(t,n)]=e}else e.context.refs[v(t,e.evaluationPath)]=e;e.context.refs[v(e.context.rootNode.$id,e.evaluationPath)]=e,e.schema.$ref&&(e.$ref=v(t,e.schema.$ref))}function Ze({node:e,data:t,pointer:n=`#`,path:r}){let i=Qe(e,n,r);return C(i)?x(i,t,n,r):e.createError(`ref-error`,{ref:e.schema.$ref,pointer:n,schema:e.schema,value:t})}function Qe(e,t,n){let r=e.resolveRef({pointer:t,path:n});return C(r)?r!==e&&r?Qe(r,t,n):e:e.createError(`ref-error`,{ref:e.schema.$ref,pointer:t,schema:e.schema,value:void 0})}const $e={id:`$ref`,keyword:`$ref`,parse:tt,addValidate:({schema:e})=>e.$ref!=null,validate:Ye.validate};function et(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function tt(e){let t=e.parent?.$id;if(e.schema?.$ref==null&&e.schema?.id&&(t=v(e.parent?.$id,e.schema.id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=nt,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,``)}`;et(e,v(t,n))}else et(e,v(t,e.evaluationPath));et(e,v(e.context.rootNode.$id,e.evaluationPath)),e.schema.$ref&&(e.$ref=v(t,e.schema.$ref))}function nt({pointer:e,path:t}={}){if(this.$ref==null)return this;let n=it(this);return C(n)&&t?.push({pointer:e,node:n}),n}function rt(e,t=e.evaluationPath){let n=h(e.schema)?he(e.schema,`id`):e.schema;return e.compileSchema(n,`${t}/$ref`,n.schemaLocation)}function it(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return rt(e.context.refs[t],e.evaluationPath);if(e.context.anchors[t])return rt(e.context.anchors[t],e.evaluationPath);let n=Le(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]?rt(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=it(i,t);if(a||(a=it(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 it(t.$defs[r])}return}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}const at=`additionalItems`,ot={id:at,keyword:at,order:-10,parse:st,addResolve:e=>e.items!=null,resolve:ct,addValidate:({schema:e})=>e[at]!=null&&e[at]!==!0&&Array.isArray(e.items),validate:lt};function st(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t.additionalItems==null||t.additionalItems===!1)return;let i=t[at];if(!(h(i)||i===!0))return e.createError(`schema-error`,{pointer:n,schema:t,value:void 0,message:`Keyword '${at}' 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 '${at}' is only evaluated with a given items-array`});e.items=e.compileSchema(t.additionalItems,`${n}/additionalItems`,`${r}/additionalItems`)}function ct({node:e,key:t,data:n}){if(Array.isArray(n)){let r=S(n,t),{node:i,error:a}=e.items.reduceNode(r);return i??a}}function lt({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=x(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 ut={id:`additionalProperties`,keyword:`additionalProperties`,order:-10,parse:dt,addResolve:({schema:e})=>e.additionalProperties!=null,resolve:ft,addValidate:({schema:e})=>e.additionalProperties!==!0&&e.additionalProperties!=null&&!(e.additionalProperties===!1&&h(e.patternProperties)),validate:pt};function dt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(!(t.additionalProperties==null||T(t.additionalProperties))){if(!h(t.additionalProperties))return 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}`});e.additionalProperties=e.compileSchema(t.additionalProperties,`${n}/additionalProperties`,`${r}/additionalProperties`)}}function ft({node:e,data:t,key:n}){let r=S(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:S(t,n),property:`${n}`})}function pt({node:e,data:t,pointer:n=`#`,path:r}){if(!h(t))return;let{schema:i}=e,a=[],o=Object.keys(t).filter(e=>p.propertyBlacklist.includes(e)===!1),s=e.patternProperties;Array.isArray(s)&&(o=o.filter(e=>{for(let t of s)if(t.pattern.test(e))return!1;return!0}));let c=e.properties?Object.keys(e.properties):[];return o.filter(e=>c.indexOf(e)===-1).forEach(o=>{let s=S(t,o);if(s!==void 0)if(h(e.additionalProperties)){let t=x(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:c}))}),a}const k=`allOf`,mt={id:k,keyword:k,parse:ht,addReduce:e=>e[k]!=null,reduce:gt,addValidate:e=>e[k]!=null,validate:_t};function ht(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t[k]!=null){if(!Array.isArray(t[k]))return e.createError(`schema-error`,{pointer:r,schema:t,value:t[k],message:`Keyword '${k}' must be an array - received '${typeof t[k]}'`});if(t[k].length!==0)return e[k]=t[k].map((t,i)=>e.compileSchema(t,`${n}/${k}/${i}`,`${r}/${k}/${i}`)),e[k].reduce((e,t)=>(t.schemaValidation&&e.push(...t.schemaValidation),e),[])}}function gt({node:e,data:t,key:n,pointer:r,path:i}){if(e[k]==null)return;let a={},o=``;for(let s=0;s<e[k].length;s+=1){let{node:c}=e[k][s].reduceNode(t,{key:n,pointer:r,path:i});if(c){let t=c.dynamicId?.replace(e.dynamicId,``)??``,n=t===``?`${k}/${s}`:t;o+=`${o===``?``:`,`}${n}`;let r=y(e[k][s].schema,c.schema);a=y(a,r,k,`contains`)}}return e.compileSchema(a,`${e.evaluationPath}/${o}`,e.schemaLocation,`${e.schemaLocation}(${o})`)}function _t({node:e,data:t,pointer:n,path:r}){if(!Array.isArray(e[k])||e[k].length===0)return;let i=[];return e[k].forEach(e=>{i.push(...x(e,t,n,r))}),i}const A=`anyOf`,vt={id:A,keyword:A,parse:yt,addReduce:e=>e[A]!=null,reduce:bt,addValidate:e=>e[A]!=null,validate:xt};function yt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t[A]!=null){if(!Array.isArray(t[A]))return e.createError(`schema-error`,{pointer:r,schema:t,value:t[A],message:`Keyword '${A}' must be an array - received '${typeof t[A]}'`});if(t[A].length!==0)return e[A]=t[A].map((t,i)=>e.compileSchema(t,`${n}/${A}/${i}`,`${r}/${A}/${i}`)),e[A].reduce((e,t)=>(t.schemaValidation&&e.push(...t.schemaValidation),e),[])}}function bt({node:e,data:t,pointer:n,path:r}){if(e[A]==null)return;let i={},a=``;for(let o=0;o<e[A].length;o+=1)if(x(e[A][o],t,n,r).length===0){let{node:n}=e[A][o].reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``)??``,r=t===``?`${A}/${o}`:t;a+=`${a===``?``:`,`}${r}`;let s=y(e[A][o].schema,n.schema);i=y(i,s,A)}}return e.compileSchema(i,`${e.evaluationPath}${a}`,e.schemaLocation,`${e.schemaLocation}(${a})`)}function xt({node:e,data:t,pointer:n,path:r}){if(e[A]!=null){for(let i of e[A])if(x(i,t,n,r).length===0)return;return e.createError(`any-of-error`,{pointer:n,schema:e.schema,value:t,anyOf:e.schema[A]})}}const j=`contains`,St={id:j,keyword:j,parse:Ct,addValidate:e=>e[j]!=null,validate:wt,addReduce:e=>e[j]!=null,reduce:({node:e})=>e.compileSchema({items:{anyOf:[e[j].schema]}},e.evaluationPath,e.schemaLocation)};function Ct(e){let t=e.schema[j];if(t!=null)return w(t)||T(t)?(e[j]=e.compileSchema(t,`${e.evaluationPath}/${j}`),e[j].schemaValidation):e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${j}`,schema:e.schema,value:t,message:`Keyword '${j}' must be a valid JSON Schema - received '${typeof t}'`})}function wt({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(!h(i.contains)||!Array.isArray(t))return;let a=0;for(let i of t)x(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 Tt(e){return Array.isArray(e)&&e.find(e=>typeof e!=`string`)==null}const M=`dependentRequired`,Et={id:M,keyword:M,parse:Dt,addValidate:e=>e[M]!=null,validate:Ot};function Dt(e){let{schema:t}=e;if(t[M]==null)return;if(!h(t[M]))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${M}`,schema:t,value:t[M],message:`Keyword '${M}' must be an object - received '${typeof t[M]}'`});let n=[];e.dependentRequired={};for(let r of Object.keys(t[M])){let i=t[M][r];Tt(i)?e.dependentRequired[r]=i:n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${M}/${r}`,schema:t,value:i,message:`Keyword '${M}[string]' must be a string[] - received '${typeof i}'`}))}return n}function Ot({node:e,data:t,pointer:n=`#`}){let{dependentRequired:r}=e;if(r==null||!h(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 N=`dependentSchemas`,kt={id:N,keyword:N,parse:At,addReduce:e=>e.dependentSchemas!=null,reduce:jt,addValidate:e=>e.dependentSchemas!=null,validate:Mt};function At(e){let{dependentSchemas:t}=e.schema;if(t==null)return;if(!h(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${N}`,schema:e.schema,value:t,message:`Keyword '${N}' 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];h(a)?(r[i]=e.compileSchema(a,`${e.evaluationPath}/${N}/${i}`,`${e.schemaLocation}/${N}/${i}`),r[i].schemaValidation&&n.push(...r[i].schemaValidation)):T(a)?r[i]=a:n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${N}/${i}`,schema:e.schema,value:a,message:`Keyword '${N}[string]' must be a valid JSON Schema'`}))}return e.dependentSchemas=r,n}function jt({node:e,data:t}){let{dependentSchemas:n}=e;if(!h(t)||n==null)return e;let r,i=0,a=`${e.schemaLocation}(`;return Object.keys(t).forEach(e=>{n[e]!=null&&(r??={properties:{}},C(n[e])?r=y(r,n[e].schema):r.properties[e]=n[e],a+=`${i?`,`:``}${N}/${e}`,i++)}),r==null?e:(r=y(e.schema,r,N),e.compileSchema(r,e.evaluationPath,e.schemaLocation,`${a})`))}function Mt({node:e,data:t,pointer:n,path:r}){let{schema:i,dependentSchemas:a}=e;if(!h(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(C(c)){f(x(c,t,n,r),o);return}}}),o}const P=`dependencies`,Nt={id:P,keyword:P,parse:Pt,order:-9,addReduce:e=>e.schema[P]!=null,reduce:Ft,addValidate:e=>e.schema[P]!=null,validate:It};function Pt(e){let{dependencies:t}=e.schema;if(!h(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${P}`,schema:e.schema,value:t,message:`Keyword '${P}' must be an object - received ${typeof t}`});let n=[];for(let r of Object.keys(t)){let i=t[r];w(i)||T(i)?(e.dependentSchemas=e.dependentSchemas??{},e.dependentSchemas[r]=e.compileSchema(i,`${e.evaluationPath}/${P}/${r}`,`${e.schemaLocation}/${P}/${r}`)):Tt(i)?(e.dependentRequired=e.dependentRequired??{},e.dependentRequired[r]=i):n.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${P}`,schema:e.schema,value:t,message:`Keyword '${P}[string]' must be JSON Schema or string[]`}))}return n}function Ft({node:e,data:t,key:n,pointer:r,path:i}){if(!h(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(!ye(t,e)&&!o.includes(e)||c[e]==null)return;o.push(...c[e]);let n=`${P}/${e}`;s+=`${s===``?``:`,`}${n}`});let l=e.dependentSchemas;return l&&Object.keys(l).forEach(c=>{if(!ye(t,c)&&!o.includes(c))return!0;let u=l[c];if(!C(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}/${P}/${c}`,path:i}).node;a=b(a,d);let ee=d.dynamicId?.replace(e.dynamicId,``)??``,te=ee===``?`${P}/${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=b(a,a,P),a.compileSchema({...a.schema,required:o},a.evaluationPath,a.schemaLocation,`${e.schemaLocation}(${s})`))}function It({node:e,data:t,pointer:n,path:r}){if(!h(t))return;let i=[];return e.dependentRequired&&f(Ot({node:e,data:t,pointer:n,path:r}),i),e.dependentSchemas&&f(Mt({node:e,data:t,pointer:n,path:r}),i),i}const Lt=`deprecated`,Rt={id:Lt,keyword:Lt,parse:zt,addValidate:e=>e[Lt]===!0,validate:Bt};function zt(e){let t=e.schema[Lt];if(t!=null){if(typeof t!=`boolean`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Lt}`,schema:e.schema,value:t,message:`Keyword '${Lt}' must be a boolean - received '${typeof t}'`});e[Lt]=t}}function Bt({node:e,data:t,pointer:n}){return[e.createAnnotation(`deprecated-warning`,{pointer:n,schema:e.schema,value:t},e.schema.deprecatedMessage)]}const F=`enum`,Vt={id:F,keyword:F,parse:Ht,addValidate:e=>e.enum!=null,validate:Ut};function Ht(e){let{schema:t}=e;if(t[F]!=null){if(!Array.isArray(t[F]))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${F}`,schema:t,value:t[F],message:`Keyword '${F}' must be an array - received '${typeof t[F]}'`});e.enum=t[F]}}function Ut({node:e,data:t,pointer:n=`#`}){if(e.enum==null)return;let r=m(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 Wt={"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}}'`},Gt={id:`exclusiveMaximum`,keyword:`exclusiveMaximum`,parse:Kt,addValidate:({schema:e})=>e.exclusiveMaximum===!0||!isNaN(e.maximum),validate:qt};function Kt(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 qt({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 Jt={id:`exclusiveMinimum`,keyword:`exclusiveMinimum`,parse:Yt,addValidate:({schema:e})=>e.exclusiveMinimum===!0||!isNaN(e.minimum),validate:Xt};function Yt(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 Xt({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 Zt=`format`,Qt={id:Zt,keyword:Zt,parse:$t,addValidate:({schema:e})=>e?.format!=null,validate:en};function $t(e){let t=e.schema[Zt];if(t!=null&&typeof t!=`string`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Zt}`,schema:e.schema,value:t,message:`Keyword '${Zt}' must be a string - received '${typeof t}'`})}function en(e){let{node:t}=e,n=t.context.formats[t.schema.format];return n?.(e)}const{REGEX_FLAGS:tn}=p,nn=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,rn=/^((([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,an=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,on=/^(?<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,sn=[0,31,28,31,30,31,30,31,31,30,31,30,31],cn=/^(?:\/(?:[^~/]|~0|~1)*)*$/,ln=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,un=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,dn=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,fn=/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,pn={date:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(typeof n!=`string`||n===``)return;let i=n.match(an);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:sn[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=pn.date({node:e,pointer:t,data:a[0],path:r})===void 0,i=pn.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(m(n)===`string`&&(!fn.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(nn.test(e)||rn.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})},hostname:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||(0,d.isAsciiIdn)(n)))return e.createError(`format-hostname-error`,{value:n,pointer:t,schema:r})},"idn-hostname":({node:e,pointer:t,data:n})=>{if(!(typeof n!=`string`||(0,d.isIdn)(n)))return e.createError(`format-idn-hostname-error`,{value:n,pointer:t,schema:e.schema})},"idn-email":({node:e,pointer:t,data:n})=>{if(!(typeof n!=`string`||n===``||(0,d.isIdnEmail)(n)))return e.createError(`format-email-error`,{value:n,pointer:t,schema:e.schema})},ipv4:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)){if(n&&n[0]===`0`)return e.createError(`format-ipv4-leading-zero-error`,{value:n,pointer:t,schema:r});if(!(n.length<=15&&nn.test(n)))return e.createError(`format-ipv4-error`,{value:n,pointer:t,schema:r})}},ipv6:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)){if(n&&n[0]===`0`)return e.createError(`format-ipv6-leading-zero-error`,{value:n,pointer:t,schema:r});if(!(n.length<=45&&rn.test(n)))return e.createError(`format-ipv6-error`,{value:n,pointer:t,schema:r})}},iri:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``||(0,d.isIri)(n)))return e.createError(`format-iri-error`,{value:n,pointer:t,schema:r})},"iri-reference":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``||(0,d.isIriReference)(n)))return e.createError(`format-iri-reference-error`,{value:n,pointer:t,schema:r})},"json-pointer":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!cn.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`&&!ln.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)||m(n)===`boolean`)){if(typeof n==`string`&&/\\Z$/.test(n)===!1){try{new RegExp(n,r.regexFlags??tn);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(on);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})}},uri:({node:e,pointer:t,data:n})=>{if(!(typeof n!=`string`||n===``||(0,d.isUri)(n)))return e.createError(`format-uri-error`,{value:n,pointer:t,schema:e.schema})},"uri-reference":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!un.test(n))return e.createError(`format-uri-reference-error`,{value:n,pointer:t,schema:r})},"uri-template":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!dn.test(n))return e.createError(`format-uri-template-error`,{value:n,pointer:t,schema:r})},url:({node:e,data:t,pointer:n})=>{let{schema:r}=e;if(!(t===``||ee.default.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 mn(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 hn=[`string`,`number`,`integer`,`boolean`,`null`,`array`,`object`],gn=[`additionalProperties`,`dependencies`,`dependentSchemas`,`dependentRequired`,`maxProperties`,`minProperties`,`patternProperties`,`properties`,`propertyNames`,`required`,`unevaluatedProperties`],_n=[`contains`,`items`,`maxItems`,`minItems`,`unevaluatedItems`,`uniqueItems`];function I(e,t){let n=m(t),r=e.schema;if(r===!0)return n===`bigint`?`number`:hn.some(e=>e===n)?n:void 0;if(!h(r))return;let i=r.type;if(Array.isArray(i)){if(i.includes(n))return n;let e=m(r.default);return i.includes(e)?e:i[0]}if(i)return i;if(Array.isArray(r.enum)){let e=r.enum.map(e=>m(e)).filter((e,t,n)=>n.indexOf(e)===t);if(e.includes(n))return n;let t=m(r.default);return e.includes(t)?t:e[0]}let a=Object.keys(e.schema),o=a.filter(e=>gn.includes(e)),s=a.filter(e=>_n.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 vn(e){switch(m(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:yn}=p,bn={id:L,keyword:L,parse:Sn,addReduce:e=>e[L]!=null,reduce:Cn,addValidate:e=>e[L]!=null,validate:On},xn={id:`oneOf-fuzzy`,keyword:`oneOf`,parse:Sn,addReduce:e=>e.oneOf!=null,reduce:En,addValidate:e=>e.oneOf!=null,validate:On};function Sn(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}`)),e[L].reduce((e,t)=>(t.schemaValidation&&e.push(...t.schemaValidation),e),[])}}function Cn({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;if(t!=null&&e.schema[yn])return wn({node:e,data:t,pointer:n,path:r});let i=[],a=[];for(let o=0;o<e.oneOf.length;o+=1){let s=x(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=De(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 wn({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;let i=e.schema[yn],a=S(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 o=[];for(let s=0;s<e.oneOf.length;s+=1){let{node:c}=e.oneOf[s].getNodeChild(i,t);if(!C(c))return e.createError(`missing-one-of-declarator-error`,{declarator:yn,oneOfProperty:i,schemaLocation:e.oneOf[s].schemaLocation,pointer:`${n}/oneOf/${s}`,schema:e.schema,value:t});let l=f(x(c,a,`${n}/${i}`,r));if(l.length>0)o.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:i,value:t,pointer:n,schema:e.schema,errors:o})}function Tn(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]&&x(e.properties[o],t[o],n,r).length===0&&(i+=1);return i}function En({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return e;let i=Cn({node:e,data:t,pointer:n,path:r});if(C(i))return i;if(h(t)){let i,a=-1,o=0;for(let s=0;s<e.oneOf.length;s+=1){let c=e.oneOf[s],l=Tn(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 Dn({node:e,data:t,pointer:n=`#`,path:r}){let{oneOf:i,schema:a}=e;if(!i)return;let o=a[yn],s=S(t,o),c=[],l=[];for(let e of i){let{node:t,error:a}=e.getNodeChild(o,s);if(t){let a=x(t,s,`${n}/${o}`,r);a.length>0?l.push(...a):c.push({index:i.indexOf(e),node:e})}else console.log(`jlib oneOf error: failed getting schema for '${o}' to resolve ${yn} in ${n}/oneOf/${i.indexOf(e)}`,a)}if(c.length===1){let e=c[0];return e.node.oneOfIndex=e.index,x(e.node,t,n,r)}return c.length>1?e.createError(`multiple-one-of-error`,{value:t,pointer:n,schema:a,matches:c}):e.createError(`one-of-error`,{value:JSON.stringify(t),pointer:n,schema:a,oneOf:a.oneOf,errors:l})}function On({node:e,data:t,pointer:n=`#`,path:r}){let{oneOf:i,schema:a}=e;if(!i)return;if(a[yn])return Dn({node:e,data:t,pointer:n,path:r});let o=[],s=[];for(let e=0;e<i.length;e+=1){let a=x(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})}let kn=()=>!1;try{typeof File==`function`&&(kn=e=>e instanceof File)}catch{}function An(e,t){if(e.$ref==null)return;t.cache=t.cache??{};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 jn(e,t){return(t.cache?.[e.schemaLocation]?.[e.$ref]??-1)<(t.recursionLimit??1)}function Mn(e,t){let n=m(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(m(n)===e)return n}catch{}return t}function Nn(e,t,n){if(n?.cache==null)throw Error(`Missing options`);if(e.schema===!1||e.schema===!0||kn(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&&r.anyOf?.length>0&&(i=r.anyOf[0].getData(i,n)??i),r.oneOf&&r.oneOf?.length>0)if(vn(i))r=b(r,r.oneOf[0]);else{let e=En({node:r,data:i,path:[],pointer:`#`});if(E(e)){if(i!=null&&n.removeInvalidData!==!0)return i;r=r.oneOf[0],i=void 0}else r=b(r,e)}let a=An(r,n);if(a===!1)return i;C(a)&&(i=a.getData(i,n)??i,r=a);let o=Pn[I(r,i)]?.(r,i,n);return o===void 0?i:o}const Pn={null:(e,t,n)=>Fn(e,t,null,n.useTypeDefaults),string:(e,t,n)=>Fn(e,t,``,n.useTypeDefaults),number:(e,t,n)=>Fn(e,t,0,n.useTypeDefaults),integer:(e,t,n)=>Fn(e,t,0,n.useTypeDefaults),boolean:(e,t,n)=>Fn(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??[],s=e.properties;s&&Object.keys(s).forEach(e=>{let r=s[e],c=o.includes(e),l=S(t,e),u=t===void 0||l===void 0?S(i,e):l;if(u!=null||c||n.addOptionalProps){let t=r.getData(u,n);(t!==void 0||n.useTypeDefaults!==!1)&&(a[e]=t)}});let c=e.dependentRequired;h(c)&&Object.keys(c).forEach(t=>{let r=c[t];S(a,t)!==void 0&&r.forEach(t=>{let{node:r}=e.getNodeChild(t,a);r&&(a[t]=r.getData(S(a,t),n))})});let l=e.dependentSchemas;if(l&&Object.keys(l).forEach(e=>{let r=l[e];if(a[e]!==void 0&&C(r)){let e=r.getData(t??a,n);Object.assign(a,e)}}),t)if(n.removeInvalidData===!0&&(r.additionalProperties===!1||h(r.additionalProperties))){let n=e.additionalProperties;C(n)&&Object.keys(t).forEach(e=>{if(a[e]==null){let r=S(t,e);n.validate(r).valid&&(a[e]=r)}})}else Object.keys(t).forEach(e=>a[e]==null&&(a[e]=S(t,e)));if(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&&jn(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&&jn(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.copy)(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 Fn({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:Mn(e.type,t)}const R=`items`,In={id:R,keyword:R,parse:Rn,addResolve:e=>(e.prefixItems||e[R])!=null,resolve:Ln,addValidate:({schema:e})=>e.items!=null,validate:zn};function Ln({node:e,key:t}){if(e.prefixItems?.[t])return e.prefixItems[t];if(e.items)return e.items}function Rn(e){let{schema:t,evaluationPath:n}=e,r=t[R];if(!(r==null||typeof r==`boolean`)){if(h(r)){e.items=e.compileSchema(r,`${n}/${R}`,`${e.schemaLocation}/${R}`);return}if(Array.isArray(r)){e.prefixItems=r.map((t,r)=>e.compileSchema(t,`${n}/${R}/${r}`,`${e.schemaLocation}/${R}/${r}`));return}return e.createError(`schema-error`,{pointer:n,schema:t,value:void 0,message:`Keyword '${R}' must be an object or array - received '${typeof r}'`})}}function zn({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=x(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=x(e.items,o,`${n}/${i}`,r);s&&a.push(...s)}return a}}const z=`maximum`,Bn={id:z,keyword:z,parse:Vn,addValidate:e=>e.maximum!=null,validate:Hn};function Vn(e){let t=e.schema[z];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${z}`,schema:e.schema,value:t,message:`Keyword '${z}' must be a number - received '${typeof t}'`});e[z]=t}}function Hn({node:e,data:t,pointer:n}){if(!D(t))return;let r=e[z],{schema:i}=e;if(r&&r<t)return e.createError(`maximum-error`,{maximum:r,length:t,value:t,pointer:n,schema:i});if(r&&i.exclusiveMaximum===!0&&r===t)return e.createError(`maximum-error`,{maximum:r,length:t,pointer:n,schema:i,value:t})}const Un=`maxItems`,Wn={id:Un,keyword:Un,parse:Gn,addValidate:({schema:e})=>!isNaN(e.maxItems),validate:Kn};function Gn(e){let t=e.schema[Un];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Un}`,schema:e.schema,value:t,message:`Keyword '${Un}' must be a number - received '${typeof t}'`});e[Un]=t}}function Kn({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 qn(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 B=`maxLength`,Jn={id:B,keyword:B,parse:Yn,addValidate:e=>e[B]!=null,validate:Xn};function Yn(e){let t=e.schema[B];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${B}`,schema:e.schema,value:t,message:`Keyword '${B}' must be a number - received '${typeof t}'`});e[B]=t}}function Xn({node:e,data:t,pointer:n=`#`}){if(typeof t!=`string`)return;let r=e[B],i=qn(t).length;if(r<i)return e.createError(`max-length-error`,{maxLength:r,length:i,pointer:n,schema:e.schema,value:t})}const V=`maxProperties`,Zn={id:V,keyword:V,parse:Qn,addValidate:e=>e[V]!=null,validate:$n};function Qn(e){let t=e.schema[V];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${V}`,schema:e.schema,value:t,message:`Keyword '${V}' must be a number - received '${typeof t}'`});e[V]=t}}function $n({node:e,data:t,pointer:n=`#`}){if(!h(t))return;let r=e[V],i=Object.keys(t).length;if(r<i)return e.createError(`max-properties-error`,{maxProperties:r,length:i,pointer:n,schema:e.schema,value:t})}const H=`minimum`,er={id:H,keyword:H,parse:tr,addValidate:e=>e[H]!=null,validate:nr};function tr(e){let t=e.schema[H];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${H}`,schema:e.schema,value:t,message:`Keyword '${H}' must be a number - received '${typeof t}'`});e[H]=t}}function nr({node:e,data:t,pointer:n}){if(!D(t))return;let r=e[H];if(r>t||e.schema.exclusiveMinimum===!0&&e.schema.minimum===t)return e.createError(`minimum-error`,{minimum:r,length:t,pointer:n,schema:e.schema,value:t})}const U=`minItems`,rr={id:U,keyword:U,parse:ir,addValidate:e=>e[U]!=null,validate:ar};function ir(e){let t=e.schema[U];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${U}`,schema:e.schema,value:t,message:`Keyword '${U}' must be a number - received '${typeof t}'`});e[U]=t}}function ar({node:e,data:t,pointer:n}){if(!Array.isArray(t))return;let r=e[U];if(r>t.length)return e.createError(`min-items-error`,{minItems:r,length:t.length,pointer:n,schema:e.schema,value:t})}const W=`minLength`,or={id:W,keyword:W,parse:sr,addValidate:e=>e[W]!=null,validate:cr};function sr(e){let t=e.schema[W];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${W}`,schema:e.schema,value:t,message:`Keyword '${W}' must be a number - received '${typeof t}'`});e[W]=t}}function cr({node:e,data:t,pointer:n=`#`}){if(typeof t!=`string`)return;let r=qn(t).length,i=e[W];if(!(i<=r))return e.createError(`min-length-error`,{minLength:i,length:r,pointer:n,schema:e.schema,value:t})}const G=`minProperties`,lr={id:G,keyword:G,parse:ur,addValidate:e=>e[G]!=null,validate:dr};function ur(e){let t=e.schema[G];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${G}`,schema:e.schema,value:t,message:`Keyword '${G}' must be a number - received '${typeof t}'`});e[G]=t}}function dr({node:e,data:t,pointer:n=`#`}){if(!h(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 fr(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 K=`multipleOf`,pr={id:K,keyword:K,parse:mr,addValidate:e=>e[K]!=null,validate:hr};function mr(e){let t=e.schema[K];if(t!=null){if(!D(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${K}`,schema:e.schema,value:t,message:`Keyword '${K}' must be a number - received '${typeof t}'`});e[K]=t}}function hr({node:e,data:t,pointer:n}){if(typeof t!=`number`)return;let r=e[K],i=fr(t),a=fr(r);if(i>a)return e.createError(`multiple-of-error`,{multipleOf:r,value:t,pointer:n,schema:e.schema});let o=10**a;if(Math.round(t*o)%Math.round(r*o)/o!==0)return e.createError(`multiple-of-error`,{multipleOf:r,value:t,pointer:n,schema:e.schema})}const gr={id:`not`,keyword:`not`,parse:_r,addValidate:e=>e.not!=null,validate:vr};function _r(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e,i=t.not;if(i!=null)return!w(i)&&!T(i)?e.createError(`schema-error`,{pointer:`${r}/not`,schema:t,value:i,message:`Keyword 'not' must be a valid JSON Schema - received '${typeof i}'`}):(e.not=e.compileSchema(t.not,`${n}/not`,`${r}/not`),e.not.schemaValidation)}function vr({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(x(e.not,t,n,r).length===0)return e.createError(`not-error`,{value:t,not:i.not,pointer:n,schema:i})}const yr=`pattern`,{REGEX_FLAGS:br}=p,xr={id:yr,keyword:yr,parse:Sr,addValidate:e=>e[yr]!=null,validate:Cr};function Sr(e){let t=e.schema[yr];if(t!=null){if(typeof t!=`string`)return e.createError(`schema-error`,{pointer:e.schemaLocation,schema:e.schema,value:t,message:`Keyword 'pattern' must be a string - received '${typeof t}'`});try{e[yr]=new RegExp(t,e.schema.regexFlags??br)}catch(n){return e.createError(`schema-error`,{pointer:e.schemaLocation,schema:e.schema,value:t,message:n.message})}}}function Cr({node:e,data:t,pointer:n=`#`}){if(typeof t==`string`&&e.pattern.test(t)===!1){let{schema:r}=e;return e.createError(`pattern-error`,{pattern:r.pattern,description:r.patternExample||r.pattern,received:t,schema:r,value:t,pointer:n})}}const{REGEX_FLAGS:wr}=p,Tr={id:`patternProperties`,keyword:`patternProperties`,parse:Er,addReduce:e=>e.patternProperties!=null,reduce:Or,addResolve:e=>e.patternProperties!=null,resolve:Dr,addValidate:e=>e.patternProperties!=null,validate:kr};function Er(e){let{schema:t}=e;if(!h(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??wr),node:e.compileSchema(t.patternProperties[n],`${e.evaluationPath}/patternProperties/${n}`,`${e.schemaLocation}/patternProperties/${n}`)})))}function Dr({node:e,key:t}){return e.patternProperties?.find(({pattern:e})=>e.test(`${t}`))?.node}function Or({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=y(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=y(e.schema,i,`patternProperties`),e.compileSchema(i,e.evaluationPath,e.schemaLocation,`${o})`))}function kr({node:e,data:t,pointer:n,path:r}){if(!h(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=S(t,l),d=a.filter(e=>e.pattern.test(l));d.forEach(({node:e})=>c.push(...x(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 Ar={id:`property`,keyword:`properties`,parse:Mr,addResolve:e=>e.properties!=null,resolve:jr,addValidate:e=>e.properties!=null,validate:Nr};function jr({node:e,key:t}){return e.properties?.[t]}function Mr(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t.properties==null)return;if(t.properties&&!h(t.properties))return e.createError(`schema-error`,{pointer:r,schema:t,value:void 0,message:"keyword `properties` must be of type `object`"});let i=[],a={};return Object.keys(t.properties).forEach(o=>{a[o]=e.compileSchema(t.properties[o],`${n}/properties/${o}`,`${r}/properties/${o}`),a[o].schemaValidation&&i.push(...a[o].schemaValidation)}),e.properties=a,i}function Nr({node:e,data:t,pointer:n,path:r}){if(!h(t))return;let i=[],a=e.properties??{};return Object.keys(t).forEach(e=>{let o=S(t,e),s=a[e];if(s==null||o===void 0)return;let c=x(s,o,`${n}/${e}`,r);i.push(...c)}),i}const q=`propertyNames`,Pr={id:q,keyword:q,parse:Fr,addValidate:e=>e.schema[q]!=null,validate:Ir};function Fr(e){let t=e.schema[q];if(t!=null){if(!(w(t)||T(t)))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${q}`,schema:e.schema,value:t,message:`Keyword '${q}' must be a valid JSON Schema - received '${typeof t}'`});if(!T(t))return e.propertyNames=e.compileSchema(t,`${e.evaluationPath}/propertyNames`,`${e.schemaLocation}/propertyNames`),e.schemaValidation}}function Ir({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!h(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[q]===!0)return;let a=e[q];if(!h(a))return;let o=[];return Object.keys(t).forEach(s=>{let c=x(a,s,`${n}/${s}`,r);c.length>0&&o.push(e.createError(`invalid-property-name-error`,{property:s,pointer:n,validationError:c[0],value:t[s],schema:i}))}),o}const Lr=`required`,Rr={id:Lr,keyword:Lr,parse:zr,addValidate:e=>e.required!=null,validate:Br};function zr(e){let t=e.schema[Lr];if(t!=null){if(!Tt(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Lr}`,schema:e.schema,value:t,message:`Keyword '${Lr}' must be a string[]`});e.required=t}}function Br({node:e,data:t,pointer:n=`#`}){let{required:r}=e;if(h(t))return r.map(r=>{if(!ye(t,r))return e.createError(`required-property-error`,{key:r,pointer:n,schema:e.schema,value:t})})}function Vr(e){return{...e,keywords:[...e.keywords.map(e=>({...e}))]}}function Hr(e,t){let{keywords:n}=Ur(e,...t.keywords??[]),r={...e.errors,...t.errors??{}},i={...e.formats,...t.formats??{}};return Gr({...e,...t,formats:i,keywords:n,errors:r})}function Ur(e,...t){let n=Vr(e);return t.forEach(e=>Wr(n,e)),n}function Wr(e,t){let n=e.keywords.findIndex(e=>e.keyword===t.keyword);n===-1?e.keywords.push(t):e.keywords[n]=t}function Gr(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}function J(e,t,n=`#`,r=[]){let i=e.resolveRef()??e;return r.push({node:i,value:t,pointer:n}),h(t)?Object.keys(t).forEach(e=>{let{node:a}=i.getNodeChild(e,t);a&&J(a,S(t,e),`${n}/${e}`,r)}):Array.isArray(t)&&t.forEach((e,a)=>{let{node:o}=i.getNodeChild(a,t);o&&J(o,S(t,a),`${n}/${a}`,r)}),r}const Y=`type`,Kr=[`null`,`boolean`,`number`,`integer`,`string`,`object`,`array`],qr={id:Y,keyword:Y,parse:Jr,addReduce:e=>Array.isArray(e.type),reduce:Yr,addValidate:e=>e.type!=null,validate:Zr};function Jr(e){let t=e.schema[Y];if(t!=null){if(typeof t!=`string`&&!Array.isArray(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Y}`,schema:e.schema,value:t,message:`Keyword '${Y}' must be a string or a string[] - received ${typeof t}`});if(typeof t==`string`&&!Kr.includes(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Y}`,schema:e.schema,value:t,message:`Keyword '${Y}' is not a valid JSON Schema type - received '${t}'. Expected one of ${Kr.join(`, `)}`});if(Array.isArray(t)){let n=t.findIndex(e=>!Kr.includes(e));if(n!==-1)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Y}/${n}`,schema:e.schema,value:t[n],message:`Keyword '${Y}' contains an invalid JSON Schema type: '${t[n]}'`})}e[Y]=t}}function Yr({node:e,pointer:t,data:n}){let r=Xr(n,e.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 Xr(e,t){let n=m(e);return n===`number`&&(t===`integer`||Array.isArray(t)&&t.includes(`integer`))?Number.isInteger(e)||isNaN(e)?`integer`:`number`:n}function Zr({node:e,data:t,pointer:n}){let r=e[Y],i=Xr(t,r);if(!(t===void 0||r===i||Array.isArray(r)&&r.includes(i)))return e.createError(`type-error`,{value:t,received:i,expected:r,schema:e.schema,pointer:n})}const Qr=`uniqueItems`,$r={id:Qr,keyword:Qr,parse:ei,addValidate:({schema:e})=>e[Qr]===!0,validate:ti};function ei(e){let t=e.schema[Qr];if(!(t==null||t===!1)){if(typeof t!=`boolean`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Qr}`,schema:e.schema,value:t,message:`Keyword '${Qr}' must be a boolean - received ${typeof t}`});e.uniqueItems=!0}}function ti({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,te.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}const ni=Gr({version:`draft-04`,$schemaRegEx:`draft-?0?4`,$schema:`http://json-schema.org/draft-04/schema#`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Nn,getChildSelection:mn,toDataNodes:J},keywords:[$e,mt,vt,St,Ke,Nt,Rt,Vt,Gt,Jt,Qt,In,Bn,Wn,Jn,Zn,er,rr,or,lr,pr,gr,Tr,xr,Ar,Pr,Rr,qr,$r,bn,ot,ut]}),ri={id:`const`,keyword:`const`,addValidate:({schema:e})=>e.const!==void 0,validate:ii};function ii({node:e,data:t,pointer:n}){if(!(0,te.default)(t,e.schema.const))return[e.createError(`const-error`,{pointer:n,schema:e.schema,value:t,expected:e.schema.const})]}const ai=`exclusiveMaximum`,oi={id:ai,keyword:ai,parse:si,addValidate:({schema:e})=>e.exclusiveMaximum!=null&&!isNaN(parseInt(e.exclusiveMaximum)),validate:ci};function si(e){let t=e.schema[ai];if(t!=null&&typeof t!=`number`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${ai}`,schema:e.schema,value:t,message:`Keyword '${ai}' must be a number - received '${typeof t}'`})}function ci({node:e,data:t,pointer:n}){if(typeof t==`number`&&e.schema.exclusiveMaximum<=t)return e.createError(`exclusive-maximum-error`,{maximum:e.schema.exclusiveMaximum,length:t,pointer:n,schema:e.schema,value:t})}const li=`exclusiveMinimum`,ui={id:li,keyword:li,parse:di,addValidate:({schema:e})=>e[li]!=null&&!isNaN(parseInt(e[li])),validate:fi};function di(e){let t=e.schema[li];if(t!=null&&typeof t!=`number`)return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${li}`,schema:e.schema,value:t,message:`Keyword '${li}' must be a number - received '${typeof t}'`})}function fi({node:e,data:t,pointer:n}){if(typeof t==`number`&&e.schema.exclusiveMinimum>=t)return e.createError(`exclusive-minimum-error`,{minimum:e.schema.exclusiveMinimum,length:t,pointer:n,schema:e.schema,value:t})}const pi=Gr({version:`draft-06`,$schemaRegEx:`draft-?0?6`,$schema:`http://json-schema.org/draft-06/schema#`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Nn,getChildSelection:mn,toDataNodes:J},keywords:[Ye,mt,vt,ri,St,Ke,Nt,Rt,Vt,oi,ui,Qt,In,Bn,Wn,Jn,Zn,er,rr,or,lr,pr,gr,Tr,xr,Ar,Pr,Rr,qr,$r,bn,ot,ut]}),mi={id:`if-then-else`,keyword:`if`,parse:hi,addReduce:e=>e.if!=null&&(e.then!=null||e.else!=null),reduce:gi,addValidate:e=>e.if!=null,validate:_i};function hi(e){let{schema:t,evaluationPath:n}=e,r=[];return t.if!=null&&(w(t.if)||T(t.if)?(e.if=e.compileSchema(t.if,`${n}/if`),e.if.schemaValidation&&r.push(...e.if.schemaValidation)):r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/if`,schema:e.schema,value:t.if,message:`Keyword 'if' must be valid JSON Schema - received '${typeof t.if}'`}))),t.then!=null&&(w(t.then)||T(t.then)?(e.then=e.compileSchema(t.then,`${n}/then`),e.then.schemaValidation&&r.push(...e.then.schemaValidation)):r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/then`,schema:e.schema,value:t.then,message:`Keyword 'then' must be valid JSON Schema - received '${typeof t.then}'`}))),t.else!=null&&(w(t.else)||T(t.else)?(e.else=e.compileSchema(t.else,`${n}/else`),e.else.schemaValidation&&r.push(...e.else.schemaValidation)):r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/else`,schema:e.schema,value:t.else,message:`Keyword 'else' must be valid JSON Schema - received '${typeof t.else}'`}))),r}function gi({node:e,data:t,pointer:n,path:r}){if(!(t===void 0||e.if==null)){if(x(e.if,t,n,[...r??[]]).length===0){if(e.then){let{node:n}=e.then.reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``).replace(/^#/,``)??``,r=t===``?`(then)`:t,i=y(e.then.schema,n.schema,`if`,`then`,`else`);return e.compileSchema(i,e.then.evaluationPath,e.schemaLocation,`${e.schemaLocation}${r}`)}}}else if(e.else){let{node:n}=e.else.reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``)??``,r=t===``?`(else)`:t,i=y(e.else.schema,n.schema,`if`,`then`,`else`);return e.compileSchema(i,e.else.evaluationPath,e.schemaLocation,`${e.schemaLocation}${r}`)}}}}function _i({node:e,data:t,pointer:n,path:r}){if(e.if!=null){if(x(e.if,t,n,[...r??[]]).length===0){if(e.then)return x(e.then,t,n,r)}else if(e.else)return x(e.else,t,n,r)}}const vi=Gr({version:`draft-07`,$schemaRegEx:`draft-?0?7`,$schema:`http://json-schema.org/draft-07/schema#`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Nn,getChildSelection:mn,toDataNodes:J},keywords:[Ye,mt,vt,ri,St,Ke,Nt,Rt,Vt,oi,ui,Qt,mi,In,Bn,Wn,Jn,Zn,er,rr,or,lr,pr,gr,Tr,xr,Ar,Pr,Rr,qr,$r,bn,ot,ut]}),yi={id:`$ref`,keyword:`$ref`,parse:xi,addValidate:({schema:e})=>e.$ref!=null||e.$recursiveRef!=null,validate:Ci,addReduce:({schema:e})=>e.$ref!=null||e.$recursiveRef!=null,reduce:Ve};function bi(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function xi(e){e.resolveRef=Si;let t=v(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)&&bi(e,v(t,`#${e.evaluationPath.replace(e.lastIdPointer,``)}`)),bi(e,v(e.context.rootNode.$id,e.evaluationPath)),e.schema.$anchor&&(e.context.anchors[`${t.replace(/#$/,``)}#${e.schema.$anchor}`]=e),e.schema.$ref&&(e.$ref=v(t,e.schema.$ref),e.$ref.startsWith(`/`)&&(e.$ref=`#${e.$ref}`))}function Si({pointer:e,path:t}={}){if(this.schema.$recursiveRef){let n=wi(this,t??[]);return C(n)&&t?.push({pointer:e,node:n}),n}if(this.$ref==null)return this;let n=Ti(this);return C(n)&&t?.push({pointer:e,node:n}),n}function Ci({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.$recursiveRef,pointer:n,schema:e.schema,value:t}):x(i,t,n,r)}function wi(e,t){let n=t,r=0;for(let t=n.length-1;t>=0;t--){if(n[t].node.schema.$recursiveAnchor===!1)return Ti(e,v(e.$id,e.schema.$recursiveRef));if(/^https?:\/\//.test(n[t].node.schema.$id??``)&&n[t].node.schema.$recursiveAnchor!==!0){r=t;break}}let i=n.find((e,t)=>t>=r&&e.node.schema.$recursiveAnchor===!0);return i?i.node:Ti(e,v(e.$id,e.schema.$recursiveRef))}function Ti(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return O(e.context.refs[t],e);if(e.context.anchors[t])return O(e.context.anchors[t],e);let n=Le(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];if(e.context.remotes[t])return O(e.context.remotes[t],e);if(t[0]===`#`){let n=t.match(/#[^#]*$/)?.pop(),r=e.context.rootNode.schema,i=(0,l.get)(r,n);if(i)return e.compileSchema(i,`${e.evaluationPath}/$ref`,n)}return 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=Ti(i,t);if(a||(a=Ti(i,n[1]),a))return a}if(e.context.refs[r]){let i=e.context.refs[r],a=(0,l.split)(n[1]),o=i;for(let r of a)if(o=o[r===`definitions`?`$defs`:r],o==null)return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0,host:n[0],local:n[1]});return o}}return e.createError(`ref-error`,{ref:t,pointer:e.evaluationPath,schema:e.schema,value:void 0})}const Ei=`unevaluatedItems`,Di={id:Ei,keyword:Ei,parse:Oi,addValidate:({schema:e})=>e[Ei]!=null,validate:ki};function Oi(e){let{unevaluatedItems:t}=e.schema;if(!(t==null||typeof t==`boolean`)){if(!h(t))return e.createError(`schema-error`,{pointer:e.evaluationPath,schema:e.schema,value:void 0,message:`Keyword '${Ei}' must be an object - received '${typeof t}'`});e.unevaluatedItems=e.compileSchema(e.schema.unevaluatedItems,`${e.evaluationPath}/${Ei}`,`${e.schemaLocation}/${Ei}`)}}function ki({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0||i.unevaluatedItems==null||i.unevaluatedItems===!0)return;let{node:a}=e.reduceNode(t,{pointer:n,path:r});if(a??=e,a.schema.unevaluatedItems===!0||a.schema.additionalItems===!0)return;let o=e.if!=null&&x(e.if,t,n,r).length===0,s=[];for(let a=0;a<t.length;a+=1){let c=t[a],{node:l}=e.getNodeChild(a,t,{path:r});if(l&&x(l,c,`${n}/${a}`,r).length>0){let o=e.unevaluatedItems;if(o&&t.forEach(e=>{let t=x(o,e,`${n}/${a}`,r);if(t!=null){if(Array.isArray(t))return s.push(...t);s.push(t)}}),e.schema.unevaluatedItems===!1)return e.createError(`unevaluated-items-error`,{pointer:`${n}/${a}`,value:JSON.stringify(c),schema:i})}if(l===void 0&&!(o&&e.if.prefixItems&&e.if.prefixItems.length>a))if(e.unevaluatedItems){let t=x(e.unevaluatedItems,c,`${n}/${a}`,r);t.length>0&&s.push(...t)}else s.push(e.createError(`unevaluated-items-error`,{pointer:`${n}/${a}`,value:JSON.stringify(c),schema:i}))}return s}function X({node:e,data:t,key:n,pointer:r,path:i}){if(Array.isArray(e.schema.required)&&!e.schema.required.find(e=>ye(t,e)))return!1;if(e.schema.unevaluatedProperties===!0||e.schema.additionalProperties===!0||e.properties?.[n]&&e.properties[n].validate(t[n],r,i).valid||e.patternProperties&&e.patternProperties.find(e=>e.pattern.test(n)))return!0;if(e.allOf){for(let a of e.allOf)if(X({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.anyOf){for(let a of e.anyOf)if(X({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.oneOf){for(let a of e.oneOf)if(X({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.if){if(X({node:e.if,data:t,key:n,pointer:r,path:i}))return!0;let a=x(e.if,t,r,i).length===0;if(a&&e.then){if(X({node:e.then,data:t,key:n,pointer:r,path:i}))return!0}else if(!a&&e.else&&X({node:e.else,data:t,key:n,pointer:r,path:i}))return!0}let a=e.resolveRef({pointer:r,path:i});return!!(a!==e&&X({node:a,data:t,key:n,pointer:r,path:i}))}const Z=`unevaluatedProperties`,Ai={id:Z,keyword:Z,parse:ji,addValidate:({schema:e})=>e[Z]!=null,validate:Mi};function ji(e){let t=e.schema[Z];if(t!=null){if(!(w(t)||T(t)))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Z}`,schema:e.schema,value:t,message:`Keyword '${Z}' must be a valid JSON Schema - received '${typeof t}'`});if(!T(t))return e.unevaluatedProperties=e.compileSchema(e.schema.unevaluatedProperties,`${e.evaluationPath}/${Z}`,`${e.schemaLocation}/${Z}`),e.unevaluatedProperties.schemaValidation}}function Mi({node:e,data:t,pointer:n,path:r}){if(!h(t))return;let i=Object.keys(t).filter(e=>t[e]!==void 0);if(i.length===0)return;let a=[];for(let o of i){if(X({node:e,data:t,key:o,pointer:n,path:r}))continue;let{node:i}=e.getNodeChild(o,t,{pointer:n,path:r});if(i===void 0)if(e.unevaluatedProperties){let i=x(e.unevaluatedProperties,t[o],`${n}/${o}`,r);a.push(...i)}else e.schema.unevaluatedProperties===!1&&a.push(e.createError(`unevaluated-property-error`,{pointer:`${n}/${o}`,value:JSON.stringify(t[o]),schema:e.schema}));if(i&&x(i,t[o],`${n}/${o}`,r).length>0)if(e.unevaluatedProperties){let i=x(e.unevaluatedProperties,t[o],`${n}/${o}`,r);a.push(...i)}else e.schema.unevaluatedProperties===!1&&a.push(e.createError(`unevaluated-property-error`,{pointer:`${n}/${o}`,value:JSON.stringify(t[o]),schema:e.schema}))}return a}const Ni=Gr({version:`draft-2019-09`,$schemaRegEx:`draft[/-]2019-?(09)?`,$schema:`https://json-schema.org/draft/2019-09/schema`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Nn,getChildSelection:mn,toDataNodes:J},keywords:[yi,mt,vt,ri,St,Ke,Nt,Et,kt,Rt,Vt,oi,ui,Qt,mi,In,Bn,Wn,Jn,Zn,er,rr,or,lr,pr,gr,Tr,xr,Ar,Pr,Rr,qr,Di,Ai,$r,bn,ot,ut]});function Pi(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 C(n)?[n]:r}if(e.schema.items===!0)return[e.compileSchema({type:`string`})];if(e.schema.items===!1)return[];if(e.items)return[e.items.resolveRef()];if(e.prefixItems&&e.prefixItems.length<=+t)return[];let{node:n,error:r}=e.getNodeChild(t);return r??[n]}function Fi(e,t){if(e.$ref==null)return;t.cache=t.cache??{};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 Ii(e,t){return(t.cache?.[e.schemaLocation]?.[e.$ref]??-1)<(t.recursionLimit??1)}function Li(e,t){let n=m(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(m(n)===e)return n}catch{}return t}function Ri(e,t,n){if(n?.cache==null)throw Error(`Missing options`);if(e.schema===!1||e.schema===!0||kn(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&&r.anyOf?.length>0&&(i=r.anyOf[0].getData(i,n)??i),r.oneOf&&r.oneOf?.length>0)if(vn(i))r=b(r,r.oneOf[0]);else{let e=En({node:r,data:i,path:[],pointer:`#`});if(E(e)){if(i!=null&&n.removeInvalidData!==!0)return i;r=r.oneOf[0],i=void 0}else r=b(r,e)}let a=Fi(r,n);if(a===!1)return i;C(a)&&(i=a.getData(i,n)??i,r=a);let o=zi[I(r,i)]?.(r,i,n);return o===void 0?i:o}const zi={null:(e,t,n)=>Bi(e,t,null,n.useTypeDefaults),string:(e,t,n)=>Bi(e,t,``,n.useTypeDefaults),number:(e,t,n)=>Bi(e,t,0,n.useTypeDefaults),integer:(e,t,n)=>Bi(e,t,0,n.useTypeDefaults),boolean:(e,t,n)=>Bi(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??[],s=e.properties;s&&Object.keys(s).forEach(e=>{let r=s[e],c=o.includes(e),l=S(t,e),u=t===void 0||l===void 0?S(i,e):l;if(u!=null||c||n.addOptionalProps){let t=r.getData(u,n);(t!==void 0||n.useTypeDefaults!==!1)&&(a[e]=t)}});let c=e.dependentRequired;h(c)&&Object.keys(c).forEach(t=>{let r=c[t];S(a,t)!==void 0&&r.forEach(t=>{let{node:r}=e.getNodeChild(t,a);r&&(a[t]=r.getData(S(a,t),n))})});let l=e.dependentSchemas;if(l&&Object.keys(l).forEach(e=>{let r=l[e];if(a[e]!==void 0&&C(r)){let e=r.getData(t??a,n);Object.assign(a,e)}}),t&&(n.removeInvalidData===!0&&(r.additionalProperties===!1||h(r.additionalProperties))?C(e.additionalProperties)&&Object.keys(t).forEach(n=>{if(a[n]==null){let r=S(t,n);e.additionalProperties?.validate(r).valid&&(a[n]=r)}}):Object.keys(t).forEach(e=>a[e]==null&&(a[e]=S(t,e)))),e.if){let{errors:t}=e.if.validate(a);if(t.length===0&&e.then){let t=e.then.getData(a,n);Object.assign(a,t)}else if(t.length>0&&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.prefixItems==null){if(e.items&&(Ii(e.items,n)||a?.length>0)){let t={...n.cache},r=Math.max(o,a.length);for(let o=0;o<r;o+=1){n.cache=(0,c.copy)(t);let r={...n,disableRecursionLimit:!0};a[o]=e.items.getData(a[o]==null?i[o]:a[o],r)}}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&&Ii(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&&Ii(e.items,n)||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.copy)(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 Bi({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:Li(e.type,t)}const Q=`items`,Vi={id:Q,keyword:Q,parse:Ui,addResolve:e=>e[Q]!=null,resolve:Hi,addValidate:e=>e[Q]!=null,validate:Wi};function Hi({node:e,key:t}){if(!(e.prefixItems&&e.prefixItems?.length>+t))return e.items}function Ui(e){let t=e.schema[Q];if(t!=null){if(!(w(t)||T(t)))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Q}`,schema:e.schema,value:t,message:`Keyword '${Q}' must be a valid JSON Schema - received '${typeof t}'`});if(t!==!0)return e[Q]=e.compileSchema(t,`${e.evaluationPath}/${Q}`,`${e.schemaLocation}/${Q}`),e[Q].schemaValidation}}function Wi({node:e,data:t,pointer:n=`#`,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0||Array.isArray(i.prefixItems)&&i.prefixItems.length>=t.length)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.items){for(let o=i.prefixItems?.length??0;o<t.length;o+=1){let i=t[o],s=x(e.items,i,`${n}/${o}`,r);s&&a.push(...s)}return a}}const Gi={id:`prefixItems`,keyword:`prefixItems`,parse:qi,addResolve:e=>e.prefixItems!=null,resolve:Ki,addValidate:({schema:e})=>e.prefixItems!=null,validate:Ji};function Ki({node:e,key:t}){if(e.prefixItems&&e.prefixItems[t])return e.prefixItems[t]}function qi(e){let{schema:t,evaluationPath:n}=e;Array.isArray(t.prefixItems)&&(e.prefixItems=t.prefixItems.map((t,r)=>e.compileSchema(t,`${n}/prefixItems/${r}`,`${e.schemaLocation}/prefixItems/${r}`)))}function Ji({node:e,data:t,pointer:n=`#`,path:r}){if(!Array.isArray(t)||t.length===0)return;let i=[];if(e.prefixItems){for(let a=0;a<Math.min(e.prefixItems.length,t.length);a+=1){let o=t[a],s=e.prefixItems[a],c=x(s,o,`${n}/${a}`,r);i.push(...c)}return i}}function Yi({node:e,data:t,key:n,pointer:r,path:i}){let a=S(t,n);if(e.schema.unevaluatedItems===!0||e.schema.items===!0||e.contains&&x(e.contains,a,`${r}/${n}`,i).length===0)return!0;if(e.allOf){for(let a of e.allOf)if(Yi({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.anyOf){for(let a of e.anyOf)if(Yi({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.oneOf){for(let a of e.oneOf)if(Yi({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.if){if(Yi({node:e.if,data:t,key:n,pointer:r,path:i}))return!0;let a=x(e.if,t,r,i).length===0;if(a&&e.if.prefixItems&&e.if.prefixItems.length>n)return!0;if(a&&e.then){if(Yi({node:e.then,data:t,key:n,pointer:r,path:i}))return!0}else if(!a&&e.else&&Yi({node:e.else,data:t,key:n,pointer:r,path:i}))return!0}}const Xi=`unevaluatedItems`,Zi={id:Xi,keyword:Xi,parse:Qi,addValidate:({schema:e})=>e.unevaluatedItems!=null,validate:$i};function Qi(e){let t=e.schema[Xi];if(t!=null){if(!(w(t)||T(t)))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${Xi}`,schema:e.schema,value:t,message:`Keyword '${Xi}' must be a valid JSON Schema - received '${typeof t}'`});if(!T(t))return e.unevaluatedItems=e.compileSchema(e.schema.unevaluatedItems,`${e.evaluationPath}/${Xi}`,`${e.schemaLocation}/${Xi}`),e.unevaluatedItems.schemaValidation}}function $i({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0||i.unevaluatedItems==null||i.unevaluatedItems===!0)return;let a=[];for(let o=0;o<t.length;o+=1){if(Yi({node:e,data:t,pointer:n,key:o,path:r}))continue;let s=t[o],{node:c}=e.getNodeChild(o,t,{path:r});if(c===void 0)if(e.unevaluatedItems){let t=x(e.unevaluatedItems,s,`${n}/${o}`,r);t.length>0&&a.push(...t)}else a.push(e.createError(`unevaluated-items-error`,{pointer:`${n}/${o}`,value:JSON.stringify(s),schema:i}));if(c&&x(c,s,`${n}/${o}`,r).length>0&&(e.unevaluatedItems&&e.unevaluatedItems.validate(s,`${n}/${o}`,r).valid===!1||e.schema.unevaluatedItems===!1))return e.createError(`unevaluated-items-error`,{pointer:`${n}/${o}`,value:JSON.stringify(s),schema:i})}return a}const ea=Gr({version:`draft-2020-12`,$schemaRegEx:`draft[/-]2020-?(12)?`,$schema:`https://json-schema.org/draft/2020-12/schema`,errors:Wt,formats:pn,methods:{createSchema:g,getData:Ri,getChildSelection:Pi,toDataNodes:J},keywords:[Re,ut,mt,vt,ri,St,Ke,Nt,Et,kt,Rt,Vt,oi,ui,Qt,mi,Vi,Bn,Wn,Jn,Zn,er,rr,or,lr,pr,gr,bn,xr,Tr,Gi,Ar,Pr,Rr,qr,Zi,Ai,$r]}),{REGEX_FLAGS:ta}=p,na=[ni,pi,vi,Ni,ea];function ra(e,t){return e.find(e=>new RegExp(e.$schemaRegEx,ta).test(t))??e[e.length-1]}function ia(e,t={}){let n=t.formatAssertion??!0,r=t.drafts??na,i=ra(r,w(e)?t.draft??e.$schema:void 0),a={evaluationPath:`#`,lastIdPointer:`#`,schemaLocation:`#`,dynamicId:``,reducers:[],resolvers:[],validators:[],schema:e,context:{remotes:{},dynamicAnchors:{},...t.remote?.context??{},anchors:{},refs:{},...(0,c.copy)(ge(i,`methods`,`keywords`,`version`,`formats`,`errors`)),getDataDefaultOptions:t.getDataDefaultOptions,withSchemaAnnotations:t.withSchemaAnnotations??!1,throwOnInvalidRef:t.throwOnInvalidRef??!1,drafts:r},...Oe};if(a.context.rootNode=a,a.context.remotes[(w(e)?e.$id:void 0)??`#`]=a,t.remote){let e=Ge(a,a.schema.$schema);if(C(e)&&e.schema.$vocabulary){let t=Object.keys(e.schema.$vocabulary).find(e=>e.includes(`vocab/format-assertion`));t&&n===`meta-schema`&&(n=e.schema.$vocabulary[t]===!0);let r=Object.keys(e.getData({},{addOptionalProps:!0}));r.length>0&&(a.context.keywords=a.context.keywords.filter(e=>r.includes(e.keyword)))}}if(n===!1&&(a.context.keywords=a.context.keywords.filter(e=>e.keyword!==`format`)),!w(e)&&!T(e))return a.schemaErrors=[a.createError(`schema-error`,{pointer:`#`,schema:e,value:void 0,message:`JSON schema must be object or boolean - reveived: '${e}'`})],a;let o=je(a).filter(e=>e!=null);o=f(o);let s=[],l=[];if(o.forEach(e=>{E(e)?s.push(e):Pe(e)&&l.push(e)}),t.throwOnInvalidSchema&&s.length>0){let e=Error(`Invalid schema passed to compileSchema`);throw e.data=s,e}return a.schemaErrors=s,a.schemaAnnotations=l,a}const aa=Hr(ea,{$schemaRegEx:`.`,keywords:[xn],errors:{"min-length-error":e=>e.minLength===1?{type:`error`,code:`min-length-one-error`,message:`An input is required`,data:e}:{type:`error`,code:`min-length-error`,message:_e("Value in `{{pointer}}` is `{{length}}`, but should be `{{minLength}}` at minimum",e),data:e}}}),$=`propertyDependencies`;function oa(e,t){let n=e[$];if(n==null)return;let r=Object.keys(n),i=[];for(let e of r)if(ye(t,e)){let r=t[e];n[e][r]&&i.push({property:e,value:`${r}`,node:n[e][r]})}return i}const sa={id:$,keyword:$,parse:ca,addValidate:e=>e[$]!=null,validate:la,addReduce:e=>e[$]!=null,reduce:ua};function ca(e){let t=e.schema[$];if(!h(t))return e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${$}`,schema:e.schema,value:t,message:`Keyword '${$}' must be an object - received '${typeof t}'`});let n={},r=[];return Object.keys(t).map(i=>{let a=t[i];if(!h(a)){r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${$}/${i}`,schema:e.schema,value:t,message:`Keyword '${$}[string]' must be an object - received '${typeof t}'`}));return}Object.keys(a).forEach(t=>{let o=a[t];if(!(w(o)||T(o))){r.push(e.createError(`schema-error`,{pointer:`${e.schemaLocation}/${$}/${i}/${t}`,schema:e.schema,value:o,message:`Keyword '${$}[string][string]' must be a valid JSON Schema - received '${typeof o}'`}));return}n[i]=n[i]??{},n[i][t]=e.compileSchema(o,`${e.evaluationPath}/${$}/${i}/${t}`,`${e.schemaLocation}/${$}/${i}/${t}`),n[i][t].schemaValidation&&r.push(...n[i][t].schemaValidation)})}),e[$]=n,r}function la({node:e,data:t,pointer:n=`#`,path:r}){if(!h(t))return;let i=oa(e,t);if(i==null||i.length===0)return;let a=[];for(let e of i){let i=x(e.node,t,n,r);a.push(i)}return f(a)}function ua({node:e,data:t,key:n,pointer:r,path:i}){if(!h(t))return;let a=oa(e,t);if(a==null||a.length===0)return;let o={},s=``;for(let c of a){let{node:a}=c.node.reduceNode(t,{key:n,pointer:r,path:i});if(a){let t=a.dynamicId?.replace(e.dynamicId,``)??``,n=t===``?`propertyDependencies/${c.property}/${c.value}`:t;s+=`${s===``?``:`,`}${n}`;let r=y(c.node.schema,a.schema);o=y(o,r,`propertyDependencies`)}}return e.compileSchema(o,`${e.evaluationPath}/${s}`,e.schemaLocation,`${e.schemaLocation}(${s})`)}exports.addKeywords=Ur,exports.compileSchema=ia,exports.draft04=ni,exports.draft06=pi,exports.draft07=vi,exports.draft2019=Ni,exports.draft2020=ea,exports.draftEditor=aa,exports.extendDraft=Hr,exports.getSchemaType=I,exports.getTypeOf=m,exports.isAnnotation=Ne,exports.isBooleanSchema=T,exports.isJsonAnnotation=Pe,exports.isJsonError=E,exports.isJsonSchema=w,exports.isReduceable=Te,exports.isSchemaNode=C,exports.mergeNode=b,exports.mergeSchema=y,exports.oneOfFuzzyKeyword=xn,exports.oneOfKeyword=bn,exports.propertyDependenciesKeyword=sa,exports.render=_e,exports.sanitizeErrors=f,exports.settings=p;
|
package/dist/index.d.cts
CHANGED
|
@@ -2,12 +2,57 @@ import { A as JsonSchemaResolver, C as DraftVersion, D as DataNode, E as Templat
|
|
|
2
2
|
|
|
3
3
|
//#region src/compileSchema.d.ts
|
|
4
4
|
type CompileOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* List of drafts to support.
|
|
7
|
+
*
|
|
8
|
+
* Drafts are selected by testing the passed `schema.$schema` for a matching id, which
|
|
9
|
+
* is tested by each draft's `Draft.$schemaRegEx`. In case no draft matches `schema.$schema`
|
|
10
|
+
* the last draft in the list will be used.
|
|
11
|
+
*
|
|
12
|
+
* @default [draft04, draft06, draft07, draft2019, draft2020]
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { draft04, draft07, draft2020 } from "json-schema-library"
|
|
16
|
+
* compileSchema({ $schema: "draft-04" }, { drafts: [draft04, draft07, draft2020] })
|
|
17
|
+
*/
|
|
5
18
|
drafts?: Draft[];
|
|
19
|
+
/**
|
|
20
|
+
* Fallback _draft_ version in case no _draft_ is specified by `schema.$schema`.
|
|
21
|
+
*
|
|
22
|
+
* Drafts are selected by given `schema.$schema` or the last draft from `drafts` as a fallback.
|
|
23
|
+
* Specifying `draft` will workthe same as a specifying `schema.$schema` in case no $schema is
|
|
24
|
+
* defined. When no match can be found, the last _draft_ from `drafts` will be used.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* // uses draft-04
|
|
28
|
+
* compileSchema({ $schema: "draft-04" }, { drafts: [draft04, draft07, draft2020] })
|
|
29
|
+
*
|
|
30
|
+
* // uses draft-2020-12
|
|
31
|
+
* compileSchema({}, { drafts: [draft04, draft07, draft2020] })
|
|
32
|
+
*
|
|
33
|
+
* // uses draft-07
|
|
34
|
+
* compileSchema({}, { draft: "draft-07", drafts: [draft04, draft07, draft2020] })
|
|
35
|
+
* // uses draft-04
|
|
36
|
+
* compileSchema({ $schema: "draft-04" }, { draft: "draft-07", drafts: [draft04, draft07, draft2020] })
|
|
37
|
+
*
|
|
38
|
+
* // uses draft-2020
|
|
39
|
+
* compileSchema({ $schema: "draft-04" }, { draft: "draft-07", drafts: [draft2020] })
|
|
40
|
+
*/
|
|
41
|
+
draft?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Set node and its remote schemata as remote schemata for this node and schema to resolve $ref
|
|
44
|
+
*/
|
|
6
45
|
remote?: SchemaNode;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Enables `format`-keyword assertions when this is set tor `true` or sets assertion as defined by
|
|
48
|
+
* the given meta-schema. Set to `false` to deactivate format validation.
|
|
49
|
+
*
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
formatAssertion?: boolean | "meta-schema" | undefined; /** Set default options for all `node.getData` requests */
|
|
53
|
+
getDataDefaultOptions?: TemplateOptions; /** Set to true to throw an Error on errors in input schema. Defaults to false */
|
|
54
|
+
throwOnInvalidSchema?: boolean; /** Set to true to collect unknown keywords of input schema in `node.schemaAnnotations`. Defaults to false */
|
|
55
|
+
withSchemaAnnotations?: boolean; /** Set to true to throw an Error when encountering an unresolvable ref */
|
|
11
56
|
throwOnInvalidRef?: boolean;
|
|
12
57
|
};
|
|
13
58
|
/**
|
|
@@ -26,6 +71,32 @@ declare const _default: {
|
|
|
26
71
|
propertyBlacklist: string[];
|
|
27
72
|
DYNAMIC_PROPERTIES: string[];
|
|
28
73
|
REGEX_FLAGS: string;
|
|
74
|
+
/**
|
|
75
|
+
* properties to keep from a $ref-schema when resolving a $ref (recursively)
|
|
76
|
+
* this allows to overwrite specified properties locally on a $ref-definition
|
|
77
|
+
*
|
|
78
|
+
* - draft 2019-09
|
|
79
|
+
* - draft 2020-12
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* {
|
|
83
|
+
* title: "custom component",
|
|
84
|
+
* $ref: "#/$defs/component",
|
|
85
|
+
*
|
|
86
|
+
* $defs: {
|
|
87
|
+
* component: {
|
|
88
|
+
* title: "component",
|
|
89
|
+
* type: "object"
|
|
90
|
+
* }
|
|
91
|
+
* }
|
|
92
|
+
* }
|
|
93
|
+
* // results in
|
|
94
|
+
* {
|
|
95
|
+
* title: "custom component"
|
|
96
|
+
* type: "object"
|
|
97
|
+
* }
|
|
98
|
+
*/
|
|
99
|
+
PROPERTIES_TO_MERGE: string[];
|
|
29
100
|
};
|
|
30
101
|
//#endregion
|
|
31
102
|
//#region src/draft04.d.ts
|