json-schema-library 10.5.2 → 10.5.3
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/.mocharc.js +1 -1
- package/README.md +5 -0
- package/dist/index.cjs +1 -0
- package/dist/{index.d.ts → index.d.cts} +75 -140
- package/dist/index.d.mts +75 -140
- package/dist/index.mjs +1 -1
- package/dist/jlib.js +3 -3
- package/eslint.config.mjs +26 -0
- package/package.json +26 -25
- package/src/Draft.ts +4 -4
- package/src/Keyword.ts +3 -3
- package/src/SchemaNode.ts +79 -30
- package/src/compileSchema.reduceSchema.test.ts +39 -39
- package/src/compileSchema.test.ts +2 -6
- package/src/compileSchema.ts +4 -4
- package/src/compileSchema.validate.test.ts +31 -2
- package/src/draft04/keywords/$ref.ts +14 -14
- package/src/draft06/keywords/$ref.ts +4 -4
- package/src/draft2019-09/compileSchema.validate.test.ts +1003 -1005
- package/src/draft2019-09/keywords/$ref.ts +14 -16
- package/src/draft2019-09/keywords/additionalItems.ts +5 -2
- package/src/draft2019-09/keywords/unevaluatedItems.ts +5 -3
- package/src/draft2019-09/methods/getChildSelection.ts +8 -7
- package/src/draft2019-09/methods/getData.test.ts +1790 -1788
- package/src/draft2019-09/methods/getData.ts +32 -34
- package/src/errors/render.ts +1 -1
- package/src/formats/formats.ts +8 -7
- package/src/getNode.ts +1 -1
- package/src/getNodeChild.ts +5 -3
- package/src/isItemEvaluated.ts +6 -6
- package/src/isPropertyEvaluated.ts +6 -6
- package/src/keywords/$defs.ts +2 -2
- package/src/keywords/$ref.ts +18 -22
- package/src/keywords/additionalProperties.ts +8 -5
- package/src/keywords/anyOf.ts +5 -2
- package/src/keywords/contains.ts +4 -3
- package/src/keywords/dependencies.ts +13 -12
- package/src/keywords/dependentRequired.ts +1 -1
- package/src/keywords/dependentSchemas.ts +7 -6
- package/src/keywords/enum.ts +2 -2
- package/src/keywords/ifthenelse.ts +1 -1
- package/src/keywords/items.ts +1 -1
- package/src/keywords/maximum.ts +3 -1
- package/src/keywords/minimum.ts +2 -1
- package/src/keywords/not.ts +2 -1
- package/src/keywords/oneOf.ts +13 -10
- package/src/keywords/patternProperties.ts +3 -2
- package/src/keywords/prefixItems.ts +1 -1
- package/src/keywords/properties.test.ts +11 -0
- package/src/keywords/properties.ts +10 -5
- package/src/keywords/propertyNames.ts +3 -2
- package/src/keywords/type.ts +1 -1
- package/src/keywords/unevaluatedProperties.ts +1 -3
- package/src/mergeNode.test.ts +1 -1
- package/src/mergeNode.ts +8 -7
- package/src/methods/getChildSelection.ts +4 -2
- package/src/methods/getData.test.ts +1781 -1783
- package/src/methods/getData.ts +27 -22
- package/src/methods/toDataNodes.ts +1 -1
- package/src/methods/toSchemaNodes.ts +1 -0
- package/src/types.ts +12 -4
- package/src/utils/getDefaultValue.ts +1 -1
- package/src/utils/getSchemaType.ts +8 -8
- package/src/utils/getTypeOf.ts +15 -15
- package/src/utils/isEmpty.ts +13 -14
- package/src/utils/isObject.ts +1 -1
- package/src/utils/mergeSchema.ts +5 -5
- package/src/utils/punycode.ucs2decode.ts +1 -2
- package/src/utils/sanitizeErrors.ts +6 -4
- package/src/validateNode.ts +3 -3
- package/tsconfig.json +3 -3
- package/tsconfig.test.json +4 -1
- package/.eslintignore +0 -3
- package/.eslintrc +0 -43
- package/dist/index.js +0 -1
package/.mocharc.js
CHANGED
package/README.md
CHANGED
package/dist/index.cjs
ADDED
|
@@ -0,0 +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(`uri-js`),u=require(`@sagold/json-pointer`),d=require(`fast-deep-equal`);d=s(d);let f=require(`valid-url`);f=s(f);let ee=require(`smtp-address-parser`);const te=/(#)+$/,ne=/#$/,re=/^[^:]+:\/\/[^/]+\//,ie=/#.*$/;function p(e,t){return t==null?e?.replace(ne,``)??`#`:e==null||e===`#`?t?.replace(ne,``):t[0]===`#`?e[0]===`/`?t:`${e.replace(ie,``)}${t.replace(te,``)}`:re.test(t)?t.replace(ne,``):(0,l.resolve)(e,t??``)??`#`}const ae=/(#)+$/g,oe=[``,null,`#`];function se(e){if(oe.includes(e))return[];if(e=e.replace(ae,``),e.indexOf(`#`)===-1)return[e.replace(/(#|\/)+$/g,``)];if(e.indexOf(`#`)===0)return[e.replace(ae,``)];let t=e.split(`#`);return t[0]=t[0].replace(/(#|\/)+$/g,``),t[1]=`#${t[1].replace(ae,``)}`,t}function ce(e,...t){let n={};return Object.keys(e).forEach(r=>{t.includes(r)||(n[r]=e[r])}),n}const le=Object.prototype.toString;function m(e){let t=le.call(e).slice(8,-1).toLowerCase();return t===`file`?`object`:t}function h(e){return m(e)===`object`}var g={DECLARATOR_ONEOF:`oneOfProperty`,propertyBlacklist:[`_id`],DYNAMIC_PROPERTIES:[`$ref`,`$defs`,`if`,`then`,`else`,`allOf`,`anyOf`,`oneOf`,`dependentSchemas`,`dependentRequired`,`definitions`,`dependencies`,`patternProperties`],REGEX_FLAGS:`u`};function _(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]=_(e[n]))),t.type===`array`&&Array.isArray(e)&&(e.length===1?t.items=_(e[0]):(t.items=e.map(_),t.items.find(e=>e.type!==t.items[0].type)??(t.items=t.items[0]))),t}function ue(e,t){t!=null&&Object.values(t).forEach(t=>v(t,e))}function de(e,t){t?.forEach(t=>v(t,e))}function v(e,t=[]){return S(e)?(t.push(e),ue(t,e.$defs),e.additionalProperties&&v(e.additionalProperties,t),de(t,e.allOf),de(t,e.anyOf),e.contains&&v(e.contains,t),ue(t,e.dependentSchemas),e.if&&v(e.if,t),e.else&&v(e.else,t),e.then&&v(e.then,t),e.items&&v(e.items,t),de(t,e.prefixItems),e.not&&v(e.not,t),de(t,e.oneOf),e.patternProperties&&Object.values(e.patternProperties).forEach(({node:e})=>v(e,t)),ue(t,e.properties),e.propertyNames&&v(e.propertyNames,t),e.unevaluatedProperties&&v(e.unevaluatedProperties,t),e.unevaluatedItems&&v(e.unevaluatedItems,t),t):t}function y(e,t,...n){if(t?.type===`error`)return t;if(e?.type===`error`||m(e)!==m(t))return e;let r=fe(e,t);for(let e of n)delete r[e];return r}function fe(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]=fe(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]=fe(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]=fe(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 pe(e,t){return(t.order??0)-(e.order??0)}function me(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 he(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]);S(i)&&(n[r]=i)}),n}function ge(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(me).sort(pe),reducers:e.reducers.concat(t.reducers).filter(me).sort(pe),validators:e.validators.concat(t.validators).filter(me).sort(pe),additionalProperties:b(e.additionalProperties,t.additionalProperties),contains:b(e.contains,t.contains),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:he(e.$defs,t.$defs),patternProperties:ge(e.patternProperties,t.patternProperties),properties:he(e.properties,t.properties)};function a(e){let t=e.toJSON?.()??e.name;return i.schema?.[t]===void 0?(i[t]=void 0,!1):!0}return n?.forEach(e=>i[e]=void 0),i.resolvers=i.resolvers.filter(a),i.reducers=i.reducers.filter(a),i.validators=i.validators.filter(a),i}function _e(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 ve(e,t={}){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>{let r=t[n];return r==null?``:typeof r==`object`?JSON.stringify(r):String(r)})}const ye=Object.prototype.hasOwnProperty,be=(e,t)=>!(e[t]===void 0||!ye.call(e,t));function x(e,t){if(h(e)||Array.isArray(e))return e[t]}function xe(e,t,n={}){n.path=n.path??[],n.withSchemaWarning=n.withSchemaWarning??!1,n.pointer=n.pointer??`#`;let r=this,i=(0,u.split)(e);if(i.length===0){let e=r.resolveRef(n);return C(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=x(t,i[e])}let s=o.resolveRef(n);return C(s)?{node:void 0,error:s}:{node:s,error:void 0}}function Se(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;S(n.node)&&(a=n.node)}for(let n of a.resolvers){let o=n({data:t,key:e,node:a});if(S(o))return{node:o.resolveRef({pointer:i,path:r}),error:void 0};if(C(o))return{node:void 0,error:o}}let o=a.resolveRef({path:r});return o===a?n.createSchema===!0?{node:a.compileSchema(a.createSchema(x(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})}:{}:o.getNodeChild(e,t,n)}const{DYNAMIC_PROPERTIES:Ce,REGEX_FLAGS:we}=g;function S(e){return h(e)&&Array.isArray(e?.reducers)&&Array.isArray(e?.resolvers)}function Te(e){for(let t=0,n=Ce.length;t<n;t+=1)if(be(e,Ce[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,we).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,u.join)(i.schemaLocation,a),reducers:[],resolvers:[],validators:[],schema:e,...Oe};return je(o),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=ve(n??name,t)}return{type:`error`,code:e,message:i,data:t}},createSchema:_,getChildSelection(e){let t=this;return t.context.methods.getChildSelection(t,e)},getNode:xe,getNodeChild:Se,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(_(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(C(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=ce(s.schema,...Ce),Ce.forEach(e=>s[e]=void 0),{node:s,error:void 0})},validate(e,t=`#`,n=[]){let r=T(this,e,t,n)??[],i=[],a=w(Array.isArray(r)?r:[r]).filter(C),o=[];return w(Array.isArray(r)?r:[r]).forEach(e=>{C(e)?i.push(e):e instanceof Promise&&o.push(e)}),{valid:a.length===0,errors:i,errorsAsync:o}},addRemoteSchema(e,t){t.$id=p(t.$id||e);let n=this,{context:r}=n,i=Ee(r.drafts,t?.$schema??r.rootNode.schema?.$schema),a={evaluationPath:`#`,lastIdPointer:`#`,schemaLocation:`#`,dynamicId:``,reducers:[],resolvers:[],validators:[],schema:t,context:{...r,refs:{},anchors:{},...(0,c.copy)(_e(i,`methods`,`keywords`,`version`,`formats`,`errors`))},...Oe};return a.context.rootNode=a,a.context.remotes[p(e)]=a,je(a),n},resolveRef(e){throw Error(`method 'resolveRef' is not implemented`)},toSchemaNodes(){return v(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)){e.context.keywords.filter(({keyword:e})=>ke.includes(e)).forEach(t=>Me(t,e));return}let t=Object.keys(e.schema);e.context.keywords.filter(({keyword:e})=>t.includes(e)||ke.includes(e)).forEach(t=>Me(t,e))}function Me(e,t){e.parse?.(t),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)}function C(e){return e&&typeof e==`object`?e.type===`error`:!1}function Ne(e){return isNaN(e)===!1}function w(e,t=[]){if(!Array.isArray(e))return e===void 0?[]:[e];for(let n of e)Array.isArray(n)?w(n,t):(C(n)||n instanceof Promise)&&t.push(n);return t}function T(e,t,n,r){r.push({pointer:n,node:e});let i=e.schema;if(i===!0)return[];if(i===!1)return[e.createError(`invalid-data-error`,{value:t,pointer:n,schema:e.schema})];let a=[];for(let i of e.validators){let o=i({node:e,data:t,pointer:n,path:r});Array.isArray(o)?a.push(...o):o&&a.push(o)}return w(a)}const Pe={id:`$ref`,keyword:`$ref`,order:10,parse:Ie,addReduce:e=>e.$ref!=null||e.schema.$dynamicRef!=null,reduce:Le,addValidate:({schema:e})=>e.$ref!=null||e.$dynamicRef!=null,validate:ze};function Fe(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function Ie(e){e.resolveRef=Re;let t=p(e.parent?.$id,e.schema?.$id);e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,t!==e.parent?.$id&&e.evaluationPath!==`#`&&(e.lastIdPointer=e.evaluationPath),e.lastIdPointer!==`#`&&e.evaluationPath.startsWith(e.lastIdPointer)&&Fe(e,p(t,`#${e.evaluationPath.replace(e.lastIdPointer,``)}`)),Fe(e,p(e.context.rootNode.$id,e.evaluationPath));let n=e.schema.$anchor;if(n){let r=`${t.replace(/#$/,``)}#${n}`;e.context.anchors[r]??(e.context.anchors[r]=e)}let r=e.schema.$dynamicAnchor;if(r){let n=`${t.replace(/#$/,``)}#${r}`;e.context.dynamicAnchors[n]??(e.context.dynamicAnchors[n]=e)}e.schema.$ref&&(e.$ref=p(t,e.schema.$ref),e.$ref.startsWith(`/`)&&(e.$ref=`#${e.$ref}`))}function Le({node:e,data:t,key:n,pointer:r,path:i}){if(e==null)return;let a=e.resolveRef({pointer:r,path:i});if(a==null)return;if(a.schemaLocation===e.schemaLocation)return a;let{node:o,error:s}=b(e,a).reduceNode(t,{key:n,pointer:r,path:i});return o??s}function Re({pointer:e,path:t=[]}={}){if(this.schema.$dynamicRef){let n=Be(this,t);return t.push({pointer:e,node:n}),n}if(this.$ref==null)return this;let n=He(this);return n!=null&&t.push({pointer:e,node:n}),n}function ze({node:e,data:t,pointer:n=`#`,path:r}){let i=e.resolveRef({pointer:n,path:r});if(i!=null)return T(i,t,n,r)}function Be(e,t){let n=t,r=p(e.$id,e.schema.$dynamicRef);if(e.context.dynamicAnchors[r]==null&&e.context.anchors[r])return E(e.context.anchors[r],e);for(let t of n){if(t.node.schema.$dynamicAnchor)return E(t.node,e);let n=e.schema.$dynamicRef.split(`#`).pop(),r=p(t.node.$id,`#${n}`);if(e.context.dynamicAnchors[r])return E(e.context.dynamicAnchors[r],e)}return He(e,r)}const Ve=[`title`,`description`,`options`,`readOnly`,`writeOnly`];function E(e,t){let n=e.schema;return h(e.schema)&&(n={...ce(e.schema,`$id`),..._e(t.schema,...Ve)}),e.compileSchema(n,`${t.evaluationPath}/$ref`,e.schemaLocation)}function He(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return E(e.context.refs[t],e);if(e.context.anchors[t])return E(e.context.anchors[t],e);if(e.context.dynamicAnchors[t])return E(e.context.dynamicAnchors[t],e);let n=se(t);if(n.length!==0){if(n.length===1){let t=n[0];if(e.context.remotes[t])return E(e.context.remotes[t],e);if(t[0]===`#`){let n=e.context.rootNode.schema,r=(0,u.get)(n,t);if(r)return e.compileSchema(r,`${e.evaluationPath}/$ref`,t)}return}if(n.length===2){let r=n[0];if(e.context.remotes[r]&&e!==e.context.remotes[r]){let i=e.context.remotes[r],a=He(i,t);if(a||(a=He(i,n[1]),a))return a}if(e.context.refs[r]){let t=e.context.refs[r],i=(0,u.split)(n[1]),a=t;for(let e of i)if(a=a[e===`definitions`?`$defs`:e],a==null){console.error(`REF: FAILED RESOLVING ref json-pointer`,n[1]);return}return a}console.error(`REF: UNFOUND 2`,t);return}console.error(`REF: UNHANDLED`,t)}}const Ue={id:`additionalItems`,keyword:`additionalItems`,order:-10,parse:We,addResolve:e=>e.items!=null,resolve:Ge,addValidate:({schema:e})=>e.additionalItems!=null&&e.additionalItems!==!0&&Array.isArray(e.items),validate:Ke};function We(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;(h(t.additionalItems)||t.additionalItems===!0)&&Array.isArray(t.items)&&(e.items=e.compileSchema(t.additionalItems,`${n}/additionalItems`,`${r}/additionalItems`))}function Ge({node:e,key:t,data:n}){if(Array.isArray(n)){let r=x(n,t),{node:i,error:a}=e.items.reduceNode(r);return i??a}}function Ke({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=T(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 qe={id:`additionalProperties`,keyword:`additionalProperties`,order:-10,parse:Je,addResolve:({schema:e})=>e.additionalProperties!=null,resolve:Ye,addValidate:({schema:e})=>e.additionalProperties!==!0&&e.additionalProperties!=null&&!(e.additionalProperties===!1&&h(e.patternProperties)),validate:Xe};function Je(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;h(t.additionalProperties)&&(e.additionalProperties=e.compileSchema(t.additionalProperties,`${n}/additionalProperties`,`${r}/additionalProperties`))}function Ye({node:e,data:t,key:n}){let r=x(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:x(t,n),property:`${n}`})}function Xe({node:e,data:t,pointer:n=`#`,path:r}){if(!h(t))return;let{schema:i}=e,a=[],o=Object.keys(t).filter(e=>g.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=x(t,o);if(h(e.additionalProperties)){let t=T(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 Ze={id:`allOf`,keyword:`allOf`,parse:Qe,addReduce:e=>e.allOf!=null,reduce:$e,addValidate:e=>e.allOf!=null,validate:et};function Qe(e){let{schema:t,evaluationPath:n}=e;Array.isArray(t.allOf)&&t.allOf.length&&(e.allOf=t.allOf.map((t,r)=>e.compileSchema(t,`${n}/allOf/${r}`,`${e.schemaLocation}/allOf/${r}`)))}function $e({node:e,data:t,key:n,pointer:r,path:i}){if(e.allOf==null)return;let a={},o=``;for(let s=0;s<e.allOf.length;s+=1){let{node:c}=e.allOf[s].reduceNode(t,{key:n,pointer:r,path:i});if(c){let t=c.dynamicId?.replace(e.dynamicId,``)??``,n=t===``?`allOf/${s}`:t;o+=`${o===``?``:`,`}${n}`;let r=y(e.allOf[s].schema,c.schema);a=y(a,r,`allOf`,`contains`)}}return e.compileSchema(a,`${e.evaluationPath}/${o}`,e.schemaLocation,`${e.schemaLocation}(${o})`)}function et({node:e,data:t,pointer:n,path:r}){if(!Array.isArray(e.allOf)||e.allOf.length===0)return;let i=[];return e.allOf.forEach(e=>{i.push(...T(e,t,n,r))}),i}const D={id:`anyOf`,keyword:`anyOf`,parse:tt,addReduce:e=>e.anyOf!=null,reduce:nt,addValidate:e=>e.anyOf!=null,validate:rt};function tt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;Array.isArray(t.anyOf)&&t.anyOf.length&&(e.anyOf=t.anyOf.map((t,i)=>e.compileSchema(t,`${n}/anyOf/${i}`,`${r}/anyOf/${i}`)))}function nt({node:e,data:t,pointer:n,path:r}){if(e.anyOf==null)return;let i={},a=``;for(let o=0;o<e.anyOf.length;o+=1)if(T(e.anyOf[o],t,n,r).length===0){let{node:n}=e.anyOf[o].reduceNode(t);if(n){let t=n.dynamicId?.replace(e.dynamicId,``)??``,r=t===``?`anyOf/${o}`:t;a+=`${a===``?``:`,`}${r}`;let s=y(e.anyOf[o].schema,n.schema);i=y(i,s,`anyOf`)}}return e.compileSchema(i,`${e.evaluationPath}${a}`,e.schemaLocation,`${e.schemaLocation}(${a})`)}function rt({node:e,data:t,pointer:n,path:r}){if(e.anyOf!=null){for(let i of e.anyOf)if(T(i,t,n,r).length===0)return;return e.createError(`any-of-error`,{pointer:n,schema:e.schema,value:t,anyOf:e.schema.anyOf})}}const O={id:`contains`,keyword:`contains`,parse:it,addValidate:e=>e.contains!=null,validate:at,addReduce:e=>e.contains!=null,reduce:({node:e})=>e.compileSchema({items:{anyOf:[e.contains.schema]}},e.evaluationPath,e.schemaLocation)};function it(e){let{schema:t,evaluationPath:n}=e;t.contains!=null&&(e.contains=e.compileSchema(t.contains,`${n}/contains`))}function at({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(!Array.isArray(t))return;if(i.contains===!1)return e.createError(`contains-array-error`,{pointer:n,value:t,schema:i});if(i.contains===!0)return Array.isArray(t)&&t.length===0?e.createError(`contains-any-error`,{pointer:n,value:t,schema:i}):void 0;if(!h(i.contains)||!Array.isArray(t))return;let a=0;for(let i of t)T(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})}const k={id:`$defs`,keyword:`$defs`,parse:ot};function ot(e){e.schema.$defs&&(e.$defs=e.$defs??{},Object.keys(e.schema.$defs).forEach(t=>{e.$defs[t]=e.compileSchema(e.schema.$defs[t],`${e.evaluationPath}/$defs/${st(t)}`,`${e.schemaLocation}/$defs/${t}`)})),e.schema.definitions&&(e.$defs=e.$defs??{},Object.keys(e.schema.definitions).forEach(t=>{e.$defs[t]=e.compileSchema(e.schema.definitions[t],`${e.evaluationPath}/definitions/${st(t)}`,`${e.schemaLocation}/definitions/${st(t)}`)}))}function st(e){return e=e.replace(/~/g,`~0`),e=e.replace(/\//g,`~1`),encodeURIComponent(e)}const ct={id:`dependentRequired`,keyword:`dependentRequired`,parse:lt,addValidate:e=>h(e.schema.dependentRequired),validate:ut};function lt(e){h(e.schema.dependentRequired)&&(e.dependentRequired=e.schema.dependentRequired??{})}function ut({node:e,data:t,pointer:n=`#`}){if(!h(t))return;let{dependentRequired:r}=e,i=[];return r&&Object.keys(t).forEach(a=>{let o=r[a];if(o!==!0){if(o===!1){i.push(e.createError(`missing-dependency-error`,{pointer:n,schema,value:t}));return}if(Array.isArray(o))for(let r=0,a=o.length;r<a;r+=1)t[o[r]]===void 0&&i.push(e.createError(`missing-dependency-error`,{missingProperty:o[r],pointer:n,schema:e.schema,value:t}))}}),i}const dt={id:`dependentSchemas`,keyword:`dependentSchemas`,parse:ft,addReduce:e=>e.dependentSchemas!=null,reduce:pt,addValidate:e=>e.dependentSchemas!=null,validate:mt};function ft(e){let{dependentSchemas:t}=e.schema;if(!h(t))return;let n=Object.keys(t);if(n.length===0)return;let r={};n.forEach(n=>{let i=t[n];h(i)?r[n]=e.compileSchema(i,`${e.evaluationPath}/dependentSchemas/${n}`,`${e.schemaLocation}/dependentSchemas/${n}`):typeof i==`boolean`&&(r[n]=i)}),e.dependentSchemas=r}function pt({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:{}},S(n[e])?r=y(r,n[e].schema):r.properties[e]=n[e],a+=`${i?`,`:``}dependentSchemas/${e}`,i++)}),r==null?e:(r=y(e.schema,r,`dependentSchemas`),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(S(c)){o.push(...T(c,t,n,r));return}}}),o}const A={id:`dependencies`,keyword:`dependencies`,parse:ht,order:-9,addReduce:e=>e.schema.dependencies!=null,reduce:gt,addValidate:e=>e.schema.dependencies!=null,validate:_t};function ht(e){let{dependencies:t}=e.schema;h(t)&&Object.keys(t).forEach(n=>{let r=t[n];h(r)||typeof r==`boolean`?(e.dependentSchemas=e.dependentSchemas??{},e.dependentSchemas[n]=e.compileSchema(r,`${e.evaluationPath}/dependencies/${n}`,`${e.schemaLocation}/dependencies/${n}`)):(e.dependentRequired=e.dependentRequired??{},e.dependentRequired[n]=r)})}function gt({node:e,data:t,key:n,pointer:r,path:i}){if(!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(!be(t,e)&&!o.includes(e)||c[e]==null)return;o.push(...c[e]);let n=`dependencies/${e}`;s+=`${s===``?``:`,`}${n}`});let l=e.dependentSchemas;return l&&Object.keys(l).forEach(c=>{if(!be(t,c)&&!o.includes(c))return!0;let u=l[c];if(!S(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}/dependencies/${c}`,path:i}).node;a=b(a,d);let f=d.dynamicId?.replace(e.dynamicId,``)??``,ee=f===``?`dependencies/${c}`:f;s+=`${s===``?``:`,`}${ee}`}),a===e?e:o.length===0?a:(o=a.schema.required?a.schema.required.concat(...o):o,o=o.filter((e,t,n)=>n.indexOf(e)===t),a=b(a,a,`dependencies`),a.compileSchema({...a.schema,required:o},a.evaluationPath,a.schemaLocation,`${e.schemaLocation}(${s})`))}function _t({node:e,data:t,pointer:n,path:r}){if(!h(t))return;let i=[];if(e.dependentRequired&&(i=ut({node:e,data:t,pointer:n,path:r})??[]),e.dependentSchemas){let a=mt({node:e,data:t,pointer:n,path:r});a&&i.push(...a)}return i}const j={id:`enum`,keyword:`enum`,addValidate:({schema:e})=>Array.isArray(e.enum),validate:vt};function vt({node:e,data:t,pointer:n=`#`}){let{schema:r}=e,i=m(t);if(i===`object`||i===`array`){let e=JSON.stringify(t);for(let t of r.enum)if(JSON.stringify(t)===e)return}else if(r.enum.includes(t))return;return e.createError(`enum-error`,{pointer:n,schema:r,value:t,values:r.enum})}const yt={id:`exclusiveMaximum`,keyword:`exclusiveMaximum`,addValidate:({schema:e})=>e.exclusiveMaximum===!0||!isNaN(e.maximum),validate:bt};function bt({node:e,data:t,pointer:n}){if(typeof t==`number`&&e.schema.exclusiveMaximum&&e.schema.maximum===t)return e.createError(`maximum-error`,{maximum:e.schema.exclusiveMaximum,length:t,pointer:n,schema:e.schema,value:t})}const xt={id:`exclusiveMinimum`,keyword:`exclusiveMinimum`,addValidate:({schema:e})=>e.exclusiveMinimum===!0||!isNaN(e.minimum),validate:St};function St({node:e,data:t,pointer:n}){if(typeof t==`number`&&e.schema.exclusiveMinimum&&e.schema.minimum===t)return e.createError(`minimum-error`,{minimum:e.schema.exclusiveMinimum,length:t,pointer:n,schema:e.schema,value:t})}const M={id:`format`,keyword:`format`,addValidate:({schema:e})=>e?.format!=null,validate:Ct};function Ct(e){let{node:t}=e,n=t.context.formats[t.schema.format];return n?.(e)}const wt={id:`items`,keyword:`items`,parse:Et,addResolve:e=>(e.prefixItems||e.items)!=null,resolve:Tt,addValidate:({schema:e})=>e.items!=null,validate:Dt};function Tt({node:e,key:t}){if(e.prefixItems?.[t])return e.prefixItems[t];if(e.items)return e.items}function Et(e){let{schema:t,evaluationPath:n}=e;h(t.items)?e.items=e.compileSchema(t.items,`${n}/items`,`${e.schemaLocation}/items`):Array.isArray(t.items)&&(e.prefixItems=t.items.map((t,r)=>e.compileSchema(t,`${n}/items/${r}`,`${e.schemaLocation}/items/${r}`)))}function Dt({node:e,data:t,pointer:n=`#`,path:r}){let{schema:i}=e;if(!Array.isArray(t)||t.length===0)return;if(i.items===!1)return Array.isArray(t)&&t.length===0?void 0:e.createError(`invalid-data-error`,{pointer:n,value:t,schema:i});let a=[];if(e.prefixItems){for(let i=0;i<Math.min(e.prefixItems.length,t.length);i+=1){let o=t[i],s=e.prefixItems[i],c=T(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=T(e.items,o,`${n}/${i}`,r);s&&a.push(...s)}return a}}const N={id:`maximum`,keyword:`maximum`,addValidate:({schema:e})=>!isNaN(e.maximum),validate:Ot};function Ot({node:e,data:t,pointer:n}){if(!Ne(t))return;let{schema:r}=e;if(r.maximum&&r.maximum<t)return e.createError(`maximum-error`,{maximum:r.maximum,length:t,value:t,pointer:n,schema:r});if(r.maximum&&r.exclusiveMaximum===!0&&r.maximum===t)return e.createError(`maximum-error`,{maximum:r.maximum,length:t,pointer:n,schema:r,value:t})}const P={id:`maxItems`,keyword:`maxItems`,addValidate:({schema:e})=>!isNaN(e.maxItems),validate:kt};function kt({node:e,data:t,pointer:n}){let{schema:r}=e;if(Array.isArray(t)&&r.maxItems<t.length)return e.createError(`max-items-error`,{maximum:r.maxItems,length:t.length,schema:r,value:t,pointer:n})}function At(e){let t=[],n=0,r=e.length;for(;n<r;){let i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){let r=e.charCodeAt(n++);(r&64512)==56320?t.push(((i&1023)<<10)+(r&1023)+65536):(t.push(i),n--)}else t.push(i)}return t}const F={id:`maxLength`,keyword:`maxLength`,addValidate:({schema:e})=>!isNaN(e.maxLength),validate:jt};function jt({node:e,data:t,pointer:n=`#`}){if(typeof t!=`string`)return;let{schema:r}=e,i=At(t).length;if(r.maxLength<i)return e.createError(`max-length-error`,{maxLength:r.maxLength,length:i,pointer:n,schema:r,value:t})}const I={id:`maxProperties`,keyword:`maxProperties`,addValidate:({schema:e})=>!isNaN(e.maxProperties),validate:Mt};function Mt({node:e,data:t,pointer:n=`#`}){if(!h(t))return;let{schema:r}=e,i=Object.keys(t).length;if(isNaN(r.maxProperties)===!1&&r.maxProperties<i)return e.createError(`max-properties-error`,{maxProperties:r.maxProperties,length:i,pointer:n,schema:r,value:t})}const L={id:`minimum`,keyword:`minimum`,addValidate:({schema:e})=>!isNaN(e.minimum),validate:Nt};function Nt({node:e,data:t,pointer:n}){if(!Ne(t))return;let{schema:r}=e;if(r.minimum>t||r.exclusiveMinimum===!0&&r.minimum===t)return e.createError(`minimum-error`,{minimum:r.minimum,length:t,pointer:n,schema:r,value:t})}const R={id:`minItems`,keyword:`minItems`,addValidate:({schema:e})=>!isNaN(e.minItems),validate:Pt};function Pt({node:e,data:t,pointer:n}){if(!Array.isArray(t))return;let{schema:r}=e;if(r.minItems>t.length)return e.createError(`min-items-error`,{minItems:r.minItems,length:t.length,pointer:n,schema:r,value:t})}const z={id:`minLength`,keyword:`minLength`,addValidate:({schema:e})=>!isNaN(e.minLength),validate:Ft};function Ft({node:e,data:t,pointer:n=`#`}){if(typeof t!=`string`)return;let{schema:r}=e,i=At(t).length;if(!(r.minLength<=i))return e.createError(`min-length-error`,{minLength:r.minLength,length:i,pointer:n,schema:r,value:t})}const B={id:`minProperties`,keyword:`minProperties`,addValidate:({schema:e})=>!isNaN(e.minProperties),validate:It};function It({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 Lt(e){let t=`${e}`;if(t.includes(`e-`))return parseInt(t.replace(/.*e-/,``));let n=t.indexOf(`.`);return n===-1?0:t.length-(n+1)}const V={id:`multipleOf`,keyword:`multipleOf`,addValidate:({schema:e})=>!isNaN(e.multipleOf),validate:Rt};function Rt({node:e,data:t,pointer:n}){if(typeof t!=`number`)return;let{schema:r}=e,i=Lt(t),a=Lt(r.multipleOf);if(i>a)return e.createError(`multiple-of-error`,{multipleOf:r.multipleOf,value:t,pointer:n,schema:r});let o=10**a;if(Math.round(t*o)%Math.round(r.multipleOf*o)/o!==0)return e.createError(`multiple-of-error`,{multipleOf:r.multipleOf,value:t,pointer:n,schema:r})}const H={id:`not`,keyword:`not`,parse:zt,addValidate:e=>e.not!=null,validate:Bt};function zt(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;t.not!=null&&(e.not=e.compileSchema(t.not,`${n}/not`,`${r}/not`))}function Bt({node:e,data:t,pointer:n,path:r}){let{schema:i}=e;if(T(e.not,t,n,r).length===0)return e.createError(`not-error`,{value:t,not:i.not,pointer:n,schema:i})}const{DECLARATOR_ONEOF:Vt}=g,U={id:`oneOf`,keyword:`oneOf`,parse:Ut,addReduce:e=>e.oneOf!=null,reduce:Wt,addValidate:e=>e.oneOf!=null,validate:Jt},Ht={id:`oneOf-fuzzy`,keyword:`oneOf`,parse:Ut,addReduce:e=>e.oneOf!=null,reduce:qt,addValidate:e=>e.oneOf!=null,validate:Jt};function Ut(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;Array.isArray(t.oneOf)&&t.oneOf.length&&(e.oneOf=t.oneOf.map((t,i)=>e.compileSchema(t,`${n}/oneOf/${i}`,`${r}/oneOf/${i}`)))}function Wt({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;if(t!=null&&e.schema[Vt])return Gt({node:e,data:t,pointer:n,path:r});let i=[],a=[];for(let o=0;o<e.oneOf.length;o+=1){let s=T(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 Gt({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return;let i=[],a=e.schema[Vt],o=x(t,a);if(o===void 0)return e.createError(`missing-one-of-property-error`,{property:a,pointer:n,schema:e.schema,value:t});for(let s=0;s<e.oneOf.length;s+=1){let{node:c}=e.oneOf[s].getNodeChild(a,t);if(!S(c))return e.createError(`missing-one-of-declarator-error`,{declarator:Vt,oneOfProperty:a,schemaPointer:e.oneOf[s].schemaLocation,pointer:`${n}/oneOf/${s}`,schema:e.schema,value:t});let l=w(T(c,o,n,r));if(l.length>0)i.push(...l);else{let{node:i}=e.oneOf[s].reduceNode(t,{pointer:n,path:r});if(i)return i.oneOfIndex=s,i}}return e.createError(`one-of-property-error`,{property:a,value:o,pointer:n,schema:e.schema,errors:i})}function Kt(e,t,n,r){if(t==null||e.properties==null)return-1;let i=0,a=Object.keys(e.properties??{});for(let o of a)t[o]&&T(e.properties[o],t[o],n,r).length===0&&(i+=1);return i}function qt({node:e,data:t,pointer:n,path:r}){if(e.oneOf==null)return e;let i=Wt({node:e,data:t,pointer:n,path:r});if(S(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=Kt(c,t,n,r);o<l&&(o=l,i=c,a=s)}if(i===void 0)return e.createError(`one-of-error`,{value:JSON.stringify(t),pointer:n,schema:e.schema,oneOf:e.schema.oneOf});let{node:s,error:c}=i.reduceNode(t,{pointer:n,path:r});return s?(s.oneOfIndex=a,s):c}return i}function Jt({node:e,data:t,pointer:n=`#`,path:r}){let{oneOf:i,schema:a}=e;if(!i)return;let o=[],s=[];for(let e=0;e<i.length;e+=1){let a=T(i[e],t,n,r);a.length>0?s.push(...a):o.push({index:e,node:i[e]})}if(o.length===1){let{node:e,index:t}=o[0];e.oneOfIndex=t;return}return o.length>1?e.createError(`multiple-one-of-error`,{value:t,pointer:n,schema:a,matches:o}):e.createError(`one-of-error`,{value:JSON.stringify(t),pointer:n,schema:a,oneOf:a.oneOf,errors:s})}const{REGEX_FLAGS:Yt}=g,W={id:`pattern`,keyword:`pattern`,addValidate:({schema:e})=>typeof e.pattern==`string`,validate:Xt};function Xt({node:e,data:t,pointer:n=`#`}){let{schema:r}=e;if(typeof t==`string`&&new RegExp(r.pattern,r.regexFlags??Yt).test(t)===!1)return e.createError(`pattern-error`,{pattern:r.pattern,description:r.patternExample||r.pattern,received:t,schema:r,value:t,pointer:n})}const{REGEX_FLAGS:Zt}=g,G={id:`patternProperties`,keyword:`patternProperties`,parse:Qt,addReduce:e=>e.patternProperties!=null,reduce:en,addResolve:e=>e.patternProperties!=null,resolve:$t,addValidate:e=>e.patternProperties!=null,validate:tn};function Qt(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??Zt),node:e.compileSchema(t.patternProperties[n],`${e.evaluationPath}/patternProperties/${n}`,`${e.schemaLocation}/patternProperties/${n}`)})))}function $t({node:e,key:t}){return e.patternProperties?.find(({pattern:e})=>e.test(`${t}`))?.node}function en({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 tn({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=x(t,l),d=a.filter(e=>e.pattern.test(l));d.forEach(({node:e})=>c.push(...T(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 K={id:`property`,keyword:`properties`,parse:rn,addResolve:e=>e.properties!=null,resolve:nn,addValidate:e=>e.properties!=null,validate:an};function nn({node:e,key:t}){return e.properties?.[t]}function rn(e){let{schema:t,evaluationPath:n,schemaLocation:r}=e;if(t.properties){let i={};Object.keys(t.properties).forEach(a=>{i[a]=e.compileSchema(t.properties[a],`${n}/properties/${a}`,`${r}/properties/${a}`)}),e.properties=i}}function an({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=x(t,e),s=a[e];if(s==null||o===void 0)return;let c=T(s,o,`${n}/${e}`,r);i.push(...c)}),i}const q={id:`propertyNames`,keyword:`propertyNames`,parse:on,addValidate:({schema:e})=>e.propertyNames!=null,validate:sn};function on(e){let{propertyNames:t}=e.schema;t!=null&&h(t)&&(e.propertyNames=e.compileSchema(t,`${e.evaluationPath}/propertyNames`,`${e.schemaLocation}/propertyNames`))}function sn({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.propertyNames===!0)return;let a=e.propertyNames;if(!h(a))return;let o=[];return Object.keys(t).forEach(s=>{let c=T(a,s,`${n}/prop`,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 cn={id:`$ref`,keyword:`$ref`,parse:ln,addValidate:({schema:e})=>e.$ref!=null,validate:un};function ln(e){let t=e.parent?.$id;if(e.schema?.$ref??(t=p(e.parent?.$id,e.schema?.$id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=Re,e.context.refs[t]??(e.context.refs[t]=e),t!==e.parent?.$id&&(e.lastIdPointer=e.evaluationPath),e.lastIdPointer!==`#`&&e.evaluationPath.startsWith(e.lastIdPointer)){let n=`#${e.evaluationPath.replace(e.lastIdPointer,``)}`;e.context.refs[p(t,n)]=e}else e.context.refs[p(t,e.evaluationPath)]=e;e.context.refs[p(e.context.rootNode.$id,e.evaluationPath)]=e,e.schema.$ref&&(e.$ref=p(t,e.schema.$ref))}function un({node:e,data:t,pointer:n=`#`,path:r}){let i=dn(e,n,r);if(i!=null)return T(i,t,n,r)}function dn(e,t,n){let r=e.resolveRef({pointer:t,path:n});if(r!=null)return r!==e&&r?dn(r,t,n):e}const fn={id:`$ref`,keyword:`$ref`,parse:mn,addValidate:({schema:e})=>e.$ref!=null,validate:cn.validate};function pn(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function mn(e){let t=e.parent?.$id;if(e.schema?.$ref==null&&e.schema?.id&&(t=p(e.parent?.$id,e.schema.id)),e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,e.resolveRef=hn,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,``)}`;pn(e,p(t,n))}else pn(e,p(t,e.evaluationPath));pn(e,p(e.context.rootNode.$id,e.evaluationPath)),e.schema.$ref&&(e.$ref=p(t,e.schema.$ref))}function hn({pointer:e,path:t}={}){if(this.$ref==null)return this;let n=_n(this);return n==null?console.log(`failed resolving`,this.$ref,`from`,Object.keys(this.context.refs)):t?.push({pointer:e,node:n}),n}function gn(e,t=e.evaluationPath){let n=h(e.schema)?ce(e.schema,`id`):e.schema;return e.compileSchema(n,`${t}/$ref`,n.schemaLocation)}function _n(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return gn(e.context.refs[t],e.evaluationPath);if(e.context.anchors[t])return gn(e.context.anchors[t],e.evaluationPath);let n=se(t);if(n.length!==0){if(n.length===1){let t=n[0];return e.context.remotes[t]?gn(e.context.remotes[t],e.evaluationPath):void 0}if(n.length===2){let r=n[0];if(e.context.remotes[r]&&e!==e.context.remotes[r]){let i=e.context.remotes[r],a=_n(i,t);if(a||(a=_n(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 _n(t.$defs[r])}return}console.error(`REF: INVALID`,t)}}const vn={id:`required`,keyword:`required`,addValidate:({schema:e})=>Array.isArray(e.required),validate:yn};function yn({node:e,data:t,pointer:n=`#`}){let{schema:r}=e;if(h(t))return r.required.map(i=>{if(!be(t,i))return e.createError(`required-property-error`,{key:i,pointer:n,schema:r,value:t})})}function bn(e){return{...e,keywords:[...e.keywords.map(e=>({...e}))]}}function xn(e,t){let{keywords:n}=Sn(e,...t.keywords??[]),r={...e.errors,...t.errors??{}},i={...e.formats,...t.formats??{}};return J({...e,...t,formats:i,keywords:n,errors:r})}function Sn(e,...t){let n=bn(e);return t.forEach(e=>Cn(n,e)),n}function Cn(e,t){let n=e.keywords.findIndex(e=>e.keyword===t.keyword);n===-1?e.keywords.push(t):e.keywords[n]=t}function J(e){return e.keywords?.forEach(e=>{let t=()=>e.keyword;e.validate&&(e.validate.toJSON=t,e.validate.order=e.order??0),e.reduce&&(e.reduce.toJSON=t,e.reduce.order=e.order??0),e.resolve&&(e.resolve.toJSON=t,e.resolve.order=e.order??0)}),e.keywords?.sort((e,t)=>(t.order??0)-(e.order??0)),e}const wn={id:`type`,keyword:`type`,addReduce:e=>Array.isArray(e.schema.type),reduce:Tn,addValidate:({schema:e})=>e.type!=null,validate:Dn};function Tn({node:e,pointer:t,data:n}){let r=En(n,e.schema.type);if(r!==`undefined`&&Array.isArray(e.schema.type)&&e.schema.type.includes(r))return e.compileSchema({...e.schema,pointer:t,type:r},e.evaluationPath)}function En(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 Dn({node:e,data:t,pointer:n}){let r=e.schema,i=En(t,r.type);if(!(t===void 0||r.type===i||Array.isArray(r.type)&&r.type.includes(i)))return e.createError(`type-error`,{value:t,received:i,expected:r.type,schema:r,pointer:n})}const On={id:`uniqueItems`,keyword:`uniqueItems`,addValidate:({schema:e})=>e.uniqueItems===!0,validate:kn};function kn({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,d.default)(o,t[c])&&!i.includes(c)&&(a.push(e.createError(`unique-items-error`,{pointer:`${n}/${c}`,duplicatePointer:`${n}/${s}`,arrayPointer:n,value:JSON.stringify(o),schema:r})),i.push(c))}),a}function An(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 jn=[`string`,`number`,`integer`,`boolean`,`null`,`array`,`object`],Mn=[`additionalProperties`,`dependencies`,`dependentSchemas`,`dependentRequired`,`maxProperties`,`minProperties`,`patternProperties`,`properties`,`propertyNames`,`required`,`unevaluatedProperties`],Nn=[`contains`,`items`,`maxItems`,`minItems`,`unevaluatedItems`,`uniqueItems`];function Y(e,t){let n=m(t),r=e.schema;if(r===!0)return n===`bigint`?`number`:jn.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=>Mn.includes(e)),s=a.filter(e=>Nn.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 Y(e.if.resolveRef()??e.if,t);if(e.allOf)for(let n of e.allOf){let e=Y(n.resolveRef()??n,t);if(e)return e}if(e.oneOf)for(let n of e.oneOf){let e=Y(n.resolveRef()??n,t);if(e)return e}if(e.anyOf)for(let n of e.anyOf){let e=Y(n.resolveRef()??n,t);if(e)return e}if(r.$ref){let n=e.resolveRef();if(n)return Y(n,t)}}function Pn(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}}let Fn=()=>!1;try{typeof File==`function`&&(Fn=e=>e instanceof File)}catch{}function In(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 Ln(e,t){return(t.cache?.[e.schemaLocation]?.[e.$ref]??-1)<(t.recursionLimit??1)}function Rn(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 zn(e,t,n){if(n?.cache==null)throw Error(`Missing options`);if(e.schema===!1||e.schema===!0||Fn(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(Pn(i))r=b(r,r.oneOf[0]);else{let e=qt({node:r,data:i,path:[],pointer:`#`});if(C(e)){if(i!=null&&n.removeInvalidData!==!0)return i;r=r.oneOf[0],i=void 0}else r=b(r,e)}let a=In(r,n);if(a===!1)return i;a&&a!==r&&(i=a.getData(i,n)??i,r=a);let o=Bn[Y(r,i)]?.(r,i,n);return o===void 0?i:o}const Bn={null:(e,t,n)=>Vn(e,t,null,n.useTypeDefaults),string:(e,t,n)=>Vn(e,t,``,n.useTypeDefaults),number:(e,t,n)=>Vn(e,t,0,n.useTypeDefaults),integer:(e,t,n)=>Vn(e,t,0,n.useTypeDefaults),boolean:(e,t,n)=>Vn(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=x(t,e),u=t===void 0||l===void 0?x(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];x(a,t)!==void 0&&r.forEach(t=>{let{node:r}=e.getNodeChild(t,a);r&&(a[t]=r.getData(x(a,t),n))})});let l=e.dependentSchemas;if(l&&Object.keys(l).forEach(e=>{let r=l[e];if(a[e]!==void 0&&S(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;S(n)&&Object.keys(t).forEach(e=>{if(a[e]==null){let r=x(t,e);n.validate(r).valid&&(a[e]=r)}})}else Object.keys(t).forEach(e=>a[e]==null&&(a[e]=x(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&&Ln(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&&Ln(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 Vn({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:Rn(e.type,t)}function X(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&&X(a,x(t,e),`${n}/${e}`,r)}):Array.isArray(t)&&t.forEach((e,a)=>{let{node:o}=i.getNodeChild(a,t);o&&X(o,x(t,a),`${n}/${a}`,r)}),r}const Hn={"additional-items-error":"Array at `{{pointer}}` may not have an additional item `{{key}}`","additional-properties-error":"Additional property `{{property}}` on `{{pointer}}` does not match schema `{{schema}}`","all-of-error":"Value `{{value}}` at `{{pointer}}` does not match schema of `{{allOf}}`","any-of-error":"Value `{{value}}` at `{{pointer}}` does not match any schema of `{{anyOf}}`","const-error":"Expected value at `{{pointer}}` to be `{{expected}}`, but value given is `{{value}}`","contains-any-error":"The array at `{{pointer}}` must contain at least one item","contains-array-error":"The property at `{{pointer}}` must not be an array","contains-error":"The array at `{{pointer}}` must contain an element that matches `{{schema}}`","contains-min-error":"The array at `{{pointer}}` contains {{delta}} too few items matching `{{schema}}`","contains-max-error":"The array at `{{pointer}}` contains {{delta}} too many items matching `{{schema}}`","enum-error":"Expected given value `{{value}}` in `{{pointer}}` to be one of `{{values}}`","exclusive-maximum-error":"Value in `{{pointer}}` is `{{length}}`, but should be at most `{{maximum}}`","exclusive-minimum-error":"Value in `{{pointer}}` is `{{length}}`, but should be at minimum `{{minimum}}`","forbidden-property-error":"Property name `{{property}}` at `{{pointer}}` is not allowed","format-date-error":"Value `{{value}}` at `{{pointer}}` is not a valid date","format-date-time-error":"Value `{{value}}` at `{{pointer}}` is not a valid date-time","format-duration-error":"Value `{{value}}` at `{{pointer}}` is not a valid duration","format-email-error":"Value `{{value}}` at `{{pointer}}` is not a valid email","format-hostname-error":"Value `{{value}}` at `{{pointer}}` is not a valid hostname","format-ipv4-error":"Value `{{value}}` at `{{pointer}}` is not a valid IPv4 address","format-ipv4-leading-zero-error":`IPv4 addresses starting with zero are invalid, since they are interpreted as octals`,"format-ipv6-error":"Value `{{value}}` at `{{pointer}}` is not a valid IPv6 address","format-ipv6-leading-zero-error":`IPv6 addresses starting with zero are invalid, since they are interpreted as octals`,"format-json-pointer-error":"Value `{{value}}` at `{{pointer}}` is not a valid json-pointer","format-regex-error":"Value `{{value}}` at `{{pointer}}` is not a valid regular expression","format-time-error":"Value `{{value}}` at `{{pointer}}` is not a valid time","format-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 `{{pointer}}`","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}}` property: `{{property}}`","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}}","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}}`"},{REGEX_FLAGS:Un}=g,Wn=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,Gn=/^((([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,Kn=/^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\.?$/,qn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Jn=/^(?<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,Yn=[0,31,28,31,30,31,30,31,31,30,31,30,31],Xn=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Zn=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,Qn=/^(?:[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,$n=/^(?:(?:[^\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,er=/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,Z={date:({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(typeof n!=`string`||n===``)return;let i=n.match(qn);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:Yn[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=Z.date({node:e,pointer:t,data:a[0],path:r})===void 0,i=Z.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`&&(!er.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(Wn.test(e)||Gn.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})},"idn-email":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``))try{(0,ee.parse)(n);return}catch{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`&&!Kn.test(n))return e.createError(`format-hostname-error`,{value:n,pointer:t,schema:r})},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&&Wn.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&&Gn.test(n)))return e.createError(`format-ipv6-error`,{value:n,pointer:t,schema:r})}},"json-pointer":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!Xn.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`&&!Zn.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??Un);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(Jn);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})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!f.default.isUri(n))return e.createError(`format-uri-error`,{value:n,pointer:t,schema:r})},"uri-reference":({node:e,pointer:t,data:n})=>{let{schema:r}=e;if(!(typeof n!=`string`||n===``)&&!Qn.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===``)&&!$n.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===``||f.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})}},tr=J({version:`draft-04`,$schemaRegEx:`draft-04`,$schema:`http://json-schema.org/draft-04/schema`,errors:Hn,formats:Z,methods:{createSchema:_,getData:zn,getChildSelection:An,toDataNodes:X},keywords:[fn,Ze,D,O,k,A,j,yt,xt,M,wt,N,P,F,I,L,R,z,B,V,H,G,W,K,q,vn,wn,On,U,Ue,qe]}),nr={id:`const`,keyword:`const`,addValidate:({schema:e})=>e.const!==void 0,validate:rr};function rr({node:e,data:t,pointer:n}){if(!(0,d.default)(t,e.schema.const))return[e.createError(`const-error`,{pointer:n,schema:e.schema,value:t,expected:e.schema.const})]}const ir={id:`exclusiveMaximum`,keyword:`exclusiveMaximum`,addValidate:({schema:e})=>e.exclusiveMaximum!=null&&!isNaN(parseInt(e.exclusiveMaximum)),validate:ar};function ar({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 or={id:`exclusiveMinimum`,keyword:`exclusiveMinimum`,addValidate:({schema:e})=>e.exclusiveMinimum!=null&&!isNaN(parseInt(e.exclusiveMinimum)),validate:sr};function sr({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 cr=J({version:`draft-06`,$schemaRegEx:`draft-06`,$schema:`http://json-schema.org/draft-06/schema`,errors:Hn,formats:Z,methods:{createSchema:_,getData:zn,getChildSelection:An,toDataNodes:X},keywords:[cn,Ze,D,nr,O,k,A,j,ir,or,M,wt,N,P,F,I,L,R,z,B,V,H,G,W,K,q,vn,wn,On,U,Ue,qe]}),lr={id:`if-then-else`,keyword:`if`,parse:ur,addReduce:e=>e.if!=null&&(e.then!=null||e.else!=null),reduce:dr,addValidate:e=>e.if!=null,validate:fr};function ur(e){let{schema:t,evaluationPath:n}=e;t.if!=null&&(e.if=e.compileSchema(t.if,`${n}/if`)),t.then!=null&&(e.then=e.compileSchema(t.then,`${n}/then`)),t.else!=null&&(e.else=e.compileSchema(t.else,`${n}/else`))}function dr({node:e,data:t,pointer:n,path:r}){if(!(t===void 0||e.if==null)){if(T(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 fr({node:e,data:t,pointer:n,path:r}){if(e.if!=null){if(T(e.if,t,n,[...r??[]]).length===0){if(e.then)return T(e.then,t,n,r)}else if(e.else)return T(e.else,t,n,r)}}const pr=J({version:`draft-07`,$schemaRegEx:`draft-07`,$schema:`http://json-schema.org/draft-07/schema`,errors:Hn,formats:Z,methods:{createSchema:_,getData:zn,getChildSelection:An,toDataNodes:X},keywords:[cn,Ze,D,nr,O,k,A,j,ir,or,M,lr,wt,N,P,F,I,L,R,z,B,V,H,G,W,K,q,vn,wn,On,U,Ue,qe]}),mr={id:`$ref`,keyword:`$ref`,parse:gr,addValidate:({schema:e})=>e.$ref!=null||e.$recursiveRef!=null,validate:vr,addReduce:({schema:e})=>e.$ref!=null||e.$recursiveRef!=null,reduce:Le};function hr(e,t){e.context.refs[t]??(e.context.refs[t]=e)}function gr(e){e.resolveRef=_r;let t=p(e.parent?.$id,e.schema?.$id);e.$id=t,e.lastIdPointer=e.parent?.lastIdPointer??`#`,t!==e.parent?.$id&&e.evaluationPath!==`#`&&(e.lastIdPointer=e.evaluationPath),e.lastIdPointer!==`#`&&e.evaluationPath.startsWith(e.lastIdPointer)&&hr(e,p(t,`#${e.evaluationPath.replace(e.lastIdPointer,``)}`)),hr(e,p(e.context.rootNode.$id,e.evaluationPath)),e.schema.$anchor&&(e.context.anchors[`${t.replace(/#$/,``)}#${e.schema.$anchor}`]=e),e.schema.$ref&&(e.$ref=p(t,e.schema.$ref),e.$ref.startsWith(`/`)&&(e.$ref=`#${e.$ref}`))}function _r({pointer:e,path:t}={}){if(this.schema.$recursiveRef){let n=yr(this,t??[]);return t?.push({pointer:e,node:n}),n}if(this.$ref==null)return this;let n=xr(this);return n!=null&&t?.push({pointer:e,node:n}),n}function vr({node:e,data:t,pointer:n=`#`,path:r}){let i=e.resolveRef({pointer:n,path:r});if(i!=null)return T(i,t,n,r)}function yr(e,t){let n=t,r=0;for(let t=n.length-1;t>=0;t--){if(n[t].node.schema.$recursiveAnchor===!1)return xr(e,p(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:xr(e,p(e.$id,e.schema.$recursiveRef))}function br(e,t=e.evaluationPath){let n=h(e.schema)?ce(e.schema,`$id`):e.schema;return e.compileSchema(n,`${t}/$ref`,e.schemaLocation)}function xr(e,t=e?.$ref){if(t==null)return e;if(e.context.refs[t])return br(e.context.refs[t],e.evaluationPath);if(e.context.anchors[t])return br(e.context.anchors[t],e.evaluationPath);let n=se(t);if(n.length!==0){if(n.length===1){let t=n[0];if(e.context.remotes[t])return br(e.context.remotes[t],e.evaluationPath);if(t[0]===`#`){let n=t.match(/#[^#]*$/)?.pop(),r=e.context.rootNode.schema,i=(0,u.get)(r,n);if(i)return e.compileSchema(i,`${e.evaluationPath}/$ref`,n)}return}if(n.length===2){let r=n[0];if(e.context.remotes[r]&&e!==e.context.remotes[r]){let i=e.context.remotes[r],a=xr(i,t);if(a||(a=xr(i,n[1]),a))return a}if(e.context.refs[r]){let t=e.context.refs[r],i=(0,u.split)(n[1]),a=t;for(let e of i)if(a=a[e===`definitions`?`$defs`:e],a==null){console.error(`REF: FAILED RESOLVING ref json-pointer`,n[1]);return}return a}return}console.error(`REF: UNHANDLED`,t)}}const Sr={id:`unevaluatedItems`,keyword:`unevaluatedItems`,parse:Cr,addValidate:({schema:e})=>e.unevaluatedItems!=null,validate:wr};function Cr(e){h(e.schema.unevaluatedItems)&&(e.unevaluatedItems=e.compileSchema(e.schema.unevaluatedItems,`${e.evaluationPath}/unevaluatedItems`,`${e.schemaLocation}/unevaluatedItems`))}function wr({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&&T(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&&T(l,c,`${n}/${a}`,r).length>0){let o=e.unevaluatedItems;if(o)return w(t.map(e=>T(o,e,`${n}/${a}`,r)));if(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=T(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 Q({node:e,data:t,key:n,pointer:r,path:i}){if(Array.isArray(e.schema.required)&&!e.schema.required.find(e=>be(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(Q({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.anyOf){for(let a of e.anyOf)if(Q({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.oneOf){for(let a of e.oneOf)if(Q({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.if){if(Q({node:e.if,data:t,key:n,pointer:r,path:i}))return!0;let a=T(e.if,t,r,i).length===0;if(a&&e.then){if(Q({node:e.then,data:t,key:n,pointer:r,path:i}))return!0}else if(!a&&e.else&&Q({node:e.else,data:t,key:n,pointer:r,path:i}))return!0}let a=e.resolveRef({pointer:r,path:i});return!!(a!==e&&Q({node:a,data:t,key:n,pointer:r,path:i}))}const Tr={id:`unevaluatedProperties`,keyword:`unevaluatedProperties`,parse:Er,addValidate:({schema:e})=>e.unevaluatedProperties!=null,validate:Dr};function Er(e){h(e.schema.unevaluatedProperties)&&(e.unevaluatedProperties=e.compileSchema(e.schema.unevaluatedProperties,`${e.evaluationPath}/unevaluatedProperties`,`${e.schemaLocation}/unevaluatedProperties`))}function Dr({node:e,data:t,pointer:n,path:r}){if(!h(t))return;let i=Object.keys(t);if(i.length===0)return;let a=[];for(let o of i){if(Q({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=T(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&&T(i,t[o],`${n}/${o}`,r).length>0)if(e.unevaluatedProperties){let i=T(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 Or=J({version:`draft-2019-09`,$schemaRegEx:`draft[/-]2019-09`,$schema:`https://json-schema.org/draft/2019-09/schema`,errors:Hn,formats:Z,methods:{createSchema:_,getData:zn,getChildSelection:An,toDataNodes:X},keywords:[mr,Ze,D,nr,O,k,A,ct,dt,j,ir,or,M,lr,wt,N,P,F,I,L,R,z,B,V,H,G,W,K,q,vn,wn,Sr,Tr,On,U,Ue,qe]});function kr(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 S(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 Ar(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 jr(e,t){return(t.cache?.[e.schemaLocation]?.[e.$ref]??-1)<(t.recursionLimit??1)}function Mr(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 Nr(e,t,n){if(n?.cache==null)throw Error(`Missing options`);if(e.schema===!1||e.schema===!0||Fn(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(Pn(i))r=b(r,r.oneOf[0]);else{let e=qt({node:r,data:i,path:[],pointer:`#`});if(C(e)){if(i!=null&&n.removeInvalidData!==!0)return i;r=r.oneOf[0],i=void 0}else r=b(r,e)}let a=Ar(r,n);if(a===!1)return i;a&&a!==r&&(i=a.getData(i,n)??i,r=a);let o=Pr[Y(r,i)]?.(r,i,n);return o===void 0?i:o}const Pr={null:(e,t,n)=>Fr(e,t,null,n.useTypeDefaults),string:(e,t,n)=>Fr(e,t,``,n.useTypeDefaults),number:(e,t,n)=>Fr(e,t,0,n.useTypeDefaults),integer:(e,t,n)=>Fr(e,t,0,n.useTypeDefaults),boolean:(e,t,n)=>Fr(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=x(t,e),u=t===void 0||l===void 0?x(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];x(a,t)!==void 0&&r.forEach(t=>{let{node:r}=e.getNodeChild(t,a);r&&(a[t]=r.getData(x(a,t),n))})});let l=e.dependentSchemas;if(l&&Object.keys(l).forEach(e=>{let r=l[e];if(a[e]!==void 0&&S(r)){let e=r.getData(t??a,n);Object.assign(a,e)}}),t&&(n.removeInvalidData===!0&&(r.additionalProperties===!1||h(r.additionalProperties))?S(e.additionalProperties)&&Object.keys(t).forEach(n=>{if(a[n]==null){let r=x(t,n);e.additionalProperties?.validate(r).valid&&(a[n]=r)}}):Object.keys(t).forEach(e=>a[e]==null&&(a[e]=x(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&&(jr(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&&jr(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&&jr(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 Fr({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:Mr(e.type,t)}const Ir={id:`items`,keyword:`items`,parse:Rr,addResolve:e=>e.items!=null,resolve:Lr,addValidate:({schema:e})=>e.items!=null,validate:zr};function Lr({node:e,key:t}){if(!(e.prefixItems&&e.prefixItems?.length>+t))return e.items}function Rr(e){let{schema:t,evaluationPath:n}=e;h(t.items)&&(e.items=e.compileSchema(t.items,`${n}/items`,`${e.schemaLocation}/items`))}function zr({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=T(e.items,i,`${n}/${o}`,r);s&&a.push(...s)}return a}}const Br={id:`prefixItems`,keyword:`prefixItems`,parse:Hr,addResolve:e=>e.prefixItems!=null,resolve:Vr,addValidate:({schema:e})=>e.prefixItems!=null,validate:Ur};function Vr({node:e,key:t}){if(e.prefixItems&&e.prefixItems[t])return e.prefixItems[t]}function Hr(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 Ur({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=T(s,o,`${n}/${a}`,r);i.push(...c)}return i}}function $({node:e,data:t,key:n,pointer:r,path:i}){let a=x(t,n);if(e.schema.unevaluatedItems===!0||e.schema.items===!0||e.contains&&T(e.contains,a,`${r}/${n}`,i).length===0)return!0;if(e.allOf){for(let a of e.allOf)if($({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.anyOf){for(let a of e.anyOf)if($({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.oneOf){for(let a of e.oneOf)if($({node:a,data:t,key:n,pointer:r,path:i}))return!0}if(e.if){if($({node:e.if,data:t,key:n,pointer:r,path:i}))return!0;let a=T(e.if,t,r,i).length===0;if(a&&e.if.prefixItems&&e.if.prefixItems.length>n)return!0;if(a&&e.then){if($({node:e.then,data:t,key:n,pointer:r,path:i}))return!0}else if(!a&&e.else&&$({node:e.else,data:t,key:n,pointer:r,path:i}))return!0}}const Wr={id:`unevaluatedItems`,keyword:`unevaluatedItems`,parse:Gr,addValidate:({schema:e})=>e.unevaluatedItems!=null,validate:Kr};function Gr(e){h(e.schema.unevaluatedItems)&&(e.unevaluatedItems=e.compileSchema(e.schema.unevaluatedItems,`${e.evaluationPath}/unevaluatedItems`,`${e.schemaLocation}/unevaluatedItems`))}function Kr({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($({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=T(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&&T(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 qr=J({version:`draft-2020-12`,$schemaRegEx:`draft[/-]2020-12`,$schema:`https://json-schema.org/draft/2020-12/schema`,errors:Hn,formats:Z,methods:{createSchema:_,getData:Nr,getChildSelection:kr,toDataNodes:X},keywords:[Pe,qe,Ze,D,nr,O,k,A,ct,dt,j,ir,or,M,lr,Ir,N,P,F,I,L,R,z,B,V,H,U,W,G,Br,K,q,vn,wn,Wr,Tr,On]}),{REGEX_FLAGS:Jr}=g,Yr=[tr,cr,pr,Or,qr];function Xr(e,t){return e.find(e=>new RegExp(e.$schemaRegEx,Jr).test(t))??e[e.length-1]}function Zr(e,t={}){let n=t.formatAssertion??!0,r=t.drafts??Yr,i=Xr(r,e?.$schema),a={evaluationPath:`#`,lastIdPointer:`#`,schemaLocation:`#`,dynamicId:``,reducers:[],resolvers:[],validators:[],schema:e,context:{remotes:{},dynamicAnchors:{},...t.remote?.context??{},anchors:{},refs:{},...(0,c.copy)(_e(i,`methods`,`keywords`,`version`,`formats`,`errors`)),getDataDefaultOptions:t.getDataDefaultOptions,drafts:r},...Oe};if(a.context.rootNode=a,a.context.remotes[e?.$id??`#`]=a,t.remote){let e=He(a,a.schema.$schema);if(S(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)))}}return n===!1&&(a.context.keywords=a.context.keywords.filter(e=>e.keyword!==`format`)),je(a),a}const Qr=xn(Or,{$schemaRegEx:`.`,keywords:[Ht],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:ve("Value in `{{pointer}}` is `{{length}}`, but should be `{{minLength}}` at minimum",e),data:e}}});var $r={id:`http://json-schema.org/draft-04/schema#`,$schema:`http://json-schema.org/draft-04/schema#`,description:`Core schema meta-schema`,definitions:{schemaArray:{type:`array`,minItems:1,items:{$ref:`#`}},positiveInteger:{type:`integer`,minimum:0},positiveIntegerDefault0:{allOf:[{$ref:`#/definitions/positiveInteger`},{default:0}]},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},minItems:1,uniqueItems:!0}},type:`object`,properties:{id:{type:`string`,format:`uri`},$schema:{type:`string`,format:`uri`},title:{type:`string`},description:{type:`string`},default:{},multipleOf:{type:`number`,minimum:0,exclusiveMinimum:!0},maximum:{type:`number`},exclusiveMaximum:{type:`boolean`,default:!1},minimum:{type:`number`},exclusiveMinimum:{type:`boolean`,default:!1},maxLength:{$ref:`#/definitions/positiveInteger`},minLength:{$ref:`#/definitions/positiveIntegerDefault0`},pattern:{type:`string`,format:`regex`},additionalItems:{anyOf:[{type:`boolean`},{$ref:`#`}],default:{}},items:{anyOf:[{$ref:`#`},{$ref:`#/definitions/schemaArray`}],default:{}},maxItems:{$ref:`#/definitions/positiveInteger`},minItems:{$ref:`#/definitions/positiveIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxProperties:{$ref:`#/definitions/positiveInteger`},minProperties:{$ref:`#/definitions/positiveIntegerDefault0`},required:{$ref:`#/definitions/stringArray`},additionalProperties:{anyOf:[{type:`boolean`},{$ref:`#`}],default:{}},definitions:{type:`object`,additionalProperties:{$ref:`#`},default:{}},properties:{type:`object`,additionalProperties:{$ref:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$ref:`#`},default:{}},dependencies:{type:`object`,additionalProperties:{anyOf:[{$ref:`#`},{$ref:`#/definitions/stringArray`}]}},enum:{type:`array`,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:`#/definitions/simpleTypes`},{type:`array`,items:{$ref:`#/definitions/simpleTypes`},minItems:1,uniqueItems:!0}]},allOf:{$ref:`#/definitions/schemaArray`},anyOf:{$ref:`#/definitions/schemaArray`},oneOf:{$ref:`#/definitions/schemaArray`},not:{$ref:`#`}},dependencies:{exclusiveMaximum:[`maximum`],exclusiveMinimum:[`minimum`]},default:{}},ei={$schema:`http://json-schema.org/draft-06/schema#`,$id:`http://json-schema.org/draft-06/schema#`,title:`Core schema meta-schema`,definitions:{schemaArray:{type:`array`,minItems:1,items:{$ref:`#`}},nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:`#/definitions/nonNegativeInteger`},{default:0}]},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}},type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`},$schema:{type:`string`,format:`uri`},$ref:{type:`string`,format:`uri-reference`},title:{type:`string`},description:{type:`string`},default:{},examples:{type:`array`,items:{}},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/definitions/nonNegativeInteger`},minLength:{$ref:`#/definitions/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},additionalItems:{$ref:`#`},items:{anyOf:[{$ref:`#`},{$ref:`#/definitions/schemaArray`}],default:{}},maxItems:{$ref:`#/definitions/nonNegativeInteger`},minItems:{$ref:`#/definitions/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},contains:{$ref:`#`},maxProperties:{$ref:`#/definitions/nonNegativeInteger`},minProperties:{$ref:`#/definitions/nonNegativeIntegerDefault0`},required:{$ref:`#/definitions/stringArray`},additionalProperties:{$ref:`#`},definitions:{type:`object`,additionalProperties:{$ref:`#`},default:{}},properties:{type:`object`,additionalProperties:{$ref:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$ref:`#`},propertyNames:{format:`regex`},default:{}},dependencies:{type:`object`,additionalProperties:{anyOf:[{$ref:`#`},{$ref:`#/definitions/stringArray`}]}},propertyNames:{$ref:`#`},const:{},enum:{type:`array`,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:`#/definitions/simpleTypes`},{type:`array`,items:{$ref:`#/definitions/simpleTypes`},minItems:1,uniqueItems:!0}]},format:{type:`string`},allOf:{$ref:`#/definitions/schemaArray`},anyOf:{$ref:`#/definitions/schemaArray`},oneOf:{$ref:`#/definitions/schemaArray`},not:{$ref:`#`}},default:{}},ti={$schema:`http://json-schema.org/draft-07/schema#`,$id:`http://json-schema.org/draft-07/schema#`,title:`Core schema meta-schema`,definitions:{schemaArray:{type:`array`,minItems:1,items:{$ref:`#`}},nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:`#/definitions/nonNegativeInteger`},{default:0}]},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}},type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`},$schema:{type:`string`,format:`uri`},$ref:{type:`string`,format:`uri-reference`},$comment:{type:`string`},title:{type:`string`},description:{type:`string`},default:!0,readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/definitions/nonNegativeInteger`},minLength:{$ref:`#/definitions/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},additionalItems:{$ref:`#`},items:{anyOf:[{$ref:`#`},{$ref:`#/definitions/schemaArray`}],default:!0},maxItems:{$ref:`#/definitions/nonNegativeInteger`},minItems:{$ref:`#/definitions/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},contains:{$ref:`#`},maxProperties:{$ref:`#/definitions/nonNegativeInteger`},minProperties:{$ref:`#/definitions/nonNegativeIntegerDefault0`},required:{$ref:`#/definitions/stringArray`},additionalProperties:{$ref:`#`},definitions:{type:`object`,additionalProperties:{$ref:`#`},default:{}},properties:{type:`object`,additionalProperties:{$ref:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$ref:`#`},propertyNames:{format:`regex`},default:{}},dependencies:{type:`object`,additionalProperties:{anyOf:[{$ref:`#`},{$ref:`#/definitions/stringArray`}]}},propertyNames:{$ref:`#`},const:!0,enum:{type:`array`,items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:`#/definitions/simpleTypes`},{type:`array`,items:{$ref:`#/definitions/simpleTypes`},minItems:1,uniqueItems:!0}]},format:{type:`string`},contentMediaType:{type:`string`},contentEncoding:{type:`string`},if:{$ref:`#`},then:{$ref:`#`},else:{$ref:`#`},allOf:{$ref:`#/definitions/schemaArray`},anyOf:{$ref:`#/definitions/schemaArray`},oneOf:{$ref:`#/definitions/schemaArray`},not:{$ref:`#`}},default:!0},ni={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/schema`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0,"https://json-schema.org/draft/2019-09/vocab/applicator":!0,"https://json-schema.org/draft/2019-09/vocab/validation":!0,"https://json-schema.org/draft/2019-09/vocab/meta-data":!0,"https://json-schema.org/draft/2019-09/vocab/format":!1,"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format`},{$ref:`meta/content`}],type:[`object`,`boolean`],properties:{definitions:{$comment:`While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.`,type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},dependencies:{$comment:`"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"`,type:`object`,additionalProperties:{anyOf:[{$recursiveRef:`#`},{$ref:`meta/validation#/$defs/stringArray`}]}}}},ri={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/applicator`,$recursiveAnchor:!0,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{additionalItems:{$recursiveRef:`#`},unevaluatedItems:{$recursiveRef:`#`},items:{anyOf:[{$recursiveRef:`#`},{$ref:`#/$defs/schemaArray`}]},contains:{$recursiveRef:`#`},additionalProperties:{$recursiveRef:`#`},unevaluatedProperties:{$recursiveRef:`#`},properties:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$recursiveRef:`#`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$recursiveRef:`#`}},propertyNames:{$recursiveRef:`#`},if:{$recursiveRef:`#`},then:{$recursiveRef:`#`},else:{$recursiveRef:`#`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$recursiveRef:`#`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$recursiveRef:`#`}}}},ii={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/content`,$recursiveAnchor:!0,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentMediaType:{type:`string`},contentEncoding:{type:`string`},contentSchema:{$recursiveRef:`#`}}},ai={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/core`,$recursiveAnchor:!0,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{type:`string`,format:`uri`},$anchor:{type:`string`,pattern:`^[A-Za-z][-A-Za-z0-9.:_]*$`},$ref:{type:`string`,format:`uri-reference`},$recursiveRef:{type:`string`,format:`uri-reference`},$recursiveAnchor:{type:`boolean`,default:!1},$vocabulary:{type:`object`,propertyNames:{type:`string`,format:`uri`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}}}},oi={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/format`,$recursiveAnchor:!0,title:`Format vocabulary meta-schema`,type:[`object`,`boolean`],properties:{format:{type:`string`}}},si={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/meta-data`,$recursiveAnchor:!0,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}},ci={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/validation`,$recursiveAnchor:!0,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}},const:!0,enum:{type:`array`,items:!0},type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}},li={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/schema`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/unevaluated`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format-annotation`},{$ref:`meta/content`}],type:[`object`,`boolean`],$comment:`This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.`,properties:{definitions:{$comment:`"definitions" has been replaced by "$defs".`,type:`object`,additionalProperties:{$dynamicRef:`#meta`},deprecated:!0,default:{}},dependencies:{$comment:`"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.`,type:`object`,additionalProperties:{anyOf:[{$dynamicRef:`#meta`},{$ref:`meta/validation#/$defs/stringArray`}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:`"$recursiveAnchor" has been replaced by "$dynamicAnchor".`,$ref:`meta/core#/$defs/anchorString`,deprecated:!0},$recursiveRef:{$comment:`"$recursiveRef" has been replaced by "$dynamicRef".`,$ref:`meta/core#/$defs/uriReferenceString`,deprecated:!0}}},ui={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/applicator`,$dynamicAnchor:`meta`,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{prefixItems:{$ref:`#/$defs/schemaArray`},items:{$dynamicRef:`#meta`},contains:{$dynamicRef:`#meta`},additionalProperties:{$dynamicRef:`#meta`},properties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},patternProperties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},propertyNames:{$dynamicRef:`#meta`},if:{$dynamicRef:`#meta`},then:{$dynamicRef:`#meta`},else:{$dynamicRef:`#meta`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$dynamicRef:`#meta`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$dynamicRef:`#meta`}}}},di={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/content`,$dynamicAnchor:`meta`,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentEncoding:{type:`string`},contentMediaType:{type:`string`},contentSchema:{$dynamicRef:`#meta`}}},fi={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/core`,$dynamicAnchor:`meta`,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{$ref:`#/$defs/uriReferenceString`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{$ref:`#/$defs/uriString`},$ref:{$ref:`#/$defs/uriReferenceString`},$anchor:{$ref:`#/$defs/anchorString`},$dynamicRef:{$ref:`#/$defs/uriReferenceString`},$dynamicAnchor:{$ref:`#/$defs/anchorString`},$vocabulary:{type:`object`,propertyNames:{$ref:`#/$defs/uriString`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$dynamicRef:`#meta`}}},$defs:{anchorString:{type:`string`,pattern:`^[A-Za-z_][-A-Za-z0-9._]*$`},uriString:{type:`string`,format:`uri`},uriReferenceString:{type:`string`,format:`uri-reference`}}},pi={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-annotation`,$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for annotation results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}},mi={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-assertion`,$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for assertion results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}},hi={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/meta-data`,$dynamicAnchor:`meta`,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}},gi={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/unevaluated`,$dynamicAnchor:`meta`,title:`Unevaluated applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{unevaluatedItems:{$dynamicRef:`#meta`},unevaluatedProperties:{$dynamicRef:`#meta`}}},_i={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/validation`,$dynamicAnchor:`meta`,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}};const vi={};[$r,ei,ti,ni,ri,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i].forEach((e,t)=>vi[e.$id??e.id??t]=e),exports.addKeywords=Sn,exports.compileSchema=Zr,exports.draft04=tr,exports.draft06=cr,exports.draft07=pr,exports.draft2019=Or,exports.draft2020=qr,exports.draftEditor=Qr,exports.extendDraft=xn,exports.getSchemaType=Y,exports.getTypeOf=m,exports.isJsonError=C,exports.isReduceable=Te,exports.isSchemaNode=S,exports.mergeNode=b,exports.mergeSchema=y,exports.oneOfFuzzyKeyword=Ht,exports.oneOfKeyword=U,exports.remotes=vi,exports.render=ve,exports.settings=g;
|
|
@@ -4,15 +4,10 @@ type ValidationPath = {
|
|
|
4
4
|
node: SchemaNode;
|
|
5
5
|
}[];
|
|
6
6
|
type JsonSchemaReducerParams = {
|
|
7
|
-
/** data of current node */
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/** node to reduce */
|
|
12
|
-
node: SchemaNode;
|
|
13
|
-
/** JSON pointer to data */
|
|
14
|
-
pointer: string;
|
|
15
|
-
/** passed through path for schema resolution, will be changed by reference */
|
|
7
|
+
/** data of current node */data: unknown; /** optional key to used to resolve by property without having data */
|
|
8
|
+
key: string | number; /** node to reduce */
|
|
9
|
+
node: SchemaNode; /** JSON pointer to data */
|
|
10
|
+
pointer: string; /** passed through path for schema resolution, will be changed by reference */
|
|
16
11
|
path: ValidationPath;
|
|
17
12
|
};
|
|
18
13
|
interface JsonSchemaReducer {
|
|
@@ -30,12 +25,12 @@ interface JsonSchemaResolver {
|
|
|
30
25
|
order?: number;
|
|
31
26
|
(options: JsonSchemaResolverParams): SchemaNode | JsonError | undefined;
|
|
32
27
|
}
|
|
33
|
-
type ValidationResult = JsonError | Promise<JsonError>;
|
|
28
|
+
type ValidationResult = JsonError | Promise<JsonError | undefined>;
|
|
34
29
|
type JsonSchemaValidatorParams = {
|
|
35
|
-
pointer
|
|
30
|
+
pointer: string;
|
|
36
31
|
data: unknown;
|
|
37
32
|
node: SchemaNode;
|
|
38
|
-
path
|
|
33
|
+
path: ValidationPath;
|
|
39
34
|
};
|
|
40
35
|
interface JsonSchemaValidator {
|
|
41
36
|
toJSON?: () => string;
|
|
@@ -43,21 +38,15 @@ interface JsonSchemaValidator {
|
|
|
43
38
|
(options: JsonSchemaValidatorParams): undefined | Promise<undefined> | ValidationResult | ValidationResult[];
|
|
44
39
|
}
|
|
45
40
|
type Keyword = {
|
|
46
|
-
id: string;
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
/** sort order of keyword. Lower numbers will be processed last. Default is 0 */
|
|
50
|
-
order?: number;
|
|
51
|
-
/** called with compileSchema */
|
|
41
|
+
id: string; /** unique keyword corresponding to JSON Schema keywords (or custom) */
|
|
42
|
+
keyword: string; /** sort order of keyword. Lower numbers will be processed last. Default is 0 */
|
|
43
|
+
order?: number; /** called with compileSchema */
|
|
52
44
|
parse?: (node: SchemaNode) => void;
|
|
53
|
-
addResolve?: (node: SchemaNode) => boolean;
|
|
54
|
-
/** return node corresponding to passed in key or do nothing */
|
|
45
|
+
addResolve?: (node: SchemaNode) => boolean; /** return node corresponding to passed in key or do nothing */
|
|
55
46
|
resolve?: JsonSchemaResolver;
|
|
56
|
-
addValidate?: (node: SchemaNode) => boolean;
|
|
57
|
-
/** validate data using node */
|
|
47
|
+
addValidate?: (node: SchemaNode) => boolean; /** validate data using node */
|
|
58
48
|
validate?: JsonSchemaValidator;
|
|
59
|
-
addReduce?: (node: SchemaNode) => boolean;
|
|
60
|
-
/** remove dynamic schema-keywords by merging valid sub-schemas */
|
|
49
|
+
addReduce?: (node: SchemaNode) => boolean; /** remove dynamic schema-keywords by merging valid sub-schemas */
|
|
61
50
|
reduce?: JsonSchemaReducer;
|
|
62
51
|
};
|
|
63
52
|
//#endregion
|
|
@@ -86,9 +75,7 @@ declare function getChildSelection(node: SchemaNode, property: string | number):
|
|
|
86
75
|
//#endregion
|
|
87
76
|
//#region src/methods/getData.d.ts
|
|
88
77
|
type TemplateOptions = {
|
|
89
|
-
/** Add all properties (required and optional) to the generated data */
|
|
90
|
-
addOptionalProps?: boolean;
|
|
91
|
-
/** Remove data that does not match input schema. Defaults to false */
|
|
78
|
+
/** Add all properties (required and optional) to the generated data */addOptionalProps?: boolean; /** Remove data that does not match input schema. Defaults to false */
|
|
92
79
|
removeInvalidData?: boolean;
|
|
93
80
|
/** Set to false to take default values as they are and not extend them.
|
|
94
81
|
* Defaults to true.
|
|
@@ -104,10 +91,8 @@ type TemplateOptions = {
|
|
|
104
91
|
* Limits how often a $ref should be followed before aborting. Prevents infinite data-structure.
|
|
105
92
|
* Defaults to 1
|
|
106
93
|
*/
|
|
107
|
-
recursionLimit?: number;
|
|
108
|
-
/** @internal
|
|
109
|
-
disableRecursionLimit?: boolean;
|
|
110
|
-
/** @internal context to track recursion limit */
|
|
94
|
+
recursionLimit?: number; /** @internal disables recursion limit for next call */
|
|
95
|
+
disableRecursionLimit?: boolean; /** @internal context to track recursion limit */
|
|
111
96
|
cache?: Record<string, Record<string, number>>;
|
|
112
97
|
};
|
|
113
98
|
declare function getData(node: SchemaNode, data?: unknown, opts?: TemplateOptions): any;
|
|
@@ -198,8 +183,7 @@ declare const errors: {
|
|
|
198
183
|
"one-of-property-error": string;
|
|
199
184
|
"pattern-error": string;
|
|
200
185
|
"pattern-properties-error": string;
|
|
201
|
-
"required-property-error": string;
|
|
202
|
-
/** return schema-warning with createSchemaWarning:true when a valid, but undefined property was found */
|
|
186
|
+
"required-property-error": string; /** return schema-warning with createSchemaWarning:true when a valid, but undefined property was found */
|
|
203
187
|
"schema-warning": string;
|
|
204
188
|
"type-error": string;
|
|
205
189
|
"undefined-value-error": string;
|
|
@@ -210,51 +194,21 @@ declare const errors: {
|
|
|
210
194
|
"value-not-empty-error": string;
|
|
211
195
|
};
|
|
212
196
|
//#endregion
|
|
213
|
-
//#region src/getNode.d.ts
|
|
214
|
-
declare function getNode(pointer: string, data: unknown, options: {
|
|
215
|
-
withSchemaWarning: true;
|
|
216
|
-
} & GetNodeOptions): NodeOrError;
|
|
217
|
-
declare function getNode(pointer: string, data: unknown, options: {
|
|
218
|
-
createSchema: true;
|
|
219
|
-
} & GetNodeOptions): NodeOrError;
|
|
220
|
-
declare function getNode(pointer: string, data?: unknown, options?: GetNodeOptions): OptionalNodeOrError;
|
|
221
|
-
//#endregion
|
|
222
|
-
//#region src/getNodeChild.d.ts
|
|
223
|
-
declare function getNodeChild(key: string | number, data: unknown, options: {
|
|
224
|
-
withSchemaWarning: true;
|
|
225
|
-
} & GetNodeOptions): NodeOrError;
|
|
226
|
-
declare function getNodeChild(key: string | number, data: unknown, options: {
|
|
227
|
-
createSchema: true;
|
|
228
|
-
} & GetNodeOptions): NodeOrError;
|
|
229
|
-
declare function getNodeChild(key: string | number, data?: unknown, options?: GetNodeOptions): OptionalNodeOrError;
|
|
230
|
-
//#endregion
|
|
231
197
|
//#region src/SchemaNode.d.ts
|
|
232
198
|
declare function isSchemaNode(value: unknown): value is SchemaNode;
|
|
233
199
|
declare function isReduceable(node: SchemaNode): boolean;
|
|
234
200
|
type Context = {
|
|
235
|
-
/** root node of this JSON Schema */
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
|
|
239
|
-
/** [SHARED ACROSS REMOTES]
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
dynamicAnchors: Record<string, SchemaNode>;
|
|
247
|
-
/** JSON Schema parser, validator, reducer and resolver for this JSON Schema (root schema and its child nodes) */
|
|
248
|
-
keywords: Draft["keywords"];
|
|
249
|
-
/** JSON Schema draft dependend methods */
|
|
250
|
-
methods: Draft["methods"];
|
|
251
|
-
/** draft version */
|
|
252
|
-
version: Draft["version"];
|
|
253
|
-
/** draft errors & template-strings */
|
|
254
|
-
errors: Draft["errors"];
|
|
255
|
-
/** draft formats & validators */
|
|
256
|
-
formats: Draft["formats"];
|
|
257
|
-
/** [SHARED USING ADD REMOTE] getData default options */
|
|
201
|
+
/** root node of this JSON Schema */rootNode: SchemaNode; /** available draft configurations */
|
|
202
|
+
drafts: Draft[]; /** [SHARED ACROSS REMOTES] root nodes of registered remote JSON Schema, stored by id/url */
|
|
203
|
+
remotes: Record<string, SchemaNode>; /** references stored by fully resolved schema-$id + local-pointer */
|
|
204
|
+
refs: Record<string, SchemaNode>; /** anchors stored by fully resolved schema-$id + $anchor */
|
|
205
|
+
anchors: Record<string, SchemaNode>; /** [SHARED ACROSS REMOTES] dynamicAnchors stored by fully resolved schema-$id + $anchor */
|
|
206
|
+
dynamicAnchors: Record<string, SchemaNode>; /** JSON Schema parser, validator, reducer and resolver for this JSON Schema (root schema and its child nodes) */
|
|
207
|
+
keywords: Draft["keywords"]; /** JSON Schema draft dependend methods */
|
|
208
|
+
methods: Draft["methods"]; /** draft version */
|
|
209
|
+
version: Draft["version"]; /** draft errors & template-strings */
|
|
210
|
+
errors: Draft["errors"]; /** draft formats & validators */
|
|
211
|
+
formats: Draft["formats"]; /** [SHARED USING ADD REMOTE] getData default options */
|
|
258
212
|
getDataDefaultOptions?: TemplateOptions;
|
|
259
213
|
};
|
|
260
214
|
interface SchemaNode extends SchemaNodeMethodsType {
|
|
@@ -292,10 +246,6 @@ interface SchemaNode extends SchemaNodeMethodsType {
|
|
|
292
246
|
reducers: JsonSchemaReducer[];
|
|
293
247
|
resolvers: JsonSchemaResolver[];
|
|
294
248
|
validators: JsonSchemaValidator[];
|
|
295
|
-
resolveRef?: (args?: {
|
|
296
|
-
pointer?: string;
|
|
297
|
-
path?: ValidationPath;
|
|
298
|
-
}) => SchemaNode;
|
|
299
249
|
$id?: string;
|
|
300
250
|
$defs?: Record<string, SchemaNode>;
|
|
301
251
|
$ref?: string;
|
|
@@ -355,7 +305,47 @@ interface SchemaNode extends SchemaNodeMethodsType {
|
|
|
355
305
|
unevaluatedItems?: SchemaNode;
|
|
356
306
|
unevaluatedProperties?: SchemaNode;
|
|
357
307
|
}
|
|
358
|
-
|
|
308
|
+
/**
|
|
309
|
+
* Fixed SchemaNode mixin methods
|
|
310
|
+
*/
|
|
311
|
+
interface SchemaNodeMethodsType {
|
|
312
|
+
compileSchema(schema: JsonSchema, evaluationPath?: string, schemaLocation?: string, dynamicId?: string): SchemaNode;
|
|
313
|
+
createError<T extends string = DefaultErrors>(code: T, data: ErrorData, message?: string): JsonError;
|
|
314
|
+
createSchema(data?: unknown): JsonSchema;
|
|
315
|
+
getNode(pointer: string, data: unknown, options: {
|
|
316
|
+
withSchemaWarning: true;
|
|
317
|
+
} & GetNodeOptions): NodeOrError;
|
|
318
|
+
getNode(pointer: string, data: unknown, options: {
|
|
319
|
+
createSchema: true;
|
|
320
|
+
} & GetNodeOptions): NodeOrError;
|
|
321
|
+
getNode(pointer: string, data?: unknown, options?: GetNodeOptions): OptionalNodeOrError;
|
|
322
|
+
getNodeChild(key: string | number, data: unknown, options: {
|
|
323
|
+
withSchemaWarning: true;
|
|
324
|
+
} & GetNodeOptions): NodeOrError;
|
|
325
|
+
getNodeChild(key: string | number, data: unknown, options: {
|
|
326
|
+
createSchema: true;
|
|
327
|
+
} & GetNodeOptions): NodeOrError;
|
|
328
|
+
getNodeChild(key: string | number, data?: unknown, options?: GetNodeOptions): OptionalNodeOrError;
|
|
329
|
+
getChildSelection(property: string | number): JsonError | SchemaNode[];
|
|
330
|
+
getNodeRef($ref: string): SchemaNode | undefined;
|
|
331
|
+
getNodeRoot(): SchemaNode;
|
|
332
|
+
getDraftVersion(): string;
|
|
333
|
+
getData(data?: unknown, options?: TemplateOptions): unknown;
|
|
334
|
+
reduceNode(data: unknown, options?: {
|
|
335
|
+
key?: string | number;
|
|
336
|
+
pointer?: string;
|
|
337
|
+
path?: ValidationPath;
|
|
338
|
+
}): OptionalNodeOrError;
|
|
339
|
+
resolveRef: (args?: {
|
|
340
|
+
pointer?: string;
|
|
341
|
+
path?: ValidationPath;
|
|
342
|
+
}) => SchemaNode;
|
|
343
|
+
validate(data: unknown, pointer?: string, path?: ValidationPath): ValidateReturnType;
|
|
344
|
+
addRemoteSchema(url: string, schema: JsonSchema): SchemaNode;
|
|
345
|
+
toSchemaNodes(): SchemaNode[];
|
|
346
|
+
toDataNodes(data: unknown, pointer?: string): DataNode[];
|
|
347
|
+
toJSON(): unknown;
|
|
348
|
+
}
|
|
359
349
|
type GetNodeOptions = {
|
|
360
350
|
/**
|
|
361
351
|
* Per default `undefined` is returned for valid data, but undefined schema.
|
|
@@ -387,61 +377,10 @@ type ValidateReturnType = {
|
|
|
387
377
|
*/
|
|
388
378
|
errorsAsync: Promise<JsonError | undefined>[];
|
|
389
379
|
};
|
|
390
|
-
declare const SchemaNodeMethods: {
|
|
391
|
-
/**
|
|
392
|
-
* Compiles a child-schema of this node to its context
|
|
393
|
-
* @returns SchemaNode representing the passed JSON Schema
|
|
394
|
-
*/
|
|
395
|
-
readonly compileSchema: (schema: JsonSchema, evaluationPath?: string, schemaLocation?: string, dynamicId?: string) => SchemaNode;
|
|
396
|
-
readonly createError: <T extends string = "additional-items-error" | "additional-properties-error" | "all-of-error" | "any-of-error" | "const-error" | "contains-any-error" | "contains-array-error" | "contains-error" | "contains-min-error" | "contains-max-error" | "enum-error" | "exclusive-maximum-error" | "exclusive-minimum-error" | "forbidden-property-error" | "format-date-error" | "format-date-time-error" | "format-duration-error" | "format-email-error" | "format-hostname-error" | "format-ipv4-error" | "format-ipv4-leading-zero-error" | "format-ipv6-error" | "format-ipv6-leading-zero-error" | "format-json-pointer-error" | "format-regex-error" | "format-time-error" | "format-uri-error" | "format-uri-reference-error" | "format-uri-template-error" | "format-url-error" | "format-uuid-error" | "invalid-data-error" | "invalid-property-name-error" | "maximum-error" | "max-items-error" | "max-length-error" | "max-properties-error" | "minimum-error" | "min-items-error" | "min-items-one-error" | "min-length-error" | "min-length-one-error" | "missing-one-of-declarator-error" | "min-properties-error" | "missing-array-item-error" | "missing-dependency-error" | "missing-one-of-property-error" | "multiple-of-error" | "multiple-one-of-error" | "no-additional-properties-error" | "not-error" | "one-of-error" | "one-of-property-error" | "pattern-error" | "pattern-properties-error" | "required-property-error" | "schema-warning" | "type-error" | "undefined-value-error" | "unevaluated-property-error" | "unevaluated-items-error" | "unique-items-error" | "unknown-property-error" | "value-not-empty-error">(code: T, data: ErrorData, message?: string) => JsonError;
|
|
397
|
-
readonly createSchema: typeof createSchema;
|
|
398
|
-
readonly getChildSelection: (property: string | number) => JsonError | SchemaNode[];
|
|
399
|
-
readonly getNode: typeof getNode;
|
|
400
|
-
readonly getNodeChild: typeof getNodeChild;
|
|
401
|
-
/**
|
|
402
|
-
* @returns for $ref, the corresponding SchemaNode or undefined
|
|
403
|
-
*/
|
|
404
|
-
readonly getNodeRef: ($ref: string) => SchemaNode | undefined;
|
|
405
|
-
readonly getNodeRoot: () => SchemaNode;
|
|
406
|
-
/**
|
|
407
|
-
* @returns draft version this JSON Schema is evaluated by
|
|
408
|
-
*/
|
|
409
|
-
readonly getDraftVersion: () => DraftVersion;
|
|
410
|
-
/**
|
|
411
|
-
* @returns data that is valid to the schema of this node
|
|
412
|
-
*/
|
|
413
|
-
readonly getData: (data?: unknown, options?: TemplateOptions) => any;
|
|
414
|
-
/**
|
|
415
|
-
* @returns SchemaNode with a reduced JSON Schema matching the given data
|
|
416
|
-
*/
|
|
417
|
-
readonly reduceNode: (data: unknown, options?: {
|
|
418
|
-
key?: string | number;
|
|
419
|
-
pointer?: string;
|
|
420
|
-
path?: ValidationPath;
|
|
421
|
-
}) => OptionalNodeOrError;
|
|
422
|
-
/**
|
|
423
|
-
* @returns validation result of data validated by this node's JSON Schema
|
|
424
|
-
*/
|
|
425
|
-
readonly validate: (data: unknown, pointer?: string, path?: ValidationPath) => ValidateReturnType;
|
|
426
|
-
/**
|
|
427
|
-
* Register a JSON Schema as a remote-schema to be resolved by $ref, $anchor, etc
|
|
428
|
-
* @returns the current node (not the remote schema-node)
|
|
429
|
-
*/
|
|
430
|
-
readonly addRemoteSchema: (url: string, schema: JsonSchema) => SchemaNode;
|
|
431
|
-
/**
|
|
432
|
-
* @returns a list of all sub-schema as SchemaNode
|
|
433
|
-
*/
|
|
434
|
-
readonly toSchemaNodes: () => SchemaNode[];
|
|
435
|
-
/**
|
|
436
|
-
* @returns a list of values (including objects and arrays) and their corresponding JSON Schema as SchemaNode
|
|
437
|
-
*/
|
|
438
|
-
readonly toDataNodes: (data: unknown, pointer?: string) => DataNode[];
|
|
439
|
-
readonly toJSON: () => any;
|
|
440
|
-
};
|
|
441
380
|
//#endregion
|
|
442
381
|
//#region src/types.d.ts
|
|
443
382
|
interface JsonSchema {
|
|
444
|
-
[
|
|
383
|
+
[keyword: string]: any;
|
|
445
384
|
}
|
|
446
385
|
type JsonPointer = string;
|
|
447
386
|
type DefaultErrors = keyof typeof errors;
|
|
@@ -460,9 +399,7 @@ type NodeOrError = {
|
|
|
460
399
|
node: undefined;
|
|
461
400
|
error: JsonError;
|
|
462
401
|
};
|
|
463
|
-
type ErrorData<T extends Record<string, unknown> = {
|
|
464
|
-
[p: string]: unknown;
|
|
465
|
-
}> = T & {
|
|
402
|
+
type ErrorData<T extends Record<string, unknown> = Record<string, unknown>> = T & {
|
|
466
403
|
pointer: string;
|
|
467
404
|
schema: JsonSchema;
|
|
468
405
|
value: unknown;
|
|
@@ -478,13 +415,13 @@ type JsonError<T extends ErrorData = ErrorData> = {
|
|
|
478
415
|
* ts type guard for json error
|
|
479
416
|
* @returns true if passed type is a JsonError
|
|
480
417
|
*/
|
|
481
|
-
declare function isJsonError(error:
|
|
418
|
+
declare function isJsonError(error: unknown): error is JsonError;
|
|
482
419
|
//#endregion
|
|
483
420
|
//#region src/compileSchema.d.ts
|
|
484
421
|
type CompileOptions = {
|
|
485
422
|
drafts?: Draft[];
|
|
486
423
|
remote?: SchemaNode;
|
|
487
|
-
formatAssertion?: boolean | "meta-schema";
|
|
424
|
+
formatAssertion?: boolean | "meta-schema" | undefined;
|
|
488
425
|
getDataDefaultOptions?: TemplateOptions;
|
|
489
426
|
};
|
|
490
427
|
/**
|
|
@@ -621,16 +558,14 @@ declare const oneOfKeyword: Keyword;
|
|
|
621
558
|
declare const oneOfFuzzyKeyword: Keyword;
|
|
622
559
|
//#endregion
|
|
623
560
|
//#region src/errors/render.d.ts
|
|
624
|
-
declare function render(template: string, data?:
|
|
625
|
-
[p: string]: any;
|
|
626
|
-
}): string;
|
|
561
|
+
declare function render(template: string, data?: Record<string, unknown>): string;
|
|
627
562
|
//#endregion
|
|
628
563
|
//#region src/utils/getTypeOf.d.ts
|
|
629
564
|
type JSType = "array" | "bigint" | "boolean" | "function" | "null" | "number" | "object" | "string" | "symbol" | "undefined";
|
|
630
565
|
declare function getTypeOf(value: unknown): JSType;
|
|
631
566
|
//#endregion
|
|
632
567
|
//#region src/mergeNode.d.ts
|
|
633
|
-
declare function mergeNode(a
|
|
568
|
+
declare function mergeNode(a?: SchemaNode, b?: SchemaNode, ...omit: string[]): SchemaNode | undefined;
|
|
634
569
|
//#endregion
|
|
635
570
|
//#region src/utils/mergeSchema.d.ts
|
|
636
571
|
declare function mergeSchema<T extends JsonSchema>(a: T, b: T, ...omit: string[]): T;
|