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.
Files changed (75) hide show
  1. package/.mocharc.js +1 -1
  2. package/README.md +5 -0
  3. package/dist/index.cjs +1 -0
  4. package/dist/{index.d.ts → index.d.cts} +75 -140
  5. package/dist/index.d.mts +75 -140
  6. package/dist/index.mjs +1 -1
  7. package/dist/jlib.js +3 -3
  8. package/eslint.config.mjs +26 -0
  9. package/package.json +26 -25
  10. package/src/Draft.ts +4 -4
  11. package/src/Keyword.ts +3 -3
  12. package/src/SchemaNode.ts +79 -30
  13. package/src/compileSchema.reduceSchema.test.ts +39 -39
  14. package/src/compileSchema.test.ts +2 -6
  15. package/src/compileSchema.ts +4 -4
  16. package/src/compileSchema.validate.test.ts +31 -2
  17. package/src/draft04/keywords/$ref.ts +14 -14
  18. package/src/draft06/keywords/$ref.ts +4 -4
  19. package/src/draft2019-09/compileSchema.validate.test.ts +1003 -1005
  20. package/src/draft2019-09/keywords/$ref.ts +14 -16
  21. package/src/draft2019-09/keywords/additionalItems.ts +5 -2
  22. package/src/draft2019-09/keywords/unevaluatedItems.ts +5 -3
  23. package/src/draft2019-09/methods/getChildSelection.ts +8 -7
  24. package/src/draft2019-09/methods/getData.test.ts +1790 -1788
  25. package/src/draft2019-09/methods/getData.ts +32 -34
  26. package/src/errors/render.ts +1 -1
  27. package/src/formats/formats.ts +8 -7
  28. package/src/getNode.ts +1 -1
  29. package/src/getNodeChild.ts +5 -3
  30. package/src/isItemEvaluated.ts +6 -6
  31. package/src/isPropertyEvaluated.ts +6 -6
  32. package/src/keywords/$defs.ts +2 -2
  33. package/src/keywords/$ref.ts +18 -22
  34. package/src/keywords/additionalProperties.ts +8 -5
  35. package/src/keywords/anyOf.ts +5 -2
  36. package/src/keywords/contains.ts +4 -3
  37. package/src/keywords/dependencies.ts +13 -12
  38. package/src/keywords/dependentRequired.ts +1 -1
  39. package/src/keywords/dependentSchemas.ts +7 -6
  40. package/src/keywords/enum.ts +2 -2
  41. package/src/keywords/ifthenelse.ts +1 -1
  42. package/src/keywords/items.ts +1 -1
  43. package/src/keywords/maximum.ts +3 -1
  44. package/src/keywords/minimum.ts +2 -1
  45. package/src/keywords/not.ts +2 -1
  46. package/src/keywords/oneOf.ts +13 -10
  47. package/src/keywords/patternProperties.ts +3 -2
  48. package/src/keywords/prefixItems.ts +1 -1
  49. package/src/keywords/properties.test.ts +11 -0
  50. package/src/keywords/properties.ts +10 -5
  51. package/src/keywords/propertyNames.ts +3 -2
  52. package/src/keywords/type.ts +1 -1
  53. package/src/keywords/unevaluatedProperties.ts +1 -3
  54. package/src/mergeNode.test.ts +1 -1
  55. package/src/mergeNode.ts +8 -7
  56. package/src/methods/getChildSelection.ts +4 -2
  57. package/src/methods/getData.test.ts +1781 -1783
  58. package/src/methods/getData.ts +27 -22
  59. package/src/methods/toDataNodes.ts +1 -1
  60. package/src/methods/toSchemaNodes.ts +1 -0
  61. package/src/types.ts +12 -4
  62. package/src/utils/getDefaultValue.ts +1 -1
  63. package/src/utils/getSchemaType.ts +8 -8
  64. package/src/utils/getTypeOf.ts +15 -15
  65. package/src/utils/isEmpty.ts +13 -14
  66. package/src/utils/isObject.ts +1 -1
  67. package/src/utils/mergeSchema.ts +5 -5
  68. package/src/utils/punycode.ucs2decode.ts +1 -2
  69. package/src/utils/sanitizeErrors.ts +6 -4
  70. package/src/validateNode.ts +3 -3
  71. package/tsconfig.json +3 -3
  72. package/tsconfig.test.json +4 -1
  73. package/.eslintignore +0 -3
  74. package/.eslintrc +0 -43
  75. package/dist/index.js +0 -1
package/.mocharc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  process.env.TS_NODE_PROJECT = "./tsconfig.test.json";
2
2
 
3
3
  module.exports = {
4
- require: "ts-node/register"
4
+ "node-option": ["import=tsx"]
5
5
  };
package/README.md CHANGED
@@ -1358,6 +1358,11 @@ settings.REGEX_FLAGS = "v";
1358
1358
 
1359
1359
  ## Breaking Changes
1360
1360
 
1361
+ ### v10.6.0
1362
+
1363
+ - introduced annotations
1364
+ - changed typing to strict
1365
+
1361
1366
  ### v10.5.0
1362
1367
 
1363
1368
  - added support for ref resolution in getSchemaType
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
- data: unknown;
9
- /** optional key to used to resolve by property without having data */
10
- key?: string | number;
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?: string;
30
+ pointer: string;
36
31
  data: unknown;
37
32
  node: SchemaNode;
38
- path?: ValidationPath;
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
- /** unique keyword corresponding to JSON Schema keywords (or custom) */
48
- keyword: string;
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 disables recursion limit for next call */
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
- rootNode: SchemaNode;
237
- /** available draft configurations */
238
- drafts: Draft[];
239
- /** [SHARED ACROSS REMOTES] root nodes of registered remote JSON Schema, stored by id/url */
240
- remotes: Record<string, SchemaNode>;
241
- /** references stored by fully resolved schema-$id + local-pointer */
242
- refs: Record<string, SchemaNode>;
243
- /** anchors stored by fully resolved schema-$id + $anchor */
244
- anchors: Record<string, SchemaNode>;
245
- /** [SHARED ACROSS REMOTES] dynamicAnchors stored by fully resolved schema-$id + $anchor */
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
- type SchemaNodeMethodsType = typeof SchemaNodeMethods;
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
- [p: string]: any;
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: any): error is JsonError;
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: SchemaNode, b?: SchemaNode, ...omit: string[]): SchemaNode | undefined;
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;