schema-shield 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1 +1,2 @@
1
- (()=>{var e=class extends Error{message;item;keyword;cause;schemaPath="";instancePath="";data;schema;constructor(e){super(e),this.message=e}_getCause(t="#",r="#"){let a=`${t}/${this.keyword}`,i=`${r}`;return void 0!==this.item&&("string"==typeof this.item&&this.schema&&"object"==typeof this.schema&&this.item in this.schema&&(a+=`/${this.item}`),i+=`/${this.item}`),this.instancePath=i,this.schemaPath=a,this.cause&&this.cause instanceof e?this.cause._getCause(a,i):this}getCause(){return this._getCause()}_getTree(){const e={message:this.message,keyword:this.keyword,item:this.item,schemaPath:this.schemaPath,instancePath:this.instancePath,data:this.data};return this.cause&&(e.cause=this.cause._getTree()),e}getTree(){return this.getCause(),this._getTree()}getPath(){const e=this.getCause();return{schemaPath:e.schemaPath,instancePath:e.instancePath}}},t=()=>!0;function r(r,a,n){if(n)return t;const s=new e(`Invalid ${r}`);return s.keyword=r,s.schema=a,i(`defineError_${r}`,(e,t={})=>(s.message=e,s.item=t.item,s.cause=t.cause&&!0!==t.cause?t.cause:void 0,s.data=t.data,s))}function a(e){return!!e&&"object"==typeof e&&!Array.isArray(e)&&"$validate"in e}function i(e,t){return Object.defineProperty(t,"name",{value:e})}var n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,s=/^P(?!$)((\d+Y)?(\d+M)?(\d+W)?(\d+D)?)(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,o=/^[a-zA-Z][a-zA-Z0-9+\-.]*:[^\s]*$/,l=/^(?!\.)(?!.*\.$)[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,20}(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,21}){0,2}@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,60}[a-z0-9])?){0,3}$/i,f=/^[a-z0-9][a-z0-9-]{0,62}(?:\.[a-z0-9][a-z0-9-]{0,62})*[a-z0-9]$/i,u=/^(\d{4})-(\d{2})-(\d{2})$/,c=/^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)(\.\d+)?(Z|([+-])([01]\d|2[0-3]):([0-5]\d))$/,d=/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#((?![^#]*\\)[^#]*))?/i,h=/^[a-zA-Z][a-zA-Z0-9+\-.]*:[^\s]*$/,y=/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#((?![^#]*\\)[^#]*))?/i,p=/^[^@\s]+@[^@\s]+\.[^@\s]+$/,m=/^[^\s!@#$%^&*()_+\=\[\]{};':"\\|,<>\/?]+$/,v=[31,28,31,30,31,30,31,31,30,31,30,31];function b(e,t){const r=e.charCodeAt(t)-48,a=e.charCodeAt(t+1)-48;return r<0||r>9||a<0||a>9?-1:10*r+a}function g(e,t,r){let a=0,i=t;for(let n=t;n<=r;n++){if(n!==r&&46!==e.charCodeAt(n))continue;const t=n-i;if(t<1||t>3)return!1;if(t>1&&48===e.charCodeAt(i))return!1;let s=0;for(let t=i;t<n;t++){const r=e.charCodeAt(t)-48;if(r<0||r>9)return!1;s=10*s+r}if(s>255)return!1;a++,i=n+1}return 4===a}var A={"date-time"(e){const t=e.length;if(t<19)return!1;if(45!==e.charCodeAt(4)||45!==e.charCodeAt(7)||58!==e.charCodeAt(13)||58!==e.charCodeAt(16))return!1;const r=e.charCodeAt(10);if(84!==r&&116!==r)return!1;const a=((e,t)=>{const r=e.charCodeAt(0)-48,a=e.charCodeAt(1)-48,i=e.charCodeAt(2)-48,n=e.charCodeAt(3)-48;return r<0||r>9||a<0||a>9||i<0||i>9||n<0||n>9?-1:1e3*r+100*a+10*i+n})(e),i=b(e,5),n=b(e,8),s=b(e,11),o=b(e,14),l=b(e,17);if(a<0||i<0||n<0||s<0||o<0||l<0)return!1;if(s>23||o>59||l>60)return!1;let f=19,u=null,c=0,d=0;if(f<t&&46===e.charCodeAt(f)){f++;const r=f;for(;f<t&&(h=e.charCodeAt(f))>=48&&h<=57;)f++;if(f===r)return!1}var h;if(f<t){const r=e.charCodeAt(f);if(90===r||122===r)f++;else{if(43!==r&&45!==r)return!1;if(u=43===r?"+":"-",f+6>t||58!==e.charCodeAt(f+3))return!1;if(c=b(e,f+1),d=b(e,f+4),c<0||d<0||c>23||d>59)return!1;f+=6}}if(f!==t)return!1;if(i<1||i>12)return!1;if(n<1)return!1;const y=2===i?a%4!=0||a%100==0&&a%400!=0?28:29:v[i-1];if(!y||n>y)return!1;if(60===l){let e=60*s+o;if(u){const t=60*c+d;e+="+"===u?-t:t,e%=1440,e<0&&(e+=1440)}if(1439!==e)return!1}return!0},uri(e){return o.test(e)},email(e){return l.test(e)},ipv4(e){return(e=>g(e,0,e.length))(e)},ipv6(e){return(e=>{const t=e.length;if(0===t)return!1;let r=!1,a=!1,i=0,n=0;for(;n<t;){if(58===e.charCodeAt(n)){if(r=!0,n+1<t&&58===e.charCodeAt(n+1)){if(a)return!1;if(a=!0,n+=2,n===t)break;continue}return!1}const o=n;let l=0;for(;n<t&&((s=e.charCodeAt(n))>=48&&s<=57||s>=65&&s<=70||s>=97&&s<=102);){if(l++,l>4)return!1;n++}if(0===l)return!1;if(n<t&&46===e.charCodeAt(n))return!!r&&!!g(e,o,t)&&(a?i<6:6===i);if(i++,i>8)return!1;if(n===t)break;if(58!==e.charCodeAt(n))return!1;if(r=!0,n++,n===t)return!1;if(58===e.charCodeAt(n)){if(a)return!1;if(a=!0,n++,n===t)break}}var s;return!!r&&(a?i<8:8===i)})(e)},hostname(e){return f.test(e)},date(e){const t=u.exec(e);if(!t)return!1;const[,r,a,i]=t,n=Number(r),s=Number(a),o=Number(i);if(s<1||s>12)return!1;if(o<1)return!1;const l=2===s?n%4!=0||n%100==0&&n%400!=0?28:29:v[s-1];return!!l&&o<=l},regex(e){try{return new RegExp(e),!0}catch(e){return!1}},"json-pointer"(e){return(e=>{if(""===e)return!0;if(47!==e.charCodeAt(0))return!1;for(let t=1;t<e.length;t++){if(126!==e.charCodeAt(t))continue;const r=e.charCodeAt(t+1);if(48!==r&&49!==r)return!1;t++}return!0})(e)},"relative-json-pointer"(e){return(e=>{if(0===e.length)return!0;let t=0;for(;t<e.length;){const r=e.charCodeAt(t);if(r<48||r>57)break;t++}if(0===t)return!1;if(t===e.length)return!0;if(35===e.charCodeAt(t))return t+1===e.length;if(47!==e.charCodeAt(t))return!1;for(t+=1;t<e.length;t++){if(126!==e.charCodeAt(t))continue;const r=e.charCodeAt(t+1);if(48!==r&&49!==r)return!1;t++}return!0})(e)},time(e){return c.test(e)},"uri-reference"(e){return!e.includes("\\")&&d.test(e)},"uri-template"(e){return(e=>{for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(125===r)return!1;if(123!==r)continue;const a=e.indexOf("}",t+1);if(-1===a||a===t+1)return!1;t=a}return!0})(e)},duration(e){return s.test(e)},uuid(e){return n.test(e)},iri(e){return h.test(e)},"iri-reference"(e){return!e.includes("\\")&&y.test(e)},"idn-email"(e){return p.test(e)},"idn-hostname"(e){return m.test(e)}},w={object(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)},array(e){return Array.isArray(e)},string(e){return"string"==typeof e},number(e){return"number"==typeof e},integer(e){return"number"==typeof e&&e%1==0},boolean(e){return"boolean"==typeof e},null(e){return null===e},timestamp:!1,int8:!1,uint8:!1,int16:!1,uint16:!1,int32:!1,uint32:!1,float32:!1,float64:!1};function O(e,t){if(Object.is(e,t))return!1;if(Array.isArray(e)){if(!1===Array.isArray(t))return!0;if(e.length!==t.length)return!0;for(let r=0;r<t.length;r++)if(O(e[r],t[r]))return!0;return!1}if("object"==typeof e&&null!==e){if("object"!=typeof t||null===t)return!0;for(const r in t)if(O(e[r],t[r]))return!0;for(const r in e)if(!(r in t)&&O(e[r],void 0))return!0;return!1}return!0}function $(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function j(e){const t=e.length;if(0===t)return"0";const r=e[0],a=e[t-1],i=null===r?"null":typeof r,n=null===a?"null":typeof a;let s="";if(Array.isArray(r)){const e=k(r);s=null===e?`a:${r.length}`:e}let o="";if(Array.isArray(a)){const e=k(a);o=null===e?`a:${a.length}`:e}return`${t}:${i}:${s}:${n}:${o}`}function P(e){const t=Object.keys(e).sort();return`${t.length}:${t.join("")}`}function k(e){const t=e.length;if(0===t)return"a:0";if(!$(e[0])||!$(e[t-1]))return null;let r=`a:${t}:`;for(let a=0;a<t;a++){const t=e[a];if(null!==t)if("string"!=typeof t)if("number"!=typeof t){if("boolean"!=typeof t)return null;r+=t?"b:1;":"b:0;"}else{if(Number.isNaN(t)){r+="n:NaN;";continue}if(Object.is(t,-0)){r+="n:-0;";continue}r+=`n:${t};`}else r+=`s${t.length}:${t};`;else r+="l;"}return r}var V={items(e,t,r){if(!Array.isArray(t))return;const a=e.items,i=t.length;if("boolean"==typeof a)return!1===a&&i>0?r("Array items are not allowed",{data:t}):void 0;if(Array.isArray(a)){const e=a.length,n=e<i?e:i;for(let e=0;e<n;e++){const i=a[e];if("boolean"==typeof i){if(!1===i&&void 0!==t[e])return r("Array item is not allowed",{item:e,data:t[e]});continue}const n=i&&i.$validate;if("function"==typeof n){const a=n(t[e]);if(a)return r("Array item is invalid",{item:e,cause:a,data:t[e]})}}return}const n=a&&a.$validate;if("function"==typeof n)for(let e=0;e<i;e++){const a=n(t[e]);if(a)return r("Array item is invalid",{item:e,cause:a,data:t[e]})}},elements(e,t,r){if(!Array.isArray(t))return;const a=e.elements,i=a&&a.$validate;if("function"==typeof i)for(let e=0;e<t.length;e++){const a=i(t[e]);if(a)return r("Array item is invalid",{item:e,cause:a,data:t[e]})}},minItems(e,t,r){if(Array.isArray(t)&&!(t.length>=e.minItems))return r("Array is too short",{data:t})},maxItems(e,t,r){if(Array.isArray(t)&&!(t.length<=e.maxItems))return r("Array is too long",{data:t})},additionalItems(e,t,r){if(!Array.isArray(t)||!Array.isArray(e.items))return;let i=e._tupleItemsLength;if(void 0===i&&(i=e.items.length,Object.defineProperty(e,"_tupleItemsLength",{value:i,enumerable:!1,configurable:!1,writable:!1})),!(t.length<=i)){if(!1===e.additionalItems)return r("Array is too long",{data:t});if(!e.additionalItems||"object"!=typeof e.additionalItems||Array.isArray(e.additionalItems));else if(a(e.additionalItems)){for(let a=i;a<t.length;a++){const i=e.additionalItems.$validate(t[a]);if(i)return r("Array item is invalid",{item:a,cause:i,data:t[a]})}return}}},uniqueItems(e,t,r){if(!Array.isArray(t)||!e.uniqueItems)return;const a=t.length;if(a<=1)return;if(a<=8){for(let e=0;e<a;e++){const i=t[e];for(let n=e+1;n<a;n++){const e=t[n];if(i===e)return r("Array items are not unique",{data:e});if("number"==typeof i&&"number"==typeof e&&Number.isNaN(i)&&Number.isNaN(e))return r("Array items are not unique",{data:e});if(i&&e&&"object"==typeof i&&"object"==typeof e&&!O(i,e))return r("Array items are not unique",{data:e})}}return}const i=new Set;let n,s,o;for(let e=0;e<a;e++){const a=t[e];if($(a)){if(i.has(a))return r("Array items are not unique",{data:a});i.add(a);continue}if(!a||"object"!=typeof a)continue;if(Array.isArray(a)){const e=k(a);if(null!==e){if(n||(n=new Set),n.has(e))return r("Array items are not unique",{data:a});n.add(e);continue}s||(s=new Map);const t=j(a);let i=s.get(t);i||(i=[],s.set(t,i));for(let e=0;e<i.length;e++)if(!O(i[e],a))return r("Array items are not unique",{data:a});i.push(a);continue}o||(o=new Map);const l=P(a);let f=o.get(l);f||(f=[],o.set(l,f));for(let e=0;e<f.length;e++)if(!O(f[e],a))return r("Array items are not unique",{data:a});f.push(a)}},contains(e,t,r){if(!Array.isArray(t))return;if("boolean"==typeof e.contains)return e.contains?0===t.length?r("Array must contain at least one item",{data:t}):void 0:r("Array must not contain any items",{data:t});const a=e.contains.$validate;for(let e=0;e<t.length;e++)if(!a(t[e]))return;return r("Array must contain at least one item",{data:t})}};function _(e,t=!1,r=new WeakMap){if(null==e||"object"!=typeof e)return e;const a=e;if(r.has(a))return r.get(a);if(i=a,"function"==typeof structuredClone&&!("undefined"!=typeof Buffer&&i instanceof Buffer)&&(Array.isArray(i)||(e=>{if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t})(i)||i instanceof Date||i instanceof RegExp||i instanceof Map||i instanceof Set||i instanceof ArrayBuffer||ArrayBuffer.isView(i))){const e=structuredClone(a);return r.set(a,e),e}var i;let n;switch(!0){case Array.isArray(a):n=[],r.set(a,n);for(let e=0,i=a.length;e<i;e++)n[e]=_(a[e],t,r);return n;case a instanceof Date:return n=new Date(a.getTime()),r.set(a,n),n;case a instanceof RegExp:return n=new RegExp(a.source,a.flags),r.set(a,n),n;case a instanceof Map:n=new Map,r.set(a,n);for(const[e,i]of a.entries())n.set(_(e,t,r),_(i,t,r));return n;case a instanceof Set:n=new Set,r.set(a,n);for(const e of a.values())n.add(_(e,t,r));return n;case a instanceof ArrayBuffer:return n=a.slice(0),r.set(a,n),n;case ArrayBuffer.isView(a):return n=new a.constructor(a.buffer.slice(0)),r.set(a,n),n;case"undefined"!=typeof Buffer&&a instanceof Buffer:return n=Buffer.from(a),r.set(a,n),n;case a instanceof Error:n=new a.constructor(a.message),r.set(a,n);break;case a instanceof Promise||a instanceof WeakMap||a instanceof WeakSet:return n=a,r.set(a,n),n;case a.constructor&&a.constructor!==Object:if(!t)return n=a,r.set(a,n),n;n=Object.create(Object.getPrototypeOf(a)),r.set(a,n);break;default:{n={},r.set(a,n);const e=Reflect.ownKeys(a);for(let i=0,s=e.length;i<s;i++){const s=e[i];n[s]=_(a[s],t,r)}return n}}const s=Object.getOwnPropertyDescriptors(a);for(const e of Reflect.ownKeys(s)){const a=s[e];"value"in a&&(a.value=_(a.value,t,r)),Object.defineProperty(n,e,a)}return n}var x={minimum(e,t,r,a){if("number"!=typeof t)return;let i=e.minimum;return"number"==typeof e.exclusiveMinimum?i=e.exclusiveMinimum+1e-15:!0===e.exclusiveMinimum&&(i+=1e-15),t<i?r("Value is less than the minimum",{data:t}):void 0},maximum(e,t,r,a){if("number"!=typeof t)return;let i=e.maximum;return"number"==typeof e.exclusiveMaximum?i=e.exclusiveMaximum-1e-15:!0===e.exclusiveMaximum&&(i-=1e-15),t>i?r("Value is greater than the maximum",{data:t}):void 0},multipleOf(e,t,r,a){if("number"!=typeof t)return;const i=t/e.multipleOf;return isFinite(i)?((e,t,r=1e-15)=>Math.abs(e-t)<=r*Math.max(Math.abs(e),Math.abs(t)))(i,Math.round(i))?void 0:r("Value is not a multiple of the multipleOf",{data:t}):void 0},exclusiveMinimum(e,t,r,a){if("number"==typeof t&&"number"==typeof e.exclusiveMinimum&&!("minimum"in e))return t<=e.exclusiveMinimum+1e-15?r("Value is less than or equal to the exclusiveMinimum"):void 0},exclusiveMaximum(e,t,r,a){if("number"==typeof t&&"number"==typeof e.exclusiveMaximum&&!("maximum"in e))return t>=e.exclusiveMaximum?r("Value is greater than or equal to the exclusiveMaximum",{data:t}):void 0}},C=/[\\.^$*+?()[\]{}|]/;function I(e){return C.test(e)}var R=new Map;function S(e){const t=R.get(e);if(t)return t;let r;if(0===e.length)r=e=>!0;else if(I(e)){const t=e.length;if(t>=2&&"^"===e[0]&&"$"===e[t-1]){const t=e.slice(1,-1);r=I(t)?new RegExp(e,"u"):0===t.length?e=>0===e.length:e=>e===t}else if("^"===e[0]){const t=e.slice(1);r=I(t)?new RegExp(e,"u"):0===t.length?e=>!0:e=>e.startsWith(t)}else if("$"===e[t-1]){const t=e.slice(0,-1);r=I(t)?new RegExp(e,"u"):0===t.length?e=>!0:e=>e.endsWith(t)}else r=new RegExp(e,"u")}else r=t=>t.includes(e);return R.set(e,r),r}var M=512;function q(e){let t=e._patternPropertyEntries;if(t)return t;if(!e.patternProperties||"object"!=typeof e.patternProperties||Array.isArray(e.patternProperties))return;const r=Object.keys(e.patternProperties);t=new Array(r.length);for(let a=0;a<r.length;a++){const i=r[a],n=S(i),s=n instanceof RegExp?e=>n.test(e):n;t[a]={schemaProp:e.patternProperties[i],match:s}}return Object.defineProperty(e,"_patternPropertyEntries",{value:t,enumerable:!1,configurable:!1,writable:!1}),t}function E(e,t,r){let a=e._patternKeyMatchIndexCache;if(a){const e=a.get(t);if(e)return e}else a=new Map,Object.defineProperty(e,"_patternKeyMatchIndexCache",{value:a,enumerable:!1,configurable:!1,writable:!1});const i=[];for(let e=0;e<r.length;e++)r[e].match(t)&&i.push(e);return a.size<M&&a.set(t,i),i}function N(e,t){const r=`_${t}BranchEntries`;let a=e[r];if(a)return a;const i=e[t]||[];a=[];for(let e=0;e<i.length;e++)a.push((n=i[e])&&"object"==typeof n&&!Array.isArray(n)?"$validate"in n&&"function"==typeof n.$validate?{kind:"validate",validate:n.$validate}:{kind:"alwaysValid"}:"boolean"==typeof n?{kind:n?"alwaysValid":"alwaysInvalid"}:{kind:"literal",value:n});var n;return Object.defineProperty(e,r,{value:a,enumerable:!1,configurable:!1,writable:!1}),a}var z={...{required(e,t,r){if(t&&"object"==typeof t&&!Array.isArray(t))for(let a=0;a<e.required.length;a++){const i=e.required[a];if(!{}.hasOwnProperty.call(t,i))return r("Required property is missing",{item:i,data:t[i]})}},properties(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;let a=e._propKeys;a||(a=Object.keys(e.properties||{}),Object.defineProperty(e,"_propKeys",{value:a,enumerable:!1,configurable:!1,writable:!1}));let i=e._requiredSet;void 0===i&&(i=Array.isArray(e.required)?new Set(e.required):null,Object.defineProperty(e,"_requiredSet",{value:i,enumerable:!1,configurable:!1,writable:!1}));for(let n=0;n<a.length;n++){const s=a[n],o=e.properties[s];if({}.hasOwnProperty.call(t,s)){if("boolean"!=typeof o){if(o&&"$validate"in o){const e=o.$validate(t[s]);if(e)return r("Property is invalid",{item:s,cause:e,data:t[s]})}}else if(!1===o)return r("Property is not allowed",{item:s,data:t[s]})}else if(i&&i.has(s)&&o&&"object"==typeof o&&!Array.isArray(o)&&"default"in o){const e=o.$validate(o.default);if(e)return r("Default property is invalid",{item:s,cause:e,data:o.default});t[s]=_(o.default)}}},values(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;const a=e.values,i=a&&a.$validate;if("function"==typeof i)for(const e in t){if(!{}.hasOwnProperty.call(t,e))continue;const a=i(t[e]);if(a)return r("Property is invalid",{item:e,cause:a,data:t[e]})}},maxProperties(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;let a=0;for(const i in t)if({}.hasOwnProperty.call(t,i)&&(a++,a>e.maxProperties))return r("Too many properties",{data:t})},minProperties(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;let a=0;for(const r in t)if({}.hasOwnProperty.call(t,r)&&(a++,a>=e.minProperties))return;return r("Too few properties",{data:t})},additionalProperties(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;let i=e._apValidate;void 0===i&&(i=a(e.additionalProperties)?e.additionalProperties.$validate:null,Object.defineProperty(e,"_apValidate",{value:i,enumerable:!1,configurable:!1,writable:!1}));const n=q(e);for(const a in t)if({}.hasOwnProperty.call(t,a)&&!(e.properties&&{}.hasOwnProperty.call(e.properties,a)||n&&n.length&&E(e,a,n).length>0)){if(!1===e.additionalProperties)return r("Additional properties are not allowed",{item:a,data:t[a]});if(i){const e=i(t[a]);if(e)return r("Additional properties are invalid",{item:a,cause:e,data:t[a]})}}},patternProperties(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;const a=q(e);if(a&&0!==a.length)for(const i in t){if(!{}.hasOwnProperty.call(t,i))continue;const n=E(e,i,a);if(0!==n.length)for(let e=0;e<n.length;e++){const s=a[n[e]].schemaProp;if("boolean"!=typeof s){if("$validate"in s){const e=s.$validate(t[i]);if(e)return r("Property is invalid",{item:i,cause:e,data:t[i]})}}else if(!1===s)return r("Property is not allowed",{item:i,data:t[i]})}else if(!(!1!==e.additionalProperties||e.properties&&{}.hasOwnProperty.call(e.properties,i)))return r("Additional properties are not allowed",{item:i,data:t[i]})}},propertyNames(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;const a=e.propertyNames;if("boolean"==typeof a){if(!1===a)for(const e in t)if({}.hasOwnProperty.call(t,e))return r("Properties are not allowed",{data:t});return}const i=a&&a.$validate;if("function"==typeof i)for(const e in t){if(!{}.hasOwnProperty.call(t,e))continue;const a=i(e);if(a)return r("Property name is invalid",{item:e,cause:a,data:t[e]})}},dependencies(e,t,r){if(t&&"object"==typeof t&&!Array.isArray(t))for(const a in e.dependencies){if(a in t==0)continue;const i=e.dependencies[a];if(Array.isArray(i)){for(let e=0;e<i.length;e++)if(!(i[e]in t))return r("Dependency is not satisfied",{item:e,data:i[e]});continue}if("boolean"==typeof i){if(i)continue;return r("Dependency is not satisfied",{data:i})}if("string"==typeof i){if(i in t)continue;return r("Dependency is not satisfied",{data:i})}const n=i.$validate(t);if(n)return r("Dependency is not satisfied",{cause:n,data:t})}},then:!1,else:!1,default:!1,definitions:!1,$id:!1,$schema:!1,title:!1,description:!1,$comment:!1,examples:!1,contentMediaType:!1,contentEncoding:!1,discriminator:!1,nullable:!1},...V,...{minLength(e,t,r){if(!("string"!=typeof t||t.length>=e.minLength))return r("Value is shorter than the minimum length",{data:t})},maxLength(e,t,r){if(!("string"!=typeof t||t.length<=e.maxLength))return r("Value is longer than the maximum length",{data:t})},pattern(e,t,r){if("string"!=typeof t)return;let a=e._patternMatch,i=e._patternMatchCache;if(!a)try{const t=S(e.pattern);a=t instanceof RegExp?e=>t.test(e):t,Object.defineProperty(e,"_patternMatch",{value:a,enumerable:!1,configurable:!1,writable:!1})}catch(e){return r("Invalid regular expression",{data:t,cause:e})}if(i){if(i.has(t)){if(i.get(t))return;return r("Value does not match the pattern",{data:t})}}else i=new Map,Object.defineProperty(e,"_patternMatchCache",{value:i,enumerable:!1,configurable:!1,writable:!1});const n=a(t);return i.size<512&&i.set(t,n),n?void 0:r("Value does not match the pattern",{data:t})},format(e,t,r,a){if("string"!=typeof t)return;let i=e._formatValidate,n=e._formatResultCacheEnabled,s=e._formatResultCache;if(void 0===i&&(i=a.getFormat(e.format),Object.defineProperty(e,"_formatValidate",{value:i,enumerable:!1,configurable:!1,writable:!1})),!i)return;if(void 0===n&&(n=a.isDefaultFormatValidator(e.format,i),Object.defineProperty(e,"_formatResultCacheEnabled",{value:n,enumerable:!1,configurable:!1,writable:!1})),!n){if(i(t))return;return r("Value does not match the format",{data:t})}if(s){if(s.has(t)){if(s.get(t))return;return r("Value does not match the format",{data:t})}}else s=new Map,Object.defineProperty(e,"_formatResultCache",{value:s,enumerable:!1,configurable:!1,writable:!1});const o=i(t);return s.size<512&&s.set(t,o),o?void 0:r("Value does not match the format",{data:t})}},...x,...{enum(e,t,r){let a=e._enumCache;if(!a){const t=new Set,r=[],i=e.enum;for(let e=0;e<i.length;e++){const a=i[e];null!==a&&"object"==typeof a?r.push(a):t.add(a)}a={primitiveSet:t,objectValues:r},Object.defineProperty(e,"_enumCache",{value:a,enumerable:!1,configurable:!1,writable:!1})}if("number"==typeof t&&Number.isNaN(t)||!a.primitiveSet.has(t)){if(null!==t&&"object"==typeof t)for(let e=0;e<a.objectValues.length;e++)if(!O(a.objectValues[e],t))return;return r("Value is not one of the allowed values",{data:t})}},allOf(e,t,r){const a=N(e,"allOf");if(1===a.length){const e=a[0];if("validate"===e.kind){const a=e.validate(t);return a?r("Value is not valid",{cause:a,data:t}):void 0}if("alwaysValid"===e.kind)return;return"alwaysInvalid"===e.kind||t!==e.value?r("Value is not valid",{data:t}):void 0}for(let e=0;e<a.length;e++){const i=a[e];if("validate"!==i.kind){if("alwaysValid"!==i.kind){if("alwaysInvalid"===i.kind)return r("Value is not valid",{data:t});if(t!==i.value)return r("Value is not valid",{data:t})}}else{const e=i.validate(t);if(e)return r("Value is not valid",{cause:e,data:t})}}},anyOf(e,t,r){const a=N(e,"anyOf");if(1===a.length){const e=a[0];if("validate"===e.kind){if(!e.validate(t))return;return r("Value is not valid",{data:t})}if("alwaysValid"===e.kind)return;if("alwaysInvalid"===e.kind)return r("Value is not valid",{data:t});if(t===e.value)return;return r("Value is not valid",{data:t})}for(let e=0;e<a.length;e++){const r=a[e];if("validate"!==r.kind){if("alwaysValid"===r.kind)return;if("alwaysInvalid"!==r.kind&&t===r.value)return}else if(!r.validate(t))return}return r("Value is not valid",{data:t})},oneOf(e,t,r){const a=N(e,"oneOf");if(1===a.length){const e=a[0];if("validate"===e.kind){if(!e.validate(t))return;return r("Value is not valid",{data:t})}if("alwaysValid"===e.kind)return;if("alwaysInvalid"===e.kind)return r("Value is not valid",{data:t});if(t===e.value)return;return r("Value is not valid",{data:t})}let i=0;for(let e=0;e<a.length;e++){const n=a[e];let s=!1;if(s="validate"===n.kind?!n.validate(t):"alwaysValid"===n.kind||"alwaysInvalid"!==n.kind&&t===n.value,s&&(i++,i>1))return r("Value is not valid",{data:t})}if(1!==i)return r("Value is not valid",{data:t})},const(e,t,r){if(t!==e.const&&!(t&&"object"==typeof t&&!Array.isArray(t)&&e.const&&"object"==typeof e.const&&!Array.isArray(e.const)&&!O(t,e.const)||Array.isArray(t)&&Array.isArray(e.const)&&!O(t,e.const)))return r("Value is not valid",{data:t})},if(e,t){if("then"in e!=0||"else"in e!=0)if("boolean"!=typeof e.if){if(a(e.if))return e.if.$validate(t)?a(e.else)?e.else.$validate(t):void 0:a(e.then)?e.then.$validate(t):void 0}else if(e.if){if(a(e.then))return e.then.$validate(t)}else if(a(e.else))return e.else.$validate(t)},not:(e,t,r)=>"boolean"==typeof e.not?e.not?r("Value is not valid",{data:t}):void 0:e.not&&"object"==typeof e.not&&!Array.isArray(e.not)&&"$validate"in e.not&&e.not.$validate(t)?void 0:r("Value is not valid",{data:t}),$ref(e,t,r,a){if(e._resolvedRef)return e.$validate!==e._resolvedRef&&(e.$validate=e._resolvedRef),e._resolvedRef(t);const i=e.$ref;let n=a.getSchemaRef(i);return n||(n=a.getSchemaById(i)),n?n.$validate?(e._resolvedRef=n.$validate,e.$validate=e._resolvedRef,e._resolvedRef(t)):void 0:r(`Missing reference: ${i}`)}}},F={SchemaShield:class{types={};formats={};keywords={};immutable=!1;rootSchema=null;idRegistry=new Map;failFast=!0;constructor({immutable:e=!1,failFast:t=!0}={}){this.immutable=e,this.failFast=t;for(const[e,t]of Object.entries(w))t&&this.addType(e,t);for(const[e,t]of Object.entries(z))this.addKeyword(e,t);for(const[e,t]of Object.entries(A))t&&this.addFormat(e,t)}addType(t,r,a=!1){if(this.types[t]&&!a)throw new e(`Type "${t}" already exists`);this.types[t]=r}getType(e){return this.types[e]}addFormat(t,r,a=!1){if(this.formats[t]&&!a)throw new e(`Format "${t}" already exists`);this.formats[t]=r}getFormat(e){return this.formats[e]}isDefaultFormatValidator(e,t){return A[e]===t}addKeyword(t,r,a=!1){if(this.keywords[t]&&!a)throw new e(`Keyword "${t}" already exists`);this.keywords[t]=r}getKeyword(e){return this.keywords[e]}getSchemaRef(e){if(this.rootSchema)return((e,t)=>{if(!t||"#"===t)return e;if(t.startsWith("#/")){const r=t.split("/").slice(1);let a=e;for(const e of r){const t=decodeURIComponent(e).replace(/~1/g,"/").replace(/~0/g,"~");if(!a||"object"!=typeof a||!(t in a))return;a=a[t]}return a}if(!t.includes("#")){if(e.definitions&&e.definitions[t])return e.definitions[t];if(e.defs&&e.defs[t])return e.defs[t];if(e.$id&&"string"==typeof e.$id&&(e.$id===t||e.$id.endsWith("/"+t)))return e}})(this.rootSchema,e)}getSchemaById(e){return this.idRegistry.get(e)}compile(t){this.idRegistry.clear();const a=this.compileSchema(t);if(this.rootSchema=a,!0===a._hasRef&&this.linkReferences(a),!a.$validate)if(!1===t){const e=r("oneOf",a,this.failFast);a.$validate=i("Validate_False",t=>e("Value is not valid",{data:t}))}else if(!0===t)a.$validate=i("Validate_Any",()=>{});else{if(!1===this.isSchemaLike(t))throw new e("Invalid schema");a.$validate=i("Validate_Any",()=>{})}const n=e=>{this.rootSchema=a;const t=this.immutable?_(e):e,r=a.$validate(t);return r?{data:t,error:r,valid:!1}:{data:t,error:null,valid:!0}};return n.compiledSchema=a,n}isPlainObject(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}isTrivialAlwaysValidSubschema(e){return!0===e||this.isPlainObject(e)&&0===Object.keys(e).length}shallowArrayEquals(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}flattenAssociativeBranches(e,t){const r=[];for(let a=0;a<t.length;a++){const i=t[a];if(this.isPlainObject(i)&&1===Object.keys(i).length&&Array.isArray(i[e])){const t=this.flattenAssociativeBranches(e,i[e]);for(let e=0;e<t.length;e++)r.push(t[e])}else r.push(i)}return r}flattenSingleWrapperOneOf(e){let t=e;for(;1===t.length;){const e=t[0];if(!this.isPlainObject(e)||1!==Object.keys(e).length||!Array.isArray(e.oneOf))break;t=e.oneOf}return t}normalizeSchemaForCompile(e){let t=e;const r=Object.keys(e),a=e=>1===r.length&&r[0]===e,i=(r,a)=>{t===e&&(t={...e}),t[r]=a};if(Array.isArray(e.allOf)){const t=this.flattenAssociativeBranches("allOf",e.allOf).filter(e=>!(this.isPlainObject(e)&&0===Object.keys(e).length));if(a("allOf")&&1===t.length&&this.isPlainObject(t[0]))return t[0];this.shallowArrayEquals(t,e.allOf)||i("allOf",t)}if(Array.isArray(e.anyOf)){const t=this.flattenAssociativeBranches("anyOf",e.anyOf);if(a("anyOf")&&1===t.length&&this.isPlainObject(t[0]))return t[0];this.shallowArrayEquals(t,e.anyOf)||i("anyOf",t)}if(Array.isArray(e.oneOf)){const t=this.flattenSingleWrapperOneOf(e.oneOf);if(a("oneOf")&&1===t.length&&this.isPlainObject(t[0]))return t[0];this.shallowArrayEquals(t,e.oneOf)||i("oneOf",t)}return t}markSchemaHasRef(e){!0!==e._hasRef&&Object.defineProperty(e,"_hasRef",{value:!0,enumerable:!1,configurable:!1,writable:!1})}shouldSkipKeyword(e,t){const r=e[t];switch(t){case"required":return Array.isArray(r)&&0===r.length;case"uniqueItems":return!1===r;case"properties":case"patternProperties":case"dependencies":return this.isPlainObject(r)&&0===Object.keys(r).length;case"propertyNames":case"items":return!0===r;case"additionalProperties":return!0===r||!1===r&&this.isPlainObject(e.patternProperties)&&Object.keys(e.patternProperties).length>0;case"additionalItems":return!0===r||!Array.isArray(e.items);case"allOf":if(!Array.isArray(r))return!1;if(0===r.length)return!0;for(let e=0;e<r.length;e++)if(!this.isTrivialAlwaysValidSubschema(r[e]))return!1;return!0;case"anyOf":if(!Array.isArray(r))return!1;for(let e=0;e<r.length;e++)if(this.isTrivialAlwaysValidSubschema(r[e]))return!0;return!1;default:return!1}}hasRequiredDefaults(e){const t=e.properties;if(!this.isPlainObject(t))return!1;const r=Object.keys(t);for(let e=0;e<r.length;e++){const a=t[r[e]];if(this.isPlainObject(a)&&"default"in a)return!0}return!1}isDefaultTypeValidator(e,t){return w[e]===t}compileSchema(e){e&&"object"==typeof e&&!Array.isArray(e)||(e=!0===e?{anyOf:[{}]}:!1===e?{oneOf:[]}:{oneOf:[e]});const t=_(e=this.normalizeSchemaForCompile(e));let a=!1;if("string"==typeof e.$id&&this.idRegistry.set(e.$id,t),"$ref"in e){a=!0;const n=this.getKeyword("$ref");if(n){const a=r("$ref",e.$ref,this.failFast);t.$validate=i("Validate_Reference",e=>n(t,e,a,this))}return this.markSchemaHasRef(t),t}const n=[],s=[];if("type"in e){const t=r("type",e,this.failFast),a=Array.isArray(e.type)?e.type:e.type.split(",").map(e=>e.trim()),o=[],l=[],f=[];let u,c=!0;for(const e of a){const t=this.getType(e);t&&(o.push(t),l.push(t.name),this.isDefaultTypeValidator(e,t)?f.push(e):c=!1)}if(0===o.length)throw r("type",e,this.failFast)("Invalid type for schema",{data:e.type});let d="";if(1===o.length&&c){const e=f[0];switch(d=e,e){case"object":u=e=>{if(null===e||"object"!=typeof e||Array.isArray(e))return t("Invalid type",{data:e})};break;case"array":u=e=>{if(!Array.isArray(e))return t("Invalid type",{data:e})};break;case"string":u=e=>{if("string"!=typeof e)return t("Invalid type",{data:e})};break;case"number":u=e=>{if("number"!=typeof e)return t("Invalid type",{data:e})};break;case"integer":u=e=>{if("number"!=typeof e||!Number.isInteger(e))return t("Invalid type",{data:e})};break;case"boolean":u=e=>{if("boolean"!=typeof e)return t("Invalid type",{data:e})};break;case"null":u=e=>{if(null!==e)return t("Invalid type",{data:e})};break;default:{const e=o[0];u=r=>{if(!e(r))return t("Invalid type",{data:r})}}}}else if(o.length>1&&c){d=f.join("_OR_");const e=f.includes("object"),r=f.includes("array"),a=f.includes("string"),i=f.includes("number"),n=f.includes("integer"),s=f.includes("boolean"),o=f.includes("null");u=l=>{const f=typeof l;if("number"===f){if(i||n&&Number.isInteger(l))return;return t("Invalid type",{data:l})}if("string"===f){if(a)return;return t("Invalid type",{data:l})}if("boolean"===f){if(s)return;return t("Invalid type",{data:l})}if("object"===f){if(null===l){if(o)return;return t("Invalid type",{data:l})}if(Array.isArray(l)){if(r)return;return t("Invalid type",{data:l})}if(e)return;return t("Invalid type",{data:l})}return t("Invalid type",{data:l})}}else if(1===o.length){d=l[0];const e=o[0];u=r=>{if(!e(r))return t("Invalid type",{data:r})}}else d=l.join("_OR_"),u=e=>{for(let t=0;t<o.length;t++)if(o[t](e))return;return t("Invalid type",{data:e})};n.push({name:d,validate:i(d,u)}),s.push(d)}const{type:o,$id:l,$ref:f,$validate:u,required:c,...d}=e,h=c?this.hasRequiredDefaults(e)?[...Object.keys(d),"required"]:["required",...Object.keys(d)]:Object.keys(d);for(const a of h){const o=this.getKeyword(a);if(!o)continue;if(this.shouldSkipKeyword(e,a))continue;const l=r(a,e[a],this.failFast),f=o.name||a;n.push({name:f,validate:i(f,e=>o(t,e,l,this))}),s.push(f)}const y=["enum","const","default","examples"];for(const r of h)if(!y.includes(r))if(!e[r]||"object"!=typeof e[r]||Array.isArray(e[r])){if(Array.isArray(e[r]))for(let i=0;i<e[r].length;i++)if(this.isSchemaLike(e[r][i])){const n=this.compileSchema(e[r][i]);!0===n._hasRef&&(a=!0),t[r][i]=n}}else{if("properties"===r){for(const i of Object.keys(e[r])){const n=this.compileSchema(e[r][i]);!0===n._hasRef&&(a=!0),t[r][i]=n}continue}const i=this.compileSchema(e[r]);!0===i._hasRef&&(a=!0),t[r]=i}if(a&&this.markSchemaHasRef(t),0===n.length)return t;if(1===n.length){const e=n[0];t.$validate=i(e.name,e.validate)}else{const e="Validate_"+s.join("_AND_"),r=e=>{for(let t=0;t<n.length;t++){const r=n[t].validate(e);if(r)return r}};t.$validate=i(e,r)}return t}isSchemaLike(e){if(e&&"object"==typeof e&&!Array.isArray(e)){if("type"in e)return!0;for(let t in e)if(t in this.keywords)return!0}return!1}linkReferences(e){const t=[e];for(;t.length>0;){const e=t.pop();if(e&&"object"==typeof e){if("string"==typeof e.$ref&&"function"==typeof e.$validate&&"Validate_Reference"===e.$validate.name){const t=e.$ref;let a=this.getSchemaRef(t);if(void 0===a&&(a=this.getSchemaById(t)),"boolean"==typeof a){if(!0===a)e.$validate=i("Validate_Ref_True",()=>{});else{const t=r("$ref",e,this.failFast);e.$validate=i("Validate_Ref_False",e=>t("Value is not valid"))}continue}a&&"function"==typeof a.$validate&&(e.$validate=a.$validate)}for(const r in e){const a=e[r];if(a)if(Array.isArray(a))for(let e=0;e<a.length;e++){const r=a[e];r&&"object"==typeof r&&t.push(r)}else"object"==typeof a&&t.push(a)}}}}},ValidationError:e,deepClone:_};"undefined"!=typeof module?module.exports=F:self.SchemaShield=F})();//# sourceMappingURL=index.min.js.map
1
+ (()=>{var e={}.hasOwnProperty,t=(()=>{}).call.bind(e);function r(e,t,r){if(!Reflect.defineProperty(e,t,r))throw new TypeError(`Cannot define property "${String(t)}"`);return e}function n(e,r){return t(e,r)}var i=class extends Error{code;message;item;keyword;cause;schemaPath="";instancePath="";data;schema;constructor(e){super(e),this.message=e}getCause(){let e=this,t="#",r="#";const n=new Set;for(;!n.has(e);){n.add(e);let a=`${t}/${e.keyword}`,o=r;if(void 0!==e.item&&("string"==typeof e.item&&e.schema&&"object"==typeof e.schema&&e.item in e.schema&&(a+=`/${s(e.item)}`),o+=`/${s(e.item)}`),e.schemaPath=a,e.instancePath=o,!(e.cause instanceof i)||n.has(e.cause))return e;t=a,r=o,e=e.cause}return e}getTree(){this.getCause();let e,t,r=this;const n=new Set;for(;r&&!n.has(r);){n.add(r);const a={message:r.message,keyword:r.keyword,item:r.item,schemaPath:r.schemaPath,instancePath:r.instancePath,data:r.data};e?t&&(t.cause=a):e=a,t=a,r=r.cause instanceof i?r.cause:void 0}return e}getPath(){const e=this.getCause();return{schemaPath:e.schemaPath,instancePath:e.instancePath}}},a=()=>!0;function o(e,t,r){if(r)return a;const n=new i(`Invalid ${e}`);return n.keyword=e,n.schema=t,u(`defineError_${e}`,(e,t={})=>(n.message=e,n.code=t.code,n.item=t.item,t.cause!==n&&(n.cause=t.cause&&!0!==t.cause?t.cause:void 0),n.data=t.data,n))}function s(e){return String(e).replace(/~/g,"~0").replace(/\//g,"~1")}function l(e){return!!e&&"object"==typeof e&&!Array.isArray(e)&&"$validate"in e}function u(e,t){return r(t,"name",{value:e})}function f(e,t){if(!t||"#"===t)return e;if(t.startsWith("#/")){const r=t.split("/").slice(1);let n=e;for(const e of r){const t=decodeURIComponent(e).replace(/~1/g,"/").replace(/~0/g,"~");if(!n||"object"!=typeof n||!(t in n))return;n=n[t]}return n}if(!t.includes("#")){if(e.definitions&&e.definitions[t])return e.definitions[t];if(e.defs&&e.defs[t])return e.defs[t];if(e.$id&&"string"==typeof e.$id&&(e.$id===t||e.$id.endsWith("/"+t)))return e}}var c=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,d=/^P(?!$)((\d+Y)?(\d+M)?(\d+W)?(\d+D)?)(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,h=/^[a-zA-Z][a-zA-Z0-9+\-.]*:[^\s]*$/,p=/^(?!\.)(?!.*\.$)[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,20}(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,21}){0,2}@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,60}[a-z0-9])?){0,3}$/i,y=/^[a-z0-9][a-z0-9-]{0,62}(?:\.[a-z0-9][a-z0-9-]{0,62})*[a-z0-9]$/i,m=/^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)(\.\d+)?(Z|([+-])([01]\d|2[0-3]):([0-5]\d))$/,v=/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#((?![^#]*\\)[^#]*))?/i,g=/^[a-zA-Z][a-zA-Z0-9+\-.]*:[^\s]*$/,b=/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#((?![^#]*\\)[^#]*))?/i,A=/^[^@\s]+@[^@\s]+\.[^@\s]+$/,w=/^[^\s!@#$%^&*()_+\=\[\]{};':"\\|,<>\/?]+$/,$=[31,28,31,30,31,30,31,31,30,31,30,31];function O(e,t){const r=e.charCodeAt(t)-48,n=e.charCodeAt(t+1)-48;return r<0||r>9||n<0||n>9?-1:10*r+n}function k(e,t){const r=e.charCodeAt(t)-48,n=e.charCodeAt(t+1)-48,i=e.charCodeAt(t+2)-48,a=e.charCodeAt(t+3)-48;return r<0||r>9||n<0||n>9||i<0||i>9||a<0||a>9?-1:1e3*r+100*n+10*i+a}function x(e,t,r){let n=0,i=t;for(let a=t;a<=r;a++){if(a!==r&&46!==e.charCodeAt(a))continue;const t=a-i;if(t<1||t>3)return!1;if(t>1&&48===e.charCodeAt(i))return!1;let o=0;for(let t=i;t<a;t++){const r=e.charCodeAt(t)-48;if(r<0||r>9)return!1;o=10*o+r}if(o>255)return!1;n++,i=a+1}return 4===n}function j(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}var C={"date-time"(e){const t=e.length;if(t<19)return!1;if(45!==e.charCodeAt(4)||45!==e.charCodeAt(7)||58!==e.charCodeAt(13)||58!==e.charCodeAt(16))return!1;const r=e.charCodeAt(10);if(84!==r&&116!==r)return!1;const n=k(e,0),i=O(e,5),a=O(e,8),o=O(e,11),s=O(e,14),l=O(e,17);if(n<0||i<0||a<0||o<0||s<0||l<0)return!1;if(o>23||s>59||l>60)return!1;let u=19,f=null,c=0,d=0;if(u<t&&46===e.charCodeAt(u)){u++;const r=u;for(;u<t&&(h=e.charCodeAt(u))>=48&&h<=57;)u++;if(u===r)return!1}var h;if(u<t){const r=e.charCodeAt(u);if(90===r||122===r)u++;else{if(43!==r&&45!==r)return!1;if(f=43===r?"+":"-",u+6>t||58!==e.charCodeAt(u+3))return!1;if(c=O(e,u+1),d=O(e,u+4),c<0||d<0||c>23||d>59)return!1;u+=6}}if(u!==t)return!1;if(i<1||i>12)return!1;if(a<1)return!1;const p=2===i?n%4!=0||n%100==0&&n%400!=0?28:29:$[i-1];if(!p||a>p)return!1;if(60===l){let e=60*o+s;if(f){const t=60*c+d;e+="+"===f?-t:t,e%=1440,e<0&&(e+=1440)}if(1439!==e)return!1}return!0},uri(e){return h.test(e)&&(e=>{for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(92===r)return!1;if(37===r){if(t+2>=e.length||!j(e.charCodeAt(t+1))||!j(e.charCodeAt(t+2)))return!1;t+=2}}return!0})(e)},email(e){return p.test(e)},ipv4(e){return(e=>x(e,0,e.length))(e)},ipv6(e){return(e=>{const t=e.length;if(0===t)return!1;let r=!1,n=!1,i=0,a=0;for(;a<t;){if(58===e.charCodeAt(a)){if(r=!0,a+1<t&&58===e.charCodeAt(a+1)){if(n)return!1;if(n=!0,a+=2,a===t)break;continue}return!1}const o=a;let s=0;for(;a<t&&j(e.charCodeAt(a));){if(s++,s>4)return!1;a++}if(0===s)return!1;if(a<t&&46===e.charCodeAt(a))return!!r&&!!x(e,o,t)&&(n?i<6:6===i);if(i++,i>8)return!1;if(a===t)break;if(58!==e.charCodeAt(a))return!1;if(r=!0,a++,a===t)return!1;if(58===e.charCodeAt(a)){if(n)return!1;if(n=!0,a++,a===t)break}}return!!r&&(n?i<8:8===i)})(e)},hostname(e){return y.test(e)},date(e){if(10!==e.length||45!==e.charCodeAt(4)||45!==e.charCodeAt(7))return!1;const t=k(e,0),r=O(e,5),n=O(e,8);if(t<0||r<1||r>12)return!1;if(n<1)return!1;const i=2===r?t%4!=0||t%100==0&&t%400!=0?28:29:$[r-1];return!!i&&n<=i},regex(e){try{return new RegExp(e),!0}catch(e){return!1}},"json-pointer"(e){return(e=>{if(""===e)return!0;if(47!==e.charCodeAt(0))return!1;for(let t=1;t<e.length;t++){if(126!==e.charCodeAt(t))continue;const r=e.charCodeAt(t+1);if(48!==r&&49!==r)return!1;t++}return!0})(e)},"relative-json-pointer"(e){return(e=>{if(0===e.length)return!1;let t=0;for(;t<e.length;){const r=e.charCodeAt(t);if(r<48||r>57)break;t++}if(0===t)return!1;if(t>1&&48===e.charCodeAt(0))return!1;if(t===e.length)return!0;if(35===e.charCodeAt(t))return t+1===e.length;if(47!==e.charCodeAt(t))return!1;for(t+=1;t<e.length;t++){if(126!==e.charCodeAt(t))continue;const r=e.charCodeAt(t+1);if(48!==r&&49!==r)return!1;t++}return!0})(e)},time(e){return m.test(e)},"uri-reference"(e){return!e.includes("\\")&&v.test(e)},"uri-template"(e){return(e=>{for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(125===r)return!1;if(123!==r)continue;const n=e.indexOf("}",t+1);if(-1===n||n===t+1)return!1;t=n}return!0})(e)},duration(e){return d.test(e)},uuid(e){return c.test(e)},iri(e){return g.test(e)},"iri-reference"(e){return!e.includes("\\")&&b.test(e)},"idn-email"(e){return A.test(e)},"idn-hostname"(e){return w.test(e)}},P={object(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)},array(e){return Array.isArray(e)},string(e){return"string"==typeof e},number(e){return"number"==typeof e&&Number.isFinite(e)},integer(e){return"number"==typeof e&&Number.isFinite(e)&&e%1==0},boolean(e){return"boolean"==typeof e},null(e){return null===e},timestamp:!1,int8:!1,uint8:!1,int16:!1,uint16:!1,int32:!1,uint32:!1,float32:!1,float64:!1};function S(e,t){if(Object.is(e,t))return!1;if(Array.isArray(e)){if(!1===Array.isArray(t))return!0;if(e.length!==t.length)return!0;for(let r=0;r<t.length;r++)if(S(e[r],t[r]))return!0;return!1}if("object"==typeof e&&null!==e){if("object"!=typeof t||null===t)return!0;for(const r in t)if(S(e[r],t[r]))return!0;for(const r in e)if(!(r in t)&&S(e[r],void 0))return!0;return!1}return!0}function D(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function _(e){const t=e.length;if(0===t)return"0";const r=e[0],n=e[t-1],i=null===r?"null":typeof r,a=null===n?"null":typeof n;let o="";if(Array.isArray(r)){const e=R(r);o=null===e?`a:${r.length}`:e}let s="";if(Array.isArray(n)){const e=R(n);s=null===e?`a:${n.length}`:e}return`${t}:${i}:${o}:${a}:${s}`}function E(e){const t=Object.keys(e).sort();return`${t.length}:${t.join("")}`}function R(e){const t=e.length;if(0===t)return"a:0";if(!D(e[0])||!D(e[t-1]))return null;let r=`a:${t}:`;for(let n=0;n<t;n++){const t=e[n];if(null!==t)if("string"!=typeof t)if("number"!=typeof t){if("boolean"!=typeof t)return null;r+=t?"b:1;":"b:0;"}else{if(Number.isNaN(t)){r+="n:NaN;";continue}if(Object.is(t,-0)){r+="n:-0;";continue}r+=`n:${t};`}else r+=`s${t.length}:${t};`;else r+="l;"}return r}var M={items(e,t,r){if(!Array.isArray(t))return;const n=e.items,i=t.length;if("boolean"==typeof n)return!1===n&&i>0?r("Array items are not allowed",{data:t}):void 0;if(Array.isArray(n)){const e=n.length,a=e<i?e:i;for(let e=0;e<a;e++){const i=n[e];if("boolean"==typeof i){if(!1===i&&void 0!==t[e])return r("Array item is not allowed",{item:e,data:t[e]});continue}const a=i&&i.$validate;if("function"==typeof a){const n=a(t[e]);if(n)return r("Array item is invalid",{item:e,cause:n,data:t[e]})}}return}const a=n&&n.$validate;if("function"==typeof a)for(let e=0;e<i;e++){const n=a(t[e]);if(n)return r("Array item is invalid",{item:e,cause:n,data:t[e]})}},elements(e,t,r){if(!Array.isArray(t))return;const n=e.elements,i=n&&n.$validate;if("function"==typeof i)for(let e=0;e<t.length;e++){const n=i(t[e]);if(n)return r("Array item is invalid",{item:e,cause:n,data:t[e]})}},minItems(e,t,r){if(Array.isArray(t)&&!(t.length>=e.minItems))return r("Array is too short",{data:t})},maxItems(e,t,r){if(Array.isArray(t)&&!(t.length<=e.maxItems))return r("Array is too long",{data:t})},additionalItems(e,t,n){if(!Array.isArray(t)||!Array.isArray(e.items))return;let i=e._tupleItemsLength;if(void 0===i&&(i=e.items.length,r(e,"_tupleItemsLength",{value:i,enumerable:!1,configurable:!1,writable:!1})),!(t.length<=i)){if(!1===e.additionalItems)return n("Array is too long",{data:t});if(!e.additionalItems||"object"!=typeof e.additionalItems||Array.isArray(e.additionalItems));else if(l(e.additionalItems)){for(let r=i;r<t.length;r++){const i=e.additionalItems.$validate(t[r]);if(i)return n("Array item is invalid",{item:r,cause:i,data:t[r]})}return}}},uniqueItems(e,t,r){if(!Array.isArray(t)||!e.uniqueItems)return;const n=t.length;if(n<=1)return;if(n<=8){for(let e=0;e<n;e++){const i=t[e];for(let a=e+1;a<n;a++){const e=t[a];if(i===e)return r("Array items are not unique",{data:e});if("number"==typeof i&&"number"==typeof e&&Number.isNaN(i)&&Number.isNaN(e))return r("Array items are not unique",{data:e});if(i&&e&&"object"==typeof i&&"object"==typeof e&&!S(i,e))return r("Array items are not unique",{data:e})}}return}let i,a,o,s,l,u=!1;for(let e=0;e<n;e++){const n=t[e];if(D(n)){if(!u){u=!0,i=n;continue}if(a||(a=new Set([i])),a.has(n))return r("Array items are not unique",{data:n});a.add(n);continue}if(!n||"object"!=typeof n)continue;if(Array.isArray(n)){const e=R(n);if(null!==e){if(o||(o=new Set),o.has(e))return r("Array items are not unique",{data:n});o.add(e);continue}s||(s=new Map);const t=_(n);let i=s.get(t);i||(i=[],s.set(t,i));for(let e=0;e<i.length;e++)if(!S(i[e],n))return r("Array items are not unique",{data:n});i.push(n);continue}l||(l=new Map);const f=E(n);let c=l.get(f);c||(c=[],l.set(f,c));for(let e=0;e<c.length;e++)if(!S(c[e],n))return r("Array items are not unique",{data:n});c.push(n)}},contains(e,t,r){if(!Array.isArray(t))return;if("boolean"==typeof e.contains)return e.contains?0===t.length?r("Array must contain at least one item",{data:t}):void 0:r("Array must not contain any items",{data:t});const n=e.contains.$validate;for(let e=0;e<t.length;e++)if(!n(t[e]))return;return r("Array must contain at least one item",{data:t})}};function V(e,t=!1,n=new WeakMap){if(null==e||"object"!=typeof e)return e;const i=e;if(n.has(i))return n.get(i);if(a=i,"function"==typeof structuredClone&&!("undefined"!=typeof Buffer&&a instanceof Buffer)&&(Array.isArray(a)||(e=>{if(!e||"object"!=typeof e)return!1;const t=Reflect.getPrototypeOf(e);return t===Object.prototype||null===t})(a)||a instanceof Date||a instanceof RegExp||a instanceof Map||a instanceof Set||a instanceof ArrayBuffer||ArrayBuffer.isView(a))){const e=structuredClone(i);return n.set(i,e),e}var a;let o;switch(!0){case Array.isArray(i):o=[],n.set(i,o);for(let e=0,r=i.length;e<r;e++)o[e]=V(i[e],t,n);return o;case i instanceof Date:return o=new Date(i.getTime()),n.set(i,o),o;case i instanceof RegExp:return o=new RegExp(i.source,i.flags),n.set(i,o),o;case i instanceof Map:o=new Map,n.set(i,o);for(const[e,r]of i.entries())o.set(V(e,t,n),V(r,t,n));return o;case i instanceof Set:o=new Set,n.set(i,o);for(const e of i.values())o.add(V(e,t,n));return o;case i instanceof ArrayBuffer:return o=i.slice(0),n.set(i,o),o;case ArrayBuffer.isView(i):return o=new i.constructor(i.buffer.slice(0)),n.set(i,o),o;case"undefined"!=typeof Buffer&&i instanceof Buffer:return o=Buffer.from(i),n.set(i,o),o;case i instanceof Error:o=new i.constructor(i.message),n.set(i,o);break;case i instanceof Promise||i instanceof WeakMap||i instanceof WeakSet:return o=i,n.set(i,o),o;case i.constructor&&i.constructor!==Object:if(!t)return o=i,n.set(i,o),o;o=Object.create(Reflect.getPrototypeOf(i)),n.set(i,o);break;default:{o={},n.set(i,o);const e=Reflect.ownKeys(i);for(let r=0,a=e.length;r<a;r++){const a=e[r];o[a]=V(i[a],t,n)}return o}}const s=Object.getOwnPropertyDescriptors(i);for(const e of Reflect.ownKeys(s)){const i=s[e];"value"in i&&(i.value=V(i.value,t,n)),r(o,e,i)}return o}var I={minimum(e,t,r,n){if("number"!=typeof t)return;if(!Number.isFinite(t))return r("Value must be finite",{data:t});let i=e.minimum;return"number"==typeof e.exclusiveMinimum?i=e.exclusiveMinimum+1e-15:!0===e.exclusiveMinimum&&(i+=1e-15),t<i?r("Value is less than the minimum",{data:t}):void 0},maximum(e,t,r,n){if("number"!=typeof t)return;if(!Number.isFinite(t))return r("Value must be finite",{data:t});let i=e.maximum;return"number"==typeof e.exclusiveMaximum?i=e.exclusiveMaximum-1e-15:!0===e.exclusiveMaximum&&(i-=1e-15),t>i?r("Value is greater than the maximum",{data:t}):void 0},multipleOf(e,t,r,n){if("number"!=typeof t)return;if(!Number.isFinite(t)||!Number.isFinite(e.multipleOf)||e.multipleOf<=0)return r("Value must use a finite positive multipleOf",{data:t});const i=t/e.multipleOf;return(Number.isFinite(i)?((e,t,r=1e-15)=>Math.abs(e-t)<=r*Math.max(Math.abs(e),Math.abs(t)))(i,Math.round(i)):t%e.multipleOf==0)?void 0:r("Value is not a multiple of the multipleOf",{data:t})},exclusiveMinimum(e,t,r,n){if("number"==typeof t&&"number"==typeof e.exclusiveMinimum&&!("minimum"in e))return t<=e.exclusiveMinimum+1e-15?r("Value is less than or equal to the exclusiveMinimum"):void 0},exclusiveMaximum(e,t,r,n){if("number"==typeof t&&"number"==typeof e.exclusiveMaximum&&!("maximum"in e))return t>=e.exclusiveMaximum?r("Value is greater than or equal to the exclusiveMaximum",{data:t}):void 0}},N=/[\\.^$*+?()[\]{}|]/;function q(e){return N.test(e)}var T=new Map;function F(e){const t=T.get(e);if(t)return t;let r;if(0===e.length)r=e=>!0;else if(q(e)){const t=e.length;if(t>=2&&"^"===e[0]&&"$"===e[t-1]){const t=e.slice(1,-1);r=q(t)?new RegExp(e,"u"):0===t.length?e=>0===e.length:e=>e===t}else if("^"===e[0]){const t=e.slice(1);r=q(t)?new RegExp(e,"u"):0===t.length?e=>!0:e=>e.startsWith(t)}else if("$"===e[t-1]){const t=e.slice(0,-1);r=q(t)?new RegExp(e,"u"):0===t.length?e=>!0:e=>e.endsWith(t)}else r=new RegExp(e,"u")}else r=t=>t.includes(e);return T.set(e,r),r}var z=512;function W(e){return(t,r,i)=>{if(!r||"object"!=typeof r||Array.isArray(r))return;const a=t._defaultKeys;for(let o=0;o<a.length;o++){const s=a[o],l=n(r,s),u=l?r[s]:void 0;l&&void 0!==u&&(!e||null!==u&&""!==u)||i.setDefault(r,s,V(t.properties[s].default))}}}var B=W(!1),K=W(!0);function U(e){let t=e._patternPropertyEntries;if(t)return t;if(!e.patternProperties||"object"!=typeof e.patternProperties||Array.isArray(e.patternProperties))return;const n=Object.keys(e.patternProperties);t=new Array(n.length);for(let r=0;r<n.length;r++){const i=n[r],a=F(i),o=a instanceof RegExp?e=>a.test(e):a;t[r]={schemaProp:e.patternProperties[i],match:o}}return r(e,"_patternPropertyEntries",{value:t,enumerable:!1,configurable:!1,writable:!1}),t}function L(e,t,n){let i=e._patternKeyMatchIndexCache;if(i){const e=i.get(t);if(e)return e}else i=new Map,r(e,"_patternKeyMatchIndexCache",{value:i,enumerable:!1,configurable:!1,writable:!1});const a=[];for(let e=0;e<n.length;e++)n[e].match(t)&&a.push(e);return i.size<z&&i.set(t,a),a}function G(e,t){const n=`_${t}BranchEntries`;let i=e[n];if(i)return i;const a=e[t]||[];i=[];for(let e=0;e<a.length;e++)i.push((o=a[e])&&"object"==typeof o&&!Array.isArray(o)?"$validate"in o&&"function"==typeof o.$validate?{kind:"validate",validate:o.$validate}:{kind:"alwaysValid"}:"boolean"==typeof o?{kind:o?"alwaysValid":"alwaysInvalid"}:{kind:"literal",value:o});var o;return r(e,n,{value:i,enumerable:!1,configurable:!1,writable:!1}),i}function H(e,t,r){for(let n=0;n<e.length;n++){const i=e[n];if("validate"!==i.kind){if("alwaysValid"!==i.kind&&("alwaysInvalid"===i.kind||t!==i.value))return r("Value is not valid",{data:t})}else{const e=i.validate(t);if(e)return r("Value is not valid",{cause:e,data:t})}}}function J(e,t,r){for(let r=0;r<e.length;r++){const n=e[r];if("validate"!==n.kind){if("alwaysValid"===n.kind)return;if("literal"===n.kind&&t===n.value)return}else if(!n.validate(t))return}return r("Value is not valid",{data:t})}function X(e,t,r){let n=0,i=-1;for(let a=0;a<e.length;a++){const o=e[a];let s=!1;if("validate"===o.kind?s=!o.validate(t):"alwaysValid"===o.kind?s=!0:"literal"===o.kind&&(s=t===o.value),s&&(n++,i=a,n>1))return{error:r("Value is not valid",{data:t}),winnerIndex:-1}}return{error:1===n?void 0:r("Value is not valid",{data:t}),winnerIndex:1===n?i:-1}}function Z(e,t,r,n,i){const a=G(t,e),o=n?a.map((r,i)=>"validate"===r.kind?{kind:"validate",validate:r=>n(t[e][i],r)}:r):a;return i?"allOf"===e?e=>{const t=i.savepoint();try{const n=H(o,e,r);return n&&i.rollback(t),n}catch(e){throw i.rollback(t),e}}:"anyOf"===e?e=>J(o,e,r):e=>{const t=i.savepoint(),n=[],a=o.map((e,t)=>"validate"===e.kind?{kind:"validate",validate(r){const a=i.savepoint(),o=e.validate(r);return o||(n[t]=i.capture(a)),o}}:e);try{const o=X(a,e,r);return o.error?(i.rollback(t),o.error):void i.restore(n[o.winnerIndex]||[])}catch(e){throw i.rollback(t),e}}:"allOf"===e?e=>H(o,e,r):"anyOf"===e?e=>J(o,e,r):e=>X(o,e,r).error}function Y(e,t){let r=0;for(let n=0;n<e.length;n++){const i=e.charCodeAt(n);if(i>=55296&&i<=56319&&n+1<e.length){const t=e.charCodeAt(n+1);t>=56320&&t<=57343&&n++}if(r++,r>=t)return!0}return r>=t}var Q={...{required(e,t,r){if(t&&"object"==typeof t&&!Array.isArray(t))for(let i=0;i<e.required.length;i++){const a=e.required[i];if(!n(t,a))return r("Required property is missing",{item:a,data:t[a]})}},properties(e,t,r,i){if(!t||"object"!=typeof t||Array.isArray(t))return;const a=e._propKeys;for(let i=0;i<a.length;i++){const o=a[i],s=e.properties[o];if(n(t,o))if("boolean"!=typeof s){if(s&&"$validate"in s){const e=s.$validate(t[o]);if(e)return r("Property is invalid",{item:o,cause:e,data:t[o]})}}else if(!1===s)return r("Property is not allowed",{item:o,data:t[o]})}},values(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;const i=e.values,a=i&&i.$validate;if("function"==typeof a)for(const e in t){if(!n(t,e))continue;const i=a(t[e]);if(i)return r("Property is invalid",{item:e,cause:i,data:t[e]})}},maxProperties(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;let i=0;for(const a in t)if(n(t,a)&&(i++,i>e.maxProperties))return r("Too many properties",{data:t})},minProperties(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;let i=0;for(const r in t)if(n(t,r)&&(i++,i>=e.minProperties))return;return r("Too few properties",{data:t})},additionalProperties(e,t,i){if(!t||"object"!=typeof t||Array.isArray(t))return;let a=e._apValidate;void 0===a&&(a=l(e.additionalProperties)?e.additionalProperties.$validate:null,r(e,"_apValidate",{value:a,enumerable:!1,configurable:!1,writable:!1}));const o=U(e);for(const r in t)if(n(t,r)&&!(e.properties&&n(e.properties,r)||o&&o.length&&L(e,r,o).length>0)){if(!1===e.additionalProperties)return i("Additional properties are not allowed",{item:r,data:t[r]});if(a){const e=a(t[r]);if(e)return i("Additional properties are invalid",{item:r,cause:e,data:t[r]})}}},patternProperties(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;const i=U(e);if(i&&0!==i.length)for(const a in t){if(!n(t,a))continue;const o=L(e,a,i);if(0!==o.length)for(let e=0;e<o.length;e++){const n=i[o[e]].schemaProp;if("boolean"!=typeof n){if("$validate"in n){const e=n.$validate(t[a]);if(e)return r("Property is invalid",{item:a,cause:e,data:t[a]})}}else if(!1===n)return r("Property is not allowed",{item:a,data:t[a]})}else if(!(!1!==e.additionalProperties||e.properties&&n(e.properties,a)))return r("Additional properties are not allowed",{item:a,data:t[a]})}},propertyNames(e,t,r){if(!t||"object"!=typeof t||Array.isArray(t))return;const i=e.propertyNames;if("boolean"==typeof i){if(!1===i)for(const e in t)if(n(t,e))return r("Properties are not allowed",{data:t});return}const a=i&&i.$validate;if("function"==typeof a)for(const e in t){if(!n(t,e))continue;const i=a(e);if(i)return r("Property name is invalid",{item:e,cause:i,data:t[e]})}},dependencies(e,t,r){if(t&&"object"==typeof t&&!Array.isArray(t))for(const n in e.dependencies){if(n in t==0)continue;const i=e.dependencies[n];if(Array.isArray(i)){for(let e=0;e<i.length;e++)if(!(i[e]in t))return r("Dependency is not satisfied",{item:e,data:i[e]});continue}if("boolean"==typeof i){if(i)continue;return r("Dependency is not satisfied",{data:i})}if("string"==typeof i){if(i in t)continue;return r("Dependency is not satisfied",{data:i})}const a=i.$validate(t);if(a)return r("Dependency is not satisfied",{cause:a,data:t})}},then:!1,else:!1,default:!1,definitions:!1,$id:!1,$schema:!1,title:!1,description:!1,$comment:!1,examples:!1,contentMediaType:!1,contentEncoding:!1,discriminator:!1,nullable:!1},...M,...{minLength(e,t,r){if("string"!=typeof t)return;const n=t.length,i=e.minLength;return n<i?r("Value is shorter than the minimum length",{data:t}):n-i>=i||Y(t,i)?void 0:r("Value is shorter than the minimum length",{data:t})},maxLength(e,t,r){if("string"!=typeof t)return;const n=t.length,i=e.maxLength;return n<=i?void 0:n-i>i||Y(t,i+1)?r("Value is longer than the maximum length",{data:t}):void 0},pattern(e,t,n){if("string"!=typeof t)return;let i=e._patternMatch,a=e._patternMatchCache;if(!i)try{const t=F(e.pattern);i=t instanceof RegExp?e=>t.test(e):t,r(e,"_patternMatch",{value:i,enumerable:!1,configurable:!1,writable:!1})}catch(e){return n("Invalid regular expression",{data:t,cause:e})}if(a){if(a.has(t)){if(a.get(t))return;return n("Value does not match the pattern",{data:t})}}else a=new Map,r(e,"_patternMatchCache",{value:a,enumerable:!1,configurable:!1,writable:!1});const o=i(t);return a.size<512&&a.set(t,o),o?void 0:n("Value does not match the pattern",{data:t})},format(e,t,n,i){if("string"!=typeof t)return;let a=e._formatValidate,o=e._formatResultCacheEnabled,s=e._formatResultCache;if(void 0===a&&(a=i.getFormat(e.format),r(e,"_formatValidate",{value:a,enumerable:!1,configurable:!1,writable:!1})),!a)return;if(void 0===o&&(o=i.isDefaultFormatValidator(e.format,a),r(e,"_formatResultCacheEnabled",{value:o,enumerable:!1,configurable:!1,writable:!1})),!o){if(a(t))return;return n("Value does not match the format",{data:t})}if(s){if(s.has(t)){if(s.get(t))return;return n("Value does not match the format",{data:t})}}else s=new Map,r(e,"_formatResultCache",{value:s,enumerable:!1,configurable:!1,writable:!1});const l=a(t);return s.size<512&&s.set(t,l),l?void 0:n("Value does not match the format",{data:t})}},...I,...{enum(e,t,n){let i=e._enumCache;if(!i){const t=new Set,n=[],a=e.enum;for(let e=0;e<a.length;e++){const r=a[e];null!==r&&"object"==typeof r?n.push(r):t.add(r)}i={primitiveSet:t,objectValues:n},r(e,"_enumCache",{value:i,enumerable:!1,configurable:!1,writable:!1})}if("number"==typeof t&&Number.isNaN(t)||!i.primitiveSet.has(t)){if(null!==t&&"object"==typeof t)for(let e=0;e<i.objectValues.length;e++)if(!S(i.objectValues[e],t))return;return n("Value is not one of the allowed values",{data:t})}},allOf(e,t,r){return Z("allOf",e,r)(t)},anyOf(e,t,r){return Z("anyOf",e,r)(t)},oneOf(e,t,r){return Z("oneOf",e,r)(t)},const(e,t,r){if(t!==e.const&&!(t&&"object"==typeof t&&!Array.isArray(t)&&e.const&&"object"==typeof e.const&&!Array.isArray(e.const)&&!S(t,e.const)||Array.isArray(t)&&Array.isArray(e.const)&&!S(t,e.const)))return r("Value is not valid",{data:t})},if(e,t){if("then"in e!=0||"else"in e!=0)if("boolean"!=typeof e.if){if(l(e.if))return e.if.$validate(t)?l(e.else)?e.else.$validate(t):void 0:l(e.then)?e.then.$validate(t):void 0}else if(e.if){if(l(e.then))return e.then.$validate(t)}else if(l(e.else))return e.else.$validate(t)},not:(e,t,r)=>"boolean"==typeof e.not?e.not?r("Value is not valid",{data:t}):void 0:e.not&&"object"==typeof e.not&&!Array.isArray(e.not)&&"$validate"in e.not&&e.not.$validate(t)?void 0:r("Value is not valid",{data:t}),$ref(e,t,r){return"function"==typeof e._resolvedRef?e._resolvedRef(t):r(`Missing reference: ${e.$ref}`)}}},ee="schema-shield://local/root",te={object:e=>!(null!==e&&"object"==typeof e&&!Array.isArray(e))||void 0,array:e=>!Array.isArray(e)||void 0,string:e=>"string"!=typeof e||void 0,number:e=>"number"!=typeof e||!Number.isFinite(e)||void 0,integer:e=>"number"!=typeof e||!Number.isFinite(e)||!Number.isInteger(e)||void 0,boolean:e=>"boolean"!=typeof e||void 0,null:e=>null!==e||void 0},re={SchemaShield:class{types={};formats={};keywords={};immutable=!1;useDefaults=!1;rootSchema=null;failFast=!0;maxDepth;validationContexts=[];compileCache=new WeakMap;compilingRequiresContext=!1;compilingMutableSchemas=new WeakSet;constructor({immutable:e=!1,failFast:t=!0,maxDepth:r=128,useDefaults:n=!1}={}){if(!Number.isInteger(r)||r<1||r>256){const e=new i("maxDepth must be an integer from 1 to 256");throw e.code="INVALID_MAX_DEPTH",e.keyword="maxDepth",e}if(!1!==n&&!0!==n&&"empty"!==n){const e=new i('useDefaults must be false, true, or "empty"');throw e.code="INVALID_USE_DEFAULTS",e.keyword="useDefaults",e}this.immutable=e,this.failFast=t,this.maxDepth=r,this.useDefaults=n;for(const[e,t]of Object.entries(P))t&&this.addType(e,t);for(const[e,t]of Object.entries(Q))this.addKeyword(e,t);for(const[e,t]of Object.entries(C))t&&this.addFormat(e,t)}setDefault(e,t,n){const i=this.validationContexts[this.validationContexts.length-1];i&&i.defaults.push({target:e,key:t,descriptor:Reflect.getOwnPropertyDescriptor(e,t)}),r(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0})}#e(){const e=this.validationContexts[this.validationContexts.length-1];return e?e.defaults.length:0}#t(e){const t=this.validationContexts[this.validationContexts.length-1];t&&this.rollbackDefaults(t,e)}#r(e){const t=this.validationContexts[this.validationContexts.length-1];if(!t||t.defaults.length===e)return[];const r=t.defaults.slice(e).map(e=>({...e,value:e.target[e.key]}));return this.rollbackDefaults(t,e),r}#n(e){for(let t=0;t<e.length;t++){const r=e[t];this.setDefault(r.target,r.key,r.value)}}addType(e,t,r=!1){if(this.types[e]&&!r)throw new i(`Type "${e}" already exists`);this.types[e]=t}getType(e){return this.types[e]}addFormat(e,t,r=!1){if(this.formats[e]&&!r)throw new i(`Format "${e}" already exists`);this.formats[e]=t}getFormat(e){return this.formats[e]}isDefaultFormatValidator(e,t){return C[e]===t}addKeyword(e,t,r=!1){if(this.keywords[e]&&!r)throw new i(`Keyword "${e}" already exists`);this.keywords[e]=t}getKeyword(e){return this.keywords[e]}getSchemaRef(e){if(this.rootSchema)return f(this.rootSchema,e)}getSchemaById(e){if(!this.rootSchema)return;const t=[this.rootSchema],r=new WeakSet;for(;t.length>0;){const n=t.pop();if(r.has(n))continue;if(r.add(n),n.$id===e)return n;const i=this.schemaChildren(n);for(let e=0;e<i.length;e++)t.push(i[e])}}depthError(e="Maximum schema depth exceeded"){if(this.failFast)return!0;const t=new i(e);return t.code="MAX_DEPTH_EXCEEDED",t.keyword="maxDepth",t}schemaChildEntries(e){const t=[],r=["properties","patternProperties","definitions","$defs","dependencies"],n=["allOf","anyOf","oneOf","items"],i=["items","additionalItems","additionalProperties","contains","propertyNames","values","elements","not","if","then","else"];for(const n of r){const r=e[n];if(r&&"object"==typeof r&&!Array.isArray(r))for(const e of Object.keys(r)){const i=r[e];i&&"object"==typeof i&&t.push({value:i,pointer:`/${this.escapePointerToken(n)}/${this.escapePointerToken(e)}`})}}for(const r of n){const n=e[r];if(Array.isArray(n))for(let e=0;e<n.length;e++){const i=n[e];i&&"object"==typeof i&&t.push({value:i,pointer:`/${this.escapePointerToken(r)}/${e}`})}}for(const r of i){const n=e[r];n&&"object"==typeof n&&!Array.isArray(n)&&t.push({value:n,pointer:`/${this.escapePointerToken(r)}`})}for(const a of Object.keys(e)){if("enum"===a||"const"===a||"default"===a||"examples"===a||r.includes(a)||n.includes(a)||i.includes(a))continue;const o=this.getKeyword(a),s=e[a];o&&o!==Q[a]&&s&&"object"==typeof s&&t.push({value:s,pointer:`/${this.escapePointerToken(a)}`})}return t}schemaChildren(e){return this.schemaChildEntries(e).map(e=>e.value)}registrySubschemaEntries(e){const t=[],r=["properties","patternProperties","definitions"],n=["allOf","anyOf","oneOf","items"],i=["items","additionalItems","additionalProperties","contains","propertyNames","not","if","then","else"];for(const n of r){const r=e[n];if(r&&"object"==typeof r&&!Array.isArray(r))for(const e of Object.keys(r)){const i=r[e];i&&"object"==typeof i&&!Array.isArray(i)&&t.push({value:i,pointer:`/${this.escapePointerToken(n)}/${this.escapePointerToken(e)}`})}}const a=e.dependencies;if(a&&"object"==typeof a&&!Array.isArray(a))for(const e of Object.keys(a)){const r=a[e];r&&"object"==typeof r&&!Array.isArray(r)&&t.push({value:r,pointer:`/dependencies/${this.escapePointerToken(e)}`})}for(const r of n){const n=e[r];if(Array.isArray(n))for(let e=0;e<n.length;e++){const i=n[e];i&&"object"==typeof i&&!Array.isArray(i)&&t.push({value:i,pointer:`/${this.escapePointerToken(r)}/${e}`})}}for(const r of i){const n=e[r];n&&"object"==typeof n&&!Array.isArray(n)&&t.push({value:n,pointer:`/${this.escapePointerToken(r)}`})}return t}escapePointerToken(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}resolveUri(e,t,r){try{return new URL(e,t).href}catch{const t=new i(`Invalid ${r} URI: ${e}`);throw t.code="$id"===r?"INVALID_SCHEMA_ID":"REFERENCE_NOT_FOUND",t.keyword=r,t}}resourceUri(e){const t=e.indexOf("#");return-1===t?e:e.slice(0,t)}buildReferenceRegistry(e){const t=new Map,r=[],n=new WeakMap;if(!e||"object"!=typeof e||Array.isArray(e))return Object.freeze({aliases:t,positions:Object.freeze(r),positionsByNode:n});const a=(e,r)=>{const n=t.get(e);if(n&&n!==r){const t=new i(`Duplicate schema identity: ${e}`);throw t.code="DUPLICATE_SCHEMA_ID",t.keyword="$id",t}t.set(e,r)};a(ee,e);const o=new WeakSet,s=[{node:e,inheritedBase:ee,resourceRoot:e,pointer:"#"}];for(;s.length>0;){const e=s.pop();if(o.has(e.node))continue;o.add(e.node);let t=e.inheritedBase,i=e.resourceRoot;"string"!=typeof e.node.$id||"$ref"in e.node||(t=this.resolveUri(e.node.$id,e.inheritedBase,"$id"),a(t,e.node),(-1===t.indexOf("#")||t.endsWith("#"))&&(i=e.node,a(this.resourceUri(t),e.node)));const l={source:e.node,baseUri:t,resourceRoot:i,pointer:e.pointer};r.push(l),n.set(e.node,l);const u=this.registrySubschemaEntries(e.node);for(let r=u.length-1;r>=0;r--){const n=u[r];Array.isArray(n.value)||s.push({node:n.value,inheritedBase:t,resourceRoot:i,pointer:`${e.pointer}${n.pointer}`})}}return Object.freeze({aliases:t,positions:Object.freeze(r),positionsByNode:n})}resolveReferenceSource(e,t,r){const n=this.resolveUri(e,t.baseUri,"$ref"),i=r.aliases.get(n);if(i)return i;const a=r.aliases.get(this.resourceUri(n));if(!a)return;const o=n.indexOf("#"),s=-1===o?"":n.slice(o+1);return 0===s.length?a:s.startsWith("/")?f(a,`#${s}`):void 0}analyzeSchema(e,t){if(!e||"object"!=typeof e)return{requiresDepthGuard:!1,requiresMutationJournal:!1,mutableSchemas:new WeakSet};const r=new WeakSet,n=new WeakSet,a=[{value:e,depth:0,exit:!1}];let o=!1,s=!1;for(;a.length>0;){const e=a.pop();if(e.exit){r.delete(e.value),n.add(e.value);continue}if(n.has(e.value))continue;if(r.has(e.value)){const e=new i("Cyclic schema graph is not supported");throw e.code="CYCLIC_SCHEMA_GRAPH",e.keyword="compile",e}if(e.depth>128){const e=new i("Maximum compile depth exceeded");throw e.code="MAX_COMPILE_DEPTH_EXCEEDED",e.keyword="compile",e}e.depth>this.maxDepth&&(o=!0),r.add(e.value),a.push({...e,exit:!0}),!1!==this.useDefaults&&this.hasPropertyDefaults(e.value)&&(s=!0);for(const t of Object.keys(e.value)){const e=this.getKeyword(t);e&&e!==Q[t]&&(o=!0,s=!0)}const t=this.schemaChildren(e.value);for(let r=t.length-1;r>=0;r--)a.push({value:t[r],depth:e.depth+1,exit:!1})}const l=new WeakMap,u=[{value:e,exit:!1}];for(;u.length>0&&!o;){const e=u.pop();if(e.exit){l.set(e.value,2);continue}const r=l.get(e.value);if(1===r){o=!0;break}if(2===r)continue;l.set(e.value,1),u.push({value:e.value,exit:!0});const n=this.schemaChildren(e.value);if("string"==typeof e.value.$ref&&this.getKeyword("$ref")===Q.$ref){const r=t.positionsByNode.get(e.value),i=r?this.resolveReferenceSource(e.value.$ref,r,t):void 0;i&&"object"==typeof i&&n.push(i)}for(let e=n.length-1;e>=0;e--)u.push({value:n[e],exit:!1})}const f=new WeakSet;if(s){const t=[{value:e,exit:!1}],r=new WeakSet;for(;t.length>0;){const e=t.pop();if(e.exit){const t=this.schemaChildren(e.value),r=Object.keys(e.value).some(e=>{const t=this.getKeyword(e);return!!t&&t!==Q[e]});(!1!==this.useDefaults&&this.hasPropertyDefaults(e.value)||r||"string"==typeof e.value.$ref||t.some(e=>f.has(e)))&&f.add(e.value);continue}if(r.has(e.value))continue;r.add(e.value),t.push({value:e.value,exit:!0});const n=this.schemaChildren(e.value);for(let e=n.length-1;e>=0;e--)t.push({value:n[e],exit:!1})}}return{requiresDepthGuard:o,requiresMutationJournal:s,mutableSchemas:f}}compile(e){const t=this.prepareSchema(e),r=t.compiledSchema;if(!t.requiresDepthGuard&&!t.requiresMutationJournal){const e=r.$validate,t=this.immutable?t=>{const r=V(t),n=e(r);return n?{data:r,error:n,valid:!1}:{data:r,error:null,valid:!0}}:t=>{const r=e(t);return r?{data:t,error:r,valid:!1}:{data:t,error:null,valid:!0}};return t.compiledSchema=r,t}return this.createGuardedValidator(r,t.depthGuardState)}prepareSchema(e){const t=this.buildReferenceRegistry(e),n=this.analyzeSchema(e,t);this.compileCache=new WeakMap,this.compilingRequiresContext=n.requiresDepthGuard||n.requiresMutationJournal,this.compilingMutableSchemas=n.mutableSchemas;const a=this.compileSchema(e);this.rootSchema=a;let s=null;if(n.requiresDepthGuard?(s=this.installDepthGuards(a),r(a,"_requiresDepthGuard",{value:!0,enumerable:!1,configurable:!1,writable:!1})):n.requiresMutationJournal&&(s={context:null}),!0===a._hasRef&&this.linkReferences(t),!a.$validate)if(!1===e){const e=o("oneOf",a,this.failFast);a.$validate=u("Validate_False",t=>e("Value is not valid",{data:t}))}else if(!0===e)a.$validate=u("Validate_Any",()=>{});else{if(!1===this.isSchemaLike(e))throw new i("Invalid schema");a.$validate=u("Validate_Any",()=>{})}return{compiledSchema:a,requiresDepthGuard:n.requiresDepthGuard,requiresMutationJournal:n.requiresMutationJournal,depthGuardState:s}}createGuardedValidator(e,t){const r={active:!1,depth:-1,depthExceeded:!1,defaults:[]},n=n=>{this.rootSchema=e;const i=r.active?{active:!1,depth:-1,depthExceeded:!1,defaults:[]}:r;i.active=!0,i.depth=-1,i.depthExceeded=!1,delete i.depthError,i.defaults.length=0,this.validationContexts.push(i);const a=t.context;t.context=i;let o=n;try{o=this.immutable?V(n):n;let t=e.$validate(o);return this.isDepthError(t)&&(this.rollbackDefaults(i,0),t=i.depthError||this.depthError()),t?{data:o,error:t,valid:!1}:{data:o,error:null,valid:!0}}catch(e){throw this.rollbackDefaults(i,0),e}finally{t.context=a,this.validationContexts.pop(),i.active=!1}};return n.compiledSchema=e,n}isPlainObject(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}isTrivialAlwaysValidSubschema(e){return!0===e||this.isPlainObject(e)&&0===Object.keys(e).length}shallowArrayEquals(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}flattenAssociativeBranches(e,t){const r=[];for(let n=0;n<t.length;n++){const i=t[n];if(this.isPlainObject(i)&&1===Object.keys(i).length&&Array.isArray(i[e])){const t=this.flattenAssociativeBranches(e,i[e]);for(let e=0;e<t.length;e++)r.push(t[e])}else r.push(i)}return r}flattenSingleWrapperOneOf(e){let t=e;for(;1===t.length;){const e=t[0];if(!this.isPlainObject(e)||1!==Object.keys(e).length||!Array.isArray(e.oneOf))break;t=e.oneOf}return t}normalizeSchemaForCompile(e){let t=e;const r=Object.keys(e),n=e=>1===r.length&&r[0]===e,i=(r,n)=>{t===e&&(t={...e}),t[r]=n};if(Array.isArray(e.allOf)){const t=this.flattenAssociativeBranches("allOf",e.allOf).filter(e=>!(this.isPlainObject(e)&&0===Object.keys(e).length));if(n("allOf")&&1===t.length&&this.isPlainObject(t[0]))return t[0];this.shallowArrayEquals(t,e.allOf)||i("allOf",t)}if(Array.isArray(e.anyOf)){const t=this.flattenAssociativeBranches("anyOf",e.anyOf);if(n("anyOf")&&1===t.length&&this.isPlainObject(t[0]))return t[0];this.shallowArrayEquals(t,e.anyOf)||i("anyOf",t)}if(Array.isArray(e.oneOf)){const t=this.flattenSingleWrapperOneOf(e.oneOf);if(n("oneOf")&&1===t.length&&this.isPlainObject(t[0]))return t[0];this.shallowArrayEquals(t,e.oneOf)||i("oneOf",t)}return t}markSchemaHasRef(e){!0!==e._hasRef&&r(e,"_hasRef",{value:!0,enumerable:!1,configurable:!1,writable:!1})}shouldSkipKeyword(e,t){const r=e[t];switch(t){case"required":return Array.isArray(r)&&0===r.length;case"uniqueItems":return!1===r;case"properties":case"patternProperties":case"dependencies":return this.isPlainObject(r)&&0===Object.keys(r).length;case"propertyNames":case"items":return!0===r;case"additionalProperties":return!0===r||!1===r&&this.isPlainObject(e.patternProperties)&&Object.keys(e.patternProperties).length>0;case"additionalItems":return!0===r||!Array.isArray(e.items);case"allOf":if(!Array.isArray(r))return!1;if(0===r.length)return!0;for(let e=0;e<r.length;e++)if(!this.isTrivialAlwaysValidSubschema(r[e]))return!1;return!0;case"anyOf":if(!Array.isArray(r))return!1;for(let e=0;e<r.length;e++)if(this.isTrivialAlwaysValidSubschema(r[e]))return!0;return!1;default:return!1}}hasPropertyDefaults(e){const t=e.properties;if(!this.isPlainObject(t))return!1;const r=Object.keys(t);for(let e=0;e<r.length;e++){const i=t[r[e]];if(this.isPlainObject(i)&&n(i,"default"))return!0}return!1}isDefaultTypeValidator(e,t){return P[e]===t}rollbackDefaults(e,t){for(let n=e.defaults.length-1;n>=t;n--){const t=e.defaults[n];t.descriptor?r(t.target,t.key,t.descriptor):delete t.target[t.key]}e.defaults.length=t}isDepthError(e){const t=this.validationContexts[this.validationContexts.length-1];return!!t?.depthExceeded||e instanceof i&&"MAX_DEPTH_EXCEEDED"===e.getCause().code}validateSubschema(e,t){if(!e||"function"!=typeof e.$validate)return;const r=this.validationContexts[this.validationContexts.length-1],n=r?.defaults.length||0;try{const i=e.$validate(t);return i&&r&&this.rollbackDefaults(r,n),i}catch(e){throw r&&this.rollbackDefaults(r,n),e}}installDepthGuards(e){const t={context:null},r=[e],n=new WeakSet;for(;r.length>0;){const e=r.pop();if(!e||"object"!=typeof e||n.has(e))continue;if(n.add(e),"function"==typeof e.$validate){const r=e.$validate;e.$validate=u(r.name,e=>{const n=t.context;if(!n)return r(e);const i=n.depth+1;if(i>this.maxDepth)return n.depthExceeded=!0,n.depthError||(n.depthError=this.depthError()),n.depthError;n.depth=i;try{return r(e)}finally{n.depth--}})}const i=this.schemaChildren(e);for(const e of i)r.push(e)}return t}compileSchema(e){if(!0===e)return{$validate:u("Validate_True",()=>{})};if(!1===e){const e={},t=o("oneOf",e,this.failFast);return e.$validate=u("Validate_False",e=>t("Value is not valid",{data:e})),e}const t=e&&"object"==typeof e&&!Array.isArray(e)?e:null,a=null!==t&&this.compilingMutableSchemas.has(t);if(t){const e=this.compileCache.get(t);if(e)return e}e&&"object"==typeof e&&!Array.isArray(e)||(e={oneOf:[e]});const s=V(e=this.normalizeSchemaForCompile(e));t&&this.compileCache.set(t,s),a&&r(s,"_canApplyDefaults",{value:!0,enumerable:!1,configurable:!1,writable:!1});const l=this.compilingRequiresContext?this.validateSubschema.bind(this):void 0;let f=!1;if("$ref"in e){f=!0;const t=this.getKeyword("$ref");if(t){const r=o("$ref",e.$ref,this.failFast),n=t===Q.$ref;s.$validate=u(n?"Validate_Reference":t.name||"$ref",e=>t(s,e,r,this,l)),n||(f=!1)}for(const t of["definitions","$defs"]){const r=e[t];if(!r||"object"!=typeof r)continue;const n={};for(const e of Object.keys(r))n[e]=this.compileSchema(r[e]);s[t]=n}return f&&this.markSchemaHasRef(s),s}const c=[],d=[],h=[];if(!1!==this.useDefaults&&this.getKeyword("properties")===Q.properties&&this.hasPropertyDefaults(e)){const e="empty"===this.useDefaults?K:B;c.push({name:e.name,validate:u(e.name,t=>e(s,t,this))}),d.push(e.name)}if("type"in e){const t=o("type",e,this.failFast),r=Array.isArray(e.type)?e.type:e.type.split(",").map(e=>e.trim()),n=[],i=[],a=[];let s,l=!0;for(const e of r){const t=this.getType(e);t&&(n.push(t),i.push(t.name),this.isDefaultTypeValidator(e,t)?a.push(e):l=!1)}if(0===n.length)throw o("type",e,this.failFast)("Invalid type for schema",{data:e.type});let f="";if(1===n.length&&l){const e=a[0];f=e,s=this.failFast&&te[e]?te[e]:(p=t,y=n[0],e=>{if(!y(e))return p("Invalid type",{data:e})})}else if(n.length>1&&l){f=a.join("_OR_");const e=a.includes("object"),r=a.includes("array"),n=a.includes("string"),i=a.includes("number"),o=a.includes("integer"),l=a.includes("boolean"),u=a.includes("null");s=a=>{const s=typeof a;if("number"===s){if(!Number.isFinite(a))return t("Invalid type",{data:a});if(i||o&&Number.isInteger(a))return;return t("Invalid type",{data:a})}if("string"===s){if(n)return;return t("Invalid type",{data:a})}if("boolean"===s){if(l)return;return t("Invalid type",{data:a})}if("object"===s){if(null===a){if(u)return;return t("Invalid type",{data:a})}if(Array.isArray(a)){if(r)return;return t("Invalid type",{data:a})}if(e)return;return t("Invalid type",{data:a})}return t("Invalid type",{data:a})}}else if(1===n.length){f=i[0];const e=n[0];s=r=>{if(!e(r))return t("Invalid type",{data:r})}}else f=i.join("_OR_"),s=e=>{for(let t=0;t<n.length;t++)if(n[t](e))return;return t("Invalid type",{data:e})};c.push({name:f,validate:u(f,s)}),d.push(f)}var p,y;const{type:m,$id:v,$ref:g,$validate:b,required:A,...w}=e,$=Object.keys(w),O=A?["required",...$]:$;for(const t of O){const r=this.getKeyword(t);if(!r)continue;if(this.shouldSkipKeyword(e,t))continue;const n=o(t,e[t],this.failFast),a=r.name||t;if(("allOf"===t||"anyOf"===t||"oneOf"===t)&&r===Q[t]){const e={name:a,validate(){throw new i("Combinator validator was not prepared")}};c.push(e),h.push({item:e,key:t,defineError:n}),d.push(a);continue}const f=l?e=>r(s,e,n,this,l):e=>r(s,e,n,this);c.push({name:a,validate:u(a,f)}),d.push(a)}const k=["enum","const","default","examples"];for(const t of O)if(!k.includes(t))if(!e[t]||"object"!=typeof e[t]||Array.isArray(e[t])){if(Array.isArray(e[t]))for(let r=0;r<e[t].length;r++)if(this.isSchemaLike(e[t][r])){const n=this.compileSchema(e[t][r]);!0===n._hasRef&&(f=!0),s[t][r]=n}}else{if("properties"===t){for(const r of Object.keys(e[t])){const n=this.compileSchema(e[t][r]);!0===n._hasRef&&(f=!0),s[t][r]=n}continue}const r=this.compileSchema(e[t]);!0===r._hasRef&&(f=!0),s[t]=r}if(this.isPlainObject(e.properties)&&r(s,"_propKeys",{value:Object.keys(e.properties),enumerable:!1,configurable:!1,writable:!1}),!1!==this.useDefaults&&this.isPlainObject(e.properties)&&this.hasPropertyDefaults(e)){const t=Object.keys(e.properties).filter(t=>{const r=e.properties[t];return r&&"object"==typeof r&&!Array.isArray(r)&&n(r,"default")});t.length>0&&r(s,"_defaultKeys",{value:t,enumerable:!1,configurable:!1,writable:!1})}(e=>{Array.isArray(e.allOf)&&G(e,"allOf"),Array.isArray(e.anyOf)&&G(e,"anyOf"),Array.isArray(e.oneOf)&&G(e,"oneOf")})(s);for(let e=0;e<h.length;e++){const t=h[e],r=!0===s._canApplyDefaults?{savepoint:()=>this.#e(),rollback:e=>this.#t(e),capture:e=>this.#r(e),restore:e=>this.#n(e)}:void 0;t.item.validate=u(t.item.name,Z(t.key,s,t.defineError,l,r))}if(f&&this.markSchemaHasRef(s),0===c.length)return s;if(1===c.length){const e=c[0];s.$validate=u(e.name,e.validate)}else{const e="Validate_"+d.join("_AND_"),t=e=>{for(let t=0;t<c.length;t++){const r=c[t].validate(e);if(r)return r}};s.$validate=u(e,t)}return s}isSchemaLike(e){if(e&&"object"==typeof e&&!Array.isArray(e)){if("type"in e)return!0;for(let t in e)if(t in this.keywords)return!0}return!1}getCompiledReferenceTarget(e,t,r){const n=this.resolveUri(e,t.baseUri,"$ref"),i=r.aliases.get(n);if(i)return this.compileCache.get(i);const a=r.aliases.get(this.resourceUri(n));if(!a)return;const o=this.compileCache.get(a);if(!o)return;const s=n.indexOf("#"),l=-1===s?"":n.slice(s+1);return 0===l.length?o:l.startsWith("/")?f(o,`#${l}`):void 0}linkReferences(e){for(let t=0;t<e.positions.length;t++){const n=e.positions[t];if("string"!=typeof n.source.$ref||this.getKeyword("$ref")!==Q.$ref)continue;const a=this.compileCache.get(n.source),s=this.getCompiledReferenceTarget(n.source.$ref,n,e);if(!a||void 0===s){const e=new i(`Reference not found: ${n.source.$ref}`);throw e.code="REFERENCE_NOT_FOUND",e.keyword="$ref",e}let l;if(!0===s)l=u("Validate_Ref_True",()=>{});else if(!1===s){const e=o("$ref",a,this.failFast);l=u("Validate_Ref_False",t=>e("Value is not valid",{data:t}))}else"function"!=typeof s.$validate&&(s.$validate=u("Validate_Ref_Any",()=>{})),l=s.$validate;r(a,"_resolvedRef",{value:l,enumerable:!1,configurable:!1,writable:!1})}}},ValidationError:i,deepClone:V};"undefined"!=typeof module?module.exports=re:self.SchemaShield=re})();
2
+ //# sourceMappingURL=index.min.js.map