authhero 0.12.0 → 0.13.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/authhero.cjs +2 -2
- package/dist/authhero.d.ts +11 -11
- package/dist/authhero.mjs +25 -25
- package/package.json +1 -1
package/dist/authhero.cjs
CHANGED
|
@@ -114,7 +114,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
114
114
|
`)}static pad(e=0){return"".padStart(2*e," ")}static serializeObj(e,t=0){const n=[];let s=this.pad(t++),i="";const a=e[Me.VALUE];a&&(i=` ${a}`),n.push(`${s}${e[Me.NAME]}:${i}`),s=this.pad(t);for(const o in e){if(typeof o=="symbol")continue;const c=e[o],u=o?`${o}: `:"";if(typeof c=="string"||typeof c=="number"||typeof c=="boolean")n.push(`${s}${u}${c}`);else if(c instanceof Date)n.push(`${s}${u}${c.toUTCString()}`);else if(Array.isArray(c))for(const f of c)f[Me.NAME]=o,n.push(...this.serializeObj(f,t));else if(c instanceof Me)c[Me.NAME]=o,n.push(...this.serializeObj(c,t));else if(q.isBufferSource(c))o?(n.push(`${s}${u}`),n.push(...this.serializeBufferSource(c,t+1))):n.push(...this.serializeBufferSource(c,t));else if("toTextObject"in c){const f=c.toTextObject();f[Me.NAME]=o,n.push(...this.serializeObj(f,t))}else throw new TypeError("Cannot serialize data in text format. Unsupported type.")}return n}static serializeBufferSource(e,t=0){const n=this.pad(t),s=q.toUint8Array(e),i=[];for(let a=0;a<s.length;){const o=[];for(let c=0;c<16&&a<s.length;c++){c===8&&o.push("");const u=s[a++].toString(16).padStart(2,"0");o.push(u)}i.push(`${n}${o.join(" ")}`)}return i}static serializeAlgorithm(e){return this.algorithmSerializer.toTextObject(e)}}hs.oidSerializer=Nn;hs.algorithmSerializer=o1;class Bn{constructor(...e){if(e.length===1){const t=e[0];this.rawData=L.serialize(t),this.onInit(t)}else{const t=L.parse(e[0],e[1]);this.rawData=q.toArrayBuffer(e[0]),this.onInit(t)}}equal(e){return e instanceof Bn?Ty(e.rawData,this.rawData):!1}toString(e="text"){switch(e){case"asn":return L.toString(this.rawData);case"text":return hs.serialize(this.toTextObject());case"hex":return te.ToHex(this.rawData);case"base64":return te.ToBase64(this.rawData);case"base64url":return te.ToBase64Url(this.rawData);default:throw TypeError("Argument 'format' is unsupported value")}}getTextName(){return this.constructor.NAME}toTextObject(){const e=this.toTextObjectEmpty();return e[""]=this.rawData,e}toTextObjectEmpty(e){return new Me(this.getTextName(),{},e)}}Bn.NAME="ASN";class Gt extends Bn{constructor(...e){let t;q.isBufferSource(e[0])?t=q.toArrayBuffer(e[0]):t=L.serialize(new Kt({extnID:e[0],critical:e[1],extnValue:new $e(q.toArrayBuffer(e[2]))})),super(t,Kt)}onInit(e){this.type=e.extnID,this.critical=e.critical,this.value=e.extnValue.buffer}toTextObject(){const e=this.toTextObjectWithoutValue();return e[""]=this.value,e}toTextObjectWithoutValue(){const e=this.toTextObjectEmpty(this.critical?"critical":void 0);return e[Me.NAME]===Gt.NAME&&(e[Me.NAME]=Nn.toString(this.type)),e}}var h0;class hn{static isCryptoKeyPair(e){return e&&e.privateKey&&e.publicKey}static isCryptoKey(e){return e&&e.usages&&e.type&&e.algorithm&&e.extractable!==void 0}constructor(){this.items=new Map,this[h0]="CryptoProvider",typeof self<"u"&&typeof crypto<"u"?this.set(hn.DEFAULT,crypto):typeof global<"u"&&global.crypto&&global.crypto.subtle&&this.set(hn.DEFAULT,global.crypto)}clear(){this.items.clear()}delete(e){return this.items.delete(e)}forEach(e,t){return this.items.forEach(e,t)}has(e){return this.items.has(e)}get size(){return this.items.size}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}[Symbol.iterator](){return this.items[Symbol.iterator]()}get(e=hn.DEFAULT){const t=this.items.get(e.toLowerCase());if(!t)throw new Error(`Cannot get Crypto by name '${e}'`);return t}set(e,t){if(typeof e=="string"){if(!t)throw new TypeError("Argument 'value' is required");this.items.set(e.toLowerCase(),t)}else this.items.set(hn.DEFAULT,e);return this}}h0=Symbol.toStringTag;hn.DEFAULT="default";const ut=new hn,c1=/^[0-2](?:\.[1-9][0-9]*)+$/;function u1(r){return new RegExp(c1).test(r)}class p0{constructor(e={}){this.items={};for(const t in e)this.register(t,e[t])}get(e){return this.items[e]||null}findId(e){return u1(e)?e:this.get(e)}register(e,t){this.items[e]=t,this.items[t]=e}}const Tt=new p0;Tt.register("CN","2.5.4.3");Tt.register("L","2.5.4.7");Tt.register("ST","2.5.4.8");Tt.register("O","2.5.4.10");Tt.register("OU","2.5.4.11");Tt.register("C","2.5.4.6");Tt.register("DC","0.9.2342.19200300.100.1.25");Tt.register("E","1.2.840.113549.1.9.1");Tt.register("G","2.5.4.42");Tt.register("I","2.5.4.43");Tt.register("SN","2.5.4.4");Tt.register("T","2.5.4.12");function l1(r,e){return`\\${te.ToHex(te.FromUtf8String(e)).toUpperCase()}`}function d1(r){return r.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,l1)}class Ht{static isASCII(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>255)return!1;return!0}static isPrintableString(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(e)}constructor(e,t={}){this.extraNames=new p0,this.asn=new et;for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)){const s=t[n];this.extraNames.register(n,s)}typeof e=="string"?this.asn=this.fromString(e):e instanceof et?this.asn=e:q.isBufferSource(e)?this.asn=L.parse(e,et):this.asn=this.fromJSON(e)}getField(e){const t=this.extraNames.findId(e)||Tt.findId(e),n=[];for(const s of this.asn)for(const i of s)i.type===t&&n.push(i.value.toString());return n}getName(e){return this.extraNames.get(e)||Tt.get(e)}toString(){return this.asn.map(e=>e.map(t=>{const n=this.getName(t.type)||t.type,s=t.value.anyValue?`#${te.ToHex(t.value.anyValue)}`:d1(t.value.toString());return`${n}=${s}`}).join("+")).join(", ")}toJSON(){var e;const t=[];for(const n of this.asn){const s={};for(const i of n){const a=this.getName(i.type)||i.type;(e=s[a])!==null&&e!==void 0||(s[a]=[]),s[a].push(i.value.anyValue?`#${te.ToHex(i.value.anyValue)}`:i.value.toString())}t.push(s)}return t}fromString(e){const t=new et,n=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g;let s=null,i=",";for(;s=n.exec(`${e},`);){let[,a,o]=s;const c=o[o.length-1];(c===","||c==="+")&&(o=o.slice(0,o.length-1),s[3]=c);const u=s[3];a=this.getTypeOid(a);const f=this.createAttribute(a,o);i==="+"?t[t.length-1].push(f):t.push(new Gs([f])),i=u}return t}fromJSON(e){const t=new et;for(const n of e){const s=new Gs;for(const i in n){const a=this.getTypeOid(i),o=n[i];for(const c of o){const u=this.createAttribute(a,c);s.push(u)}}t.push(s)}return t}getTypeOid(e){if(/[\d.]+/.test(e)||(e=this.getName(e)||""),!e)throw new Error(`Cannot get OID for name type '${e}'`);return e}createAttribute(e,t){const n=new yu({type:e});if(typeof t=="object")for(const s in t)switch(s){case"ia5String":n.value.ia5String=t[s];break;case"utf8String":n.value.utf8String=t[s];break;case"universalString":n.value.universalString=t[s];break;case"bmpString":n.value.bmpString=t[s];break;case"printableString":n.value.printableString=t[s];break}else if(t[0]==="#")n.value.anyValue=te.FromHex(t.slice(1));else{const s=this.processStringValue(t);e===this.getName("E")||e===this.getName("DC")?n.value.ia5String=s:Ht.isPrintableString(s)?n.value.printableString=s:n.value.utf8String=s}return n}processStringValue(e){const t=/"(.*?[^\\])?"/.exec(e);return t&&(e=t[1]),e.replace(/\\0a/ig,`
|
|
115
115
|
`).replace(/\\0d/ig,"\r").replace(/\\0g/ig," ").replace(/\\(.)/g,"$1")}toArrayBuffer(){return L.serialize(this.asn)}async getThumbprint(...e){var t;let n,s="SHA-1";return e.length>=1&&!(!((t=e[0])===null||t===void 0)&&t.subtle)?(s=e[0]||s,n=e[1]||ut.get()):n=e[0]||ut.get(),await n.subtle.digest(s,this.toArrayBuffer())}}const m0="Cannot initialize GeneralName from ASN.1 data.",Wp=`${m0} Unsupported string format in use.`,f1=`${m0} Value doesn't match to GUID regular expression.`,Kp=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,zp="1.3.6.1.4.1.311.25.1",Gp="1.3.6.1.4.1.311.20.2.3",el="dns",tl="dn",rl="email",nl="ip",sl="url",il="guid",al="upn",_o="id";class pn extends Bn{constructor(...e){let t;if(e.length===2)switch(e[0]){case tl:{const n=new Ht(e[1]).toArrayBuffer(),s=L.parse(n,et);t=new ge({directoryName:s});break}case el:t=new ge({dNSName:e[1]});break;case rl:t=new ge({rfc822Name:e[1]});break;case il:{const n=new RegExp(Kp,"i").exec(e[1]);if(!n)throw new Error("Cannot parse GUID value. Value doesn't match to regular expression");const s=n.slice(1).map((i,a)=>a<3?te.ToHex(new Uint8Array(te.FromHex(i)).reverse()):i).join("");t=new ge({otherName:new ba({typeId:zp,value:L.serialize(new $e(te.FromHex(s)))})});break}case nl:t=new ge({iPAddress:e[1]});break;case _o:t=new ge({registeredID:e[1]});break;case al:{t=new ge({otherName:new ba({typeId:Gp,value:L.serialize(Tg.toASN(e[1]))})});break}case sl:t=new ge({uniformResourceIdentifier:e[1]});break;default:throw new Error("Cannot create GeneralName. Unsupported type of the name")}else q.isBufferSource(e[0])?t=L.parse(e[0],ge):t=e[0];super(t)}onInit(e){if(e.dNSName!=null)this.type=el,this.value=e.dNSName;else if(e.rfc822Name!=null)this.type=rl,this.value=e.rfc822Name;else if(e.iPAddress!=null)this.type=nl,this.value=e.iPAddress;else if(e.uniformResourceIdentifier!=null)this.type=sl,this.value=e.uniformResourceIdentifier;else if(e.registeredID!=null)this.type=_o,this.value=e.registeredID;else if(e.directoryName!=null)this.type=tl,this.value=new Ht(e.directoryName).toString();else if(e.otherName!=null)if(e.otherName.typeId===zp){this.type=il;const t=L.parse(e.otherName.value,$e),n=new RegExp(Kp,"i").exec(te.ToHex(t));if(!n)throw new Error(f1);this.value=n.slice(1).map((s,i)=>i<3?te.ToHex(new Uint8Array(te.FromHex(s)).reverse()):s).join("-")}else if(e.otherName.typeId===Gp)this.type=al,this.value=L.parse(e.otherName.value,ft).toString();else throw new Error(Wp);else throw new Error(Wp)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let e;switch(this.type){case tl:case el:case il:case nl:case _o:case al:case sl:e=this.type.toUpperCase();break;case rl:e="Email";break;default:throw new Error("Unsupported GeneralName type")}let t=this.value;return this.type===_o&&(t=Nn.toString(t)),new Me(e,void 0,t)}}class Ea extends Bn{constructor(e){let t;if(e instanceof bt)t=e;else if(Array.isArray(e)){const n=[];for(const s of e)if(s instanceof ge)n.push(s);else{const i=L.parse(new pn(s.type,s.value).rawData,ge);n.push(i)}t=new bt(n)}else if(q.isBufferSource(e))t=L.parse(e,bt);else throw new Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(t)}onInit(e){const t=[];for(const n of e){let s=null;try{s=new pn(n)}catch{continue}t.push(s)}this.items=t}toJSON(){return this.items.map(e=>e.toJSON())}toTextObject(){const e=super.toTextObjectEmpty();for(const t of this.items){const n=t.toTextObject();let s=e[n[Me.NAME]];Array.isArray(s)||(s=[],e[n[Me.NAME]]=s),s.push(n)}return e}}Ea.NAME="GeneralNames";const Ui="-{5}",Ia="\\n",h1=`[^${Ia}]+`,p1=`${Ui}BEGIN (${h1}(?=${Ui}))${Ui}`,m1=`${Ui}END \\1${Ui}`,ni="\\n",y1=`[^:${Ia}]+`,g1=`(?:[^${Ia}]+${ni}(?: +[^${Ia}]+${ni})*)`,v1="[a-zA-Z0-9=+/]+",b1=`(?:${v1}${ni})+`,Jp=`${p1}${ni}(?:((?:${y1}: ${g1})+))?${ni}?(${b1})${m1}`;class $t{static isPem(e){return typeof e=="string"&&new RegExp(Jp,"g").test(e)}static decodeWithHeaders(e){e=e.replace(/\r/g,"");const t=new RegExp(Jp,"g"),n=[];let s=null;for(;s=t.exec(e);){const i=s[3].replace(new RegExp(`[${Ia}]+`,"g"),""),a={type:s[1],headers:[],rawData:te.FromBase64(i)},o=s[2];if(o){const c=o.split(new RegExp(ni,"g"));let u=null;for(const f of c){const[m,R]=f.split(/:(.*)/);if(R===void 0){if(!u)throw new Error("Cannot parse PEM string. Incorrect header value");u.value+=m.trim()}else u&&a.headers.push(u),u={key:m,value:R.trim()}}u&&a.headers.push(u)}n.push(a)}return n}static decode(e){return this.decodeWithHeaders(e).map(n=>n.rawData)}static decodeFirst(e){const t=this.decode(e);if(!t.length)throw new RangeError("PEM string doesn't contain any objects");return t[0]}static encode(e,t){if(Array.isArray(e)){const n=new Array;return t?e.forEach(s=>{if(!q.isBufferSource(s))throw new TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");n.push(this.encodeStruct({type:t,rawData:q.toArrayBuffer(s)}))}):e.forEach(s=>{if(!("type"in s))throw new TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");n.push(this.encodeStruct(s))}),n.join(`
|
|
116
116
|
`)}else{if(!t)throw new Error("Required argument 'tag' is missed");return this.encodeStruct({type:t,rawData:q.toArrayBuffer(e)})}}static encodeStruct(e){var t;const n=e.type.toLocaleUpperCase(),s=[];if(s.push(`-----BEGIN ${n}-----`),!((t=e.headers)===null||t===void 0)&&t.length){for(const u of e.headers)s.push(`${u.key}: ${u.value}`);s.push("")}const i=te.ToBase64(e.rawData);let a,o=0;const c=Array();for(;o<i.length&&(i.length-o<64?a=i.substring(o):(a=i.substring(o,o+64),o+=64),a.length!==0);)if(c.push(a),a.length<64)break;return s.push(...c),s.push(`-----END ${n}-----`),s.join(`
|
|
117
|
-
`)}}$t.CertificateTag="CERTIFICATE";$t.CrlTag="CRL";$t.CertificateRequestTag="CERTIFICATE REQUEST";$t.PublicKeyTag="PUBLIC KEY";$t.PrivateKeyTag="PRIVATE KEY";class Jr extends Bn{static isAsnEncoded(e){return q.isBufferSource(e)||typeof e=="string"}static toArrayBuffer(e){if(typeof e=="string"){if($t.isPem(e))return $t.decode(e)[0];if(te.isHex(e))return te.FromHex(e);if(te.isBase64(e))return te.FromBase64(e);if(te.isBase64Url(e))return te.FromBase64Url(e);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}else{const t=te.ToBinary(e);return $t.isPem(t)?$t.decode(t)[0]:te.isHex(t)?te.FromHex(t):te.isBase64(t)?te.FromBase64(t):te.isBase64Url(t)?te.FromBase64Url(t):q.toArrayBuffer(e)}}constructor(...e){Jr.isAsnEncoded(e[0])?super(Jr.toArrayBuffer(e[0]),e[1]):super(e[0])}toString(e="pem"){switch(e){case"pem":return $t.encode(this.rawData,this.tag);default:return super.toString(e)}}}class ur extends Jr{static async create(e,t=ut.get()){if(e instanceof ur)return e;if(hn.isCryptoKey(e)){if(e.type!=="public")throw new TypeError("Public key is required");const n=await t.subtle.exportKey("spki",e);return new ur(n)}else{if(e.publicKey)return e.publicKey;if(q.isBufferSource(e))return new ur(e);throw new TypeError("Unsupported PublicKeyType")}}constructor(e){Jr.isAsnEncoded(e)?super(e,ir):super(e),this.tag=$t.PublicKeyTag}async export(...e){let t,n=["verify"],s={hash:"SHA-256",...this.algorithm};e.length>1?(s=e[0]||s,n=e[1]||n,t=e[2]||ut.get()):t=e[0]||ut.get();let i=this.rawData;const a=L.parse(this.rawData,ir);return a.algorithm.algorithm===Vi&&(i=x1(a,i)),t.subtle.importKey("spki",i,s,!0,n)}onInit(e){const t=ht.resolve(fs),n=this.algorithm=t.toWebAlgorithm(e.algorithm);switch(e.algorithm.algorithm){case us:{const s=L.parse(e.subjectPublicKey,Kf),i=q.toUint8Array(s.modulus);n.publicExponent=q.toUint8Array(s.publicExponent),n.modulusLength=(i[0]?i:i.slice(1)).byteLength<<3;break}}}async getThumbprint(...e){var t;let n,s="SHA-1";return e.length>=1&&!(!((t=e[0])===null||t===void 0)&&t.subtle)?(s=e[0]||s,n=e[1]||ut.get()):n=e[0]||ut.get(),await n.subtle.digest(s,this.rawData)}async getKeyIdentifier(...e){let t,n="SHA-1";e.length===1?typeof e[0]=="string"?(n=e[0],t=ut.get()):t=e[0]:e.length===2?(n=e[0],t=e[1]):t=ut.get();const s=L.parse(this.rawData,ir);return await t.subtle.digest(n,s.subjectPublicKey)}toTextObject(){const e=this.toTextObjectEmpty(),t=L.parse(this.rawData,ir);switch(e.Algorithm=hs.serializeAlgorithm(t.algorithm),t.algorithm.algorithm){case ka:e["EC Point"]=t.subjectPublicKey;break;case us:default:e["Raw Data"]=t.subjectPublicKey}return e}}function x1(r,e){return r.algorithm=new Y({algorithm:us,parameters:null}),e=L.serialize(r),e}class Ca extends Gt{static async create(e,t=!1,n=ut.get()){if("name"in e&&"serialNumber"in e)return new Ca(e,t);const i=await(await ur.create(e,n)).getKeyIdentifier(n);return new Ca(te.ToHex(i),t)}constructor(...e){if(q.isBufferSource(e[0]))super(e[0]);else if(typeof e[0]=="string"){const t=new Ln({keyIdentifier:new If(te.FromHex(e[0]))});super(Ml,e[1],L.serialize(t))}else{const t=e[0],n=t.name instanceof Ea?L.parse(t.name.rawData,bt):t.name,s=new Ln({authorityCertIssuer:n,authorityCertSerialNumber:te.FromHex(t.serialNumber)});super(Ml,e[1],L.serialize(s))}}onInit(e){super.onInit(e);const t=L.parse(e.extnValue,Ln);t.keyIdentifier&&(this.keyId=te.ToHex(t.keyIdentifier)),(t.authorityCertIssuer||t.authorityCertSerialNumber)&&(this.certId={name:t.authorityCertIssuer||[],serialNumber:t.authorityCertSerialNumber?te.ToHex(t.authorityCertSerialNumber):""})}toTextObject(){const e=this.toTextObjectWithoutValue(),t=L.parse(this.value,Ln);return t.authorityCertIssuer&&(e["Authority Issuer"]=new Ea(t.authorityCertIssuer).toTextObject()),t.authorityCertSerialNumber&&(e["Authority Serial Number"]=t.authorityCertSerialNumber),t.keyIdentifier&&(e[""]=t.keyIdentifier),e}}Ca.NAME="Authority Key Identifier";class Yf extends Gt{constructor(...e){if(q.isBufferSource(e[0])){super(e[0]);const t=L.parse(this.value,lc);this.ca=t.cA,this.pathLength=t.pathLenConstraint}else{const t=new lc({cA:e[0],pathLenConstraint:e[1]});super(Rg,e[2],L.serialize(t)),this.ca=e[0],this.pathLength=e[1]}}toTextObject(){const e=this.toTextObjectWithoutValue();return this.ca&&(e.CA=this.ca),this.pathLength!==void 0&&(e["Path Length"]=this.pathLength),e}}Yf.NAME="Basic Constraints";var Yp;(function(r){r.serverAuth="1.3.6.1.5.5.7.3.1",r.clientAuth="1.3.6.1.5.5.7.3.2",r.codeSigning="1.3.6.1.5.5.7.3.3",r.emailProtection="1.3.6.1.5.5.7.3.4",r.timeStamping="1.3.6.1.5.5.7.3.8",r.ocspSigning="1.3.6.1.5.5.7.3.9"})(Yp||(Yp={}));class Xf extends Gt{constructor(...e){if(q.isBufferSource(e[0])){super(e[0]);const t=L.parse(this.value,pc);this.usages=t.map(n=>n)}else{const t=new pc(e[0]);super(Zg,e[1],L.serialize(t)),this.usages=e[0]}}toTextObject(){const e=this.toTextObjectWithoutValue();return e[""]=this.usages.map(t=>Nn.toString(t)).join(", "),e}}Xf.NAME="Extended Key Usages";var Vc;(function(r){r[r.digitalSignature=1]="digitalSignature",r[r.nonRepudiation=2]="nonRepudiation",r[r.keyEncipherment=4]="keyEncipherment",r[r.dataEncipherment=8]="dataEncipherment",r[r.keyAgreement=16]="keyAgreement",r[r.keyCertSign=32]="keyCertSign",r[r.cRLSign=64]="cRLSign",r[r.encipherOnly=128]="encipherOnly",r[r.decipherOnly=256]="decipherOnly"})(Vc||(Vc={}));class Qf extends Gt{constructor(...e){if(q.isBufferSource(e[0])){super(e[0]);const t=L.parse(this.value,Qu);this.usages=t.toNumber()}else{const t=new Qu(e[0]);super(Dg,e[1],L.serialize(t)),this.usages=e[0]}}toTextObject(){const e=this.toTextObjectWithoutValue(),t=L.parse(this.value,Qu);return e[""]=t.toJSON().join(", "),e}}Qf.NAME="Key Usages";class mo extends Gt{static async create(e,t=!1,n=ut.get()){const i=await(await ur.create(e,n)).getKeyIdentifier(n);return new mo(te.ToHex(i),t)}constructor(...e){if(q.isBufferSource(e[0])){super(e[0]);const t=L.parse(this.value,yn);this.keyId=te.ToHex(t)}else{const t=typeof e[0]=="string"?te.FromHex(e[0]):e[0],n=new yn(t);super(Lg,e[1],L.serialize(n)),this.keyId=te.ToHex(t)}}toTextObject(){const e=this.toTextObjectWithoutValue(),t=L.parse(this.value,yn);return e[""]=t,e}}mo.NAME="Subject Key Identifier";class y0 extends Gt{constructor(...e){q.isBufferSource(e[0])?super(e[0]):super(Ug,e[1],new Ea(e[0]||[]).rawData)}onInit(e){super.onInit(e);const t=L.parse(e.extnValue,ed);this.names=new Ea(t)}toTextObject(){const e=this.toTextObjectWithoutValue(),t=this.names.toTextObject();for(const n in t)e[n]=t[n];return e}}y0.NAME="Subject Alternative Name";class Jt{static register(e,t){this.items.set(e,t)}static create(e){const t=new Gt(e),n=this.items.get(t.type);return n?new n(e):t}}Jt.items=new Map;class g0 extends Gt{constructor(...e){var t;if(q.isBufferSource(e[0])){super(e[0]);const n=L.parse(this.value,fc);this.policies=n.map(s=>s.policyIdentifier)}else{const n=e[0],s=(t=e[1])!==null&&t!==void 0?t:!1,i=new fc(n.map(a=>new vu({policyIdentifier:a})));super(Pg,s,L.serialize(i)),this.policies=n}}toTextObject(){const e=this.toTextObjectWithoutValue();return e.Policy=this.policies.map(t=>new Me("",{},Nn.toString(t))),e}}g0.NAME="Certificate Policies";Jt.register(Pg,g0);class v0 extends Gt{constructor(...e){var t;if(q.isBufferSource(e[0]))super(e[0]);else if(Array.isArray(e[0])&&typeof e[0][0]=="string"){const s=e[0].map(a=>new li({distributionPoint:new is({fullName:[new ge({uniformResourceIdentifier:a})]})})),i=new Rs(s);super(Hl,e[1],L.serialize(i))}else{const n=new Rs(e[0]);super(Hl,e[1],L.serialize(n))}(t=this.distributionPoints)!==null&&t!==void 0||(this.distributionPoints=[])}onInit(e){super.onInit(e);const t=L.parse(e.extnValue,Rs);this.distributionPoints=t}toTextObject(){const e=this.toTextObjectWithoutValue();return e["Distribution Point"]=this.distributionPoints.map(t=>{var n;const s={};return t.distributionPoint&&(s[""]=(n=t.distributionPoint.fullName)===null||n===void 0?void 0:n.map(i=>new pn(i).toString()).join(", ")),t.reasons&&(s.Reasons=t.reasons.toString()),t.cRLIssuer&&(s["CRL Issuer"]=t.cRLIssuer.map(i=>i.toString()).join(", ")),s}),e}}v0.NAME="CRL Distribution Points";class b0 extends Gt{constructor(...e){var t,n,s,i;if(q.isBufferSource(e[0]))super(e[0]);else if(e[0]instanceof Is){const a=new Is(e[0]);super(Dl,e[1],L.serialize(a))}else{const a=e[0],o=new Is;ko(o,a,Rh,"ocsp"),ko(o,a,Ph,"caIssuers"),ko(o,a,$h,"timeStamping"),ko(o,a,Zh,"caRepository"),super(Dl,e[1],L.serialize(o))}(t=this.ocsp)!==null&&t!==void 0||(this.ocsp=[]),(n=this.caIssuers)!==null&&n!==void 0||(this.caIssuers=[]),(s=this.timeStamping)!==null&&s!==void 0||(this.timeStamping=[]),(i=this.caRepository)!==null&&i!==void 0||(this.caRepository=[])}onInit(e){super.onInit(e),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],L.parse(e.extnValue,Is).forEach(n=>{switch(n.accessMethod){case Rh:this.ocsp.push(new pn(n.accessLocation));break;case Ph:this.caIssuers.push(new pn(n.accessLocation));break;case $h:this.timeStamping.push(new pn(n.accessLocation));break;case Zh:this.caRepository.push(new pn(n.accessLocation));break}})}toTextObject(){const e=this.toTextObjectWithoutValue();return this.ocsp.length&&wo(e,"OCSP",this.ocsp),this.caIssuers.length&&wo(e,"CA Issuers",this.caIssuers),this.timeStamping.length&&wo(e,"Time Stamping",this.timeStamping),this.caRepository.length&&wo(e,"CA Repository",this.caRepository),e}}b0.NAME="Authority Info Access";function wo(r,e,t){if(t.length===1)r[e]=t[0].toTextObject();else{const n=new Me("");t.forEach((s,i)=>{const a=s.toTextObject(),o=`${a[Me.NAME]} ${i+1}`;let c=n[o];Array.isArray(c)||(c=[],n[o]=c),c.push(a)}),r[e]=n}}function ko(r,e,t,n){const s=e[n];s&&(Array.isArray(s)?s:[s]).forEach(a=>{typeof a=="string"&&(a=new pn("url",a)),r.push(new to({accessMethod:t,accessLocation:L.parse(a.rawData,ge)}))})}class gi extends Bn{constructor(...e){let t;if(q.isBufferSource(e[0]))t=q.toArrayBuffer(e[0]);else{const n=e[0],s=Array.isArray(e[1])?e[1].map(i=>q.toArrayBuffer(i)):[];t=L.serialize(new Kr({type:n,values:s}))}super(t,Kr)}onInit(e){this.type=e.type,this.values=e.values}toTextObject(){const e=this.toTextObjectWithoutValue();return e.Value=this.values.map(t=>new Me("",{"":t})),e}toTextObjectWithoutValue(){const e=this.toTextObjectEmpty();return e[Me.NAME]===gi.NAME&&(e[Me.NAME]=Nn.toString(this.type)),e}}gi.NAME="Attribute";class x0 extends gi{constructor(...e){var t;if(q.isBufferSource(e[0]))super(e[0]);else{const n=new Dc({printableString:e[0]});super(l0,[L.serialize(n)])}(t=this.password)!==null&&t!==void 0||(this.password="")}onInit(e){if(super.onInit(e),this.values[0]){const t=L.parse(this.values[0],Dc);this.password=t.toString()}}toTextObject(){const e=this.toTextObjectWithoutValue();return e[Me.VALUE]=this.password,e}}x0.NAME="Challenge Password";class eh extends gi{constructor(...e){var t;if(q.isBufferSource(e[0]))super(e[0]);else{const n=e[0],s=new kn;for(const i of n)s.push(L.parse(i.rawData,Kt));super(Jf,[L.serialize(s)])}(t=this.items)!==null&&t!==void 0||(this.items=[])}onInit(e){if(super.onInit(e),this.values[0]){const t=L.parse(this.values[0],kn);this.items=t.map(n=>Jt.create(L.serialize(n)))}}toTextObject(){const e=this.toTextObjectWithoutValue(),t=this.items.map(n=>n.toTextObject());for(const n of t)e[n[Me.NAME]]=n;return e}}eh.NAME="Extensions";class Uu{static register(e,t){this.items.set(e,t)}static create(e){const t=new gi(e),n=this.items.get(t.type);return n?new n(e):t}}Uu.items=new Map;const yo="crypto.signatureFormatter";class _1{toAsnSignature(e,t){return q.toArrayBuffer(t)}toWebSignature(e,t){return q.toArrayBuffer(t)}}var Ro;let Hd=Ro=class{static createPssParams(e,t){const n=Ro.getHashAlgorithm(e);return n?new ds({hashAlgorithm:n,maskGenAlgorithm:new Y({algorithm:Nu,parameters:L.serialize(n)}),saltLength:t}):null}static getHashAlgorithm(e){const t=ht.resolve(fs);return typeof e=="string"?t.toAsnAlgorithm({name:e}):typeof e=="object"&&e&&"name"in e?t.toAsnAlgorithm(e):null}toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in e){let t;if(typeof e.hash=="string")t=e.hash;else if(e.hash&&typeof e.hash=="object"&&"name"in e.hash&&typeof e.hash.name=="string")t=e.hash.name.toUpperCase();else throw new Error("Cannot get hash algorithm name");switch(t.toLowerCase()){case"sha-1":return new Y({algorithm:Ic,parameters:null});case"sha-256":return new Y({algorithm:_d,parameters:null});case"sha-384":return new Y({algorithm:Cc,parameters:null});case"sha-512":return new Y({algorithm:jc,parameters:null})}}else return new Y({algorithm:us,parameters:null});break;case"rsa-pss":if("hash"in e){if(!("saltLength"in e&&typeof e.saltLength=="number"))throw new Error("Cannot get 'saltLength' from 'alg' argument");const t=Ro.createPssParams(e.hash,e.saltLength);if(!t)throw new Error("Cannot create PSS parameters");return new Y({algorithm:Vi,parameters:L.serialize(t)})}else return new Y({algorithm:Vi,parameters:null})}return null}toWebAlgorithm(e){switch(e.algorithm){case us:return{name:"RSASSA-PKCS1-v1_5"};case Ic:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case _d:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case Cc:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case jc:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case Vi:if(e.parameters){const t=L.parse(e.parameters,ds);return{name:"RSA-PSS",hash:ht.resolve(fs).toWebAlgorithm(t.hashAlgorithm),saltLength:t.saltLength}}else return{name:"RSA-PSS"}}return null}};Hd=Ro=l([$u()],Hd);ht.registerSingleton(po,Hd);let Fd=class{toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"sha-1":return new Y({algorithm:Tc});case"sha-256":return new Y({algorithm:Nc});case"sha-384":return new Y({algorithm:Bc});case"sha-512":return new Y({algorithm:Rc})}return null}toWebAlgorithm(e){switch(e.algorithm){case Tc:return{name:"SHA-1"};case Nc:return{name:"SHA-256"};case Bc:return{name:"SHA-384"};case Rc:return{name:"SHA-512"}}return null}};Fd=l([$u()],Fd);ht.registerSingleton(po,Fd);class Ft{addPadding(e,t){const n=q.toUint8Array(t),s=new Uint8Array(e);return s.set(n,e-n.length),s}removePadding(e,t=!1){let n=q.toUint8Array(e);for(let s=0;s<n.length;s++)if(n[s]){n=n.slice(s);break}if(t&&n[0]>127){const s=new Uint8Array(n.length+1);return s.set(n,1),s.buffer}return n.buffer}toAsnSignature(e,t){if(e.name==="ECDSA"){const n=e.namedCurve,s=Ft.namedCurveSize.get(n)||Ft.defaultNamedCurveSize,i=new Ec,a=q.toUint8Array(t);return i.r=this.removePadding(a.slice(0,s),!0),i.s=this.removePadding(a.slice(s,s+s),!0),L.serialize(i)}return null}toWebSignature(e,t){if(e.name==="ECDSA"){const n=L.parse(t,Ec),s=e.namedCurve,i=Ft.namedCurveSize.get(s)||Ft.defaultNamedCurveSize,a=this.addPadding(i,this.removePadding(n.r)),o=this.addPadding(i,this.removePadding(n.s));return R_(a,o)}return null}}Ft.namedCurveSize=new Map;Ft.defaultNamedCurveSize=32;const ol="1.3.101.110",Xp="1.3.101.111",cl="1.3.101.112",Qp="1.3.101.113";let Wd=class{toAsnAlgorithm(e){let t=null;switch(e.name.toLowerCase()){case"ed25519":t=cl;break;case"x25519":t=ol;break;case"eddsa":switch(e.namedCurve.toLowerCase()){case"ed25519":t=cl;break;case"ed448":t=Qp;break}break;case"ecdh-es":switch(e.namedCurve.toLowerCase()){case"x25519":t=ol;break;case"x448":t=Xp;break}}return t?new Y({algorithm:t}):null}toWebAlgorithm(e){switch(e.algorithm){case cl:return{name:"Ed25519"};case Qp:return{name:"EdDSA",namedCurve:"Ed448"};case ol:return{name:"X25519"};case Xp:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Wd=l([$u()],Wd);ht.registerSingleton(po,Wd);class w1 extends Jr{constructor(e){Jr.isAsnEncoded(e)?super(e,Aa):super(e),this.tag=$t.CertificateRequestTag}onInit(e){this.tbs=L.serialize(e.certificationRequestInfo),this.publicKey=new ur(e.certificationRequestInfo.subjectPKInfo);const t=ht.resolve(fs);this.signatureAlgorithm=t.toWebAlgorithm(e.signatureAlgorithm),this.signature=e.signature,this.attributes=e.certificationRequestInfo.attributes.map(s=>Uu.create(L.serialize(s)));const n=this.getAttribute(Jf);this.extensions=[],n instanceof eh&&(this.extensions=n.items),this.subjectName=new Ht(e.certificationRequestInfo.subject),this.subject=this.subjectName.toString()}getAttribute(e){for(const t of this.attributes)if(t.type===e)return t;return null}getAttributes(e){return this.attributes.filter(t=>t.type===e)}getExtension(e){for(const t of this.extensions)if(t.type===e)return t;return null}getExtensions(e){return this.extensions.filter(t=>t.type===e)}async verify(e=ut.get()){const t={...this.publicKey.algorithm,...this.signatureAlgorithm},n=await this.publicKey.export(t,["verify"],e),s=ht.resolveAll(yo).reverse();let i=null;for(const o of s)if(i=o.toWebSignature(t,this.signature),i)break;if(!i)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await e.subtle.verify(this.signatureAlgorithm,n,i,this.tbs)}toTextObject(){const e=this.toTextObjectEmpty(),t=L.parse(this.rawData,Aa),n=t.certificationRequestInfo,s=new Me("",{Version:`${as[n.version]} (${n.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){const i=new Me("");for(const a of this.attributes){const o=a.toTextObject();i[o[Me.NAME]]=o}s.Attributes=i}return e.Data=s,e.Signature=new Me("",{Algorithm:hs.serializeAlgorithm(t.signatureAlgorithm),"":t.signature}),e}}w1.NAME="PKCS#10 Certificate Request";class th extends Jr{constructor(e){Jr.isAsnEncoded(e)?super(e,os):super(e),this.tag=$t.CertificateTag}onInit(e){const t=e.tbsCertificate;this.tbs=L.serialize(t),this.serialNumber=te.ToHex(t.serialNumber),this.subjectName=new Ht(t.subject),this.subject=new Ht(t.subject).toString(),this.issuerName=new Ht(t.issuer),this.issuer=this.issuerName.toString();const n=ht.resolve(fs);this.signatureAlgorithm=n.toWebAlgorithm(e.signatureAlgorithm),this.signature=e.signatureValue;const s=t.validity.notBefore.utcTime||t.validity.notBefore.generalTime;if(!s)throw new Error("Cannot get 'notBefore' value");this.notBefore=s;const i=t.validity.notAfter.utcTime||t.validity.notAfter.generalTime;if(!i)throw new Error("Cannot get 'notAfter' value");this.notAfter=i,this.extensions=[],t.extensions&&(this.extensions=t.extensions.map(a=>Jt.create(L.serialize(a)))),this.publicKey=new ur(t.subjectPublicKeyInfo)}getExtension(e){for(const t of this.extensions)if(typeof e=="string"){if(t.type===e)return t}else if(t instanceof e)return t;return null}getExtensions(e){return this.extensions.filter(t=>typeof e=="string"?t.type===e:t instanceof e)}async verify(e={},t=ut.get()){let n,s;const i=e.publicKey;try{if(!i)n={...this.publicKey.algorithm,...this.signatureAlgorithm},s=await this.publicKey.export(n,["verify"],t);else if("publicKey"in i)n={...i.publicKey.algorithm,...this.signatureAlgorithm},s=await i.publicKey.export(n,["verify"],t);else if(i instanceof ur)n={...i.algorithm,...this.signatureAlgorithm},s=await i.export(n,["verify"],t);else if(q.isBufferSource(i)){const u=new ur(i);n={...u.algorithm,...this.signatureAlgorithm},s=await u.export(n,["verify"],t)}else n={...i.algorithm,...this.signatureAlgorithm},s=i}catch{return!1}const a=ht.resolveAll(yo).reverse();let o=null;for(const u of a)if(o=u.toWebSignature(n,this.signature),o)break;if(!o)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");const c=await t.subtle.verify(this.signatureAlgorithm,s,o,this.tbs);if(e.signatureOnly)return c;{const f=(e.date||new Date).getTime();return c&&this.notBefore.getTime()<f&&f<this.notAfter.getTime()}}async getThumbprint(...e){let t,n="SHA-1";return e[0]&&(e[0].subtle?t=e[0]:(n=e[0]||n,t=e[1])),t??(t=ut.get()),await t.subtle.digest(n,this.rawData)}async isSelfSigned(e=ut.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},e)}toTextObject(){const e=this.toTextObjectEmpty(),t=L.parse(this.rawData,os),n=t.tbsCertificate,s=new Me("",{Version:`${as[n.version]} (${n.version})`,"Serial Number":n.serialNumber,"Signature Algorithm":hs.serializeAlgorithm(n.signature),Issuer:this.issuer,Validity:new Me("",{"Not Before":n.validity.notBefore.getTime(),"Not After":n.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(n.issuerUniqueID&&(s["Issuer Unique ID"]=n.issuerUniqueID),n.subjectUniqueID&&(s["Subject Unique ID"]=n.subjectUniqueID),this.extensions.length){const i=new Me("");for(const a of this.extensions){const o=a.toTextObject();i[o[Me.NAME]]=o}s.Extensions=i}return e.Data=s,e.Signature=new Me("",{Algorithm:hs.serializeAlgorithm(t.signatureAlgorithm),"":t.signatureValue}),e}}th.NAME="Certificate";class k1{static async createSelfSigned(e,t=ut.get()){if(!e.keys.privateKey)throw new Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!e.keys.publicKey)throw new Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:e.serialNumber,subject:e.name,issuer:e.name,notBefore:e.notBefore,notAfter:e.notAfter,publicKey:e.keys.publicKey,signingKey:e.keys.privateKey,signingAlgorithm:e.signingAlgorithm,extensions:e.extensions},t)}static async create(e,t=ut.get()){var n;let s;e.publicKey instanceof ur?s=e.publicKey.rawData:"publicKey"in e.publicKey?s=e.publicKey.publicKey.rawData:q.isBufferSource(e.publicKey)?s=e.publicKey:s=await t.subtle.exportKey("spki",e.publicKey);const i=e.serialNumber?q.toUint8Array(te.FromHex(e.serialNumber)):t.getRandomValues(new Uint8Array(16));i[0]>127&&(i[0]&=127),i.length>1&&i[0]===0&&(i[1]|=128);const a=e.notBefore||new Date,o=e.notAfter||new Date(a.getTime()+31536e6),c=new os({tbsCertificate:new Vt({version:as.v3,serialNumber:i,validity:new ro({notBefore:a,notAfter:o}),extensions:new kn(((n=e.extensions)===null||n===void 0?void 0:n.map(A=>L.parse(A.rawData,Kt)))||[]),subjectPublicKeyInfo:L.parse(s,ir)})});if(e.subject){const A=e.subject instanceof Ht?e.subject:new Ht(e.subject);c.tbsCertificate.subject=L.parse(A.toArrayBuffer(),et)}if(e.issuer){const A=e.issuer instanceof Ht?e.issuer:new Ht(e.issuer);c.tbsCertificate.issuer=L.parse(A.toArrayBuffer(),et)}const u={hash:"SHA-256"},f="signingKey"in e?{...u,...e.signingAlgorithm,...e.signingKey.algorithm}:{...u,...e.signingAlgorithm},m=ht.resolve(fs);c.tbsCertificate.signature=c.signatureAlgorithm=m.toAsnAlgorithm(f);const R=L.serialize(c.tbsCertificate),C="signingKey"in e?await t.subtle.sign(f,e.signingKey,R):e.signature,p=ht.resolveAll(yo).reverse();let y=null;for(const A of p)if(y=A.toAsnSignature(f,C),y)break;if(!y)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return c.signatureValue=y,new th(L.serialize(c))}}var em;(function(r){r[r.unspecified=0]="unspecified",r[r.keyCompromise=1]="keyCompromise",r[r.cACompromise=2]="cACompromise",r[r.affiliationChanged=3]="affiliationChanged",r[r.superseded=4]="superseded",r[r.cessationOfOperation=5]="cessationOfOperation",r[r.certificateHold=6]="certificateHold",r[r.removeFromCRL=8]="removeFromCRL",r[r.privilegeWithdrawn=9]="privilegeWithdrawn",r[r.aACompromise=10]="aACompromise"})(em||(em={}));Jt.register(Rg,Yf);Jt.register(Zg,Xf);Jt.register(Dg,Qf);Jt.register(Lg,mo);Jt.register(Ml,Ca);Jt.register(Ug,y0);Jt.register(Hl,v0);Jt.register(Dl,b0);Uu.register(l0,x0);Uu.register(Jf,eh);ht.registerSingleton(yo,_1);ht.registerSingleton(yo,Ft);Ft.namedCurveSize.set("P-256",32);Ft.namedCurveSize.set("K-256",32);Ft.namedCurveSize.set("P-384",48);Ft.namedCurveSize.set("P-521",66);const So=60*5;function S1(r){return new jt().openapi(ke({tags:["jwks"],method:"get",path:"/jwks.json",request:{},responses:{200:{content:{"application/json":{schema:xy}},description:"List of tenants"}}}),async t=>{const n=await t.env.data.keys.list(),s=await Promise.all(n.map(async i=>{const o=await new th(i.cert).publicKey.export(),c=await crypto.subtle.exportKey("jwk",o);return uf.parse({...c,kid:i.kid})}));return t.json({keys:s},{headers:{"access-control-allow-origin":"*","access-control-allow-method":"GET","cache-control":`public, max-age=${So}, stale-while-revalidate=${So*2}, stale-if-error=86400`}})}).openapi(ke({tags:["well known"],method:"get",path:"/openid-configuration",request:{},responses:{200:{content:{"application/json":{schema:Il}},description:"List of tenants"}}}),async t=>{const{issuer:n}=r,s=Il.parse({issuer:n,authorization_endpoint:`${n}authorize`,token_endpoint:`${n}oauth/token`,device_authorization_endpoint:`${n}oauth/device/code`,userinfo_endpoint:`${n}userinfo`,mfa_challenge_endpoint:`${n}mfa/challenge`,jwks_uri:`${n}.well-known/jwks.json`,registration_endpoint:`${n}oidc/register`,revocation_endpoint:`${n}oauth/revoke`,scopes_supported:["openid","profile","offline_access","name","given_name","family_name","nickname","email","email_verified","picture","created_at","identities","phone","address"],response_types_supported:["code","token","id_token","code token","code id_token","token id_token","code token id_token"],code_challenge_methods_supported:["S256","plain"],response_modes_supported:["query","fragment","form_post"],subject_types_supported:["public"],id_token_signing_alg_values_supported:["HS256","RS256"],token_endpoint_auth_methods_supported:["client_secret_basic","client_secret_post","private_key_jwt"],claims_supported:["aud","auth_time","created_at","email","email_verified","exp","family_name","given_name","iat","identities","iss","name","nickname","phone_number","picture","sub"],request_uri_parameter_supported:!1,request_parameter_supported:!1,token_endpoint_auth_signing_alg_values_supported:["RS256","RS384","PS256"]});return t.json(s,{headers:{"access-control-allow-origin":"*","access-control-allow-method":"GET","cache-control":`public, max-age=${So}, stale-while-revalidate=${So*2}, stale-if-error=86400`}})})}async function _0(r,e,t){return(await r.list(e,{page:0,per_page:10,include_totals:!1,q:`email:${t}`})).users}async function A1({userAdapter:r,tenant_id:e,email:t}){var o;const{users:n}=await r.list(e,{page:0,per_page:10,include_totals:!1,q:`email:${t}`}),s=n.filter(c=>!(c.provider==="auth2"&&!c.email_verified));if(s.length===0)return;const i=s.filter(c=>!c.linked_to);if(i.length>0)return i.length>1&&console.error("More than one primary user found for same email"),i[0];const a=await r.get(e,(o=s[0])==null?void 0:o.linked_to);if(!a)throw new Error("Primary account not found");return a}function O1(r){return async(e,t)=>{if(!t.email||!t.email_verified)return r.users.create(e,t);const n=await A1({userAdapter:r.users,tenant_id:e,email:t.email});return n?(await r.users.create(e,{...t,linked_to:n.user_id}),n):r.users.create(e,t)}}function w0(r,e){return{type:e.type,description:e.description||"",ip:r.req.header("x-real-ip")||"",user_agent:r.req.header("user-agent")||"",date:new Date().toISOString(),details:{request:{method:r.req.method,path:r.req.path,qs:r.req.queries(),body:e.body||r.var.body||""}},isMobile:!1,client_id:r.var.client_id,client_name:"",user_id:e.userId||r.var.user_id||"",hostname:r.req.header("host")||"",user_name:r.var.username||"",connection_id:"",connection:r.var.connection||"",strategy:"",strategy_type:"",audience:"",scope:[]}}async function E1(r,e,t){for await(const n of e)if(!(await fetch(n.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).ok){const i=w0(r,{type:Xc.FAILED_LOGIN_INCORRECT_PASSWORD,description:"Invalid password"});await t.logs.create(r.var.tenant_id,i)}}function I1(r,e){return async(t,n)=>{const{hooks:s}=await e.hooks.list(t,{q:"trigger_id:post-user-registration",page:0,per_page:100,include_totals:!1});return await E1(r,s,{tenant_id:t,user:n,trigger_id:"post-user-registration"}),n}}function C1(r,e){return async(t,n)=>{let s=await O1(e)(t,n);return await I1(r,e)(t,s),s}}function j1(r,e){return{...e,users:{...e.users,create:C1(r,e)}}}const T1=new jt().openapi(ke({tags:["branding"],method:"get",path:"/",request:{headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:El}},description:"Branding settings"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=await r.env.data.branding.get(e);return t?r.json(t):r.json({})}).openapi(ke({tags:["branding"],method:"patch",path:"/",request:{headers:v.object({"tenant-id":v.string()}),body:{content:{"application/json":{schema:v.object(El.shape).partial()}}}},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Branding settings"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json");return await r.env.data.branding.set(e,t),r.text("OK")});function N1(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var k0={exports:{}};const B1={},R1=Object.freeze(Object.defineProperty({__proto__:null,default:B1},Symbol.toStringTag,{value:"Module"})),P1=C_(R1);(function(r){/**
|
|
117
|
+
`)}}$t.CertificateTag="CERTIFICATE";$t.CrlTag="CRL";$t.CertificateRequestTag="CERTIFICATE REQUEST";$t.PublicKeyTag="PUBLIC KEY";$t.PrivateKeyTag="PRIVATE KEY";class Jr extends Bn{static isAsnEncoded(e){return q.isBufferSource(e)||typeof e=="string"}static toArrayBuffer(e){if(typeof e=="string"){if($t.isPem(e))return $t.decode(e)[0];if(te.isHex(e))return te.FromHex(e);if(te.isBase64(e))return te.FromBase64(e);if(te.isBase64Url(e))return te.FromBase64Url(e);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}else{const t=te.ToBinary(e);return $t.isPem(t)?$t.decode(t)[0]:te.isHex(t)?te.FromHex(t):te.isBase64(t)?te.FromBase64(t):te.isBase64Url(t)?te.FromBase64Url(t):q.toArrayBuffer(e)}}constructor(...e){Jr.isAsnEncoded(e[0])?super(Jr.toArrayBuffer(e[0]),e[1]):super(e[0])}toString(e="pem"){switch(e){case"pem":return $t.encode(this.rawData,this.tag);default:return super.toString(e)}}}class ur extends Jr{static async create(e,t=ut.get()){if(e instanceof ur)return e;if(hn.isCryptoKey(e)){if(e.type!=="public")throw new TypeError("Public key is required");const n=await t.subtle.exportKey("spki",e);return new ur(n)}else{if(e.publicKey)return e.publicKey;if(q.isBufferSource(e))return new ur(e);throw new TypeError("Unsupported PublicKeyType")}}constructor(e){Jr.isAsnEncoded(e)?super(e,ir):super(e),this.tag=$t.PublicKeyTag}async export(...e){let t,n=["verify"],s={hash:"SHA-256",...this.algorithm};e.length>1?(s=e[0]||s,n=e[1]||n,t=e[2]||ut.get()):t=e[0]||ut.get();let i=this.rawData;const a=L.parse(this.rawData,ir);return a.algorithm.algorithm===Vi&&(i=x1(a,i)),t.subtle.importKey("spki",i,s,!0,n)}onInit(e){const t=ht.resolve(fs),n=this.algorithm=t.toWebAlgorithm(e.algorithm);switch(e.algorithm.algorithm){case us:{const s=L.parse(e.subjectPublicKey,Kf),i=q.toUint8Array(s.modulus);n.publicExponent=q.toUint8Array(s.publicExponent),n.modulusLength=(i[0]?i:i.slice(1)).byteLength<<3;break}}}async getThumbprint(...e){var t;let n,s="SHA-1";return e.length>=1&&!(!((t=e[0])===null||t===void 0)&&t.subtle)?(s=e[0]||s,n=e[1]||ut.get()):n=e[0]||ut.get(),await n.subtle.digest(s,this.rawData)}async getKeyIdentifier(...e){let t,n="SHA-1";e.length===1?typeof e[0]=="string"?(n=e[0],t=ut.get()):t=e[0]:e.length===2?(n=e[0],t=e[1]):t=ut.get();const s=L.parse(this.rawData,ir);return await t.subtle.digest(n,s.subjectPublicKey)}toTextObject(){const e=this.toTextObjectEmpty(),t=L.parse(this.rawData,ir);switch(e.Algorithm=hs.serializeAlgorithm(t.algorithm),t.algorithm.algorithm){case ka:e["EC Point"]=t.subjectPublicKey;break;case us:default:e["Raw Data"]=t.subjectPublicKey}return e}}function x1(r,e){return r.algorithm=new Y({algorithm:us,parameters:null}),e=L.serialize(r),e}class Ca extends Gt{static async create(e,t=!1,n=ut.get()){if("name"in e&&"serialNumber"in e)return new Ca(e,t);const i=await(await ur.create(e,n)).getKeyIdentifier(n);return new Ca(te.ToHex(i),t)}constructor(...e){if(q.isBufferSource(e[0]))super(e[0]);else if(typeof e[0]=="string"){const t=new Ln({keyIdentifier:new If(te.FromHex(e[0]))});super(Ml,e[1],L.serialize(t))}else{const t=e[0],n=t.name instanceof Ea?L.parse(t.name.rawData,bt):t.name,s=new Ln({authorityCertIssuer:n,authorityCertSerialNumber:te.FromHex(t.serialNumber)});super(Ml,e[1],L.serialize(s))}}onInit(e){super.onInit(e);const t=L.parse(e.extnValue,Ln);t.keyIdentifier&&(this.keyId=te.ToHex(t.keyIdentifier)),(t.authorityCertIssuer||t.authorityCertSerialNumber)&&(this.certId={name:t.authorityCertIssuer||[],serialNumber:t.authorityCertSerialNumber?te.ToHex(t.authorityCertSerialNumber):""})}toTextObject(){const e=this.toTextObjectWithoutValue(),t=L.parse(this.value,Ln);return t.authorityCertIssuer&&(e["Authority Issuer"]=new Ea(t.authorityCertIssuer).toTextObject()),t.authorityCertSerialNumber&&(e["Authority Serial Number"]=t.authorityCertSerialNumber),t.keyIdentifier&&(e[""]=t.keyIdentifier),e}}Ca.NAME="Authority Key Identifier";class Yf extends Gt{constructor(...e){if(q.isBufferSource(e[0])){super(e[0]);const t=L.parse(this.value,lc);this.ca=t.cA,this.pathLength=t.pathLenConstraint}else{const t=new lc({cA:e[0],pathLenConstraint:e[1]});super(Rg,e[2],L.serialize(t)),this.ca=e[0],this.pathLength=e[1]}}toTextObject(){const e=this.toTextObjectWithoutValue();return this.ca&&(e.CA=this.ca),this.pathLength!==void 0&&(e["Path Length"]=this.pathLength),e}}Yf.NAME="Basic Constraints";var Yp;(function(r){r.serverAuth="1.3.6.1.5.5.7.3.1",r.clientAuth="1.3.6.1.5.5.7.3.2",r.codeSigning="1.3.6.1.5.5.7.3.3",r.emailProtection="1.3.6.1.5.5.7.3.4",r.timeStamping="1.3.6.1.5.5.7.3.8",r.ocspSigning="1.3.6.1.5.5.7.3.9"})(Yp||(Yp={}));class Xf extends Gt{constructor(...e){if(q.isBufferSource(e[0])){super(e[0]);const t=L.parse(this.value,pc);this.usages=t.map(n=>n)}else{const t=new pc(e[0]);super(Zg,e[1],L.serialize(t)),this.usages=e[0]}}toTextObject(){const e=this.toTextObjectWithoutValue();return e[""]=this.usages.map(t=>Nn.toString(t)).join(", "),e}}Xf.NAME="Extended Key Usages";var Vc;(function(r){r[r.digitalSignature=1]="digitalSignature",r[r.nonRepudiation=2]="nonRepudiation",r[r.keyEncipherment=4]="keyEncipherment",r[r.dataEncipherment=8]="dataEncipherment",r[r.keyAgreement=16]="keyAgreement",r[r.keyCertSign=32]="keyCertSign",r[r.cRLSign=64]="cRLSign",r[r.encipherOnly=128]="encipherOnly",r[r.decipherOnly=256]="decipherOnly"})(Vc||(Vc={}));class Qf extends Gt{constructor(...e){if(q.isBufferSource(e[0])){super(e[0]);const t=L.parse(this.value,Qu);this.usages=t.toNumber()}else{const t=new Qu(e[0]);super(Dg,e[1],L.serialize(t)),this.usages=e[0]}}toTextObject(){const e=this.toTextObjectWithoutValue(),t=L.parse(this.value,Qu);return e[""]=t.toJSON().join(", "),e}}Qf.NAME="Key Usages";class mo extends Gt{static async create(e,t=!1,n=ut.get()){const i=await(await ur.create(e,n)).getKeyIdentifier(n);return new mo(te.ToHex(i),t)}constructor(...e){if(q.isBufferSource(e[0])){super(e[0]);const t=L.parse(this.value,yn);this.keyId=te.ToHex(t)}else{const t=typeof e[0]=="string"?te.FromHex(e[0]):e[0],n=new yn(t);super(Lg,e[1],L.serialize(n)),this.keyId=te.ToHex(t)}}toTextObject(){const e=this.toTextObjectWithoutValue(),t=L.parse(this.value,yn);return e[""]=t,e}}mo.NAME="Subject Key Identifier";class y0 extends Gt{constructor(...e){q.isBufferSource(e[0])?super(e[0]):super(Ug,e[1],new Ea(e[0]||[]).rawData)}onInit(e){super.onInit(e);const t=L.parse(e.extnValue,ed);this.names=new Ea(t)}toTextObject(){const e=this.toTextObjectWithoutValue(),t=this.names.toTextObject();for(const n in t)e[n]=t[n];return e}}y0.NAME="Subject Alternative Name";class Jt{static register(e,t){this.items.set(e,t)}static create(e){const t=new Gt(e),n=this.items.get(t.type);return n?new n(e):t}}Jt.items=new Map;class g0 extends Gt{constructor(...e){var t;if(q.isBufferSource(e[0])){super(e[0]);const n=L.parse(this.value,fc);this.policies=n.map(s=>s.policyIdentifier)}else{const n=e[0],s=(t=e[1])!==null&&t!==void 0?t:!1,i=new fc(n.map(a=>new vu({policyIdentifier:a})));super(Pg,s,L.serialize(i)),this.policies=n}}toTextObject(){const e=this.toTextObjectWithoutValue();return e.Policy=this.policies.map(t=>new Me("",{},Nn.toString(t))),e}}g0.NAME="Certificate Policies";Jt.register(Pg,g0);class v0 extends Gt{constructor(...e){var t;if(q.isBufferSource(e[0]))super(e[0]);else if(Array.isArray(e[0])&&typeof e[0][0]=="string"){const s=e[0].map(a=>new li({distributionPoint:new is({fullName:[new ge({uniformResourceIdentifier:a})]})})),i=new Rs(s);super(Hl,e[1],L.serialize(i))}else{const n=new Rs(e[0]);super(Hl,e[1],L.serialize(n))}(t=this.distributionPoints)!==null&&t!==void 0||(this.distributionPoints=[])}onInit(e){super.onInit(e);const t=L.parse(e.extnValue,Rs);this.distributionPoints=t}toTextObject(){const e=this.toTextObjectWithoutValue();return e["Distribution Point"]=this.distributionPoints.map(t=>{var n;const s={};return t.distributionPoint&&(s[""]=(n=t.distributionPoint.fullName)===null||n===void 0?void 0:n.map(i=>new pn(i).toString()).join(", ")),t.reasons&&(s.Reasons=t.reasons.toString()),t.cRLIssuer&&(s["CRL Issuer"]=t.cRLIssuer.map(i=>i.toString()).join(", ")),s}),e}}v0.NAME="CRL Distribution Points";class b0 extends Gt{constructor(...e){var t,n,s,i;if(q.isBufferSource(e[0]))super(e[0]);else if(e[0]instanceof Is){const a=new Is(e[0]);super(Dl,e[1],L.serialize(a))}else{const a=e[0],o=new Is;ko(o,a,Rh,"ocsp"),ko(o,a,Ph,"caIssuers"),ko(o,a,$h,"timeStamping"),ko(o,a,Zh,"caRepository"),super(Dl,e[1],L.serialize(o))}(t=this.ocsp)!==null&&t!==void 0||(this.ocsp=[]),(n=this.caIssuers)!==null&&n!==void 0||(this.caIssuers=[]),(s=this.timeStamping)!==null&&s!==void 0||(this.timeStamping=[]),(i=this.caRepository)!==null&&i!==void 0||(this.caRepository=[])}onInit(e){super.onInit(e),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],L.parse(e.extnValue,Is).forEach(n=>{switch(n.accessMethod){case Rh:this.ocsp.push(new pn(n.accessLocation));break;case Ph:this.caIssuers.push(new pn(n.accessLocation));break;case $h:this.timeStamping.push(new pn(n.accessLocation));break;case Zh:this.caRepository.push(new pn(n.accessLocation));break}})}toTextObject(){const e=this.toTextObjectWithoutValue();return this.ocsp.length&&wo(e,"OCSP",this.ocsp),this.caIssuers.length&&wo(e,"CA Issuers",this.caIssuers),this.timeStamping.length&&wo(e,"Time Stamping",this.timeStamping),this.caRepository.length&&wo(e,"CA Repository",this.caRepository),e}}b0.NAME="Authority Info Access";function wo(r,e,t){if(t.length===1)r[e]=t[0].toTextObject();else{const n=new Me("");t.forEach((s,i)=>{const a=s.toTextObject(),o=`${a[Me.NAME]} ${i+1}`;let c=n[o];Array.isArray(c)||(c=[],n[o]=c),c.push(a)}),r[e]=n}}function ko(r,e,t,n){const s=e[n];s&&(Array.isArray(s)?s:[s]).forEach(a=>{typeof a=="string"&&(a=new pn("url",a)),r.push(new to({accessMethod:t,accessLocation:L.parse(a.rawData,ge)}))})}class gi extends Bn{constructor(...e){let t;if(q.isBufferSource(e[0]))t=q.toArrayBuffer(e[0]);else{const n=e[0],s=Array.isArray(e[1])?e[1].map(i=>q.toArrayBuffer(i)):[];t=L.serialize(new Kr({type:n,values:s}))}super(t,Kr)}onInit(e){this.type=e.type,this.values=e.values}toTextObject(){const e=this.toTextObjectWithoutValue();return e.Value=this.values.map(t=>new Me("",{"":t})),e}toTextObjectWithoutValue(){const e=this.toTextObjectEmpty();return e[Me.NAME]===gi.NAME&&(e[Me.NAME]=Nn.toString(this.type)),e}}gi.NAME="Attribute";class x0 extends gi{constructor(...e){var t;if(q.isBufferSource(e[0]))super(e[0]);else{const n=new Dc({printableString:e[0]});super(l0,[L.serialize(n)])}(t=this.password)!==null&&t!==void 0||(this.password="")}onInit(e){if(super.onInit(e),this.values[0]){const t=L.parse(this.values[0],Dc);this.password=t.toString()}}toTextObject(){const e=this.toTextObjectWithoutValue();return e[Me.VALUE]=this.password,e}}x0.NAME="Challenge Password";class eh extends gi{constructor(...e){var t;if(q.isBufferSource(e[0]))super(e[0]);else{const n=e[0],s=new kn;for(const i of n)s.push(L.parse(i.rawData,Kt));super(Jf,[L.serialize(s)])}(t=this.items)!==null&&t!==void 0||(this.items=[])}onInit(e){if(super.onInit(e),this.values[0]){const t=L.parse(this.values[0],kn);this.items=t.map(n=>Jt.create(L.serialize(n)))}}toTextObject(){const e=this.toTextObjectWithoutValue(),t=this.items.map(n=>n.toTextObject());for(const n of t)e[n[Me.NAME]]=n;return e}}eh.NAME="Extensions";class Uu{static register(e,t){this.items.set(e,t)}static create(e){const t=new gi(e),n=this.items.get(t.type);return n?new n(e):t}}Uu.items=new Map;const yo="crypto.signatureFormatter";class _1{toAsnSignature(e,t){return q.toArrayBuffer(t)}toWebSignature(e,t){return q.toArrayBuffer(t)}}var Ro;let Hd=Ro=class{static createPssParams(e,t){const n=Ro.getHashAlgorithm(e);return n?new ds({hashAlgorithm:n,maskGenAlgorithm:new Y({algorithm:Nu,parameters:L.serialize(n)}),saltLength:t}):null}static getHashAlgorithm(e){const t=ht.resolve(fs);return typeof e=="string"?t.toAsnAlgorithm({name:e}):typeof e=="object"&&e&&"name"in e?t.toAsnAlgorithm(e):null}toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in e){let t;if(typeof e.hash=="string")t=e.hash;else if(e.hash&&typeof e.hash=="object"&&"name"in e.hash&&typeof e.hash.name=="string")t=e.hash.name.toUpperCase();else throw new Error("Cannot get hash algorithm name");switch(t.toLowerCase()){case"sha-1":return new Y({algorithm:Ic,parameters:null});case"sha-256":return new Y({algorithm:_d,parameters:null});case"sha-384":return new Y({algorithm:Cc,parameters:null});case"sha-512":return new Y({algorithm:jc,parameters:null})}}else return new Y({algorithm:us,parameters:null});break;case"rsa-pss":if("hash"in e){if(!("saltLength"in e&&typeof e.saltLength=="number"))throw new Error("Cannot get 'saltLength' from 'alg' argument");const t=Ro.createPssParams(e.hash,e.saltLength);if(!t)throw new Error("Cannot create PSS parameters");return new Y({algorithm:Vi,parameters:L.serialize(t)})}else return new Y({algorithm:Vi,parameters:null})}return null}toWebAlgorithm(e){switch(e.algorithm){case us:return{name:"RSASSA-PKCS1-v1_5"};case Ic:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case _d:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case Cc:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case jc:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case Vi:if(e.parameters){const t=L.parse(e.parameters,ds);return{name:"RSA-PSS",hash:ht.resolve(fs).toWebAlgorithm(t.hashAlgorithm),saltLength:t.saltLength}}else return{name:"RSA-PSS"}}return null}};Hd=Ro=l([$u()],Hd);ht.registerSingleton(po,Hd);let Fd=class{toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"sha-1":return new Y({algorithm:Tc});case"sha-256":return new Y({algorithm:Nc});case"sha-384":return new Y({algorithm:Bc});case"sha-512":return new Y({algorithm:Rc})}return null}toWebAlgorithm(e){switch(e.algorithm){case Tc:return{name:"SHA-1"};case Nc:return{name:"SHA-256"};case Bc:return{name:"SHA-384"};case Rc:return{name:"SHA-512"}}return null}};Fd=l([$u()],Fd);ht.registerSingleton(po,Fd);class Ft{addPadding(e,t){const n=q.toUint8Array(t),s=new Uint8Array(e);return s.set(n,e-n.length),s}removePadding(e,t=!1){let n=q.toUint8Array(e);for(let s=0;s<n.length;s++)if(n[s]){n=n.slice(s);break}if(t&&n[0]>127){const s=new Uint8Array(n.length+1);return s.set(n,1),s.buffer}return n.buffer}toAsnSignature(e,t){if(e.name==="ECDSA"){const n=e.namedCurve,s=Ft.namedCurveSize.get(n)||Ft.defaultNamedCurveSize,i=new Ec,a=q.toUint8Array(t);return i.r=this.removePadding(a.slice(0,s),!0),i.s=this.removePadding(a.slice(s,s+s),!0),L.serialize(i)}return null}toWebSignature(e,t){if(e.name==="ECDSA"){const n=L.parse(t,Ec),s=e.namedCurve,i=Ft.namedCurveSize.get(s)||Ft.defaultNamedCurveSize,a=this.addPadding(i,this.removePadding(n.r)),o=this.addPadding(i,this.removePadding(n.s));return R_(a,o)}return null}}Ft.namedCurveSize=new Map;Ft.defaultNamedCurveSize=32;const ol="1.3.101.110",Xp="1.3.101.111",cl="1.3.101.112",Qp="1.3.101.113";let Wd=class{toAsnAlgorithm(e){let t=null;switch(e.name.toLowerCase()){case"ed25519":t=cl;break;case"x25519":t=ol;break;case"eddsa":switch(e.namedCurve.toLowerCase()){case"ed25519":t=cl;break;case"ed448":t=Qp;break}break;case"ecdh-es":switch(e.namedCurve.toLowerCase()){case"x25519":t=ol;break;case"x448":t=Xp;break}}return t?new Y({algorithm:t}):null}toWebAlgorithm(e){switch(e.algorithm){case cl:return{name:"Ed25519"};case Qp:return{name:"EdDSA",namedCurve:"Ed448"};case ol:return{name:"X25519"};case Xp:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Wd=l([$u()],Wd);ht.registerSingleton(po,Wd);class w1 extends Jr{constructor(e){Jr.isAsnEncoded(e)?super(e,Aa):super(e),this.tag=$t.CertificateRequestTag}onInit(e){this.tbs=L.serialize(e.certificationRequestInfo),this.publicKey=new ur(e.certificationRequestInfo.subjectPKInfo);const t=ht.resolve(fs);this.signatureAlgorithm=t.toWebAlgorithm(e.signatureAlgorithm),this.signature=e.signature,this.attributes=e.certificationRequestInfo.attributes.map(s=>Uu.create(L.serialize(s)));const n=this.getAttribute(Jf);this.extensions=[],n instanceof eh&&(this.extensions=n.items),this.subjectName=new Ht(e.certificationRequestInfo.subject),this.subject=this.subjectName.toString()}getAttribute(e){for(const t of this.attributes)if(t.type===e)return t;return null}getAttributes(e){return this.attributes.filter(t=>t.type===e)}getExtension(e){for(const t of this.extensions)if(t.type===e)return t;return null}getExtensions(e){return this.extensions.filter(t=>t.type===e)}async verify(e=ut.get()){const t={...this.publicKey.algorithm,...this.signatureAlgorithm},n=await this.publicKey.export(t,["verify"],e),s=ht.resolveAll(yo).reverse();let i=null;for(const o of s)if(i=o.toWebSignature(t,this.signature),i)break;if(!i)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await e.subtle.verify(this.signatureAlgorithm,n,i,this.tbs)}toTextObject(){const e=this.toTextObjectEmpty(),t=L.parse(this.rawData,Aa),n=t.certificationRequestInfo,s=new Me("",{Version:`${as[n.version]} (${n.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){const i=new Me("");for(const a of this.attributes){const o=a.toTextObject();i[o[Me.NAME]]=o}s.Attributes=i}return e.Data=s,e.Signature=new Me("",{Algorithm:hs.serializeAlgorithm(t.signatureAlgorithm),"":t.signature}),e}}w1.NAME="PKCS#10 Certificate Request";class th extends Jr{constructor(e){Jr.isAsnEncoded(e)?super(e,os):super(e),this.tag=$t.CertificateTag}onInit(e){const t=e.tbsCertificate;this.tbs=L.serialize(t),this.serialNumber=te.ToHex(t.serialNumber),this.subjectName=new Ht(t.subject),this.subject=new Ht(t.subject).toString(),this.issuerName=new Ht(t.issuer),this.issuer=this.issuerName.toString();const n=ht.resolve(fs);this.signatureAlgorithm=n.toWebAlgorithm(e.signatureAlgorithm),this.signature=e.signatureValue;const s=t.validity.notBefore.utcTime||t.validity.notBefore.generalTime;if(!s)throw new Error("Cannot get 'notBefore' value");this.notBefore=s;const i=t.validity.notAfter.utcTime||t.validity.notAfter.generalTime;if(!i)throw new Error("Cannot get 'notAfter' value");this.notAfter=i,this.extensions=[],t.extensions&&(this.extensions=t.extensions.map(a=>Jt.create(L.serialize(a)))),this.publicKey=new ur(t.subjectPublicKeyInfo)}getExtension(e){for(const t of this.extensions)if(typeof e=="string"){if(t.type===e)return t}else if(t instanceof e)return t;return null}getExtensions(e){return this.extensions.filter(t=>typeof e=="string"?t.type===e:t instanceof e)}async verify(e={},t=ut.get()){let n,s;const i=e.publicKey;try{if(!i)n={...this.publicKey.algorithm,...this.signatureAlgorithm},s=await this.publicKey.export(n,["verify"],t);else if("publicKey"in i)n={...i.publicKey.algorithm,...this.signatureAlgorithm},s=await i.publicKey.export(n,["verify"],t);else if(i instanceof ur)n={...i.algorithm,...this.signatureAlgorithm},s=await i.export(n,["verify"],t);else if(q.isBufferSource(i)){const u=new ur(i);n={...u.algorithm,...this.signatureAlgorithm},s=await u.export(n,["verify"],t)}else n={...i.algorithm,...this.signatureAlgorithm},s=i}catch{return!1}const a=ht.resolveAll(yo).reverse();let o=null;for(const u of a)if(o=u.toWebSignature(n,this.signature),o)break;if(!o)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");const c=await t.subtle.verify(this.signatureAlgorithm,s,o,this.tbs);if(e.signatureOnly)return c;{const f=(e.date||new Date).getTime();return c&&this.notBefore.getTime()<f&&f<this.notAfter.getTime()}}async getThumbprint(...e){let t,n="SHA-1";return e[0]&&(e[0].subtle?t=e[0]:(n=e[0]||n,t=e[1])),t??(t=ut.get()),await t.subtle.digest(n,this.rawData)}async isSelfSigned(e=ut.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},e)}toTextObject(){const e=this.toTextObjectEmpty(),t=L.parse(this.rawData,os),n=t.tbsCertificate,s=new Me("",{Version:`${as[n.version]} (${n.version})`,"Serial Number":n.serialNumber,"Signature Algorithm":hs.serializeAlgorithm(n.signature),Issuer:this.issuer,Validity:new Me("",{"Not Before":n.validity.notBefore.getTime(),"Not After":n.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(n.issuerUniqueID&&(s["Issuer Unique ID"]=n.issuerUniqueID),n.subjectUniqueID&&(s["Subject Unique ID"]=n.subjectUniqueID),this.extensions.length){const i=new Me("");for(const a of this.extensions){const o=a.toTextObject();i[o[Me.NAME]]=o}s.Extensions=i}return e.Data=s,e.Signature=new Me("",{Algorithm:hs.serializeAlgorithm(t.signatureAlgorithm),"":t.signatureValue}),e}}th.NAME="Certificate";class k1{static async createSelfSigned(e,t=ut.get()){if(!e.keys.privateKey)throw new Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!e.keys.publicKey)throw new Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:e.serialNumber,subject:e.name,issuer:e.name,notBefore:e.notBefore,notAfter:e.notAfter,publicKey:e.keys.publicKey,signingKey:e.keys.privateKey,signingAlgorithm:e.signingAlgorithm,extensions:e.extensions},t)}static async create(e,t=ut.get()){var n;let s;e.publicKey instanceof ur?s=e.publicKey.rawData:"publicKey"in e.publicKey?s=e.publicKey.publicKey.rawData:q.isBufferSource(e.publicKey)?s=e.publicKey:s=await t.subtle.exportKey("spki",e.publicKey);const i=e.serialNumber?q.toUint8Array(te.FromHex(e.serialNumber)):t.getRandomValues(new Uint8Array(16));i[0]>127&&(i[0]&=127),i.length>1&&i[0]===0&&(i[1]|=128);const a=e.notBefore||new Date,o=e.notAfter||new Date(a.getTime()+31536e6),c=new os({tbsCertificate:new Vt({version:as.v3,serialNumber:i,validity:new ro({notBefore:a,notAfter:o}),extensions:new kn(((n=e.extensions)===null||n===void 0?void 0:n.map(A=>L.parse(A.rawData,Kt)))||[]),subjectPublicKeyInfo:L.parse(s,ir)})});if(e.subject){const A=e.subject instanceof Ht?e.subject:new Ht(e.subject);c.tbsCertificate.subject=L.parse(A.toArrayBuffer(),et)}if(e.issuer){const A=e.issuer instanceof Ht?e.issuer:new Ht(e.issuer);c.tbsCertificate.issuer=L.parse(A.toArrayBuffer(),et)}const u={hash:"SHA-256"},f="signingKey"in e?{...u,...e.signingAlgorithm,...e.signingKey.algorithm}:{...u,...e.signingAlgorithm},m=ht.resolve(fs);c.tbsCertificate.signature=c.signatureAlgorithm=m.toAsnAlgorithm(f);const R=L.serialize(c.tbsCertificate),C="signingKey"in e?await t.subtle.sign(f,e.signingKey,R):e.signature,p=ht.resolveAll(yo).reverse();let y=null;for(const A of p)if(y=A.toAsnSignature(f,C),y)break;if(!y)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return c.signatureValue=y,new th(L.serialize(c))}}var em;(function(r){r[r.unspecified=0]="unspecified",r[r.keyCompromise=1]="keyCompromise",r[r.cACompromise=2]="cACompromise",r[r.affiliationChanged=3]="affiliationChanged",r[r.superseded=4]="superseded",r[r.cessationOfOperation=5]="cessationOfOperation",r[r.certificateHold=6]="certificateHold",r[r.removeFromCRL=8]="removeFromCRL",r[r.privilegeWithdrawn=9]="privilegeWithdrawn",r[r.aACompromise=10]="aACompromise"})(em||(em={}));Jt.register(Rg,Yf);Jt.register(Zg,Xf);Jt.register(Dg,Qf);Jt.register(Lg,mo);Jt.register(Ml,Ca);Jt.register(Ug,y0);Jt.register(Hl,v0);Jt.register(Dl,b0);Uu.register(l0,x0);Uu.register(Jf,eh);ht.registerSingleton(yo,_1);ht.registerSingleton(yo,Ft);Ft.namedCurveSize.set("P-256",32);Ft.namedCurveSize.set("K-256",32);Ft.namedCurveSize.set("P-384",48);Ft.namedCurveSize.set("P-521",66);const So=60*5;function S1(){return new jt().openapi(ke({tags:["jwks"],method:"get",path:"/jwks.json",request:{},responses:{200:{content:{"application/json":{schema:xy}},description:"List of tenants"}}}),async e=>{const t=await e.env.data.keys.list(),n=await Promise.all(t.map(async s=>{const a=await new th(s.cert).publicKey.export(),o=await crypto.subtle.exportKey("jwk",a);return uf.parse({...o,kid:s.kid})}));return e.json({keys:n},{headers:{"access-control-allow-origin":"*","access-control-allow-method":"GET","cache-control":`public, max-age=${So}, stale-while-revalidate=${So*2}, stale-if-error=86400`}})}).openapi(ke({tags:["well known"],method:"get",path:"/openid-configuration",request:{},responses:{200:{content:{"application/json":{schema:Il}},description:"List of tenants"}}}),async e=>{const t=e.env.ISSUER,n=Il.parse({issuer:t,authorization_endpoint:`${t}authorize`,token_endpoint:`${t}oauth/token`,device_authorization_endpoint:`${t}oauth/device/code`,userinfo_endpoint:`${t}userinfo`,mfa_challenge_endpoint:`${t}mfa/challenge`,jwks_uri:`${t}.well-known/jwks.json`,registration_endpoint:`${t}oidc/register`,revocation_endpoint:`${t}oauth/revoke`,scopes_supported:["openid","profile","offline_access","name","given_name","family_name","nickname","email","email_verified","picture","created_at","identities","phone","address"],response_types_supported:["code","token","id_token","code token","code id_token","token id_token","code token id_token"],code_challenge_methods_supported:["S256","plain"],response_modes_supported:["query","fragment","form_post"],subject_types_supported:["public"],id_token_signing_alg_values_supported:["HS256","RS256"],token_endpoint_auth_methods_supported:["client_secret_basic","client_secret_post","private_key_jwt"],claims_supported:["aud","auth_time","created_at","email","email_verified","exp","family_name","given_name","iat","identities","iss","name","nickname","phone_number","picture","sub"],request_uri_parameter_supported:!1,request_parameter_supported:!1,token_endpoint_auth_signing_alg_values_supported:["RS256","RS384","PS256"]});return e.json(n,{headers:{"access-control-allow-origin":"*","access-control-allow-method":"GET","cache-control":`public, max-age=${So}, stale-while-revalidate=${So*2}, stale-if-error=86400`}})})}async function _0(r,e,t){return(await r.list(e,{page:0,per_page:10,include_totals:!1,q:`email:${t}`})).users}async function A1({userAdapter:r,tenant_id:e,email:t}){var o;const{users:n}=await r.list(e,{page:0,per_page:10,include_totals:!1,q:`email:${t}`}),s=n.filter(c=>!(c.provider==="auth2"&&!c.email_verified));if(s.length===0)return;const i=s.filter(c=>!c.linked_to);if(i.length>0)return i.length>1&&console.error("More than one primary user found for same email"),i[0];const a=await r.get(e,(o=s[0])==null?void 0:o.linked_to);if(!a)throw new Error("Primary account not found");return a}function O1(r){return async(e,t)=>{if(!t.email||!t.email_verified)return r.users.create(e,t);const n=await A1({userAdapter:r.users,tenant_id:e,email:t.email});return n?(await r.users.create(e,{...t,linked_to:n.user_id}),n):r.users.create(e,t)}}function w0(r,e){return{type:e.type,description:e.description||"",ip:r.req.header("x-real-ip")||"",user_agent:r.req.header("user-agent")||"",date:new Date().toISOString(),details:{request:{method:r.req.method,path:r.req.path,qs:r.req.queries(),body:e.body||r.var.body||""}},isMobile:!1,client_id:r.var.client_id,client_name:"",user_id:e.userId||r.var.user_id||"",hostname:r.req.header("host")||"",user_name:r.var.username||"",connection_id:"",connection:r.var.connection||"",strategy:"",strategy_type:"",audience:"",scope:[]}}async function E1(r,e,t){for await(const n of e)if(!(await fetch(n.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).ok){const i=w0(r,{type:Xc.FAILED_LOGIN_INCORRECT_PASSWORD,description:"Invalid password"});await t.logs.create(r.var.tenant_id,i)}}function I1(r,e){return async(t,n)=>{const{hooks:s}=await e.hooks.list(t,{q:"trigger_id:post-user-registration",page:0,per_page:100,include_totals:!1});return await E1(r,s,{tenant_id:t,user:n,trigger_id:"post-user-registration"}),n}}function C1(r,e){return async(t,n)=>{let s=await O1(e)(t,n);return await I1(r,e)(t,s),s}}function j1(r,e){return{...e,users:{...e.users,create:C1(r,e)}}}const T1=new jt().openapi(ke({tags:["branding"],method:"get",path:"/",request:{headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:El}},description:"Branding settings"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=await r.env.data.branding.get(e);return t?r.json(t):r.json({})}).openapi(ke({tags:["branding"],method:"patch",path:"/",request:{headers:v.object({"tenant-id":v.string()}),body:{content:{"application/json":{schema:v.object(El.shape).partial()}}}},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Branding settings"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json");return await r.env.data.branding.set(e,t),r.text("OK")});function N1(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var k0={exports:{}};const B1={},R1=Object.freeze(Object.defineProperty({__proto__:null,default:B1},Symbol.toStringTag,{value:"Module"})),P1=C_(R1);(function(r){/**
|
|
118
118
|
* @license bcrypt.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
|
|
119
119
|
* Released under the Apache License, Version 2.0
|
|
120
120
|
* see: https://github.com/dcodeIO/bcrypt.js for details
|
|
@@ -122,4 +122,4 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
122
122
|
`,s=0;for(;s<t.length;)s+64<=t.length?n+=t.substr(s,64)+`\r
|
|
123
123
|
`:n+=t.substr(s)+`\r
|
|
124
124
|
`,s+=64;return n+=`-----END ${r} KEY-----\r
|
|
125
|
-
`,n}async function Q1(r){const e=await r.publicKey.export(),t=await crypto.subtle.exportKey("jwk",e),n=JSON.stringify(t,Object.keys(t).sort()),i=new TextEncoder().encode(n);return zd(await Y1(i))}const ek=1e3*60*60*24,tk=new jt().openapi(ke({tags:["keys"],method:"get",path:"/signing",request:{headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.array(Cl)}},description:"List of keys"}}}),async r=>{const t=(await r.env.data.keys.list()).filter(n=>"cert"in n).map(n=>n);return r.json(t)}).openapi(ke({tags:["keys"],method:"get",path:"/signing/{kid}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({kid:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:Cl}},description:"The requested key"}}}),async r=>{const{kid:e}=r.req.valid("param"),n=(await r.env.data.keys.list()).find(s=>s.kid===e);if(!n)throw new De(404,{message:"Key not found"});return r.json(n)}).openapi(ke({tags:["keys"],method:"post",path:"/signing/rotate",request:{headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{201:{description:"Status"}}}),async r=>{const e=await r.env.data.keys.list();for await(const n of e)await r.env.data.keys.update(n.kid,{revoked_at:new Date(Date.now()+ek).toISOString()});const t=await sm({name:`CN=${r.env.ORGANIZATION_NAME}`});return await r.env.data.keys.create(t),r.text("OK",{status:201})}).openapi(ke({tags:["keys"],method:"put",path:"/signing/{kid}/revoke",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({kid:v.string()})},security:[{Bearer:["auth:write"]}],responses:{201:{description:"Status"}}}),async r=>{const{kid:e}=r.req.valid("param");if(!await r.env.data.keys.update(e,{revoked_at:new Date().toISOString()}))throw new De(404,{message:"Key not found"});const n=await sm({name:`CN=${r.env.ORGANIZATION_NAME}`});return await r.env.data.keys.create(n),r.text("OK")}),rk=new jt().openapi(ke({tags:["users"],method:"get",path:"/",request:{query:v.object({email:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"tenant/json":{schema:v.array(sf)}},description:"List of users"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{email:t}=r.req.valid("query"),s=(await _0(r.env.data.users,e,t)).filter(i=>!i.linked_to);return r.json(s)}),nk=jn.extend({clients:v.array(Mn)}),sk=new jt().openapi(ke({tags:["clients"],method:"get",path:"/",request:{query:ps,headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.union([nk,v.array(Mn)])}},description:"List of clients"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{page:t,per_page:n,include_totals:s,sort:i,q:a}=r.req.valid("query"),c=(await r.env.data.applications.list(e,{page:t,per_page:n,include_totals:s,sort:vi(i),q:a})).applications;return s?r.json({clients:c,start:0,limit:10,length:c.length}):r.json(c)}).openapi(ke({tags:["clients"],method:"get",path:"/{id}",request:{params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:Mn}},description:"An application"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),s=(await r.env.data.applications.list(e,{page:1,per_page:0,include_totals:!1})).applications.find(i=>i.id===t);if(!s)throw new De(404);return r.json(s)}).openapi(ke({tags:["clients"],method:"delete",path:"/{id}",request:{params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Status"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param");if(!await r.env.data.applications.remove(e,t))throw new De(404,{message:"Application not found"});return r.text("OK")}).openapi(ke({tags:["clients"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:v.object(tc.shape).partial()}}},params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{content:{"application/json":{schema:Mn}},description:"The update application"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),s=r.req.valid("json");await r.env.data.applications.update(e,t,s);const i=await r.env.data.applications.get(e,t);if(!i)throw new De(404,{message:"Application not found"});return r.json(i)}).openapi(ke({tags:["clients"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:v.object(tc.shape)}}},headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{201:{content:{"application/json":{schema:v.object(Mn.shape)}},description:"An application"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json"),n={...t,id:t.id||Kd(),client_secret:t.client_secret||Kd()},s=await r.env.data.applications.create(e,n);return r.json(s,{status:201})});var Pe;(function(r){r.assertEqual=s=>s;function e(s){}r.assertIs=e;function t(s){throw new Error}r.assertNever=t,r.arrayToEnum=s=>{const i={};for(const a of s)i[a]=a;return i},r.getValidEnumValues=s=>{const i=r.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),a={};for(const o of i)a[o]=s[o];return r.objectValues(a)},r.objectValues=s=>r.objectKeys(s).map(function(i){return s[i]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const i=[];for(const a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},r.find=(s,i)=>{for(const a of s)if(i(a))return a},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}r.joinValues=n,r.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(Pe||(Pe={}));var Gd;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(Gd||(Gd={}));const J=Pe.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),on=r=>{switch(typeof r){case"undefined":return J.undefined;case"string":return J.string;case"number":return isNaN(r)?J.nan:J.number;case"boolean":return J.boolean;case"function":return J.function;case"bigint":return J.bigint;case"symbol":return J.symbol;case"object":return Array.isArray(r)?J.array:r===null?J.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?J.promise:typeof Map<"u"&&r instanceof Map?J.map:typeof Set<"u"&&r instanceof Set?J.set:typeof Date<"u"&&r instanceof Date?J.date:J.object;default:return J.unknown}},M=Pe.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),ik=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:");class Dt extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(i){return i.message},n={_errors:[]},s=i=>{for(const a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(t(a));else{let o=n,c=0;for(;c<a.path.length;){const u=a.path[c];c===a.path.length-1?(o[u]=o[u]||{_errors:[]},o[u]._errors.push(t(a))):o[u]=o[u]||{_errors:[]},o=o[u],c++}}};return s(this),n}static assert(e){if(!(e instanceof Dt))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Pe.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const s of this.issues)s.path.length>0?(t[s.path[0]]=t[s.path[0]]||[],t[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}Dt.create=r=>new Dt(r);const si=(r,e)=>{let t;switch(r.code){case M.invalid_type:r.received===J.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case M.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,Pe.jsonStringifyReplacer)}`;break;case M.unrecognized_keys:t=`Unrecognized key(s) in object: ${Pe.joinValues(r.keys,", ")}`;break;case M.invalid_union:t="Invalid input";break;case M.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Pe.joinValues(r.options)}`;break;case M.invalid_enum_value:t=`Invalid enum value. Expected ${Pe.joinValues(r.options)}, received '${r.received}'`;break;case M.invalid_arguments:t="Invalid function arguments";break;case M.invalid_return_type:t="Invalid function return type";break;case M.invalid_date:t="Invalid date";break;case M.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:Pe.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case M.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case M.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case M.custom:t="Invalid input";break;case M.invalid_intersection_types:t="Intersection results could not be merged";break;case M.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case M.not_finite:t="Number must be finite";break;default:t=e.defaultError,Pe.assertNever(r)}return{message:t}};let O0=si;function ak(r){O0=r}function Uc(){return O0}const Lc=r=>{const{data:e,path:t,errorMaps:n,issueData:s}=r,i=[...t,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="";const c=n.filter(u=>!!u).slice().reverse();for(const u of c)o=u(a,{data:e,defaultError:o}).message;return{...s,path:i,message:o}},ok=[];function W(r,e){const t=Uc(),n=Lc({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===si?void 0:si].filter(s=>!!s)});r.common.issues.push(n)}class gt{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const s of t){if(s.status==="aborted")return me;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const s of t){const i=await s.key,a=await s.value;n.push({key:i,value:a})}return gt.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const s of t){const{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return me;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}}const me=Object.freeze({status:"aborted"}),Cs=r=>({status:"dirty",value:r}),wt=r=>({status:"valid",value:r}),Jd=r=>r.status==="aborted",Yd=r=>r.status==="dirty",ja=r=>r.status==="valid",Ta=r=>typeof Promise<"u"&&r instanceof Promise;function qc(r,e,t,n){if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(r)}function E0(r,e,t,n,s){if(typeof e=="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(r,t),t}var ce;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(ce||(ce={}));var Ni,Bi;class Ir{constructor(e,t,n,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=s}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const im=(r,e)=>{if(ja(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new Dt(r.common.issues);return this._error=t,this._error}}};function _e(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:s}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(a,o)=>{var c,u;const{message:f}=r;return a.code==="invalid_enum_value"?{message:f??o.defaultError}:typeof o.data>"u"?{message:(c=f??n)!==null&&c!==void 0?c:o.defaultError}:a.code!=="invalid_type"?{message:o.defaultError}:{message:(u=f??t)!==null&&u!==void 0?u:o.defaultError}},description:s}}class Ee{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return on(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:on(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new gt,ctx:{common:e.parent.common,data:e.data,parsedType:on(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(Ta(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const s={common:{issues:[],async:(n=t==null?void 0:t.async)!==null&&n!==void 0?n:!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:on(e)},i=this._parseSync({data:e,path:s.path,parent:s});return im(s,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:on(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(Ta(s)?s:Promise.resolve(s));return im(n,i)}refine(e,t){const n=s=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(s):t;return this._refinement((s,i)=>{const a=e(s),o=()=>i.addIssue({code:M.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,t){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof t=="function"?t(n,s):t),!1))}_refinement(e){return new hr({schema:this,typeName:he.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return kr.create(this,this._def)}nullable(){return Cn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return lr.create(this,this._def)}promise(){return ai.create(this,this._def)}or(e){return Pa.create([this,e],this._def)}and(e){return $a.create(this,e,this._def)}transform(e){return new hr({..._e(this._def),schema:this,typeName:he.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new Ua({..._e(this._def),innerType:this,defaultValue:t,typeName:he.ZodDefault})}brand(){return new rh({typeName:he.ZodBranded,type:this,..._e(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new La({..._e(this._def),innerType:this,catchValue:t,typeName:he.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return go.create(this,e)}readonly(){return qa.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const ck=/^c[^\s-]{8,}$/i,uk=/^[0-9a-z]+$/,lk=/^[0-9A-HJKMNP-TV-Z]{26}$/,dk=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,fk=/^[a-z0-9_-]{21}$/i,hk=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,pk=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,mk="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let ul;const yk=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,gk=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,vk=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,I0="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",bk=new RegExp(`^${I0}$`);function C0(r){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`),e}function xk(r){return new RegExp(`^${C0(r)}$`)}function j0(r){let e=`${I0}T${C0(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function _k(r,e){return!!((e==="v4"||!e)&&yk.test(r)||(e==="v6"||!e)&&gk.test(r))}class ar extends Ee{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==J.string){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_type,expected:J.string,received:i.parsedType}),me}const n=new gt;let s;for(const i of this._def.checks)if(i.kind==="min")e.data.length<i.value&&(s=this._getOrReturnCtx(e,s),W(s,{code:M.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="max")e.data.length>i.value&&(s=this._getOrReturnCtx(e,s),W(s,{code:M.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){const a=e.data.length>i.value,o=e.data.length<i.value;(a||o)&&(s=this._getOrReturnCtx(e,s),a?W(s,{code:M.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):o&&W(s,{code:M.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),n.dirty())}else if(i.kind==="email")pk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"email",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="emoji")ul||(ul=new RegExp(mk,"u")),ul.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"emoji",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="uuid")dk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"uuid",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="nanoid")fk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"nanoid",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid")ck.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"cuid",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid2")uk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"cuid2",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="ulid")lk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"ulid",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),W(s,{validation:"url",code:M.invalid_string,message:i.message}),n.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"regex",code:M.invalid_string,message:i.message}),n.dirty())):i.kind==="trim"?e.data=e.data.trim():i.kind==="includes"?e.data.includes(i.value,i.position)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),n.dirty()):i.kind==="toLowerCase"?e.data=e.data.toLowerCase():i.kind==="toUpperCase"?e.data=e.data.toUpperCase():i.kind==="startsWith"?e.data.startsWith(i.value)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:{startsWith:i.value},message:i.message}),n.dirty()):i.kind==="endsWith"?e.data.endsWith(i.value)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:{endsWith:i.value},message:i.message}),n.dirty()):i.kind==="datetime"?j0(i).test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:"datetime",message:i.message}),n.dirty()):i.kind==="date"?bk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:"date",message:i.message}),n.dirty()):i.kind==="time"?xk(i).test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:"time",message:i.message}),n.dirty()):i.kind==="duration"?hk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"duration",code:M.invalid_string,message:i.message}),n.dirty()):i.kind==="ip"?_k(e.data,i.version)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"ip",code:M.invalid_string,message:i.message}),n.dirty()):i.kind==="base64"?vk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"base64",code:M.invalid_string,message:i.message}),n.dirty()):Pe.assertNever(i);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(s=>e.test(s),{validation:t,code:M.invalid_string,...ce.errToObj(n)})}_addCheck(e){return new ar({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ce.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ce.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ce.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ce.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ce.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ce.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ce.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ce.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ce.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ce.errToObj(e)})}datetime(e){var t,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!==null&&t!==void 0?t:!1,local:(n=e==null?void 0:e.local)!==null&&n!==void 0?n:!1,...ce.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...ce.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...ce.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...ce.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...ce.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...ce.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...ce.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...ce.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...ce.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...ce.errToObj(t)})}nonempty(e){return this.min(1,ce.errToObj(e))}trim(){return new ar({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ar({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ar({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}ar.create=r=>{var e;return new ar({checks:[],typeName:he.ZodString,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,..._e(r)})};function wk(r,e){const t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=t>n?t:n,i=parseInt(r.toFixed(s).replace(".","")),a=parseInt(e.toFixed(s).replace(".",""));return i%a/Math.pow(10,s)}class On extends Ee{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==J.number){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_type,expected:J.number,received:i.parsedType}),me}let n;const s=new gt;for(const i of this._def.checks)i.kind==="int"?Pe.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),W(n,{code:M.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?wk(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),W(n,{code:M.not_finite,message:i.message}),s.dirty()):Pe.assertNever(i);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,ce.toString(t))}gt(e,t){return this.setLimit("min",e,!1,ce.toString(t))}lte(e,t){return this.setLimit("max",e,!0,ce.toString(t))}lt(e,t){return this.setLimit("max",e,!1,ce.toString(t))}setLimit(e,t,n,s){return new On({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:ce.toString(s)}]})}_addCheck(e){return new On({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ce.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ce.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ce.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ce.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ce.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:ce.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:ce.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ce.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ce.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&Pe.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}On.create=r=>new On({checks:[],typeName:he.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,..._e(r)});class En extends Ee{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==J.bigint){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_type,expected:J.bigint,received:i.parsedType}),me}let n;const s=new gt;for(const i of this._def.checks)i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):Pe.assertNever(i);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,ce.toString(t))}gt(e,t){return this.setLimit("min",e,!1,ce.toString(t))}lte(e,t){return this.setLimit("max",e,!0,ce.toString(t))}lt(e,t){return this.setLimit("max",e,!1,ce.toString(t))}setLimit(e,t,n,s){return new En({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:ce.toString(s)}]})}_addCheck(e){return new En({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ce.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ce.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ce.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ce.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:ce.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}En.create=r=>{var e;return new En({checks:[],typeName:he.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,..._e(r)})};class Na extends Ee{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==J.boolean){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.boolean,received:n.parsedType}),me}return wt(e.data)}}Na.create=r=>new Na({typeName:he.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,..._e(r)});class ms extends Ee{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==J.date){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_type,expected:J.date,received:i.parsedType}),me}if(isNaN(e.data.getTime())){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_date}),me}const n=new gt;let s;for(const i of this._def.checks)i.kind==="min"?e.data.getTime()<i.value&&(s=this._getOrReturnCtx(e,s),W(s,{code:M.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),n.dirty()):i.kind==="max"?e.data.getTime()>i.value&&(s=this._getOrReturnCtx(e,s),W(s,{code:M.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):Pe.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new ms({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:ce.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:ce.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}ms.create=r=>new ms({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:he.ZodDate,..._e(r)});class Hc extends Ee{_parse(e){if(this._getType(e)!==J.symbol){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.symbol,received:n.parsedType}),me}return wt(e.data)}}Hc.create=r=>new Hc({typeName:he.ZodSymbol,..._e(r)});class Ba extends Ee{_parse(e){if(this._getType(e)!==J.undefined){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.undefined,received:n.parsedType}),me}return wt(e.data)}}Ba.create=r=>new Ba({typeName:he.ZodUndefined,..._e(r)});class Ra extends Ee{_parse(e){if(this._getType(e)!==J.null){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.null,received:n.parsedType}),me}return wt(e.data)}}Ra.create=r=>new Ra({typeName:he.ZodNull,..._e(r)});class ii extends Ee{constructor(){super(...arguments),this._any=!0}_parse(e){return wt(e.data)}}ii.create=r=>new ii({typeName:he.ZodAny,..._e(r)});class Xn extends Ee{constructor(){super(...arguments),this._unknown=!0}_parse(e){return wt(e.data)}}Xn.create=r=>new Xn({typeName:he.ZodUnknown,..._e(r)});class Yr extends Ee{_parse(e){const t=this._getOrReturnCtx(e);return W(t,{code:M.invalid_type,expected:J.never,received:t.parsedType}),me}}Yr.create=r=>new Yr({typeName:he.ZodNever,..._e(r)});class Fc extends Ee{_parse(e){if(this._getType(e)!==J.undefined){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.void,received:n.parsedType}),me}return wt(e.data)}}Fc.create=r=>new Fc({typeName:he.ZodVoid,..._e(r)});class lr extends Ee{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),s=this._def;if(t.parsedType!==J.array)return W(t,{code:M.invalid_type,expected:J.array,received:t.parsedType}),me;if(s.exactLength!==null){const a=t.data.length>s.exactLength.value,o=t.data.length<s.exactLength.value;(a||o)&&(W(t,{code:a?M.too_big:M.too_small,minimum:o?s.exactLength.value:void 0,maximum:a?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&t.data.length<s.minLength.value&&(W(t,{code:M.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&t.data.length>s.maxLength.value&&(W(t,{code:M.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((a,o)=>s.type._parseAsync(new Ir(t,a,t.path,o)))).then(a=>gt.mergeArray(n,a));const i=[...t.data].map((a,o)=>s.type._parseSync(new Ir(t,a,t.path,o)));return gt.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new lr({...this._def,minLength:{value:e,message:ce.toString(t)}})}max(e,t){return new lr({...this._def,maxLength:{value:e,message:ce.toString(t)}})}length(e,t){return new lr({...this._def,exactLength:{value:e,message:ce.toString(t)}})}nonempty(e){return this.min(1,e)}}lr.create=(r,e)=>new lr({type:r,minLength:null,maxLength:null,exactLength:null,typeName:he.ZodArray,..._e(e)});function As(r){if(r instanceof Ye){const e={};for(const t in r.shape){const n=r.shape[t];e[t]=kr.create(As(n))}return new Ye({...r._def,shape:()=>e})}else return r instanceof lr?new lr({...r._def,type:As(r.element)}):r instanceof kr?kr.create(As(r.unwrap())):r instanceof Cn?Cn.create(As(r.unwrap())):r instanceof Cr?Cr.create(r.items.map(e=>As(e))):r}class Ye extends Ee{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=Pe.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==J.object){const u=this._getOrReturnCtx(e);return W(u,{code:M.invalid_type,expected:J.object,received:u.parsedType}),me}const{status:n,ctx:s}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),o=[];if(!(this._def.catchall instanceof Yr&&this._def.unknownKeys==="strip"))for(const u in s.data)a.includes(u)||o.push(u);const c=[];for(const u of a){const f=i[u],m=s.data[u];c.push({key:{status:"valid",value:u},value:f._parse(new Ir(s,m,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Yr){const u=this._def.unknownKeys;if(u==="passthrough")for(const f of o)c.push({key:{status:"valid",value:f},value:{status:"valid",value:s.data[f]}});else if(u==="strict")o.length>0&&(W(s,{code:M.unrecognized_keys,keys:o}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const f of o){const m=s.data[f];c.push({key:{status:"valid",value:f},value:u._parse(new Ir(s,m,s.path,f)),alwaysSet:f in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const u=[];for(const f of c){const m=await f.key,R=await f.value;u.push({key:m,value:R,alwaysSet:f.alwaysSet})}return u}).then(u=>gt.mergeObjectSync(n,u)):gt.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return ce.errToObj,new Ye({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var s,i,a,o;const c=(a=(i=(s=this._def).errorMap)===null||i===void 0?void 0:i.call(s,t,n).message)!==null&&a!==void 0?a:n.defaultError;return t.code==="unrecognized_keys"?{message:(o=ce.errToObj(e).message)!==null&&o!==void 0?o:c}:{message:c}}}:{}})}strip(){return new Ye({...this._def,unknownKeys:"strip"})}passthrough(){return new Ye({...this._def,unknownKeys:"passthrough"})}extend(e){return new Ye({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Ye({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:he.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Ye({...this._def,catchall:e})}pick(e){const t={};return Pe.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])}),new Ye({...this._def,shape:()=>t})}omit(e){const t={};return Pe.objectKeys(this.shape).forEach(n=>{e[n]||(t[n]=this.shape[n])}),new Ye({...this._def,shape:()=>t})}deepPartial(){return As(this)}partial(e){const t={};return Pe.objectKeys(this.shape).forEach(n=>{const s=this.shape[n];e&&!e[n]?t[n]=s:t[n]=s.optional()}),new Ye({...this._def,shape:()=>t})}required(e){const t={};return Pe.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])t[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof kr;)i=i._def.innerType;t[n]=i}}),new Ye({...this._def,shape:()=>t})}keyof(){return T0(Pe.objectKeys(this.shape))}}Ye.create=(r,e)=>new Ye({shape:()=>r,unknownKeys:"strip",catchall:Yr.create(),typeName:he.ZodObject,..._e(e)});Ye.strictCreate=(r,e)=>new Ye({shape:()=>r,unknownKeys:"strict",catchall:Yr.create(),typeName:he.ZodObject,..._e(e)});Ye.lazycreate=(r,e)=>new Ye({shape:r,unknownKeys:"strip",catchall:Yr.create(),typeName:he.ZodObject,..._e(e)});class Pa extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function s(i){for(const o of i)if(o.result.status==="valid")return o.result;for(const o of i)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;const a=i.map(o=>new Dt(o.ctx.common.issues));return W(t,{code:M.invalid_union,unionErrors:a}),me}if(t.common.async)return Promise.all(n.map(async i=>{const a={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:a}),ctx:a}})).then(s);{let i;const a=[];for(const c of n){const u={...t,common:{...t.common,issues:[]},parent:null},f=c._parseSync({data:t.data,path:t.path,parent:u});if(f.status==="valid")return f;f.status==="dirty"&&!i&&(i={result:f,ctx:u}),u.common.issues.length&&a.push(u.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;const o=a.map(c=>new Dt(c));return W(t,{code:M.invalid_union,unionErrors:o}),me}}get options(){return this._def.options}}Pa.create=(r,e)=>new Pa({options:r,typeName:he.ZodUnion,..._e(e)});const Rr=r=>r instanceof Da?Rr(r.schema):r instanceof hr?Rr(r.innerType()):r instanceof Ma?[r.value]:r instanceof In?r.options:r instanceof Va?Pe.objectValues(r.enum):r instanceof Ua?Rr(r._def.innerType):r instanceof Ba?[void 0]:r instanceof Ra?[null]:r instanceof kr?[void 0,...Rr(r.unwrap())]:r instanceof Cn?[null,...Rr(r.unwrap())]:r instanceof rh||r instanceof qa?Rr(r.unwrap()):r instanceof La?Rr(r._def.innerType):[];class Lu extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==J.object)return W(t,{code:M.invalid_type,expected:J.object,received:t.parsedType}),me;const n=this.discriminator,s=t.data[n],i=this.optionsMap.get(s);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(W(t,{code:M.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),me)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const s=new Map;for(const i of t){const a=Rr(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const o of a){if(s.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new Lu({typeName:he.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:s,..._e(n)})}}function Xd(r,e){const t=on(r),n=on(e);if(r===e)return{valid:!0,data:r};if(t===J.object&&n===J.object){const s=Pe.objectKeys(e),i=Pe.objectKeys(r).filter(o=>s.indexOf(o)!==-1),a={...r,...e};for(const o of i){const c=Xd(r[o],e[o]);if(!c.valid)return{valid:!1};a[o]=c.data}return{valid:!0,data:a}}else if(t===J.array&&n===J.array){if(r.length!==e.length)return{valid:!1};const s=[];for(let i=0;i<r.length;i++){const a=r[i],o=e[i],c=Xd(a,o);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return t===J.date&&n===J.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}class $a extends Ee{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=(i,a)=>{if(Jd(i)||Jd(a))return me;const o=Xd(i.value,a.value);return o.valid?((Yd(i)||Yd(a))&&t.dirty(),{status:t.value,value:o.data}):(W(n,{code:M.invalid_intersection_types}),me)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}$a.create=(r,e,t)=>new $a({left:r,right:e,typeName:he.ZodIntersection,..._e(t)});class Cr extends Ee{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==J.array)return W(n,{code:M.invalid_type,expected:J.array,received:n.parsedType}),me;if(n.data.length<this._def.items.length)return W(n,{code:M.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),me;!this._def.rest&&n.data.length>this._def.items.length&&(W(n,{code:M.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const i=[...n.data].map((a,o)=>{const c=this._def.items[o]||this._def.rest;return c?c._parse(new Ir(n,a,n.path,o)):null}).filter(a=>!!a);return n.common.async?Promise.all(i).then(a=>gt.mergeArray(t,a)):gt.mergeArray(t,i)}get items(){return this._def.items}rest(e){return new Cr({...this._def,rest:e})}}Cr.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Cr({items:r,typeName:he.ZodTuple,rest:null,..._e(e)})};class Za extends Ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==J.object)return W(n,{code:M.invalid_type,expected:J.object,received:n.parsedType}),me;const s=[],i=this._def.keyType,a=this._def.valueType;for(const o in n.data)s.push({key:i._parse(new Ir(n,o,n.path,o)),value:a._parse(new Ir(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?gt.mergeObjectAsync(t,s):gt.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof Ee?new Za({keyType:e,valueType:t,typeName:he.ZodRecord,..._e(n)}):new Za({keyType:ar.create(),valueType:e,typeName:he.ZodRecord,..._e(t)})}}class Wc extends Ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==J.map)return W(n,{code:M.invalid_type,expected:J.map,received:n.parsedType}),me;const s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([o,c],u)=>({key:s._parse(new Ir(n,o,n.path,[u,"key"])),value:i._parse(new Ir(n,c,n.path,[u,"value"]))}));if(n.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const c of a){const u=await c.key,f=await c.value;if(u.status==="aborted"||f.status==="aborted")return me;(u.status==="dirty"||f.status==="dirty")&&t.dirty(),o.set(u.value,f.value)}return{status:t.value,value:o}})}else{const o=new Map;for(const c of a){const u=c.key,f=c.value;if(u.status==="aborted"||f.status==="aborted")return me;(u.status==="dirty"||f.status==="dirty")&&t.dirty(),o.set(u.value,f.value)}return{status:t.value,value:o}}}}Wc.create=(r,e,t)=>new Wc({valueType:e,keyType:r,typeName:he.ZodMap,..._e(t)});class ys extends Ee{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==J.set)return W(n,{code:M.invalid_type,expected:J.set,received:n.parsedType}),me;const s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&(W(n,{code:M.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),t.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&(W(n,{code:M.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const i=this._def.valueType;function a(c){const u=new Set;for(const f of c){if(f.status==="aborted")return me;f.status==="dirty"&&t.dirty(),u.add(f.value)}return{status:t.value,value:u}}const o=[...n.data.values()].map((c,u)=>i._parse(new Ir(n,c,n.path,u)));return n.common.async?Promise.all(o).then(c=>a(c)):a(o)}min(e,t){return new ys({...this._def,minSize:{value:e,message:ce.toString(t)}})}max(e,t){return new ys({...this._def,maxSize:{value:e,message:ce.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}ys.create=(r,e)=>new ys({valueType:r,minSize:null,maxSize:null,typeName:he.ZodSet,..._e(e)});class Ps extends Ee{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==J.function)return W(t,{code:M.invalid_type,expected:J.function,received:t.parsedType}),me;function n(o,c){return Lc({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Uc(),si].filter(u=>!!u),issueData:{code:M.invalid_arguments,argumentsError:c}})}function s(o,c){return Lc({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Uc(),si].filter(u=>!!u),issueData:{code:M.invalid_return_type,returnTypeError:c}})}const i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof ai){const o=this;return wt(async function(...c){const u=new Dt([]),f=await o._def.args.parseAsync(c,i).catch(C=>{throw u.addIssue(n(c,C)),u}),m=await Reflect.apply(a,this,f);return await o._def.returns._def.type.parseAsync(m,i).catch(C=>{throw u.addIssue(s(m,C)),u})})}else{const o=this;return wt(function(...c){const u=o._def.args.safeParse(c,i);if(!u.success)throw new Dt([n(c,u.error)]);const f=Reflect.apply(a,this,u.data),m=o._def.returns.safeParse(f,i);if(!m.success)throw new Dt([s(f,m.error)]);return m.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ps({...this._def,args:Cr.create(e).rest(Xn.create())})}returns(e){return new Ps({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Ps({args:e||Cr.create([]).rest(Xn.create()),returns:t||Xn.create(),typeName:he.ZodFunction,..._e(n)})}}class Da extends Ee{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}Da.create=(r,e)=>new Da({getter:r,typeName:he.ZodLazy,..._e(e)});class Ma extends Ee{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return W(t,{received:t.data,code:M.invalid_literal,expected:this._def.value}),me}return{status:"valid",value:e.data}}get value(){return this._def.value}}Ma.create=(r,e)=>new Ma({value:r,typeName:he.ZodLiteral,..._e(e)});function T0(r,e){return new In({values:r,typeName:he.ZodEnum,..._e(e)})}class In extends Ee{constructor(){super(...arguments),Ni.set(this,void 0)}_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return W(t,{expected:Pe.joinValues(n),received:t.parsedType,code:M.invalid_type}),me}if(qc(this,Ni)||E0(this,Ni,new Set(this._def.values)),!qc(this,Ni).has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return W(t,{received:t.data,code:M.invalid_enum_value,options:n}),me}return wt(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return In.create(e,{...this._def,...t})}exclude(e,t=this._def){return In.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}Ni=new WeakMap;In.create=T0;class Va extends Ee{constructor(){super(...arguments),Bi.set(this,void 0)}_parse(e){const t=Pe.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==J.string&&n.parsedType!==J.number){const s=Pe.objectValues(t);return W(n,{expected:Pe.joinValues(s),received:n.parsedType,code:M.invalid_type}),me}if(qc(this,Bi)||E0(this,Bi,new Set(Pe.getValidEnumValues(this._def.values))),!qc(this,Bi).has(e.data)){const s=Pe.objectValues(t);return W(n,{received:n.data,code:M.invalid_enum_value,options:s}),me}return wt(e.data)}get enum(){return this._def.values}}Bi=new WeakMap;Va.create=(r,e)=>new Va({values:r,typeName:he.ZodNativeEnum,..._e(e)});class ai extends Ee{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==J.promise&&t.common.async===!1)return W(t,{code:M.invalid_type,expected:J.promise,received:t.parsedType}),me;const n=t.parsedType===J.promise?t.data:Promise.resolve(t.data);return wt(n.then(s=>this._def.type.parseAsync(s,{path:t.path,errorMap:t.common.contextualErrorMap})))}}ai.create=(r,e)=>new ai({type:r,typeName:he.ZodPromise,..._e(e)});class hr extends Ee{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===he.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{W(n,a),a.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){const a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async o=>{if(t.value==="aborted")return me;const c=await this._def.schema._parseAsync({data:o,path:n.path,parent:n});return c.status==="aborted"?me:c.status==="dirty"||t.value==="dirty"?Cs(c.value):c});{if(t.value==="aborted")return me;const o=this._def.schema._parseSync({data:a,path:n.path,parent:n});return o.status==="aborted"?me:o.status==="dirty"||t.value==="dirty"?Cs(o.value):o}}if(s.type==="refinement"){const a=o=>{const c=s.refinement(o,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(n.common.async===!1){const o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?me:(o.status==="dirty"&&t.dirty(),a(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>o.status==="aborted"?me:(o.status==="dirty"&&t.dirty(),a(o.value).then(()=>({status:t.value,value:o.value}))))}if(s.type==="transform")if(n.common.async===!1){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!ja(a))return a;const o=s.transform(a.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>ja(a)?Promise.resolve(s.transform(a.value,i)).then(o=>({status:t.value,value:o})):a);Pe.assertNever(s)}}hr.create=(r,e,t)=>new hr({schema:r,typeName:he.ZodEffects,effect:e,..._e(t)});hr.createWithPreprocess=(r,e,t)=>new hr({schema:e,effect:{type:"preprocess",transform:r},typeName:he.ZodEffects,..._e(t)});class kr extends Ee{_parse(e){return this._getType(e)===J.undefined?wt(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}kr.create=(r,e)=>new kr({innerType:r,typeName:he.ZodOptional,..._e(e)});class Cn extends Ee{_parse(e){return this._getType(e)===J.null?wt(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Cn.create=(r,e)=>new Cn({innerType:r,typeName:he.ZodNullable,..._e(e)});class Ua extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===J.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Ua.create=(r,e)=>new Ua({innerType:r,typeName:he.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,..._e(e)});class La extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Ta(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Dt(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Dt(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}La.create=(r,e)=>new La({innerType:r,typeName:he.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,..._e(e)});class Kc extends Ee{_parse(e){if(this._getType(e)!==J.nan){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.nan,received:n.parsedType}),me}return{status:"valid",value:e.data}}}Kc.create=r=>new Kc({typeName:he.ZodNaN,..._e(r)});const kk=Symbol("zod_brand");class rh extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class go extends Ee{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?me:i.status==="dirty"?(t.dirty(),Cs(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{const s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?me:s.status==="dirty"?(t.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,t){return new go({in:e,out:t,typeName:he.ZodPipeline})}}class qa extends Ee{_parse(e){const t=this._def.innerType._parse(e),n=s=>(ja(s)&&(s.value=Object.freeze(s.value)),s);return Ta(t)?t.then(s=>n(s)):n(t)}unwrap(){return this._def.innerType}}qa.create=(r,e)=>new qa({innerType:r,typeName:he.ZodReadonly,..._e(e)});function N0(r,e={},t){return r?ii.create().superRefine((n,s)=>{var i,a;if(!r(n)){const o=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,c=(a=(i=o.fatal)!==null&&i!==void 0?i:t)!==null&&a!==void 0?a:!0,u=typeof o=="string"?{message:o}:o;s.addIssue({code:"custom",...u,fatal:c})}}):ii.create()}const Sk={object:Ye.lazycreate};var he;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(he||(he={}));const Ak=(r,e={message:`Input not instance of ${r.name}`})=>N0(t=>t instanceof r,e),B0=ar.create,R0=On.create,Ok=Kc.create,Ek=En.create,P0=Na.create,Ik=ms.create,Ck=Hc.create,jk=Ba.create,Tk=Ra.create,Nk=ii.create,Bk=Xn.create,Rk=Yr.create,Pk=Fc.create,$k=lr.create,Zk=Ye.create,Dk=Ye.strictCreate,Mk=Pa.create,Vk=Lu.create,Uk=$a.create,Lk=Cr.create,qk=Za.create,Hk=Wc.create,Fk=ys.create,Wk=Ps.create,Kk=Da.create,zk=Ma.create,Gk=In.create,Jk=Va.create,Yk=ai.create,am=hr.create,Xk=kr.create,Qk=Cn.create,eS=hr.createWithPreprocess,tS=go.create,rS=()=>B0().optional(),nS=()=>R0().optional(),sS=()=>P0().optional(),iS={string:r=>ar.create({...r,coerce:!0}),number:r=>On.create({...r,coerce:!0}),boolean:r=>Na.create({...r,coerce:!0}),bigint:r=>En.create({...r,coerce:!0}),date:r=>ms.create({...r,coerce:!0})},aS=me;var Lt=Object.freeze({__proto__:null,defaultErrorMap:si,setErrorMap:ak,getErrorMap:Uc,makeIssue:Lc,EMPTY_PATH:ok,addIssueToContext:W,ParseStatus:gt,INVALID:me,DIRTY:Cs,OK:wt,isAborted:Jd,isDirty:Yd,isValid:ja,isAsync:Ta,get util(){return Pe},get objectUtil(){return Gd},ZodParsedType:J,getParsedType:on,ZodType:Ee,datetimeRegex:j0,ZodString:ar,ZodNumber:On,ZodBigInt:En,ZodBoolean:Na,ZodDate:ms,ZodSymbol:Hc,ZodUndefined:Ba,ZodNull:Ra,ZodAny:ii,ZodUnknown:Xn,ZodNever:Yr,ZodVoid:Fc,ZodArray:lr,ZodObject:Ye,ZodUnion:Pa,ZodDiscriminatedUnion:Lu,ZodIntersection:$a,ZodTuple:Cr,ZodRecord:Za,ZodMap:Wc,ZodSet:ys,ZodFunction:Ps,ZodLazy:Da,ZodLiteral:Ma,ZodEnum:In,ZodNativeEnum:Va,ZodPromise:ai,ZodEffects:hr,ZodTransformer:hr,ZodOptional:kr,ZodNullable:Cn,ZodDefault:Ua,ZodCatch:La,ZodNaN:Kc,BRAND:kk,ZodBranded:rh,ZodPipeline:go,ZodReadonly:qa,custom:N0,Schema:Ee,ZodSchema:Ee,late:Sk,get ZodFirstPartyTypeKind(){return he},coerce:iS,any:Nk,array:$k,bigint:Ek,boolean:P0,date:Ik,discriminatedUnion:Vk,effect:am,enum:Gk,function:Wk,instanceof:Ak,intersection:Uk,lazy:Kk,literal:zk,map:Hk,nan:Ok,nativeEnum:Jk,never:Rk,null:Tk,nullable:Qk,number:R0,object:Zk,oboolean:sS,onumber:nS,optional:Xk,ostring:rS,pipeline:tS,preprocess:eS,promise:Yk,record:qk,set:Fk,strictObject:Dk,string:B0,symbol:Ck,transformer:am,tuple:Lk,undefined:jk,union:Mk,unknown:Bk,void:Pk,NEVER:aS,ZodIssueCode:M,quotelessJson:ik,ZodError:Dt});Lt.object({start:Lt.number(),limit:Lt.number(),length:Lt.number()});Yc.extend({email:Lt.string(),login_count:Lt.number(),multifactor:Lt.array(Lt.string()).optional(),last_ip:Lt.string().optional(),last_login:Lt.string().optional(),user_id:Lt.string()}).catchall(Lt.any());const oS=jn.extend({tenants:v.array(Ns)}),cS=new jt().openapi(ke({tags:["tenants"],method:"get",path:"/",request:{query:ps},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"tenant/json":{schema:v.union([v.array(Ns),oS])}},description:"List of tenants"}}}),async r=>{const{page:e,per_page:t,include_totals:n,sort:s,q:i}=r.req.valid("query"),a=await r.env.data.tenants.list({page:e,per_page:t,include_totals:n,sort:vi(s),q:i});return n?r.json(a):r.json(a.tenants)}).openapi(ke({tags:["tenants"],method:"get",path:"/{id}",request:{params:v.object({id:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"tenant/json":{schema:Ns}},description:"A tenant"}}}),async r=>{const{id:e}=r.req.valid("param"),t=await r.env.data.tenants.get(e);if(!t)throw new De(404);return console.log("tenant",t),r.json(t)}).openapi(ke({tags:["tenants"],method:"delete",path:"/{id}",request:{params:v.object({id:v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Status"}}}),async r=>{const{id:e}=r.req.valid("param");return await r.env.data.tenants.remove(e),r.text("OK")}).openapi(ke({tags:["tenants"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:v.object(nc.shape).partial()}}},params:v.object({id:v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Status"}}}),async r=>{const{id:e}=r.req.valid("param"),t=r.req.valid("json");return await r.env.data.tenants.update(e,t),r.text("OK")}).openapi(ke({tags:["tenants"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:v.object(nc.shape)}}}},security:[{Bearer:["auth:write"]}],responses:{200:{content:{"tenant/json":{schema:Ns}},description:"An tenant"}}}),async r=>{const e=r.req.valid("json"),t=await r.env.data.tenants.create(e);return r.json(t,{status:201})}),uS=jn.extend({logs:v.array(ic)}),lS=new jt().openapi(ke({tags:["logs"],method:"get",path:"/",request:{query:ps,headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.union([v.array(ic),uS])}},description:"List of log rows"}}}),async r=>{const{page:e,per_page:t,include_totals:n,sort:s,q:i}=r.req.valid("query"),{"tenant-id":a}=r.req.valid("header"),o=await r.env.data.logs.list(a,{page:e,per_page:t,include_totals:n,sort:vi(s),q:i});return n?r.json(o):r.json(o.logs)}).openapi(ke({tags:["logs"],method:"get",path:"/{id}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({id:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:ic}},description:"A log entry"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),n=await r.env.data.logs.get(e,t);if(!n)throw new De(404);return r.json(n)}),dS=jn.extend({hooks:v.array(Es)}),fS=new jt().openapi(ke({tags:["hooks"],method:"get",path:"/",request:{query:ps,headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.union([v.array(Es),dS])}},description:"List of hooks"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{page:t,per_page:n,include_totals:s,sort:i,q:a}=r.req.valid("query"),o=await r.env.data.hooks.list(e,{page:t,per_page:n,include_totals:s,sort:vi(i),q:a});return s?r.json(o):r.json(o.hooks)}).openapi(ke({tags:["hooks"],method:"post",path:"/",request:{headers:v.object({"tenant-id":v.string()}),body:{content:{"application/json":{schema:v.object(sc.shape)}}}},security:[{Bearer:["auth:write"]}],responses:{201:{content:{"application/json":{schema:Es}},description:"The created hook"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json"),n=await r.env.data.hooks.create(e,t);return r.json(n,{status:201})}).openapi(ke({tags:["hooks"],method:"patch",path:"/{hook_id}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({hook_id:v.string()}),body:{content:{"application/json":{schema:v.object(sc.shape).omit({hook_id:!0}).partial()}}}},security:[{Bearer:["auth:write"]}],responses:{200:{content:{"application/json":{schema:Es.shape}},description:"The updated hook"},404:{description:"Hook not found"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{hook_id:t}=r.req.valid("param"),n=r.req.valid("json");await r.env.data.hooks.update(e,t,n);const s=await r.env.data.hooks.get(e,t);if(!s)throw new De(404,{message:"Hook not found"});return r.json(s)}).openapi(ke({tags:["hooks"],method:"get",path:"/{hook_id}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({hook_id:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:Es}},description:"A hook"},404:{description:"Hook not found"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{hook_id:t}=r.req.valid("param"),n=await r.env.data.hooks.get(e,t);if(!n)throw new De(404,{message:"Hook not found"});return r.json(n)}).openapi(ke({tags:["hooks"],method:"delete",path:"/{hook_id}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({hook_id:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{description:"A hook"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{hook_id:t}=r.req.valid("param");if(!await r.env.data.hooks.remove(e,t))throw new De(404,{message:"Hook not found"});return r.text("OK")}),hS=jn.extend({connections:v.array(Vn)}),pS=new jt().openapi(ke({tags:["connections"],method:"get",path:"/",request:{query:ps,headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.union([v.array(Vn),hS])}},description:"List of connectionss"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{page:t,per_page:n,include_totals:s=!1,sort:i,q:a}=r.req.valid("query"),o=await r.env.data.connections.list(e,{page:t,per_page:n,include_totals:s,sort:vi(i),q:a});return s?r.json(o):r.json(o.connections)}).openapi(ke({tags:["connections"],method:"get",path:"/{id}",request:{params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:Vn}},description:"A connection"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),n=await r.env.data.connections.get(e,t);if(!n)throw new De(404);return r.json(n)}).openapi(ke({tags:["connections"],method:"delete",path:"/{id}",request:{params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Status"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param");if(!await r.env.data.connections.remove(e,t))throw new De(404,{message:"Connection not found"});return r.text("OK")}).openapi(ke({tags:["connections"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:v.object(rc.shape).partial()}}},params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{content:{"application/json":{schema:Vn}},description:"The updated connection"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),n=r.req.valid("json");if(!await r.env.data.connections.update(e,t,n))throw new De(404,{message:"Connection not found"});const i=await r.env.data.connections.get(e,t);if(!i)throw new De(404,{message:"Connection not found"});return r.json(i)}).openapi(ke({tags:["connections"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:v.object(rc.shape)}}},headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{201:{content:{"application/json":{schema:Vn}},description:"A connection"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json"),n=await r.env.data.connections.create(e,t);return r.json(n,{status:201})}),mS=new jt().openapi(ke({tags:["prompts"],method:"get",path:"/",request:{headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:jo}},description:"Branding settings"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=await r.env.data.promptSettings.get(e);return t?r.json(t):r.json(jo.parse({}))}).openapi(ke({tags:["prompts"],method:"patch",path:"/",request:{headers:v.object({"tenant-id":v.string()}),body:{content:{"application/json":{schema:v.object(jo.shape).partial()}}}},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Prompts settings"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json"),n=await r.env.data.promptSettings.get(e);return Object.assign(n,t),await r.env.data.promptSettings.set(e,n),r.json(n)});let om=!1;function yS(r){r.use(async(e,t)=>(om||(r.openAPIRegistry.registerComponent("securitySchemes","Bearer",{type:"oauth2",scheme:"bearer",flows:{implicit:{authorizationUrl:`${e.env.AUTH_URL}/authorize`,scopes:{openid:"Basic user information",email:"User email",profile:"User profile information"}}}}),om=!0),await t()))}v.object({alg:v.literal("RS256"),kty:v.literal("RSA"),use:v.literal("sig"),n:v.string(),e:v.string(),kid:v.string(),x5t:v.string(),x5c:v.array(v.string())});async function gS(r){try{const e=await r.JWKS_SERVICE.fetch(r.JWKS_URL);if(!e.ok)throw new Error("Failed to fetch jwks");return(await e.json()).keys}catch(e){throw new De(500,{message:"Failed to fetch jwks: "+e.message+", "+JSON.stringify(r)})}}async function vS(r,e){const n=new TextEncoder().encode([e.raw.header,e.raw.payload].join(".")),s=new Uint8Array(Array.from(e.signature).map(c=>c.charCodeAt(0))),a=(await gS(r.env)).find(c=>c.kid===e.header.kid);if(!a)return console.log("No matching kid found"),!1;const o=await crypto.subtle.importKey("jwk",a,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return crypto.subtle.verify("RSASSA-PKCS1-v1_5",o,s,n)}function bS(r){const[e,t,n]=r.split(".");if(!e||!t||!n)return null;const s=JSON.parse(atob(e)),i=JSON.parse(atob(t)),a=atob(n.replace(/-/g,"+").replace(/_/g,"/"));return{header:s,payload:i,signature:a,raw:{header:e,payload:t,signature:n}}}function xS(r){return async(e,t)=>{var s,i;const n=r.openAPIRegistry.definitions.find(a=>"route"in a&&a.route.path===e.req.path&&a.route.method.toUpperCase()===e.req.method);if(n&&"route"in n){const a=(i=(s=n.route.security)==null?void 0:s[0])==null?void 0:i.Bearer,o=e.req.header("authorization")||"",[c,u]=o.split(" ");if((c==null?void 0:c.toLowerCase())!=="bearer"||!u)throw new De(401,{message:"Missing bearer token"});const f=bS(u);if(!f||!await vS(e,f))throw new De(403,{message:"Invalid JWT signature"});e.set("user_id",f.payload.sub);const m=f.payload.permissions||[];if(a!=null&&a.length&&!a.some(R=>m.includes(R)))throw new De(403,{message:"Unauthorized"})}return await t()}}function _S(r){const e=new jt;e.use(xS(e)),e.use(async(n,s)=>(n.env.data=j1(n,r.dataAdapter),s()));const t=e.route("/api/v2/branding",T1).route("/api/v2/users",G1).route("/api/v2/keys",tk).route("/api/v2/users-by-email",rk).route("/api/v2/clients",sk).route("/api/v2/tenants",cS).route("/api/v2/logs",lS).route("/api/v2/hooks",fS).route("/api/v2/connections",pS).route("/api/v2/prompts",mS);return yS(t),t.doc("/api/v2/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"Management api"}}),t}function wS(r){const e=new jt;e.get("/",s=>s.json({name:"authhero"}));const t=_S(r);e.route("/api/v2",t);const n=new jt().route("/.well-known",S1(r));return n.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"Oauth endpoints"}}),e.route("/",n),{app:e,managementApp:t,oauthApp:n}}exports.Auth0Client=wy;exports.AuthorizationResponseMode=of;exports.AuthorizationResponseType=af;exports.CodeChallengeMethod=cf;exports.GrantType=df;exports.LogTypes=Xc;exports.applicationInsertSchema=tc;exports.applicationSchema=Mn;exports.auth0UserResponseSchema=vr;exports.authParamsSchema=yy;exports.authorizationCodeGrantTypeParamsSchema=k_;exports.baseUserSchema=Yc;exports.bordersSchema=Ay;exports.brandingSchema=El;exports.clientCredentialGrantTypeParamsSchema=A_;exports.codeInsertSchema=vy;exports.codeSchema=v_;exports.codeTypeSchema=gy;exports.colorsSchema=Oy;exports.connectionInsertSchema=rc;exports.connectionSchema=Vn;exports.domainInsertSchema=by;exports.domainSchema=b_;exports.fontDetailsSchema=Zn;exports.fontsSchema=Ey;exports.hookInsertSchema=sc;exports.hookSchema=Es;exports.identitySchema=py;exports.init=wS;exports.jwksKeySchema=xy;exports.jwksSchema=uf;exports.logSchema=ic;exports.loginInsertSchema=_y;exports.loginSchema=x_;exports.openIDConfigurationSchema=Il;exports.pageBackgroundSchema=Iy;exports.parseUserId=E_;exports.passwordInsertSchema=ky;exports.passwordSchema=w_;exports.pkceAuthorizationCodeGrantTypeParamsSchema=S_;exports.profileDataSchema=hy;exports.promptSettingSchema=jo;exports.samlpAddon=my;exports.sessionInsertSchema=Sy;exports.sessionSchema=lf;exports.signingKeySchema=Cl;exports.tenantInsertSchema=nc;exports.tenantSchema=Ns;exports.themeInsertSchema=jy;exports.themeSchema=O_;exports.totalsSchema=jn;exports.userInsertSchema=ec;exports.userResponseSchema=h_;exports.userSchema=sf;exports.vendorSettingsSchema=y_;exports.widgetSchema=Cy;
|
|
125
|
+
`,n}async function Q1(r){const e=await r.publicKey.export(),t=await crypto.subtle.exportKey("jwk",e),n=JSON.stringify(t,Object.keys(t).sort()),i=new TextEncoder().encode(n);return zd(await Y1(i))}const ek=1e3*60*60*24,tk=new jt().openapi(ke({tags:["keys"],method:"get",path:"/signing",request:{headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.array(Cl)}},description:"List of keys"}}}),async r=>{const t=(await r.env.data.keys.list()).filter(n=>"cert"in n).map(n=>n);return r.json(t)}).openapi(ke({tags:["keys"],method:"get",path:"/signing/{kid}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({kid:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:Cl}},description:"The requested key"}}}),async r=>{const{kid:e}=r.req.valid("param"),n=(await r.env.data.keys.list()).find(s=>s.kid===e);if(!n)throw new De(404,{message:"Key not found"});return r.json(n)}).openapi(ke({tags:["keys"],method:"post",path:"/signing/rotate",request:{headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{201:{description:"Status"}}}),async r=>{const e=await r.env.data.keys.list();for await(const n of e)await r.env.data.keys.update(n.kid,{revoked_at:new Date(Date.now()+ek).toISOString()});const t=await sm({name:`CN=${r.env.ORGANIZATION_NAME}`});return await r.env.data.keys.create(t),r.text("OK",{status:201})}).openapi(ke({tags:["keys"],method:"put",path:"/signing/{kid}/revoke",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({kid:v.string()})},security:[{Bearer:["auth:write"]}],responses:{201:{description:"Status"}}}),async r=>{const{kid:e}=r.req.valid("param");if(!await r.env.data.keys.update(e,{revoked_at:new Date().toISOString()}))throw new De(404,{message:"Key not found"});const n=await sm({name:`CN=${r.env.ORGANIZATION_NAME}`});return await r.env.data.keys.create(n),r.text("OK")}),rk=new jt().openapi(ke({tags:["users"],method:"get",path:"/",request:{query:v.object({email:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"tenant/json":{schema:v.array(sf)}},description:"List of users"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{email:t}=r.req.valid("query"),s=(await _0(r.env.data.users,e,t)).filter(i=>!i.linked_to);return r.json(s)}),nk=jn.extend({clients:v.array(Mn)}),sk=new jt().openapi(ke({tags:["clients"],method:"get",path:"/",request:{query:ps,headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.union([nk,v.array(Mn)])}},description:"List of clients"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{page:t,per_page:n,include_totals:s,sort:i,q:a}=r.req.valid("query"),c=(await r.env.data.applications.list(e,{page:t,per_page:n,include_totals:s,sort:vi(i),q:a})).applications;return s?r.json({clients:c,start:0,limit:10,length:c.length}):r.json(c)}).openapi(ke({tags:["clients"],method:"get",path:"/{id}",request:{params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:Mn}},description:"An application"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),s=(await r.env.data.applications.list(e,{page:1,per_page:0,include_totals:!1})).applications.find(i=>i.id===t);if(!s)throw new De(404);return r.json(s)}).openapi(ke({tags:["clients"],method:"delete",path:"/{id}",request:{params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Status"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param");if(!await r.env.data.applications.remove(e,t))throw new De(404,{message:"Application not found"});return r.text("OK")}).openapi(ke({tags:["clients"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:v.object(tc.shape).partial()}}},params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{content:{"application/json":{schema:Mn}},description:"The update application"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),s=r.req.valid("json");await r.env.data.applications.update(e,t,s);const i=await r.env.data.applications.get(e,t);if(!i)throw new De(404,{message:"Application not found"});return r.json(i)}).openapi(ke({tags:["clients"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:v.object(tc.shape)}}},headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{201:{content:{"application/json":{schema:v.object(Mn.shape)}},description:"An application"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json"),n={...t,id:t.id||Kd(),client_secret:t.client_secret||Kd()},s=await r.env.data.applications.create(e,n);return r.json(s,{status:201})});var Pe;(function(r){r.assertEqual=s=>s;function e(s){}r.assertIs=e;function t(s){throw new Error}r.assertNever=t,r.arrayToEnum=s=>{const i={};for(const a of s)i[a]=a;return i},r.getValidEnumValues=s=>{const i=r.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),a={};for(const o of i)a[o]=s[o];return r.objectValues(a)},r.objectValues=s=>r.objectKeys(s).map(function(i){return s[i]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const i=[];for(const a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},r.find=(s,i)=>{for(const a of s)if(i(a))return a},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}r.joinValues=n,r.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(Pe||(Pe={}));var Gd;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(Gd||(Gd={}));const J=Pe.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),on=r=>{switch(typeof r){case"undefined":return J.undefined;case"string":return J.string;case"number":return isNaN(r)?J.nan:J.number;case"boolean":return J.boolean;case"function":return J.function;case"bigint":return J.bigint;case"symbol":return J.symbol;case"object":return Array.isArray(r)?J.array:r===null?J.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?J.promise:typeof Map<"u"&&r instanceof Map?J.map:typeof Set<"u"&&r instanceof Set?J.set:typeof Date<"u"&&r instanceof Date?J.date:J.object;default:return J.unknown}},M=Pe.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),ik=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:");class Dt extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(i){return i.message},n={_errors:[]},s=i=>{for(const a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(t(a));else{let o=n,c=0;for(;c<a.path.length;){const u=a.path[c];c===a.path.length-1?(o[u]=o[u]||{_errors:[]},o[u]._errors.push(t(a))):o[u]=o[u]||{_errors:[]},o=o[u],c++}}};return s(this),n}static assert(e){if(!(e instanceof Dt))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Pe.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const s of this.issues)s.path.length>0?(t[s.path[0]]=t[s.path[0]]||[],t[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}Dt.create=r=>new Dt(r);const si=(r,e)=>{let t;switch(r.code){case M.invalid_type:r.received===J.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case M.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,Pe.jsonStringifyReplacer)}`;break;case M.unrecognized_keys:t=`Unrecognized key(s) in object: ${Pe.joinValues(r.keys,", ")}`;break;case M.invalid_union:t="Invalid input";break;case M.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Pe.joinValues(r.options)}`;break;case M.invalid_enum_value:t=`Invalid enum value. Expected ${Pe.joinValues(r.options)}, received '${r.received}'`;break;case M.invalid_arguments:t="Invalid function arguments";break;case M.invalid_return_type:t="Invalid function return type";break;case M.invalid_date:t="Invalid date";break;case M.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:Pe.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case M.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case M.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case M.custom:t="Invalid input";break;case M.invalid_intersection_types:t="Intersection results could not be merged";break;case M.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case M.not_finite:t="Number must be finite";break;default:t=e.defaultError,Pe.assertNever(r)}return{message:t}};let O0=si;function ak(r){O0=r}function Uc(){return O0}const Lc=r=>{const{data:e,path:t,errorMaps:n,issueData:s}=r,i=[...t,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="";const c=n.filter(u=>!!u).slice().reverse();for(const u of c)o=u(a,{data:e,defaultError:o}).message;return{...s,path:i,message:o}},ok=[];function W(r,e){const t=Uc(),n=Lc({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===si?void 0:si].filter(s=>!!s)});r.common.issues.push(n)}class gt{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const s of t){if(s.status==="aborted")return me;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const s of t){const i=await s.key,a=await s.value;n.push({key:i,value:a})}return gt.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const s of t){const{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return me;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}}const me=Object.freeze({status:"aborted"}),Cs=r=>({status:"dirty",value:r}),wt=r=>({status:"valid",value:r}),Jd=r=>r.status==="aborted",Yd=r=>r.status==="dirty",ja=r=>r.status==="valid",Ta=r=>typeof Promise<"u"&&r instanceof Promise;function qc(r,e,t,n){if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(r)}function E0(r,e,t,n,s){if(typeof e=="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(r,t),t}var ce;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(ce||(ce={}));var Ni,Bi;class Ir{constructor(e,t,n,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=s}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const im=(r,e)=>{if(ja(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new Dt(r.common.issues);return this._error=t,this._error}}};function _e(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:s}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(a,o)=>{var c,u;const{message:f}=r;return a.code==="invalid_enum_value"?{message:f??o.defaultError}:typeof o.data>"u"?{message:(c=f??n)!==null&&c!==void 0?c:o.defaultError}:a.code!=="invalid_type"?{message:o.defaultError}:{message:(u=f??t)!==null&&u!==void 0?u:o.defaultError}},description:s}}class Ee{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return on(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:on(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new gt,ctx:{common:e.parent.common,data:e.data,parsedType:on(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(Ta(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const s={common:{issues:[],async:(n=t==null?void 0:t.async)!==null&&n!==void 0?n:!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:on(e)},i=this._parseSync({data:e,path:s.path,parent:s});return im(s,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:on(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(Ta(s)?s:Promise.resolve(s));return im(n,i)}refine(e,t){const n=s=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(s):t;return this._refinement((s,i)=>{const a=e(s),o=()=>i.addIssue({code:M.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,t){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof t=="function"?t(n,s):t),!1))}_refinement(e){return new hr({schema:this,typeName:he.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return kr.create(this,this._def)}nullable(){return Cn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return lr.create(this,this._def)}promise(){return ai.create(this,this._def)}or(e){return Pa.create([this,e],this._def)}and(e){return $a.create(this,e,this._def)}transform(e){return new hr({..._e(this._def),schema:this,typeName:he.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new Ua({..._e(this._def),innerType:this,defaultValue:t,typeName:he.ZodDefault})}brand(){return new rh({typeName:he.ZodBranded,type:this,..._e(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new La({..._e(this._def),innerType:this,catchValue:t,typeName:he.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return go.create(this,e)}readonly(){return qa.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const ck=/^c[^\s-]{8,}$/i,uk=/^[0-9a-z]+$/,lk=/^[0-9A-HJKMNP-TV-Z]{26}$/,dk=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,fk=/^[a-z0-9_-]{21}$/i,hk=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,pk=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,mk="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let ul;const yk=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,gk=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,vk=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,I0="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",bk=new RegExp(`^${I0}$`);function C0(r){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`),e}function xk(r){return new RegExp(`^${C0(r)}$`)}function j0(r){let e=`${I0}T${C0(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function _k(r,e){return!!((e==="v4"||!e)&&yk.test(r)||(e==="v6"||!e)&&gk.test(r))}class ar extends Ee{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==J.string){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_type,expected:J.string,received:i.parsedType}),me}const n=new gt;let s;for(const i of this._def.checks)if(i.kind==="min")e.data.length<i.value&&(s=this._getOrReturnCtx(e,s),W(s,{code:M.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="max")e.data.length>i.value&&(s=this._getOrReturnCtx(e,s),W(s,{code:M.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){const a=e.data.length>i.value,o=e.data.length<i.value;(a||o)&&(s=this._getOrReturnCtx(e,s),a?W(s,{code:M.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):o&&W(s,{code:M.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),n.dirty())}else if(i.kind==="email")pk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"email",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="emoji")ul||(ul=new RegExp(mk,"u")),ul.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"emoji",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="uuid")dk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"uuid",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="nanoid")fk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"nanoid",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid")ck.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"cuid",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid2")uk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"cuid2",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="ulid")lk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"ulid",code:M.invalid_string,message:i.message}),n.dirty());else if(i.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),W(s,{validation:"url",code:M.invalid_string,message:i.message}),n.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"regex",code:M.invalid_string,message:i.message}),n.dirty())):i.kind==="trim"?e.data=e.data.trim():i.kind==="includes"?e.data.includes(i.value,i.position)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),n.dirty()):i.kind==="toLowerCase"?e.data=e.data.toLowerCase():i.kind==="toUpperCase"?e.data=e.data.toUpperCase():i.kind==="startsWith"?e.data.startsWith(i.value)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:{startsWith:i.value},message:i.message}),n.dirty()):i.kind==="endsWith"?e.data.endsWith(i.value)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:{endsWith:i.value},message:i.message}),n.dirty()):i.kind==="datetime"?j0(i).test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:"datetime",message:i.message}),n.dirty()):i.kind==="date"?bk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:"date",message:i.message}),n.dirty()):i.kind==="time"?xk(i).test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{code:M.invalid_string,validation:"time",message:i.message}),n.dirty()):i.kind==="duration"?hk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"duration",code:M.invalid_string,message:i.message}),n.dirty()):i.kind==="ip"?_k(e.data,i.version)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"ip",code:M.invalid_string,message:i.message}),n.dirty()):i.kind==="base64"?vk.test(e.data)||(s=this._getOrReturnCtx(e,s),W(s,{validation:"base64",code:M.invalid_string,message:i.message}),n.dirty()):Pe.assertNever(i);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(s=>e.test(s),{validation:t,code:M.invalid_string,...ce.errToObj(n)})}_addCheck(e){return new ar({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ce.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ce.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ce.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ce.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ce.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ce.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ce.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ce.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ce.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ce.errToObj(e)})}datetime(e){var t,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!==null&&t!==void 0?t:!1,local:(n=e==null?void 0:e.local)!==null&&n!==void 0?n:!1,...ce.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...ce.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...ce.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...ce.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...ce.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...ce.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...ce.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...ce.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...ce.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...ce.errToObj(t)})}nonempty(e){return this.min(1,ce.errToObj(e))}trim(){return new ar({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ar({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ar({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}ar.create=r=>{var e;return new ar({checks:[],typeName:he.ZodString,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,..._e(r)})};function wk(r,e){const t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=t>n?t:n,i=parseInt(r.toFixed(s).replace(".","")),a=parseInt(e.toFixed(s).replace(".",""));return i%a/Math.pow(10,s)}class On extends Ee{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==J.number){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_type,expected:J.number,received:i.parsedType}),me}let n;const s=new gt;for(const i of this._def.checks)i.kind==="int"?Pe.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),W(n,{code:M.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?wk(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),W(n,{code:M.not_finite,message:i.message}),s.dirty()):Pe.assertNever(i);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,ce.toString(t))}gt(e,t){return this.setLimit("min",e,!1,ce.toString(t))}lte(e,t){return this.setLimit("max",e,!0,ce.toString(t))}lt(e,t){return this.setLimit("max",e,!1,ce.toString(t))}setLimit(e,t,n,s){return new On({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:ce.toString(s)}]})}_addCheck(e){return new On({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ce.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ce.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ce.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ce.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ce.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:ce.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:ce.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ce.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ce.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&Pe.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}On.create=r=>new On({checks:[],typeName:he.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,..._e(r)});class En extends Ee{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==J.bigint){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_type,expected:J.bigint,received:i.parsedType}),me}let n;const s=new gt;for(const i of this._def.checks)i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),W(n,{code:M.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):Pe.assertNever(i);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,ce.toString(t))}gt(e,t){return this.setLimit("min",e,!1,ce.toString(t))}lte(e,t){return this.setLimit("max",e,!0,ce.toString(t))}lt(e,t){return this.setLimit("max",e,!1,ce.toString(t))}setLimit(e,t,n,s){return new En({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:ce.toString(s)}]})}_addCheck(e){return new En({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ce.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ce.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ce.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ce.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:ce.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}En.create=r=>{var e;return new En({checks:[],typeName:he.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,..._e(r)})};class Na extends Ee{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==J.boolean){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.boolean,received:n.parsedType}),me}return wt(e.data)}}Na.create=r=>new Na({typeName:he.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,..._e(r)});class ms extends Ee{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==J.date){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_type,expected:J.date,received:i.parsedType}),me}if(isNaN(e.data.getTime())){const i=this._getOrReturnCtx(e);return W(i,{code:M.invalid_date}),me}const n=new gt;let s;for(const i of this._def.checks)i.kind==="min"?e.data.getTime()<i.value&&(s=this._getOrReturnCtx(e,s),W(s,{code:M.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),n.dirty()):i.kind==="max"?e.data.getTime()>i.value&&(s=this._getOrReturnCtx(e,s),W(s,{code:M.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):Pe.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new ms({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:ce.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:ce.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}ms.create=r=>new ms({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:he.ZodDate,..._e(r)});class Hc extends Ee{_parse(e){if(this._getType(e)!==J.symbol){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.symbol,received:n.parsedType}),me}return wt(e.data)}}Hc.create=r=>new Hc({typeName:he.ZodSymbol,..._e(r)});class Ba extends Ee{_parse(e){if(this._getType(e)!==J.undefined){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.undefined,received:n.parsedType}),me}return wt(e.data)}}Ba.create=r=>new Ba({typeName:he.ZodUndefined,..._e(r)});class Ra extends Ee{_parse(e){if(this._getType(e)!==J.null){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.null,received:n.parsedType}),me}return wt(e.data)}}Ra.create=r=>new Ra({typeName:he.ZodNull,..._e(r)});class ii extends Ee{constructor(){super(...arguments),this._any=!0}_parse(e){return wt(e.data)}}ii.create=r=>new ii({typeName:he.ZodAny,..._e(r)});class Xn extends Ee{constructor(){super(...arguments),this._unknown=!0}_parse(e){return wt(e.data)}}Xn.create=r=>new Xn({typeName:he.ZodUnknown,..._e(r)});class Yr extends Ee{_parse(e){const t=this._getOrReturnCtx(e);return W(t,{code:M.invalid_type,expected:J.never,received:t.parsedType}),me}}Yr.create=r=>new Yr({typeName:he.ZodNever,..._e(r)});class Fc extends Ee{_parse(e){if(this._getType(e)!==J.undefined){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.void,received:n.parsedType}),me}return wt(e.data)}}Fc.create=r=>new Fc({typeName:he.ZodVoid,..._e(r)});class lr extends Ee{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),s=this._def;if(t.parsedType!==J.array)return W(t,{code:M.invalid_type,expected:J.array,received:t.parsedType}),me;if(s.exactLength!==null){const a=t.data.length>s.exactLength.value,o=t.data.length<s.exactLength.value;(a||o)&&(W(t,{code:a?M.too_big:M.too_small,minimum:o?s.exactLength.value:void 0,maximum:a?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&t.data.length<s.minLength.value&&(W(t,{code:M.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&t.data.length>s.maxLength.value&&(W(t,{code:M.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((a,o)=>s.type._parseAsync(new Ir(t,a,t.path,o)))).then(a=>gt.mergeArray(n,a));const i=[...t.data].map((a,o)=>s.type._parseSync(new Ir(t,a,t.path,o)));return gt.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new lr({...this._def,minLength:{value:e,message:ce.toString(t)}})}max(e,t){return new lr({...this._def,maxLength:{value:e,message:ce.toString(t)}})}length(e,t){return new lr({...this._def,exactLength:{value:e,message:ce.toString(t)}})}nonempty(e){return this.min(1,e)}}lr.create=(r,e)=>new lr({type:r,minLength:null,maxLength:null,exactLength:null,typeName:he.ZodArray,..._e(e)});function As(r){if(r instanceof Ye){const e={};for(const t in r.shape){const n=r.shape[t];e[t]=kr.create(As(n))}return new Ye({...r._def,shape:()=>e})}else return r instanceof lr?new lr({...r._def,type:As(r.element)}):r instanceof kr?kr.create(As(r.unwrap())):r instanceof Cn?Cn.create(As(r.unwrap())):r instanceof Cr?Cr.create(r.items.map(e=>As(e))):r}class Ye extends Ee{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=Pe.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==J.object){const u=this._getOrReturnCtx(e);return W(u,{code:M.invalid_type,expected:J.object,received:u.parsedType}),me}const{status:n,ctx:s}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),o=[];if(!(this._def.catchall instanceof Yr&&this._def.unknownKeys==="strip"))for(const u in s.data)a.includes(u)||o.push(u);const c=[];for(const u of a){const f=i[u],m=s.data[u];c.push({key:{status:"valid",value:u},value:f._parse(new Ir(s,m,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Yr){const u=this._def.unknownKeys;if(u==="passthrough")for(const f of o)c.push({key:{status:"valid",value:f},value:{status:"valid",value:s.data[f]}});else if(u==="strict")o.length>0&&(W(s,{code:M.unrecognized_keys,keys:o}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const f of o){const m=s.data[f];c.push({key:{status:"valid",value:f},value:u._parse(new Ir(s,m,s.path,f)),alwaysSet:f in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const u=[];for(const f of c){const m=await f.key,R=await f.value;u.push({key:m,value:R,alwaysSet:f.alwaysSet})}return u}).then(u=>gt.mergeObjectSync(n,u)):gt.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return ce.errToObj,new Ye({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var s,i,a,o;const c=(a=(i=(s=this._def).errorMap)===null||i===void 0?void 0:i.call(s,t,n).message)!==null&&a!==void 0?a:n.defaultError;return t.code==="unrecognized_keys"?{message:(o=ce.errToObj(e).message)!==null&&o!==void 0?o:c}:{message:c}}}:{}})}strip(){return new Ye({...this._def,unknownKeys:"strip"})}passthrough(){return new Ye({...this._def,unknownKeys:"passthrough"})}extend(e){return new Ye({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Ye({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:he.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Ye({...this._def,catchall:e})}pick(e){const t={};return Pe.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])}),new Ye({...this._def,shape:()=>t})}omit(e){const t={};return Pe.objectKeys(this.shape).forEach(n=>{e[n]||(t[n]=this.shape[n])}),new Ye({...this._def,shape:()=>t})}deepPartial(){return As(this)}partial(e){const t={};return Pe.objectKeys(this.shape).forEach(n=>{const s=this.shape[n];e&&!e[n]?t[n]=s:t[n]=s.optional()}),new Ye({...this._def,shape:()=>t})}required(e){const t={};return Pe.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])t[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof kr;)i=i._def.innerType;t[n]=i}}),new Ye({...this._def,shape:()=>t})}keyof(){return T0(Pe.objectKeys(this.shape))}}Ye.create=(r,e)=>new Ye({shape:()=>r,unknownKeys:"strip",catchall:Yr.create(),typeName:he.ZodObject,..._e(e)});Ye.strictCreate=(r,e)=>new Ye({shape:()=>r,unknownKeys:"strict",catchall:Yr.create(),typeName:he.ZodObject,..._e(e)});Ye.lazycreate=(r,e)=>new Ye({shape:r,unknownKeys:"strip",catchall:Yr.create(),typeName:he.ZodObject,..._e(e)});class Pa extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function s(i){for(const o of i)if(o.result.status==="valid")return o.result;for(const o of i)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;const a=i.map(o=>new Dt(o.ctx.common.issues));return W(t,{code:M.invalid_union,unionErrors:a}),me}if(t.common.async)return Promise.all(n.map(async i=>{const a={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:a}),ctx:a}})).then(s);{let i;const a=[];for(const c of n){const u={...t,common:{...t.common,issues:[]},parent:null},f=c._parseSync({data:t.data,path:t.path,parent:u});if(f.status==="valid")return f;f.status==="dirty"&&!i&&(i={result:f,ctx:u}),u.common.issues.length&&a.push(u.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;const o=a.map(c=>new Dt(c));return W(t,{code:M.invalid_union,unionErrors:o}),me}}get options(){return this._def.options}}Pa.create=(r,e)=>new Pa({options:r,typeName:he.ZodUnion,..._e(e)});const Rr=r=>r instanceof Da?Rr(r.schema):r instanceof hr?Rr(r.innerType()):r instanceof Ma?[r.value]:r instanceof In?r.options:r instanceof Va?Pe.objectValues(r.enum):r instanceof Ua?Rr(r._def.innerType):r instanceof Ba?[void 0]:r instanceof Ra?[null]:r instanceof kr?[void 0,...Rr(r.unwrap())]:r instanceof Cn?[null,...Rr(r.unwrap())]:r instanceof rh||r instanceof qa?Rr(r.unwrap()):r instanceof La?Rr(r._def.innerType):[];class Lu extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==J.object)return W(t,{code:M.invalid_type,expected:J.object,received:t.parsedType}),me;const n=this.discriminator,s=t.data[n],i=this.optionsMap.get(s);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(W(t,{code:M.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),me)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const s=new Map;for(const i of t){const a=Rr(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const o of a){if(s.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new Lu({typeName:he.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:s,..._e(n)})}}function Xd(r,e){const t=on(r),n=on(e);if(r===e)return{valid:!0,data:r};if(t===J.object&&n===J.object){const s=Pe.objectKeys(e),i=Pe.objectKeys(r).filter(o=>s.indexOf(o)!==-1),a={...r,...e};for(const o of i){const c=Xd(r[o],e[o]);if(!c.valid)return{valid:!1};a[o]=c.data}return{valid:!0,data:a}}else if(t===J.array&&n===J.array){if(r.length!==e.length)return{valid:!1};const s=[];for(let i=0;i<r.length;i++){const a=r[i],o=e[i],c=Xd(a,o);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return t===J.date&&n===J.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}class $a extends Ee{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=(i,a)=>{if(Jd(i)||Jd(a))return me;const o=Xd(i.value,a.value);return o.valid?((Yd(i)||Yd(a))&&t.dirty(),{status:t.value,value:o.data}):(W(n,{code:M.invalid_intersection_types}),me)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}$a.create=(r,e,t)=>new $a({left:r,right:e,typeName:he.ZodIntersection,..._e(t)});class Cr extends Ee{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==J.array)return W(n,{code:M.invalid_type,expected:J.array,received:n.parsedType}),me;if(n.data.length<this._def.items.length)return W(n,{code:M.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),me;!this._def.rest&&n.data.length>this._def.items.length&&(W(n,{code:M.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const i=[...n.data].map((a,o)=>{const c=this._def.items[o]||this._def.rest;return c?c._parse(new Ir(n,a,n.path,o)):null}).filter(a=>!!a);return n.common.async?Promise.all(i).then(a=>gt.mergeArray(t,a)):gt.mergeArray(t,i)}get items(){return this._def.items}rest(e){return new Cr({...this._def,rest:e})}}Cr.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Cr({items:r,typeName:he.ZodTuple,rest:null,..._e(e)})};class Za extends Ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==J.object)return W(n,{code:M.invalid_type,expected:J.object,received:n.parsedType}),me;const s=[],i=this._def.keyType,a=this._def.valueType;for(const o in n.data)s.push({key:i._parse(new Ir(n,o,n.path,o)),value:a._parse(new Ir(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?gt.mergeObjectAsync(t,s):gt.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof Ee?new Za({keyType:e,valueType:t,typeName:he.ZodRecord,..._e(n)}):new Za({keyType:ar.create(),valueType:e,typeName:he.ZodRecord,..._e(t)})}}class Wc extends Ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==J.map)return W(n,{code:M.invalid_type,expected:J.map,received:n.parsedType}),me;const s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([o,c],u)=>({key:s._parse(new Ir(n,o,n.path,[u,"key"])),value:i._parse(new Ir(n,c,n.path,[u,"value"]))}));if(n.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const c of a){const u=await c.key,f=await c.value;if(u.status==="aborted"||f.status==="aborted")return me;(u.status==="dirty"||f.status==="dirty")&&t.dirty(),o.set(u.value,f.value)}return{status:t.value,value:o}})}else{const o=new Map;for(const c of a){const u=c.key,f=c.value;if(u.status==="aborted"||f.status==="aborted")return me;(u.status==="dirty"||f.status==="dirty")&&t.dirty(),o.set(u.value,f.value)}return{status:t.value,value:o}}}}Wc.create=(r,e,t)=>new Wc({valueType:e,keyType:r,typeName:he.ZodMap,..._e(t)});class ys extends Ee{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==J.set)return W(n,{code:M.invalid_type,expected:J.set,received:n.parsedType}),me;const s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&(W(n,{code:M.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),t.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&(W(n,{code:M.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const i=this._def.valueType;function a(c){const u=new Set;for(const f of c){if(f.status==="aborted")return me;f.status==="dirty"&&t.dirty(),u.add(f.value)}return{status:t.value,value:u}}const o=[...n.data.values()].map((c,u)=>i._parse(new Ir(n,c,n.path,u)));return n.common.async?Promise.all(o).then(c=>a(c)):a(o)}min(e,t){return new ys({...this._def,minSize:{value:e,message:ce.toString(t)}})}max(e,t){return new ys({...this._def,maxSize:{value:e,message:ce.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}ys.create=(r,e)=>new ys({valueType:r,minSize:null,maxSize:null,typeName:he.ZodSet,..._e(e)});class Ps extends Ee{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==J.function)return W(t,{code:M.invalid_type,expected:J.function,received:t.parsedType}),me;function n(o,c){return Lc({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Uc(),si].filter(u=>!!u),issueData:{code:M.invalid_arguments,argumentsError:c}})}function s(o,c){return Lc({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Uc(),si].filter(u=>!!u),issueData:{code:M.invalid_return_type,returnTypeError:c}})}const i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof ai){const o=this;return wt(async function(...c){const u=new Dt([]),f=await o._def.args.parseAsync(c,i).catch(C=>{throw u.addIssue(n(c,C)),u}),m=await Reflect.apply(a,this,f);return await o._def.returns._def.type.parseAsync(m,i).catch(C=>{throw u.addIssue(s(m,C)),u})})}else{const o=this;return wt(function(...c){const u=o._def.args.safeParse(c,i);if(!u.success)throw new Dt([n(c,u.error)]);const f=Reflect.apply(a,this,u.data),m=o._def.returns.safeParse(f,i);if(!m.success)throw new Dt([s(f,m.error)]);return m.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ps({...this._def,args:Cr.create(e).rest(Xn.create())})}returns(e){return new Ps({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Ps({args:e||Cr.create([]).rest(Xn.create()),returns:t||Xn.create(),typeName:he.ZodFunction,..._e(n)})}}class Da extends Ee{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}Da.create=(r,e)=>new Da({getter:r,typeName:he.ZodLazy,..._e(e)});class Ma extends Ee{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return W(t,{received:t.data,code:M.invalid_literal,expected:this._def.value}),me}return{status:"valid",value:e.data}}get value(){return this._def.value}}Ma.create=(r,e)=>new Ma({value:r,typeName:he.ZodLiteral,..._e(e)});function T0(r,e){return new In({values:r,typeName:he.ZodEnum,..._e(e)})}class In extends Ee{constructor(){super(...arguments),Ni.set(this,void 0)}_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return W(t,{expected:Pe.joinValues(n),received:t.parsedType,code:M.invalid_type}),me}if(qc(this,Ni)||E0(this,Ni,new Set(this._def.values)),!qc(this,Ni).has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return W(t,{received:t.data,code:M.invalid_enum_value,options:n}),me}return wt(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return In.create(e,{...this._def,...t})}exclude(e,t=this._def){return In.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}Ni=new WeakMap;In.create=T0;class Va extends Ee{constructor(){super(...arguments),Bi.set(this,void 0)}_parse(e){const t=Pe.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==J.string&&n.parsedType!==J.number){const s=Pe.objectValues(t);return W(n,{expected:Pe.joinValues(s),received:n.parsedType,code:M.invalid_type}),me}if(qc(this,Bi)||E0(this,Bi,new Set(Pe.getValidEnumValues(this._def.values))),!qc(this,Bi).has(e.data)){const s=Pe.objectValues(t);return W(n,{received:n.data,code:M.invalid_enum_value,options:s}),me}return wt(e.data)}get enum(){return this._def.values}}Bi=new WeakMap;Va.create=(r,e)=>new Va({values:r,typeName:he.ZodNativeEnum,..._e(e)});class ai extends Ee{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==J.promise&&t.common.async===!1)return W(t,{code:M.invalid_type,expected:J.promise,received:t.parsedType}),me;const n=t.parsedType===J.promise?t.data:Promise.resolve(t.data);return wt(n.then(s=>this._def.type.parseAsync(s,{path:t.path,errorMap:t.common.contextualErrorMap})))}}ai.create=(r,e)=>new ai({type:r,typeName:he.ZodPromise,..._e(e)});class hr extends Ee{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===he.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{W(n,a),a.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){const a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async o=>{if(t.value==="aborted")return me;const c=await this._def.schema._parseAsync({data:o,path:n.path,parent:n});return c.status==="aborted"?me:c.status==="dirty"||t.value==="dirty"?Cs(c.value):c});{if(t.value==="aborted")return me;const o=this._def.schema._parseSync({data:a,path:n.path,parent:n});return o.status==="aborted"?me:o.status==="dirty"||t.value==="dirty"?Cs(o.value):o}}if(s.type==="refinement"){const a=o=>{const c=s.refinement(o,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(n.common.async===!1){const o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?me:(o.status==="dirty"&&t.dirty(),a(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>o.status==="aborted"?me:(o.status==="dirty"&&t.dirty(),a(o.value).then(()=>({status:t.value,value:o.value}))))}if(s.type==="transform")if(n.common.async===!1){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!ja(a))return a;const o=s.transform(a.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>ja(a)?Promise.resolve(s.transform(a.value,i)).then(o=>({status:t.value,value:o})):a);Pe.assertNever(s)}}hr.create=(r,e,t)=>new hr({schema:r,typeName:he.ZodEffects,effect:e,..._e(t)});hr.createWithPreprocess=(r,e,t)=>new hr({schema:e,effect:{type:"preprocess",transform:r},typeName:he.ZodEffects,..._e(t)});class kr extends Ee{_parse(e){return this._getType(e)===J.undefined?wt(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}kr.create=(r,e)=>new kr({innerType:r,typeName:he.ZodOptional,..._e(e)});class Cn extends Ee{_parse(e){return this._getType(e)===J.null?wt(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Cn.create=(r,e)=>new Cn({innerType:r,typeName:he.ZodNullable,..._e(e)});class Ua extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===J.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Ua.create=(r,e)=>new Ua({innerType:r,typeName:he.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,..._e(e)});class La extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Ta(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Dt(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Dt(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}La.create=(r,e)=>new La({innerType:r,typeName:he.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,..._e(e)});class Kc extends Ee{_parse(e){if(this._getType(e)!==J.nan){const n=this._getOrReturnCtx(e);return W(n,{code:M.invalid_type,expected:J.nan,received:n.parsedType}),me}return{status:"valid",value:e.data}}}Kc.create=r=>new Kc({typeName:he.ZodNaN,..._e(r)});const kk=Symbol("zod_brand");class rh extends Ee{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class go extends Ee{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?me:i.status==="dirty"?(t.dirty(),Cs(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{const s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?me:s.status==="dirty"?(t.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,t){return new go({in:e,out:t,typeName:he.ZodPipeline})}}class qa extends Ee{_parse(e){const t=this._def.innerType._parse(e),n=s=>(ja(s)&&(s.value=Object.freeze(s.value)),s);return Ta(t)?t.then(s=>n(s)):n(t)}unwrap(){return this._def.innerType}}qa.create=(r,e)=>new qa({innerType:r,typeName:he.ZodReadonly,..._e(e)});function N0(r,e={},t){return r?ii.create().superRefine((n,s)=>{var i,a;if(!r(n)){const o=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,c=(a=(i=o.fatal)!==null&&i!==void 0?i:t)!==null&&a!==void 0?a:!0,u=typeof o=="string"?{message:o}:o;s.addIssue({code:"custom",...u,fatal:c})}}):ii.create()}const Sk={object:Ye.lazycreate};var he;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(he||(he={}));const Ak=(r,e={message:`Input not instance of ${r.name}`})=>N0(t=>t instanceof r,e),B0=ar.create,R0=On.create,Ok=Kc.create,Ek=En.create,P0=Na.create,Ik=ms.create,Ck=Hc.create,jk=Ba.create,Tk=Ra.create,Nk=ii.create,Bk=Xn.create,Rk=Yr.create,Pk=Fc.create,$k=lr.create,Zk=Ye.create,Dk=Ye.strictCreate,Mk=Pa.create,Vk=Lu.create,Uk=$a.create,Lk=Cr.create,qk=Za.create,Hk=Wc.create,Fk=ys.create,Wk=Ps.create,Kk=Da.create,zk=Ma.create,Gk=In.create,Jk=Va.create,Yk=ai.create,am=hr.create,Xk=kr.create,Qk=Cn.create,eS=hr.createWithPreprocess,tS=go.create,rS=()=>B0().optional(),nS=()=>R0().optional(),sS=()=>P0().optional(),iS={string:r=>ar.create({...r,coerce:!0}),number:r=>On.create({...r,coerce:!0}),boolean:r=>Na.create({...r,coerce:!0}),bigint:r=>En.create({...r,coerce:!0}),date:r=>ms.create({...r,coerce:!0})},aS=me;var Lt=Object.freeze({__proto__:null,defaultErrorMap:si,setErrorMap:ak,getErrorMap:Uc,makeIssue:Lc,EMPTY_PATH:ok,addIssueToContext:W,ParseStatus:gt,INVALID:me,DIRTY:Cs,OK:wt,isAborted:Jd,isDirty:Yd,isValid:ja,isAsync:Ta,get util(){return Pe},get objectUtil(){return Gd},ZodParsedType:J,getParsedType:on,ZodType:Ee,datetimeRegex:j0,ZodString:ar,ZodNumber:On,ZodBigInt:En,ZodBoolean:Na,ZodDate:ms,ZodSymbol:Hc,ZodUndefined:Ba,ZodNull:Ra,ZodAny:ii,ZodUnknown:Xn,ZodNever:Yr,ZodVoid:Fc,ZodArray:lr,ZodObject:Ye,ZodUnion:Pa,ZodDiscriminatedUnion:Lu,ZodIntersection:$a,ZodTuple:Cr,ZodRecord:Za,ZodMap:Wc,ZodSet:ys,ZodFunction:Ps,ZodLazy:Da,ZodLiteral:Ma,ZodEnum:In,ZodNativeEnum:Va,ZodPromise:ai,ZodEffects:hr,ZodTransformer:hr,ZodOptional:kr,ZodNullable:Cn,ZodDefault:Ua,ZodCatch:La,ZodNaN:Kc,BRAND:kk,ZodBranded:rh,ZodPipeline:go,ZodReadonly:qa,custom:N0,Schema:Ee,ZodSchema:Ee,late:Sk,get ZodFirstPartyTypeKind(){return he},coerce:iS,any:Nk,array:$k,bigint:Ek,boolean:P0,date:Ik,discriminatedUnion:Vk,effect:am,enum:Gk,function:Wk,instanceof:Ak,intersection:Uk,lazy:Kk,literal:zk,map:Hk,nan:Ok,nativeEnum:Jk,never:Rk,null:Tk,nullable:Qk,number:R0,object:Zk,oboolean:sS,onumber:nS,optional:Xk,ostring:rS,pipeline:tS,preprocess:eS,promise:Yk,record:qk,set:Fk,strictObject:Dk,string:B0,symbol:Ck,transformer:am,tuple:Lk,undefined:jk,union:Mk,unknown:Bk,void:Pk,NEVER:aS,ZodIssueCode:M,quotelessJson:ik,ZodError:Dt});Lt.object({start:Lt.number(),limit:Lt.number(),length:Lt.number()});Yc.extend({email:Lt.string(),login_count:Lt.number(),multifactor:Lt.array(Lt.string()).optional(),last_ip:Lt.string().optional(),last_login:Lt.string().optional(),user_id:Lt.string()}).catchall(Lt.any());const oS=jn.extend({tenants:v.array(Ns)}),cS=new jt().openapi(ke({tags:["tenants"],method:"get",path:"/",request:{query:ps},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"tenant/json":{schema:v.union([v.array(Ns),oS])}},description:"List of tenants"}}}),async r=>{const{page:e,per_page:t,include_totals:n,sort:s,q:i}=r.req.valid("query"),a=await r.env.data.tenants.list({page:e,per_page:t,include_totals:n,sort:vi(s),q:i});return n?r.json(a):r.json(a.tenants)}).openapi(ke({tags:["tenants"],method:"get",path:"/{id}",request:{params:v.object({id:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"tenant/json":{schema:Ns}},description:"A tenant"}}}),async r=>{const{id:e}=r.req.valid("param"),t=await r.env.data.tenants.get(e);if(!t)throw new De(404);return console.log("tenant",t),r.json(t)}).openapi(ke({tags:["tenants"],method:"delete",path:"/{id}",request:{params:v.object({id:v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Status"}}}),async r=>{const{id:e}=r.req.valid("param");return await r.env.data.tenants.remove(e),r.text("OK")}).openapi(ke({tags:["tenants"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:v.object(nc.shape).partial()}}},params:v.object({id:v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Status"}}}),async r=>{const{id:e}=r.req.valid("param"),t=r.req.valid("json");return await r.env.data.tenants.update(e,t),r.text("OK")}).openapi(ke({tags:["tenants"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:v.object(nc.shape)}}}},security:[{Bearer:["auth:write"]}],responses:{200:{content:{"tenant/json":{schema:Ns}},description:"An tenant"}}}),async r=>{const e=r.req.valid("json"),t=await r.env.data.tenants.create(e);return r.json(t,{status:201})}),uS=jn.extend({logs:v.array(ic)}),lS=new jt().openapi(ke({tags:["logs"],method:"get",path:"/",request:{query:ps,headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.union([v.array(ic),uS])}},description:"List of log rows"}}}),async r=>{const{page:e,per_page:t,include_totals:n,sort:s,q:i}=r.req.valid("query"),{"tenant-id":a}=r.req.valid("header"),o=await r.env.data.logs.list(a,{page:e,per_page:t,include_totals:n,sort:vi(s),q:i});return n?r.json(o):r.json(o.logs)}).openapi(ke({tags:["logs"],method:"get",path:"/{id}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({id:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:ic}},description:"A log entry"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),n=await r.env.data.logs.get(e,t);if(!n)throw new De(404);return r.json(n)}),dS=jn.extend({hooks:v.array(Es)}),fS=new jt().openapi(ke({tags:["hooks"],method:"get",path:"/",request:{query:ps,headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.union([v.array(Es),dS])}},description:"List of hooks"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{page:t,per_page:n,include_totals:s,sort:i,q:a}=r.req.valid("query"),o=await r.env.data.hooks.list(e,{page:t,per_page:n,include_totals:s,sort:vi(i),q:a});return s?r.json(o):r.json(o.hooks)}).openapi(ke({tags:["hooks"],method:"post",path:"/",request:{headers:v.object({"tenant-id":v.string()}),body:{content:{"application/json":{schema:v.object(sc.shape)}}}},security:[{Bearer:["auth:write"]}],responses:{201:{content:{"application/json":{schema:Es}},description:"The created hook"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json"),n=await r.env.data.hooks.create(e,t);return r.json(n,{status:201})}).openapi(ke({tags:["hooks"],method:"patch",path:"/{hook_id}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({hook_id:v.string()}),body:{content:{"application/json":{schema:v.object(sc.shape).omit({hook_id:!0}).partial()}}}},security:[{Bearer:["auth:write"]}],responses:{200:{content:{"application/json":{schema:Es.shape}},description:"The updated hook"},404:{description:"Hook not found"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{hook_id:t}=r.req.valid("param"),n=r.req.valid("json");await r.env.data.hooks.update(e,t,n);const s=await r.env.data.hooks.get(e,t);if(!s)throw new De(404,{message:"Hook not found"});return r.json(s)}).openapi(ke({tags:["hooks"],method:"get",path:"/{hook_id}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({hook_id:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:Es}},description:"A hook"},404:{description:"Hook not found"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{hook_id:t}=r.req.valid("param"),n=await r.env.data.hooks.get(e,t);if(!n)throw new De(404,{message:"Hook not found"});return r.json(n)}).openapi(ke({tags:["hooks"],method:"delete",path:"/{hook_id}",request:{headers:v.object({"tenant-id":v.string()}),params:v.object({hook_id:v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{description:"A hook"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{hook_id:t}=r.req.valid("param");if(!await r.env.data.hooks.remove(e,t))throw new De(404,{message:"Hook not found"});return r.text("OK")}),hS=jn.extend({connections:v.array(Vn)}),pS=new jt().openapi(ke({tags:["connections"],method:"get",path:"/",request:{query:ps,headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:v.union([v.array(Vn),hS])}},description:"List of connectionss"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{page:t,per_page:n,include_totals:s=!1,sort:i,q:a}=r.req.valid("query"),o=await r.env.data.connections.list(e,{page:t,per_page:n,include_totals:s,sort:vi(i),q:a});return s?r.json(o):r.json(o.connections)}).openapi(ke({tags:["connections"],method:"get",path:"/{id}",request:{params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:Vn}},description:"A connection"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),n=await r.env.data.connections.get(e,t);if(!n)throw new De(404);return r.json(n)}).openapi(ke({tags:["connections"],method:"delete",path:"/{id}",request:{params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Status"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param");if(!await r.env.data.connections.remove(e,t))throw new De(404,{message:"Connection not found"});return r.text("OK")}).openapi(ke({tags:["connections"],method:"patch",path:"/{id}",request:{body:{content:{"application/json":{schema:v.object(rc.shape).partial()}}},params:v.object({id:v.string()}),headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{200:{content:{"application/json":{schema:Vn}},description:"The updated connection"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),{id:t}=r.req.valid("param"),n=r.req.valid("json");if(!await r.env.data.connections.update(e,t,n))throw new De(404,{message:"Connection not found"});const i=await r.env.data.connections.get(e,t);if(!i)throw new De(404,{message:"Connection not found"});return r.json(i)}).openapi(ke({tags:["connections"],method:"post",path:"/",request:{body:{content:{"application/json":{schema:v.object(rc.shape)}}},headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:write"]}],responses:{201:{content:{"application/json":{schema:Vn}},description:"A connection"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json"),n=await r.env.data.connections.create(e,t);return r.json(n,{status:201})}),mS=new jt().openapi(ke({tags:["prompts"],method:"get",path:"/",request:{headers:v.object({"tenant-id":v.string()})},security:[{Bearer:["auth:read"]}],responses:{200:{content:{"application/json":{schema:jo}},description:"Branding settings"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=await r.env.data.promptSettings.get(e);return t?r.json(t):r.json(jo.parse({}))}).openapi(ke({tags:["prompts"],method:"patch",path:"/",request:{headers:v.object({"tenant-id":v.string()}),body:{content:{"application/json":{schema:v.object(jo.shape).partial()}}}},security:[{Bearer:["auth:write"]}],responses:{200:{description:"Prompts settings"}}}),async r=>{const{"tenant-id":e}=r.req.valid("header"),t=r.req.valid("json"),n=await r.env.data.promptSettings.get(e);return Object.assign(n,t),await r.env.data.promptSettings.set(e,n),r.json(n)});let om=!1;function yS(r){r.use(async(e,t)=>(om||(r.openAPIRegistry.registerComponent("securitySchemes","Bearer",{type:"oauth2",scheme:"bearer",flows:{implicit:{authorizationUrl:`${e.env.AUTH_URL}/authorize`,scopes:{openid:"Basic user information",email:"User email",profile:"User profile information"}}}}),om=!0),await t()))}v.object({alg:v.literal("RS256"),kty:v.literal("RSA"),use:v.literal("sig"),n:v.string(),e:v.string(),kid:v.string(),x5t:v.string(),x5c:v.array(v.string())});async function gS(r){try{const e=await r.JWKS_SERVICE.fetch(r.JWKS_URL);if(!e.ok)throw new Error("Failed to fetch jwks");return(await e.json()).keys}catch(e){throw new De(500,{message:`Failed to fetch jwks: ${e.message}`})}}async function vS(r,e){const n=new TextEncoder().encode([e.raw.header,e.raw.payload].join(".")),s=new Uint8Array(Array.from(e.signature).map(c=>c.charCodeAt(0))),a=(await gS(r.env)).find(c=>c.kid===e.header.kid);if(!a)return console.log("No matching kid found"),!1;const o=await crypto.subtle.importKey("jwk",a,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return crypto.subtle.verify("RSASSA-PKCS1-v1_5",o,s,n)}function bS(r){const[e,t,n]=r.split(".");if(!e||!t||!n)return null;const s=JSON.parse(atob(e)),i=JSON.parse(atob(t)),a=atob(n.replace(/-/g,"+").replace(/_/g,"/"));return{header:s,payload:i,signature:a,raw:{header:e,payload:t,signature:n}}}function xS(r){return async(e,t)=>{var s,i;const n=r.openAPIRegistry.definitions.find(a=>"route"in a&&a.route.path===e.req.path&&a.route.method.toUpperCase()===e.req.method);if(n&&"route"in n){const a=(i=(s=n.route.security)==null?void 0:s[0])==null?void 0:i.Bearer,o=e.req.header("authorization")||"",[c,u]=o.split(" ");if((c==null?void 0:c.toLowerCase())!=="bearer"||!u)throw new De(401,{message:"Missing bearer token"});const f=bS(u);if(!f||!await vS(e,f))throw new De(403,{message:"Invalid JWT signature"});e.set("user_id",f.payload.sub);const m=f.payload.permissions||[];if(a!=null&&a.length&&!a.some(R=>m.includes(R)))throw new De(403,{message:"Unauthorized"})}return await t()}}function _S(r){const e=new jt;e.use(xS(e)),e.use(async(n,s)=>(n.env.data=j1(n,r.dataAdapter),s()));const t=e.route("/branding",T1).route("/users",G1).route("/keys",tk).route("/users-by-email",rk).route("/clients",sk).route("/tenants",cS).route("/logs",lS).route("/hooks",fS).route("/connections",pS).route("/prompts",mS);return yS(t),t.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"Management api"}}),t}function wS(r){const e=new jt;e.get("/",s=>s.json({name:"authhero"}));const t=_S(r);e.route("/api/v2",t);const n=new jt().route("/.well-known",S1());return n.doc("/spec",{openapi:"3.0.0",info:{version:"1.0.0",title:"Oauth endpoints"}}),e.route("/",n),{app:e,managementApp:t,oauthApp:n}}exports.Auth0Client=wy;exports.AuthorizationResponseMode=of;exports.AuthorizationResponseType=af;exports.CodeChallengeMethod=cf;exports.GrantType=df;exports.LogTypes=Xc;exports.applicationInsertSchema=tc;exports.applicationSchema=Mn;exports.auth0UserResponseSchema=vr;exports.authParamsSchema=yy;exports.authorizationCodeGrantTypeParamsSchema=k_;exports.baseUserSchema=Yc;exports.bordersSchema=Ay;exports.brandingSchema=El;exports.clientCredentialGrantTypeParamsSchema=A_;exports.codeInsertSchema=vy;exports.codeSchema=v_;exports.codeTypeSchema=gy;exports.colorsSchema=Oy;exports.connectionInsertSchema=rc;exports.connectionSchema=Vn;exports.domainInsertSchema=by;exports.domainSchema=b_;exports.fontDetailsSchema=Zn;exports.fontsSchema=Ey;exports.hookInsertSchema=sc;exports.hookSchema=Es;exports.identitySchema=py;exports.init=wS;exports.jwksKeySchema=xy;exports.jwksSchema=uf;exports.logSchema=ic;exports.loginInsertSchema=_y;exports.loginSchema=x_;exports.openIDConfigurationSchema=Il;exports.pageBackgroundSchema=Iy;exports.parseUserId=E_;exports.passwordInsertSchema=ky;exports.passwordSchema=w_;exports.pkceAuthorizationCodeGrantTypeParamsSchema=S_;exports.profileDataSchema=hy;exports.promptSettingSchema=jo;exports.samlpAddon=my;exports.sessionInsertSchema=Sy;exports.sessionSchema=lf;exports.signingKeySchema=Cl;exports.tenantInsertSchema=nc;exports.tenantSchema=Ns;exports.themeInsertSchema=jy;exports.themeSchema=O_;exports.totalsSchema=jn;exports.userInsertSchema=ec;exports.userResponseSchema=h_;exports.userSchema=sf;exports.vendorSettingsSchema=y_;exports.widgetSchema=Cy;
|
package/dist/authhero.d.ts
CHANGED
|
@@ -4369,13 +4369,13 @@ export type Bindings = {
|
|
|
4369
4369
|
AUTH_URL: string;
|
|
4370
4370
|
JWKS_URL: string;
|
|
4371
4371
|
JWKS_SERVICE: Fetcher;
|
|
4372
|
+
ISSUER: string;
|
|
4372
4373
|
data: DataAdapters;
|
|
4373
4374
|
JWKS_CACHE_TIMEOUT_IN_SECONDS: number;
|
|
4374
4375
|
ORGANIZATION_NAME: string;
|
|
4375
4376
|
};
|
|
4376
4377
|
export interface AuthHeroConfig {
|
|
4377
4378
|
dataAdapter: DataAdapters;
|
|
4378
|
-
issuer: string;
|
|
4379
4379
|
}
|
|
4380
4380
|
export declare function init(config: AuthHeroConfig): {
|
|
4381
4381
|
app: OpenAPIHono<{
|
|
@@ -4422,7 +4422,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
4422
4422
|
status: 200;
|
|
4423
4423
|
};
|
|
4424
4424
|
};
|
|
4425
|
-
}, "/
|
|
4425
|
+
}, "/prompts"> & import("hono/types").MergeSchemaPath<{
|
|
4426
4426
|
"/": {
|
|
4427
4427
|
$get: {
|
|
4428
4428
|
input: {
|
|
@@ -4680,7 +4680,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
4680
4680
|
status: 201;
|
|
4681
4681
|
};
|
|
4682
4682
|
};
|
|
4683
|
-
}, "/
|
|
4683
|
+
}, "/connections"> & import("hono/types").MergeSchemaPath<{
|
|
4684
4684
|
"/": {
|
|
4685
4685
|
$get: {
|
|
4686
4686
|
input: {
|
|
@@ -4857,7 +4857,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
4857
4857
|
status: 200;
|
|
4858
4858
|
};
|
|
4859
4859
|
};
|
|
4860
|
-
}, "/
|
|
4860
|
+
}, "/hooks"> & import("hono/types").MergeSchemaPath<{
|
|
4861
4861
|
"/": {
|
|
4862
4862
|
$get: {
|
|
4863
4863
|
input: {
|
|
@@ -4984,7 +4984,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
4984
4984
|
status: 200;
|
|
4985
4985
|
};
|
|
4986
4986
|
};
|
|
4987
|
-
}, "/
|
|
4987
|
+
}, "/logs"> & import("hono/types").MergeSchemaPath<{
|
|
4988
4988
|
"/": {
|
|
4989
4989
|
$get: {
|
|
4990
4990
|
input: {
|
|
@@ -5073,7 +5073,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
5073
5073
|
status: 200;
|
|
5074
5074
|
};
|
|
5075
5075
|
};
|
|
5076
|
-
}, "/
|
|
5076
|
+
}, "/tenants"> & import("hono/types").MergeSchemaPath<{
|
|
5077
5077
|
"/": {
|
|
5078
5078
|
$get: {
|
|
5079
5079
|
input: {
|
|
@@ -5404,7 +5404,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
5404
5404
|
status: 201;
|
|
5405
5405
|
};
|
|
5406
5406
|
};
|
|
5407
|
-
}, "/
|
|
5407
|
+
}, "/clients"> & import("hono/types").MergeSchemaPath<{
|
|
5408
5408
|
"/": {
|
|
5409
5409
|
$get: {
|
|
5410
5410
|
input: {
|
|
@@ -5421,7 +5421,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
5421
5421
|
status: 200;
|
|
5422
5422
|
};
|
|
5423
5423
|
};
|
|
5424
|
-
}, "/
|
|
5424
|
+
}, "/users-by-email"> & import("hono/types").MergeSchemaPath<{
|
|
5425
5425
|
"/signing": {
|
|
5426
5426
|
$get: {
|
|
5427
5427
|
input: {
|
|
@@ -5507,7 +5507,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
5507
5507
|
status: 201;
|
|
5508
5508
|
};
|
|
5509
5509
|
};
|
|
5510
|
-
}, "/
|
|
5510
|
+
}, "/keys"> & import("hono/types").MergeSchemaPath<{
|
|
5511
5511
|
"/": {
|
|
5512
5512
|
$get: {
|
|
5513
5513
|
input: {
|
|
@@ -5957,7 +5957,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
5957
5957
|
status: 200;
|
|
5958
5958
|
};
|
|
5959
5959
|
};
|
|
5960
|
-
}, "/
|
|
5960
|
+
}, "/users"> & import("hono/types").MergeSchemaPath<{
|
|
5961
5961
|
"/": {
|
|
5962
5962
|
$get: {
|
|
5963
5963
|
input: {
|
|
@@ -6015,7 +6015,7 @@ export declare function init(config: AuthHeroConfig): {
|
|
|
6015
6015
|
status: 200;
|
|
6016
6016
|
};
|
|
6017
6017
|
};
|
|
6018
|
-
}, "/
|
|
6018
|
+
}, "/branding">, "/">;
|
|
6019
6019
|
oauthApp: OpenAPIHono<{
|
|
6020
6020
|
Bindings: Bindings;
|
|
6021
6021
|
Variables: Variables;
|
package/dist/authhero.mjs
CHANGED
|
@@ -17545,7 +17545,7 @@ Ft.namedCurveSize.set("K-256", 32);
|
|
|
17545
17545
|
Ft.namedCurveSize.set("P-384", 48);
|
|
17546
17546
|
Ft.namedCurveSize.set("P-521", 66);
|
|
17547
17547
|
const So = 60 * 5;
|
|
17548
|
-
function h1(
|
|
17548
|
+
function h1() {
|
|
17549
17549
|
return new jt().openapi(
|
|
17550
17550
|
ke({
|
|
17551
17551
|
tags: ["jwks"],
|
|
@@ -17563,18 +17563,18 @@ function h1(r) {
|
|
|
17563
17563
|
}
|
|
17564
17564
|
}
|
|
17565
17565
|
}),
|
|
17566
|
-
async (
|
|
17567
|
-
const
|
|
17568
|
-
|
|
17569
|
-
const
|
|
17566
|
+
async (e) => {
|
|
17567
|
+
const t = await e.env.data.keys.list(), n = await Promise.all(
|
|
17568
|
+
t.map(async (s) => {
|
|
17569
|
+
const a = await new Ff(s.cert).publicKey.export(), o = await crypto.subtle.exportKey("jwk", a);
|
|
17570
17570
|
return ly.parse({
|
|
17571
|
-
...
|
|
17572
|
-
kid:
|
|
17571
|
+
...o,
|
|
17572
|
+
kid: s.kid
|
|
17573
17573
|
});
|
|
17574
17574
|
})
|
|
17575
17575
|
);
|
|
17576
|
-
return
|
|
17577
|
-
{ keys:
|
|
17576
|
+
return e.json(
|
|
17577
|
+
{ keys: n },
|
|
17578
17578
|
{
|
|
17579
17579
|
headers: {
|
|
17580
17580
|
"access-control-allow-origin": "*",
|
|
@@ -17601,17 +17601,17 @@ function h1(r) {
|
|
|
17601
17601
|
}
|
|
17602
17602
|
}
|
|
17603
17603
|
}),
|
|
17604
|
-
async (
|
|
17605
|
-
const
|
|
17606
|
-
issuer:
|
|
17607
|
-
authorization_endpoint: `${
|
|
17608
|
-
token_endpoint: `${
|
|
17609
|
-
device_authorization_endpoint: `${
|
|
17610
|
-
userinfo_endpoint: `${
|
|
17611
|
-
mfa_challenge_endpoint: `${
|
|
17612
|
-
jwks_uri: `${
|
|
17613
|
-
registration_endpoint: `${
|
|
17614
|
-
revocation_endpoint: `${
|
|
17604
|
+
async (e) => {
|
|
17605
|
+
const t = e.env.ISSUER, n = gh.parse({
|
|
17606
|
+
issuer: t,
|
|
17607
|
+
authorization_endpoint: `${t}authorize`,
|
|
17608
|
+
token_endpoint: `${t}oauth/token`,
|
|
17609
|
+
device_authorization_endpoint: `${t}oauth/device/code`,
|
|
17610
|
+
userinfo_endpoint: `${t}userinfo`,
|
|
17611
|
+
mfa_challenge_endpoint: `${t}mfa/challenge`,
|
|
17612
|
+
jwks_uri: `${t}.well-known/jwks.json`,
|
|
17613
|
+
registration_endpoint: `${t}oidc/register`,
|
|
17614
|
+
revocation_endpoint: `${t}oauth/revoke`,
|
|
17615
17615
|
scopes_supported: [
|
|
17616
17616
|
"openid",
|
|
17617
17617
|
"profile",
|
|
@@ -17672,7 +17672,7 @@ function h1(r) {
|
|
|
17672
17672
|
"PS256"
|
|
17673
17673
|
]
|
|
17674
17674
|
});
|
|
17675
|
-
return
|
|
17675
|
+
return e.json(n, {
|
|
17676
17676
|
headers: {
|
|
17677
17677
|
"access-control-allow-origin": "*",
|
|
17678
17678
|
"access-control-allow-method": "GET",
|
|
@@ -24108,7 +24108,7 @@ async function aS(r) {
|
|
|
24108
24108
|
return (await e.json()).keys;
|
|
24109
24109
|
} catch (e) {
|
|
24110
24110
|
throw new De(500, {
|
|
24111
|
-
message:
|
|
24111
|
+
message: `Failed to fetch jwks: ${e.message}`
|
|
24112
24112
|
});
|
|
24113
24113
|
}
|
|
24114
24114
|
}
|
|
@@ -24165,8 +24165,8 @@ function uS(r) {
|
|
|
24165
24165
|
function lS(r) {
|
|
24166
24166
|
const e = new jt();
|
|
24167
24167
|
e.use(uS(e)), e.use(async (n, s) => (n.env.data = b1(n, r.dataAdapter), s()));
|
|
24168
|
-
const t = e.route("/
|
|
24169
|
-
return iS(t), t.doc("/
|
|
24168
|
+
const t = e.route("/branding", x1).route("/users", D1).route("/keys", H1).route("/users-by-email", F1).route("/clients", K1).route("/tenants", Yk).route("/logs", Qk).route("/hooks", tS).route("/connections", nS).route("/prompts", sS);
|
|
24169
|
+
return iS(t), t.doc("/spec", {
|
|
24170
24170
|
openapi: "3.0.0",
|
|
24171
24171
|
info: {
|
|
24172
24172
|
version: "1.0.0",
|
|
@@ -24181,7 +24181,7 @@ function WO(r) {
|
|
|
24181
24181
|
}));
|
|
24182
24182
|
const t = lS(r);
|
|
24183
24183
|
e.route("/api/v2", t);
|
|
24184
|
-
const n = new jt().route("/.well-known", h1(
|
|
24184
|
+
const n = new jt().route("/.well-known", h1());
|
|
24185
24185
|
return n.doc("/spec", {
|
|
24186
24186
|
openapi: "3.0.0",
|
|
24187
24187
|
info: {
|