@gjermundgaraba/clankerauth-dev 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,539 +1 @@
1
- import{t as e}from"./esm-CdWTLqG7.mjs";import{c as t,r as n,s as r}from"./sqlite-introspector-DSCAP82F-CISODKY3.mjs";import{c as i,i as a,n as o,o as s,r as c,s as l,t as u}from"./dist-WElmxM5G.mjs";import{t as d}from"./compiled-query-C8AL3JwF.mjs";import{C as f,D as p,E as m,S as h,T as g,_,a as v,b as y,d as b,g as x,h as S,i as ee,l as te,m as C,n as ne,o as w,p as T,s as re,t as ie,u as E,v as ae,w as oe,x as se,y as ce}from"./tracer-BuLMhzvR.mjs";import{A as le,C as ue,D as de,E as fe,F as pe,I as me,L as he,M as D,N as O,O as eee,P as k,S as A,T as tee,_ as ge,a as _e,b as ve,c as ye,d as be,f as nee,g as ree,h as xe,i as Se,j as Ce,k as we,l as Te,m as Ee,n as iee,o as De,p as aee,r as Oe,s as ke,t as Ae,u as je,v as j,w as Me,x as Ne,y as Pe}from"./schemas-BE0MEk26.mjs";import{a as Fe,c as Ie,l as Le,o as oee,r as see,s as cee}from"./schema-check-Dv6d3DB9.mjs";import{i as Re,n as lee,r as ze}from"./factory-CUkPbxzv.mjs";import{n as Be}from"./access-B09peN6Y.mjs";import*as Ve from"node:crypto";import{randomBytes as He,scrypt as uee}from"node:crypto";import*as Ue from"node:path";import We,{dirname as dee,join as Ge,resolve as Ke}from"node:path";import*as qe from"node:url";import{fileURLToPath as Je}from"node:url";import Ye,*as Xe from"node:os";import*as Ze from"node:child_process";import{Duplex as Qe,PassThrough as $e,Readable as et,pipeline as fee}from"node:stream";import{IncomingMessage as tt,createServer as pee}from"node:http";import{isIP as nt}from"node:net";import*as rt from"node:fs";import it,{mkdirSync as mee}from"node:fs";import{request as hee}from"node:https";import*as gee from"node:stream/promises";import{pipeline as _ee}from"node:stream/promises";import*as at from"node:zlib";import*as ot from"node:readline";import{DatabaseSync as st}from"node:sqlite";import ct from"node:fs/promises";import{lookup as lt}from"node:dns/promises";const ut=(e,t)=>{switch(t.length){case 0:return e;case 1:return t[0](e);case 2:return t[1](t[0](e));case 3:return t[2](t[1](t[0](e)));case 4:return t[3](t[2](t[1](t[0](e))));case 5:return t[4](t[3](t[2](t[1](t[0](e)))));case 6:return t[5](t[4](t[3](t[2](t[1](t[0](e))))));case 7:return t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))));case 8:return t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e))))))));case 9:return t[8](t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))))));default:{let n=e;for(let e=0,r=t.length;e<r;e++)n=t[e](n);return n}}},dt={pipe(){return ut(this,arguments)}},ft=/*#__PURE__*/ function(){function e(){}return e.prototype=dt,e}(),M=function(e,t){if(typeof e==`function`)return function(){return e(arguments)?t.apply(this,arguments):e=>t(e,...arguments)};switch(e){case 0:case 1:throw RangeError(`Invalid arity ${e}`);case 2:return function(e,n){return arguments.length>=2?t(e,n):function(n){return t(n,e)}};case 3:return function(e,n,r){return arguments.length>=3?t(e,n,r):function(r){return t(r,e,n)}};default:return function(){if(arguments.length>=e)return t.apply(this,arguments);let n=arguments;return function(e){return t(e,...n)}}}},N=e=>e,pt=e=>()=>e,mt=/*#__PURE__*/ pt(!0),ht=/*#__PURE__*/ pt(!1),gt=/*#__PURE__*/ pt(void 0),_t=gt;function vt(e,...t){return ut(e,t)}function vee(e,t,n,r,i,a,o,s,c){switch(arguments.length){case 1:return e;case 2:return function(){return t(e.apply(this,arguments))};case 3:return function(){return n(t(e.apply(this,arguments)))};case 4:return function(){return r(n(t(e.apply(this,arguments))))};case 5:return function(){return i(r(n(t(e.apply(this,arguments)))))};case 6:return function(){return a(i(r(n(t(e.apply(this,arguments))))))};case 7:return function(){return o(a(i(r(n(t(e.apply(this,arguments)))))))};case 8:return function(){return s(o(a(i(r(n(t(e.apply(this,arguments))))))))};case 9:return function(){return c(s(o(a(i(r(n(t(e.apply(this,arguments)))))))))}}}function yt(e){let t=/* @__PURE__ */ new WeakMap;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=e(n);return t.set(n,i),i}}function bt(e){let t=/* @__PURE__ */ new WeakMap;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=e(n);return t.set(n,i),i!==n&&t.set(i,i),i}}const xt=e=>{let t=new Set(Reflect.ownKeys(e));if(e.constructor===Object)return t;e instanceof Error&&t.delete(`stack`);let n=Object.getPrototypeOf(e),r=n;for(;r!==null&&r!==Object.prototype;){let e=Reflect.ownKeys(r);for(let n=0;n<e.length;n++)t.add(e[n]);r=Object.getPrototypeOf(r)}return t.has(`constructor`)&&typeof e.constructor==`function`&&n===e.constructor.prototype&&t.delete(`constructor`),t},St=/*#__PURE__*/ new WeakSet,Ct=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let wt=0;const Tt=()=>{wt++};function Et(e){return typeof e==`string`}function Dt(e){return typeof e==`number`}function Ot(e){return typeof e==`boolean`}function kt(e){return typeof e==`symbol`}function At(e){return Et(e)||Dt(e)||kt(e)}function jt(e){return typeof e==`function`}function Mt(e){return e===void 0}function Nt(e){return e!==void 0}function Pt(e){return e!==null}function Ft(e){return e==null}function It(e){return e!=null}function Lt(e){return!1}function Rt(e){return!0}function zt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Bt(e){return zt(e)}function Vt(e){return typeof e==`object`&&!!e||jt(e)}const P=/*#__PURE__*/ M(2,(e,t)=>Vt(e)&&t in e),Ht=/*#__PURE__*/ M(2,(e,t)=>P(e,`_tag`)&&e._tag===t);function yee(e){return e instanceof Error}function bee(e){return P(e,Symbol.iterator)||Et(e)}const Ut=`~effect/Hash`,Wt=e=>{switch(typeof e){case`number`:return Xt(e);case`bigint`:return Zt(e.toString(10));case`string`:return Zt(e);case`function`:case`object`:if(e===null)break;if(e instanceof Date)return Number.isNaN(e.getTime())?Zt(`Invalid Date`):Zt(e.toISOString());if(e instanceof RegExp)return Zt(e.toString());{if(St.has(e))return Gt(e);let t=on.get(e);if(t!==void 0)return t;if(sn.has(e))return Tt(),Zt(`[Circular]`);sn.add(e);let n=wt,r;try{r=`~effect/Hash`in e?e[Ut]():typeof e==`function`?Gt(e):e instanceof DataView?en(Ct(e)):Array.isArray(e)||ArrayBuffer.isView(e)?en(e):e instanceof Map?tn(e):e instanceof Set?rn(e):Qt(e)}finally{sn.delete(e)}return n===wt&&on.set(e,r),r}}return Jt(Kt(Zt(String(e))))},Gt=e=>(an.has(e)||an.set(e,Jt(Math.random()*4294967296|0)),an.get(e)),Kt=e=>(e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^e>>>16),qt=/*#__PURE__*/ M(2,(e,t)=>Kt(Math.imul(e,2654435761)+Math.imul(t,2246822507))),Jt=e=>e&3221225471|e>>>1&1073741824,Yt=/*#__PURE__*/ new DataView(/*#__PURE__*/ new ArrayBuffer(8)),Xt=e=>{let t=e|0;return t===e?Jt(t):(Yt.setFloat64(0,e===e?e:NaN),Jt(qt(Yt.getInt32(0),Yt.getInt32(4))))},Zt=e=>{let t=5381,n=e.length;for(;n;)t=t*33^e.charCodeAt(--n);return Jt(t)},xee=(e,t)=>{let n=12289;for(let r of t)n^=qt(Wt(r),Wt(e[r]));return Jt(n)},Qt=e=>xee(e,xt(e)),$t=(e,t)=>n=>{let r=e;for(let e of n)r^=t(e);return Jt(r)},en=e=>{let t=6151;for(let n of e)t=qt(t,Wt(n));return Jt(t)},tn=/*#__PURE__*/ $t(/*#__PURE__*/ Zt(`Map`),([e,t])=>qt(Wt(e),Wt(t))),nn=/*#__PURE__*/ Zt(`Set`),rn=/*#__PURE__*/ $t(nn,e=>qt(nn,Wt(e))),an=/*#__PURE__*/ new WeakMap,on=/*#__PURE__*/ new WeakMap,sn=/*#__PURE__*/ new WeakSet,cn=`~effect/Equal`;function ln(){return arguments.length===1?e=>un(e,arguments[0]):un(arguments[0],arguments[1])}function un(e,t){if(e===t)return!0;if(e==null||t==null)return!1;let n=typeof e;return n===typeof t?n===`number`&&e!==e&&t!==t?!0:n!==`object`&&n!==`function`||St.has(e)||St.has(t)?!1:dn(e,t):!1}function dn(e,t){let n=pn.length;for(let r=n;r-->0;)if(pn[r]===e&&mn[r]===t)return!0;if(n)return fn(e,t);let r=hn.get(e);r||hn.set(e,r=/* @__PURE__ */ new WeakMap);let i=r.get(t);return i===void 0&&r.set(t,i=fn(e,t)),i}function fn(e,t){pn.push(e),mn.push(t);try{return See(e,t)}finally{pn.pop(),mn.pop()}}const pn=[],mn=[],hn=/*#__PURE__*/ new WeakMap;function See(e,t){if(Wt(e)!==Wt(t))return!1;if(e instanceof Date){if(!(t instanceof Date))return!1;let n=e.getTime(),r=t.getTime();return n===r||Number.isNaN(n)&&Number.isNaN(r)}if(e instanceof RegExp)return t instanceof RegExp&&e.toString()===t.toString();let n=vn(e);if(n!==vn(t)||typeof e==`function`&&!n)return!1;if(n)return e[cn](t);if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:Cee(e,t);if(ArrayBuffer.isView(e)){let n=e instanceof DataView;return!ArrayBuffer.isView(t)||e.byteLength!==t.byteLength||n!==t instanceof DataView?!1:n?gn(Ct(e),Ct(t)):gn(e,t)}return e instanceof Map?!(t instanceof Map)||e.size!==t.size?!1:_n(e,t,Tee,Eee):e instanceof Set?!(t instanceof Set)||e.size!==t.size?!1:_n(e,t,Wt,un):wee(e,t)}function Cee(e,t){for(let n=0;n<e.length;n++)if(!un(e[n],t[n]))return!1;return!0}function gn(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function wee(e,t){let n=xt(e),r=xt(t);if(n.size!==r.size)return!1;for(let i of n)if(!r.has(i)||!un(e[i],t[i]))return!1;return!0}function _n(e,t,n,r){let i=/* @__PURE__ */ new Map,a=0;for(let e of t){let t=n(e),r=i.get(t);r?r.push(e):i.set(t,[e]),a++}outer:for(let t of e){let e=i.get(n(t));if(e){for(let n=0;n<e.length;n++)if(r(t,e[n])){e[n]=e[e.length-1],e.pop(),a--;continue outer}}return!1}return a===0}const Tee=e=>Wt(e[0]),Eee=(e,t)=>un(e[0],t[0])&&un(e[1],t[1]),vn=e=>P(e,cn),yn=/*#__PURE__*/ Symbol.for(`~effect/Redactable`),Dee=e=>P(e,yn);function bn(e){return Dee(e)?xn(e):e}function xn(e){return e[yn](globalThis[`~effect/Fiber/currentFiber`]?.context??wn)}const Sn=`~effect/Fiber/currentFiber`,Cn=/*#__PURE__*/ new Map,wn={"~effect/Context":{},base:Cn,depth:0,mapUnsafe:Cn,pipe(){return ut(this,arguments)}};function Tn(e,t){let n=t?.space??0,r=/* @__PURE__ */ new WeakSet,i=n?typeof n==`number`?` `.repeat(n):n:``,a=e=>i.repeat(e),o=(e,t)=>{let n=e?.constructor;return n&&n!==Object.prototype.constructor&&n.name?`${n.name}(${t})`:t},s=e=>{try{return Reflect.ownKeys(e)}catch{return[`[ownKeys threw]`]}};function c(e,t=0){try{return l(e,t)}catch{return(typeof e==`object`&&e||typeof e==`function`)&&r.delete(e),`[inspection threw]`}}function l(e,n=0){if(typeof e==`string`)return JSON.stringify(e);if(typeof e==`number`||e==null||typeof e==`boolean`||typeof e==`symbol`)return String(e);if(typeof e==`bigint`)return String(e)+`n`;if(typeof e==`object`||typeof e==`function`){if(r.has(e))return Oee;r.add(e);let l;if(yn in e)l=c(xn(e),n);else if(Array.isArray(e))l=!i||e.length<=1?`[${e.map(e=>c(e,n)).join(`,`)}]`:`[\n${a(n+1)}${e.map(e=>c(e,n+1)).join(`,
2
- `+a(n+1))}\n${a(n)}]`;else if(e instanceof Date)l=kee(e);else if(!t?.ignoreToString&&P(e,`toString`)&&typeof e.toString==`function`&&e.toString!==Object.prototype.toString&&e.toString!==Array.prototype.toString){let t=On(e);l=e instanceof Error&&e.cause!==void 0?`${t} (cause: ${c(e.cause,n)})`:t}else if(Symbol.iterator in e)l=`${e.constructor.name}(${c(Array.from(e),n)})`;else{let t=s(e);if(!i||t.length<=1){let r=`{${t.map(t=>`${En(t)}:${c(kn(e,t),n)}`).join(`,`)}}`;l=o(e,r)}else{let r=`{\n${t.map(t=>`${a(n+1)}${En(t)}: ${c(kn(e,t),n+1)}`).join(`,
3
- `)}\n${a(n)}}`;l=o(e,r)}}return r.delete(e),l}return String(e)}return c(e,0)}const Oee=`[Circular]`;function En(e){return typeof e==`string`?JSON.stringify(e):String(e)}function Dn(e){return e.map(e=>`[${En(e)}]`).join(``)}function kee(e){try{return e.toISOString()}catch{return`Invalid Date`}}function On(e){try{let t=e.toString();return typeof t==`string`?t:String(t)}catch{return`[toString threw]`}}function kn(e,t){try{return e[t]}catch{return`[property access threw]`}}function An(e,t){let n=[];return JSON.stringify(e,function(e,t){let r=Object.getOwnPropertyDescriptor(this,e)?.value,i=P(r,yn)?bn(r):bn(t);if(typeof i==`bigint`)return Tn(i);if(typeof i!=`object`||!i)return i;let a=i instanceof Error&&!P(i,`toJSON`)?{...i,name:i.name,message:i.message}:i;for(;n.length>0&&n[n.length-1]!==this;)n.pop();if(n.includes(i))return;if(n.push(i),a!==i&&n.push(a),!Aee(a)||jee(a))return a;let o=new Proxy(a,{get(e,t){let n=Reflect.get(e,t,e);return Object.getOwnPropertyDescriptor(e,t)?.get===void 0?n:bn(n)}});return n.push(o),o},t?.space)??`null`}function Aee(e){for(let t of Object.getOwnPropertyNames(e))if(Object.getOwnPropertyDescriptor(e,t)?.get!==void 0)return!0;return!1}function jee(e){for(let t of[Number.prototype.valueOf,Boolean.prototype.valueOf,String.prototype.valueOf])try{return Reflect.apply(t,e,[]),!0}catch{}return!1}const jn=/*#__PURE__*/ Symbol.for(`nodejs.util.inspect.custom`),Mn=e=>{try{return e=bn(e),P(e,`toJSON`)&&jt(e.toJSON)&&e.toJSON.length===0?e.toJSON():Array.isArray(e)?e.map(Mn):e}catch{return`[toJSON threw]`}},Mee=(e,t=2)=>{if(typeof e==`string`)return e;try{return typeof e==`object`?An(e,{space:t}):Tn(e,{space:t})}catch{return String(e)}},Nn={toJSON(){return Mn(this)},[jn](){return this.toJSON()},toString(){return Tn(this.toJSON())}};var Pn=class{[jn](){return this.toJSON()}toString(){return Tn(this.toJSON())}};const Nee=/*#__PURE__*/ (()=>{let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Object.hasOwn(e,`writable`)?e.writable===!0:e.set!==void 0})(),Fn=()=>Error.stackTraceLimit,In=e=>{Nee&&(Error.stackTraceLimit=e)};var Ln=class{constructor(e){this.value=e,this.done=!1}next(e){return this.done?(this.value=e,this):(this.done=!0,{value:this.value,done:!1})}};const Rn=/*#__PURE__*/ (()=>{let e=`~effect/Utils/internal`,t={[e]:e=>e()},n={[e]:e=>{try{return e()}finally{}}},r=Fn();if(r===0)return n[e];In(2);let i=t[e](()=>/* @__PURE__ */ Error());return In(r),i.stack?.includes(e)===!0?t[e]:n[e]})();function zn(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function Bn(e,t){for(let n of Reflect.ownKeys(t))Object.prototype.propertyIsEnumerable.call(t,n)&&zn(e,n,t[n])}const Vn=`~effect/Effect`,Hn=`~effect/Exit`,Un={_A:N,_E:N,_R:N},Wn=`${Vn}/identifier`,Gn=`${Vn}/args`,Kn=`${Vn}/evaluate`,qn=`${Vn}/successCont`,Jn=`${Vn}/failureCont`,Yn=`${Vn}/ensureCont`,Xn=/*#__PURE__*/ Symbol.for(`effect/Effect/Yield`),Zn={pipe(){return ut(this,arguments)},toJSON(){return{...this}},toString(){return Tn(this.toJSON(),{ignoreToString:!0,space:2})},[jn](){return this.toJSON()}},Pee={[Vn]:Un,...Zn,[Symbol.iterator](){return new Ln(this)},toJSON(){return{_id:`Effect`,op:this[Wn],...Gn in this?{args:this[Gn]}:void 0}}},Qn=e=>P(e,Vn),$n=e=>P(e,Hn),er=`~effect/Cause`,tr=`~effect/Cause/Reason`,nr=e=>P(e,er),Fee=e=>P(e,tr);var rr=class{constructor(e){this[er]=er,this.reasons=e}pipe(){return ut(this,arguments)}toJSON(){return{_id:`Cause`,failures:this.reasons.map(e=>e.toJSON())}}toString(){return`Cause(${Tn(this.reasons)})`}[jn](){return this.toJSON()}[cn](e){return nr(e)&&this.reasons.length===e.reasons.length&&this.reasons.every((t,n)=>ln(t,e.reasons[n]))}[Ut](){return en(this.reasons)}};const ir=/*#__PURE__*/ new WeakMap;var ar=class{[tr];annotations;_tag;constructor(e,t,n){if(this[tr]=tr,this._tag=e,t!==or&&typeof n==`object`&&n&&t.size>0){let e=ir.get(n);e&&(t=new Map([...e,...t])),ir.set(n,t)}this.annotations=t}annotate(e,t){if(e.mapUnsafe.size===0)return this;let n=new Map(this.annotations);e.mapUnsafe.forEach((e,r)=>{t?.overwrite!==!0&&n.has(r)||n.set(r,e)});let r=Object.assign(Object.create(Object.getPrototypeOf(this)),this);return r.annotations=n,r}pipe(){return ut(this,arguments)}toString(){return Tn(this)}[jn](){return this.toString()}};const or=/*#__PURE__*/ new Map;var sr=class extends ar{constructor(e,t=or){super(`Fail`,t,e),this.error=e}toString(){return`Fail(${Tn(this.error)})`}toJSON(){return{_tag:`Fail`,error:this.error}}[cn](e){return mr(e)&&ln(this.error,e.error)&&ln(this.annotations,e.annotations)}[Ut](){return qt(Zt(this._tag))(qt(Wt(this.error))(Wt(this.annotations)))}};const cr=e=>new rr(e),Iee=(e,t)=>{let n=/* @__PURE__ */ new Map,r=[];for(let i of e.concat(t)){let e=Wt(i),t=n.get(e);if(t===void 0)n.set(e,[i]);else if(t.some(e=>ln(e,i)))continue;else t.push(i);r.push(i)}return r},lr=/*#__PURE__*/ M(2,(e,t)=>{if(e.reasons.length===0)return t;if(t.reasons.length===0)return e;let n=new rr(Iee(e.reasons,t.reasons));return ln(e,n)?e:n}),Lee=/*#__PURE__*/ new rr([]),ur=e=>new rr([new sr(e)]);var dr=class extends ar{constructor(e,t=or){super(`Die`,t,e),this.defect=e}toString(){return`Die(${Tn(this.defect)})`}toJSON(){return{_tag:`Die`,defect:this.defect}}[cn](e){return hr(e)&&ln(this.defect,e.defect)&&ln(this.annotations,e.annotations)}[Ut](){return qt(Zt(this._tag))(qt(Wt(this.defect))(Wt(this.annotations)))}};const fr=e=>new rr([new dr(e)]),pr=/*#__PURE__*/ M(e=>nr(e[0]),(e,t,n)=>t.mapUnsafe.size===0?e:new rr(e.reasons.map(e=>e.annotate(t,n)))),mr=e=>e._tag===`Fail`,hr=e=>e._tag===`Die`,gr=e=>e._tag===`Interrupt`;function Ree(e){return Tr(`Effect.evaluate: Not implemented`)}const _r=e=>({...Pee,[Wn]:e.op,[Kn]:e[Kn]??Ree,[qn]:e[qn],[Jn]:e[Jn],[Yn]:e[Yn]}),vr=e=>{let t=_r(e),n=function(e){this[Gn]=e};return n.prototype=t,function(e){return new n(e)}},yr=e=>{let t={[Hn]:Hn,_tag:e.op,get[e.prop](){return this[Gn]},..._r(e),toString(){return`${e.op}(${Tn(this[Gn])})`},toJSON(){return{_id:`Exit`,_tag:e.op,[e.prop]:this[Gn]}},[cn](e){return $n(e)&&e._tag===this._tag&&ln(this[Gn],e[Gn])},[Ut](){return qt(Zt(e.op),Wt(this[Gn]))}},n=function(e){this[Gn]=e};return n.prototype=t,function(e){return new n(e)}},br=/*#__PURE__*/ yr({op:`Success`,prop:`value`,[Kn](e){let t=e.getCont(qn);return t?t[qn](this[Gn],e,this):e.yieldWith(this)}}),xr={key:`effect/Cause/StackTrace`},Sr={key:`effect/Cause/InterruptorStackTrace`},Cr=/*#__PURE__*/ yr({op:`Failure`,prop:`cause`,[Kn](e){let t=this[Gn],n=!1;e.cache.stackFrame&&(t=pr(t,{mapUnsafe:/* @__PURE__ */ new Map([[xr.key,e.cache.stackFrame]])}),n=!0);let r=e.getCont(Jn),i=e._interruptedCause;if(i&&e.interruptible){let a=!1;for(;r&&e.interruptible;)a||=Wn in r,r=e.getCont(Jn);a&&(t=cr(t.reasons.filter(e=>e._tag!==`Fail`))),t=lr(t,i),n=!0}return r?r[Jn](t,e,n?void 0:this):e.yieldWith(n?Cr(t):this)}}),wr=e=>Cr(ur(e)),Tr=e=>Cr(fr(e)),Er=/*#__PURE__*/ vr({op:`WithFiber`,[Kn](e){return this[Gn](e)}}),Dr=/*#__PURE__*/ function(){class e extends globalThis.Error{}let t=/*#__PURE__*/ _r({op:`YieldableError`,[Kn](){return wr(this)}});return delete t.toString,Object.assign(e.prototype,t),e}(),Or=/*#__PURE__*/ function(){let e=/*#__PURE__*/ Symbol.for(`effect/Data/Error/plainArgs`);return class extends Dr{constructor(t){super(t?.message,t?.cause?{cause:t.cause}:void 0),t&&(Bn(this,t),Object.defineProperty(this,e,{value:t,enumerable:!1}))}toJSON(){return{...this[e],...this}}}}(),kr=e=>{class t extends Or{_tag=e}return t.prototype.name=e,t},Ar=e=>P(e,`~effect/Cause/NoSuchElementError`),jr=`~effect/Cause/Done`,Mr=e=>P(e,jr),Nr={[jr]:jr,_tag:`Done`,value:void 0},Pr=e=>e===void 0?Nr:{[jr]:jr,_tag:`Done`,value:e},Fr=/*#__PURE__*/ wr(Nr),Ir=e=>e===void 0?Fr:wr(Pr(e)),Lr=e=>_r({op:e.label,[Kn]:e.evaluate}),Rr=e=>(t,n)=>t===n||e(t,n),zr=(e,t)=>e===t,Br=()=>zr;function Vr(e){return Rr((t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r++)if(!e[r](t[r],n[r]))return!1;return!0})}function Hr(e){return Rr((t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r++)if(!e(t[r],n[r]))return!1;return!0})}const Ur=`~effect/Option`,Wr={[Ur]:{_A:e=>e},...Zn,[Symbol.iterator](){return new Ln(this)}},Gr=/*#__PURE__*/ Object.defineProperty(/*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(Wr),{_tag:`Some`,_op:`Some`,[cn](e){return Jr(e)&&Xr(e)&&ln(this.value,e.value)},[Ut](){return qt(Wt(this._tag))(Wt(this.value))},toString(){return`some(${Tn(this.value)})`},toJSON(){return{_id:`Option`,_tag:this._tag,value:Mn(this.value)}}}),"valueOrUndefined",{get(){return this.value}}),Kr=/*#__PURE__*/ Wt(`None`),qr=/*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(Wr),{_tag:`None`,_op:`None`,valueOrUndefined:void 0,[cn](e){return Jr(e)&&Yr(e)},[Ut](){return Kr},toString(){return`none()`},toJSON(){return{_id:`Option`,_tag:this._tag}}}),Jr=e=>P(e,Ur),Yr=e=>e._tag===`None`,Xr=e=>e._tag===`Some`,Zr=/*#__PURE__*/ Object.create(qr),Qr=function(e){this.value=e};Qr.prototype=Gr;const $r=e=>new Qr(e),ei=`~effect/Result`,ti={[ei]:{
4
- /* v8 ignore next 2 */
5
- _A:e=>e,_E:e=>e},...Zn,[Symbol.iterator](){return new Ln(this)}},zee=/*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(ti),{_tag:`Success`,_op:`Success`,[cn](e){return ni(e)&&ii(e)&&ln(this.success,e.success)},[Ut](){return qt(Wt(this._tag))(Wt(this.success))},toString(){return`success(${Tn(this.success)})`},toJSON(){return{_id:`Result`,_tag:this._tag,value:Mn(this.success)}}}),Bee=/*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(ti),{_tag:`Failure`,_op:`Failure`,[cn](e){return ni(e)&&ri(e)&&ln(this.failure,e.failure)},[Ut](){return qt(Wt(this._tag))(Wt(this.failure))},toString(){return`failure(${Tn(this.failure)})`},toJSON(){return{_id:`Result`,_tag:this._tag,failure:Mn(this.failure)}}}),ni=e=>P(e,ei),ri=e=>e._tag===`Failure`,ii=e=>e._tag===`Success`,ai=function(e){this.failure=e};ai.prototype=Bee;const Vee=e=>new ai(e),oi=function(e){this.success=e};oi.prototype=zee;const Hee=e=>new oi(e);function si(e){return(t,n)=>t===n?0:e(t,n)}const Uee=/*#__PURE__*/ si((e,t)=>e<t?-1:1),ci=/*#__PURE__*/ si((e,t)=>globalThis.Number.isNaN(e)&&globalThis.Number.isNaN(t)?0:globalThis.Number.isNaN(e)?-1:globalThis.Number.isNaN(t)?1:e<t?-1:1),Wee=/*#__PURE__*/ M(2,(e,t)=>si((n,r)=>e(t(n),t(r)))),Gee=e=>M(2,(t,n)=>e(t,n)===-1),li=e=>M(2,(t,n)=>e(t,n)===1),Kee=e=>M(2,(t,n)=>e(t,n)!==1),ui=e=>M(2,(t,n)=>e(t,n)!==-1),di=()=>Zr,fi=$r,pi=Yr,mi=Xr,hi=/*#__PURE__*/ M(2,(e,{onNone:t,onSome:n})=>pi(e)?t():n(e.value)),gi=/*#__PURE__*/ M(2,(e,t)=>pi(e)?t():e.value),_i=e=>e==null?di():fi(e),vi=e=>e===void 0?di():fi(e),yi=/*#__PURE__*/ gi(gt),bi=e=>(...t)=>{try{return fi(e(...t))}catch{return di()}},xi=/*#__PURE__*/ M(2,(e,t)=>pi(e)?di():fi(t(e.value))),Si=/*#__PURE__*/ M(2,(e,t)=>pi(e)?di():t(e.value)),qee=/*#__PURE__*/ M(2,(e,t)=>pi(e)?di():t(e.value)?fi(e.value):di()),Ci=`~effect/Context/Service`,F=function(){function e(){}let t=e;Object.setPrototypeOf(t,Jee);let n=(e,n)=>(t.key=e,n?.defaultValue&&(t[Ti]=Ti,t.defaultValue=n.defaultValue),n?.make&&(t.make=n.make),n?.fiberCached&&wi.add(e),t);return arguments.length>0?n(arguments[0],arguments[1]):n},Jee={[Ci]:Ci,.../*#__PURE__*/ Lr({label:`Service`,evaluate(e){return br(Wi(e.context,this))}}),toJSON(){return{_id:`Service`,key:this.key}},of(e){return e},context(e){return Ri(this,e)},use(e){return Er(t=>e(Wi(t.context,this)))},useSync(e){return Er(t=>br(e(Wi(t.context,this))))}},wi=/*#__PURE__*/ new Set,Ti=`~effect/Context/Reference`,Ei=`~effect/Context`,Di=(e,t,n,r)=>{let i=Object.create(Yee);return i.cacheRoot=e??i,i.base=t,i.overlay=n,i.depth=r,i._flat=void 0,i.baseHits=0,i},Oi=(e,t)=>{t&&(Oi(e,t.parent),e.set(t.key,t.value))},ki=e=>{if(e._flat)return e._flat;if(!e.overlay)return e._flat=e.base;let t=new Map(e.base);return Oi(t,e.overlay),e._flat=t},Ai=(e,t)=>{let n=new Map(e.mapUnsafe);return t(n),Ni(n)},ji=/*#__PURE__*/ Symbol(),Mi=(e,t)=>{let n=e;for(let e=n.overlay;e;e=e.parent)if(e.key===t)return e.value;let r=n.base.get(t);return r===void 0&&!n.base.has(t)?ji:(n.overlay&&++n.baseHits>=n.base.size&&n.baseHits>=8&&(n.base=ki(n),n.overlay=void 0,n.depth=0),r)},Ni=e=>Di(void 0,e,void 0,0),Yee={get mapUnsafe(){return ki(this)},...Zn,[Ei]:{_Services:e=>e},toJSON(){return{_id:`Context`,services:Array.from(this.mapUnsafe).map(([e,t])=>({key:e,value:t}))}},[cn](e){if(!Pi(e))return!1;let t=this.mapUnsafe,n=e.mapUnsafe;if(t.size!==n.size)return!1;for(let[e,r]of t)if(!n.has(e)||!ln(r,n.get(e)))return!1;return!0},[Ut](){return Xt(this.mapUnsafe.size)}},Xee=(e,t)=>e.cacheRoot===t.cacheRoot,Pi=e=>P(e,Ei),Zee=e=>P(e,Ci),Fi=e=>!!e[Ti],Ii=()=>Li,Li=/*#__PURE__*/ Ni(/*#__PURE__*/ new Map),Ri=(e,t)=>Ni(/* @__PURE__ */ new Map([[e.key,t]])),zi=/*#__PURE__*/ M(3,(e,t,n)=>Qee(e,t.key,n)),Qee=(e,t,n)=>{let r=e,i=wi.has(t)?void 0:r.cacheRoot;if(r.depth>=8){let e=new Map(r._flat??r.base);return r._flat||Oi(e,r.overlay),e.set(t,n),Di(i,e,void 0,0)}return Di(i,r.base,{key:t,value:n,parent:r.overlay},r.depth+1)},Bi=/*#__PURE__*/ M(3,(e,t,n)=>{let r=Mi(e,t.key);return r===ji?Fi(t)?Ki(t):n():r}),Vi=/*#__PURE__*/ M(2,(e,t)=>Hi(e,t.key)),Hi=(e,t)=>{let n=Mi(e,t);return n===ji?void 0:n},Ui=/*#__PURE__*/ M(2,(e,t)=>{let n=Mi(e,t.key);if(n===ji){if(Fi(t))return Ki(t);throw $ee(t)}return n}),Wi=Ui,Gi=`~effect/Context/defaultValue`,Ki=e=>Gi in e?e[Gi]:e[Gi]=e.defaultValue(),$ee=e=>{let t=/* @__PURE__ */ Error(`Service not found${e.key?`: ${String(e.key)}`:``}`);if(t.stack){let e=t.stack.split(`
6
- `);e.splice(1,3),t.stack=e.join(`
7
- `)}return t},qi=/*#__PURE__*/ M(2,(e,t)=>{let n=Mi(e,t.key);return n===ji?Fi(t)?fi(Ki(t)):di():fi(n)}),Ji=/*#__PURE__*/ M(2,(e,t)=>e.mapUnsafe.size===0?t:t.mapUnsafe.size===0?e:Ai(e,e=>t.mapUnsafe.forEach((t,n)=>e.set(n,t)))),ete=(...e)=>{let t=/* @__PURE__ */ new Map;for(let n=0;n<e.length;n++)e[n].mapUnsafe.forEach((e,n)=>{t.set(n,e)});return Ni(t)},Yi=(...e)=>t=>Ai(t,t=>{for(let n=0;n<e.length;n++)t.delete(e[n].key)}),Xi=F,Zi=e=>e.length>0,Qi=e=>e>0?Math.floor(e):0,$i=Hee,ea=Vee,ta=e=>{if(jt(e))try{return $i(e())}catch(e){return ea(e)}try{return $i(e.try())}catch(t){return ea(e.catch(t))}},na=ni,ra=ri,ia=ii,aa=/*#__PURE__*/ M(2,(e,t)=>ra(e)?ea(t(e.failure)):e),oa=/*#__PURE__*/ M(2,(e,t)=>ia(e)?$i(t(e.success)):e),sa=/*#__PURE__*/ M(2,(e,{onFailure:t,onSuccess:n})=>ra(e)?t(e.failure):n(e.success)),ca=/*#__PURE__*/ (/* @__PURE__ */ M(2,(e,t)=>ra(e)?t(e.failure):e.success))(gt),la=Vr,ua=e=>{let t=e[Symbol.iterator]().next();if(t.done)throw Error(`headUnsafe: empty iterable`);return t.value},da=()=>({}),fa=e=>Object.keys(e).length===0,pa=/*#__PURE__*/ M(2,(e,t)=>Object.hasOwn(e,t)),ma=/*#__PURE__*/ M(2,(e,t)=>{let n={...e};for(let r of ga(e))zn(n,r,t(e[r],r));return n}),ha=/*#__PURE__*/ M(2,(e,t)=>{let n=da();for(let r of ga(e))t(e[r],r)&&zn(n,r,e[r]);return n}),ga=e=>Object.keys(e),_a=/*#__PURE__*/ M(3,(e,t,n)=>({...e,[t]:n})),va=e=>M(2,(t,n)=>{for(let r of ga(t))if(!pa(n,r)||!e(t[r],n[r]))return!1;return!0}),ya=e=>{let t=va(e);return(e,n)=>t(e,n)&&t(n,e)},ba=globalThis.Array,xa=e=>ba.isArray(e)?e:ba.from(e),Sa=e=>ba.isArray(e)?e:[e],Ca=/*#__PURE__*/ M(2,(e,t)=>[...e,t]);ba.isArray;const wa=Zi,Ta=Zi;function Ea(e){let t=Number(e);return String(t)===e&&Number.isInteger(t)&&t>=0&&t<2**32-1}const Da=(e,t)=>Math.min(Qi(e),t),Oa=/*#__PURE__*/ M(2,(e,t)=>{let n=xa(e);return n.slice(0,Da(t,n.length))}),ka=e=>ba.from(e).reverse(),Aa=(e,t)=>{let n=Wt(t),r=e.get(n);if(r===void 0)return e.set(n,[t]),!0;for(let e of r)if(ln(e,t))return!1;return r.push(t),!0},ja=()=>[],Ma=e=>[e],Na=/*#__PURE__*/ M(2,(e,t)=>e.map(t)),Pa=Hr,Fa=e=>{let t=xa(e);if(t.length<2)return[...t];let n=/* @__PURE__ */ new Map,r=[];for(let e of t)Aa(n,e)&&r.push(e);return r},Ia=`~effect/Duration`,La=/*#__PURE__*/ BigInt(0),Ra=/*#__PURE__*/ BigInt(1),tte=/*#__PURE__*/ BigInt(2),nte=/*#__PURE__*/ BigInt(10),za=/*#__PURE__*/ BigInt(24),Ba=/*#__PURE__*/ BigInt(60),Va=/*#__PURE__*/ BigInt(1e3),Ha=/*#__PURE__*/ BigInt(1e6),Ua=e=>BigInt(Math.sign(e)*Math.round(Math.abs(e))),Wa=e=>Ua(e*1e6),Ga=e=>Xa(Number.isFinite(e)?Ua(e):e),Ka=(e,t)=>{let n=e.indexOf(`.`);if(n===-1)return BigInt(e)*t;let r=e[0]===`-`,i=e.slice(n+1),a=nte**BigInt(i.length),o=(BigInt(e.slice(+!!r,n))*a+BigInt(i))*t;return rte(r?-o:o,a)},rte=(e,t)=>{let n=e<La?-e:e,r=n/t+(n%t*tte>=t?Ra:La);return e<La?-r:r},ite=/^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/,qa=e=>{switch(typeof e){case`number`:return ro(e);case`bigint`:return no(e);case`string`:{if(e===`Infinity`)return eo;if(e===`-Infinity`)return to;let t=ite.exec(e);if(!t)break;let[n,r,i]=t;if(i===`nano`||i===`nanos`)return no(Ka(r,Ra));if(i===`micro`||i===`micros`)return no(Ka(r,Va));let a=Number(r);switch(i){case`milli`:case`millis`:return ro(a);case`second`:case`seconds`:return io(a);case`minute`:case`minutes`:return ao(a);case`hour`:case`hours`:return dte(a);case`day`:case`days`:return fte(a);case`week`:case`weeks`:return pte(a)}break}case`object`:{if(e===null)break;if(Ia in e)return e;if(Array.isArray(e))return e.length!==2||!e.every(Dt)?Ja(e):Number.isNaN(e[0])||Number.isNaN(e[1])?$a:e[0]===-1/0||e[1]===-1/0?to:e[0]===1/0||e[1]===1/0?eo:Ga(e[0]*1e9+e[1]);let t=e,n=0;return t.weeks&&(n+=t.weeks*6048e5),t.days&&(n+=t.days*864e5),t.hours&&(n+=t.hours*36e5),t.minutes&&(n+=t.minutes*6e4),t.seconds&&(n+=t.seconds*1e3),t.milliseconds&&(n+=t.milliseconds),!t.microseconds&&!t.nanoseconds?Xa(n):Ga(n*1e6+(t.microseconds??0)*1e3+(t.nanoseconds??0))}}return Ja(e)},Ja=e=>{throw Error(`Invalid Input: ${e}`)},Ya={_tag:`Millis`,millis:0},ate={_tag:`Infinity`},ote={_tag:`NegativeInfinity`},ste={[Ia]:Ia,[Ut](){switch(this.value._tag){case`Millis`:{let e=this.value.millis*1e6;return Number.isFinite(e)?Wt(Ua(e)):Xt(this.value.millis)}case`Nanos`:return Wt(this.value.nanos);default:return Qt(this.value)}},[cn](e){return cte(e)&&_te(this,e)},toString(){switch(this.value._tag){case`Infinity`:return`Infinity`;case`NegativeInfinity`:return`-Infinity`;case`Nanos`:return`${this.value.nanos} nanos`;case`Millis`:return`${this.value.millis} millis`}},toJSON(){switch(this.value._tag){case`Millis`:return{_id:`Duration`,_tag:`Millis`,millis:this.value.millis};case`Nanos`:return{_id:`Duration`,_tag:`Nanos`,nanos:String(this.value.nanos)};case`Infinity`:return{_id:`Duration`,_tag:`Infinity`};case`NegativeInfinity`:return{_id:`Duration`,_tag:`NegativeInfinity`}}},[jn](){return this.toJSON()},pipe(){return ut(this,arguments)}},Xa=e=>{let t=Object.create(ste);return t.value=typeof e==`number`?isNaN(e)||e===0||Object.is(e,-0)?Ya:Number.isFinite(e)?Number.isInteger(e)?{_tag:`Millis`,millis:e}:{_tag:`Nanos`,nanos:Wa(e)}:e>0?ate:ote:e===La?Ya:{_tag:`Nanos`,nanos:e},t},cte=e=>P(e,Ia),Za=e=>e.value._tag!==`Infinity`&&e.value._tag!==`NegativeInfinity`,Qa=e=>{switch(e.value._tag){case`Millis`:return e.value.millis===0;case`Nanos`:return e.value.nanos===La;case`Infinity`:case`NegativeInfinity`:return!1}},lte=e=>{switch(e.value._tag){case`Millis`:return e.value.millis<0;case`Nanos`:return e.value.nanos<La;case`NegativeInfinity`:return!0;case`Infinity`:return!1}},ute=e=>{switch(e.value._tag){case`Infinity`:case`NegativeInfinity`:return eo;case`Millis`:return e.value.millis<0?Xa(-e.value.millis):e;case`Nanos`:return e.value.nanos<La?Xa(-e.value.nanos):e}},$a=/*#__PURE__*/ Xa(0),eo=/*#__PURE__*/ Xa(1/0),to=/*#__PURE__*/ Xa(-1/0),no=e=>Xa(e),ro=e=>Xa(e),io=e=>Xa(e*1e3),ao=e=>Xa(e*6e4),dte=e=>Xa(e*36e5),fte=e=>Xa(e*864e5),pte=e=>Xa(e*6048e5),oo=e=>co(qa(e),{onMillis:N,onNanos:e=>Number(e)/1e6,onInfinity:()=>1/0,onNegativeInfinity:()=>-1/0}),mte=e=>co(qa(e),{onMillis:e=>e/1e3,onNanos:e=>Number(e)/1e9,onInfinity:()=>1/0,onNegativeInfinity:()=>-1/0}),so=e=>{let t=qa(e);switch(t.value._tag){case`Infinity`:case`NegativeInfinity`:throw Error(`Cannot convert infinite duration to nanos`);case`Nanos`:return t.value.nanos;case`Millis`:return Wa(t.value.millis)}},co=/*#__PURE__*/ M(2,(e,t)=>{switch(e.value._tag){case`Millis`:return t.onMillis(e.value.millis);case`Nanos`:return t.onNanos(e.value.nanos);case`Infinity`:return t.onInfinity();case`NegativeInfinity`:return(t.onNegativeInfinity??t.onInfinity)()}}),hte=/*#__PURE__*/ M(3,(e,t,n)=>e.value._tag===`Infinity`||e.value._tag===`NegativeInfinity`||t.value._tag===`Infinity`||t.value._tag===`NegativeInfinity`?n.onInfinity(e,t):e.value._tag===`Millis`?t.value._tag===`Millis`?n.onMillis(e.value.millis,t.value.millis):n.onNanos(so(e),t.value.nanos):n.onNanos(e.value.nanos,so(t))),gte=(e,t)=>hte(e,t,{onMillis:(e,t)=>e===t,onNanos:(e,t)=>e===t,onInfinity:(e,t)=>e.value._tag===t.value._tag}),_te=/*#__PURE__*/ M(2,(e,t)=>gte(e,t)),vte=e=>{if(e.value._tag===`Infinity`)return{days:1/0,hours:1/0,minutes:1/0,seconds:1/0,millis:1/0,nanos:1/0};if(e.value._tag===`NegativeInfinity`)return{days:-1/0,hours:-1/0,minutes:-1/0,seconds:-1/0,millis:-1/0,nanos:-1/0};let t=so(e),n=t<La,r=n?-t:t,i=r/Ha,a=i/Va,o=a/Ba,s=o/Ba,c=s/za,l=n?-1:1;return{days:l*Number(c),hours:l*Number(s%za),minutes:l*Number(o%Ba),seconds:l*Number(a%Ba),millis:l*Number(i%Va),nanos:l*Number(r%Ha)}},lo=e=>{if(e.value._tag===`Infinity`)return`Infinity`;if(e.value._tag===`NegativeInfinity`)return`-Infinity`;if(Qa(e))return`0`;if(lte(e))return`-`+lo(ute(e));let t=vte(e),n=[];return t.days!==0&&n.push(`${t.days}d`),t.hours!==0&&n.push(`${t.hours}h`),t.minutes!==0&&n.push(`${t.minutes}m`),t.seconds!==0&&n.push(`${t.seconds}s`),t.millis!==0&&n.push(`${t.millis}ms`),t.nanos!==0&&n.push(`${t.nanos}ns`),n.join(` `)},uo=/*#__PURE__*/ Xi(`effect/Scheduler`,{fiberCached:!0,defaultValue:()=>new mo}),fo=e=>{let t=!1;return Promise.resolve().then(()=>{t||e()}),()=>{t=!0}},yte=`setImmediate`in globalThis?e=>{let t=globalThis.setImmediate(e);return()=>globalThis.clearImmediate(t)}:e=>{let t=setTimeout(e,0);return()=>clearTimeout(t)},po=e=>{try{return yte(e)}catch{return fo(e)}};var bte=class{buckets=[];scheduleTask(e,t){let n=this.buckets,r=n.length,i,a=0;for(;a<r&&!(n[a][0]>t);a++)i=n[a];i&&i[0]===t?i[1].push(e):a===r?n.push([t,[e]]):n.splice(a,0,[t,[e]])}drain(){let e=this.buckets;return this.buckets=[],e}},mo=class{executionMode;setImmediate;constructor(e=`async`,t){this.executionMode=e,this.setImmediate=t??(e===`sync`?fo:po)}shouldYield(e){return e.currentOpCount>=e.cache.maxOpsBeforeYield}makeDispatcher(){return new xte(this.setImmediate)}},xte=class{tasks=/*#__PURE__*/ new bte;running=void 0;setImmediate;constructor(e=po){this.setImmediate=e}scheduleTask(e,t){this.tasks.scheduleTask(e,t),this.running===void 0&&(this.running=this.setImmediate(this.afterScheduled))}afterScheduled=()=>{this.running=void 0,this.runTasks()};runTasks(){let e=this.tasks.drain();for(let t=0;t<e.length;t++){let n=e[t][1];for(let e=0;e<n.length;e++)n[e]()}}flush(){for(;this.tasks.buckets.length>0;)this.running!==void 0&&(this.running(),this.running=void 0),this.runTasks()}};const Ste=/*#__PURE__*/ Xi(`effect/Scheduler/MaxOpsBeforeYield`,{fiberCached:!0,defaultValue:()=>2048}),Cte=/*#__PURE__*/ Xi(`effect/Scheduler/PreventSchedulerYield`,{fiberCached:!0,defaultValue:()=>!1}),ho=class extends ft{constructor(e){super(),e&&Bn(this,e)}},wte=e=>class extends ho{_tag=e},go=()=>new Proxy({},{get(e,t,n){return t===`$is`?Ht:t===`$match`?Tte:e=>({...e,_tag:t})}});function Tte(){if(arguments.length===1){let e=arguments[0];return function(t){return e[t._tag](t)}}let e=arguments[0];return arguments[1][e._tag](e)}const _o=Or,vo=kr,yo=`~effect/encoding/EncodingError`;var bo=class extends (/*#__PURE__*/ vo(`EncodingError`)){[yo]=yo};const xo=e=>{switch(e){case 16:return Dte();case 32:return Ote();default:{let t=``;for(let n=e>>>3;n>0;n--)t+=Ete();return t}}},So=/*#__PURE__*/ Uint8Array.from(`0123456789abcdef`,e=>e.charCodeAt(0)),Co=()=>Math.random()*4294967296>>>0,Ete=()=>{let e=Co();return String.fromCharCode(So[e>>>28],So[e>>>24&15],So[e>>>20&15],So[e>>>16&15],So[e>>>12&15],So[e>>>8&15],So[e>>>4&15],So[e&15])},Dte=()=>{let e=Co(),t=Co();return String.fromCharCode(So[e>>>28],So[e>>>24&15],So[e>>>20&15],So[e>>>16&15],So[e>>>12&15],So[e>>>8&15],So[e>>>4&15],So[e&15],So[t>>>28],So[t>>>24&15],So[t>>>20&15],So[t>>>16&15],So[t>>>12&15],So[t>>>8&15],So[t>>>4&15],So[t&15])},Ote=()=>{let e=Co(),t=Co(),n=Co(),r=Co();return String.fromCharCode(So[e>>>28],So[e>>>24&15],So[e>>>20&15],So[e>>>16&15],So[e>>>12&15],So[e>>>8&15],So[e>>>4&15],So[e&15],So[t>>>28],So[t>>>24&15],So[t>>>20&15],So[t>>>16&15],So[t>>>12&15],So[t>>>8&15],So[t>>>4&15],So[t&15],So[n>>>28],So[n>>>24&15],So[n>>>20&15],So[n>>>16&15],So[n>>>12&15],So[n>>>8&15],So[n>>>4&15],So[n&15],So[r>>>28],So[r>>>24&15],So[r>>>20&15],So[r>>>16&15],So[r>>>12&15],So[r>>>8&15],So[r>>>4&15],So[r&15])},wo=`effect/Tracer/ParentSpan`;var To=class extends (/*#__PURE__*/ F()(wo,{fiberCached:!0})){};const kte=e=>e,Eo=e=>({_tag:`ExternalSpan`,spanId:e.spanId,traceId:e.traceId,sampled:e.sampled??!0,annotations:e.annotations??Ii()}),Do=/*#__PURE__*/ Xi(`effect/Tracer/DisablePropagation`,{defaultValue:ht}),Ate=/*#__PURE__*/ Xi(`effect/Tracer/CurrentTraceLevel`,{defaultValue:()=>`Info`}),jte=/*#__PURE__*/ Xi(`effect/Tracer/MinimumTraceLevel`,{defaultValue:()=>`All`}),Oo=`effect/Tracer`,ko=/*#__PURE__*/ Xi(Oo,{fiberCached:!0,defaultValue:()=>Ao}),Ao=/*#__PURE__*/ kte({span:e=>new Mte(e)});var Mte=class{_tag=`Span`;sampled;name;parent;annotations;links;startTime;kind;status;_traceId=void 0;_spanId=void 0;_attributes=void 0;_events=void 0;constructor(e){this.name=e.name,this.parent=e.parent,this.annotations=e.annotations,this.links=e.links,this.startTime=e.startTime,this.kind=e.kind,this.sampled=e.sampled,this.status={_tag:`Started`,startTime:e.startTime}}get traceId(){return this._traceId??=yi(this.parent)?.traceId??xo(32)}get spanId(){return this._spanId??=xo(16)}get attributes(){return this._attributes??=/* @__PURE__ */ new Map}get events(){return this._events??=[]}end(e,t){this.status={_tag:`Ended`,endTime:e,exit:t,startTime:this.status.startTime}}attribute(e,t){this.attributes.set(e,t)}event(e,t,n){this.events.push([e,t,n??{}])}addLinks(e){this.links.push(...e)}};const Nte=/*#__PURE__*/ Xi(`effect/ErrorReporter/CurrentErrorReporters`,{defaultValue:()=>/* @__PURE__ */ new Set}),jo=/*#__PURE__*/ Xi(`effect/References/CurrentStackFrame`,{fiberCached:!0,defaultValue:gt}),Pte=/*#__PURE__*/ Xi(`effect/References/TracerEnabled`,{fiberCached:!0,defaultValue:mt}),Mo=/*#__PURE__*/ Xi(`effect/References/TracerTimingEnabled`,{defaultValue:mt}),Fte=/*#__PURE__*/ Xi(`effect/References/TracerSpanAnnotations`,{defaultValue:()=>({})}),Ite=/*#__PURE__*/ Xi(`effect/References/TracerSpanLinks`,{defaultValue:()=>[]}),No=/*#__PURE__*/ Xi(`effect/References/CurrentLogAnnotations`,{defaultValue:()=>({})}),Po=/*#__PURE__*/ Xi(`effect/References/CurrentLogLevel`,{fiberCached:!0,defaultValue:()=>`Info`}),Fo=/*#__PURE__*/ Xi(`effect/References/MinimumLogLevel`,{fiberCached:!0,defaultValue:()=>`Info`}),Io=/*#__PURE__*/ Xi(`effect/References/CurrentLogSpans`,{defaultValue:()=>[]}),Lo=e=>{if(e?.captureStackTrace===!1||e?.captureStackTrace!==void 0&&typeof e.captureStackTrace!=`boolean`)return e;let t=Fn();if(t===0&&e?.captureStackTrace!==!0)return{...e,captureStackTrace:!1};In(3);let n=/* @__PURE__ */ Error();return In(t),{...e,captureStackTrace:zo(()=>n.stack)}},Ro=e=>t=>{let n;return()=>{if(n!==void 0)return n;let r=t();if(!r)return;let i=r.split(`
8
- `);if(i[e]!==void 0)return n=i[e].trim(),n}},zo=/*#__PURE__*/ Ro(3);var Bo=class extends ar{constructor(e,t=or){super(`Interrupt`,t,`Interrupted`),this.fiberId=e}toString(){return`Interrupt(${this.fiberId})`}toJSON(){return{_tag:`Interrupt`,fiberId:this.fiberId}}[cn](e){return gr(e)&&this.fiberId===e.fiberId&&this.annotations===e.annotations}[Ut](){return qt(Zt(`${this._tag}:${this.fiberId}`))(Gt(this.annotations))}};const Vo=e=>new Bo(e),Ho=e=>new rr([new Bo(e)]),Uo=e=>{let t=e.reasons.find(mr);return t?$i(t):ea(e)},Wo=e=>{for(let t=0;t<e.reasons.length;t++){let n=e.reasons[t];if(n._tag===`Fail`)return $i(n.error)}return ea(e)},Go=e=>e.reasons.some(hr),Ko=e=>{let t=e.reasons.find(hr);return t?$i(t.defect):ea(e)},qo=e=>e.reasons.some(gr),Jo=e=>{let t;for(let n=0;n<e.reasons.length;n++){let r=e.reasons[n];r._tag===`Interrupt`&&(t??=/* @__PURE__ */ new Set,r.fiberId!==void 0&&t.add(r.fiberId))}return t?$i(t):ea(e)},Yo=e=>{let t=Jo(e);return ra(t)?Xo:t.success},Xo=/*#__PURE__*/ new Set,Zo=e=>e.reasons.length>0&&e.reasons.every(gr),Qo=e=>Ni(e.annotations),$o=/*#__PURE__*/ M(2,(e,t)=>{let n=!1,r=e.reasons.map(e=>mr(e)?(n=!0,new sr(t(e.error),e.annotations)):e);return n?cr(r):e}),es=e=>{let t;for(let n of e.reasons){if(n._tag===`Fail`)return n.error;n._tag===`Die`&&(t??=n)}return t===void 0?e.reasons.length>0?new globalThis.Error(`All fibers interrupted without error`):new globalThis.Error(`Empty cause`):t.defect},ts=(e,t)=>{let n=[],r=[];if(e.reasons.length===0)return n;let i=Fn();i!==0&&In(1);try{for(let i of e.reasons)i._tag===`Interrupt`?r.push(i):n.push(ns(i._tag===`Die`?i.defect:i.error,i.annotations,t));if(n.length===0){let e=/* @__PURE__ */ Error(`The fiber was interrupted by:`);e.name=`InterruptCause`,e.stack=ss(e,r);let i=new globalThis.Error(`All fibers interrupted without error`,{cause:e});i.name=`InterruptError`,i.stack=`${i.name}: ${i.message}`,n.push(ns(i,r[0].annotations,t))}}finally{i!==0&&In(i)}return n},ns=(e,t,n)=>{let r=typeof e,i;if(e&&r===`object`){if(i=new globalThis.Error(rs(e),{cause:e.cause?ns(e.cause):void 0}),typeof e.name==`string`&&(i.name=e.name),typeof e.stack==`string`)i.stack=as(e.stack,i,t);else{let e=`${i.name}: ${i.message}`;i.stack=t?os(e,t):e}n?.includeCauseInStack&&(i.stack=us(i));for(let t of Object.keys(e))t in i||(i[t]=e[t])}else{i=new globalThis.Error(e?r===`string`?e:An(e):`Unknown error: ${e}`);let n=`${i.name}: ${i.message}`;i.stack=t?os(n,t):n}return i},rs=e=>{if(typeof e.message==`string`)return e.message;if(typeof e.toString==`function`&&e.toString!==Object.prototype.toString&&e.toString!==Array.prototype.toString)try{return e.toString()}catch{}return An(e)},is=/\((.*)\)/g,as=(e,t,n)=>{let r=`${t.name}: ${t.message}`,i=(e.startsWith(r)?e.slice(r.length):e).split(`
9
- `),a=[r];for(let e=1;e<i.length&&!/Generator\.next|~effect\/(?:Effect|Utils)/.test(i[e]);e++)a.push(i[e]);return n?os(a.join(`
10
- `),n):a.join(`
11
- `)},os=(e,t)=>{let n=t?.get(xr.key);return n&&(e=`${e}\n${cs(n)}`),e},ss=(e,t)=>{let n=[`${e.name}: ${e.message}`];for(let e of t){let t=e.fiberId===void 0?`unknown`:`#${e.fiberId}`,r=e.annotations.get(Sr.key);n.push(` at fiber (${t})`),r&&n.push(cs(r))}return n.join(`
12
- `)},cs=e=>{let t=[],n=e,r=0;for(;n&&r<10;){let e=n.stack();if(e){let r=e.matchAll(is),i=!1;for(let[,e]of r)i=!0,t.push(` at ${n.name} (${e})`);i||t.push(` at ${n.name} (${e.replace(/^at /,``)})`)}else t.push(` at ${n.name}`);n=n.parent,r++}return t.join(`
13
- `)},ls=e=>ts(e).map(us).join(`
14
- `),us=e=>e.cause?`${e.stack} {\n${ds(e.cause,` `)}\n}`:e.stack,ds=(e,t)=>{let n=e.stack.split(`
15
- `),r=`${t}[cause]: ${n[0]}`;for(let e=1,i=n.length;e<i;e++)r+=`\n${t}${n[e]}`;return e.cause&&(r+=` {\n${ds(e.cause,`${t} `)}\n${t}}`),r},fs=`~effect/Fiber`,ps={_A:N,_E:N},ms={id:0},hs=/*#__PURE__*/ (()=>{try{return globalThis.process?.getBuiltinModule?.(`node:async_hooks`)?.AsyncResource}catch{return}})(),gs=()=>hs===void 0?void 0:new hs(`effect/Fiber`),_s=()=>globalThis[Sn];var vs=class{constructor(e,t=!0){this.setContext(e),this.id=++ms.id,this.currentOpCount=0,this.interruptible=t,this._stack=[],this._observers=void 0,this._exit=void 0,this._children=void 0,this._interruptedCause=void 0,this._yielded=void 0,this._running=!1,this._deferredInterrupt=!1,this._parent=void 0,this._asyncContext=void 0,this.cache.runtimeMetrics?.recordFiberStart(this.context)}get[fs](){return ps}get currentDispatcher(){return this._dispatcher??=this.cache.scheduler.makeDispatcher()}getRef(e){return Wi(this.context,e)}addObserver(e){return this._exit?(e(this._exit),_t):(this._observers===void 0?this._observers=[e]:this._observers.push(e),()=>this.removeObserver(e))}removeObserver(e){if(this._exit||this._observers===void 0)return;let t=this._observers.indexOf(e);t>=0&&this._observers.splice(t,1)}interruptUnsafe(e,t){if(this._exit)return;let n=Ho(e);this.cache.stackFrame&&(n=pr(n,Ri(xr,this.cache.stackFrame))),t&&(n=pr(n,t)),this._interruptedCause=this._interruptedCause?lr(this._interruptedCause,n):n,this.interruptible&&(this._running?this._deferredInterrupt=!0:this.evaluate(Ms(this._interruptedCause)))}pollUnsafe(){return this._exit}evaluate(e){if(this._exit)return;if(this._asyncContext!==void 0){let t=this._asyncContext;return this._asyncContext=void 0,t.runInAsyncScope(this.evaluate,this,e)}if(this._yielded!==void 0){let e=this._yielded;this._yielded=void 0,e()}let t=this.runLoop(e);if(t===Xn){this._asyncContext=gs();return}let n=Ss.interruptChildren&&Ss.interruptChildren(this);if(n!==void 0)return this.evaluate(Cc(n,()=>t));if(this._exit=t,this.cache.runtimeMetrics?.recordFiberEnd(this.context,this._exit),this._parent&&=(this._parent._children?.delete(this),void 0),this._observers!==void 0){let e=this._observers;this._observers=void 0;for(let n=0;n<e.length;n++)e[n](t)}this._stack.length=0,this._children=void 0,this.context=Ii()}runLoop(e){let t=globalThis[Sn];globalThis[Sn]=this;let n=this._running;this._running=!0;let r=!1,i=e;this.currentOpCount=0;try{for(;;)try{this._deferredInterrupt&&(this._deferredInterrupt=!1,i=Ms(this._interruptedCause)),this.currentOpCount++;let e=this.cache;if(!r&&!e.preventYield&&e.scheduler.shouldYield(this)){r=!0;let e=i;i=Cc(Ls,()=>e)}if(i=e.tracerContext?e.tracerContext(i,this):i[Kn](this),i===Xn){let e=this._yielded;if(Hn in e)return this._deferredInterrupt=!1,this._yielded=void 0,e;if(this._deferredInterrupt){this._yielded=void 0,e();continue}return Xn}}catch(e){if(!P(i,Kn))return Tr(`Fiber.runLoop: Not a valid effect: ${String(i)}`);i=Tr(e)}}finally{this._running=n,globalThis[Sn]=t}}getCont(e){if(this._deferredInterrupt)return this._deferredInterrupt=!1,bs;for(;;){let t=this._stack.pop();if(!t)return;let n=t[Yn];if(n!==void 0){let r=n.call(t,this);if(r)return r[e]=r,r}if(t[e])return t}}succeedWith(e){if(!(++this.currentOpCount&xs-1))return br(e);let t=this.getCont(qn);return t?t[qn](e,this):this.yieldWith(br(e))}yieldWith(e){return this._yielded=e,Xn}children(){return this._children??=/* @__PURE__ */ new Set}pipe(){return ut(this,arguments)}setContext(e){let t=this.context;if(this.context=e,t!==void 0&&Xee(t,e))return;let n=e.cacheRoot,r=n._fiberCache??=ys(e);this.cache?.scheduler!==r.scheduler&&(this._dispatcher=void 0),this.cache=r}get currentSpanLocal(){let e=this.cache.span;return e?._tag===`Span`?e:void 0}};const ys=e=>{let t=Hi(e,Oo);return{scheduler:Wi(e,uo),tracer:t,tracerContext:t?t.context:void 0,tracerEnabled:Wi(e,Pte),span:Hi(e,wo),logLevel:Wi(e,Po),minimumLogLevel:Wi(e,Fo),stackFrame:Wi(e,jo),runtimeMetrics:Hi(e,`effect/Metric/FiberRuntimeMetrics`),maxOpsBeforeYield:Wi(e,Ste),preventYield:Wi(e,Cte)}},bs={[qn](e,t){return Ms(t._interruptedCause)},[Jn](e,t){return Ms(t._interruptedCause)}},xs=32,Ss={interruptChildren:void 0},Cs=e=>{if(!e.cache.stackFrame)return;let t=/* @__PURE__ */ new Map;return t.set(Sr.key,e.cache.stackFrame),Ni(t)},ws=e=>{if(e._children!==void 0&&e._children.size!==0)return As(e._children)},Ts=e=>{let t=e;return t._exit?js(t._exit):Ys(n=>t._exit?n(js(t._exit)):Ps(e.addObserver(e=>n(js(e)))))},Es=e=>Ys(t=>{let n=e[Symbol.iterator](),r=[],i;function a(){let e=n.next();for(;!e.done;)if(e.value._exit)r.push(e.value._exit),e=n.next();else{i=e.value.addObserver(e=>{r.push(e),a()});return}t(js(r))}return a(),Ps(()=>i?.())}),Ds=e=>{let t=e;return t._exit?t._exit:Ys(n=>t._exit?n(t._exit):Ps(e.addObserver(n)))},Os=e=>Er(t=>ks(e,t.id)),ks=/*#__PURE__*/ M(e=>P(e[0],fs),(e,t,n)=>Er(r=>{let i=Cs(r);return i=i&&n?Ji(i,n):i??n,e.interruptUnsafe(t,i),bc(Ts(e))})),As=e=>Er(t=>{let n=Cs(t),r=ja();for(let i of e)i.interruptUnsafe(t.id,n),r.push(i);return bc(Es(r))}),js=br,Ms=Cr,Ns=wr,Ps=/*#__PURE__*/ vr({op:`Sync`,[Kn](e){let t=this[Gn](),n=e.getCont(qn);return n?n[qn](t,e):e.yieldWith(br(t))}}),Fs=/*#__PURE__*/ vr({op:`Suspend`,[Kn](e){return this[Gn]()}}),Is=/*#__PURE__*/ sa({onFailure:Ns,onSuccess:js}),Ls=/*#__PURE__*/ (/* @__PURE__ */ vr({op:`Yield`,[Kn](e){let t=!1;return e.currentDispatcher.scheduleTask(()=>{t||e.evaluate(kc)},this[Gn]??0),e.yieldWith(()=>{t=!0})}}))(0),Rs=/*#__PURE__*/ js(/*#__PURE__*/ di()),zs=e=>Fs(()=>Ms(e())),Bs=e=>Tr(e),Vs=e=>Fs(()=>Ns(e())),Hs=/*#__PURE__*/ js(void 0),Us=e=>{let t=typeof e==`function`?e:e.try,n=typeof e==`function`?e=>new gu(e,`An error occurred in Effect.try`):e.catch;return Fs(()=>{try{return js(t())}catch(e){return Ns(n(e))}})},Ws=e=>qs(function(t,n){e(n).then(e=>t(js(e)),e=>t(Bs(e)))},e.length!==0),Gs=e=>{let t=typeof e==`function`?e:e.try,n=typeof e==`function`?e=>new gu(e,`An error occurred in Effect.tryPromise`):e.catch;return qs(function(e,r){let i=e=>Fs(()=>{try{return Ns(Rn(()=>n(e)))}catch(e){return Bs(e)}});try{t(r).then(t=>e(js(t)),t=>e(i(t)))}catch(t){e(i(t))}},t.length!==0)},Ks=e=>Er(t=>e(t.id)),qs=/*#__PURE__*/ function(){let e=/*#__PURE__*/ _r({op:`Async`,[Kn](e){let t=!1,n=!1,r=this.withSignal?new AbortController:void 0,i=this.register.call(e.cache.scheduler,r=>{t||(t=!0,n?e.evaluate(r):n=r)},r?.signal);return n===!1?(n=!0,e._yielded=()=>{t=!0},r===void 0&&i===void 0||e._stack.push(Js(()=>(t=!0,r?.abort(),i??kc))),Xn):n}}),t=function(e,t){this.register=e,this.withSignal=t};return t.prototype=e,function(e,n){return new t(e,n)}}(),Js=/*#__PURE__*/ vr({op:`AsyncFinalizer`,[Yn](e){e.interruptible&&(e.interruptible=!1,e._stack.push(xl))},[Jn](e,t){return qo(e)?Cc(nl(Cr(e),this[Gn]()),()=>Ms(e)):Ms(e)}}),Ys=e=>qs(e,e.length>=2),Xs=/*#__PURE__*/ Ys(_t),Zs=(...e)=>{if(e.length===1){let t=e[0];return Fs(()=>ac(t()))}let[t,n]=e;return Fs(()=>ac(n.call(t.self)))},Qs=(e,...t)=>{let n=t.length===0?function(){return Fs(()=>ac(e.apply(this,arguments)))}:function(){let n=Fs(()=>ac(e.apply(this,arguments)));for(let e=0;e<t.length;e++)n=t[e](n,...arguments);return n};return $s(e.length,n)},$s=(e,t)=>Object.defineProperty(t,"length",{value:e,configurable:!0}),ec=/*#__PURE__*/ Ro(2),tc=function(){let e=typeof arguments[0]==`string`,t=e?arguments[0]:`Effect.fn`,n=e?arguments[1]:void 0,r=Fn(),i;return r!==0&&(In(2),i=new globalThis.Error,In(r)),e?(r,...a)=>nc(t,r,i,a,e,n):nc(t,arguments[0],i,Array.prototype.slice.call(arguments,1),e,n)},nc=(e,t,n,r,i,a)=>{let o=typeof t==`function`?t:r.shift().bind(t.self),s=`${e} (definition)`,c=n?ec(()=>n.stack):gt;return $s(o.length,function(...t){let n=Fs(()=>{let e=o.apply(this,arguments);return Qn(e)?e:ac(e)});for(let e=0;e<r.length;e++)n=r[e](n,...t);if(!Qn(n))return n;let l=Fn(),u;return l!==0&&(In(2),u=new globalThis.Error,In(l)),Mc(i?Xl(e,a,e=>Zl(n,e)):n,jo,t=>({name:e,stack:u?ec(()=>u.stack):gt,parent:{name:s,stack:c,parent:t}}))})},rc=(e,...t)=>$s(e.length,t.length===0?function(){return ic(()=>e.apply(this,arguments))}:function(){let n=ic(()=>e.apply(this,arguments));for(let e of t)n=e(n,...arguments);return n}),ic=e=>{try{let t=e(),n;for(;;){let r=t.next(n);if(r.done)return js(r.value);let i=r.value;if(i&&i._tag===`Success`)n=i.value;else{if(i&&i._tag===`Failure`)return r.value;{let n=!0;return Fs(()=>n?(n=!1,Cc(r.value,e=>ac(t,e))):Fs(()=>ac(e())))}}}}catch(e){return Bs(e)}},ac=/*#__PURE__*/ function(){let e=/*#__PURE__*/ _r({op:`Iterator`,[qn](e,t){let n=this.iterator;for(;;){let r=n.next(e);if(r.done)return js(r.value);if(!wc(r.value))return t._stack.push(this),r.value;if(r.value._tag===`Failure`)return r.value;e=r.value.value}},[Kn](e){return this[qn](this.initial,e)}}),t=function(e,t){this.iterator=e,this.initial=t};return t.prototype=e,function(e,n){return new t(e,n)}}(),oc=/*#__PURE__*/ M(2,(e,t)=>new lc(e,uc,js(t))),sc=function(e){return e._stack.push(this),this[Gn]},cc=/*#__PURE__*/ _r({op:`OnSuccess`,[Kn]:sc}),lc=function(e,t,n){this[Gn]=e,this[qn]=t,this.payload=n};lc.prototype=cc;const uc=function(){return this.payload},dc=function(e,t){return t.succeedWith(this.payload)},fc=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Fn();if(e===0)return!1;let t=`~effect/Effect/stackProbe`,n={[t]:function(){return/* @__PURE__ */ Error()}};In(1);let r=/*#__PURE__*/ n[t]();return In(e),r.stack?.includes(`[as `+t+`]`)===!0})(),pc=function(e,t){let n=this.payload;return t.succeedWith(fc?n(e):Rn(()=>n(e)))},mc=function(e){let t=this.payload;return t(e)},hc=function(e){let t=this.payload;return new lc(t(e),dc,e)},gc=function(e){return new lc(this.payload,dc,e)},_c=e=>Tc(e,fi),vc=/*#__PURE__*/ M(2,(e,t)=>new lc(e,Qn(t)?uc:mc,t)),yc=/*#__PURE__*/ M(2,(e,t)=>new lc(e,Qn(t)?gc:hc,t)),bc=e=>new lc(e,uc,kc),Lte=(e,t)=>Er(n=>{let r=/* @__PURE__ */ new Set;return hl(n,()=>r.size===0?void 0:As(r)),Ys(i=>{let a=xa(e),o=a.length,s=0,c=!1,l=[],u=(e,r,a)=>{if(s++,e._tag===`Failure`){l.push(...e.cause.reasons),s>=o&&i(Ms(cr(l)));return}let u=!c;c=!0,i(e),u&&t?.onWinner&&t.onWinner({fiber:r,index:a,parentFiber:n})};for(let e=0;e<o;e++){let t=Ml(n,a[e],!0,!0,!1);if(r.add(t),t.addObserver(n=>{r.delete(t),u(n,t,e)}),c)break}})}),xc=(e,t)=>Er(n=>{let r=/* @__PURE__ */ new Set;return hl(n,()=>r.size===0?void 0:As(r)),Ys(i=>{let a=!1,o=0;for(let s of e){if(a)break;let e=o++,c=Ml(n,s,!0,!0,!1);r.add(c),c.addObserver(o=>{r.delete(c);let s=!a;a=!0,i(o),s&&t?.onWinner&&t.onWinner({fiber:c,index:e,parentFiber:n})})}})}),Rte=/*#__PURE__*/ M(e=>Qn(e[1]),(e,t,n)=>Lte([e,t],n)),Sc=/*#__PURE__*/ M(e=>Qn(e[1]),(e,t,n)=>xc([e,t],n)),Cc=/*#__PURE__*/ M(2,(e,t)=>new lc(e,mc,t)),zte=/*#__PURE__*/ M(2,(e,t)=>wc(e)?e._tag===`Success`?t.onSuccess(e.value):t.onFailure(e.cause):Wc(e,t)),wc=e=>e[Hn]!==void 0,Bte=/*#__PURE__*/ M(2,(e,t)=>wc(e)?e._tag===`Success`?t(e.value):e:Cc(e,t)),Vte=e=>Cc(e,N),Tc=/*#__PURE__*/ M(2,(e,t)=>new lc(e,pc,t)),Hte=/*#__PURE__*/ M(2,(e,t)=>wc(e)?Jte(e,t):Tc(e,t)),Ute=/*#__PURE__*/ M(2,(e,t)=>wc(e)?Yte(e,t):Hc(e,t)),Wte=/*#__PURE__*/ M(2,(e,t)=>wc(e)?Xte(e,t):mne(e,t)),Gte=/*#__PURE__*/ M(2,(e,t)=>{if(wc(e)){if(e._tag===`Success`)return e;let n=Wo(e.cause);return ra(n)?e:t(n.success)}return Bc(e,t)}),Ec=e=>Cr(Ho(e)),Dc=e=>e._tag===`Success`,Kte=e=>e._tag===`Failure`,qte=e=>e._tag===`Failure`?$i(e.cause):ea(e),Oc=e=>e._tag===`Failure`&&qo(e.cause),kc=/*#__PURE__*/ br(void 0),Jte=/*#__PURE__*/ M(2,(e,t)=>e._tag===`Success`?br(t(e.value)):e),Yte=/*#__PURE__*/ M(2,(e,t)=>{if(e._tag===`Success`)return e;let n=Wo(e.cause);return ra(n)?e:wr(t(n.success))}),Xte=/*#__PURE__*/ M(2,(e,t)=>{if(e._tag===`Success`)return br(t.onSuccess(e.value));let n=Wo(e.cause);return ra(n)?e:wr(t.onFailure(n.success))}),Zte=/*#__PURE__*/ M(2,(e,t)=>Dc(e)?t:e),Ac=e=>{let t=[];for(let n of e)n._tag===`Failure`&&t.push(...n.cause.reasons);return t.length===0?kc:Cr(cr(t))},Qte=e=>e,$te=e=>Er(t=>js(qi(t.context,e))),jc=/*#__PURE__*/ M(2,(e,t)=>Er(n=>{let r=n.context,i=t(r);return r===i||(n.setContext(i),hl(n,()=>{n.setContext(r)})),e})),Mc=/*#__PURE__*/ M(3,(e,t,n)=>jc(e,e=>{let r=Ui(e,t),i=n(r);return r===i?e:zi(e,t,i)})),ene=()=>tne,tne=/*#__PURE__*/ Er(e=>js(e.context)),Nc=e=>Er(t=>e(t.context)),nne=/*#__PURE__*/ M(2,(e,t)=>jc(e,pt(t))),Pc=/*#__PURE__*/ M(2,(e,t)=>wc(e)?e:jc(e,Ji(t))),Fc=function(){return arguments.length===1?M(2,(e,t)=>Ic(e,arguments[0],t)):M(3,(e,t,n)=>Ic(e,t,n)).apply(this,arguments)},Ic=(e,t,n)=>jc(e,zi(t,n)),rne=/*#__PURE__*/ M(2,(e,t)=>Cc(t,t=>t?_c(e):Rs)),ine=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t)=>El({while:mt,body:pt(t?.disableYield?e:Cc(e,e=>Ls)),step:_t})),Lc=/*#__PURE__*/ M(2,(e,t)=>new Rc(e,t.length===1?t:e=>t(e))),ane=/*#__PURE__*/ _r({op:`OnFailure`,[Kn]:sc}),Rc=function(e,t){this[Gn]=e,this[Jn]=t};Rc.prototype=ane;const one=/*#__PURE__*/ M(3,(e,t,n)=>Lc(e,e=>t(e)?n(e):Ms(e))),zc=/*#__PURE__*/ M(3,(e,t,n)=>Lc(e,e=>{let r=t(e);return ra(r)?Ms(r.failure):n(r.success,e)})),Bc=/*#__PURE__*/ M(2,(e,t)=>zc(e,Wo,e=>t(e))),sne=/*#__PURE__*/ M(2,(e,t)=>zc(e,Ko,t)),cne=/*#__PURE__*/ M(2,(e,t)=>Lc(e,e=>vc(t(e),Ms(e)))),lne=/*#__PURE__*/ M(3,(e,t,n)=>Lc(e,e=>{let r=t(e);return ra(r)?Ms(e):vc(n(r.success,e),Ms(e))})),une=/*#__PURE__*/ M(2,(e,t)=>lne(e,Wo,e=>t(e))),Vc=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t,n,r)=>Lc(e,e=>{let i=Wo(e);return ra(i)?Ms(i.failure):t(i.success)?n(i.success):r?r(i.success):Ms(e)})),dne=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t,n,r)=>Lc(e,e=>{let i=Wo(e);if(ra(i))return Ms(i.failure);let a=t(i.success);return ra(a)?r?r(a.failure):Ms(e):n(a.success)})),fne=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t,n,r)=>{let i=Array.isArray(t)?e=>P(e,`_tag`)&&t.includes(e._tag):Ht(t);return Vc(e,i,n,r)}),pne=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t,n)=>{let r;return dne(e,e=>(r??=Object.keys(t),P(e,`_tag`)&&Et(e._tag)&&r.includes(e._tag)?$i(e):ea(e)),e=>t[e._tag](e),n)}),Hc=/*#__PURE__*/ M(2,(e,t)=>Bc(e,e=>Vs(()=>t(e)))),mne=/*#__PURE__*/ M(2,(e,t)=>Kc(e,{onFailure:e=>Vs(()=>t.onFailure(e)),onSuccess:e=>Ps(()=>t.onSuccess(e))})),hne=e=>Bc(e,Bs),gne=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t)=>{if(!t?.log)return Kc(e,{onFailure:e=>Hs,onSuccess:e=>Hs});let n=Cu(t.log===!0?void 0:t.log);return Wc(e,{onFailure(e){let r=Uo(e);return ra(r)?Ms(r.failure):t.message===void 0?n(e):n(t.message,e)},onSuccess:e=>Hs})}),_ne=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t)=>{if(!t?.log)return Wc(e,{onFailure:e=>Hs,onSuccess:e=>Hs});let n=Cu(t.log===!0?void 0:t.log);return Wc(e,{onFailure:e=>t.message===void 0?n(e):n(t.message,e),onSuccess:e=>Hs})}),vne=e=>qc(e,{onFailure:di,onSuccess:fi}),Uc=e=>Sne(e,{onFailure:ea,onSuccess:$i}),Wc=/*#__PURE__*/ M(2,(e,t)=>new Gc(e,t.onSuccess.length===1?t.onSuccess:e=>t.onSuccess(e),t.onFailure.length===1?t.onFailure:e=>t.onFailure(e))),yne=/*#__PURE__*/ _r({op:`OnSuccessAndFailure`,[Kn]:sc}),Gc=function(e,t,n){this[Gn]=e,this[qn]=t,this[Jn]=n};Gc.prototype=yne;const bne=function(e,t){let n=this.payload;return t.succeedWith(fc?n.onSuccess(e):Rn(()=>n.onSuccess(e)))},xne=/*#__PURE__*/ ((e,t)=>{let n=_r({op:e,[Kn]:sc,[qn]:bne,[Jn]:t}),r=function(e,t){this[Gn]=e,this.payload=t};return r.prototype=n,r})(`Match`,function(e,t){let n=e.reasons.find(mr);if(n===void 0)return Ms(e);let r=this.payload;return t.succeedWith(fc?r.onFailure(n.error):Rn(()=>r.onFailure(n.error)))}),Kc=/*#__PURE__*/ M(2,(e,t)=>Wc(e,{onFailure:e=>{let n=e.reasons.find(mr);return n?t.onFailure(n.error):Ms(e)},onSuccess:t.onSuccess})),qc=/*#__PURE__*/ M(2,(e,t)=>new xne(e,t)),Sne=/*#__PURE__*/ M(2,(e,t)=>{if(wc(e)){if(e._tag===`Success`)return br(t.onSuccess(e.value));let n=Wo(e.cause);return ra(n)?e:br(t.onFailure(n.success))}return qc(e,t)}),Jc=e=>wc(e)?br(e):Cne(e),Cne=/*#__PURE__*/ vr({op:`Exit`,[Kn](e){return e._stack.push(this),this[Gn]},[qn](e,t,n){return t.succeedWith(n??br(e))},[Jn](e,t,n){return t.succeedWith(n??Cr(e))}}),wne=/*#__PURE__*/ M(2,(e,t)=>vc(au(t),e)),Yc=/*#__PURE__*/ M(2,(e,t)=>Cc(Dne(e,t.duration),e=>pi(e)?t.orElse():js(e.value))),Tne=e=>new cu(`Operation timed out after '${lo(e)}'`),Ene=/*#__PURE__*/ M(2,(e,t)=>{let n=qa(t);return Yc(e,{duration:n,orElse:()=>Ns(Tne(n))})}),Dne=/*#__PURE__*/ M(2,(e,t)=>Sc(_c(e),oc(au(t),di()))),Xc=`~effect/Scope`,Zc=`~effect/Scope/Closeable`,Qc=/*#__PURE__*/ F(`effect/Scope`),$c=(e,t)=>Er(n=>(Cl(n),el(e,t)??Hs)),el=(e,t)=>{let n=e.state;if(n._tag===`Closed`||(e.state={_tag:`Closed`,exit:t},e.parent!==void 0&&ol(e.parent,e),n._tag===`Empty`))return;if(n.finalizer!==void 0)return tl(n.finalizer,t);let r=n.finalizers;return r.size===1?tl(r.values().next().value,t):One(e,r,t)},tl=(e,t)=>{try{return e(t)}catch(e){return Tr(e)}},nl=(e,t)=>Dc(e)?t:Lc(t,t=>Ms(lr(e.cause,t))),One=/*#__PURE__*/ Qs(function*(e,t,n){let r=[],i=[],a=Array.from(t.values()),o=_s();for(let t=a.length-1;t>=0;t--){let s=a[t];e.strategy===`sequential`?r.push(yield*Jc(tl(s,n))):i.push(Ml(o,tl(s,n),!0,!0,`inherit`))}return i.length>0&&(r=yield*Es(i)),yield*Ac(r)}),kne=(e,t)=>Ps(()=>rl(e,t)),rl=(e,t)=>{let n=cl(t,e);return e.state._tag===`Closed`?(n.state=e.state,n):(al(e,n,e=>$c(n,e)),n)},il=(e,t)=>Fs(()=>e.state._tag===`Closed`?t(e.state.exit):(al(e,{},t),Hs)),Ane=(e,t)=>il(e,pt(t)),al=(e,t,n)=>{if(e.state._tag===`Empty`)e.state={_tag:`Open`,finalizerKey:t,finalizer:n,finalizers:void 0};else if(e.state._tag===`Open`){let r=e.state;r.finalizer===void 0||(r.finalizers=/* @__PURE__ */ new Map([[r.finalizerKey,r.finalizer]]),r.finalizerKey=void 0,r.finalizer=void 0),r.finalizers.set(t,n)}},ol=(e,t)=>{if(e.state._tag!==`Open`)return;let n=e.state;n.finalizerKey===t?e.state=ll:n.finalizers!==void 0&&(n.finalizers.delete(t),n.finalizers.size===0&&(e.state=ll))},sl=e=>cl(e,void 0),cl=(e=`sequential`,t)=>({[Zc]:Zc,[Xc]:Xc,strategy:e,parent:t,state:ll}),ll={_tag:`Empty`},jne=e=>Ps(()=>sl(e)),ul=Qc,dl=/*#__PURE__*/ Fc(Qc),Mne=e=>Er(t=>{let n=t.context,r=sl();return t.setContext(zi(t.context,Qc,r)),hl(t,e=>(t.setContext(n),el(r,e))),e}),Nne=/*#__PURE__*/ M(2,(e,t)=>gl(dl(e,t),e=>Fs(()=>el(t,e)??Hs))),fl=e=>Fs(()=>{let t=sl();return gl(e(t),e=>Fs(()=>el(t,e)??Hs))}),Pne=(e,t,n)=>Nc(r=>Tl(i=>Cc(ul,a=>yc(n?.interruptible?i(e):e,e=>il(a,n=>Pc(t(e,n),r)))))),Fne=e=>Cc(ul,t=>Nc(n=>il(t,t=>Pc(e(t),n)))),pl=/*#__PURE__*/ function(){let e=/*#__PURE__*/ _r({op:`OnExit`,[Kn](e){return e._stack.push(this),this.effect},[Yn](e){e.interruptible&&this.interruptible!==!0&&(e._stack.push(xl),e.interruptible=!1)},[qn](e,t,n){n??=br(e);let r;try{r=this.onExit(n)}catch(e){r=Tr(e)}return r?Cc(r,e=>n):n},[Jn](e,t,n){n??=Cr(e);let r;try{r=this.onExit(n)}catch(e){r=Tr(e)}return r?Cc(nl(n,r),e=>n):n}}),t=function(e,t,n){this.effect=e,this.onExit=t,this.interruptible=n};return t.prototype=e,t}(),ml=(e,t,n)=>new pl(e,t,n),hl=(e,t)=>{e._stack.push(new pl(void 0,t,void 0))},gl=/*#__PURE__*/ M(2,ml),Ine=/*#__PURE__*/ M(2,(e,t)=>gl(e,e=>t)),Lne=/*#__PURE__*/ M(3,(e,t,n)=>gl(e,e=>{let r=t(e);return ra(r)?Hs:n(r.success,e)})),_l=/*#__PURE__*/ M(2,(e,t)=>Lne(e,qte,t)),Rne=/*#__PURE__*/ M(3,(e,t,n)=>gl(e,e=>{if(e._tag!==`Failure`)return Hs;let r=t(e.cause);return ra(r)?Hs:n(r.success,e.cause)})),zne=/*#__PURE__*/ M(2,(e,t)=>Rne(Jo,t)(e)),Bne=/*#__PURE__*/ M(2,(e,t)=>Ps(()=>vl(e,typeof t==`function`?e=>oo(qa(t(e))):pt(oo(qa(t)))))),Vne=/*#__PURE__*/ pt(1/0),vl=(e,t)=>{let n=0,r,i,a=(e,t)=>(t.awaiters++,hl(e,()=>{if(!(--t.awaiters>0||i!==t))return i=void 0,Os(t.fiber)}),Ds(t.fiber));return[Er(o=>{if(i!==void 0)return o===i.fiber?Ds(i.fiber):a(o,i);if(r!==void 0&&(n===1/0||o.getRef($l).currentTimeMillisUnsafe()<n))return r;r=void 0;let s=o.getRef($l),c={fiber:new vs(o.context),awaiters:0};i=c;let l=a(o,c);return c.fiber.evaluate(ml(e,e=>{if(i!==c||(i=void 0,Oc(e)))return;let a=t(e);n=a===1/0?1/0:s.currentTimeMillisUnsafe()+a,r=e})),c.fiber._exit??l}),Ps(()=>{r=void 0})]},Hne=/*#__PURE__*/ M(2,(e,t)=>Tc(Bne(e,t),e=>e[0])),Une=e=>Ps(()=>vl(e,Vne)[0]),Wne=/*#__PURE__*/ Er(e=>Ms(Ho(e.id))),yl=e=>Er(t=>(t.interruptible&&(t.interruptible=!1,t._stack.push(xl)),e)),bl=/*#__PURE__*/ vr({op:`SetInterruptible`,[Yn](e){if(e.interruptible=this[Gn],e._interruptedCause&&e.interruptible)return()=>Ms(e._interruptedCause)}}),xl=/*#__PURE__*/ bl(!0),Gne=/*#__PURE__*/ bl(!1),Sl=e=>{if(e.interruptible=!0,e._stack.push(Gne),e._interruptedCause)return Ms(e._interruptedCause)},Cl=e=>{let t=e;t.interruptible&&(t.interruptible=!1,t._stack.push(xl))},Kne=e=>{let t=e;if(!t.interruptible)return Sl(t)},wl=e=>Er(t=>t.interruptible?e:Sl(t)??e),Tl=e=>Er(t=>t.interruptible?(t.interruptible=!1,t._stack.push(xl),e(wl)):e(N)),qne=(e,t)=>bee(e)?t?.mode===`result`?Dl(e,Uc,t):Dl(e,N,t):t?.discard?t.mode===`result`?Dl(Object.values(e),Uc,t):Dl(Object.values(e),N,t):Fs(()=>{let n={};return oc(Dl(Object.entries(e),([e,r])=>Tc(t?.mode===`result`?Uc(r):r,t=>{zn(n,e,t)}),{discard:!0,concurrency:t?.concurrency}),n)}),El=/*#__PURE__*/ vr({op:`While`,[qn](e,t){return this[Gn].step(e),this[Gn].while()?(t._stack.push(this),this[Gn].body()):kc},[Kn](e){return this[Gn].while()?(e._stack.push(this),this[Gn].body()):kc}}),Dl=/*#__PURE__*/ M(e=>typeof e[1]==`function`,(e,t,n)=>Fs(()=>{let r=Ol(n?.concurrency);if(r===1)return Jne(e,t,n);let i=xa(e),a=i.length;if(a===0)return n?.discard?Hs:js([]);let o=n?.discard?void 0:Array(a),s=Yne({f:t,out:o},i,{concurrency:r});return s?oc(s,o):js(o)})),Jne=(e,t,n)=>Fs(()=>{let r=n?.discard?void 0:[],i=e[Symbol.iterator](),a=i.next(),o=0;return oc(El({while:()=>!a.done,body:()=>t(a.value,o++),step:e=>{r&&r.push(e),a=i.next()}}),r)}),Ol=e=>e===`unbounded`?1/0:Math.max(1,e??1),kl=()=>e=>{let t=e.onItem,n=e.step,r=(e,t,r,a,o)=>Cc(Jc(o),o=>n(e,t[r],o,r)??i(e,t,r+1,a)??Hs),i=(e,i,a=0,o=i.length)=>{for(;a<o;a++){let s=i[a],c=t(e,s,a);if(!wc(c))return r(e,i,a,o,c);let l=n(e,s,c,a);if(l)return l._tag===`Failure`?l:void 0}};return i},Al=e=>{let t=e.onItem,n=e.step;return(e,r,i)=>{let a=0,o=i.end??r.length,s=i.concurrency,c=!1,l,u,d,f,p,m=e=>{let t=Tr(e);return f=t,c=!0,u&&u.size>0?Cc(yl(As(Array.from(u))),()=>f??t):t},h=()=>{let i=!1;for(;!f&&a<o;a++){let o=r[a],g=p??t(e,o,a);if(wc(g)){if(f=n(e,o,g,a),f)break}else if(l){p=void 0;let t=Ml(l,g,!0,!0,`inherit`);if(t._exit){if(f=n(e,o,t._exit,a),f)break;continue}u.add(t);let r=a;if(t.addObserver(a=>{u.delete(t);try{if(f){if(a._tag===`Failure`){let e=a.cause.reasons.filter(e=>e._tag!==`Interrupt`);if(e.length>0){let t=cr(e);f=Cr(f._tag===`Failure`?lr(f.cause,t):t)}}}else{let t=n(e,o,a,r);t&&(f=t,h())}if(i){let e=h();e&&d(e)}else c&&u.size===0&&d(f??Hs)}catch(e){d(m(e))}}),u.size<s)continue;i=!0,a++;return}else return Ys(e=>{l=_s(),u=/* @__PURE__ */ new Set,p=g,d=e;let t;try{t=h()}catch(t){return e(m(t))}return t?e(t):Fs(()=>(f??=kc,Cc(u?As(u):Hs,()=>f?._tag===`Failure`?f:Hs)))})}if(c=!0,f){if(u&&u.size>0){let e=Cs(l);u.forEach(t=>t.interruptUnsafe(l.id,e));return}if(d||f._tag===`Failure`)return f}else if(d){if(u)u.size===0&&d(Hs);else return kc}};return h()}},jl=()=>e=>Al(e),Yne=/*#__PURE__*/ Al({onItem(e,t,n){return e.f(t,n)},step(e,t,n,r){if(n._tag===`Failure`)return n;e.out&&(e.out[r]=n.value)}}),Xne=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t)=>Er(n=>(pre(),js(Ml(n,e,t?.startImmediately,!1,t?.uninterruptible??!1))))),Ml=(e,t,n=!1,r=!1,i=!1)=>{let a=e,o=i===`inherit`?a.interruptible:!i,s=new vs(a.context,o);return r||(a.children().add(s),s._parent=a),n?s.evaluate(t):(s._asyncContext=gs(),a.currentDispatcher.scheduleTask(()=>s.evaluate(t),0)),s},Nl=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t,n)=>Er(r=>{let i=Ml(r,e,n?.startImmediately,!0,n?.uninterruptible);if(!i._exit){if(t.state._tag!==`Closed`){let e={};al(t,e,()=>Ks(e=>e===i.id?Hs:Os(i))),i.addObserver(()=>ol(t,e))}else i.interruptUnsafe(r.id,Cs(r))}return js(i)})),Zne=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t)=>Cc(ul,n=>Nl(e,n,t))),Pl=e=>(t,n)=>{let r=new vs(n?.scheduler?zi(e,uo,n.scheduler):e,n?.uninterruptible!==!0);if(r.evaluate(t),r._exit)return r;if(n?.signal){if(n.signal.aborted)r.interruptUnsafe();else{let e=()=>r.interruptUnsafe();n.signal.addEventListener(`abort`,e,{once:!0}),r.addObserver(()=>n.signal.removeEventListener(`abort`,e))}}return n?.onFiberStart&&n.onFiberStart(r),r},Qne=/*#__PURE__*/ M(2,(e,t)=>e._exit?e:t.state._tag===`Closed`?(e.interruptUnsafe(e.id),e):(ol(t,e),al(t,e,()=>Os(e)),e.addObserver(()=>ol(t,e)),e)),$ne=/*#__PURE__*/ Pl(/*#__PURE__*/ Ii()),Fl=e=>{let t=Pl(e);return(e,n)=>{let r=t(e,n);return new Promise(e=>{r.addObserver(t=>e(t))})}},Il=e=>{let t=Fl(e);return(e,n)=>t(e,n).then(e=>{if(e._tag===`Failure`)throw es(e.cause);return e.value})},Ll=/*#__PURE__*/ Il(/*#__PURE__*/ Ii()),Rl=e=>{let t=Pl(e);return e=>{if(wc(e))return e;let n=new mo(`sync`),r=t(e,{scheduler:n});return r._dispatcher?.flush(),r._exit??Tr(new mu(r))}},zl=/*#__PURE__*/ Rl(/*#__PURE__*/ Ii()),Bl=/*#__PURE__*/ (e=>{let t=Rl(e);return e=>{let n=t(e);if(n._tag===`Failure`)throw es(n.cause);return n.value}})(/*#__PURE__*/ Ii()),Vl=/*#__PURE__*/ js(!0),Hl=/*#__PURE__*/ js(!1);var Ul=class{waiters=[];scheduled=void 0;_isOpen;constructor(e){this._isOpen=e}scheduleUnsafe(e){if(this.waiters.length===0)return Vl;if(this.scheduled===void 0)this.scheduled=this.waiters,e.currentDispatcher.scheduleTask(this.flushScheduled,0);else for(let e=0;e<this.waiters.length;e++)this.scheduled.push(this.waiters[e]);return this.waiters=[],Vl}flushScheduled=()=>{if(this.scheduled===void 0)return;let e=this.scheduled;this.scheduled=void 0;for(let t=0;t<e.length;t++)e[t](kc)};flushWaiters(){let e=this.waiters;this.waiters=[],this.flushScheduled();for(let t=0;t<e.length;t++)e[t](kc)}open=/*#__PURE__*/ Er(e=>this._isOpen?Hl:(this._isOpen=!0,this.scheduleUnsafe(e)));release=/*#__PURE__*/ Er(e=>this._isOpen?Hl:this.scheduleUnsafe(e));openUnsafe(){return!this._isOpen&&(this._isOpen=!0,this.flushWaiters(),!0)}await=/*#__PURE__*/ Ys(e=>this._isOpen?e(Hs):(this.waiters.push(e),Ps(()=>{let t=this.waiters.indexOf(e);t===-1?this.scheduled!==void 0&&(t=this.scheduled.indexOf(e),t!==-1&&this.scheduled.splice(t,1)):this.waiters.splice(t,1)})));closeUnsafe(){return this._isOpen?(this._isOpen=!1,!0):!1}close=/*#__PURE__*/ Ps(()=>this.closeUnsafe());whenOpen=e=>Cc(this.await,()=>e);isOpen(){return this._isOpen}};const Wl=e=>new Ul(e??!1),Gl=e=>Ps(()=>Wl(e)),Kl=/*#__PURE__*/ BigInt(0),ere={_tag:`Span`,spanId:`noop`,traceId:`noop`,sampled:!1,status:{_tag:`Ended`,startTime:Kl,endTime:Kl,exit:kc},attributes:/*#__PURE__*/ new Map,links:[],kind:`internal`,attribute(){},event(){},end(){},addLinks(){}},tre=e=>Object.assign(Object.create(ere),e),ql=e=>e?Wi(e.annotations,Do)?e._tag===`Span`?ql(yi(e.parent)):di():fi(e):di(),Jl=(e,t,n)=>{let r=!e.cache.tracerEnabled||n?.annotations&&Wi(n.annotations,Do),i=n?.parent===void 0?n?.root?di():ql(e.cache.span):fi(n.parent),a;if(r)a=tre({name:t,parent:i,annotations:zi(n?.annotations??Ii(),Do,!0)});else{let r=e.cache.tracer??Ao,o=e.getRef($l),s=e.getRef(Mo),c=e.getRef(Fte),l=e.getRef(Ite),u=n?.level??e.getRef(Ate),d=n?.links===void 0?l.length===0?[]:l.slice():[...l,...n.links];a=r.span({name:t,parent:i,annotations:n?.annotations??Ii(),links:d,startTime:s?o.currentTimeNanosUnsafe():Kl,kind:n?.kind??`internal`,root:n?.root??!1,sampled:n?.sampled??(mi(i)&&i.value.sampled===!1?!1:!yu(e.getRef(jte),u))});for(let e in c)a.attribute(e,c[e]);if(n?.attributes!==void 0)for(let e in n.attributes)a.attribute(e,n.attributes[e])}return a},nre=(e,t)=>yl(Er(n=>{let r=Ui(n.context,Qc),i=Jl(n,e,t??{}),a=n.getRef($l),o=n.getRef(Mo);return oc(il(r,e=>Yl(i,e,a,o)),i)})),rre=(e,t)=>(t=typeof t==`function`?t:gt,Mc(jo,n=>({name:e,stack:t,parent:n}))),Yl=(e,t,n,r)=>Ps(()=>{e.status._tag!==`Ended`&&e.end(r?n.currentTimeNanosUnsafe():Kl,t)}),Xl=(e,...t)=>{let n=t.length===1?void 0:t[0],r=t[t.length-1];return Er(t=>{let i=Jl(t,e,n),a=t.getRef($l),o=t.getRef(Mo);return hl(t,e=>Yl(i,e,a,o)),r(i)})},Zl=/*#__PURE__*/ Fc(To),Ql=function(){let e=Qn(arguments[0]),t=e?arguments[1]:arguments[0],n=e?arguments[2]:arguments[1],r=N;return t._tag===`Span`&&(n=Lo(n),r=rre(t.name,n?.captureStackTrace)),e?Zl(r(arguments[0]),t):e=>Zl(r(e),t)},ire=function(){let e=typeof arguments[0]!=`string`,t=e?arguments[1]:arguments[0],n=Lo(arguments[2]);if(e){let e=arguments[0];return Xl(t,arguments[2],t=>Ql(e,t,n))}let r=typeof arguments[1]==`function`?arguments[1]:void 0,i=r?void 0:arguments[1];return(e,...a)=>Xl(t,r?r(...a):i,t=>Ql(e,t,n))},are=(...e)=>Er(t=>{let n=t.currentSpanLocal;if(n){if(e.length===1)for(let[t,r]of Object.entries(e[0]))n.attribute(t,r);else n.attribute(e[0],e[1])}return Hs}),$l=/*#__PURE__*/ Xi(`effect/Clock`,{defaultValue:()=>new ore}),eu=2**31-1;var ore=class{currentTimeMillisUnsafe(){return Date.now()}currentTimeMillis=/*#__PURE__*/ Ps(()=>this.currentTimeMillisUnsafe());currentTimeNanosUnsafe(){return ru()}currentTimeNanos=/*#__PURE__*/ Ps(()=>this.currentTimeNanosUnsafe());monotonicTimeNanosUnsafe(){return nu()}monotonicTimeNanos=/*#__PURE__*/ Ps(()=>this.monotonicTimeNanosUnsafe());sleep(e){return this.sleepMillis(oo(e))}sleepMillis(e){return e<=0?Ls:Number.isFinite(e)?Ys(t=>{let n=e>eu?this.sleepMillis(e-eu):Hs,r=setTimeout(()=>t(n),Math.min(e,eu));return Ps(()=>clearTimeout(r))}):Xs}};const tu=/*#__PURE__*/ BigInt(1e6),nu=/*#__PURE__*/ function(){let e=globalThis.process?.hrtime;if(typeof e?.bigint==`function`)return()=>e.bigint();if(typeof performance<`u`&&typeof performance.now==`function`)return()=>BigInt(Math.round(performance.now()*1e6));let t=/*#__PURE__*/ BigInt(0);return()=>{let e=BigInt(Date.now())*tu;return e>t&&(t=e),t}}(),ru=/*#__PURE__*/ function(){let e=/*#__PURE__*/ BigInt(1e9),t;return()=>{let n=nu(),r=BigInt(Date.now())*tu;if(t===void 0)t=r-n;else{let i=t+n;(r>i?r-i:i-r)>e&&(t=r-n)}return t+n}}(),iu=e=>Er(t=>e(t.getRef($l))),au=e=>iu(t=>t.sleep(qa(e))),ou=/*#__PURE__*/ iu(e=>e.currentTimeMillis),su=`~effect/Cause/TimeoutError`;var cu=class extends (/*#__PURE__*/ kr(`TimeoutError`)){[su]=su;constructor(e){super({message:e})}};const lu=`~effect/Cause/IllegalArgumentError`;var uu=class extends (/*#__PURE__*/ kr(`IllegalArgumentError`)){[lu]=lu;constructor(e){super({message:e})}};const du=`~effect/Cause/ExceededCapacityError`;var fu=class extends (/*#__PURE__*/ kr(`ExceededCapacityError`)){[du]=du;constructor(e){super({message:e})}};const pu=`~effect/Cause/AsyncFiberError`;var mu=class extends (/*#__PURE__*/ kr(`AsyncFiberError`)){[pu]=pu;constructor(e){super({message:`An asynchronous Effect was executed with Effect.runSync`,fiber:e})}};const hu=`~effect/Cause/UnknownError`;var gu=class extends (/*#__PURE__*/ kr(`UnknownError`)){[hu]=hu;constructor(e,t){super({message:t,cause:e})}};const _u=/*#__PURE__*/ Xi(`effect/Console`,{defaultValue:()=>globalThis.console}),vu=/*#__PURE__*/ Wee(ci,e=>{switch(e){case`All`:return-(2**53-1);case`Fatal`:return 5e4;case`Error`:return 4e4;case`Warn`:return 3e4;case`Info`:return 2e4;case`Debug`:return 1e4;case`Trace`:return 0;case`None`:return 2**53-1}}),yu=/*#__PURE__*/ li(vu),bu=/*#__PURE__*/ Xi(`effect/Logger/CurrentLoggers`,{defaultValue:()=>/* @__PURE__ */ new Set([dre,fre])}),xu=/*#__PURE__*/ Xi(`effect/Logger/LogToStderr`,{defaultValue:ht}),sre={"~effect/Logger":{_Message:N,_Output:N},pipe(){return ut(this,arguments)}},Su=e=>{let t=Object.create(sre);return t.log=e,t},cre=e=>e.replace(/[\s="]/g,`_`),lre=(e,t)=>`${cre(e[0])}=${t-e[1]}ms`,Cu=e=>(...t)=>{let n;for(let e=0,r=t.length;e<r;e++){let r=t[e];nr(r)&&(n?t.splice(e,1):t=t.slice(0,e).concat(t.slice(e+1)),n=n?cr(n.reasons.concat(r.reasons)):r,e--)}return n===void 0&&(n=Lee),Er(r=>{let i=e??r.cache.logLevel;if(yu(r.cache.minimumLogLevel,i))return Hs;let a=r.getRef($l),o=r.getRef(bu);if(o.size>0){let e=new Date(a.currentTimeMillisUnsafe());for(let a of o)a.log({cause:n,fiber:r,date:e,logLevel:i,message:t})}return Hs})},wu={bold:`1`,red:`31`,green:`32`,yellow:`33`,blue:`34`,cyan:`36`,white:`37`,gray:`90`,black:`30`,bgBrightRed:`101`};wu.gray,wu.blue,wu.green,wu.yellow,wu.red,wu.bgBrightRed,wu.black;const ure=e=>`${e.getHours().toString().padStart(2,`0`)}:${e.getMinutes().toString().padStart(2,`0`)}:${e.getSeconds().toString().padStart(2,`0`)}.${e.getMilliseconds().toString().padStart(3,`0`)}`,dre=/*#__PURE__*/ Su(({cause:e,date:t,fiber:n,logLevel:r,message:i})=>{let a=Array.isArray(i)?i.slice():[i];e.reasons.length>0&&a.push(ls(e));let o=t.getTime(),s=n.getRef(Io),c=``;for(let e of s)c+=` ${lre(e,o)}`;let l=n.getRef(No);Object.keys(l).length>0&&a.push(l);let u=n.getRef(_u);(n.getRef(xu)?u.error:u.log)(`[${ure(t)}] ${r.toUpperCase()} (#${n.id})${c}:`,...a)}),fre=/*#__PURE__*/ Su(({cause:e,fiber:t,logLevel:n,message:r})=>{let i=t.getRef($l),a=t.getRef(No),o=t.cache.span;if(o===void 0||o._tag===`ExternalSpan`)return;let s={};for(let[e,t]of Object.entries(a))zn(s,e,t);s[`effect.fiberId`]=t.id,s[`effect.logLevel`]=n.toUpperCase(),e.reasons.length>0&&(s[`effect.cause`]=ls(e)),o.event(Mee(Array.isArray(r)&&r.length===1?r[0]:r),i.currentTimeNanosUnsafe(),s)});function pre(){Ss.interruptChildren??=ws}const mre=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t)=>_l(e,e=>Er(n=>(Tu(n,e,t?.defectsOnly),Hs)))),Tu=(e,t,n)=>{let r=e.getRef(Nte);if(r.size===0||n&&!Go(t))return;let i={cause:t,fiber:e,timestamp:e.getRef($l).currentTimeNanosUnsafe()};r.forEach(e=>e.report(i))},hre=nr,gre=Fee,Eu=mr,_re=hr,Du=cr,vre=ur,Ou=fr,ku=e=>new sr(e),Au=e=>new dr(e),yre=Vo,bre=Zo,ju=$o,xre=lr,Mu=es,Sre=Wo,Nu=Go,Pu=qo,Cre=Yo,wre=ls,Tre=Ar,Fu=Mr,Iu=Pr,Lu=Ir,Ru=uu,Ere=fu,zu=gu,Bu=Qo;var Vu=class extends (/*#__PURE__*/ F()(`effect/Cause/StackTrace`)){};const Hu=$n,Uu=br,Wu=Cr,Gu=wr,Ku=Tr,qu=Ec,Ju=kc,Yu=Dc,Xu=Kte,Zu=Oc,Qu=Ac,$u=`~effect/Deferred`,ed=e=>P(e,$u),td={[$u]:{_A:N,_E:N},pipe(){return ut(this,arguments)}},nd=function(){this.resumes=void 0,this.effect=void 0};nd.prototype=td;const rd=()=>new nd,id=()=>Ps(()=>rd()),ad=e=>Ys(t=>e.effect?t(e.effect):(e.resumes??=[],e.resumes.push(t),Ps(()=>{let n=e.resumes;if(n===void 0)return;let r=n.indexOf(t);r>=0&&n.splice(r,1)}))),od=/* @__PURE__ */ M(2,(e,t)=>Ps(()=>fd(e,t))),sd=/*#__PURE__*/ M(2,(e,t)=>od(e,Cr(t))),cd=/*#__PURE__*/ M(2,(e,t)=>sd(e,Ho(t))),ld=e=>Ps(()=>ud(e)),ud=e=>e.effect!==void 0,dd=/*#__PURE__*/ M(2,(e,t)=>od(e,br(t))),fd=(e,t)=>{if(e.effect)return!1;if(e.effect=t,e.resumes){let n=e.resumes;e.resumes=void 0;for(let e=0;e<n.length;e++)n[e](t)}return!0},pd=No,md=Po,hd=Mo,gd=Qc,_d=jne,vd=sl,yd=dl,bd=il,xd=Ane,Sd=kne,Cd=rl,wd=$c,Td=el,Ed=Nne,Dd=`~effect/Layer/MemoMap`,Od=(e,t)=>{let n={observers:0,deferred:rd(),scope:vd(),finalizer:r=>Fs(()=>--n.observers>0?Hs:(e.map.delete(t),wd(n.scope,r)))};return n},kd=(e,t)=>t.state._tag!==`Closed`&&(e.observers++,al(t,{},e.finalizer),!0),Ad={"~effect/Layer":{_ROut:N,_E:N,_RIn:N},pipe(){return ut(this,arguments)}},jd=e=>{let t=Object.create(Ad);return t.build=e,t},Md=e=>jd((t,n)=>{let r=Cd(n);return gl(e(t,r),e=>e._tag===`Failure`?wd(r,e):Hs)}),Nd=e=>{let t=Md((n,r)=>n.getOrElseMemoize(t,r,e));return t};var Pd=class{get[Dd](){return Dd}parent;constructor(e){this.parent=e}map=/*#__PURE__*/ new Map;get(e,t){let n=this.map.get(e);return n?(kd(n,t),n.deferred.effect??ad(n.deferred)):this.parent?.get(e,t)}getOrElseMemoize(e,t,n){return Fs(()=>{let r;return ml(Fs(()=>{let i=this.get(e,t);if(i)return i;let a=Od(this,e);return kd(a,t)?(r=a.deferred,this.map.set(e,a),n(this,a.scope)):n(this,t)}),e=>{r&&fd(r,e)})})}};const Fd=()=>new Pd,Id=e=>new Pd(e);var Ld=class e extends (/*#__PURE__*/ F()(`effect/Layer/CurrentMemoMap`)){static forkOrCreate(t){let n=Vi(t,e);return n?Id(n):Fd()}};const Rd=/*#__PURE__*/ M(3,(e,t,n)=>Fc(Tc(Fs(()=>e.build(t,n)),zi(Ld,t)),Ld,t)),zd=e=>Er(t=>Rd(e,Ld.forkOrCreate(t.context),Ui(t.context,gd))),Bd=/*#__PURE__*/ M(2,(e,t)=>Er(n=>Rd(e,Ld.forkOrCreate(n.context),t))),Vd=function(){return arguments.length===1?e=>Hd(Ri(arguments[0],e)):Hd(Ri(arguments[0],arguments[1]))},Hd=e=>jd(pt(js(e))),Ud=/*#__PURE__*/ Hd(/*#__PURE__*/ Ii()),Wd=function(){return arguments.length===1?e=>Gd(arguments[0],e):Gd(arguments[0],arguments[1])},Gd=(e,t)=>Kd(Tc(t,t=>Ri(e,t))),Kd=e=>Nd((t,n)=>yd(e,n)),qd=e=>Kd(oc(e,Ii())),Jd=/*#__PURE__*/ F(`effect/Layer/unwrap`),Yd=e=>nf(Wd(Jd)(e),Wi(Jd)),Xd=(e,t,n)=>{let r=Cd(n,`parallel`);return Dl(e,e=>e.build(t,Cd(r,`sequential`)),{concurrency:e.length}).pipe(Tc(e=>ete(...e)))},Zd=(...e)=>Md((t,n)=>Xd(e,t,n)),Qd=/*#__PURE__*/ M(2,(e,t)=>Zd(e,...Array.isArray(t)?t:[t])),$d=(e,t,n)=>Md((r,i)=>Cc(Array.isArray(t)?Xd(t,r,i):t.build(r,i),t=>e.build(r,i).pipe(Pc(t),Tc(e=>n(e,t))))),ef=/*#__PURE__*/ M(2,(e,t)=>$d(e,t,N)),tf=/*#__PURE__*/ M(2,(e,t)=>$d(e,t,(e,t)=>Ji(t,e))),nf=/*#__PURE__*/ M(2,(e,t)=>Md((n,r)=>Cc(e.build(n,r),e=>t(e).build(n,r)))),rf=e=>jd((t,n)=>e.build(Fd(),n)),af=$l,of=ou,sf=`~effect/DateTime`,cf=`~effect/DateTime/TimeZone`,lf={[sf]:sf,pipe(){return ut(this,arguments)},[jn](){return this.toString()},toJSON(){return hf(this).toJSON()}},Dre={...lf,_tag:`Utc`,[Ut](){return Xt(this.epochMilliseconds)},[cn](e){return df(e)&&e._tag===`Utc`&&this.epochMilliseconds===e.epochMilliseconds},toString(){return`DateTime.Utc(${hf(this).toJSON()})`}};({...lf});const uf={[cf]:cf,[jn](){return this.toString()}};({...uf}),{...uf};const df=e=>P(e,sf),Ore=e=>e._tag===`Utc`,ff=e=>{let t=Object.create(Dre);return t.epochMilliseconds=e,Object.defineProperty(t,"partsUtc",{value:void 0,enumerable:!1,writable:!0}),t},pf=e=>{let t=e.getTime();if(Number.isNaN(t))throw new Ru(`Invalid date`);return ff(t)},mf=e=>{if(df(e))return e;if(e instanceof Date)return pf(e);if(typeof e==`object`){if(`epochMilliseconds`in e)return pf(new Date(e.epochMilliseconds));let t=/* @__PURE__ */ new Date(0);return Nre(t,e),pf(t)}return typeof e==`string`&&!kre(e)?pf(/* @__PURE__ */ new Date(e+`Z`)):pf(new Date(e))},kre=e=>/Z|GMT|[+-]\d{2}$|[+-]\d{2}:?\d{2}$|\]$/.test(e),Are=/*#__PURE__*/ bi(mf),jre=e=>ff(e.epochMilliseconds),hf=e=>new Date(e.epochMilliseconds),Mre=e=>e.epochMilliseconds,Nre=(e,t)=>{if((t.year!==void 0||t.month!==void 0||t.day!==void 0)&&e.setUTCFullYear(t.year??e.getUTCFullYear(),t.month===void 0?e.getUTCMonth():t.month-1,t.day??e.getUTCDate()),t.weekDay!==void 0){let n=t.weekDay-e.getUTCDay();e.setUTCDate(e.getUTCDate()+n)}t.hour!==void 0&&e.setUTCHours(t.hour),t.minute!==void 0&&e.setUTCMinutes(t.minute),t.second!==void 0&&e.setUTCSeconds(t.second),t.millisecond!==void 0&&e.setUTCMilliseconds(t.millisecond)},Pre=e=>hf(e).toISOString();globalThis.String;const Fre=e=>e.trim(),Ire=(e,t,n)=>{let r=n*(t-e)+e;if(r!==t||e>=t||!Number.isFinite(t))return r;if(t===0)return-Number.MIN_VALUE;let i=/* @__PURE__ */ new DataView(/* @__PURE__ */ new ArrayBuffer(8));i.setFloat64(0,t);let a=i.getBigUint64(0);return i.setBigUint64(0,t>0?a-BigInt(1):a+BigInt(1)),i.getFloat64(0)},gf=/*#__PURE__*/ M(2,(e,t)=>zc(e,Lre,e=>t(e))),_f=e=>e.reasons.some(vf),vf=e=>e._tag===`Fail`&&Fu(e.error),yf=e=>{let t,n=!1;for(let r of e.reasons)vf(r)?t??=r.error:r._tag!==`Interrupt`&&(n=!0);return t===void 0?ea(e):n?ea(Du(e.reasons.filter(e=>!vf(e)))):$i(t)},Lre=e=>{let t=yf(e);return ra(t)?t:$i(t.success.value)},bf=e=>{let t=yf(e);return ra(t)?Wu(t.failure):Uu(t.success.value)},Rre=/*#__PURE__*/ M(2,(e,t)=>Wc(e,{onSuccess:t.onSuccess,onFailure:e=>{let n=yf(e);return ra(n)?t.onFailure(n.failure):t.onDone(n.success.value)}})),zre=(e,t,n)=>fl(r=>Cc(n?.local?Rd(t,Fd(),r):Bd(t,r),t=>Pc(e,t))),Bre=/*#__PURE__*/ M(e=>Qn(e[0]),(e,t,n)=>Pi(t)?Pc(e,t):zre(e,Array.isArray(t)?Zd(...t):t,n)),xf=`~effect/MutableHashMap`,Vre={[xf]:xf,[Symbol.iterator](){return this.backing[Symbol.iterator]()},toString(){return`MutableHashMap(${Tn(Array.from(this))})`},toJSON(){return{_id:`MutableHashMap`,values:Mn(Array.from(this))}},[jn](){return this.toJSON()},pipe(){return ut(this,arguments)}},Hre=()=>{let e=Object.create(Vre);return e.backing=/* @__PURE__ */ new Map,e.buckets=/* @__PURE__ */ new Map,e},Sf=/*#__PURE__*/ M(2,(e,t)=>{if(e.backing.has(t))return fi(e.backing.get(t));if(Cf(t))return di();let n=Wt(t),r=e.buckets.get(n);return r===void 0?di():Ure(e,r,t)}),Cf=e=>typeof e!=`object`&&typeof e!=`function`,Ure=(e,t,n)=>{for(let r=0,i=t.length;r<i;r++)if(ln(n,t[r])){let n=t[r];return fi(e.backing.get(n))}return di()},Wre=/*#__PURE__*/ M(3,(e,t,n)=>{if(e.backing.has(t)||Cf(t))return e.backing.set(t,n),e;let r=Wt(t),i=e.buckets.get(r);if(i===void 0)return e.buckets.set(r,[t]),e.backing.set(t,n),e;let a=Gre(i,t);return a===void 0&&(i.push(t),a=t),e.backing.set(a,n),e}),Gre=(e,t)=>{for(let n=0,r=e.length;n<r;n++)if(ln(t,e[n]))return e[n]},wf=/*#__PURE__*/ M(2,(e,t)=>{if(Cf(t))return e.backing.delete(t),e;let n=Wt(t),r=e.buckets.get(n);if(r===void 0)return e;for(let n=0,i=r.length;n<i;n++){let i=r[n];if(i===t||ln(t,i)){e.backing.delete(i),r.splice(n,1);break}}return r.length===0&&e.buckets.delete(n),e}),Kre=e=>(e.backing.clear(),e.buckets.clear(),e),qre=e=>e.backing.size,Tf=Qn,Ef=qne,Df=Dl,Of=El,kf=Ws,Af=Gs,I=js,jf=Rs,Mf=Fs,L=Ps,R=Hs,Nf=Ys,Pf=Xs,z=Zs,B=Ns,Ff=Ms,If=zs,Lf=Bs,Rf=Us,Jre=Ls,zf=Er,Bf=Is,V=Cc,Yre=Vte,Vf=vc,Hf=yc,Uf=Uc,Xre=vne,Wf=Jc,H=Tc,Gf=oc,Kf=bc,qf=Bc,Jf=fne,Zre=pne,Yf=Lc,Xf=sne,Zf=Vc,Qre=one,Qf=Hc,$f=hne,ep=une,tp=cne,np=gne,rp=_ne,$re=mre,eie=Ene,ip=Yc,tie=wne,ap=au,nie=Rte,op=Sc,rie=rne,sp=qc,iie=zte,cp=Wc,lp=Kc,up=ene,dp=Nc,fp=Bre,pp=Pc,aie=nne,mp=Qte,hp=$te,gp=jc,_p=Fc,vp=ul,yp=Mne,oie=fl,bp=Pne,xp=Fne,Sp=Ine,Cp=_l,wp=ml,Tp=gl,Ep=Une,Dp=Hne,Op=Wne,kp=wl,Ap=zne,jp=yl,Mp=Tl,Np=ine,sie=are,cie=nre,Pp=Xl,Fp=ire,Ip=Ql,Lp=Xne,Rp=Nl,zp=Zne,Bp=$ne,Vp=Pl,Hp=Ll,lie=Il,Up=Bl,Wp=zl,U=Qs,Gp=tc,Kp=iu,uie=/*#__PURE__*/ Cu(`Fatal`),qp=/*#__PURE__*/ Cu(`Warn`),Jp=/*#__PURE__*/ Cu(`Error`),die=/*#__PURE__*/ Cu(`Info`),fie=/*#__PURE__*/ Cu(`Debug`),Yp=/*#__PURE__*/ M(e=>Tf(e[0]),(e,...t)=>Mc(e,pd,e=>{let n=t.length===1?{...e,...t[0]}:{...e};return t.length===1||zn(n,t[0],t[1]),n})),Xp=(e,t,n)=>(...r)=>Nf(i=>{try{e(...r,(e,n)=>{i(e?t?Mf(()=>B(t(e,r))):B(e):I(n))})}catch(e){i(n?B(n(e,r)):Lf(e))}}),Zp=Hte,Qp=Ute,$p=Wte,em=Bte,tm=Gte,nm=rc,rm=`~effect/BigDecimal`,im={[rm]:rm,[Ut](){let e=fm(this);return qt(Zt(String(e.value)),Xt(e.scale))},[cn](e){return am(e)&&gm(this,e)===0},toString(){return`BigDecimal(${vm(this)})`},toJSON(){return{_id:`BigDecimal`,value:String(this.value),scale:this.scale}},[jn](){return this.toJSON()},pipe(){return ut(this,arguments)}},am=e=>P(e,rm),om=(e,t)=>{if(!Number.isSafeInteger(t))throw RangeError(`Scale must be a safe integer, got ${t}`);let n=Object.create(im);return n.value=e,n.scale=t,n},sm=(e,t)=>{let n=om(e,t);return n.normalized=n,n},cm=/*#__PURE__*/ BigInt(0),lm=/*#__PURE__*/ BigInt(1),um=/*#__PURE__*/ BigInt(10),dm=/*#__PURE__*/ sm(cm,0),fm=e=>{if(e.normalized===void 0){if(e.value===cm)e.normalized=dm;else{let t=`${e.value}`,n=t.length;for(;t[n-1]===`0`;)n--;e.normalized=sm(BigInt(t.slice(0,n)),e.scale-(t.length-n))}}return e.normalized},pm=[lm],mm=(e,t)=>e===t?0:e<t?-1:1,hm=(e,t)=>{let n=`${e.value<cm?-e.value:e.value}`,r=`${t.value<cm?-t.value:t.value}`,i=BigInt(n.length-r.length)-BigInt(e.scale)+BigInt(t.scale);if(i!==cm)return i<cm?-1:1;let a=Math.max(n.length,r.length);return Uee(n.padEnd(a,`0`),r.padEnd(a,`0`))},gm=(e,t)=>{if(e.scale===t.scale)return mm(e.value,t.value);let n=_m(e),r=_m(t);if(n!==r)return n<r?-1:1;if(n===0)return 0;let i=e.scale-t.scale,a=Math.abs(i);if(a>100)return n===-1?hm(t,e):hm(e,t);let o=pm[a]??=um**BigInt(a);return i>0?mm(e.value,t.value*o):mm(e.value*o,t.value)},_m=e=>e.value===cm?0:e.value<cm?-1:1,vm=e=>{let t=fm(e);if(Math.abs(t.scale)>=16)return ym(t);let n=t.value<cm,r=`${n?-t.value:t.value}`,i=t.scale>0?r.padStart(t.scale+1,`0`):r.padEnd(r.length-t.scale,`0`),a=i.length-t.scale,o=t.scale>0?`${i.slice(0,a)}.${i.slice(a)}`:i;return n?`-${o}`:o},ym=e=>{if(bm(e))return`0e+0`;let t=fm(e),n=`${t.value}`,r=t.value<cm?2:1,i=n.slice(0,r),a=n.slice(r),o=a.length-t.scale;return`${i}${a===``?``:`.${a}`}e${o>=0?`+`:``}${o}`},bm=e=>e.value===cm,xm=globalThis.BigInt,Sm=e=>e>xm(2**53-1)||e<xm(-(2**53-1))?di():fi(Number(e)),Cm=/*#__PURE__*/ BigInt(0),wm=/*#__PURE__*/ BigInt(1),Tm=/*#__PURE__*/ BigInt(1e3),Em=/*#__PURE__*/ BigInt(1024),Dm=[{symbol:`B`,factor:wm,names:[`B`,`byte`,`bytes`]},{symbol:`kB`,factor:Tm,names:[`kB`,`kilobyte`,`kilobytes`]},{symbol:`MB`,factor:Tm**/*#__PURE__*/ BigInt(2),names:[`MB`,`megabyte`,`megabytes`]},{symbol:`GB`,factor:Tm**/*#__PURE__*/ BigInt(3),names:[`GB`,`gigabyte`,`gigabytes`]},{symbol:`TB`,factor:Tm**/*#__PURE__*/ BigInt(4),names:[`TB`,`terabyte`,`terabytes`]},{symbol:`PB`,factor:Tm**/*#__PURE__*/ BigInt(5),names:[`PB`,`petabyte`,`petabytes`]},{symbol:`EB`,factor:Tm**/*#__PURE__*/ BigInt(6),names:[`EB`,`exabyte`,`exabytes`]},{symbol:`ZB`,factor:Tm**/*#__PURE__*/ BigInt(7),names:[`ZB`,`zettabyte`,`zettabytes`]},{symbol:`YB`,factor:Tm**/*#__PURE__*/ BigInt(8),names:[`YB`,`yottabyte`,`yottabytes`]},{symbol:`RB`,factor:Tm**/*#__PURE__*/ BigInt(9),names:[`RB`,`ronnabyte`,`ronnabytes`]},{symbol:`QB`,factor:Tm**/*#__PURE__*/ BigInt(10),names:[`QB`,`quettabyte`,`quettabytes`]}],Om=[Dm[0],{symbol:`KiB`,factor:Em,names:[`KiB`,`kibibyte`,`kibibytes`]},{symbol:`MiB`,factor:Em**/*#__PURE__*/ BigInt(2),names:[`MiB`,`mebibyte`,`mebibytes`]},{symbol:`GiB`,factor:Em**/*#__PURE__*/ BigInt(3),names:[`GiB`,`gibibyte`,`gibibytes`]},{symbol:`TiB`,factor:Em**/*#__PURE__*/ BigInt(4),names:[`TiB`,`tebibyte`,`tebibytes`]},{symbol:`PiB`,factor:Em**/*#__PURE__*/ BigInt(5),names:[`PiB`,`pebibyte`,`pebibytes`]},{symbol:`EiB`,factor:Em**/*#__PURE__*/ BigInt(6),names:[`EiB`,`exbibyte`,`exbibytes`]},{symbol:`ZiB`,factor:Em**/*#__PURE__*/ BigInt(7),names:[`ZiB`,`zebibyte`,`zebibytes`]},{symbol:`YiB`,factor:Em**/*#__PURE__*/ BigInt(8),names:[`YiB`,`yobibyte`,`yobibytes`]}],km=[...Dm,.../*#__PURE__*/ Om.slice(1)],Am=/*#__PURE__*/ new Map(/*#__PURE__*/ km.flatMap(e=>e.names.map(t=>[t,e]))),jm=/*#__PURE__*/ new Map(/*#__PURE__*/ km.map(e=>[e.symbol,e])),Mm=e=>e,Nm=/*#__PURE__*/ Mm(Cm),Pm=e=>{throw Error(`Invalid ByteSize: ${e}`)},Fm=e=>!Number.isSafeInteger(e)||e<0?Pm(`expected a non-negative safe integer, received ${e}`):Mm(BigInt(e)),Im=(e,t)=>{if(typeof e==`bigint`)return e<Cm?Pm(`expected a non-negative quantity, received ${e}`):Mm(e*t.factor);let n=e*Number(t.factor);return!Number.isSafeInteger(n)||n<0?Pm(`expected an exact non-negative safe-integer byte result, received ${e} ${t.symbol}`):Mm(BigInt(n))},Lm=e=>{let t=/^\s*(\d+)(?:\.(\d+))?\s*([A-Za-z]+)\s*$/.exec(e);if(t===null)return Pm(`unsupported syntax ${JSON.stringify(e)}`);let n=Am.get(t[3]);if(n===void 0)return Pm(`unsupported unit ${JSON.stringify(t[3])}`);let r=t[2]??``,i=BigInt(10)**BigInt(r.length),a=BigInt(t[1]+r)*n.factor;return a%i===Cm?Mm(a/i):Pm(`${JSON.stringify(e)} does not represent an integral number of bytes`)},Rm=e=>{switch(typeof e){case`bigint`:return e<Cm?Pm(`expected a non-negative bigint, received ${e}`):Mm(e);case`number`:return Fm(e);case`string`:return Lm(e)}return Pm(`unsupported input ${e}`)},zm=/*#__PURE__*/ bi(Rm),Bm=e=>typeof e==`bigint`?Rm(e):Fm(e),Vm=/*#__PURE__*/ (e=>t=>Im(t,jm.get(e)))(`MiB`),Hm=df,Um=Ore,Wm=pf,Gm=mf,Km=Are,qm=jre,Jm=Mre,Ym=Pre,Xm=e=>$m(typeof e==`string`?eh.encode(e):e),Zm=e=>{let t=nh(e),n=t.length;if(n%4!=0)return ea(new bo({kind:`Decode`,module:`Base64`,input:t,message:`Length must be a multiple of 4, but is ${n}`}));let r=t.indexOf(`=`);if(r!==-1&&(r<n-2||r===n-2&&t[n-1]!==`=`))return ea(new bo({kind:`Decode`,module:`Base64`,input:t,message:`Found a '=' character, but it is not at the end`}));try{let e=t.endsWith(`==`)?2:+!!t.endsWith(`=`),r=new Uint8Array(n/4*3-e);for(let e=0,i=0;e<n;e+=4,i+=3){let n=ah(t.charCodeAt(e))<<18|ah(t.charCodeAt(e+1))<<12|ah(t.charCodeAt(e+2))<<6|ah(t.charCodeAt(e+3));r[i]=n>>16,r[i+1]=n>>8&255,r[i+2]=n&255}return $i(r)}catch(e){return ea(new bo({kind:`Decode`,module:`Base64`,input:t,message:e instanceof Error?e.message:`Invalid input`}))}},Qm=e=>oa(Zm(e),e=>th.decode(e)),$m=e=>{let t=e.length,n=``,r=2;for(;r<t;r+=3)n+=rh[e[r-2]>>2],n+=rh[(e[r-2]&3)<<4|e[r-1]>>4],n+=rh[(e[r-1]&15)<<2|e[r]>>6],n+=rh[e[r]&63];return r===t+1&&(n+=rh[e[r-2]>>2],n+=rh[(e[r-2]&3)<<4],n+=`==`),r===t&&(n+=rh[e[r-2]>>2],n+=rh[(e[r-2]&3)<<4|e[r-1]>>4],n+=rh[(e[r-1]&15)<<2],n+=`=`),n},eh=/*#__PURE__*/ new TextEncoder,th=/*#__PURE__*/ new TextDecoder,nh=e=>e.replace(/[\n\r]/g,``),rh=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ih=/*#__PURE__*/ (/* @__PURE__ */ new Uint8Array(123)).fill(255);for(let e=0;e<64;e++)ih[/*#__PURE__*/ rh.charCodeAt(e)]=e;ih[61]=0;const ah=e=>{if(e>=ih.length||ih[e]===255)throw TypeError(`Invalid character ${String.fromCharCode(e)}`);return ih[e]},oh=`~effect/http/Cookies`,sh=e=>P(e,oh),ch=`~effect/http/Cookies/Cookie`,lh=`~effect/http/Cookies/CookieError`;var uh=class extends _o{},dh=class e extends (/*#__PURE__*/ vo(`CookiesError`)){static fromReason(t,n){return new e({reason:new uh({_tag:t,cause:n})})}[lh]=lh;get message(){return this.reason._tag}};const fh={[oh]:oh,...Nn,toJSON(){return{_id:`effect/Cookies`,cookies:ma(this.cookies,e=>e.toJSON())}},pipe(){return ut(this,arguments)}},ph=e=>{let t=Object.create(fh);return t.cookies=e,t},mh=e=>{let t={};for(let n of e)zn(t,n.name,n);return ph(t)},hh=e=>{let t=typeof e==`string`?[e]:e,n=[];for(let e of t){let t=gh(e.trim());t&&n.push(t)}return mh(n)};function gh(e){let t=e.split(`;`).map(e=>e.trim()).filter(e=>e!==``);if(t.length===0)return;let n=t[0].indexOf(`=`);if(n===-1)return;let r=t[0].slice(0,n);if(!bh.test(r))return;let i=t[0].slice(n+1),a=Nh(i);if(t.length===1)return Object.assign(Object.create(Ch),{name:r,value:a,valueEncoded:i});let o={};for(let e=1;e<t.length;e++){let n=t[e],r=n.indexOf(`=`),i=r===-1?n:n.slice(0,r).trim(),a=r===-1?void 0:n.slice(r+1).trim();switch(i.toLowerCase()){case`domain`:{if(a===void 0)break;let e=a.trim().replace(/^\./,``);e&&(o.domain=e);break}case`expires`:{if(a===void 0)break;let e=new Date(a);isNaN(e.getTime())||(o.expires=e);break}case`max-age`:{if(a===void 0)break;let e=parseInt(a,10);isNaN(e)||(o.maxAge=io(e));break}case`path`:if(a===void 0)break;a[0]===`/`&&(o.path=a);break;case`priority`:if(a===void 0)break;switch(a.toLowerCase()){case`low`:o.priority=`low`;break;case`medium`:o.priority=`medium`;break;case`high`:o.priority=`high`}break;case`httponly`:o.httpOnly=!0;break;case`secure`:o.secure=!0;break;case`partitioned`:o.partitioned=!0;break;case`samesite`:if(a===void 0)break;switch(a.toLowerCase()){case`lax`:o.sameSite=`lax`;break;case`strict`:o.sameSite=`strict`;break;case`none`:o.sameSite=`none`}}}return Object.assign(Object.create(Ch),{name:r,value:a,valueEncoded:i,options:Object.keys(o).length>0?o:void 0})}const _h=/*#__PURE__*/ mh([]),vh=e=>fa(e.cookies),yh=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,bh=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,xh=/^[\u0009\u0020-\u003a\u003c-\u007e\u0080-\u00ff]+$/,Sh=/^[\u0020-\u003a\u003c-\u007e]+$/,Ch={[ch]:ch,...Nn,toJSON(){return{_id:`effect/Cookies/Cookie`,name:this.name,value:this.value,options:this.options}}};function wh(e,t,n){let r=encodeURIComponent(t),i=Th(e,r,n);return i===void 0?$i(Object.assign(Object.create(Ch),{name:e,value:t,valueEncoded:r,options:n})):ea(i)}function Th(e,t,n){if(!bh.test(e))return dh.fromReason(`InvalidCookieName`);if(t&&!yh.test(t))return dh.fromReason(`InvalidCookieValue`);if(n?.domain!==void 0&&!xh.test(n.domain))return dh.fromReason(`InvalidCookieDomain`);if(n?.path!==void 0&&!Sh.test(n.path))return dh.fromReason(`InvalidCookiePath`);if(n?.maxAge!==void 0&&!Za(qa(n.maxAge)))return dh.fromReason(`CookieInfinityMaxAge`)}const Eh=/*#__PURE__*/ M(2,(e,t)=>ph({...e.cookies,...t.cookies})),Dh=/*#__PURE__*/ M(e=>sh(e[0]),(e,t,n,r)=>oa(wh(t,n,r),n=>ph(_a(e.cookies,t,n))));function Oh(e){let t=Th(e.name,e.valueEncoded,e.options);if(t!==void 0)throw t;let n=e.name+`=`+e.valueEncoded;if(e.options===void 0)return n;let r=e.options;if(r.maxAge!==void 0){let e=mte(qa(r.maxAge));n+=`; Max-Age=`+Math.trunc(e)}if(r.domain!==void 0&&(n+=`; Domain=`+r.domain),r.path!==void 0&&(n+=`; Path=`+r.path),r.priority!==void 0)switch(r.priority){case`low`:n+=`; Priority=Low`;break;case`medium`:n+=`; Priority=Medium`;break;case`high`:n+=`; Priority=High`}if(r.expires!==void 0&&(n+=`; Expires=`+r.expires.toUTCString()),r.httpOnly&&(n+=`; HttpOnly`),r.secure&&(n+=`; Secure`),r.partitioned&&(n+=`; Partitioned`),r.sameSite!==void 0)switch(r.sameSite){case`lax`:n+=`; SameSite=Lax`;break;case`strict`:n+=`; SameSite=Strict`;break;case`none`:n+=`; SameSite=None`}return n}const kh=e=>Object.values(e.cookies).map(e=>`${e.name}=${e.valueEncoded}`).join(`; `),Ah=e=>{let t={},n=Object.values(e.cookies);for(let e=0;e<n.length;e++){let r=n[e];zn(t,r.name,r.value)}return t},jh=e=>Object.values(e.cookies).map(Oh);function Mh(e){let t={},n=e.length,r=0,i=0;for(;i!==n;){i=e.indexOf(`;`,r),i===-1&&(i=n);let a=e.indexOf(`=`,r);if(a===-1)break;if(a>i){r=i+1;continue}let o=e.substring(r,a++).trim();if(!Object.hasOwn(t,o)){let n=e.charCodeAt(a)===34?e.substring(a+1,i-1).trim():e.substring(a,i).trim();zn(t,o,n.indexOf(`%`)===-1?n:Nh(n))}r=i+1}return t}const Nh=e=>{try{return decodeURIComponent(e)}catch{return e}},Ph=/*#__PURE__*/ new WeakMap,Fh=e=>{if(Ph.has(e))return Ph.get(e);throw Error(`Unable to get redacted value`+(e.label?` with label: "${e.label}"`:``))},Ih=`~effect/Redacted`,Lh=e=>P(e,Ih),Rh=(e,t)=>{let n=Object.create(zh);return t?.label&&(n.label=t.label),Ph.set(n,e),n},zh={[Ih]:{_A:e=>e},label:void 0,...Zn,toJSON(){return this.toString()},toString(){return`<redacted${Et(this.label)?`:`+this.label:``}>`},[Ut](){return Wt(Ph.get(this))},[cn](e){return Lh(e)&&ln(Ph.get(this),Ph.get(e))}},Bh=Fh,Vh=e=>Rr((t,n)=>e(Bh(t),Bh(n))),Hh=/*#__PURE__*/ Symbol.for(`~effect/http/Headers`),Uh=/*#__PURE__*/ Object.defineProperties(/*#__PURE__*/ Object.create(null),{[Hh]:{value:Hh},[yn]:{value(e){return eg(this,Wi(e,ng))}},toJSON:{value(){return bn(this)}},[cn]:{value(e){return Gh(this,e)}},[Ut]:{value(){return Qt(this)}},toString:{value:Nn.toString},[jn]:{value:Nn[jn]}}),Wh=e=>Object.assign(Object.create(Uh),e),Gh=/*#__PURE__*/ ya(/*#__PURE__*/ Br()),Kh=/*#__PURE__*/ Object.create(Uh),qh=e=>{if(e===void 0)return Kh;if(Symbol.iterator in e){let t=Object.create(Uh);for(let[n,r]of e)t[n.toLowerCase()]=r;return t}let t=Object.create(Uh);for(let[n,r]of Object.entries(e))Array.isArray(r)?t[n.toLowerCase()]=r.join(`, `):r!==void 0&&(t[n.toLowerCase()]=r);return t},Jh=e=>Object.setPrototypeOf(e,Uh),Yh=/*#__PURE__*/ M(3,(e,t,n)=>{let r=Wh(e);return r[t.toLowerCase()]=n,r}),Xh=/*#__PURE__*/ M(2,(e,t)=>Wh({...e,...qh(t)})),Zh=/*#__PURE__*/ M(2,(e,t)=>{let n=Wh(e);return Object.assign(n,t),n}),Qh=/*#__PURE__*/ M(2,(e,t)=>{let n=Wh(e);return delete n[t.toLowerCase()],n}),$h=/*#__PURE__*/ M(2,(e,t)=>{let n=Wh(e);for(let e of t)delete n[e.toLowerCase()];return n}),eg=/*#__PURE__*/ M(2,(e,t)=>{let n={...e},r=t=>{if(typeof t==`string`){let r=t.toLowerCase();r in e&&(n[r]=Rh(e[r]))}else for(let r in e)r.search(t)!==-1&&(n[r]=Rh(e[r]))};if(Array.isArray(t))for(let e=0;e<t.length;e++)r(t[e]);else r(t);return n}),tg=(e,t)=>{for(let n=0;n<t.length;n++){let r=t[n];if(typeof r==`string`){if(r.toLowerCase()===e.toLowerCase())return!0}else if(e.search(r)!==-1)return!0}return!1},ng=/*#__PURE__*/ Xi(`effect/Headers/CurrentRedactedNames`,{defaultValue:()=>[`authorization`,`cookie`,`set-cookie`,`x-api-key`,`AWSAccessKeyId`,`Signature`,`sig`,`X-Goog-Signature`]}),rg=`~effect/http/UrlParams`,ig=e=>P(e,rg),ag={...Zn,[rg]:rg,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:`UrlParams`,params:Object.fromEntries(this.params)}},[cn](e){return lg(this,e)},[Ut](){return en(this.params.flat())}},og=e=>{let t=Object.create(ag);return t.params=e,t},sg=e=>{if(ig(e))return e;let t=cg(e),n=[];for(let e=0;e<t.length;e++)if(Array.isArray(t[e][0])){let[r,i]=t[e];n.push([`${r[0]}[${r.slice(1).join(`][`)}]`,i])}else n.push(t[e]);return og(n)},cg=e=>{let t=typeof e[Symbol.iterator]==`function`?xa(e):Object.entries(e),n=[];for(let[e,r]of t)if(Array.isArray(r))for(let t=0;t<r.length;t++)r[t]!==void 0&&n.push([e,String(r[t])]);else if(typeof r==`object`&&r){let t=cg(r);for(let[r,i]of t)n.push([[e,...typeof r==`string`?[r]:r],i])}else r!==void 0&&n.push([e,String(r)]);return n},lg=/*#__PURE__*/ Rr((e,t)=>ug(e.params,t.params)),ug=/*#__PURE__*/ Pa(/*#__PURE__*/ la([/*#__PURE__*/ Br(),/*#__PURE__*/ Br()])),dg=/*#__PURE__*/ og([]),fg=/*#__PURE__*/ M(2,(e,t)=>{let n=sg(t).params.slice(),r=/* @__PURE__ */ new Set;for(let e=0;e<n.length;e++)r.add(n[e][0]);for(let t=0;t<e.params.length;t++)r.has(e.params[t][0])||n.push(e.params[t]);return og(n)}),pg=e=>new URLSearchParams(sg(e).params).toString(),mg=e=>{let t={};for(let[n,r]of e.params)if(!Object.hasOwn(t,n))zn(t,n,r);else{let e=t[n];typeof e==`string`?zn(t,n,[e,r]):e.push(r)}return t};function hg(e){return e.checks?e.checks[e.checks.length-1].annotations:e.annotations}function gg(e){return t=>hg(t)?.[e]}const _g=`~structural`,vg=`~identifier`,yg=`~sentinels`,bg=`~constructor`,xg=[`title`,`description`,`default`,`examples`,`readOnly`,`writeOnly`,`format`,`contentEncoding`,`contentMediaType`,`contentSchema`],Sg=/*#__PURE__*/ gg(`identifier`),Cg=/*#__PURE__*/ gg(vg),wg=/*#__PURE__*/ gg(`description`),Tg=/*#__PURE__*/ yt(e=>{let t=hg(e)?.identifier;return typeof t==`string`?t:e.getExpected(Tg)}),Eg=/*#__PURE__*/ new Set([yg,_g,`representation`,`arbitraryConstraint`,`toJsonSchema`,`toCode`,`toEquivalence`,`toFormatter`,`toCodec`,`toCodecJson`,`toCodecStringTree`,`toCodecIso`,`toCodecArbitrary`]),Dg=/*#__PURE__*/ Symbol(),Og=Uu,kg=/*#__PURE__*/ Og(Dg),Ag=/*#__PURE__*/ Og(Dg),jg=e=>e===Dg?di():fi(e),Mg=e=>e._tag===`None`?kg:Og(e.value),Ng=`~effect/SchemaIssue/Issue`;function Pg(e){return P(e,Ng)&&e[Ng]===Ng}function Fg(e){return Object.hasOwn(e,`input`)}var Ig=class{[Ng]=Ng;constructor(e,t){t?.reportInput===!0&&e!==Dg&&(this.input=e)}};const Lg=class extends Ig{_tag=`Filter`;filter;issue;constructor(e,t,n,r){super(n,r),this.filter=e,this.issue=t}},Rg=class extends Ig{_tag=`Encoding`;ast;issue;constructor(e,t,n,r){super(n,r),this.ast=e,this.issue=t}},zg=class extends Ig{_tag=`Pointer`;path;issue;constructor(e,t){super(),this.path=e,this.issue=t}},Bg=class extends Ig{_tag=`MissingKey`;annotations;constructor(e){super(),this.annotations=e}},Vg=class extends Ig{_tag=`UnexpectedKey`;ast;constructor(e,t,n){super(t,n),this.ast=e}},Hg=class extends Ig{_tag=`Composite`;ast;issues;constructor(e,t,n,r){super(n,r),this.ast=e,this.issues=t}},Ug=class extends Ig{_tag=`InvalidType`;ast;constructor(e,t,n){super(t,n),this.ast=e}},Wg=class extends Ig{_tag=`InvalidValue`;annotations;constructor(e,t,n){super(t,n),this.annotations=e}};function Gg(e,t,n,r,i){return new Hg(e,[new zg([t],n)],r,i)}const Kg=class extends Ig{_tag=`Forbidden`;annotations;constructor(e,t,n){super(t,n),this.annotations=e}},qg=class extends Ig{_tag=`AnyOf`;ast;issues;constructor(e,t,n,r){super(n,r),this.ast=e,this.issues=t}},Jg=class extends Ig{_tag=`OneOf`;ast;successes;constructor(e,t,n,r){super(n,r),this.ast=e,this.successes=t}};function Yg(e,t,n){if(Pg(e))return e;if(typeof e==`string`)return new Wg({message:e},t,n);let r=typeof e.issue==`string`?new Wg({message:e.issue},t,n):e.issue;return new zg(e.path,r)}function Xg(e,t,n){if(e!==void 0)return typeof e==`boolean`?e?void 0:new Wg(void 0,t,n):Yg(e,t,n)}function Zg(e,t,n,r){return Array.isArray(t)?Ta(t)?t.length===1?Yg(t[0],n,r):new Hg(e,Na(t,e=>Yg(e,n,r)),n,r):void 0:Xg(t,n,r)}const Qg=e=>{let t=l_(e);if(t!==void 0)return t;switch(e._tag){case`InvalidType`:return r_(Tg(e.ast),e);case`InvalidValue`:{let t=n_(e);if(t!==void 0)return r_(t,e);let n=t_(e);return n===void 0?`Expected a valid value`:`Invalid data ${n}`}case`MissingKey`:return`Missing key`;case`UnexpectedKey`:{let t=t_(e);return t===void 0?`Expected no excess property`:`Unexpected key with value ${t}`}case`Forbidden`:return`Forbidden operation`;case`OneOf`:{let t=t_(e);return t===void 0?`Expected exactly one member to match`:`Expected exactly one member to match the input ${t}`}}},$g=e=>l_(e.issue)??l_(e);function e_(e){return t=>({issues:i_(t,[],e?.leafHook??Qg,e?.checkHook??$g)})}function t_(e){return Fg(e)?Tn(e.input):void 0}function n_(e){let t=e.annotations?.expected;return typeof t==`string`?t:void 0}function r_(e,t){let n=t_(t);return n===void 0?`Expected ${e}`:`Expected ${e}, got ${n}`}function i_(e,t,n,r){switch(e._tag){case`Filter`:{let i=r(e);if(i!==void 0)return[{path:t,message:i}];if(e.issue._tag!==`InvalidValue`)return i_(e.issue,t,n,r);let a=n_(e.issue);return[{path:t,message:a===void 0?r_(a_(e.filter),e):r_(a,e.issue)}]}case`Encoding`:return i_(e.issue,t,n,r);case`Pointer`:return i_(e.issue,[...t,...e.path],n,r);case`Composite`:return e.issues.flatMap(e=>i_(e,t,n,r));case`AnyOf`:return e.issues.length===0?[{path:t,message:l_(e)??r_(Tg(e.ast),e)}]:e.issues.flatMap(e=>i_(e,t,n,r));default:return[{path:t,message:n(e)}]}}function a_(e){let t=e.annotations?.expected;if(typeof t==`string`)return t;switch(e._tag){case`Filter`:return`<filter>`;case`FilterGroup`:return e.checks.map(e=>a_(e)).join(` & `)}}function o_(){return e=>c_(e,``)}const s_=/*#__PURE__*/ o_();function c_(e,t){let n;switch(e._tag){case`Filter`:{let r=$g(e);if(r!==void 0)n=r;else{if(e.issue._tag!==`InvalidValue`)return c_(e.issue,t);let r=n_(e.issue);n=r===void 0?r_(a_(e.filter),e):r_(r,e.issue)}break}case`Encoding`:return c_(e.issue,t);case`Pointer`:return c_(e.issue,t+Dn(e.path));case`Composite`:case`AnyOf`:if(e._tag===`Composite`||e.issues.length>0)return e.issues.map(e=>c_(e,t)).join(`
16
- `);n=l_(e)??r_(Tg(e.ast),e);break;default:n=Qg(e)}return t?`${n}\n at ${t}`:n}function l_(e){if(e._tag===`Pointer`)return;if(e._tag===`Encoding`)return l_(e.issue);let t=(e._tag===`Filter`?e.filter.annotations:`annotations`in e?e.annotations:e.ast.annotations)?.[e._tag===`MissingKey`?`messageMissingKey`:e._tag===`UnexpectedKey`?`messageUnexpectedKey`:`message`];if(typeof t==`string`)return t}function u_(e){let t;for(let n of e.reasons){if(!Eu(n)||!Pg(n.error))return;t??=n.error}return t}function d_(e,t){let n=u_(e);if(n===void 0)throw Error(t,{cause:e});return n}const f_=(e,t,n)=>{switch(e._tag){case`Passthrough`:return I(t);case`Transform`:return I(xi(t,e.transform));case`TransformOptional`:return I(e.transform(t));case`TransformEffect`:return pi(t)?jf:Zp(e.transform(t.value,n),fi);case`TransformOptionalEffect`:return e.transform(t,n)}},p_=e=>Object.assign(Object.create(dt),e),m_=(e,t)=>w_((n,r)=>em(f_(e,n,r),e=>f_(t,e,r))),h_=/*#__PURE__*/ M(2,(e,t)=>{if(e._tag===`Passthrough`)return t;if(t._tag===`Passthrough`)return e;switch(e._tag){case`Transform`:switch(t._tag){case`Transform`:return x_(n=>t.transform(e.transform(n)));case`TransformOptional`:return C_(n=>t.transform(xi(n,e.transform)));case`TransformEffect`:return S_((n,r)=>t.transform(e.transform(n),r));case`TransformOptionalEffect`:return m_(e,t)}case`TransformOptional`:switch(t._tag){case`Transform`:return C_(n=>xi(e.transform(n),t.transform));case`TransformOptional`:return C_(n=>t.transform(e.transform(n)));case`TransformEffect`:case`TransformOptionalEffect`:return m_(e,t)}case`TransformEffect`:switch(t._tag){case`Transform`:return S_((n,r)=>Zp(e.transform(n,r),t.transform));case`TransformOptional`:case`TransformOptionalEffect`:return m_(e,t);case`TransformEffect`:return S_((n,r)=>em(e.transform(n,r),e=>t.transform(e,r)))}case`TransformOptionalEffect`:return m_(e,t)}});function g_(e){return w_((t,n)=>B(e(t,n)))}function __(e){return g_((t,n)=>{let r={message:e(t)};return mi(t)?new Kg(r,t.value,n):new Kg(r)})}const v_=/*#__PURE__*/ __(()=>`Encoding is not supported`),y_=/*#__PURE__*/ p_({_tag:`Passthrough`});function b_(){return y_}function x_(e){return p_({_tag:`Transform`,transform:e})}function S_(e){return p_({_tag:`TransformEffect`,transform:e})}function C_(e){return p_({_tag:`TransformOptional`,transform:e})}function w_(e){return p_({_tag:`TransformOptionalEffect`,transform:e})}function T_(e){return w_(t=>{let n=qee(t,Nt);return mi(n)?I(n):Zp(e,fi)})}function E_(){return x_(globalThis.String)}function D_(){return x_(globalThis.Number)}function O_(){return x_(Fre)}function k_(e){return S_((t,n)=>Rf({try:()=>JSON.parse(t,e?.reviver),catch:()=>new Wg({expected:`a valid JSON string`},t,n)}))}function A_(e){return S_((t,n)=>Rf({try:()=>{let n=JSON.stringify(t,e?.replacer,e?.space);if(n===void 0)throw TypeError(`Value cannot be represented as JSON`);return n},catch:()=>new Wg({expected:`a JSON-serializable value`},t,n)}))}function j_(e){let t=e?.separator??`,`;return x_(e=>e===``?[]:e.split(t))}function M_(){return x_(Xm)}function N_(){return S_((e,t)=>Qp(Bf(Zm(e)),()=>new Wg({expected:`a valid Base64 string`},e,t)))}const P_=class extends ft{_tag=`Middleware`;decode;encode;constructor(e,t){super(),this.decode=e,this.encode=t}flip(){return new P_(this.encode,this.decode)}},F_=`~effect/SchemaTransformation/Transformation`,I_=class extends ft{[F_]=F_;_tag=`Transformation`;decode;encode;constructor(e,t){super(),this.decode=e,this.encode=t}flip(){return new I_(this.encode,this.decode)}};function L_(e){return P(e,F_)&&e[F_]===F_}const R_=e=>L_(e)?e:new I_(e.decode,e.encode);function z_(e){return new I_(S_(e.decode),S_(e.encode))}function B_(e){return new I_(x_(e.decode),x_(e.encode))}function V_(){return new I_(O_(),b_())}const H_=/*#__PURE__*/ new I_(/*#__PURE__*/ b_(),/*#__PURE__*/ b_());function U_(){return H_}const W_=/*#__PURE__*/ new I_(/*#__PURE__*/ D_(),/*#__PURE__*/ E_()),G_=e=>zt(e)&&typeof e.message==`string`,K_=e=>{let t=Object.hasOwn(e,`cause`)?Error(e.message,{cause:X_(e.cause)}):Error(e.message);return typeof e.name==`string`&&e.name!==`Error`&&(t.name=e.name),typeof e.stack==`string`&&(t.stack=e.stack),t},q_=e=>{try{let t=An(e);return t===void 0?Tn(e):JSON.parse(t)}catch{return Tn(e)}},J_=(e,t,n)=>{let r={name:e.name,message:typeof e.message==`string`?e.message:``};return t?.includeStack&&typeof e.stack==`string`&&(r.stack=e.stack),!t?.excludeCause&&e.cause!==void 0&&(r.cause=n(e.cause)),r},Y_=e=>{let t=/* @__PURE__ */ new WeakSet,n=r=>{if(yee(r)){if(t.has(r))return`[Circular]`;t.add(r);let i=J_(r,e,n);return t.delete(r),i}return q_(r)};return n},X_=e=>G_(e)?K_(e):e,Z_=e=>B_({decode:X_,encode:Y_(e)}),Q_=/*#__PURE__*/ new I_(/*#__PURE__*/ N_(),/*#__PURE__*/ M_());function $_(e){return new I_(k_(e??{}),A_(e))}function ev(e){return t=>t._tag===e}const tv=/*#__PURE__*/ ev(`Declaration`),nv=/*#__PURE__*/ ev(`Null`),rv=/*#__PURE__*/ ev(`Undefined`),iv=/*#__PURE__*/ ev(`Void`),av=/*#__PURE__*/ ev(`Never`),ov=/*#__PURE__*/ ev(`Literal`),sv=/*#__PURE__*/ ev(`UniqueSymbol`),cv=/*#__PURE__*/ ev(`Enum`),lv=/*#__PURE__*/ ev(`Arrays`),uv=/*#__PURE__*/ ev(`Objects`),dv=/*#__PURE__*/ ev(`Union`),fv=/*#__PURE__*/ ev(`Suspend`),pv=class{to;transformation;constructor(e,t){this.to=e,this.transformation=t}},mv={},hv=class{isOptional;isMutable;constructorDefault;annotations;constructor(e,t,n=void 0,r=void 0){this.isOptional=e,this.isMutable=t,this.constructorDefault=n,this.annotations=r}},gv=`~effect/Schema`;var _v=class{[gv]=gv;annotations;checks;encoding;context;constructor(e=void 0,t=void 0,n=void 0,r=void 0){this.annotations=e,this.checks=t,this.encoding=n,this.context=r}toString(){return`<${this._tag}>`}};const vv=class extends _v{_tag=`Declaration`;typeParameters;run;encodingChecks;encodingRun;constructor(e,t,n,r,i,a,o,s){super(n,r,i,a),this.typeParameters=e,this.run=t,this.encodingChecks=o,this.encodingRun=s}getParser(){let e;return(t,n)=>t===Dg?kg:(e??=this.run(this.typeParameters))(t,this,n)}_rebuild(e,t,n,r,i){let a=Dy(this.typeParameters,e);return a===this.typeParameters&&t===this.checks&&n===this.encodingChecks&&r===this.run&&i===this.encodingRun?this:new vv(a,r,this.annotations,t,void 0,this.context,n,i)}recur(e){return this._rebuild(e,this.checks,this.encodingChecks,this.run,this.encodingRun)}flip(e){return this._rebuild(e,this.encodingChecks,this.checks,this.encodingRun??this.run,this.run)}getExpected(){let e=this.annotations?.expected;return typeof e==`string`?e:`<Declaration>`}},yv=/*#__PURE__*/ new class extends _v{_tag=`Null`;getParser(){return Ly(this,null)}getExpected(){return`null`}},pie=class extends _v{_tag=`Undefined`;getParser(){return Ly(this,void 0)}toCodecJson(){return gy(this,[bv])}getExpected(){return`undefined`}},bv=/*#__PURE__*/ new pv(yv,/*#__PURE__*/ new I_(/*#__PURE__*/ x_(()=>void 0),/*#__PURE__*/ x_(()=>null))),xv=/*#__PURE__*/ new pie,mie=/*#__PURE__*/ new class extends _v{_tag=`Void`;getParser(){let e=Og(void 0);return t=>t===Dg?kg:e}toCodecJson(){return gy(this,[bv])}getExpected(){return`void`}},hie=/*#__PURE__*/ new class extends _v{_tag=`Never`;getParser(){return Ry(this,Lt)}getExpected(){return`never`}},gie=/*#__PURE__*/ new class extends _v{_tag=`Any`;getParser(){return Ry(this,Rt)}getExpected(){return`any`}},Sv=/*#__PURE__*/ new class extends _v{_tag=`Unknown`;getParser(){return Ry(this,Rt)}getExpected(){return`unknown`}};function Cv(e){return typeof e==`number`?`parts[${e}]`:e}function wv(e,t,n){if(n.has(e))return!0;if(e.encoding)throw Error(`TemplateLiteral parts cannot have an encoding at ${Cv(t)}`);let r;switch(e._tag){case`String`:case`Number`:case`BigInt`:r=!0;break;case`Literal`:r=!e.checks;break;case`TemplateLiteral`:{let i=Cv(t);r=!e.checks&&e.parts.every((e,t)=>wv(e,`${i}.parts[${t}]`,n));break}case`Union`:{let i=Cv(t);r=!e.checks&&e.types.every((e,t)=>wv(e,`${i}.types[${t}]`,n));break}default:return!1}return r&&n.add(e),r}const _ie=class extends _v{_tag=`TemplateLiteral`;parts;encodedParts;literals;suffixLengths;constructor(e,t,n,r,i){super(t,n,r,i);let a=[],o=[],s=/* @__PURE__ */ new Set;for(let t=0;t<e.length;t++){let n=e[t];if(!wv(n,t,s))throw Error(`Invalid TemplateLiteral part ${n._tag}`);a.push(n),o.push(n._tag===`Literal`?globalThis.String(n.literal):void 0)}let c=Array(a.length+1);c[a.length]=0;for(let e=a.length-1;e>=0;e--)c[e]=c[e+1]+(o[e]?.length??0);this.parts=e,this.encodedParts=a,this.literals=o,this.suffixLengths=c}getParser(e){let t=new Av(!1,this.parts.map(Hy),[]),n=e(Ay(Dv,t,vie(this)));return(e,t)=>{if(e===Dg)return kg;let r=n(e,t);return r._tag===`Success`?Ag:$p(r,{onSuccess:()=>e,onFailure:n=>new Hg(this,[n],e,t)})}}getExpected(){return`string`}matchPart(e,t){return zy(this,e,t)===void 0?void 0:e}};function vie(e){return new I_(S_((t,n)=>{let r=zy(e,t,n);return r?I(r):B(new Wg({expected:`a string matching template literal parts`},t,n))}),x_(e=>e.join(``)))}const Tv=class extends _v{_tag=`Literal`;literal;constructor(e,t,n,r,i){if(super(t,n,r,i),typeof e==`number`&&!globalThis.Number.isFinite(e))throw Error(`A numeric literal must be finite, got ${Tn(e)}`);this.literal=e}getParser(){return Ly(this,this.literal)}matchPart(e,t){return e===globalThis.String(this.literal)?this.literal:void 0}toCodecJson(){return typeof this.literal==`bigint`?Ev(this):this}toCodecStringTree(){return typeof this.literal==`string`?this:Ev(this)}getExpected(){return typeof this.literal==`string`?JSON.stringify(this.literal):globalThis.String(this.literal)}};function Ev(e){let t=globalThis.String(e.literal);return gy(e,[new pv(new Tv(t),new I_(x_(()=>e.literal),x_(()=>t)))])}const Dv=/*#__PURE__*/ new class extends _v{_tag=`String`;getParser(){return Ry(this,Et)}matchPart(e,t){let n=this.checks;return n&&!t.disableChecks&&Gy(n,e,void 0,this,t)?void 0:e}getExpected(){return`string`}},yie=class extends _v{_tag=`Number`;getParser(){return Ry(this,Dt)}matchKey(e,t){return this._match(Uie,e,t)}matchPart(e,t){return this._match(Uy,e,t)}_match(e,t,n){if(!e.test(t))return;let r=globalThis.Number(t);return n.disableChecks||!this.checks?r:Gy(this.checks,r,void 0,this,n)?void 0:r}toCodecJson(){return this.checks&&(Ov(this.checks,`effect/schema/isFinite`)||Ov(this.checks,`effect/schema/isInt`))?this:gy(this,[jie])}toCodecStringTree(){return this.toCodecJson()===this?gy(this,[Gie]):gy(this,[Kie])}getExpected(){return`number`}};function Ov(e,t){return e.some(e=>e.annotations?.representation?.id===t||e._tag===`FilterGroup`&&Ov(e.checks,t))}const kv=/*#__PURE__*/ new yie,bie=/*#__PURE__*/ new class extends _v{_tag=`Boolean`;getParser(){return Ry(this,Ot)}getExpected(){return`boolean`}},Av=class extends _v{_tag=`Arrays`;isMutable;elements;rest;encodingChecks;constructor(e,t,n,r,i,a,o,s){super(r,i,a,o),this.isMutable=e,this.elements=t,this.rest=n,this.encodingChecks=s;let c=!1;for(let e=0;e<t.length;e++)if(jy(t[e]))c=!0;else if(c)throw Error(`A required element cannot follow an optional element. ts(1257)`);if(c&&n.length>1)throw Error(`A required element cannot follow an optional element. ts(1257)`);for(let e=1;e<n.length;e++)if(jy(n[e]))throw Error(`An optional element cannot follow a rest element. ts(1266)`)}getParser(e,t=e){let n=this,r,i,a=n.elements.length,o=Math.max(0,n.rest.length-1);function s(e,t){return t<a?r[t]:t>=e?i[t-e+1]:i[0]}let c=e=>{let{input:t,len:r,options:i}=e;if(n.rest.length===0&&r>a)for(let o=a;o<r;o++){let r=new Vg(n,t[o],i),a=new zg([o],r);if(i.errors===`all`)e.issues?e.issues.push(a):e.issues=[a];else return B(new Hg(n,[a],t,i))}return e.issues?B(new Hg(n,e.issues,t,i)):Og(e.output)},l=(e,t)=>{let r=e.length,i={ast:n,getParser:s,input:e,len:r,tailThreshold:Math.max(a,r-o),output:new globalThis.Array(r),issues:void 0,options:t},u=n.rest.length===0?a:Math.max(r,a+o),d=t.concurrency===void 0?1:Ol(t.concurrency),f=d===1?Sie(i,e,0,u):Cie(i,e,{concurrency:d,end:u});if(!f)return c(i);if(wc(f))return em(f,()=>c(i));let p=!0;return Mf(()=>p?(p=!1,V(f,()=>c(i))):l(e,t))};return(e,a)=>{if(e===Dg)return kg;try{return Array.isArray(e)?(r||(r=n.elements.map(e=>({ast:e,parser:t(e)})),i=n.rest.map(e=>({ast:e,parser:t(e)}))),l(e,a)):B(new Ug(n,e,a))}catch(e){return Lf(e)}}}_rebuild(e,t,n){let r=Dy(this.elements,e),i=Dy(this.rest,e);return r===this.elements&&i===this.rest&&t===this.checks&&n===this.encodingChecks?this:new Av(this.isMutable,r,i,this.annotations,t,void 0,this.context,n)}recur(e){return this._rebuild(e,this.checks,this.encodingChecks)}flip(e){return this._rebuild(e,this.encodingChecks,this.checks)}getExpected(){return`array`}};function xie(e,t,n,r){if(n._tag===`Failure`)return Mv(e,e.ast,r,n);let i=n===Ag?t:n[Gn];if(i!==Dg)e.output[r]=i;else{let t=e.getParser(e.tailThreshold,r);if(jy(t.ast))return;let n=new zg([r],new Bg(t.ast.context?.annotations));if(e.options.errors===`all`)e.issues?e.issues.push(n):e.issues=[n];else return Gu(new Hg(e.ast,[n],e.input,e.options))}}const jv={onItem(e,t,n){let r=n<e.len?t:Dg;return e.getParser(e.tailThreshold,n).parser(r,e.options)},step:xie},Sie=/*#__PURE__*/ kl()(jv),Cie=/*#__PURE__*/ jl()(jv),Mv=(e,t,n,r)=>{if(r.cause.reasons.length===0)return r;let i=u_(r.cause);if(i===void 0)return Wu(ju(r.cause,r=>new Hg(t,[new zg([n],r)],e.input,e.options)));let a=new zg([n],i);if(e.options.errors===`all`)e.issues?e.issues.push(a):e.issues=[a];else return Gu(new Hg(t,[a],e.input,e.options))},Nv=`[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?`;function Pv(e,t,n=mv){let r,i;function a(t){switch(t._tag){case`String`:case`TemplateLiteral`:return(r??=Object.keys(e)).filter(e=>t.matchPart(e,n)!==void 0);case`Number`:return(r??=Object.keys(e)).filter(e=>t.matchKey(e,n)!==void 0);case`Symbol`:return(i??=Object.getOwnPropertySymbols(e)).filter(r=>Object.prototype.propertyIsEnumerable.call(e,r)&&t.matchKey(r,n)!==void 0);case`Union`:return[...new Set(t.types.flatMap(a))];default:return[]}}return a(By(Py(t)))}const Fv=class{name;type;constructor(e,t){this.name=e,this.type=t}};function Iv(e){switch(e._tag){case`String`:case`Number`:case`Symbol`:case`TemplateLiteral`:return!0;case`Union`:return e.types.every(Iv);default:return!1}}function Lv(e){let t=vy(e);switch(t._tag){case`String`:case`Number`:case`Symbol`:case`TemplateLiteral`:return!0;case`Union`:return t.types.every(Lv);default:return!1}}function wie(e){return Iv(e)&&Lv(e)}const Rv=class{parameter;type;constructor(e,t){if(!wie(e))throw Error(`Invalid index signature parameter ${e._tag}`);if(this.parameter=e,this.type=t,jy(t)&&!Iy(t))throw Error("Cannot use `Schema.optionalKey` with index signatures, use `Schema.optional` instead.")}},zv=class extends _v{_tag=`Objects`;propertySignatures;indexSignatures;encodingChecks;constructor(e,t,n,r,i,a,o){super(n,r,i,a),this.propertySignatures=e,this.indexSignatures=t,this.encodingChecks=o}getParser(e,t=e){let n=this,r=n.propertySignatures.length,i=n.indexSignatures.length;if(!r&&!i)return Ry(n,It);let a,o,s=()=>(a||(a=n.propertySignatures.map(e=>({parser:t(e.type),name:e.name,type:e.type})),o=i?n.indexSignatures.map(n=>({is:n,parserKey:e(By(n.parameter)),parserValue:t(n.type)})):void 0),a),c=()=>{let e=new Set(n.propertySignatures.map(e=>typeof e.name==`number`?globalThis.String(e.name):e.name)),t=(t,i,a,o,s)=>{if(s._tag===`Failure`)return Mv(t,n,i,s)??Ju;let c=s===Ag?o:s[Gn];if(a!==Dg&&c!==Dg){if(r&&(e.has(i)||e.has(typeof a==`number`?globalThis.String(a):a)))return Ju;zn(t.out,a,c)}return Ju},c=(e,r,i,a)=>{if(!a){let t=i.parserKey(r,e.options);if(!wc(t))return V(Wf(t),t=>c(e,r,i,t));a=t}if(a._tag===`Failure`)return Mv(e,n,r,a)??Ju;let o=a===Ag?r:a[Gn],s=e.input[r],l=i.parserValue(s,e.options);return wc(l)?t(e,r,o,s,l):V(Wf(l),n=>t(e,r,o,s,n))},l=(e,n,r)=>{let i=e.input[n],a=r.parserValue(i,e.options);return wc(a)?t(e,n,n,i,a):V(Wf(a),r=>t(e,n,n,i,r))},u=i?jl()({onItem:(e,[t,n])=>n.is.parameter===Dv?l(e,t,n):c(e,t,n),step:(e,t,n)=>n._tag===`Failure`?n:void 0}):void 0;return nm(function*(t,d){if(t===Dg)return Dg;if(typeof t!=`object`||!t||Array.isArray(t))return yield*B(new Ug(n,t,d));s();let f=t,p={},m={ast:n,input:f,out:p,issues:void 0,options:d},h=d.errors===`all`,g=d.onExcessProperty===`error`,_=d.concurrency===void 0?1:Ol(d.concurrency),v=i&&g?n.indexSignatures.map(e=>Pv(f,e.parameter,d)):void 0;if(g){let r=v?new Set(e):e;if(v)for(let e of v)for(let t of e)r.add(t);let i=Reflect.ownKeys(f);for(let e=0;e<i.length;e++){let a=i[e];if(!r.has(a)&&Object.prototype.propertyIsEnumerable.call(f,a)){let e=new Vg(n,f[a],d),r=new zg([a],e);if(h){m.issues?m.issues.push(r):m.issues=[r];continue}return yield*B(new Hg(n,[r],t,d))}}}if(r){let e=_===1?Hv(m,a):Tie(m,a,{concurrency:_});e&&(yield*e)}if(i&&_===1)for(let e=0;e<i;e++){let t=o[e],n=t.is.parameter===Dv?l:c,r=v?.[e]??(t.is.parameter===Dv?Object.keys(f):Pv(f,t.is.parameter,d));for(let e=0;e<r.length;e++){let i=n(m,r[e],t);if(!wc(i))yield*i;else if(i._tag===`Failure`)return yield*i}}else if(u){let e=ja();for(let t=0;t<i;t++){let n=o[t],r=v?.[t]??(n.is.parameter===Dv?Object.keys(f):Pv(f,n.is.parameter,d));for(let t=0;t<r.length;t++)e.push([r[t],n])}let t=u(m,e,{concurrency:_});t&&(yield*t)}return m.issues?yield*B(new Hg(n,m.issues,t,d)):p})};if(i)return c();let l,u=(e,t,n)=>{let r=a[t];return V(Wf(n),n=>{let i=Bv(e,r,n);if(i)return i;let o=()=>Og(e.out),s=Hv(e,a.slice(t+1));return s?em(s,o):o()})};return(e,t)=>{if(e===Dg)return kg;if(t.errors===`all`||t.onExcessProperty!==void 0||t.concurrency!==void 0&&Ol(t.concurrency)!==1)return(l??=c())(e,t);if(typeof e!=`object`||!e||Array.isArray(e))return B(new Ug(n,e,t));let r=s(),i=e,a={},o={ast:n,input:i,out:a,issues:void 0,options:t};try{for(let e=0;e<r.length;e++){let n=r[e],s=n.name,c=ey(i,s),l=c?i[s]:Dg,d=n.parser(l,t);if(!wc(d))return u(o,e,d);if(d===Ag){c&&zn(a,s,l);continue}let f=Bv(o,n,d);if(f)return f}}catch(e){return Lf(e)}return Og(a)}}_rebuild(e,t,n,r){let i=Dy(this.propertySignatures,t=>{let n=e(t.type);return n===t.type?t:new Fv(t.name,n)}),a=Dy(this.indexSignatures,n=>{let r=t(n.parameter),i=e(n.type);return r===n.parameter&&i===n.type?n:new Rv(r,i)});return i===this.propertySignatures&&a===this.indexSignatures&&n===this.checks&&r===this.encodingChecks?this:new zv(i,a,this.annotations,n,void 0,this.context,r)}flip(e){return this._rebuild(e,e,this.encodingChecks,this.checks)}recur(e,t=e){return this._rebuild(e,t,this.checks,this.encodingChecks)}getExpected(){return this.propertySignatures.length===0&&this.indexSignatures.length===0?`object | array`:`object`}};function Bv(e,t,n){if(n._tag===`Failure`)return Mv(e,e.ast,t.name,n);if(n===Ag)return;let r=n[Gn];if(r!==Dg)zn(e.out,t.name,r);else if(delete e.out[t.name],!jy(t.type)){let n=new zg([t.name],new Bg(t.type.context?.annotations));if(e.options.errors===`all`){e.issues?e.issues.push(n):e.issues=[n];return}return Gu(new Hg(e.ast,[n],e.input,e.options))}}const Vv={onItem(e,t){if(!ey(e.input,t.name))return t.parser(Dg,e.options);let n=e.input[t.name];return zn(e.out,t.name,n),t.parser(n,e.options)},step:Bv},Hv=/*#__PURE__*/ kl()(Vv),Tie=/*#__PURE__*/ jl()(Vv);function Uv(e,t){return e?t?[...e,...t]:e:t}function Wv(e,t,n){return new zv(Reflect.ownKeys(e).map(t=>new Fv(t,e[t].ast)),[],n,t)}function Gv(e){return e.ast}function Kv(e,t=void 0){return new Av(!1,e.map(e=>e.ast),[],void 0,t)}function qv(e,t,n){return new ty(e.map(Gv),t,void 0,n)}function Eie(e,t){if(e.encoding||t.some(e=>e.encoding))throw Error(`StructWithRest does not support encodings`);let n=e.propertySignatures,r=e.indexSignatures,i=e.checks;for(let e of t){for(let t of e.propertySignatures)if(n.some(e=>e.name===t.name))throw Error(`Duplicate identifier: ${JSON.stringify(t.name)}. ts(2300)`);n=n.concat(e.propertySignatures),r=r.concat(e.indexSignatures),i=Uv(i,e.checks)}return new zv(n,r,void 0,i)}const Jv=/*#__PURE__*/ bt(e=>{for(;;){if(fv(e))return Sv;let t=e.encoding;if(!t)return e.recur?.(Jv,N)??e;if(t.some(e=>e.transformation._tag===`Middleware`&&e.transformation.decode!==N))return Sv;e=t[t.length-1].to}});function Yv(e){switch(e._tag){case`Null`:return[`null`];case`Undefined`:return[`undefined`];case`String`:case`TemplateLiteral`:return[`string`];case`Number`:return[`number`];case`Boolean`:return[`boolean`];case`Symbol`:case`UniqueSymbol`:return[`symbol`];case`BigInt`:return[`bigint`];case`Arrays`:return[`array`];case`ObjectKeyword`:return[`object`,`array`,`function`];case`Objects`:return e.propertySignatures.length||e.indexSignatures.length?[`object`]:[`string`,`number`,`boolean`,`symbol`,`bigint`,`object`,`array`,`function`];case`Enum`:return Array.from(new Set(e.enums.map(([,e])=>typeof e)));case`Literal`:return[typeof e.literal];case`Union`:return Array.from(new Set(e.types.flatMap(Yv)));default:return[`null`,`undefined`,`string`,`number`,`boolean`,`symbol`,`bigint`,`object`,`array`,`function`]}}function Xv(e){switch(e._tag){default:return[];case`Declaration`:{let t=e.annotations?.[yg];return Array.isArray(t)?t:[]}case`Objects`:return e.propertySignatures.flatMap(e=>{let t=e.type;if(!jy(t)){if(ov(t))return[{key:e.name,literal:t.literal}];if(sv(t))return[{key:e.name,literal:t.symbol}]}return[]});case`Arrays`:return e.elements.flatMap((e,t)=>{if(!jy(e)){if(ov(e))return[{key:t,literal:e.literal}];if(sv(e))return[{key:t,literal:e.symbol}]}return[]});case`Union`:{if(e.types.length===0)return[];let t=e.types.map(e=>Xv(Jv(e)));return t[0].filter(e=>t.every(t=>t.some(t=>t.key===e.key&&t.literal===e.literal)))}case`Suspend`:return Xv(e.thunk())}}const Zv=/*#__PURE__*/ new WeakMap,Qv=/*#__PURE__*/ Object.freeze([]),$v=e=>e===null?`null`:Array.isArray(e)?`array`:typeof e,ey=(e,t)=>t===`__proto__`?Object.hasOwn(e,t):t in e;function Die(e){let t=Zv.get(e);if(t)return t;let n,r=0,i,a,o=!0,s=[];for(let t=0;t<e.length;t++){let c=e[t],l=Jv(c);if(av(l))continue;if(ov(l)||sv(l)){a??=/* @__PURE__ */ new Map;let e=ov(l)?l.literal:l.symbol;s[t]=e;let n=a.get(e);n||a.set(e,n=[]),n.push(t)}else o=!1;let u=Xv(l);if(u.length){n??=/* @__PURE__ */ new Map,r++;for(let{key:e,literal:r}of u){let i=n.get(e);i||n.set(e,i=[/* @__PURE__ */ new Map,/* @__PURE__ */ new Set]),i[1].add(t);let a=i[0].get(r);a||i[0].set(r,a=/* @__PURE__ */ new Set),a.add(t)}}else{i??={};let e=Yv(l);for(let n of e)(i[n]??=[]).push(t)}}let c={},l=e=>c[e]??=Object.freeze(i?.[e]??Qv);if(o&&a)a.forEach(Object.freeze),t=e=>a.get(e)??Qv;else if(n?.size===1&&!i){let[r,[i]]=n.entries().next().value,a=/* @__PURE__ */ new Map;for(let[e,t]of i)a.set(e,Object.freeze(Array.from(t)));let o=Object.freeze(e.map((e,t)=>t));t=(e,t)=>{if(Vt(e)){let n=ey(e,r)?e[r]:void 0;if(n!==void 0)return a.get(n)??Qv;if(t)return o}return Qv}}else if(n){let e;for(let t of n)(!e||t[1][0].size>e[1][0].size)&&t[1][1].size===r&&(e=t);t=(t,r)=>{let a=$v(t);if(!Vt(t))return l(a);let o=new Set(i?.[a]),s;if(e){let[n,[i]]=e,c=ey(t,n),u=c?t[n]:void 0;if(c&&(!r||u!==void 0)){let e=i.get(u);if(!e)return l(a);for(let t of e)o.add(t);s=n}}if(s===void 0)for(let[e,[i,a]]of n){let n=ey(t,e),s=n?t[e]:void 0;if(n&&(!r||s!==void 0)){let e=i.get(s);if(e)for(let t of e)o.add(t)}else if(r)for(let e of a)o.add(e)}for(let[e,[i,a]]of n){if(e===s)continue;let n=ey(t,e),c=n?t[e]:void 0;if(n&&(!r||c!==void 0)){let e=i.get(c);for(let t of o)a.has(t)&&!e?.has(t)&&o.delete(t)}}return Array.from(o).sort((e,t)=>e-t)}}else t=e=>{let t=l($v(e));return a?t.filter(t=>s[t]===void 0||s[t]===e):t};return Zv.set(e,t),t}const ty=class extends _v{_tag=`Union`;types;options;encodingChecks;constructor(e,t,n,r,i,a,o){super(n,r,i,a),this.types=e,this.options=t,this.encodingChecks=o}getParser(e,t){let n=this,r=t!==void 0,i=[],a=t=>i[t]??=e(n.types[t]),o;return(e,t)=>{if(e===Dg)return kg;let i=(o??=Die(n.types))(e,r);if(i.length===0)return B(new qg(n,[],e,t));if(i.length===1){let r=a(i[0])(e,t);return r._tag===`Success`?r:wc(r)?ny(n,r.cause,e,t):Oie(n,r,e,t)}return ry(n,a,i,e,t)}}_rebuild(e,t,n){let r=Dy(this.types,e);return r===this.types&&t===this.checks&&n===this.encodingChecks?this:new ty(r,this.options,this.annotations,t,void 0,this.context,n)}recur(e){return this._rebuild(e,this.checks,this.encodingChecks)}flip(e){return this._rebuild(e,this.encodingChecks,this.checks)}matchPart(e,t){for(let n of this.types){let r=n.matchPart(e,t);if(r!==void 0)return r}}getExpected(e){let t=this.annotations?.expected;if(typeof t==`string`)return t;if(this.types.length===0)return`never`;let n=this.types.map(t=>{let n=Py(t);switch(n._tag){case`Arrays`:{let t=n.elements.filter(ov);if(t.length>0)return`${oy(n.isMutable)}[ ${t.map(t=>e(t)+sy(t.context?.isOptional)).join(`, `)}, ... ]`;break}case`Objects`:{let t=n.propertySignatures.filter(e=>ov(e.type));if(t.length>0)return`{ ${t.map(t=>`${oy(t.type.context?.isMutable)}${En(t.name)}${sy(t.type.context?.isOptional)}: ${e(t.type)}`).join(`, `)}, ... }`;break}}return e(n)});return Array.from(new Set(n)).join(` | `)}};function ny(e,t,n,r){let i=u_(t);return i?Gu(new qg(e,[i],n,r)):Wu(t)}function Oie(e,t,n,r){return Yf(t,t=>ny(e,t,n,r))}function ry(e,t,n,r,i){let a={ast:e,parser:t,input:r,out:void 0,successes:e.options?.mode===`oneOf`?[]:void 0,issues:void 0,options:i},o=kie(a,n);if(!o)return a.out?a.out:B(new qg(e,a.issues??[],r,i));if(wc(o))return iy(o,a);let s=!0;return Mf(()=>s?(s=!1,iy(o,a)):ry(e,t,n,r,i))}function iy(e,t){return em(e,e=>t.out===Ag?I(t.input):t.out?t.out:B(new qg(t.ast,t.issues??[],t.input,t.options)))}const kie=/*#__PURE__*/ kl()({onItem(e,t){return e.parser(t)(e.input,e.options)},step(e,t,n){if(n._tag===`Failure`){let t=u_(n.cause);if(t===void 0)return n;e.issues?e.issues.push(t):e.issues=[t]}else{if(e.out&&e.successes)return e.successes.push(e.ast.types[t]),Gu(new Jg(e.ast,e.successes,e.input,e.options));if(e.out=n,e.successes)e.successes.push(e.ast.types[t]);else return Ju}}}),ay=/*#__PURE__*/ new ty([/*#__PURE__*/ new Tv(`Infinity`),/*#__PURE__*/ new Tv(`-Infinity`),/*#__PURE__*/ new Tv(`NaN`)]);function oy(e){return e?``:`readonly `}function sy(e){return e?`?`:``}const cy=class extends ft{_tag=`Filter`;run;annotations;aborted;constructor(e,t=void 0,n=!1){super(),this.run=e,this.annotations=t,this.aborted=n}annotate(e){return new cy(this.run,{...this.annotations,...e},this.aborted)}abort(){return new cy(this.run,this.annotations,!0)}and(e,t){return new ly([this,e],t)}},ly=class extends ft{_tag=`FilterGroup`;checks;annotations;constructor(e,t=void 0){super(),this.checks=e,this.annotations=t}annotate(e){return new ly(this.checks,{...this.annotations,...e})}and(e,t){return new ly([this,e],t)}};function uy(e,t,n=!1){return new cy((t,n,r)=>Zg(n,e(t,n,r),t,r),t,n)}function Aie(e){return uy(e=>globalThis.Number.isFinite(e),{expected:`a finite number`,representation:{id:`effect/schema/isFinite`,payload:null},toJsonSchema:()=>({type:`number`}),toCode:()=>({runtime:`Schema.isFinite()`}),arbitraryConstraint:{number:`finite`},...e})}const dy=/*#__PURE__*/ xy(kv,[/*#__PURE__*/ Aie()]),jie=/*#__PURE__*/ new pv(/*#__PURE__*/ new ty([dy,ay]),/*#__PURE__*/ new I_(/*#__PURE__*/ D_(),/*#__PURE__*/ x_(e=>globalThis.Number.isFinite(e)?e:globalThis.String(e))));function fy(e,t){let n=new globalThis.RegExp(e),r={source:n.source,flags:n.flags};return uy(e=>(n.lastIndex=0,n.test(e)),{expected:`a string matching the RegExp ${r.source}`,representation:{id:`effect/schema/isPattern`,payload:r},toJsonSchema:()=>[{},!0],arbitraryConstraint:{patterns:[r]},...t})}const py=/*#__PURE__*/ new WeakMap;function my(e,t){let n=Object.assign(Object.create(Object.getPrototypeOf(e)),e,t);return Reflect.ownKeys(t).every(e=>e===`context`||e===`encoding`)&&py.set(n,hy(e)),n}function hy(e){let t=py.get(e);if(t!==void 0)return t;if(e.encoding===void 0)return e;let n=Object.assign(Object.create(Object.getPrototypeOf(e)),e,{encoding:void 0});return py.set(e,n),n}function gy(e,t){return e.encoding===t?e:my(e,{encoding:t})}function _y(e,t){if(e.context===t)return e;let n=hy(e);return n.context===t&&n.encoding===e.encoding?n:my(e,{context:t})}function vy(e){return e.encoding?vy(e.encoding[e.encoding.length-1].to):e}function yy(e,t){if(e.checks){let n=e.checks[e.checks.length-1];return by(e,Ca(e.checks.slice(0,-1),n.annotate(t)))}return my(e,{annotations:{...e.annotations,...t}})}function by(e,t){if(e._tag===`Suspend`&&t)throw Error(`Cannot add checks to Suspend`);return e.checks===t?e:my(e,{checks:t})}function xy(e,t){return by(e,Uv(e.checks,t))}function Sy(e,t){let n=t(e.to);return n===e.to?e:new pv(n,e.transformation)}function Cy(e,t){let n=e,r=n[n.length-1],i=Sy(r,t);return i===r?e:Ca(e.slice(0,e.length-1),i)}function wy(e){return t=>t.encoding?gy(t,Cy(t.encoding,e)):t}function Ty(e,t){return wy(e=>_y(e,t))(e)}function Mie(e){function t(n){return n.encoding?gy(n,Cy(n.encoding,t)):e(n)}return yt(t)}function Ey(e,t){function n(r){if(r.encoding){let e=r.encoding[r.encoding.length-1];return t?.stopAt?.(e)?r:gy(r,Cy(r.encoding,n))}return e(r)}return bt(n)}function Nie(e,t,n){let r=new pv(e,t);return gy(n,n.encoding?[...n.encoding,r]:[r])}function Dy(e,t){let n;for(let r=0;r<e.length;r++){let i=e[r],a=t(i);if(n)n[r]=a;else if(a!==i){n=Array(e.length);for(let t=0;t<r;t++)n[t]=e[t];n[r]=a}}return n??e}function Oy(e,t){return _y(e,e.context?new hv(e.context.isOptional,e.context.isMutable,e.context.constructorDefault,{...e.context.annotations,...t}):new hv(!1,!1,void 0,t))}const ky=/*#__PURE__*/ bt(e=>{let t=e.context?e.context.isOptional===!1?new hv(!0,e.context.isMutable,e.context.constructorDefault,e.context.annotations):e.context:new hv(!0,!1);return Pie(_y(e,t))}),Pie=/*#__PURE__*/ wy(ky),Fie=/*#__PURE__*/ yt(e=>ky(new ty([e,xv])));function Iie(e,t){return _y(e,e.context?new hv(e.context.isOptional,e.context.isMutable,t,e.context.annotations):new hv(!1,!1,t))}function Ay(e,t,n){return Nie(e,n,t)}function Lie(e){let t=[],n=[];function r(e){switch(e._tag){case`Literal`:At(e.literal)&&!t.includes(e.literal)&&t.push(e.literal);return;case`UniqueSymbol`:t.includes(e.symbol)||t.push(e.symbol);return;case`Never`:return;case`Union`:for(let t=0;t<e.types.length;t++)r(e.types[t]);return;default:n.push(e)}}return r(e),{literals:t,parameters:n}}function Rie(e,t){let{literals:n,parameters:r}=Lie(e);return new zv(n.map(e=>new Fv(e,t)),r.map(e=>new Rv(e,t)))}function jy(e){return e.context?.isOptional??!1}function zie(e){return e.context?.isMutable??!1}function My(e){return e.annotations?.[`~structural`]===!0||e._tag===`FilterGroup`&&e.checks.every(My)}function Bie(e){function t(e){return My(e)?[e]:e._tag===`FilterGroup`?e.checks.flatMap(t):[]}let n=e.flatMap(t);return wa(n)?n:void 0}function Vie(e){let t=!0;function n(e){return t=t&&!e.encoding&&!fv(e),t&&`recur`in e&&e.recur(n),e}return`recur`in e&&e.recur(n),t}const Ny=/*#__PURE__*/ bt(e=>{let t=hy(e);if(t!==e){let n=Ny(t);return n===t&&e.encoding===void 0?e:_y(n,e.context)}let n=`recur`in e?e.recur(Ny):e;if(`encodingChecks`in n&&n.encodingChecks){let t=Vie(e)?n.encodingChecks:lv(n)||uv(n)||tv(n)&&n.typeParameters.length>0?Bie(n.encodingChecks):void 0;return my(n,{encodingChecks:void 0,checks:Uv(n.checks,t)})}return n}),Py=/*#__PURE__*/ bt(e=>Ny(Fy(e)));function Hie(e,t){let n=t,r=n.length,i=n[r-1],a=[new pv(Fy(gy(e,void 0)),n[0].transformation.flip())];for(let e=1;e<r;e++)a.unshift(new pv(Fy(n[e-1].to),n[e].transformation.flip()));let o=Fy(i.to);return o.encoding?gy(o,[...o.encoding,...a]):gy(o,a)}const Fy=/*#__PURE__*/ yt(e=>{if(e.encoding)return Hie(e,e.encoding);let t=hy(e);if(t!==e){let n=Fy(t);return n===t?e:_y(n,e.context)}return`flip`in e?e.flip(Fy):`recur`in e?e.recur(Fy):e});function Iy(e){switch(e._tag){case`Undefined`:return!0;case`Union`:return e.types.some(Iy);default:return!1}}function Ly(e,t){let n=t===0?Ag:Og(t);return(r,i)=>r===Dg?kg:r===t?n:B(new Ug(e,r,i))}function Ry(e,t){return(n,r)=>n===Dg?kg:t(n)?Ag:B(new Ug(e,n,r))}function zy(e,t,n){let r=e.encodedParts,i=e.literals,a=t.length;for(let e=0;e<i.length;e++){let n=i[e];if(n&&!t.includes(n))return}if(e.suffixLengths[0]>a)return;let o=Array(r.length),s;function c(l,u){if(l===r.length)return u===a;if(s?.has(l*(a+1)+u))return!1;let d=r[l];if(l===r.length-1){let e=t.slice(u);if(d.matchPart(e,n)!==void 0)return o[l]=e,!0}else if(d._tag===`Literal`){let e=i[l];if(t.startsWith(e,u)&&c(l+1,u+e.length))return o[l]=e,!0}else{let r=a-e.suffixLengths[l+1],s=i[l+1],f=s===void 0?r:t.lastIndexOf(s,r);for(;f>=u;){let e=t.slice(u,f);if(d.matchPart(e,n)!==void 0&&c(l+1,f))return o[l]=e,!0;if(f===0)break;f=s===void 0?f-1:t.lastIndexOf(s,f-1)}}return s??=/* @__PURE__ */ new Set,s.add(l*(a+1)+u),!1}return c(0,0)?o:void 0}const By=/*#__PURE__*/ Ey(e=>{switch(e._tag){default:return e;case`Number`:return e.toCodecStringTree();case`Union`:return e.recur(By)}}),Vy=/*#__PURE__*/ Ey(e=>{switch(e._tag){default:return e;case`Symbol`:case`UniqueSymbol`:return e.toCodecStringTree();case`Union`:return e.recur(Vy)}}),Hy=/*#__PURE__*/ Ey(e=>{switch(e._tag){default:return e;case`Number`:case`Literal`:case`BigInt`:return e.toCodecStringTree();case`Union`:return e.recur(Hy)}}),Uy=/*#__PURE__*/ new globalThis.RegExp(`^${Nv}$`),Uie=/*#__PURE__*/ new globalThis.RegExp(`^(?:${Nv}|Infinity|-Infinity|NaN)$`);function Wie(e){return fy(Uy,{expected:`a string representing a finite number`,representation:{id:`effect/schema/isStringFinite`,payload:null},toJsonSchema:()=>({pattern:Uy.source}),...e})}const Wy=/*#__PURE__*/ xy(Dv,[/*#__PURE__*/ Wie()]),Gie=/*#__PURE__*/ new pv(Wy,W_),Kie=/*#__PURE__*/ new pv(/*#__PURE__*/ new ty([Wy,ay]),W_);function Gy(e,t,n,r,i){for(let a=0;a<e.length;a++){let o=e[a];if(o._tag===`FilterGroup`){if(n=Gy(o.checks,t,n,r,i),n&&(i.errors!==`all`||n[n.length-1].filter.aborted))return n}else{let e=o.run(t,r,i);if(e){let r=new Lg(o,e,t,i);if(n?n.push(r):n=[r],i.errors!==`all`||o.aborted)return n}}}return n}function qie(e){if(!tv(e))return;let t=e.annotations?.[bg];return jt(t)?t(e.typeParameters):void 0}const Ky=gg,qy=Sg,Jie=wg;function Yie(e){return e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`&&globalThis.Number.isFinite(e)}function Xie(e){return e===void 0||typeof e==`string`}function Jy(e,t){let n=/* @__PURE__ */ new WeakMap,r=[];outer:for(;;){if(typeof e!=`object`||!e){if(!t(e))return!1}else{let t=e,i=n.get(t);if(i===!1)return!1;if(i===void 0){let e=Array.isArray(t);if(!e){let e=Object.getPrototypeOf(t);if(e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null)return!1}n.set(t,!1),r.push({value:t,keys:e?t.length:Object.keys(t),index:0})}}for(;r.length>0;){let t=r[r.length-1],i=t.keys;if(typeof i==`number`){if(t.index<i){e=t.value[t.index++];continue outer}}else if(t.index<i.length){e=t.value[i[t.index++]];continue outer}n.set(t.value,!0),r.pop()}return!0}}function Yy(e){return Jy(e,Yie)}const Xy=/*#__PURE__*/ new vv([],()=>(e,t,n)=>Yy(e)?Ag:B(new Ug(t,e,n)),{representation:{id:`effect/schema/Json`,payload:null},expected:`JSON value`,toCodecJson:()=>void 0,toCodecStringTree:()=>Qy}),Zy=/*#__PURE__*/ new pv(Xy,/*#__PURE__*/ U_()),Zie=/*#__PURE__*/ new pv(/*#__PURE__*/ new ty([/*#__PURE__*/ new Av(!1,[],[Xy]),/*#__PURE__*/ new zv([],[/*#__PURE__*/ new Rv(Dv,Xy)])]),/*#__PURE__*/ U_());function Qie(e){return Jy(e,Xie)}const Qy=/*#__PURE__*/ new pv(/* @__PURE__ */ new vv([],()=>(e,t,n)=>Qie(e)?Ag:B(new Ug(t,e,n)),{expected:`StringTree`,toCodecStringTree:()=>void 0}),/*#__PURE__*/ U_()),$y=(e,t,n)=>e===Ag?n(t):em(e,n);function eb(e){if(e._tag===`Middleware`)return(t,n,r)=>{let i=t===Ag?e.decode(Og(jg(n)),r):e.decode(Zp(t,jg),r);return tb(i)};let t=e.decode;switch(t._tag){case`Passthrough`:return(e,t)=>e===Ag?Og(t):e;case`Transform`:{let e=e=>e===Dg?kg:Og(t.transform(e));return(t,n)=>$y(t,n,e)}case`TransformOptional`:{let e=e=>Mg(t.transform(jg(e)));return(t,n)=>$y(t,n,e)}case`TransformEffect`:return(e,n,r)=>$y(e,n,e=>e===Dg?kg:t.transform(e,r));case`TransformOptionalEffect`:return(e,n,r)=>$y(e,n,e=>tb(t.transform(jg(e),r)))}}const tb=e=>em(e,Mg),nb=(e,t,n,r)=>Yf(r,r=>If(()=>ju(r,r=>new Rg(e,r,t,n))));function $ie(e,t){let n=eb(e.link.transformation),r;return(i,a)=>{if(i===Dg)return kg;if(e.isConstructed(i))return Ag;let o=(r??=t(e.link.to))(i,a);return n(o,i,a)}}function eae(e,t){let n=e.context.constructorDefault;return(r,i)=>{if(r!==Dg&&r!==void 0)return t(r,i);let a=n;if(wc(a)&&a._tag===`Success`){let e=t(a[Gn],i);return e===Ag?a:e}return em(nb(e,r,i,a),e=>{let n=t(e,i);return n===Ag?Og(e):n})}}function tae(e,t){let n=t(e);return e.context?.constructorDefault===void 0?n:eae(e,n)}function rb(e,t,n,r,i){if(e._tag===`Declaration`)for(let n of e.typeParameters)t(n);let a=n?qie(e):void 0,o=a?$ie(a,t):r??e.getParser(t,n),s=e.checks,c=e.encoding,l=c?.map(e=>eb(e.transformation)),u=e.encodingChecks;if(!c&&!s&&!u)return o;let d,f=(t,n)=>{let r=o(t,n);if(u&&!n.disableChecks){if(wc(r)){if(r._tag===`Success`){let i=r===Ag?t:r[Gn];if(t!==Dg&&i!==Dg){let i=Gy(u,t,void 0,e,n);i&&(r=B(new Hg(e,i,t,n)))}}}else r=V(r,r=>{if(t!==Dg&&r!==Dg){let r=Gy(u,t,void 0,e,n);if(r)return B(new Hg(e,r,t,n))}return I(r)})}if(s&&!n.disableChecks){if(wc(r)){if(r._tag===`Success`){let i=r===Ag?t:r[Gn];if(i===Dg)return r;let a=Gy(s,i,void 0,e,n);a&&(r=B(new Hg(e,a,i,n)))}}else r=V(r,t=>{if(t!==Dg){let r=Gy(s,t,void 0,e,n);if(r)return B(new Hg(e,r,t,n))}return I(t)})}return r},p=i===void 0?f:i(f);return c?(n,r)=>{let i=d??=c.map(e=>t(e.to)),a=n,o=i[i.length-1](n,r);for(let e=c.length-1;e>=0;e--)if(o=l[e](o,a,r),e!==0){let t=i[e-1];o._tag===`Success`?(a=o[Gn],o=t(a,r)):o=em(o,e=>{let n=t(e,r);return n===Ag?Og(e):n})}if(o._tag===`Success`){let e=o[Gn],t=p(e,r);return t===Ag?o:t}return o=nb(e,n,r,o),em(o,e=>{let t=p(e,r);return t===Ag?Og(e):t})}:p}const nae=/*#__PURE__*/ Symbol(),ib=/*#__PURE__*/ new WeakMap,rae=e=>ob(e).parser,ab=e=>ob(e).makeEffect,iae=e=>tae(e,ab);var aae=class{ast;constructor(e){this.ast=e}get decodeEffect(){return this.cachedDecodeEffect??=rb(this.ast,rae)}get parser(){return this.decodeEffect}get makeEffect(){return this.cachedMakeEffect??=rb(this.ast,ab,iae)}};function ob(e){let t=ib.get(e);if(t!==void 0)return t;let n=new aae(e);return ib.set(e,n),n}function sb(e){let t=e.ast,n;return(e,r)=>(n??=gb(gae,Ny(t)))(e,r?.disableChecks?r?.parseOptions?{...r.parseOptions,disableChecks:!0}:{disableChecks:!0}:r?.parseOptions)}function cb(e){let t=sb(e);return(e,n)=>{let r=Wp(t(e,n));return Yu(r)?fi(r.value):(d_(r.cause,`Option adapter can only return none for schema issues`),di())}}function lb(e){return mae(Ny(e.ast))}function oae(e){return ub(e.ast)}function sae(e){{let t=_b(hb(e));return e=>{let n=t(e,mv);return Yu(n)?!0:(d_(n.cause,`Type guard adapter can only return false for schema issues`),!1)}}}function ub(e){let t=Ny(e),n=e=>(n=sae(t),n(e));return e=>n(e)}function db(e,t){let n=hb(e.ast);return t===void 0?n:(e,r)=>n(e,pb(t,r))}function cae(e,t){return dae(db(e,t))}function lae(e,t){return fae(db(e,t))}function fb(e,t){let n=hb(Fy(e.ast));return t===void 0?n:(e,r)=>n(e,pb(t,r))}const pb=(e,t)=>t?{...e,...t}:e,mb=e=>e===Dg?B(new Wg):I(e);function hb(e){return gb(hae,e)}function uae(e,t){return e===Ag?I(t):wc(e)?e[Gn]===Dg?mb(Dg):e:em(e,mb)}function gb(e,t){let n;return(r,i)=>{let a=(n??=e(t))(r,i??mv);return a===Ag?I(r):wc(a)?a[Gn]===Dg?mb(Dg):a:em(a,mb)}}function _b(e){return(t,n)=>Wp(e(t,n))}function dae(e){let t=_b(e);return(e,n)=>{let r=t(e,n);return Yu(r)?fi(r.value):(d_(r.cause,`Option adapter can only return none for schema issues`),di())}}function fae(e){let t=_b(e);return(e,n)=>{let r=t(e,n);return Yu(r)?$i(r.value):ea(d_(r.cause,`Result adapter can only return schema issues`))}}function pae(e,t){let n=Wp(e);if(Yu(n))return n.value;let r=d_(n.cause,t);throw Error(`Schema validation failed`,{cause:r})}function mae(e){let t,n;return(r,i)=>{t??=ob(e);let a=i?.disableChecks?i.parseOptions?{...i.parseOptions,disableChecks:!0}:{disableChecks:!0}:i?.parseOptions??mv,o=t.make;if(o!==void 0&&r!==Dg){let e;try{e=o(r,a)}catch(e){throw d_(Ou(e),`Constructor adapter can only throw schema issues`),e}if(e!==nae&&e!==Dg)return e}return pae(uae((n??=t.makeEffect)(r,a),r),`Constructor adapter can only throw schema issues`)}}const hae=e=>ob(e).parser,gae=e=>ob(e).makeEffect,vb=`~effect/Schema/Schema`,yb=/*#__PURE__*/ Symbol(),_ae={[vb]:vb,get make(){let e=lb(this);return Object.defineProperty(this,"make",{value:e,enumerable:!0}),e},get makeEffect(){let e=sb(this);return Object.defineProperty(this,"makeEffect",{value:e,enumerable:!0}),e},get makeOption(){let e=cb(this);return Object.defineProperty(this,"makeOption",{value:e,enumerable:!0}),e},pipe(){return ut(this,arguments)},annotate(e){return this.rebuild(yy(this.ast,e))},annotateKey(e){return this.rebuild(Oy(this.ast,e))},check(...e){return this.rebuild(xy(this.ast,e))},rebuild(e){return bb(e,this[yb])}};function bb(e,t){function n(){}let r=Object.setPrototypeOf(n,_ae);return t&&(Object.hasOwn(t,`name`)||Object.hasOwn(t,`length`)||Object.hasOwn(t,`__proto__`))?Object.defineProperties(r,Object.getOwnPropertyDescriptors({...t})):Object.assign(r,t),r[yb]=t,r.ast=e,r}function vae(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function xb(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}function Sb(e){return encodeURI(vae(e)).replace(/#/g,`%23`)}function Cb(e){if(e.length===0||e===`#`)return``;if(!e.startsWith(`#`))return;let t=e.slice(1);try{if(encodeURI(t).replace(/%25/g,`%`).replace(/#/g,`%23`)!==t)return;let e=decodeURIComponent(t);return e.startsWith(`/`)&&!/~(?:[^01]|$)/.test(e)?e:void 0}catch{return}}function wb(e){let t=Cb(e);return t===void 0?void 0:t.length===0?[]:t.slice(1).split(`/`).map(xb)}function yae(e){return e.reduce((e,t)=>`${e}/${Sb(t)}`,`#`)}const bae=[`example`,`discriminator`,`xml`,`externalDocs`];function xae(e){let t=Object.keys(e.definitions),n=/* @__PURE__ */ new Map,r=new Set(t.filter(e=>Tb.test(e))),i=t.filter(e=>!Tb.test(e)).sort().map(e=>[e,Sae(e)]);for(let[e,t]of i)r.has(t)||(r.add(t),n.set(e,t));for(let[e,t]of i){if(n.has(e))continue;let i,a=0;do i=`${t}_${++a}`;while(r.has(i));r.add(i),n.set(e,i)}function a(t,r=!1){let i=Ob(t.$id),a=zt(t.$defs)?t.$defs:void 0;return Eb(t,(t,o)=>{Tae(t,bae,`OpenAPI 3.1`,`Draft 2020-12`),Db(t,(t,s)=>{let c=t.startsWith(`#`)?wb(t):void 0;if(c===void 0||c[0]!==`$defs`||c.length<2)return t;let l=c[1];return i?(r&&!o&&Object.hasOwn(e.definitions,l)&&(a===void 0||!Object.hasOwn(a,l))&&Ab(s,`OpenAPI 3.1`,`a schema resource cannot reference the shared definitions pool`),t):o?t:yae([`components`,`schemas`,n.get(l)??l,...c.slice(2)])})})}let o=e.schemas.map(e=>a(e,!0)),s={};for(let r of t)zn(s,n.get(r)??r,a(e.definitions[r]));return{dialect:`openapi-3.1`,schemas:o,definitions:s}}const Tb=/^[a-zA-Z0-9.\-_]+$/;function Sae(e){return e.length===0?`_`:e.replace(/[^a-zA-Z0-9._-]/gu,`_`)}function Eb(e,t){return n(e,!1,!0);function n(e,r,i=!1){if(!zt(e))return e;let a=r||!i&&Ob(e.$id),o={};for(let t of Object.keys(e)){let r=e[t],i=r;switch(t){case`$defs`:case`properties`:case`patternProperties`:case`dependentSchemas`:i=wae(r,e=>n(e,a))??r;break;case`allOf`:case`anyOf`:case`oneOf`:case`prefixItems`:i=Array.isArray(r)?r.map(e=>n(e,a)):r;break;case`not`:case`additionalProperties`:case`propertyNames`:case`unevaluatedProperties`:case`items`:case`contains`:case`unevaluatedItems`:case`if`:case`then`:case`else`:case`contentSchema`:i=n(r,a)}zn(o,t,i)}return t(o,a),o}}function Cae(e,t){return Eb(e,e=>{Db(e,t)})}function Db(e,t){typeof e.$ref==`string`&&zn(e,`$ref`,t(e.$ref,`$ref`)),typeof e.$dynamicRef==`string`&&zn(e,`$dynamicRef`,t(e.$dynamicRef,`$dynamicRef`))}function wae(e,t){if(!zt(e))return;let n={};for(let r of Object.keys(e))zn(n,r,t(e[r],r));return n}function Ob(e){return typeof e==`string`&&e.length>0&&e[0]!==`#`}const kb=[`$anchor`,`$defs`,`$dynamicAnchor`,`$dynamicRef`,`$vocabulary`,`contentSchema`,`dependentRequired`,`dependentSchemas`,`maxContains`,`minContains`,`prefixItems`,`unevaluatedItems`,`unevaluatedProperties`];[...kb],[...kb];function Ab(e,t,n){throw Error(`Cannot convert JSON Schema keyword "${e}" to ${t}: ${n}`)}function Tae(e,t,n,r){for(let i of t)Object.hasOwn(e,i)&&Ab(i,n,`it is not active in ${r} but would become active in the target`)}function Eae(e){return bb(jb(e.ast),{schema:e})}const jb=/*#__PURE__*/ Ey(e=>{let t=Oae(e,jb),n=e.context;return t===e||n===void 0?t:Ty(t,Mb(n))});function Mb(e){return e.constructorDefault===void 0?e:new hv(e.isOptional,e.isMutable,void 0,e.annotations)}function Nb(e){if(e.propertySignatures.some(e=>typeof e.name!=`string`))throw new globalThis.Error(`Objects property names must be strings`,{cause:e})}function Pb(e){return t=>{let n=[...t].sort((t,n)=>e(Py(t))-e(Py(n)));return n.some((e,n)=>e!==t[n])?n:t}}const Dae=/*#__PURE__*/ Pb(e=>{switch(e._tag){case`BigInt`:case`Symbol`:case`UniqueSymbol`:return 0;default:return 1}});function Oae(e,t){switch(e._tag){case`Declaration`:{let n=e.annotations?.toCodecJson??e.annotations?.toCodec;if(!jt(n))return gy(e,[Zy]);let r=n(e.typeParameters.map(e=>bb(Py(e))));return r===void 0?e:gy(e,[Sy(r,t)])}case`Unknown`:return gy(e,[Zy]);case`ObjectKeyword`:return gy(e,[Zie]);case`Undefined`:case`Void`:case`Literal`:case`Number`:return e.toCodecJson();case`UniqueSymbol`:case`Symbol`:case`BigInt`:return e.toCodecStringTree();case`Objects`:return Nb(e),e.recur(t,Vy);case`Union`:{let n=Dae(e.types);return n===e.types?e.recur(t):new ty(n,e.options,e.annotations,e.checks,e.encoding,e.context,e.encodingChecks).recur(t)}case`Arrays`:case`Suspend`:return e.recur(t)}return e}function kae(e){return bb(Lb(e.ast),{schema:e})}function Aae(e){return bb(zb(e.ast))}const jae=/*#__PURE__*/ Pb(e=>{switch(e._tag){case`Null`:case`Boolean`:case`Number`:case`BigInt`:case`Symbol`:case`UniqueSymbol`:return 0;default:return 1}});function Mae(e,t,n){switch(e._tag){case`Declaration`:{let r=e.typeParameters.map(e=>bb(t(Py(e)))),i=e.annotations?.toCodecStringTree;if(jt(i)){let n=i(r);return n===void 0?e:gy(e,[Sy(n,t)])}let a=e.annotations?.toCodecJson,o=jt(a)?a(r):void 0,s=o===void 0?e.annotations?.toCodec:void 0,c=o??(jt(s)?s(r):void 0);return c===void 0?n(e):gy(e,[Sy(c,t)])}case`Null`:return gy(e,[Nae]);case`Boolean`:return gy(e,[Pae]);case`Unknown`:case`ObjectKeyword`:return gy(e,[Qy]);case`Enum`:case`Number`:case`Literal`:case`UniqueSymbol`:case`Symbol`:case`BigInt`:return e.toCodecStringTree();case`Objects`:return Nb(e),e.recur(t,Vy);case`Union`:{let n=jae(e.types);return n===e.types?e.recur(t):new ty(n,e.options,e.annotations,e.checks,e.encoding,e.context,e.encodingChecks).recur(t)}case`Arrays`:case`Suspend`:return e.recur(t)}return e}const Nae=/*#__PURE__*/ new pv(/*#__PURE__*/ new Tv(`null`),/*#__PURE__*/ new I_(/*#__PURE__*/ x_(()=>null),/*#__PURE__*/ x_(()=>`null`))),Pae=/*#__PURE__*/ new pv(/*#__PURE__*/ new ty([/*#__PURE__*/ new Tv(`true`),/*#__PURE__*/ new Tv(`false`)]),/*#__PURE__*/ new I_(/*#__PURE__*/ x_(e=>e===`true`),/*#__PURE__*/ E_())),Fb=/*#__PURE__*/ new I_(/*#__PURE__*/ x_(e=>typeof e==`string`?[e]:e),/*#__PURE__*/ b_()),Ib=e=>e.transformation===Fb,Lb=/*#__PURE__*/ Ey(e=>{let t=Mae(e,Lb,e=>{throw new globalThis.Error(`Missing structural codec for StringTree`,{cause:e})});return t!==e&&e.context!==void 0?Ty(t,Mb(e.context)):t},{stopAt:Ib}),Rb=e=>jy(e)?ky(Sv):Sv,zb=/*#__PURE__*/ Ey(e=>{let t=Fae(e);if(lv(t)){let n=Ay(new ty([new Av(t.isMutable,t.elements.map(Rb),t.rest.map(Rb)),Dv],{mode:`anyOf`}),t,Fb);return jy(e)?ky(n):n}return t},{stopAt:Ib});function Fae(e){return e._tag===`Declaration`||e._tag===`Arrays`||e._tag===`Objects`||e._tag===`Union`||e._tag===`Suspend`?e.recur(zb):e}globalThis.RegExp;const Iae=e=>e.replace(/[/\\^$*+?.()|[\]{}]/g,`\\$&`);function Bb(e,t){return t.length>0&&(e+=`\n at ${Dn(t)}`),Error(e)}function Vb(e){return`#/$defs/${Sb(e)}`}const Lae=/*#__PURE__*/ new Set([...Eg,vg,...xg]);function Hb(e,t){if(e===void 0)return;let n={},r=e.title;typeof r==`string`&&(n.title=r);let i=e.description,a=e.expected;typeof i==`string`?n.description=i:t?.generateDescriptions===!0&&typeof a==`string`&&(n.description=a);let o=e.default;Yy(o)&&(n.default=o);let s=e.examples;Array.isArray(s)&&Yy(s)&&(n.examples=s);let c=e.readOnly;typeof c==`boolean`&&(n.readOnly=c);let l=e.writeOnly;typeof l==`boolean`&&(n.writeOnly=l);let u=e.format;typeof u==`string`&&(n.format=u);let d=e.contentEncoding;typeof d==`string`&&(n.contentEncoding=d);let f=e.contentMediaType;typeof f==`string`&&(n.contentMediaType=f);let p=e.contentSchema;if(Yy(p)&&(n.contentSchema=p),t?.includeAnnotationKey!==void 0)for(let[r,i]of Object.entries(e))!Lae.has(r)&&t.includeAnnotationKey(r)&&Yy(i)&&zn(n,r,i);return Object.keys(n).length===0?void 0:n}function Ub(e){let t=e.type===`number`||e.type===`integer`?e.type:void 0,n=e;if(t!==void 0&&(n={...e},delete n.type),Array.isArray(n.allOf)){let e=[],r=!1;for(let i of n.allOf){let n=Ub(i);n.type!==void 0&&(r=!0,(t===void 0||n.type===`integer`)&&(t=n.type)),Object.keys(n.schema).length>0&&e.push(n.schema)}if(r){let{allOf:t,...r}=n;n=e.length===0?r:{...r,allOf:e}}}return{type:t,schema:n}}function Rae(e){if(!Array.isArray(e.anyOf)||e.anyOf.length!==2||e.anyOf[0]?.type!==`number`)return!1;let t=e.anyOf[1];return t?.type===`string`&&Array.isArray(t.enum)&&t.enum.length===3&&t.enum.includes(`NaN`)&&t.enum.includes(`Infinity`)&&t.enum.includes(`-Infinity`)}function Wb(e,t){return Object.keys(e).every(e=>t.includes(`|${e}|`))}function zae(e,t){return typeof e.$ref!=`string`&&t.every(t=>!Object.hasOwn(e,t))}function Bae(e,t,n){if(typeof e.$ref==`string`)return;let r={...e,...t};for(let i of n){if(!Object.hasOwn(e,i))continue;let n=e[i],a=t[i];if(typeof n!=`number`||typeof a!=`number`)return;if(`|minimum|exclusiveMinimum|minLength|minItems|minProperties|`.includes(`|${i}|`))r[i]=Math.max(n,a);else if(`|maximum|exclusiveMaximum|maxLength|maxItems|maxProperties|`.includes(`|${i}|`))r[i]=Math.min(n,a);else return}return typeof r.minimum==`number`&&typeof r.exclusiveMinimum==`number`&&delete r[r.exclusiveMinimum>=r.minimum?`minimum`:`exclusiveMinimum`],typeof r.maximum==`number`&&typeof r.exclusiveMaximum==`number`&&delete r[r.exclusiveMaximum<=r.maximum?`maximum`:`exclusiveMaximum`],r}const Gb=`|title|description|default|examples|readOnly|writeOnly|`;function Kb(e,t,n){if(Object.keys(e).length===0)return t;let r=Object.keys(t);if(r.length===0)return e;let i=e.type===`number`||e.type===`integer`?e.type:void 0,a=Rae(e);if(i!==void 0||a){let r=Ub(t);if(r.type!==void 0){let t=i===`integer`||r.type===`integer`?`integer`:`number`,o={...e,type:t};a&&delete o.anyOf;let s=Object.keys(r.schema);return s.length===0?o:Wb(r.schema,Gb)&&zae(o,s)?{...o,...r.schema}:Kb(o,r.schema,n)}}if(n){let n=Bae(e,t,r);if(n!==void 0)return n}let o=Array.isArray(t.allOf)&&r.length===1?t.allOf:[t];return Array.isArray(e.allOf)?{...e,allOf:[...e.allOf,...o]}:typeof e.$ref==`string`?{allOf:[e,...o]}:{...e,allOf:o}}function qb(e,t=/* @__PURE__ */ new Set){return typeof e==`boolean`?e:t.has(e)?!0:(t.add(e),e.every(e=>qb(e,t)))}function Vae(e){return Array.isArray(e)}function Jb(e,t,n,r){let i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new WeakMap,s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=Object.keys(n);for(let e of l)m(e,[`references`,e]);let u=Na(e,(e,n)=>v(e,t[n],[]));for(let[e,t]of s.values())if(!qb(e))for(let e of t)Array.isArray(e.oneOf)&&(e.anyOf=e.oneOf,delete e.oneOf);for(let e of l){let t=n[e],r=g(t);if(r===void 0)continue;let o=i.get(e)[0],s=c.get(r),l=s?.find(e=>ln(i.get(e)[0],o));l===void 0?s===void 0?c.set(r,[e]):s.push(e):a.set(e,l)}let d=Na(u,h),f={};for(let e of l)a.has(e)||zn(f,e,h(i.get(e)[0]));return{dialect:`draft-2020-12`,schemas:d,definitions:f};function p(e){return Array.isArray(e.oneOf)&&s.get(e.oneOf)?.[1].push(e),e}function m(e,t){if(!Object.hasOwn(n,e))throw Bb(`Invalid reference ${e}`,[...t,`$ref`]);let r=i.get(e);if(r!==void 0)return r;let a=[{},[]];return i.set(e,a),a[0]=v(n[e],[`references`,e],a[1]),a}function h(e){return Cae(e,e=>{let t=Cb(e);if(t===void 0){if(/^#(?:\/|%2f)/i.test(e))throw Error(`Invalid JSON Pointer URI fragment ${JSON.stringify(e)}`);return e}if(!t.startsWith(`/$defs/`))return e;let n=t.indexOf(`/`,7),r=a.get(xb(t.slice(7,n<0?void 0:n)));return r===void 0?e:e.replace(/^#(?:\/|%2f).*?(?:\/|%2f).*?(?=\/|%2f|$)/i,Vb(r))})}function g(e){if(e._tag===`Reference`)return;let t=e.checks.length===0?e.annotations:e.checks[e.checks.length-1].annotations;return typeof t?.identifier!=`string`&&typeof t?.[`~identifier`]==`string`?t[vg]:void 0}function _(e,t,n,i){let a=e.annotations,o=a?.toJsonSchema;if(o!==void 0){let s=o({type:t,schemas:e.representation?.schemas?.map((e,t)=>v(e,[...n,`representation`,`schemas`,t],i))??[]}),c=Vae(s);c&&i.push(!1);let l=c?s[0]:s,u=Hb(a,r),d=u===void 0?l:{...l,...u},f=u===void 0?`|type|format|pattern|multipleOf|minimum|maximum|exclusiveMinimum|exclusiveMaximum|minLength|maxLength|minItems|maxItems|uniqueItems|minProperties|maxProperties|propertyNames|`:`|type|format|pattern|multipleOf|minimum|maximum|exclusiveMinimum|exclusiveMaximum|minLength|maxLength|minItems|maxItems|uniqueItems|minProperties|maxProperties|propertyNames||title|description|default|examples|readOnly|writeOnly|`;return[d,e._tag===`Filter`&&Wb(d,f)&&(u===void 0||Wb(u,Gb))?!0:void 0]}if(e._tag===`Filter`){i.push(!1);return}let s=e.checks.flatMap((e,r)=>{let a=_(e,t,[...n,`checks`,r],i);return a===void 0?[]:[a[0]]});if(s.length===0)return;let c=Hb(a,r),l={allOf:s};return[c===void 0?l:{...l,...c}]}function v(e,t,n){if(e._tag===`Reference`)return n.push(m(e.$ref,t)[1]),{$ref:Vb(e.$ref)};let i=o.get(e);if(i!==void 0)return n.push(i[1]),i[0];let a=[];n.push(a);let s=y(e,t,a),c=Hb(e.annotations,r);c!==void 0&&(s={...s,...c});for(let n=0;n<e.checks.length;n++){let r=typeof s.type==`string`&&Hae(s.type)?s.type:void 0,i=_(e.checks[n],r,[...t,`checks`,n],a);i!==void 0&&(s=Kb(s,...i))}return o.set(e,[s,a]),p(s)}function y(e,t,n){switch(e._tag){case`Any`:case`Unknown`:return{};case`ObjectKeyword`:return{anyOf:[{type:`object`},{type:`array`}]};case`Void`:case`Undefined`:case`Null`:return{type:`null`};case`BigInt`:return{type:`string`,allOf:[{pattern:`^-?\\d+$`}]};case`Symbol`:return{type:`string`,allOf:[{pattern:`^Symbol\\(([\\s\\S]*)\\)$`}]};case`UniqueSymbol`:return globalThis.Symbol.keyFor(e.symbol)===void 0?{not:{}}:{type:`string`,enum:[globalThis.String(e.symbol)]};case`Declaration`:return n.push(!1),{};case`Suspend`:return v(e.thunk,[...t,`thunk`],n);case`Never`:return{not:{}};case`String`:return{type:`string`};case`Number`:return{anyOf:[{type:`number`},{type:`string`,enum:[`NaN`,`Infinity`,`-Infinity`]}]};case`Boolean`:return{type:`boolean`};case`Literal`:{let t=e.literal;return typeof t==`bigint`?{type:`string`,enum:[globalThis.String(t)]}:{type:typeof t,enum:[t]}}case`Enum`:{let n=e.enums.map(([e,n],r)=>{if(typeof n==`number`&&!globalThis.Number.isFinite(n))throw Bb(`Invalid numeric enum value ${globalThis.String(n)}`,[...t,`enums`,r,1]);return{type:typeof n,enum:[n],title:e}});return n.length===0?{not:{}}:{anyOf:n}}case`TemplateLiteral`:return{type:`string`,pattern:`^${e.parts.map(Yb).join(``)}$`};case`Arrays`:{if(e.rest.length>1)throw Bb(`Invalid schema representation document`,[...t,`rest`]);let i={type:`array`},a=e.elements.length,o=e.elements.map((e,i)=>{e.isOptional&&a--;let o=v(e.type,[...t,`elements`,i,`type`],n),s=Hb(e.annotations,r);return s===void 0?o:p(Kb(o,s))});if(o.length>0?(i.prefixItems=o,i.maxItems=e.elements.length,a>0&&(i.minItems=a)):i.items=!1,e.rest.length===1){delete i.maxItems;let r=v(e.rest[0],[...t,`rest`,0],n);Object.keys(r).length>0?i.items=r:delete i.items}return i}case`Objects`:{if(e.propertySignatures.length===0&&e.indexSignatures.length===0)return{not:{type:`null`}};let i={type:`object`},a={},o=[];for(let i=0;i<e.propertySignatures.length;i++){let s=e.propertySignatures[i];if(typeof s.name!=`string`)throw Bb(`Invalid schema representation document`,[...t,`propertySignatures`,i,`name`]);let c=s.name,l=v(s.type,[...t,`propertySignatures`,i,`type`],n),u=Hb(s.annotations,r);zn(a,c,u===void 0?l:p(Kb(l,u))),s.isOptional||o.push(c)}e.propertySignatures.length>0&&(i.properties=a),o.length>0&&(i.required=o);let s={},c=[],l=[],u=!1;for(let r=0;r<e.indexSignatures.length;r++){let i=e.indexSignatures[r],a=v(i.type,[...t,`indexSignatures`,r,`type`],n);ln(a,{not:{}})&&(a=!1),l.push(a);let o=b(i.parameter,[...t,`indexSignatures`,r,`parameter`],/* @__PURE__ */ new Set);if(o===void 0)u=!0,n.push(!1);else if(o.length===0)c.push(a);else for(let e of o){let t=s[e];zn(s,e,t===void 0?a:t===!1||a===!1?!1:p(Kb(t,a)))}}let d=Object.keys(s).length>0;if(d&&(i.patternProperties=s),u&&r?.onExcessProperty===`error`){let r=[];e.propertySignatures.length>0&&r.push({enum:Object.keys(a)});for(let i=0;i<e.indexSignatures.length;i++)r.push(v(e.indexSignatures[i].parameter,[...t,`indexSignatures`,i,`parameter`],n));i.propertyNames=r.length===1?r[0]:{anyOf:r},i.additionalProperties=l.length===1?l[0]:{anyOf:l},c.length>0&&(i.allOf=c.map(e=>({type:`object`,additionalProperties:e})))}else c.length===0?i.additionalProperties=u||r?.onExcessProperty!==`error`:c.length===1&&e.propertySignatures.length===0&&!d?i.additionalProperties=c[0]:c.length>0&&(i.allOf=c.map(e=>({type:`object`,additionalProperties:e})));return typeof i.additionalProperties==`object`&&i.additionalProperties!==null&&Object.keys(i.additionalProperties).length===0&&delete i.additionalProperties,i}case`Union`:{let r=[],i=e.types.map((e,n)=>v(e,[...t,`types`,n],r));if(n.push(r),i.length===0)return{not:{}};let a=e.options?.mode??`anyOf`;if(a===`anyOf`&&i.length>1){let e=Uae(i);if(e!==void 0)return e}return a===`oneOf`&&s.set(i,[r,[]]),{[a]:i}}}}function b(e,t,r){switch(e._tag){case`Reference`:{if(!Object.hasOwn(n,e.$ref))throw Bb(`Invalid reference ${e.$ref}`,[...t,`$ref`]);if(m(e.$ref,t),r.has(e.$ref))return;let i=new Set(r).add(e.$ref);return b(n[e.$ref],[`references`,e.$ref],i)}case`String`:{if(e.checks.length===0)return[];if(e.checks.length!==1||e.checks[0]._tag!==`Filter`||e.checks[0].annotations?.toJsonSchema===void 0)return;let n=[],r=v(e,t,n);return qb(n)&&r.type===`string`&&typeof r.pattern==`string`&&Wb(r,`|type|pattern|title|description|default|examples|readOnly|writeOnly|`)?[r.pattern]:void 0}case`TemplateLiteral`:return e.checks.length===0?[`^${e.parts.map(Yb).join(``)}$`]:void 0;case`Union`:{if(e.types.length===0||e.checks.length>0||e.options?.mode===`oneOf`)return;let n=[];for(let i=0;i<e.types.length;i++){let a=b(e.types[i],[...t,`types`,i],r);if(a===void 0)return;if(a.length===0)return[];n.push(...a)}return n}default:throw Bb(`Invalid schema representation document`,t)}}}function Hae(e){return e===`string`||e===`number`||e===`boolean`||e===`array`||e===`object`||e===`null`||e===`integer`}function Uae(e){let t,n=[];for(let r of e){if(Object.keys(r).length!==2||r.type===void 0||!Array.isArray(r.enum)||r.enum.length===0)return;if(t===void 0)t=r.type;else if(r.type!==t)return;for(let e of r.enum){if(n.includes(e))return;n.push(e)}}return{type:t,enum:n}}function Yb(e){switch(e._tag){case`Literal`:return Iae(globalThis.String(e.literal));case`String`:return`[\\s\\S]*?`;case`Number`:return Nv;case`TemplateLiteral`:return e.parts.map(Yb).join(``);case`Union`:return`(?:${e.types.map(Yb).join(`|`)})`;default:throw Bb(`Invalid schema representation document`,[])}}function Wae(e,t){let n=Jb([e.representation],[[`representation`]],e.references,t);return{dialect:n.dialect,schema:n.schemas[0],definitions:n.definitions}}function Gae(e,t){return Jb(e.representations,e.representations.map((e,t)=>[`representations`,t]),e.references,t)}const Kae=({identifier:e})=>e;function Xb(e){return e===void 0?void 0:{annotations:e}}function qae(e,t){let{references:n,representations:r}=Zb([e],t);return{representation:r[0],references:n}}function Zb(e,t){let n={},r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Set,a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Set;for(let t of e)f(t);let s=t?.referencePolicy??Kae;for(let e of a.values())for(let t of e.values()){let e=s({ast:t.ast,occurrences:t.occurrences,identifier:t.identifier});e===void 0?t.isRecursive&&(t.reference=c(`${t.ast._tag}_`,t,``)):t.reference=c(e,t,e===t.identifier||!e.endsWith(`_`)?`_`:``)}return{representations:Na(e,e=>m(e)),references:n};function c(e,t,n=`_`){let i=e,a=0;for(;r.has(i);){if(r.get(i)===t)return i;i=`${e}${n}${++a}`}return r.set(i,t),i}function l(e,t,n){let r=t.fallback;return r===void 0?n===t.identifier?e:yy(e,{identifier:n}):Cg(e)===r?e:yy(e,{[vg]:r})}function u(e,t){if(!Object.hasOwn(n,e)&&!i.has(e)){i.add(e);let r=h(t);i.delete(e),zn(n,e,r)}return{_tag:`Reference`,$ref:e}}function d(e){let t=vy(e),n=hy(t),r=Sg(t),i=r===void 0?(t===e?void 0:Sg(e))??Cg(t):void 0;i!==void 0&&(r=`${i}Encoded`);let o=a.get(n);o===void 0&&(o=/* @__PURE__ */ new Map,a.set(n,o));let s=o.get(r);return s===void 0&&(s={ast:n,identifier:r,fallback:i,occurrences:0,isRecursive:!1,reference:void 0},o.set(r,s)),s}function f(e){let t=d(e),n=t.ast;if(t.occurrences++,o.has(t))t.isRecursive=!0;else if(!(t.occurrences>1)){switch(o.add(t),p(n.checks),n._tag){case`Declaration`:case`Arrays`:case`Objects`:case`Union`:n.recur(e=>(f(e),e));break;case`TemplateLiteral`:n.parts.forEach(f);break;case`Suspend`:f(n.thunk())}o.delete(t)}}function p(e){e?.forEach(e=>{e.annotations?.representation?.schemas?.forEach(e=>f(Ny(e))),e._tag===`FilterGroup`&&p(e.checks)})}function m(e){let t=d(e),n=t.ast,r=t.reference;return r===void 0?h(n):u(r,t.identifier===void 0?n:l(n,t,r))}function h(e){let t=g(e.checks);switch(e._tag){case`Declaration`:return{_tag:`Declaration`,typeParameters:e.typeParameters.map(e=>m(e)),checks:t,...v(e.annotations)};case`Null`:case`Undefined`:case`Void`:case`Never`:case`Unknown`:case`Any`:case`String`:case`Boolean`:case`Number`:case`BigInt`:case`Symbol`:case`ObjectKeyword`:return{_tag:e._tag,checks:t,...Xb(e.annotations)};case`Literal`:return{_tag:`Literal`,literal:e.literal,checks:t,...Xb(e.annotations)};case`UniqueSymbol`:return{_tag:`UniqueSymbol`,symbol:e.symbol,checks:t,...Xb(e.annotations)};case`Enum`:return{_tag:`Enum`,enums:e.enums,checks:t,...Xb(e.annotations)};case`TemplateLiteral`:return{_tag:`TemplateLiteral`,parts:e.parts.map(e=>m(e)),checks:t,...Xb(e.annotations)};case`Arrays`:return{_tag:`Arrays`,elements:e.elements.map(e=>{let t=vy(e),n=t.context?.annotations;return{isOptional:jy(t),type:m(e),...Xb(n)}}),rest:e.rest.map(e=>m(e)),checks:t,...Xb(e.annotations)};case`Objects`:return{_tag:`Objects`,propertySignatures:e.propertySignatures.map(e=>{let t=vy(e.type),n=t.context?.annotations;return{name:e.name,type:m(e.type),isOptional:jy(t),isMutable:zie(t),...Xb(n)}}),indexSignatures:e.indexSignatures.map(e=>({parameter:m(e.parameter),type:m(e.type)})),checks:t,...Xb(e.annotations)};case`Union`:return{_tag:`Union`,types:e.types.map(e=>m(e)),...e.options===void 0?{}:{options:e.options},checks:t,...Xb(e.annotations)};case`Suspend`:return{_tag:`Suspend`,checks:[],thunk:m(e.thunk()),...Xb(e.annotations)}}}function g(e){return e?.map(_)??[]}function _(e){switch(e._tag){case`Filter`:return{_tag:`Filter`,aborted:e.aborted,...y(e.annotations)};case`FilterGroup`:return{_tag:`FilterGroup`,checks:Na(e.checks,_),...y(e.annotations)}}}function v(e){if(e===void 0)return;let{representation:t,...n}=e;return{...t===void 0?void 0:{representation:t},...Object.keys(n).length===0?void 0:{annotations:n}}}function y(e){if(e===void 0)return;let{representation:t,...n}=e,r=t===void 0?void 0:t.schemas===void 0?t:{...t,schemas:t.schemas.map(e=>m(Ny(e)))};return{...r===void 0?void 0:{representation:r},...Object.keys(n).length===0?void 0:{annotations:n}}}}function Qb(e){return Yu(e)?e.value:{issues:[{message:wre(e.cause)}]}}function Jae(e,t){let n=db(e),r={errors:`all`,...t?.parseOptions},i=e_(t),a=e=>{let t=new mo(`sync`),a=Bp(sp(n(e,r),{onFailure:i,onSuccess:e=>({value:e})}),{scheduler:t});a.currentDispatcher?.flush();let o=a.pollUnsafe();return o?Qb(o):new Promise(e=>{a.addObserver(t=>{e(Qb(t))})})};if(Object.hasOwn(e,`~standard`)){let t=e;return`validate`in t[`~standard`]||Object.assign(t[`~standard`],{validate:a}),t}return Object.assign(e,{"~standard":{version:1,vendor:`effect`,validate:a}})}const Yae=/*#__PURE__*/ M(2,(e,t)=>Qae(e,(e,n)=>Zae(t,e)?void 0:[e,n])),Xae=/*#__PURE__*/ M(2,(e,t)=>({...e,...t})),$b=e=>e;function Zae(e,t){return e.some(e=>e===t||typeof e==`number`&&String(e)===t)}function Qae(e,t){let n={};for(let r of Reflect.ownKeys(e)){if(!Object.prototype.propertyIsEnumerable.call(e,r))continue;let i=t(r,e[r]);if(i){let[e,t]=i;zn(n,e,t)}}return n}const ex=`~effect/Schema/SchemaError`;function tx(e){return P(e,`~effect/Schema/SchemaError`)&&e[`~effect/Schema/SchemaError`]===`~effect/Schema/SchemaError`}({...Nn}),{...Nn},{...Nn},{...Nn},{...Nn},{...Nn},{...Nn},{...Nn};const nx=vb;function rx(){return(e,t,n)=>gx(new vv(e.map(Gv),e=>t(e.map(e=>gx(e))),n))}function ix(e,t){return rx()([],()=>(t,n,r)=>e(t)?I(t):B(new Ug(n,t,r)),t)}var ax=class extends (/*#__PURE__*/ vo(`SchemaError`)){[ex]=ex;constructor(e){let t=Fn();In(0);try{super({issue:e})}finally{In(t)}}get message(){return s_(this.issue)}toJSON(){return{_tag:this._tag,message:this.message}}[jn](){return this.toJSON()}toString(){return`SchemaError(${this.message})`}};function $ae(e){return tx(e)}function ox(e){return wc(e)?eoe(e):Yf(e,e=>If(()=>ju(e,e=>new ax(e))))}function eoe(e){return Yu(e)?e:Wu(ju(e.cause,e=>new ax(e)))}function toe(e,t){let n;for(let r of e.reasons){if(!Eu(r)||!$ae(r.error))throw new globalThis.Error(t,{cause:e});n??=r.error}if(n===void 0)throw new globalThis.Error(t,{cause:e});return n}function sx(e){let t=Wp(e);if(Yu(t))return t.value;throw toe(t.cause,`Sync adapter can only throw schema errors`)}function noe(e,t){return Jae(e,t)}const cx=oae;function lx(e,t){let n=db(e,t);return(e,t)=>ox(n(e,t))}const ux=lx,roe=cae;function ioe(e,t){let n=lae(e,t);return(e,t)=>aa(n(e,t),e=>new ax(e))}function dx(e,t){let n=lx(e,t);return(e,t)=>sx(n(e,t))}const aoe=dx;function fx(e,t){let n=fb(e,t);return(e,t)=>ox(n(e,t))}const px=fx;function mx(e,t){let n=fx(e,t);return(e,t)=>sx(n(e,t))}const hx=mx,gx=bb;function _x(e){return P(e,nx)&&e[nx]===nx}const vx=/*#__PURE__*/ $b(e=>gx(ky(e.ast),{schema:e})),yx=/*#__PURE__*/ $b(e=>{let t=Rx(e);return gx(Fie(e.ast),{schema:t})}),bx=/*#__PURE__*/ $b(e=>gx(Ny(e.ast),{schema:e})),ooe=/*#__PURE__*/ $b(e=>gx(Py(e.ast),{schema:e}));function xx(e){let t=gx(new Tv(e),{literal:e,transform(n){return t.pipe(zx(xx(n),{decode:x_(()=>n),encode:x_(()=>e)}))}});return t}function soe(e){return e.map(e=>_x(e)?e.ast:new Tv(e))}function Sx(e){return gx(new _ie(soe(e)),{parts:e})}const Cx=/*#__PURE__*/ gx(hie),wx=/*#__PURE__*/ gx(gie),Tx=/*#__PURE__*/ gx(Sv),coe=/*#__PURE__*/ gx(yv),loe=/*#__PURE__*/ gx(xv),W=/*#__PURE__*/ gx(Dv),Ex=/*#__PURE__*/ gx(kv),Dx=/*#__PURE__*/ gx(bie),Ox=/*#__PURE__*/ gx(mie);function kx(e,t){return gx(e,{fields:t,mapFields(e,t){let n=e(this.fields);return kx(Wv(n,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function G(e){return kx(Wv(e,void 0),e)}function Ax(e){return $b(t=>t.mapFields(Xae(e)))}function jx(e,t){return gx(Rie(e.ast,t.ast),{key:e,value:t})}function Mx(e,t){return gx(Eie(e.ast,t.map(Gv)),{schema:e,records:t})}function Nx(e,t){return gx(e,{elements:t,mapElements(e,t){let n=e(this.elements);return Nx(Kv(n,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function uoe(e){return Nx(Kv(e),e)}const K=/*#__PURE__*/ $b(e=>gx(new Av(!1,[],[e.ast]),{value:e})),Px=/*#__PURE__*/ $b(e=>gx(new Av(!1,[e.ast],[e.ast]),{value:e}));function Fx(e,t){return gx(e,{members:t,mapMembers(e,t){let n=e(this.members);return Fx(qv(n,this.ast.options,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function q(e,t){return Fx(qv(e,t,void 0),e)}function Ix(e){let t=e.map(xx);return gx(qv(t,void 0,void 0),{literals:e,members:t,mapMembers(e){return q(e(this.members))},pick(e){return Ix(e)},transform(e){return q(t.map((t,n)=>t.transform(e[n])))}})}const Lx=/*#__PURE__*/ $b(e=>q([e,coe])),Rx=/*#__PURE__*/ $b(e=>q([e,loe]));function zx(e,t){return n=>gx(Ay(n.ast,e.ast,t?R_(t):U_()),{from:n,to:e})}function doe(){return(e,t)=>Wx()(e,{decode:t,encode:v_})}const foe=/*#__PURE__*/ Ix([`true`,`yes`,`on`,`1`,`y`]),poe=/*#__PURE__*/ Ix([`false`,`no`,`off`,`0`,`n`]),moe=/*#__PURE__*/ Ix([...foe.literals,...poe.literals]).pipe(/*#__PURE__*/ zx(Dx,/*#__PURE__*/ B_({decode:e=>e===`true`||e===`yes`||e===`on`||e===`1`||e===`y`,encode:e=>e?`true`:`false`})));function hoe(e){return t=>zx(bx(t),e)(t)}function Bx(e){return t=>gx(Iie(t.ast,e),{schema:t})}function Vx(e){return xx(e).pipe(Bx(I(e)))}function Hx(e,t){return G({_tag:Vx(e),...t})}function Ux(){return e=>e}function goe(e,t){return ix(t=>t instanceof e,t)}function Wx(){return(e,t)=>new pv(e.ast,R_(t))}const Gx=uy,Kx=`^\\S[\\s\\S]*\\S$|^\\S$|^$`;function _oe(e){let t=new globalThis.RegExp(Kx);return Gx(e=>e.trim()===e,{expected:`a string with no leading or trailing whitespace`,representation:{id:`effect/schema/isTrimmed`,payload:null},toJsonSchema:()=>({pattern:t.source}),toCode:()=>({runtime:`Schema.isTrimmed()`}),arbitraryConstraint:{patterns:[{source:Kx,flags:``}]},...e})}function qx(e,t){let n=e.source,r=e.flags,i=/^[dg]*uy?$/.test(r),a=r===``?`new RegExp(${Tn(n)})`:`new RegExp(${Tn(n)}, ${Tn(r)})`;return fy(e,{toJsonSchema:()=>i?{pattern:r.endsWith(`y`)?`^(?:${n})`:n}:[{},!0],toCode:()=>({runtime:`Schema.isPattern(${a})`}),...t})}const Jx=/*#__PURE__*/ gx(dy);function voe(e){let t=ui(e.order),n=e.formatter??Tn;return(r,i)=>Gx(e=>t(e,r),{expected:`a value greater than or equal to ${n(r)}`,arbitraryConstraint:{order:e.order,minimum:r},...e.annotate?.(r),...i})}function yoe(e){let t=ui(e.order),n=li(e.order),r=Kee(e.order),i=Gee(e.order),a=e.formatter??Tn;return(o,s)=>{let c=o.exclusiveMinimum?n:t,l=o.exclusiveMaximum?i:r;return Gx(e=>c(e,o.minimum)&&l(e,o.maximum),{expected:`a value between ${a(o.minimum)}${o.exclusiveMinimum?` (excluded)`:``} and ${a(o.maximum)}${o.exclusiveMaximum?` (excluded)`:``}`,arbitraryConstraint:{order:e.order,minimum:o.minimum,maximum:o.maximum,...o.exclusiveMinimum&&{exclusiveMinimum:!0},...o.exclusiveMaximum&&{exclusiveMaximum:!0}},...e.annotate?.(o),...s})}}function Yx(e){if(!globalThis.Number.isFinite(e))throw new globalThis.RangeError(`Expected a finite number, got ${Tn(e)}`);return e}const boe=/*#__PURE__*/ voe({order:ci,annotate:e=>({representation:{id:`effect/schema/isGreaterThanOrEqualTo`,payload:{minimum:Yx(e)}},toJsonSchema:()=>({minimum:e}),toCode:()=>({runtime:`Schema.isGreaterThanOrEqualTo(${Tn(e)})`})})}),Xx=/*#__PURE__*/ yoe({order:ci,annotate:e=>{let t=e.exclusiveMinimum?!0:void 0,n=e.exclusiveMaximum?!0:void 0;return{representation:{id:`effect/schema/isBetween`,payload:{minimum:Yx(e.minimum),maximum:Yx(e.maximum),...t&&{exclusiveMinimum:t},...n&&{exclusiveMaximum:n}}},toJsonSchema:()=>({[t?`exclusiveMinimum`:`minimum`]:e.minimum,[n?`exclusiveMaximum`:`maximum`]:e.maximum}),toCode:()=>({runtime:`Schema.isBetween({ minimum: ${Tn(e.minimum)}, maximum: ${Tn(e.maximum)}, exclusiveMinimum: ${Tn(t)}, exclusiveMaximum: ${Tn(n)} })`})}}});function xoe(e){return Gx(e=>globalThis.Number.isSafeInteger(e),{expected:`an integer`,representation:{id:`effect/schema/isInt`,payload:null},toJsonSchema:()=>({type:`integer`,minimum:globalThis.Number.MIN_SAFE_INTEGER,maximum:globalThis.Number.MAX_SAFE_INTEGER}),toCode:()=>({runtime:`Schema.isInt()`}),arbitraryConstraint:{number:`integer`},...e})}const Zx=/*#__PURE__*/ Ex.check(/*#__PURE__*/ xoe());function Qx(e,t){return e=tS(e),$x(e,Math.ceil(e/2),t)}function $x(e,t,n){return Gx(t=>t.length>=e,{expected:`a value with a length of at least ${e}`,representation:{id:`effect/schema/isMinLength`,payload:{minLength:e}},toJsonSchema:({type:n})=>n===`string`?e<=1?{minLength:t}:[{minLength:t},!0]:n===`array`?{minItems:e}:n===void 0?[{minLength:t,minItems:e},!0]:[{},!0],toCode:()=>({runtime:`Schema.isMinLength(${e})`}),[_g]:!0,arbitraryConstraint:{minLength:e},...n})}function Soe(e){return $x(1,1,e)}function eS(e,t){return e=tS(e),Gx(t=>t.length<=e,{expected:`a value with a length of at most ${e}`,representation:{id:`effect/schema/isMaxLength`,payload:{maxLength:e}},toJsonSchema:({type:t})=>t===`string`?e===0?{maxLength:e}:[{maxLength:e},!0]:t===`array`?{maxItems:e}:t===void 0?[{maxLength:e,maxItems:e},!0]:[{},!0],toCode:()=>({runtime:`Schema.isMaxLength(${e})`}),[_g]:!0,arbitraryConstraint:{maxLength:e},...t})}function tS(e){if(!globalThis.Number.isFinite(e))throw new globalThis.RangeError(`Expected a finite number, got ${e}`);return Math.max(0,Math.floor(e))}function Coe(e,t){return e=tS(e),Gx(t=>Reflect.ownKeys(t).length>=e,{expected:`a value with at least ${e===1?`1 entry`:`${e} entries`}`,representation:{id:`effect/schema/isMinProperties`,payload:{minProperties:e}},toJsonSchema:({type:t})=>t===`object`?{minProperties:e}:[{minProperties:e},!0],toCode:()=>({runtime:`Schema.isMinProperties(${e})`}),[_g]:!0,arbitraryConstraint:{minProperties:e},...t})}function nS(e){return Gx(e=>Fa(e).length===e.length,{expected:`an array with unique items`,representation:{id:`effect/schema/isUnique`,payload:null},toJsonSchema:()=>({uniqueItems:!0}),toCode:()=>({runtime:`Schema.isUnique()`}),arbitraryConstraint:{uniqueBy:N},...e})}const rS=/*#__PURE__*/ W.check(/*#__PURE__*/ Soe()),woe=e=>+(e?.includeStack===!0)|(e?.excludeCause===!0?2:0),iS=e=>{switch(e){case 0:return;case 1:return{includeStack:!0};case 2:return{excludeCause:!0};case 3:return{includeStack:!0,excludeCause:!0}}},aS=[];function oS(e){let t=woe(e),n=aS[t];if(n!==void 0)return n;let r=PS.pipe(zx(Tx,Z_(iS(t))));return aS[t]=r,r}globalThis.RegExp,globalThis.URL;const Toe=/*#__PURE__*/ W.annotate({expected:`a string that will be decoded as JSON`,contentMediaType:`application/json`});function sS(e,t){return Toe.pipe(zx(e,$_(t)))}const cS=/*#__PURE__*/ sS(Tx);globalThis.File,globalThis.FormData,globalThis.URLSearchParams;const lS=/*#__PURE__*/ W.check(/*#__PURE__*/ _oe()),uS=/*#__PURE__*/ W.annotate({expected:`a string that will be decoded as a trimmed string`}).pipe(/*#__PURE__*/ zx(lS,/*#__PURE__*/ V_())),dS=/*#__PURE__*/ W.annotate({expected:`a base64 encoded string that will be decoded as Uint8Array`,format:`byte`,contentEncoding:`base64`}),fS=/*#__PURE__*/ goe(globalThis.Uint8Array,{representation:{id:`effect/schema/Uint8Array`,payload:null},toCode:()=>({runtime:`Schema.Uint8Array`,Type:`globalThis.Uint8Array`}),expected:`Uint8Array`,toCodecJson:()=>Wx()(dS,Q_)}),pS=/*#__PURE__*/ dS.pipe(/*#__PURE__*/ zx(fS,Q_));function mS(e,t){let n=rx()([e,t],([e,t])=>(n,r,i)=>{if(!gre(n))return B(new Ug(r,n,i));switch(n._tag){case`Fail`:return $p(db(e)(n.error,i),{onSuccess:ku,onFailure:e=>Gg(r,`error`,e,n,i)});case`Die`:return $p(db(t)(n.defect,i),{onSuccess:Au,onFailure:e=>Gg(r,`defect`,e,n,i)});case`Interrupt`:return I(n)}},{representation:{id:`effect/schema/CauseReason`,payload:null},toCode:({typeParameters:e})=>({runtime:`Schema.CauseReason(${e[0].runtime}, ${e[1].runtime})`,Type:`Cause.Failure<${e[0].Type}, ${e[1].Type}>`,importDeclarations:[`import * as Cause from "effect/Cause"`]}),expected:`Cause.Failure`,toCodec:([e,t])=>Wx()(q([G({_tag:xx(`Fail`),error:e}),G({_tag:xx(`Die`),defect:t}),G({_tag:xx(`Interrupt`),fiberId:Rx(Jx)})]),B_({decode:e=>{switch(e._tag){case`Fail`:return ku(e.error);case`Die`:return Au(e.defect);case`Interrupt`:return yre(e.fiberId)}},encode:e=>{switch(e._tag){case`Fail`:return{_tag:`Fail`,error:e.error};case`Die`:return{_tag:`Die`,defect:e.defect};case`Interrupt`:return{_tag:`Interrupt`,fiberId:e.fiberId}}}}))});return gx(n.ast,{error:e,defect:t})}function hS(e,t){let n=rx()([e,t],([e,t])=>{let n=K(mS(e,t));return(e,t,r)=>hre(e)?$p(db(n)(e.reasons,r),{onSuccess:Du,onFailure:n=>Gg(t,`failures`,n,e,r)}):B(new Ug(t,e,r))},{representation:{id:`effect/schema/Cause`,payload:null},toCode:({typeParameters:e})=>({runtime:`Schema.Cause(${e[0].runtime}, ${e[1].runtime})`,Type:`Cause.Cause<${e[0].Type}, ${e[1].Type}>`,importDeclarations:[`import * as Cause from "effect/Cause"`]}),expected:`Cause`,toCodec:([e,t])=>Wx()(K(mS(e,t)),B_({decode:Du,encode:({reasons:e})=>e}))});return gx(n.ast,{error:e,defect:t})}const gS=/*#__PURE__*/ z_({decode:(e,t)=>hi(Km(e),{onNone:()=>B(new Wg({expected:`a valid UTC DateTime string`},e,t)),onSome:e=>I(qm(e))}),encode:e=>I(Ym(e))});function _S(e,t,n){let r=Math.max(t,e?.minimum===void 0?t:e.minimum.epochMilliseconds+ +(e.exclusiveMinimum===!0)),i=Math.min(n,e?.maximum===void 0?n:e.maximum.epochMilliseconds-+(e.exclusiveMaximum===!0));return r<=i?[r,i]:[t,n]}function vS(e,t){return Zx.check(Xx({minimum:e,maximum:t}))}const yS=/*#__PURE__*/ ix(e=>Hm(e)&&Um(e),{representation:{id:`effect/schema/DateTimeUtc`,payload:null},toCode:()=>({runtime:`Schema.DateTimeUtc`,Type:`DateTime.Utc`,importDeclarations:[`import * as DateTime from "effect/DateTime"`]}),expected:`DateTime.Utc`,toCodecArbitrary:({constraint:e})=>{let[t,n]=_S(e,-864e13,864e13);return doe()(vS(t,n),x_(Gm))},toCodecJson:()=>Wx()(W,gS),toFormatter:()=>e=>e.toString()}),bS=/*#__PURE__*/ W.annotate({expected:`a string that will be decoded as a DateTime.Utc`}).pipe(/*#__PURE__*/ zx(yS,gS));function xS(e,t,n){let r=rx()([e,t,n],([e,t,n])=>{let r=hS(t,n);return(t,n,i)=>{if(!Hu(t))return B(new Ug(n,t,i));switch(t._tag){case`Success`:return $p(db(e)(t.value,i),{onSuccess:Uu,onFailure:e=>Gg(n,`value`,e,t,i)});case`Failure`:return $p(db(r)(t.cause,i),{onSuccess:Wu,onFailure:e=>Gg(n,`cause`,e,t,i)})}}},{representation:{id:`effect/schema/Exit`,payload:null},toCode:({typeParameters:e})=>({runtime:`Schema.Exit(${e[0].runtime}, ${e[1].runtime}, ${e[2].runtime})`,Type:`Exit.Exit<${e[0].Type}, ${e[1].Type}, ${e[2].Type}>`,importDeclarations:[`import * as Exit from "effect/Exit"`]}),expected:`Exit`,toCodec:([e,t,n])=>Wx()(q([G({_tag:xx(`Success`),value:e}),G({_tag:xx(`Failure`),cause:hS(t,n)})]),B_({decode:e=>e._tag===`Success`?Uu(e.value):Wu(e.cause),encode:e=>Yu(e)?{_tag:`Success`,value:e.value}:{_tag:`Failure`,cause:e.cause}}))});return gx(r.ast,{value:e,error:t,defect:n})}function SS(e,t){let n=typeof t?.label==`string`?t.label:void 0,r=t?.disallowJsonEncode===!0,i=n===void 0?r?{disallowJsonEncode:!0}:void 0:r?{label:n,disallowJsonEncode:!0}:{label:n},a=n===void 0?void 0:db(xx(n)),o=rx()([e],([e])=>(t,n,r)=>{if(Lh(t)){let i=a===void 0?R:Qp(a(t.label,r),e=>new zg([`label`],e));return em(i,()=>$p(db(e)(Bh(t),r),{onSuccess:e=>Rh(e,{label:t.label}),onFailure:()=>new Hg(n,[new zg([`value`],new Wg(void 0,t,r))],t,r)}))}return B(new Ug(n,t,r))},{representation:{id:`effect/schema/Redacted`,payload:i??null},toCode:({typeParameters:e})=>({runtime:i===void 0?`Schema.Redacted(${e[0].runtime})`:`Schema.Redacted(${e[0].runtime}, ${Tn(i)})`,Type:`Redacted.Redacted<${e[0].Type}>`,importDeclarations:[`import * as Redacted from "effect/Redacted"`]}),expected:`Redacted`,toCodecJson:([e])=>Wx()(e,{decode:x_(e=>Rh(e,{label:n})),encode:r?__(e=>`Cannot serialize Redacted`+(mi(e)&&typeof e.value.label==`string`?` with label: "${e.value.label}"`:``)):x_(Bh)}),toEquivalence:([e])=>Vh(e)});return gx(o.ast,{value:e})}const CS=/*#__PURE__*/ globalThis.Symbol.for(`immer-draftable`),wS={};function TS(e,t,n,r,i){let a=Doe(n,t,r),o=ES(t),s=class extends e{constructor(...[e,t]){let r=t?.[`~payload`],i=r?.token===wS?r.value:n.make(e??{},t);super(i,{...t,disableChecks:!0,"~payload":{token:wS,value:i}})}static[nx]=nx;get[o](){return o}static[CS]=!0;static identifier=t;static fields=n.fields;static get ast(){return a(this).ast}static pipe(){return ut(this,arguments)}static rebuild(e){return a(this).rebuild(e)}static make(e,t){return lb(a(this))(e??{},t)}static makeOption(e,t){return cb(a(this))(e??{},t)}static makeEffect(e,t){return a(this).makeEffect(e??{},t)}static annotate(e){return this.rebuild(yy(this.ast,e))}static annotateKey(e){return this.rebuild(Oy(this.ast,e))}static check(...e){return this.rebuild(xy(this.ast,e))}static extend(e){return(t,r)=>{let a=DS(t)?t:G(t),o={...n.fields,...a.fields},s=Wv(o,n.ast.checks,{identifier:e});return TS(this,e,kx(xy(s,a.ast.checks),o),r,i)}}static mapFields(e,t){return n.mapFields(e,t)}};return i!==void 0&&Object.assign(s.prototype,i(t)),s}function Eoe(e){return new I_(x_(t=>new e(t,{"~payload":{token:wS,value:t}})),b_())}function ES(e){return`~effect/Schema/Class/${e}`}function Doe(e,t,n){let r;return i=>{if(r!==void 0)return r;let a=ES(t),o=e=>e instanceof i||P(e,a),s=Eoe(i);return r=zx(gx(new vv([e.ast],()=>(e,t,n)=>o(e)?I(e):B(new Ug(t,e,n)),{identifier:t,[bg]:([e])=>({isConstructed:o,link:new pv(e,s)}),toCodec:([e])=>new pv(e.ast,s),toEquivalence:([e])=>e,toFormatter:([e])=>t=>`${i.identifier}(${e(t)})`,[yg]:Xv(e.ast),...n})),s)(e)}}function DS(e){return _x(e)}const OS=e=>(t,n)=>{let r=DS(t)?t:G(t);return TS(ho,e,r,n,e=>({toString(){return`${e}(${Tn({...this})})`}}))},kS=e=>(t,n)=>{let r=DS(t)?t:G(t);return TS(Or,e,r,n,e=>({name:e}))},AS=e=>(t,n,r)=>{let i=DS(n)?n.mapFields(e=>({_tag:Vx(t),...e}),{unsafePreserveChecks:!0}):Hx(t,n);return kS(e??t)(i,r)};function Ooe(e,t){return Wae(qae(jb(e.ast),t),t)}const jS=Eae,MS=kae,NS=Aae,PS=/*#__PURE__*/ gx(/*#__PURE__*/ yy(Xy,{toCode:()=>({runtime:`Schema.Json`,Type:`Schema.Json`})})),FS=/*#__PURE__*/ jx(W,PS);function IS(){return Object.assign(e=>e,{option:e=>fi(e),result:e=>$i(e),is:e=>!0})}const LS=Ds,RS=Os,zS=_s,BS=Qne,VS=Wl,HS=Gl,US=`~effect/MutableRef`,WS={[US]:US,...Zn,toJSON(){return{_id:`MutableRef`,current:Mn(this.current)}}},GS=e=>{let t=Object.create(WS);return t.current=e,t},KS=/*#__PURE__*/ M(2,(e,t)=>(e.current=t,e)),qS=/*#__PURE__*/ Symbol.for(`effect/MutableList/Empty`),JS=()=>({head:void 0,tail:void 0,length:0}),YS=e=>{let t=e.head;t.offset>=1024&&t===e.tail&&t.mutable&&(t.array.length-t.offset)*8<=t.offset&&(e.head=e.tail={array:t.array.slice(t.offset),mutable:!0,offset:0,next:void 0})},XS=()=>({array:[],mutable:!0,offset:0,next:void 0}),ZS=(e,t)=>{e.tail?e.tail.mutable||(e.tail.next=XS(),e.tail=e.tail.next):e.head=e.tail=XS(),e.tail.array.push(t),e.length++},QS=(e,t)=>{e.head={array:[t],mutable:!0,offset:0,next:e.head},e.tail||=e.head,e.length++},$S=(e,t)=>eC(e,xa(t),!Array.isArray(t)),eC=(e,t,n=!1)=>{if(t.length===0)return 0;let r={array:t,mutable:n,offset:0,next:void 0};return e.head?e.tail=e.tail.next=r:e.head=e.tail=r,e.length+=t.length,t.length},tC=e=>{e.head=e.tail=void 0,e.length=0},nC=(e,t)=>{if(t=Qi(t),t<=0||!e.head)return[];if(t=Math.min(t,e.length),t===e.length&&e.head?.offset===0&&!e.head.next){let t=e.head.array;return tC(e),t}let n=Array(t),r=0,i=e.head;for(;i;){for(;i.offset<i.array.length;)if(n[r++]=i.array[i.offset],i.mutable&&(i.array[i.offset]=void 0),i.offset++,r===t)return e.head=i.offset===i.array.length&&i.next?i.next:i,e.length-=t,e.length===0?tC(e):YS(e),n;i=i.next}return tC(e),n},rC=e=>nC(e,e.length),iC=e=>{if(!e.head)return qS;let t=e.head.array[e.head.offset];return e.head.mutable&&(e.head.array[e.head.offset]=void 0),e.head.offset++,e.length--,e.head.offset===e.head.array.length?e.head.next?e.head=e.head.next:tC(e):YS(e),t},aC=(e,t)=>{let n=[],r=e.head,i=0;for(;r;){for(let e=r.offset;e<r.array.length;e++)t(r.array[e],i++)&&n.push(r.array[e]);r=r.next}n.length===0?tC(e):(e.head=e.tail={array:n,mutable:!0,offset:0,next:void 0},e.length=n.length)},oC=(e,t)=>aC(e,e=>e!==t),sC=e=>L(()=>Ioe(e.atomicPubSub(),/* @__PURE__ */ new Map,vd(),VS(!1),GS(!1),e.strategy(),GS(di()))),cC=e=>sC({atomicPubSub:()=>lC(e),strategy:()=>new Loe}),lC=e=>{let t=e?.replay;return new Moe(t&&t>0?new Boe(Math.ceil(t)):void 0)},uC=/*#__PURE__*/ M(2,(e,t)=>Mf(()=>e.shutdownFlag.current||mi(e.ended.current)?I(!1):e.pubsub.publish(t)?(e.strategy.completeSubscribersUnsafe(e.pubsub,e.subscribers),I(!0)):e.strategy.handleSurplus(e.pubsub,e.subscribers,[t],e.shutdownFlag,e.ended))),dC=e=>jp(dp(t=>{let n=Wi(t,gd),r=Cd(e.scope),i=joe(e.pubsub,e.subscribers,e.strategy,e.ended);return xd(r,fC(i)).pipe(Vf(bd(n,e=>wd(r,e))),Gf(i))})),fC=e=>jp(zf(t=>(KS(e.shutdownFlag,!0),Df(rC(e.pollers),e=>cd(e,t.id),{discard:!0,concurrency:`unbounded`}).pipe(Hf(()=>L(()=>{e.subscribers.delete(e.subscription),e.subscription.unsubscribe(),e.replayWindow.close(),e.strategy.onPubSubEmptySpaceUnsafe(e.pubsub,e.subscribers)})),rie(e.shutdownHook.open),Kf)))),pC=e=>Mf(()=>{if(e.shutdownFlag.current)return Op;if(e.replayWindow.remaining>0){let t=e.replayWindow.take();return I(t)}let t=e.pollers.length===0?e.subscription.poll():qS;return t===qS?mC(e):(e.strategy.onPubSubEmptySpaceUnsafe(e.pubsub,e.subscribers),I(t))}),mC=e=>Nf(t=>{if(e.shutdownFlag.current)return t(Op);if(mi(e.ended.current)){let n=e.pollers.length===0?e.subscription.poll():qS;return n===qS?t(I(e.ended.current.value)):(e.strategy.onPubSubEmptySpaceUnsafe(e.pubsub,e.subscribers),t(I(n)))}let n=rd(),r=e.subscribers.get(e.subscription);return r||(r=/* @__PURE__ */ new Set,e.subscribers.set(e.subscription,r)),r.add(e.pollers),ZS(e.pollers,n),e.strategy.completePollersUnsafe(e.pubsub,e.subscribers,e.subscription,e.pollers),n.effect?t(n.effect):(n.resumes=[t],L(()=>oC(e.pollers,n)))}),hC=/*#__PURE__*/ Symbol.for(`effect/PubSub/AbsentValue`),koe=(e,t,n)=>{e.has(t)||e.set(t,/* @__PURE__ */ new Set),e.get(t).add(n)},Aoe=(e,t,n)=>{if(!e.has(t))return;let r=e.get(t);r.delete(n),r.size===0&&e.delete(t)},joe=(e,t,n,r)=>new Poe(e,t,e.subscribe(),JS(),VS(!1),GS(!1),n,e.replayWindow(),r);var Moe=class{publisherHead={value:hC,replayIndex:void 0,subscribers:0,next:null};publisherTail=this.publisherHead;publisherIndex=0;subscribersIndex=0;capacity=2**53-1;replayBuffer;constructor(e){this.replayBuffer=e}replayWindow(){return this.replayBuffer?new Voe(this.replayBuffer):Hoe}isEmpty(){return this.publisherHead===this.publisherTail}isFull(){return!1}size(){return this.publisherIndex-this.subscribersIndex}publish(e){let t=this.replayBuffer?.offer(e),n=this.publisherTail.subscribers;if(n!==0){let r={value:e,replayIndex:t,subscribers:n,next:null};this.publisherTail.next=r,this.publisherTail=this.publisherTail.next,this.publisherIndex+=1}return!0}publishAll(e){if(this.publisherTail.subscribers!==0)for(let t of e)this.publish(t);else this.replayBuffer&&this.replayBuffer.offerAll(e);return[]}slide(){if(this.publisherHead!==this.publisherTail){let e=this.publisherHead.next,t=e.value;this.publisherHead=this.publisherHead.next,this.publisherHead.value=hC,this.subscribersIndex+=1,this.replayBuffer?.slide(t,e.replayIndex)}}subscribe(){return this.publisherTail.subscribers+=1,new Noe(this,this.publisherTail,this.publisherIndex,!1)}},Noe=class{self;subscriberHead;subscriberIndex;unsubscribed;constructor(e,t,n,r){this.self=e,this.subscriberHead=t,this.subscriberIndex=n,this.unsubscribed=r}isEmpty(){if(this.unsubscribed)return!0;let e=!0,t=!0;for(;t;)this.subscriberHead===this.self.publisherTail?t=!1:this.subscriberHead.next.value===hC?(this.subscriberHead=this.subscriberHead.next,this.subscriberIndex+=1):(e=!1,t=!1);return e}size(){return this.unsubscribed?0:this.self.publisherIndex-Math.max(this.subscriberIndex,this.self.subscribersIndex)}poll(){if(this.unsubscribed)return qS;let e=!0,t=qS;for(;e;)if(this.subscriberHead===this.self.publisherTail)e=!1;else{let n=this.subscriberHead.next.value;n!==hC&&(t=n,--this.subscriberHead.subscribers,this.subscriberHead.subscribers===0&&(this.self.publisherHead=this.self.publisherHead.next,this.self.publisherHead.value=hC,this.self.subscribersIndex+=1),e=!1),this.subscriberHead=this.subscriberHead.next,this.subscriberIndex+=1}return t}pollUpTo(e){e=Qi(e);let t=[],n=0;for(;n!==e;){let r=this.poll();r===qS?n=e:(t.push(r),n+=1)}return t}unsubscribe(){if(!this.unsubscribed)for(this.unsubscribed=!0,--this.self.publisherTail.subscribers;this.subscriberHead!==this.self.publisherTail;)this.subscriberHead.next.value!==hC&&(--this.subscriberHead.subscribers,this.subscriberHead.subscribers===0&&(this.self.publisherHead=this.self.publisherHead.next,this.self.publisherHead.value=hC,this.self.subscribersIndex+=1)),this.subscriberHead=this.subscriberHead.next}},Poe=class{"~effect/PubSub/Subscription"={_A:N};pubsub;subscribers;subscription;pollers;shutdownHook;shutdownFlag;strategy;replayWindow;ended;constructor(e,t,n,r,i,a,o,s,c){this.pubsub=e,this.subscribers=t,this.subscription=n,this.pollers=r,this.shutdownHook=i,this.shutdownFlag=a,this.strategy=o,this.replayWindow=s,this.ended=c}pipe(){return ut(this,arguments)}},Foe=class{"~effect/PubSub"={_A:N};pubsub;subscribers;scope;shutdownHook;shutdownFlag;strategy;ended;constructor(e,t,n,r,i,a,o){this.pubsub=e,this.subscribers=t,this.scope=n,this.shutdownHook=r,this.shutdownFlag=i,this.strategy=a,this.ended=o}pipe(){return ut(this,arguments)}};const Ioe=(e,t,n,r,i,a,o)=>new Foe(e,t,n,r,i,a,o);var Loe=class{get shutdown(){return R}handleSurplus(e,t,n,r){return I(!1)}onPubSubEmptySpaceUnsafe(e,t){}completePollersUnsafe(e,t,n,r){return Roe(this,e,t,n,r)}completeSubscribersUnsafe(e,t){return zoe(this,e,t)}};const Roe=(e,t,n,r,i)=>{let a=!0;for(;a&&!r.isEmpty();){let o=iC(i);if(o===qS)Aoe(n,r,i),i.length===0?a=!1:koe(n,r,i);else{let a=r.poll();a===qS?QS(i,o):(fd(o,Uu(a)),e.onPubSubEmptySpaceUnsafe(t,n))}}},zoe=(e,t,n)=>{for(let[r,i]of n)for(let a of i)e.completePollersUnsafe(t,n,r,a)};var Boe=class{capacity;head={value:hC,index:0,next:null};tail=this.head;slideValues=[];size=0;index=0;publisherIndex=0;constructor(e){this.capacity=e}slide(e,t){this.slideValues[this.index%this.capacity]={value:e,index:t},this.index++}offer(e){let t=this.publisherIndex++;return this.tail.value=e,this.tail.index=t,this.tail.next={value:hC,index:0,next:null},this.tail=this.tail.next,this.size===this.capacity?this.head=this.head.next:this.size+=1,t}offerAll(e){for(let t of e)this.offer(t)}},Voe=class{buffer;values;index=0;remaining;slideIndex;newestIndex=-1;constructor(e){this.buffer=e,this.remaining=e.size,this.slideIndex=e.index,this.values=Array(this.remaining);let t=e.head;for(let e=0;e<this.remaining;e++)this.values[e]=t.value,this.newestIndex=t.index,t=t.next}close(){this.values.length=0,this.remaining=0}sync(){let e=this.buffer.index-this.slideIndex;if(e===0||this.remaining===0)return;let t=Math.min(e,this.buffer.capacity),n=this.buffer.index-t;for(let e=0;e<t;e++){let t=this.buffer.slideValues[(n+e)%this.buffer.capacity];t.index>this.newestIndex&&(this.index=(this.index+1)%this.values.length,this.values[(this.index+this.remaining-1)%this.values.length]=t.value,this.newestIndex=t.index)}this.slideIndex=this.buffer.index}take(){if(this.remaining===0)return;this.sync();let e=this.values[this.index];return this.values[this.index]=hC,this.index=(this.index+1)%this.values.length,this.remaining--,this.remaining===0&&this.close(),e}takeN(e){e=Qi(e);let t=Math.min(e,this.remaining),n=Array(t);for(let e=0;e<t;e++)n[e]=this.take();return n}takeAll(){return this.takeN(this.remaining)}};const Hoe={remaining:0,take:()=>void 0,takeN:()=>[],takeAll:()=>[],close:()=>void 0},gC={_A:N,_E:N},Uoe={"~effect/Queue":gC,"~effect/Queue/Enqueue":gC,"~effect/Queue/Dequeue":gC,...Zn,toJSON(){return{_id:`effect/Queue`,state:this.state._tag,size:Yoe(this)}}},_C=e=>Er(t=>{let n=Object.create(Uoe);return n.dispatcher=t.currentDispatcher,n.capacity=e?.capacity??1/0,n.strategy=e?.strategy??`suspend`,n.messages=JS(),n.scheduleRunning=!1,n.state={_tag:`Open`,takers:/* @__PURE__ */ new Set,offers:/* @__PURE__ */ new Set,awaiters:/* @__PURE__ */ new Set},js(n)}),vC=e=>_C({capacity:e}),Woe=e=>_C({capacity:e,strategy:`dropping`}),yC=/*#__PURE__*/ M(2,(e,t)=>Fs(()=>bC(e,t)?MC:e.state._tag===`Open`&&e.strategy===`suspend`?$oe(e,t):jC)),bC=(e,t)=>e.state._tag===`Open`?e.messages.length>=e.capacity?e.strategy===`sliding`?(iC(e.messages),ZS(e.messages,t),!0):e.capacity<=0&&e.state.takers.size>0&&(ZS(e.messages,t),NC(e),!0):(ZS(e.messages,t),PC(e),!0):!1,Goe=/*#__PURE__*/ M(2,(e,t)=>Ys(n=>{let r=Koe(e,t);return r.length===0||e.strategy===`dropping`?n(br(r)):RC(e,{_tag:`Array`,remaining:r,offset:0,resume:n})})),Koe=(e,t)=>{if(e.state._tag!==`Open`)return xa(t);if(e.capacity===1/0||e.strategy===`sliding`)return $S(e.messages,t),e.strategy===`sliding`&&nC(e.messages,e.messages.length-e.capacity),PC(e),[];let n=e.capacity<=0?e.state.takers.size:e.capacity-e.messages.length;if(n===0)return xa(t);let r=[],i=0;for(let a of t)i<n?ZS(e.messages,a):r.push(a),i++;return PC(e),r},xC=/*#__PURE__*/ M(2,(e,t)=>Ps(()=>SC(e,t))),SC=(e,t)=>{if(e.state._tag!==`Open`)return!1;let n=Cr(t),r=Zte(n,Xoe);return e.state.offers.size===0&&e.messages.length===0?(HC(e,r),!0):(e.state={...e.state,_tag:`Closing`,exit:r},PC(e),!0)},CC=e=>xC(e,ur(Pr())),wC=e=>SC(e,ur(Pr())),TC=e=>Ps(()=>EC(e)),EC=e=>{if(e.state._tag===`Done`)return!1;tC(e.messages);let t=e.state.offers;HC(e,e.state._tag===`Open`?Zoe:e.state.exit);for(let e of t)zC(e);return!0},DC=e=>OC(e,1,1/0),qoe=e=>Fs(()=>{let t=ja();return oc(gf(El({while:mt,body:pt(DC(e)),step(e){for(let n=0;n<e.length;n++)t.push(e[n])}}),()=>Hs),t)}),OC=/*#__PURE__*/ M(3,(e,t,n)=>(t=Qi(t),n=Qi(n),FC(()=>Qoe(e,t,n)??vc(LC(e,()=>IC(e,t)),OC(e,t,n))))),kC=e=>FC(()=>AC(e)??vc(LC(e,()=>IC(e,1)),kC(e))),Joe=e=>FC(()=>{let t=AC(e);return t===void 0?js(di()):t._tag===`Success`?js(fi(t.value)):js(di())}),AC=e=>{if(e.state._tag===`Done`)return e.state.exit;if(e.messages.length>0){let t=iC(e.messages);return VC(e),br(t)}if(e.capacity<=0&&e.state.offers.size>0){let t=BC(e.state.offers);return VC(e),br(t)}},Yoe=e=>e.state._tag===`Done`?0:e.messages.length,jC=/*#__PURE__*/ br(!1),MC=/*#__PURE__*/ br(!0),Xoe=/*#__PURE__*/ wr(/*#__PURE__*/ Pr()),Zoe=/*#__PURE__*/ Ec(),NC=e=>{if(e.state._tag!==`Done`&&e.state.takers.size!==0){for(let t of e.state.takers)if(t.ready()&&(e.state.takers.delete(t),t.resume(kc),e.messages.length===0))break}},PC=e=>{e.scheduleRunning||e.state._tag===`Done`||e.state.takers.size===0||(e.scheduleRunning=!0,e.dispatcher.scheduleTask(()=>{e.scheduleRunning=!1,NC(e)},0))},Qoe=(e,t,n)=>{if(e.state._tag===`Done`)return e.state.exit;if(n<=0||t<=0)return br([]);if(!IC(e,t))return;let r=e.messages.length>0?nC(e.messages,n):[BC(e.state.offers)];return VC(e),br(r)},FC=/*#__PURE__*/ vr({op:`QueueTake`,[Kn](e){let t=this[Gn]();return $n(t)?t[Kn](e):t}}),IC=(e,t)=>e.messages.length>=(e.state._tag===`Closing`?1:Math.min(t,e.capacity||1))||e.capacity<=0&&e.state._tag!==`Done`&&e.state.offers.size>0,LC=(e,t)=>Ys(n=>{if(e.state._tag===`Done`)return n(e.state.exit);if(t())return n(kc);let r={ready:t,resume:n};return e.state.takers.add(r),Ps(()=>{e.state._tag!==`Done`&&e.state.takers.delete(r)})}),$oe=(e,t)=>Ys(n=>bC(e,t)?n(MC):RC(e,{_tag:`Single`,message:t,resume:n})),RC=(e,t)=>{if(e.state._tag!==`Open`)return zC(t);let n=e.state.offers;return n.add(t),Ps(()=>{e.state._tag!==`Done`&&(n.delete(t),e.state._tag===`Closing`&&n.size===0&&e.messages.length===0&&HC(e,e.state.exit))})},zC=e=>e._tag===`Single`?e.resume(jC):e.resume(br(e.remaining.slice(e.offset))),BC=e=>{let t=e.values().next().value;if(t._tag===`Single`)return e.delete(t),t.resume(MC),t.message;let n=t.remaining[t.offset++];return t.offset===t.remaining.length&&(e.delete(t),t.resume(br([]))),n},VC=e=>{if(e.state._tag===`Done`)return _f(e.state.exit.cause);if(e.state.offers.size===0)return e.state._tag===`Closing`&&e.messages.length===0&&(HC(e,e.state.exit),_f(e.state.exit.cause));for(let t of e.state.offers){let n=e.capacity-e.messages.length;if(n<=0)break;if(t._tag===`Single`)ZS(e.messages,t.message),e.state.offers.delete(t),t.resume(MC);else{for(;t.offset<t.remaining.length;t.offset++){if(n===0)return!1;ZS(e.messages,t.remaining[t.offset]),n--}e.state.offers.delete(t),t.resume(br([]))}let r=e.state;if(r._tag===`Done`)return _f(r.exit.cause)}return!1},HC=(e,t)=>{if(e.state._tag===`Done`)return;let n=e.state;e.state={_tag:`Done`,exit:t};for(let e of n.takers)e.resume(t);n.takers.clear();for(let e of n.awaiters)e(t);n.awaiters.clear()},UC=e=>new GC(e),WC=(e,t,n)=>Ys(r=>{if(e.free>=t)return r(n);let i=()=>{e.free<t||(e.waiters.delete(i),r(n))};return e.waiters.add(i),Ps(()=>{e.waiters.delete(i)})});var GC=class{waiters=/*#__PURE__*/ new Set;taken=0;permits;constructor(e){this.permits=e}get free(){return this.permits-this.taken}take(e){let t=Fs(()=>this.free<e?WC(this,e,t):(this.taken+=e,js(e)));return t}takeIfAvailable(e){return Fs(()=>this.free<e?js(!1):(this.taken+=e,js(!0)))}releaseUnsafe(e,t){return this.taken-=t,this.waiters.size>0&&e.currentDispatcher.scheduleTask(()=>{for(let e of this.waiters){if(this.free<=0)break;e()}},0),this.free}resize(e){return Er(t=>(this.permits=e,this.free<0||this.releaseUnsafe(t,0),Hs))}release(e){return Er(t=>js(this.releaseUnsafe(t,e)))}get releaseAll(){return Er(e=>js(this.releaseUnsafe(e,this.taken)))}withPermits(e){return t=>Tl(n=>{let r=Fs(()=>{if(this.free<e){let t=WC(this,e,Hs);return Cc(n(t),()=>r)}return this.taken+=e,ml(n(t),()=>{this.releaseUnsafe(_s(),e)},!0)});return r})}withPermit=/*#__PURE__*/ this.withPermits(1);withPermitsIfAvailable(e){return t=>Tl(n=>this.free<e?Rs:(this.taken+=e,ml(n(_c(t)),()=>{this.releaseUnsafe(_s(),e)},!0)))}};const KC=e=>Ps(()=>new GC(e)),qC=`~effect/Channel`,JC=e=>P(e,qC),YC={[qC]:{_Env:N,_InErr:N,_InElem:N,_OutErr:N,_OutElem:N},pipe(){return ut(this,arguments)}},XC=e=>{let t=Object.create(YC);return t.transform=(t,n)=>Yf(e(t,n),e=>I(Ff(e))),t},ZC=(e,t)=>XC((n,r)=>V(ew(e)(n,r),e=>t(e,r))),QC=e=>XC((t,n)=>e),$C=e=>XC(U(function*(t,n){let r=Cd(n),i=e=>wd(r,bf(e)),a=yield*Cp(e(t,n,r),i);return Cp(a,i)})),ew=e=>e.transform,tw=(e,t,n)=>_C({capacity:n?.bufferSize,strategy:n?.strategy}).pipe(Hf(t=>xd(e,TC(t))),Hf(n=>yd(t(n),e).pipe(Yf(e=>xC(n,e)),Rp(e)))),nw=(e,t)=>XC((n,r)=>H(tw(r,e,t),DC)),rw=e=>XC((t,n)=>Mf(()=>ew(e())(t,n))),iw=e=>QC(L(()=>{let t=e();return Mf(()=>{let e=t.next();return e.done?Lu(e.value):I(e.value)})})),aw=e=>uw(I(e)),ow=/*#__PURE__*/ QC(/*#__PURE__*/ I(/*#__PURE__*/ Lu())),sw=e=>QC(I(B(e))),cw=e=>QC(Ff(e)),lw=e=>cw(Ou(e)),uw=e=>QC(L(()=>{let t=!1;return Mf(()=>t?Lu():(t=!0,e))})),dw=e=>QC(V(e,()=>Lu())),fw=e=>QC(I(DC(e))),pw=e=>XC((t,n)=>mw({scope:n,readable:e.evaluate(),onError:e.onError,releaseLockOnEnd:e.releaseLockOnEnd})),mw=e=>{let t=e.readable.getReader(),n=e.exit??GS(void 0),r=Mf(()=>n.current?n.current:cp(Af({try:()=>t.read(),catch:e.onError}),{onFailure:e=>n.current??Ff(e),onSuccess:({done:e,value:t})=>n.current?n.current:e?Lu():I(Ma(t))}));return Gf(xd(e.scope,e.releaseLockOnEnd?L(()=>t.releaseLock()):kf(()=>t.cancel().catch(_t))),r)},hw=/*#__PURE__*/ M(2,(e,t)=>ZC(e,e=>L(()=>{let n=0;return H(e,e=>t(e,n++))}))),gw=/*#__PURE__*/ M(2,(e,t)=>_w(e,e=>I(t(e)))),_w=/*#__PURE__*/ M(2,(e,t)=>ZC(e,e=>I(gf(e,e=>V(t(e),Lu))))),vw=e=>e===void 0||e!==`unbounded`&&e<=1,yw=/*#__PURE__*/ M(e=>JC(e[0]),(e,t,n)=>vw(n?.concurrency)?bw(e,t):xw(e,t,n)),bw=(e,t)=>XC((n,r)=>{let i=0;return H(ew(e)(n,r),V(e=>t(e,i++)))}),xw=(e,t,n)=>$C(U(function*(r,i,a){let o=0,s=yield*ew(e)(r,i),c=n.concurrency===`unbounded`?2**53-1:n.concurrency,l=yield*vC(0);yield*xd(a,TC(l));let u=Vp(yield*up()),d=BS(a);if(n.unordered){let e=UC(c),n=pt(e.release(1)),r=cp({onFailure:e=>V(xC(l,e),n),onSuccess:e=>V(yC(l,e),n)});yield*e.take(1).pipe(V(()=>s),V(e=>{let n=o++;return d(u(r(Mf(()=>t(e,n))))),R}),Np({disableYield:!0}),Yf(t=>e.withPermits(c-1)(xC(l,t))),Rp(a))}else{let e=yield*vC(c-2);yield*xd(a,TC(e)),yield*kC(e).pipe(Yre,V(e=>yC(l,e)),Np({disableYield:!0}),Yf(e=>xC(l,e)),Rp(a));let n,r=e=>{e._tag!==`Success`&&(n=e.cause,SC(l,e.cause))};yield*s.pipe(V(i=>{if(n)return Ff(n);let a=o++,s=u(Mf(()=>t(i,a)));return d(s),s.addObserver(r),yC(e,LS(s))}),Np({disableYield:!0}),Yf(t=>yC(e,Wu(t)).pipe(Vf(xC(e,t)))),Rp(a))}return kC(l)})),Sw=/*#__PURE__*/ M(e=>JC(e[0]),(e,t,n)=>vw(n?.concurrency)?Cw(e,t):ww(e,t,n)),Cw=(e,t)=>XC((n,r)=>H(ew(e)(n,r),e=>{let i,a,o=V(e,e=>(a??=Cd(r),em(ew(t(e))(n,a),e=>(i=s(e),i)))),s=gf(e=>{if(i=void 0,a.state._tag===`Empty`)return o;let t=wd(a,Ju);return a=void 0,V(t,()=>o)});return Mf(()=>i??o)})),ww=(e,t,n)=>e.pipe(hw(t),jw(n)),Tw=e=>Sw(e,N),Ew=/*#__PURE__*/ M(2,(e,t)=>XC((n,r)=>{let i=Cd(r);return H(ew(e)(n,i),e=>{let a=e.pipe(Yf(e=>{if(_f(e))return Ff(e);let o=i;return i=Cd(r),wd(o,Wu(e)).pipe(Vf(ew(t(e))(n,i)),V(e=>(a=e,e)))}));return Mf(()=>a)})})),Dw=/*#__PURE__*/ M(2,(e,t)=>Ew(e,e=>dw(V(t(e),t=>Ff(e))))),Ow=/*#__PURE__*/ M(3,(e,t,n)=>Ew(e,e=>{let r=t(e);return ra(r)?cw(r.failure):n(r.success,e)})),kw=/*#__PURE__*/ M(2,(e,t)=>Ow(e,Sre,e=>t(e))),Aw=e=>kw(e,lw),jw=/*#__PURE__*/ M(2,(e,{bufferSize:t=16,concurrency:n,switch:r=!1})=>$C(U(function*(i,a,o){let s=n===`unbounded`?2**53-1:Math.max(1,n),c=r?void 0:UC(s),l=yield*HS(!0),u=/* @__PURE__ */ new Set,d=yield*vC(t);yield*xd(o,TC(d));let f=yield*ew(e)(i,a);return yield*z(function*(){for(;;){let e;c&&(u.size<s?yield*c.take(1):(e=yield*Lp(f),yield*op(c.take(1),Vf(LS(e),Pf))));let t=e===void 0?yield*f:yield*LS(e),n=Cd(o),r=yield*ew(t)(i,n);for(;u.size>=s;){let e=ua(u);u.delete(e),u.size===0&&(yield*l.open),yield*RS(e)}let a=yield*r.pipe(Hf(()=>Jre),V(e=>yC(d,e)),Np({disableYield:!0}),Cp(U(function*(e){let t=bf(e),r=yield*Wf(wd(n,t));if(!u.has(a))return;let i=Qu([t,r]);Xu(i)&&(yield*xC(d,i.cause)),u.delete(a),c&&(yield*c.release(1)),u.size===0&&(yield*l.open)})),Lp);l.closeUnsafe(),u.add(a)}}).pipe(Yf(e=>{let t=yf(e);return ia(t)?l.whenOpen(xC(d,e)):xC(d,e)}),Rp(o)),kC(d)}))),Mw=/*#__PURE__*/ M(e=>JC(e[0])&&JC(e[1]),(e,t,n)=>$C(U(function*(r,i,a){let o=n?.haltStrategy??`both`,s=yield*vC(0);yield*xd(a,TC(s));let c=0;function l(e,t){if(c++,!_f(t))return xC(s,t);switch(o){case`both`:return c===2?xC(s,t):R;case`left`:case`right`:return e===o?xC(s,t):R;case`either`:return xC(s,t)}}let u=(e,t,n)=>ew(t)(r,n).pipe(V(e=>e.pipe(V(e=>yC(s,e)),Np)),Cp(t=>wp(bf(t),e=>wd(n,e)).pipe(cp({onFailure:t=>l(e,t),onSuccess:()=>l(e,t)}))),Rp(a));return yield*u(`left`,e,Cd(a)),yield*u(`right`,t,Cd(a)),kC(s)}))),Nw=()=>XC((e,t)=>L(()=>{let t=``,n=!1,r=di();function i(e){let r=[];function i(e){t.length===0?r.push(e):(r.push(t+e),t=``)}for(let r=0;r<e.length;r++){let a=e[r];if(a.length!==0){let e=0,r=a.indexOf(`\r`),o=a.indexOf(`
17
- `);for(n&&=(o===0&&(e=1,o=a.indexOf(`
18
- `,e)),!1);r!==-1||o!==-1;)r===-1||o!==-1&&o<r?(i(a.substring(e,o)),e=o+1,o=a.indexOf(`
19
- `,e)):(i(a.substring(e,r)),a.length===r+1?(n=!0,e=a.length,r=-1):(e=r+(o===r+1?2:1),r=a.indexOf(`\r`,e),o=a.indexOf(`
20
- `,e)));t+=a.substring(e)}}return Ta(r)?r:null}let a=Mf(()=>r._tag===`Some`?Lu(r.value):Rre(e,{onSuccess:o,onFailure:Ff,onDone:e=>{if(r=fi(e),t.length>0){let e=t;return t=``,n=!1,I([e])}return Lu(e)}}));function o(e){let t=i(e);return t===null?a:I(t)}return a})),Pw=/*#__PURE__*/ M(2,(e,t)=>XC((n,r)=>V(ew(e)(n,r),e=>ew(t)(e,r)))),Fw=/*#__PURE__*/ M(2,(e,t)=>XC((n,r)=>V(ew(e)(n,r),e=>{let n=Yf(e,e=>_f(e)?Ff(e):Lf(Iu(e)));return H(ew(t)(n,r),e=>Xf(e,e=>Fu(e)?Ff(e.value):Lf(e)))}))),Iw=e=>XC((t,n)=>{let r;return I(Mf(()=>r||e.pipe(yd(n),V(e=>ew(e)(t,n)),V(e=>r=e))))}),Lw=/*#__PURE__*/ M(2,(e,t)=>$C((n,r,i)=>bd(i,t).pipe(Vf(ew(e)(n,r))))),Rw=/*#__PURE__*/ M(2,(e,t)=>Lw(e,e=>t)),zw=(e,t,n)=>Mf(()=>{let r=vd(),i=ew(e)(Lu(),r);return gf(V(i,t),n||I).pipe(Tp(e=>wd(r,e)))}),Bw=/*#__PURE__*/ M(2,(e,t)=>XC((n,r)=>H(pp(ew(e)(n,r),t),pp(t)))),Vw=/*#__PURE__*/ M(2,(e,t)=>zw(e,e=>Np(V(e,t),{disableYield:!0}))),Hw=/*#__PURE__*/ M(3,(e,t,n)=>Mf(()=>{let r=t();return zw(e,e=>Of({while:mt,body:()=>e,step:e=>{r=n(r,e)}}),()=>I(r))})),Uw=(e,t)=>ew(e)(Lu(),t),Ww=`~effect/PlatformError`;var Gw=class extends (/*#__PURE__*/ vo(`BadArgument`)){get message(){return`${this.module}.${this.method}${this.description?`: ${this.description}`:``}`}},Kw=class extends _o{get message(){return`${this._tag}: ${this.module}.${this.method}${this.pathOrDescriptor===void 0?``:` (${this.pathOrDescriptor})`}${this.description?`: ${this.description}`:``}`}},qw=class extends (/*#__PURE__*/ vo(`PlatformError`)){constructor(e){`cause`in e?super({reason:e,cause:e.cause}):super({reason:e})}[Ww]=Ww;get message(){return this.reason.message}};const Jw=e=>new qw(new Kw(e)),Yw=e=>new qw(new Gw(e)),Xw={_R:N,_E:N,_A:N},Zw=function(e){this.channel=e};Zw.prototype={"~effect/Stream":Xw,pipe(){return ut(this,arguments)}};const Qw=e=>new Zw(e),$w=`~effect/Sink`,eT=/*#__PURE__*/ I([void 0]),tT={_A:N,_In:N,_L:N,_E:N,_R:N},nT={[$w]:tT,pipe(){return ut(this,arguments)}},rT=e=>P(e,$w),iT=e=>aT((t,n)=>ew(e)(t,n).pipe(V(Np({disableYield:!0})),gf(I))),aT=e=>{let t=Object.create(nT);return t.transform=e,t},oT=e=>XC((t,n)=>I(V(e.transform(t,n),Lu))),sT=/*#__PURE__*/ aT(e=>gf(Np(e,{disableYield:!0}),()=>eT)),cT=e=>lT(Df(t=>e(t),{discard:!0})),lT=e=>aT(t=>t.pipe(V(e),Np({disableYield:!0}),gf(()=>eT))),uT=e=>iT(Iw(H(e,oT))),dT=`~effect/RcMap`,fT=e=>({[dT]:dT,lookup:e.lookup,context:e.context,scope:e.scope,idleTimeToLive:e.idleTimeToLive,capacity:e.capacity,state:{_tag:`Open`,map:Hre()},pipe(){return ut(this,arguments)}}),pT=e=>zf(t=>{let n=t.context,r=Wi(n,gd),i=fT({lookup:e.lookup,context:n,scope:r,idleTimeToLive:typeof e.idleTimeToLive==`function`?vee(e.idleTimeToLive,qa):pt(qa(e.idleTimeToLive??$a)),capacity:Math.max(e.capacity??1/0,0)});return Gf(bd(r,()=>{if(i.state._tag===`Closed`)return R;let e=i.state.map;return i.state={_tag:`Closed`},Df(e,([,e])=>Wf(gT(e))).pipe(Hf(()=>L(()=>{Kre(e)})))}),i)}),mT=/*#__PURE__*/ M(2,(e,t)=>Mp(n=>{if(e.state._tag===`Closed`)return Op;let r=e.state,i=zS(),a=Sf(r.map,t),o;if(a._tag===`Some`)o=a.value,o.refCount++;else if(Number.isFinite(e.capacity)&&qre(e.state.map)>=e.capacity)return B(new Ere(`RcMap attempted to exceed capacity of ${e.capacity}`));else{o={deferred:rd(),scope:vd(),idleTimeToLive:e.idleTimeToLive(t),finalizer:void 0,fiber:void 0,expiresAt:0,refCount:1},o.finalizer=_T(e,t,o),Wre(r.map,t,o);let n=new Map(e.context.mapUnsafe);i.context.mapUnsafe.forEach((e,t)=>{n.set(t,e)}),n.set(gd.key,o.scope);let a=Ni(n);Mf(()=>e.lookup(t)).pipe(Vp(a),BS(o.scope)).addObserver(n=>{Zu(n)&&hT(e,t,o,a),fd(o.deferred,n)})}let s=Ui(i.context,gd);return xd(s,o.finalizer).pipe(Vf(n(ad(o.deferred))))})),hT=(e,t,n,r)=>{if(e.state._tag===`Closed`)return;let i=Sf(e.state.map,t);i._tag!==`None`&&i.value===n&&(wf(e.state.map,t),!(n.refCount>0)&&gT(n).pipe(Vp(r),BS(e.scope)))},gT=e=>e.fiber?RS(e.fiber).pipe(Vf(wd(e.scope,Ju))):wd(e.scope,Ju),_T=(e,t,n)=>zf(r=>{if(n.refCount--,n.refCount>0)return R;if(e.state._tag===`Closed`)return gT(n);let i=Sf(e.state.map,t);if(i._tag===`None`||i.value!==n)return gT(n);if(Qa(n.idleTimeToLive))return wf(e.state.map,t),gT(n);if(!Za(n.idleTimeToLive))return R;let a=r.getRef(af);return n.expiresAt=a.currentTimeMillisUnsafe()+oo(n.idleTimeToLive),n.fiber||=Mp(function r(i){let o=a.currentTimeMillisUnsafe(),s=n.expiresAt-o;if(s<=0){if(e.state._tag===`Closed`||n.refCount>0)return R;let r=Sf(e.state.map,t);return r._tag===`None`||r.value!==n?R:(wf(e.state.map,t),wd(n.scope,Ju))}return V(i(a.sleep(ro(s))),()=>r(i))}).pipe(Sp(L(()=>{n.fiber=void 0})),Vp(r.context),BS(e.scope)),R}),vT={_tag:`Empty`},yT={_tag:`Closed`},bT={_A:N,_E:N};var xT=class{"~effect/RcRef"=bT;pipe(){return ut(this,arguments)}state=vT;acquire;context;scope;idleTimeToLive;constructor(e,t,n,r){this.acquire=e,this.context=t,this.scope=n,this.idleTimeToLive=r}};const ST=e=>zf(t=>{let n=t.context,r=Wi(n,gd),i=new xT(e.acquire,n,r,e.idleTimeToLive===void 0?void 0:qa(e.idleTimeToLive));return Gf(bd(r,()=>{let e=i.state;return i.state=yT,e._tag===`Acquired`?wd(e.scope,Ju):e._tag===`Acquiring`?RS(e.fiber):R}),i)}),CT=(e,t)=>{switch(e.state._tag){case`Closed`:return Op;case`Acquired`:{let t=e.state;return t.refCount++,t.fiber?Gf(RS(t.fiber),t):I(t)}case`Acquiring`:{let n=e.state;return n.awaiters++,wT(e,n,t)}case`Empty`:{let n={_tag:`Acquiring`,fiber:void 0,awaiters:1,acquired:void 0};e.state=n;let r=vd(),i=pp(e.acquire,zi(e.context,gd,r)).pipe(V(t=>{if(e.state!==n)return Op;let i={_tag:`Acquired`,value:t,scope:r,fiber:void 0,refCount:n.awaiters,invalidated:!1};return e.state=i,n.acquired=i,I(i)}),Tp(t=>Yu(t)?R:(e.state===n&&(e.state=vT),wd(r,t))));return n.fiber=Vp(zS().context)(i),wT(e,n,t)}}},wT=(e,t,n)=>Tp(n(LS(t.fiber)),n=>{let r=t.acquired;return r===void 0?--t.awaiters>0||e.state!==t?R:(e.state=vT,RS(t.fiber)):Xu(n)?ET(e,r):R}),TT=e=>{let t=e;return Mp(e=>V(vp,n=>V(CT(t,e),e=>Gf(bd(n,()=>ET(t,e)),e.value))))},ET=(e,t)=>{if(t.refCount--,t.refCount>0)return R;let n=e.idleTimeToLive;return n===void 0||t.invalidated?(e.state===t&&(e.state=vT),wd(t.scope,Ju)):(Za(n)&&(t.fiber=Mp(r=>V(r(ap(n)),()=>e.state===t&&t.refCount===0?(e.state=vT,wd(t.scope,Ju)):R)).pipe(Sp(L(()=>{t.fiber=void 0})),Vp(e.context),BS(e.scope))),R)},DT=ST,OT=TT,kT=e=>P(e,`~effect/Stream`),AT=Qw,jT=e=>AT(uw(H(e,Ma))),ese=e=>MT(L(()=>{let t=!0,n=I(Ma(void 0)),r=tie(n,e);return Mf(()=>t?(t=!1,n):r)})),MT=e=>AT(QC(e)),NT=(e,t)=>AT(XC((n,r)=>V(Uw(e.channel,r),e=>t(e,r)))),PT=e=>e.channel,tse=(e,t)=>AT(nw(e,t)),FT=/*#__PURE__*/ AT(ow),IT=e=>AT(rw(()=>e().channel)),nse=e=>AT(sw(e)),rse=e=>Ta(e)?AT(aw(e)):FT,LT=e=>AT(fw(e)),RT=e=>AT(pw(e)),zT=e=>AT(Iw(H(e,PT))),BT=/*#__PURE__*/ M(2,(e,t)=>IT(()=>{let n=0;return AT(hw(e.channel,Na(e=>t(e,n++))))})),ise=/*#__PURE__*/ M(2,(e,t)=>AT(yw(e.channel,t))),ase=/*#__PURE__*/ M(2,(e,t)=>{let n=AT(Tw(iw(()=>ose(e,t))));return VT.set(n,[e,t]),n}),VT=/*#__PURE__*/ new WeakMap;function*ose(e,t){let n=[t,e];for(;n.length>0;){let e=n.pop(),t=VT.get(e);t===void 0?yield e.channel:n.push(t[1],t[0])}}const HT=/*#__PURE__*/ M(e=>kT(e[0])&&kT(e[1]),(e,t,n)=>AT(Mw(PT(e),PT(t),n))),sse=/*#__PURE__*/ M(2,(e,t)=>e.channel.pipe(Ew(e=>t(e).channel),AT)),cse=/*#__PURE__*/ M(2,(e,t)=>e.channel.pipe(Dw(t),AT)),lse=e=>AT(Aw(e.channel)),use=/*#__PURE__*/ M(2,(e,t)=>{let n=Qi(t);return n===0?e:NT(e,(e,t)=>L(()=>{let t=0,r=e.pipe(V(e=>t>=n?I(e):(t+=e.length,t<=n?r:I(e.slice(n-t)))));return r}))}),UT=/*#__PURE__*/ M(2,(e,t)=>NT(e,(e,n)=>L(()=>{let r,i,a=Mf(()=>{if(i!==void 0){let e=i;return i=void 0,I(e)}return e}).pipe(qf(e=>(r=Gu(e),Lu()))),o=H(Mf(()=>t.transform(a,n)),([e,t])=>(i=t,Ma(e)));return Mf(()=>r||o)}))),dse=/*#__PURE__*/ M(2,(e,t)=>AT(Fw(e.channel,t))),fse=/*#__PURE__*/ M(e=>kT(e[0]),(e,t)=>IT(()=>{let n=new TextDecoder(t?.encoding);return BT(e,e=>n.decode(e,{stream:!0}))})),pse=e=>IT(()=>{let t=new TextEncoder;return BT(e,e=>t.encode(e))}),mse=e=>e.channel.pipe(Pw(Nw()),AT),hse=/*#__PURE__*/ M(2,(e,t)=>AT(Rw(e.channel,t))),WT=/*#__PURE__*/ M(2,(e,t)=>AT(Bw(e.channel,t))),GT=/*#__PURE__*/ M(2,(e,t)=>oie(n=>Uw(e.channel,n).pipe(V(e=>t.transform(e,n)),H(([e])=>e)))),gse=e=>Hw(e.channel,()=>[],(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n]);return e}),_se=/*#__PURE__*/ M(2,(e,t)=>Vw(e.channel,e=>{let n=0;return Of({while:()=>n<e.length,body:()=>t(e[n++]),step:_t})})),KT=/*#__PURE__*/ M(2,(e,t)=>Vw(e.channel,t)),vse=e=>Hw(e.channel,()=>``,(e,t)=>e+t.join(``)),qT=/*#__PURE__*/ M(e=>kT(e[0]),(e,t,n)=>{let r,i,a=!1,o=VS(!1),s=n?.signal,c=()=>i.interruptUnsafe();return new ReadableStream({start(n){i=Bp(pp(KT(e,e=>o.whenOpen(L(()=>{o.closeUnsafe();for(let t=0;t<e.length;t++)n.enqueue(e[t]);r(),r=void 0}))),t)),i.addObserver(e=>{s?.removeEventListener(`abort`,c),!a&&(e._tag===`Failure`&&s?.aborted!==!0?n.error(Mu(e.cause)):n.close())}),s!==void 0&&i.pollUnsafe()===void 0&&(s.aborted?c():s.addEventListener(`abort`,c,{once:!0}))},pull(){return new Promise(e=>{r=e,o.openUnsafe()})},cancel(){if(i)return a=!0,Hp(Kf(RS(i)))}},n?.strategy)}),yse=/*#__PURE__*/ M(e=>kT(e[0]),(e,t)=>H(up(),n=>qT(e,n,t))),JT=`~effect/FileSystem`,YT=/*#__PURE__*/ F(`effect/FileSystem`),bse=e=>YT.of({...e,[JT]:JT,exists:t=>vt(e.access(t),Gf(!0),Jf(`PlatformError`,e=>e.reason._tag===`NotFound`?I(!1):B(e))),readFileString:(t,n)=>V(e.readFile(t),e=>Rf({try:()=>new TextDecoder(n).decode(e),catch:e=>Yw({module:`FileSystem`,method:`readFileString`,description:`invalid encoding`,cause:e})})),stream:U(function*(t,n){let r=yield*e.open(t,{flag:`r`}),i=n?.offset===void 0?void 0:Rm(n.offset);i&&(yield*r.seek(i,`start`));let a=n?.bytesToRead===void 0?void 0:Rm(n.bytesToRead),o=BigInt(0),s=Number(BigInt(n?.chunkSize??65536)),c=r.readAlloc(s);return MT(I(V(Mf(()=>a!==void 0&&a<=o?Lu():a!==void 0&&a-o<s?r.readAlloc(Number(a-o)):c),hi({onNone:()=>Lu(),onSome:e=>(o+=BigInt(e.length),I(Ma(e)))}))))},zT),sink:(t,n)=>vt(e.open(t,{...n,flag:n?.flag??`w`}),H(e=>cT(t=>e.writeAll(t))),uT),writeFileString:(t,n,r)=>V(Rf({try:()=>new TextEncoder().encode(n),catch:e=>Yw({module:`FileSystem`,method:`writeFileString`,description:`could not encode string`,cause:e})}),n=>e.writeFile(t,n,r))}),XT=`~effect/FileSystem/File`;var xse=class extends (/*#__PURE__*/ F()(`effect/FileSystem/WatchBackend`)){};const ZT=`~effect/Path`,QT=/*#__PURE__*/ F(`effect/Path`);function Sse(e){return{_tag:`Value`,value:e}}function Cse(e,t){return{_tag:`Record`,keys:e,value:t}}function wse(e,t){return{_tag:`Array`,length:e,value:t}}const Tse=/*#__PURE__*/ Xi(`effect/ConfigProvider`,{defaultValue:()=>Mse()}),Ese={...Zn,toJSON(){return{_id:`ConfigProvider`}}},Dse=e=>e;function Ose(e,t){let n=Object.create(Ese);return n.load=e,n.mapInput=t,n}function $T(e,t){return Ose(n=>e(t(n)),n=>$T(e,e=>n(t(e))))}function kse(e){return $T(e,Dse)}function Ase(e,t){return e===``&&!t?void 0:e}function jse(e,t){let n=t?.preserveEmptyStrings===!0,r=Nse(e);return kse(t=>I(Pse(r,e,t,n)))}function Mse(e){return jse(e?.env??{...globalThis.process?.env,...import.meta.env},{preserveEmptyStrings:e?.preserveEmptyStrings})}function Nse(e){let t={};for(let[n,r]of Object.entries(e)){if(r===void 0)continue;let e=n.split(`_`),i=t;for(let t of e){let e=i.children??=Object.create(null);i=e[t]??={}}}return t}function Pse(e,t,n,r){let i=n.map(String).join(`_`),a=Ase(Object.hasOwn(t,i)?t[i]:void 0,r),o=Fse(e,n),s=o?.children?Object.keys(o.children):[];return s.length===0?a===void 0?void 0:Sse(a):s.every(Ea)?wse(Math.max(...s.map(e=>parseInt(e,10)))+1,a):Cse(new Set(s),a)}function Fse(e,t){if(t.length===0)return e;let n=e;for(let e of t)if(n=n?.children?.[String(e)],!n)return;return n}const Ise=/*#__PURE__*/ ui(vu),eE=`~effect/Config`;var tE=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}};const Lse={.../*#__PURE__*/ Lr({label:`Config`,evaluate(e){return this.parse(e.getRef(Tse))}}),[eE]:eE,toJSON(){return{_id:`Config`}}};function nE(e){let t=Object.create(Lse);return t.evaluator=e,t.parse=t=>em(e(t,[]),Bf),t}const Rse=(e,t,n)=>e.evaluator(t,n),rE=/*#__PURE__*/ M(2,(e,t)=>nE((n,r)=>Zp(Rse(e,n,r),e=>ra(e)?$i(t):e))),zse=e=>Ht(e,`SourceError`),Bse=()=>`<configuration>`,iE=e=>t=>Yf(t,t=>Ff(Du(t.reasons.map(e)))),aE=(e,t)=>e.load(t).pipe(iE(e=>Eu(e)?Au(e.error).annotate(Bu(e)):e),Zp(n=>({provider:e,path:t,node:n,toString:Bse}))),oE=(e,t)=>aE(e.provider,[...e.path,t]),sE=(e,t)=>Ay(Sv,e,new I_(S_(e=>t(e)),b_())),cE=e=>{switch(e._tag){case`Union`:return e.types.every(cE);case`Objects`:case`Arrays`:case`Suspend`:return!1;default:return!0}},lE=(e,t)=>{switch(e._tag){case`Objects`:return t?._tag===`Record`;case`Arrays`:return t?._tag===`Array`;case`Union`:return e.types.some(e=>lE(e,t));case`Suspend`:return lE(e.thunk(),t);default:return t?.value!==void 0}},Vse=/*#__PURE__*/ yt(e=>{let t=/* @__PURE__ */ new WeakSet,n=Mie(e=>{switch(t.add(e),e._tag){case`Objects`:{let t=e.indexSignatures.map(e=>ub(e.parameter)),r=U(function*(n){if(n.node?._tag!==`Record`)return;let r=n.node,i=/* @__PURE__ */ new Set;for(let t of e.propertySignatures)typeof t.name==`string`&&i.add(t.name);if(t.length>0)for(let e of r.keys)t.some(t=>t(e))&&i.add(e);let a={};for(let e of i){let t=yield*oE(n,e);t.node!==void 0&&zn(a,e,t)}return a});return sE(e.recur(n,e=>e),r)}case`Arrays`:{let t=U(function*(e){if(e.node?._tag!==`Array`)return;let t=[];for(let n=0;n<e.node.length;n++)t.push(yield*oE(e,n));return t});return sE(e.recur(n),t)}case`Union`:for(let t of e.types)n(t);if(!cE(e))return e.recur(n);break;case`Suspend`:{let r=e.thunk();return t.has(r)||n(r),e.recur(n)}case`Declaration`:case`Any`:throw new globalThis.Error(`Config.schema does not support opaque StringTree encodings`,{cause:e})}return sE(e,e=>I(e.node?.value))});return n(e)});function uE(e,t){let n=MS(e),r=Py(n.ast),i=db(gx(Vse(n.ast))),a=typeof t==`string`?[t]:t??[];return nE((e,t)=>{let n=[...t,...a];return aE(e,n).pipe(em(e=>i(e).pipe(Zp($i),tm(t=>{let i=new tE(new ax(n.length>0?new zg(n,t):t));return lE(r,e.node)?B(i):I(ea(i))}))),iE(e=>_re(e)&&zse(e.defect)?ku(new tE(e.defect)).annotate(Bu(e)):e))})}const Hse=/*#__PURE__*/ Zx.check(/*#__PURE__*/ Xx({minimum:1,maximum:65535})),Use=e=>Et(e)||globalThis.Array.isArray(e);function dE(e){return uE(W,e)}function Wse(e,t,n){let r=Use(t),i=r?n:t,a=K(e),o=i?.separator??`,`;return uE(q([W.pipe(zx(MS(a),{decode:j_(i),encode:h_(b_({strict:!1}),x_(e=>e.join(o)))})),a]),r?t:void 0)}function fE(e){return uE(moe,e)}function Gse(e){return uE(Hse,e)}function Kse(e){return uE(SS(W),e)}const qse=2**48-1,pE=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,Jse=(e,t)=>{if(t.length!==10)throw Error(`ULID randomness must be exactly 10 bytes, received ${t.length}`);let n=Math.min(Math.max(0,Math.trunc(e)),qse),r=``;for(let e=45;e>=0;e-=5)r+=pE[Math.floor(n/2**e)&31];let i=0,a=0;for(let e of t){for(i=i<<8|e,a+=8;a>=5;)a-=5,r+=pE[i>>>a&31];i&=(1<<a)-1}return r},Yse=e=>e.toString(16).padStart(2,`0`),mE=e=>[e.subarray(0,4),e.subarray(4,6),e.subarray(6,8),e.subarray(8,10),e.subarray(10,16)].map(e=>Array.from(e,Yse).join(``)).join(`-`),hE=()=>globalThis.crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16));function Xse(e=hE()){return e[6]=e[6]&15|64,e[8]=e[8]&63|128,e}const Zse=2**48-1;function Qse(e,t=hE()){let n=Math.min(Math.max(0,Math.trunc(e)),Zse);return t[0]=Math.floor(n/2**40),t[1]=Math.floor(n/2**32)&255,t[2]=Math.floor(n/2**24)&255,t[3]=Math.floor(n/2**16)&255,t[4]=Math.floor(n/256)&255,t[5]=n&255,t[6]=t[6]&15|112,t[8]=t[8]&63|128,t}const gE=`~effect/Crypto`,_E=/*#__PURE__*/ F(`effect/Crypto`),$se=e=>{let t=e.randomBytes,n=e=>H(ece(`randomBytes`,e),t),r=e=>(e[0]&31)*2**48+e[1]*2**40+e[2]*2**32+e[3]*2**24+e[4]*2**16+e[5]*256+e[6],i=()=>r(t(7))/2**53,a=()=>{for(;;){let e=t(7),n=r(e);if(!(e[0]&32))return n+-(2**53-1);if(n<2**53-1)return n+1}};return _E.of({[gE]:gE,randomBytes:n,nextDoubleUnsafe:i,nextIntUnsafe:a,digest:e.digest,random:L(()=>i()),randomBoolean:L(()=>i()>.5),randomInt:L(()=>a()),randomBetween:(e,t)=>L(()=>Ire(e,t,i())),randomIntBetween(e,t,n){let r=n?.halfOpen===!0?0:1;return L(()=>{let n=Math.ceil(e),a=Math.floor(t);return Math.floor(i()*(a-n+r))+n})},randomShuffle:e=>L(()=>{let t=Array.from(e);for(let e=t.length-1;e>=1;--e){let n=Math.min(e,Math.floor(i()*(e+1))),r=t[e];t[e]=t[n],t[n]=r}return t}),randomUUIDv4:e=>L(()=>{let n=Xse(t(16));return e?.format===`bytes`?n:mE(n)}),randomUUIDv7:e=>Kp(n=>{let r=Qse(n.currentTimeMillisUnsafe(),t(16));return I(e?.format===`bytes`?r:mE(r))}),randomULID:Kp(e=>I(Jse(e.currentTimeMillisUnsafe(),t(10))))})},ece=(e,t)=>Number.isSafeInteger(t)&&t>=0?I(t):B(Yw({module:`Crypto`,method:e,description:`size must be a non-negative safe integer`})),tce=e=>zf(t=>(Tu(t,e),R)),vE=`~effect/ErrorReporter/ignore`,yE=`~effect/Match/Matcher`,nce={[yE]:{_input:N,_filters:N,_remaining:N,_result:N,_return:N,_args:N},_tag:`TypeMatcher`,add(e){return bE(this.select,[...this.cases,e])},pipe(){return ut(this,arguments)}};function bE(e,t){let n=Object.create(nce);return n.select=e,n.cases=t,n}const rce={[yE]:{_input:N,_filters:N,_result:N,_return:N,_flavor:N},_tag:`ValueMatcher`,add(e){return ia(this.value)?this:e._tag===`When`&&e.guard(this.provided)===!0||e._tag===`Not`&&e.guard(this.provided)===!1?xE(this.provided,$i(e.evaluate(this.provided))):this},pipe(){return ut(this,arguments)}};function xE(e,t){let n=Object.create(rce);return n.provided=e,n.value=t,n}const SE=(e,t)=>({_tag:`When`,guard:e,evaluate:t}),CE=e=>{if(typeof e==`function`)return e;if(Array.isArray(e)){let t=e.map(CE),n=t.length;return e=>{if(!Array.isArray(e))return!1;for(let r=0;r<n;r++)if(t[r](e[r])===!1)return!1;return!0}}if(typeof e==`object`&&e){let t=Reflect.ownKeys(e).map(t=>[t,CE(e[t])]),n=t.length;return e=>{if(typeof e!=`object`||!e)return!1;for(let r=0;r<n;r++){let[n,i]=t[r];if(!(n in e)||i(e[n])===!1)return!1}return!0}}return t=>t===e},ice=()=>bE(N,[]),ace=e=>xE(e,ea(e)),oce=(e,t)=>n=>n.add(SE(CE(e),t)),sce=e=>(...t)=>{let n=t[t.length-1],r=t.slice(0,-1),i=r.length===1?t=>t!=null&&t[e]===r[0]:t=>t!=null&&r.includes(t[e]);return e=>e.add(SE(i,n))},cce=e=>t=>{let n=SE(n=>n!=null&&Object.hasOwn(t,n[e]),n=>t[n[e]](n));return e=>e.add(n)},lce=/*#__PURE__*/ sce(`_tag`),uce=/*#__PURE__*/ cce(`_tag`),dce=(...e)=>{let t=e.length;return n=>{for(let r=0;r<t;r++)if(n===e[r])return!0;return!1}},fce=e=>t=>{let n=wE(t);return na(n)?n._tag===`Success`?n.success:e(n.failure):(...t)=>{let r=n(...t);return ia(r)?r.success:e(r.failure,...t)}},wE=e=>{if(e._tag===`ValueMatcher`)return e.value;let t=e.cases.length;if(t===1){let t=e.cases[0];return(...n)=>{let r=e.select(...n);return t._tag===`When`&&t.guard(r)===!0||t._tag===`Not`&&t.guard(r)===!1?$i(t.evaluate(r,...n)):ea(r)}}return(...n)=>{let r=e.select(...n);for(let i=0;i<t;i++){let t=e.cases[i];if(t._tag===`When`&&t.guard(r)===!0||t._tag===`Not`&&t.guard(r)===!1)return $i(t.evaluate(r,...n))}return ea(r)}},TE=`effect/match/Match/exhaustive: absurd`,pce=e=>{let t=wE(e);if(na(t)){if(ia(t))return t.success;throw Error(TE)}return(...e)=>{let n=t(...e);if(ia(n))return n.success;throw Error(TE)}},EE=ice,DE=ace,OE=oce,kE=lce,AE=uce,jE=dce,mce=Et,hce=Dt,gce=Ot,ME=fce,NE=pce,_ce={"~effect/Ref":{_A:N},...Zn,toJSON(){return{_id:`Ref`,ref:this.ref}}},vce=e=>{let t=Object.create(_ce);return t.ref=GS(e),t},PE=e=>L(()=>vce(e)),FE=e=>L(()=>e.ref.current),IE=/*#__PURE__*/ M(2,(e,t)=>L(()=>KS(e.ref,t))),LE=/*#__PURE__*/ M(2,(e,t)=>L(()=>{let n=e.ref.current;return e.ref.current=t,n})),RE=/*#__PURE__*/ M(2,(e,t)=>e===void 0?void 0:t(e)),zE=`~effect/Stdio`,yce=/*#__PURE__*/ F(zE),bce=e=>({[zE]:zE,stdinIsTerminal:I(!1),stdoutIsTerminal:I(!1),stderrIsTerminal:I(!1),...e}),BE=`~effect/Terminal`,VE=`~effect/Terminal/QuitError`;var xce=class extends (/*#__PURE__*/ kS(`QuitError`)({_tag:/*#__PURE__*/ Vx(`QuitError`)})){[VE]=VE};const HE=/*#__PURE__*/ F(`effect/Terminal`),Sce=e=>HE.of({...e,[BE]:BE}),Cce=/*#__PURE__*/ IS(),wce=/*#__PURE__*/ IS(),UE=`~effect/process/ChildProcessSpawner/ChildProcessHandle`,Tce={[UE]:UE,...Nn,toJSON(){return{_id:`ChildProcessHandle`,pid:this.pid}}},WE=e=>Object.setPrototypeOf({...e},Tce),Ece=e=>{let t=(t,n)=>e(t).pipe(H(e=>fse(n?.includeStderr===!0?e.all:e.stdout)),zT),n=(e,n)=>mse(t(e,n));return GE.of({spawn:e,exitCode:t=>yp(V(e(t),e=>e.exitCode)),streamString:t,streamLines:n,lines:(e,t)=>gse(n(e,t)),string:(e,n)=>vse(t(e,n))})};var GE=class extends (/*#__PURE__*/ F()(`effect/process/ChildProcessSpawner`)){};const KE=`~effect/process/ChildProcess`,Dce={.../*#__PURE__*/ Lr({label:`Command`,evaluate(e){return Ui(e.context,GE).spawn(this)}}),[KE]:KE},qE=(e,t,n)=>Object.assign(Object.create(Dce),{_tag:`StandardCommand`,command:e,args:t,options:n}),JE=function(...e){if(YE(e[0])){let[t,...n]=e,r=ZE(t,n);return qE(r[0]??``,r.slice(1),{})}if(typeof e[0]==`object`&&!Array.isArray(e[0])&&!YE(e[0])){let t=e[0];return function(e,...n){let r=ZE(e,n);return qE(r[0]??``,r.slice(1),t)}}if(typeof e[0]==`string`&&!Array.isArray(e[1])){let[t,n={}]=e;return qE(t,[],n)}let[t,n=[],r={}]=e;return qE(t,n,r)},YE=e=>Array.isArray(e)&&`raw`in e&&Array.isArray(e.raw),XE=e=>{let t=/^fd(\d+)$/.exec(e);if(t===null)return;let n=parseInt(t[1],10);return n>=3?n:void 0},Oce=e=>`fd${e}`,ZE=(e,t)=>{let n=[];for(let[r,i]of e.entries())n=kce(e,t,n,i,r);return n},kce=(e,t,n,r,i)=>{let a=e.raw[i];if(a===void 0)throw Error(`Invalid backslash sequence: ${e.raw[i]}`);let{hasLeadingWhitespace:o,hasTrailingWhitespace:s,tokens:c}=jce(r,a),l=eD(n,c,o);if(i===t.length)return l;let u=t[i],d=Array.isArray(u)?u.map(e=>QE(e)):[QE(u)];return eD(l,d,s)},QE=e=>typeof e==`string`?e:String(e),$E=/*#__PURE__*/ new Set([` `,` `,`\r`,`
21
- `]),Ace={x:3,u:5},jce=(e,t)=>{if(t.length===0)return{tokens:[],hasLeadingWhitespace:!1,hasTrailingWhitespace:!1};let n=$E.has(t[0]),r=[],i=0;for(let n=0,a=0;n<e.length;n+=1,a+=1){let o=t[a];if($E.has(o))i!==n&&r.push(e.slice(i,n)),i=n+1;else if(o===`\\`){let e=t[a+1];if(e===`
22
- `)--n,a+=1;else if(e===`u`&&t[a+2]===`{`){let e=t.indexOf(`}`,a+3);parseInt(t.slice(a+3,e),16)>65535&&(n+=1),a=e}else a+=Ace[e]??1}}let a=i===e.length;return a||r.push(e.slice(i)),{tokens:r,hasLeadingWhitespace:n,hasTrailingWhitespace:a}},eD=(e,t,n)=>n||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t.at(0)}`,...t.slice(1)],Mce=(e,t,n)=>{let r=e.detached??n!==`win32`;return{...t,detached:r,shell:e.shell,windowsHide:e.windowsHide??!r}},tD=(e,t)=>(n,[r])=>{let i=`Unknown`;switch(n.code){case`ENOENT`:i=`NotFound`;break;case`EACCES`:i=`PermissionDenied`;break;case`EEXIST`:i=`AlreadyExists`;break;case`EISDIR`:i=`BadResource`;break;case`ENOTDIR`:i=`BadResource`;break;case`EBUSY`:i=`Busy`;break;case`ELOOP`:i=`BadResource`}return Jw({_tag:i,module:e,method:t,pathOrDescriptor:r,syscall:n.syscall,cause:n})},nD=e=>iT(gw(Nce(e),e=>[e])),Nce=e=>XC(t=>{let n=e.evaluate();return I(rD({...e,writable:n,pull:t}))}),rD=e=>e.pull.pipe(V(t=>{let n=0;return Nf(r=>{let i=!1,a=()=>{for(;n<t.length;){if(i)return;if(!e.writable.write(t[n++],e.encoding)){i||e.writable.once(`drain`,a);return}}i||r(R)};return a(),L(()=>{i=!0,e.writable.off(`drain`,a)})})}),Np({disableYield:!0}),e.endOnDone===!1?N:gf(t=>`closed`in e.writable&&e.writable.closed?Lu(t):Nf(n=>{let r=()=>n(Lu(t));return e.writable.once(`finish`,r),e.writable.end(),L(()=>{e.writable.off(`finish`,r)})})),op(Nf(t=>{let n=n=>t(B(e.onError(n)));return e.writable.once(`error`,n),L(()=>{e.writable.off(`error`,n)})}))),iD=e=>AT(Pce(e)),Pce=e=>XC((t,n)=>oD({scope:n,readable:e.evaluate(),onError:e.onError??sD,chunkSize:e.chunkSize,closeOnDone:e.closeOnDone})),Fce=e=>XC((t,n)=>{let r=e.evaluate(),i=GS(void 0),a=VS(!1);return rD({pull:t,writable:r,onError:e.onError??sD,endOnDone:e.endOnDone,encoding:e.encoding}).pipe(Yf(e=>(_f(e)||(i.current=Wu(e),a.openUnsafe()),R)),Rp(n),V(()=>oD({scope:n,exit:i,latch:a,readable:r,onError:e.onError??sD,chunkSize:e.chunkSize})))}),Ice=/*#__PURE__*/ M(2,(e,t)=>dse(e,Fce(t))),aD=(e,t)=>{let n=cD(t?.maxBytes),r=t?.onError??sD;return Nf(t=>{let i=e(),a=[],o=0;return i.once(`error`,e=>{`closed`in i&&!i.closed&&i.destroy(),t(B(r(e)))}),i.once(`end`,()=>{let e=a.length===1?a[0]:Buffer.concat(a);if(e.byteOffset===0&&e.buffer.byteLength===e.byteLength)return t(I(e.buffer));t(I(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)))}),i.on(`data`,e=>{a.push(e),o+=e.length,n!==void 0&&o>n&&(`closed`in i&&!i.closed&&i.destroy(),t(B(r(/* @__PURE__ */ Error(`maxBytes exceeded`)))))}),L(()=>{`closed`in i&&!i.closed&&i.destroy()})})},Lce=(e,t)=>H(aD(e,t),e=>new Uint8Array(e)),oD=e=>{let t=e.readable,n=e.closeOnDone??!0,r=e.exit??GS(void 0),i=e.latch??VS(!1);function a(){i.openUnsafe()}function o(t){r.current=Gu(e.onError(t)),i.openUnsafe()}function s(){r.current=Gu(Iu()),i.openUnsafe()}t.on(`readable`,a),t.once(`error`,o),t.once(`end`,s);let c=Mf(function n(){let a=e.readable.read(e.chunkSize);if(a===null)return r.current?r.current:t.readableEnded?B(Iu()):(i.closeUnsafe(),V(i.await,n));let o=Ma(a);for(;a=e.readable.read(e.chunkSize),a!==null;)o.push(a);return I(o)});return Gf(xd(e.scope,L(()=>{t.off(`readable`,a),t.off(`error`,o),t.off(`end`,s),n&&`closed`in e.readable&&!e.readable.closed&&e.readable.destroy()})),c)},sD=e=>new zu(e),cD=e=>e===void 0||e===1/0?void 0:Number(Rm(e)),lD=e=>e instanceof globalThis.Error?e:new globalThis.Error(String(e)),uD=(e,t,n)=>{let{commands:r}=gD(n),i=r.reduce((e,t)=>{let n=`${t.command} ${t.args.join(` `)}`;return e.length===0?n:`${e} | ${n}`},``);return tD(`ChildProcess`,e)(t,[i])},dD=1e3,fD=e=>{let t=()=>{};e.on(`error`,t),e.once(`close`,()=>e.off(`error`,t))},pD=(e,t)=>{if(!ud(t))return!0;if(globalThis.process.platform===`win32`)return!1;try{return globalThis.process.kill(-e.pid,0),!0}catch{return!1}},mD=(e,t=()=>{})=>{e.exitCode!==null||e.signalCode!==null?t(null):Ze.execFile(`taskkill`,[`/pid`,String(e.pid),`/T`,`/F`],{windowsHide:!0},t)},hD=/*#__PURE__*/ Wd(GE,/* @__PURE__ */ z(function*(){let e=yield*YT,t=yield*QT,n=U(function*(n){if(!Mt(n.cwd))return yield*e.access(n.cwd),t.resolve(n.cwd)}),r=e=>e.extendEnv?{...globalThis.process.env,...e.env}:e.env,i=e=>kT(e)?`pipe`:e,a=e=>rT(e)?`pipe`:e,o=e=>{let t={stream:`pipe`,encoding:`utf-8`,endOnDone:!0};return Mt(e.stdin)?t:typeof e.stdin==`string`||kT(e.stdin)?{...t,stream:e.stdin}:{stream:e.stdin.stream,encoding:e.stdin.encoding??t.encoding,endOnDone:e.stdin.endOnDone??t.endOnDone}},s=(e,t)=>{let n=e[t];return Mt(n)?{stream:`pipe`}:typeof n==`string`||rT(n)?{stream:n}:{stream:n.stream}},c=e=>{if(Mt(e.additionalFds))return[];let t=[];for(let[n,r]of Object.entries(e.additionalFds)){let e=XE(n);Nt(e)&&t.push({fd:e,config:r})}return t.sort((e,t)=>e.fd-t.fd)},l=(e,t,n,r)=>{let o=[i(e.stream),a(t.stream),a(n.stream)];if(r.length===0)return o;let s=r.reduce((e,{fd:t})=>Math.max(e,t),2);for(let e=3;e<=s;e++)o[e]=`ignore`;for(let{fd:e}of r)o[e]=`pipe`;return o},u=U(function*(e,t,n){if(n.length===0)return{getInputFd:()=>sT,getOutputFd:()=>FT};let r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map;for(let{config:a,fd:o}of n){let n=t.stdio[o];switch(a.type){case`input`:{let t=sT;n&&`write`in n&&(fD(n),t=nD({evaluate:()=>n,onError:t=>uD(`fromWritable(fd${o})`,lD(t),e)})),a.stream&&(yield*zp(GT(a.stream,t))),r.set(o,t);break}case`output`:{let t=FT;if(n&&`read`in n){let r=new $e;n.on(`error`,e=>r.destroy(e)),n.pipe(r),t=iD({evaluate:()=>r,onError:t=>uD(`fromReadable(fd${o})`,lD(t),e)})}a.sink&&(t=UT(t,a.sink)),i.set(o,t);break}}}return{getInputFd:e=>r.get(e)??sT,getOutputFd:e=>i.get(e)??FT}}),d=(e,t,n)=>Mf(()=>{let r=sT;return Pt(t.stdin)&&(fD(t.stdin),r=nD({evaluate:()=>t.stdin,onError:t=>uD(`fromWritable(stdin)`,lD(t),e),endOnDone:n.endOnDone,encoding:n.encoding})),kT(n.stream)?Gf(zp(GT(n.stream,r)),r):I(r)}),f=(e,t,n,r)=>{let i=t.stdout?(()=>{let n=new $e;return t.stdout.on(`error`,e=>n.destroy(e)),t.stdout.pipe(n),iD({evaluate:()=>n,onError:t=>uD(`fromReadable(stdout)`,lD(t),e)})})():FT,a=t.stderr?(()=>{let n=new $e;return t.stderr.on(`error`,e=>n.destroy(e)),t.stderr.pipe(n),iD({evaluate:()=>n,onError:t=>uD(`fromReadable(stderr)`,lD(t),e)})})():FT;rT(n.stream)&&(i=UT(i,n.stream)),rT(r.stream)&&(a=UT(a,r.stream));let o=HT(i,a);return{stdout:i,stderr:a,all:o}},p=(e,t)=>Nf(n=>{let r=rd(),i=Ze.spawn(e.command,e.args,t);return i.on(`error`,t=>{n(B(uD(`spawn`,t,e)))}),i.on(`exit`,(...e)=>{fd(r,Uu(e))}),i.on(`spawn`,()=>{n(I([i,r]))}),L(()=>{i.kill(`SIGTERM`)})}),m=(e,t,n)=>globalThis.process.platform===`win32`?Nf(n=>{mD(t,t=>{n(t?B(uD(`kill`,lD(t),e)):R)})}):Rf({try:()=>{globalThis.process.kill(-t.pid,n)},catch:t=>uD(`kill`,lD(t),e)}),h=(e,t)=>{if(globalThis.process.platform===`win32`)mD(e);else try{globalThis.process.kill(-e.pid,t)}catch{}},g=(e,t,n)=>Mf(()=>{if(!t.kill(n)){let t=new globalThis.Error(`Failed to kill child process`);return B(uD(`kill`,t,e))}return R}),_=(e,t,n)=>Nf(r=>{let i=Date.now()+n,a,o=()=>{clearTimeout(a),e.removeListener(`exit`,s)},s=()=>{clearTimeout(a),Date.now()>=i||!pD(e,t)?(o(),r(R)):a=setTimeout(s,10)};return e.on(`exit`,s),s(),L(o)}),v=U(function*(e,t,n,r){let i=n=>m(e,t,n).pipe(qf(()=>g(e,t,n)));yield*i(r?.killSignal??`SIGTERM`),Mt(r?.forceKillAfter)?yield*_(t,n,dD):(yield*_(t,n,oo(r.forceKillAfter)),pD(t,n)&&(yield*i(`SIGKILL`),yield*_(t,n,dD))),yield*ad(n)}),y=(e,t)=>{let n=t??`stdout`;switch(n){case`stdout`:return e.stdout;case`stderr`:return e.stderr;case`all`:return e.all;default:{let t=XE(n);return Nt(t)?e.getOutputFd(t):e.stdout}}},b=U(function*(e){switch(e._tag){case`StandardCommand`:{let t=o(e.options),i=s(e.options,`stdout`),a=s(e.options,`stderr`),m=c(e.options),g=!0,_=yield*n(e.options),y=r(e.options),b=l(t,i,a,m),[x,S]=yield*bp(p(e,Mce(e.options,{cwd:_,env:y,stdio:b},process.platform)),U(function*([t,n]){if(yield*ld(n)){let[r]=yield*ad(n);(r!==0&&Pt(r)||g&&process.platform!==`win32`&&e.options.detached!==!1)&&(yield*np(v(e,t,n,e.options)))}else g&&(yield*np(v(e,t,n,e.options)))})),ee=wce(x.pid);x.on(`exit`,t=>{t!==0&&Pt(t)&&h(x,e.options.killSignal??`SIGTERM`)});let te=L(()=>{g||=(x.ref(),!0)}),C=L(()=>(g&&=(x.unref(),!1),te)),ne=yield*d(e,x,t),{all:w,stderr:T,stdout:re}=f(e,x,i,a),{getInputFd:ie,getOutputFd:E}=yield*u(e,x,m),ae=H(ld(S),e=>!e),oe=V(ad(S),([t,n])=>{if(Pt(t))return I(Cce(t));let r=new globalThis.Error(`Process interrupted due to receipt of signal: '${n}'`);return B(uD(`exitCode`,r,e))});return WE({pid:ee,exitCode:oe,isRunning:ae,kill:t=>v(e,x,S,t),stdin:ne,stdout:re,stderr:T,all:w,getInputFd:ie,getOutputFd:E,unref:C})}case`PipedCommand`:{let{commands:t,pipeOptions:n}=gD(e),[r,...i]=t,a=[yield*b(r)];for(let e=0;e<i.length;e++){let t=i[e],r=n[e]??{},s=o(t.options),c=zT(I(y(a[a.length-1],r.from))),l=r.to??`stdin`;if(l===`stdin`)a.push(yield*b(JE(t.command,t.args,{...t.options,stdin:{...s,stream:c}})));else{let e=XE(l);if(Nt(e)){let n=Oce(e),r=t.options.additionalFds??{};a.push(yield*b(JE(t.command,t.args,{...t.options,additionalFds:{...r,[n]:{type:`input`,stream:c}}})))}else a.push(yield*b(JE(t.command,t.args,{...t.options,stdin:{...s,stream:c}})))}}let s=a[a.length-1],c=e=>Df([...a].reverse(),t=>np(t.kill(e)),{discard:!0}),l=z(function*(){let e=[];for(let t of a)e.push(yield*t.unref);return Df([...e].reverse(),e=>e,{discard:!0})});return WE({pid:s.pid,exitCode:s.exitCode,isRunning:s.isRunning,kill:c,stdin:a[0].stdin,stdout:s.stdout,stderr:s.stderr,all:s.all,getInputFd:s.getInputFd,getOutputFd:s.getOutputFd,unref:l})}}});return Ece(b)})),gD=e=>{let t=[],n=[],r=e=>{switch(e._tag){case`StandardCommand`:t.push(e);break;case`PipedCommand`:r(e.left),n.push(e.options),r(e.right)}};if(r(e),t.length===0)throw Error(`flattenCommand produced empty commands array`);let[i,...a]=t;return{commands:[i,...a],pipeOptions:n}},_D=`~effect/http/HttpBody`,vD=`~effect/http/HttpBody/HttpBodyError`;var yD=class extends (/*#__PURE__*/ vo(`HttpBodyError`)){[vD]=vD},bD=class{[_D];constructor(){this[_D]=_D}[jn](){return this.toJSON()}toString(){return Tn(this,{ignoreToString:!0})}};const xD=/*#__PURE__*/ new class extends bD{_tag=`Empty`;toJSON(){return{_id:`effect/HttpBody`,_tag:`Empty`}}};var SD=class extends bD{_tag=`Raw`;body;contentType;contentLength;constructor(e,t,n){super(),this.body=e,this.contentType=t,this.contentLength=n}toJSON(){return{_id:`effect/HttpBody`,_tag:`Raw`,body:this.body,contentType:this.contentType,contentLength:this.contentLength}}};const CD=(e,t)=>new SD(e,t?.contentType,t?.contentLength);var wD=class extends bD{_tag=`Uint8Array`;contentType;contentLength;text;_body;constructor(e,t,n,r){super(),this._body=e,this.text=r,this.contentType=t,this.contentLength=n}get body(){return this._body??=OD(this.text)}toJSON(){return{_id:`effect/HttpBody`,_tag:`Uint8Array`,body:this.contentType.startsWith(`text/`)||this.contentType.endsWith(`json`)?new TextDecoder().decode(this.body):`Uint8Array(${this.body.length})`,contentType:this.contentType,contentLength:this.contentLength}}};const TD=(e,t)=>new wD(e,t??`application/octet-stream`,e.length),ED=/*#__PURE__*/ new TextEncoder,DD=globalThis.Buffer,OD=DD===void 0?e=>ED.encode(e):e=>DD.from(e,`utf8`),kD=(e,t)=>{if(typeof e!=`string`&&(e=e===void 0?``:String(e)),DD!==void 0)return new wD(void 0,t??`text/plain`,DD.byteLength(e,`utf8`),e);let n=ED.encode(e);return new wD(n,t??`text/plain`,n.length,e)},AD=(e,t)=>kD(JSON.stringify(e),t??`application/json`),jD=(e,t)=>Rf({try:()=>kD(JSON.stringify(e),t??`application/json`),catch:e=>new yD({reason:{_tag:`JsonError`},cause:e})}),MD=(e,t)=>{let n=fb(jS(e));return(e,r)=>n(e,t).pipe(Qf(e=>new yD({reason:{_tag:`SchemaError`,issue:e},cause:e})),V(e=>jD(e,r)))};var ND=class extends bD{_tag=`Stream`;stream;contentType;contentLength;constructor(e,t,n){super(),this.stream=e,this.contentType=t,this.contentLength=n}toJSON(){return{_id:`effect/HttpBody`,_tag:`Stream`,contentType:this.contentType,contentLength:this.contentLength}}};const PD=(e,t,n)=>new ND(e,t??`application/octet-stream`,n),FD=`~effect/http/HttpClientError`;var ID=class extends (/*#__PURE__*/ vo(`HttpClientError`)){constructor(e){`cause`in e.reason?super({...e,cause:e.reason.cause}):super(e)}[FD]=FD;get request(){return this.reason.request}get response(){return`response`in this.reason?this.reason.response:void 0}get message(){return this.reason.message}};const LD=e=>e.endsWith(`Error`)?e.slice(0,-5):e,RD=(e,t,n)=>t?`${e}: ${t} (${n})`:`${e} error (${n})`;var zD=class extends (/*#__PURE__*/ vo(`TransportError`)){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){return RD(LD(this._tag),this.description,this.methodAndUrl)}},BD=class extends (/*#__PURE__*/ vo(`InvalidUrlError`)){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){return RD(LD(this._tag),this.description,this.methodAndUrl)}},VD=class extends (/*#__PURE__*/ vo(`StatusCodeError`)){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this.response.status} ${this.methodAndUrl}`;return RD(LD(this._tag),this.description,e)}},HD=class extends (/*#__PURE__*/ vo(`DecodeError`)){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this.response.status} ${this.methodAndUrl}`;return RD(LD(this._tag),this.description,e)}},UD=class extends (/*#__PURE__*/ vo(`EmptyBodyError`)){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this.response.status} ${this.methodAndUrl}`;return RD(LD(this._tag),this.description,e)}};const WD=e=>e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`,GD=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`],[`QUERY`,`query`]],KD=(e,t)=>t._tag===`Empty`||t._tag===`FormData`?Qh(Qh(e,`content-type`),`content-length`):(e=t.contentType===void 0?Qh(e,`content-type`):Yh(e,`content-type`,t.contentType),t.contentLength===void 0?Qh(e,`content-length`):Yh(e,`content-length`,t.contentLength.toString())),qD=e=>{if(e==null||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0};var JD=class extends (/*#__PURE__*/ vo(`UrlError`)){};const YD=(e,t,n)=>ta({try:()=>{let r=new URL(e,XD());for(let e=0;e<t.params.length;e++){let[n,i]=t.params[e];i!==void 0&&r.searchParams.append(n,i)}return n!==void 0&&(r.hash=n),r},catch:e=>new JD({cause:e})}),XD=()=>{if(`location`in globalThis&&globalThis.location!==void 0&&globalThis.location.origin!==void 0&&globalThis.location.pathname!==void 0)return location.origin+location.pathname},ZD=`~effect/http/HttpClientRequest`,QD={[ZD]:ZD,...Nn,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:bn(this.headers),body:this.body.toJSON()}},pipe(){return ut(this,arguments)}};function $D(e,t,n,r,i,a){let o=Object.create(QD);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}const eO=/*#__PURE__*/ $D(`GET`,``,dg,/*#__PURE__*/ di(),Kh,xD),tO=e=>(t,n)=>iO(eO,{method:e,url:t,...n??void 0}),nO=/*#__PURE__*/ tO(`GET`),rO=/*#__PURE__*/ tO(`POST`),iO=/*#__PURE__*/ M(2,(e,t)=>{let n=e;return t.method&&(n=aO(n,t.method)),t.url&&(n=uO(n,t.url)),t.headers&&(n=sO(n,t.headers)),t.urlParams&&(n=dO(n,t.urlParams)),t.hash&&(n=fO(n,t.hash)),t.body&&(n=pO(n,t.body)),t.accept&&(n=cO(n,t.accept)),t.acceptJson&&(n=lO(n)),n}),aO=/*#__PURE__*/ M(2,(e,t)=>$D(t,e.url,e.urlParams,e.hash,e.headers,e.body)),oO=/*#__PURE__*/ M(3,(e,t,n)=>$D(e.method,e.url,e.urlParams,e.hash,Yh(e.headers,t,n),e.body)),sO=/*#__PURE__*/ M(2,(e,t)=>$D(e.method,e.url,e.urlParams,e.hash,Xh(e.headers,t),e.body)),cO=/*#__PURE__*/ M(2,(e,t)=>oO(e,`Accept`,t)),lO=/*#__PURE__*/ cO(`application/json`),uO=/*#__PURE__*/ M(2,(e,t)=>{if(typeof t==`string`)return $D(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=sg(n.searchParams),i=_i(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,$D(e.method,n.toString(),r,i,e.headers,e.body)}),dO=/*#__PURE__*/ M(2,(e,t)=>$D(e.method,e.url,fg(e.urlParams,t),e.hash,e.headers,e.body)),fO=/*#__PURE__*/ M(2,(e,t)=>$D(e.method,e.url,e.urlParams,fi(t),e.headers,e.body)),pO=/*#__PURE__*/ M(2,(e,t)=>$D(e.method,e.url,e.urlParams,e.hash,KD(e.headers,t),t)),mO=/*#__PURE__*/ M(2,(e,t)=>pO(e,AD(t)));function hO(e){let t=YD(e.url,e.urlParams,yi(e.hash));return ia(t)?fi(t.success):di()}const gO=`~effect/http/HttpIncomingMessage`,_O=(e,t)=>{let n=ux(jS(e)),r=t?.reviver===void 0?void 0:ux(sS(jS(e),t));return e=>r===void 0?V(e.json,e=>n(e,t)):V(e.text,i=>i===``?V(e.json,e=>n(e,t)):r(i,t))},vO=/*#__PURE__*/ Xi(`effect/http/HttpIncomingMessage/MaxBodySize`,{defaultValue:()=>void 0}),yO=(e,t)=>{let n=e.headers[`content-type`]??``,r;if(n.includes(`application/json`))try{r=Up(e.json)}catch{}else if(n.includes(`text/`)||n.includes(`urlencoded`))try{r=Up(e.text)}catch{}let i={...t,headers:bn(e.headers),remoteAddress:e.remoteAddress};return r!==void 0&&(i.body=r),i},bO=`~effect/http/HttpClientResponse`,xO=(e,t)=>new SO(e,t);var SO=class extends Pn{[gO];[bO];request;source;constructor(e,t){super(),this.request=e,this.source=t,this[gO]=gO,this[bO]=bO}toJSON(){return yO(this,{_id:`HttpClientResponse`,request:this.request.toJSON(),status:this.status})}get status(){return this.source.status}get url(){if(this.source.url)return this.source.url.split(`#`)[0];let e=hO(this.request);return pi(e)?``:(e.value.hash=``,e.value.href)}get headers(){return qh(this.source.headers)}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=hh(this.source.headers.getSetCookie?.()??[])}get remoteAddress(){return di()}get stream(){return this.source.body?RT({evaluate:()=>this.source.body,onError:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}):nse(new ID({reason:new UD({request:this.request,response:this,description:`can not create stream from empty body`})}))}get json(){return V(this.text,e=>Rf({try:()=>e===``?null:JSON.parse(e),catch:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}))}textBody;get text(){return this.textBody??=H(this.arrayBuffer,e=>new TextDecoder().decode(e))}get urlParamsBody(){return V(this.text,e=>Rf({try:()=>sg(new URLSearchParams(e)),catch:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}))}formDataBody;get formData(){return this.formDataBody??=Af({try:()=>this.source.formData(),catch:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}).pipe(Ep,Up)}arrayBufferBody;get arrayBuffer(){return this.arrayBufferBody||=Af({try:()=>this.source.arrayBuffer(),catch:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}).pipe(Ep,Up),this.arrayBufferBody}pipe(){return ut(this,arguments)}};const CO=e=>Jh({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${hi(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),wO=e=>{let t=jO(e);return mi(t)||(t=TO(e),mi(t))?t:EO(e)},TO=e=>{if(!(`b3`in e))return di();let t=e.b3.split(`-`);return t.length<2||AO(t[0],t[1])===!1?di():fi(Eo({traceId:t[0],spanId:t[1],sampled:!t[2]||t[2]===`1`||t[2]===`d`}))},EO=e=>!e[`x-b3-traceid`]||!e[`x-b3-spanid`]||AO(e[`x-b3-traceid`],e[`x-b3-spanid`])===!1?di():fi(Eo({traceId:e[`x-b3-traceid`],spanId:e[`x-b3-spanid`],sampled:e[`x-b3-flags`]===`1`||!e[`x-b3-sampled`]||e[`x-b3-sampled`]===`1`||e[`x-b3-sampled`]===`true`})),DO=/^[0-9a-f]{32}$/i,OO=/^[0-9a-f]{16}$/i,kO=/^(?:[0-9a-f]{16}|[0-9a-f]{32})$/i,AO=(e,t)=>kO.test(e)&&OO.test(t),jO=e=>{if(!e.traceparent)return di();let t=e.traceparent.split(`-`);if(t.length!==4)return di();let[n,r,i,a]=t;switch(n){case`00`:return DO.test(r)===!1||OO.test(i)===!1||r===`00000000000000000000000000000000`||i===`0000000000000000`?di():fi(Eo({traceId:r,spanId:i,sampled:(parseInt(a,16)&1)==1}));default:return di()}},MO={"http:":80,"https:":443,"ws:":80,"wss:":443},NO=(e,t)=>{let n=t.search.slice(1);if(e.attribute(`url.full`,t.toString()),e.attribute(`url.path`,t.pathname),n!==``&&e.attribute(`url.query`,n),e.attribute(`url.scheme`,t.protocol.slice(0,-1)),t.hostname!==``){e.attribute(`server.address`,t.hostname.startsWith(`[`)?t.hostname.slice(1,-1):t.hostname);let n=t.port===``?MO[t.protocol]:Number(t.port);n!==void 0&&e.attribute(`server.port`,n)}},PO=(e,t,n,r,i)=>{for(let a in n)r(a,t)&&e.attribute(`http.${t}.header.${a}`,tg(a,i)?`<redacted>`:n[a])},FO=`~effect/http/HttpClient`,IO=/*#__PURE__*/ F(`effect/HttpClient`),LO=/*#__PURE__*/ M(2,(e,t)=>zO(V(n=>t(e.postprocess(I(n)),n)),e.preprocess)),RO=/*#__PURE__*/ M(2,(e,t)=>zO(n=>t(e.postprocess(n)),e.preprocess)),zO=(e,t)=>{let n=Object.create(BO);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},BO={[FO]:FO,pipe(){return ut(this,arguments)},...Nn,toJSON(){return{_id:`effect/HttpClient`}},.../*#__PURE__*/ Object.fromEntries(/*#__PURE__*/ GD.map(([e,t])=>[t,function(t,n){return this.execute(tO(e)(t,n))}]))},VO=e=>zO(t=>V(t,t=>zf(n=>{let r=XO.get(t),i=r??new AbortController,a=YD(t.url,t.urlParams,yi(t.hash));if(ra(a))return B(new ID({reason:new BD({request:t,cause:a.failure})}));let o=a.success;if(n.getRef(Do)||n.getRef(WO)(t)){let a=e(t,o,i.signal,n);return r?a:Mp(e=>cp(e(a),{onSuccess(e){return YO.register(e,i),I(new ZO(e,i))},onFailure(e){return Pu(e)&&i.abort(),Ff(e)}}))}return Pp(n.getRef(qO)(t),{kind:`client`},a=>{a.attribute(`http.request.method`,t.method);let s=n.getRef(ng);NO(a,o);let c=n.getRef(GO);return PO(a,`request`,t.headers,c,s),t=n.getRef(KO)?sO(t,CO(a)):t,Mp(l=>l(e(t,o,i.signal,n)).pipe(Ip(a,{captureStackTrace:!1}),cp({onSuccess:e=>(a.attribute(`http.response.status_code`,e.status),PO(a,`response`,e.headers,c,s),e.status>=400&&e.status<600&&(a.attribute(`error.type`,String(e.status)),HO(n,a,t,e)),r?I(e):(YO.register(e,i),I(new ZO(e,i)))),onFailure(e){return!r&&Pu(e)&&i.abort(),Ff(e)}})))})})),I),HO=(e,t,n,r)=>{let i=Fn();In(0);let a;try{a=Gu(new ID({reason:new VD({request:n,response:r})}))}finally{In(i)}t.end(e.getRef(hd)?e.getRef(af).currentTimeNanosUnsafe():BigInt(0),a)},UO=e=>LO(e,(e,t)=>{let n=new AbortController;return XO.set(t,n),Vf(xp(()=>L(()=>n.abort())),e)}),WO=/*#__PURE__*/ Xi(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>ht}),GO=/*#__PURE__*/ Xi(`effect/http/HttpClient/TracerHeaderFilter`,{defaultValue:()=>ht}),KO=/*#__PURE__*/ Xi(`effect/http/HttpClient/TracerPropagationEnabled`,{defaultValue:mt}),qO=/*#__PURE__*/ Xi(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>e.method}),JO=e=>Wd(IO)(dp(t=>H(e,e=>RO(e,gp(e=>Ji(t,e)))))),YO=/*#__PURE__*/ (()=>{if(`FinalizationRegistry`in globalThis&&globalThis.FinalizationRegistry){let e=/*#__PURE__*/ new FinalizationRegistry(e=>{e.abort()});return{register(t,n){e.register(t,n,t)},unregister(t){e.unregister(t)}}}let e=/*#__PURE__*/ new WeakMap;return{register(t,n){e.set(t,setTimeout(()=>n.abort(),5e3))},unregister(t){let n=e.get(t);n!==void 0&&(clearTimeout(n),e.delete(t))}}})(),XO=/*#__PURE__*/ new WeakMap;var ZO=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[bO]=bO;[gO]=gO;applyInterrupt(e){return Mf(()=>(YO.unregister(this.original),Ap(e,()=>L(()=>{this.controller.abort()}))))}get request(){return this.original.request}get url(){return this.original.url}get status(){return this.original.status}get headers(){return this.original.headers}get cookies(){return this.original.cookies}get remoteAddress(){return this.original.remoteAddress}get formData(){return this.applyInterrupt(this.original.formData)}get text(){return this.applyInterrupt(this.original.text)}get json(){return this.applyInterrupt(this.original.json)}get urlParamsBody(){return this.applyInterrupt(this.original.urlParamsBody)}get arrayBuffer(){return this.applyInterrupt(this.original.arrayBuffer)}get stream(){return IT(()=>(YO.unregister(this.original),hse(this.original.stream,L(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[jn](){return this.original[jn]()}pipe(){return ut(this,arguments)}};const QO=/\+/g,$O=function(){};$O.prototype=/*#__PURE__*/ Object.create(null);function ek(e){let t=new $O;if(typeof e!=`string`)return t;let n=e.length,r=``,i=``,a=-1,o=-1,s=!1,c=!1,l=!1,u=!1,d=!1,f=0;for(let p=0;p<n+1;p++)if(f=p===n?38:e.charCodeAt(p),f===38){if(d=o>a,d||(o=p),r=e.slice(a+1,o),d||r.length>0){if(l&&(r=r.replace(QO,` `)),s)try{r=decodeURIComponent(r)||r}catch{}if(d&&(i=e.slice(o+1,p),u&&(i=i.replace(QO,` `)),c))try{i=decodeURIComponent(i)||i}catch{}let n=t[r];n===void 0?t[r]=i:n.pop?n.push(i):t[r]=[n,i]}i=``,a=p,o=p,s=!1,c=!1,l=!1,u=!1}else f===61?o<=a?o=p:c=!0:f===43?o>a?u=!0:l=!0:f===37&&(o>a?c=!0:s=!0);return t}const tk=/^https?:\/\/.*?\//,nk=/(\/:[^/()]*?)\?(\/?)/,rk=[],ik=/^[^:*(]*\/:[^/:*(.-]+$/,ak=e=>ik.test(e),ok=(e={})=>new sk(e);var sk=class{constructor(e={}){this.options={ignoreTrailingSlash:!0,ignoreDuplicateSlashes:!0,caseSensitive:!1,maxParamLength:100,...e}}options;routes=[];trees=/*#__PURE__*/ Object.create(null);staticRoutes=/*#__PURE__*/ Object.create(null);singleParamRoutes=/*#__PURE__*/ Object.create(null);singleParamDisabled=/*#__PURE__*/ Object.create(null);brothersNodesStack=[];singleParamArray=[``];on(e,t,n){let r=t.match(nk);if(r&&r.index!==void 0){mk(t.length===r.index+r[0].length,`Optional Parameter needs to be the last parameter of the path`);let i=t.replace(nk,`$1$2`),a=t.replace(nk,`$2`)||`/`;this.on(e,i,n),this.on(e,a,n);return}this.options.ignoreDuplicateSlashes&&(t=hk(t)),this.options.ignoreTrailingSlash&&(t=gk(t));let i=typeof e==`string`?[e]:e;for(let e of i)this._on(e,t,n)}all(e,t){this.on(wk,e,t)}_on(e,t,n){this.trees[e]===void 0&&(this.trees[e]=new dk(`/`));let r=t;if(r===`*`&&this.trees[e].prefix.length!==0){let t=this.trees[e];this.trees[e]=new dk(``),this.trees[e].staticChildren[`/`]=t}let i=this.trees[e].prefix.length,a=this.trees[e],o=[];for(let e=0;e<=r.length;e++){if(r.charCodeAt(e)===58&&r.charCodeAt(e+1)===58){e++;continue}let t=r.charCodeAt(e)===58&&r.charCodeAt(e+1)!==58,n=r.charCodeAt(e)===42;if(t||n||e===r.length&&e!==i){let t=r.slice(i,e);this.options.caseSensitive||(t=t.toLowerCase()),t=t.split(`::`).join(`:`),t=t.split(`%`).join(`%25`),a=a.createStaticChild(t)}if(t){let t=!1,n=!0,s=``,c=[],l=``,u=e+1;for(let d=u;;d++){let f=r.charCodeAt(d),p=f===40,m=f===45||f===46,h=f===47||d===r.length;if(p||m||h){let f=r.slice(u,d);if(o.push(f),t=t||p||m,p){let e=vk(r,d),t=r.slice(d,e+1);c.push(yk(t)),d=e+1,n=!0}else c.push(n?`(.*?)`:`(${s}|(?:(?!${s}).)*)`),n=!1;let g=d;for(;d<r.length;d++){let e=r.charCodeAt(d);if(e===47)break;if(e===58){if(r.charCodeAt(d+1)===58)d++;else break}}let _=r.slice(g,d);if(_&&(_=_.split(`::`).join(`:`),_=_.split(`%`).join(`%25`),c.push(s=bk(_))),u=d+1,l+=`()`+_,h||r.charCodeAt(d)===47||d===r.length){let n=t?l:_,o=r.slice(e,d);r=r.slice(0,e+1)+n+r.slice(d),e+=n.length;let s=t?RegExp(`^`+c.join(``)+`$`):void 0;a=a.createParametricChild(s,_,o),i=e+1;break}}}}else if(n&&(o.push(`*`),a=a.createWildcardChild(),i=e+1,e!==r.length-1))throw Error(`Wildcard must be the last character in the route`)}this.options.caseSensitive||(r=r.toLowerCase()),r===`*`&&(r=`/*`);for(let t of this.routes)if(t.method===e&&t.pattern===r)throw Error(`Method '${e}' already declared for route '${r}'`);let s={method:e,path:t,pattern:r,params:o,handler:n};if(this.routes.push(s),a.addRoute(s),o.length===0){let t=r.split(`::`).join(`:`).split(`%`).join(`%25`),n=this.staticRoutes[e]??=/* @__PURE__ */ new Map;n.has(t)||n.set(t,a.handlerStorage.unconstrainedHandler)}else if(ak(t)){if(this.singleParamDisabled[e]!==!0){let n=t.slice(0,t.indexOf(`:`));this.options.caseSensitive||(n=n.toLowerCase()),n=n.split(`%`).join(`%25`);let r=this.singleParamRoutes[e]??=/* @__PURE__ */ new Map;r.has(n)||r.set(n,a.handlerStorage.unconstrainedHandler)}}else/[(*]|[^/]:|:[^/]*[-.]/.test(t)&&(this.singleParamDisabled[e]=!0,delete this.singleParamRoutes[e])}has(e,t){let n=this.trees[e];if(n===void 0)return!1;let r=n.getStaticChild(t);return r!==void 0&&r.isLeafNode}find(e,t){let n=this.trees[e];if(n===void 0)return;let r=``,i=!1,a=t.charCodeAt(0)===47&&(t.length===1||t.charCodeAt(t.length-1)!==47);if(a)for(let e=1;e<t.length;e++){let n=t.charCodeAt(e);if(n===37||n===63||n===59||n===35||n>=65&&n<=90||n===47&&t.charCodeAt(e-1)===47){a=!1;break}}if(!a){t.charCodeAt(0)!==47&&(t=t.replace(tk,`/`));let e;try{e=Sk(t),t=e.path,r=e.querystring,i=e.shouldDecodeParam}catch{return}this.options.ignoreDuplicateSlashes&&(t=hk(t)),this.options.ignoreTrailingSlash&&(t=gk(t))}let o=t;!a&&this.options.caseSensitive===!1&&(t=t.toLowerCase());let s=this.options.maxParamLength,c=this.staticRoutes[e];if(c!==void 0){let e=c.get(t);if(e!==void 0)return{handler:e.handler,params:e.createParams(rk),searchParams:ek(r)}}let l=this.singleParamRoutes[e];if(l!==void 0){let e=t.lastIndexOf(`/`)+1,n=l.get(t.slice(0,e));if(n!==void 0&&t.length>e){let t=o.slice(e);if(i&&(t=Ck(t)),t.length<=s)return this.singleParamArray[0]=t,{handler:n.handler,params:n.createParams(this.singleParamArray),searchParams:ek(r)}}}let u=n.prefix.length,d=[],f=t.length,p=this.brothersNodesStack;for(p.length=0;;){if(u===f&&n.isLeafNode){let e=n.handlerStorage?.find();if(e!==void 0)return{handler:e.handler,params:e.createParams(d),searchParams:ek(r)}}let e=n.getNextNode(t,u,p,d.length);if(e===void 0){if(p.length===0)return;let t=p.pop();u=t.brotherPathIndex,d.splice(t.paramsCount),e=t.brotherNode}for(n=e;;){if(n._tag===`StaticNode`){u+=n.prefix.length;break}if(n._tag===`WildcardNode`){let e=o.slice(u);i&&(e=Ck(e)),d.push(e),u=f;break}let e=o.indexOf(`/`,u);e===-1&&(e=f);let t=o.slice(u,e);if(i&&(t=Ck(t)),n.regex!==void 0){let e=n.regex.exec(t);if(e===null){if(p.length===0)return;let e=p.pop();u=e.brotherPathIndex,d.splice(e.paramsCount),n=e.brotherNode;continue}let r=!1;for(let t=1;t<e.length;t++)if((e[t]??``).length>s){r=!0;break}if(r){if(p.length===0)return;let e=p.pop();u=e.brotherPathIndex,d.splice(e.paramsCount),n=e.brotherNode;continue}for(let t=1;t<e.length;t++)d.push(e[t]??``)}else{if(t.length>s){if(p.length===0)return;let e=p.pop();u=e.brotherPathIndex,d.splice(e.paramsCount),n=e.brotherNode;continue}d.push(t)}u=e;break}}}},ck=class{handlers=[];unconstrainedHandler;find(){return this.unconstrainedHandler}add(e){let t={params:e.params,handler:e.handler,createParams:_k(e.params)};this.handlers.push(t),this.unconstrainedHandler=this.handlers[0]}},lk=class{isLeafNode=!1;routes;handlerStorage;addRoute(e){this.routes===void 0?this.routes=[e]:this.routes.push(e),this.handlerStorage===void 0&&(this.handlerStorage=new ck),this.isLeafNode=!0,this.handlerStorage.add(e)}},uk=class extends lk{staticChildren=/*#__PURE__*/ Object.create(null);findStaticMatchingChild(e,t){let n=this.staticChildren[e.charAt(t)];if(n!==void 0&&n.matchPrefix(e,t))return n}getStaticChild(e,t=0){if(e.length===t)return this;let n=this.findStaticMatchingChild(e,t);if(n!==void 0)return n.getStaticChild(e,t+n.prefix.length)}createStaticChild(e){if(e.length===0)return this;let t=this.staticChildren[e.charAt(0)];if(t){let n=1;for(;n<t.prefix.length;n++)if(e.charCodeAt(n)!==t.prefix.charCodeAt(n)){t=t.split(this,n);break}return t.createStaticChild(e.slice(n))}let n=e.charAt(0);return this.staticChildren[n]=new dk(e),this.staticChildren[n]}},dk=class e extends uk{_tag=`StaticNode`;constructor(e){super(),this.setPrefix(e)}prefix;matchPrefix;parametricChildren=[];wildcardChild;setPrefix(e){if(this.prefix=e,e.length===1)this.matchPrefix=(e,t)=>!0;else{let t=e.slice(1);this.matchPrefix=(e,n)=>e.startsWith(t,n+1)}}getParametricChild(e){if(e===void 0)return this.parametricChildren.find(e=>e.isRegex===!1);let t=e.source;return this.parametricChildren.find(e=>e.regex!==void 0&&e.regex.source===t)}createParametricChild(e,t,n){let r=this.getParametricChild(e);return r===void 0?(r=new fk(e,t,n),this.parametricChildren.push(r),this.parametricChildren.sort((e,t)=>e.isRegex?t.isRegex?e.staticSuffix===void 0?1:t.staticSuffix===void 0?-1:t.staticSuffix.endsWith(e.staticSuffix)?1:e.staticSuffix.endsWith(t.staticSuffix)?-1:0:-1:1),r):(r.nodePaths.add(n),r)}createWildcardChild(){return this.wildcardChild===void 0&&(this.wildcardChild=new pk),this.wildcardChild}split(t,n){let r=this.prefix.slice(0,n),i=this.prefix.slice(n);this.setPrefix(i);let a=new e(r);return a.staticChildren[i.charAt(0)]=this,t.staticChildren[r.charAt(0)]=a,a}getNextNode(e,t,n,r){let i=this.findStaticMatchingChild(e,t),a=0;if(i===void 0){if(this.parametricChildren.length===0)return this.wildcardChild;i=this.parametricChildren[0],a=1}this.wildcardChild!==void 0&&n.push({paramsCount:r,brotherPathIndex:t,brotherNode:this.wildcardChild});for(let e=this.parametricChildren.length-1;e>=a;e--)n.push({paramsCount:r,brotherPathIndex:t,brotherNode:this.parametricChildren[e]});return i}},fk=class extends uk{_tag=`ParametricNode`;regex;staticSuffix;constructor(e,t,n){super(),this.regex=e,this.staticSuffix=t,this.isRegex=!!e,this.nodePaths=/* @__PURE__ */ new Set([n])}isRegex;nodePaths;getNextNode(e,t){return this.findStaticMatchingChild(e,t)}},pk=class extends lk{_tag=`WildcardNode`;getNextNode(e,t,n,r){}};const mk=(e,t)=>{if(!e)throw Error(t)};function hk(e){return e.indexOf(`//`)===-1?e:e.replace(/\/\/+/g,`/`)}function gk(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function _k(e){let t=e.length;return t===0?()=>Object.create(null):function(n){let r=Object.create(null);for(let i=0;i<t;i++)r[e[i]]=n[i];return r}}function vk(e,t){let n=1;for(;t<e.length;)if(t++,e[t]===`\\`)t++;else if(e[t]===`)`?n--:e[t]===`(`&&n++,!n)return t;throw TypeError(`Invalid regexp expression in "`+e+`"`)}function yk(e){return e.charCodeAt(1)===94&&(e=e.slice(0,1)+e.slice(2)),e.charCodeAt(e.length-2)===36&&(e=e.slice(0,e.length-2)+e.slice(e.length-1)),e}function bk(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function xk(e,t){if(e===50)return t===53?`%`:t===51?`#`:t===52?`$`:t===54?`&`:t===66||t===98?`+`:t===67||t===99?`,`:t===70||t===102?`/`:void 0;if(e===51)return t===65||t===97?`:`:t===66||t===98?`;`:t===68||t===100?`=`:t===70||t===102?`?`:void 0;if(e===52&&t===48)return`@`}function Sk(e){let t=!1,n=!1,r=``;for(let i=1;i<e.length;i++){let a=e.charCodeAt(i);if(a===37){let r=e.charCodeAt(i+1),a=e.charCodeAt(i+2);xk(r,a)===void 0?t=!0:(n=!0,r===50&&a===53&&(t=!0,e=e.slice(0,i+1)+`25`+e.slice(i+1),i+=2),i+=2)}else if(a===63||a===59||a===35){r=e.slice(i+1),e=e.slice(0,i);break}}return{path:t?decodeURI(e):e,querystring:r,shouldDecodeParam:n}}function Ck(e){let t=e.indexOf(`%`);if(t===-1)return e;let n=``,r=t;for(let i=t;i<e.length;i++)if(e.charCodeAt(i)===37){if(i+2>=e.length)break;let t=xk(e.charCodeAt(i+1),e.charCodeAt(i+2));n+=e.slice(r,i)+t,r=i+3}return e.slice(0,t)+n+e.slice(r)}const wk=/* @__PURE__ */ `ACL.BIND.CHECKOUT.CONNECT.COPY.DELETE.GET.HEAD.LINK.LOCK.M-SEARCH.MERGE.MKACTIVITY.MKCALENDAR.MKCOL.MOVE.NOTIFY.OPTIONS.PATCH.POST.PROPFIND.PROPPATCH.PURGE.PUT.QUERY.REBIND.REPORT.SEARCH.SOURCE.SUBSCRIBE.TRACE.UNBIND.UNLINK.UNLOCK.UNSUBSCRIBE`.split(`.`),Tk=ok,Ek=e=>{switch(e._tag){case`Weak`:return`W/"${e.value}"`;case`Strong`:return`"${e.value}"`}};var Dk=class extends (/*#__PURE__*/ F()(`effect/http/Etag/Generator`)){};const Ok=e=>{let t=hi(e.mtime,{onNone:()=>`0`,onSome:e=>e.getTime().toString(16)});return`${e.size.toString(16)}-${t}`},kk=e=>`${e.size.toString(16)}-${e.lastModified.toString(16)}`,Ak=/*#__PURE__*/ Vd(Dk)({fromFileInfo(e){return L(()=>({_tag:`Strong`,value:Ok(e)}))},fromFileWeb(e){return L(()=>({_tag:`Strong`,value:kk(e)}))}}),jk=/*#__PURE__*/ Vd(Dk)({fromFileInfo(e){return L(()=>({_tag:`Weak`,value:Ok(e)}))},fromFileWeb(e){return L(()=>({_tag:`Weak`,value:kk(e)}))}}),Mk=/*#__PURE__*/ Object.getPrototypeOf(Kh),Nk=()=>Object.create(Mk),Pk=`~effect/http/HttpServerResponse`,Fk=e=>P(e,Pk),Ik=e=>iA({status:e?.status??204,statusText:e?.statusText,headers:e?.headers?qh(e.headers):void 0,cookies:e?.cookies}),Lk=(e,t)=>{let n=Jh({location:e.toString()});return iA({status:t?.status??302,statusText:t?.statusText,headers:t?.headers?Zh(n,qh(t.headers)):n,cookies:t?.cookies??_h})},Rk=(e,t)=>{let n=t?.headers?qh(t.headers):Kh;return iA({status:t?.status??200,statusText:t?.statusText,headers:n,cookies:t?.cookies??_h,body:TD(e,zk(t,n))})},zk=(e,t)=>{if(e?.contentType)return e.contentType;if(e?.headers)return t[`content-type`]},Bk=(e,t)=>{let n=t?.headers?qh(t.headers):Kh;return iA({status:t?.status??200,statusText:t?.statusText,headers:n,cookies:t?.cookies??_h,body:kD(e,zk(t,n))})},Vk=(e,t)=>{let n=MD(e,t);return(e,t)=>{let r=t?.headers?qh(t.headers):Kh;return H(n(e,zk(t,r)),e=>iA({status:t?.status??200,statusText:t?.statusText,headers:r,cookies:t?.cookies,body:e}))}},Hk=(e,t)=>{let n=t?.headers?qh(t.headers):Kh;return iA({status:t?.status??200,statusText:t?.statusText,headers:n,cookies:t?.cookies,body:AD(e,zk(t,n))})},Uk=(e,t)=>{let n=t?.headers?qh(t.headers):Kh;return iA({status:t?.status??200,statusText:t?.statusText,headers:n,cookies:t?.cookies,body:kD(pg(sg(e)),zk(t,n)??`application/x-www-form-urlencoded`)})},Wk=(e,t)=>iA({status:t?.status??200,statusText:t?.statusText,headers:t?.headers&&qh(t.headers),cookies:t?.cookies,body:CD(e,{contentType:t?.contentType,contentLength:t?.contentLength})}),Gk=(e,t)=>{let n=t?.headers?qh(t.headers):Kh;return iA({status:t?.status??200,statusText:t?.statusText,headers:n,cookies:t?.cookies,body:PD(e,zk(t,n),t?.contentLength)})},Kk=/*#__PURE__*/ M(3,(e,t,n)=>iA(e,Yh(e.headers,t,n))),qk=/*#__PURE__*/ M(2,(e,t)=>iA({...e,headers:Qh(e.headers,t)})),Jk=/*#__PURE__*/ M(2,(e,t)=>iA(e,Xh(e.headers,t))),Yk=/*#__PURE__*/ M(e=>Fk(e[0]),(e,t,n,r)=>H(Bf(Dh(e.cookies,t,n,r)),t=>iA({...e,cookies:t}))),Xk=/*#__PURE__*/ M(2,(e,t)=>iA({...e,cookies:Eh(e.cookies,t)})),Zk=/*#__PURE__*/ M(2,(e,t)=>iA({...e,body:t},KD(e.headers,t))),Qk=/*#__PURE__*/ M(e=>Fk(e[0]),(e,t,n)=>iA({...e,status:t,statusText:n??e.statusText})),$k=(e,t=!1)=>t||e.status===204||e.status===205||e.status===304,eA=(e,t)=>{for(let[n,r]of t)n===`set-cookie`?e.append(n,r):e.set(n,r);return e},tA=(e,t)=>{let n=new globalThis.Headers(e.headers);if(!vh(e.cookies)){let t=jh(e.cookies);for(let e of t)n.append(`set-cookie`,e)}let r=e.body,i=$k(e),a=i||t?.withoutBody===!0;if(r._tag===`Raw`&&r.body instanceof Response){let t=r.body;if(!a){if(n.keys().next().done)return t;let e=new Response(t.body,t);return eA(e.headers,n),e}let o=i?e:t;return new Response(void 0,{status:o.status,statusText:o.statusText,headers:eA(new globalThis.Headers(t.headers),n)})}if(a)return r._tag===`Raw`&&nA(r.body)&&r.body.cancel().catch(_t),new Response(void 0,{status:e.status,statusText:e.statusText,headers:n});switch(r._tag){case`Empty`:return new Response(void 0,{status:e.status,statusText:e.statusText,headers:n});case`Uint8Array`:return new Response(r.text??r.body,{status:e.status,statusText:e.statusText,headers:n});case`Raw`:return new Response(r.body,{status:e.status,statusText:e.statusText,headers:n});case`FormData`:return new Response(r.formData,{status:e.status,statusText:e.statusText,headers:n});case`Stream`:return new Response(qT(r.stream,t?.context??Ii(),{signal:t?.signal}),{status:e.status,statusText:e.statusText,headers:n})}},nA=e=>typeof ReadableStream<`u`&&e instanceof ReadableStream,rA={...Zn,[Pk]:Pk,[vE]:!0,toJSON(){return{_id:`HttpServerResponse`,status:this.status,statusText:this.statusText,headers:bn(this.headers),cookies:this.cookies.toJSON(),body:this.body.toJSON()}}},iA=(e,t)=>{let n=Object.create(rA);if(n.status=e.status,n.statusText=e.statusText,n.cookies=e.cookies??_h,n.body=e.body??xD,n.body._tag!==`Empty`&&(n.body.contentType||n.body.contentLength!==void 0)){let r=t!==void 0,i=r?t:e.headers===void 0||e.headers===Kh?Nk():Jh({...e.headers});n.body.contentType&&(!r||i[`content-type`]===void 0)&&(i[`content-type`]=n.body.contentType),n.body.contentLength!==void 0&&(!r||i[`content-length`]===void 0)&&(i[`content-length`]=n.body.contentLength.toString()),n.headers=i}else n.headers=t??e.headers??Kh;return n},aA=e=>{let t=new globalThis.Headers(e.headers),n=t.getSetCookie();t.delete(`set-cookie`);let r=Ik({status:e.status,statusText:e.statusText,headers:t,cookies:hh(n)});if(e.body){let t=e.headers.get(`content-type`);r=Zk(r,PD(RT({evaluate:()=>e.body,onError:e=>e}),t??void 0,qD(e.headers.get(`content-length`))))}return r},oA=(e,t)=>{let n=e.vary;if(n===void 0)return t;let r=n.split(`,`).map(e=>e.trim().toLowerCase());return r.includes(`*`)||r.includes(t.toLowerCase())?n:`${n}, ${t}`},sA=e=>({algorithms:e.algorithms,compressResponse(t,n,r){return H(e.compressResponse(t,n,r),e=>{if(e===t)return t;let r={"content-encoding":n,vary:oA(e.headers,`Accept-Encoding`)},i=e.headers.etag;return i!==void 0&&!i.startsWith(`W/`)&&(r.etag=`W/${i}`),Jk(e,r)})}}),cA={"application/andrew-inset":[`ez`],"application/appinstaller":[`appinstaller`],"application/applixware":[`aw`],"application/appx":[`appx`],"application/appxbundle":[`appxbundle`],"application/atom+xml":[`atom`],"application/atomcat+xml":[`atomcat`],"application/atomdeleted+xml":[`atomdeleted`],"application/atomsvc+xml":[`atomsvc`],"application/atsc-dwd+xml":[`dwd`],"application/atsc-held+xml":[`held`],"application/atsc-rsat+xml":[`rsat`],"application/automationml-aml+xml":[`aml`],"application/automationml-amlx+zip":[`amlx`],"application/bdoc":[`bdoc`],"application/calendar+xml":[`xcs`],"application/ccxml+xml":[`ccxml`],"application/cdfx+xml":[`cdfx`],"application/cdmi-capability":[`cdmia`],"application/cdmi-container":[`cdmic`],"application/cdmi-domain":[`cdmid`],"application/cdmi-object":[`cdmio`],"application/cdmi-queue":[`cdmiq`],"application/cpl+xml":[`cpl`],"application/cu-seeme":[`cu`],"application/cwl":[`cwl`],"application/dash+xml":[`mpd`],"application/dash-patch+xml":[`mpp`],"application/davmount+xml":[`davmount`],"application/dicom":[`dcm`],"application/docbook+xml":[`dbk`],"application/dssc+der":[`dssc`],"application/dssc+xml":[`xdssc`],"application/ecmascript":[`ecma`],"application/emma+xml":[`emma`],"application/emotionml+xml":[`emotionml`],"application/epub+zip":[`epub`],"application/exi":[`exi`],"application/express":[`exp`],"application/fdf":[`fdf`],"application/fdt+xml":[`fdt`],"application/font-tdpfr":[`pfr`],"application/geo+json":[`geojson`],"application/gml+xml":[`gml`],"application/gpx+xml":[`gpx`],"application/gxf":[`gxf`],"application/gzip":[`gz`],"application/hjson":[`hjson`],"application/hyperstudio":[`stk`],"application/inkml+xml":[`ink`,`inkml`],"application/ipfix":[`ipfix`],"application/its+xml":[`its`],"application/java-archive":[`jar`,`war`,`ear`],"application/java-serialized-object":[`ser`],"application/java-vm":[`class`],"application/javascript":[`*js`],"application/json":[`json`,`map`],"application/json5":[`json5`],"application/jsonml+json":[`jsonml`],"application/ld+json":[`jsonld`],"application/lgr+xml":[`lgr`],"application/lost+xml":[`lostxml`],"application/mac-binhex40":[`hqx`],"application/mac-compactpro":[`cpt`],"application/mads+xml":[`mads`],"application/manifest+json":[`webmanifest`],"application/marc":[`mrc`],"application/marcxml+xml":[`mrcx`],"application/mathematica":[`ma`,`nb`,`mb`],"application/mathml+xml":[`mathml`],"application/mbox":[`mbox`],"application/media-policy-dataset+xml":[`mpf`],"application/mediaservercontrol+xml":[`mscml`],"application/metalink+xml":[`metalink`],"application/metalink4+xml":[`meta4`],"application/mets+xml":[`mets`],"application/mmt-aei+xml":[`maei`],"application/mmt-usd+xml":[`musd`],"application/mods+xml":[`mods`],"application/mp21":[`m21`,`mp21`],"application/mp4":[`*mp4`,`*mpg4`,`mp4s`,`m4p`],"application/msix":[`msix`],"application/msixbundle":[`msixbundle`],"application/msword":[`doc`,`dot`],"application/mxf":[`mxf`],"application/n-quads":[`nq`],"application/n-triples":[`nt`],"application/node":[`cjs`],"application/octet-stream":[`bin`,`dms`,`lrf`,`mar`,`so`,`dist`,`distz`,`pkg`,`bpk`,`dump`,`elc`,`deploy`,`exe`,`dll`,`deb`,`dmg`,`iso`,`img`,`msi`,`msp`,`msm`,`buffer`],"application/oda":[`oda`],"application/oebps-package+xml":[`opf`],"application/ogg":[`ogx`],"application/omdoc+xml":[`omdoc`],"application/onenote":[`onetoc`,`onetoc2`,`onetmp`,`onepkg`,`one`,`onea`],"application/oxps":[`oxps`],"application/p2p-overlay+xml":[`relo`],"application/patch-ops-error+xml":[`xer`],"application/pdf":[`pdf`],"application/pgp-encrypted":[`pgp`],"application/pgp-keys":[`asc`],"application/pgp-signature":[`sig`,`*asc`],"application/pics-rules":[`prf`],"application/pkcs10":[`p10`],"application/pkcs7-mime":[`p7m`,`p7c`],"application/pkcs7-signature":[`p7s`],"application/pkcs8":[`p8`],"application/pkix-attr-cert":[`ac`],"application/pkix-cert":[`cer`],"application/pkix-crl":[`crl`],"application/pkix-pkipath":[`pkipath`],"application/pkixcmp":[`pki`],"application/pls+xml":[`pls`],"application/postscript":[`ai`,`eps`,`ps`],"application/provenance+xml":[`provx`],"application/pskc+xml":[`pskcxml`],"application/raml+yaml":[`raml`],"application/rdf+xml":[`rdf`,`owl`],"application/reginfo+xml":[`rif`],"application/relax-ng-compact-syntax":[`rnc`],"application/resource-lists+xml":[`rl`],"application/resource-lists-diff+xml":[`rld`],"application/rls-services+xml":[`rs`],"application/route-apd+xml":[`rapd`],"application/route-s-tsid+xml":[`sls`],"application/route-usd+xml":[`rusd`],"application/rpki-ghostbusters":[`gbr`],"application/rpki-manifest":[`mft`],"application/rpki-roa":[`roa`],"application/rsd+xml":[`rsd`],"application/rss+xml":[`rss`],"application/rtf":[`rtf`],"application/sbml+xml":[`sbml`],"application/scvp-cv-request":[`scq`],"application/scvp-cv-response":[`scs`],"application/scvp-vp-request":[`spq`],"application/scvp-vp-response":[`spp`],"application/sdp":[`sdp`],"application/senml+xml":[`senmlx`],"application/sensml+xml":[`sensmlx`],"application/set-payment-initiation":[`setpay`],"application/set-registration-initiation":[`setreg`],"application/shf+xml":[`shf`],"application/sieve":[`siv`,`sieve`],"application/smil+xml":[`smi`,`smil`],"application/sparql-query":[`rq`],"application/sparql-results+xml":[`srx`],"application/sql":[`sql`],"application/srgs":[`gram`],"application/srgs+xml":[`grxml`],"application/sru+xml":[`sru`],"application/ssdl+xml":[`ssdl`],"application/ssml+xml":[`ssml`],"application/swid+xml":[`swidtag`],"application/tei+xml":[`tei`,`teicorpus`],"application/thraud+xml":[`tfi`],"application/timestamped-data":[`tsd`],"application/toml":[`toml`],"application/trig":[`trig`],"application/ttml+xml":[`ttml`],"application/ubjson":[`ubj`],"application/urc-ressheet+xml":[`rsheet`],"application/urc-targetdesc+xml":[`td`],"application/voicexml+xml":[`vxml`],"application/wasm":[`wasm`],"application/watcherinfo+xml":[`wif`],"application/widget":[`wgt`],"application/winhlp":[`hlp`],"application/wsdl+xml":[`wsdl`],"application/wspolicy+xml":[`wspolicy`],"application/xaml+xml":[`xaml`],"application/xcap-att+xml":[`xav`],"application/xcap-caps+xml":[`xca`],"application/xcap-diff+xml":[`xdf`],"application/xcap-el+xml":[`xel`],"application/xcap-ns+xml":[`xns`],"application/xenc+xml":[`xenc`],"application/xfdf":[`xfdf`],"application/xhtml+xml":[`xhtml`,`xht`],"application/xliff+xml":[`xlf`],"application/xml":[`xml`,`xsl`,`xsd`,`rng`],"application/xml-dtd":[`dtd`],"application/xop+xml":[`xop`],"application/xproc+xml":[`xpl`],"application/xslt+xml":[`*xsl`,`xslt`],"application/xspf+xml":[`xspf`],"application/xv+xml":[`mxml`,`xhvml`,`xvml`,`xvm`],"application/yang":[`yang`],"application/yin+xml":[`yin`],"application/zip":[`zip`],"application/zip+dotlottie":[`lottie`],"audio/3gpp":[`*3gpp`],"audio/aac":[`adts`,`aac`],"audio/adpcm":[`adp`],"audio/amr":[`amr`],"audio/basic":[`au`,`snd`],"audio/midi":[`mid`,`midi`,`kar`,`rmi`],"audio/mobile-xmf":[`mxmf`],"audio/mp3":[`*mp3`],"audio/mp4":[`m4a`,`mp4a`,`m4b`],"audio/mpeg":[`mpga`,`mp2`,`mp2a`,`mp3`,`m2a`,`m3a`],"audio/ogg":[`oga`,`ogg`,`spx`,`opus`],"audio/s3m":[`s3m`],"audio/silk":[`sil`],"audio/wav":[`wav`],"audio/wave":[`*wav`],"audio/webm":[`weba`],"audio/xm":[`xm`],"font/collection":[`ttc`],"font/otf":[`otf`],"font/ttf":[`ttf`],"font/woff":[`woff`],"font/woff2":[`woff2`],"image/aces":[`exr`],"image/apng":[`apng`],"image/avci":[`avci`],"image/avcs":[`avcs`],"image/avif":[`avif`],"image/bmp":[`bmp`,`dib`],"image/cgm":[`cgm`],"image/dicom-rle":[`drle`],"image/dpx":[`dpx`],"image/emf":[`emf`],"image/fits":[`fits`],"image/g3fax":[`g3`],"image/gif":[`gif`],"image/heic":[`heic`],"image/heic-sequence":[`heics`],"image/heif":[`heif`],"image/heif-sequence":[`heifs`],"image/hej2k":[`hej2`],"image/ief":[`ief`],"image/jaii":[`jaii`],"image/jais":[`jais`],"image/jls":[`jls`],"image/jp2":[`jp2`,`jpg2`],"image/jpeg":[`jpg`,`jpeg`,`jpe`],"image/jph":[`jph`],"image/jphc":[`jhc`],"image/jpm":[`jpm`,`jpgm`],"image/jpx":[`jpx`,`jpf`],"image/jxl":[`jxl`],"image/jxr":[`jxr`],"image/jxra":[`jxra`],"image/jxrs":[`jxrs`],"image/jxs":[`jxs`],"image/jxsc":[`jxsc`],"image/jxsi":[`jxsi`],"image/jxss":[`jxss`],"image/ktx":[`ktx`],"image/ktx2":[`ktx2`],"image/pjpeg":[`jfif`],"image/png":[`png`],"image/sgi":[`sgi`],"image/svg+xml":[`svg`,`svgz`],"image/t38":[`t38`],"image/tiff":[`tif`,`tiff`],"image/tiff-fx":[`tfx`],"image/webp":[`webp`],"image/wmf":[`wmf`],"message/disposition-notification":[`disposition-notification`],"message/global":[`u8msg`],"message/global-delivery-status":[`u8dsn`],"message/global-disposition-notification":[`u8mdn`],"message/global-headers":[`u8hdr`],"message/rfc822":[`eml`,`mime`,`mht`,`mhtml`],"model/3mf":[`3mf`],"model/gltf+json":[`gltf`],"model/gltf-binary":[`glb`],"model/iges":[`igs`,`iges`],"model/jt":[`jt`],"model/mesh":[`msh`,`mesh`,`silo`],"model/mtl":[`mtl`],"model/obj":[`obj`],"model/prc":[`prc`],"model/step":[`step`,`stp`,`stpnc`,`p21`,`210`],"model/step+xml":[`stpx`],"model/step+zip":[`stpz`],"model/step-xml+zip":[`stpxz`],"model/stl":[`stl`],"model/u3d":[`u3d`],"model/vrml":[`wrl`,`vrml`],"model/x3d+binary":[`*x3db`,`x3dbz`],"model/x3d+fastinfoset":[`x3db`],"model/x3d+vrml":[`*x3dv`,`x3dvz`],"model/x3d+xml":[`x3d`,`x3dz`],"model/x3d-vrml":[`x3dv`],"text/cache-manifest":[`appcache`,`manifest`],"text/calendar":[`ics`,`ifb`],"text/coffeescript":[`coffee`,`litcoffee`],"text/css":[`css`],"text/csv":[`csv`],"text/html":[`html`,`htm`,`shtml`],"text/jade":[`jade`],"text/javascript":[`js`,`mjs`],"text/jsx":[`jsx`],"text/less":[`less`],"text/markdown":[`md`,`markdown`],"text/mathml":[`mml`],"text/mdx":[`mdx`],"text/n3":[`n3`],"text/plain":[`txt`,`text`,`conf`,`def`,`list`,`log`,`in`,`ini`],"text/richtext":[`rtx`],"text/rtf":[`*rtf`],"text/sgml":[`sgml`,`sgm`],"text/shex":[`shex`],"text/slim":[`slim`,`slm`],"text/spdx":[`spdx`],"text/stylus":[`stylus`,`styl`],"text/tab-separated-values":[`tsv`],"text/troff":[`t`,`tr`,`roff`,`man`,`me`,`ms`],"text/turtle":[`ttl`],"text/uri-list":[`uri`,`uris`,`urls`],"text/vcard":[`vcard`],"text/vtt":[`vtt`],"text/wgsl":[`wgsl`],"text/xml":[`*xml`],"text/yaml":[`yaml`,`yml`],"video/3gpp":[`3gp`,`3gpp`],"video/3gpp2":[`3g2`],"video/h261":[`h261`],"video/h263":[`h263`],"video/h264":[`h264`],"video/iso.segment":[`m4s`],"video/jpeg":[`jpgv`],"video/jpm":[`*jpm`,`*jpgm`],"video/mj2":[`mj2`,`mjp2`],"video/mp2t":[`ts`,`m2t`,`m2ts`,`mts`],"video/mp4":[`mp4`,`mp4v`,`mpg4`],"video/mpeg":[`mpeg`,`mpg`,`mpe`,`m1v`,`m2v`],"video/ogg":[`ogv`],"video/quicktime":[`qt`,`mov`],"video/webm":[`webm`]};Object.freeze(cA);let lA;const uA=()=>{if(lA!==void 0)return lA;let e=/* @__PURE__ */ new Map,t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map;for(let[r,i]of Object.entries(cA)){let a=/* @__PURE__ */ new Set;n.set(r,a);for(let n=0;n<i.length;n++){let o=i[n],s=o.startsWith(`*`);s&&(o=o.slice(1)),a.add(o),n===0&&t.set(r,o),s||e.set(o,r)}}return lA={extensionToType:e,typeToExtension:t,typeToExtensions:n},lA},dA=e=>{if(typeof e!=`string`)return di();let t=e.replace(/^.*[/\\]/s,``).toLowerCase(),n=t.replace(/^.*\./s,``).toLowerCase(),r=t.length<e.length;return!(n.length<t.length-1)&&r?di():vi(uA().extensionToType.get(n))};var fA=class extends (/*#__PURE__*/ F()(`effect/http/HttpPlatform`)){};const pA=/*#__PURE__*/ U(function*(e){let t=yield*YT,n=yield*Dk;return fA.of({platform:e.platform,compression:sA(e.compression),fileResponse:U(function*(r,i){let a=yield*t.stat(r),o=yield*n.fromFileInfo(a),s=i?.offset===void 0?Nm:yield*hA(i.offset,`offset`),c=s>a.size?a.size:s,l=a.size-c,u=i?.bytesToRead===void 0?void 0:yield*hA(i.bytesToRead,`bytesToRead`),d=u===void 0||u>l?l:u,f=u===void 0?void 0:c+d,p=yield*gA(c,`offset`),m=f===void 0?void 0:yield*gA(f,`end`),h=Yh(mA(i),`etag`,Ek(o));return mi(a.mtime)&&(h[`last-modified`]=a.mtime.value.toUTCString()),e.fileResponse(r,i?.status??200,i?.statusText,h,p,m,d)}),fileWebResponse(t,r){return H(n.fromFileWeb(t),n=>{let i=Zh(mA(r),Jh({etag:Ek(n),"last-modified":new Date(t.lastModified).toUTCString()}));return e.fileWebResponse(t,r?.status??200,r?.statusText,i,r)})}})}),mA=e=>{let t=e?.headers?qh(e.headers):Kh;return e?.contentType?Yh(t,`content-type`,e.contentType):t},hA=(e,t)=>{let n=zm(e);return mi(n)?I(n.value):B(Yw({module:`HttpPlatform`,method:`fileResponse`,description:`Invalid ${t}: ${e}`}))},gA=(e,t)=>{let n=Number(e);return Number.isSafeInteger(n)?I(n):B(Yw({module:`HttpPlatform`,method:`fileResponse`,description:`${t} exceeds the safe integer range: ${e}`}))},_A=`~effect/http/HttpServerRespondable`,vA=e=>P(e,_A),yA=/*#__PURE__*/ Ik({status:400}),bA=/*#__PURE__*/ Ik({status:404}),xA=(e,t)=>Fk(e)?I(e):vA(e)?Yf(e[_A](),()=>I(t)):tx(e)?I(yA):Tre(e)?I(bA):I(t),SA=(e,t)=>Fk(e)?I(e):vA(e)?Yf(e[_A](),()=>I(t)):I(t),CA=`~effect/http/HttpServerError`;var wA=class extends (/*#__PURE__*/ vo(`HttpServerError`)){constructor(e){`cause`in e.reason?super({...e,cause:e.reason.cause}):super(e)}[CA]=CA;stack=`${this.name}: ${this.message}`;get request(){return this.reason.request}get response(){return`response`in this.reason?this.reason.response:void 0}[_A](){return this.reason[_A]()}get[vE](){return this.reason[`~effect/ErrorReporter/ignore`]??!1}get message(){return this.reason.message}},TA=class extends (/*#__PURE__*/ vo(`RequestParseError`)){[_A](){return I(Ik({status:400}))}get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){return AA(this._tag,this.description,this.methodAndUrl)}},EA=class extends (/*#__PURE__*/ vo(`RouteNotFound`)){[_A](){return I(Ik({status:404}))}[vE]=!0;get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){return AA(this._tag,this.description,this.methodAndUrl)}};const DA=e=>P(e,CA);var OA=class extends (/*#__PURE__*/ vo(`ResponseError`)){[_A](){return I(Ik({status:500}))}get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this._tag} (${this.response.status} ${this.methodAndUrl})`;return this.description?`${e}: ${this.description}`:e}},kA=class extends (/*#__PURE__*/ F()(`effect/http/HttpServerError/ClientAbort`)){static annotation=/*#__PURE__*/ this.context(!0).pipe(/*#__PURE__*/ zi(Vu,{name:`ClientAbort`,stack:gt,parent:void 0}))};const AA=(e,t,n)=>{let r=`${e} (${n})`;return t?`${r}: ${t}`:r},jA=e=>{let t,n=PA,r=[],i=[],a=!1;for(let o=0;o<e.reasons.length;o++){let s=e.reasons[o];switch(s._tag){case`Fail`:n=xA(s.error,NA),r.push(s);break;case`Die`:Fk(s.defect)?t=s.defect:(n=SA(s.defect,NA),r.push(s));break;case`Interrupt`:if(a=s.annotations.has(kA.key),r.length>0)break;i.push(s)}}return t?I([t,Du(r)]):(i.length>0&&r.length===0&&(r.push(...i),n=a?FA:IA),Zp(n,e=>(r.push(Au(e)),[e,Du(r)])))},MA=e=>{let t,n=e.reasons.filter(e=>e._tag===`Die`&&Fk(e.defect)?(t=e.defect,!1):!0);return[t??NA,n.length>0?fi(Du(n)):di()]},NA=/*#__PURE__*/ Ik({status:500}),PA=/*#__PURE__*/ I(NA),FA=/*#__PURE__*/ I(/*#__PURE__*/ Ik({status:499})),IA=/*#__PURE__*/ I(/*#__PURE__*/ Ik({status:503})),LA=/; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u{10ffff}]|\\[\v\u0020-\u{10ffff}])*"|[!#$%&'*+.^\w`|~-]+) */gu,RA=/\\([\v\u0020-\u{10ffff}])/gu,zA=/^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u,BA=/^[!#$%&'*+.^\w|~-]+$/u,VA={value:``,parameters:/*#__PURE__*/ Object.create(null)};function HA(e,t=!1){if(typeof e!=`string`)return VA;let n=e.indexOf(`;`),r=n===-1?e.trim():e.slice(0,n).trim();if((t?BA:zA).test(r)===!1)return VA;let i={value:r.toLowerCase(),parameters:Object.create(null)};if(n===-1)return i;let a,o,s;for(LA.lastIndex=n;o=LA.exec(e);){if(o.index!==n)return VA;n+=o[0].length,a=o[1].toLowerCase(),s=o[2],s[0]===`"`&&(s=s.slice(1,s.length-1),!t&&RA.test(s)&&(s=s.replace(RA,`$1`))),i.parameters[a]=s}return n===e.length?i:VA}const UA=16384,WA={key:0,whitespace:1,value:2},GA={_tag:`Continue`},KA=/*#__PURE__*/ new Uint8Array(256);for(let e of"!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")KA[/*#__PURE__*/ e.charCodeAt(0)]=1;const qA=/*#__PURE__*/ new Uint8Array(256);qA[9]=1;for(let e=32;e<=126;e++)qA[e]=1;for(let e=128;e<=255;e++)qA[e]=1;function JA(){let e=new TextDecoder,t={state:WA.key,headers:Object.create(null),key:``,value:void 0,crlf:0,previousChunk:void 0,pairs:0,size:0};function n(e){return t.state=WA.key,t.headers=Object.create(null),t.key=``,t.value=void 0,t.crlf=0,t.previousChunk=void 0,t.pairs=0,t.size=0,e}function r(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function i(e){return n({_tag:`Failure`,reason:e,headers:t.headers})}return function(a,o){let s=0,c;if(t.previousChunk!==void 0){s=t.previousChunk.length,c=s;let e=new Uint8Array(a.length+s);e.set(t.previousChunk),e.set(a,s),t.previousChunk=void 0,a=e}let l=a.length;outer:for(;o<l;){if(t.state===WA.key){let n=o;for(;n<l;n++){if(t.size++>UA)return i(`HeaderTooLarge`);if(a[n]===58){if(t.key+=e.decode(a.subarray(o,n)).toLowerCase(),t.key.length===0)return i(`InvalidHeaderName`);a[n+1]===32&&a[n+2]!==32&&a[n+2]!==9?(o=n+2,t.state=WA.value,t.size++):a[n+1]!==32&&a[n+1]!==9?(o=n+1,t.state=WA.value):(o=n+1,t.state=WA.whitespace);break}if(KA[a[n]]!==1)return i(`InvalidHeaderName`)}if(n===l)return t.key+=e.decode(a.subarray(o,l)).toLowerCase(),GA}if(t.state===WA.whitespace){for(;o<l;o++){if(t.size++>UA)return i(`HeaderTooLarge`);if(a[o]!==32&&a[o]!==9){t.state=WA.value;break}}if(o===l)return GA}if(t.state===WA.value){let u=o;for(c!==void 0&&(u=c,c=void 0);u<l;u++){if(t.size++>UA)return i(`HeaderTooLarge`);if(a[u]===13||t.crlf>0){let c=a[u];if(c===13&&t.crlf===0&&(t.crlf=1,u++,t.size++,c=a[u]),c===10&&t.crlf===1&&(t.crlf=2,u++,t.size++,c=a[u]),c===13&&t.crlf===2&&(t.crlf=3,u++,t.size++,c=a[u]),c===10&&t.crlf===3&&(t.crlf=4,u++,t.size++),t.crlf<4&&u>=l)return t.previousChunk=a.subarray(o),GA;if(t.crlf>=2){t.value=t.value===void 0?a.subarray(o,u-t.crlf):r(t.value,a.subarray(o,u-t.crlf));let c=e.decode(t.value);if(t.headers[t.key]===void 0?t.headers[t.key]=c:typeof t.headers[t.key]==`string`?t.headers[t.key]=[t.headers[t.key],c]:t.headers[t.key].push(c),o=u,t.size--,t.crlf!==4&&t.pairs===100)return i(`TooManyHeaders`);if(t.crlf===3)return i(`InvalidHeaderValue`);if(t.crlf===4)return n({_tag:`Headers`,headers:t.headers,endPosition:o-s});t.pairs++,t.key=``,t.value=void 0,t.crlf=0,t.state=WA.key;continue outer}}else if(qA[a[u]]!==1)return i(`InvalidHeaderValue`)}if(u===l)return t.value=t.value===void 0?a.subarray(o,l):r(t.value,a.subarray(o,l)),GA}}return o>l&&(t.size+=l-o),GA}}function YA(e){let t=new TextEncoder().encode(e),n=t.length,r={};for(let e=0;e<n;e++){let n=t[e];r[n]===void 0&&(r[n]=[]),r[n].push(e)}return{needle:t,needleLength:n,indexes:r,firstByte:t[0],previousChunk:void 0,previousChunkLength:0,matchIndex:0}}function XA(e,t,n,r){let i=YA(e),a=r??i.needleLength;n!==void 0&&(i.previousChunk=n,i.previousChunkLength=n.length);function o(){if(`Buffer`in globalThis&&!(`Bun`in globalThis||`Deno`in globalThis))return function(e,t,n){return Buffer.prototype.indexOf.call(e,t,n)};let e=(/* @__PURE__ */ new Uint8Array(256)).fill(i.needle.length);for(let t=0,n=i.needle.length-1;t<n;++t)e[i.needle[t]]=n-t;return function(t,n,r){let a=t.length,o=r+i.needleLength-1;for(;o<a;){for(let e=i.needleLength-1,r=o;e>=0&&t[r]===n[e];e--,r--)if(e===0)return r;o+=e[t[o]]}return-1}}let s=o();function c(e){let n=e.length;if(i.previousChunk!==void 0){let t=new Uint8Array(i.previousChunkLength+n);t.set(i.previousChunk),t.set(e,i.previousChunkLength),e=t,n=i.previousChunkLength+n,i.previousChunk=void 0}let r=0;for(;r<n;){let o=n-r;if(o<a){i.previousChunk=e.subarray(r),i.previousChunkLength=o;return}let c=s(e,i.needle,r);if(c>-1)c>r&&t(i.matchIndex,e.subarray(r,c)),i.matchIndex+=1,r=c+i.needleLength;else{if(e[n-1]in i.indexes){let a=i.indexes[e[n-1]],o=-1;for(let t=0,r=a.length;t<r;t++){let r=a[t];e[n-1-r]===i.firstByte&&t>o&&(o=r)}o===-1?r===0?t(i.matchIndex,e):t(i.matchIndex,e.subarray(r)):(n-1-o>r&&t(i.matchIndex,e.subarray(r,n-1-o)),i.previousChunk=e.subarray(n-1-o),i.previousChunkLength=o+1)}else r===0?t(i.matchIndex,e):t(i.matchIndex,e.subarray(r));break}}}function l(){i.previousChunk!==void 0&&i.previousChunk!==n&&t(i.matchIndex,i.previousChunk),i.previousChunk=n,i.previousChunkLength=n?.length??0,i.matchIndex=0}return{write:c,end:l}}const ZA={headers:0,body:1},QA={_tag:`InvalidDisposition`},$A={_tag:`EndNotReached`},ej={_tag:`ReachedLimit`,limit:`MaxParts`},tj={_tag:`ReachedLimit`,limit:`MaxTotalSize`},nj={_tag:`ReachedLimit`,limit:`MaxPartSize`},rj={_tag:`ReachedLimit`,limit:`MaxFieldSize`},ij=/*#__PURE__*/ new TextEncoder().encode(`\r
23
- `);function aj(e){return e.filename!==void 0||e.contentType===`application/octet-stream`}function oj(e){return HA(e[`content-type`]).parameters.boundary}function sj(e){}const cj=e=>e===1/0?1/0:Number(Rm(e));function lj({headers:e,onFile:t,onField:n,onError:r,onDone:i,isFile:a=aj,maxParts:o=1/0,maxTotalSize:s=1/0,maxPartSize:c=1/0,maxFieldSize:l=1048576}){let u=cj(s),d=cj(c),f=cj(l),p=oj(e);if(p===void 0)return r({_tag:`InvalidBoundary`}),{write:sj,end(){}};let m={state:ZA.headers,index:0,parts:0,onChunk:sj,info:void 0,headerSkip:0,partSize:0,totalSize:0,isFile:!1,fieldChunks:[],fieldSize:0,done:!1,stopped:!1};function h(){m.state=ZA.body,m.isFile=!0,m.onChunk=sj}function g(e){m.stopped=!0,m.state===ZA.body&&m.isFile&&m.onChunk(null),r(e)}let _=JA(),v=XA(`\r\n--${p}`,function(e,s){if(!m.stopped){if(e===0)h();else{if(e!==m.index){if(m.index>0){if(m.isFile)m.onChunk(null);else{if(m.fieldChunks.length===1)n(m.info,m.fieldChunks[0]);else{let e=new Uint8Array(m.fieldSize),t=0;for(let n=0;n<m.fieldChunks.length;n++){let r=m.fieldChunks[n];e.set(r,t),t+=r.length}n(m.info,e)}m.fieldSize=0,m.fieldChunks=[]}}if(m.partSize=0,m.state=ZA.headers,m.index=e,m.headerSkip=2,s[0]===45&&s[1]===45)return m.done=!0,i();if(m.parts++,m.parts>o)return g(ej)}if((m.partSize+=s.length)>d)return g(nj);if(m.state===ZA.headers){let e=_(s,m.headerSkip);if(m.headerSkip=0,e._tag===`Continue`)return;if(e._tag===`Failure`)return h(),r({_tag:`BadHeaders`,error:e});let n=HA(e.headers[`content-type`]),i=HA(e.headers[`content-disposition`],!0);if(i.value===`form-data`&&!(`name`in i.parameters))return h(),r(QA);let o;if(`filename*`in i.parameters){let e=i.parameters[`filename*`].split(`''`);if(e.length===2)try{o=decodeURIComponent(e[1])}catch{o=e[1]}}if(m.info={name:i.parameters.name??``,filename:o??i.parameters.filename,contentType:n.value===``?i.parameters.filename===void 0?`text/plain`:`application/octet-stream`:n.value,contentTypeParameters:n.parameters,contentDisposition:i.value,contentDispositionParameters:i.parameters,headers:e.headers},m.state=ZA.body,m.isFile=a(m.info),m.isFile&&(m.onChunk=t(m.info)),e.endPosition<s.length){if(m.isFile)m.onChunk(s.subarray(e.endPosition));else{let t=s.subarray(e.endPosition);if((m.fieldSize+=t.length)>f)return g(rj);m.fieldChunks.push(t)}}}else if(m.isFile)m.onChunk(s);else{if((m.fieldSize+=s.length)>f)return g(rj);m.fieldChunks.push(s)}}}},ij,2);return{write(e){if(!m.stopped)return(m.totalSize+=e.length)>u?g(tj):v.write(e)},end(){v.end(),!m.done&&!m.stopped&&g($A),m.state=ZA.headers,m.index=0,m.parts=0,m.onChunk=sj,m.info=void 0,m.totalSize=0,m.partSize=0,m.fieldChunks=[],m.fieldSize=0,m.done=!1,m.stopped=!1}}}const uj=/*#__PURE__*/ new TextDecoder(`utf-8`);function dj(e){if(e===`utf-8`||e===`utf8`||e===``)return uj;try{return new TextDecoder(e)}catch{return uj}}function fj(e,t){return dj(e.contentTypeParameters.charset??`utf-8`).decode(t)}const pj=lj,mj=aj,hj=fj,gj=`~effect/http/Multipart`,_j=`~effect/http/Multipart/MultipartError`,vj=e=>Sj(e)?e:xj.fromReason(`InternalError`,e);var yj=class extends _o{};const bj={FileTooLarge:413,FieldTooLarge:413,BodyTooLarge:413,TooManyParts:413,InternalError:500,Parse:400};var xj=class e extends (/*#__PURE__*/ vo(`MultipartError`)){static fromReason(t,n){return new e({reason:new yj({_tag:t,cause:n})})}[_j]=_j;[vE]=!0;[_A](){return I(Ik({status:bj[this.reason._tag]}))}get message(){return this.reason._tag}};const Sj=e=>P(e,_j),Cj=e=>zf(t=>{let n=Wi(t.context,Pj);return I({headers:e,maxParts:t.getRef(jj),maxFieldSize:t.getRef(Mj),maxPartSize:t.getRef(Nj),maxTotalSize:t.getRef(vO),isFile:n.length===0?void 0:e=>!n.some(t=>e.contentType.includes(t))&&mj(e)})});var wj=class extends Pn{[gj];constructor(){super(),this[gj]=gj}};const Tj=(e,t)=>V(YT,n=>Qf(GT(t.content,n.sink(e)),vj)),Ej=/*#__PURE__*/ new TextEncoder,Dj=e=>{let t=Array.from(e),n=``,r=0;for(let e=t.length-1;e>=0&&(r+=Ej.encode(t[e]).length,!(r>128));e--)n=t[e]+n;return n===``||n===`.`||n===`..`?`file`:n},Oj=(e,t=Tj)=>z(function*(){let n=yield*YT,r=yield*QT,i=yield*n.makeTempDirectoryScoped(),a=Object.create(null),o=/* @__PURE__ */ new Set,s=0;return yield*_se(e,e=>{if(e._tag===`Field`)return e.key in a?typeof a[e.key]==`string`?a[e.key]=[a[e.key],e.value]:a[e.key].push(e.value):a[e.key]=e.value,R;if(e.name===``)return R;let n=e,c=Dj(r.basename(n.name)),l=r.join(i,c);for(;o.has(l);)l=r.join(i,`${s++}-${c}`);o.add(l);let u=new kj(n.key,n.name,n.contentType,l);return Array.isArray(a[e.key])?a[e.key].push(u):a[e.key]=[u],t(l,n)}),a}).pipe(Jf(`PlatformError`,e=>B(xj.fromReason(`InternalError`,e))));var kj=class extends wj{_tag=`PersistedFile`;key;name;contentType;path;constructor(e,t,n,r){super(),this.key=e,this.name=t,this.contentType=n,this.path=r}toJSON(){return{_id:`@effect/platform/Multipart/Part`,_tag:`PersistedFile`,key:this.key,name:this.name,contentType:this.contentType,path:this.path}}};const Aj=e=>{let t=/* @__PURE__ */ new Map;return e.maxParts!==void 0&&t.set(jj.key,e.maxParts),e.maxFieldSize!==void 0&&t.set(Mj.key,Rm(e.maxFieldSize)),e.maxFileSize!==void 0&&t.set(Nj.key,Rm(e.maxFileSize)),e.maxTotalSize!==void 0&&t.set(vO.key,Rm(e.maxTotalSize)),e.fieldMimeTypes!==void 0&&t.set(Pj.key,e.fieldMimeTypes),Ni(t)},jj=/*#__PURE__*/ Xi(`effect/http/Multipart/MaxParts`,{defaultValue:()=>void 0}),Mj=/*#__PURE__*/ Xi(`effect/http/Multipart/MaxFieldSize`,{defaultValue:/*#__PURE__*/ pt(/*#__PURE__*/ Vm(10))}),Nj=/*#__PURE__*/ Xi(`effect/http/Multipart/MaxFileSize`,{defaultValue:()=>void 0}),Pj=/*#__PURE__*/ Xi(`effect/http/Multipart/FieldMimeTypes`,{defaultValue:/*#__PURE__*/ pt([`application/json`])}),Fj=`~effect/http/HttpServerRequest`,Ij=/*#__PURE__*/ F(`effect/http/HttpServerRequest`);var Lj=class extends (/*#__PURE__*/ F()(`effect/http/ParsedSearchParams`)){};const Rj=(e,t)=>{let n=lx(e);return V(Ij,e=>n(e.cookies,t))},zj=(e,t)=>{let n=lx(e);return V(Ij,e=>n(e.headers,t))},Bj=(e,t)=>{let n=lx(e);return V(Lj,e=>n(e,t))},Vj=e=>{let t=e.headers.host??`localhost`,n=e.headers[`x-forwarded-proto`]===`https`?`https`:`http`;try{return fi(new URL(e.url,`${n}://${t}`))}catch{return di()}},Hj=/*#__PURE__*/ new WeakMap,Uj=(e,t)=>{let n=Hj.get(e.source),r=n?(e,r)=>V(n(e,r),n=>t(e,n)):t;Hj.set(e.source,r)},Wj=e=>e,Gj=/*#__PURE__*/ new WeakSet,Kj=e=>zf(t=>{let n=Ui(t.context,Ij);return Gj.add(n.source),e}),qj=/*#__PURE__*/ Xi(`effect/http/HttpMiddleware/TracerDisabledWhen`,{defaultValue:()=>ht}),Jj=/*#__PURE__*/ Xi(`@effect/platform/HttpMiddleware/SpanNameGenerator`,{defaultValue:()=>e=>e.method}),Yj=/*#__PURE__*/ Xi(`effect/http/HttpMiddleware/TracerHeaderFilter`,{defaultValue:()=>ht}),Xj=(e,t)=>!e.cache.tracerEnabled||e.getRef(qj)(t),Zj=(e,t)=>{if(!(t.status>=500&&t.status<600))return Uu(t);let n=Fn();In(0);try{return Gu(new wA({reason:new OA({request:e,response:t})}))}finally{In(n)}},Qj=/*#__PURE__*/ Wj(e=>zf(t=>{let n=Ui(t.context,Ij);if(Xj(t,n))return e;let r=t.getRef(Jj),i=Jl(t,r(n),{parent:yi(wO(n.headers)),kind:`server`}),a=t.context;return t.setContext(zi(t.context,To,i)),hl(t,e=>{t.setContext(a);let r=t.getRef(af).currentTimeNanosUnsafe();if(Yu(e)&&(!i.sampled||t.getRef(ko)===Ao)){i.end(r,Zj(n,e.value));return}let o=t.getRef(ng),s=t.getRef(Yj),c,l;if(Xu(e)){let[t,r]=MA(e.cause);c=t,l=mi(r)&&(c.status>=500||Pu(r.value))?Wu(r.value):Zj(n,c)}else c=e.value,l=Zj(n,c);if(i.sampled){i.attribute(`http.request.method`,n.method);let e=Vj(n);mi(e)&&(!n.url.startsWith(`/`)&&(e.value.username!==``||e.value.password!==``)&&(e.value.username=`REDACTED`,e.value.password=`REDACTED`),NO(i,e.value)),n.headers[`user-agent`]!==void 0&&i.attribute(`user_agent.original`,n.headers[`user-agent`]),PO(i,`request`,n.headers,s,o),mi(n.remoteAddress)&&i.attribute(`client.address`,n.remoteAddress.value),i.attribute(`http.response.status_code`,c.status),PO(i,`response`,c.headers,s,o)}i.end(r,l)}),e})),$j=(e,t,n)=>{let r=(e,n)=>{e.cause=n;let r=e.request;return em(jA(n),([e,n])=>{let i=zS();Tu(i,n);let a=Hj.get(r.source),o=n.reasons.length===0?I(e):Ff(n);return a===void 0?(r[eM]=!0,em(t(r,e),()=>o)):em(em(a(r,e),e=>(r[eM]=!0,t(r,e))),()=>o)})},i=(e,n)=>{let r=Hj.get(e.source);return r===void 0?(e[eM]=!0,Zp(t(e,n),e=>Fk(e)?e:n)):em(r(e,n),r=>(e[eM]=!0,Zp(t(e,r),e=>Fk(e)?e:n)))},a=a=>{let o=a.request,s=cp(e,{onSuccess:e=>i(o,e),onFailure:e=>r(a,e)});return n===void 0?s:cp(Qj(n(s)),{onFailure(e){return Tu(zS(),e),eM in o?R:iie(jA(e),{onFailure(e){return t(o,Ik({status:500}))},onSuccess([e]){return t(o,e)}})},onSuccess(e){return eM in o?R:t(o,e)}})},o=e=>Qj(a(e)),s=(e,t,n)=>wp(n,n=>{if(t.setContext(e.prev),!(tM in e.scope))return Td(e.scope,e.cause===void 0?n:Wu(e.cause))},!0);class c{scope;prev;request;cause;constructor(e,t,n){this.scope=e,this.prev=t,this.request=n}[qn](e,t){let n=i(this.request,e);if(wc(n)&&n._tag===`Success`){if(t.setContext(this.prev),tM in this.scope)return n;let e=Td(this.scope,n);return e===void 0?n:V(e,()=>n)}return s(this,t,n)}[Jn](e,t){return s(this,t,r(this,e))}}return zf(t=>{Cl(t);let r=vd(),i=new c(r,t.context,Ui(t.context,Ij));t.setContext(zi(i.prev,gd,r));let l=t.cache.tracer;return n===void 0&&(l===void 0||l===Ao||Xj(t,i.request))?(t._stack.push(i),e):s(i,t,n===void 0?o(i):a(i))})},eM=/*#__PURE__*/ Symbol.for(`effect/http/HttpEffect/handled`),tM=/*#__PURE__*/ Symbol.for(`effect/http/HttpEffect/scopeEjected`),nM=e=>Ij.use(t=>(rM(t,e),R)),rM=Uj,iM=/*#__PURE__*/ M(2,(e,t)=>Ij.use(n=>(rM(n,t),e))),aM=`~effect/http/HttpRouter`,oM=/*#__PURE__*/ F(`effect/http/HttpRouter`),sM=/*#__PURE__*/ z(function*(){let e=Tk(yield*lM),t=/* @__PURE__ */ new Set,n=t=>dp(n=>{let r=TM(n),i=e=>{for(let t=0;t<r.length;t++)e=r[t](e);return e};for(let n=0;n<t.length;n++){let a=r.length===0?t[n]:gM({...t[n],handler:i(t[n].handler)});a.method===`*`?a.path.endsWith(`/*`)?(e.all(a.path,a),e.all(a.path.slice(0,-2),a)):e.all(a.path,a):a.path.endsWith(`/*`)?(e.on(a.method,a.path,a),e.on(a.method,a.path.slice(0,-2),a)):e.on(a.method,a.path,a)}return R});return oM.of({[aM]:aM,prefixed(e){return e=vM(e),oM.of({...this,prefixed:t=>this.prefixed(yM(t,e)),addAll:t=>n(t.map(bM(e))),add:(t,r,i,a)=>n([gM({method:t,path:yM(r,e),handler:Fk(i)?I(i):Tf(i)?i:V(Ij,i),uninterruptible:a?.uninterruptible??!1,prefix:e})])})},addAll:n,add:(e,t,r,i)=>n([_M(e,t,r,i)]),addGlobalMiddleware:e=>L(()=>{t.add(e)}),asHttpEffect(){let n=zf(t=>{let n=t.context,r=Ui(n,Ij),i=e.find(r.method,r.url);if(i===void 0&&r.method===`HEAD`&&(i=e.find(`GET`,r.url)),i===void 0)return B(new wA({reason:new EA({request:r})}));let a=i.handler;if(mi(a.prefix)&&(n=zi(n,Ij,cM(r,a.prefix.value))),n=zi(n,Lj,i.searchParams),n=zi(n,uM,{route:a,params:i.params}),t.getRef(ko)!==Ao){let e=Vi(n,To);e!==void 0&&e._tag===`Span`&&e.sampled&&e.attribute(`http.route`,a.path)}if(t.setContext(n),!a.uninterruptible){let e=Kne(t);if(e!==void 0)return e}return a.handler});if(t.size===0)return n;for(let e of ka(t))n=e(n);return n}})});function cM(e,t){let n=t.length;return e.modify({url:e.url.length<=n?`/`:e.url.slice(n)})}const lM=/*#__PURE__*/ Xi(`effect/http/HttpRouter/RouterConfig`,{defaultValue:()=>({})});var uM=class extends (/*#__PURE__*/ F()(`effect/http/HttpRouter/RouteContext`)){};const dM=e=>qd(V(oM,e)),fM=(e,t,n,r)=>dM(i=>i.add(e,t,n,r)),pM=/*#__PURE__*/ Wd(oM)(sM),mM=e=>dp(t=>{let n=Wi(t,gd),r=Ld.forkOrCreate(t);return H(Rd(tf(e,pM),r,n),e=>Wi(e,oM).asHttpEffect())}),hM=`~effect/http/HttpRouter/Route`,gM=e=>({...e,uninterruptible:e.uninterruptible??!1,prefix:typeof e.prefix==`string`?fi(e.prefix):e.prefix??di(),[hM]:hM}),_M=(e,t,n,r)=>gM({...r,method:e,path:t,handler:Fk(n)?I(n):Tf(n)?n:V(Ij,n),uninterruptible:r?.uninterruptible??!1}),vM=e=>e.endsWith(`/`)?e.slice(0,-1):e,yM=/*#__PURE__*/ M(2,(e,t)=>(t=vM(t),e===`*`?`${t}/*`:e===`/`?t:t+e)),bM=/*#__PURE__*/ M(2,(e,t)=>gM({...e,path:yM(e.path,t),prefix:hi(e.prefix,{onNone:()=>vM(t),onSome:e=>yM(e,t)})})),xM=function(){return arguments.length===0?SM:SM(arguments[0],arguments[1])},SM=(e,t)=>t?.global?qd(z(function*(){let t=yield*oM,n=Tf(e)?yield*e:e;yield*t.addGlobalMiddleware(n)})):new zce(Tf(e)?Kd(H(e,e=>Ni(/* @__PURE__ */ new Map([[CM,e]])))):Hd(Ni(/* @__PURE__ */ new Map([[CM,e]]))));let Rce=0;const CM=`effect/http/HttpRouter/MiddlewareFn`;var zce=class e{"~effect/http/HttpRouter/Middleware"={};layerFn;dependencies;constructor(e,t){this.layerFn=e,this.dependencies=t;let n=`effect/http/HttpRouter/Middleware-${++Rce}`;this.layer=Kd(z({self:this},function*(){let e=yield*up(),t=[Hi(e,CM)];if(this.dependencies){let n=yield*Ld,r=Wi(e,gd),i=yield*Rd(this.dependencies,n,r);t.push(...TM(i))}return Ni(/* @__PURE__ */ new Map([[n,t]]))})).pipe(ef(this.layerFn))}layer;combine(t){return new e(this.layerFn,this.dependencies?tf(this.dependencies,t.layer):t.layer)}};const wM=/*#__PURE__*/ new WeakMap,TM=e=>{let t=wM.get(e);if(t)return t;let n=ja(),r=0;for(let[t,i]of e.mapUnsafe)t.startsWith(`effect/http/HttpRouter/Middleware-`)&&(n.push(i),i.length>r&&(r=i.length));if(n.length===0)t=[];else{let e=/* @__PURE__ */ new Set;for(let t=r-1;t>=0;t--)for(let r of n)t<r.length&&e.add(r[t]);t=xa(e).reverse()}return wM.set(e,t),t};(/*#__PURE__*/ xM(Kj)).layer;var EM=class extends (/*#__PURE__*/ F()(`effect/workers/Transferable/Collector`)){};const DM=()=>{let e=[],t=t=>{e.push(...t)},n=()=>e,r=()=>{let t=e;return e=[],t};return EM.of({addAllUnsafe:t,addAll:e=>L(()=>t(e)),readUnsafe:n,read:L(n),clearUnsafe:r,clear:L(r)})},OM=(e,t)=>e===void 0?t:`${e}.${t}`,kM=(e,t)=>({"rpc.system.name":`effect_rpc`,"rpc.method":e,...t}),AM=`~effect/rpc/RpcSchema/StreamSchema`;function jM(e){return P(e,AM)}function MM(e){return jM(e)?fi({success:e.success,error:e.error}):di()}const Bce=/*#__PURE__*/ ix(kT);function Vce(e,t){return gx(Bce.ast,{[AM]:AM,success:e,error:t})}var Hce=class extends (/*#__PURE__*/ F()(`effect/rpc/RpcSchema/ClientAbort`)){static annotation=/*#__PURE__*/ this.context(!0).pipe(/*#__PURE__*/ zi(Vu,{name:`ClientAbort`,stack:gt,parent:void 0}))};const NM=`~effect/rpc/Rpc`;var PM=class{id;annotations;constructor(e){this.id=e,this.annotations=Ii()}annotate(e,t){return this.annotations=zi(this.annotations,e,t),this}};const Uce={[NM]:NM,pipe(){return ut(this,arguments)},setSuccess(e){return FM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:e,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},setError(e){return FM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:e,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},setPayload(e){return FM({_tag:this._tag,payloadSchema:_x(e)?e:G(e),successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},middleware(e){return FM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:/* @__PURE__ */ new Set([...this.middlewares,e])})},prefix(e){return FM({_tag:`${e}${this._tag}`,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},annotate(e,t){return FM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,middlewares:this.middlewares,annotations:zi(this.annotations,e,t)})},annotateMerge(e){return FM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,middlewares:this.middlewares,annotations:Ji(this.annotations,e)})}},FM=e=>{function t(){}return Object.setPrototypeOf(t,Uce),Object.assign(t,e),t.key=`effect/rpc/Rpc/${e._tag}`,t},J=(e,t)=>{let n=t?.success??Ox,r=t?.error??Cx,i=t?.defect??oS(),a;return a=t?.primaryKey?class extends OS(`effect/rpc/Rpc/${e}`)(t.payload){"~effect/PrimaryKey"(){return t.primaryKey(this)}}:_x(t?.payload)?t?.payload:t?.payload?G(t?.payload):Ox,FM({_tag:e,payloadSchema:a,successSchema:t?.stream?Vce(n,r):n,errorSchema:t?.stream?Cx:r,defectSchema:i,annotations:Ii(),middlewares:/* @__PURE__ */ new Set})},IM=/*#__PURE__*/ new WeakMap,LM=e=>{if(IM.has(e))return IM.get(e);let t=e,n=/* @__PURE__ */ new Set([t.errorSchema]),r=MM(t.successSchema);mi(r)&&n.add(r.value.error);for(let e of t.middlewares)n.add(e.error);let i=xS(mi(r)?Ox:t.successSchema,q([...n]),t.defectSchema);return IM.set(e,i),i},RM=e=>`~effect/rpc/Rpc/Wrapper`in e,zM=e=>e,Wce={_tag:`Eof`},BM=e=>({_tag:`Defect`,defect:e}),Gce={_tag:`Pong`},VM=jS;let Kce;const HM=e=>(Kce??=new TextDecoder).decode(e);var UM=class extends (/*#__PURE__*/ F()(`effect/rpc/RpcSerialization`)){};const qce=/*#__PURE__*/ UM.of({contentType:`application/json`,includesFraming:!1,codecFor:VM,makeUnsafe:()=>({decode:e=>{let t=JSON.parse(typeof e==`string`?e:HM(e));return Array.isArray(t)?t:[t]},encode:e=>JSON.stringify(e)})}),WM=e=>UM.of({contentType:e?.contentType??`application/json`,includesFraming:!1,codecFor:VM,makeUnsafe:()=>{let e=/* @__PURE__ */ new Map;return{decode:t=>Jce(JSON.parse(typeof t==`string`?t:HM(t)),e),encode:t=>{let n=Yce(t,e);return n&&JSON.stringify(n)}}}});function Jce(e,t){if(Array.isArray(e)){let n={size:0,responses:/* @__PURE__ */ new Map},r=[];for(let i=0;i<e.length;i++){let a=e[i];if(!zt(a))continue;let o=GM(a);r.push(o),o._tag===`Request`&&!o.isNotification&&(n.size++,t.set(o.id,n))}return r}return zt(e)?[GM(e)]:[]}function GM(e){if(Object.hasOwn(e,`method`)){let t=e;if(Ft(t.id)&&Et(t.method)&&t.method.startsWith(`@effect/rpc/`)){let e=t.method.slice(12),n=t.params?.requestId;return n===void 0?{_tag:e}:{_tag:e,requestId:n}}return{_tag:`Request`,id:t.id??``,tag:t.method,payload:t.params??null,headers:t.headers??[],...P(t,`id`)?{}:{isNotification:!0},...t.spanId?{traceId:t.traceId,spanId:t.spanId,sampled:t.sampled}:{}}}let t=e,n=Object.hasOwn(t,`error`);return n&&t.error&&t.error._tag===`Defect`?{_tag:`Defect`,defect:t.error.data}:Object.hasOwn(t,`chunk`)&&t.chunk===!0?{_tag:`Chunk`,requestId:t.id??``,values:t.result}:{_tag:`Exit`,requestId:t.id??``,exit:n&&t.error!=null?{_tag:`Failure`,cause:t.error._tag===`Cause`?t.error.data:[{_tag:`Fail`,error:t.error}]}:{_tag:`Success`,value:t.result}}}function KM(e,t){if(!(`requestId`in e))return qM(e);let n=t.get(e.requestId);return n?(t.delete(e.requestId),n.responses.set(e.requestId,e),n.size===n.responses.size?Array.from(n.responses.values(),qM):void 0):qM(e)}function Yce(e,t){if(Array.isArray(e)===!1)return KM(e,t);if(e.length===0)return;let n=[];for(let r=0;r<e.length;r++){let i=KM(e[r],t);i!==void 0&&n.push(i)}if(n.length===0)return;if(n.length===1)return n[0];let r=[];for(let e=0;e<n.length;e++){let t=n[e];Array.isArray(t)?r.push(...t):r.push(t)}return r}function qM(e){switch(e._tag){case`Request`:return{jsonrpc:`2.0`,method:e.tag,params:e.payload,...e.isNotification?{}:{id:e.id},...e.headers?.length>0?{headers:e.headers}:{},traceId:e.traceId,spanId:e.spanId,sampled:e.sampled};case`Ping`:case`Pong`:case`Interrupt`:case`Ack`:case`Eof`:return{jsonrpc:`2.0`,method:`@effect/rpc/${e._tag}`,params:`requestId`in e?{requestId:e.requestId}:void 0};case`Chunk`:return{jsonrpc:`2.0`,chunk:!0,id:e.requestId,result:e.values};case`Exit`:{if(e.exit._tag===`Success`)return{jsonrpc:`2.0`,id:e.requestId??void 0,result:e.exit.value};let t=e.exit.cause.find(e=>e._tag===`Fail`),n=t?._tag===`Fail`?t.error:void 0;return{jsonrpc:`2.0`,id:e.requestId??void 0,error:e.exit._tag===`Failure`?{_tag:`Cause`,code:n&&P(n,`code`)?Number(n.code):0,message:n&&P(n,`message`)?n.message:JSON.stringify(e.exit.cause),data:e.exit.cause}:void 0}}case`Defect`:return{jsonrpc:`2.0`,id:Xce,error:{_tag:`Defect`,code:1,message:`A defect occurred`,data:e.defect}};case`ClientProtocolError`:return{}}}const Xce=-32603,Zce=e=>Vd(UM)(WM(e)),Qce=()=>e=>Mf(()=>{let t=UC(1),n=[],r=(...e)=>dp(t=>(n.push([e,t]),R));return H(e((...e)=>r(...e)),e=>({...e,run(e){return t.withPermits(1)(z(function*(){let t=r;for(let[t,r]of n)yield*pp(Mf(()=>e(...t)),r);return n=[],r=e,yield*Tp(Pf,()=>(r=t,R))}))}}))}),$ce=e=>Mf(()=>{let t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Map,i=(e,t)=>dp(r=>{let i=n.get(e);return i||(i=[],n.set(e,i)),i.push([t,r]),R});return H(e((e,t)=>{let n=r.get(e);return n?n(t):i(e,t)},t),e=>({...e,run(e,i){return z(function*(){t.add(e),r.set(e,i);let a=n.get(e);if(a){n.delete(e);for(let[e,t]of a)yield*pp(Mf(()=>i(e)),t)}return yield*Tp(Pf,()=>(t.delete(e),r.delete(e),R))})}}))});let ele=0;const JM=/*#__PURE__*/ U(function*(e,t){let n=t.spanPrefix,r=t?.supportsAck??!0,i=t?.disableTracing??!1,a=t?.generateRequestId??(()=>ele++),o=yield*up(),s=Wi(o,gd),c=/* @__PURE__ */ new Map,l=!1;yield*xd(s,zf(e=>(l=!0,u(qu(e.id)))));let u=U(function*(e){for(let[t,n]of c)c.delete(t),n._tag===`Queue`?yield*e._tag===`Success`?CC(n.queue):xC(n.queue,e.cause):n.resume(e)}),d=e=>{let r=jM(e.successSchema),a=m(e);return(o,s)=>{let c=s?.headers?qh(s.headers):Kh,l=s?.context??Ii();if(!r){let r=t=>f(e,a,t,e.payloadSchema.make(o),c,l,s?.discard??!1);return i?r(void 0):Pp(OM(n,e._tag),{kind:`client`,attributes:kM(e._tag,t.spanAttributes)},r)}let u=p(e,a,e.payloadSchema.make(o),c,s?.streamBufferSize??16,l);return s?.asQueue?u:zT(H(u,LT))}},f=(e,n,r,i,o,s,u)=>zf(d=>{if(l)return Op;let f=a(),p=n(e=>t.onFromClient({message:e,context:s,discard:u}),{_tag:`Request`,id:f,tag:e._tag,payload:i,...r?{traceId:r.traceId,spanId:r.spanId,sampled:r.sampled}:{},headers:Zh(d.getRef(YM),o)});if(u)return p;let m;return Ap(Nf(t=>{let n={_tag:`Effect`,rpc:e,context:s,resume(e){t(e),m&&!m.pollUnsafe()&&d.currentDispatcher.scheduleTask(()=>{m.interruptUnsafe(d.id)},0)}};c.set(f,n),m=p.pipe(r?Ip(r,{captureStackTrace:!1}):N,Vp(d.context)),m.addObserver(e=>{if(e._tag===`Failure`)return t(e)})}),e=>(c.delete(f),Vf(RS(m),h(f,Array.from(e),s))))}),p=U(function*(e,r,o,s,u,d){if(l)return yield*Op;let f=i?void 0:yield*cie(OM(n,e._tag),{kind:`client`,attributes:kM(e._tag,t.spanAttributes)}),p=zS(),m=a(),g=Ui(p.context,gd),_=yield*vC(u);return yield*bd(g,e=>(EC(_),c.has(m)?(c.delete(m),h(m,Xu(e)?Array.from(Cre(e.cause)):[],d)):R)),c.set(m,{_tag:`Queue`,rpc:e,queue:_,scope:g,context:d}),yield*r(e=>t.onFromClient({message:e,context:d,discard:!1}),{_tag:`Request`,id:m,tag:e._tag,payload:o,...f?{traceId:f.traceId,spanId:f.spanId,sampled:f.sampled}:{},headers:Zh(p.getRef(YM),s)}).pipe(f?Ip(f,{captureStackTrace:!1}):N,Cp(e=>xC(_,e)),kp,Rp(g,{startImmediately:!0})),_}),m=e=>{let t=[];for(let n of e.middlewares.values()){let e=Hi(o,`${n.key}/Client`);e&&t.push(e)}return t.length===0?(e,t)=>e(t):function n(r,i,a=t.length-1){return a===-1?r(i):t[a]({rpc:e,request:i,next(e){return n(r,e,a-1)}})}},h=(e,n,r)=>Nf(i=>{let a=zS();t.onFromClient({message:{_tag:`Interrupt`,requestId:e,interruptors:n},context:r,discard:!1}).pipe(eie(1e3),Vp(a.context)).addObserver(()=>{i(R)})}),g=e=>{switch(e._tag){case`Chunk`:{let n=e.requestId,i=c.get(n);return!i||i._tag!==`Queue`?R:Goe(i.queue,e.values).pipe(r?V(()=>t.onFromClient({message:{_tag:`Ack`,requestId:e.requestId},context:i.context,discard:!1})):N,Yf(e=>xC(i.queue,e)))}case`Exit`:{let t=e.requestId,n=c.get(t);return n?(c.delete(t),n._tag===`Effect`?(n.resume(e.exit),R):e.exit._tag===`Success`?CC(n.queue):xC(n.queue,e.exit.cause)):R}case`Defect`:return u(Ku(e.defect));case`ClientEnd`:return R}},_;if(t.flatten){let t=/* @__PURE__ */ new Map;_=function(n,r,i){let a=t.get(n);return a||(a=d(e.requests.get(n)),t.set(n,a)),a(r,i)}}else _={},e.requests.forEach(e=>{zn(_,e._tag,d(e))});return{client:_,write:g}});let tle=0;const nle=/*#__PURE__*/ U(function*(e,t){let n=tle++,{codecFor:r,run:i,send:a,supportsAck:o,supportsTransferables:s}=yield*XM,c=rle(r),l=aoe(r(oS())),u=/* @__PURE__ */ new Map,d=e=>u.has(e)?(u.delete(e),a(n,{_tag:`Interrupt`,requestId:e})):R,{client:f,write:p}=yield*JM(e,{...t,supportsAck:o,onFromClient({message:t}){switch(t._tag){case`Request`:{let r=e.requests.get(t.tag),i=s?DM():void 0,o=zS(),l={rpc:r,context:i?zi(o.context,EM,i):o.context,schemas:c(r)};return u.set(t.id,l),l.schemas.encodePayload(t.payload).pipe(pp(l.context),$f,V(e=>a(n,{...t,id:t.id,payload:e,headers:Object.entries(t.headers)},i&&i.readUnsafe())))}case`Ack`:return u.get(t.requestId)?a(n,{_tag:`Ack`,requestId:t.requestId}):R;case`Interrupt`:return d(t.requestId);case`Eof`:return R}}});return yield*i(n,e=>{switch(e._tag){case`Chunk`:{let t=zM(e.requestId),n=u.get(t);if(!n||pi(n.schemas.decodeChunk))return R;let r=n.schemas.decodeChunk.value;return Mp(i=>i(r(e.values).pipe(pp(n.context),$f,V(e=>p({_tag:`Chunk`,clientId:0,requestId:t,values:e})))).pipe(Cp(e=>p({_tag:`Exit`,clientId:0,requestId:t,exit:Wu(e)}).pipe(Vf(Pu(e)?R:np(d(t))))),Qre(e=>!Pu(e),()=>R)))}case`Exit`:{let t=zM(e.requestId),n=u.get(t);return n?(u.delete(t),n.schemas.decodeExit(e.exit).pipe(pp(n.context),$f,cp({onSuccess:e=>p({_tag:`Exit`,clientId:0,requestId:t,exit:e}),onFailure:e=>p({_tag:`Exit`,clientId:0,requestId:t,exit:Wu(e)})}))):R}case`Defect`:return p({_tag:`Defect`,clientId:0,defect:l(e.defect)});case`ClientProtocolError`:{let t=Gu(e.error);return Df(Array.from(u.keys()),e=>p({_tag:`Exit`,clientId:0,requestId:e,exit:t}))}default:return R}}).pipe(Yf(Jp),kp,zp),f}),rle=e=>{let t=/* @__PURE__ */ new WeakMap;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=MM(n.successSchema);return r={decodeChunk:xi(i,t=>lx(e(Px(t.success)))),encodePayload:px(e(n.payloadSchema)),decodeExit:lx(e(LM(n)))},t.set(n,r),r}},YM=/*#__PURE__*/ Xi(`effect/rpc/RpcClient/CurrentHeaders`,{defaultValue:()=>Kh});var XM=class extends (/*#__PURE__*/ F()(`effect/rpc/RpcClient/Protocol`)){static make=$ce};const ile=/*#__PURE__*/ U(function*(e,t){let n=t.disableTracing!==!0,r=t.disableSpanPropagation!==!0,i=t.disableClientAcks!==!0,a=t.spanPrefix,o=t.concurrency??`unbounded`,s=t.disableFatalDefects??!1,c=yield*up(),l=Wi(c,gd),u=BS(Cd(l,`parallel`)),d=o===`unbounded`?void 0:yield*KC(o),f=/* @__PURE__ */ new Map,p=!1,m=VS(!1);yield*xd(l,zf(e=>{p=!0;for(let t of f.values())if(t.ended=!0,t.fibers.size===0)u(Vp(c)(_(t)));else for(let n of t.fibers.values())n.interruptUnsafe(e.id);return f.size===0?R:m.await}));let h=e=>zf(t=>{let n=f.get(e);if(!n)return R;for(let e of n.fibers.values())e.interruptUnsafe(t.id);return f.delete(e),R}),g=(e,n,r)=>Xf(zf(i=>{if(p)return Op;let a=f.get(e);if(!a)a={id:e,latches:void 0,fibers:/* @__PURE__ */ new Map,ended:!1,serverClient:new PM(e)},f.set(e,a);else if(a.ended&&(n._tag!==`Interrupt`&&n._tag!==`Ack`||!a.fibers.has(n.requestId)))return Op;switch(n._tag){case`Request`:return v(i,a,n,r);case`Ack`:{let e=a.latches?.get(n.requestId);return e?Kf(e.open):R}case`Interrupt`:{let r=a.fibers.get(n.requestId);return r?(r.interruptUnsafe(i.id,Hce.annotation),R):t.onFromServer({_tag:`Exit`,clientId:e,requestId:n.requestId,exit:qu()})}case`Eof`:return a.ended=!0,a.fibers.size>0?R:_(a);default:return b(a,`Unknown request tag: ${n._tag}`)}}),t=>b(f.get(e),t)),_=e=>{f.delete(e.id);let n=t.onFromServer({_tag:`ClientEnd`,clientId:e.id});return p&&f.size===0?Vf(n,m.open):n},v=(i,o,l,f)=>{if(o.fibers.has(l.id))return Op;let p=e.requests.get(l.tag),m=Hi(c,p?.key);if(!p||!m){let e=Xf(t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:Ku(`Unknown request tag: ${l.tag}`)}),e=>b(o,e));return!o.ended||o.fibers.size>0?e:Sp(e,_(o))}let h=jM(p.successSchema),g={rpc:p,client:o.serverClient,requestId:l.id,headers:l.headers,payload:l.payload},v=m.handler(l.payload,g),x=RM(v),S=x&&v.fork,ee=x&&v.uninterruptible,te=x?v.value:v,C,ne=h?y(o,l,te,e=>{C=e}):te,w=p.middlewares.size===0?ne:h?V(Wf(nN(c,ne,g)),e=>C?Ff(C):e):nN(c,ne,g),T=!1,re=vd(),ie,E=Tp(w,e=>{T=!0;let n;if(e._tag===`Success`)ed(e.value)?(ie=e.value,n=R):n=t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:e});else if(C)return Td(re,e)??R;else n=!s&&Nu(e.cause)&&!Pu(e.cause)?b(o,Mu(e.cause)):t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:e});let r=Td(re,e);return e._tag===`Failure`&&Tu(zS(),e.cause),r?Sp(n,r):n});if(f?.onRequest&&(E=f.onRequest(E)),n){let e=Vi(i.context,To);E=Fp(E,OM(a,l.tag),{captureStackTrace:!1,kind:`server`,attributes:kM(l.tag,t.spanAttributes),parent:r&&l.spanId?Eo({traceId:l.traceId,spanId:l.spanId,sampled:l.sampled}):void 0,links:r&&e?[{span:e,attributes:{}}]:void 0})}!S&&d&&(E=d.withPermit(E));let ae=Vp(zi(sle(m,i.context),gd,re));return u(ae(zf(e=>(o.fibers.set(l.id,e),E)),ee?{uninterruptible:!0}:void 0)).addObserver(function e(n){if(ie){let n=u(ae(Tp(ad(ie),e=>t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:e}))));o.fibers.set(l.id,n),ie=void 0,n.addObserver(e)}else!T&&n._tag===`Failure`&&u(ae(t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:qu()}))),o.fibers.delete(l.id),o.latches?.delete(l.id),o.ended&&o.fibers.size===0&&u(ae(_(o)))}),R},y=(e,n,r,a)=>{let o=r=>Cp(t.onFromServer({_tag:`Chunk`,clientId:e.id,requestId:n.id,values:r}),e=>(bre(e)||a(e),R)),s;return i&&(e.latches??=/* @__PURE__ */ new Map,s=e.latches.get(n.id),s||(s=VS(!1),e.latches.set(n.id,s))),Tf(r)?r.pipe(V(e=>Of({while:mt,body:pt(V(DC(e),e=>{let t=o(e);return s?(s.closeUnsafe(),V(t,()=>s.await)):t})),step:_t})),gf(()=>R),yp):KT(r,e=>{let t=o(e);return s?(s.closeUnsafe(),Vf(t,s.await)):t})},b=(e,n)=>Mf(()=>{let r=e.ended&&e.fibers.size===0,i=t.onFromServer({_tag:`Defect`,clientId:e.id,defect:n});return r?Vf(i,_(e)):i});return N({write:g,disconnect:h})}),ZM=e=>e===qce.codecFor,QM=/*#__PURE__*/ new WeakMap,ale=(e,t)=>{let n=ZM(e),r=n?QM.get(t):void 0;if(r===void 0){let i=MM(t.successSchema);r={decode:lx(e(t.payloadSchema)),encodeChunk:fx(e(Px(mi(i)?i.value.success:wx))),encodeExit:fx(e(LM(t)))},n&&QM.set(t,r)}return r};let ole;const $M=e=>({encodeDefectUnsafe:hx(e(oS())),encodeUnknownRequestExit:fx(e(xS(Cx,Cx,oS())))}),eN=e=>ZM(e)?ole??=$M(e):$M(e),tN=/*#__PURE__*/ new WeakMap,sle=(e,t)=>{let n=tN.get(e);n===void 0&&(n=/* @__PURE__ */ new WeakMap,tN.set(e,n));let r=n.get(t);return r===void 0&&(r=Ji(e.context,t),n.set(t,r)),r},nN=(e,t,n)=>{for(let r of n.rpc.middlewares)t=Ui(e,r)(t,n);return t},cle=/*#__PURE__*/ U(function*(e,t){let{codecFor:n,disconnects:r,end:i,run:a,send:o,supportsAck:s,supportsSpanPropagation:c,supportsTransferables:l}=yield*rN,{encodeDefectUnsafe:u,encodeUnknownRequestExit:d}=eN(n),f=yield*up(),p=yield*_d(),m=yield*ile(e,{...t,disableClientAcks:!s,disableSpanPropagation:!c,onFromServer(e){let t=_.get(e.clientId);if(!t)return R;switch(e._tag){case`Chunk`:{let n=t.schemas.get(e.requestId);return n?y(t,e.requestId,n,n.encodeChunk(e.values),`Chunk`):R}case`Exit`:{let n=t.schemas.get(e.requestId);return n?(t.schemas.delete(e.requestId),y(t,e.requestId,n,n.encodeExit(e.exit),`Exit`)):R}case`Defect`:return x(t,e.defect);case`ClientEnd`:return _.delete(e.clientId),i(e.clientId)}}}).pipe(yd(p));yield*Lp(Of({while:mt,body:pt(V(kC(r),e=>(_.delete(e),m.disconnect(e)))),step:_t}));let h=/* @__PURE__ */ new WeakMap,g=e=>{let t=h.get(e);if(!t){let r=Hi(f,e.key);t={tag:e._tag,...ale(n,e),context:r.context},h.set(e,t)}return t},_=/* @__PURE__ */ new Map,v=(e,t,n)=>t===`Chunk`?{_tag:`Chunk`,requestId:e,values:n}:{_tag:`Exit`,requestId:e,exit:n},y=(e,t,n,r,i)=>{let a=n.collector,s=!1,c=Hu(r)&&Yu(r)?o(e.id,v(t,i,r.value),a&&a.clearUnsafe()):V(qf(pp(a?_p(r,EM,a):r,n.context),e=>zf(t=>{let r=Ou(`Failed to encode response for RPC "${n.tag}": ${s_(e.issue)}`);return Tu(t,r),s=!0,Ff(r)})),n=>o(e.id,v(t,i,n),a&&a.clearUnsafe()));return Yf(c,r=>(e.schemas.delete(t),Vf(b(e,t,n.encodeExit,Mu(r)),s?Ff(r):m.write(e.id,{_tag:`Interrupt`,requestId:t,interruptors:[]}))))},b=(e,t,n,r)=>Yf(V(n(Ku(r)),n=>o(e.id,v(t,`Exit`,n))),t=>x(e,Mu(t))),x=(e,t)=>Yf(o(e.id,BM(u(t))),e=>Yp(fie(e),{module:`RpcServer`,method:`sendDefect`})),S=(e,t,n,r,i)=>{e.schemas.set(t,l?{...n,collector:DM()}:n);let a=r;return a.id=t,a.payload=i,a.headers=qh(r.headers),m.write(e.id,a)};return yield*a((t,n)=>{let r=_.get(t);switch(r||(r={id:t,schemas:/* @__PURE__ */ new Map},_.set(t,r)),n._tag){case`Request`:{let t=Object.hasOwn(n,`tag`)?n.tag:``,i;switch(typeof n.id){case`number`:case`string`:i=zM(n.id);break;default:return x(r,`Invalid request id: ${n.id}`)}let a=e.requests.get(t);if(!a)return b(r,i,d,`Unknown request tag: ${t}`);let o=g(a),s=o.decode(n.payload);return Hu(s)&&Yu(s)?S(r,i,o,n,s.value):lp(pp(s,o.context),{onFailure:e=>b(r,i,o.encodeExit,s_(e.issue)),onSuccess:e=>S(r,i,o,n,e)})}case`Ping`:return Yf(o(r.id,Gce),e=>x(r,Mu(e)));case`Eof`:return m.write(t,n);case`Ack`:return m.write(t,n);case`Interrupt`:return m.write(t,{...n,requestId:zM(n.requestId),interruptors:[]});default:return x(r,`Unknown request tag: ${n._tag}`)}}).pipe(tp(e=>uie(`BUG: RpcServer protocol crashed`,e)),Tp(e=>wd(p,e)))});var rN=class extends (/*#__PURE__*/ F()(`effect/rpc/RpcServer/Protocol`)){static make=/*#__PURE__*/ Qce()};const iN=/*#__PURE__*/ U(function*(e={}){let t=yield*UM,{encodeDefectUnsafe:n}=eN(t.codecFor),r=t.includesFraming,i=!t.contentType.includes(`json`),a=yield*_C(),o,s=0,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Set,u=new TextEncoder,d=z(function*(){let d=zS(),f=Ui(d.context,Ij),p=Ui(d.context,gd),m=Object.entries(f.headers),h=yield*$f(i?H(f.arrayBuffer,e=>new Uint8Array(e)):f.text),g=s++,_=yield*_C({capacity:r&&e.streamBufferSize!==`unbounded`?e.streamBufferSize??16:void 0}),v=t.makeUnsafe(),y=[],b=e=>typeof e==`string`?yC(_,u.encode(e)):yC(_,e),x={write:r?e=>{try{let t=v.encode(e);return t===void 0?R:b(t)}catch(e){return b(v.encode(BM(n(e))))}}:e=>e._tag===`Request`&&e.isNotification===!0?R:yC(_,e),end:CC(_)};yield*bd(p,()=>(c.delete(g),l.delete(g),bC(a,g),_.state._tag===`Done`?R:Vf(TC(_),Df(y,e=>o(g,{_tag:`Interrupt`,requestId:e}),{discard:!0})))),c.set(g,x),l.add(g);try{let e=v.decode(h);for(let t=0;t<e.length;t++){let n=e[t];n._tag===`Request`&&(y.push(zM(n.id)),n.headers=m.concat(n.headers)),yield*o(g,n)}}catch(e){yield*x.write(BM(n(e)))}if(yield*o(g,Wce),!r){let e=yield*qoe(_),n=v.encode(e);return Bk(n===void 0?``:n,{contentType:t.contentType})}let S=yield*gf(DC(_),()=>I([]));return _.state._tag===`Done`?Rk(lle(S),{contentType:t.contentType}):Gk(rse(S).pipe(ase(LT(_))),{contentType:t.contentType})});return{protocol:yield*rN.make(e=>(o=e,I({disconnects:a,send(e,t){let n=c.get(e);return n?n.write(t):R},end(e){let t=c.get(e);return t?t.end:R},clientIds:L(()=>l),initialMessage:jf,supportsAck:!1,supportsTransferables:!1,supportsSpanPropagation:!1,supportsNotifications:r,codecFor:t.codecFor}))),httpEffect:d}}),lle=e=>{if(e.length===0)return/* @__PURE__ */ new Uint8Array;if(e.length===1)return e[0];let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n},ule={add(...e){let t=new Map(this.requests);for(let n of e)t.set(n._tag,n);return aN({requests:t,annotations:this.annotations})},merge(...e){let t=new Map(this.requests),n=new Map(this.annotations.mapUnsafe);for(let r of e){for(let[e,n]of r.requests)t.set(e,n);for(let[e,t]of r.annotations.mapUnsafe)n.set(e,t)}return aN({requests:t,annotations:Ni(n)})},omit(...e){let t=new Map(this.requests);for(let n of e)t.delete(n);return aN({requests:t,annotations:this.annotations})},middleware(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of this.requests)t.set(n,r.middleware(e));return aN({requests:t,annotations:this.annotations})},toHandlers(e){let t=this;return z(function*(){let n=yield*up(),r=Tf(e)?yield*e:e,i=/* @__PURE__ */ new Map;return t.requests.forEach((e,t)=>{i.set(e.key,{tag:e._tag,handler:r[t],context:n})}),Ni(i)})},prefix(e){let t=/* @__PURE__ */ new Map;for(let n of this.requests.values()){let r=n.prefix(e);t.set(r._tag,r)}return aN({requests:t,annotations:this.annotations})},toLayer(e){return Kd(this.toHandlers(e))},of:N,toLayerHandler(e,t){let n=this;return Kd(z(function*(){let r=yield*up(),i=Tf(t)?yield*t:t,a=/* @__PURE__ */ new Map,o=n.requests.get(e);return a.set(o.key,{handler:i,context:r}),Ni(a)}))},accessHandler(e){return dp(t=>{let n=this.requests.get(e),{handler:r,context:i}=Hi(t,n.key);return I((e,t)=>{t.rpc=n;let a=r(e,t),o=RM(a)?a.value:a;return Tf(o)?fp(o,i):WT(o,i)})})},annotate(e,t){return aN({requests:this.requests,annotations:zi(this.annotations,e,t)})},annotateRpcs(e,t){return this.annotateRpcsMerge(Ri(e,t))},annotateMerge(e){return aN({requests:this.requests,annotations:Ji(this.annotations,e)})},annotateRpcsMerge(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of this.requests)t.set(n,r.annotateMerge(Ji(e,r.annotations)));return aN({requests:t,annotations:this.annotations})}},aN=e=>Object.assign(function(){},ule,{requests:e.requests,annotations:e.annotations}),oN=(...e)=>aN({requests:new Map(e.map(e=>[e._tag,e])),annotations:Ii()}),dle=e=>{switch(e){case`SHA-1`:return`sha1`;case`SHA-256`:return`sha256`;case`SHA-384`:return`sha384`;case`SHA-512`:return`sha512`}},fle=/* @__PURE__ */ Vd(_E,/* @__PURE__ */ $se({randomBytes:Ve.randomBytes,digest:(e,t)=>Rf({try:()=>Uint8Array.from(Ve.createHash(dle(e)).update(t).digest()),catch:e=>Jw({module:`Crypto`,method:`digest`,_tag:`Unknown`,description:`Could not compute digest`,cause:e})})})),sN=e=>t=>Yw({module:`FileSystem`,method:e,description:t.message??String(t)}),cN=(e,t)=>{let n=Number(e);if(!Number.isSafeInteger(n))throw RangeError(`${t} exceeds the safe integer range: ${e}`);return n},lN=e=>Si(_i(e),Sm),uN=(e,t)=>Rf({try:()=>cN(e,`position`),catch:sN(t)}),ple=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.access,/*#__PURE__*/ tD(`FileSystem`,`access`),/*#__PURE__*/ sN(`access`));return(t,n)=>{let r=rt.constants.F_OK;return n?.readable&&(r|=rt.constants.R_OK),n?.writable&&(r|=rt.constants.W_OK),e(t,r)}})(),mle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.cp,/*#__PURE__*/ tD(`FileSystem`,`copy`),/*#__PURE__*/ sN(`copy`));return(t,n,r)=>e(t,n,{force:r?.overwrite??!1,preserveTimestamps:r?.preserveTimestamps??!1,recursive:!0})})(),hle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.copyFile,/*#__PURE__*/ tD(`FileSystem`,`copyFile`),/*#__PURE__*/ sN(`copyFile`));return(t,n)=>e(t,n)})(),gle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.chmod,/*#__PURE__*/ tD(`FileSystem`,`chmod`),/*#__PURE__*/ sN(`chmod`));return(t,n)=>e(t,n)})(),_le=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.chown,/*#__PURE__*/ tD(`FileSystem`,`chown`),/*#__PURE__*/ sN(`chown`));return(t,n,r)=>e(t,n,r)})(),vle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.glob,/*#__PURE__*/ tD(`FileSystem`,`glob`),/*#__PURE__*/ sN(`glob`));return(t,n)=>e(t,{cwd:n?.root,exclude:n?.exclude})})(),yle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.link,/*#__PURE__*/ tD(`FileSystem`,`link`),/*#__PURE__*/ sN(`link`));return(t,n)=>e(t,n)})(),ble=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.mkdir,/*#__PURE__*/ tD(`FileSystem`,`makeDirectory`),/*#__PURE__*/ sN(`makeDirectory`));return(t,n)=>e(t,{recursive:n?.recursive??!1,mode:n?.mode})})(),dN=e=>{let t=Xp(rt.mkdtemp,tD(`FileSystem`,e),sN(e));return e=>Mf(()=>{let n=e?.prefix??``,r=typeof e?.directory==`string`?Ue.join(e.directory,`.`):Xe.tmpdir();return t(n?Ue.join(r,n):r+`/`)})},xle=/*#__PURE__*/ dN(`makeTempDirectory`),fN=e=>{let t=Xp(rt.rm,tD(`FileSystem`,e),sN(e));return(e,n)=>t(e,{recursive:n?.recursive??!1,force:n?.force??!1})},Sle=/*#__PURE__*/ fN(`remove`),Cle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ dN(`makeTempDirectoryScoped`),t=/*#__PURE__*/ fN(`makeTempDirectoryScoped`);return n=>bp(e(n),e=>$f(t(e,{recursive:!0})))})(),wle=e=>{let{O_APPEND:t,O_CREAT:n,O_EXCL:r,O_RDONLY:i,O_RDWR:a,O_TRUNC:o,O_WRONLY:s}=rt.constants;switch(e){case`r`:return i;case`r+`:return a;case`w`:return o|n|s;case`wx`:return o|n|s|r;case`w+`:return o|n|a;case`wx+`:return o|n|a|r;case`a`:return t|n|s;case`ax`:return t|n|s|r;case`a+`:return t|n|a;case`ax+`:return t|n|a|r}},Tle=(e,t)=>Mf(()=>{let{O_NOFOLLOW:n}=rt.constants;return process.platform===`win32`||typeof n!=`number`||n===0?B(Yw({module:`FileSystem`,method:e,description:`noFollow is not supported on this platform`})):I(wle(t)|n)}),Ele=/*#__PURE__*/ (e=>{let t=Xp(rt.open,tD(`FileSystem`,e),sN(e)),n=Xp(rt.close,tD(`FileSystem`,e),sN(e));return(r,i)=>vt(bp(i?.noFollow===!0?V(Tle(e,i.flag??`r`),e=>t(r,e,i.mode)):t(r,i?.flag??`r`,i?.mode),e=>$f(n(e))),H(e=>Dle(e,i?.flag?.startsWith(`a`)??!1)))})(`open`),pN=e=>Yw({module:`FileSystem`,method:e,description:`Cannot read before the start of the file`}),Dle=/*#__PURE__*/ (()=>{let e=e=>Xp(rt.read,tD(`FileSystem`,e),sN(e)),t=/*#__PURE__*/ e(`read`),n=/*#__PURE__*/ e(`readAlloc`),r=/*#__PURE__*/ Xp(rt.fstat,/*#__PURE__*/ tD(`FileSystem`,`stat`),/*#__PURE__*/ sN(`stat`)),i=/*#__PURE__*/ Xp(rt.ftruncate,/*#__PURE__*/ tD(`FileSystem`,`truncate`),/*#__PURE__*/ sN(`truncate`)),a=/*#__PURE__*/ Xp(rt.fsync,/*#__PURE__*/ tD(`FileSystem`,`sync`),/*#__PURE__*/ sN(`sync`)),o=e=>Xp(rt.write,tD(`FileSystem`,e),sN(e)),s=/*#__PURE__*/ o(`write`),c=/*#__PURE__*/ o(`writeAll`);class l{[XT];fd;append;position=/*#__PURE__*/ BigInt(0);constructor(e,t){this[XT]=XT,this.fd=e,this.append=t}get stat(){return V(r(this.fd,{bigint:!0}),hN)}get sync(){return a(this.fd)}seek(e,t){return Mf(()=>{let n=t===`start`?e:this.position+e;return n<BigInt(0)?B(Yw({module:`FileSystem`,method:`seek`,description:`Cannot seek before the start of the file`})):(this.position=n,I(n))})}read(e,n){return Mf(()=>{let r=n?.position;if(r!==void 0)return r<BigInt(0)?B(pN(`read`)):t(this.fd,{buffer:e,position:r});let i=this.position;return H(t(this.fd,{buffer:e,position:i}),e=>(this.position=i+BigInt(e),e))})}readAlloc(e,t){return Mf(()=>{try{if(!Number.isInteger(e)||e<0)throw RangeError(`size must be a non-negative integer`);let r=t?.position;if(r!==void 0&&r<BigInt(0))return B(pN(`readAlloc`));let i=Buffer.allocUnsafeSlow(e),a=r??this.position;return H(n(this.fd,{buffer:i,position:a}),t=>{if(t===0)return di();if(r===void 0&&(this.position=a+BigInt(t)),t===e)return fi(i);let n=Buffer.allocUnsafeSlow(t);return i.copy(n,0,0,t),fi(n)})}catch(e){return B(sN(`readAlloc`)(e))}})}truncate(e){return H(i(this.fd,e||void 0),()=>{if(!this.append){let t=BigInt(e??0);this.position>t&&(this.position=t)}})}write(e){return Mf(()=>{let t=this.position;return V(this.append?I(void 0):uN(t,`write`),n=>H(s(this.fd,e,void 0,void 0,n),e=>(this.append||(this.position=t+BigInt(e)),e)))})}writeAllChunk(e){return Mf(()=>{let t=this.position;return V(this.append?I(void 0):uN(t,`writeAll`),n=>V(c(this.fd,e,void 0,void 0,n),n=>n===0?B(Jw({module:`FileSystem`,method:`writeAll`,_tag:`WriteZero`,pathOrDescriptor:this.fd,description:`write returned 0 bytes written`})):(this.append||(this.position=t+BigInt(n)),n<e.length?this.writeAllChunk(e.subarray(n)):R)))})}writeAll(e){return e.length===0?R:this.writeAllChunk(e)}}return(e,t)=>new l(e,t)})(),mN=e=>{let t=dN(e);return U(function*(e){let n=yield*t(e),r=Ve.randomBytes(6).toString(`hex`),i=Ue.join(n,e?.suffix?`${r}${e.suffix}`:r);return yield*_N(i,/* @__PURE__ */ new Uint8Array),i})},Ole=/*#__PURE__*/ mN(`makeTempFile`),kle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ mN(`makeTempFileScoped`),t=/*#__PURE__*/ fN(`makeTempFileScoped`);return n=>bp(e(n),e=>$f(t(Ue.dirname(e),{recursive:!0})))})(),Ale=(e,t)=>Af({try:()=>rt.promises.readdir(e,t),catch:t=>tD(`FileSystem`,`readDirectory`)(t,[e])}),jle=e=>Nf((t,n)=>{try{rt.readFile(e,{signal:n},(n,r)=>{t(n?B(tD(`FileSystem`,`readFile`)(n,[e])):I(r))})}catch(e){t(B(sN(`readFile`)(e)))}}),Mle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.readlink,/*#__PURE__*/ tD(`FileSystem`,`readLink`),/*#__PURE__*/ sN(`readLink`));return t=>e(t)})(),Nle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.realpath,/*#__PURE__*/ tD(`FileSystem`,`realPath`),/*#__PURE__*/ sN(`realPath`));return t=>e(t)})(),Ple=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.rename,/*#__PURE__*/ tD(`FileSystem`,`rename`),/*#__PURE__*/ sN(`rename`));return(t,n)=>e(t,n)})(),hN=e=>Rf({try:()=>({type:e.isFile()?`File`:e.isDirectory()?`Directory`:e.isSymbolicLink()?`SymbolicLink`:e.isBlockDevice()?`BlockDevice`:e.isCharacterDevice()?`CharacterDevice`:e.isFIFO()?`FIFO`:e.isSocket()?`Socket`:`Unknown`,mtime:_i(e.mtime),atime:_i(e.atime),birthtime:_i(e.birthtime),dev:cN(e.dev,`dev`),rdev:lN(e.rdev),ino:lN(e.ino),mode:cN(e.mode,`mode`),nlink:lN(e.nlink),uid:lN(e.uid),gid:lN(e.gid),size:Bm(e.size),blksize:e.blksize===void 0?di():fi(Bm(e.blksize)),blocks:lN(e.blocks)}),catch:sN(`stat`)}),gN=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.stat,/*#__PURE__*/ tD(`FileSystem`,`stat`),/*#__PURE__*/ sN(`stat`));return t=>V(e(t,{bigint:!0}),hN)})(),Fle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.symlink,/*#__PURE__*/ tD(`FileSystem`,`symlink`),/*#__PURE__*/ sN(`symlink`));return(t,n)=>e(t,n)})(),Ile=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.truncate,/*#__PURE__*/ tD(`FileSystem`,`truncate`),/*#__PURE__*/ sN(`truncate`));return(t,n)=>e(t,n)})(),Lle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Xp(rt.utimes,/*#__PURE__*/ tD(`FileSystem`,`utime`),/*#__PURE__*/ sN(`utime`));return(t,n,r)=>e(t,n,r)})(),Rle=(e,t,n)=>tse(r=>bp(L(()=>{let i=t.type===`Directory`?e:Ue.dirname(e),a=rt.watch(e,{recursive:n?.recursive??!1},(e,t)=>{if(t)switch(e){case`rename`:Bp(lp(gN(Ue.resolve(i,t)),{onSuccess:e=>yC(r,{_tag:`Create`,path:t}),onFailure:e=>yC(r,{_tag:`Remove`,path:t})}));return;case`change`:bC(r,{_tag:`Update`,path:t});return}});return a.on(`error`,t=>{SC(r,vre(Jw({module:`FileSystem`,_tag:`Unknown`,method:`watch`,pathOrDescriptor:e,cause:t})))}),a.on(`close`,()=>{wC(r)}),a}),e=>L(()=>e.close()))),zle=(e,t,n)=>gN(t).pipe(H(r=>e.pipe(Si(e=>e.register(t,r,n)),gi(()=>Rle(t,r,n)))),zT),_N=(e,t,n)=>Nf((r,i)=>{try{rt.writeFile(e,t,{signal:i,flag:n?.flag,mode:n?.mode},t=>{r(t?B(tD(`FileSystem`,`writeFile`)(t,[e])):R)})}catch(e){r(B(sN(`writeFile`)(e)))}}),Ble=/*#__PURE__*/ H(/*#__PURE__*/ hp(xse),e=>bse({access:ple,chmod:gle,chown:_le,copy:mle,copyFile:hle,glob:vle,link:yle,makeDirectory:ble,makeTempDirectory:xle,makeTempDirectoryScoped:Cle,makeTempFile:Ole,makeTempFileScoped:kle,open:Ele,readDirectory:Ale,readFile:jle,readLink:Mle,realPath:Nle,remove:Sle,rename:Ple,stat:gN,symlink:Fle,truncate:Ile,utimes:Lle,watch(t,n){return zle(e,t,n)},writeFile:_N})),vN=/* @__PURE__ */ Wd(YT)(Ble),yN=/*#__PURE__*/ new TextDecoder;var Vle=class extends Pn{[gO];source;onError;remoteAddressOverride;constructor(e,t,n){super(),this[gO]=gO,this.source=e,this.onError=t,this.remoteAddressOverride=n}get headers(){return qh(this.source.headers)}get remoteAddress(){return this.remoteAddressOverride??_i(this.source.socket?.remoteAddress)}textEffect;get text(){return this.textEffect||=H(this.arrayBuffer,e=>yN.decode(e)),this.textEffect}get textUnsafe(){return Up(this.text)}get json(){return V(this.text,e=>Rf({try:()=>e===``?null:JSON.parse(e),catch:this.onError}))}get jsonUnsafe(){return Up(this.json)}get urlParamsBody(){return V(this.text,e=>Rf({try:()=>sg(new URLSearchParams(e)),catch:this.onError}))}get stream(){return iD({evaluate:()=>this.source,onError:this.onError})}arrayBufferEffect;get arrayBuffer(){return this.arrayBufferEffect||(this.arrayBufferEffect=zf(e=>aD(()=>this.source,{onError:this.onError,maxBytes:e.getRef(vO)})).pipe(Ep,Up),this.textEffect=H(this.arrayBufferEffect,e=>yN.decode(e))),this.arrayBufferEffect}};const bN=/*#__PURE__*/ Xi(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch});var xN=class extends (/*#__PURE__*/ F()(`effect/http/FetchHttpClient/RequestInit`)){};const SN=/*#__PURE__*/ JO(/*#__PURE__*/ I(/* @__PURE__ */ VO((e,t,n,r)=>{let i=r.getRef(bN),a=Vi(r.context,xN)??{},o=a.headers?Zh(qh(a.headers),e.headers):e.headers;o[`content-length`]&&(o=Qh(o,`content-length`));let s=r=>H(Af({try:()=>i(t,{...a,method:e.method,headers:o,body:r,duplex:typeof ReadableStream<`u`&&r instanceof ReadableStream?`half`:void 0,signal:n}),catch:t=>new ID({reason:new zD({request:e,cause:t})})}),t=>xO(e,t));switch(e.body._tag){case`Raw`:case`Uint8Array`:return s(e.body.body);case`FormData`:return s(e.body.formData);case`Stream`:return V(yse(e.body.stream),s)}return s(void 0)}))),Hle=/*#__PURE__*/ new Set(typeof at.zstdCompress==`function`?[`gzip`,`deflate`,`br`,`zstd`]:[`gzip`,`deflate`,`br`]),CN=(e,t)=>{let n={};return e!==void 0&&(n[at.constants.BROTLI_PARAM_QUALITY]=e),t!==void 0&&(n[at.constants.BROTLI_PARAM_SIZE_HINT]=t),{params:n}},wN=e=>e===void 0||e===3?void 0:{params:{[at.constants.ZSTD_c_compressionLevel]:e}},Ule=(e,t,n)=>Nf(r=>{let i=(e,t)=>r(e===null?I(t):Lf(e));switch(t){case`gzip`:at.gzip(e,{level:n?.level},i);break;case`deflate`:at.deflate(e,{level:n?.level},i);break;case`br`:at.brotliCompress(e,CN(n?.level,e.byteLength),i);break;case`zstd`:{let t=wN(n?.level);t===void 0?at.zstdCompress(e,i):at.zstdCompress(e,t,i);break}}}),Wle=e=>({algorithms:e.algorithms,compressResponse(t,n,r){let i=t.body;return i._tag===`Uint8Array`?H(Ule(i.body,n,r),e=>Kk(Zk(t,TD(e,t.headers[`content-type`]??i.contentType)),`content-length`,e.byteLength.toString())):e.compressResponse(t,n,r)}}),TN=(e,t)=>{switch(e){case`gzip`:return at.createGzip({level:t?.level,flush:at.constants.Z_SYNC_FLUSH});case`deflate`:return at.createDeflate({level:t?.level,flush:at.constants.Z_SYNC_FLUSH});case`br`:return at.createBrotliCompress({...CN(t?.level),flush:at.constants.BROTLI_OPERATION_FLUSH});case`zstd`:return at.createZstdCompress({...wN(t?.level),flush:at.constants.ZSTD_e_flush})}},EN=(e,t)=>{let n;return new et({read(){if(n===void 0){try{n=e()}catch(e){this.destroy(e instanceof Error?e:Error(String(e)));return}n.on(`data`,e=>{this.push(e)||n.pause()}),n.once(`end`,()=>this.push(null)),n.once(`error`,e=>this.destroy(e)),n.once(`close`,()=>{n.readableEnded||this.destroy(/* @__PURE__ */ Error(`Response stream closed prematurely`))})}n.resume()},destroy(e,r){n?.destroy(e??void 0),t?.(),r(e)}})},DN=(e,t)=>qk(Zk(e,t),`content-length`),Gle=/*#__PURE__*/ pA({platform:`node`,compression:/* @__PURE__ */ Wle({algorithms:Hle,compressResponse(e,t,n){let r=e.body;switch(r._tag){case`Stream`:return I(DN(e,PD(Ice(r.stream,{evaluate:()=>TN(t,n)}),e.headers[`content-type`]??r.contentType)));case`Raw`:{let i=r.body instanceof et?r.body:void 0,a=EN(()=>{let e=TN(t,n);return i??=et.fromWeb(new Response(r.body).body),fee(i,e,e=>{e&&a.destroy(e)})},()=>i?.destroy());return I(DN(e,CD(a,{contentType:e.headers[`content-type`]??r.contentType})))}default:return I(e)}}}),fileResponse(e,t,n,r,i,a,o){let s=EN(()=>o===BigInt(0)?et.from([]):rt.createReadStream(e,{start:i,end:a===void 0?void 0:a-1}));return Wk(s,{headers:{...r,"content-type":r[`content-type`]??gi(dA(e),()=>`application/octet-stream`),"content-length":o.toString()},status:t,statusText:n})},fileWebResponse(e,t,n,r,i){return Wk(EN(()=>et.fromWeb(e.stream())),{headers:Zh(r,Jh({"content-type":r[`content-type`]??(e.type===``?gi(dA(e.name),()=>`application/octet-stream`):e.type),"content-length":e.size.toString()})),status:t,statusText:n})}}),Kle=/*#__PURE__*/ vt(/*#__PURE__*/ Wd(fA)(Gle),/*#__PURE__*/ ef(vN),/*#__PURE__*/ ef(Ak));var qle=class extends Qe{_parser;_canWrite=!0;_writeCallback;constructor(e){super({readableObjectMode:!0});let t,n;this._parser=pj({...e,onField:(e,n)=>{if(t!==void 0)return;let r={_tag:`Field`,info:e,value:n};this.push(r),this.emit(`field`,r)},onFile:e=>{if(t!==void 0)return e=>{};let r=new Yle(e,this);return n=r,this.push(r),this.emit(`file`,r),e=>{t===void 0&&(this._canWrite=r.push(e),e===null&&!this._canWrite&&(n=void 0,this._resume()))}},onError:e=>{this.emit(`error`,e),n?.emit(`error`,e),t=e},onDone:()=>{this.push(null)}})}_resume(){if(this._canWrite=!0,this._writeCallback!==void 0){let e=this._writeCallback;this._writeCallback=void 0,e()}}_read(e){}_write(e,t,n){this._parser.write(e instanceof Uint8Array?e:Buffer.from(e,t)),this._canWrite?n():this._writeCallback=n}_final(e){this._parser.end(),e()}};const Jle=e=>new qle(e);var Yle=class extends et{_tag=`File`;filename;info;_parent;constructor(e,t){super(),this.info=e,this._parent=t,this.filename=e.filename}_read(e){this._parent._canWrite===!1&&this._parent._resume()}};const ON=(e,t)=>Cj(t).pipe(H(t=>iD({evaluate(){let n=Jle(t);return e.pipe(n),n},onError:e=>eue(e)})),zT,BT(Zle)),Xle=(e,t)=>Oj(ON(e,t),(e,t)=>Af({try:n=>gee.pipeline(t.file,rt.createWriteStream(e),{signal:n}),catch:e=>xj.fromReason(`InternalError`,e)})),Zle=e=>e._tag===`Field`?new Qle(e.info,e.value):new $le(e);var kN=class extends Pn{[gj];constructor(){super(),this[gj]=gj}},Qle=class extends kN{_tag=`Field`;key;contentType;value;constructor(e,t){super(),this.key=e.name,this.contentType=e.contentType,this.value=hj(e,t)}toJSON(){return{_id:`@effect/platform/Multipart/Part`,_tag:`Field`,key:this.key,value:this.value,contentType:this.contentType}}},$le=class extends kN{_tag=`File`;key;name;contentType;content;contentEffect;file;constructor(e){super(),this.file=e,this.key=e.info.name,this.name=e.filename??e.info.name,this.contentType=e.info.contentType,this.content=iD({evaluate:()=>e,onError:e=>xj.fromReason(`InternalError`,e)}),this.contentEffect=Lce(()=>e,{onError:e=>xj.fromReason(`InternalError`,e)})}toJSON(){return{_id:`@effect/platform/Multipart/Part`,_tag:`File`,key:this.key,name:this.name,contentType:this.contentType}}};function eue(e){switch(e._tag){case`ReachedLimit`:switch(e.limit){case`MaxParts`:return xj.fromReason(`TooManyParts`,e);case`MaxFieldSize`:return xj.fromReason(`FieldTooLarge`,e);case`MaxPartSize`:return xj.fromReason(`FileTooLarge`,e);case`MaxTotalSize`:return xj.fromReason(`BodyTooLarge`,e)}default:return xj.fromReason(`Parse`,e)}}const AN=e=>({fromFileUrl:t=>Rf({try:()=>qe.fileURLToPath(t,{windows:e}),catch:e=>new Gw({module:`Path`,method:`fromFileUrl`,cause:e})}),toFileUrl:t=>Rf({try:()=>qe.pathToFileURL(t,{windows:e}),catch:e=>new Gw({module:`Path`,method:`toFileUrl`,cause:e})})});({...Ue.posix,.../*#__PURE__*/ AN(!1)}),{...Ue.win32,.../*#__PURE__*/ AN(!0)};const tue=/* @__PURE__ */ Vd(QT)({[ZT]:ZT,...Ue,.../*#__PURE__*/ AN(void 0)}),nue=/* @__PURE__ */ Vd(yce,/*#__PURE__*/ bce({args:/*#__PURE__*/ L(()=>process.argv.slice(2)),stdinIsTerminal:/*#__PURE__*/ L(()=>process.stdin.isTTY===!0),stdoutIsTerminal:/*#__PURE__*/ L(()=>process.stdout.isTTY===!0),stderrIsTerminal:/*#__PURE__*/ L(()=>process.stderr.isTTY===!0),stdout:e=>nD({evaluate:()=>process.stdout,onError:e=>Jw({module:`Stdio`,method:`stdout`,_tag:`Unknown`,cause:e}),endOnDone:e?.endOnDone??!1}),stderr:e=>nD({evaluate:()=>process.stderr,onError:e=>Jw({module:`Stdio`,method:`stderr`,_tag:`Unknown`,cause:e}),endOnDone:e?.endOnDone??!1}),stdin:/*#__PURE__*/ iD({evaluate:()=>process.stdin,onError:e=>Jw({module:`Stdio`,method:`stdin`,_tag:`Unknown`,cause:e}),closeOnDone:!1})})),rue=/*#__PURE__*/ Wd(HE,/*#__PURE__*/ (/* @__PURE__ */ U(function*(e=jN){let t=process.stdin,n=process.stdout,r=yield*_C(),i=t.readableEnded,a=!1,o=()=>{i=!0,a||wC(r)};t.once(`end`,o),yield*xp(()=>L(()=>t.off(`end`,o)));let s=yield*DT({acquire:bp(L(()=>{let e=ot.createInterface({input:t,escapeCodeTimeout:50}),n=e=>bC(r,e),i=()=>{a=!1,wC(r)};return a=!0,ot.emitKeypressEvents(t,e),e.on(`line`,n),e.once(`close`,i),t.isTTY&&t.setRawMode(!0),{rl:e,onClose:i,onLine:n}}),({rl:e,onClose:n,onLine:o})=>L(()=>{a=!1,e.off(`line`,o),e.off(`close`,n),t.isTTY&&t.setRawMode(!1),e.close(),i&&wC(r)})),idleTimeToLive:`10 millis`}),c=L(()=>n.columns??0),l=L(()=>n.rows??0),u=z(function*(){let n=yield*_C(),r=(t,r)=>{let i={input:vi(t),key:{name:r.name??``,ctrl:!!r.ctrl,meta:!!r.meta,shift:!!r.shift}};bC(n,i),e(i)&&wC(n)},a=setInterval(()=>{},2147483647),o=()=>{clearInterval(a),wC(n)};return yield*xp(()=>L(()=>{clearInterval(a),t.off(`keypress`,r),t.off(`end`,o)})),t.on(`keypress`,r),i?o():(yield*OT(s),t.once(`end`,o)),n}),d=Mf(()=>Joe(r).pipe(V(hi({onNone:()=>yp(Vf(OT(s),kC(r))),onSome:I})),Qf(()=>new xce({}))));return Sce({columns:c,rows:l,readInput:u,readLine:d,display:e=>jp(Nf(t=>{n.write(e,e=>Ft(e)?t(R):t(B(Yw({module:`Terminal`,method:`display`,description:`Failed to write prompt to stdout`,cause:e}))))}))})}))(jN));function jN(e){let t=e.key;return t.name===`escape`||t.ctrl&&(t.name===`c`||t.name===`d`)}const iue=/*#__PURE__*/ tf(hD,/*#__PURE__*/ Zd(vN,fle,tue,nue,rue)),aue=(e,t)=>{let n=$j(e,lue,t.middleware);return zf(e=>{let r=e.context;return I(function(i,a){let o=zi(r,Ij,new oue(i,a)),s=BS(Vp(o)(n),t.scope);s.pollUnsafe()===void 0&&a.on(`close`,()=>{a.writableEnded||s.interruptUnsafe(e.id,kA.annotation)})})})};var oue=class e extends Vle{[Fj];response;upgradeEffect;upgraded=!1;url;headersOverride;constructor(e,t,n,r=e.url,i,a){super(e,e=>new wA({reason:new TA({request:this,cause:e})}),a),this[Fj]=Fj,this.response=t,this.upgradeEffect=n,this.url=r,this.headersOverride=i}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=Mh(this.headers.cookie??``)}get resolvedResponse(){return typeof this.response==`function`?this.response():this.response}modify(t){return new e(this.source,this.response,this.upgradeEffect,t.url??this.url,t.headers??this.headersOverride,`remoteAddress`in t?t.remoteAddress:this.remoteAddressOverride)}get originalUrl(){return this.source.url}cachedMethod;get method(){return this.cachedMethod??=this.source.method.toUpperCase()}get headers(){return this.headersOverride??=this.source.headers,this.headersOverride}multipartEffect;get multipart(){return this.multipartEffect||=Up(Ep(Xle(this.source,this.source.headers))),this.multipartEffect}get multipartStream(){return ON(this.source,this.source.headers)}get upgrade(){return this.upgradeEffect??B(new wA({reason:new TA({request:this,description:`not an upgradeable ServerRequest`})}))}toString(){return`ServerRequest(${this.method} ${this.url})`}toJSON(){return yO(this,{_id:`HttpServerRequest`,method:this.method,url:this.originalUrl})}};const sue=/*#__PURE__*/ Zd(Kle,jk,iue),cue=/*#__PURE__*/ Ik({status:101}),lue=(e,t)=>{if(e.upgraded)return I(cue);let n=e.resolvedResponse;if(n.writableEnded)return R;let r=t.headers;if(!vh(t.cookies)){r={...r};let e=jh(t.cookies);r[`set-cookie`]!==void 0&&e.push(r[`set-cookie`]),r[`set-cookie`]=e}if(e.method===`HEAD`)return n.writeHead(t.status,t.statusText,r),Vf(uue(t.body),Nf(e=>{let t=!1,r=()=>{t||(t=!0,n.off(`close`,r),e(R))};n.once(`close`,r),n.end(r)}));let i=t.body;switch(i._tag){case`Empty`:return n.writeHead(t.status,t.statusText,r),n.end(),R;case`Raw`:return n.writeHead(t.status,t.statusText,r),typeof i.body==`object`&&i.body!==null&&`pipe`in i.body&&typeof i.body.pipe==`function`?Af({try:e=>_ee(i.body,n,{signal:e,end:!0}),catch:n=>new wA({reason:new OA({request:e,response:t,description:`Error writing raw response`,cause:n})})}).pipe(kp,tp(MN(n,t))):Nf(e=>{n.end(i.body,()=>e(R))});case`Uint8Array`:return n.writeHead(t.status,t.statusText,r),i.contentLength<1048576?(n.end(i.text??i.body),R):Nf(e=>{n.end(i.text??i.body,()=>e(R))});case`FormData`:return Mf(()=>{let a=new globalThis.Response(i.formData);return n.writeHead(t.status,t.statusText,{...r,...Object.fromEntries(a.headers)}),Nf((r,i)=>{et.fromWeb(a.body,{signal:i}).pipe(n).on(`error`,n=>{r(B(new wA({reason:new OA({request:e,response:t,description:`Error writing FormData response`,cause:n})})))}).once(`finish`,()=>{r(R)})}).pipe(kp,tp(MN(n,t)))});case`Stream`:{n.writeHead(t.status,t.statusText,r);let e=VS();return n.on(`drain`,()=>e.openUnsafe()),i.stream.pipe(lse,KT(t=>{let r=t.length>1?Buffer.concat(t):t[0];return n.write(r)?R:(e.closeUnsafe(),e.await)}),kp,cp({onSuccess:()=>L(()=>n.end()),onFailure:MN(n,t)}))}}},uue=e=>{let t=e._tag===`Raw`?e.body:void 0;return t instanceof et?L(()=>t.destroy()):R},MN=(e,t)=>n=>V(jA(n),([r,i])=>{let a=e.headersSent;return a||e.writeHead(r.status,r.statusText),e.writableEnded||e.end(),Ff(a?xre(n,Ou(t)):i)}),due={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,OK:200,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511},fue=e=>due[e],NN=new TextEncoder,PN=new TextDecoder,FN=new TextDecoder(`utf-8`,{fatal:!0}),IN=2**32;function LN(...e){let t=e.reduce((e,{length:t})=>e+t,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function RN(e,t,n){if(t<0||t>=IN)throw RangeError(`value must be >= 0 and <= ${IN-1}. Received ${t}`);e.set([t>>>24,t>>>16,t>>>8,t&255],n)}function zN(e){let t=Math.floor(e/IN),n=e%IN,r=/* @__PURE__ */ new Uint8Array(8);return RN(r,t,0),RN(r,n,4),r}function BN(e){let t=/* @__PURE__ */ new Uint8Array(4);return RN(t,e),t}const pue=/[^\x00-\x7f]/;function VN(e){if(typeof e==`string`&&e.length>=128){if(pue.test(e))throw TypeError(`non-ASCII string encountered in encode()`);return NN.encode(e)}let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r>127)throw TypeError(`non-ASCII string encountered in encode()`);t[n]=r}return t}function mue(e,t=!1){if(Uint8Array.prototype.toBase64)return e.toBase64({alphabet:t?`base64url`:`base64`,omitPadding:t});let n=32768,r=[];for(let t=0;t<e.length;t+=n)r.push(String.fromCharCode.apply(null,e.subarray(t,t+n)));let i=btoa(r.join(``));return t?i.replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`):i}function hue(e,t=!1){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e,{alphabet:t?`base64url`:`base64`});if(t){if(e.includes(`+`)||e.includes(`/`))throw TypeError(`Invalid base64url`);e=e.replace(/-/g,`+`).replace(/_/g,`/`)}let n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}async function HN(e,t){let n=`SHA-${e.slice(-3)}`;return new Uint8Array(await crypto.subtle.digest(n,t))}var UN=class extends Error{static code=`ERR_JOSE_GENERIC`;code=`ERR_JOSE_GENERIC`;constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},WN=class extends UN{static code=`ERR_JWT_CLAIM_VALIDATION_FAILED`;code=`ERR_JWT_CLAIM_VALIDATION_FAILED`;claim;reason;payload;constructor(e,t,n=`unspecified`,r=`unspecified`){super(e,{cause:{claim:n,reason:r,payload:t}}),this.claim=n,this.reason=r,this.payload=t}},GN=class extends UN{static code=`ERR_JWT_EXPIRED`;code=`ERR_JWT_EXPIRED`;claim;reason;payload;constructor(e,t,n=`unspecified`,r=`unspecified`){super(e,{cause:{claim:n,reason:r,payload:t}}),this.claim=n,this.reason=r,this.payload=t}},KN=class extends UN{static code=`ERR_JOSE_ALG_NOT_ALLOWED`;code=`ERR_JOSE_ALG_NOT_ALLOWED`},qN=class extends UN{static code=`ERR_JOSE_NOT_SUPPORTED`;code=`ERR_JOSE_NOT_SUPPORTED`},JN=class extends UN{static code=`ERR_JWE_DECRYPTION_FAILED`;code=`ERR_JWE_DECRYPTION_FAILED`;constructor(e=`decryption operation failed`,t){super(e,t)}},YN=class extends UN{static code=`ERR_JWE_INVALID`;code=`ERR_JWE_INVALID`},XN=class extends UN{static code=`ERR_JWS_INVALID`;code=`ERR_JWS_INVALID`},ZN=class extends UN{static code=`ERR_JWT_INVALID`;code=`ERR_JWT_INVALID`},QN=class extends UN{static code=`ERR_JWK_INVALID`;code=`ERR_JWK_INVALID`},$N=class extends UN{static code=`ERR_JWKS_INVALID`;code=`ERR_JWKS_INVALID`},eP=class extends UN{static code=`ERR_JWKS_NO_MATCHING_KEY`;code=`ERR_JWKS_NO_MATCHING_KEY`;constructor(e=`no applicable key found in the JSON Web Key Set`,t){super(e,t)}},tP=class extends UN{[Symbol.asyncIterator]=async function*(){};static code=`ERR_JWKS_MULTIPLE_MATCHING_KEYS`;code=`ERR_JWKS_MULTIPLE_MATCHING_KEYS`;constructor(e=`multiple matching keys found in the JSON Web Key Set`,t){super(e,t)}},nP=class extends UN{static code=`ERR_JWKS_TIMEOUT`;code=`ERR_JWKS_TIMEOUT`;constructor(e=`request timed out`,t){super(e,t)}},gue=class extends UN{static code=`ERR_JWS_SIGNATURE_VERIFICATION_FAILED`;code=`ERR_JWS_SIGNATURE_VERIFICATION_FAILED`;constructor(e=`signature verification failed`,t){super(e,t)}};function rP(e){try{return hue(typeof e==`string`?e:PN.decode(e),!0)}catch(e){throw TypeError(`The input to be decoded is not correctly encoded.`,{cause:e})}}function iP(e){return mue(typeof e==`string`?NN.encode(e):e,!0)}function aP(e,t){if(!(e instanceof Uint8Array))throw TypeError(`${t} must be an instance of Uint8Array`)}function oP(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||Object.getPrototypeOf(t)===null}function sP(e){return oP(e)&&Array.isArray(e.keys)&&Array.from(e.keys).every(oP)}function cP(...e){let t=/* @__PURE__ */ new Set;for(let n of e)if(n)for(let e of Object.keys(n)){if(t.has(e))return!1;t.add(e)}return!0}function lP(e,t){if(e!==void 0)throw TypeError(`${t} can only be called once`)}function uP(e,t,n){try{return rP(e)}catch{throw new n(`Failed to base64url decode the ${t}`)}}function dP(e,t,n){try{return VN(e)}catch{throw new n(`The ${t} is not a valid base64url string`)}}function fP(e,t,n){let r;try{r=JSON.parse(FN.decode(rP(e)))}catch{throw new t(n)}if(!oP(r))throw new t(n);return r}const pP={__proto__:null,b64:!0},mP={__proto__:null};function hP(e,t){if(t!==void 0&&(!Array.isArray(t)||t.some(e=>typeof e!=`string`)))throw TypeError(`"${e}" option must be an array of strings`);return t===void 0?void 0:new Set(t)}function gP(e,t){let{crit:n}=t??{};if(Array.isArray(n)&&new Set(n).size!==n.length)throw new e(`"crit" (Critical) Header Parameter MUST NOT contain duplicate values`)}function _P(e,t,n,r,i){if(i.crit!==void 0&&r?.crit===void 0)throw new e(`"crit" (Critical) Header Parameter MUST be integrity protected`);if(!r||r.crit===void 0)return[];if(!Array.isArray(r.crit)||r.crit.length===0||r.crit.some(e=>typeof e!=`string`||e.length===0))throw new e(`"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present`);let a=n===void 0?t:{__proto__:null,...n,...t};for(let t of r.crit){if(!(t in a))throw new qN(`Extension Header Parameter "${t}" is not recognized`);if(!Object.hasOwn(i,t)||i[t]===void 0)throw new e(`Extension Header Parameter "${t}" is missing`);if(a[t]&&(!Object.hasOwn(r,t)||r[t]===void 0))throw new e(`Extension Header Parameter "${t}" MUST be integrity protected`)}return r.crit}function vP(e,t){if(t.includes(`b64`)){let t=e.b64;if(typeof t!=`boolean`)throw new XN(`The "b64" (base64url-encode payload) Header Parameter must be a boolean`);return t}return!0}function yP(e,t){let n,r;try{n=JSON.stringify(t),r=JSON.parse(n)}catch(t){throw new e(`JOSE Header is not valid JSON`,{cause:t})}if(!oP(r))throw new e(`JOSE Header is not a JSON object`);return[r,n]}const _ue=e=>e[Symbol.toStringTag],vue=(e,t,n)=>{let{alg:r}=e;if(t.use!==void 0){let e=n===`sign`||n===`verify`?`sig`:`enc`;if(t.use!==e)throw TypeError(`Invalid key for this operation, its "use" must be "${e}" when present`)}if(t.alg!==void 0&&t.alg!==r)throw TypeError(`Invalid key for this operation, its "alg" must be "${r}" when present`);if(Array.isArray(t.key_ops)){let r=n===`encrypt`||n===`decrypt`?e.ops?.[n===`encrypt`?0:1]:n;if(r&&!t.key_ops.includes(r))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${r}" when present`)}};async function bP(e,t,n){let{alg:r,secret:i}=e,a=n===`decrypt`||n===`sign`;if(i&&t instanceof Uint8Array)return t;let o,s;if(oP(t)){if(o=PP(t),typeof o.kty!=`string`)throw OP(r,t,i);if(!(i?o.kty===`oct`&&typeof o.k==`string`:o.kty!==`oct`&&(a?o.kty===`AKP`&&typeof o.priv==`string`||typeof o.d==`string`:o.d===void 0&&o.priv===void 0)))throw TypeError(i?`JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present`:`JSON Web Key for this operation must be a ${a?`private`:`public`} JWK`);if(vue(e,o,n),o.kty===`oct`)return rP(o.k);if(!Object.isFrozen(t)){let{key_ops:e}=t;Array.isArray(e)&&Object.freeze(e),Object.freeze(t)}}else{if(!TP(t))throw OP(r,t,i);let e=i?`secret`:a?`private`:`public`;if(t.type!==e&&(i||[`secret`,`public`,`private`].includes(t.type)))throw TypeError(`${_ue(t)} instances must be of type "${e}" for the ${r} algorithm`);if(CP(t))return t;if(s=t,s.type===`secret`)return s.export()}xP||=/* @__PURE__ */ new WeakMap;let c=t,l=xP.get(c);if(l?.[r])return l[r];if(l||xP.set(c,l={}),s&&typeof s.toCryptoKey==`function`){let t=s.type===`public`,n=yue[s.asymmetricKeyDetails?.namedCurve],i=e.resolve?.({crv:n,asymmetricKeyType:s.asymmetricKeyType})??e.subtle;return l[r]=s.toCryptoKey(i,t,e.usages[+!t])}return o??=s.export({format:`jwk`}),o.alg=r,l[r]=await IP(e,o)}let xP;const yue={__proto__:null,prime256v1:`P-256`,secp384r1:`P-384`,secp521r1:`P-521`};function SP(e){if(!CP(e))throw Error(`CryptoKey instance expected`)}const CP=e=>{if(e?.[Symbol.toStringTag]===`CryptoKey`)return!0;try{return e instanceof CryptoKey}catch{return!1}},wP=e=>e?.[Symbol.toStringTag]===`KeyObject`,TP=e=>CP(e)||wP(e);function EP(e,t,...n){if(n.length>2){let t=n.pop();e+=`one of type ${n.join(`, `)}, or ${t}.`}else n.length===2?e+=`one of type ${n[0]} or ${n[1]}.`:e+=`of type ${n[0]}.`;return t==null?e+=` Received ${t}`:typeof t==`function`&&t.name?e+=` Received function ${t.name}`:typeof t==`object`&&t&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}const DP=(e,...t)=>EP(`Key must be `,e,...t);function OP(e,t,n){let r=[`CryptoKey`,`KeyObject`,`JSON Web Key`];return n&&r.push(`Uint8Array`),TypeError(EP(`Key for the ${e} algorithm must be `,t,...r))}const kP=(e,t=`algorithm.name`)=>/* @__PURE__ */ TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`);function AP(e,t){if(t&&!e.usages.includes(t))throw TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}function jP(e,t){let{modulusLength:n}=t.algorithm;if(typeof n!=`number`||n<2048)throw TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}function MP(e,t,n){let r=e.algorithm;if(r.name!==t.name)throw kP(t.name);if(t.hash&&r.hash?.name!==t.hash)throw kP(t.hash,`algorithm.hash`);if(t.namedCurve&&r.namedCurve!==t.namedCurve)throw kP(t.namedCurve,`algorithm.namedCurve`);if(t.length!==void 0&&r.length!==t.length)throw kP(t.length,`algorithm.length`);AP(e,n)}function NP(e){return{__proto__:null,...e}}function PP(e){let t=NP(e);if(t.ext!==void 0&&typeof t.ext!=`boolean`)throw TypeError(`"ext" (Extractable) Parameter must be a boolean`);if(t.key_ops!==void 0){let e=t.key_ops,n=Array.isArray(e)?[...e]:void 0;if(!n||n.some(e=>typeof e!=`string`)||new Set(n).size!==n.length)throw TypeError(`"key_ops" (Key Operations) Parameter must be an array of unique strings`);t.key_ops=n}return t}function FP(e){if(e!==void 0&&typeof e!=`boolean`)throw TypeError(`"extractable" option must be a boolean`);return e}async function IP(e,t,n){if(!e.kty.includes(t.kty))throw new qN(`Invalid or unsupported JWK "alg" (Algorithm) Parameter value`);let r=e.resolve?.({kty:t.kty,crv:t.crv})??e.subtle,i=!!(t.d||t.priv),a={...t,ext:n??t.ext};return a.kty!==`AKP`&&delete a.alg,delete a.use,crypto.subtle.importKey(`jwk`,a,r,a.ext??!i,t.key_ops??e.usages[+!!i])}async function LP(e,t,n,r=!1){return e instanceof Uint8Array&&(e=await crypto.subtle.importKey(`raw`,e,t,r,[n])),MP(e,t,n),e}const RP=e=>crypto.getRandomValues(new Uint8Array(e.cekBits>>3));function zP(e,t){let n=e.byteLength<<3;if(n!==t)throw new YN(`Invalid Content Encryption Key length. Expected ${t} bits, got ${n} bits`)}const bue=e=>crypto.getRandomValues(new Uint8Array(e.ivBits>>3));function BP(e,t){if(t.length<<3!==e.ivBits)throw new YN(`Invalid Initialization Vector length`)}async function VP(e,t,n){if(!(t instanceof Uint8Array))throw TypeError(DP(t,`Uint8Array`));let r=e.cekBits>>1;return[await crypto.subtle.importKey(`raw`,t.subarray(r>>3),`AES-CBC`,!1,[n]),await crypto.subtle.importKey(`raw`,t.subarray(0,r>>3),{hash:`SHA-${r<<1}`,name:`HMAC`},!1,[`sign`]),r]}async function HP(e,t,n){return new Uint8Array((await crypto.subtle.sign(`HMAC`,e,t)).slice(0,n>>3))}async function xue(e,t,n,r,i){let[a,o,s]=await VP(e,n,`encrypt`),c=new Uint8Array(await crypto.subtle.encrypt({iv:r,name:`AES-CBC`},a,t));return{ciphertext:c,tag:await HP(o,LN(i,r,c,zN(i.length*8)),s),iv:r}}async function Sue(e,t){let n={name:`HMAC`,hash:`SHA-256`},r=await crypto.subtle.generateKey(n,!1,[`sign`,`verify`]),i=await crypto.subtle.sign(n,r,e);return crypto.subtle.verify(n,r,i,t)}async function Cue(e,t,n,r,i,a){let[o,s,c]=await VP(e,t,`decrypt`),l=await HP(s,LN(a,r,n,zN(a.length*8)),c);try{if(await Sue(i,l))return new Uint8Array(await crypto.subtle.decrypt({iv:r,name:`AES-CBC`},o,n))}catch{}throw new JN}async function UP(e,t,n,r,i){if(!CP(n)&&!(n instanceof Uint8Array))throw TypeError(DP(n,`CryptoKey`,`KeyObject`,`Uint8Array`,`JSON Web Key`));if(r?BP(e,r):r=bue(e),n instanceof Uint8Array&&zP(n,e.cekBits),e.cbc)return xue(e,t,n,r,i);let a=await LP(n,e.subtle,`encrypt`),o=new Uint8Array(await crypto.subtle.encrypt({additionalData:i,iv:r,name:`AES-GCM`,tagLength:128},a,t));return{ciphertext:o.subarray(0,-16),tag:o.subarray(-16),iv:r}}async function WP(e,t,n,r,i,a){if(!CP(t)&&!(t instanceof Uint8Array))throw TypeError(DP(t,`CryptoKey`,`KeyObject`,`Uint8Array`,`JSON Web Key`));if(!r)throw new YN(`JWE Initialization Vector missing`);if(!i)throw new YN(`JWE Authentication Tag missing`);if(!e.cbc&&i.length!==16)throw new YN(`Invalid Authentication Tag length`);if(BP(e,r),t instanceof Uint8Array&&zP(t,e.cekBits),e.cbc)return Cue(e,t,n,r,i,a);let o=await LP(t,e.subtle,`decrypt`);try{return new Uint8Array(await crypto.subtle.decrypt({additionalData:a,iv:r,name:`AES-GCM`,tagLength:128},o,LN(n,i)))}catch{throw new JN}}function GP(e){let t={__proto__:null};for(let n in e)t[n]={...e[n],alg:n};return t}const wue=[[`encrypt`,`wrapKey`],[`decrypt`,`unwrapKey`]],Tue=[[],[`deriveBits`]],KP=[[],[]];function qP(e){return{kty:[`RSA`],mode:`key-encryption`,subtle:{name:`RSA-OAEP`,hash:`SHA-${e}`},usages:wue,ops:[`wrapKey`,`unwrapKey`]}}function JP(e){return{kty:[`EC`,`OKP`],mode:e,subtle:{name:`ECDH`},resolve:({kty:e,crv:t,asymmetricKeyType:n})=>{if(t===`X25519`||n===`x25519`)return{name:`X25519`};if(e===`OKP`)throw new qN(`Invalid or unsupported JWK "alg" (Algorithm) Parameter value`);return{name:`ECDH`,namedCurve:t}},usages:Tue,ops:[void 0,`deriveBits`]}}function YP(e,t=!1){return{kty:[`oct`],mode:`key-wrapping`,secret:!0,subtle:{name:t?`AES-GCM`:`AES-KW`,length:e},usages:KP,ops:t?[`encrypt`,`decrypt`]:[`wrapKey`,`unwrapKey`]}}function XP(){return{kty:[`oct`],mode:`key-wrapping`,secret:!0,subtle:{name:`PBKDF2`},usages:KP,ops:[`deriveBits`,`deriveBits`]}}const ZP=GP({dir:{kty:[`oct`],mode:`direct-encryption`,secret:!0,subtle:{name:`AES-GCM`},usages:KP,ops:[`encrypt`,`decrypt`]},"RSA-OAEP":qP(1),"RSA-OAEP-256":qP(256),"RSA-OAEP-384":qP(384),"RSA-OAEP-512":qP(512),"ECDH-ES":JP(`direct-key-agreement`),"ECDH-ES+A128KW":JP(`key-agreement-with-key-wrapping`),"ECDH-ES+A192KW":JP(`key-agreement-with-key-wrapping`),"ECDH-ES+A256KW":JP(`key-agreement-with-key-wrapping`),A128KW:YP(128),A192KW:YP(192),A256KW:YP(256),A128GCMKW:YP(128,!0),A192GCMKW:YP(192,!0),A256GCMKW:YP(256,!0),"PBES2-HS256+A128KW":XP(),"PBES2-HS384+A192KW":XP(),"PBES2-HS512+A256KW":XP()}),Eue=[`encrypt`,`decrypt`];function QP(e,t=!1){return{kty:[`oct`],secret:!0,subtle:{name:t?`AES-CBC`:`AES-GCM`,length:e},usages:KP,ops:Eue,cekBits:e,ivBits:t?128:96,cbc:t}}const Due=GP({A128GCM:QP(128),A192GCM:QP(192),A256GCM:QP(256),"A128CBC-HS256":QP(256,!0),"A192CBC-HS384":QP(384,!0),"A256CBC-HS512":QP(512,!0)});function $P(e,t){throw new qN(`Invalid or unsupported "${e}" (JWE ${t}) header value`)}function eF(e){return(typeof e==`string`?ZP[e]:void 0)??$P(`alg`,`Algorithm`)}function tF(e){return e.mode===`key-wrapping`||e.mode===`key-encryption`||e.mode===`key-agreement-with-key-wrapping`}function nF(e){return(typeof e==`string`?Due[e]:void 0)??$P(`enc`,`Encryption Algorithm`)}function rF(e,t){if(e.algorithm.name!==`ECDH`&&e.algorithm.name!==`X25519`)throw TypeError(`CryptoKey does not support this operation, its algorithm.name must be ECDH or X25519`);AP(e,t)}async function Oue(e,t,n){let r=await LP(t,eF(e).subtle,`wrapKey`,!0),i=await crypto.subtle.importKey(`raw`,n,{hash:`SHA-256`,name:`HMAC`},!0,[`sign`]);return new Uint8Array(await crypto.subtle.wrapKey(`raw`,i,r,`AES-KW`))}async function kue(e,t,n){let r=await LP(t,eF(e).subtle,`unwrapKey`,!0),i=await crypto.subtle.unwrapKey(`raw`,n,r,`AES-KW`,{hash:`SHA-256`,name:`HMAC`},!0,[`sign`]);return new Uint8Array(await crypto.subtle.exportKey(`raw`,i))}function iF(e,t,n){MP(t,eF(e).subtle,n),jP(e,t)}async function aF(e,t,n,r){if(!(e instanceof Uint8Array)||e.length<8)throw new YN(`PBES2 Salt Input must be 8 or more octets`);if(!Number.isSafeInteger(n)||Math.sign(n)!==1)throw new YN(`PBES2 Count Input must be a positive integer`);let i=LN(VN(t),Uint8Array.of(0),e),a=parseInt(t.slice(13,16),10),o={hash:`SHA-${t.slice(8,11)}`,iterations:n,name:`PBKDF2`,salt:i},s=await LP(r,eF(t).subtle,`deriveBits`);return new Uint8Array(await crypto.subtle.deriveBits(o,s,a))}function oF(e){return LN(BN(e.length),e)}async function Aue(e,t,n){let r=t>>3,i=Math.ceil(r/32),a=new Uint8Array(i*32);for(let t=1;t<=i;t++){let r=await HN(`sha256`,LN(BN(t),e,n));a.set(r,(t-1)*32)}return a.slice(0,r)}async function sF(e,t,n,r,i=/* @__PURE__ */ new Uint8Array,a=/* @__PURE__ */ new Uint8Array){rF(e),rF(t,`deriveBits`);let o=LN(oF(VN(n)),oF(i),oF(a),BN(r));return Aue(new Uint8Array(await crypto.subtle.deriveBits({name:e.algorithm.name,public:e},t,e.algorithm.name===`X25519`?256:Math.ceil(parseInt(e.algorithm.namedCurve.slice(-3),10)/8)<<3)),r,o)}function cF(e){SP(e);let t=e.algorithm.namedCurve;if(t!==`P-256`&&t!==`P-384`&&t!==`P-521`&&e.algorithm.name!==`X25519`)throw new qN(`ECDH with the provided key is not allowed or not supported by your javascript runtime`)}function lF(e,t){let n=e[t];if(n!==void 0){if(typeof n!=`string`)throw new YN(`JOSE Header "${t}" (Agreement Party${t===`apu`?`U`:`V`}Info) invalid`);return uP(n,t,YN)}}function uF(e,t){if(e!==void 0&&t!==void 0&&e.byteLength===t.byteLength){for(let n=0;n<e.byteLength;n++)if(e[n]!==t[n])return;throw new YN(`JOSE Header "apu" and "apv" values must be distinct`)}}function jue(e){if(e===void 0)throw new YN(`JWE Encrypted Key missing`)}function dF(e){if(e!==void 0)throw new YN(`Encountered unexpected JWE Encrypted Key`)}function Mue(e){if(e!==void 0&&e!==1/0&&(!Number.isSafeInteger(e)||e<1))throw TypeError(`maxPBES2Count must be a positive safe integer or Infinity`)}async function Nue(e,t,n,r,i,a){let{alg:o}=e,s=e.mode;if(s===`direct-encryption`)return dF(r),n;let c=s===`direct-key-agreement`;switch(c?dF(r):jue(r),e.subtle.name){case`ECDH`:{let{epk:r}=i;if(!oP(r)||[`d`,`k`,`p`,`q`,`dp`,`dq`,`qi`,`oth`,`priv`].some(e=>Object.hasOwn(r,e)))throw new YN(`JOSE Header "epk" (Ephemeral Public Key) missing or invalid`);cF(n);let a=await IP(e,r),s=lF(i,`apu`),l=lF(i,`apv`);uF(s,l);let u=await sF(a,n,c?t.alg:o,c?t.cekBits:parseInt(o.slice(-5,-2),10),s,l);if(c)return u;n=u;break}case`RSA-OAEP`:return SP(n),iF(o,n,`decrypt`),new Uint8Array(await crypto.subtle.decrypt(`RSA-OAEP`,n,r));case`PBKDF2`:{if(typeof i.p2c!=`number`)throw new YN(`JOSE Header "p2c" (PBES2 Count) missing or invalid`);Mue(a);let e=a??1e4;if(i.p2c>e)throw new YN(`JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds`);if(typeof i.p2s!=`string`)throw new YN(`JOSE Header "p2s" (PBES2 Salt) missing or invalid`);n=await aF(uP(i.p2s,`p2s`,YN),o,i.p2c,n);break}case`AES-GCM`:{if(typeof i.iv!=`string`)throw new YN(`JOSE Header "iv" (Initialization Vector) missing or invalid`);if(typeof i.tag!=`string`)throw new YN(`JOSE Header "tag" (Authentication Tag) missing or invalid`);let e=uP(i.iv,`iv`,YN),t=uP(i.tag,`tag`,YN);if(e.byteLength!==12)throw new YN(`Invalid Initialization Vector length`);if(t.byteLength!==16)throw new YN(`Invalid Authentication Tag length`);return WP(nF(o.slice(0,-2)),n,r,e,t,/* @__PURE__ */ new Uint8Array)}}return kue(o.slice(-6),n,r)}async function Pue(e,t,n,r,i,a={}){let{alg:o,mode:s}=e,c=tF(e);if(i!==void 0&&!c)throw TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${o}`);let l=await bP(s===`direct-encryption`?t:e,n,`encrypt`);if(s===`direct-encryption`)return[l,void 0,void 0];let u=c?i??RP(t):void 0;u&&zP(u,t.cekBits);let d,f;switch(e.subtle.name){case`ECDH`:{cF(l);let{apu:n,apv:i}=a;n!==void 0&&aP(n,`"apu"`),i!==void 0&&aP(i,`"apv"`);let c=n??lF(r,`apu`),u=i??lF(r,`apv`);uF(c,u);let d;d=a.epk===void 0?(await crypto.subtle.generateKey(l.algorithm,!0,[`deriveBits`])).privateKey:await bP(e,a.epk,`decrypt`);let p=crypto.subtle,m=d;if(!m.extractable){if(typeof p.getPublicKey!=`function`)throw TypeError(`CryptoKey for "epk" must be extractable`);m=await p.getPublicKey(d,[])}let{x:h,y:g,crv:_,kty:v}=await p.exportKey(`jwk`,m),y=s===`direct-key-agreement`,b=await sF(l,d,y?t.alg:o,y?t.cekBits:parseInt(o.slice(-5,-2),10),c,u),x={x:h,crv:_,kty:v};if(v===`EC`&&(x.y=g),f={epk:x},n!==void 0&&(f.apu=iP(n)),i!==void 0&&(f.apv=iP(i)),y)return[b,void 0,f];l=b;break}case`RSA-OAEP`:SP(l),iF(o,l,`encrypt`),d=new Uint8Array(await crypto.subtle.encrypt(`RSA-OAEP`,l,u));break;case`PBKDF2`:{let{p2c:e=2048,p2s:t=crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))}=a;l=await aF(t,o,e,l),f={p2c:e,p2s:iP(t)};break}case`AES-GCM`:{let e=a.iv===void 0?crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(12)):a.iv;if(!(e instanceof Uint8Array))throw TypeError(`"iv" must be an instance of Uint8Array`);let t=await UP(nF(o.slice(0,-2)),u,l,e,/* @__PURE__ */ new Uint8Array);d=t.ciphertext,f={iv:iP(t.iv),tag:iP(t.tag)}}}if(d??=await Oue(o.slice(-6),l,u),!(d instanceof Uint8Array)||!d.byteLength)throw TypeError(`JWE key management algorithm did not produce an Encrypted Key`);return[u,d,f]}function fF(e,t){if(e.zip!==void 0&&e.zip!==`DEF`)throw new qN(`Unsupported JWE "zip" (Compression Algorithm) Header Parameter value.`);if(e.zip!==void 0&&!t?.zip)throw new YN(`JWE "zip" (Compression Algorithm) Header Parameter MUST be in a protected header.`)}function pF(e){if(typeof globalThis[e]>`u`)throw new qN(`JWE "zip" (Compression Algorithm) Header Parameter requires the ${e} API.`)}async function mF(e,t,n=1/0){let r=e.writable.getWriter();r.write(t).catch(()=>{}),r.close().catch(()=>{});let i=[],a=0,o=e.readable.getReader();for(;;){let{value:e,done:t}=await o.read();if(t)break;if(i.push(e),a+=e.byteLength,n!==1/0&&a>n)throw new YN(`Decompressed plaintext exceeded the configured limit`)}return LN(...i)}async function Fue(e){return pF(`CompressionStream`),mF(new CompressionStream(`deflate-raw`),e)}async function Iue(e,t){return pF(`DecompressionStream`),mF(new DecompressionStream(`deflate-raw`),e,t)}function Lue(e){let{protected:t,ciphertext:n,iv:r,tag:i,aad:a}=e,o;return t!==void 0&&(o=fP(t,YN,`JWE Protected Header is invalid`)),[o,uP(n,`ciphertext`,YN),r===void 0?void 0:uP(r,`iv`,YN),i===void 0?void 0:uP(i,`tag`,YN),dP((t??``)+(a===void 0?``:`.${a}`),`aad`,YN)]}function Rue(e){return[e&&hP(`keyManagementAlgorithms`,e.keyManagementAlgorithms),e&&hP(`contentEncryptionAlgorithms`,e.contentEncryptionAlgorithms),e?.crit,e?.maxPBES2Count,e?.maxDecompressedLength]}async function zue(e,t,n,r=Lue(e)){let[i,a,o,s,c]=r,{header:l,unprotected:u,aad:d}=e,f;if(l!==void 0||u!==void 0){if(!cP(i,l,u))throw new YN(`JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint`);f={...i,...l,...u}}else f=i??{};let[p,m,h,g,_]=t,{encrypted_key:v}=e;_P(YN,mP,h,i,f),fF(f,i);let{alg:y,enc:b}=f;if(typeof y!=`string`||!y)throw new YN(`missing JWE Algorithm (alg) in JWE Header`);let x=ZP[y];if(v===``&&(!x||!tF(x)))throw new YN(`JWE Encrypted Key incorrect type`);let S=x?.mode===`integrated-encryption`;if(!S&&(typeof b!=`string`||!b))throw new YN(`missing JWE Encryption Algorithm (enc) in JWE Header`);if(p&&!p.has(y)||!p&&y.startsWith(`PBES2`))throw new KN(`"alg" (Algorithm) Header Parameter value not allowed`);let ee;if(S){if(b!==void 0)throw new YN(`JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption`);if(o?.byteLength)throw new YN(`JWE Initialization Vector must be empty for integrated encryption`);if(s?.byteLength)throw new YN(`JWE Authentication Tag must be empty for integrated encryption`)}else{if(m&&!m.has(b))throw new KN(`"enc" (Encryption Algorithm) Header Parameter value not allowed`);ee=nF(b)}let te;if(v!==void 0)try{te=uP(v,`encrypted_key`,YN)}catch(e){if(!x||!tF(x))throw e;te=/* @__PURE__ */ new Uint8Array}let C=!1;typeof n==`function`&&(n=await n(i,e),C=!0);let ne=x??eF(y);tF(ne)&&te===void 0&&(te=/* @__PURE__ */ new Uint8Array);let w=await bP(ne.mode===`direct-encryption`?ee:ne,n,`decrypt`),T;if(ne.mode===`integrated-encryption`)T=await ne.decrypt(w,te,a,c,i,f);else{let e=ee,t;try{t=await Nue(ne,e,w,te,f,g),tF(ne)&&t instanceof Uint8Array&&t.byteLength<<3!==e.cekBits&&(t=RP(e))}catch(n){if(n instanceof TypeError||n instanceof YN||n instanceof qN)throw n;t=RP(e)}T=await WP(e,t,a,o,s,c)}if(f.zip===`DEF`){let e=_??25e4;if(e===0)throw new qN(`JWE "zip" (Compression Algorithm) Header Parameter is not supported.`);if(e!==1/0&&(!Number.isSafeInteger(e)||e<1))throw TypeError(`maxDecompressedLength must be 0, a positive safe integer, or Infinity`);T=await Iue(T,e).catch(e=>{throw e instanceof YN?e:new YN(`Failed to decompress plaintext`,{cause:e})})}return{plaintext:T,...i&&{protectedHeader:i},...d!==void 0&&{additionalAuthenticatedData:uP(d,`aad`,YN)},...u&&{sharedUnprotectedHeader:u},...l&&{unprotectedHeader:l},...C&&{key:w}}}async function Bue(e,t,n){if(e instanceof Uint8Array&&(e=PN.decode(e)),typeof e!=`string`)throw new YN(`Compact JWE must be a string or Uint8Array`);let{0:r,1:i,2:a,3:o,4:s,length:c}=e.split(`.`);if(c!==5)throw new YN(`Invalid Compact JWE`);return zue({ciphertext:o,iv:a||void 0,protected:r,tag:s||void 0,encrypted_key:i||void 0},t,n)}function hF(e,t,n){if(!cP(e,t,n))throw new YN(`JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint`)}function Vue(e,t,n=!1){if(!e[1]&&!e[2]&&!e[3])throw new YN(`either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()`);t!==void 0&&(e[8]=t?.crit);let[,r,i,a,o,s,c,l,u]=e;if(o!==void 0&&aP(o,`JWE Additional Authenticated Data`),s!==void 0&&aP(s,`JWE Content Encryption Key`),c!==void 0&&aP(c,`JWE Initialization Vector`),!n&&r!==void 0&&(r=yP(YN,r)[0],e[1]=r),i!==void 0&&(i=yP(YN,i)[0],e[2]=i),!n&&a!==void 0&&(a=yP(YN,a)[0],e[3]=a),l!==void 0&&!oP(l))throw TypeError(`JWE Key Management Parameters must be an object`);hF(r,i,a);let d={...r,...i,...a};gP(YN,r),_P(YN,mP,u,r,d),fF(d,r);let{alg:f,enc:p}=d;if(typeof f!=`string`||!f)throw new YN(`JWE "alg" (Algorithm) Header Parameter missing or invalid`);let m=ZP[f];if(m?.mode===`integrated-encryption`){if(p!==void 0)throw new YN(`JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption`);if(s!==void 0)throw TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${f}`);if(c!==void 0)throw TypeError(`setInitializationVector cannot be called with JWE "alg" (Algorithm) Header ${f}`);return[d,void 0,m]}if(typeof p!=`string`||!p)throw new YN(`JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid`);return[d,nF(p),m]}async function Hue(e,t,n){let[r,i,a]=t,[o,s,c,l,u,d,f,p,,m]=e,h=s,g=c,_=a??eF(r.alg),v,y,b;_.mode===`integrated-encryption`?b=await bP(_,n,`encrypt`):[b,v,y]=await Pue(_,i,n,r,d,p),y&&(m?g=g?{...g,...y}:y:h=h?{...h,...y}:y,hF(h,g,l));let x=h?iP(JSON.stringify(h)):``,S=u?.byteLength?iP(u):void 0,ee=VN(S?`${x}.${S}`:x),te=o;r.zip===`DEF`&&(te=await Fue(te).catch(e=>{throw new YN(`Failed to compress plaintext`,{cause:e})}));let C,ne,w;_.mode===`integrated-encryption`?[v,C]=await _.encrypt(b,te,ee,h,r,p):{ciphertext:C,tag:ne,iv:w}=await UP(i,te,b,f,ee);let T={ciphertext:iP(C)};return w&&(T.iv=iP(w)),ne&&(T.tag=iP(ne)),v?.byteLength&&(T.encrypted_key=iP(v)),S&&(T.aad=S),h&&(T.protected=x),l&&(T.unprotected=l),g&&(T.header=g),T}async function Uue(e,t,n){return Hue(e,Vue(e,n),t)}function Wue(e){return[e.protected,e.encrypted_key,e.iv,e.ciphertext,e.tag].join(`.`)}const gF=[[`verify`],[`sign`]];function _F(e){let t={name:`HMAC`,hash:`SHA-${e}`};return{kty:[`oct`],secret:!0,subtle:t,signing:t,usages:gF}}function vF(e,t){let n={name:t?`RSA-PSS`:`RSASSA-PKCS1-v1_5`,hash:`SHA-${e}`};return{kty:[`RSA`],subtle:n,signing:t?{...n,saltLength:t}:n,usages:gF,minRsaBits:2048}}function yF(e,t){return{kty:[`EC`],crv:e,subtle:{name:`ECDSA`,namedCurve:e},signing:{name:`ECDSA`,hash:`SHA-${t}`},usages:gF}}function bF(){let e={name:`Ed25519`};return{kty:[`OKP`],crv:`Ed25519`,subtle:e,signing:e,usages:gF}}function xF(e){let t={name:`ML-DSA-${e}`};return{kty:[`AKP`],subtle:t,signing:t,usages:gF}}const SF=GP({HS256:_F(256),HS384:_F(384),HS512:_F(512),RS256:vF(256),RS384:vF(384),RS512:vF(512),PS256:vF(256,32),PS384:vF(384,48),PS512:vF(512,64),ES256:yF(`P-256`,256),ES384:yF(`P-384`,384),ES512:yF(`P-521`,512),EdDSA:bF(),Ed25519:bF(),"ML-DSA-44":xF(44),"ML-DSA-65":xF(65),"ML-DSA-87":xF(87)});function CF(e){let t=typeof e==`string`?SF[e]:void 0;if(!t)throw new qN(`alg ${e} is not supported either by JOSE or your javascript runtime`);return t}function wF(e){return[e&&hP(`algorithms`,e.algorithms),e?.crit]}function Gue(e){return e===void 0?{}:fP(e,XN,`JWS Protected Header is invalid`)}function Kue(e){try{return VN(e)}catch{throw new XN(`JWS Compact Serialization payload must use only ASCII characters`)}}async function que(e,t,n,r,i){let{protected:a,header:o,payload:s}=e,c=i??Gue(a);if(!cP(c,o))throw new XN(`JWS Protected and JWS Unprotected Header Parameter names must be disjoint`);let l={...c,...o},u=vP(c,_P(XN,pP,t[1],c,l)),{alg:d}=l;if(typeof d!=`string`||!d)throw new XN(`JWS "alg" (Algorithm) Header Parameter missing or invalid`);if(t[0]&&!t[0].has(d))throw new KN(`"alg" (Algorithm) Header Parameter value not allowed`);if(u){if(typeof s!=`string`)throw new XN(`JWS Payload must be a string`)}else if(typeof s!=`string`&&!(s instanceof Uint8Array))throw new XN(`JWS Payload must be a string or an Uint8Array instance`);let f=u||typeof s!=`string`?s:r(s),p=!1;typeof n==`function`&&(n=await n(c,e),p=!0);let m=CF(d),h=LN(a===void 0?/* @__PURE__ */ new Uint8Array:VN(a),VN(`.`),typeof f==`string`?t[2]??=dP(f,`payload`,XN):f),g=uP(e.signature,`signature`,XN),_=await bP(m,n,`verify`),v=await LP(_,m.subtle,`verify`);m.minRsaBits&&jP(m.alg,v);let y=!1;try{y=await crypto.subtle.verify(m.signing,v,g,h)}catch{}if(!y)throw new gue;let b={payload:typeof f==`string`?uP(f,`payload`,XN):f};return a!==void 0&&(b.protectedHeader=c),o!==void 0&&(b.unprotectedHeader=o),p?[{...b,key:_},u]:[b,u]}async function TF(e,t,n){if(e instanceof Uint8Array&&(e=PN.decode(e)),typeof e!=`string`)throw new XN(`Compact JWS must be a string or Uint8Array`);let{0:r,1:i,2:a,length:o}=e.split(`.`);if(o!==3)throw new XN(`Invalid Compact JWS`);return que({payload:i,protected:r,signature:a},t,n,Kue)}async function EF(e,t,n){let[r]=await TF(e,wF(n),t);return r}const DF=e=>Math.floor(e.getTime()/1e3),Jue={s:1,m:60,h:3600,d:86400,w:604800,y:31557600},Yue=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,OF=`check_failed`;function kF(){throw TypeError(`Invalid time period format`)}function AF(e){typeof e!=`string`&&kF();let t=Yue.exec(e);(!t||t[4]&&t[1])&&kF();let n=parseFloat(t[2]),r=Math.round(n*Jue[t[3][0].toLowerCase()]);return Number.isFinite(r)||kF(),t[1]===`-`||t[4]===`ago`?-r:r}function jF(e,t){if(!Number.isFinite(t))throw TypeError(`Invalid ${e} input`);return t}function MF(e,t){if(typeof t!=`string`)throw TypeError(`"${e}" claim must be a string`)}function Xue(e){if(typeof e!=`string`&&(!Array.isArray(e)||Array.from(e).some(e=>typeof e!=`string`)))throw TypeError(`"aud" claim must be a string or an array of strings`)}function NF(e,t){return typeof e==`number`?jF(t,e):e instanceof Date?jF(t,DF(e)):DF(/* @__PURE__ */ new Date)+AF(e)}const PF=e=>{let t=e.toLowerCase();return e.includes(`/`)?t:`application/${t}`},Zue=(e,t)=>typeof e==`string`?t.includes(e):Array.isArray(e)?t.some(t=>e.includes(t)):!1;function FF(e,t,n=!1){let r=e[t];if(r!==void 0||n){if(typeof r!=`number`)throw new WN(`"${t}" claim must be a number`,e,t,`invalid`);return r}}function IF(e,t){throw new WN(`unexpected "${t}" claim value`,e,t,OF)}function LF(e,t,n={}){let r;try{r=JSON.parse(FN.decode(t))}catch{}if(!oP(r))throw new ZN(`JWT Claims Set must be a top-level JSON object`);let{typ:i}=n;if(i!==void 0&&(typeof e.typ!=`string`||PF(e.typ)!==PF(i)))throw new WN(`unexpected "typ" JWT header value`,r,`typ`,OF);let{requiredClaims:a=[],issuer:o,subject:s,audience:c,maxTokenAge:l}=n,u=[...a];l!==void 0&&u.push(`iat`),c!==void 0&&u.push(`aud`),s!==void 0&&u.push(`sub`),o!==void 0&&u.push(`iss`);for(let e of new Set(u.reverse()))if(!Object.hasOwn(r,e))throw new WN(`missing required "${e}" claim`,r,e,`missing`);o!==void 0&&!(Array.isArray(o)?o:[o]).includes(r.iss)&&IF(r,`iss`),s!==void 0&&r.sub!==s&&IF(r,`sub`),c!==void 0&&!Zue(r.aud,typeof c==`string`?[c]:c)&&IF(r,`aud`);let{clockTolerance:d}=n,f=0;if(typeof d==`string`)f=AF(d);else if(d!==void 0){if(typeof d!=`number`)throw TypeError(`Invalid clockTolerance option type`);f=d}jF(`clockTolerance option`,f);let{currentDate:p}=n,m=jF(`currentDate option`,DF(p===void 0?/* @__PURE__ */ new Date:p)),h=FF(r,`iat`,l!==void 0),g=FF(r,`nbf`);if(g!==void 0&&g>m+f)throw new WN(`"nbf" claim timestamp check failed`,r,`nbf`,OF);let _=FF(r,`exp`);if(_!==void 0&&_<=m-f)throw new GN(`"exp" claim timestamp check failed`,r,`exp`,OF);if(l!==void 0){let e=m-h,t=jF(`maxTokenAge option`,typeof l==`number`?l:AF(l));if(e-f>t)throw new GN(`"iat" claim timestamp check failed (too far in the past)`,r,`iat`,OF);if(e<-f)throw new WN(`"iat" claim timestamp check failed (it should be in the past)`,r,`iat`,OF)}return r}let RF;function zF(e){return RF.get(e)}function BF(e){let t=zF(e);for(let e of[`iat`,`nbf`,`exp`]){let n=t[e];if(typeof n==`number`&&!Number.isFinite(n))throw TypeError(`"${e}" claim must be a finite number`)}return NN.encode(JSON.stringify(t))}function VF(e,t){return zF(e)[t]}var HF=class{constructor(e={}){if(!oP(e))throw TypeError(`JWT Claims Set MUST be an object`);(RF||=/* @__PURE__ */ new WeakMap).set(this,structuredClone(e))}setIssuer(e){return MF(`iss`,e),zF(this).iss=e,this}setSubject(e){return MF(`sub`,e),zF(this).sub=e,this}setAudience(e){return Xue(e),zF(this).aud=e,this}setJti(e){return MF(`jti`,e),zF(this).jti=e,this}setNotBefore(e){return zF(this).nbf=NF(e,`setNotBefore`),this}setExpirationTime(e){return zF(this).exp=NF(e,`setExpirationTime`),this}setIssuedAt(e){let t=zF(this);return t.iat=e===void 0?DF(/* @__PURE__ */ new Date):typeof e==`string`?jF(`setIssuedAt`,DF(/* @__PURE__ */ new Date)+AF(e)):NF(e,`setIssuedAt`),this}};async function UF(e,t,n){let[r,i]=await TF(e,wF(n),t);if(!i)throw new ZN(`JWTs MUST NOT use unencoded payload`);let a=LF(r.protectedHeader,r.payload,n);return{...r,payload:a}}async function WF(e,t,n){let{plaintext:r,...i}=await Bue(e,Rue(n),t),{protectedHeader:a}=i,o=LF(a,r,n);for(let e of[`iss`,`sub`,`aud`])if(a[e]!==void 0&&(e===`aud`?JSON.stringify(a.aud)!==JSON.stringify(o.aud):a[e]!==o[e]))throw new WN(`replicated "${e}" claim header parameter mismatch`,o,e,`mismatch`);return{payload:o,...i}}async function Que(e,t,n){let[r,i,a,o]=e,s=``;if(i!==void 0){let e=yP(XN,i);i=e[0],s=iP(e[1])}if(a!==void 0&&(a=yP(XN,a)[0]),!i&&!a)throw new XN(`either setProtectedHeader or setUnprotectedHeader must be called before #sign()`);if(!cP(i,a))throw new XN(`JWS Protected and JWS Unprotected Header Parameter names must be disjoint`);let c={...i,...a};gP(XN,i);let l=vP(i,_P(XN,pP,o,i,c));l||n?.();let{alg:u}=c;if(typeof u!=`string`||!u)throw new XN(`JWS "alg" (Algorithm) Header Parameter missing or invalid`);let d=CF(u),f=``,p=r,m;if(l){let t=e[4];t?(f=t[0]??=iP(r),p=t[1]??=VN(f)):(f=iP(r),m=NN.encode(`${s}.${f}`))}m??=LN(VN(s),VN(`.`),p);let h=await LP(await bP(d,t,`sign`),d.subtle,`sign`);d.minRsaBits&&jP(d.alg,h);let g={signature:iP(new Uint8Array(await crypto.subtle.sign(d.signing,h,m))),payload:f};return i&&(g.protected=s),a&&(g.header=a),[g,l]}async function $ue(e,t,n,r,i){let[a]=await Que([e,t,void 0,n],r,i);return`${a.protected}.${a.payload}.${a.signature}`}const ede=HF;var GF=class extends ede{#e;setProtectedHeader(e){return lP(this.#e,`setProtectedHeader`),this.#e=e,this}async sign(e,t){return $ue(BF(this),this.#e,t?.crit,e,()=>{throw new ZN(`JWTs MUST NOT use unencoded payload`)})}};const tde=HF;var nde=class extends tde{#e=[void 0];#t;#n;#r;setProtectedHeader(e){return lP(this.#e[1],`setProtectedHeader`),this.#e[1]=e,this}setKeyManagementParameters(e){return lP(this.#e[7],`setKeyManagementParameters`),this.#e[7]=e,this}setContentEncryptionKey(e){return lP(this.#e[5],`setContentEncryptionKey`),this.#e[5]=e,this}setInitializationVector(e){return lP(this.#e[6],`setInitializationVector`),this.#e[6]=e,this}replicateIssuerAsHeader(){return this.#t=!0,this}replicateSubjectAsHeader(){return this.#n=!0,this}replicateAudienceAsHeader(){return this.#r=!0,this}async encrypt(e,t){let n=BF(this);this.#e[1]&&(this.#t||this.#n||this.#r)&&(this.#e[1]={...this.#e[1],iss:this.#t?VF(this,`iss`):void 0,sub:this.#n?VF(this,`sub`):void 0,aud:this.#r?VF(this,`aud`):void 0});let r=[...this.#e];return r[0]=n,Wue(await Uue(r,e,t))}};function KF(e=`JWK "alg" (Algorithm) Parameter`){throw new qN(`Invalid or unsupported ${e} value`)}function qF(e,t){return(typeof e==`string`?SF[e]??ZP[e]:void 0)??KF(t)}async function JF(e){if(wP(e)){if(e.type===`secret`)e=e.export();else return e.export({format:`jwk`})}if(e instanceof Uint8Array)return{kty:`oct`,k:iP(e)};if(!CP(e))throw TypeError(DP(e,`CryptoKey`,`KeyObject`,`Uint8Array`));if(!e.extractable)throw TypeError(`non-extractable CryptoKey cannot be exported as a JWK`);let t=await crypto.subtle.exportKey(`jwk`,e);delete t.ext,delete t.key_ops,delete t.use,t.kty!==`AKP`&&delete t.alg;for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}const YF=(e,t)=>{if(typeof e!=`string`||!e)throw new QN(`${t} missing or invalid`)};async function XF(e,t){let n;if(oP(e)){if(n=NP(e),typeof n.kty!=`string`)throw TypeError(DP(e,`CryptoKey`,`KeyObject`,`JSON Web Key`))}else if(TP(e))n=NP(await JF(e));else throw TypeError(DP(e,`CryptoKey`,`KeyObject`,`JSON Web Key`));if(t??=`sha256`,t!==`sha256`&&t!==`sha384`&&t!==`sha512`)throw TypeError(`digestAlgorithm must one of "sha256", "sha384", or "sha512"`);let r;switch(n.kty){case`AKP`:YF(n.alg,`"alg" (Algorithm) Parameter`),YF(n.pub,`"pub" (Public key) Parameter`),r={alg:n.alg,kty:n.kty,pub:n.pub};break;case`EC`:YF(n.crv,`"crv" (Curve) Parameter`),YF(n.x,`"x" (X Coordinate) Parameter`),YF(n.y,`"y" (Y Coordinate) Parameter`),r={crv:n.crv,kty:n.kty,x:n.x,y:n.y};break;case`OKP`:YF(n.crv,`"crv" (Subtype of Key Pair) Parameter`),YF(n.x,`"x" (Public Key) Parameter`),r={crv:n.crv,kty:n.kty,x:n.x};break;case`RSA`:YF(n.e,`"e" (Exponent) Parameter`),YF(n.n,`"n" (Modulus) Parameter`),r={e:n.e,kty:n.kty,n:n.n};break;case`oct`:if(typeof n.k!=`string`)throw new QN(`"k" (Key Value) Parameter missing or invalid`);r={k:n.k,kty:n.kty};break;default:throw new qN(`"kty" (Key Type) Parameter missing or unsupported`)}let i=VN(JSON.stringify(r));return iP(await HN(t,i))}function rde(e,t,n,r){let{kty:i,key_ops:a,ext:o,kid:s,alg:c,use:l,crv:u}=e;return(o===void 0||typeof o==`boolean`)&&(a===void 0||Array.isArray(a)&&a.every((e,t)=>typeof e==`string`&&a.indexOf(e)===t)&&a.includes(`verify`))&&t.kty.includes(i)&&(r===void 0||typeof r==`string`&&r===s)&&(c===void 0?i!==`AKP`:n===c)&&(l===void 0||l===`sig`)&&(!t.crv||u===t.crv)}async function ZF(e,t,n){let r=e.get(t)||e.set(t,{}).get(t),{alg:i}=n;if(r[i]===void 0){let e=IP(n,t,!0).then(e=>{if(e.type!==`public`)throw new $N(`JSON Web Key Set members must be public keys`);return r[i]=e,e}).catch(t=>{throw r[i]===e&&delete r[i],t});r[i]=e}return r[i]}function QF(e){let t;try{t=structuredClone(e)}catch{}if(!sP(t))throw new $N(`JSON Web Key Set malformed`);let n=t.keys.map(e=>{let t=NP(e);return Array.isArray(t.key_ops)&&(t.key_ops=[...t.key_ops]),t}),r=/* @__PURE__ */ new WeakMap;return Object.defineProperty(async(e,i)=>{let{alg:a,kid:o}={...e,...i?.header},s=typeof a==`string`?SF[a]:void 0;if(!s||s.secret)throw new qN(`Unsupported "alg" value for a JSON Web Key Set`);let c=t.keys.filter((e,t)=>rde(n[t],s,a,o)),{0:l,length:u}=c;if(!u)throw new eP;if(u!==1){let e=new tP;throw e[Symbol.asyncIterator]=async function*(){for(let e of c)try{yield await ZF(r,e,s)}catch{}},e}return ZF(r,l,s)},"jwks",{value:()=>structuredClone(t)})}function ide(){return typeof WebSocketPair<`u`||typeof navigator<`u`&&navigator.userAgent===`Cloudflare-Workers`||typeof EdgeRuntime<`u`&&EdgeRuntime===`vercel`}let $F;(typeof navigator>`u`||!navigator.userAgent?.startsWith?.(`Mozilla/5.0 `))&&($F=`jose/v6.2.12`);const ade=/* @__PURE__ */ Symbol();async function ode(e,t,n,r=fetch){let i=await r(e,{method:`GET`,signal:n,redirect:`manual`,headers:t}).catch(e=>{throw e.name===`TimeoutError`?new nP:e});if(i.status!==200)throw new UN(`Expected 200 OK from the JSON Web Key Set HTTP response`);try{return await i.json()}catch{throw new UN(`Failed to parse the JSON Web Key Set HTTP response as JSON`)}}const sde=/* @__PURE__ */ Symbol();function eI(e,t){return Number.isFinite(e)&&Date.now()<e+t}function tI(e,t,n){if(Number.isNaN(e))throw TypeError(`"${n}" option must not be NaN`);return typeof e==`number`?e:t}function cde(e,t){if(!(e instanceof URL))throw TypeError(`url must be an instance of URL`);let n=new URL(e.href).href,r=t??{},i=r.timeoutDuration;if(typeof i==`number`&&(!Number.isInteger(i)||i<0))throw TypeError(`"timeoutDuration" option must be a non-negative integer`);let a=typeof i==`number`?i:5e3,o=tI(r.cooldownDuration,3e4,`cooldownDuration`),s=tI(r.cacheMaxAge,6e5,`cacheMaxAge`),c=new Headers(r.headers);$F&&!c.has(`User-Agent`)&&c.set(`User-Agent`,$F),c.has(`accept`)||c.set(`accept`,`application/json, application/jwk-set+json`);let l=r[ade],u=r[sde],d,f,p=0,m=0,h;if(u&&typeof u==`object`){let{uat:e,jwks:t}=u;eI(e,s)&&sP(t)&&(d=e,h=QF(t))}let g=async()=>{if(f&&ide()&&(f=void 0),!f){let e=++p,t=f=ode(n,c,AbortSignal.timeout(a),l).then(t=>{let n=QF(t);if(e<=m)return;h=n;let r=Date.now();u&&(u.uat=r,u.jwks=t),d=r,m=e}).finally(()=>{f===t&&(f=void 0)})}await f};return Object.defineProperties(async(e,t)=>{(!h||!eI(d,s))&&await g();try{return await h(e,t)}catch(n){if(n instanceof eP&&!eI(d,o))return await g(),h(e,t);throw n}},{coolingDown:{get:()=>eI(d,o),enumerable:!0},fresh:{get:()=>eI(d,s),enumerable:!0},reload:{value:g,enumerable:!0},reloading:{get:()=>!!f,enumerable:!0},jwks:{value:()=>h?.jwks(),enumerable:!0}})}async function nI(e,t,n){if(!oP(e))throw TypeError(`JWK must be an object`);let r=PP(e),i=FP(n?.extractable),{alg:a}=r;if(t??=a,r.kty!==`oct`&&!t)throw TypeError(`"alg" argument is required when "jwk.alg" is not present`);switch(r.kty){case`oct`:if(typeof r.k!=`string`)throw TypeError(`missing "k" (Key Value) Parameter value`);return rP(r.k);case`AKP`:if(typeof a!=`string`||!a)throw TypeError(`missing "alg" (Algorithm) Parameter value`);if(t!==a)throw TypeError(`JWK alg and alg option value mismatch`);return IP(qF(t),r,i);case`RSA`:case`EC`:case`OKP`:return IP(qF(t),r,i);default:throw new qN(`Unsupported "kty" (Key Type) Parameter value`)}}function rI(e){let t;if(typeof e==`string`){let n=e.split(`.`);(n.length===3||n.length===5)&&([t]=n)}else if(typeof e==`object`&&e){if(`protected`in e)t=e.protected;else throw TypeError(`Token does not contain a Protected Header`)}let n=`Invalid Token or Protected Header formatting`;if(typeof t!=`string`||!t)throw TypeError(n);return fP(t,TypeError,n)}function iI(e){if(typeof e!=`string`)throw new ZN(`JWTs must use Compact JWS serialization, JWT must be a string`);let{1:t,length:n}=e.split(`.`);if(n===5)throw new ZN(`Only JWTs using Compact JWS serialization can be decoded`);if(n!==3)throw new ZN(`Invalid JWT`);if(!t)throw new ZN(`JWTs must contain a payload`);let r;try{r=rP(t)}catch{throw new ZN(`Failed to base64url decode the payload`)}let i;try{i=JSON.parse(FN.decode(r))}catch{throw new ZN(`Failed to parse the decoded payload as JSON`)}if(!oP(i))throw new ZN(`Invalid JWT Claims Set`);return i}function lde(e){let t=e?.modulusLength??2048;if(typeof t!=`number`||!Number.isInteger(t)||t<2048)throw new qN(`Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used`);return t}async function ude(e,t){let n=FP(t?.extractable),r=qF(e,`"alg" (Algorithm)`);r.secret&&KF(`"alg" (Algorithm)`);let i;if(r.resolve){let e=t?.crv??`P-256`;if(![`P-256`,`P-384`,`P-521`,`X25519`].includes(e))throw new qN(`Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, and X25519`);i=r.resolve({crv:e})}else{if(r.crv!==void 0&&t?.crv!==void 0&&t.crv!==r.crv)throw new qN(`Invalid or unsupported crv option provided, the only supported value for ${e} is ${r.crv}`);i=r.kty[0]===`RSA`?{...r.subtle,publicExponent:Uint8Array.of(1,0,1),modulusLength:lde(t)}:r.subtle}return crypto.subtle.generateKey(i,n??!1,[...r.usages[1],...r.usages[0]])}const aI=`key-list+jwt`,dde=G({keys:K(G({id:W,sealed:W}))}),oI=sS(G({keyId:rS,ownerId:rS,scopes:K(rS),expiresAt:Lx(Jx)})),sI=new TextEncoder,fde=async e=>new Uint8Array(await crypto.subtle.digest(`SHA-256`,sI.encode(e))),cI=async(e,t)=>{let n=await crypto.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),r=new Uint8Array(await crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:/* @__PURE__ */ new Uint8Array,info:sI.encode(`clankerauth key list\0${t}`)},n,512));return{id:iP(r.subarray(0,32)),key:await crypto.subtle.importKey(`raw`,r.subarray(32),`AES-GCM`,!1,[`encrypt`,`decrypt`])}},pde=async(e,t,n)=>{let{id:r,key:i}=await cI(e,t),a=crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(12)),o=await crypto.subtle.encrypt({name:`AES-GCM`,iv:a},i,sI.encode(hx(oI)(n))),s=new Uint8Array(a.length+o.byteLength);return s.set(a),s.set(new Uint8Array(o),a.length),{id:r,sealed:iP(s)}},mde=async(e,t,n)=>{let r=await cI(await fde(e),t),i=n.get(r.id);if(i===void 0)return;let a=new Uint8Array(rP(i)),o=await crypto.subtle.decrypt({name:`AES-GCM`,iv:a.subarray(0,12)},r.key,a.subarray(12));return dx(oI)(new TextDecoder().decode(o))},lI=Symbol.for(`@gjermundgaraba/effect-actions/Anyone`),uI=(e,t)=>{for(let n of e)if(n.caller!==lI&&(t===void 0||n.caller.key!==t.identity.key))throw Error(`Protected action '${n.name}' requires its matching authentication descriptor`)},dI=e=>W.pipe(Bx(I(e))),hde=G({path:K(q([W,Jx])),message:W}),gde=e_();var fI=class e extends AS()(`InvalidInput`,{message:dI(`The input does not match the action's input.`),issues:K(hde).pipe(Bx(I([])))},{httpApiStatus:400}){static fromSchemaError=({issue:t,message:n})=>new e({message:n,issues:gde(t).issues.map(e=>({path:(e.path??[]).map(e=>{let t=At(e)?e:e.key;return kt(t)?String(t):t}),message:e.message}))})},pI=class extends AS()(`Unauthenticated`,{message:dI(`Authentication is required.`)},{httpApiStatus:401}){};const mI=/^[\x21\x23-\x5B\x5D-\x7E]+$/,_de=W.check(qx(mI));var hI=class extends AS()(`Forbidden`,{message:dI(`Not allowed.`),scopes:vx(Px(_de))},{httpApiStatus:403}){};const gI=[pI,hI],vde=q(gI),_I=[fI,...gI];q(_I);const yde=/^[A-Za-z0-9_-]{1,128}$/,bde=(e,t)=>{if(!yde.test(t)||t===`then`)throw Error(`Invalid ${e}: ${t}`)},vI=(e,t,n,r=n)=>{let i=/* @__PURE__ */ new Map;for(let a of t){let t=n(a),o=r(a),s=i.get(t);if(s!==void 0){let n=s===o?``:`, claimed by ${s} and ${o}`;throw Error(`Duplicate ${e}: ${t}${n}`)}i.set(t,o)}},yI=(e,t)=>vI(e,t,e=>e.name),xde=(e,t,n)=>{let r=t.filter(e=>!n.includes(e));if(r.length>0)throw Error(`Unknown ${e}: ${r.join(`, `)}`)},bI=e=>fv(e)?bI(e.thunk()):e,xI=e=>{let t=bI(e);return dv(t)?t.types.flatMap(xI):[t]},Sde=e=>ov(e)?[e.literal]:cv(e)?e.enums.map(([,e])=>e):[void 0],SI=e=>e===void 0?[]:_x(e)?[e]:e,CI=(e,t=[])=>[.../* @__PURE__ */ new Set([..._I,...e.error,...t])],Cde=(e,t)=>CI(e,e.caller===lI||t.authentication===void 0?t.error:[...t.error,...t.authentication.error]),wI=e=>xI(Py(e)).flatMap(e=>{let t=uv(e)?e.propertySignatures.find(e=>e.name===`_tag`)?.type:void 0;return t===void 0?[]:xI(t).flatMap(Sde).filter(Et)}),wde=new Set(_I.flatMap(e=>wI(e.ast))),TI=(e,t)=>{let n=t.flatMap(e=>wI(e.ast)).find(e=>wde.has(e));if(n!==void 0)throw Error(`${e}: error _tag "${n}" is built in, and declared on every surface`)},Tde=(e,t,n)=>{yI(`action`,t);let r=SI(n.error);return TI(e,r),uI(t,n.authentication),{error:r,authentication:n.authentication}},Ede=()=>Math.random().toString(36).slice(2),EI=e=>{let t=F(`effect-actions/Implementation/${Ede()}`);return{key:t,layer:Wd(t,e)}};var DI=class e{actions;#e;#t;constructor(e,t,n){this.actions=e,this.#e=t,this.#t=n}static share(t,n){let r=e.own(n);return new e(t,r.#e,r.#t)}static runKey(t){return e.own(t).#e.key.key}static layerOf(t){let n=e.own(t);return t.actions.some(e=>e.caller!==lI)?Qd(n.#e.layer,n.#t.layer):n.#e.layer}static boundOf(t){let{actions:n}=t,r=e.own(t);return z(function*(){let e=yield*r.#e.key,t=n.some(e=>e.caller!==lI)?yield*r.#t.key:()=>R;return n.flatMap(n=>e.flatMap(([e,r])=>e===n?[[n,kde(n,r,t)]]:[]))})}static own(e){if(!(#e in e))throw Error(`Not an implementation made by this Action.implement: is effect-actions installed twice?`);return e}};const OI=e=>Sa(e),kI=(e,t,n)=>{let r=t.filter(e=>!n.includes(e));if(r.length>0){let t=new Set(n.map(({name:e})=>e));throw Error(`Listed in actions, but ${e}: ${r.map(({name:e})=>t.has(e)?`${e} (another contract)`:e).join(`, `)}`)}},AI=(e,t)=>t===void 0?e:(kI(`no implementation holds it`,t,e.flatMap(e=>e.actions)),e.flatMap(e=>{let n=e.actions.filter(e=>t.includes(e));return n.length===0?[]:n.length===e.actions.length?[e]:[DI.share(n,e)]})),Dde=(e,t,n,r)=>{r!==void 0&&kI(`the binding does not hold it`,r,t);let i=n.flatMap(e=>e.actions),a=AI(n,r??t.filter(e=>i.includes(e))),o=a.flatMap(e=>e.actions);if(o.length===0&&r===void 0&&n.length>0){let n=new Set(t.map(({name:e})=>e));throw Error(`No action of these implementations is in this ${e}: ${i.map(({name:e})=>n.has(e)?`${e} (another contract)`:e).join(`, `)||`none`}`)}return yI(`served action`,o),a},Ode=(e,t,n,r)=>{let i=Dde(e,t.actions,OI(n),r.actions),a=i.flatMap(e=>e.actions);return uI(a,t.authentication),vI(`middleware`,r.middleware??[],e=>e.key),{apps:i,actions:a,authentication:a.some(e=>e.caller!==lI)?t.authentication:void 0}},jI=e=>t=>{let[n,...r]=e.map(e=>DI.layerOf(e));return n===void 0?t:ef(t,Zd(n,...r))},MI=e=>H(Df(e,e=>DI.boundOf(e)),e=>e.flat()),kde=(e,t,n)=>{let r={"action.name":e.name,"action.read_only":e.readOnly},i=e.caller===lI?R:V(hp(e.caller),e=>mi(e)?R:B(new pI)),a=e.caller===lI?R:Mf(()=>n(e)),o=lx(bx(q(CI(e)))),s=(e,t)=>{let n=Ni(e.annotations);return[Au(e.error).annotate(n),Au(Mu(t)).annotate(n)]},c=U(function*(e){let t=[];for(let n of e.reasons)if(Eu(n)){let e=yield*Wf(o(n.error));t.push(...Yu(e)?[n]:s(n,e.cause))}else t.push(n);return yield*Ff(Du(t))});return n=>yp(i.pipe(Vf(a),Vf(Mf(()=>t(n))),Yf(c))).pipe(Yp(r),Fp(e.name,{attributes:r},{captureStackTrace:!1}))},NI={errors:`all`,onExcessProperty:`error`},PI=`effect-actions/media`,FI=G({data:fS,mimeType:W});FI.annotate({[PI]:`image`});const II=e=>e.annotations?.[PI]===`image`,LI=e=>II(e)&&e.encoding===void 0?`image`:void 0,Ade=jx(W,Cx),RI=e=>_x(e)?e:Reflect.ownKeys(e).length===0?Ade:G(e);function zI(e,t){bde(`action name`,e);let{caller:n,readOnly:r}=t;if(n!==lI&&!Zee(n))throw Error(`Missing caller: declare Action.Anyone or an identity service key`);if(n!==lI&&Fi(n))throw Error(`Invalid caller: an identity is a Context.Service, not a Context.Reference`);if(r!==!0&&r!==!1)throw Error(`Invalid readOnly: ${String(r)}`);let i={caller:n,name:e,description:t.description,input:RI(t.input??{}),success:t.success===void 0?Ox:RI(t.success),error:SI(t.error),readOnly:r,mcp:{...t.mcp}};return TI(`Action "${i.name}"`,i.error),i}const jde=()=>R,BI=e=>{if(!jt(e))throw Error(`Missing authorize: pass an authorization function, or Action.allowAll`);return e},Mde=e=>{if(e===void 0)throw Error(`Protected actions require authorize, or Action.allowAll`);return e},Nde=e=>{if(e!==void 0)throw Error(`A public-only target takes no authorize`);return jde},Pde=e=>EI(Tf(e)?H(e,BI):I(BI(e)));function VI(e,t,n){let r=Sa(e),i=r.map(e=>e.name);yI(`action`,r);let a=Pde(r.some(e=>e.caller!==lI)?Mde(n?.authorize):Nde(n?.authorize)),o=t=>{let n=jt(t)?Object.fromEntries(Array.isArray(e)?[]:r.map(({name:e})=>[e,t])):t;xde(`handlers`,Object.keys(n),i);let a=r.flatMap(e=>{let t=Object.hasOwn(n,e.name)?n[e.name]:void 0;return jt(t)?[[e,t]]:[]}),o=i.filter(e=>!a.some(([t])=>t.name===e));if(o.length>0)throw Error(`Missing handlers: ${o.join(`, `)}`);return a},s=Tf(t)?H(t,o):I(o(t));return new DI(r,EI(s),a)}const HI=e=>V(mp(e[`~provider`]),t=>t.descriptor===e?I(t):Lf(/* @__PURE__ */ Error(`Authentication "${e.name}": the binding's descriptor is not its provider's; build both from one descriptor`))),Fde=(e,t)=>V(hp(e[`~verified`]),n=>mi(n)?_p(t,e.identity,n.value):B(new pI)),UI=Ky(`httpApiStatus`),WI=e=>UI(e)??(fv(e)?WI(e.thunk()):void 0),GI=e=>{let t=WI(e.ast);if(t!==void 0)return[UI(e.ast)===void 0?e.annotate({httpApiStatus:t}):e];let n=bI(e.ast);return dv(n)&&n.checks===void 0&&n.encoding===void 0?n.types.flatMap(e=>GI(gx(e))):[e.annotate({httpApiStatus:422})]},Ide={write(e){switch(e._tag){case`Event`:{let t=``;return e.id!==void 0&&(t+=`id: ${e.id}\n`),e.event!==`message`&&(t+=`event: ${e.event}\n`),t+=`data: ${e.data.replace(/\n/g,`
24
- data: `)}\n`,t+`
25
- `}case`Retry`:return`retry: ${oo(e.duration)}\n\n`}}};function KI(e){let t=typeof e==`string`?fue(e):e;return e=>e.annotate({httpApiStatus:t})}const Lde=/*#__PURE__*/ (e=>Ox.pipe(KI(e)))(204),qI=e=>_x(e)&&P(e,`~effect/http-api/HttpApiSchema/Stream`),JI=e=>qI(e)&&e._tag===`StreamSse`,Rde=e=>qI(e)&&e._tag===`StreamUint8Array`,YI=`~effect/http-api/HttpApiSchema/WithHeaders`,zde=e=>P(e,`~effect/http-api/HttpApiSchema/WithHeadersValue`),XI=e=>_x(e)&&P(e,`~effect/http-api/HttpApiSchema/WithHeaders`);function Bde(e,t,n){return gx(e.ast,{[YI]:YI,schema:t,headers:n})}function ZI(e,t){return e.annotate({"~httpApiEncoding":{_tag:t._tag,contentType:t.contentType??Vde(t._tag)}})}function Vde(e){switch(e){case`Multipart`:return`multipart/form-data`;case`Json`:return`application/json`;case`FormUrlEncoded`:return`application/x-www-form-urlencoded`;case`Uint8Array`:return`application/octet-stream`;case`Text`:return`text/plain`}}function Hde(e){return t=>ZI(t,{_tag:`Json`,...e})}function Ude(e){return t=>ZI(t,{_tag:`FormUrlEncoded`,...e})}const QI=e=>{if(iv(e))return!0;let t=Py(e);if(iv(t))return!0;let n=e.encoding?.[0].to;return n!==void 0&&iv(n)},$I=/*#__PURE__*/ Ky(`~httpApiEncoding`),eL=/*#__PURE__*/ Ky(`~httpApiWithHeaders`),tL=/*#__PURE__*/ Ky(`httpApiStatus`),nL={_tag:`Json`,contentType:`application/json`},Wde={_tag:`FormUrlEncoded`,contentType:`application/x-www-form-urlencoded`};function Gde(e){return $I(e)??nL}function rL(e,t){return $I(e)||(WD(t)?nL:Wde)}function iL(e){let t=Gde(e);if(t._tag===`Multipart`)throw Error(`Multipart is not supported in response`);return t}function aL(e){return tL(e)??200}function oL(e){return XI(e)?tL(e.ast)??aL(e.schema.ast):aL(e.ast)}function sL(e){return XI(e)&&$I(e.ast)===void 0?iL(e.schema.ast):iL(e.ast)}function cL(e){return tL(e)??500}function lL(e){return XI(e)?tL(e.ast)??cL(e.schema.ast):cL(e.ast)}function uL(e){let t=e.toLowerCase().trim(),n=t.indexOf(`;`);return n===-1?t:t.slice(0,n).trim()}const dL=`~effect/http-api/HttpApiEndpoint`;function Kde(e){let t=[];for(let{schemas:n}of e.payload.values())t.push(...n);return t}function fL(e){let t=Array.from(e.success);return wa(t)?t:[Lde]}function pL(e){let t=new Set(e.error),n=e.disableCodecs?N:xL;for(let r of e.middlewares){let e=r;for(let r of e.error)t.add(n(r))}return Array.from(t)}const qde={[dL]:dL,pipe(){return ut(this,arguments)},prefix(e){return hL({...mL(this),path:yM(this.path,e)})},middleware(e){return hL({...mL(this),middlewares:/* @__PURE__ */ new Set([...this.middlewares,e])})},annotate(e,t){return hL({...mL(this),annotations:zi(this.annotations,e,t)})},annotateMerge(e){return hL({...mL(this),annotations:Ji(this.annotations,e)})}},mL=e=>({identifier:e.identifier,path:e.path,method:e.method,params:e.params,query:e.query,headers:e.headers,payload:e.payload,success:e.success,error:e.error,annotations:e.annotations,middlewares:e.middlewares,disableCodecs:e.disableCodecs});function hL(e){function t(){}return Object.setPrototypeOf(t,qde),Object.assign(t,e)}const gL=e=>(t,n,r)=>{let i=r?.disableCodecs??!1,a=i?N:MS;return hL({identifier:t,path:n,method:e,params:_L(r?.params,a),query:_L(r?.query,a),headers:_L(r?.headers,a),payload:vL(r?.payload,e,i),success:bL(r?.success,e,i),error:SL(r?.error,i),annotations:Ii(),middlewares:/* @__PURE__ */ new Set,disableCodecs:i})};function _L(e,t){if(e!==void 0)return _x(e)?t(e):t(G(e))}function vL(e,t,n){let r=/* @__PURE__ */ new Map;if(e===void 0)return r;let i=Array.isArray(e)?e:_x(e)?[e]:[G(e).pipe(Ude())],a=n?N:ML;for(let e of i){let n=rL(e.ast,t),i=uL(n.contentType),o=r.get(i);if(o){if(o.encoding._tag!==n._tag)throw Error(`Multiple payload encodings for content-type: ${n.contentType}`);if(o.encoding._tag===`Multipart`)throw Error(`Multiple multipart payloads for content-type: ${n.contentType}`);o.schemas.push(a(e,t))}else r.set(i,{encoding:n,schemas:[a(e,t)]})}return r}const yL=`effect/http-api/stream/failure`;function bL(e,t,n){if(e===void 0)return/* @__PURE__ */ new Set;let r=Sa(e);return CL(r,t),new Set(n?r:r.map(xL))}const xL=/*#__PURE__*/ yt(e=>qI(e)?e:XI(e)?Bde(e,qI(e.schema)?e.schema:jL(e.schema,sL(e)),MS(e.headers)):AL(e));function SL(e,t){if(e===void 0)return/* @__PURE__ */ new Set;let n=Sa(e);for(let e of n){let t=XI(e)?e.schema:e;if(qI(t))throw Error(`Streaming schemas are not supported in error responses`)}return TL(n,lL),new Set(t?n:n.map(xL))}function CL(e,t){let n=!1,r=/* @__PURE__ */ new Map;for(let i of e){let e=XI(i)?i.schema:i,a=oL(i);if(qI(e)){if(EL(e,t),n)throw Error(`Multiple streaming success responses are not supported`);n=!0;let i=wL(r,a);if(i.noContent)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);if(i.bufferedContentTypes.has(uL(e.contentType)))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`);r.set(a,{...i,stream:e})}else{let t=wL(r,a),n=QI(e.ast);if(t.stream!==void 0){if(n)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);let e=sL(i);if(uL(e.contentType)===uL(t.stream.contentType))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`)}n||t.bufferedContentTypes.add(uL(sL(i).contentType)),t.noContent=t.noContent||n}}TL(e,oL)}function wL(e,t){let n=e.get(t);return n===void 0&&(n={bufferedContentTypes:/* @__PURE__ */ new Set,noContent:!1},e.set(t,n)),n}function TL(e,t){let n=/* @__PURE__ */ new Map;for(let r of e){let e=t(r),i=eL(r.ast),a=XI(r)?r.schema:i?.body??r,o=QI(a.ast)?``:uL(qI(a)?a.contentType:sL(r).contentType),s=n.get(e);s===void 0&&(s={headerContentType:void 0,plainContentTypes:/* @__PURE__ */ new Set},n.set(e,s));let c=()=>/* @__PURE__ */ Error(`Cannot combine a response with headers with another response for status ${e} and content-type: ${o||`<no content>`}`);if(XI(r)||i!==void 0){if(s.headerContentType!==void 0)throw Error(`Cannot declare multiple responses with headers for status ${e}`);if(s.plainContentTypes.has(o))throw c();s.headerContentType=o}else{if(s.headerContentType===o)throw c();s.plainContentTypes.add(o)}}}function EL(e,t){if(t===`HEAD`)throw Error(`HEAD endpoints cannot declare streaming success responses`);if(JI(e)&&DL(e.events.ast))throw Error(`SSE event name is reserved: ${yL}`)}function DL(e){return OL(Py(e),/* @__PURE__ */ new Set)}function OL(e,t){if(t.has(e))return!1;if(t.add(e),dv(e))return e.types.some(e=>OL(e,t));if(fv(e))return OL(e.thunk(),t);if(!uv(e))return!1;let n=e.propertySignatures.find(e=>e.name===`event`);return n!==void 0&&kL(n.type,t)}function kL(e,t){if(t.has(e))return!1;t.add(e);let n=Py(e);return n===e?ov(e)?e.literal===yL:dv(e)?e.types.some(e=>kL(e,t)):fv(e)?kL(e.thunk(),t):!1:kL(n,t)}function AL(e){let t=iL(e.ast),n=eL(e.ast);return n===void 0?jL(e,t):e.annotate({"~httpApiWithHeaders":{...n,bodyCodec:jL(n.body,t),headersCodec:MS(n.headers)}})}function jL(e,t){switch(t._tag){case`Json`:return jS(e);case`FormUrlEncoded`:return MS(e);case`Text`:case`Uint8Array`:return e}}function ML(e,t){switch(rL(e.ast,t)._tag){case`Json`:return jS(e);case`FormUrlEncoded`:return MS(e);case`Text`:case`Uint8Array`:case`Multipart`:return e}}const NL=/*#__PURE__*/ gL(`POST`),PL=`~effect/http-api/HttpApi`,FL={[PL]:PL,pipe(){return ut(this,arguments)},add(...e){let t={...this.groups};for(let n of e)zn(t,n.identifier,n);return LL({...IL(this),groups:t})},addHttpApi(e){let t={...this.groups};for(let n of Object.keys(e.groups)){let r=e.groups[n];zn(t,n,r.annotateMerge(Ji(e.annotations,r.annotations)))}return LL({...IL(this),groups:t})},prefix(e){return LL({...IL(this),groups:ma(this.groups,t=>t.prefix(e))})},middleware(e){return LL({...IL(this),groups:ma(this.groups,t=>t.middleware(e))})},annotate(e,t){return LL({...IL(this),annotations:zi(this.annotations,e,t)})},annotateMerge(e){return LL({...IL(this),annotations:Ji(this.annotations,e)})}},IL=e=>({identifier:e.identifier,groups:e.groups,annotations:e.annotations}),LL=e=>{function t(){}return Object.setPrototypeOf(t,FL),Object.assign(t,e)},RL=e=>LL({identifier:e,groups:{},annotations:Ii()}),zL=(e,t)=>{let n=Object.values(e.groups);for(let r of n){let n=Ji(e.annotations,r.annotations);t.onGroup({group:r,mergedAnnotations:n});let i=Object.values(r.endpoints);for(let e of i)(!t.predicate||t.predicate({endpoint:e,group:r}))&&t.onEndpoint({group:r,endpoint:e,middleware:e.middlewares,mergedAnnotations:Ji(n,e.annotations),successes:BL(fL(e),oL),errors:BL(pL(e),lL)})}},BL=(e,t)=>{let n=/* @__PURE__ */ new Map;return e.forEach(r),n;function r(e){let r=XI(e)?e.schema:e;if(qI(r))return;let i=t(e),a=n.get(i);a===void 0?n.set(i,[e]):a.push(e)}};var VL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/AdditionalSchemas`)){},HL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/ParseOptions`)){},UL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/ParamsParseOptions`)){},WL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/QueryParseOptions`)){},GL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/HeadersParseOptions`)){},KL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/PayloadParseOptions`)){},qL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/SuccessParseOptions`)){},JL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/ErrorParseOptions`)){};const YL=e=>{let t=Vi(e,HL);return{params:Vi(e,UL)??t,query:Vi(e,WL)??t,headers:Vi(e,GL)??t,payload:Vi(e,KL)??t,success:Vi(e,qL)??t,error:Vi(e,JL)??t}},XL=/*#__PURE__*/ Ik({status:400}),ZL=/*#__PURE__*/ Ik({status:500}),QL=`~effect/http-api/HttpApiError/HttpApiSchemaError`;var $L=class e extends (/*#__PURE__*/ wte(`HttpApiSchemaError`)){[QL]=QL;get[vE](){return this.kind!==`Body`&&this.kind!==`ResponseHeaders`}static is(e){return P(e,QL)}static wrap(t,n){return Qp(n,n=>new e({kind:t,cause:n}))}name=`HttpApiSchemaError`;message=this.kind;[_A](){return I(this[`~effect/ErrorReporter/ignore`]?XL:ZL)}};const eR=`~effect/http-api/HttpApiMiddleware`,tR=`~effect/http-api/HttpApiMiddleware/Security`,nR=e=>P(e,tR),rR=()=>(e,t)=>{let n=Fn(),r;n!==0&&(In(2),r=new globalThis.Error,In(n));class i extends F()(e){}let a=i;if(Object.defineProperty(i,"stack",{get(){return r?.stack}}),a[eR]=eR,a.error=iR(t?.error),a.requiredForClient=t?.requiredForClient??!1,t?.security!==void 0){if(Object.keys(t.security).length===0)throw Error(`HttpApiMiddleware.Service: security object must not be empty`);a[tR]=tR,a.security=t.security}return a};function iR(e){return e===void 0?/* @__PURE__ */ new Set:new Set(Array.isArray(e)?e:[e])}const aR=(e,t)=>Vd(e,(e,n)=>qf(e,e=>$L.is(e)?t(e,n):B(e))),oR=/*#__PURE__*/ new Set;function sR(e){if(e===void 0)return oR;let t=vy(e.ast);return uv(t)&&t.indexSignatures.length===0?new Set(t.propertySignatures.map(e=>String(e.name))):void 0}function cR(e,t){if(t===void 0||!e.includes(`:`))return e;let n=sR(t);if(n===void 0)return e;let r=``,i=0,a=-1;for(let t=0;t<e.length;t++){let o=e[t];if(i>0||t===a){r+=o,o===`\\`?r+=e[++t]??``:o===`(`?i++:o===`)`&&i--;continue}if(o!==`:`){r+=o;continue}if(e[t+1]===`:`){r+=`::`,t++;continue}let s=/^:(\w+)/.exec(e.slice(t));if(s!==null&&n.has(s[1])){r+=s[0],t+=s[0].length-1;let n=e[t+1];n===`(`?a=t+1:n!==void 0&&!`/.-?`.includes(n)&&(r+=`(.*?)`)}else r+=`::`}return r}var lR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Identifier`)){},uR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Title`)){},dR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Version`)){},fR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Description`)){},pR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/License`)){},mR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/ExternalDocs`)){},hR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Servers`)){},gR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Format`)){},_R=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Summary`)){},vR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Deprecated`)){},yR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Override`)){};const bR=/*#__PURE__*/ Xi(`effect/http-api/OpenApi/Exclude`,{defaultValue:ht});var xR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Transform`)){};const SR={},CR=/*#__PURE__*/ new WeakMap,wR=e=>{if(Array.isArray(e))return e.map(wR);if(typeof e==`object`&&e&&!Object.isFrozen(e)){let t={};for(let n of Object.keys(e))zn(t,n,wR(e[n]));return t}return e};function TR(e,t,n){let r=qi(e,t);mi(r)&&n(r.value)}function ER(e,t){let n=t??SR,r=CR.get(n);r===void 0&&(r=/* @__PURE__ */ new WeakMap,CR.set(n,r));let i=r.get(e);if(i!==void 0)return wR(i);let a=DR(e,n);return r.set(e,wR(a)),a}function DR(e,t){let n={openapi:`3.1.0`,info:{title:`Api`,version:`0.0.1`},paths:{},components:{schemas:{},securitySchemes:{}},security:[],tags:[]},r=[],i=/* @__PURE__ */ new Set,a=/* @__PURE__ */ new Set,o=[];function s(e,t=`Json`){let n=t===`Text`?{type:`string`}:{};return r.push({_tag:`schema`,ast:LR(e,t),target:n}),n}TR(e.annotations,uR,e=>{n.info.title=e}),TR(e.annotations,dR,e=>{n.info.version=e}),TR(e.annotations,fR,e=>{n.info.description=e}),TR(e.annotations,pR,e=>{n.info.license=e}),TR(e.annotations,_R,e=>{n.info.summary=e}),TR(e.annotations,hR,e=>{n.servers=[...e]}),zL(e,{onGroup({group:e}){if(Wi(e.annotations,bR))return;let t={name:Bi(e.annotations,uR,()=>e.identifier)};TR(e.annotations,fR,e=>{t.description=e}),TR(e.annotations,mR,e=>{t.externalDocs=e}),TR(e.annotations,yR,e=>{for(let[n,r]of Object.entries(e))zn(t,n,r)}),TR(e.annotations,xR,e=>{t=e(t)}),n.tags.push(t)},onEndpoint({endpoint:e,group:t,mergedAnnotations:c,middleware:l}){if(Wi(c,bR))return;let u={tags:[Bi(t.annotations,uR,()=>t.identifier)],operationId:Bi(e.annotations,lR,()=>t.topLevel?e.identifier:`${t.identifier}.${e.identifier}`),parameters:[],security:[],responses:{}},d=sR(e.params),f=e.path.replace(/:(\w+)\??/g,(e,t)=>d===void 0||d.has(t)?`{${t}}`:e),p=e.method.toLowerCase(),m=p===`query`,h=m?`QUERY`:p;function g(e,t){for(let[n,{content:i,descriptions:a,headers:o,streamContent:c}]of e){let e=a.size>0?Array.from(a).join(` | `):t();zn(u.responses,n,{description:e});for(let e of o)r.push({_tag:`properties`,ast:e.ast,select:e=>String(e.name).toLowerCase()!==`content-type`,apply(e,t){let r=String(e.name).toLowerCase();u.responses[n].headers??={},zn(u.responses[n].headers,r,{schema:t,required:!e.isOptional})}});i!==void 0&&i.forEach((e,t)=>{e.forEach((e,r)=>{let i=Array.from(e,Gv),a=i.length===1?i[0]:new ty(i);u.responses[n].content??={},zn(u.responses[n].content,r,{schema:s(a,t)})})}),c!==void 0&&c.forEach((e,t)=>{u.responses[n].content??={},JI(e)?zn(u.responses[n].content,t,{schema:s(e.events.ast),"x-effect-stream":{encoding:`sse`,causeSchema:s(hS(e.error,oS()).ast),errorSchema:s(e.error.ast),failureEvent:MR}}):zn(u.responses[n].content,t,{schema:{type:`string`,format:`binary`},"x-effect-stream":{encoding:`uint8array`}})})}}function _(e,t){e&&r.push({_tag:`properties`,ast:e.ast,apply(e,n){u.parameters.push({name:String(e.name),in:t,schema:n,required:t===`path`||!e.isOptional})}})}TR(e.annotations,fR,e=>{u.description=e}),TR(e.annotations,_R,e=>{u.summary=e}),TR(e.annotations,vR,e=>{u.deprecated=e}),TR(e.annotations,mR,e=>{u.externalDocs=e}),l.forEach(e=>{if(nR(e))for(let[t,n]of Object.entries(e.security))v(t,n),u.security.push({[t]:[]})});function v(e,t){let r=zR(t);if(!Object.hasOwn(n.components.securitySchemes,e))zn(n.components.securitySchemes,e,r);else if(!ln(BR(n.components.securitySchemes[e]),BR(r)))throw new globalThis.Error(`Conflicting OpenAPI security scheme: ${e}`)}let y=WD(e.method);if(y){let t=/* @__PURE__ */ new Map;for(let n of Kde(e)){if(QI(n.ast))continue;let r=rL(n.ast,e.method),i=t.get(r.contentType);i===void 0?t.set(r.contentType,{encoding:r,schemas:[n]}):i.schemas.push(n)}if(t.size>0){let e={};for(let[n,{encoding:r,schemas:i}]of t){let t=i.map(Gv);zn(e,n,{schema:s(t.length===1?t[0]:new ty(t),r._tag)})}u.requestBody={content:e,required:!0}}}if(_(e.params,`path`),!y&&e.payload.size===1){let t=e.payload.values().next().value;_(t.schemas[0],`query`)}_(e.headers,`header`),_(e.query,`query`),g(NR(e),()=>`Success`),g(PR(pL(e),lL,FR),()=>`Error`);let b=`${p} ${f.replace(/\{[^}]+\}/g,`{}`)}`;if(i.has(b))throw new globalThis.Error(`Duplicate OpenAPI operation for ${e.method} ${f}`);i.add(b),Object.hasOwn(n.paths,f)||zn(n.paths,f,{});let x=()=>{let e=n.paths[f];return m?e[`x-oai-additionalOperations`]??={}:e};x()[h]=u,o.push(()=>{let t=x(),n=t[h];TR(e.annotations,yR,e=>{for(let[t,r]of Object.entries(e))zn(n,t,r)}),TR(e.annotations,xR,e=>{n=e(n)});let r=n.operationId;if(r!==void 0){if(a.has(r))throw new globalThis.Error(`Duplicate OpenAPI operationId: ${r}`);a.add(r)}t[h]=n})}}),TR(e.annotations,VL,e=>{e.forEach(e=>{let t=qy(e.ast);if(t!==void 0){if(Object.hasOwn(n.components.schemas,t))throw new globalThis.Error(`Duplicate component schema identifier: ${t}`);zn(n.components.schemas,t,s(e.ast))}})}),OR(r,t,n.components.schemas);for(let e of o)e();return Object.keys(n.components.schemas).forEach(e=>{if(!Tb.test(e))throw new globalThis.Error(`Invalid component schema key: ${e}`)}),TR(e.annotations,yR,e=>{for(let[t,r]of Object.entries(e))zn(n,t,r)}),TR(e.annotations,xR,e=>{n=e(n)}),n}function OR(e,t,n){if(!wa(e))return;let r=Zb(Na(e,e=>e.ast),t),i=Na(r.representations,(t,n)=>{let i=e[n];return i._tag===`schema`?t:kR(t,r.references,i.select)}),a=xae(Gae({representations:i,references:jR(i,r.references)},{onExcessProperty:`error`}));for(let t=0;t<e.length;t++){let n=e[t],r=a.schemas[t];if(n._tag===`schema`){Bn(n.target,r);continue}let o=i[t];if(o._tag!==`Objects`)throw new globalThis.Error(`Expected an object representation for HTTP properties`);let s=r.properties;for(let e of o.propertySignatures)n.apply(e,s[String(e.name)])}for(let[e,t]of Object.entries(a.definitions))zn(n,e,t)}function kR(e,t,n){let r=AR(e,t);return{_tag:`Objects`,propertySignatures:r._tag===`Objects`?r.propertySignatures.filter(e=>n?.(e)??!0).map(e=>({...e,name:String(e.name)})):[],indexSignatures:[],checks:[]}}function AR(e,t,n=/* @__PURE__ */ new Set){if(e._tag===`Suspend`)return AR(e.thunk,t,n);if(e._tag!==`Reference`||n.has(e.$ref))return e;let r=t[e.$ref];return r===void 0?e:AR(r,t,new Set(n).add(e.$ref))}function jR(e,t){let n={},r=/* @__PURE__ */ new WeakSet,i=[...e];function a(e){for(let t of e)t.representation?.schemas!==void 0&&i.push(...t.representation.schemas),t._tag===`FilterGroup`&&a(t.checks)}for(;i.length>0;){let e=i.pop();if(!r.has(e)){if(r.add(e),e._tag===`Reference`){if(Object.hasOwn(n,e.$ref))continue;let r=t[e.$ref];if(r===void 0)continue;zn(n,e.$ref,r),i.push(r)}else switch(a(e.checks),e._tag){case`Declaration`:i.push(...e.typeParameters);break;case`Suspend`:i.push(e.thunk);break;case`TemplateLiteral`:i.push(...e.parts);break;case`Arrays`:for(let t of e.elements)i.push(t.type);i.push(...e.rest);break;case`Objects`:for(let t of e.propertySignatures)i.push(t.type);for(let t of e.indexSignatures)i.push(t.parameter,t.type);break;case`Union`:i.push(...e.types)}}}return n}const MR=`effect/http-api/stream/failure`;function NR(e){return PR(fL(e),oL,FR)}function PR(e,t,n){let r=/* @__PURE__ */ new Map;return e.forEach(i),r;function i(e){let i=eL(e.ast),c=XI(e)?e.schema:i?.body??e,l=XI(e)?e.headers:i?.headersCodec,u=t(e),d=c.ast;qI(c)?s(c,u):QI(d)?a(u,n(e.ast)??n(d)??`<No Content>`):o(c,u,sL(e),n(e.ast)??n(d)),l!==void 0&&r.get(u).headers.push(l)}function a(e,t){let n=r.get(e);n===void 0?r.set(e,{descriptions:/* @__PURE__ */ new Set([t]),content:void 0,headers:[],streamContent:void 0}):t!==void 0&&n.descriptions.add(t)}function o(e,t,n,i){let a=r.get(t),{_tag:o,contentType:s}=n;if(a===void 0)r.set(t,{descriptions:new Set(i===void 0?[]:[i]),content:/* @__PURE__ */ new Map([[o,/* @__PURE__ */ new Map([[s,/* @__PURE__ */ new Set([e])]])]]),headers:[],streamContent:void 0});else if(i!==void 0&&a.descriptions.add(i),a.content===void 0)a.content=/* @__PURE__ */ new Map([[o,/* @__PURE__ */ new Map([[s,/* @__PURE__ */ new Set([e])]])]]);else{let t=a.content.get(o);if(t===void 0)a.content.set(o,/* @__PURE__ */ new Map([[s,/* @__PURE__ */ new Set([e])]]));else{let n=t.get(s);n===void 0?t.set(s,/* @__PURE__ */ new Set([e])):n.add(e)}}}function s(e,t){let n=r.get(t);n===void 0?r.set(t,{descriptions:/* @__PURE__ */ new Set,content:void 0,headers:[],streamContent:/* @__PURE__ */ new Map([[e.contentType,e]])}):n.streamContent===void 0?n.streamContent=/* @__PURE__ */ new Map([[e.contentType,e]]):n.streamContent.set(e.contentType,e)}}function FR(e){return Jie(e)??qy(e)}const IR=/*#__PURE__*/ W.annotate({format:`binary`});function LR(e,t){switch(t){case`Uint8Array`:return IR.ast;case`Text`:return tv(e)&&e.encoding===void 0?W.ast:e;case`Multipart`:e=RR(e)}return jb(e)}function RR(e){return tv(e)&&e.annotations?.representation?.id===`effect/http/PersistedFile`?IR.ast:typeof e?.recur==`function`?e.recur(RR):e}const zR=e=>{let t={};switch(TR(e.annotations,fR,e=>{t.description=e}),e._tag){case`Basic`:return{...t,type:`http`,scheme:`basic`};case`Http`:{let n=qi(e.annotations,gR).pipe(xi(e=>({bearerFormat:e})),yi);return{...t,type:`http`,scheme:e.scheme,...n}}case`ApiKey`:return{...t,type:`apiKey`,name:e.key,in:e.in}}},BR=e=>e.type===`http`?{...e,scheme:e.scheme.toLowerCase()}:e.in===`header`?{...e,name:e.name.toLowerCase()}:e,VR=(e,t)=>dM(U(function*(n){let r=yield*up(),i=[],a=Array.from(r.mapUnsafe.keys()).filter(e=>e.startsWith(`effect/http-api/HttpApiGroup/`)),o=Object.values(e.groups);for(let e of o){let t=r.mapUnsafe.get(e.key)?.routes;if(t===void 0){let t=a.length===0?`none`:a.join(`, `);return yield*Lf(`HttpApiGroup "${e.identifier}" not found (key: "${e.key}"). Did you forget to provide HttpApiBuilder.group(api, "${e.identifier}", ...)? Available groups: ${t}`)}i.push(...t)}if(yield*n.addAll(i),t?.openapiPath){let r=yt(e=>Hk(ER(e)));yield*n.add(`GET`,t.openapiPath,L(()=>r(e)))}})),HR=(e,t,n)=>Kd(z(function*(){let r=(yield*up()).pipe(Yi(gd)),i=e.groups[t],a=n(YR(i)),o=Tf(a)?yield*a:a,s=[];for(let t of o.handlers.values())s.push($R(e,i,t,r));return Ni(/* @__PURE__ */ new Map([[i.key,{routes:s,handlers:o.handlers}]]))})),UR=`~effect/http-api/HttpApiBuilder/Handlers`,WR=e=>{switch(e._tag){case`Http`:return H(Ij,t=>Rh(KR(t.headers.authorization,e.scheme)??``));case`ApiKey`:{let t=e.in===`header`?e.key.toLowerCase():e.key,n=G({[t]:W}),r=e.in===`query`?Bj(n):e.in===`cookie`?Rj(n):zj(n);return sp(r,{onFailure:()=>Rh(``),onSuccess:e=>Rh(e[t])})}case`Basic`:{let e={username:``,password:Rh(``)};return H(Ij,t=>{let n=KR(t.headers.authorization,GR);if(n===void 0)return e;let r=ca(Qm(n));if(r===void 0)return e;let i=r.indexOf(`:`);return i===-1?e:{username:r.slice(0,i),password:Rh(r.slice(i+1))}})}}},GR=`Basic`;function KR(e,t){let n=t.length;if(e===void 0||e.length<=n||e.charCodeAt(n)!==32||e.slice(0,n).toLowerCase()!==t.toLowerCase())return;let r=n+1;for(;e.charCodeAt(r)===32;)r++;return r===e.length?void 0:e.slice(r)}const qR=(e,t,n,r,i)=>{if(!Object.hasOwn(e.group.endpoints,t))throw Error(`HttpApiEndpoint "${t}" not found in HttpApiGroup "${e.group.identifier}"`);if(e.handlers.has(t))throw Error(`Handler for HttpApiEndpoint "${t}" is already registered in HttpApiGroup "${e.group.identifier}"`);let a=e.group.endpoints[t];return e.handlers.set(t,{endpoint:a,handler:n,isRaw:r,uninterruptible:i?.uninterruptible??!1}),e},JR={[UR]:UR,pipe(){return ut(this,arguments)},handle(e,t,n){return qR(this,e,t,!1,n)},handleAll(e){for(let[t,n]of Object.entries(e)){let e=typeof n==`function`?n:n.handler,r=typeof n==`function`?void 0:n.options;qR(this,t,e,!1,r)}return this},handleRaw(e,t,n){return qR(this,e,t,!0,n)}},YR=e=>{let t=Object.create(JR);return t.group=e,t.handlers=/* @__PURE__ */ new Map,t};function XR(e,t){let n=/* @__PURE__ */ new Map;return e.forEach(({encoding:e,schemas:r},i)=>{let a=q(r),o=lx(e._tag===`FormUrlEncoded`?NS(a):a,t);e._tag===`Multipart`?n.set(i,{_tag:`Multipart`,mode:e.mode,limits:e.limits,decode:o}):n.set(i,{_tag:e._tag,decode:o,nullOnEmpty:r.some(e=>nv(Py(e.ast)))})}),n}function ZR(e,t,n){let r=WD(t.method),i=r?uL(t.headers[`content-type`]??`application/json`):`application/x-www-form-urlencoded`,a=e.get(i);if(!a)return Bk(`Unsupported content-type: ${i}`,{status:415});let{_tag:o,decode:s}=a;switch(o){case`Multipart`:if(a.mode===`buffered`){let e=$f(t.multipart);return a.limits&&(e=pp(e,Aj(a.limits))),V(e,s)}return I(a.limits?WT(t.multipartStream,Aj(a.limits)):t.multipartStream);case`Json`:return V($f(t.text),e=>{if(e===``)return s(a.nullOnEmpty?null:void 0);try{return s(JSON.parse(e))}catch{return B(new ax(new Wg({message:`Expected a valid JSON body`})))}});case`Text`:return V($f(t.text),s);case`FormUrlEncoded`:{let e=r?H($f(t.urlParamsBody),mg):I(n);return V(e,s)}case`Uint8Array`:return V(H($f(t.arrayBuffer),e=>new Uint8Array(e)),s)}}function QR(e,t,n,r,i,a){let o=Ji(Ji(e.annotations,t.annotations),n.annotations),s=YL(o),c=fx(yz(n,s.headers),s.success),l=fx(bz(n,s.headers),s.error),u=RE(n.params,e=>lx(e,s.params)),d=RE(n.headers,e=>lx(e,s.headers)),f=RE(n.query,e=>lx(NS(e),s.query)),p=cz(n,s.success),m=sz(n,s.success,s.headers),h=n.payload.size>0&&!a?XR(n.payload,s.payload):void 0;return ez(t,n,r,z(function*(){let e=zS().context,r=Ui(e,Ij),a=Ui(e,uM),o=Ui(e,Lj),s={request:r,endpoint:n,group:t};if(u&&(s.params=yield*$L.wrap(`Params`,u(a.params))),d&&(s.headers=yield*$L.wrap(`Headers`,d(r.headers))),f&&(s.query=yield*$L.wrap(`Query`,f(o))),h){let e=ZR(h,r,o);if(Fk(e))return e;e!==void 0&&(s.payload=yield*$L.wrap(`Payload`,e))}let l=yield*i(s);if(Fk(l))return l;let g;m!==void 0&&zde(l)&&(g=l.headers,l=l.body);let _=yield*$L.wrap(`Body`,p?.(l,e)??(g===void 0?c(l):m.encodeBody(l)));if(m===void 0||g===void 0)return _;let v=yield*$L.wrap(`ResponseHeaders`,m.encodeHeaders.get(_.status)(g));return Jk(_,v)})).pipe($re,qf(e=>$L.is(e)?Lf(e):$f(l(e))),pp(r))}function $R(e,t,n,r){let i=n.endpoint;return _M(i.method,cR(i.path,i.params),QR(e,t,i,r,n.handler,n.isRaw),{uninterruptible:n.uninterruptible})}const ez=(e,t,n,r)=>{let i={group:e,endpoint:t};for(let e of t.middlewares){let t=e,a=Ui(n,t);r=(nR(t)?nz(t,a):a)(r,i)}return r},tz=/*#__PURE__*/ new WeakMap,nz=(e,t)=>{let n=tz.get(t);if(n!==void 0)return n;let r=Object.entries(e.security).map(([e,n])=>({decode:WR(n),middleware:t[e]}));if(r.length===0)return N;let i=U(function*(e,t){e=Qf(e,e=>new iz(e));let n;for(let i=0;i<r.length;i++){let{decode:a,middleware:o}=r[i],s=yield*Uf(V(a,n=>o(e,{credential:n,endpoint:t.endpoint,group:t.group})));if(ra(s)){if(az(s.failure))return yield*B(s.failure.error);n=s}else return s.success}return yield*Bf(n)});return tz.set(t,i),i},rz=`~effect/http-api/HttpApiBuilder/HandlerError`;var iz=class{[rz]=rz;error;constructor(e){this.error=e}};const az=e=>P(e,rz),oz=/*#__PURE__*/ ix(Fk);function sz(e,t,n){let r=/* @__PURE__ */ new Map,i=[];for(let t of e.success)XI(t)&&(r.set(oL(t),fx(t.headers,n)),qI(t.schema)||i.push(gz(t,n)));return r.size===0?void 0:{encodeBody:fx(i.length===0?Cx:i.length===1?i[0]:q(i),t),encodeHeaders:r}}function cz(e,t){let n=lz(e);if(n===void 0)return;let r=n.body,i=uz(e),a=oL(n.schema),o=r.contentType;if(Rde(r))return(e,t)=>kT(e)?I(Gk(WT(e,t),{status:a,contentType:o})):i?void 0:new ax(new Wg({message:`Expected a streaming response`}));let s=dz(r,t);return(e,t)=>kT(e)?I(Gk(WT(fz(e,s),t),{status:a,contentType:o})):i?void 0:new ax(new Wg({message:`Expected a streaming response`}))}function lz(e){for(let t of e.success){let e=XI(t)?t.schema:t;if(qI(e))return{schema:t,body:e}}}function uz(e){for(let t of e.success){let e=XI(t)?t.schema:t;if(_x(e)&&!qI(e))return!0}return e.success.size===0}function dz(e,t){let n=jS(hS(e.error,oS()));return{sseMode:e.sseMode,encodeEvents:fx(K(e.events),t),encodeCause:fx(sS(n),t)}}function fz(e,t){return e.pipe(t.sseMode===`data`?BT(e=>({id:void 0,event:`message`,data:e})):N,ise(e=>$f(t.encodeEvents(e))),sse(e=>jT(pz(e,t))),BT(hz),pse)}function pz(e,t){return t.encodeCause(e).pipe($f,H(e=>({id:void 0,event:mz,data:e})))}const mz=`effect/http-api/stream/failure`;function hz(e){return Ide.write({_tag:`Event`,event:e.event,id:e.id,data:e.data})}const gz=/*#__PURE__*/ xz(oL),_z=/*#__PURE__*/ xz(lL);function vz(e,t){return XI(e)?Cz({schema:e,status:lL(e),encoding:sL(e),body:e.schema,headers:e.headers,headersOptions:t,toPair:e=>e}):_z(e,t)}function yz(e,t){let n=fL(e).map(e=>gz(e,t));return n.length===1?n[0]:q(n)}function bz(e,t){let n=pL(e).map(e=>vz(e,t));return n.length===0?Cx:n.length===1?n[0]:q(n)}function xz(e){let t=/* @__PURE__ */ new WeakMap;return(n,r)=>{let i=eL(n.ast);if(i!==void 0)return Cz({schema:bx(n),status:e(i.body),encoding:iL(i.body.ast),body:i.bodyCodec,headers:i.headersCodec,headersOptions:r,toPair:i.transformation.encode});let a=XI(n)?n:n.ast,o=t.get(a);if(o!==void 0)return o;let s=XI(n)?n.schema:n,c=oz.pipe(zx(s,Sz(e,n)));return t.set(a,c),c}}function Sz(e,t){let n=XI(t)?t.schema:t;return z_({decode:(e,t)=>B(new Kg({message:`Encode only schema`},e,t)),encode:wz(e(t),sL(t),QI(n.ast))})}function Cz(e){let t=fx(e.body),n=fx(e.headers,e.headersOptions),r=wz(e.status,e.encoding,QI(e.body.ast)),i=e=>e.issue,a=z_({decode:(e,t)=>B(new Kg({message:`Encode only schema`},e,t)),encode:(a,o)=>{let s=e.toPair(a);return t(s.body,o).pipe(Qf(i),V(e=>r(e,o)),V(e=>H(Qf(n(s.headers),i),t=>Jk(e,t))))}});return oz.pipe(zx(e.schema,a))}function wz(e,t,n){switch(t._tag){case`Json`:return(r,i)=>{if(r===void 0||n)return I(Ik({status:e}));try{let n=JSON.stringify(r);return I(Bk(n,{status:e,contentType:t.contentType}))}catch{return B(new Wg({expected:`a JSON-serializable response body`},r,i))}};case`Text`:return n=>I(Bk(n,{status:e,contentType:t.contentType}));case`Uint8Array`:return n=>I(Rk(n,{status:e,contentType:t.contentType}));case`FormUrlEncoded`:return n=>I(Uk(n,{status:e}).pipe(Kk(`content-type`,t.contentType)))}}const Tz=`~effect/http-api/HttpApiGroup`,Ez={[Tz]:Tz,add(...e){let t={...this.endpoints};for(let n of e)zn(t,n.identifier,n);return Oz({...Dz(this),endpoints:t})},prefix(e){return Oz({...Dz(this),endpoints:ma(this.endpoints,t=>t.prefix(e))})},middleware(e){return Oz({...Dz(this),endpoints:ma(this.endpoints,t=>t.middleware(e))})},annotateMerge(e){return Oz({...Dz(this),annotations:Ji(this.annotations,e)})},annotate(e,t){return Oz({...Dz(this),annotations:zi(this.annotations,e,t)})},annotateEndpointsMerge(e){return Oz({...Dz(this),endpoints:ma(this.endpoints,t=>t.annotateMerge(e))})},annotateEndpoints(e,t){return Oz({...Dz(this),endpoints:ma(this.endpoints,n=>n.annotate(e,t))})},pipe(){return ut(this,arguments)}},Dz=e=>({identifier:e.identifier,topLevel:e.topLevel,endpoints:e.endpoints,annotations:e.annotations}),Oz=e=>{function t(){}return Object.setPrototypeOf(t,Ez),t.key=`effect/http-api/HttpApiGroup/${e.identifier}`,Object.assign(t,e)},kz=(e,t)=>Oz({identifier:e,topLevel:t?.topLevel??!1,endpoints:{},annotations:Ii()}),Az=`~effect/http-api/HttpApiSecurity`,jz={[Az]:Az,pipe(){return ut(this,arguments)}},Mz=/*#__PURE__*/ (e=>Object.assign(Object.create(jz),{_tag:`Http`,scheme:e.scheme,schemeLength:e.scheme.length,annotations:Ii()}))({scheme:`Bearer`}),Nz=e=>Object.assign(Object.create(jz),{_tag:`ApiKey`,key:e.key,in:e.in??`header`,annotations:Ii()}),Pz=/* @__PURE__ */ new Set([`Body`,`ResponseHeaders`]);var Fz=class extends rR()(`effect-actions/http/SchemaErrors`,{error:[fI]}){};const Iz=()=>aR(Fz,e=>B(Pz.has(e.kind)?e:fI.fromSchemaError(e.cause))),Lz=e=>(e??`/api`).split(`/`).filter(e=>e!==``),Rz=e=>`/${e.join(`/`)}`,zz=e=>e.join(`/`)||`/`,Bz=(e,t)=>{let n=kz(e,{topLevel:!0}),[r,...i]=t;return RL(`actions`).annotate(HL,{errors:`all`}).add(r===void 0?n:n.add(r,...i))},Vz=(e,t,n)=>NL(e.name,t,{payload:e.input.pipe(Hde()),success:e.success,error:n.flatMap(GI)}),Hz=(e,t=[])=>t.reduce((e,t)=>e.middleware(t),e);function Uz(e,t={}){let n=Tde(`ActionHttp binding`,e,t),r=Lz(t.prefix),i=n.authentication?.[`~middleware`],a=e.map(e=>{let t=i===void 0||e.caller===lI,a=Vz(e,Rz([...r,e.name]),Cde(e,n)).annotate(fR,e.description);return t?a:a.middleware(i)}),o=Bz(zz(r),a);return{actions:e,...n,prefix:Rz(r),api:o}}const Wz=e=>Md((t,n)=>aie(Rd(e,t,n),Ii())),Gz=()=>xM(H(up(),e=>{let t=Yi(gd)(e);return e=>gp(e,e=>Ji(t,e))})).layer;var Kz=class extends rR()(`effect-actions/ActionHttp/StepUp`){},qz=class extends rR()(`effect-actions/ActionHttp/JsonContentType`){};const Jz=()=>Vd(qz,e=>V(Ij,t=>t.headers[`content-type`]===void 0?I(Bk(`Unsupported content-type: none`,{status:415})):e));function Yz(e,t,n={}){let{apps:r,actions:i,authentication:a}=Ode(`HTTP binding`,e,t,n),o=Lz(e.prefix),s=zz(o),c=Bz(s,i.map(t=>{let r=Hz(Vz(t,Rz([...o,t.name]),CI(t,e.error)).middleware(qz).middleware(Fz),n.middleware);return t.caller===lI||a===void 0?r:r.middleware(Kz).middleware(a[`~middleware`])})).annotate(KL,NI),l=Yd(z(function*(){let e=yield*MI(r),t=a===void 0?Ud:yield*H(HI(a),e=>Zd(Vd(a[`~middleware`],e.middleware),Vd(Kz,e.stepUp))),i=yield*Df(n.middleware??[],e=>H(mp(e),t=>Vd(e,t))),o=Object.fromEntries(e.map(([e,t])=>[e.name,e=>t(e.payload)]));return HR(c,s,e=>e.handleAll(o)).pipe(ef([Iz(),Jz(),t,...i]),Wz)})).pipe(jI(r));return VR(c).pipe(ef(l),ef(Gz()))}const Xz=(e,t)=>Hk(mx(jS(e))(t),{status:UI(e.ast)??422}),Zz=(e,t)=>{let n=e.flatMap(GI).find(e=>cx(e)(t));return n===void 0?void 0:Xz(n,t)},Qz=/^[\x20\x21\x23-\x5B\x5D-\x7E]+$/,$z=(e,t)=>{let n=t.flatMap(([e,t])=>t===void 0?[]:[`${e}="${t.replace(/["\\]/g,`\\$&`)}"`]);return n.length===0?e:`${e} ${n.join(`, `)}`},eB=e=>$z(`Bearer`,e),tB=cx(vde),nB=(e,t)=>Ht(e,`Forbidden`)&&e.scopes!==void 0?eB([[`error`,`insufficient_scope`],[`scope`,e.scopes.join(` `)],[`resource_metadata`,t],[`error_description`,Qz.test(e.message)?e.message:void 0]]):void 0,rB={Unauthenticated:pI,Forbidden:hI},iB=e=>Xz(rB[e._tag],e),aB=(e,t)=>{let n=iB(e),r=nB(e,t);return r===void 0?n:Kk(n,`www-authenticate`,r)};var oB=class extends F()(`effect-actions/SteppedUp`){};const sB=e=>tB(e)&&(!Ht(e,`Forbidden`)||e.scopes!==void 0),cB=e=>ep(e,e=>sB(e)?V(hp(oB),t=>mi(t)?IE(t.value,fi(e)):R):R),lB=(e,t)=>z(function*(){let n=yield*PE(di()),r=yield*Wf(_p(e,oB,n)),i=yield*FE(n),a=Xu(r)&&(Nu(r.cause)||Pu(r.cause));return mi(i)&&!a?aB(i.value,t):yield*r}),uB=/^[ \t]*Bearer +(.*[^ \t])[ \t]*$/i,dB=e=>xi(_i(uB.exec(e??``)?.[1]),e=>Rh(e)),fB=e=>{let t=new URL(e.resource),n=new URL(t);return n.pathname=`/.well-known/oauth-protected-resource${t.pathname===`/`?``:t.pathname}`,n},pB=e=>({scope:e?.scopesRequired?.join(` `),metadataUrl:e===void 0?void 0:fB(e).href}),mB=e=>mi(dB(e)),hB=(e,t)=>eB([[`error`,t?`invalid_token`:void 0],[`scope`,e.scope],[`resource_metadata`,e.metadataUrl]]),gB=(e,t)=>{if(t!==void 0){if(!e)throw Error(`A protected resource is published only for a Bearer scheme`);if(!Tf(t)){for(let e of[`scopesSupported`,`scopesRequired`]){let n=t[e]?.find(e=>!mI.test(e));if(n!==void 0)throw Error(`Invalid scope in ${e}: "${n}"`)}if(new URL(t.resource).href.includes(`#`))throw Error(`A protected resource has no fragment: ${t.resource}`)}}},_B=(e,t)=>Jk(e,{...e.headers[`cache-control`]===void 0?{"cache-control":`no-store`}:{},...t!==void 0&&e.status===401&&e.headers[`www-authenticate`]===void 0?{"www-authenticate":t}:{}}),vB=(e,t)=>{let n=t?.authentication,r=n===void 0||SB(n.security);gB(r,t?.protectedResource);let i=pB(t?.protectedResource),a=n!==void 0&&!r?wB(n.security,n.name):hB(i,mB(t?.authorization));if(!tB(e)){let t=Zz(n?.error??[],e);if(t===void 0)throw Error(`Not a refusal, nor an error the authentication declares`);return _B(t,a)}return _B(r?aB(e,i.metadataUrl):iB(e),a)},yB=/\.well-known|[\t\n\r]/,bB=e=>{let t=fB(e),n=t.href.slice(t.origin.length),r=Hk({resource:e.resource,authorization_servers:e.authorizationServers,bearer_methods_supported:[`header`],scopes_supported:e.scopesSupported,resource_name:e.resourceName},{headers:{"access-control-allow-origin":`*`}}),i=e=>{let t=e.headers[`access-control-request-headers`];return Ik({status:204,headers:{"access-control-allow-origin":`*`,"access-control-allow-methods":`GET, HEAD, OPTIONS`,...t===void 0?{}:{"access-control-allow-headers":t,vary:`Access-Control-Request-Headers`}}})};return e=>V(Ij,a=>{let o=yB.test(a.url)&&URL.canParse(a.url,t.origin)&&new URL(a.url,t.origin).href.slice(t.origin.length)===n;return o&&(a.method===`GET`||a.method===`HEAD`)?I(r):o&&a.method===`OPTIONS`?I(i(a)):e})},xB=e=>{let t=pB(e);return{metadataUrl:t.metadataUrl,invalid:hB(t,!0),anonymous:hB(t,!1),published:e===void 0?void 0:bB(e)}},SB=e=>Ht(e,`Http`)&&e.scheme.toLowerCase()===`bearer`,CB=/^[\w.-]+$/,wB=(e,t)=>DE(e).pipe(kE(`Http`,({scheme:e})=>$z(e,[])),kE(`Basic`,()=>$z(`Basic`,[[`realm`,t]])),kE(`ApiKey`,()=>void 0),NE),TB=(e,t,...n)=>{let r=n[0]?.security??Mz,i=SI(n[0]?.error);if(!CB.test(e))throw Error(`Invalid authentication name: ${JSON.stringify(e)}, not an OpenAPI key`);if(TI(`Authentication "${e}"`,i),!Ht(r,`Http`)&&!Ht(r,`ApiKey`)&&!Ht(r,`Basic`))throw Error(`Authentication takes one native HttpApiSecurity scheme`);return{name:e,identity:t,security:r,error:i,"~provider":F(`effect-actions/Authentication/Provider/${e}`),"~middleware":rR()(`effect-actions/Authentication/Security/${e}`,{security:{[e]:r}}),"~verified":F(`effect-actions/Authentication/Verified/${e}`)}},EB=e=>Lh(e)?Bh(e)!==``:e.username!==``||Bh(e.password)!==``;function DB(e,t,n={}){let{security:r}=e,i=SB(r),a=n.protectedResource;gB(i,a);let o=Tf(a)?H(a,e=>(gB(i,e),xB(e))):I(xB(a)),s=new pI({message:i?`A bearer token is required.`:`A credential is required.`});return Wd(e[`~provider`],z(function*(){let{metadataUrl:n,invalid:a,anonymous:c,published:l}=yield*o;l!==void 0&&(yield*(yield*oM).addGlobalMiddleware(l));let u=Tf(t)?yield*t:t;if(!jt(u))return yield*Lf(/* @__PURE__ */ Error(`Missing verify: pass a verify function, or an Effect building one`));let d=e=>EB(e)?u(e):B(s),f=nM((e,t)=>I(Kk(t,`cache-control`,`no-store`))),p=t=>i?EB(t)?a:c:wB(r,e.name),m=t=>tB(t)?I(i?aB(t,n):iB(t)):Mf(()=>{let n=Zz(e.error,t);return n===void 0?Lf(t):I(n)}),h=(e,t,n)=>{let r=p(e);return lp(d(e),{onFailure:m,onSuccess:e=>_p(t,n,e)}).pipe(Cp(()=>f),iM((e,t)=>I(_B(t,r))))};return{descriptor:e,authenticate:d,middleware:{[e.name]:(t,{credential:n})=>h(n,t,e.identity)},stepUp:e=>i?Zf(e,sB,e=>I(aB(e,n))):e,http:((t,a)=>V(WR(r),r=>a&&!EB(r)?t:h(r,i?lB(t,n):t,e[`~verified`]))),route:(t=>V(WR(r),n=>h(n,Zf(t,tB,m),e.identity)))}}))}var OB=class e extends AS()(`InternalServerError`,{message:W},{httpApiStatus:500}){cause;static of=t=>{let n=new e({message:`Request could not be completed`});return n.cause=t,n}},kB=class extends AS()(`ServiceUnavailable`,{message:W},{httpApiStatus:503}){},AB=class e extends AS()(`ClientNotFound`,{clientId:W,message:W},{httpApiStatus:404}){static of=t=>new e({clientId:t,message:`No client ${t} is registered`})},jB=class e extends AS()(`ResourceNotFound`,{identifier:W,message:W},{httpApiStatus:404}){static of=t=>new e({identifier:t,message:`No resource ${t} exists`})},MB=class e extends AS()(`ApiKeyNotFound`,{keyId:W,message:W},{httpApiStatus:404}){static of=t=>new e({keyId:t,message:`No API key ${t} exists`})},NB=class e extends AS()(`ClientIsAutomatic`,{clientId:W,message:W},{httpApiStatus:409}){static of=t=>new e({clientId:t,message:`Client ${t} registered itself; revoke, block or delete it instead`})},PB=class e extends AS()(`OwnerExists`,{message:W},{httpApiStatus:409}){static of=()=>new e({message:`Setup already completed`})},FB=class extends AS()(`ProviderRefused`,{message:W},{httpApiStatus:400}){},IB=class extends AS()(`UnreadableRequest`,{message:W},{httpApiStatus:400}){};const LB=[kB,OB];var RB=class extends F()(`clankerauth/CurrentOwner`){};const zB=e=>TB(`clankerauth.OwnerSession`,RB,{security:Nz({in:`cookie`,key:e}),error:LB}),BB=zB(`better-auth.session_token`),VB=TB(`clankerauth.OwnerToken`,RB,{error:LB}),HB=e=>new URL(`/`,e).href,UB={read:`clankerauth:read`,write:`clankerauth:write`},WB=`Passwords have 8 to 128 characters`,GB=G({email:W.check(qx(/\S/u,{message:`Setup requires an email`})),password:W.check(Qx(8,{message:WB}),eS(128,{message:WB}))}),KB=Ix([`none`,`client_secret_basic`,`client_secret_post`]),qB=Ix([`web`,`native`]),JB=K(W).check(nS({message:`Choose unique Resources`})),YB=G({client_name:W,redirect_uris:K(W),resources:JB,token_endpoint_auth_method:KB,application_type:qB}),XB=G({client_id:W,client_name:W,redirect_uris:K(W),application_type:qB}),ZB=G({client_id:W}),QB=G({client_id:W,resource:yx(W)}),$B=G({client_id:W,blocked:Dx}),eV=G({onboarding:yx(Ix([`managed`,`dcr`,`cimd`])),blocked:yx(Dx),client_id:W,client_name:yx(W),redirect_uris:K(W),token_endpoint_auth_method:yx(W),application_type:yx(Lx(W)),scope:yx(W),grant_types:yx(K(W))}),tV=eV.pipe(Ax({client_secret:yx(W),client_secret_expires_at:yx(Ex)})),nV=G({identifier:W,name:W,scopes:K(W)}),rV=nV.pipe(Ax({builtIn:Dx})),iV=G({identifier:W,name:W.check(qx(/\S/u,{message:`Resources require a name`})),scopes:K(W.check(qx(/^\s*[\x21\x23-\x5B\x5D-\x7E]+\s*$/u,{message:`Resources require well-formed custom scopes`})))}),aV=G({identifier:W}),oV=G({resource:nV,created:Dx}),sV=G({client_id:W,resource:W}),cV=G({client_id:W,resources:JB}),lV=G({clientAccess:K(sV)}),uV=jx(W,K(W)),dV=jx(W,K(W).check(Qx(1,{message:`Select explicitly granted, currently available Resource scopes`}),nS({message:`Select explicitly granted, currently available Resource scopes`}))).check(Coe(1,{message:`Select at least one Resource and scope`})),fV=W.check(eS(100,{message:`Key names require 1–100 characters`}),qx(/\S/u,{message:`Key names require 1–100 characters`})),pV=bS,mV=G({client_id:W,resource:W,scopes:K(W),approvedAt:Lx(pV),refreshedAt:Lx(pV)}),hV=G({name:fV,permissions:dV,expiresAt:Lx(pV)}),gV=G({keyId:W}),_V=G({keyId:W,name:yx(fV),permissions:yx(dV),enabled:yx(Dx)}),vV=G({keyId:W,name:W,enabled:Dx,permissions:uV,expiresAt:Lx(pV),createdAt:pV}),yV={caller:lI},bV={caller:RB},xV=[zI(`setupStatus`,{description:`Check whether the issuer needs its first owner account.`,readOnly:!0,...yV,error:[OB],success:G({required:Dx})}),zI(`setupOwner`,{description:`Create the first owner account.`,readOnly:!1,...yV,error:[PB,FB,OB],input:GB,success:G({created:Dx}).pipe(KI(201))}),zI(`keyList`,{description:`The signed list a resource server verifies API keys against: one sealed entry per key granted on the resource, readable only with that key.`,readOnly:!0,...yV,error:[OB],input:G({resource:W}),success:G({list:W})})],SV=G({clients:K(eV),resources:K(rV),clientAccess:K(sV),connections:K(mV),email:W,issuer:W}),CV=[zI(`listClients`,{description:`List clients, resources, managed clients' resource access (what they may obtain), and every client's connections (what it holds).`,readOnly:!0,...bV,error:[OB],success:SV}),zI(`createClient`,{description:`Register a first-party OAuth client. Returns its secret once when confidential.`,readOnly:!1,...bV,error:[FB,OB],input:YB,success:tV.pipe(KI(201))}),zI(`updateClient`,{description:`Rename a first-party client or change its redirect URIs and application type.`,readOnly:!1,...bV,error:[AB,NB,FB,OB],input:XB,success:eV}),zI(`deleteClient`,{description:`Delete a client and its stored authorization. An automatic client can register again; block it to keep it out.`,readOnly:!1,...bV,error:[AB,OB],input:ZB,success:G({deleted:Dx})}),zI(`revokeClient`,{description:`Revoke a client’s stored authorization, for one resource or all. It must authorize again; an automatic client asks for consent.`,readOnly:!1,...bV,error:[AB,OB],input:QB,success:G({revoked:Dx})}),zI(`blockClient`,{description:`Block or unblock OAuth authorization for a client.`,readOnly:!1,...bV,error:[AB,OB],input:$B,success:G({blocked:Dx})}),zI(`rotateClientSecret`,{description:`Rotate a confidential client secret. Returns the new secret once.`,readOnly:!1,...bV,error:[AB,NB,FB,OB],input:ZB,success:tV}),zI(`setClientAccess`,{description:`Set the resources a managed client may obtain. Removing one revokes its authorization for it. Automatic clients may ask for any resource with consent.`,readOnly:!1,...bV,error:[AB,NB,OB],input:cV,success:lV}),zI(`getResource`,{description:`Get one resource and its scopes by identifier.`,readOnly:!0,...bV,error:[jB,OB],input:aV,success:rV}),zI(`putResource`,{description:`Create an OAuth resource, or update the one with its identifier, to exactly these name and scopes.`,readOnly:!1,...bV,error:[FB,OB],input:iV,success:oV}),zI(`deleteResource`,{description:`Delete a resource, its client access and every client’s authorization for it. API-key permissions are retained; recreating the resource restores them.`,readOnly:!1,...bV,error:[jB,OB],input:aV,success:G({deleted:Dx})}),zI(`listApiKeys`,{description:`List API key metadata without secret values.`,readOnly:!0,...bV,error:[OB],success:G({keys:K(vV)})}),zI(`createApiKey`,{description:`Create a scoped API key. Returns its secret once.`,readOnly:!1,...bV,error:[FB,OB],input:hV,success:vV.pipe(Ax({key:W}),KI(201))}),zI(`updateApiKey`,{description:`Update an API key’s name, permissions or enabled state.`,readOnly:!1,...bV,error:[MB,FB,OB],input:_V,success:vV}),zI(`deleteApiKey`,{description:`Delete an API key.`,readOnly:!1,...bV,error:[MB,OB],input:gV,success:G({deleted:Dx})})],wV=[.../* @__PURE__ */ new Set([...[...xV,...CV].flatMap(e=>e.error),...LB,IB])],TV=e=>Uz([...CV,...xV],{authentication:e});TV(BB);const EV=Uz(CV,{prefix:`/api/owner`,authentication:VB});var DV=/* @__PURE__ */ e({NodeSqliteDialect:()=>NV}),OV=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},kV=class{#e;#t=new jV;#n;#r;constructor(e){this.#e={...e}}async init(){this.#n=this.#e.database,this.#r=new AV(this.#n),this.#e.onCreateConnection&&await this.#e.onCreateConnection(this.#r)}async acquireConnection(){return await this.#t.lock(),this.#r}async beginTransaction(e){await e.executeQuery(d.raw(`begin`))}async commitTransaction(e){await e.executeQuery(d.raw(`commit`))}async rollbackTransaction(e){await e.executeQuery(d.raw(`rollback`))}async releaseConnection(){this.#t.unlock()}async destroy(){this.#n?.close()}},AV=class{#e;constructor(e){this.#e=e}executeQuery(e){let{sql:t,parameters:n}=e,r=this.#e.prepare(t),i=n;if(r.columns().length>0)return Promise.resolve({rows:r.all(...i)});let{changes:a,lastInsertRowid:o}=r.run(...i);return Promise.resolve({rows:[],numAffectedRows:BigInt(a),insertId:typeof o==`bigint`?o:BigInt(o)})}async*streamQuery(){throw Error(`Streaming query is not supported by SQLite driver.`)}},jV=class{#e;#t;async lock(){for(;this.#e!==void 0;)await this.#e;this.#e=new Promise(e=>{this.#t=e})}unlock(){let e=this.#t;this.#e=void 0,this.#t=void 0,e?.()}},MV=class extends r{getCurrentParameterPlaceholder(){return`?`}getLeftIdentifierWrapper(){return`"`}getRightIdentifierWrapper(){return`"`}getAutoIncrement(){return`autoincrement`}},NV=class{#e;constructor(e){this.#e={...e}}createDriver(){return new kV(this.#e)}createQueryCompiler(){return new MV}createAdapter(){return new OV}createIntrospector(e){return n(e)}};const PV=e=>{let t=lx(e);return e=>Qf(t(e),OB.of)};function FV(e){return(n,...r)=>Af({try:async()=>(await t(n,...r).execute(e)).rows,catch:OB.of})}const IV=Gp(`Database.transaction`)(function*(e,t){let n=yield*Af({try:()=>e.startTransaction().execute(),catch:OB.of}),r=yield*Wf(t(FV(n))),i=np(Af({try:()=>n.rollback().execute(),catch:OB.of})),a=Af({try:()=>n.commit().execute(),catch:OB.of}).pipe(ep(()=>i));return yield*Yu(r)?a:i,yield*r},jp);async function LV(e){let n=new st(e);try{n.exec(`PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000;`);let e=new i({dialect:new NV({database:n})});return await t`SELECT 1`.execute(e),{kysely:e,sql:FV(e),close:()=>e.destroy()}}catch(e){throw n.close(),e}}var RV=class e extends F()(`clankerauth/Database`){static layer=t=>Wd(e,z(function*(){yield*Rf(()=>mee(dee(t),{recursive:!0,mode:448}));let e=yield*bp(Af(()=>LV(t)),e=>kf(()=>e.close()));return{kysely:e.kysely,sql:e.sql,transaction:t=>IV(e.kysely,t)}}))};const zV=import(
26
- /* @vite-ignore */
27
- /* webpackIgnore: true */
28
- `node:async_hooks`).then(e=>e.AsyncLocalStorage).catch(e=>{if(`AsyncLocalStorage`in globalThis)return globalThis.AsyncLocalStorage;if(typeof window<`u`)return null;throw console.warn(`[better-auth] Warning: AsyncLocalStorage is not available in this environment. Some features may not work as expected.`),console.warn(`[better-auth] Please read more about this warning at https://better-auth.com/docs/installation#mount-handler`),console.warn(`[better-auth] If you are using Cloudflare Workers, please see: https://developers.cloudflare.com/workers/configuration/compatibility-flags/#nodejs-compatibility-flag`),e});async function BV(){let e=await zV;if(e===null)throw Error(`getAsyncLocalStorage is only available in server code`);return e}const VV=()=>g().context.endpointContextAsyncStorage,HV=async()=>{let e=VV();if(e)return e;let t=await BV(),n=g().context;return n.endpointContextAsyncStorage??=new t};function UV(){return m()}function WV(){let e=UV();if(!e)throw Error("No auth context found. Please make sure you are calling this function within a `runWithEndpointContext` callback.");return e}async function GV(e,t){return(await HV()).run(e,t)}const KV=async()=>{let e=g(),t=e.context.requestStateAsyncStorage;if(t)return t;let n=await BV();return e.context.requestStateAsyncStorage??=new n,e.context.requestStateAsyncStorage};async function qV(){return(await KV()).getStore()!==void 0}async function JV(){let e=(await KV()).getStore();if(!e)throw Error("No request state found. Please make sure you are calling this function within a `runWithRequestState` callback.");return e}async function YV(e,t){return(await KV()).run(e,t)}function XV(e){let t=Object.freeze({});return{get ref(){return t},async get(){let n=await JV();if(!n.has(t)){let r=await e();return n.set(t,r),r}return n.get(t)},async set(e){(await JV()).set(t,e)}}}function ZV(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{code:e,message:t,toString:()=>e}]))}const Y=ZV({USER_NOT_FOUND:`User not found`,FAILED_TO_CREATE_USER:`Failed to create user`,FAILED_TO_CREATE_SESSION:`Failed to create session`,FAILED_TO_UPDATE_USER:`Failed to update user`,FAILED_TO_GET_SESSION:`Failed to get session`,INVALID_PASSWORD:`Invalid password`,INVALID_EMAIL:`Invalid email`,INVALID_EMAIL_OR_PASSWORD:`Invalid email or password`,INVALID_USER:`Invalid user`,SOCIAL_ACCOUNT_ALREADY_LINKED:`Social account already linked`,PROVIDER_NOT_FOUND:`Provider not found`,INVALID_TOKEN:`Invalid token`,TOKEN_EXPIRED:`Token expired`,ID_TOKEN_NOT_SUPPORTED:`id_token not supported`,FAILED_TO_GET_USER_INFO:`Failed to get user info`,USER_EMAIL_NOT_FOUND:`User email not found`,EMAIL_NOT_VERIFIED:`Email not verified`,PASSWORD_TOO_SHORT:`Password too short`,PASSWORD_TOO_LONG:`Password too long`,USER_ALREADY_EXISTS:`User already exists.`,USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL:`User already exists. Use another email.`,EMAIL_CAN_NOT_BE_UPDATED:`Email can not be updated`,CHANGE_EMAIL_DISABLED:`Change email is disabled`,CREDENTIAL_ACCOUNT_NOT_FOUND:`Credential account not found`,SESSION_EXPIRED:`Session expired. Re-authenticate to perform this action.`,FAILED_TO_UNLINK_LAST_ACCOUNT:`You can't unlink your last account`,ACCOUNT_NOT_FOUND:`Account not found`,USER_ALREADY_HAS_PASSWORD:`User already has a password. Provide that to delete the account.`,CROSS_SITE_NAVIGATION_LOGIN_BLOCKED:`Cross-site navigation login blocked. This request appears to be a CSRF attack.`,VERIFICATION_EMAIL_NOT_ENABLED:`Verification email isn't enabled`,EMAIL_ALREADY_VERIFIED:`Email is already verified`,EMAIL_MISMATCH:`Email mismatch`,SESSION_NOT_FRESH:`Session is not fresh`,LINKED_ACCOUNT_ALREADY_EXISTS:`Linked account already exists`,INVALID_ORIGIN:`Invalid origin`,INVALID_CALLBACK_URL:`Invalid callbackURL`,INVALID_REDIRECT_URL:`Invalid redirectURL`,INVALID_ERROR_CALLBACK_URL:`Invalid errorCallbackURL`,INVALID_NEW_USER_CALLBACK_URL:`Invalid newUserCallbackURL`,MISSING_OR_NULL_ORIGIN:`Missing or null Origin`,CALLBACK_URL_REQUIRED:`callbackURL is required`,FAILED_TO_CREATE_VERIFICATION:`Unable to create verification`,FIELD_NOT_ALLOWED:`Field not allowed to be set`,ASYNC_VALIDATION_NOT_SUPPORTED:`Async validation is not supported`,VALIDATION_ERROR:`Validation Error`,MISSING_FIELD:`Field is required`,METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED:`POST method requires deferSessionRefresh to be enabled in session config`,BODY_MUST_BE_AN_OBJECT:`Body must be an object`,PASSWORD_ALREADY_SET:`User already has a password set`}),QV=async()=>{let e=g(),t=e.context.adapterAsyncStorage;if(t)return t;let n=await BV();return e.context.adapterAsyncStorage??=new n,e.context.adapterAsyncStorage},$V=async e=>QV().then(t=>t.getStore()?.adapter||e).catch(()=>e),eH=async(e,t)=>{let n=!1;return QV().then(async r=>{n=!0;let i=[],a,o,s=!1;try{a=await r.run({adapter:e,pendingHooks:i,isTransactionActive:!1},t)}catch(e){o=e,s=!0}for(let e of i)await e();if(s)throw o;return a}).catch(e=>{if(!n)return t();throw e})},tH=async(e,t,n)=>{let r=!1;return QV().then(async i=>{if(r=!0,i.getStore()?.isTransactionActive)return t();let a=Fe(e)?.();a&&await a;let o=[],s,c,l=!1;try{s=await e.transaction(async e=>i.run({adapter:e,pendingHooks:o,isTransactionActive:!0},t))}catch(e){l=!0,c=e}if(l)throw c;for(let e of o)try{await e()}catch(e){if(!n?.onAfterCommitHookError)throw e;try{await n.onAfterCommitHookError(e)}catch{}}return s}).catch(e=>{if(!r)return t();throw e})},nH=async(e,t)=>{let n=async()=>{try{await e()}catch(e){if(!t?.onError)throw e;await t.onError(e)}},r;try{r=await QV()}catch{return n()}let i=r.getStore();if(!i?.isTransactionActive)return n();i.pendingHooks.push(n)};function rH(e){return e===`-`||e===`^`||e===`$`||e===`+`||e===`.`||e===`(`||e===`)`||e===`|`||e===`[`||e===`]`||e===`{`||e===`}`||e===`*`||e===`?`||e===`\\`?`\\${e}`:e}function iH(e){let t=``;for(let n=0;n<e.length;n++)t+=rH(e[n]);return t}function aH(e,t=!0){if(Array.isArray(e))return`(?:${e.map(e=>`^${aH(e,t)}$`).join(`|`)})`;let n=``,r=``,i=`.`;t===!0?(n=`/`,r=`[/\\\\]`,i=`[^/\\\\]`):t&&(n=t,r=iH(n),r.length>1?(r=`(?:${r})`,i=`((?!${r}).)`):i=`[^${r}]`);let a=t?`${r}+?`:``,o=t?`${r}*?`:``,s=t?e.split(n):[e],c=``;for(let e=0;e<s.length;e++){let n=s[e],r=s[e+1],l=``;if(!(!n&&e>0)){if(t&&(l=e===s.length-1?o:r===`**`?``:a),t&&n===`**`)l&&(c+=e===0?``:l,c+=`(?:${i}*?${l})*?`);else{for(let e=0;e<n.length;e++){let t=n[e];t===`\\`?e<n.length-1&&(c+=rH(n[e+1]),e++):c+=t===`?`?i:t===`*`?`${i}*?`:rH(t)}c+=l}}}return c}function oH(e,t){if(typeof t!=`string`)throw TypeError(`Sample must be a string, but ${typeof t} given`);return e.test(t)}function sH(e,t){if(typeof e!=`string`&&!Array.isArray(e))throw TypeError(`The first argument must be a single pattern string or an array of patterns, but ${typeof e} given`);if((typeof t==`string`||typeof t==`boolean`)&&(t={separator:t}),arguments.length===2&&!(t===void 0||typeof t==`object`&&t&&!Array.isArray(t)))throw TypeError(`The second argument must be an options object or a string/boolean separator, but ${typeof t} given`);if(t||={},t.separator===`\\`)throw Error("\\ is not a valid separator because it is used for escaping. Try setting the separator to `true` instead");let n=aH(e,t.separator),r=RegExp(`^${n}$`,t.flags),i=oH.bind(null,r);return i.options=t,i.pattern=e,i.regexp=r,i}function cH(e){let t=e.replace(/:\d+$/,``).replace(/^\[|\]$/g,``).toLowerCase();return t===`localhost`||t.endsWith(`.localhost`)||t===`::1`||t.startsWith(`127.`)}function lH(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return t===e.length?e:e.slice(0,t)}function uH(e){try{return(lH(new URL(e).pathname)||`/`)!==`/`}catch{throw new O(`Invalid base URL: ${e}. Please provide a valid base URL.`)}}function dH(e){try{let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`)throw new O(`Invalid base URL: ${e}. URL must include 'http://' or 'https://'`)}catch(t){throw t instanceof O?t:new O(`Invalid base URL: ${e}. Please provide a valid base URL.`,{cause:t})}}function fH(e,t=`/api/auth`){if(dH(e),uH(e))return e;let n=lH(e);return!t||t===`/`?n:(t=t.startsWith(`/`)?t:`/${t}`,`${n}${t}`)}function pH(e,t){return!e||e.trim()===``?!1:t===`proto`?e===`http`||e===`https`:t===`host`?[/\.\./,/\0/,/[\s]/,/^[.]/,/[<>'"]/,/javascript:/i,/file:/i,/data:/i].some(t=>t.test(e))?!1:/^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*(:[0-9]{1,5})?$/.test(e)||/^(\d{1,3}\.){3}\d{1,3}(:[0-9]{1,5})?$/.test(e)||/^\[[0-9a-fA-F:]+\](:[0-9]{1,5})?$/.test(e)||/^localhost(:[0-9]{1,5})?$/i.test(e):!1}function mH(e,t,n,r,i){if(e)return fH(e,t);if(r!==!1){let e=C.BETTER_AUTH_URL||C.NEXT_PUBLIC_BETTER_AUTH_URL||C.PUBLIC_BETTER_AUTH_URL||C.NUXT_PUBLIC_BETTER_AUTH_URL||C.NUXT_PUBLIC_AUTH_URL||(C.BASE_URL===`/`?void 0:C.BASE_URL);if(e)return fH(e,t)}let a=n?.headers.get(`x-forwarded-host`),o=n?.headers.get(`x-forwarded-proto`);if(a&&o&&i&&pH(o,`proto`)&&pH(a,`host`))try{return fH(`${o}://${a}`,t)}catch{}if(n){let e=hH(n.url);if(!e)throw new O(`Could not get origin from request. Please provide a valid base URL.`);return fH(e,t)}if(typeof window<`u`&&window.location)return fH(window.location.origin,t)}function hH(e){try{let t=new URL(e);return t.origin===`null`?null:t.origin}catch{return null}}function gH(e){try{return new URL(e).protocol}catch{return null}}function _H(e){try{return new URL(e).host}catch{return null}}function vH(e){return typeof e==`object`&&!!e&&`allowedHosts`in e&&Array.isArray(e.allowedHosts)}function yH(e){if(e instanceof Request)return!0;if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Request]`)return!1;let t=e;return typeof t.url==`string`&&typeof t.headers==`object`&&t.headers!==null&&typeof t.headers.get==`function`}function bH(e,t){let n=yH(e)?e.headers:e;if(t){let e=n.get(`x-forwarded-host`);if(e&&pH(e,`host`))return e}let r=n.get(`host`);if(r&&pH(r,`host`))return r;if(yH(e))try{return new URL(e.url).host}catch{return null}return null}function xH(e,t,n){if(t===`http`||t===`https`)return t;let r=yH(e)?e.headers:e;if(n){let e=r.get(`x-forwarded-proto`);if(e&&pH(e,`proto`))return e}if(yH(e))try{let t=new URL(e.url);if(t.protocol===`http:`||t.protocol===`https:`)return t.protocol.slice(0,-1)}catch{}let i=bH(e,n);return i&&cH(i)?`http`:`https`}const SH=(e,t)=>{if(!e||!t)return!1;let n=e.replace(/^https?:\/\//,``).split(`/`)[0].toLowerCase(),r=t.replace(/^https?:\/\//,``).split(`/`)[0].toLowerCase();return r.includes(`*`)||r.includes(`?`)?sH(r)(n):n.toLowerCase()===r.toLowerCase()};function CH(e,t,n,r){let i=bH(t,r);if(!i){if(e.fallback)return fH(e.fallback,n);throw new O(`Could not determine host from request headers. Please provide a fallback URL in your baseURL config.`)}if(e.allowedHosts.some(e=>SH(i,e)))return fH(`${xH(t,e.protocol,r)}://${i}`,n);if(e.fallback)return fH(e.fallback,n);throw new O(`Host "${i}" is not in the allowed hosts list. Allowed hosts: ${e.allowedHosts.join(`, `)}. Add this host to your allowedHosts config or provide a fallback URL.`)}function wH(e,t,n,r,i){if(vH(e))return n?CH(e,n,t,i):e.fallback?fH(e.fallback,t):mH(void 0,t,void 0,r,i);let a=yH(n)?n:void 0;return mH(typeof e==`string`?e:void 0,t,a,r,i)}const TH=re(`a-z`,`0-9`,`A-Z`,`-_`);function EH(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const DH=e=>e?`"${e}" `:``;function OH(e,t=``){if(typeof e!=`number`)throw TypeError(DH(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(DH(t)+`expected integer >= 0, got `+e);return e}function kH(e,t,n=``){if(EH(e)&&(t===void 0||e.length===t))return e;t!==void 0&&OH(t,`length`);let r=EH(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=DH(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}function AH(e){if(typeof e!=`function`||typeof e.create!=`function`)throw TypeError(`expected hash wrapped by utils.createHasher`);if(OH(e.outputLen),OH(e.blockLen),e.outputLen<1||e.blockLen<1)throw Error(`hash blockLen / outputLen must be >= 1`)}const jH=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},MH=(e,t)=>{jH(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`"${t}.__proto__" is not allowed`)};function NH(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function PH(e,t){kH(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function FH(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function IH(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function LH(e,t){return e<<32-t|e>>>t}const RH=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,zH=/* @__PURE__ */ Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function BH(e){if(kH(e),RH)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=zH[e[n]];return t}function VH(e){if(typeof e!=`string`)throw TypeError(`string expected`);let t=new TextEncoder().encode(e);try{return new Uint8Array(t)}finally{FH(t)}}function HH(e,t,n=`opts`){return MH(e,`defaults`),t!==void 0&&MH(t,n),Object.assign(Object.create(null),e,t)}function UH(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=HH({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}const WH=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});var GH=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(e,t){if(AH(e),kH(t,void 0,`key`),this.iHash=e.create(),typeof this.iHash.update!=`function`)throw Error(`expected Hash instance`);this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,r=new Uint8Array(n);r.set(t.length>n?e.create().update(t).digest():t);for(let e=0;e<r.length;e++)r[e]^=54;this.iHash.update(r),this.oHash=e.create();for(let e=0;e<r.length;e++)r[e]^=106;this.oHash.update(r),FH(r)}update(e){return NH(this),this.iHash.update(e),this}digestInto(e){NH(this),PH(e,this),this.finished=!0;let t=e.subarray(0,this.outputLen);this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:r,destroyed:i,blockLen:a,outputLen:o,canXOF:s}=this;return e=e,e.finished=r,e.destroyed=i,e.blockLen=a,e.outputLen=o,e.canXOF=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};const KH=/* @__PURE__ */ (()=>{let e=((e,t,n)=>new GH(e,t).update(n).digest());return e.create=(e,t)=>new GH(e,t),e})(),qH=/* @__PURE__ */ Uint8Array.of(0),JH=/* @__PURE__ */ Uint8Array.of();function YH(e,t,n,r=32,i){AH(e),OH(r,`length`),kH(t,void 0,`prk`);let a=e.outputLen;if(t.length<a)throw Error(`"prk" must be at least HashLen octets`);if(r>255*a)throw Error(`Length must be <= 255*HashLen`);let o=Math.ceil(r/a);if(n===void 0?n=JH:kH(n,void 0,`info`),!o)return i&&FH(t),/* @__PURE__ */ new Uint8Array;let s=i&&o===1?t:new Uint8Array(o*a),{iHash:c,oHash:l}=KH.create(e,t),u=i?t:new Uint8Array(a),d=o>1?i?.iHash||e.create():void 0;for(let e=0;e<o-1;e++){qH[0]=e+1;let t=c._cloneInto(d);e&&t.update(u),t.update(n).update(qH).digestInto(u),l._cloneInto(d).update(u).digestInto(u),s.set(u,a*e)}if(qH[0]=o,o>1&&c.update(u),c.update(n).update(qH).digestInto(u),l.update(u).digestInto(u),s.set(u,a*(o-1)),c.destroy(),l.destroy(),d?.destroy(),u!==s&&FH(u),FH(qH),r===s.length)return s;let f=s.slice(0,r);return FH(s),f}const XH=(e,t,n,r,i)=>{AH(e),n===void 0&&(n=new Uint8Array(e.outputLen));let a=KH.create(e,n).update(t);return YH(e,a.digest(),r,i,a)},ZH=e=>e/2**32|0,QH=e=>e>>>0;function $H(e,t,n,r){let i=ZH(n),a=QH(n);e.setUint32(t,r?a:i,r),e.setUint32(t+4,r?i:a,r)}function eU(e,t,n){return e&t^~e&n}function tU(e,t,n){return e&t^e&n^t&n}var nU=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,r){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=IH(this.buffer)}update(e){NH(this),kH(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length,a=!1;for(let o=0;o<i;){let s=Math.min(r-this.pos,i-o);if(s===r){let t=IH(e);for(;r<=i-o;o+=r)this.process(t,o);a=!0}else n.set(o===0&&s===i?e:e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0,a=!0)}return this.length+=e.length,a&&this.roundClean(),this}digestInto(e){NH(this),PH(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,t.fill(0,a),this.padOffset>r-a&&(this.process(n,0),t.fill(0)),$H(n,r-8,this.length*8,i),this.process(n,0),this.roundClean();let o=e===t?n:IH(e),s=this.outputLen,c=s/4,l=this.get();if(s%4||c>l.length)throw Error(`invalid outputLen`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneIntoMeta(e){let{buffer:t,length:n,finished:r,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=r,e.length=n,e.pos=a,a&&e.buffer.set(t),e}clone(){return this._cloneInto()}};const rU=/* @__PURE__ */ Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),iU=/* @__PURE__ */ Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),aU=/* @__PURE__ */ new Uint32Array(64);var oU=class extends nU{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(e,t){super(64,e,8,!1),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let n=0;n<16;n++,t+=4)aU[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=aU[e-15],n=aU[e-2],r=LH(t,7)^LH(t,18)^t>>>3,i=LH(n,17)^LH(n,19)^n>>>10;aU[e]=i+aU[e-7]+r+aU[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=LH(o,6)^LH(o,11)^LH(o,25),u=l+t+eU(o,s,c)+iU[e]+aU[e]|0,d=(LH(n,2)^LH(n,13)^LH(n,22))+tU(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){FH(aU)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),FH(this.buffer)}},sU=class extends oU{constructor(){super(32,rU)}};const cU=/* @__PURE__ */ UH(()=>new sU,/* @__PURE__ */ WH(1));async function lU(e,t,n=3600){return await new GF(e).setProtectedHeader({alg:`HS256`}).setIssuedAt().setExpirationTime(Math.floor(Date.now()/1e3)+n).sign(new TextEncoder().encode(t))}async function uU(e,t){try{return(await UF(e,new TextEncoder().encode(t))).payload}catch{return null}}const dU=new Uint8Array([66,101,116,116,101,114,65,117,116,104,46,106,115,32,71,101,110,101,114,97,116,101,100,32,69,110,99,114,121,112,116,105,111,110,32,75,101,121]),fU=()=>Date.now()/1e3|0,pU=`A256CBC-HS512`;function mU(e,t){return XH(cU,new TextEncoder().encode(e),new TextEncoder().encode(t),dU,64)}function hU(e){if(typeof e==`string`)return e;let t=e.keys.get(e.currentVersion);if(!t)throw Error(`Secret version ${e.currentVersion} not found in keys`);return t}function gU(e){if(typeof e==`string`)return[{version:0,value:e}];let t=[];for(let[n,r]of e.keys)t.push({version:n,value:r});return e.legacySecret&&!t.some(t=>t.value===e.legacySecret)&&t.push({version:-1,value:e.legacySecret}),t}async function _U(e,t,n,r=3600){let i=mU(hU(t),n),a=await XF({kty:`oct`,k:iP(i)},`sha256`);return await new nde(e).setProtectedHeader({alg:`dir`,enc:pU,kid:a}).setIssuedAt().setExpirationTime(fU()+r).setJti(crypto.randomUUID()).encrypt(i)}const vU={clockTolerance:15,keyManagementAlgorithms:[`dir`],contentEncryptionAlgorithms:[pU,`A256GCM`]};async function yU(e,t,n){if(!e)return null;let r=!1;try{r=rI(e).kid!==void 0}catch{return null}try{let r=gU(t),{payload:i}=await WF(e,async e=>{let t=e.kid;if(t!==void 0){for(let e of r){let r=mU(e.value,n);if(t===await XF({kty:`oct`,k:iP(r)},`sha256`))return r}throw Error(`no matching decryption secret`)}return r.length,mU(r[0].value,n)},vU);return i}catch{if(r)return null;let i=gU(t);if(i.length<=1)return null;for(let t=1;t<i.length;t++)try{let r=i[t],{payload:a}=await WF(e,mU(r.value,n),vU);return a}catch{continue}return null}}function bU(e,t){typeof e==`string`&&(e=new TextEncoder().encode(e)),typeof t==`string`&&(t=new TextEncoder().encode(t));let n=new Uint8Array(e),r=new Uint8Array(t),i=n.length^r.length,a=Math.max(n.length,r.length);for(let e=0;e<a;e++)i|=(e<n.length?n[e]:0)^(e<r.length?r[e]:0);return i===0}const xU={N:16384,r:16,p:1,dkLen:64};function SU(e,t){return new Promise((n,r)=>{uee(e.normalize(`NFKC`),t,xU.dkLen,{N:xU.N,r:xU.r,p:xU.p,maxmem:128*xU.N*xU.r*2},(e,t)=>{e?r(e):n(t)})})}async function CU(e){let t=He(16).toString(`hex`);return`${t}:${(await SU(e,t)).toString(`hex`)}`}async function wU(e,t){let[n,r]=e.split(`:`);if(!n||!r)throw Error(`Invalid password hash`);return(await SU(t,n)).toString(`hex`)===r}const TU=CU,EU=async({hash:e,password:t})=>wU(e,t);function DU(){let e=typeof globalThis<`u`&&globalThis.crypto;if(e&&typeof e.subtle==`object`&&e.subtle!=null)return e.subtle;throw Error(`crypto.subtle must be defined`)}function OU(e){return e?`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`}function kU(e,t,n){let r=``,i=0,a=0;for(let n of e)for(i=i<<8|n,a+=8;a>=6;)a-=6,r+=t[i>>a&63];if(a>0&&(r+=t[i<<6-a&63]),n){let e=(4-r.length%4)%4;r+=`=`.repeat(e)}return r}function AU(e,t){let n=/* @__PURE__ */ new Map;for(let e=0;e<t.length;e++)n.set(t[e],e);let r=[],i=0,a=0;for(let t of e){if(t===`=`)break;let e=n.get(t);if(e===void 0)throw Error(`Invalid Base64 character: ${t}`);i=i<<6|e,a+=6,a>=8&&(a-=8,r.push(i>>a&255))}return Uint8Array.from(r)}const jU={encode(e,t={}){let n=OU(!1);return kU(typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e),n,t.padding??!0)},decode(e){typeof e!=`string`&&(e=new TextDecoder().decode(e));let t=OU(e.includes(`-`)||e.includes(`_`));return AU(e,t)}},MU={encode(e,t={}){let n=OU(!0);return kU(typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e),n,t.padding??!0)},decode(e){return AU(e,OU(e.includes(`-`)||e.includes(`_`)))}};function NU(e,t){return{digest:async n=>{let r=new TextEncoder,i=typeof n==`string`?r.encode(n):n,a=await DU().digest(e,i);return t===`hex`?Array.from(new Uint8Array(a)).map(e=>e.toString(16).padStart(2,`0`)).join(``):t===`base64`||t===`base64url`||t===`base64urlnopad`?t.includes(`url`)?MU.encode(a,{padding:t!==`base64urlnopad`}):jU.encode(a):a}}}
29
- /*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */
30
- function PU(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const FU=e=>e?`"${e}" `:``;function IU(e,t=``){if(typeof e!=`boolean`)throw TypeError(FU(t)+`expected boolean, got type=`+typeof e);return e}function LU(e,t=``){if(typeof e!=`number`)throw TypeError(FU(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(FU(t)+`expected integer >= 0, got `+e);return e}function RU(e,t,n=``){if(PU(e)&&(t===void 0||e.length===t))return e;t!==void 0&&LU(t,`length`);let r=PU(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=FU(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}const zU=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(t===`object`?`expected valid options object`:`"${t}" expected object, got type=${typeof e}`)};function BU(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function VU(e,t){RU(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function HU(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function UU(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function WU(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}const GU=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function KU(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function qU(e){for(let t=0;t<e.length;t++)e[t]=KU(e[t]);return e}const JU=GU?e=>e:qU,YU=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,XU=/* @__PURE__ */ Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function ZU(e){if(RU(e),YU)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=XU[e[n]];return t}function QU(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function $U(e){if(typeof e!=`string`)throw TypeError(`hex string expected, got `+typeof e);if(YU)try{return Uint8Array.fromHex(e)}catch(e){throw e instanceof SyntaxError?RangeError(e.message):e}let t=e.length,n=t/2;if(t%2)throw RangeError(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=QU(e.charCodeAt(i)),a=QU(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw RangeError(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function eW(e){if(typeof e!=`string`)throw TypeError(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function tW(e,t){return!e.byteLength||!t.byteLength?!1:e.buffer===t.buffer&&e.byteOffset<t.byteOffset+t.byteLength&&t.byteOffset<e.byteOffset+e.byteLength}function nW(e,t){if(tW(e,t)&&e.byteOffset<t.byteOffset)throw Error(`complex overlap of input and output is not supported`)}function rW(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];RU(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}function iW(e,t){return zU(e,`defaults`),zU(t,`opts`),Object.assign(e,t)}function aW(e,t){if(e=RU(e),t=RU(t),e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}function oW(e,t,n){let r=t,i=n||(()=>[]),a=(e,t)=>r(t,...i(e)).update(e).digest(),o=r(new Uint8Array(e),...i(/* @__PURE__ */ new Uint8Array));return a.outputLen=o.outputLen,a.blockLen=o.blockLen,a.create=(e,...t)=>r(e,...t),a}const sW=(e,t)=>{function n(n,...r){if(RU(n,void 0,`key`),e.nonceLength!==void 0){let t=r[0];RU(t,e.varSizeNonce?void 0:e.nonceLength,`nonce`)}let i=e.tagLength,a=e.nonceLength===void 0?0:1;if(!e.withAAD){for(let e=a;e<r.length;e++)if(PU(r[e]))throw Error(`AAD not supported`)}e.withAAD&&r[a]!==void 0&&RU(r[a],void 0,`AAD`);let o=t(n,...r),s=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);RU(t,void 0,`output`)}},c=!1;return{encrypt(e,t){if(c)throw Error(`cannot encrypt() twice with same key + nonce`);return c=!0,RU(e,void 0,`data`),s(o.encrypt.length,t),o.encrypt(e,t)},decrypt(e,t){if(RU(e,void 0,`data`),i&&e.length<i)throw Error(`"ciphertext" expected length >= tagLength=`+i);return s(o.decrypt.length,t),o.decrypt(e,t)}}}return Object.assign(n,e),n};function cW(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(RU(t,e,`output`),n&&!uW(t))throw Error(`invalid output, must be aligned`);return t}function lW(e,t,n){LU(e),LU(t),IU(n);let r=/* @__PURE__ */ new Uint8Array(16),i=WU(r);return i.setBigUint64(0,BigInt(t),n),i.setBigUint64(8,BigInt(e),n),r}function uW(e){return e.byteOffset%4==0}function dW(e){return Uint8Array.from(RU(e))}function fW(e=32){LU(e,`bytesLength`);let t=typeof globalThis==`object`?globalThis.crypto:null;if(typeof t?.getRandomValues!=`function`)throw Error(`crypto.getRandomValues must be defined`);if(e>65536)throw RangeError(`"bytesLength" expected <= 65536, got ${e}`);return t.getRandomValues(new Uint8Array(e))}function pW(e,t=fW){if(typeof e!=`function`)throw TypeError(`"fn" expected cipher constructor, got type=`+typeof e);if(typeof t!=`function`)throw TypeError(`"randomBytes_" expected function, got type=`+typeof t);let{nonceLength:n}=e;LU(n,`fn.nonceLength`);let r=(e,t,n)=>{let r=rW(e,t);return tW(n,t)||t.fill(0),r},i=((i,...a)=>({encrypt(o){RU(o,void 0,`data`);let s=t(n),c=e(i,s,...a).encrypt(o);return c instanceof Promise?c.then(e=>r(s,e,o)):r(s,c,o)},decrypt(t){RU(t,void 0,`data`);let r=t.subarray(0,n),o=t.subarray(n);return e(i,r,...a).decrypt(o)}}));return`blockSize`in e&&(i.blockSize=e.blockSize),`tagLength`in e&&(i.tagLength=e.tagLength),`withAAD`in e&&(i.withAAD=e.withAAD),i}const mW=e=>Uint8Array.from(e.split(``),e=>e.charCodeAt(0)),hW=/* @__PURE__ */ JU(HU(mW(`expand 16-byte k`))),gW=/* @__PURE__ */ JU(HU(mW(`expand 32-byte k`)));function _W(e,t){return e<<t|e>>>32-t}const vW=2**32-1,yW=/* @__PURE__ */ Uint32Array.of();function bW(e,t,n,r,i,a,o,s){let c=i.length,l=/* @__PURE__ */ new Uint8Array(64),u=HU(l),d=GU&&uW(i)&&uW(a),f=d?HU(i):yW,p=d?HU(a):yW;if(GU)for(let m=0;m<c;o++){if(e(t,n,r,u,o,s),o>=vW)throw Error(`arx: counter overflow`);let h=Math.min(64,c-m);if(d&&h===64){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<16;t++)n=e+t,p[n]=f[n]^u[t];m+=64}else{for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}else for(let d=0;d<c;o++){if(e(t,n,r,u,o,s),JU(u),o>=vW)throw Error(`arx: counter overflow`);let f=Math.min(64,c-d);for(let e=0,t;e<f;e++)t=d+e,a[t]=i[t]^l[e];d+=f}}function xW(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=iW({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return LU(i),LU(o),IU(a),IU(n),(t,s,c,l,u=0)=>{RU(t,void 0,`key`),RU(s,void 0,`nonce`),RU(c,void 0,`data`);let d=c.length,f=l!==void 0;if(l=cW(d,l,!1),f&&nW(c,l),LU(u),u<0||u>=vW)throw Error(`arx: counter overflow`);let p=[],m=t.length,h,g;if(m===32)p.push(h=dW(t)),g=gW;else if(m===16&&n)h=/* @__PURE__ */ new Uint8Array(32),h.set(t),h.set(t,16),g=hW,p.push(h);else throw RU(t,32,`arx key`),Error(`invalid key size`);(!GU||!uW(s))&&p.push(s=dW(s));let _=HU(h);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);let e=s.subarray(0,16);if(GU)r(g,_,HU(e),_);else{let t=JU(Uint32Array.from(g));r(t,_,HU(e),_),UU(t),JU(_)}s=s.subarray(16)}else GU||JU(_);let v=16-i;if(v!==s.length)throw Error(`arx: nonce must be ${v} or 16 bytes`);if(v!==12){let e=/* @__PURE__ */ new Uint8Array(12);e.set(s,a?0:12-s.length),s=e,p.push(s)}let y=JU(HU(s));try{return bW(e,g,_,y,c,l,u,o),l}finally{UU(...p)}}}function SW(e,t){return e[t++]&255|(e[t++]&255)<<8}var CW=class{blockLen=16;outputLen=16;buffer=/* @__PURE__ */ new Uint8Array(16);r=/* @__PURE__ */ new Uint16Array(10);h=/* @__PURE__ */ new Uint16Array(10);pad=/* @__PURE__ */ new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(e){e=dW(RU(e,32,`key`));let t=SW(e,0),n=SW(e,2),r=SW(e,4),i=SW(e,6),a=SW(e,8),o=SW(e,10),s=SW(e,12),c=SW(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|n<<3)&8191,this.r[2]=(n>>>10|r<<6)&7939,this.r[3]=(r>>>7|i<<9)&8191,this.r[4]=(i>>>4|a<<12)&255,this.r[5]=a>>>1&8190,this.r[6]=(a>>>14|o<<2)&8191,this.r[7]=(o>>>11|s<<5)&8065,this.r[8]=(s>>>8|c<<8)&8191,this.r[9]=c>>>5&127;for(let t=0;t<8;t++)this.pad[t]=SW(e,16+2*t)}process(e,t,n=!1){let r=n?0:2048,{h:i,r:a}=this,o=a[0],s=a[1],c=a[2],l=a[3],u=a[4],d=a[5],f=a[6],p=a[7],m=a[8],h=a[9],g=SW(e,t+0),_=SW(e,t+2),v=SW(e,t+4),y=SW(e,t+6),b=SW(e,t+8),x=SW(e,t+10),S=SW(e,t+12),ee=SW(e,t+14),te=i[0]+(g&8191),C=i[1]+((g>>>13|_<<3)&8191),ne=i[2]+((_>>>10|v<<6)&8191),w=i[3]+((v>>>7|y<<9)&8191),T=i[4]+((y>>>4|b<<12)&8191),re=i[5]+(b>>>1&8191),ie=i[6]+((b>>>14|x<<2)&8191),E=i[7]+((x>>>11|S<<5)&8191),ae=i[8]+((S>>>8|ee<<8)&8191),oe=i[9]+(ee>>>5|r),se=0,ce=se+te*o+5*h*C+5*m*ne+5*p*w+5*f*T;se=ce>>>13,ce&=8191,ce+=5*d*re+5*u*ie+5*l*E+5*c*ae+5*s*oe,se+=ce>>>13,ce&=8191;let le=se+te*s+C*o+5*h*ne+5*m*w+5*p*T;se=le>>>13,le&=8191,le+=5*f*re+5*d*ie+5*u*E+5*l*ae+5*c*oe,se+=le>>>13,le&=8191;let ue=se+te*c+C*s+ne*o+5*h*w+5*m*T;se=ue>>>13,ue&=8191,ue+=5*p*re+5*f*ie+5*d*E+5*u*ae+5*l*oe,se+=ue>>>13,ue&=8191;let de=se+te*l+C*c+ne*s+w*o+5*h*T;se=de>>>13,de&=8191,de+=5*m*re+5*p*ie+5*f*E+5*d*ae+5*u*oe,se+=de>>>13,de&=8191;let fe=se+te*u+C*l+ne*c+w*s+T*o;se=fe>>>13,fe&=8191,fe+=5*h*re+5*m*ie+5*p*E+5*f*ae+5*d*oe,se+=fe>>>13,fe&=8191;let pe=se+te*d+C*u+ne*l+w*c+T*s;se=pe>>>13,pe&=8191,pe+=re*o+5*h*ie+5*m*E+5*p*ae+5*f*oe,se+=pe>>>13,pe&=8191;let me=se+te*f+C*d+ne*u+w*l+T*c;se=me>>>13,me&=8191,me+=re*s+ie*o+5*h*E+5*m*ae+5*p*oe,se+=me>>>13,me&=8191;let he=se+te*p+C*f+ne*d+w*u+T*l;se=he>>>13,he&=8191,he+=re*c+ie*s+E*o+5*h*ae+5*m*oe,se+=he>>>13,he&=8191;let D=se+te*m+C*p+ne*f+w*d+T*u;se=D>>>13,D&=8191,D+=re*l+ie*c+E*s+ae*o+5*h*oe,se+=D>>>13,D&=8191;let O=se+te*h+C*m+ne*p+w*f+T*d;se=O>>>13,O&=8191,O+=re*u+ie*l+E*c+ae*s+oe*o,se+=O>>>13,O&=8191,se=(se<<2)+se|0,se=se+ce|0,ce=se&8191,se>>>=13,le+=se,i[0]=ce,i[1]=le,i[2]=ue,i[3]=de,i[4]=fe,i[5]=pe,i[6]=me,i[7]=he,i[8]=D,i[9]=O}finalize(){let{h:e,pad:t}=this,n=/* @__PURE__ */ new Uint16Array(10),r=e[1]>>>13;e[1]&=8191;for(let t=2;t<10;t++)e[t]+=r,r=e[t]>>>13,e[t]&=8191;e[0]+=r*5,r=e[0]>>>13,e[0]&=8191,e[1]+=r,r=e[1]>>>13,e[1]&=8191,e[2]+=r,n[0]=e[0]+5,r=n[0]>>>13,n[0]&=8191;for(let t=1;t<10;t++)n[t]=e[t]+r,r=n[t]>>>13,n[t]&=8191;n[9]-=8192;let i=(r^1)-1;for(let e=0;e<10;e++)n[e]&=i;i=~i;for(let t=0;t<10;t++)e[t]=e[t]&i|n[t];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let a=e[0]+t[0];e[0]=a&65535;for(let n=1;n<8;n++)a=(e[n]+t[n]|0)+(a>>>16)|0,e[n]=a&65535;UU(n)}update(e){BU(this),RU(e),e=dW(e);let{buffer:t,blockLen:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(n-this.pos,r-i);if(a===n)for(;n<=r-i;i+=n)this.process(e,i);else t.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===n&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,UU(this.h,this.r,this.buffer,this.pad)}digestInto(e){BU(this),VU(e,this),this.finished=!0;let{buffer:t,h:n}=this,{pos:r}=this;if(r){for(t[r++]=1;r<16;r++)t[r]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let t=0;t<8;t++)e[i++]=n[t]>>>0,e[i++]=n[t]>>>8}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}};const wW=/* @__PURE__ */ oW(32,e=>new CW(e));function TW(e,t,n,r,i,a=20){let o=e[0],s=e[1],c=e[2],l=e[3],u=t[0],d=t[1],f=t[2],p=t[3],m=t[4],h=t[5],g=t[6],_=t[7],v=i,y=n[0],b=n[1],x=n[2],S=o,ee=s,te=c,C=l,ne=u,w=d,T=f,re=p,ie=m,E=h,ae=g,oe=_,se=v,ce=y,le=b,ue=x;for(let e=0;e<a;e+=2)S=S+ne|0,se=_W(se^S,16),ie=ie+se|0,ne=_W(ne^ie,12),S=S+ne|0,se=_W(se^S,8),ie=ie+se|0,ne=_W(ne^ie,7),ee=ee+w|0,ce=_W(ce^ee,16),E=E+ce|0,w=_W(w^E,12),ee=ee+w|0,ce=_W(ce^ee,8),E=E+ce|0,w=_W(w^E,7),te=te+T|0,le=_W(le^te,16),ae=ae+le|0,T=_W(T^ae,12),te=te+T|0,le=_W(le^te,8),ae=ae+le|0,T=_W(T^ae,7),C=C+re|0,ue=_W(ue^C,16),oe=oe+ue|0,re=_W(re^oe,12),C=C+re|0,ue=_W(ue^C,8),oe=oe+ue|0,re=_W(re^oe,7),S=S+w|0,ue=_W(ue^S,16),ae=ae+ue|0,w=_W(w^ae,12),S=S+w|0,ue=_W(ue^S,8),ae=ae+ue|0,w=_W(w^ae,7),ee=ee+T|0,se=_W(se^ee,16),oe=oe+se|0,T=_W(T^oe,12),ee=ee+T|0,se=_W(se^ee,8),oe=oe+se|0,T=_W(T^oe,7),te=te+re|0,ce=_W(ce^te,16),ie=ie+ce|0,re=_W(re^ie,12),te=te+re|0,ce=_W(ce^te,8),ie=ie+ce|0,re=_W(re^ie,7),C=C+ne|0,le=_W(le^C,16),E=E+le|0,ne=_W(ne^E,12),C=C+ne|0,le=_W(le^C,8),E=E+le|0,ne=_W(ne^E,7);let de=0;r[de++]=o+S|0,r[de++]=s+ee|0,r[de++]=c+te|0,r[de++]=l+C|0,r[de++]=u+ne|0,r[de++]=d+w|0,r[de++]=f+T|0,r[de++]=p+re|0,r[de++]=m+ie|0,r[de++]=h+E|0,r[de++]=g+ae|0,r[de++]=_+oe|0,r[de++]=v+se|0,r[de++]=y+ce|0,r[de++]=b+le|0,r[de++]=x+ue|0}function EW(e,t,n,r){let i=GU?e:JU(e.slice(0,4)),a=GU?t:JU(t.slice(0,8)),o=GU?n:JU(n.slice(0,4)),s=/* @__PURE__ */ new Uint32Array(16);TW(i,a,o.subarray(1),s,o[0]);let c=0;r[c++]=s[0]-i[0]|0,r[c++]=s[1]-i[1]|0,r[c++]=s[2]-i[2]|0,r[c++]=s[3]-i[3]|0,r[c++]=s[12]-o[0]|0,r[c++]=s[13]-o[1]|0,r[c++]=s[14]-o[2]|0,r[c++]=s[15]-o[3]|0,JU(r),GU||UU(i,a,o),UU(s)}const DW=/* @__PURE__ */ xW(TW,{counterRight:!1,counterLength:8,extendNonceFn:EW,allowShortKeys:!1}),OW=/* @__PURE__ */ new Uint8Array(16),kW=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(OW.subarray(n))},AW=/* @__PURE__ */ new Uint8Array(32);function jW(e,t,n,r,i){i!==void 0&&RU(i,void 0,`AAD`);let a=e(t,n,AW),o=lW(r.length,i?i.length:0,!0),s=wW.create(a);i&&kW(s,i),kW(s,r),s.update(o);let c=s.digest();return UU(a,o),c}const MW=/* @__PURE__ */ sW({blockSize:64,nonceLength:24,tagLength:16,withAAD:!0},/* @__PURE__ */ (e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=cW(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=jW(e,t,n,s,r);return a.set(c,o),UU(c),a},decrypt(i,a){a=cW(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=jW(e,t,n,o,r);if(!aW(s,c))throw UU(c),Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),UU(c),a}}))(DW)),NW={name:`HMAC`,hash:`SHA-256`},PW=`$ba$`;function FW(e){if(!e.startsWith(PW))return null;let t=e.indexOf(`$`,4);if(t===-1)return null;let n=parseInt(e.slice(4,t),10);return!Number.isInteger(n)||n<0?null:{version:n,ciphertext:e.slice(t+1)}}function IW(e,t){return`${PW}${e}$${t}`}async function LW(e,t){let n=await NU(`SHA-256`).digest(e),r=eW(t);return ZU(pW(MW)(new Uint8Array(n)).encrypt(r))}async function RW(e,t){let n=await NU(`SHA-256`).digest(e),r=$U(t),i=pW(MW)(new Uint8Array(n));return new TextDecoder().decode(i.decrypt(r))}const zW=async({key:e,data:t})=>{if(typeof e==`string`)return LW(e,t);let n=e.keys.get(e.currentVersion);if(!n)throw Error(`Secret version ${e.currentVersion} not found in keys`);let r=await LW(n,t);return IW(e.currentVersion,r)},BW=async({key:e,data:t})=>{if(typeof e==`string`)return RW(e,t);let n=FW(t);if(n){let t=e.keys.get(n.version);if(!t)throw Error(`Secret version ${n.version} not found in keys (key may have been retired)`);return RW(t,n.ciphertext)}if(e.legacySecret)return RW(e.legacySecret,t);throw Error(`Cannot decrypt legacy bare-hex payload: no legacy secret available. Set BETTER_AUTH_SECRET for backwards compatibility.`)},VW=async e=>{let t=typeof e==`string`?new TextEncoder().encode(e):e;return await DU().importKey(`raw`,t,NW,!1,[`sign`,`verify`])},HW=async(e,t)=>{let n=await VW(t),r=await DU().sign(NW.name,n,new TextEncoder().encode(e));return btoa(String.fromCharCode(...new Uint8Array(r)))};function UW(e){return!!e.database||!!e.secondaryStorage}function WW(e){return!!e.database}function GW(e){return WW(e)}function KW(e){return eee(_e,e)}function qW(e){return de(iee,e)}function JW(e){return fe(Ae,e)}const YW=j({id:A(),createdAt:je().default(()=>/* @__PURE__ */ new Date),updatedAt:je().default(()=>/* @__PURE__ */ new Date)}),XW=YW.extend({userId:KW(),expiresAt:je(),token:A(),ipAddress:A().nullish(),userAgent:A().nullish()}),ZW=YW.extend({email:A().transform(e=>e.toLowerCase()),emailVerified:Te().default(!1),name:A(),image:A().nullish()});function QW(e,t){if(!e||!t)return e;let n=Object.entries(t).filter(([,{returned:e}])=>e===!1).map(([e])=>e);return Object.entries(structuredClone(e)).filter(([e])=>!n.includes(e)).reduce((e,[t,n])=>({...e,[t]:n}),{})}const $W=/* @__PURE__ */ new WeakMap;function eG(e,t,n){let r=`${t}:${n}`;$W.has(e)||$W.set(e,/* @__PURE__ */ new Map);let i=$W.get(e);if(i.has(r))return i.get(r);let a=n===`output`?y(e)[t]?.fields??{}:{},o=t===`user`||t===`session`||t===`account`?e[t]?.additionalFields:void 0,s={...a,...o??{}};for(let n of e.plugins||[])n.schema&&n.schema[t]&&(s={...s,...n.schema[t].fields});return i.set(r,s),s}function tG(e,t){return QW(t,eG(e,`user`,`output`))}function nG(e,t){let n=eG(e,`user`,`output`),r={};for(let e in n){let i=n[e];i.returned!==!1&&(e in t&&t[e]!==void 0?r[e]=t[e]:i.defaultValue===void 0?i.required||(r[e]=null):r[e]=typeof i.defaultValue==`function`?i.defaultValue():i.defaultValue)}return`id`in t&&(r.id=t.id),r}function rG(e,t){return QW(t,eG(e,`session`,`output`))}function iG(e,t){let{accessToken:n,refreshToken:r,idToken:i,accessTokenExpiresAt:a,refreshTokenExpiresAt:o,password:s,...c}=QW(t,eG(e,`account`,`output`));return c}function aG(e,t){let n=t.action||`create`,r=t.fields,i=Object.create(null);for(let t in r)if(t in e){if(r[t].input===!1){if(r[t].defaultValue!==void 0&&n!==`update`){i[t]=r[t].defaultValue;continue}if(e[t])throw D.from(`BAD_REQUEST`,{...Y.FIELD_NOT_ALLOWED,message:`${t} is not allowed to be set`});continue}if(r[t].validator?.input&&e[t]!==void 0){let n=r[t].validator.input[`~standard`].validate(e[t]);if(n instanceof Promise)throw D.from(`INTERNAL_SERVER_ERROR`,Y.ASYNC_VALIDATION_NOT_SUPPORTED);if(`issues`in n&&n.issues)throw D.from(`BAD_REQUEST`,{...Y.VALIDATION_ERROR,message:n.issues[0]?.message||`Validation Error`});i[t]=n.value;continue}if(r[t].transform?.input&&e[t]!==void 0){i[t]=r[t].transform?.input(e[t]);continue}i[t]=e[t]}else if(r[t].defaultValue!==void 0&&n===`create`){if(typeof r[t].defaultValue==`function`){i[t]=r[t].defaultValue();continue}i[t]=r[t].defaultValue}else if(r[t].required&&n===`create`)throw D.from(`BAD_REQUEST`,{...Y.MISSING_FIELD,message:`${t} is required`});return i}function oG(e,t={},n){return aG(t,{fields:eG(e,`user`,`input`),action:n})}function sG(e,t={},n){let r=eG(e,`user`,`input`),i=Object.create(null);for(let e of Object.keys(t))r[e]?.input!==!1&&(i[e]=t[e]);return aG(i,{fields:r,action:n})}function cG(e,t,n){return aG(t,{fields:eG(e,`session`,`input`),action:n})}function lG(e){let t=eG(e,`session`,`input`),n={};for(let e in t)t[e].defaultValue!==void 0&&(n[e]=typeof t[e].defaultValue==`function`?t[e].defaultValue():t[e].defaultValue);return n}function uG(e,t){if(!t)return e;for(let n in t){let r=t[n]?.modelName;r&&(e[n].modelName=r);for(let r in e[n].fields){let i=t[n]?.fields?.[r];i&&(e[n].fields[r].fieldName=i)}}return e}const dG=(e,t=`ms`)=>new Date(Date.now()+(t===`sec`?e*1e3:e));function fG(e){return!!e&&(typeof e==`object`||typeof e==`function`)&&typeof e.then==`function`}const pG=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mo|years?|yrs?|y)(?: (ago|from now))?$/i;function mG(e){let t=pG.exec(e);if(!t||t[4]&&t[1])throw TypeError(`Invalid time string format: "${e}". Use formats like "7d", "30m", "1 hour", etc.`);let n=parseFloat(t[2]),r=t[3].toLowerCase(),i;switch(r){case`years`:case`year`:case`yrs`:case`yr`:case`y`:i=n*315576e5;break;case`months`:case`month`:case`mo`:i=n*2592e6;break;case`weeks`:case`week`:case`w`:i=n*6048e5;break;case`days`:case`day`:case`d`:i=n*864e5;break;case`hours`:case`hour`:case`hrs`:case`hr`:case`h`:i=n*36e5;break;case`minutes`:case`minute`:case`mins`:case`min`:case`m`:i=n*6e4;break;case`seconds`:case`second`:case`secs`:case`sec`:case`s`:i=n*1e3;break;default:throw TypeError(`Unknown time unit: "${r}"`)}return t[1]===`-`||t[4]===`ago`?-i:i}function hG(e){return Math.round(mG(e)/1e3)}const gG=xe({session:XW.loose(),user:ZW.loose(),updatedAt:ge(),version:A().optional()}),_G=j({session:ve(A(),Me()),expiresAt:ge(),signature:A()});function vG(e){let t=w(e);if(t===null)return null;let n=gG.safeParse(t);return n.success?n.data:(E.warn(`Cookie cache payload failed schema validation`,{issues:n.error.issues.map(({code:e,path:t})=>({code:e,path:t}))}),null)}function yG(e){let t=_G.safeParse(e);return t.success?t.data:null}function bG(e){if(e.indexOf(`%`)===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function xG(e){if(!e)return[];let t=[],n=0,r=0;for(;r<e.length;){if(e[r]===`,`){let i=r+1;for(;i<e.length&&e[i]===` `;)i++;for(;i<e.length&&e[i]!==`=`&&e[i]!==`;`&&e[i]!==`,`;)i++;if(i<e.length&&e[i]===`=`){let i=e.slice(n,r).trim();for(i&&t.push(i),n=r+1;n<e.length&&e[n]===` `;)n++;r=n;continue}}r++}let i=e.slice(n).trim();return i&&t.push(i),t}function SG(e){let t=/* @__PURE__ */ new Map;return xG(e).forEach(e=>{let[n,...r]=e.split(`;`).map(e=>e.trim()),[i,...a]=(n||``).split(`=`),o=TG(a.join(`=`));if(!i)return;let s={value:bG(o)};r.forEach(e=>{let[t,...n]=e.split(`=`),r=n.join(`=`),i=t.trim().toLowerCase();switch(i){case`max-age`:s[`max-age`]=r?parseInt(r.trim(),10):void 0;break;case`expires`:s.expires=r?new Date(r.trim()):void 0;break;case`domain`:s.domain=r?r.trim():void 0;break;case`path`:s.path=r?r.trim():void 0;break;case`secure`:s.secure=!0;break;case`httponly`:s.httponly=!0;break;case`samesite`:s.samesite=r?r.trim().toLowerCase():void 0;break;case`partitioned`:s.partitioned=!0;break;default:s[i]=!r||r.trim()}}),t.set(i,s)}),t}const CG=/^[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E\x5F\x60\x61-\x7A\x7C\x7E]+$/,wG=/^[\x20\x21\x23-\x3A\x3C-\x5B\x5D-\x7E]*$/;function TG(e){return e.length<2||!e.startsWith(`"`)||!e.endsWith(`"`)?e:e.slice(1,-1)}function EG(e){let t=0,n=e.length;for(;t<n;){let n=e.charCodeAt(t);if(n!==32&&n!==9)break;t++}for(;n>t;){let t=e.charCodeAt(n-1);if(t!==32&&t!==9)break;n--}return t===0&&n===e.length?e:e.slice(t,n)}function DG(e){let t=/* @__PURE__ */ new Map;if(e.length<2)return t;for(let n of e.split(`;`)){let e=n.indexOf(`=`);if(e===-1)continue;let r=EG(n.slice(0,e)),i=TG(EG(n.slice(e+1)));CG.test(r)&&wG.test(i)&&t.set(r,bG(i))}return t}function OG(e){let t={clockTolerance:15,audience:e?.audience??`better-auth:session-cache`};return e?.issuer&&(t.issuer=e.issuer),t}function kG(e){let t=vG(e);return!t||typeof e.iss!=`string`||!e.iss||e.sub!==t.user.id||e.sid!==t.session.token?null:{...e,...t}}function AG(){let e=typeof globalThis<`u`&&globalThis.crypto;if(e&&typeof e.subtle==`object`&&e.subtle!=null)return e.subtle;throw Error(`crypto.subtle must be defined`)}const jG={name:`HMAC`,hash:`SHA-256`},MG=async e=>{let t=typeof e==`string`?new TextEncoder().encode(e):e;return await AG().importKey(`raw`,t,jG,!1,[`sign`,`verify`])},NG=async(e,t,n)=>{try{let r=atob(e),i=new Uint8Array(r.length);for(let e=0,t=r.length;e<t;e++)i[e]=r.charCodeAt(e);return await AG().verify(jG,n,i,new TextEncoder().encode(t))}catch{return!1}},PG=async(e,t)=>{let n=await MG(t),r=await AG().sign(jG.name,n,new TextEncoder().encode(e));return btoa(String.fromCharCode(...new Uint8Array(r)))},FG=async(e,t)=>{let n=await PG(e,t);return e=`${e}.${n}`,e=encodeURIComponent(e),e},IG=/^application\/([a-z0-9.+-]*\+)?json/i;async function LG(e,t){let n=e.headers.get(`content-type`)||``,r=n.toLowerCase();if(e.body){if(t&&t.length>0&&!t.some(e=>{let t=r.split(`;`)[0].trim(),n=e.toLowerCase().trim();return t===n||t.includes(n)}))throw r?new k(415,{message:`Content-Type "${n}" is not allowed. Allowed types: ${t.join(`, `)}`,code:`UNSUPPORTED_MEDIA_TYPE`}):new k(415,{message:`Content-Type is required. Allowed types: ${t.join(`, `)}`,code:`UNSUPPORTED_MEDIA_TYPE`});if(IG.test(r))try{return await e.json()}catch(e){throw e instanceof SyntaxError?new k(400,{message:`Invalid JSON in request body`,code:`BAD_REQUEST`}):e}if(r.includes(`application/x-www-form-urlencoded`)){let t=await e.formData(),n={};return t.forEach((e,t)=>{n[t]=e.toString()}),n}if(r.includes(`multipart/form-data`)){let t=await e.formData(),n={};return t.forEach((e,t)=>{n[t]=e}),n}return r.includes(`text/plain`)?await e.text():r.includes(`application/octet-stream`)?await e.arrayBuffer():r.includes(`application/pdf`)||r.includes(`image/`)||r.includes(`video/`)?await e.blob():r.includes(`application/stream`)||e.body instanceof ReadableStream?e.body:await e.text()}}function RG(e){return e instanceof k||e?.name===`APIError`}function zG(e){try{return e.includes(`%`)?decodeURIComponent(e):e}catch{return e}}async function BG(e){try{return{data:await e,error:null}}catch(e){return{data:null,error:e}}}function VG(e){return e instanceof Request||Object.prototype.toString.call(e)===`[object Request]`}const HG=(e,t)=>{let n=e;if(t){if(t===`secure`)n=`__Secure-`+e;else if(t===`host`)n=`__Host-`+e;else return}return n};function UG(e){if(typeof e!=`string`)throw TypeError(`argument str must be a string`);let t=/* @__PURE__ */ new Map,n=0;for(;n<e.length;){let r=e.indexOf(`=`,n);if(r===-1)break;let i=e.indexOf(`;`,n);if(i===-1)i=e.length;else if(i<r){n=e.lastIndexOf(`;`,r-1)+1;continue}let a=e.slice(n,r).trim();if(!t.has(a)){let n=e.slice(r+1,i).trim();n.codePointAt(0)===34&&(n=n.slice(1,-1)),t.set(a,zG(n))}n=i+1}return t}const WG=(e,t,n={})=>{let r;if(r=n?.prefix===`secure`?`${`__Secure-${e}`}=${t}`:n?.prefix===`host`?`${`__Host-${e}`}=${t}`:`${e}=${t}`,e.startsWith(`__Secure-`)&&!n.secure&&(n.secure=!0),e.startsWith(`__Host-`)&&(n.secure||=!0,n.path!==`/`&&(n.path=`/`),n.domain&&=void 0),n&&typeof n.maxAge==`number`&&n.maxAge>=0){if(n.maxAge>3456e4)throw Error(`Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.`);r+=`; Max-Age=${Math.floor(n.maxAge)}`}if(n.domain&&n.prefix!==`host`&&(r+=`; Domain=${n.domain}`),n.path&&(r+=`; Path=${n.path}`),n.expires){if(n.expires.getTime()-Date.now()>3456e7)throw Error(`Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.`);r+=`; Expires=${n.expires.toUTCString()}`}return n.httpOnly&&(r+=`; HttpOnly`),n.secure&&(r+=`; Secure`),n.sameSite&&(r+=`; SameSite=${n.sameSite.charAt(0).toUpperCase()+n.sameSite.slice(1)}`),n.partitioned&&(n.secure||=!0,r+=`; Partitioned`),r},GG=(e,t,n)=>(t=encodeURIComponent(t),WG(e,t,n)),KG=async(e,t,n,r)=>(t=await FG(t,n),WG(e,t,r));async function qG(e,t={}){let n={body:t.body,query:t.query};if(e.body){let r=await e.body[`~standard`].validate(t.body);if(r.issues)return{data:null,error:JG(r.issues,`body`)};n.body=r.value}if(e.query){let r=await e.query[`~standard`].validate(t.query);if(r.issues)return{data:null,error:JG(r.issues,`query`)};n.query=r.value}return e.requireHeaders&&!t.headers?{data:null,error:{message:`Headers is required`,issues:[]}}:e.requireRequest&&!t.request?{data:null,error:{message:`Request is required`,issues:[]}}:{data:n,error:null}}function JG(e,t){return{message:e.map(e=>`[${e.path?.length?`${t}.`+e.path.map(e=>typeof e==`object`?e.key:e).join(`.`):t}] ${e.message}`).join(`; `),issues:e}}const YG=async(e,{options:t,path:n})=>{let r=new Headers,i,{data:a,error:o}=await qG(t,e);if(o)throw new me(o.message,o.issues);let s=`headers`in e?e.headers instanceof Headers?e.headers:new Headers(e.headers):`request`in e&&VG(e.request)?e.request.headers:null,c=s?.get(`cookie`),l=c?UG(c):void 0,u={...e,body:a.body,query:a.query,path:e.path||n||`virtual:`,context:`context`in e&&e.context?e.context:{},returned:void 0,headers:e?.headers,request:e?.request,params:`params`in e?e.params:void 0,method:e.method??(Array.isArray(t.method)?t.method[0]:t.method===`*`?`GET`:t.method),setHeader:(e,t)=>{r.set(e,t)},getHeader:e=>s?s.get(e):null,getCookie:(e,t)=>{let n=HG(e,t);return n&&l?.get(n)||null},getSignedCookie:async(e,t,n)=>{let r=HG(e,n);if(!r)return null;let i=l?.get(r);if(!i)return null;let a=i.lastIndexOf(`.`);if(a<1)return null;let o=i.substring(0,a),s=i.substring(a+1);return s.length!==44||!s.endsWith(`=`)?null:await NG(s,o,await MG(t))?o:!1},setCookie:(e,t,n)=>{let i=GG(e,t,n);return r.append(`set-cookie`,i),i},setSignedCookie:async(e,t,n,i)=>{let a=await KG(e,t,n,i);return r.append(`set-cookie`,a),a},redirect:e=>(r.set(`location`,e),new k(`FOUND`,void 0,r)),error:(e,t,n)=>new k(e,t,n),setStatus:e=>{i=e},json:(t,n)=>e.asResponse?{body:n?.body||t,routerResponse:n,_flag:`json`}:t,responseHeaders:r,get responseStatus(){return i}};for(let e of t.use||[]){let t=await e({...u,returnHeaders:!0,asResponse:!1});t.response&&Object.assign(u.context,t.response),t.headers&&t.headers.forEach((e,t)=>{u.responseHeaders.set(t,e)})}return u};function XG(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}function ZG(e){let t=/* @__PURE__ */ new WeakMap,n=/* @__PURE__ */ new WeakMap,r=0,i=(e,n)=>{let r=n;for(;r;){if(r===e)return!0;r=t.get(r)}return!1};return JSON.stringify(e,function(e,a){if(typeof a==`bigint`)return a.toString();if(typeof a==`object`&&a){if(i(a,this))return`[Circular ref-${n.get(a)}]`;t.set(a,this),n.has(a)||n.set(a,r++)}return a})}function QG(e){return!e||typeof e!=`object`?!1:`_flag`in e&&e._flag===`json`}const $G=/* @__PURE__ */ new Set(/* @__PURE__ */ `host.user-agent.referer.from.expect.authorization.proxy-authorization.cookie.origin.accept-charset.accept-encoding.accept-language.if-match.if-none-match.if-modified-since.if-unmodified-since.if-range.range.max-forwards.connection.keep-alive.transfer-encoding.te.upgrade.trailer.proxy-connection.content-length`.split(`.`));function eK(e){for(let t of $G)e.delete(t)}function tK(e,t){if(t)for(let[n,r]of new Headers(t).entries())n.toLowerCase()===`set-cookie`?e.append(n,r):e.set(n,r)}function nK(e,t){if(e instanceof Response){if(t?.headers){let n=new Headers(t.headers);eK(n),tK(e.headers,n)}return e}if(QG(e)){let n=e.body,r=e.routerResponse;if(r instanceof Response)return r;let i=new Headers;if(tK(i,r?.headers),tK(i,e.headers),t?.headers){let e=new Headers(t.headers);eK(e),tK(i,e)}return i.set(`Content-Type`,`application/json`),new Response(JSON.stringify(n),{...r,headers:i,status:e.status??t?.status??r?.status,statusText:t?.statusText??r?.statusText})}if(RG(e))return nK(e.body,{status:t?.status??e.statusCode,statusText:e.status.toString(),headers:t?.headers||e.headers});let n=e,r=new Headers(t?.headers);return eK(r),e?typeof e==`string`?(n=e,r.set(`Content-Type`,`text/plain`)):e instanceof ArrayBuffer||ArrayBuffer.isView(e)?(n=e,r.set(`Content-Type`,`application/octet-stream`)):e instanceof Blob?(n=e,r.set(`Content-Type`,e.type||`application/octet-stream`)):e instanceof FormData?n=e:e instanceof URLSearchParams?(n=e,r.set(`Content-Type`,`application/x-www-form-urlencoded`)):e instanceof ReadableStream?(n=e,r.set(`Content-Type`,`application/octet-stream`)):XG(e)&&(n=ZG(e),r.set(`Content-Type`,`application/json`)):(e===null&&(n=JSON.stringify(null)),r.set(`content-type`,`application/json`)),new Response(n,{...t,headers:r})}function rK(e,t,n){let r=typeof e==`string`?e:void 0,i=typeof t==`object`?t:e,a=typeof t==`function`?t:n;if((i.method===`GET`||i.method===`HEAD`)&&i.body)throw new pe(`Body is not allowed with GET or HEAD methods`);if(r&&/\/{2,}/.test(r))throw new pe(`Path cannot contain consecutive slashes`);let o=async(...e)=>{let t=e[0]||{},{data:n,error:o}=await BG(YG(t,{options:i,path:r}));if(o)throw o instanceof me?(i.onValidationError&&await i.onValidationError({message:o.message,issues:o.issues}),new k(400,{message:o.message,code:`VALIDATION_ERROR`})):o;let s=await a(n).catch(async e=>{if(RG(e)){let n=i.onAPIError;if(n&&await n(e),t.asResponse)return e}throw e}),c=n.responseHeaders,l=n.responseStatus;return t.asResponse?nK(s,{headers:c,status:l}):t.returnHeaders?t.returnStatus?{headers:c,response:s,status:l}:{headers:c,response:s}:t.returnStatus?{response:s,status:l}:s};return o.options=i,o.path=r,o}function iK(e,t){return[...e??[],...t??[]]}rK.create=e=>{function t(...t){if(t.length===3){let[n,r,i]=t;return rK(n,{...r,use:iK(r.use,e?.use)},i)}let[n,r]=t;return rK({...n,use:iK(n.use,e?.use)},r)}return t};function aK(e,t){let n=async n=>{let r=n,i=typeof e==`function`?e:t,a=await YG(r,{options:typeof e==`function`?{}:e,path:`/`});if(!i)throw Error(`handler must be defined`);try{let e=await i(a),t=a.responseHeaders;return r.returnHeaders?{headers:t,response:e}:e}catch(e){throw RG(e)&&Object.defineProperty(e,he,{enumerable:!1,configurable:!0,get(){return a.responseHeaders}}),e}};return n.options=typeof e==`function`?{}:e,n}aK.create=e=>{function t(t,n){if(typeof t==`function`)return aK({use:e?.use},t);if(!n)throw Error(`Middleware handler is required`);return aK({...t,method:`*`,use:[...e?.use||[],...t.use||[]]},n)}return t};const oK={};function sK(e){switch(e.constructor.name){case`ZodString`:return`string`;case`ZodNumber`:return`number`;case`ZodBoolean`:return`boolean`;case`ZodObject`:return`object`;case`ZodArray`:return`array`;default:return`string`}}function cK(e){let t=[];return e.metadata?.openapi?.parameters?(t.push(...e.metadata.openapi.parameters),t):(e.query instanceof Oe&&Object.entries(e.query.shape).forEach(([e,n])=>{n instanceof Oe&&t.push({name:e,in:`query`,schema:{type:sK(n),...`minLength`in n&&n.minLength?{minLength:n.minLength}:{},description:n.description}})}),t)}function lK(e){if(e.metadata?.openapi?.requestBody)return e.metadata.openapi.requestBody;if(e.body&&(e.body instanceof Oe||e.body instanceof Se)){let t=e.body.shape;if(!t)return;let n={},r=[];return Object.entries(t).forEach(([e,t])=>{t instanceof Oe&&(n[e]={type:sK(t),description:t.description},t instanceof Se||r.push(e))}),{required:e.body instanceof Se?!1:!!e.body,content:{"application/json":{schema:{type:`object`,properties:n,required:r}}}}}}function uK(e){return{400:{content:{"application/json":{schema:{type:`object`,properties:{message:{type:`string`}},required:[`message`]}}},description:`Bad Request. Usually due to missing parameters, or invalid parameters.`},401:{content:{"application/json":{schema:{type:`object`,properties:{message:{type:`string`}},required:[`message`]}}},description:`Unauthorized. Due to missing or invalid authentication.`},403:{content:{"application/json":{schema:{type:`object`,properties:{message:{type:`string`}}}}},description:`Forbidden. You do not have permission to access this resource or to perform this action.`},404:{content:{"application/json":{schema:{type:`object`,properties:{message:{type:`string`}}}}},description:`Not Found. The requested resource was not found.`},429:{content:{"application/json":{schema:{type:`object`,properties:{message:{type:`string`}}}}},description:`Too Many Requests. You have exceeded the rate limit. Try again later.`},500:{content:{"application/json":{schema:{type:`object`,properties:{message:{type:`string`}}}}},description:`Internal Server Error. This is a problem with the server that you cannot fix.`},...e}}async function dK(e,t){return Object.entries(e).forEach(([e,t])=>{let n=t.options;if(t.path&&!n.metadata?.SERVER_ONLY&&(n.method===`GET`&&(oK[t.path]={get:{tags:[`Default`,...n.metadata?.openapi?.tags||[]],description:n.metadata?.openapi?.description,operationId:n.metadata?.openapi?.operationId,security:[{bearerAuth:[]}],parameters:cK(n),responses:uK(n.metadata?.openapi?.responses)}}),n.method===`POST`)){let e=lK(n);oK[t.path]={post:{tags:[`Default`,...n.metadata?.openapi?.tags||[]],description:n.metadata?.openapi?.description,operationId:n.metadata?.openapi?.operationId,security:[{bearerAuth:[]}],parameters:cK(n),...e?{requestBody:e}:{requestBody:{content:{"application/json":{schema:{type:`object`,properties:{}}}}}},responses:uK(n.metadata?.openapi?.responses)}}}}),{openapi:`3.1.1`,info:{title:`Better Auth`,description:`API Reference for your Better Auth Instance`,version:`1.1.0`},components:{schemas:{}},security:[{apiKeyCookie:[]}],servers:[{url:t?.url}],tags:[{name:`Default`,description:`Default endpoints that are included with Better Auth by default. These endpoints are not part of any plugin.`}],paths:oK}}const fK=(e,t)=>`<!doctype html>
31
- <html>
32
- <head>
33
- <title>Scalar API Reference</title>
34
- <meta charset="utf-8" />
35
- <meta
36
- name="viewport"
37
- content="width=device-width, initial-scale=1" />
38
- </head>
39
- <body>
40
- <script
41
- id="api-reference"
42
- type="application/json">
43
- ${JSON.stringify(e)}
44
- <\/script>
45
- <script>
46
- var configuration = {
47
- favicon: ${t?.logo?`data:image/svg+xml;utf8,${encodeURIComponent(t.logo)}`:void 0} ,
48
- theme: ${t?.theme||`saturn`},
49
- metaData: {
50
- title: ${t?.title||`Open API Reference`},
51
- description: ${t?.description||`Better Call Open API`},
52
- }
53
- }
54
- document.getElementById('api-reference').dataset.configuration =
55
- JSON.stringify(configuration)
56
- <\/script>
57
- <script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference"><\/script>
58
- </body>
59
- </html>`,pK=/* @__PURE__ */ (()=>{let e=function(){};return e.prototype=Object.create(null),Object.freeze(e.prototype),e})();function mK(){return{root:{key:``},static:new pK}}function hK(e){let t=0,n=0;for(;t<e.length;t++){let r=e.charCodeAt(t);if(r===92)t++;else if(r===40)n++;else if(r===41&&n>0)n--;else if(r===123&&n===0)break}if(t>=e.length)return;let r=t+1;for(n=0;r<e.length;r++){let t=e.charCodeAt(r);if(t===92)r++;else if(t===40)n++;else if(t===41&&n>0)n--;else if(t===125&&n===0)break}if(r>=e.length)return;let i=e[r+1],a=i===`?`||i===`+`||i===`*`;return[e.slice(0,t),e.slice(t+1,r),e.slice(r+(a?2:1)),a?i:void 0]}function gK(e){if(!e.includes(`{`))return;let t=hK(e);if(!t)return;let[n,r,i,a]=t;if(!a)return[n+r+i];if(a===`?`)return[n+r+i,n+i];if(r.includes(`/`))throw Error(`unsupported group repetition across segments`);return[`${n}(?:${r})${a}${i}`]}function _K(e){return`__rou3_unnamed_${e}`}function vK(e){return/^(?!__rou3_|_\d)[A-Za-z_]\w*$/.test(e)?e:`__rou3_esc_`+e.replace(/[_-]/g,e=>e===`_`?`__`:`_h`)}function yK(e){return e.charCodeAt(0)===95?e.startsWith(`__rou3_esc_`)?e.slice(11).replace(/__|_h/g,e=>e===`__`?`_`:`-`):e.startsWith(`__rou3_unnamed_`)?e.slice(15):e:e}function bK(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r===92)n++;else if(r===40)t++;else if(r===41&&t>0)t--;else if(r===42&&t===0)return!0}return!1}function xK(e,t,n=_K){let r=0,i=t,a=``;for(let t=0;t<e.length;t++){let o=e.charCodeAt(t);o===92?(a+=e[t],t+1<e.length&&(a+=e[++t])):o===40?(r++,a+=e[t]):o===41&&r>0?(r--,a+=e[t]):a+=o===42&&r===0?`(?<${n(i++)}>[^/]*)`:e[t]}return[a,i]}function SK(e){return e.includes(`\\`)?e.replace(/\\([:(){}])/g,(e,t)=>`�`+`ABCDE`[`:(){}`.indexOf(t)]):e}function CK(e){return e.startsWith(`**`)?2:e===`*`||e.includes(`:`)||e.includes(`(`)||bK(e)?1:e===`\\*`?`*`:e===`\\*\\*`?`**`:e.includes(`�`)?e.replace(/\uFFFD([A-E])/g,(e,t)=>t===`A`?`:`:t===`B`?`(`:t===`C`?`)`:t===`D`?`{`:`}`):e}function wK(e){for(let t=0;t<e.length;t++){let n=e[t].charCodeAt(e[t].length-1);if(n!==63&&n!==43&&n!==42)continue;let r=e[t].match(/^(.*:[\w-]+(?:\([^)]*\))?)([?+*])$/);if(!r)continue;let i=e.slice(0,t),a=e.slice(t+1);if(r[2]===`?`)return[`/`+i.concat(r[1]).concat(a).join(`/`),`/`+i.concat(a).join(`/`)];let o=r[1].match(/:([\w-]+)/)?.[1]||`_`,s=`/`+[...i,`**:${o}`,...a].join(`/`),c=`/`+[...i,...a].join(`/`);return r[2]===`+`?[s]:[s,c]}}function TK(e){if(!e.includes(`/.`))return e;let t=[];for(let n of e.split(`/`))if(n===`.`)continue;else n===`..`&&t.length>1?t.pop():t.push(n);return t.join(`/`)||`/`}function EK(e){let t=e.split(`/`);return t.shift(),t[t.length-1]===``&&t.pop(),t}function DK(e){let t=EK(e);for(;t[t.length-1]===``;)t.pop();return t}function OK(e,t){let n=new pK;for(let[r,i]of t){let t=r<0?e.slice(-(r+1)).join(`/`):e[r];if(typeof i==`string`)n[i]=t;else{let e=t.match(i);if(e)for(let t in e.groups)n[yK(t)]=e.groups[t]}}return n}function kK(e,t=``,n,r){t=t.toUpperCase(),n.charCodeAt(0)!==47&&(n=`/${n}`);let i=gK(n);if(i){for(let n of i)kK(e,t,n,r);return}n=SK(n);let a=DK(n),o=wK(a);if(o){for(let n of o)kK(e,t,n,r);return}let s=e.root,c=0,l=[],u=[];for(let e=0;e<a.length;e++){let t=a[e],n=CK(t);if(n===2){s.wildcard||(s.wildcard={key:`**`}),s=s.wildcard,l.push([-(e+1),t.split(`:`)[1]||`_`,t.length===2]);break}if(n===1){if(s.param||(s.param={key:`*`}),s=s.param,t===`*`)l.push([e,String(c++),!0]);else if(t.includes(`(`)||t.includes(`:`,1)||!/^:[\w-]+$/.test(t)){let[n,r]=AK(t,c);c=r,u[e]=n,s.hasRegexParam=!0,l.push([e,n,!1])}else l.push([e,t.slice(1),!1]);continue}t=a[e]=n;let r=s.static?.[t];if(r)s=r;else{let e={key:t};s.static||(s.static=new pK),s.static[t]=e,s=e}}let d=l.length>0,f=s.methods??=new pK;(f[t]??=[]).push({data:r||null,paramsRegexp:u,paramsMap:d?l:void 0}),d||(e.static[`/`+a.join(`/`)]=s)}function AK(e,t=0){let n=t,r=``,i=0;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n===40)i++;else if(n===41&&i>0)i--;else if(n===92&&i===0&&t+1<e.length){let n=e[t+1];if(n!==`:`&&n!==`(`&&n!==`*`&&n!==`\\`){r+=`￾`+n,t++;continue}}else if(n===46&&i===0){r+=`\\.`;continue}r+=e[t]}[r,n]=xK(r,n);let a=r.replace(/:([\w-]+)(?:\(([^)]*)\))?/g,(e,t,n)=>`(?<${vK(t)}>${n||`[^/]+`})`).replace(/\((?![?<])/g,()=>`(?<${_K(n++)}>`).replace(/\uFFFE(.)/g,(e,t)=>/[.*+?^${}()|[\]\\]/.test(t)?`\\${t}`:t);return[RegExp(`^${a}$`),n]}function jK(e,t=``,n,r){r?.normalize&&(n=TK(n)),n.charCodeAt(n.length-1)===47&&(n=n.slice(0,-1));let i=e.static[n];if(i&&i.methods){let e=i.methods[t]||i.methods[``];if(e!==void 0)return e[0]}let a=EK(n),o=MK(e.root,t,a,0);if(o!==void 0)return r?.params===!1?o:{data:o.data,params:o.paramsMap?OK(a,o.paramsMap):void 0}}function MK(e,t,n,r){if(r===n.length){if(e.methods){let r=NK(e.methods,t,n,e.key===`*`,!1);if(r)return r}return e.param?.methods&&NK(e.param.methods,t,n,!0,!0)||e.wildcard?.methods&&NK(e.wildcard.methods,t,n,!0,!0)||void 0}let i=n[r];if(e.static){let a=e.static[i];if(a){let e=MK(a,t,n,r+1);if(e)return e}}if(e.param){let i=MK(e.param,t,n,r+1);if(i)return i}if(e.wildcard&&e.wildcard.methods)return NK(e.wildcard.methods,t,n,!0,!1)}function NK(e,t,n,r,i){let a=e[t]||e[``];if(!a)return;let o=a[0];if(a.length===1&&o.paramsRegexp.length===0){if(!i)return o;let e=o.paramsMap;return e?.[e.length-1]?.[2]?o:void 0}let s,c=-1;for(let e of a){let t=e.paramsMap,a=t?.[t.length-1]?.[2];if(i&&!a)continue;let o=r&&t&&!a?1:0,l=e.paramsRegexp;for(let e=0;e<l.length;e++)if(l[e]){if(!l[e].test(n[e])){o=-1;break}o++}o>c&&(s=e,c=o)}return s}function PK(e,t=``,n,r){r?.normalize&&(n=TK(n)),n.charCodeAt(n.length-1)===47&&(n=n.slice(0,-1));let i=EK(n),a=FK(e.root,t,i,0);return r?.params===!1?a:a.map(e=>({data:e.data,params:e.paramsMap?OK(i,e.paramsMap):void 0}))}function FK(e,t,n,r,i=[]){let a=n[r];if(e.wildcard&&e.wildcard.methods){let a=e.wildcard.methods[t]||e.wildcard.methods[``];if(a){if(r<n.length)IK(i,a,!0);else{let e=[];for(let t of a){let n=t.paramsMap;n?.[n.length-1]?.[2]&&e.push(t)}IK(i,e,!0)}}}if(e.param){if(r<n.length){let o=i.length;if(FK(e.param,t,n,r+1,i),e.param.hasRegexParam)for(let e=i.length-1;e>=o;e--)i[e].paramsRegexp[r]?.test(a)===!1&&i.splice(e,1)}else if(e.param.methods){let n=e.param.methods[t]||e.param.methods[``];if(n){let e=[];for(let t of n){let n=t.paramsMap;n?.[n.length-1]?.[2]&&e.push(t)}IK(i,e,!0)}}}if(r<n.length){let o=e.static?.[a];o&&FK(o,t,n,r+1,i)}if(r===n.length&&e.methods){let n=e.methods[t]||e.methods[``];n&&IK(i,n,e.key===`*`)}return i}function IK(e,t,n){t.length>1&&(t=t.map(e=>{let t=0,{paramsRegexp:r,paramsMap:i}=e;for(let e=0;e<r.length;e++)r[e]&&t++;return n&&i&&!i[i.length-1][2]&&t++,[e,t]}).sort((e,t)=>e[1]-t[1]).map(e=>e[0]));for(let n of t)e.push(n)}const LK=(e,t)=>{if(!t?.openapi?.disabled){let n={path:`/api/reference`,...t?.openapi};e.openapi=rK(n.path,{method:`GET`},async t=>{let r=await dK(e);return new Response(fK(r,n.scalar),{headers:{"Content-Type":`text/html`}})})}let n=mK(),r=mK();for(let t of Object.values(e)){if(!t.options||!t.path||t.options?.metadata?.SERVER_ONLY)continue;let e=Array.isArray(t.options?.method)?t.options.method:[t.options?.method];for(let r of e)kK(n,r,t.path,t)}if(t?.routerMiddleware?.length)for(let{path:e,middleware:n}of t.routerMiddleware)kK(r,`*`,e,n);let i=t?.basePath&&t.basePath!==`/`?t.basePath.replace(/\/+$/,``):``,a=async e=>{let a=new URL(e.url),o=a.pathname,s;if(i){if(!o.startsWith(`${i}/`))return new Response(null,{status:404,statusText:`Not Found`});s=o.slice(i.length)}else s=o;if(s.length===0||/\/{2,}/.test(s))return new Response(null,{status:404,statusText:`Not Found`});let c=jK(n,e.method,s);if(s.endsWith(`/`)!==c?.data?.path?.endsWith(`/`)&&!t?.skipTrailingSlashes||!c?.data)return new Response(null,{status:404,statusText:`Not Found`});let l={};a.searchParams.forEach((e,t)=>{t in l?Array.isArray(l[t])?l[t].push(e):l[t]=[l[t],e]:l[t]=e});let u=c.data;try{let n=u.options.metadata?.allowedMediaTypes||t?.allowedMediaTypes,i={path:s,method:e.method,headers:e.headers,params:c.params?{...c.params}:{},request:e,body:u.options.disableBody?void 0:await LG(u.options.cloneRequest?e.clone():e,n),query:l,_flag:`router`,asResponse:!0,context:t?.routerContext},a=PK(r,`*`,s);if(a?.length)for(let{data:e,params:t}of a){let n=await e({...i,params:t?{...t}:{},asResponse:!1});if(n instanceof Response)return n}return await u(i)}catch(n){if(t?.onError)try{let r=await t.onError(n,e);if(r instanceof Response)return nK(r)}catch(e){if(RG(e))return nK(e);throw e}if(t?.throwError)throw n;return RG(n)?nK(n):(console.error(`# SERVER_ERROR: `,n),new Response(null,{status:500,statusText:`Internal Server Error`}))}};return{handler:async e=>{let n=await t?.onRequest?.(e);if(n instanceof Response)return n;let r=VG(n)?n:e,i=await a(r),o=await t?.onResponse?.(i,r);return o instanceof Response?o:i},endpoints:e}},RK=4050;function zK(e,t){return RK-GG(e,``,{...t}).length}function BK(e,t){let n=`${e}.`;if(!t.startsWith(n))return null;let r=t.slice(n.length),i=Number(r);return!Number.isSafeInteger(i)||i<0||String(i)!==r?null:i}function VK(e,t){let n={},r=DG(t.headers?.get(`cookie`)||``);for(let[t,i]of r)(t===e||BK(e,t)!==null)&&(n[t]=i);return n}function HK(e,t,n,r){let i=zK(`${t.name}.99`,t.attributes),a=i>0?Math.ceil(t.value.length/i):1/0;if(a<=1)return n[t.name]=t.value,[t];if(a>100)return r.warn(`${e} cookie is too large to store even after chunking, so the cookie cache was skipped. Reduce the cached data size or avoid storing this data in cookies.`),[];let o=[];for(let e=0;e<a;e++){let r=`${t.name}.${e}`,a=e*i,s=t.value.substring(a,a+i);o.push({...t,name:r,value:s}),n[r]=s}return r.debug(`CHUNKING_${e.toUpperCase()}_COOKIE`,{message:`${e} cookie exceeds the ${RK} byte limit and was split into ${a} chunks.`,valueSize:t.value.length,chunkCount:a,chunkSizes:o.map(e=>e.value.length)}),o}function UK(e,t){let n={};for(let r in e)n[r]={name:r,value:``,attributes:{...t,maxAge:0}};return n}const WK=e=>(t,n,r)=>{let i=VK(t,r),a=r.context.logger,o=()=>{let e=UK(i,n);for(let e in i)delete i[e];return e};return{chunk(r,s){let c=o(),l=HK(e,{name:t,value:r,attributes:{...n,...s}},i,a);for(let e of l)c[e.name]=e;return Object.values(c)},clean(){return Object.values(o())},setCookies(e){for(let t of e)r.setCookie(t.name,t.value,t.attributes)}}},GK=WK(`Session`),KK=WK(`Account`);function qK(e,t){let n=e.getCookie(t);if(n)return n;let r=[],i=e.headers?.get(`cookie`);if(!i)return null;for(let[e,n]of DG(i)){let i=BK(t,e);i!==null&&r.push({index:i,value:n})}return r.length>0?(r.sort((e,t)=>e.index-t.index),r.map(e=>e.value).join(``)):null}async function JK(e,t){let n=e.context.authCookies.accountData,r={maxAge:300,...n.attributes},i=await _U(t,e.context.secretConfig,`better-auth-account`,r.maxAge),a=KK(n.name,r,e);a.setCookies(a.chunk(i,r))}async function YK(e){let t=qK(e,e.context.authCookies.accountData.name);if(t){let n=w(await yU(t,e.context.secretConfig,`better-auth-account`));if(n)return n}return null}const XK=Pe(j({disableCookieCache:JW().meta({description:`Disable cookie cache and fetch session from database`}).optional(),disableRefresh:JW().meta({description:`Disable session refresh. Useful for checking session status, without updating the session`}).optional()})),ZK=/* @__PURE__ */ new Map,QK={decode:(e,t=`utf-8`)=>(ZK.has(t)||ZK.set(t,new TextDecoder(t)),ZK.get(t).decode(e)),encode:new TextEncoder().encode},$K={encode:e=>{if(typeof e==`string`&&(e=new TextEncoder().encode(e)),e.byteLength===0)return``;let t=new Uint8Array(e),n=``;for(let e of t)n+=e.toString(16).padStart(2,`0`);return n},decode:e=>{if(!e)return``;if(typeof e==`string`){if(e.length%2!=0||!(/* @__PURE__ */ RegExp(`^[0123456789abcdef]+$`)).test(e))throw Error(`Invalid hexadecimal string`);let t=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=parseInt(e.slice(n,n+2),16);return new TextDecoder().decode(t)}return new TextDecoder().decode(e)}},eq=(e=`SHA-256`,t=`none`)=>{let n={importKey:async(t,n)=>DU().importKey(`raw`,typeof t==`string`?new TextEncoder().encode(t):t,{name:`HMAC`,hash:{name:e}},!1,[n]),sign:async(e,r)=>{typeof e==`string`&&(e=await n.importKey(e,`sign`));let i=await DU().sign(`HMAC`,e,typeof r==`string`?new TextEncoder().encode(r):r);return t===`hex`?$K.encode(i):t===`base64`||t===`base64url`||t===`base64urlnopad`?MU.encode(i,{padding:t!==`base64urlnopad`}):i},verify:async(e,r,i)=>(typeof e==`string`&&(e=await n.importKey(e,`verify`)),t===`hex`&&(i=$K.decode(i)),(t===`base64`||t===`base64url`||t===`base64urlnopad`)&&(i=await jU.decode(i)),DU().verify(`HMAC`,e,typeof i==`string`?new TextEncoder().encode(i):i,typeof r==`string`?new TextEncoder().encode(r):r))};return n};function tq(e){let t=typeof e.baseURL==`string`?e.baseURL:void 0,n=typeof e.baseURL==`object`&&e.baseURL!==null?e.baseURL.protocol:void 0,r=(e.advanced?.useSecureCookies===void 0?n===`https`||n!==`http`&&(t?t.startsWith(`https://`):ae):e.advanced?.useSecureCookies)?`__Secure-`:``,i=!!e.advanced?.crossSubDomainCookies?.enabled,a=i?e.advanced?.crossSubDomainCookies?.domain||(t?new URL(t).hostname:void 0):void 0;if(i&&!a&&!vH(e.baseURL))throw new O(`baseURL is required when crossSubdomainCookies are enabled.`);function o(t,n={}){let o=e.advanced?.cookiePrefix||`better-auth`,s=e.advanced?.cookies?.[t]?.name||`${o}.${t}`,c=e.advanced?.cookies?.[t]?.attributes??{};return{name:`${r}${s}`,attributes:{secure:!!r,sameSite:`lax`,path:`/`,httpOnly:!0,...i?{domain:a}:{},...e.advanced?.defaultCookieAttributes,...n,...c}}}return o}function nq(e){let t=tq(e),n=t(`session_token`,{maxAge:e.session?.expiresIn||hG(`7d`)}),r=t(`session_data`,{maxAge:e.session?.cookieCache?.maxAge||300}),i=t(`account_data`,{maxAge:e.session?.cookieCache?.maxAge||300}),a=t(`dont_remember`);return{sessionToken:{name:n.name,attributes:n.attributes},sessionData:{name:r.name,attributes:r.attributes},dontRememberToken:{name:a.name,attributes:a.attributes},accountData:{name:i.name,attributes:i.attributes}}}async function rq(e,t,n){if(!e.context.options.session?.cookieCache?.enabled)return;let r=QW(t.session,e.context.options.session?.additionalFields),i=tG(e.context.options,t.user),a=e.context.options.session?.cookieCache?.version,o=`1`;if(a){if(typeof a==`string`)o=a;else if(typeof a==`function`){let e=a(t.session,t.user);o=fG(e)?await e:e}}let s={session:r,user:i,updatedAt:Date.now(),version:o},c={...e.context.authCookies.sessionData.attributes,maxAge:n?void 0:e.context.authCookies.sessionData.attributes.maxAge},l=dG(c.maxAge||60,`sec`).getTime(),u=e.context.options.session?.cookieCache?.strategy||`compact`,d;if(u===`jwe`)d=await _U(s,e.context.secretConfig,`better-auth-session`,c.maxAge||300);else if(u===`jwt`){let t=e.context.sessionConfig.cookieCacheSigner;d=t?await t.sign(e,s,c.maxAge||300):await lU(s,e.context.secret,c.maxAge||300)}else d=MU.encode(JSON.stringify({session:s,expiresAt:l,signature:await eq(`SHA-256`,`base64urlnopad`).sign(e.context.secret,JSON.stringify({...s,expiresAt:l}))}),{padding:!1});let f=GK(e.context.authCookies.sessionData.name,c,e);if(f.setCookies(f.chunk(d,c)),e.context.options.account?.storeAccountCookie&&!sq(e,e.context.authCookies.accountData.name)){let n=await YK(e);if(n){if(!GW(e.context.options)||n.userId===t.user.id)await JK(e,n);else{cq(e,e.context.authCookies.accountData);let t=KK(e.context.authCookies.accountData.name,e.context.authCookies.accountData.attributes,e);t.setCookies(t.clean())}}}}async function iq(e,t){let n=e.context.options.session?.cookieCache?.strategy||`compact`;if(n===`jwe`){let n=await yU(t,e.context.secretConfig,`better-auth-session`),r=vG(n);return r?{session:r,expiresAt:n?.exp?n.exp*1e3:Date.now()}:null}if(n===`jwt`){let n=e.context.sessionConfig.cookieCacheSigner;if(n){let r=await n.verify(e,t);return r?{session:r.payload,expiresAt:r.expiresAt}:null}let r=await uU(t,e.context.secret),i=vG(r);return i?{session:i,expiresAt:r?.exp?r.exp*1e3:Date.now()}:null}let r=yG(w(QK.decode(MU.decode(t))));if(!r||!await eq(`SHA-256`,`base64urlnopad`).verify(e.context.secret,JSON.stringify({...r.session,expiresAt:r.expiresAt}),r.signature))return null;let i=vG(r.session);return i?{session:i,expiresAt:r.expiresAt}:null}async function aq(e,t,n,r){let i=await e.getSignedCookie(e.context.authCookies.dontRememberToken.name,e.context.secret);n=n===void 0?!!i:n;let a=e.context.authCookies.sessionToken.attributes,o=n?void 0:e.context.sessionConfig.expiresIn;await e.setSignedCookie(e.context.authCookies.sessionToken.name,t.session.token,e.context.secret,{...a,maxAge:o,...r}),n&&await e.setSignedCookie(e.context.authCookies.dontRememberToken.name,`true`,e.context.secret,e.context.authCookies.dontRememberToken.attributes),await rq(e,t,n),e.context.setNewSession(t)}function oq(e,t){let n=e,r=/* @__PURE__ */ new Set;n.responseHeaders&&r.add(n.responseHeaders),n.context?.responseHeaders&&r.add(n.context.responseHeaders);let i=`${t}=`,a=`${t}.`;for(let e of r){let t=typeof e.getSetCookie==`function`?e.getSetCookie():xG(e.get(`set-cookie`)||``);if(!t.length)continue;let n=t.filter(e=>!e.startsWith(i)&&!e.startsWith(a));if(n.length!==t.length){e.delete(`set-cookie`);for(let t of n)e.append(`set-cookie`,t)}}}function sq(e,t){let n=e,r=/* @__PURE__ */ new Set;n.responseHeaders&&r.add(n.responseHeaders),n.context?.responseHeaders&&r.add(n.context.responseHeaders);let i=`${t}=`,a=`${t}.`;for(let e of r)if((typeof e.getSetCookie==`function`?e.getSetCookie():xG(e.get(`set-cookie`)||``)).some(e=>e.startsWith(i)||e.startsWith(a)))return!0;return!1}function cq(e,t){oq(e,t.name),e.setCookie(t.name,``,{...t.attributes,maxAge:0})}function lq(e,t){if(cq(e,e.context.authCookies.sessionToken),cq(e,e.context.authCookies.sessionData),e.context.options.account?.storeAccountCookie){cq(e,e.context.authCookies.accountData);let t=KK(e.context.authCookies.accountData.name,e.context.authCookies.accountData.attributes,e),n=t.clean();t.setCookies(n)}e.context.oauthConfig.storeStateStrategy===`cookie`&&cq(e,e.context.createAuthCookie(`oauth_state`));let n=GK(e.context.authCookies.sessionData.name,e.context.authCookies.sessionData.attributes,e),r=n.clean();n.setCookies(r),t||cq(e,e.context.authCookies.dontRememberToken)}const uq=VH(`better-auth:oauth-encryption:v1`);function dq(e,t){return BH(XH(cU,VH(e),uq,VH(`better-auth:${t}:v1`),32))}function fq(e,t){return typeof e==`string`?dq(e,t):{keys:new Map(Array.from(e.keys,([e,n])=>[e,dq(n,t)])),currentVersion:e.currentVersion,...e.legacySecret&&{legacySecret:dq(e.legacySecret,t)}}}const pq=xe({callbackURL:A(),codeVerifier:A(),errorURL:A().optional(),newUserURL:A().optional(),expiresAt:ge(),oauthState:A().optional(),link:j({email:A(),userId:KW()}).optional(),requestSignUp:Te().optional(),idTokenNonce:A().optional(),serverContext:ve(A(),Me()).optional()}),mq=e=>`auth-state:${e}`;new Set(Object.keys(pq.shape));var hq=class extends O{code;details;errorURL;constructor(e,t){super(e,t),this.code=t.code,this.details=t.details,this.errorURL=t.errorURL}};async function gq(e,t,n){let r=TH(32);if(e.context.oauthConfig.storeStateStrategy===`cookie`){let i={...t,oauthState:r},a=await zW({key:fq(e.context.secretConfig,`oauth-state-cookie`),data:JSON.stringify(i)}),o=e.context.createAuthCookie(n?.cookieName??`oauth_state`,{maxAge:600});return e.setCookie(o.name,a,o.attributes),{state:r,codeVerifier:t.codeVerifier}}let i=e.context.createAuthCookie(n?.cookieName??`state`,{maxAge:300});await e.setSignedCookie(i.name,r,e.context.secret,i.attributes);let a=/* @__PURE__ */ new Date;if(a.setMinutes(a.getMinutes()+10),!await e.context.internalAdapter.createVerificationValue({value:JSON.stringify({...t,oauthState:r}),identifier:mq(r),expiresAt:a}))throw new hq(`Unable to create verification. Make sure the database adapter is properly working and there is a verification table in the database`,{code:`state_generation_error`});return{state:r,codeVerifier:t.codeVerifier}}async function _q(e,t,n){if(!t)throw new hq(`State not found in OAuth callback`,{code:`state_not_found`});let r=e.context.oauthConfig.storeStateStrategy,i;if(r===`cookie`){let r=e.context.createAuthCookie(n?.cookieName??`oauth_state`),a=e.getCookie(r.name);if(!a)throw new hq(`State mismatch: auth state cookie not found`,{code:`state_mismatch`,details:{state:t}});try{let t=await BW({key:fq(e.context.secretConfig,`oauth-state-cookie`),data:a});i=pq.parse(JSON.parse(t))}catch(e){throw new hq(`State invalid: Failed to decrypt or parse auth state`,{code:`state_invalid`,details:{state:t},cause:e})}if(!i.oauthState||i.oauthState!==t)throw new hq(`State mismatch: OAuth state parameter does not match stored state`,{code:`state_security_mismatch`,details:{state:t},errorURL:i.errorURL});cq(e,r)}else{let r=await e.context.internalAdapter.findVerificationValue(mq(t));if(!r)throw new hq(`State mismatch: verification not found`,{code:`state_mismatch`,details:{state:t}});if(i=pq.parse(JSON.parse(r.value)),i.oauthState!==void 0&&i.oauthState!==t)throw new hq(`State mismatch: OAuth state parameter does not match stored state`,{code:`state_security_mismatch`,details:{state:t},errorURL:i.errorURL});let a=e.context.createAuthCookie(n?.cookieName??`state`),o=await e.getSignedCookie(a.name,e.context.secret);if(!(n?.skipStateCookieCheck??e.context.oauthConfig.skipStateCookieCheck)&&(!o||o!==t))throw new hq(`State mismatch: State not persisted correctly`,{code:`state_security_mismatch`,details:{state:t},errorURL:i.errorURL});cq(e,a),await e.context.internalAdapter.deleteVerificationByIdentifier(mq(t))}if(i.expiresAt<Date.now())throw new hq(`Invalid state: request expired`,{code:`state_mismatch`,details:{expiresAt:i.expiresAt},errorURL:i.errorURL});return i}function vq(e,t){let n;try{n=new URL(e).pathname.replace(/\/+$/,``)||`/`}catch{return`/`}let r=t.replace(/\/+$/,``);return r===``?n:n===r?`/`:n.startsWith(r+`/`)?n.slice(r.length).replace(/\/+$/,``)||`/`:n}const yq=`https://better-auth.invalid`;function bq(e,t){let n=e.startsWith(`/`);if(e.startsWith(`//`)||e.startsWith(`/\\`))throw TypeError(`Expected an absolute or root-relative URL`);let r=n?new URL(e,yq):new URL(e);if(n&&r.origin!==yq)throw TypeError(`Expected an absolute or root-relative URL`);let i=t.toString();if(!i)return e;let a=r.search.endsWith(`&`)?``:`&`;return r.search=r.search?`${r.search}${a}${i}`:i,n?r.href.slice(r.origin.length):r.href}const xq=[`javascript:`,`data:`,`vbscript:`],Sq={NO_CODE:`no_code`,PROVIDER_NOT_FOUND:`oauth_provider_not_found`,ISSUER_MISSING:`issuer_missing`,ISSUER_MISMATCH:`issuer_mismatch`,INVALID_CODE:`invalid_code`,NONCE_BINDING_MISSING:`nonce_binding_missing`,UNABLE_TO_GET_USER_INFO:`unable_to_get_user_info`,NO_CALLBACK_URL:`no_callback_url`,UNABLE_TO_LINK_ACCOUNT:`unable_to_link_account`,EMAIL_DOES_NOT_MATCH:`email_does_not_match`,ACCOUNT_ALREADY_LINKED_TO_DIFFERENT_USER:`account_already_linked_to_different_user`,EMAIL_NOT_FOUND:`email_not_found`,EMAIL_NOT_VERIFIED:`email_not_verified`};function Cq(e,t,n,r){let i=new URLSearchParams({error:n});r&&i.set(`error_description`,r);let a=bq(t,i);throw e.redirect(a)}function wq(e,t){return`${t?.source===`generic`?`Generic OAuth provider "${e}"`:`Provider "${e}"`} did not return an email${t?.source===`id_token`?` in the id token`:``}. Either request the provider's email scope, or create a placeholder via \`mapProfileToUser\`. See https://www.better-auth.com/docs/concepts/oauth#handling-providers-without-email`}const{get:Tq,set:Eq}=XV(()=>null),Dq=async()=>await Tq(),{get:Oq,set:kq}=XV(()=>null),Aq=async e=>{await kq({...await Oq()??{},...e})};function jq(e){return e.requiresIdTokenNonce?TH(32):void 0}async function Mq(e,t){let n=e.body?.callbackURL||e.context.options.baseURL;if(!n)throw D.from(`BAD_REQUEST`,Y.CALLBACK_URL_REQUIRED);let r=t?.codeVerifier??TH(128),i=await Oq(),a=i&&Object.keys(i).length?i:void 0,o={...t?.additionalData?t.additionalData:{},callbackURL:n,codeVerifier:r,errorURL:e.body?.errorCallbackURL,newUserURL:e.body?.newUserCallbackURL,link:t?.link,serverContext:a,expiresAt:Date.now()+6e5,requestSignUp:e.body?.requestSignUp,idTokenNonce:t?.idTokenNonce};await Eq(o);try{return gq(e,o)}catch(t){throw e.context.logger.error(`Failed to create verification`,t),new D(`INTERNAL_SERVER_ERROR`,{message:`Unable to create verification`,cause:t})}}async function Nq(e){let t=e.query.state||e.body?.state,n=e.context.options.onAPIError?.errorURL||`${e.context.baseURL}/error`,r;try{r=await _q(e,t)}catch(t){e.context.logger.error(`Failed to parse state`,t);let r=`internal_server_error`,i=n;t instanceof hq&&(r=t.code===`state_security_mismatch`?`state_mismatch`:t.code,i=t.errorURL||n),Cq(e,i,r)}return r.errorURL||(r.errorURL=n),r&&await Eq(r),r}const Pq={scope:`server`};function Fq(e){return e instanceof k||e instanceof D||e?.name===`APIError`}const Iq={"Cache-Control":`no-store`,Pragma:`no-cache`};function Lq(e,t){Fq(t)&&e&&Object.defineProperty(t,he,{enumerable:!1,configurable:!0,value:e,writable:!1})}const Rq=aK(async()=>({})),zq=aK.create({use:[Rq,aK(async()=>({}))]}),Bq=rK.create({use:[Rq]});function Vq(e,t){let n=t.metadata?.noStore===!0;return async t=>{if(n)for(let[e,n]of Object.entries(Iq))t.setHeader(e,n);try{return await GV(t,()=>e(t))}catch(e){throw Lq(t.responseHeaders,e),e}}}function X(...e){if(e.length===3){let[t,n,r]=e;return Bq(t,n,Vq(r,n))}let[t,n]=e;return Bq(t,Vq(n,t))}function Hq(e){return{...e,metadata:{...e.metadata,SERVER_ONLY:!0}}}X.serverOnly=(e,t)=>X(Hq(e),t);const Uq=/[\u0000-\u001f\u007f-\u009f]/,Wq=`https://better-auth.invalid`,Gq=/%2[fF]|%5[cC]/,Kq=e=>{let t=e;try{t=decodeURIComponent(e)}catch{}let n=[];for(let e of t.split(`/`))e===`..`?n.pop():e!==`.`&&e!==``&&n.push(e);return n.length>0?`/${n.join(`/`)}`:``},qq=e=>{if(Uq.test(e))return null;let t=e.indexOf(`:`);if(t<=0)return null;let n=e.slice(0,t).toLowerCase(),r=e.slice(t+1),i=``;if(r.startsWith(`//`)){r=r.slice(2);let e=r.search(/[/?#]/);e===-1?(i=r,r=``):(i=r.slice(0,e),r=r.slice(e))}let a=r.search(/[?#]/),o=Kq(a===-1?r:r.slice(0,a));return{scheme:n,authority:i.toLowerCase(),path:o}},Jq=e=>{if(!e.startsWith(`/`)||e.startsWith(`//`)||e.includes(`\\`)||Uq.test(e))return!1;let t=e.search(/[?#]/),n=t===-1?e:e.slice(0,t);if(Gq.test(n))return!1;try{return new URL(e,Wq).origin===Wq}catch{return!1}},Yq=(e,t,n)=>{if(e.startsWith(`/`))return n?.allowRelativePaths===!0&&Jq(e);if(t.includes(`*`)||t.includes(`?`)){if(t.includes(`://`))return sH(t)(hH(e)||e);let n=_H(e);return n?sH(t)(n):!1}let r=gH(e);if(r===`http:`||r===`https:`||!r)return t===hH(e);let i=qq(e),a=qq(t);return!i||!a||i.scheme!==a.scheme||a.authority&&i.authority!==a.authority?!1:!a.path||i.path===a.path||i.path.startsWith(`${a.path}/`)};function Xq(e,t,n){let r=!1;return function(...i){return r||=((n?.warn??console.warn)(`[Deprecation] ${t}`),!0),e.apply(this,i)}}function Zq(e){return e.context.skipOriginCheck===!0&&e.context.options.advanced?.disableCSRFCheck===void 0}function Qq(e){let t=e.context.skipOriginCheck;if(t===!0)return!0;if(Array.isArray(t)&&e.request)try{let n=new URL(e.context.baseURL).pathname,r=vq(e.request.url,n);return t.some(e=>{let t=e.replace(/\/+$/,``);return r===t||r.startsWith(`${t}/`)})}catch{}return!1}const $q=Xq(function(){},`disableOriginCheck: true currently also disables CSRF checks. In a future version, disableOriginCheck will ONLY disable URL validation. To keep CSRF disabled, add disableCSRFCheck: true to your config.`),eJ=zq(async e=>{if(e.request?.method===`GET`||e.request?.method===`OPTIONS`||e.request?.method===`HEAD`||!e.request||(await nJ(e),Qq(e)))return;let{body:t,query:n}=e,r=t?.callbackURL||n?.callbackURL,i=t?.redirectTo,a=t?.errorCallbackURL,o=t?.newUserCallbackURL,s=(t,n)=>{if(t){if(typeof t!=`string`)throw D.fromStatus(`BAD_REQUEST`,{message:`Invalid ${n}: expected a string`});if(!e.context.isTrustedOrigin(t,{allowRelativePaths:n!==`origin`}))throw e.context.logger.error(`Invalid ${n}: ${t}`),e.context.logger.info(`If it's a valid URL, please add ${t} to trustedOrigins in your auth config\n`,`Current list of trustedOrigins: ${e.context.trustedOrigins}`),n===`origin`?D.from(`FORBIDDEN`,Y.INVALID_ORIGIN):n===`callbackURL`?D.from(`FORBIDDEN`,Y.INVALID_CALLBACK_URL):n===`redirectURL`?D.from(`FORBIDDEN`,Y.INVALID_REDIRECT_URL):n===`errorCallbackURL`?D.from(`FORBIDDEN`,Y.INVALID_ERROR_CALLBACK_URL):n===`newUserCallbackURL`?D.from(`FORBIDDEN`,Y.INVALID_NEW_USER_CALLBACK_URL):D.fromStatus(`FORBIDDEN`,{message:`Invalid ${n}`})}};r&&s(r,`callbackURL`),i&&s(i,`redirectURL`),a&&s(a,`errorCallbackURL`),o&&s(o,`newUserCallbackURL`)}),tJ=e=>zq(async t=>{if(!t.request||Qq(t))return;let n=e(t),r=(e,n)=>{if(e&&!t.context.isTrustedOrigin(e,{allowRelativePaths:n!==`origin`}))throw t.context.logger.error(`Invalid ${n}: ${e}`),t.context.logger.info(`If it's a valid URL, please add ${e} to trustedOrigins in your auth config\n`,`Current list of trustedOrigins: ${t.context.trustedOrigins}`),n===`origin`?D.from(`FORBIDDEN`,Y.INVALID_ORIGIN):n===`callbackURL`?D.from(`FORBIDDEN`,Y.INVALID_CALLBACK_URL):n===`redirectURL`?D.from(`FORBIDDEN`,Y.INVALID_REDIRECT_URL):n===`errorCallbackURL`?D.from(`FORBIDDEN`,Y.INVALID_ERROR_CALLBACK_URL):n===`newUserCallbackURL`?D.from(`FORBIDDEN`,Y.INVALID_NEW_USER_CALLBACK_URL):D.fromStatus(`FORBIDDEN`,{message:`Invalid ${n}`})},i=Array.isArray(n)?n:[n];for(let e of i)r(e,`callbackURL`)});async function nJ(e,t=!1){let n=e.request?.headers;if(!n||!e.request)return;let r=n.get(`origin`),i=r||n.get(`referer`)||``,a=n.has(`cookie`);if(e.context.skipCSRFCheck)return;if(Zq(e)){e.context.options.advanced?.disableOriginCheck===!0&&$q();return}if(Qq(e)||!(t||a))return;let o=r===`null`&&n.get(`sec-fetch-site`)===`same-origin`?mH(void 0,e.context.options.basePath,e.request,!1,e.context.options.advanced?.trustedProxyHeaders):void 0,s=(o?hH(o):void 0)??i;if(!s||s===`null`)throw D.from(`FORBIDDEN`,Y.MISSING_OR_NULL_ORIGIN);let c=Array.isArray(e.context.options.trustedOrigins)?e.context.trustedOrigins:[...e.context.trustedOrigins,...(await e.context.options.trustedOrigins?.(e.request))?.filter(e=>!!e)||[]];if(!c.some(e=>Yq(s,e)))throw e.context.logger.error(`Invalid origin: ${s}`),e.context.logger.info(`If it's a valid URL, please add ${s} to trustedOrigins in your auth config\n`,`Current list of trustedOrigins: ${c}`),D.from(`FORBIDDEN`,Y.INVALID_ORIGIN)}const rJ=zq(async e=>{e.request&&await iJ(e)});async function iJ(e){let t=e.request;if(!t||e.context.skipCSRFCheck||Zq(e))return;let n=t.headers;if(n.has(`cookie`))return await nJ(e);let r=n.get(`Sec-Fetch-Site`),i=n.get(`Sec-Fetch-Mode`),a=n.get(`Sec-Fetch-Dest`);if(r&&r.trim()||i&&i.trim()||a&&a.trim()){if(r===`cross-site`&&i===`navigate`)throw e.context.logger.error(`Blocked cross-site navigation login attempt (CSRF protection)`,{secFetchSite:r,secFetchMode:i,secFetchDest:a}),D.from(`FORBIDDEN`,Y.CROSS_SITE_NAVIGATION_LOGIN_BLOCKED);return await nJ(e,!0)}if(n.get(`origin`)||n.get(`referer`))return await nJ(e,!0)}const aJ=nee(),oJ=aee();function sJ(e){return cJ(e)||lJ(e)}function cJ(e){return we(aJ,e)}function lJ(e){return we(oJ,e)}function uJ(e){let t=e.toLowerCase();if(t.startsWith(`::ffff:`)){let e=t.substring(7);if(cJ(e))return e}let n=e.split(`:`);if(n.length===7&&n[5]?.toLowerCase()===`ffff`){let e=n[6];if(e&&cJ(e))return e}if(t.includes(`::ffff:`)||t.includes(`:ffff:`)){let t=dJ(e);if(t.length===8&&t[0]===`0000`&&t[1]===`0000`&&t[2]===`0000`&&t[3]===`0000`&&t[4]===`0000`&&t[5]===`ffff`&&t[6]&&t[7])return`${Number.parseInt(t[6].substring(0,2),16)}.${Number.parseInt(t[6].substring(2,4),16)}.${Number.parseInt(t[7].substring(0,2),16)}.${Number.parseInt(t[7].substring(2,4),16)}`}return null}function dJ(e){if(e.includes(`::`)){let t=e.split(`::`),n=t[0]?t[0].split(`:`):[],r=t[1]?t[1].split(`:`):[],i=8-n.length-r.length,a=Array(i).fill(`0000`),o=n.map(e=>e.padStart(4,`0`)),s=r.map(e=>e.padStart(4,`0`));return[...o,...a,...s]}return e.split(`:`).map(e=>e.padStart(4,`0`))}function fJ(e,t){let n=dJ(e);if(t!==void 0&&t<128){let e=Math.max(0,Math.floor(t));return n.map(t=>{if(e<=0)return`0000`;if(e>=16)return e-=16,t;let n=Number.parseInt(t,16)&65535<<16-e&65535;return e=0,n.toString(16).padStart(4,`0`)}).join(`:`).toLowerCase()}return n.join(`:`).toLowerCase()}function pJ(e,t={}){if(cJ(e)||!lJ(e))return e.toLowerCase();let n=uJ(e);return n?n.toLowerCase():fJ(e,t.ipv6Subnet??64)}function mJ(e){if(cJ(e))return Uint8Array.from(e.split(`.`).map(e=>Number(e)));if(!lJ(e))return null;let t=uJ(e);if(t)return Uint8Array.from(t.split(`.`).map(e=>Number(e)));let n=dJ(e),r=/* @__PURE__ */ new Uint8Array(16);for(let e=0;e<8;e++){let t=Number.parseInt(n[e]??`0`,16);r[e*2]=t>>8&255,r[e*2+1]=t&255}return r}const hJ=/^\d+$/;function gJ(e){let t=e.lastIndexOf(`/`),n=mJ(t===-1?e:e.slice(0,t));if(!n)return null;let r=n.length*8;if(t===-1)return{bytes:n,prefix:r};let i=e.slice(t+1);if(!hJ.test(i))return null;let a=Number(i);return a<=r?{bytes:n,prefix:a}:null}function _J(e,t){if(e.length!==t.bytes.length)return!1;let n=t.prefix;for(let r=0;r<e.length&&n>0;r++){let i=n>=8?8:n,a=i===8?255:255<<8-i&255;if(((e[r]??0)&a)!==((t.bytes[r]??0)&a))return!1;n-=8}return!0}function vJ(e){return e.filter(e=>gJ(e)===null)}function yJ(e,t={}){let n=e.split(`,`).map(e=>e.trim()).filter(Boolean);if(n.length===0)return null;let r=(t.trustedProxies??[]).map(gJ).filter(e=>e!==null);if(r.length>0){for(let e=n.length-1;e>=0;e--){let i=n[e],a=i?mJ(i):null;if(!i||!a)return null;if(!r.some(e=>_J(a,e)))return pJ(i,{ipv6Subnet:t.ipv6Subnet})}return null}if(n.length!==1)return null;let i=n[0];return!i||!sJ(i)?null:pJ(i,{ipv6Subnet:t.ipv6Subnet})}const bJ=[`x-forwarded-for`];function xJ(e,t){if(t.advanced?.ipAddress?.disableIpTracking)return null;let n=`headers`in e?e.headers:e,r=t.advanced?.ipAddress?.ipAddressHeaders||bJ;for(let e of r){let r=`get`in n?n.get(e):n[e];if(typeof r==`string`){let e=yJ(r,{ipv6Subnet:t.advanced?.ipAddress?.ipv6Subnet,trustedProxies:t.advanced?.ipAddress?.trustedProxies});if(e)return e}}return ce()||_()?`127.0.0.1`:null}function SJ(e,t){return`${e}|${t}`}const CJ=/* @__PURE__ */ new Map,wJ=1e5;function TJ(){let e=Date.now();for(let[t,n]of CJ)e>=n.expiresAt&&CJ.delete(t);if(CJ.size<=wJ)return;let t=CJ.size-wJ,n=0;for(let e of CJ.keys())if(CJ.delete(e),++n>=t)break}function EJ(e,t,n){let r=t.window*1e3;return e?n-e.lastRequest>=r?{next:{...e,count:1,lastRequest:n},update:!0,allowed:!0,retryAfter:null}:e.count>=t.max?{next:e,update:!0,allowed:!1,retryAfter:OJ(e.lastRequest,t.window)}:{next:{...e,count:e.count+1,lastRequest:n},update:!0,allowed:!0,retryAfter:null}:{next:{key:``,count:1,lastRequest:n},update:!1,allowed:!0,retryAfter:null}}function DJ(e){return new Response(JSON.stringify({message:`Too many requests. Please try again later.`}),{status:429,statusText:`Too Many Requests`,headers:{"Content-Type":`application/json`,"X-Retry-After":e.toString()}})}function OJ(e,t){let n=Date.now(),r=t*1e3;return Math.ceil((e+r-n)/1e3)}function kJ(e){let t=`rateLimit`,n=e.adapter,r=Math.max(...AJ(e)),i=async e=>{let r=(await n.findMany({model:t,where:[{field:`key`,value:e}]}))[0];return typeof r?.lastRequest==`bigint`&&(r.lastRequest=Number(r.lastRequest)),r},a=async(e,s)=>{s.window>r&&(r=s.window);let c=s.window*1e3,l=await i(e),u=Date.now();if(!l)try{return await n.create({model:t,data:{key:e,count:1,lastRequest:u}}),{allowed:!0,retryAfter:null}}catch(t){if(!await i(e))throw t;return a(e,s)}if(u-l.lastRequest>=c)return await n.incrementOne({model:t,where:[{field:`key`,value:e},{field:`lastRequest`,operator:`lte`,value:l.lastRequest}],increment:{},set:{count:1,lastRequest:u}})?(await o(u),{allowed:!0,retryAfter:null}):a(e,s);let d=u-c;if(await n.incrementOne({model:t,where:[{field:`key`,value:e},{field:`lastRequest`,operator:`gt`,value:d},{field:`count`,operator:`lt`,value:s.max}],increment:{count:1},set:{lastRequest:u}}))return{allowed:!0,retryAfter:null};let f=await i(e);return!f||u-f.lastRequest>=c?a(e,s):{allowed:!1,retryAfter:OJ(f.lastRequest,s.window)}},o=async i=>{let a=i-r*1e3;await e.runInBackgroundOrAwait(n.deleteMany({model:t,where:[{field:`lastRequest`,operator:`lt`,value:a}]}).then(()=>void 0).catch(t=>e.logger.error(`Error pruning rate limit rows`,t)))};return{consume:a}}function AJ(e){let t=[e.rateLimit.window,...FJ().map(e=>e.window)];for(let n of e.options.plugins||[])n.rateLimit&&t.push(...n.rateLimit.map(e=>e.window));if(e.rateLimit.customRules)for(let n of Object.values(e.rateLimit.customRules))n&&typeof n!=`function`&&t.push(n.window);let n=t.filter(e=>Number.isFinite(e)&&e>0);return n.length>0?n:[e.rateLimit.window]}function jJ(e,t){if(e.options.rateLimit?.customStorage)return e.options.rateLimit.customStorage;let n=e.rateLimit.storage;if(n===`secondary-storage`){let t=t=>t??e.options.rateLimit?.window??10,n=e.options.secondaryStorage?.increment;if(!n)throw new O(`Secondary-storage rate limiting requires SecondaryStorage.increment.`);return{consume:async(e,r)=>await n(e,t(r.window))<=r.max?{allowed:!0,retryAfter:null}:{allowed:!1,retryAfter:r.window}}}if(n===`memory`){let t=t=>t??e.options.rateLimit?.window??10;return{async consume(e,n){TJ();let r=Date.now(),i=CJ.get(e),a=EJ(i&&r<i.expiresAt?i.data:void 0,n,r);return a.allowed&&CJ.set(e,{data:{...a.next,key:e},expiresAt:r+t(n.window)*1e3}),{allowed:a.allowed,retryAfter:a.retryAfter}}}}return kJ(e)}let MJ=!1;async function NJ(e,t){let n=new URL(t.baseURL).pathname,r=vq(e.url,n),i=t.rateLimit.window,a=t.rateLimit.max,o=xJ(e,t.options);if(!o&&t.options.advanced?.ipAddress?.disableIpTracking)return null;!o&&!MJ&&(t.logger.warn("Rate limiting could not determine a client IP and is falling back to a single shared per-path bucket. Ensure your runtime forwards a trusted client IP header, then set `advanced.ipAddress.ipAddressHeaders` or `advanced.ipAddress.trustedProxies` so the address can be resolved."),MJ=!0);let s=SJ(o??`no-trusted-ip`,r),c=FJ().find(e=>e.pathMatcher(r));c&&(i=c.window,a=c.max);for(let e of t.options.plugins||[])if(e.rateLimit){let t=e.rateLimit.find(e=>e.pathMatcher(r));if(t){i=t.window,a=t.max;break}}if(t.rateLimit.customRules){let n=Object.keys(t.rateLimit.customRules).find(e=>e.includes(`*`)?sH(e)(r):e===r);if(n){let r=t.rateLimit.customRules[n],o=typeof r==`function`?await r(e,{window:i,max:a}):r;if(o&&(i=o.window,a=o.max),o===!1)return null}}return{key:s,currentWindow:i,currentMax:a}}async function PJ(e,t){if(!t.rateLimit.enabled)return;let n=await NJ(e,t);if(!n)return;let{key:r,currentWindow:i,currentMax:a}=n,o=jJ(t,{window:i}),s={window:i,max:a},{allowed:c,retryAfter:l}=await o.consume(r,s);if(!c)return DJ(l??i)}function FJ(){return[{pathMatcher(e){return e.startsWith(`/sign-in`)||e.startsWith(`/sign-up`)||e.startsWith(`/change-password`)||e.startsWith(`/change-email`)},window:10,max:3},{pathMatcher(e){return e===`/request-password-reset`||e===`/send-verification-email`||e.startsWith(`/forget-password`)||e===`/email-otp/send-verification-otp`||e===`/email-otp/request-password-reset`},window:60,max:3}]}const{get:IJ,set:Jde}=XV(()=>!1),LJ=()=>X(`/get-session`,{method:[`GET`,`POST`],operationId:`getSession`,query:XK,requireHeaders:!0,metadata:{openapi:{operationId:`getSession`,description:`Get the current session`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:[`object`,`null`],properties:{session:{$ref:`#/components/schemas/Session`},user:{$ref:`#/components/schemas/User`}},required:[`session`,`user`]}}}}}}}},async e=>{e.setHeader(`cache-control`,`no-store`),e.setHeader(`pragma`,`no-cache`);let t=e.context.options.session?.deferSessionRefresh,n=e.method===`POST`;if(n&&!t)throw D.from(`METHOD_NOT_ALLOWED`,Y.METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED);try{let r=e.context.options.session?.cookieCache?.enabled===!0,i=await e.getSignedCookie(e.context.authCookies.sessionToken.name,e.context.secret);if(!i&&r)return null;let a=qK(e,e.context.authCookies.sessionData.name);if(a&&!r){let t=GK(e.context.authCookies.sessionData.name,e.context.authCookies.sessionData.attributes,e);t.setCookies(t.clean())}if(!i)return null;let o=r&&!e.query?.disableCookieCache,s=o&&a?await iq(e,a):null;o&&a&&!s&&cq(e,e.context.authCookies.sessionData);let c=await e.getSignedCookie(e.context.authCookies.dontRememberToken.name,e.context.secret);if(s?.session){let t=s.session,n=t.session.token!==i;if(!n){let r=e.context.options.session?.cookieCache?.version,i=`1`;if(r){if(typeof r==`string`)i=r;else if(typeof r==`function`){let e=r(t.session,t.user);i=e instanceof Promise?await e:e}}n=(t.version||`1`)!==i}if(!n){let e=Date.now(),r=new Date(t.session.expiresAt).getTime();n=s.expiresAt<e||!Number.isFinite(r)||r<e}if(n)cq(e,e.context.authCookies.sessionData);else{let n=e.context.sessionConfig.cookieRefreshCache;if(n===!1){e.context.session=t;let n=rG(e.context.options,{...t.session,expiresAt:new Date(t.session.expiresAt),createdAt:new Date(t.session.createdAt),updatedAt:new Date(t.session.updatedAt)}),r=tG(e.context.options,{...t.user,createdAt:new Date(t.user.createdAt),updatedAt:new Date(t.user.updatedAt)});return e.json({session:n,user:r})}let r=s.expiresAt-Date.now(),i=n.updateAge*1e3,a=await IJ();if(r<i&&!a){let n={session:{...t.session},user:t.user,updatedAt:Date.now()};await rq(e,n,!1);let r=e.context.authCookies.sessionToken.attributes,i=c?void 0:e.context.sessionConfig.expiresIn;await e.setSignedCookie(e.context.authCookies.sessionToken.name,t.session.token,e.context.secret,{...r,maxAge:i});let a=rG(e.context.options,{...n.session,expiresAt:new Date(n.session.expiresAt),createdAt:new Date(n.session.createdAt),updatedAt:new Date(n.session.updatedAt)}),o=tG(e.context.options,{...n.user,createdAt:new Date(n.user.createdAt),updatedAt:new Date(n.user.updatedAt)});return e.context.session={session:a,user:o},e.json({session:a,user:o})}let o=rG(e.context.options,{...t.session,expiresAt:new Date(t.session.expiresAt),createdAt:new Date(t.session.createdAt),updatedAt:new Date(t.session.updatedAt)}),l=tG(e.context.options,{...t.user,createdAt:new Date(t.user.createdAt),updatedAt:new Date(t.user.updatedAt)});return e.context.session={session:o,user:l},e.json({session:o,user:l})}}let l=await e.context.internalAdapter.findSession(i);if(e.context.session=l,!l||l.session.expiresAt</* @__PURE__ */ new Date)return lq(e),l&&(!t||n)&&await e.context.internalAdapter.deleteSession(l.session.token),e.json(null);if(c||e.query?.disableRefresh){let t=rG(e.context.options,l.session),n=tG(e.context.options,l.user);return e.json({session:t,user:n})}let u=e.context.sessionConfig.expiresIn,d=e.context.sessionConfig.updateAge,f=l.session.expiresAt.valueOf()-u*1e3+d*1e3<=Date.now(),p=e.query?.disableRefresh||e.context.options.session?.disableSessionRefresh,m=await IJ(),h=f&&!p&&!m;if(t&&!n){await rq(e,l,!!c);let t=rG(e.context.options,l.session),n=tG(e.context.options,l.user);return e.json({session:t,user:n,needsRefresh:h})}if(h){let t=await e.context.internalAdapter.updateSession(l.session.token,{expiresAt:dG(e.context.sessionConfig.expiresIn,`sec`),updatedAt:/* @__PURE__ */ new Date});if(!t)throw lq(e),D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_SESSION);let n=e.context.sessionConfig.expiresIn;await aq(e,{session:t,user:l.user},!1,{maxAge:n});let r=rG(e.context.options,t),i=tG(e.context.options,l.user);return e.json({session:r,user:i})}await rq(e,l,!!c);let g=rG(e.context.options,l.session),_=tG(e.context.options,l.user);return e.json({session:g,user:_})}catch(t){throw Fq(t)?t:(e.context.logger.error(`INTERNAL_SERVER_ERROR`,t),D.from(`INTERNAL_SERVER_ERROR`,Y.FAILED_TO_GET_SESSION))}}),RJ=e=>UW(e.context.options),zJ=async(e,t)=>{if(e.context.session)return e.context.session;let n=await LJ()({...e,method:`GET`,asResponse:!1,headers:e.headers,returnHeaders:!0,returnStatus:!1,query:{...t,...e.query,disableCookieCache:t?.disableCookieCache||e.query?.disableCookieCache,disableRefresh:t?.disableRefresh||e.query?.disableRefresh}}).catch(()=>null);return n?(n.headers&&n.headers.forEach((t,n)=>{let r=n.toLowerCase();r!==`cache-control`&&r!==`pragma`&&(r===`set-cookie`?e.responseHeaders.append(n,t):e.responseHeaders.set(n,t))}),e.context.session=n.response,n.response):(e.context.session=null,null)},BJ=async e=>RJ(e)?(e.context.session=null,zJ(e,{disableCookieCache:!0})):zJ(e),VJ=zq(async e=>{let t=await zJ(e);if(!t?.session)throw D.from(`UNAUTHORIZED`,{message:`Unauthorized`,code:`UNAUTHORIZED`});return{session:t}}),HJ=zq(async e=>{let t=await BJ(e);if(!t?.session)throw D.from(`UNAUTHORIZED`,{message:`Unauthorized`,code:`UNAUTHORIZED`});return{session:t}});zq(async e=>{let t=await zJ(e);if(!t?.session&&(e.request||e.headers))throw D.from(`UNAUTHORIZED`,{message:`Unauthorized`,code:`UNAUTHORIZED`});return{session:t}});const UJ=zq(async e=>{let t=await zJ(e);if(!t?.session)throw D.from(`UNAUTHORIZED`,{message:`Unauthorized`,code:`UNAUTHORIZED`});if(e.context.sessionConfig.freshAge!==0){let n=new Date(t.session.createdAt).getTime(),r=e.context.sessionConfig.freshAge*1e3;if(Date.now()-n>=r)throw D.from(`FORBIDDEN`,Y.SESSION_NOT_FRESH)}return{session:t}}),WJ=()=>X(`/list-sessions`,{method:`GET`,operationId:`listUserSessions`,use:[UJ],requireHeaders:!0,metadata:{openapi:{operationId:`listUserSessions`,description:`List all active sessions for the user`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`array`,items:{$ref:`#/components/schemas/Session`}}}}}}}}},async e=>{try{let t=(await e.context.internalAdapter.listSessions(e.context.session.user.id,{onlyActiveSessions:!0})).filter(e=>e.expiresAt>/* @__PURE__ */ new Date);return e.json(t.map(t=>rG(e.context.options,t)))}catch(t){throw e.context.logger.error(t),e.error(`INTERNAL_SERVER_ERROR`)}}),GJ=X(`/revoke-session`,{method:`POST`,body:j({token:A().meta({description:`The token to revoke`})}),use:[HJ],requireHeaders:!0,metadata:{openapi:{description:`Revoke a single session`,requestBody:{content:{"application/json":{schema:{type:`object`,properties:{token:{type:`string`,description:`The token to revoke`}},required:[`token`]}}}},responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{status:{type:`boolean`,description:`Indicates if the session was revoked successfully`}},required:[`status`]}}}}}}}},async e=>{let t=e.body.token;if((await e.context.internalAdapter.findSession(t))?.session.userId===e.context.session.user.id)try{await e.context.internalAdapter.deleteSession(t)}catch(t){throw e.context.logger.error(t&&typeof t==`object`&&`name`in t?t.name:``,t),D.from(`INTERNAL_SERVER_ERROR`,{message:`Internal Server Error`,code:`INTERNAL_SERVER_ERROR`})}return e.json({status:!0})}),KJ=X(`/revoke-sessions`,{method:`POST`,use:[HJ],requireHeaders:!0,metadata:{openapi:{description:`Revoke all sessions for the user`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{status:{type:`boolean`,description:`Indicates if all sessions were revoked successfully`}},required:[`status`]}}}}}}}},async e=>{try{await e.context.internalAdapter.deleteUserSessions(e.context.session.user.id)}catch(t){throw e.context.logger.error(t&&typeof t==`object`&&`name`in t?t.name:``,t),D.from(`INTERNAL_SERVER_ERROR`,{message:`Internal Server Error`,code:`INTERNAL_SERVER_ERROR`})}return e.json({status:!0})}),qJ=X(`/revoke-other-sessions`,{method:`POST`,requireHeaders:!0,use:[HJ],metadata:{openapi:{description:`Revoke all other sessions for the user except the current one`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{status:{type:`boolean`,description:`Indicates if all other sessions were revoked successfully`}},required:[`status`]}}}}}}}},async e=>{let t=e.context.session;if(!t.user)throw D.from(`UNAUTHORIZED`,{message:`Unauthorized`,code:`UNAUTHORIZED`});let n=(await e.context.internalAdapter.listSessions(t.user.id)).filter(e=>e.expiresAt>/* @__PURE__ */ new Date).filter(t=>t.token!==e.context.session.session.token);return await Promise.all(n.map(t=>e.context.internalAdapter.deleteSession(t.token))),e.json({status:!0})});function JJ(e){if(!e?.method)throw new D(`FORBIDDEN`,{code:`validation_source_missing`,message:`User validation source is required`});if(e.method===`oauth`&&!e.oauth?.providerId)throw new D(`FORBIDDEN`,{code:`validation_source_missing`,message:`OAuth user validation source requires oauth.providerId`});if((e.method===`sso-oidc`||e.method===`sso-saml`)&&!e.sso?.providerId)throw new D(`FORBIDDEN`,{code:`validation_source_missing`,message:`SSO user validation source requires sso.providerId`})}async function YJ(e,t){let n=e.context.options.user?.validateUserInfo;if(!n)return;JJ(t.source);let r;try{r=await n(t,e)}catch(t){throw e.context.logger.error(`validateUserInfo callback threw`,t),new D(`FORBIDDEN`,{code:`validation_failed`,message:`User validation failed`})}if(r?.error)throw new D(`FORBIDDEN`,{code:r.error,message:r.errorDescription||r.error})}const XJ=async e=>{let t=await NU(`SHA-256`).digest(new TextEncoder().encode(e));return MU.encode(new Uint8Array(t),{padding:!1})};async function ZJ(e,t){return!t||t===`plain`?e:t===`hashed`?XJ(e):typeof t==`object`&&`hash`in t?t.hash(e):e}function QJ(e,t){if(t){if(typeof t==`object`&&`default`in t){if(t.overrides){for(let[n,r]of Object.entries(t.overrides))if(e.startsWith(n))return r}return t.default}return t}}const $J=`better_auth.operation_id`,eY=`better_auth.hook.type`,tY=`better_auth.context`;function nY(e,t){let n=ie(t.options),r=t.hooks;async function i(t,i,a){let o=UV(),s=t;for(let{source:e,hooks:t}of r){let r=t[i]?.create?.before;if(r){let t=await n(`db create.before ${i}`,{[eY]:`create.before`,[ne]:i,[tY]:e},()=>r(s,o));if(t===!1)return null;typeof t==`object`&&`data`in t&&(s={...s,...t.data})}}let c=null;(!a||a.executeMainFn)&&(c=await(await $V(e)).create({model:i,data:s,forceAllowId:!0})),a?.fn&&(c=await a.fn(c??s));for(let{source:e,hooks:t}of r){let r=t[i]?.create?.after;r&&await nH(async()=>{await n(`db create.after ${i}`,{[eY]:`create.after`,[ne]:i,[tY]:e},()=>r(c,o))})}return c}async function a(t,i,a,o){let s=UV(),c=t;for(let{source:e,hooks:i}of r){let r=i[a]?.update?.before;if(r){let i=await n(`db update.before ${a}`,{[eY]:`update.before`,[ne]:a,[tY]:e},()=>r(t,s));if(i===!1)return null;typeof i==`object`&&`data`in i&&(c={...c,...i.data})}}let l=o?await o.fn(c):null,u=!o||o.executeMainFn?await(await $V(e)).update({model:a,update:c,where:i}):l;for(let{source:e,hooks:t}of r){let r=t[a]?.update?.after;r&&await nH(async()=>{await n(`db update.after ${a}`,{[eY]:`update.after`,[ne]:a,[tY]:e},()=>r(u,s))})}return u}async function o(t,i,a,o){let s=UV(),c=t;for(let{source:e,hooks:i}of r){let r=i[a]?.update?.before;if(r){let i=await n(`db updateMany.before ${a}`,{[eY]:`updateMany.before`,[ne]:a,[tY]:e},()=>r(t,s));if(i===!1)return null;typeof i==`object`&&`data`in i&&(c={...c,...i.data})}}let l=o?await o.fn(c):null,u=!o||o.executeMainFn?await(await $V(e)).updateMany({model:a,update:c,where:i}):l;for(let{source:e,hooks:t}of r){let r=t[a]?.update?.after;r&&await nH(async()=>{await n(`db updateMany.after ${a}`,{[eY]:`updateMany.after`,[ne]:a,[tY]:e},()=>r(u,s))})}return u}async function s(t,i,a){let o=UV(),s=null;try{s=(await(await $V(e)).findMany({model:i,where:t,limit:1}))[0]||null}catch{}if(s)for(let{source:e,hooks:t}of r){let r=t[i]?.delete?.before;if(r&&await n(`db delete.before ${i}`,{"better_auth.hook.type":`delete.before`,"db.collection.name":i,"better_auth.context":e},()=>r(s,o))===!1)return null}let c=a?await a.fn(t):null,l=(!a||a.executeMainFn)&&s?await(await $V(e)).delete({model:i,where:t}):c;if(s)for(let{source:e,hooks:t}of r){let r=t[i]?.delete?.after;r&&await nH(async()=>{await n(`db delete.after ${i}`,{[eY]:`delete.after`,[ne]:i,[tY]:e},()=>r(s,o))})}return l}async function c(t,i,a){let o=UV(),s=[];try{s=await(await $V(e)).findMany({model:i,where:t})}catch{}for(let e of s)for(let{source:t,hooks:a}of r){let r=a[i]?.delete?.before;if(r&&await n(`db delete.before ${i}`,{"better_auth.hook.type":`delete.before`,"db.collection.name":i,"better_auth.context":t},()=>r(e,o))===!1)return null}let c=a?await a.fn(t):null,l=!a||a.executeMainFn?await(await $V(e)).deleteMany({model:i,where:t}):c;for(let e of s)for(let{source:t,hooks:a}of r){let r=a[i]?.delete?.after;r&&await nH(async()=>{await n(`db delete.after ${i}`,{[eY]:`delete.after`,[ne]:i,[tY]:t},()=>r(e,o))})}return l}async function l(t,i,a,o){let s=UV(),c=r.flatMap(({source:e,hooks:n})=>{let r=n[t]?.delete?.before;return r?[{source:e,fn:r}]:[]}),l=o??null;if(c.length){if(!l)try{l=(await(await $V(e)).findMany({model:t,where:i,limit:1}))[0]||null}catch{}if(l){for(let{source:e,fn:r}of c)if(await n(`db delete.before ${t}`,{"better_auth.hook.type":`delete.before`,"db.collection.name":t,"better_auth.context":e},()=>r(l,s))===!1)return null}}let u=await a();if(!u)return null;for(let{source:e,hooks:i}of r){let r=i[t]?.delete?.after;r&&await nH(async()=>{await n(`db delete.after ${t}`,{[eY]:`delete.after`,[ne]:t,[tY]:e},()=>r(u,s))})}return u}return{createWithHooks:i,updateWithHooks:a,updateManyWithHooks:o,deleteWithHooks:s,deleteManyWithHooks:c,consumeOneWithHooks:l}}function rY(e,t=Date.now()){let n=typeof e==`number`?e:e.getTime();return Math.max(Math.floor((n-t)/1e3),0)}const iY=(e,t)=>{let n=t.logger,r=t.options,i=r.secondaryStorage,a=/* @__PURE__ */ new Map,o=r.session?.expiresIn||604800,{createWithHooks:s,updateWithHooks:c,updateManyWithHooks:l,deleteWithHooks:u,deleteManyWithHooks:d,consumeOneWithHooks:f}=nY(e,t),p=t=>{let n=[...t,{field:`expiresAt`,value:/* @__PURE__ */ new Date,operator:`gt`}];return d(n,`session`,{fn:async()=>{await(await $V(e)).updateMany({model:`session`,where:n,update:{expiresAt:/* @__PURE__ */ new Date}})},executeMainFn:!1})};async function m(e){if(!i)return;let t=await i.get(`active-sessions-${e.id}`);if(!t)return;let n=Date.now(),r=(w(t)||[]).filter(e=>e.expiresAt>n);await Promise.all(r.map(async({token:t})=>{let r=await i.get(t);if(!r)return;let a=w(r);if(!a)return;let o=rY(a.session.expiresAt,n);await i.set(t,JSON.stringify({session:a.session,user:e}),Math.floor(o))}))}async function h(e){if(!i)return[];let t=await i.get(`active-sessions-${e}`);return t&&w(t)||[]}async function g(e,t){if(!i)return;let n=new Set(t.map(e=>e.token));for(let{token:e}of t)await i.delete(e);let r=`active-sessions-${e}`,a=await h(e),o=Date.now(),s=a.filter(e=>e.expiresAt>o&&!n.has(e.token));s.sort((e,t)=>e.expiresAt-t.expiresAt);let c=s.at(-1)?.expiresAt;c?await i.set(r,JSON.stringify(s),rY(c,o)):await i.delete(r)}async function _(e,t){if(!i)return;let r=t??await h(e);await nH(()=>g(e,r),{onError(e){n.error(`Failed to delete committed user sessions from secondary storage`,e)}})}async function v(e,t){let n=a.get(e)??Promise.resolve(),r,i=new Promise(e=>{r=e}),o=n.catch(()=>{}).then(()=>i);a.set(e,o),await n.catch(()=>{});try{return await t()}finally{r(),a.get(e)===o&&a.delete(e)}}return{createOAuthUser:async(t,n)=>tH(e,async()=>{let e=await s({createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,...t,email:t.email?.toLowerCase()},`user`,void 0);if(!e)throw new D(`BAD_REQUEST`,{message:`Failed to create user`});return{user:e,account:await s({...n,userId:e.id,createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date},`account`,void 0)}}),createUser:async(e,t)=>{let i={createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,...e,email:e.email?.toLowerCase()};if(r.user?.validateUserInfo){let e={...t,action:`create-user`};JJ(e);let r;try{r=WV()}catch(e){throw n.error(`Unable to run validateUserInfo: missing endpoint context`,e),new D(`FORBIDDEN`,{code:`validation_context_missing`,message:`User validation requires an endpoint context`})}await YJ(r,{user:i,source:e})}return await s(i,`user`,void 0)},createAccount:async e=>await s({createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,...e},`account`,void 0),listSessions:async(n,r)=>{if(i){let e=await i.get(`active-sessions-${n}`);if(!e)return[];let r=w(e)||[],a=Date.now(),o=/* @__PURE__ */ new Set,s=[];for(let{token:e,expiresAt:n}of r){if(n<=a||o.has(e))continue;o.add(e);let r=await i.get(e);if(r)try{let e=typeof r==`string`?JSON.parse(r):r;if(!e?.session)continue;s.push(rG(t.options,{...e.session,expiresAt:new Date(e.session.expiresAt)}))}catch{continue}}return s}return await(await $V(e)).findMany({model:`session`,where:[{field:`userId`,value:n},...r?.onlyActiveSessions?[{field:`expiresAt`,value:/* @__PURE__ */ new Date,operator:`gt`}]:[]]})},listUsers:async(t,n,r,i)=>await(await $V(e)).findMany({model:`user`,limit:t,offset:n,sortBy:r,where:i}),countTotalUsers:async t=>{let n=await(await $V(e)).count({model:`user`,where:t});return typeof n==`string`?parseInt(n):n},deleteUser:async e=>{let t=await h(e);(!i||r.session?.storeSessionInDatabase)&&await d([{field:`userId`,value:e}],`session`,void 0),await d([{field:`userId`,value:e}],`account`,void 0),await u([{field:`id`,value:e}],`user`,void 0)!==null&&await _(e,t)},createSession:async(a,c,l,u,d)=>{let f=await(async()=>{let e=UV();return e?.headers||e?.request?.headers})(),p=r.session?.storeSessionInDatabase,m=p===!0&&r.session?.preserveSessionInDatabase!==!0,{id:h,...g}=l||{},_;if(i&&!p){let e=t.generateId({model:`session`});_=e===!1?Re():e}let v=lG(r),y={..._?{id:_}:{},ipAddress:f&&xJ(f,r)||``,userAgent:f?.get(`user-agent`)||``,...g,expiresAt:dG(c?86400:o,`sec`),userId:a,token:Re(32),createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,...v,...u?g:{}},b=async t=>{if(!i)return t;let n=await i.get(`active-sessions-${a}`),r=[],o=Date.now();n&&(r=w(n)||[],r=r.filter(e=>e.expiresAt>o&&e.token!==y.token));let s=[...r,{token:y.token,expiresAt:y.expiresAt.getTime()}].sort((e,t)=>e.expiresAt-t.expiresAt),c=rY(s.at(-1)?.expiresAt??y.expiresAt.getTime(),o);c>0&&await i.set(`active-sessions-${a}`,JSON.stringify(s),c);let l=await(await $V(e)).findOne({model:`user`,where:[{field:`id`,value:a}]}),u=rY(y.expiresAt,o);return u>0&&await i.set(y.token,JSON.stringify({session:t,user:l}),u),t},x=await s(y,`session`,i?{fn:async e=>d?.deferSecondaryStorageWrites?e:b(e),executeMainFn:p}:void 0);return i&&d?.deferSecondaryStorageWrites&&x&&await nH(async()=>{await b(x)},m?{onError(e){n.error(`Failed to mirror committed session to secondary storage`,e)}}:void 0),x},findSession:async n=>{if(i){let e=await i.get(n);if(!e&&(!r.session?.storeSessionInDatabase||t.options.session?.preserveSessionInDatabase))return null;if(e){let n=w(e);return n?{session:rG(t.options,{...n.session,expiresAt:new Date(n.session.expiresAt),createdAt:new Date(n.session.createdAt),updatedAt:new Date(n.session.updatedAt)}),user:tG(t.options,{...n.user,createdAt:new Date(n.user.createdAt),updatedAt:new Date(n.user.updatedAt)})}:null}}let a=await(await $V(e)).findOne({model:`session`,where:[{value:n,field:`token`}],join:{user:!0}});if(!a)return null;let{user:o,...s}=a;return o?{session:rG(t.options,s),user:tG(t.options,o)}:null},findSessions:async(t,n)=>{if(i){let e=[];for(let r of t){let t=await i.get(r);if(t)try{let r=typeof t==`string`?JSON.parse(t):t;if(!r)continue;let i=new Date(r.session.expiresAt);if(n?.onlyActiveSessions&&i<=/* @__PURE__ */ new Date)continue;let a={session:{...r.session,expiresAt:new Date(r.session.expiresAt)},user:{...r.user,createdAt:new Date(r.user.createdAt),updatedAt:new Date(r.user.updatedAt)}};e.push(a)}catch{continue}}return e}let r=await(await $V(e)).findMany({model:`session`,where:[{field:`token`,value:t,operator:`in`},...n?.onlyActiveSessions?[{field:`expiresAt`,value:/* @__PURE__ */ new Date,operator:`gt`}]:[]],join:{user:!0}});return!r.length||r.some(e=>!e.user)?[]:r.map(e=>{let{user:t,...n}=e;return{session:n,user:t}})},updateSession:async(e,n)=>await c(n,[{field:`token`,value:e}],`session`,i?{async fn(n){let r=await i.get(e);if(!r)return null;let a=w(r);if(!a)return null;let o={...a.session,...n,expiresAt:new Date(n.expiresAt??a.session.expiresAt),createdAt:new Date(a.session.createdAt),updatedAt:new Date(n.updatedAt??a.session.updatedAt)},s=rG(t.options,o),c=Date.now(),l=new Date(s.expiresAt).getTime(),u=rY(l,c);if(u>0){await i.set(e,JSON.stringify({session:s,user:a.user}),u);let t=`active-sessions-${s.userId}`,n=await i.get(t),r=(n&&w(n)||[]).filter(t=>t.token!==e&&t.expiresAt>c).concat([{token:e,expiresAt:l}]).sort((e,t)=>e.expiresAt-t.expiresAt),o=r.at(-1)?.expiresAt;o&&o>c?await i.set(t,JSON.stringify(r),rY(o,c)):await i.delete(t)}return s},executeMainFn:r.session?.storeSessionInDatabase}:void 0),deleteSession:async e=>{if(i){let a=await i.get(e);if(a){let{session:t}=w(a)??{};if(!t){n.error(`Session not found in secondary storage`);return}let r=t.userId,o=await i.get(`active-sessions-${r}`);if(o){let t=w(o)||[],n=Date.now(),a=t.filter(t=>t.expiresAt>n&&t.token!==e),s=a.sort((e,t)=>e.expiresAt-t.expiresAt).at(-1)?.expiresAt;a.length>0&&s&&s>Date.now()?await i.set(`active-sessions-${r}`,JSON.stringify(a),rY(s,n)):await i.delete(`active-sessions-${r}`)}else n.error(`Active sessions list not found in secondary storage`)}if(await i.delete(e),!r.session?.storeSessionInDatabase)return;if(t.options.session?.preserveSessionInDatabase){await p([{field:`token`,value:e}]);return}}await u([{field:`token`,value:e}],`session`,void 0)},deleteAccounts:async e=>{await d([{field:`userId`,value:e}],`account`,void 0)},deleteAccount:async e=>{await u([{field:`id`,value:e}],`account`,void 0)},deleteUserSessions:async e=>{let n=await h(e);if(i){if(!r.session?.storeSessionInDatabase){await _(e,n);return}if(t.options.session?.preserveSessionInDatabase){await p([{field:`userId`,value:e}])!==null&&await _(e,n);return}}await d([{field:`userId`,value:e}],`session`,void 0)!==null&&await _(e,n)},deleteSessions:async e=>{if(i){if(await Promise.all(e.map(e=>i.delete(e))),!r.session?.storeSessionInDatabase)return;if(t.options.session?.preserveSessionInDatabase){await p([{field:`token`,value:e,operator:`in`}]);return}}await d([{field:`token`,value:e,operator:`in`}],`session`,void 0)},findAccountOwnerByKey:async({providerId:t,accountId:n})=>{let r=await(await $V(e)).findMany({model:`account`,where:[{field:`providerId`,value:t},{field:`accountId`,value:n}],limit:2,join:{user:!0}});if(r.length>1)throw new O(`Multiple accounts match the same accountId for provider ${JSON.stringify(t)}. Resolve duplicate account identities before continuing.`);let i=r[0];if(!i)return null;let{user:a,...o}=i;return a?{kind:`owned`,user:a,account:o}:{kind:`orphaned`,account:o}},findUserByEmail:async(t,n)=>{let r=await(await $V(e)).findOne({model:`user`,where:[{value:t.toLowerCase(),field:`email`}],join:{...n?.includeAccounts?{account:!0}:{}}});if(!r)return null;let{account:i,...a}=r;return{user:a,accounts:i??[]}},findUserById:async t=>t?await(await $V(e)).findOne({model:`user`,where:[{field:`id`,value:t}]}):null,linkAccount:async e=>await s({createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,...e},`account`,void 0),updateUser:async(e,t)=>{let r=await c({...t,...t.email?{email:t.email.toLowerCase()}:{}},[{field:`id`,value:e}],`user`,void 0);return await nH(()=>m(r),{onError(e){n.error(`Failed to refresh committed user sessions in secondary storage`,e)}}),r},updateUserByEmail:async(e,t)=>{let r=await c({...t,...t.email?{email:t.email.toLowerCase()}:{}},[{field:`email`,value:e.toLowerCase()}],`user`,void 0);return await nH(()=>m(r),{onError(e){n.error(`Failed to refresh committed user sessions in secondary storage`,e)}}),r},updatePassword:async(e,t)=>{await l({password:t},[{field:`userId`,value:e},{field:`providerId`,value:`credential`},{field:`accountId`,value:e}],`account`,void 0)},findAccounts:async t=>await(await $V(e)).findMany({model:`account`,where:[{field:`userId`,value:t}]}),findCredentialAccount:async t=>(await $V(e)).findOne({model:`account`,where:[{field:`userId`,value:t},{field:`providerId`,value:`credential`},{field:`accountId`,value:t}]}),findAccountByKey:async({providerId:t,accountId:n})=>{let r=await(await $V(e)).findMany({model:`account`,limit:2,where:[{field:`providerId`,value:t},{field:`accountId`,value:n}]});if(r.length>1)throw new O(`Multiple accounts match the same accountId for provider ${JSON.stringify(t)}. Resolve duplicate account identities before continuing.`);return r[0]??null},findAccountByUserId:async t=>await(await $V(e)).findMany({model:`account`,where:[{field:`userId`,value:t}]}),updateAccount:async(e,t)=>await c(t,[{field:`id`,value:e}],`account`,void 0),createVerificationValue:async e=>{let t=QJ(e.identifier,r.verification?.storeIdentifier),n=await ZJ(e.identifier,t);return await s({createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,...e,identifier:n},`verification`,i?{async fn(e){let t=rY(e.expiresAt);return t>0&&await i.set(`verification:${n}`,JSON.stringify(e),t),e},executeMainFn:r.verification?.storeInDatabase}:void 0)},findVerificationValue:async t=>{let n=QJ(t,r.verification?.storeIdentifier),a=await ZJ(t,n);if(i){let e=await i.get(`verification:${a}`);if(e){let t=w(e);if(t)return t}if(n&&n!==`plain`){let e=await i.get(`verification:${t}`);if(e){let t=w(e);if(t)return t}}if(!r.verification?.storeInDatabase)return null}let o=await $V(e);async function s(e){return o.findMany({model:`verification`,where:[{field:`identifier`,value:e}],sortBy:{field:`createdAt`,direction:`desc`},limit:1})}let c=await s(a);return!c.length&&n&&n!==`plain`&&(c=await s(t)),r.verification?.disableCleanup||await d([{field:`expiresAt`,value:/* @__PURE__ */ new Date,operator:`lt`}],`verification`,void 0),c[0]||null},deleteVerificationByIdentifier:async e=>{let t=await ZJ(e,QJ(e,r.verification?.storeIdentifier));i&&await i.delete(`verification:${t}`),(!i||r.verification?.storeInDatabase)&&await u([{field:`identifier`,value:t}],`verification`,void 0)},consumeVerificationValue:async t=>{let n=QJ(t,r.verification?.storeIdentifier),a=await ZJ(t,n),o=n&&n!==`plain`?[a,t]:[a],s=e=>{if(!e)return null;let t=typeof e==`string`?w(e):typeof e==`object`?e:null;if(!t)return null;let n=new Date(t.expiresAt);return Number.isFinite(n.getTime())?{...t,expiresAt:n}:null},c=null;if(i&&!r.verification?.storeInDatabase){let e=async e=>s(await i.getAndDelete(e));for(let t of o){let n=await e(`verification:${t}`);if(n){await Promise.all(o.filter(e=>e!==t).map(e=>i.delete(`verification:${e}`))),c=n;break}}}else{let t=async t=>v(`verification:${t}`,()=>tH(e,async()=>{let n=await $V(e),r=[{field:`identifier`,value:t}],i=(await n.findMany({model:`verification`,where:r,sortBy:{field:`createdAt`,direction:`desc`},limit:1}))[0]??null;return i?f(`verification`,[{field:`id`,value:i.id}],async()=>{let e=await n.consumeOne({model:`verification`,where:[{field:`id`,value:i.id}]});return e?(await n.deleteMany({model:`verification`,where:r}),e):null},i):null}));for(let e of o)if(c=await t(e),c)break;c&&i&&await Promise.all(o.map(e=>i.delete(`verification:${e}`)))}return!c||c.expiresAt</* @__PURE__ */ new Date?null:c},reserveVerificationValue:async t=>{let n=MU.encode(new Uint8Array(await NU(`SHA-256`).digest(new TextEncoder().encode(`reserve:`+t.identifier))),{padding:!1}),a=QJ(t.identifier,r.verification?.storeIdentifier),o=await ZJ(t.identifier,a);if(i&&!r.verification?.storeInDatabase)throw new O(`reserveVerificationValue requires database-backed verification storage. Set verification.storeInDatabase to true for flows that reserve verification values.`);try{await e.create({model:`verification`,data:{id:n,identifier:o,value:t.value,expiresAt:t.expiresAt,createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date},forceAllowId:!0})}catch(t){if(await e.findOne({model:`verification`,where:[{field:`id`,value:n}]}))return!1;throw t}if(i){let e=rY(t.expiresAt);e>0&&await i.set(`verification:${o}`,JSON.stringify({id:n,identifier:o,value:t.value,expiresAt:t.expiresAt}),e)}return!0},updateVerificationByIdentifier:async(e,t)=>{let n=await ZJ(e,QJ(e,r.verification?.storeIdentifier));if(i){let e=await i.get(`verification:${n}`);if(e){let a=w(e);if(a){let e={...a,...t},o=e.expiresAt??a.expiresAt,s=rY(o instanceof Date?o:new Date(o));if(s>0&&await i.set(`verification:${n}`,JSON.stringify(e),s),!r.verification?.storeInDatabase)return e}}}return!i||r.verification?.storeInDatabase?await c(t,[{field:`identifier`,value:n}],`verification`,void 0):t},refreshUserSessions:m}};function aY(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function oY(e,t,n=`.`,r){if(!aY(t))return oY(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:aY(a)&&aY(i[t])?oY(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function sY(e){return(...t)=>t.reduce((t,n)=>oY(t,n,``,e),{})}const cY=sY(),lY=/* @__PURE__ */ new Set([`metadata.google.internal`,`metadata.goog`,`metadata`,`instance-data`,`instance-data.ec2.internal`]);function uY(e){return e.length>=2&&e.startsWith(`[`)&&e.endsWith(`]`)?e.slice(1,-1):e}function dY(e){if(e.startsWith(`[`)){let t=e.indexOf(`]`);return t===-1?e:e.slice(0,t+1)}let t=e.indexOf(`:`);return t===-1||e.indexOf(`:`,t+1)!==-1?e:e.slice(0,t)}function fY(e){let t=e.indexOf(`%`);return t===-1?e:e.slice(0,t)}function pY(e){return e.replace(/\.+$/,``)}function mY(e){return/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e)}function hY(e){let t=e.split(`.`);return(Number(t[0])<<24|Number(t[1])<<16|Number(t[2])<<8|Number(t[3]))>>>0}function gY(e,t,n){if(n===0)return!0;let r=n===32?4294967295:-1<<32-n>>>0;return(e&r)===(t&r)}function _Y(e){if(e===`0.0.0.0`)return`unspecified`;if(e===`255.255.255.255`)return`broadcast`;let t=hY(e);return gY(t,hY(`127.0.0.0`),8)?`loopback`:gY(t,hY(`10.0.0.0`),8)||gY(t,hY(`172.16.0.0`),12)||gY(t,hY(`192.168.0.0`),16)?`private`:gY(t,hY(`169.254.0.0`),16)?`linkLocal`:gY(t,hY(`100.64.0.0`),10)?`sharedAddressSpace`:gY(t,hY(`192.0.2.0`),24)||gY(t,hY(`198.51.100.0`),24)||gY(t,hY(`203.0.113.0`),24)?`documentation`:gY(t,hY(`198.18.0.0`),15)?`benchmarking`:gY(t,hY(`224.0.0.0`),4)?`multicast`:gY(t,hY(`0.0.0.0`),8)||gY(t,hY(`192.0.0.0`),24)||gY(t,hY(`192.88.99.0`),24)||gY(t,hY(`240.0.0.0`),4)?`reserved`:`public`}function vY(e,t,n={}){let r=t*5,i=Number.parseInt(e.slice(r,r+4),16),a=Number.parseInt(e.slice(r+5,r+9),16);if(!Number.isFinite(i)||!Number.isFinite(a))return null;let o=(i<<16|a)>>>0;return n.xor&&(o=(o^4294967295)>>>0),`${o>>>24&255}.${o>>>16&255}.${o>>>8&255}.${o&255}`}function yY(e){if(e===`0000:0000:0000:0000:0000:0000:0000:0000`)return`unspecified`;if(e===`0000:0000:0000:0000:0000:0000:0000:0001`)return`loopback`;let t=Number.parseInt(e.slice(0,2),16),n=Number.parseInt(e.slice(2,4),16);if(t===255)return`multicast`;if(t===254&&(n&192)==128)return`linkLocal`;if(t===254&&(n&192)==192)return`reserved`;if((t&254)==252)return`private`;if(e.startsWith(`2001:0db8:`))return`documentation`;if(e.startsWith(`2001:0002:0000:`))return`benchmarking`;if(e.startsWith(`2002:`)){let t=vY(e,1);return t&&_Y(t)!==`public`?`reserved`:`public`}if(e.startsWith(`0064:ff9b:0000:0000:0000:0000:`)){let t=vY(e,6);return t&&_Y(t),`reserved`}if(e.startsWith(`0064:ff9b:0001:`))return`reserved`;if(e.startsWith(`2001:0000:`)){let t=vY(e,6,{xor:!0});return t&&_Y(t),`reserved`}return e.startsWith(`0100:0000:0000:0000:`)?`reserved`:e.startsWith(`3fff:0`)?`documentation`:e.startsWith(`5f00:`)||e.startsWith(`0000:0000:0000:0000:0000:0000:`)?`reserved`:`public`}function bY(e){let t=pY(fY(uY(dY(e.trim())))).toLowerCase();if(t===``)return{kind:`reserved`,literal:`fqdn`,canonical:``};if(!sJ(t))return t===`localhost`||t.endsWith(`.localhost`)?{kind:`localhost`,literal:`fqdn`,canonical:t}:lY.has(t)?{kind:`cloudMetadata`,literal:`fqdn`,canonical:t}:{kind:`public`,literal:`fqdn`,canonical:t};if(mY(t))return{kind:_Y(t),literal:`ipv4`,canonical:t};let n=pJ(t,{ipv6Subnet:128});return mY(n)?{kind:_Y(n),literal:`ipv4`,canonical:n}:{kind:yY(n),literal:`ipv6`,canonical:n}}function xY(e){return bY(e).kind===`loopback`}function SY(e){let t=bY(e).kind;return t===`loopback`||t===`localhost`}function CY(e){return bY(e).kind===`public`}async function wY(e){let t=e.options,n=t.plugins||[],r=[],i=[];for(let a of n)if(a.init){let n=a.init(e),o;if(o=fG(n)?await n:n,typeof o==`object`){if(o.options){let{databaseHooks:e,trustedOrigins:n,...s}=o.options;e&&i.push({source:`plugin:${a.id}`,hooks:e}),n&&r.push(n),t=cY(t,s)}o.context&&Object.assign(e,o.context)}}if(r.length>0){let e=[...t.trustedOrigins?[t.trustedOrigins]:[],...r],n=e.filter(Array.isArray).flat(),i=e.filter(e=>typeof e==`function`);i.length>0?t.trustedOrigins=async e=>{let t=await Promise.all(i.map(t=>t(e)));return[...n,...t.flat()].filter(e=>typeof e==`string`&&e!==``)}:t.trustedOrigins=n}t.databaseHooks&&i.push({source:`user`,hooks:t.databaseHooks}),e.internalAdapter=iY(e.adapter,{options:t,logger:e.logger,hooks:i,generateId:e.generateId}),e.options=t}function TY(e){return e.advanced?.crossSubDomainCookies?.enabled,[]}async function EY(e,t){let n=[];if(vH(e.baseURL)){let t=e.baseURL.allowedHosts,r=e.baseURL.protocol;for(let e of t)e.includes(`://`)?n.push(e):((!r||r===`https`||r===`auto`)&&n.push(`https://${e}`),(r===`http`||r===`auto`||SY(e))&&n.push(`http://${e}`));if(e.baseURL.fallback)try{n.push(new URL(e.baseURL.fallback).origin)}catch{}}else{let r=mH(typeof e.baseURL==`string`?e.baseURL:void 0,e.basePath,t);r&&n.push(new URL(r).origin)}if(e.trustedOrigins&&(Array.isArray(e.trustedOrigins)&&n.push(...e.trustedOrigins),typeof e.trustedOrigins==`function`)){let r=await e.trustedOrigins(t);n.push(...r)}let r=C.BETTER_AUTH_TRUSTED_ORIGINS;return r&&n.push(...r.split(`,`)),n.filter(e=>!!e)}function DY(e){if(yH(e?.request))return e.request;if(!e?.headers)return;let t=e.headers instanceof Headers?e.headers:new Headers(e.headers);if(t.has(`host`)||t.has(`x-forwarded-host`))return t}function OY(e){return e.advanced?.trustedProxyHeaders??!1}async function kY(e,t,n){let r=e.options.baseURL,i=wH(r,e.options.basePath||`/api/auth`,t,void 0,n);if(!i)throw new O(`Could not resolve base URL from request. Check your allowedHosts config.`);let a=Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e));a.baseURL=i,a.options={...e.options,baseURL:hH(i)||void 0};let o={...a.options,baseURL:r},s=typeof e.options.trustedOrigins==`function`||typeof e.options.account?.accountLinking?.trustedProviders==`function`,c;return c=s?yH(t)?t:t?new Request(i,{headers:t}):void 0:void 0,a.trustedOrigins=await EY(o,c),a.trustedProviders=await jY(a.options,c),e.options.advanced?.crossSubDomainCookies?.enabled&&(a.authCookies=nq(a.options),a.createAuthCookie=tq(a.options)),a}async function AY(e,t){if(e)for(let n of e){let e=typeof n==`function`?await n():n;if(e[t.field??`id`]===t.value)return e}}async function jY(e,t){let n=e.account?.accountLinking?.trustedProviders;return n?Array.isArray(n)?n.filter(e=>!!e):(await n(t)??[]).filter(e=>!!e):[]}function MY(e){return e}async function NY(e,t,n){let r={tokens:t,profile:n},i=e.accountSubject,a=await i(r),o=String(a);if(typeof a==`number`&&!Number.isFinite(a)||o.trim().length===0||o===`undefined`||o===`null`)throw new O(`OAUTH_ACCOUNT_SUBJECT_INVALID`);return{providerId:e.id,accountId:o}}async function PY(e,t,n){try{return await NY(e,t,n)}catch{throw D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_USER_INFO)}}function FY(e){return e.startsWith(`$ba$`)?!0:e.length%2==0&&/^[0-9a-f]+$/i.test(e)}function IY(e,t){return e&&(t.options.account?.encryptOAuthTokens&&FY(e)?BW({key:t.secretConfig,data:e}):e)}function LY(e,t){return t.options.account?.encryptOAuthTokens&&e?zW({key:t.secretConfig,data:e}):e}function RY(e){return e.callbackPath?e.callbackPath.startsWith(`/`)?e.callbackPath:`/${e.callbackPath}`:`/callback/${e.id}`}function zY(e){if(e)try{return e.clone()}catch{return new Request(e.url,{cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,signal:e.signal})}}async function BY(e,t,n,r=3600,i){return await lU({email:t.toLowerCase(),updateTo:n?.toLowerCase(),...i},e,r)}async function VY(e,t){if(!e.context.options.emailVerification?.sendVerificationEmail)throw e.context.logger.error(`Verification email isn't enabled.`),D.from(`BAD_REQUEST`,Y.VERIFICATION_EMAIL_NOT_ENABLED);let n=await BY(e.context.secret,t.email,void 0,e.context.options.emailVerification?.expiresIn),r=e.body.callbackURL?encodeURIComponent(e.body.callbackURL):`%2F`,i=`${e.context.baseURL}/verify-email?token=${n}&callbackURL=${r}`;await e.context.options.emailVerification.sendVerificationEmail({user:t,url:i,token:n},e.request)}const HY=X(`/send-verification-email`,{method:`POST`,operationId:`sendVerificationEmail`,cloneRequest:!0,body:j({email:be().meta({description:`The email to send the verification email to`}),callbackURL:A().meta({description:`The URL to use for email verification callback`}).optional()}),metadata:{openapi:{operationId:`sendVerificationEmail`,description:`Send a verification email to the user`,requestBody:{content:{"application/json":{schema:{type:`object`,properties:{email:{type:`string`,description:`The email to send the verification email to`,example:`user@example.com`},callbackURL:{type:`string`,description:`The URL to use for email verification callback`,example:`https://example.com/callback`,nullable:!0}},required:[`email`]}}}},responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{status:{type:`boolean`,description:`Indicates if the email was sent successfully`,example:!0}}}}}},400:{description:`Bad Request`,content:{"application/json":{schema:{type:`object`,properties:{message:{type:`string`,description:`Error message`,example:`Verification email isn't enabled`}}}}}}}}}},async e=>{if(!e.context.options.emailVerification?.sendVerificationEmail)throw e.context.logger.error(`Verification email isn't enabled.`),D.from(`BAD_REQUEST`,Y.VERIFICATION_EMAIL_NOT_ENABLED);let{email:t}=e.body,n=await zJ(e);if(!n){let n=Date.now(),r=await e.context.internalAdapter.findUserByEmail(t),i;if(!r||r.user.emailVerified)await BY(e.context.secret,t,void 0,e.context.options.emailVerification?.expiresIn);else try{await VY(e,r.user)}catch(e){i=e}let a=500-(Date.now()-n);if(a>0&&await new Promise(e=>setTimeout(e,a)),i)throw i;return e.json({status:!0})}if(n?.user.email.toLowerCase()!==t.toLowerCase())throw D.from(`BAD_REQUEST`,Y.EMAIL_MISMATCH);if(n?.user.emailVerified)throw D.from(`BAD_REQUEST`,Y.EMAIL_ALREADY_VERIFIED);return await VY(e,n.user),e.json({status:!0})}),UY=X(`/verify-email`,{method:`GET`,operationId:`verifyEmail`,query:j({token:A().meta({description:`The token to verify the email`}),callbackURL:A().meta({description:`The URL to redirect to after email verification`}).optional()}),use:[tJ(e=>e.query.callbackURL)],metadata:{openapi:{description:`Verify the email of the user`,parameters:[{name:`token`,in:`query`,description:`The token to verify the email`,required:!0,schema:{type:`string`}},{name:`callbackURL`,in:`query`,description:`The URL to redirect to after email verification`,required:!1,schema:{type:`string`}}],responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{user:{type:`object`,$ref:`#/components/schemas/User`},status:{type:`boolean`,description:`Indicates if the email was verified successfully`}},required:[`user`,`status`]}}}}}}}},async e=>{function t(t){if(e.query.callbackURL){let n=new URLSearchParams({error:t.code}),r=bq(e.query.callbackURL,n);throw e.redirect(r)}throw D.from(`UNAUTHORIZED`,t)}let{token:n}=e.query,r;try{r=await UF(n,new TextEncoder().encode(e.context.secret),{algorithms:[`HS256`]})}catch(e){return e instanceof GN?t(Y.TOKEN_EXPIRED):t(Y.INVALID_TOKEN)}let i=j({email:be(),updateTo:A().optional(),requestType:A().optional()}).parse(r.payload),a=await e.context.internalAdapter.findUserByEmail(i.email);if(!a)return t(Y.USER_NOT_FOUND);if(i.updateTo){let n=await zJ(e);if(n&&n.user.email!==i.email)return t(Y.INVALID_USER);switch(i.requestType){case`change-email-confirmation`:{let t=await BY(e.context.secret,i.email,i.updateTo,e.context.options.emailVerification?.expiresIn,{requestType:`change-email-verification`}),n=e.query.callbackURL?encodeURIComponent(e.query.callbackURL):`%2F`,r=`${e.context.baseURL}/verify-email?token=${t}&callbackURL=${n}`;if(e.context.options.emailVerification?.sendVerificationEmail&&await e.context.runInBackgroundOrAwait(e.context.options.emailVerification.sendVerificationEmail({user:{...a.user,email:i.updateTo},url:r,token:t},zY(e.request))),e.query.callbackURL)throw e.redirect(e.query.callbackURL);return e.json({status:!0})}case`change-email-verification`:{let t=n;if(!t){let n=await e.context.internalAdapter.createSession(a.user.id);if(!n)throw D.from(`INTERNAL_SERVER_ERROR`,Y.FAILED_TO_CREATE_SESSION);t={session:n,user:a.user}}let r=await e.context.internalAdapter.updateUserByEmail(i.email,{email:i.updateTo,emailVerified:!0});if(e.context.options.emailVerification?.afterEmailVerification&&await e.context.options.emailVerification.afterEmailVerification(r,e.request),await aq(e,{session:t.session,user:{...t.user,email:i.updateTo,emailVerified:!0}}),e.query.callbackURL)throw e.redirect(e.query.callbackURL);return e.json({status:!0,user:tG(e.context.options,r)})}default:{let t=n;if(!t){let n=await e.context.internalAdapter.createSession(a.user.id);if(!n)throw D.from(`INTERNAL_SERVER_ERROR`,Y.FAILED_TO_CREATE_SESSION);t={session:n,user:a.user}}let r=await e.context.internalAdapter.updateUserByEmail(i.email,{email:i.updateTo,emailVerified:!1}),o=await BY(e.context.secret,i.updateTo),s=e.query.callbackURL?encodeURIComponent(e.query.callbackURL):`%2F`;if(e.context.options.emailVerification?.sendVerificationEmail&&await e.context.runInBackgroundOrAwait(e.context.options.emailVerification.sendVerificationEmail({user:r,url:`${e.context.baseURL}/verify-email?token=${o}&callbackURL=${s}`,token:o},zY(e.request))),await aq(e,{session:t.session,user:{...t.user,email:i.updateTo,emailVerified:!1}}),e.query.callbackURL)throw e.redirect(e.query.callbackURL);return e.json({status:!0,user:tG(e.context.options,r)})}}}if(a.user.emailVerified){if(e.query.callbackURL)throw e.redirect(e.query.callbackURL);return e.json({status:!0,user:null})}e.context.options.emailVerification?.beforeEmailVerification&&await e.context.options.emailVerification.beforeEmailVerification(a.user,e.request);let o=await e.context.internalAdapter.updateUserByEmail(i.email,{emailVerified:!0});if(e.context.options.emailVerification?.afterEmailVerification&&await e.context.options.emailVerification.afterEmailVerification(o,e.request),e.context.options.emailVerification?.autoSignInAfterVerification){let t=await zJ(e);if(!t||t.user.email!==i.email){let t=await e.context.internalAdapter.createSession(a.user.id);if(!t)throw D.from(`INTERNAL_SERVER_ERROR`,Y.FAILED_TO_CREATE_SESSION);await aq(e,{session:t,user:{...a.user,emailVerified:!0}})}else await aq(e,{session:t.session,user:{...t.user,emailVerified:!0}})}if(e.query.callbackURL)throw e.redirect(e.query.callbackURL);return e.json({status:!0,user:null})});function WY(e){return Array.isArray(e)?e.map(e=>typeof e==`string`?e.trim():``).filter(Boolean):typeof e==`string`?e.trim().split(/\s+/).filter(Boolean):[]}function GY(e){let t=e=>new Date((/* @__PURE__ */ new Date()).getTime()+e*1e3);return{tokenType:e.token_type,accessToken:e.access_token,refreshToken:e.refresh_token,accessTokenExpiresAt:e.expires_in?t(e.expires_in):void 0,refreshTokenExpiresAt:e.refresh_token_expires_in?t(e.refresh_token_expires_in):void 0,scopes:WY(e.scope),idToken:e.id_token,raw:e}}function KY(e,t){let n=e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[],r=(t??[]).map(e=>e.trim()).filter(Boolean);return[.../* @__PURE__ */ new Set([...n,...r])].join(`,`)}function qY(e){let t=Array.isArray(e)?e[0]:e;return typeof t==`string`&&t.length>0?t:void 0}async function JY(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return MU.encode(new Uint8Array(n),{padding:!1})}const YY=[`state`,`client_id`,`redirect_uri`,`response_type`,`code_challenge`,`code_challenge_method`,`nonce`,`scope`],XY=new Set(YY);async function ZY({id:e,options:t,authorizationEndpoint:n,state:r,codeVerifier:i,scopes:a,claims:o,redirectURI:s,duration:c,prompt:l,accessType:u,responseType:d,display:f,loginHint:p,nonce:m,hd:h,responseMode:g,additionalParams:_,scopeJoiner:v}){t=typeof t==`function`?await t():t;let y=new URL(t.authorizationEndpoint||n);y.searchParams.set(`response_type`,d||`code`);let b=qY(t.clientId);if(!b)throw Error(`OAuth provider requires clientId`);if(y.searchParams.set(`client_id`,b),y.searchParams.set(`state`,r),a?.length&&y.searchParams.set(`scope`,a.join(v||` `)),y.searchParams.set(`redirect_uri`,t.redirectURI||s),c&&y.searchParams.set(`duration`,c),f&&y.searchParams.set(`display`,f),p&&y.searchParams.set(`login_hint`,p),m&&y.searchParams.set(`nonce`,m),l&&y.searchParams.set(`prompt`,l),h&&y.searchParams.set(`hd`,h),u&&y.searchParams.set(`access_type`,u),g&&y.searchParams.set(`response_mode`,g),i){let e=await JY(i);y.searchParams.set(`code_challenge_method`,`S256`),y.searchParams.set(`code_challenge`,e)}if(o){let e=o.reduce((e,t)=>(e[t]=null,e),{});y.searchParams.set(`claims`,JSON.stringify({id_token:{email:null,email_verified:null,...e}}))}if(_)for(let[e,t]of Object.entries(_))XY.has(e)||y.searchParams.set(e,t);return y}const QY=ve(A(),A()).refine(e=>!Object.keys(e).some(e=>XY.has(e)),{message:`additionalParams cannot include reserved OAuth parameters: ${YY.join(`, `)}`}).meta({description:`Extra query parameters to append to the provider authorization URL (e.g. Cognito identity_provider, Google hd).`}).optional(),$Y=/^Basic +(.*)$/i;function eX(e){return new URLSearchParams({v:e}).toString().slice(2)}function tX(e){let t=new URLSearchParams(`v=${e}`).get(`v`);if(t===null)throw Error(`form-url-encoded value could not be decoded`);return t}function nX(e,t){let n=`${eX(e)}:${eX(t)}`;return`Basic ${jU.encode(n)}`}function rX(e){let t=e.match($Y);if(!t)throw Error(`Authorization header is not a Basic credential`);let n=t[1]??``,r=new TextDecoder().decode(jU.decode(n)),i=r.indexOf(`:`);if(i===-1)throw Error(`Basic credential is missing the client id/secret separator`);let a=r.slice(0,i),o=r.slice(i+1);if(!a||!o)throw Error(`Basic credential client id and secret must both be non-empty`);return{clientId:tX(a),clientSecret:tX(o)}}const iX=[`RS256`,`RS384`,`RS512`,`PS256`,`PS384`,`PS512`,`ES256`,`ES384`,`ES512`,`EdDSA`];async function aX({getClientAssertion:e,context:t}){return{client_assertion:await e(t),client_assertion_type:`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`}}var oX=class extends Error{constructor(e,t,n){super(t||e.toString(),{cause:n}),this.status=e,this.statusText=t,this.error=n,Error.captureStackTrace(this,this.constructor)}};const sX=async(e,t)=>{let n=t||{},r={onRequest:[t?.onRequest],onResponse:[t?.onResponse],onSuccess:[t?.onSuccess],onError:[t?.onError],onRetry:[t?.onRetry]};if(!t||!t?.plugins)return{url:e,options:n,hooks:r};for(let i of t?.plugins||[]){if(i.init){let t=await i.init?.call(i,e.toString(),n);n=t.options||n,e=t.url}r.onRequest.push(i.hooks?.onRequest),r.onResponse.push(i.hooks?.onResponse),r.onSuccess.push(i.hooks?.onSuccess),r.onError.push(i.hooks?.onError),r.onRetry.push(i.hooks?.onRetry)}return{url:e,options:n,hooks:r}};var cX=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(){return this.options.delay}},lX=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(e){return Math.min(this.options.maxDelay,this.options.baseDelay*2**e)}};function uX(e){if(typeof e==`number`)return new cX({type:`linear`,attempts:e,delay:1e3});switch(e.type){case`linear`:return new cX(e);case`exponential`:return new lX(e);default:throw Error(`Invalid retry strategy`)}}const dX=[`get`,`post`,`put`,`patch`,`delete`];function fX(e){if(!e.startsWith(`@`))return{method:void 0,path:e};let t=e.indexOf(`/`),n=e.slice(1,t===-1?void 0:t);return dX.includes(n)?{method:n,path:t===-1?e:e.slice(t+1)}:{method:void 0,path:e}}const pX=e=>e===`.`||e===`..`,mX=e=>e.split(`:`).map(e=>encodeURIComponent(e)).join(`:`);function hX(e,t){let n=t.get(e);if(n===void 0)return mX(e);if(pX(n))throw TypeError(`Path parameters cannot be reserved path segments`);return encodeURIComponent(n)}function gX(e,t){let{baseURL:n,params:r,query:i}=t||{query:{},params:{},baseURL:``},a=e.startsWith(`http`)?e.split(`/`).slice(0,3).join(`/`):n||``,{path:o}=fX(e);o!==e&&(e=`/${o}`),a.endsWith(`/`)||(a+=`/`);let[s,c]=e.replace(a,``).split(`?`),l=new URLSearchParams(c);for(let[e,t]of Object.entries(i||{})){if(t==null)continue;let n;if(typeof t==`string`)n=t;else if(Array.isArray(t)){for(let n of t)l.append(e,n);continue}else n=JSON.stringify(t);l.set(e,n)}let u=/* @__PURE__ */ new Map;if(r){if(Array.isArray(r)){let e=s.split(`/`).filter(e=>e.startsWith(`:`));for(let[t,n]of e.entries()){let e=r[t];u.set(n,String(e))}}else for(let[e,t]of Object.entries(r))u.set(`:${e}`,String(t))}s=s.split(`/`).map(e=>hX(e,u)).join(`/`),s=s.replace(/^\/+/,``);let d=l.toString();return d=d.length>0?`?${d}`.replace(/\+/g,`%20`):``,a.startsWith(`http`)?new URL(`${s}${d}`,a):`${a}${s}${d}`}const _X=async e=>{let t={},n=async e=>typeof e==`function`?await e():e;if(e?.auth){if(e.auth.type===`Bearer`){let r=await n(e.auth.token);if(!r)return t;t.authorization=`Bearer ${r}`}else if(e.auth.type===`Basic`){let[r,i]=await Promise.all([n(e.auth.username),n(e.auth.password)]);if(!r||!i)return t;t.authorization=`Basic ${btoa(`${r}:${i}`)}`}else if(e.auth.type===`Custom`){let[r,i]=await Promise.all([n(e.auth.prefix),n(e.auth.value)]);if(!i)return t;t.authorization=`${r??``} ${i}`}}return t},vX=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function yX(e){let t=e.headers.get(`content-type`),n=/* @__PURE__ */ new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]);if(!t)return`json`;let r=t.split(`;`).shift()||``;return vX.test(r)?`json`:n.has(r)||r.startsWith(`text/`)?`text`:`blob`}function bX(e){try{return JSON.parse(e),!0}catch{return!1}}function xX(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}function SX(e){try{return JSON.parse(e)}catch{return e}}function CX(e){return typeof e==`function`}function wX(e){if(e?.customFetchImpl)return e.customFetchImpl;if(typeof globalThis<`u`&&CX(globalThis.fetch))return globalThis.fetch;if(typeof window<`u`&&CX(window.fetch))return window.fetch;throw Error(`No fetch implementation found`)}function TX(...e){let t={};for(let n of e)if(n){if(n instanceof Headers)n.forEach((e,n)=>{t[n]=e});else{let e=Array.isArray(n)?n:Object.entries(n);for(let[n,r]of e)r!=null&&(t[n]=r)}}return t}async function EX(e){let t=new Headers(TX(e?.headers,await _X(e)));if(!t.has(`content-type`)){let n=DX(e?.body);n&&t.set(`content-type`,n)}return t}function DX(e){return xX(e)?`application/json`:null}function OX(e){let t=e.get(`content-type`);return t?t.split(`;`)[0].trim().toLowerCase():null}function kX(e,t){let{body:n}=e;return n?!xX(n)||typeof n==`string`?n:OX(t)===`application/x-www-form-urlencoded`?new URLSearchParams(n).toString():JSON.stringify(n):null}function AX(e,t){if(t?.method)return t.method.toUpperCase();let{method:n}=fX(e);return n?n.toUpperCase():t?.body?`POST`:`GET`}function jX(e,t){let n;return!e?.signal&&e?.timeout&&(n=setTimeout(()=>t?.abort(),e?.timeout)),{abortTimeout:n,clearTimeout:()=>{n&&clearTimeout(n)}}}var MX=class e extends Error{constructor(t,n){super(n||JSON.stringify(t,null,2)),this.issues=t,Object.setPrototypeOf(this,e.prototype)}};async function NX(e,t){let n=await e[`~standard`].validate(t);if(n.issues)throw new MX(n.issues);return n.value}function PX(e){"@babel/helpers - typeof";return PX=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},PX(e)}function FX(e,t){if(PX(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(PX(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function IX(e){var t=FX(e,`string`);return PX(t)==`symbol`?t:t+``}function LX(e,t,n){return(t=IX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function RX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zX(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?RX(Object(n),!0).forEach(function(t){LX(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):RX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const BX=async(e,t)=>{var n;let{hooks:r,url:i,options:a}=await sX(e,t),o=wX(a),s=new AbortController,c=a.signal??s.signal,l=gX(i,a),u=await EX(a),d=kX(a,u),f=AX(i,a),p=zX(zX({},a),{},{url:l,headers:u,body:d,method:f,signal:c});for(let e of r.onRequest)if(e){let t=await e(p);typeof t==`object`&&t&&Object.assign(p,t)}(`pipeTo`in p&&typeof p.pipeTo==`function`||typeof(t==null||(n=t.body)==null?void 0:n.pipe)==`function`)&&(`duplex`in p||(p.duplex=`half`));let{clearTimeout:m}=jX(a,s),h=await o(p.url,p);m();let g={response:h,request:p};for(let e of r.onResponse)if(e){var _;let n=await e(zX(zX({},g),{},{response:t!=null&&(_=t.hookOptions)!=null&&_.cloneResponse?h.clone():h}));n instanceof Response?h=n:typeof n==`object`&&n&&(h=n.response)}if(h.ok){if(p.method===`HEAD`)return{data:``,error:null};let e=yX(h),n={data:null,response:h,request:p};if(e===`json`||e===`text`){let e=await h.text();n.data=await(p.jsonParser??SX)(e)}else n.data=await h[e]();p?.output&&p.output&&!p.disableValidation&&(n.data=await NX(p.output,n.data));for(let e of r.onSuccess)if(e){var v;await e(zX(zX({},n),{},{response:t!=null&&(v=t.hookOptions)!=null&&v.cloneResponse?h.clone():h}))}return t?.throw?n.data:{data:n.data,error:null}}let y=t?.jsonParser??SX,b=await h.text(),x=bX(b),S=x?await y(b):null,ee={response:h,responseText:b,request:p,error:zX(zX({},S),{},{status:h.status,statusText:h.statusText})};for(let e of r.onError)if(e){var te;await e(zX(zX({},ee),{},{response:t!=null&&(te=t.hookOptions)!=null&&te.cloneResponse?h.clone():h}))}if(t?.retry){let n=uX(t.retry),i=t.retryAttempt??0;if(await n.shouldAttemptRetry(i,h)){for(let e of r.onRetry)e&&await e(g);let a=n.getDelay(i);return await new Promise(e=>setTimeout(e,a)),await BX(e,zX(zX({},t),{},{retryAttempt:i+1}))}}if(t?.throw)throw new oX(h.status,h.statusText,x?S:b);return{data:null,error:zX(zX({},S),{},{status:h.status,statusText:h.statusText})}},VX=/* @__PURE__ */ new Set([301,302,303,307,308]);function HX(e){return e.type===`opaqueredirect`||VX.has(e.status)}function UX(e){return new O(`The OAuth endpoint "${e}" returned an HTTP redirect. Server-side OAuth fetches refuse redirects to prevent SSRF; configure the final endpoint URL.`)}const WX={redirect:`manual`};async function GX(e,t){let n=!1,r=t?.onError,i=await BX(e,{...t,...WX,async onError(e){HX(e.response)&&(n=!0),await r?.(e)}}).catch(t=>{throw n?UX(e):t});if(n)throw UX(e);return i}function KX(e,t){return t===`basic`?{method:`client_secret_basic`}:e.clientSecret?{method:`client_secret_post`}:{method:`none`}}function qX(e,t,n){if(t.clientSecret||n.has(`client_secret`))throw Error(`${e} token endpoint authentication cannot be combined with clientSecret`)}function JX(e,t){t&&e.set(`client_id`,t)}function YX(e,t){if(!t.clientSecret)throw Error(`${e} token endpoint authentication requires clientSecret`)}function XX(e,t){if(!t)throw Error(`${e} token endpoint authentication requires clientId`)}function ZX({body:e,options:t,clientId:n,requireClientSecret:r}){r&&YX(`client_secret_post`,t),t.clientSecret&&(XX(`client_secret_post`,n),JX(e,n),e.set(`client_secret`,t.clientSecret))}function QX({headers:e,options:t,clientId:n,body:r}){if(r.has(`client_secret`))throw Error(`client_secret_basic token endpoint authentication cannot be combined with client_secret body parameters`);YX(`client_secret_basic`,t),XX(`client_secret_basic`,n),e.authorization=nX(n,t.clientSecret)}function $X(e){if(e.has(`client_assertion`)!==e.has(`client_assertion_type`))throw Error(`client_assertion and client_assertion_type must both be provided`)}async function eZ({body:e,headers:t,options:n,tokenEndpoint:r,grantType:i,tokenEndpointAuth:a,authentication:o}){$X(e);let s=qY(n.clientId);if(e.has(`client_assertion`)){if(a)throw Error(`client_assertion body parameters cannot be combined with tokenEndpointAuth`);qX(`private_key_jwt`,n,e),JX(e,s);return}let c=a??KX(n,o);if(c.method===`custom`)await c.customizeRequest({body:e,headers:t,options:n,tokenEndpoint:r,grantType:i}),$X(e);else if(c.method===`private_key_jwt`){if(qX(c.method,n,e),XX(c.method,s),!r)throw Error(`private_key_jwt token endpoint authentication requires tokenEndpoint`);let t=await aX({getClientAssertion:c.getClientAssertion,context:{clientId:s,tokenEndpoint:r,grantType:i}});JX(e,s);for(let[n,r]of Object.entries(t))e.set(n,r)}else if(c.method===`none`){if(qX(c.method,n,e),i===`client_credentials`)throw Error(`none token endpoint authentication cannot be used with client_credentials grant`);XX(c.method,s),JX(e,s)}else c.method===`client_secret_basic`?QX({headers:t,options:n,clientId:s,body:e}):ZX({body:e,options:n,clientId:s,requireClientSecret:a?.method===`client_secret_post`})}const tZ=[`EdDSA`,`ES256`,`ES512`,`PS256`,`RS256`],nZ=/* @__PURE__ */ new Set([`d`,`p`,`q`,`dp`,`dq`,`qi`,`oth`,`k`]);function rZ(e){return{reserve:({key:t,expiresAt:n})=>e.reserveVerificationValue({identifier:`dpop-proof:${t}`,value:t,expiresAt:n})}}function iZ(e,t){return Object.assign(Error(t),{code:e})}function aZ(e){return e instanceof Error&&`code`in e&&e.code===`invalid_dpop_proof`}function oZ(e){if(!e)return;let t=e.trim();if(!t)return;let n=/^([A-Za-z][A-Za-z0-9!#$%&'*+.^_`|~-]*)\s+(.+)$/.exec(t);if(!n)return{scheme:`Unknown`,token:t};let r=n[1]??``,i=n[2]?.trim()??``;return r.toLowerCase()===`bearer`?{scheme:`Bearer`,token:i}:r.toLowerCase()===`dpop`?{scheme:`DPoP`,token:i}:{scheme:`Unknown`,token:t}}function sZ(e){return oZ(e)?.token??e}function cZ(e){let t=new URL(e);if(t.hash)throw Error(`DPoP proof htu must not contain a fragment`);return`${t.origin}${t.pathname}`}async function lZ(e){let t=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e));return iP(new Uint8Array(t))}async function uZ(e){return XF(e,`sha256`)}function dZ(e){if(!e||typeof e!=`object`||Array.isArray(e))return;let t=e.jkt;return typeof t==`string`&&t.length>0?t:void 0}function fZ(e){return dZ(e.cnf)}function pZ(e,t){let n=e[t];return typeof n==`string`&&n.length>0?n:void 0}function mZ(e,t){let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:void 0}function hZ(e,t){if(!e||e===`none`||e.startsWith(`HS`))throw iZ(`invalid_dpop_proof`,`DPoP proof must use an asymmetric JWS algorithm`);if(!t.includes(e))throw iZ(`invalid_dpop_proof`,`DPoP proof uses an unsupported JWS algorithm`)}function gZ(e){if(!e||typeof e!=`object`||Array.isArray(e))throw iZ(`invalid_dpop_proof`,`DPoP proof header must include a public jwk`);if(e.kty===`oct`)throw iZ(`invalid_dpop_proof`,`DPoP proof jwk must be asymmetric`);for(let t of nZ)if(t in e)throw iZ(`invalid_dpop_proof`,`DPoP proof jwk must not contain private key material`)}async function _Z(e){let t=`${e.jkt}\n${e.htm}\n${e.htu}\n${e.jti}`,n=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(t));return iP(new Uint8Array(n))}async function vZ(e,t){if(e&&!await e.reserve(t))throw iZ(`invalid_dpop_proof`,`DPoP proof jti has already been used`)}async function yZ({proofJwt:e,method:t,url:n,accessToken:r,expectedJkt:i,requireAth:a=!1,nowSeconds:o=Math.floor(Date.now()/1e3),proofMaxAgeSeconds:s=300,signingAlgorithms:c=tZ,replayStore:l}){if(!e||e.split(`.`).length!==3)throw iZ(`invalid_dpop_proof`,`DPoP proof must be a compact JWT`);let u;try{u=rI(e)}catch(e){throw iZ(`invalid_dpop_proof`,e instanceof Error?e.message:`DPoP proof header is invalid`)}if(u.typ!==`dpop+jwt`)throw iZ(`invalid_dpop_proof`,`DPoP proof typ must be "dpop+jwt"`);hZ(u.alg,c),gZ(u.jwk);let d;try{d=(await UF(e,await nI(u.jwk,u.alg),{typ:`dpop+jwt`})).payload}catch(e){throw iZ(`invalid_dpop_proof`,e instanceof Error?e.message:`DPoP proof signature is invalid`)}let f=pZ(d,`htm`),p=pZ(d,`htu`),m=pZ(d,`jti`),h=mZ(d,`iat`);if(!f||!p||!m||h===void 0)throw iZ(`invalid_dpop_proof`,`DPoP proof must include htm, htu, jti, and iat claims`);if(m.length>512)throw iZ(`invalid_dpop_proof`,`DPoP proof jti is too large`);if(f.toUpperCase()!==t.toUpperCase())throw iZ(`invalid_dpop_proof`,`DPoP proof htm does not match the request method`);let g,_;try{g=cZ(n),_=cZ(p)}catch(e){throw iZ(`invalid_dpop_proof`,e instanceof Error?e.message:`DPoP proof htu is invalid`)}if(_!==g)throw iZ(`invalid_dpop_proof`,`DPoP proof htu does not match the request URL`);if(h>o+5||o-h>s)throw iZ(`invalid_dpop_proof`,`DPoP proof iat is outside the accepted window`);let v=pZ(d,`ath`);if(a&&!v)throw iZ(`invalid_dpop_proof`,`DPoP proof must include an ath claim`);if(r!==void 0&&v!==await lZ(r))throw iZ(`invalid_dpop_proof`,`DPoP proof ath does not match the access token`);let y=await uZ(u.jwk);if(i!==void 0&&y!==i)throw iZ(`invalid_dpop_proof`,`DPoP proof key does not match the bound token`);let b=await _Z({jkt:y,htm:f.toUpperCase(),htu:g,jti:m}),x=/* @__PURE__ */ new Date((h+s)*1e3);return await vZ(l,{key:b,expiresAt:x,now:/* @__PURE__ */ new Date(o*1e3)}),{jwk:u.jwk,jkt:y,jti:m,htm:f,htu:g,iat:h,ath:v,replayKey:b,expiresAt:x}}function bZ(e,t){return Object.assign(Error(t),{code:e})}function xZ(e){return e instanceof Error&&`code`in e&&(e.code===`invalid_token`||e.code===`invalid_dpop_proof`)}async function SZ({payload:e,authorization:t,proofJwt:n,method:r,url:i,replayStore:a,proofMaxAgeSeconds:o,signingAlgorithms:s}){let c=fZ(e);if(c){if(t.scheme!==`DPoP`)throw bZ(`invalid_token`,`DPoP-bound access token requires the DPoP authorization scheme`);if(!n)throw bZ(`invalid_dpop_proof`,`DPoP proof header is required`);try{await yZ({proofJwt:n,method:r,url:i,accessToken:t.token,expectedJkt:c,requireAth:!0,proofMaxAgeSeconds:o,signingAlgorithms:s,replayStore:a})}catch(e){throw aZ(e)?bZ(`invalid_dpop_proof`,e.message):e}}else if(t.scheme===`DPoP`)throw bZ(`invalid_token`,`DPoP authorization requires a DPoP-bound access token`)}const CZ=/* @__PURE__ */ new Set([`grant_type`,`refresh_token`,`__proto__`,`constructor`,`prototype`]);async function wZ({refreshToken:e,options:t,authentication:n,tokenEndpointAuth:r,tokenEndpoint:i,extraParams:a,resource:o}){t=typeof t==`function`?await t():t;let s=EZ({refreshToken:e,options:t,extraParams:a,resource:o});return await eZ({body:s.body,headers:s.headers,options:t,tokenEndpoint:i??``,grantType:`refresh_token`,tokenEndpointAuth:r,authentication:n}),s}function TZ(e,t){if(t)for(let[n,r]of Object.entries(t))CZ.has(n)||e.set(n,r)}function EZ({refreshToken:e,options:t,extraParams:n,resource:r}){let i=new URLSearchParams,a={"content-type":`application/x-www-form-urlencoded`,accept:`application/json`};if(i.set(`grant_type`,`refresh_token`),i.set(`refresh_token`,e),r){if(typeof r==`string`)i.append(`resource`,r);else for(let e of r)i.append(`resource`,e)}return n&&TZ(i,n),{body:i,headers:a}}async function DZ({refreshToken:e,options:t,tokenEndpoint:n,authentication:r,tokenEndpointAuth:i,extraParams:a,resource:o}){let{body:s,headers:c}=await wZ({refreshToken:e,options:t,authentication:r,tokenEndpointAuth:i,tokenEndpoint:n,extraParams:a,resource:o}),{data:l,error:u}=await GX(n,{method:`POST`,body:s,headers:c});if(u)throw u;let d={accessToken:l.access_token,refreshToken:l.refresh_token,tokenType:l.token_type,scopes:WY(l.scope),idToken:l.id_token};return l.expires_in&&(d.accessTokenExpiresAt=new Date((/* @__PURE__ */ new Date()).getTime()+l.expires_in*1e3)),l.refresh_token_expires_in&&(d.refreshTokenExpiresAt=new Date((/* @__PURE__ */ new Date()).getTime()+l.refresh_token_expires_in*1e3)),d}async function OZ({code:e,codeVerifier:t,redirectURI:n,options:r,authentication:i,tokenEndpointAuth:a,tokenEndpoint:o,deviceId:s,headers:c,additionalParams:l={},resource:u}){r=typeof r==`function`?await r():r;let d=kZ({code:e,codeVerifier:t,redirectURI:n,options:r,deviceId:s,headers:c,additionalParams:l,resource:u});return await eZ({body:d.body,headers:d.headers,options:r,tokenEndpoint:o??``,grantType:`authorization_code`,tokenEndpointAuth:a,authentication:i}),d}function kZ({code:e,codeVerifier:t,redirectURI:n,options:r,deviceId:i,headers:a,additionalParams:o={},resource:s}){let c=new URLSearchParams,l={"content-type":`application/x-www-form-urlencoded`,accept:`application/json`,...a};if(c.set(`grant_type`,`authorization_code`),c.set(`code`,e),t&&c.set(`code_verifier`,t),r.clientKey&&c.set(`client_key`,r.clientKey),i&&c.set(`device_id`,i),c.set(`redirect_uri`,r.redirectURI||n),s){if(typeof s==`string`)c.append(`resource`,s);else for(let e of s)c.append(`resource`,e)}for(let[e,t]of Object.entries(o))c.has(e)||c.append(e,t);return{body:c,headers:l}}async function AZ({code:e,codeVerifier:t,redirectURI:n,options:r,tokenEndpoint:i,authentication:a,tokenEndpointAuth:o,deviceId:s,headers:c,additionalParams:l={},resource:u}){let{body:d,headers:f}=await OZ({code:e,codeVerifier:t,redirectURI:n,options:r,authentication:a,tokenEndpointAuth:o,tokenEndpoint:i,deviceId:s,headers:c,additionalParams:l,resource:u}),{data:p,error:m}=await GX(i,{method:`POST`,body:d,headers:f});if(m)throw m;return GY(p)}nP.code,$N.code,tP.code;const jZ=/* @__PURE__ */ new Map,MZ=/* @__PURE__ */ new WeakMap;function NZ(e,t){if(e&&!(Date.now()-e.fetchedAt>=3e5)&&(!t||e.jwks.keys.some(e=>e.kid===t)))return e.jwks}async function PZ(e){let t=typeof e==`string`?await GX(e,{headers:{Accept:`application/json`}}).then(async e=>{if(e.error)throw Error(`Jwks failed: ${e.error.message??e.error.statusText}`);return e.data}):await e();if(!t)throw Error(`No jwks found`);return t}async function FZ(e,t){return(await IZ(e,t)).jwks}async function IZ(e,t){let n;try{n=rI(e)}catch(e){throw e instanceof Error?e:Error(e)}let r=n.kid;if(typeof t.jwksFetch!=`string`){let e=t.jwksCacheKey;if(!e){let e=await t.jwksFetch();if(!e)throw Error(`No jwks found`);return{jwks:e,fromCache:!1,kid:r}}let n=MZ.get(e),i=t.forceRefresh?void 0:NZ(n,r);if(i)return{jwks:i,fromCache:!0,kid:r,noKidRefetchedAt:n?.noKidRefetchedAt};let a=await t.jwksFetch();if(!a)throw Error(`No jwks found`);let o=Date.now();return MZ.set(e,{jwks:a,fetchedAt:o,...t.forceRefresh&&!r?{noKidRefetchedAt:o}:{}}),{jwks:a,fromCache:!1,kid:r}}let i=t.jwksFetch,a=jZ.get(i),o=t.forceRefresh?void 0:NZ(a,r);if(!o){let e=await PZ(t.jwksFetch),n=Date.now();return jZ.set(i,{jwks:e,fetchedAt:n,...t.forceRefresh&&!r?{noKidRefetchedAt:n}:{}}),{jwks:e,fromCache:!1,kid:r}}return{jwks:o,fromCache:!0,kid:r,noKidRefetchedAt:a?.noKidRefetchedAt}}async function LZ(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}async function RZ(e,t,n=`exact`){return typeof e==`string`?e===t||n===`exact-or-sha256`&&e===await LZ(t):!1}function zZ(e){let t=e.options??{};return!t.disableIdTokenSignIn&&!!(e.idToken||t.verifyIdToken)}async function BZ(e,t,n,r){let i=e.options??{};if(i.disableIdTokenSignIn)return!1;try{if(i.verifyIdToken)return await i.verifyIdToken(t,n,r);let a=e.idToken;if(!a)return!1;if(`verify`in a)return await a.verify(t,n,r);if(t.split(`.`).length!==3)return a.allowOpaqueToken===!0;let{alg:o}=rI(t),{payload:s}=await UF(t,a.jwks,{issuer:a.issuer,audience:a.audience,algorithms:a.algorithms??(o?[o]:void 0),maxTokenAge:a.maxTokenAge});return!(n&&!await RZ(s.nonce,n,a.nonceComparison)||a.verifyClaims&&!a.verifyClaims(s))}catch{return!1}}function VZ(e,t){return{linked:!1,error:{code:e,message:t}}}async function HZ(e,{link:t,userInfo:n,account:r,profile:i,scopes:a}){try{await YJ(e,{user:{...n,id:t.userId,email:n.email??void 0},source:{action:`link-account`,method:`oauth`,oauth:{providerId:r.providerId,profile:i}}})}catch(e){if(!Fq(e)||!e.body?.code)throw e;return VZ(e.body.code,e.body.message)}if(!e.context.trustedProviders.includes(r.providerId)&&!n.emailVerified||e.context.options.account?.accountLinking?.enabled===!1)return e.context.logger.error(`Unable to link account - untrusted provider`),VZ(Sq.UNABLE_TO_LINK_ACCOUNT);if(n.email?.toLowerCase()!==t.email.toLowerCase()&&e.context.options.account?.accountLinking?.allowDifferentEmails!==!0)return VZ(Sq.EMAIL_DOES_NOT_MATCH);let o=await e.context.internalAdapter.findAccountByKey(r);if(o){if(o.userId.toString()!==t.userId.toString())return VZ(Sq.ACCOUNT_ALREADY_LINKED_TO_DIFFERENT_USER);let n=KY(o.scope,a),i=Object.fromEntries(Object.entries({providerId:r.providerId,accessToken:await LY(r.accessToken,e.context),refreshToken:await LY(r.refreshToken,e.context),idToken:r.idToken,accessTokenExpiresAt:r.accessTokenExpiresAt,refreshTokenExpiresAt:r.refreshTokenExpiresAt,scope:n||void 0}).filter(([e,t])=>t!==void 0));await e.context.internalAdapter.updateAccount(o.id,i)}else if(!await e.context.internalAdapter.createAccount({userId:t.userId,...r,accessToken:await LY(r.accessToken,e.context),refreshToken:await LY(r.refreshToken,e.context),scope:a?.join(`,`)??r.scope}))return VZ(Sq.UNABLE_TO_LINK_ACCOUNT);return await GZ(e,t.userId,n),{linked:!0}}async function UZ(e,t){let{userInfo:n,account:r,callbackURL:i,disableSignUp:a,overrideUserInfo:o}=t,s=t.source??{method:`oauth`,oauth:{providerId:r.providerId}},c=!!t.selectedUser||t.requireExactAccountBinding===!0,l=null,u=await e.context.internalAdapter.findAccountOwnerByKey({providerId:r.providerId,accountId:r.accountId}).catch(t=>{e.context.logger.error(`Better auth was unable to query your database.
60
- Error: `,t),Cq(e,e.context.options.onAPIError?.errorURL||`${e.context.baseURL}/error`,`internal_server_error`)});if(u?.kind===`orphaned`)return e.context.logger.error(`OAuth account references a missing user. Repair the account before retrying authentication.`),{error:`unable to link account`,data:null,isRegister:!1};let d=await(async()=>{if(u?.kind===`owned`){if(t.selectedUser&&u.user.id!==t.selectedUser.userId)throw new D(`CONFLICT`,{code:`account_ownership_conflict`,message:`Account is already linked to another user`});return{user:u.user,linkedAccount:u.account,accounts:[u.account]}}if(t.selectedUser){let n=await e.context.internalAdapter.findUserById(t.selectedUser.userId);if(!n)throw new D(`NOT_FOUND`,{code:`user_not_found`,message:`User not found`});return{user:n,linkedAccount:null,accounts:[]}}let r=await e.context.internalAdapter.findUserByEmail(n.email.toLowerCase(),{includeAccounts:!0});return r?{user:r.user,linkedAccount:null,accounts:r.accounts}:null})().catch(t=>{if(Fq(t))throw t;e.context.logger.error(`Better auth was unable to query your database.
61
- Error: `,t),Cq(e,e.context.options.onAPIError?.errorURL||`${e.context.baseURL}/error`,`internal_server_error`)}),f=d?.user,p=!f;if(d){let i=d.linkedAccount??d.accounts.find(e=>e.providerId===r.providerId&&e.accountId===r.accountId);if(i){let{id:a,...o}=n;await YJ(e,{user:{...o,id:d.user.id,email:n.email.toLowerCase()},source:{...s,action:`sign-in`}});let u=e.context.options.account?.updateAccountOnSignIn===!1?{}:Object.fromEntries(Object.entries({providerId:r.providerId,idToken:r.idToken,accessToken:await LY(r.accessToken,e.context),refreshToken:await LY(r.refreshToken,e.context),accessTokenExpiresAt:r.accessTokenExpiresAt,refreshTokenExpiresAt:r.refreshTokenExpiresAt}).filter(([e,t])=>t!==void 0));if(e.context.options.account?.storeAccountCookie){let n={...i,...u};t.deferNonDatabaseWrites?l=n:await JK(e,n)}if(Object.keys(u).length>0){let n=await e.context.internalAdapter.updateAccount(i.id,u);if(!n)return{error:`unable to update account`,data:null};if(c&&(n.accountId!==r.accountId||n.providerId!==r.providerId||n.userId!==d.user.id))throw new D(`CONFLICT`,{code:`account_hook_binding_conflict`,message:`Account hook changed the selected authentication binding`});t.deferNonDatabaseWrites&&l&&(l=n)}!t.selectedUser&&n.emailVerified&&!d.user.emailVerified&&n.email.toLowerCase()===d.user.email&&await e.context.internalAdapter.updateUser(d.user.id,{emailVerified:!0})}else{let i=e.context.options.account?.accountLinking,a=t.isTrustedProvider||t.trustProviderByName!==!1&&e.context.trustedProviders.includes(r.providerId),o=i?.requireLocalEmailVerified??!0;if(!t.selectedUser&&(!a&&!n.emailVerified||o&&!d.user.emailVerified||i?.enabled===!1||i?.disableImplicitLinking===!0))return _()&&e.context.logger.warn(`User already exist but account isn't linked to ${r.providerId}. To read more about how account linking works in Better Auth see https://www.better-auth.com/docs/concepts/users-accounts#account-linking.`),{error:`account not linked`,data:null};try{let{id:i,...a}=n;await YJ(e,{user:{...a,id:d.user.id,email:n.email.toLowerCase()},source:{...s,action:`link-account`}});let o=await e.context.internalAdapter.linkAccount({providerId:r.providerId,accountId:r.accountId,userId:d.user.id,accessToken:await LY(r.accessToken,e.context),refreshToken:await LY(r.refreshToken,e.context),idToken:r.idToken,accessTokenExpiresAt:r.accessTokenExpiresAt,refreshTokenExpiresAt:r.refreshTokenExpiresAt,scope:r.scope});if(!o)return{error:`unable to link account`,data:null};if(c&&(o.accountId!==r.accountId||o.providerId!==r.providerId||o.userId!==d.user.id))throw new D(`CONFLICT`,{code:`account_hook_binding_conflict`,message:`Account hook changed the selected authentication binding`});e.context.options.account?.storeAccountCookie&&(t.deferNonDatabaseWrites?l=o:await JK(e,o))}catch(t){if(Fq(t))throw t;return e.context.logger.error(`Unable to link account`,t),{error:`unable to link account`,data:null}}!t.selectedUser&&n.emailVerified&&!d.user.emailVerified&&n.email.toLowerCase()===d.user.email&&await e.context.internalAdapter.updateUser(d.user.id,{emailVerified:!0}),t.selectedUser||(f=await GZ(e,d.user.id,n)??f)}if(t.selectedUser?t.selectedUser.profile===`update`:o){let{id:r,email:i,emailVerified:a,name:o,image:s,...c}=n,l=sG(e.context.options,c,`update`),u=await e.context.internalAdapter.updateUser(d.user.id,{name:o,image:s,...l,email:n.email.toLowerCase(),emailVerified:n.email.toLowerCase()===d.user.email&&d.user.emailVerified||n.emailVerified});if(u??e.context.logger.warn(`Could not update user info during OAuth sign in; preserving existing user for session.`),t.selectedUser&&u&&u.id!==t.selectedUser.userId)throw new D(`CONFLICT`,{code:`user_hook_selection_conflict`,message:`User hook changed the selected user`});f=u??f}}else{if(a)return{error:`signup disabled`,data:null,isRegister:!1};try{let{id:i,email:a,emailVerified:o,name:u,image:d,...p}=n,m=sG(e.context.options,p,`create`),h={accessToken:await LY(r.accessToken,e.context),refreshToken:await LY(r.refreshToken,e.context),idToken:r.idToken,accessTokenExpiresAt:r.accessTokenExpiresAt,refreshTokenExpiresAt:r.refreshTokenExpiresAt,scope:r.scope,providerId:r.providerId,accountId:r.accountId},{createdUser:g,createdAccount:_}=await tH(e.context.adapter,async()=>{let t=await e.context.internalAdapter.createUser({name:u,image:d,...m,email:n.email.toLowerCase(),emailVerified:n.emailVerified},s);return{createdUser:t,createdAccount:await e.context.internalAdapter.createAccount({...h,userId:t.id})}});if(c&&(_.accountId!==r.accountId||_.providerId!==r.providerId||_.userId!==g.id))throw new D(`CONFLICT`,{code:`account_hook_binding_conflict`,message:`Account hook changed the selected authentication binding`});f=g,e.context.options.account?.storeAccountCookie&&(t.deferNonDatabaseWrites?l=_:await JK(e,_))}catch(t){if(Fq(t))throw t;return e.context.logger.error(`Unable to create OAuth user`,t),{error:`unable to create user`,data:null,isRegister:!1}}}if(!f)return{error:`unable to create user`,data:null,isRegister:!1};let m=e.context.socialProviders.find(e=>e.id===r.providerId)?.options?.requireEmailVerification;if(p&&!f.emailVerified&&(e.context.options.emailVerification?.sendOnSignUp??m)&&await WZ(e,f,i,t.deferNonDatabaseWrites),m&&!f.emailVerified)return!p&&e.context.options.emailVerification?.sendOnSignIn&&await WZ(e,f,i,t.deferNonDatabaseWrites),{error:Sq.EMAIL_NOT_VERIFIED,data:null,isRegister:p};let h=await e.context.internalAdapter.createSession(f.id,void 0,void 0,void 0,{deferSecondaryStorageWrites:t.deferNonDatabaseWrites===!0});if(!h)return{error:`unable to create session`,data:null,isRegister:!1};if(c&&h.userId!==(t.selectedUser?.userId??f.id))throw new D(`CONFLICT`,{code:`session_hook_user_conflict`,message:`Session hook changed the selected user`});return{data:{session:h,user:f},error:null,isRegister:p,accountCookie:l}}async function WZ(e,t,n,r){let i=e.context.options.emailVerification?.sendVerificationEmail;if(!i)return;let a=async()=>{try{let r=await BY(e.context.secret,t.email,void 0,e.context.options.emailVerification?.expiresIn),a=`${e.context.baseURL}/verify-email?token=${r}&callbackURL=${encodeURIComponent(n||`/`)}`;await e.context.runInBackgroundOrAwait(i({user:t,url:a,token:r},e.request))}catch(t){e.context.logger.error(`Failed to send OAuth verification email`,t)}};r?await nH(a):await a()}async function GZ(e,t,n){if(e.context.options.account?.accountLinking?.updateUserInfoOnLink===!0)try{let{email:r,emailVerified:i,name:a,image:o,...s}=n,c=sG(e.context.options,s,`update`);return await e.context.internalAdapter.updateUser(t,{name:a,image:o,...c})}catch(t){e.context.logger.warn(`Could not update user info on account link`,t);return}}const KZ=e=>{let t=`https://appleid.apple.com/auth/token`;return{id:`apple`,name:`Apple`,accountSubject:({profile:e})=>e.sub,async createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i,codeVerifier:a}){if(!qY(e.clientId)||!e.clientSecret)throw E.error(`Client ID and client secret are required for Apple. Make sure to provide them in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);let o=e.disableDefaultScope?[]:[`email`,`name`];return e.scope&&o.push(...e.scope),n&&o.push(...n),await ZY({id:`apple`,options:e,authorizationEndpoint:`https://appleid.apple.com/auth/authorize`,scopes:o,state:t,redirectURI:r,codeVerifier:a,responseMode:`form_post`,responseType:`code id_token`,additionalParams:i})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>AZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),idToken:{jwks:e=>qZ(e.kid),issuer:`https://appleid.apple.com`,audience:e.audience&&e.audience.length?e.audience:e.appBundleIdentifier?e.appBundleIdentifier:e.clientId,maxTokenAge:`1h`,nonceComparison:`exact-or-sha256`},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:e,tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.idToken)return null;let n=iI(t.idToken);if(!n)return null;let r;r=t.user?.name?`${t.user.name.firstName||``} ${t.user.name.lastName||``}`.trim():n.name||``;let i=typeof n.email_verified==`boolean`?n.email_verified:n.email_verified===`true`,a={...n,name:r},o=await e.mapProfileToUser?.(a);return{user:{name:a.name,emailVerified:i,email:n.email,...o},data:a}},options:e}},qZ=async e=>{let{data:t}=await BX(`https://appleid.apple.com/auth/keys`);if(!t?.keys)throw new D(`BAD_REQUEST`,{message:`Keys not found`});let n=t.keys.find(t=>t.kid===e);if(!n)throw Error(`JWK with kid ${e} not found`);return await nI(n,n.alg)},JZ=e=>{let t=`https://auth.atlassian.com/oauth/token`;return{id:`atlassian`,name:`Atlassian`,accountSubject:({profile:e})=>e.account_id,async createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a}){if(!e.clientId||!e.clientSecret)throw E.error(`Client Id and Secret are required for Atlassian`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);if(!r)throw new O(`codeVerifier is required for Atlassian`);let o=e.disableDefaultScope?[]:[`read:jira-user`,`offline_access`];return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`atlassian`,options:e,authorizationEndpoint:`https://auth.atlassian.com/authorize`,scopes:o,state:t,codeVerifier:r,redirectURI:i,additionalParams:{...a??{},audience:`api.atlassian.com`},prompt:e.prompt})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>AZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.accessToken)return null;try{let{data:n}=await BX(`https://api.atlassian.com/me`,{headers:{Authorization:`Bearer ${t.accessToken}`}});if(!n)return null;let r=await e.mapProfileToUser?.(n);return{user:{name:n.name,email:n.email,image:n.picture,emailVerified:!1,...r},data:n}}catch(e){return E.error(`Failed to fetch user info from Figma:`,e),null}},options:e}},YZ=`https://dash.cloudflare.com/oauth2/token`,XZ=e=>{let t=e.clientSecret?`client_secret_basic`:`none`;return{method:e.tokenEndpointAuthMethod??t}},ZZ=e=>({id:`cloudflare`,name:`Cloudflare`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i}){let a=e.disableDefaultScope?[]:[`user-details.read`];return e.scope?.length&&a.push(...e.scope),n?.length&&a.push(...n),ZY({id:`cloudflare`,options:e,authorizationEndpoint:`https://dash.cloudflare.com/oauth2/auth`,scopes:a.length?[...new Set(a)]:void 0,state:t,codeVerifier:r,redirectURI:i})},validateAuthorizationCode:async({code:t,codeVerifier:n,redirectURI:r})=>AZ({code:t,codeVerifier:n,redirectURI:r,options:e,tokenEndpoint:YZ,tokenEndpointAuth:XZ(e)}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:YZ,tokenEndpointAuth:XZ(e)}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.cloudflare.com/client/v4/user`,{headers:{authorization:`Bearer ${t.accessToken}`}});if(r||!n?.success||!n.result)return E.error(`Failed to fetch user info from Cloudflare:`,r??n?.errors),null;let i=n.result,a=[i.first_name,i.last_name].filter(Boolean).join(` `)||i.email,o=await e.mapProfileToUser?.(i);return{user:{name:a,email:i.email,emailVerified:!1,...o},data:i}},options:e}),QZ=e=>{if(!e.domain||!e.region||!e.userPoolId)throw E.error(`Domain, region and userPoolId are required for Amazon Cognito. Make sure to provide them in the options.`),new O(`DOMAIN_AND_REGION_REQUIRED`);let t=e.domain.replace(/^https?:\/\//,``),n=`https://${t}/oauth2/authorize`,r=`https://${t}/oauth2/token`,i=`https://${t}/oauth2/userinfo`;return{id:`cognito`,name:`Cognito`,accountSubject:({profile:e})=>e.sub,async createAuthorizationURL({state:t,scopes:r,codeVerifier:i,redirectURI:a,additionalParams:o}){if(!qY(e.clientId))throw E.error(`ClientId is required for Amazon Cognito. Make sure to provide them in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);if(e.requireClientSecret&&!e.clientSecret)throw E.error(`Client Secret is required when requireClientSecret is true. Make sure to provide it in the options.`),new O(`CLIENT_SECRET_REQUIRED`);let s=e.disableDefaultScope?[]:[`openid`,`profile`,`email`];e.scope&&s.push(...e.scope),r&&s.push(...r);let c=await ZY({id:`cognito`,options:{...e},authorizationEndpoint:n,scopes:s,state:t,codeVerifier:i,redirectURI:a,prompt:e.prompt,additionalParams:{...e.identityProvider?{identity_provider:e.identityProvider}:{},...o??{}}}),l=c.searchParams.get(`scope`);if(l){c.searchParams.delete(`scope`);let e=encodeURIComponent(l),t=c.toString(),n=t.includes(`?`)?`&`:`?`;return new URL(`${t}${n}scope=${e}`)}return c},validateAuthorizationCode:async({code:t,codeVerifier:n,redirectURI:i})=>AZ({code:t,codeVerifier:n,redirectURI:i,options:e,tokenEndpoint:r}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:r}),idToken:{jwks:t=>$Z(t.kid,e.region,e.userPoolId),issuer:`https://cognito-idp.${e.region}.amazonaws.com/${e.userPoolId}`,audience:e.clientId,maxTokenAge:`1h`},async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(t.idToken)try{let n=iI(t.idToken);if(!n)return null;let r=n.name||n.given_name||n.username||``,i={...n,name:r},a=await e.mapProfileToUser?.(i);return{user:{name:i.name,email:n.email,image:n.picture,emailVerified:n.email_verified,...a},data:i}}catch(e){E.error(`Failed to decode ID token:`,e)}if(t.accessToken)try{let{data:n}=await BX(i,{headers:{Authorization:`Bearer ${t.accessToken}`}});if(n){let t=await e.mapProfileToUser?.(n);return{user:{name:n.name||n.given_name||n.username||``,email:n.email,image:n.picture,emailVerified:n.email_verified,...t},data:n}}}catch(e){E.error(`Failed to fetch user info from Cognito:`,e)}return null},options:e}},$Z=async(e,t,n)=>{let r=`https://cognito-idp.${t}.amazonaws.com/${n}/.well-known/jwks.json`;try{let{data:t}=await BX(r);if(!t?.keys)throw new D(`BAD_REQUEST`,{message:`Keys not found`});let n=t.keys.find(t=>t.kid===e);if(!n)throw Error(`JWK with kid ${e} not found`);return await nI(n,n.alg)}catch(e){throw E.error(`Failed to fetch Cognito public key:`,e),e}},eQ=e=>{let t=`https://discord.com/api/oauth2/token`;return{id:`discord`,name:`Discord`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`identify`,`email`];n&&a.push(...n),e.scope&&a.push(...e.scope);let o=a.includes(`bot`);return ZY({id:`discord`,options:e,authorizationEndpoint:`https://discord.com/api/oauth2/authorize`,scopes:a,state:t,redirectURI:r,prompt:e.prompt||`none`,additionalParams:{...o&&e.permissions!==void 0?{permissions:String(e.permissions)}:{},...i??{}}})},validateAuthorizationCode:async({code:n,redirectURI:r})=>AZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://discord.com/api/users/@me`,{headers:{authorization:`Bearer ${t.accessToken}`}});if(r)return null;if(n.avatar===null)n.image_url=`https://cdn.discordapp.com/embed/avatars/${n.discriminator===`0`?Number(BigInt(n.id)>>BigInt(22))%6:parseInt(n.discriminator)%5}.png`;else{let e=n.avatar.startsWith(`a_`)?`gif`:`png`;n.image_url=`https://cdn.discordapp.com/avatars/${n.id}/${n.avatar}.${e}`}let i=await e.mapProfileToUser?.(n);return{user:{name:n.global_name||n.username||``,email:n.email,emailVerified:n.verified,image:n.image_url,...i},data:n}},options:e}},tQ=e=>{let t=`https://api.dropboxapi.com/oauth2/token`;return{id:`dropbox`,name:`Dropbox`,accountSubject:({profile:e})=>e.account_id,createAuthorizationURL:async({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a})=>{let o=e.disableDefaultScope?[]:[`account_info.read`];return e.scope&&o.push(...e.scope),n&&o.push(...n),await ZY({id:`dropbox`,options:e,authorizationEndpoint:`https://www.dropbox.com/oauth2/authorize`,scopes:o,state:t,redirectURI:i,codeVerifier:r,additionalParams:{...e.accessType?{token_access_type:e.accessType}:{},...a??{}}})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>await AZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.dropboxapi.com/2/users/get_current_account`,{method:`POST`,headers:{Authorization:`Bearer ${t.accessToken}`}});if(r)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.name?.display_name,email:n.email,emailVerified:n.email_verified||!1,image:n.profile_photo_url,...i},data:n}},options:e}};async function nQ(e,t){let n=qY(t.clientId);if(!n||!t.clientSecret)return null;let r=Array.isArray(t.clientId)?t.clientId:[t.clientId],{data:i,error:a}=await BX(`https://graph.facebook.com/debug_token`,{query:{input_token:e,access_token:`${n}|${t.clientSecret}`}});if(a||!i?.data)return null;let{is_valid:o,app_id:s,user_id:c}=i.data;return o!==!0||!s||!r.includes(s)||!c?null:c}const rQ=e=>({id:`facebook`,name:`Facebook`,accountSubject:({profile:e})=>`sub`in e?e.sub:e.id,async createAuthorizationURL({state:t,scopes:n,redirectURI:r,loginHint:i,additionalParams:a}){if(!qY(e.clientId)||!e.clientSecret)throw E.error(`Client ID and client secret are required for Facebook. Make sure to provide them in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);let o=e.disableDefaultScope?[]:[`email`,`public_profile`];return e.scope&&o.push(...e.scope),n&&o.push(...n),await ZY({id:`facebook`,options:e,authorizationEndpoint:`https://www.facebook.com/v24.0/dialog/oauth`,scopes:o,state:t,redirectURI:r,loginHint:i,additionalParams:{...e.configId?{config_id:e.configId}:{},...a??{}}})},validateAuthorizationCode:async({code:t,redirectURI:n})=>AZ({code:t,redirectURI:n,options:e,tokenEndpoint:`https://graph.facebook.com/v24.0/oauth/access_token`}),idToken:{jwks:cde(new URL(`https://limited.facebook.com/.well-known/oauth/openid/jwks/`)),issuer:`https://www.facebook.com`,audience:e.clientId,algorithms:[`RS256`],allowOpaqueToken:!0},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:`https://graph.facebook.com/v24.0/oauth/access_token`}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(t.idToken&&t.idToken.split(`.`).length===3){let n=iI(t.idToken),r=await e.mapProfileToUser?.(n);return{user:{name:n.name,email:n.email,image:n.picture,emailVerified:!1,...r},data:n}}let n=t.accessToken;if(!n)return null;let r=await nQ(n,e);if(!r)return null;let{data:i,error:a}=await BX(`https://graph.facebook.com/me?fields=`+[`id`,`name`,`email`,`picture`,...e?.fields||[]].join(`,`),{auth:{type:`Bearer`,token:n}});if(a||i.id!==r)return null;let o=await e.mapProfileToUser?.(i);return{user:{name:i.name,email:i.email,image:i.picture.data.url,emailVerified:i.email_verified??!1,...o},data:i}},options:e}),iQ=e=>{let t=`https://api.figma.com/v1/oauth/token`;return{id:`figma`,name:`Figma`,accountSubject:({profile:e})=>e.id,async createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a}){if(!e.clientId||!e.clientSecret)throw E.error(`Client Id and Client Secret are required for Figma. Make sure to provide them in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);if(!r)throw new O(`codeVerifier is required for Figma`);let o=e.disableDefaultScope?[]:[`current_user:read`];return e.scope&&o.push(...e.scope),n&&o.push(...n),await ZY({id:`figma`,options:e,authorizationEndpoint:`https://www.figma.com/oauth`,scopes:o,state:t,codeVerifier:r,redirectURI:i,additionalParams:a})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>AZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t,authentication:`basic`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t,authentication:`basic`}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);try{let{data:n}=await BX(`https://api.figma.com/v1/me`,{headers:{Authorization:`Bearer ${t.accessToken}`}});if(!n)return E.error(`Failed to fetch user from Figma`),null;let r=await e.mapProfileToUser?.(n);return{user:{name:n.handle,email:n.email,image:n.img_url,emailVerified:!1,...r},data:n}}catch(e){return E.error(`Failed to fetch user info from Figma:`,e),null}},options:e}},aQ=e=>{let t=`https://github.com/login/oauth/access_token`;return{id:`github`,name:`GitHub`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,loginHint:r,codeVerifier:i,redirectURI:a,additionalParams:o}){let s=e.disableDefaultScope?[]:[`read:user`,`user:email`];return e.scope&&s.push(...e.scope),n&&s.push(...n),ZY({id:`github`,options:e,authorizationEndpoint:`https://github.com/login/oauth/authorize`,scopes:s,state:t,codeVerifier:i,redirectURI:a,loginHint:r,prompt:e.prompt,additionalParams:o})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>{let{body:a,headers:o}=await OZ({code:n,codeVerifier:r,redirectURI:i,options:e}),{data:s,error:c}=await BX(t,{method:`POST`,body:a,headers:o});return c?(E.error(`GitHub OAuth token exchange failed:`,c),null):`error`in s?(E.error(`GitHub OAuth token exchange failed:`,s),null):GY(s)},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.github.com/user`,{headers:{"User-Agent":`better-auth`,authorization:`Bearer ${t.accessToken}`}});if(r)return null;let{data:i}=await BX(`https://api.github.com/user/emails`,{headers:{Authorization:`Bearer ${t.accessToken}`,"User-Agent":`better-auth`}});!n.email&&i&&(n.email=(i.find(e=>e.primary)??i[0])?.email);let a=i?.find(e=>e.email===n.email)?.verified??!1,o=await e.mapProfileToUser?.(n);return{user:{name:n.name||n.login||``,email:n.email,image:n.avatar_url,emailVerified:a,...o},data:n}},options:e}},oQ=(e=``)=>e.split(`://`).map(e=>e.replace(/\/{2,}/g,`/`)).join(`://`),sQ=e=>{let t=e||`https://gitlab.com`;return{authorizationEndpoint:oQ(`${t}/oauth/authorize`),tokenEndpoint:oQ(`${t}/oauth/token`),userinfoEndpoint:oQ(`${t}/api/v4/user`)}},cQ=e=>{let{authorizationEndpoint:t,tokenEndpoint:n,userinfoEndpoint:r}=sQ(e.issuer),i=`gitlab`;return{id:i,name:`Gitlab`,accountSubject:({profile:e})=>e.id,createAuthorizationURL:async({state:n,scopes:r,codeVerifier:a,loginHint:o,redirectURI:s,additionalParams:c})=>{let l=e.disableDefaultScope?[]:[`read_user`];return e.scope&&l.push(...e.scope),r&&l.push(...r),await ZY({id:i,options:e,authorizationEndpoint:t,scopes:l,state:n,redirectURI:s,codeVerifier:a,loginHint:o,additionalParams:c})},validateAuthorizationCode:async({code:t,redirectURI:r,codeVerifier:i})=>AZ({code:t,redirectURI:r,options:e,codeVerifier:i,tokenEndpoint:n}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:n}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:i}=await BX(r,{headers:{authorization:`Bearer ${t.accessToken}`}});if(i||n.state!==`active`||n.locked)return null;let a=await e.mapProfileToUser?.(n);return{user:{name:n.name??n.username??``,email:n.email,image:n.avatar_url,emailVerified:n.email_verified??!1,...a},data:n}},options:e}},lQ=(e,t)=>e?typeof t!=`string`||!t?!1:e===`*`||t===e:!0,Yde=e=>({id:`google`,name:`Google`,accountSubject:({profile:e})=>e.sub,async createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,loginHint:a,display:o,additionalParams:s}){if(!qY(e.clientId)||!e.clientSecret)throw E.error(`Client Id and Client Secret is required for Google. Make sure to provide them in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);if(!r)throw new O(`codeVerifier is required for Google`);let c=e.disableDefaultScope?[]:[`email`,`profile`,`openid`];return e.scope&&c.push(...e.scope),n&&c.push(...n),await ZY({id:`google`,options:e,authorizationEndpoint:`https://accounts.google.com/o/oauth2/v2/auth`,scopes:c,state:t,codeVerifier:r,redirectURI:i,prompt:e.prompt,accessType:e.accessType,display:o||e.display,loginHint:a,hd:e.hd,additionalParams:{...e.includeGrantedScopes===!1?{}:{include_granted_scopes:`true`},...s??{}}})},validateAuthorizationCode:async({code:t,codeVerifier:n,redirectURI:r})=>AZ({code:t,codeVerifier:n,redirectURI:r,options:e,tokenEndpoint:`https://oauth2.googleapis.com/token`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:`https://oauth2.googleapis.com/token`}),idToken:{jwks:e=>Xde(e.kid),issuer:[`https://accounts.google.com`,`accounts.google.com`],audience:e.clientId,maxTokenAge:`1h`,verifyClaims:e.hd?t=>lQ(e.hd,t.hd):void 0},async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.idToken)return null;let n=iI(t.idToken);if(!lQ(e.hd,n.hd))return E.error(`Google sign-in rejected: id token hosted domain (hd) "${n.hd??`<missing>`}" does not satisfy the configured "hd" option "${e.hd}".`),null;let r=await e.mapProfileToUser?.(n);return{user:{name:n.name,email:n.email,image:n.picture,emailVerified:n.email_verified,...r},data:n}},options:e}),Xde=async e=>{let[t]=await Zde(e);if(!t)throw Error(`JWK with kid ${e} not found`);return t},Zde=async e=>{let{data:t}=await BX(`https://www.googleapis.com/oauth2/v3/certs`);if(!t?.keys)throw new D(`BAD_REQUEST`,{message:`Keys not found`});let n=e?t.keys.filter(t=>t.kid===e):t.keys;if(!n.length)throw Error(`JWK with kid ${e} not found`);return Promise.all(n.map(e=>nI(e,`RS256`)))},Qde=e=>{let t=`https://huggingface.co/oauth/token`;return{id:`huggingface`,name:`Hugging Face`,accountSubject:({profile:e})=>e.sub,createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a}){let o=e.disableDefaultScope?[]:[`openid`,`profile`,`email`];return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`huggingface`,options:e,authorizationEndpoint:`https://huggingface.co/oauth/authorize`,scopes:o,state:t,codeVerifier:r,redirectURI:i,additionalParams:a})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>AZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://huggingface.co/oauth/userinfo`,{method:`GET`,headers:{Authorization:`Bearer ${t.accessToken}`}});if(r)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.name||n.preferred_username||``,email:n.email,image:n.picture,emailVerified:n.email_verified??!1,...i},data:n}},options:e}},$de=e=>{let t=`https://kauth.kakao.com/oauth/token`;return{id:`kakao`,name:`Kakao`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`account_email`,`profile_image`,`profile_nickname`];return e.scope&&a.push(...e.scope),n&&a.push(...n),ZY({id:`kakao`,options:e,authorizationEndpoint:`https://kauth.kakao.com/oauth/authorize`,scopes:a,state:t,redirectURI:r,additionalParams:i})},validateAuthorizationCode:async({code:n,redirectURI:r})=>AZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://kapi.kakao.com/v2/user/me`,{headers:{Authorization:`Bearer ${t.accessToken}`}});if(r||!n)return null;let i=await e.mapProfileToUser?.(n),a=n.kakao_account||{},o=a.profile||{};return{user:{name:o.nickname||a.name||``,email:a.email,image:o.profile_image_url||o.thumbnail_image_url,emailVerified:!!a.is_email_valid&&!!a.is_email_verified,...i},data:n}},options:e}},efe=e=>({id:`kick`,name:`Kick`,accountSubject:({profile:e})=>e.user_id,createAuthorizationURL({state:t,scopes:n,redirectURI:r,codeVerifier:i,additionalParams:a}){let o=e.disableDefaultScope?[]:[`user:read`];return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`kick`,redirectURI:r,options:e,authorizationEndpoint:`https://id.kick.com/oauth/authorize`,scopes:o,codeVerifier:i,state:t,additionalParams:a})},async validateAuthorizationCode({code:t,redirectURI:n,codeVerifier:r}){return AZ({code:t,redirectURI:n,options:e,tokenEndpoint:`https://id.kick.com/oauth/token`,codeVerifier:r})},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientSecret:e.clientSecret},tokenEndpoint:`https://id.kick.com/oauth/token`}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.kick.com/public/v1/users`,{method:`GET`,headers:{Authorization:`Bearer ${t.accessToken}`}});if(r)return null;let i=n.data[0],a=await e.mapProfileToUser?.(i);return{user:{name:i.name,email:i.email,image:i.profile_picture,emailVerified:!1,...a},data:i}},options:e}),tfe=e=>{let t=`https://api.line.me/oauth2/v2.1/token`;return{id:`line`,name:`LINE`,accountSubject:({profile:e})=>e.sub,async createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,loginHint:a,additionalParams:o}){let s=e.disableDefaultScope?[]:[`openid`,`profile`,`email`];return e.scope&&s.push(...e.scope),n&&s.push(...n),await ZY({id:`line`,options:e,authorizationEndpoint:`https://access.line.me/oauth2/v2.1/authorize`,scopes:s,state:t,codeVerifier:r,redirectURI:i,loginHint:a,additionalParams:o})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>AZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientSecret:e.clientSecret},tokenEndpoint:t}),idToken:{verify:async(t,n)=>{let r=new URLSearchParams;r.set(`id_token`,t),r.set(`client_id`,e.clientId),n&&r.set(`nonce`,n);let{data:i,error:a}=await BX(`https://api.line.me/oauth2/v2.1/verify`,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`},body:r});return!(a||!i||i.aud!==e.clientId||i.nonce&&i.nonce!==n)}},async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let n=null;if(t.idToken)try{n=iI(t.idToken)}catch{}if(!n){let{data:e}=await BX(`https://api.line.me/oauth2/v2.1/userinfo`,{headers:{authorization:`Bearer ${t.accessToken}`}});n=e||null}if(!n)return null;let r=await e.mapProfileToUser?.(n);return{user:{name:n.name||``,email:n.email,image:n.picture,emailVerified:!1,...r},data:n}},options:e}},nfe=e=>{let t=`https://api.linear.app/oauth/token`;return{id:`linear`,name:`Linear`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,loginHint:r,redirectURI:i,additionalParams:a}){let o=e.disableDefaultScope?[]:[`read`];return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`linear`,options:e,authorizationEndpoint:`https://linear.app/oauth/authorize`,scopes:o,state:t,redirectURI:i,loginHint:r,additionalParams:a})},validateAuthorizationCode:async({code:n,redirectURI:r})=>AZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.linear.app/graphql`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${t.accessToken}`},body:JSON.stringify({query:`
62
- query {
63
- viewer {
64
- id
65
- name
66
- email
67
- avatarUrl
68
- active
69
- createdAt
70
- updatedAt
71
- }
72
- }
73
- `})});if(r||!n?.data?.viewer)return null;let i=n.data.viewer,a=await e.mapProfileToUser?.(i);return{user:{name:n.data.viewer.name,email:n.data.viewer.email,image:n.data.viewer.avatarUrl,emailVerified:!1,...a},data:i}},options:e}},rfe=e=>{let t=`https://www.linkedin.com/oauth/v2/accessToken`;return{id:`linkedin`,name:`Linkedin`,accountSubject:({profile:e})=>e.sub,createAuthorizationURL:async({state:t,scopes:n,redirectURI:r,loginHint:i,additionalParams:a})=>{let o=e.disableDefaultScope?[]:[`profile`,`email`,`openid`];return e.scope&&o.push(...e.scope),n&&o.push(...n),await ZY({id:`linkedin`,options:e,authorizationEndpoint:`https://www.linkedin.com/oauth/v2/authorization`,scopes:o,state:t,loginHint:i,redirectURI:r,additionalParams:a})},validateAuthorizationCode:async({code:n,redirectURI:r})=>await AZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.linkedin.com/v2/userinfo`,{method:`GET`,headers:{Authorization:`Bearer ${t.accessToken}`}});if(r)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.name,email:n.email,emailVerified:n.email_verified??!1,image:n.picture,...i},data:n}},options:e}},uQ=`9188040d-6c67-4c5b-b112-36a304b66dad`,ife=e=>{let t=e.tenantId||`common`,n=e.authority||`https://login.microsoftonline.com`;for(;n.endsWith(`/`);)n=n.slice(0,-1);let r=`${n}/${t}/oauth2/v2.0/authorize`,i=`${n}/${t}/oauth2/v2.0/token`;if(e.clientSecret&&e.clientAssertion)throw new O(`Microsoft Entra ID clientAssertion cannot be combined with clientSecret`);let a=e.clientAssertion?{method:`private_key_jwt`,getClientAssertion:e.clientAssertion}:void 0;return{id:`microsoft`,name:`Microsoft EntraID`,accountSubject:({profile:e})=>e.oid,createAuthorizationURL(t){if(!qY(e.clientId))throw E.error(`Client Id is required for Microsoft Entra ID. Make sure to provide it in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);let n=e.disableDefaultScope?[]:[`openid`,`profile`,`email`,`User.Read`,`offline_access`];return e.scope&&n.push(...e.scope),t.scopes&&n.push(...t.scopes),ZY({id:`microsoft`,options:e,authorizationEndpoint:r,state:t.state,codeVerifier:t.codeVerifier,scopes:n,redirectURI:t.redirectURI,prompt:e.prompt,loginHint:t.loginHint,additionalParams:t.additionalParams})},validateAuthorizationCode({code:t,codeVerifier:n,redirectURI:r}){return AZ({code:t,codeVerifier:n,redirectURI:r,options:e,tokenEndpoint:i,tokenEndpointAuth:a})},idToken:{jwks:e=>afe(e.kid,t,n),audience:e.clientId,maxTokenAge:`1h`,issuer:t!==`common`&&t!==`organizations`&&t!==`consumers`?`${n}/${t}/v2.0`:void 0,verifyClaims:e=>{let r=e.tid;return!(typeof r!=`string`||e.iss!==`${n}/${r}/v2.0`||t===`organizations`&&r===uQ||t===`consumers`&&r!==uQ)}},async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.idToken)return null;let n=iI(t.idToken);if(typeof n.oid!=`string`||n.oid.trim().length===0)return E.error(`Microsoft Entra ID token did not include a valid oid claim; unable to resolve a stable account identifier.`),null;let r=e.profilePhotoSize||48;!e.disableProfilePhoto&&t.accessToken&&await BX(`https://graph.microsoft.com/v1.0/me/photos/${r}x${r}/$value`,{headers:{Authorization:`Bearer ${t.accessToken}`},async onResponse(e){if(e.response.ok)try{let t=await e.response.clone().arrayBuffer();n.picture=`data:image/jpeg;base64, ${jU.encode(t)}`}catch(e){E.error(e&&typeof e==`object`&&`name`in e?e.name:``,e)}}});let i=await e.mapProfileToUser?.(n),a=n.email_verified===void 0?!!(n.email&&(n.verified_primary_email?.includes(n.email)||n.verified_secondary_email?.includes(n.email))):n.email_verified;return{user:{name:n.name,email:n.email,image:n.picture,emailVerified:a,...i},data:n}},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>{let n=e.disableDefaultScope?[]:[`openid`,`profile`,`email`,`User.Read`,`offline_access`];return e.scope&&n.push(...e.scope),DZ({refreshToken:t,options:{clientId:e.clientId,clientSecret:e.clientSecret},extraParams:{scope:n.join(` `)},tokenEndpoint:i,tokenEndpointAuth:a})},options:e}},afe=async(e,t,n)=>{let{data:r}=await BX(`${n}/${t}/discovery/v2.0/keys`);if(!r?.keys)throw new D(`BAD_REQUEST`,{message:`Keys not found`});let i=r.keys.find(t=>t.kid===e);if(!i)throw Error(`JWK with kid ${e} not found`);return await nI(i,i.alg)},ofe=e=>{let t=`https://nid.naver.com/oauth2.0/token`;return{id:`naver`,name:`Naver`,accountSubject:({profile:e})=>e.response.id,createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`profile`,`email`];return e.scope&&a.push(...e.scope),n&&a.push(...n),ZY({id:`naver`,options:e,authorizationEndpoint:`https://nid.naver.com/oauth2.0/authorize`,scopes:a,state:t,redirectURI:r,additionalParams:i})},validateAuthorizationCode:async({code:n,redirectURI:r})=>AZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://openapi.naver.com/v1/nid/me`,{headers:{Authorization:`Bearer ${t.accessToken}`}});if(r||!n||n.resultcode!==`00`)return null;let i=await e.mapProfileToUser?.(n),a=n.response||{};return{user:{name:a.name||a.nickname||``,email:a.email,image:a.profile_image,emailVerified:!1,...i},data:n}},options:e}},sfe=e=>{let t=`https://api.notion.com/v1/oauth/token`;return{id:`notion`,name:`Notion`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,loginHint:r,redirectURI:i,additionalParams:a}){let o=(e.disableDefaultScope,[]);return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`notion`,options:e,authorizationEndpoint:`https://api.notion.com/v1/oauth/authorize`,scopes:o,state:t,redirectURI:i,loginHint:r,additionalParams:{...a??{},owner:`user`}})},validateAuthorizationCode:async({code:n,redirectURI:r})=>AZ({code:n,redirectURI:r,options:e,tokenEndpoint:t,authentication:`basic`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.notion.com/v1/users/me`,{headers:{Authorization:`Bearer ${t.accessToken}`,"Notion-Version":`2022-06-28`}});if(r||!n)return null;let i=n.bot?.owner?.user;if(!i)return null;let a=await e.mapProfileToUser?.(i);return{user:{name:i.name||``,email:i.person?.email||null,image:i.avatar_url,emailVerified:!1,...a},data:i}},options:e}},cfe=e=>{let t=e.issuer||`https://idp.paybin.io`,n=`${t}/oauth2/authorize`,r=`${t}/oauth2/token`;return{id:`paybin`,name:`Paybin`,accountSubject:({profile:e})=>e.sub,async createAuthorizationURL({state:t,scopes:r,codeVerifier:i,redirectURI:a,loginHint:o,additionalParams:s}){if(!e.clientId||!e.clientSecret)throw E.error(`Client Id and Client Secret is required for Paybin. Make sure to provide them in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);if(!i)throw new O(`codeVerifier is required for Paybin`);let c=e.disableDefaultScope?[]:[`openid`,`email`,`profile`];return e.scope&&c.push(...e.scope),r&&c.push(...r),await ZY({id:`paybin`,options:e,authorizationEndpoint:n,scopes:c,state:t,codeVerifier:i,redirectURI:a,prompt:e.prompt,loginHint:o,additionalParams:s})},validateAuthorizationCode:async({code:t,codeVerifier:n,redirectURI:i})=>AZ({code:t,codeVerifier:n,redirectURI:i,options:e,tokenEndpoint:r}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:r}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.idToken)return null;let n=iI(t.idToken),r=await e.mapProfileToUser?.(n);return{user:{name:n.name||n.preferred_username||``,email:n.email,image:n.picture,emailVerified:n.email_verified||!1,...r},data:n}},options:e}},lfe=e=>{let t=(e.environment||`sandbox`)===`sandbox`,n=t?`https://www.sandbox.paypal.com/signin/authorize`:`https://www.paypal.com/signin/authorize`,r=t?`https://api-m.sandbox.paypal.com/v1/oauth2/token`:`https://api-m.paypal.com/v1/oauth2/token`,i=t?`https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo`:`https://api-m.paypal.com/v1/identity/oauth2/userinfo`,a={clientId:e.clientId,clientSecret:e.clientSecret},o={method:`client_secret_basic`};return{id:`paypal`,name:`PayPal`,accountSubject:({profile:e})=>e.user_id,async createAuthorizationURL({state:t,codeVerifier:r,redirectURI:i,additionalParams:a}){if(!e.clientId||!e.clientSecret)throw E.error(`Client Id and Client Secret is required for PayPal. Make sure to provide them in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);return await ZY({id:`paypal`,options:e,authorizationEndpoint:n,scopes:[],state:t,codeVerifier:r,redirectURI:i,prompt:e.prompt,additionalParams:a})},validateAuthorizationCode:async({code:t,codeVerifier:n,redirectURI:i})=>{try{return await AZ({code:t,codeVerifier:n,redirectURI:e.redirectURI||i,options:a,tokenEndpoint:r,tokenEndpointAuth:o})}catch(e){throw E.error(`PayPal token exchange failed:`,e),new O(`FAILED_TO_GET_ACCESS_TOKEN`)}},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async e=>{try{return await DZ({refreshToken:e,options:a,tokenEndpoint:r,tokenEndpointAuth:o})}catch(e){throw E.error(`PayPal token refresh failed:`,e),new O(`FAILED_TO_REFRESH_ACCESS_TOKEN`)}},async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.accessToken)return E.error(`Access token is required to fetch PayPal user info`),null;try{let n=await BX(`${i}?schema=paypalv1.1`,{headers:{Authorization:`Bearer ${t.accessToken}`,Accept:`application/json`}});if(!n.data)return E.error(`Failed to fetch user info from PayPal`),null;let r=n.data;if(t.idToken){let e;try{e=iI(t.idToken).sub}catch(e){return E.error(`Failed to decode PayPal ID token:`,e),null}let n=r.sub??r.user_id;if(!e||n!==e)return E.error(`PayPal user info subject does not match ID token subject`),null}let a=await e.mapProfileToUser?.(r);return{user:{name:r.name,email:r.email,image:r.picture,emailVerified:r.email_verified,...a},data:r}}catch(e){return E.error(`Failed to fetch user info from PayPal:`,e),null}},options:e}},ufe=e=>{let t=`https://api.polar.sh/v1/oauth2/token`;return{id:`polar`,name:`Polar`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a}){let o=e.disableDefaultScope?[]:[`openid`,`profile`,`email`];return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`polar`,options:e,authorizationEndpoint:`https://polar.sh/oauth2/authorize`,scopes:o,state:t,codeVerifier:r,redirectURI:i,prompt:e.prompt,additionalParams:a})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>AZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.polar.sh/v1/oauth2/userinfo`,{headers:{Authorization:`Bearer ${t.accessToken}`}});if(r)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.public_name||n.username||``,email:n.email,image:n.avatar_url,emailVerified:n.email_verified??!1,...i},data:n}},options:e}},dQ=`https://backboard.railway.com/oauth/token`,dfe=e=>({id:`railway`,name:`Railway`,accountSubject:({profile:e})=>e.sub,createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a}){let o=e.disableDefaultScope?[]:[`openid`,`email`,`profile`];return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`railway`,options:e,authorizationEndpoint:`https://backboard.railway.com/oauth/auth`,scopes:o,state:t,codeVerifier:r,redirectURI:i,additionalParams:a})},validateAuthorizationCode:async({code:t,codeVerifier:n,redirectURI:r})=>AZ({code:t,codeVerifier:n,redirectURI:r,options:e,tokenEndpoint:dQ,authentication:`basic`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:dQ,authentication:`basic`}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://backboard.railway.com/oauth/me`,{headers:{authorization:`Bearer ${t.accessToken}`}});if(r||!n)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.name,email:n.email,image:n.picture,emailVerified:!1,...i},data:n}},options:e});function fQ({identifier:e,namespace:t}){let n=be().safeParse(`${e}@${t}.placeholder.invalid`);if(!n.success)throw TypeError(`Invalid placeholder email`);return n.data}const pQ={apple:KZ,atlassian:JZ,cloudflare:ZZ,cognito:QZ,discord:eQ,facebook:rQ,figma:iQ,github:aQ,microsoft:ife,google:Yde,huggingface:Qde,slack:e=>{let t=`https://slack.com/api/openid.connect.token`;return{id:`slack`,name:`Slack`,accountSubject:({profile:e})=>e[`https://slack.com/user_id`],createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`openid`,`profile`,`email`];return n&&a.push(...n),e.scope&&a.push(...e.scope),ZY({id:`slack`,options:e,authorizationEndpoint:`https://slack.com/openid/connect/authorize`,scopes:a,state:t,redirectURI:r,additionalParams:i})},validateAuthorizationCode:async({code:n,redirectURI:r})=>AZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://slack.com/api/openid.connect.userInfo`,{headers:{authorization:`Bearer ${t.accessToken}`}});if(r)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.name||``,email:n.email,emailVerified:n.email_verified,image:n.picture||n[`https://slack.com/user_image_512`],...i},data:n}},options:e}},spotify:e=>{let t=`https://accounts.spotify.com/api/token`;return{id:`spotify`,name:`Spotify`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a}){let o=e.disableDefaultScope?[]:[`user-read-email`];return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`spotify`,options:e,authorizationEndpoint:`https://accounts.spotify.com/authorize`,scopes:o,state:t,codeVerifier:r,redirectURI:i,additionalParams:a})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>AZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.spotify.com/v1/me`,{method:`GET`,headers:{Authorization:`Bearer ${t.accessToken}`}});if(r)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.display_name,email:n.email,image:n.images[0]?.url,emailVerified:!1,...i},data:n}},options:e}},twitch:e=>{let t=`https://id.twitch.tv/oauth2/token`;return{id:`twitch`,name:`Twitch`,accountSubject:({profile:e})=>e.sub,createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`user:read:email`,`openid`];return e.scope&&a.push(...e.scope),n&&a.push(...n),ZY({id:`twitch`,redirectURI:r,options:e,authorizationEndpoint:`https://id.twitch.tv/oauth2/authorize`,scopes:a,state:t,claims:e.claims||[`email`,`email_verified`,`preferred_username`,`picture`],additionalParams:i})},validateAuthorizationCode:async({code:n,redirectURI:r})=>AZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let n=t.idToken;if(!n)return E.error(`No idToken found in token`),null;let r=iI(n),i=await e.mapProfileToUser?.(r);return{user:{name:r.preferred_username,email:r.email,image:r.picture,emailVerified:r.email_verified,...i},data:r}},options:e}},twitter:e=>{let t=`https://api.x.com/2/oauth2/token`;return{id:`twitter`,name:`Twitter`,accountSubject:({profile:e})=>e.data.id,createAuthorizationURL(t){let n=e.disableDefaultScope?[]:[`users.read`,`tweet.read`,`offline.access`,`users.email`];return e.scope&&n.push(...e.scope),t.scopes&&n.push(...t.scopes),ZY({id:`twitter`,options:e,authorizationEndpoint:`https://x.com/i/oauth2/authorize`,scopes:n,state:t.state,codeVerifier:t.codeVerifier,redirectURI:t.redirectURI,additionalParams:t.additionalParams})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i})=>AZ({code:n,codeVerifier:r,authentication:`basic`,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},authentication:`basic`,tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.x.com/2/users/me?user.fields=profile_image_url`,{method:`GET`,headers:{Authorization:`Bearer ${t.accessToken}`}});if(r)return null;let{data:i,error:a}=await BX(`https://api.x.com/2/users/me?user.fields=confirmed_email`,{method:`GET`,headers:{Authorization:`Bearer ${t.accessToken}`}}),o=!1;!a&&i?.data?.confirmed_email&&(n.data.email=i.data.confirmed_email,o=!0);let s=await e.mapProfileToUser?.(n);return{user:{name:n.data.name,email:n.data.email||fQ({identifier:n.data.id,namespace:`twitter`}),image:n.data.profile_image_url,emailVerified:o,...s},data:n}},options:e}},dropbox:tQ,kick:efe,linear:nfe,linkedin:rfe,gitlab:cQ,tiktok:e=>{let t=`https://open.tiktokapis.com/v2/oauth/token/`,n={method:`custom`,customizeRequest({body:t}){t.set(`client_key`,e.clientKey),t.set(`client_secret`,e.clientSecret)}};return{id:`tiktok`,name:`TikTok`,accountSubject:({profile:e})=>e.data.user.open_id,createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`user.info.profile`];e.scope&&a.push(...e.scope),n&&a.push(...n);let o=new URL(`https://www.tiktok.com/v2/auth/authorize`);if(o.searchParams.set(`scope`,a.join(`,`)),o.searchParams.set(`response_type`,`code`),o.searchParams.set(`client_key`,e.clientKey),o.searchParams.set(`redirect_uri`,e.redirectURI||r),o.searchParams.set(`state`,t),i)for(let[e,t]of Object.entries(i))XY.has(e)||e!==`client_key`&&o.searchParams.set(e,t);return o},validateAuthorizationCode:async({code:r,codeVerifier:i,redirectURI:a})=>AZ({code:r,codeVerifier:i,redirectURI:e.redirectURI||a,options:{},tokenEndpoint:t,tokenEndpointAuth:n}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async e=>DZ({refreshToken:e,options:{},tokenEndpoint:t,tokenEndpointAuth:n}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://open.tiktokapis.com/v2/user/info/?fields=${[`open_id`,`avatar_large_url`,`display_name`,`username`].join(`,`)}`,{headers:{authorization:`Bearer ${t.accessToken}`}});return r?null:{user:{email:n.data.user.email||fQ({identifier:n.data.user.open_id,namespace:`tiktok`}),name:n.data.user.display_name||n.data.user.username||``,image:n.data.user.avatar_large_url,emailVerified:!1},data:n}},options:e}},reddit:e=>{let t=`https://www.reddit.com/api/v1/access_token`,n={clientId:e.clientId,clientSecret:e.clientSecret},r={method:`client_secret_basic`};return{id:`reddit`,name:`Reddit`,accountSubject:({profile:e})=>e.id,createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`identity`];return e.scope&&a.push(...e.scope),n&&a.push(...n),ZY({id:`reddit`,options:e,authorizationEndpoint:`https://www.reddit.com/api/v1/authorize`,scopes:a,state:t,redirectURI:r,duration:e.duration,additionalParams:i})},validateAuthorizationCode:async({code:i,redirectURI:a})=>AZ({code:i,redirectURI:e.redirectURI||a,options:n,tokenEndpoint:t,tokenEndpointAuth:r,headers:{accept:`text/plain`,"user-agent":`better-auth`}}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async e=>DZ({refreshToken:e,options:n,tokenEndpoint:t,tokenEndpointAuth:r}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://oauth.reddit.com/api/v1/me`,{headers:{Authorization:`Bearer ${t.accessToken}`,"User-Agent":`better-auth`}});if(r)return null;let i=await e.mapProfileToUser?.(n),a=i?.email||fQ({identifier:n.id,namespace:`reddit`});return{user:{name:n.name,image:n.icon_img?.split(`?`)[0],...i,email:a,emailVerified:i?.emailVerified??!1},data:n}},options:e}},roblox:e=>{let t=`https://apis.roblox.com/oauth/v1/token`;return{id:`roblox`,name:`Roblox`,accountSubject:({profile:e})=>e.sub,createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`openid`,`profile`];return e.scope&&a.push(...e.scope),n&&a.push(...n),ZY({id:`roblox`,options:e,authorizationEndpoint:`https://apis.roblox.com/oauth/v1/authorize`,scopes:a,state:t,redirectURI:r,prompt:e.prompt||`select_account consent`,additionalParams:i})},validateAuthorizationCode:async({code:n,redirectURI:r})=>AZ({code:n,redirectURI:e.redirectURI||r,options:e,tokenEndpoint:t,authentication:`post`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://apis.roblox.com/oauth/v1/userinfo`,{headers:{authorization:`Bearer ${t.accessToken}`}});if(r)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.nickname||n.preferred_username||``,image:n.picture,email:fQ({identifier:n.sub,namespace:`roblox`}),emailVerified:!1,...i},data:{...n}}},options:e}},salesforce:e=>{let t=(e.environment??`production`)===`sandbox`,n=e.loginUrl?`https://${e.loginUrl}/services/oauth2/authorize`:t?`https://test.salesforce.com/services/oauth2/authorize`:`https://login.salesforce.com/services/oauth2/authorize`,r=e.loginUrl?`https://${e.loginUrl}/services/oauth2/token`:t?`https://test.salesforce.com/services/oauth2/token`:`https://login.salesforce.com/services/oauth2/token`,i=e.loginUrl?`https://${e.loginUrl}/services/oauth2/userinfo`:t?`https://test.salesforce.com/services/oauth2/userinfo`:`https://login.salesforce.com/services/oauth2/userinfo`;return{id:`salesforce`,name:`Salesforce`,accountSubject:({profile:e})=>e.user_id,async createAuthorizationURL({state:t,scopes:r,codeVerifier:i,redirectURI:a,additionalParams:o}){if(!e.clientId||!e.clientSecret)throw E.error(`Client Id and Client Secret are required for Salesforce. Make sure to provide them in the options.`),new O(`CLIENT_ID_AND_SECRET_REQUIRED`);if(!i)throw new O(`codeVerifier is required for Salesforce`);let s=e.disableDefaultScope?[]:[`openid`,`email`,`profile`];return e.scope&&s.push(...e.scope),r&&s.push(...r),ZY({id:`salesforce`,options:e,authorizationEndpoint:n,scopes:s,state:t,codeVerifier:i,redirectURI:e.redirectURI||a,additionalParams:o})},validateAuthorizationCode:async({code:t,codeVerifier:n,redirectURI:i})=>AZ({code:t,codeVerifier:n,redirectURI:e.redirectURI||i,options:e,tokenEndpoint:r}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>DZ({refreshToken:t,options:{clientId:e.clientId,clientSecret:e.clientSecret},tokenEndpoint:r}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);try{let{data:n}=await BX(i,{headers:{Authorization:`Bearer ${t.accessToken}`}});if(!n)return E.error(`Failed to fetch user info from Salesforce`),null;let r=await e.mapProfileToUser?.(n);return{user:{name:n.name,email:n.email,image:n.photos?.picture||n.photos?.thumbnail,emailVerified:n.email_verified??!1,...r},data:n}}catch(e){return E.error(`Failed to fetch user info from Salesforce:`,e),null}},options:e}},vk:e=>{let t=`https://id.vk.com/oauth2/auth`;return{id:`vk`,name:`VK`,accountSubject:({profile:e})=>e.user.user_id,async createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a}){let o=e.disableDefaultScope?[]:[`email`,`phone`];return e.scope&&o.push(...e.scope),n&&o.push(...n),ZY({id:`vk`,options:e,authorizationEndpoint:`https://id.vk.com/authorize`,scopes:o,state:t,redirectURI:i,codeVerifier:r,additionalParams:a})},validateAuthorizationCode:async({code:n,codeVerifier:r,redirectURI:i,deviceId:a})=>AZ({code:n,codeVerifier:r,redirectURI:e.redirectURI||i,options:e,deviceId:a,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>DZ({refreshToken:n,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.accessToken)return null;let{data:n,error:r}=await BX(`https://id.vk.com/oauth2/user_info`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({access_token:t.accessToken,client_id:e.clientId}).toString()});if(r)return null;let i=await e.mapProfileToUser?.(n);return!n.user.email&&!i?.email?null:{user:{first_name:n.user.first_name,last_name:n.user.last_name,email:n.user.email,image:n.user.avatar,emailVerified:!1,birthday:n.user.birthday,sex:n.user.sex,name:`${n.user.first_name} ${n.user.last_name}`,...i},data:n}},options:e}},zoom:e=>{let t={pkce:!0,...e};return{id:`zoom`,name:`Zoom`,accountSubject:({profile:e})=>e.id,createAuthorizationURL:async({state:e,redirectURI:n,codeVerifier:r,additionalParams:i})=>ZY({id:`zoom`,options:t,authorizationEndpoint:`https://zoom.us/oauth/authorize`,state:e,redirectURI:n,codeVerifier:t.pkce?r:void 0,additionalParams:i}),validateAuthorizationCode:async({code:e,redirectURI:n,codeVerifier:r})=>AZ({code:e,redirectURI:t.redirectURI||n,codeVerifier:r,options:t,tokenEndpoint:`https://zoom.us/oauth/token`,authentication:`post`}),refreshAccessToken:t.refreshAccessToken?t.refreshAccessToken:async e=>DZ({refreshToken:e,options:{clientId:t.clientId,clientKey:t.clientKey,clientSecret:t.clientSecret},tokenEndpoint:`https://zoom.us/oauth/token`}),async getUserInfo(e){if(t.getUserInfo)return t.getUserInfo(e);let{data:n,error:r}=await BX(`https://api.zoom.us/v2/users/me`,{headers:{authorization:`Bearer ${e.accessToken}`}});if(r)return null;let i=await t.mapProfileToUser?.(n);return{user:{name:n.display_name,image:n.pic_url,email:n.email,emailVerified:!!n.verified,...i},data:{...n}}}}},notion:sfe,kakao:$de,naver:ofe,line:tfe,paybin:cfe,paypal:lfe,polar:ufe,railway:dfe,vercel:e=>({id:`vercel`,name:`Vercel`,accountSubject:({profile:e})=>e.sub,createAuthorizationURL({state:t,scopes:n,codeVerifier:r,redirectURI:i,additionalParams:a}){if(!r)throw new O(`codeVerifier is required for Vercel`);let o;return(e.scope!==void 0||n!==void 0)&&(o=[],e.scope&&o.push(...e.scope),n&&o.push(...n)),ZY({id:`vercel`,options:e,authorizationEndpoint:`https://vercel.com/oauth/authorize`,scopes:o,state:t,codeVerifier:r,redirectURI:i,additionalParams:a})},validateAuthorizationCode:async({code:t,codeVerifier:n,redirectURI:r})=>AZ({code:t,codeVerifier:n,redirectURI:r,options:e,tokenEndpoint:`https://api.vercel.com/login/oauth/token`}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await BX(`https://api.vercel.com/login/oauth/userinfo`,{headers:{Authorization:`Bearer ${t.accessToken}`}});if(r||!n)return null;let i=await e.mapProfileToUser?.(n);return{user:{name:n.name??n.preferred_username??``,email:n.email,image:n.picture,emailVerified:n.email_verified??!1,...i},data:n}},options:e}),wechat:e=>({id:`wechat`,name:`WeChat`,accountSubject:({profile:e})=>e.unionid||e.openid,createAuthorizationURL({state:t,scopes:n,redirectURI:r,additionalParams:i}){let a=e.disableDefaultScope?[]:[`snsapi_login`];e.scope&&a.push(...e.scope),n&&a.push(...n);let o=new URL(`https://open.weixin.qq.com/connect/qrconnect`);if(o.searchParams.set(`scope`,a.join(`,`)),o.searchParams.set(`response_type`,`code`),o.searchParams.set(`appid`,e.clientId),o.searchParams.set(`redirect_uri`,e.redirectURI||r),o.searchParams.set(`state`,t),o.searchParams.set(`lang`,e.lang||`cn`),i)for(let[e,t]of Object.entries(i))XY.has(e)||e!==`appid`&&o.searchParams.set(e,t);return o.hash=`wechat_redirect`,o},validateAuthorizationCode:async({code:t})=>{let{data:n,error:r}=await BX(`https://api.weixin.qq.com/sns/oauth2/access_token?`+new URLSearchParams({appid:e.clientId,secret:e.clientSecret,code:t,grant_type:`authorization_code`}).toString(),{method:`GET`});if(r||!n||n.errcode)throw Error(`Failed to validate authorization code: ${n?.errmsg||r?.message||`Unknown error`}`);return{tokenType:`Bearer`,accessToken:n.access_token,refreshToken:n.refresh_token,accessTokenExpiresAt:new Date(Date.now()+n.expires_in*1e3),scopes:n.scope.split(`,`),openid:n.openid,unionid:n.unionid}},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>{let{data:n,error:r}=await BX(`https://api.weixin.qq.com/sns/oauth2/refresh_token?`+new URLSearchParams({appid:e.clientId,grant_type:`refresh_token`,refresh_token:t}).toString(),{method:`GET`});if(r||!n||n.errcode)throw Error(`Failed to refresh access token: ${n?.errmsg||r?.message||`Unknown error`}`);return{tokenType:`Bearer`,accessToken:n.access_token,refreshToken:n.refresh_token,accessTokenExpiresAt:new Date(Date.now()+n.expires_in*1e3),scopes:n.scope.split(`,`)}},async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let n=t.openid;if(!n)return null;let{data:r,error:i}=await BX(`https://api.weixin.qq.com/sns/userinfo?`+new URLSearchParams({access_token:t.accessToken||``,openid:n,lang:`zh_CN`}).toString(),{method:`GET`});if(i||!r||r.errcode)return null;let a=await e.mapProfileToUser?.(r),o=r.unionid||r.openid||n;return{user:{name:r.nickname,email:r.email||fQ({identifier:o,namespace:`wechat`}),image:r.headimgurl,emailVerified:!1,...a},data:r}},options:e})},ffe=Object.keys(pQ),mQ=De(ffe).or(A());function hQ(e){return e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[]}const pfe=X(`/list-accounts`,{method:`GET`,use:[VJ],metadata:{openapi:{operationId:`listUserAccounts`,description:`List all accounts linked to the user`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`array`,items:{type:`object`,properties:{id:{type:`string`},providerId:{type:`string`},createdAt:{type:`string`,format:`date-time`},updatedAt:{type:`string`,format:`date-time`},accountId:{type:`string`},userId:{type:`string`},scopes:{type:`array`,items:{type:`string`}}},required:[`id`,`providerId`,`createdAt`,`updatedAt`,`accountId`,`userId`,`scopes`]}}}}}}}}},async e=>{let t=e.context.session,n=await e.context.internalAdapter.findAccounts(t.user.id);return e.json(n.map(t=>{let{scope:n,...r}=iG(e.context.options,t);return{...r,scopes:hQ(n)}}))}),mfe=X(`/link-social`,{method:`POST`,requireHeaders:!0,body:j({callbackURL:A().meta({description:`The URL to redirect to after the user has signed in`}).optional(),provider:mQ,idToken:j({token:A(),nonce:A().optional(),accessToken:A().optional(),refreshToken:A().optional()}).optional(),requestSignUp:Te().optional(),scopes:ye(A()).meta({description:`Additional scopes to request from the provider`}).optional(),errorCallbackURL:A().meta({description:`The URL to redirect to if there is an error during the link process`}).optional(),disableRedirect:Te().meta({description:`Disable automatic redirection to the provider. Useful for handling the redirection yourself`}).optional(),loginHint:A().meta({description:`The login hint to use for the authorization code request`}).optional(),additionalParams:QY,additionalData:ve(A(),ke()).optional()}),use:[VJ],metadata:{openapi:{description:`Link a social account to the user`,operationId:`linkSocialAccount`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{url:{type:`string`,description:`The authorization URL to redirect the user to`},redirect:{type:`boolean`,description:`Indicates if the user should be redirected to the authorization URL`},status:{type:`boolean`}},required:[`redirect`]}}}}}}}},async e=>{let t=e.context.session,n=await AY(e.context.socialProviders,{value:e.body.provider});if(!n)throw e.context.logger.error(`Provider not found. Make sure to add the provider in your auth config`,{provider:e.body.provider}),D.from(`NOT_FOUND`,Y.PROVIDER_NOT_FOUND);if(e.body.idToken){if(!zZ(n))throw e.context.logger.error(`Provider does not support id token verification`,{provider:e.body.provider}),D.from(`NOT_FOUND`,Y.ID_TOKEN_NOT_SUPPORTED);let{token:r,nonce:i}=e.body.idToken;if(!await BZ(n,r,i,e))throw e.context.logger.warn(`Invalid id token`,{provider:e.body.provider}),D.from(`UNAUTHORIZED`,Y.INVALID_TOKEN);let a=await n.getUserInfo({idToken:r,accessToken:e.body.idToken.accessToken,refreshToken:e.body.idToken.refreshToken});if(!a||!a?.user)throw e.context.logger.error(`Failed to get user info`,{provider:e.body.provider}),D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_USER_INFO);if(!a.user.email)throw e.context.logger.error(wq(e.body.provider,{source:`id_token`}),{provider:e.body.provider}),D.from(`UNAUTHORIZED`,Y.USER_EMAIL_NOT_FOUND);let o=await PY(n,{idToken:r,accessToken:e.body.idToken.accessToken,refreshToken:e.body.idToken.refreshToken},a.data),s=await e.context.internalAdapter.findAccountByKey(o);if(s?.userId===t.user.id){let i=Object.fromEntries(Object.entries({providerId:n.id,accessToken:await LY(e.body.idToken.accessToken,e.context),idToken:r,refreshToken:await LY(e.body.idToken.refreshToken,e.context)}).filter(([e,t])=>t!==void 0));return await e.context.internalAdapter.updateAccount(s.id,i),await GZ(e,t.user.id,a.user),e.json({url:``,status:!0,redirect:!1})}if(s)throw D.from(`CONFLICT`,Y.SOCIAL_ACCOUNT_ALREADY_LINKED);if(!e.context.trustedProviders.includes(n.id)&&!a.user.emailVerified||e.context.options.account?.accountLinking?.enabled===!1)throw D.from(`UNAUTHORIZED`,{message:`Account not linked - linking not allowed`,code:`LINKING_NOT_ALLOWED`});if(a.user.email?.toLowerCase()!==t.user.email.toLowerCase()&&e.context.options.account?.accountLinking?.allowDifferentEmails!==!0)throw D.from(`UNAUTHORIZED`,{message:`Account not linked - different emails not allowed`,code:`LINKING_DIFFERENT_EMAILS_NOT_ALLOWED`});try{await e.context.internalAdapter.createAccount({userId:t.user.id,...o,accessToken:await LY(e.body.idToken.accessToken,e.context),idToken:r,refreshToken:await LY(e.body.idToken.refreshToken,e.context)})}catch{throw D.from(`EXPECTATION_FAILED`,{message:`Account not linked - unable to create account`,code:`LINKING_FAILED`})}return await GZ(e,t.user.id,a.user),e.json({url:``,status:!0,redirect:!1})}let r=jq(n),i=await Mq(e,{link:{userId:t.user.id,email:t.user.email},additionalData:e.body.additionalData,idTokenNonce:r}),a=await n.createAuthorizationURL({state:i.state,codeVerifier:i.codeVerifier,idTokenNonce:r,redirectURI:`${e.context.baseURL}${RY(n)}`,scopes:e.body.scopes,loginHint:e.body.loginHint,additionalParams:e.body.additionalParams});return e.body.disableRedirect||e.setHeader(`Location`,a.toString()),e.json({url:a.toString(),redirect:!e.body.disableRedirect})}),hfe=X(`/unlink-account`,{method:`POST`,body:j({accountId:A().meta({description:`The Better Auth account ID to unlink`})}),use:[UJ],metadata:{openapi:{description:`Unlink an account`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{status:{type:`boolean`}}}}}}}}}},async e=>{let{accountId:t}=e.body,n=await e.context.internalAdapter.findAccounts(e.context.session.user.id);if(n.length===1&&!e.context.options.account?.accountLinking?.allowUnlinkingAll)throw D.from(`BAD_REQUEST`,Y.FAILED_TO_UNLINK_LAST_ACCOUNT);let r=n.find(e=>e.id===t);if(!r)throw D.from(`BAD_REQUEST`,Y.ACCOUNT_NOT_FOUND);return await e.context.internalAdapter.deleteAccount(r.id),e.json({status:!0})});async function gQ(e,t){let n=await zJ(e,{disableCookieCache:RJ(e)});if(!n&&(e.request||e.headers))throw e.error(`UNAUTHORIZED`);let r=n?.user?.id||t;if(!r)throw D.from(`BAD_REQUEST`,{message:`Either userId or session is required`,code:`USER_ID_OR_SESSION_REQUIRED`});return r}const _Q=ue([Ne({accountId:A().meta({description:`The Better Auth account ID`}),userId:A().meta({description:`The user ID associated with the account`}).optional()}),Ne({useAccountCookie:Ee(!0).meta({description:`Select the current OAuth account from its signed cookie`}),userId:A().meta({description:`The user ID associated with the account`}).optional()})]);function vQ(e,t,{resolvedUserId:n,selection:r}){return(!GW(e.context.options)||t.userId===n)&&(`accountId`in r?t.id===r.accountId:!0)}async function yQ(e,{resolvedUserId:t,selection:n}){if(`accountId`in n){let r=(await e.context.internalAdapter.findAccounts(t)).find(e=>e.id===n.accountId);if(r)return{account:r,accountCookie:null}}else if(e.context.options.account?.storeAccountCookie){let r=await YK(e);if(r&&vQ(e,r,{resolvedUserId:t,selection:n}))return{account:r,accountCookie:r}}throw D.from(`BAD_REQUEST`,Y.ACCOUNT_NOT_FOUND)}async function bQ(e,{resolvedUserId:t,selection:n,account:r}){let i=r??(await yQ(e,{resolvedUserId:t,selection:n})).account;if(!vQ(e,i,{resolvedUserId:t,selection:n}))throw D.from(`BAD_REQUEST`,Y.ACCOUNT_NOT_FOUND);let a=await AY(e.context.socialProviders,{value:i.providerId});if(!a)throw D.from(`BAD_REQUEST`,{message:`Provider ${i.providerId} is not supported.`,code:`PROVIDER_NOT_SUPPORTED`});try{let t=null,n=i.accessTokenExpiresAt&&new Date(i.accessTokenExpiresAt).getTime()-Date.now()<5e3;if(i.refreshToken&&n&&a.refreshAccessToken){let n=await IY(i.refreshToken,e.context);t=await a.refreshAccessToken(n,e);let r={accessToken:await LY(t?.accessToken,e.context),accessTokenExpiresAt:t?.accessTokenExpiresAt,refreshToken:t?.refreshToken?await LY(t.refreshToken,e.context):i.refreshToken,refreshTokenExpiresAt:t?.refreshTokenExpiresAt??i.refreshTokenExpiresAt,idToken:t?.idToken||i.idToken},o=null;i.id&&(o=await e.context.internalAdapter.updateAccount(i.id,r)),e.context.options.account?.storeAccountCookie&&await JK(e,{...i,...o??r})}let r=(()=>{if(t?.accessTokenExpiresAt)return typeof t.accessTokenExpiresAt==`string`?new Date(t.accessTokenExpiresAt):t.accessTokenExpiresAt;if(i.accessTokenExpiresAt)return typeof i.accessTokenExpiresAt==`string`?new Date(i.accessTokenExpiresAt):i.accessTokenExpiresAt})();return{accessToken:t?.accessToken??await IY(i.accessToken??``,e.context),accessTokenExpiresAt:r,scopes:hQ(i.scope),idToken:t?.idToken??i.idToken??void 0}}catch{throw D.from(`BAD_REQUEST`,{message:`Failed to get a valid access token`,code:`FAILED_TO_GET_ACCESS_TOKEN`})}}const gfe=X(`/get-access-token`,{method:`POST`,body:_Q,metadata:{openapi:{description:`Get a valid access token, doing a refresh if needed`,responses:{200:{description:`A Valid access token`,content:{"application/json":{schema:{type:`object`,properties:{tokenType:{type:`string`},idToken:{type:`string`},accessToken:{type:`string`},accessTokenExpiresAt:{type:`string`,format:`date-time`}}}}}},400:{description:`Invalid refresh token or provider configuration`}}}}},async e=>{let{userId:t}=e.body,n=await bQ(e,{resolvedUserId:await gQ(e,t),selection:e.body});return e.json(n)}),_fe=X(`/refresh-token`,{method:`POST`,body:_Q,metadata:{openapi:{description:`Refresh the access token using a refresh token`,responses:{200:{description:`Access token refreshed successfully`,content:{"application/json":{schema:{type:`object`,properties:{tokenType:{type:`string`},idToken:{type:`string`},accessToken:{type:`string`},refreshToken:{type:`string`},accessTokenExpiresAt:{type:`string`,format:`date-time`},refreshTokenExpiresAt:{type:`string`,format:`date-time`}}}}}},400:{description:`Invalid refresh token or provider configuration`}}}}},async e=>{let{userId:t}=e.body,{account:n,accountCookie:r}=await yQ(e,{resolvedUserId:await gQ(e,t),selection:e.body}),i=await AY(e.context.socialProviders,{value:n.providerId});if(!i)throw D.from(`BAD_REQUEST`,{message:`Provider ${n.providerId} is not supported.`,code:`PROVIDER_NOT_SUPPORTED`});if(!i.refreshAccessToken)throw D.from(`BAD_REQUEST`,{message:`Provider ${n.providerId} does not support token refreshing.`,code:`TOKEN_REFRESH_NOT_SUPPORTED`});let a=n.refreshToken??void 0;if(!a)throw D.from(`BAD_REQUEST`,{message:`Refresh token not found`,code:`REFRESH_TOKEN_NOT_FOUND`});try{let t=await IY(a,e.context),o=await i.refreshAccessToken(t,e),s=o.refreshToken?await LY(o.refreshToken,e.context):a,c=o.refreshTokenExpiresAt??n.refreshTokenExpiresAt,l={accessToken:await LY(o.accessToken,e.context),refreshToken:s,accessTokenExpiresAt:o.accessTokenExpiresAt,refreshTokenExpiresAt:c,idToken:o.idToken||n.idToken},u=null;n.id&&(u=await e.context.internalAdapter.updateAccount(n.id,l)),r?.id===n.id&&e.context.options.account?.storeAccountCookie&&await JK(e,{...r,...u??l});let d=u?.scope??n.scope;return e.json({accessToken:o.accessToken,refreshToken:o.refreshToken??t,accessTokenExpiresAt:o.accessTokenExpiresAt,refreshTokenExpiresAt:c,scope:d,idToken:o.idToken||n.idToken,providerId:n.providerId,accountId:n.id})}catch{throw D.from(`BAD_REQUEST`,{message:`Failed to refresh access token`,code:`FAILED_TO_REFRESH_ACCESS_TOKEN`})}}),vfe=X(`/account-info`,{method:`GET`,metadata:{openapi:{description:`Get the account info provided by the provider`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{user:{type:`object`,properties:{name:{type:`string`},email:{type:`string`,nullable:!0},image:{type:`string`},emailVerified:{type:`boolean`}},required:[`emailVerified`]},account:{type:`object`,properties:{id:{type:`string`},providerId:{type:`string`},accountId:{type:`string`}},required:[`id`,`providerId`,`accountId`],additionalProperties:!1},data:{type:`object`,properties:{},additionalProperties:!0}},required:[`user`,`data`,`account`],additionalProperties:!1}}}}}}},query:_Q},async e=>{let{userId:t}=e.query,n=await gQ(e,t),{account:r}=await yQ(e,{resolvedUserId:n,selection:e.query}),i=await AY(e.context.socialProviders,{value:r.providerId});if(!i)throw D.from(`BAD_REQUEST`,{message:`Account is not associated with a configured social provider.`,code:`PROVIDER_NOT_CONFIGURED`});let a=await bQ(e,{resolvedUserId:n,selection:e.query,account:r});if(!a.accessToken)throw D.from(`BAD_REQUEST`,{message:`Access token not found`,code:`ACCESS_TOKEN_NOT_FOUND`});let o=await i.getUserInfo({...a,accessToken:a.accessToken});if(!o)throw D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_USER_INFO);return e.json({...o,account:{id:r.id,providerId:r.providerId,accountId:r.accountId}})}),xQ=j({code:A().optional(),error:A().optional(),device_id:A().optional(),error_description:A().optional(),state:A().optional(),user:A().optional(),iss:A().optional()}),yfe=X(`/callback/:id`,{method:[`GET`,`POST`],operationId:`handleOAuthCallback`,body:xQ.optional(),query:xQ.optional(),metadata:{...Pq,allowedMediaTypes:[`application/x-www-form-urlencoded`,`application/json`]}},async e=>{let t,n=e.context.options.onAPIError?.errorURL||`${e.context.baseURL}/error`;if(e.method===`POST`){let t=e.body?xQ.parse(e.body):{},n=e.query?xQ.parse(e.query):{},r=xQ.parse({...t,...n}),i=new URLSearchParams;for(let[e,t]of Object.entries(r))t!=null&&i.set(e,String(t));let a=`${e.context.baseURL}/callback/${e.params.id}?${i.toString()}`;throw e.redirect(a)}try{if(e.method===`GET`)t=xQ.parse(e.query);else if(e.method===`POST`)t=xQ.parse(e.body);else throw Error(`Unsupported method`)}catch(t){e.context.logger.error(`INVALID_CALLBACK_REQUEST`,t);let r=bq(n,new URLSearchParams({error:`invalid_callback_request`}));throw e.redirect(r)}let{code:r,error:i,state:a,error_description:o,device_id:s,user:c,iss:l}=t;if(a===void 0&&r){let t=await AY(e.context.socialProviders,{value:e.params.id});if(t?.allowIdpInitiated){let n=jq(t),{state:r,codeVerifier:i}=await Mq(e,{idTokenNonce:n}),a=await t.createAuthorizationURL({state:r,codeVerifier:i,idTokenNonce:n,redirectURI:`${e.context.baseURL}${RY(t)}`});throw e.redirect(a.toString())}}if(!a){e.context.logger.error(`State not found`,i);let t=bq(n,new URLSearchParams({error:`state_not_found`}));throw e.redirect(t)}let{codeVerifier:u,callbackURL:d,link:f,errorURL:p,newUserURL:m,requestSignUp:h,idTokenNonce:g}=await Nq(e);function _(t,r){let i=p??n,a=new URLSearchParams({error:t});r&&a.set(`error_description`,r);let o=bq(i,a);throw e.redirect(o)}if(i&&_(i,o),!r)throw e.context.logger.warn(`Code not found`),_(Sq.NO_CODE);let v=await AY(e.context.socialProviders,{value:e.params.id});if(!v)throw e.context.logger.warn(`OAuth provider not found`,{providerId:e.params.id}),_(Sq.PROVIDER_NOT_FOUND);if(l&&v.issuer&&l!==v.issuer)throw e.context.logger.error(`OAuth issuer mismatch`,{expected:v.issuer,received:l}),_(Sq.ISSUER_MISMATCH);if(v.requiresIdTokenNonce&&!g)throw e.context.logger.error(`OAuth id_token nonce binding required but no expected nonce was found in state`,{providerId:v.id}),_(Sq.NONCE_BINDING_MISSING);let y;try{y=await v.validateAuthorizationCode({code:r,codeVerifier:u,deviceId:s,redirectURI:`${e.context.baseURL}${RY(v)}`})}catch(t){throw e.context.logger.error(``,t),_(Sq.INVALID_CODE)}if(!y)throw _(Sq.INVALID_CODE);let b=c?w(c):null,x=await v.getUserInfo({...y,...g?{expectedIdTokenNonce:g}:{},user:b??void 0});if(!x?.user)return e.context.logger.error(`Unable to get user info`),_(Sq.UNABLE_TO_GET_USER_INFO);let S=x.user,ee=MY(x.data),te;try{te=await NY(v,y,x.data)}catch(t){return e.context.logger.error(`Unable to derive provider account identity`,{providerId:v.id,error:t}),_(Sq.UNABLE_TO_GET_USER_INFO)}let{accountId:C}=te;if(!d)throw e.context.logger.error(`No callback URL found`),_(Sq.NO_CALLBACK_URL);let ne={...te,...y,scope:y.scopes?.join(`,`)};if(f){let t=await HZ(e,{link:f,userInfo:S,account:ne,profile:ee,scopes:y.scopes});if(!t.linked)return _(t.error.code,t.error.message);throw e.redirect(d)}if(!S.email)return e.context.logger.error(wq(v.id)),_(Sq.EMAIL_NOT_FOUND);let T;try{T=await UZ(e,{userInfo:{...S,id:C,email:S.email,name:S.name||``},account:ne,callbackURL:d,disableSignUp:v.disableImplicitSignUp&&!h||v.options?.disableSignUp,overrideUserInfo:v.options?.overrideUserInfoOnSignIn,source:{method:`oauth`,oauth:{providerId:v.id,profile:ee}}})}catch(e){throw Fq(e)&&e.body?.code&&_(e.body.code,e.body.message),e}if(T.error)return e.context.logger.error(T.error.split(` `).join(`_`)),_(T.error.split(` `).join(`_`));let{session:re,user:ie}=T.data;await aq(e,{session:re,user:ie});let E;try{E=(T.isRegister&&m||d).toString()}catch{E=T.isRegister&&m||d}throw e.redirect(E)});function SQ(e){return e.replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`).replace(/&(?!amp;|lt;|gt;|quot;|#39;|#x[0-9a-fA-F]+;|#[0-9]+;)/g,`&amp;`)}const bfe=(e,t=`Unknown`,n=null)=>{let r=e.onAPIError?.customizeDefaultErrorPage;return`<!DOCTYPE html>
74
- <html lang="en">
75
- <head>
76
- <meta charset="UTF-8" />
77
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78
- <title>Error</title>
79
- <style>
80
- * {
81
- box-sizing: border-box;
82
- }
83
- body {
84
- font-family: ${r?.font?.defaultFamily||`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif`};
85
- background: ${r?.colors?.background||`var(--background)`};
86
- color: var(--foreground);
87
- margin: 0;
88
- }
89
- :root,
90
- :host {
91
- --spacing: 0.25rem;
92
- --container-md: 28rem;
93
- --text-sm: ${r?.size?.textSm||`0.875rem`};
94
- --text-sm--line-height: calc(1.25 / 0.875);
95
- --text-2xl: ${r?.size?.text2xl||`1.5rem`};
96
- --text-2xl--line-height: calc(2 / 1.5);
97
- --text-4xl: ${r?.size?.text4xl||`2.25rem`};
98
- --text-4xl--line-height: calc(2.5 / 2.25);
99
- --text-6xl: ${r?.size?.text6xl||`3rem`};
100
- --text-6xl--line-height: 1;
101
- --font-weight-medium: 500;
102
- --font-weight-semibold: 600;
103
- --font-weight-bold: 700;
104
- --default-transition-duration: 150ms;
105
- --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
106
- --radius: ${r?.size?.radiusSm||`0.625rem`};
107
- --default-mono-font-family: ${r?.font?.monoFamily||`var(--font-geist-mono)`};
108
- --primary: ${r?.colors?.primary||`black`};
109
- --primary-foreground: ${r?.colors?.primaryForeground||`white`};
110
- --background: ${r?.colors?.background||`white`};
111
- --foreground: ${r?.colors?.foreground||`oklch(0.271 0 0)`};
112
- --border: ${r?.colors?.border||`oklch(0.89 0 0)`};
113
- --destructive: ${r?.colors?.destructive||`oklch(0.55 0.15 25.723)`};
114
- --muted-foreground: ${r?.colors?.mutedForeground||`oklch(0.545 0 0)`};
115
- --corner-border: ${r?.colors?.cornerBorder||`#404040`};
116
- }
117
-
118
- button, .btn {
119
- cursor: pointer;
120
- background: none;
121
- border: none;
122
- color: inherit;
123
- font: inherit;
124
- transition: all var(--default-transition-duration)
125
- var(--default-transition-timing-function);
126
- }
127
- button:hover, .btn:hover {
128
- opacity: 0.8;
129
- }
130
-
131
- @media (prefers-color-scheme: dark) {
132
- :root,
133
- :host {
134
- --primary: ${r?.colors?.primary||`white`};
135
- --primary-foreground: ${r?.colors?.primaryForeground||`black`};
136
- --background: ${r?.colors?.background||`oklch(0.15 0 0)`};
137
- --foreground: ${r?.colors?.foreground||`oklch(0.98 0 0)`};
138
- --border: ${r?.colors?.border||`oklch(0.27 0 0)`};
139
- --destructive: ${r?.colors?.destructive||`oklch(0.65 0.15 25.723)`};
140
- --muted-foreground: ${r?.colors?.mutedForeground||`oklch(0.65 0 0)`};
141
- --corner-border: ${r?.colors?.cornerBorder||`#a0a0a0`};
142
- }
143
- }
144
- @media (max-width: 640px) {
145
- :root, :host {
146
- --text-6xl: 2.5rem;
147
- --text-2xl: 1.25rem;
148
- --text-sm: 0.8125rem;
149
- }
150
- }
151
- @media (max-width: 480px) {
152
- :root, :host {
153
- --text-6xl: 2rem;
154
- --text-2xl: 1.125rem;
155
- }
156
- }
157
- </style>
158
- </head>
159
- <body style="width: 100vw; min-height: 100vh; overflow-x: hidden; overflow-y: auto;">
160
- <div
161
- style="
162
- display: flex;
163
- flex-direction: column;
164
- align-items: center;
165
- justify-content: center;
166
- gap: 1.5rem;
167
- position: relative;
168
- width: 100%;
169
- min-height: 100vh;
170
- padding: 1rem;
171
- "
172
- >
173
- ${r?.disableBackgroundGrid?``:`
174
- <div
175
- style="
176
- position: absolute;
177
- inset: 0;
178
- background-image: linear-gradient(to right, ${r?.colors?.gridColor||`var(--border)`} 1px, transparent 1px),
179
- linear-gradient(to bottom, ${r?.colors?.gridColor||`var(--border)`} 1px, transparent 1px);
180
- background-size: 40px 40px;
181
- opacity: 0.6;
182
- pointer-events: none;
183
- width: 100vw;
184
- height: 100vh;
185
- "
186
- ></div>
187
- <div
188
- style="
189
- position: absolute;
190
- inset: 0;
191
- display: flex;
192
- align-items: center;
193
- justify-content: center;
194
- background: ${r?.colors?.background||`var(--background)`};
195
- mask-image: radial-gradient(ellipse at center, transparent 20%, black);
196
- -webkit-mask-image: radial-gradient(ellipse at center, transparent 20%, black);
197
- pointer-events: none;
198
- "
199
- ></div>
200
- `}
201
-
202
- <div
203
- style="
204
- position: relative;
205
- z-index: 10;
206
- border: 2px solid var(--border);
207
- background: ${r?.colors?.cardBackground||`var(--background)`};
208
- padding: 1.5rem;
209
- max-width: 42rem;
210
- width: 100%;
211
- "
212
- >
213
- ${r?.disableCornerDecorations?``:`
214
- <!-- Corner decorations -->
215
- <div
216
- style="
217
- position: absolute;
218
- top: -2px;
219
- left: -2px;
220
- width: 2rem;
221
- height: 2rem;
222
- border-top: 4px solid var(--corner-border);
223
- border-left: 4px solid var(--corner-border);
224
- "
225
- ></div>
226
- <div
227
- style="
228
- position: absolute;
229
- top: -2px;
230
- right: -2px;
231
- width: 2rem;
232
- height: 2rem;
233
- border-top: 4px solid var(--corner-border);
234
- border-right: 4px solid var(--corner-border);
235
- "
236
- ></div>
237
-
238
- <div
239
- style="
240
- position: absolute;
241
- bottom: -2px;
242
- left: -2px;
243
- width: 2rem;
244
- height: 2rem;
245
- border-bottom: 4px solid var(--corner-border);
246
- border-left: 4px solid var(--corner-border);
247
- "
248
- ></div>
249
- <div
250
- style="
251
- position: absolute;
252
- bottom: -2px;
253
- right: -2px;
254
- width: 2rem;
255
- height: 2rem;
256
- border-bottom: 4px solid var(--corner-border);
257
- border-right: 4px solid var(--corner-border);
258
- "
259
- ></div>`}
260
-
261
- <div style="text-align: center; margin-bottom: 1.5rem;">
262
- <div style="margin-bottom: 1.5rem;">
263
- <div
264
- style="
265
- display: inline-block;
266
- border: 2px solid ${r?.disableTitleBorder?`transparent`:r?.colors?.titleBorder||`var(--destructive)`};
267
- padding: 0.375rem 1rem;
268
- "
269
- >
270
- <h1
271
- style="
272
- font-size: var(--text-6xl);
273
- font-weight: var(--font-weight-semibold);
274
- color: ${r?.colors?.titleColor||`var(--foreground)`};
275
- letter-spacing: -0.02em;
276
- margin: 0;
277
- "
278
- >
279
- ERROR
280
- </h1>
281
- </div>
282
- <div
283
- style="
284
- height: 2px;
285
- background-color: var(--border);
286
- width: calc(100% + 3rem);
287
- margin-left: -1.5rem;
288
- margin-top: 1.5rem;
289
- "
290
- ></div>
291
- </div>
292
-
293
- <h2
294
- style="
295
- font-size: var(--text-2xl);
296
- font-weight: var(--font-weight-semibold);
297
- color: var(--foreground);
298
- margin: 0 0 1rem;
299
- "
300
- >
301
- Something went wrong
302
- </h2>
303
-
304
- <div
305
- style="
306
- display: inline-flex;
307
- align-items: center;
308
- gap: 0.5rem;
309
- border: 2px solid var(--border);
310
- background-color: var(--muted);
311
- padding: 0.375rem 0.75rem;
312
- margin: 0 0 1rem;
313
- flex-wrap: wrap;
314
- justify-content: center;
315
- "
316
- >
317
- <span
318
- style="
319
- font-size: 0.75rem;
320
- color: var(--muted-foreground);
321
- font-weight: var(--font-weight-semibold);
322
- "
323
- >
324
- CODE:
325
- </span>
326
- <span
327
- style="
328
- font-size: var(--text-sm);
329
- font-family: var(--default-mono-font-family, monospace);
330
- color: var(--foreground);
331
- word-break: break-all;
332
- "
333
- >
334
- ${SQ(t)}
335
- </span>
336
- </div>
337
-
338
- <p
339
- style="
340
- color: var(--muted-foreground);
341
- max-width: 28rem;
342
- margin: 0 auto;
343
- font-size: var(--text-sm);
344
- line-height: 1.5;
345
- text-wrap: pretty;
346
- "
347
- >
348
- ${n||`We encountered an unexpected error. Please try again or return to the home page. If you're a developer, you can find <a href='https://better-auth.com/docs/reference/errors/${encodeURIComponent(t)}' target='_blank' rel="noopener noreferrer" style='color: var(--foreground); text-decoration: underline;'>more information about the error</a>.`}
349
- </p>
350
- </div>
351
-
352
- <div
353
- style="
354
- display: flex;
355
- gap: 0.75rem;
356
- margin-top: 1.5rem;
357
- justify-content: center;
358
- flex-wrap: wrap;
359
- "
360
- >
361
- <a
362
- href="/"
363
- style="
364
- text-decoration: none;
365
- "
366
- >
367
- <div
368
- style="
369
- border: 2px solid var(--border);
370
- background: var(--primary);
371
- color: var(--primary-foreground);
372
- padding: 0.5rem 1rem;
373
- border-radius: 0;
374
- white-space: nowrap;
375
- "
376
- class="btn"
377
- >
378
- Go Home
379
- </div>
380
- </a>
381
- <a
382
- href="https://better-auth.com/docs/reference/errors/${encodeURIComponent(t)}?askai=${encodeURIComponent(`What does the error code ${t} mean?`)}"
383
- target="_blank"
384
- rel="noopener noreferrer"
385
- style="
386
- text-decoration: none;
387
- "
388
- >
389
- <div
390
- style="
391
- border: 2px solid var(--border);
392
- background: transparent;
393
- color: var(--foreground);
394
- padding: 0.5rem 1rem;
395
- border-radius: 0;
396
- white-space: nowrap;
397
- "
398
- class="btn"
399
- >
400
- Ask AI
401
- </div>
402
- </a>
403
- </div>
404
- </div>
405
- </div>
406
- </body>
407
- </html>`},xfe=X(`/error`,{method:`GET`,metadata:{...Pq,openapi:{description:`Displays an error page`,responses:{200:{description:`Success`,content:{"text/html":{schema:{type:`string`,description:`The HTML content of the error page`}}}}}}}},async e=>{let t=new URL(e.request?.url||``),n=t.searchParams.get(`error`)||`UNKNOWN`,r=t.searchParams.get(`error_description`)||null,i=/^[\'A-Za-z0-9_-]+$/.test(n||``)?n:`UNKNOWN`,a=r?SQ(r):null,o=new URLSearchParams;o.set(`error`,i),r&&o.set(`error_description`,r);let s=e.context.options,c=s.onAPIError?.errorURL;if(c){let e=bq(c,o);return new Response(null,{status:302,headers:{Location:e}})}return ae&&!s.onAPIError?.customizeDefaultErrorPage?new Response(null,{status:302,headers:{Location:`/?${o.toString()}`}}):new Response(bfe(e.context.options,i,a),{headers:{"Content-Type":`text/html`}})}),Sfe=X(`/ok`,{method:`GET`,metadata:{...Pq,openapi:{description:`Check if the API is working`,responses:{200:{description:`API is working`,content:{"application/json":{schema:{type:`object`,properties:{ok:{type:`boolean`,description:`Indicates if the API is working`}},required:[`ok`]}}}}}}}},async e=>e.json({ok:!0}));function CQ(e,t){if(t.length<e.context.password.config.minPasswordLength)throw e.context.logger.warn(`Password is too short`),D.from(`BAD_REQUEST`,Y.PASSWORD_TOO_SHORT)}function wQ(e,t){if(t.length>e.context.password.config.maxPasswordLength)throw e.context.logger.warn(`Password is too long`),D.from(`BAD_REQUEST`,Y.PASSWORD_TOO_LONG)}async function Cfe(e,t){wQ(e,t.password);let n=await e.context.internalAdapter.findCredentialAccount(t.userId),r=n?.password;return!n||!r?!1:await e.context.password.verify({hash:r,password:t.password})}async function wfe(e,t){let n=t.body.password;typeof n==`string`&&wQ(t,n);let r=await t.context.internalAdapter.findCredentialAccount(e),i=r?.password;if(!r||!i||!n)throw n&&await t.context.password.hash(n),D.from(`BAD_REQUEST`,Y.INVALID_PASSWORD);if(!await t.context.password.verify({hash:i,password:n}))throw D.from(`BAD_REQUEST`,Y.INVALID_PASSWORD);return!0}function TQ(e,t,n){let r=t?new URL(t,e.baseURL):new URL(`${e.baseURL}/error`);return n&&Object.entries(n).forEach(([e,t])=>r.searchParams.set(e,t)),r.href}function Tfe(e,t,n){let r=new URL(t,e.baseURL);return n&&Object.entries(n).forEach(([e,t])=>r.searchParams.set(e,t)),r.href}const Efe=X(`/request-password-reset`,{method:`POST`,body:j({email:be().meta({description:`The email address of the user to send a password reset email to`}),redirectTo:A().meta({description:"The URL to redirect the user to reset their password. If the token isn't valid or expired, it'll be redirected with a query parameter `?error=INVALID_TOKEN`. If the token is valid, it'll be redirected with a query parameter `?token=VALID_TOKEN"}).optional()}),metadata:{openapi:{operationId:`requestPasswordReset`,description:`Send a password reset email to the user`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{status:{type:`boolean`},message:{type:`string`}}}}}}}}},use:[tJ(e=>e.body.redirectTo)]},async e=>{if(!e.context.options.emailAndPassword?.sendResetPassword)throw e.context.logger.error(`Reset password isn't enabled.Please pass an emailAndPassword.sendResetPassword function in your auth config!`),D.from(`BAD_REQUEST`,{message:`Reset password isn't enabled`,code:`RESET_PASSWORD_DISABLED`});let{email:t,redirectTo:n}=e.body,r=await e.context.internalAdapter.findUserByEmail(t,{includeAccounts:!0});if(!r)return Re(24),await e.context.internalAdapter.findVerificationValue(`dummy-verification-token`),e.context.logger.warn(`Reset Password: User not found`),e.json({status:!0,message:`If this email exists in our system, check your email for the reset link`});let i=dG(e.context.options.emailAndPassword.resetPasswordTokenExpiresIn||3600,`sec`),a=Re(24);await e.context.internalAdapter.createVerificationValue({value:r.user.id,identifier:`reset-password:${a}`,expiresAt:i});let o=n?encodeURIComponent(n):``,s=`${e.context.baseURL}/reset-password/${a}?callbackURL=${o}`;return await e.context.runInBackgroundOrAwait(e.context.options.emailAndPassword.sendResetPassword({user:r.user,url:s,token:a},e.request)),e.json({status:!0,message:`If this email exists in our system, check your email for the reset link`})}),Dfe=X(`/reset-password/:token`,{method:`GET`,operationId:`resetPasswordCallback`,query:j({callbackURL:A().meta({description:`The URL to redirect the user to reset their password`})}),use:[tJ(e=>e.query.callbackURL)],metadata:{openapi:{operationId:`resetPasswordCallback`,description:`Redirects the user to the callback URL with the token`,parameters:[{name:`token`,in:`path`,required:!0,description:`The token to reset the password`,schema:{type:`string`}},{name:`callbackURL`,in:`query`,required:!0,description:`The URL to redirect the user to reset their password`,schema:{type:`string`}}],responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{token:{type:`string`}}}}}}}}}},async e=>{let{token:t}=e.params,{callbackURL:n}=e.query;if(!t||!n)throw e.redirect(TQ(e.context,n,{error:`INVALID_TOKEN`}));let r=await e.context.internalAdapter.findVerificationValue(`reset-password:${t}`);throw!r||r.expiresAt</* @__PURE__ */ new Date?e.redirect(TQ(e.context,n,{error:`INVALID_TOKEN`})):e.redirect(Tfe(e.context,n,{token:t}))}),Ofe=X(`/reset-password`,{method:`POST`,operationId:`resetPassword`,query:j({token:A().optional()}).optional(),body:j({newPassword:A().meta({description:`The new password to set`}),token:A().meta({description:`The token to reset the password`}).optional()}),metadata:{openapi:{operationId:`resetPassword`,description:`Reset the password for a user`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{status:{type:`boolean`}}}}}}}}}},async e=>{let t=e.body.token||e.query?.token;if(!t)throw D.from(`BAD_REQUEST`,Y.INVALID_TOKEN);let{newPassword:n}=e.body;CQ(e,n),wQ(e,n);let r=`reset-password:${t}`,i=await e.context.internalAdapter.consumeVerificationValue(r);if(!i)throw D.from(`BAD_REQUEST`,Y.INVALID_TOKEN);let a=i.value,o=await e.context.internalAdapter.findUserById(a);if(!o)throw D.from(`BAD_REQUEST`,Y.USER_NOT_FOUND);let s=await e.context.password.hash(n);return await e.context.internalAdapter.findCredentialAccount(a)?await e.context.internalAdapter.updatePassword(a,s):await e.context.internalAdapter.createAccount({userId:a,providerId:`credential`,accountId:o.id,password:s}),e.context.options.emailAndPassword?.onPasswordReset&&await e.context.options.emailAndPassword.onPasswordReset({user:o},e.request),e.context.options.emailAndPassword?.revokeSessionsOnPasswordReset&&await e.context.internalAdapter.deleteUserSessions(a),e.json({status:!0})}),kfe=X(`/verify-password`,{method:`POST`,body:j({password:A().meta({description:`The password to verify`})}),metadata:{scope:`server`,openapi:{operationId:`verifyPassword`,description:`Verify the current user's password`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{status:{type:`boolean`}}}}}}}}},use:[HJ]},async e=>{let{password:t}=e.body,n=e.context.session;if(!await Cfe(e,{password:t,userId:n.user.id}))throw D.from(`BAD_REQUEST`,Y.INVALID_PASSWORD);return e.json({status:!0})}),Afe=j({callbackURL:A().meta({description:`Callback URL to redirect to after the user has signed in`}).optional(),newUserCallbackURL:A().optional(),errorCallbackURL:A().meta({description:`Callback URL to redirect to if an error happens`}).optional(),provider:mQ,disableRedirect:Te().meta({description:`Disable automatic redirection to the provider. Useful for handling the redirection yourself`}).optional(),idToken:Pe(j({token:A().meta({description:`ID token from the provider`}),nonce:A().meta({description:`Nonce used to generate the token`}).optional(),accessToken:A().meta({description:`Access token from the provider`}).optional(),refreshToken:A().meta({description:`Refresh token from the provider`}).optional(),expiresAt:ge().meta({description:`Expiry date of the token`}).optional(),user:j({name:j({firstName:A().optional(),lastName:A().optional()}).optional(),email:A().optional()}).meta({description:`The user object from the provider. Only available for some providers like Apple.`}).optional()})),scopes:ye(A()).meta({description:`Array of scopes to request from the provider. This will override the default scopes passed.`}).optional(),requestSignUp:Te().meta({description:`Explicitly request sign-up. Useful when disableImplicitSignUp is true for this provider`}).optional(),loginHint:A().meta({description:`The login hint to use for the authorization code request`}).optional(),additionalParams:QY,additionalData:ve(A(),ke()).optional().meta({description:`Additional data to be passed through the OAuth flow`})}),jfe=()=>X(`/sign-in/social`,{method:`POST`,operationId:`socialSignIn`,body:Afe,metadata:{$Infer:{body:{},returned:{}},openapi:{description:`Sign in with a social provider`,operationId:`socialSignIn`,responses:{200:{description:`Success - Returns session details (idToken branch) or an authorize URL (redirect branch)`,content:{"application/json":{schema:{type:`object`,description:`Returns session details when idToken is provided, or an authorize URL otherwise`,properties:{token:{type:`string`},user:{type:`object`,$ref:`#/components/schemas/User`},url:{type:`string`},redirect:{type:`boolean`}},required:[`redirect`]}}}}}}}},async e=>{let t=await AY(e.context.socialProviders,{value:e.body.provider});if(!t)throw e.context.logger.error(`Provider not found. Make sure to add the provider in your auth config`,{provider:e.body.provider}),D.from(`NOT_FOUND`,Y.PROVIDER_NOT_FOUND);if(e.body.idToken){if(!zZ(t))throw e.context.logger.error(`Provider does not support id token verification`,{provider:e.body.provider}),D.from(`NOT_FOUND`,Y.ID_TOKEN_NOT_SUPPORTED);let{token:n,nonce:r}=e.body.idToken;if(!await BZ(t,n,r,e))throw e.context.logger.warn(`Invalid id token`,{provider:e.body.provider}),D.from(`UNAUTHORIZED`,Y.INVALID_TOKEN);let i={idToken:n,accessToken:e.body.idToken.accessToken,refreshToken:e.body.idToken.refreshToken,user:e.body.idToken.user},a=await t.getUserInfo(i);if(!a||!a?.user)throw e.context.logger.error(`Failed to get user info`,{provider:e.body.provider}),D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_USER_INFO);if(!a.user.email)throw e.context.logger.error(wq(e.body.provider,{source:`id_token`}),{provider:e.body.provider}),D.from(`UNAUTHORIZED`,Y.USER_EMAIL_NOT_FOUND);let o=await PY(t,i,a.data),s=MY(a.data),c=await UZ(e,{userInfo:{...a.user,email:a.user.email,id:o.accountId,name:a.user.name||``,image:a.user.image,emailVerified:a.user.emailVerified||!1},account:{...o,accessToken:e.body.idToken.accessToken,idToken:n},callbackURL:e.body.callbackURL,disableSignUp:t.disableImplicitSignUp&&!e.body.requestSignUp||t.options?.disableSignUp||t.disableSignUp,source:{method:`oauth`,oauth:{providerId:t.id,profile:s}}});if(c.error)throw c.error===Sq.EMAIL_NOT_VERIFIED?D.from(`FORBIDDEN`,Y.EMAIL_NOT_VERIFIED):D.from(`UNAUTHORIZED`,{message:c.error,code:`OAUTH_LINK_ERROR`});return await aq(e,c.data),e.json({redirect:!1,token:c.data.session.token,url:void 0,user:tG(e.context.options,c.data.user)})}let n=jq(t),{codeVerifier:r,state:i}=await Mq(e,{additionalData:e.body.additionalData,idTokenNonce:n}),a=await t.createAuthorizationURL({state:i,codeVerifier:r,idTokenNonce:n,redirectURI:`${e.context.baseURL}${RY(t)}`,scopes:e.body.scopes,loginHint:e.body.loginHint,additionalParams:e.body.additionalParams});return e.body.disableRedirect||e.setHeader(`Location`,a.toString()),e.json({url:a.toString(),redirect:!e.body.disableRedirect})}),Mfe=()=>X(`/sign-in/email`,{method:`POST`,operationId:`signInEmail`,use:[rJ],cloneRequest:!0,body:j({email:A().meta({description:`Email of the user`}),password:A().meta({description:`Password of the user`}),callbackURL:A().meta({description:`Callback URL to use as a redirect for email verification`}).optional(),rememberMe:Te().meta({description:"If this is false, the session will not be remembered. Default is `true`."}).default(!0).optional()}),metadata:{allowedMediaTypes:[`application/x-www-form-urlencoded`,`application/json`],$Infer:{body:{},returned:{}},openapi:{operationId:`signInEmail`,description:`Sign in with email and password`,responses:{200:{description:`Success - Returns either session details or redirect URL`,content:{"application/json":{schema:{type:`object`,description:`Session response when idToken is provided`,properties:{redirect:{type:`boolean`,enum:[!1]},token:{type:`string`,description:`Session token`},url:{type:`string`,nullable:!0},user:{type:`object`,$ref:`#/components/schemas/User`}},required:[`redirect`,`token`,`user`]}}}}}}}},async e=>{if(!e.context.options?.emailAndPassword?.enabled)throw e.context.logger.error("Email and password is not enabled. Make sure to enable it in the options on you `auth.ts` file. Check `https://better-auth.com/docs/authentication/email-password` for more!"),D.from(`BAD_REQUEST`,{code:`EMAIL_PASSWORD_DISABLED`,message:`Email and password is not enabled`});let{email:t,password:n}=e.body;if(!be().safeParse(t).success)throw D.from(`BAD_REQUEST`,Y.INVALID_EMAIL);wQ(e,n);let r=await e.context.internalAdapter.findUserByEmail(t.toLowerCase(),{includeAccounts:!0}),i=r?.accounts.find(e=>e.providerId===`credential`&&e.accountId===r.user.id);if(!r||!i)throw await e.context.password.hash(n),e.context.logger.warn(`User not found`),D.from(`UNAUTHORIZED`,Y.INVALID_EMAIL_OR_PASSWORD);let a=r.user,o=i.password;if(!o)throw await e.context.password.hash(n),e.context.logger.warn(`Password not found`),D.from(`UNAUTHORIZED`,Y.INVALID_EMAIL_OR_PASSWORD);if(!await e.context.password.verify({hash:o,password:n}))throw e.context.logger.warn(`Invalid password`),D.from(`UNAUTHORIZED`,Y.INVALID_EMAIL_OR_PASSWORD);if(e.context.options?.emailAndPassword?.requireEmailVerification&&!a.emailVerified){if(!e.context.options?.emailVerification?.sendVerificationEmail)throw D.from(`FORBIDDEN`,Y.EMAIL_NOT_VERIFIED);if(e.context.options?.emailVerification?.sendOnSignIn){let t=await BY(e.context.secret,a.email,void 0,e.context.options.emailVerification?.expiresIn),n=e.body.callbackURL?encodeURIComponent(e.body.callbackURL):`%2F`,r=`${e.context.baseURL}/verify-email?token=${t}&callbackURL=${n}`;await e.context.runInBackgroundOrAwait(e.context.options.emailVerification.sendVerificationEmail({user:a,url:r,token:t},zY(e.request)))}throw D.from(`FORBIDDEN`,Y.EMAIL_NOT_VERIFIED)}let s=await e.context.internalAdapter.createSession(a.id,e.body.rememberMe===!1);if(!s)throw e.context.logger.error(`Failed to create session`),D.from(`UNAUTHORIZED`,Y.FAILED_TO_CREATE_SESSION);return await aq(e,{session:s,user:a},e.body.rememberMe===!1),e.body.callbackURL&&e.setHeader(`Location`,e.body.callbackURL),e.json({redirect:!!e.body.callbackURL,token:s.token,url:e.body.callbackURL,user:tG(e.context.options,a)})}),Nfe=j({callbackURL:A().meta({description:`The URL to redirect to after provider logout`}).optional(),disableRedirect:Te().meta({description:`Return the provider logout URL without redirecting`}).optional(),state:A().meta({description:`State to pass to the provider logout endpoint`}).optional()}).optional(),EQ=e=>({success:!0,url:e?.url,redirect:e?.redirect}),Pfe=X(`/sign-out`,{method:`POST`,body:Nfe,operationId:`signOut`,requireHeaders:!0,metadata:{openapi:{operationId:`signOut`,description:`Sign out the current user`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{success:{type:`boolean`},url:{type:`string`,description:`Provider logout URL when RP-initiated logout is available`},redirect:{type:`boolean`,description:`Whether the client should redirect to the provider logout URL`}}}}}}}}}},async e=>{let t=await e.getSignedCookie(e.context.authCookies.sessionToken.name,e.context.secret),n=null;if(t)try{n=await e.context.internalAdapter.findSession(t)}catch(t){e.context.logger.error(`Failed to read session from database`,t)}if(t)try{await e.context.internalAdapter.deleteSession(t)}catch(t){e.context.logger.error(`Failed to delete session from database`,t)}lq(e);let r=await(async()=>{try{if(!n)return null;let t=await e.context.internalAdapter.findAccounts(n.user.id),r=new Map(e.context.socialProviders.map(e=>[e.id,e])),i=t.filter(e=>!!r.get(e.providerId)?.createEndSessionURL).sort((e,t)=>t.updatedAt.getTime()-e.updatedAt.getTime());if(i.length===0)return null;let a=/* @__PURE__ */ new Set,o=e.body?.callbackURL?new URL(e.body.callbackURL,e.context.baseURL).toString():void 0;for(let t of i){if(a.has(t.providerId))continue;a.add(t.providerId);let n=r.get(t.providerId);try{let r=await n?.createEndSessionURL?.({idToken:t.idToken,postLogoutRedirectURI:o,state:e.body?.state});if(r)return r.toString()}catch(n){e.context.logger.error(`Failed to create logout URL for provider "${t.providerId}"`,n)}}return null}catch(t){return e.context.logger.error(`Failed to create provider logout URL`,t),null}})();if(r){let t=!e.body?.disableRedirect;return t&&e.setHeader(`Location`,r),e.json(EQ({url:r,redirect:t}))}return e.json(EQ())}),Ffe=j({name:A(),email:be(),password:A().nonempty(),image:A().optional(),callbackURL:A().optional(),rememberMe:Te().optional()}).and(ve(A(),ke())),Ife=()=>X(`/sign-up/email`,{method:`POST`,operationId:`signUpWithEmailAndPassword`,use:[rJ],body:Ffe,cloneRequest:!0,metadata:{allowedMediaTypes:[`application/x-www-form-urlencoded`,`application/json`],$Infer:{body:{},returned:{}},openapi:{operationId:`signUpWithEmailAndPassword`,description:`Sign up a user using email and password`,requestBody:{content:{"application/json":{schema:{type:`object`,properties:{name:{type:`string`,description:`The name of the user`},email:{type:`string`,description:`The email of the user`},password:{type:`string`,description:`The password of the user`},image:{type:`string`,description:`The profile image URL of the user`},callbackURL:{type:`string`,description:`The URL to use for email verification callback`},rememberMe:{type:`boolean`,description:"If this is false, the session will not be remembered. Default is `true`."}},required:[`name`,`email`,`password`]}}}},responses:{200:{description:`Successfully created user`,content:{"application/json":{schema:{type:`object`,properties:{token:{type:`string`,nullable:!0,description:`Authentication token for the session`},user:{type:`object`,properties:{id:{type:`string`,description:`The unique identifier of the user`},email:{type:`string`,format:`email`,description:`The email address of the user`},name:{type:`string`,description:`The name of the user`},image:{type:`string`,format:`uri`,nullable:!0,description:`The profile image URL of the user`},emailVerified:{type:`boolean`,description:`Whether the email has been verified`},createdAt:{type:`string`,format:`date-time`,description:`When the user was created`},updatedAt:{type:`string`,format:`date-time`,description:`When the user was last updated`}},required:[`id`,`email`,`name`,`emailVerified`,`createdAt`,`updatedAt`]}},required:[`user`]}}}},422:{description:`Unprocessable Entity. User already exists or failed to create user.`,content:{"application/json":{schema:{type:`object`,properties:{message:{type:`string`}}}}}}}}}},async e=>tH(e.context.adapter,async()=>{if(!e.context.options.emailAndPassword?.enabled||e.context.options.emailAndPassword?.disableSignUp)throw D.from(`BAD_REQUEST`,{message:`Email and password sign up is not enabled`,code:`EMAIL_PASSWORD_SIGN_UP_DISABLED`});let t=e.body,{name:n,email:r,password:i,image:a,callbackURL:o,rememberMe:s,...c}=t;if(!be().safeParse(r).success)throw D.from(`BAD_REQUEST`,Y.INVALID_EMAIL);if(!i||typeof i!=`string`)throw D.from(`BAD_REQUEST`,Y.INVALID_PASSWORD);CQ(e,i),wQ(e,i);let l=e.context.options.emailAndPassword.requireEmailVerification||e.context.options.emailAndPassword.autoSignIn===!1,u=e.context.options.emailAndPassword.autoSignIn===!1||l,d=oG(e.context.options,c,`create`),f=r.toLowerCase(),p=()=>{let t=/* @__PURE__ */ new Date,r=e.context.generateId({model:`user`})||Re(),i={name:n,email:f,emailVerified:!1,image:a??null,createdAt:t,updatedAt:t},o=e.context.options.emailAndPassword?.customSyntheticUser,s;if(o){let t=Object.keys(e.context.options.user?.additionalFields??{}),n={};for(let e of t)e in d&&(n[e]=d[e]);let a=o({coreFields:i,additionalFields:n,id:r});s=nG(e.context.options,a)}else s=nG(e.context.options,{...i,...d,id:r});return e.json({token:null,user:tG(e.context.options,s)})},m=await e.context.internalAdapter.findUserByEmail(f);if(m?.user){if(e.context.logger.info(`Sign-up attempt for existing email: ${r}`),l)return await e.context.password.hash(i),e.context.options.emailAndPassword?.onExistingUserSignUp&&await e.context.runInBackgroundOrAwait(e.context.options.emailAndPassword.onExistingUserSignUp({user:m.user},zY(e.request))),p();throw D.from(`UNPROCESSABLE_ENTITY`,Y.USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL)}let h=await e.context.password.hash(i),g;try{if(g=await e.context.internalAdapter.createUser({email:f,name:n,image:a,...d,emailVerified:!1},{method:`email-password`}),!g)throw D.from(`BAD_REQUEST`,Y.FAILED_TO_CREATE_USER)}catch(t){if(Fq(t)){if(t.statusCode===403&&l)return p();throw t}throw _()&&e.context.logger.error(`Failed to create user`,t),e.context.logger?.error(`Failed to create user`,t),D.from(`UNPROCESSABLE_ENTITY`,Y.FAILED_TO_CREATE_USER)}if(!g)throw D.from(`UNPROCESSABLE_ENTITY`,Y.FAILED_TO_CREATE_USER);if(await e.context.internalAdapter.linkAccount({userId:g.id,providerId:`credential`,accountId:g.id,password:h}),e.context.options.emailVerification?.sendOnSignUp??e.context.options.emailAndPassword.requireEmailVerification){let n=await BY(e.context.secret,g.email,void 0,e.context.options.emailVerification?.expiresIn),r=t.callbackURL?encodeURIComponent(t.callbackURL):`%2F`,i=`${e.context.baseURL}/verify-email?token=${n}&callbackURL=${r}`;e.context.options.emailVerification?.sendVerificationEmail&&await e.context.runInBackgroundOrAwait(e.context.options.emailVerification.sendVerificationEmail({user:g,url:i,token:n},zY(e.request)))}if(u)return e.json({token:null,user:tG(e.context.options,g)});let v=await e.context.internalAdapter.createSession(g.id,s===!1);if(!v)throw D.from(`BAD_REQUEST`,Y.FAILED_TO_CREATE_SESSION);return await aq(e,{session:v,user:g},s===!1),e.json({token:v.token,user:tG(e.context.options,g)})})),Lfe=ve(A().meta({description:`Field name must be a string`}),ke()),Rfe=()=>X(`/update-session`,{method:`POST`,operationId:`updateSession`,body:Lfe,use:[VJ],metadata:{$Infer:{body:{}},openapi:{operationId:`updateSession`,description:`Update the current session`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{session:{type:`object`,$ref:`#/components/schemas/Session`}}}}}}}}}},async e=>{let t=e.body;if(typeof t!=`object`||Array.isArray(t))throw D.from(`BAD_REQUEST`,Y.BODY_MUST_BE_AN_OBJECT);let n=e.context.session,r=cG(e.context.options,t,`update`);if(Object.keys(r).length===0)throw D.fromStatus(`BAD_REQUEST`,{message:`No fields to update`});let i=await e.context.internalAdapter.updateSession(n.session.token,{...r,updatedAt:/* @__PURE__ */ new Date});if(!i&&RJ(e))throw lq(e),D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_SESSION);let a=i??{...n.session,...r,updatedAt:/* @__PURE__ */ new Date};return await aq(e,{session:a,user:n.user}),e.json({session:rG(e.context.options,a)})}),zfe=ve(A().meta({description:`Field name must be a string`}),ke()),Bfe=()=>X(`/update-user`,{method:`POST`,operationId:`updateUser`,body:zfe,use:[VJ],metadata:{$Infer:{body:{}},openapi:{operationId:`updateUser`,description:`Update the current user`,requestBody:{content:{"application/json":{schema:{type:`object`,properties:{name:{type:`string`,description:`The name of the user`},image:{type:`string`,description:`The image of the user`,nullable:!0}}}}}},responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{user:{type:`object`,$ref:`#/components/schemas/User`}}}}}}}}}},async e=>{let t=e.body;if(typeof t!=`object`||Array.isArray(t))throw D.from(`BAD_REQUEST`,Y.BODY_MUST_BE_AN_OBJECT);if(t.email)throw D.from(`BAD_REQUEST`,Y.EMAIL_CAN_NOT_BE_UPDATED);let{name:n,image:r,...i}=t,a=e.context.session,o=oG(e.context.options,i,`update`);if(r===void 0&&n===void 0&&Object.keys(o).length===0)throw D.fromStatus(`BAD_REQUEST`,{message:`No fields to update`});let s=await e.context.internalAdapter.updateUser(a.user.id,{name:n,image:r,...o})??{...a.user,...n!==void 0&&{name:n},...r!==void 0&&{image:r},...o};return await aq(e,{session:a.session,user:s}),e.json({status:!0})}),Vfe=X(`/change-password`,{method:`POST`,operationId:`changePassword`,body:j({newPassword:A().meta({description:`The new password to set`}),currentPassword:A().meta({description:`The current password is required`}),revokeOtherSessions:Te().meta({description:`Must be a boolean value`}).optional()}),use:[HJ],metadata:{openapi:{operationId:`changePassword`,description:`Change the password of the user`,responses:{200:{description:`Password successfully changed`,content:{"application/json":{schema:{type:`object`,properties:{token:{type:`string`,nullable:!0,description:`New session token if other sessions were revoked`},user:{type:`object`,properties:{id:{type:`string`,description:`The unique identifier of the user`},email:{type:`string`,format:`email`,description:`The email address of the user`},name:{type:`string`,description:`The name of the user`},image:{type:`string`,format:`uri`,nullable:!0,description:`The profile image URL of the user`},emailVerified:{type:`boolean`,description:`Whether the email has been verified`},createdAt:{type:`string`,format:`date-time`,description:`When the user was created`},updatedAt:{type:`string`,format:`date-time`,description:`When the user was last updated`}},required:[`id`,`email`,`name`,`emailVerified`,`createdAt`,`updatedAt`]}},required:[`user`]}}}}}}}},async e=>{let{newPassword:t,currentPassword:n,revokeOtherSessions:r}=e.body,i=e.context.session;CQ(e,t),wQ(e,t),wQ(e,n);let a=await e.context.internalAdapter.findCredentialAccount(i.user.id);if(!a||!a.password)throw D.from(`BAD_REQUEST`,Y.CREDENTIAL_ACCOUNT_NOT_FOUND);let o=await e.context.password.hash(t);if(!await e.context.password.verify({hash:a.password,password:n}))throw D.from(`BAD_REQUEST`,Y.INVALID_PASSWORD);await e.context.internalAdapter.updateAccount(a.id,{password:o});let s=null;if(r){await e.context.internalAdapter.deleteUserSessions(i.user.id);let t=await e.context.internalAdapter.createSession(i.user.id);if(!t)throw D.from(`INTERNAL_SERVER_ERROR`,Y.FAILED_TO_GET_SESSION);await aq(e,{session:t,user:i.user}),s=t.token}return e.json({token:s,user:tG(e.context.options,i.user)})}),Hfe=X.serverOnly({method:`POST`,body:j({newPassword:A().meta({description:`The new password to set is required`})}),use:[HJ]},async e=>{let{newPassword:t}=e.body,n=e.context.session;CQ(e,t),wQ(e,t);let r=await e.context.internalAdapter.findCredentialAccount(n.user.id),i=await e.context.password.hash(t);if(!r)return await e.context.internalAdapter.linkAccount({userId:n.user.id,providerId:`credential`,accountId:n.user.id,password:i}),e.json({status:!0});if(!r.password)return await e.context.internalAdapter.updateAccount(r.id,{password:i}),e.json({status:!0});throw D.from(`BAD_REQUEST`,Y.PASSWORD_ALREADY_SET)}),Ufe=X(`/delete-user`,{method:`POST`,use:[HJ],body:j({callbackURL:A().meta({description:`The callback URL to redirect to after the user is deleted`}).optional(),password:A().meta({description:`The password of the user is required to delete the user`}).optional(),token:A().meta({description:`The token to delete the user is required`}).optional()}),metadata:{openapi:{operationId:`deleteUser`,description:`Delete the user`,requestBody:{content:{"application/json":{schema:{type:`object`,properties:{callbackURL:{type:`string`,description:`The callback URL to redirect to after the user is deleted`},password:{type:`string`,description:`The user's password. Required if session is not fresh`},token:{type:`string`,description:`The deletion verification token`}}}}}},responses:{200:{description:`User deletion processed successfully`,content:{"application/json":{schema:{type:`object`,properties:{success:{type:`boolean`,description:`Indicates if the operation was successful`},message:{type:`string`,enum:[`User deleted`,`Verification email sent`],description:`Status message of the deletion process`}},required:[`success`,`message`]}}}}}}}},async e=>{if(!e.context.options.user?.deleteUser?.enabled)throw e.context.logger.error(`Delete user is disabled. Enable it in the options`),D.fromStatus(`NOT_FOUND`);let t=e.context.session;if(e.body.password){wQ(e,e.body.password);let n=await e.context.internalAdapter.findCredentialAccount(t.user.id);if(!n||!n.password)throw D.from(`BAD_REQUEST`,Y.CREDENTIAL_ACCOUNT_NOT_FOUND);if(!await e.context.password.verify({hash:n.password,password:e.body.password}))throw D.from(`BAD_REQUEST`,Y.INVALID_PASSWORD)}if(e.body.token)return await DQ({...e,query:{token:e.body.token}}),e.json({success:!0,message:`User deleted`});if(e.context.options.user.deleteUser?.sendDeleteAccountVerification){let n=TH(32,`0-9`,`a-z`);await e.context.internalAdapter.createVerificationValue({value:t.user.id,identifier:`delete-account-${n}`,expiresAt:new Date(Date.now()+(e.context.options.user.deleteUser?.deleteTokenExpiresIn||86400)*1e3)});let r=`${e.context.baseURL}/delete-user/callback?token=${n}&callbackURL=${encodeURIComponent(e.body.callbackURL||`/`)}`;return await e.context.runInBackgroundOrAwait(e.context.options.user.deleteUser.sendDeleteAccountVerification({user:t.user,url:r,token:n},e.request)),e.json({success:!0,message:`Verification email sent`})}if(!e.body.password&&e.context.sessionConfig.freshAge!==0){let n=new Date(t.session.createdAt).getTime(),r=e.context.sessionConfig.freshAge*1e3;if(Date.now()-n>=r)throw D.from(`BAD_REQUEST`,Y.SESSION_EXPIRED)}let n=e.context.options.user.deleteUser?.beforeDelete;n&&await n(t.user,e.request),await e.context.internalAdapter.deleteUser(t.user.id),await e.context.internalAdapter.deleteUserSessions(t.user.id),lq(e);let r=e.context.options.user.deleteUser?.afterDelete;return r&&await r(t.user,e.request),e.json({success:!0,message:`User deleted`})}),DQ=X(`/delete-user/callback`,{method:`GET`,query:j({token:A().meta({description:`The token to verify the deletion request`}),callbackURL:A().meta({description:`The URL to redirect to after deletion`}).optional()}),use:[tJ(e=>e.query.callbackURL)],metadata:{openapi:{description:`Callback to complete user deletion with verification token`,responses:{200:{description:`User successfully deleted`,content:{"application/json":{schema:{type:`object`,properties:{success:{type:`boolean`,description:`Indicates if the deletion was successful`},message:{type:`string`,enum:[`User deleted`],description:`Confirmation message`}},required:[`success`,`message`]}}}}}}}},async e=>{if(!e.context.options.user?.deleteUser?.enabled)throw e.context.logger.error(`Delete user is disabled. Enable it in the options`),D.from(`NOT_FOUND`,{message:`Not found`,code:`NOT_FOUND`});let t=await zJ(e,{disableCookieCache:RJ(e)});if(!t)throw D.from(`NOT_FOUND`,Y.FAILED_TO_GET_USER_INFO);let n=await e.context.internalAdapter.consumeVerificationValue(`delete-account-${e.query.token}`);if(!n||n.value!==t.user.id)throw D.from(`NOT_FOUND`,Y.INVALID_TOKEN);let r=e.context.options.user.deleteUser?.beforeDelete;r&&await r(t.user,e.request),await e.context.internalAdapter.deleteUser(t.user.id),await e.context.internalAdapter.deleteUserSessions(t.user.id),await e.context.internalAdapter.deleteAccounts(t.user.id),lq(e);let i=e.context.options.user.deleteUser?.afterDelete;if(i&&await i(t.user,e.request),e.query.callbackURL)throw e.redirect(e.query.callbackURL||`/`);return e.json({success:!0,message:`User deleted`})}),Wfe=X(`/change-email`,{method:`POST`,body:j({newEmail:be().meta({description:`The new email address to set must be a valid email address`}),callbackURL:A().meta({description:`The URL to redirect to after email verification`}).optional()}),use:[HJ],metadata:{openapi:{operationId:`changeEmail`,responses:{200:{description:`Email change request processed successfully`,content:{"application/json":{schema:{type:`object`,properties:{user:{type:`object`,$ref:`#/components/schemas/User`},status:{type:`boolean`,description:`Indicates if the request was successful`},message:{type:`string`,enum:[`Email updated`,`Verification email sent`],description:`Status message of the email change process`,nullable:!0}},required:[`status`]}}}}}}}},async e=>{if(!e.context.options.user?.changeEmail?.enabled)throw e.context.logger.error(`Change email is disabled.`),D.from(`BAD_REQUEST`,Y.CHANGE_EMAIL_DISABLED);let t=e.body.newEmail.toLowerCase();if(t===e.context.session.user.email)throw e.context.logger.warn(`Email is the same`),D.fromStatus(`BAD_REQUEST`,{message:`Email is the same`});let n=e.context.session.user.emailVerified!==!0&&e.context.options.user.changeEmail.updateEmailWithoutVerification,r=e.context.options.emailVerification?.sendVerificationEmail,i=r&&e.context.session.user.emailVerified&&e.context.options.user.changeEmail.sendChangeEmailConfirmation;if(!n&&!i&&!r)throw e.context.logger.error(`Verification email isn't enabled.`),D.fromStatus(`BAD_REQUEST`,{message:`Verification email isn't enabled`});if(await e.context.internalAdapter.findUserByEmail(t))return await BY(e.context.secret,e.context.session.user.email,t,e.context.options.emailVerification?.expiresIn),e.context.logger.info(`Change email attempt for existing email`),e.json({status:!0});if(n){if(await e.context.internalAdapter.updateUser(e.context.session.user.id,{email:t}),await aq(e,{session:e.context.session.session,user:{...e.context.session.user,email:t}}),r){let n=await BY(e.context.secret,t,void 0,e.context.options.emailVerification?.expiresIn),i=`${e.context.baseURL}/verify-email?token=${n}&callbackURL=${encodeURIComponent(e.body.callbackURL||`/`)}`;await e.context.runInBackgroundOrAwait(r({user:{...e.context.session.user,email:t},url:i,token:n},e.request))}return e.json({status:!0})}if(i){let n=await BY(e.context.secret,e.context.session.user.email,t,e.context.options.emailVerification?.expiresIn,{requestType:`change-email-confirmation`}),r=`${e.context.baseURL}/verify-email?token=${n}&callbackURL=${encodeURIComponent(e.body.callbackURL||`/`)}`;return await e.context.runInBackgroundOrAwait(i({user:e.context.session.user,newEmail:t,url:r,token:n},e.request)),e.json({status:!0})}if(!r)throw e.context.logger.error(`Verification email isn't enabled.`),D.fromStatus(`BAD_REQUEST`,{message:`Verification email isn't enabled`});let a=await BY(e.context.secret,e.context.session.user.email,t,e.context.options.emailVerification?.expiresIn,{requestType:`change-email-verification`}),o=`${e.context.baseURL}/verify-email?token=${a}&callbackURL=${encodeURIComponent(e.body.callbackURL||`/`)}`;return await e.context.runInBackgroundOrAwait(r({user:{...e.context.session.user,email:t},url:o,token:a},e.request)),e.json({status:!0})}),OQ=sY((e,t,n)=>{if(Array.isArray(e[t])&&Array.isArray(n))return e[t]=n,!0}),kQ=/* @__PURE__ */ new WeakMap;function AQ(e,t){let n=e.options;return n?.operationId??n?.metadata?.openapi?.operationId??t??e.path??`/:virtual`}function jQ(e,t){t&&t.forEach((t,n)=>{e.responseHeaders?n.toLowerCase()===`set-cookie`?e.responseHeaders.append(n,t):e.responseHeaders.set(n,t):e.responseHeaders=new Headers({[n]:t})})}function MQ(e){let t=e[he],n=e.headers&&e.headers!==t?new Headers(e.headers):null;if(!t&&!n)return null;let r=new Headers;return t?.forEach((e,t)=>{r.append(t,e)}),n?.forEach((e,t)=>{t.toLowerCase()===`set-cookie`?r.append(t,e):r.set(t,e)}),r}async function Gfe(e,t,n,r){let i=ie(e.context.options),a={};for(let o of t){let t=!1;try{t=o.matcher(e)}catch(t){let n=kQ.get(o.handler)??`unknown`;throw e.context.logger.error(`An error occurred during ${n} hook matcher execution:`,t),new D(`INTERNAL_SERVER_ERROR`,{message:`An error occurred during hook matcher execution. Check the logs for more details.`})}if(!t)continue;let s=kQ.get(o.handler)??`unknown`,c=n.path??`/:virtual`,l=await i(`hook before ${c} ${s}`,{[eY]:`before`,[v]:c,[tY]:s,[$J]:r},()=>o.handler({...e,returnHeaders:!0})).catch(t=>{throw Fq(t)&&b(e.context.logger.level,`debug`)&&(t.stack=t.errorStack),t});jQ(e.context,l?.headers);let u=l?.response;if(u&&typeof u==`object`){if(`context`in u&&typeof u.context==`object`){let{headers:e,...t}=u.context;e instanceof Headers&&(a.headers?e.forEach((e,t)=>{a.headers?.set(t,e)}):a.headers=e),a=OQ(t,a);continue}return u}}return{context:a}}async function Kfe(e,t,n,r){let i=ie(e.context.options);for(let a of t){if(!a.matcher(e))continue;let t=kQ.get(a.handler)??`unknown`,o=n.path??`/:virtual`,s=await i(`hook after ${o} ${t}`,{[eY]:`after`,[v]:o,[tY]:t,[$J]:r},()=>a.handler(e)).catch(t=>{if(Fq(t))return b(e.context.logger.level,`debug`)&&(t.stack=t.errorStack),{response:t,headers:MQ(t)};throw t});jQ(e.context,s.headers),s.response!==void 0&&(e.context.returned=s.response)}return{response:e.context.returned,headers:e.context.responseHeaders}}function qfe(e){let t=e.options.plugins||[],n=[],r=[],i=e.options.hooks?.before;i&&(kQ.set(i,`user`),n.push({matcher:()=>!0,handler:i}));let a=e.options.hooks?.after;a&&(kQ.set(a,`user`),r.push({matcher:()=>!0,handler:a}));let o=t.flatMap(e=>(e.hooks?.before??[]).map(t=>(kQ.set(t.handler,`plugin:${e.id}`),t))),s=t.flatMap(e=>(e.hooks?.after??[]).map(t=>(kQ.set(t.handler,`plugin:${e.id}`),t)));return o.length&&n.push(...o),s.length&&r.push(...s),{beforeHooks:n,afterHooks:r}}async function NQ(e,t){let n=ie(t.context.options),r=t.operationId??AQ(e),i=e.path??`/:virtual`,a=e.options?.method,o=Array.isArray(a)?a[0]:a,s=t.method??t.request?.method??o??`?`,c=t.asResponse??yH(t.request),l={...t,context:{...t.context,returned:void 0,responseHeaders:void 0,session:t.context.session??null},path:e.path,headers:t.headers?new Headers(t.headers):void 0};return n(`${s} ${i}`,{[v]:i,[$J]:r},async()=>GV(l,async()=>{let{beforeHooks:a,afterHooks:o}=qfe(l.context),s=await Gfe(l,a,e,r);if(`context`in s&&s.context&&typeof s.context==`object`){let{headers:e,...t}=s.context;if(e){l.headers||(l.headers=new Headers);let t=l.headers;e.forEach((e,n)=>{t.set(n,e)})}l=OQ(t,l)}else if(s){let e=l.context.responseHeaders;return c?nK(s,{headers:e}):t.returnHeaders?{headers:e,response:s}:s}l.asResponse=!1,l.returnHeaders=!0,l.returnStatus=!0;let u=await GV(l,()=>n(`handler ${i}`,{[v]:i,[$J]:r},()=>e(l))).catch(e=>{if(Fq(e))return{response:e,status:e.statusCode,headers:MQ(e)};throw e});if(u instanceof Response)return u;l.context.returned=u.response,l.context.responseHeaders=u.headers??void 0;let d=await Kfe(l,o,e,r);if(d.response!==void 0&&(u.response=d.response),u.headers=d.headers??u.headers,Fq(u.response)&&b(l.context.logger.level,`debug`)&&(u.response.stack=u.response.errorStack),Fq(u.response)&&!c)throw u.headers&&Object.defineProperty(u.response,he,{enumerable:!1,configurable:!0,writable:!1,value:u.headers}),u.response;return c?nK(u.response,{headers:u.headers??void 0,status:u.status}):t.returnHeaders?t.returnStatus?{headers:u.headers,response:u.response,status:u.status}:{headers:u.headers,response:u.response}:t.returnStatus?{response:u.response,status:u.status}:u.response}))}async function Jfe(e,t){if(e.baseURL)return e;let n=DY(t),r=e.options.baseURL,i=vH(r)&&!!r.fallback;if(n===void 0&&!i)throw new D(`INTERNAL_SERVER_ERROR`,{message:"Dynamic baseURL could not be resolved for this direct auth.api call. Pass `headers: request.headers` (or `request`) to the call, or add `fallback` to your baseURL config."});try{return await kY(e,n,OY(e.options))}catch(e){throw e instanceof O?new D(`INTERNAL_SERVER_ERROR`,{message:e.message}):e}}function Yfe(e,t){let n={};for(let[r,i]of Object.entries(e))n[r]=async e=>{let n=AQ(i,r),a=async()=>{let r=await t,a=r.checkSchema?.();a&&await a;let o=vH(r.options.baseURL)?await Jfe(r,e):r;return NQ(i,{...e,context:o,operationId:n,asResponse:e?.asResponse??yH(e?.request)})};return await qV()?a():YV(/* @__PURE__ */ new WeakMap,a)},n[r].path=i.path,n[r].options=i.options;return n}function Xfe(e,t){let n=/* @__PURE__ */ new Map;e.plugins?.forEach(e=>{if(e.endpoints){for(let[t,r]of Object.entries(e.endpoints))if(r&&`path`in r&&typeof r.path==`string`){let i=r.path,a=[];r.options&&`method`in r.options&&(Array.isArray(r.options.method)?a=r.options.method:typeof r.options.method==`string`&&(a=[r.options.method])),a.length===0&&(a=[`*`]),n.has(i)||n.set(i,[]),n.get(i).push({pluginId:e.id,endpointKey:t,methods:a})}}});let r=[];for(let[e,t]of n.entries())if(t.length>1){let n=/* @__PURE__ */ new Map,i=!1;for(let e of t)for(let r of e.methods)n.has(r)||n.set(r,[]),n.get(r).push(e.pluginId),n.get(r).length>1&&(i=!0),(r===`*`&&t.length>1||r!==`*`&&n.has(`*`))&&(i=!0);if(i){let i=[...new Set(t.map(e=>e.pluginId))],a=[];for(let[e,r]of n.entries())(r.length>1||e===`*`&&t.length>1||e!==`*`&&n.has(`*`))&&a.push(e);r.push({path:e,plugins:i,conflictingMethods:a})}}if(r.length>0){let e=r.map(e=>` - "${e.path}" [${e.conflictingMethods.join(`, `)}] used by plugins: ${e.plugins.join(`, `)}`).join(`
408
- `);t.error(`Endpoint path conflicts detected! Multiple plugins are trying to use the same endpoint paths with conflicting HTTP methods:
409
- ${e}
410
-
411
- To resolve this, you can:
412
- 1. Use only one of the conflicting plugins
413
- 2. Configure the plugins to use different paths (if supported)
414
- 3. Ensure plugins use different HTTP methods for the same path
415
- `)}}function PQ(e,t){let n=ie(t),r=t.plugins?.reduce((e,t)=>({...e,...t.endpoints}),{})??{},i=t.plugins?.map(t=>t.middlewares?.map(r=>{let i=(async i=>{let a=await e;return n(`middleware ${r.path} ${t.id}`,{"better_auth.hook.type":`middleware`,"http.route":r.path,"better_auth.context":`plugin:${t.id}`},()=>r.middleware({...i,context:{...a,...i.context}}))});return i.options=r.middleware.options,{path:r.path,middleware:i}})).filter(e=>e!==void 0).flat()||[];return{api:Yfe({signInSocial:jfe(),callbackOAuth:yfe,getSession:LJ(),signOut:Pfe,signUpEmail:Ife(),signInEmail:Mfe(),resetPassword:Ofe,verifyPassword:kfe,verifyEmail:UY,sendVerificationEmail:HY,changeEmail:Wfe,changePassword:Vfe,setPassword:Hfe,updateSession:Rfe(),updateUser:Bfe(),deleteUser:Ufe,requestPasswordReset:Efe,requestPasswordResetCallback:Dfe,listSessions:WJ(),revokeSession:GJ,revokeSessions:KJ,revokeOtherSessions:qJ,linkSocialAccount:mfe,listUserAccounts:pfe,deleteUserCallback:DQ,unlinkAccount:hfe,refreshToken:_fe,getAccessToken:gfe,accountInfo:vfe,...r,ok:Sfe,error:xfe},e),middlewares:i}}const Zfe=(e,t)=>{let n=ie(t),{api:r,middlewares:i}=PQ(e,t),a=new URL(e.baseURL).pathname;return LK(r,{routerContext:e,openapi:{disabled:!0},basePath:a,routerMiddleware:[{path:`/**`,middleware:eJ},...i],allowedMediaTypes:[`application/json`],skipTrailingSlashes:t.advanced?.skipTrailingSlashes??!1,async onRequest(t){let r=e.options.disabledPaths||[],i=vq(t.url,a);if(r.includes(i))return new Response(`Not Found`,{status:404});let o=e.checkSchema?.();o&&await o;let s=t,c=await PJ(s,e);if(c)return c;for(let t of e.options.plugins||[])if(t.onRequest){let r=await n(`onRequest ${t.id}`,{[eY]:`onRequest`,[tY]:`plugin:${t.id}`},()=>t.onRequest(s,e));if(r&&`response`in r)return r.response;r&&`request`in r&&(s=r.request)}return s},async onResponse(t,r){for(let r of e.options.plugins||[])if(r.onResponse){let i=await n(`onResponse ${r.id}`,{[eY]:`onResponse`,[tY]:`plugin:${r.id}`,[ee]:t.status},()=>r.onResponse(t,e));if(i)return i.response}return t},onError(n){if(Fq(n)&&n.status===`FOUND`)return;if(t.onAPIError?.throw)throw n;if(t.onAPIError?.onError){t.onAPIError.onError(n,e);return}let r=t.logger?.level,i=r===`error`||r===`warn`||r===`debug`?E:void 0;if(t.logger?.disabled!==!0){if(n&&typeof n==`object`&&`message`in n&&typeof n.message==`string`&&(n.message.includes(`no column`)||n.message.includes(`column`)||n.message.includes(`relation`)||n.message.includes(`table`)||n.message.includes(`does not exist`))){e.logger?.error(n.message);return}Fq(n)?(n.status===`INTERNAL_SERVER_ERROR`&&e.logger.error(n.status,n),i?.error(n.message)):e.logger?.error(n&&typeof n==`object`&&`name`in n?n.name:``,n)}}})};async function Qfe(e,t){let n;if(e.database)n=typeof e.database==`function`?e.database(e):await t(e);else{let t=y(e),r=Object.keys(t).reduce((e,t)=>(e[t]=[],e),{}),{memoryAdapter:i}=await import(`./dist-nX81jnMN.mjs`);n=i(r)(e)}return n.transaction||(E.warn(`Adapter does not correctly implement transaction function, patching it automatically. Please update your adapter implementation.`),n.transaction=async e=>e(n)),n}async function $fe(e){return Qfe(e,async e=>{let{createKyselyAdapter:t,kyselyAdapter:n}=await import(`./kysely-adapter-Dp7QV9II.mjs`),{kysely:r,databaseType:i,transaction:a}=await t(e);if(!r)throw new O(`Failed to initialize database adapter`);return n(r,{type:i||`sqlite`,debugLogs:e.database&&`debugLogs`in e.database?e.database.debugLogs:!1,transaction:a})(e)})}function epe(e){let{indexesByTable:t,tables:n}=se(e),r={};for(let e in n){let t=n[e],i=t.fields,a={};Object.entries(i).forEach(([e,t])=>{if(a[t.fieldName||e]=t,t.references){let r=n[t.references.model];r&&(a[t.fieldName||e].references={...t.references,model:r.modelName,field:t.references.field})}}),r[t.modelName]?(r[t.modelName].fields={...r[t.modelName].fields,...a},t.disableMigrations&&(r[t.modelName].disableMigrations=!0)):r[t.modelName]={fields:a,order:t.order||1/0,disableMigrations:t.disableMigrations}}for(let[e,n]of t)r[e]&&(r[e].indexes=n);return r}const tpe={postgres:{string:[`character varying`,`varchar`,`text`,`uuid`],number:[`int4`,`integer`,`bigint`,`smallint`,`numeric`,`real`,`double precision`],boolean:[`bool`,`boolean`],date:[`timestamptz`,`timestamp`,`date`],json:[`json`,`jsonb`]},mysql:{string:[`varchar`,`text`,`uuid`],number:[`integer`,`int`,`bigint`,`smallint`,`decimal`,`float`,`double`],boolean:[`boolean`,`tinyint`],date:[`timestamp`,`datetime`,`date`],json:[`json`]},sqlite:{string:[`TEXT`],number:[`INTEGER`,`REAL`,`BIGINT`],boolean:[`INTEGER`,`BOOLEAN`],date:[`DATE`,`INTEGER`],json:[`TEXT`]},mssql:{string:[`varchar`,`nvarchar`,`uniqueidentifier`],number:[`int`,`bigint`,`smallint`,`decimal`,`float`,`double`],boolean:[`bit`,`smallint`],date:[`datetime2`,`date`,`datetime`],json:[`varchar`,`nvarchar`]}};function FQ(e,t){return`${oe(e)}\u0000${oe(t)}`}function IQ(e,t){return`${e}\u0000${t}`}function LQ(e,t){return e.unique===(t.unique??!1)&&e.validFullColumns&&e.columns.length===t.columns.length&&e.columns.every((e,n)=>e===t.columns[n])}function RQ(e){return typeof e==`boolean`?e:typeof e==`number`?e!==0:e===`1`||e?.toLowerCase()===`true`||e===`t`}function zQ(e){return new Map(e.map(e=>{let t=[...e.columns].sort((e,t)=>e.position-t.position);return[FQ(e.table,e.name),{columns:t.flatMap(e=>e.name===null?[]:[e.name]),name:e.name,table:e.table,unique:e.unique,validFullColumns:e.valid&&!e.partial&&t.length>0&&t.every(e=>e.name!==null&&e.fullLength)}]}))}async function npe(e,n,r,i){if(i)return zQ(await i(r));let a;switch(n.type){case`sqlite`:a=(await t`
416
- SELECT
417
- tables.name AS "tableName",
418
- index_list.name AS "indexName",
419
- index_info.name AS "columnName",
420
- index_list."unique" AS "isUnique",
421
- index_list.partial AS "isPartial",
422
- index_info.seqno AS "columnPosition"
423
- FROM sqlite_master AS tables
424
- INNER JOIN pragma_index_list(tables.name) AS index_list
425
- INNER JOIN pragma_index_info(index_list.name) AS index_info
426
- WHERE tables.type = 'table'
427
- `.execute(e)).rows;break;case`postgres`:a=(await t`
428
- SELECT
429
- table_class.relname AS "tableName",
430
- index_class.relname AS "indexName",
431
- index_attribute.attname AS "columnName",
432
- index_data.indisunique AS "isUnique",
433
- index_data.indisvalid AS "isValid",
434
- (index_data.indpred IS NOT NULL) AS "isPartial",
435
- index_column.ordinality AS "columnPosition"
436
- FROM pg_class AS table_class
437
- INNER JOIN pg_namespace AS table_namespace
438
- ON table_namespace.oid = table_class.relnamespace
439
- INNER JOIN pg_index AS index_data
440
- ON index_data.indrelid = table_class.oid
441
- INNER JOIN pg_class AS index_class
442
- ON index_class.oid = index_data.indexrelid
443
- INNER JOIN LATERAL unnest(index_data.indkey)
444
- WITH ORDINALITY AS index_column(attribute_number, ordinality)
445
- ON TRUE
446
- LEFT JOIN pg_attribute AS index_attribute
447
- ON index_attribute.attrelid = table_class.oid
448
- AND index_attribute.attnum = index_column.attribute_number
449
- WHERE table_namespace.nspname = ${n.schema}
450
- AND table_class.relkind = 'r'
451
- AND index_column.ordinality <= index_data.indnkeyatts
452
- `.execute(e)).rows;break;case`mysql`:a=(await t`
453
- SELECT
454
- table_name AS tableName,
455
- index_name AS indexName,
456
- column_name AS columnName,
457
- non_unique AS nonUnique,
458
- seq_in_index AS columnPosition,
459
- sub_part AS prefixLength,
460
- COALESCE(LOWER(comment) = 'disabled', FALSE) AS isDisabled
461
- FROM information_schema.statistics
462
- WHERE table_schema = DATABASE()
463
- `.execute(e)).rows;break;case`mssql`:a=(await t`
464
- SELECT
465
- tables.name AS "tableName",
466
- indexes.name AS "indexName",
467
- columns.name AS "columnName",
468
- indexes.is_unique AS "isUnique",
469
- indexes.is_disabled AS "isDisabled",
470
- indexes.is_hypothetical AS "isHypothetical",
471
- indexes.has_filter AS "isPartial",
472
- index_columns.key_ordinal AS "columnPosition"
473
- FROM sys.indexes AS indexes
474
- INNER JOIN sys.tables AS tables
475
- ON indexes.object_id = tables.object_id
476
- INNER JOIN sys.schemas AS table_schemas
477
- ON table_schemas.schema_id = tables.schema_id
478
- INNER JOIN sys.index_columns AS index_columns
479
- ON index_columns.object_id = indexes.object_id
480
- AND index_columns.index_id = indexes.index_id
481
- INNER JOIN sys.columns AS columns
482
- ON columns.object_id = index_columns.object_id
483
- AND columns.column_id = index_columns.column_id
484
- WHERE table_schemas.name = ${n.schema}
485
- AND indexes.name IS NOT NULL
486
- AND index_columns.key_ordinal > 0
487
- `.execute(e)).rows}let o=/* @__PURE__ */ new Map;for(let e of a){let t=e.tableName??e.table_name??e.TABLE_NAME??e.tablename??e.tbl_name,n=e.indexName??e.index_name??e.INDEX_NAME??e.name,r=e.columnName??e.column_name??e.COLUMN_NAME;if(!t||!n)continue;let i=FQ(t,n),a=e.nonUnique??e.non_unique??e.NON_UNIQUE,s=a===void 0?RQ(e.isUnique??e.is_unique):!RQ(a),c=Number(e.columnPosition??e.column_position??e.keyOrdinal??e.key_ordinal??e.ordinality??e.seqInIndex??e.seq_in_index??e.SEQ_IN_INDEX??e.seqno??0),l={fullLength:r!=null&&(e.prefixLength===void 0||e.prefixLength===null),name:r??null,position:c},u=RQ(e.isPartial),d=!RQ(e.isDisabled)&&!RQ(e.isHypothetical)&&(e.isValid===void 0||RQ(e.isValid)),f=o.get(i);o.set(i,f?{...f,columns:[...f.columns,l],partial:f.partial||u,valid:f.valid&&d}:{columns:[l],name:n,partial:u,table:t,unique:s,valid:d})}return zQ([...o.values()])}async function rpe(e,n){let r;switch(n.type){case`postgres`:case`sqlite`:return/* @__PURE__ */ new Map;case`mysql`:r=(await t`
488
- SELECT
489
- table_name AS tableName,
490
- column_name AS columnName,
491
- character_octet_length AS maxIndexBytes
492
- FROM information_schema.columns
493
- WHERE table_schema = DATABASE()
494
- `.execute(e)).rows;break;case`mssql`:r=(await t`
495
- SELECT
496
- tables.name AS "tableName",
497
- columns.name AS "columnName",
498
- columns.max_length AS "maxIndexBytes"
499
- FROM sys.columns AS columns
500
- INNER JOIN sys.tables AS tables
501
- ON tables.object_id = columns.object_id
502
- INNER JOIN sys.schemas AS table_schemas
503
- ON table_schemas.schema_id = tables.schema_id
504
- WHERE table_schemas.name = ${n.schema}
505
- `.execute(e)).rows}let i=/* @__PURE__ */ new Map;for(let e of r){let t=e.tableName??e.TABLE_NAME,n=e.columnName??e.COLUMN_NAME;if(!t||!n)continue;let r=Number(e.maxIndexBytes??e.MAX_INDEX_BYTES??-1);i.set(IQ(t,n),{maxIndexBytes:r<0?null:r})}return i}function ipe({columnBounds:e,dbType:t,existingColumns:n,fields:r,indexes:i,index:a,table:o}){let s=t===`mysql`?3072:1700,c=0;for(let s of a.columns){let l=r[s];if(l){if(l.type===`string`||Array.isArray(l.type)){if(!n.has(s)){let e=f({columnName:s,dialect:t,fields:r,indexes:i});c+=(e??0)*(t===`mysql`?4:1);continue}let l=e.get(IQ(o,s));if(!l?.maxIndexBytes)throw new O(`Cannot create database index "${a.name}" on existing table "${o}" because column "${s}" is not bounded for ${t===`mysql`?`MySQL`:`SQL Server`}. Change it to a bounded string column, resolve oversized values, then run the migration again.`);c+=l.maxIndexBytes}else c+=16}}if(c>s)throw new O(`Cannot create database index "${a.name}" on existing table "${o}" because its columns can exceed ${t===`mysql`?`MySQL`:`SQL Server`}'s ${s}-byte index-key limit. Bound the indexed string columns to the generated schema lengths, resolve oversized values, then run the migration again.`)}var ape=class extends O{};function ope(e,t){return e.type===`date`&&typeof e.defaultValue==`function`&&(t===`postgres`||t===`mysql`||t===`mssql`)}function spe(e){return!(e.unique&&e.required===!1)&&(e.type===`string`||e.type===`number`||e.type===`boolean`)&&e.defaultValue!==void 0&&e.defaultValue!==null&&typeof e.defaultValue!=`function`}async function cpe(e,n,r){let i=e.selectFrom(r).select(t`1`.as(`present`));return(await(n===`mssql`?i.top(1):i.limit(1)).execute()).length>0}function lpe(e,t,n){function r(e){return e.toLowerCase().split(`(`)[0].trim()}if(t===`string[]`||t===`number[]`)return e.toLowerCase().includes(`json`);let i=tpe[n];return(Array.isArray(t)?i.string.map(e=>e.toLowerCase()):i[t].map(e=>e.toLowerCase())).includes(r(e))}async function BQ(e,{throwOnUnsafe:n=!0}={}){let r=epe(e),i=y(e),o=te(e.logger),d=[],p=e=>{if(n)throw new ape(e);d.push(e)},{kysely:m,databaseType:g,introspectIndexes:_,schemaName:v}=await u(e);g||=(o.warn(`Could not determine database type, defaulting to sqlite. Please provide a type in the database options to avoid this.`),`sqlite`),m||(o.error("Only kysely adapter is supported for migrations. You can use `generate` command to generate the schema, if you're using a different adapter."),process.exit(1));let b=await m.introspection.getTables(),x,S=b;switch(g){case`postgres`:{let e=v??await a(m);x={type:`postgres`,schema:e},o.debug(`PostgreSQL migration: Using schema '${e}' (${v?`from database.schemaName`:`from search_path`})`);try{(await m.introspection.getSchemas()).some(({name:t})=>t===e)||(v?o.debug(`Schema '${e}' does not exist yet. The migration creates it before creating tables.`):o.warn(`Schema '${e}' does not exist. Create it before running migrations or check your database configuration.`))}catch(e){o.debug(`Could not verify schema existence: ${e instanceof Error?e.message:String(e)}`)}S=b.filter(t=>t.schema===e&&!t.isView&&!(`isForeign`in t&&t.isForeign)),o.debug(`Found ${S.length} table(s) in schema '${e}': ${S.map(e=>e.name).join(`, `)||`(none)`}`);break}case`mssql`:{let e=await c(m);x={type:`mssql`,schema:e},o.debug(`SQL Server migration: Using schema '${e}' (from the current user's default schema)`),S=b.filter(t=>t.schema===e);break}case`mysql`:x={type:`mysql`};break;case`sqlite`:x={type:`sqlite`}}let ee=await npe(m,x,b.map(e=>e.name),_),C=await rpe(m,x),ne=Ie(l(m,r),s(S)).filter(e=>e.kind===`unexpected-required-column`).map(e=>Le(e,`database`)),w=[],T=[],re=[],ie=/* @__PURE__ */ new Map;for(let[e,t]of Object.entries(r)){if(t.disableMigrations)continue;let n=S.find(t=>t.name===e);for(let r of t.indexes??[]){let i=r.name,a=FQ(e,i),o=ee.get(a);if(o){if(!LQ(o,r))throw new O(`Database index "${i}" on table "${e}" does not match the configured fields and uniqueness. Rename or replace the existing index, then run the migration again.`);continue}if(g===`sqlite`||g===`postgres`){let t=[...ee.values()].find(t=>oe(t.name)===oe(i)&&oe(t.table)!==oe(e));if(t)throw new O(`Database index name "${i}" is already used by table "${t.table}". Index names must be unique across the schema.`)}let s=ie.get(a);if(s){if(!LQ({columns:s.columns,name:s.name,table:e,unique:s.unique??!1,validFullColumns:!0},r))throw new O(`Database index name "${i}" identifies more than one index on table "${e}".`)}else n&&(g===`mysql`||g===`mssql`)&&ipe({columnBounds:C,dbType:g,existingColumns:new Set(n.columns.map(e=>e.name)),fields:t.fields,index:r,indexes:t.indexes??[],table:e}),ie.set(a,r),re.push({table:e,index:r,name:i})}if(!n){let n=w.findIndex(t=>t.table===e),r={table:e,fields:t.fields,order:t.order||1/0},i=w.findIndex(e=>(e.order||1/0)>r.order);i===-1?n===-1?w.push(r):w[n].fields={...w[n].fields,...t.fields}:w.splice(i,0,r);continue}let r={};for(let[i,a]of Object.entries(t.fields)){let t=n.columns.find(e=>e.name===i);t?(a.required!==!1&&t.isNullable&&o.warn(`Column "${i}" on table "${e}" stays nullable while the schema declares the field required, so existing rows can still hold null. Backfill every row for this column and enforce NOT NULL to remove the drift.`),!lpe(t.dataType,a.type,g)&&o.warn(`Field ${i} in table ${e} has a different type in the database. Expected ${a.type} but got ${t.dataType}.`)):r[i]=a}Object.keys(r).length>0&&T.push({table:e,fields:r,order:t.order||1/0})}let E=[];v&&w.length>0&&E.push(m.schema.createSchema(v).ifNotExists());let ae=e.advanced?.database?.generateId===`uuid`,se=e.advanced?.database?.generateId===`serial`;function ce(e,n,r){let i=e.type,a=g||`sqlite`,o={string:{sqlite:`text`,postgres:`text`,mysql:r?`varchar(${r})`:e.unique?`varchar(255)`:e.references?`varchar(36)`:e.sortable||e.index?`varchar(255)`:`text`,mssql:r?`varchar(${r})`:e.unique||e.sortable?`varchar(255)`:e.references?`varchar(36)`:`varchar(8000)`},boolean:{sqlite:`integer`,postgres:`boolean`,mysql:`boolean`,mssql:`smallint`},number:{sqlite:e.bigint?`bigint`:`integer`,postgres:e.bigint?`bigint`:`integer`,mysql:e.bigint?`bigint`:`integer`,mssql:e.bigint?`bigint`:`integer`},date:{sqlite:`date`,postgres:`timestamptz`,mysql:`timestamp(3)`,mssql:t`datetime2(3)`},json:{sqlite:`text`,postgres:`jsonb`,mysql:`json`,mssql:`varchar(8000)`},id:{postgres:se?t`integer GENERATED BY DEFAULT AS IDENTITY`:ae?`uuid`:`text`,mysql:se?`integer`:`varchar(36)`,mssql:se?`integer`:`varchar(36)`,sqlite:se?`integer`:`text`},foreignKeyId:{postgres:se?`integer`:ae?`uuid`:`text`,mysql:se?`integer`:`varchar(36)`,mssql:se?`integer`:`varchar(36)`,sqlite:se?`integer`:`text`},"string[]":{sqlite:`text`,postgres:`jsonb`,mysql:`json`,mssql:`varchar(8000)`},"number[]":{sqlite:`text`,postgres:`jsonb`,mysql:`json`,mssql:`varchar(8000)`}};if(n===`id`||e.references?.field===`id`)return n===`id`?o.id[a]:o.foreignKeyId[a];if(Array.isArray(i))return`text`;if(!(i in o))throw Error(`Unsupported field type '${String(i)}' for field '${n}'. Allowed types are: string, number, boolean, date, string[], number[]. If you need to store structured data, store it as a JSON string (type: "string") or split it into primitive fields. See https://better-auth.com/docs/advanced/schema#additional-fields`);return o[i][a]}let le=lee({schema:i,usePlural:!1}),ue=ze({schema:i,usePlural:!1});function de(e,t){try{return`${le(e)}.${ue({model:e,field:t})}`}catch{return`${e}.${t}`}}let fe=[],pe=(e,t)=>{if(g!==`mysql`&&g!==`mssql`)return;let n=r[e];if(n)return f({columnName:t,dialect:g,fields:n.fields,indexes:n.indexes??[]})};if(T.length){let e=/* @__PURE__ */ new Map;for(let n of T)for(let[r,i]of Object.entries(n.fields)){let a=ope(i,g),s=spe(i);if(i.required!==!1&&!a&&!s){let t=e.get(n.table);if(t===void 0&&(t=await cpe(m,g,n.table),e.set(n.table,t)),t){let e=i.type===`string`?` For a text column, every existing row ends up with the same empty string.`:``;p(`Cannot add required column "${r}" to populated table "${n.table}": the schema declares no default value, so existing rows have no value to backfill. MySQL accepts this statement instead of rejecting it and fills every existing row with an implicit default for the column type, reporting a successful migration over corrupted data.${e} Add the column as nullable, backfill a correct value for every row, then make it NOT NULL.`)}}let c=ce(i,r,pe(n.table,r)),l=m.schema.alterTable(n.table);if(i.index||i.unique){let e=h(n.table,r,i.unique??!1),t=m.schema.createIndex(e).on(n.table).columns([r]);i.unique&&(t=t.unique(),i.required===!1&&g===`mssql`&&(t=t.where(r,`is not`,null)),i.required!==!1&&i.defaultValue!==void 0&&i.defaultValue!==null&&typeof i.defaultValue!=`function`&&o.warn(`Adding unique column "${r}" to existing table "${n.table}" backfills every existing row with its default value. If the table has more than one row, creating the unique index "${e}" will fail; backfill distinct values manually, then re-run the migration or create the index yourself.`)),fe.push(t)}let u=l.addColumn(r,c,e=>(e=i.required===!1?e:e.notNull(),i.references&&(e=e.references(de(i.references.model,i.references.field)).onDelete(i.references.onDelete||`cascade`)),a?e=g===`mysql`?e.defaultTo(t`CURRENT_TIMESTAMP(3)`):e.defaultTo(t`CURRENT_TIMESTAMP`):s&&(e=e.defaultTo(typeof i.defaultValue==`boolean`&&(g===`sqlite`||g===`mssql`)?+!!i.defaultValue:i.defaultValue)),e));E.push(u)}}if(w.length)for(let e of w){let n=ce({type:se?`number`:`string`},`id`),r=m.schema.createTable(e.table).addColumn(`id`,n,e=>se?g===`postgres`||g===`sqlite`?e.primaryKey().notNull():g===`mssql`?e.identity().primaryKey().notNull():e.autoIncrement().primaryKey().notNull():ae&&g===`postgres`?e.primaryKey().defaultTo(t`pg_catalog.gen_random_uuid()`).notNull():e.primaryKey().notNull());for(let[n,i]of Object.entries(e.fields)){let a=ce(i,n,pe(e.table,n));if(r=r.addColumn(n,a,e=>(e=i.required===!1?e:e.notNull(),i.references&&(e=e.references(de(i.references.model,i.references.field)).onDelete(i.references.onDelete||`cascade`)),i.unique&&(e=e.unique()),i.type===`date`&&typeof i.defaultValue==`function`&&(g===`postgres`||g===`mysql`||g===`mssql`)&&(e=g===`mysql`?e.defaultTo(t`CURRENT_TIMESTAMP(3)`):e.defaultTo(t`CURRENT_TIMESTAMP`)),e)),i.index&&!i.unique){let t=m.schema.createIndex(h(e.table,n,!1)).on(e.table).columns([n]);fe.push(t)}}E.push(r)}for(let{table:e,index:t,name:n}of re){let r=m.schema.createIndex(n).on(e).columns([...t.columns]);t.unique&&(r=r.unique()),fe.push(r)}for(let e of fe)E.push(e);async function me(){try{for(let e of E)await e.execute()}finally{E.length&&e.database&&see(e.database)}}async function he(){return E.map(e=>e.compile().sql).join(`;
506
-
507
- `)+`;`}return{toBeCreated:w,toBeAdded:T,toBeAddedIndexes:re,unsafeChanges:d,schemaProblems:ne,runMigrations:me,compileMigrations:he}}function upe(e){let t=new Set(e).size;return t===0?0:Math.log2(t**+e.length)}function dpe(e){return e?e.split(`,`).map(e=>{e=e.trim();let t=e.indexOf(`:`);if(t===-1)throw new O(`Invalid BETTER_AUTH_SECRETS entry: "${e}". Expected format: "<version>:<secret>"`);let n=parseInt(e.slice(0,t),10);if(!Number.isInteger(n)||n<0)throw new O(`Invalid version in BETTER_AUTH_SECRETS: "${e.slice(0,t)}". Version must be a non-negative integer.`);let r=e.slice(t+1).trim();if(!r)throw new O(`Empty secret value for version ${n} in BETTER_AUTH_SECRETS.`);return{version:n,value:r}}):null}function fpe(e,t){if(e.length===0)throw new O("`secrets` array must contain at least one entry.");let n=/* @__PURE__ */ new Set;for(let t of e){let e=parseInt(String(t.version),10);if(!Number.isInteger(e)||e<0||String(e)!==String(t.version).trim())throw new O(`Invalid version ${t.version} in \`secrets\`. Version must be a non-negative integer.`);if(!t.value)throw new O(`Empty secret value for version ${e} in \`secrets\`.`);if(n.has(e))throw new O(`Duplicate version ${e} in \`secrets\`. Each version must be unique.`);n.add(e)}let r=e[0];r.value.length<32&&t.warn(`[better-auth] Warning: the current secret (version ${r.version}) should be at least 32 characters long for adequate security.`),upe(r.value)<120&&t.warn(`[better-auth] Warning: the current secret appears low-entropy. Use a randomly generated secret for production.`)}function ppe(e,t){let n=/* @__PURE__ */ new Map;for(let t of e)n.set(parseInt(String(t.version),10),t.value);return{keys:n,currentVersion:parseInt(String(e[0].version),10),legacySecret:t&&t!==`better-auth-secret-12345678901234567890`?t:void 0}}async function mpe(e,t){return{database:t?.database,adapter:t?.adapter,emailVerification:{sendVerificationEmail:!!e.emailVerification?.sendVerificationEmail,sendOnSignUp:!!e.emailVerification?.sendOnSignUp,sendOnSignIn:!!e.emailVerification?.sendOnSignIn,autoSignInAfterVerification:!!e.emailVerification?.autoSignInAfterVerification,expiresIn:e.emailVerification?.expiresIn,beforeEmailVerification:!!e.emailVerification?.beforeEmailVerification,afterEmailVerification:!!e.emailVerification?.afterEmailVerification},emailAndPassword:{enabled:!!e.emailAndPassword?.enabled,disableSignUp:!!e.emailAndPassword?.disableSignUp,requireEmailVerification:!!e.emailAndPassword?.requireEmailVerification,maxPasswordLength:e.emailAndPassword?.maxPasswordLength,minPasswordLength:e.emailAndPassword?.minPasswordLength,sendResetPassword:!!e.emailAndPassword?.sendResetPassword,resetPasswordTokenExpiresIn:e.emailAndPassword?.resetPasswordTokenExpiresIn,onPasswordReset:!!e.emailAndPassword?.onPasswordReset,password:{hash:!!e.emailAndPassword?.password?.hash,verify:!!e.emailAndPassword?.password?.verify},autoSignIn:!!e.emailAndPassword?.autoSignIn,revokeSessionsOnPasswordReset:!!e.emailAndPassword?.revokeSessionsOnPasswordReset},socialProviders:await Promise.all(Object.keys(e.socialProviders||{}).map(async t=>{let n=e.socialProviders?.[t];if(!n)return{};let r=typeof n==`function`?await n():n;return{id:t,mapProfileToUser:!!r.mapProfileToUser,disableDefaultScope:!!r.disableDefaultScope,disableIdTokenSignIn:!!r.disableIdTokenSignIn,disableImplicitSignUp:r.disableImplicitSignUp,disableSignUp:r.disableSignUp,getUserInfo:!!r.getUserInfo,overrideUserInfoOnSignIn:!!r.overrideUserInfoOnSignIn,prompt:r.prompt,verifyIdToken:!!r.verifyIdToken,scope:r.scope,refreshAccessToken:!!r.refreshAccessToken}})),plugins:e.plugins?.map(e=>e.id.toString()),user:{modelName:e.user?.modelName,fields:e.user?.fields,additionalFields:e.user?.additionalFields,changeEmail:{enabled:e.user?.changeEmail?.enabled,sendChangeEmailConfirmation:!!e.user?.changeEmail?.sendChangeEmailConfirmation}},verification:{modelName:e.verification?.modelName,disableCleanup:e.verification?.disableCleanup,fields:e.verification?.fields},session:{modelName:e.session?.modelName,additionalFields:e.session?.additionalFields,cookieCache:{enabled:e.session?.cookieCache?.enabled,maxAge:e.session?.cookieCache?.maxAge,strategy:e.session?.cookieCache?.strategy},disableSessionRefresh:e.session?.disableSessionRefresh,expiresIn:e.session?.expiresIn,fields:e.session?.fields,freshAge:e.session?.freshAge,preserveSessionInDatabase:e.session?.preserveSessionInDatabase,storeSessionInDatabase:e.session?.storeSessionInDatabase,updateAge:e.session?.updateAge},account:{modelName:e.account?.modelName,fields:e.account?.fields,encryptOAuthTokens:e.account?.encryptOAuthTokens,updateAccountOnSignIn:e.account?.updateAccountOnSignIn,accountLinking:{enabled:e.account?.accountLinking?.enabled,trustedProviders:e.account?.accountLinking?.trustedProviders,updateUserInfoOnLink:e.account?.accountLinking?.updateUserInfoOnLink,allowUnlinkingAll:e.account?.accountLinking?.allowUnlinkingAll}},hooks:{after:!!e.hooks?.after,before:!!e.hooks?.before},secondaryStorage:!!e.secondaryStorage,advanced:{cookiePrefix:!!e.advanced?.cookiePrefix,cookies:!!e.advanced?.cookies,crossSubDomainCookies:{domain:!!e.advanced?.crossSubDomainCookies?.domain,enabled:e.advanced?.crossSubDomainCookies?.enabled,additionalCookies:e.advanced?.crossSubDomainCookies?.additionalCookies},database:{generateId:e.advanced?.database?.generateId,defaultFindManyLimit:e.advanced?.database?.defaultFindManyLimit},useSecureCookies:e.advanced?.useSecureCookies,ipAddress:{disableIpTracking:e.advanced?.ipAddress?.disableIpTracking,ipAddressHeaders:e.advanced?.ipAddress?.ipAddressHeaders},disableCSRFCheck:e.advanced?.disableCSRFCheck,cookieAttributes:{expires:e.advanced?.defaultCookieAttributes?.expires,secure:e.advanced?.defaultCookieAttributes?.secure,sameSite:e.advanced?.defaultCookieAttributes?.sameSite,domain:!!e.advanced?.defaultCookieAttributes?.domain,path:e.advanced?.defaultCookieAttributes?.path,httpOnly:e.advanced?.defaultCookieAttributes?.httpOnly}},trustedOrigins:e.trustedOrigins?.length,rateLimit:{storage:e.rateLimit?.storage,modelName:e.rateLimit?.modelName,window:e.rateLimit?.window,customStorage:!!e.rateLimit?.customStorage,enabled:e.rateLimit?.enabled,max:e.rateLimit?.max},onAPIError:{errorURL:e.onAPIError?.errorURL,onError:!!e.onAPIError?.onError,throw:e.onAPIError?.throw},logger:{disabled:e.logger?.disabled,level:e.logger?.level,log:!!e.logger?.log},databaseHooks:{user:{create:{after:!!e.databaseHooks?.user?.create?.after,before:!!e.databaseHooks?.user?.create?.before},update:{after:!!e.databaseHooks?.user?.update?.after,before:!!e.databaseHooks?.user?.update?.before}},session:{create:{after:!!e.databaseHooks?.session?.create?.after,before:!!e.databaseHooks?.session?.create?.before},update:{after:!!e.databaseHooks?.session?.update?.after,before:!!e.databaseHooks?.session?.update?.before}},account:{create:{after:!!e.databaseHooks?.account?.create?.after,before:!!e.databaseHooks?.account?.create?.before},update:{after:!!e.databaseHooks?.account?.update?.after,before:!!e.databaseHooks?.account?.update?.before}},verification:{create:{after:!!e.databaseHooks?.verification?.create?.after,before:!!e.databaseHooks?.verification?.create?.before},update:{after:!!e.databaseHooks?.verification?.update?.after,before:!!e.databaseHooks?.verification?.update?.before}}}}}function hpe(){let e=C.npm_config_user_agent;if(!e)return;let t=e.split(` `)[0],n=t.lastIndexOf(`/`),r=t.substring(0,n);return{name:r===`npminstall`?`cnpm`:r,version:t.substring(n+1)}}function gpe(){return C.CI!==`false`&&(`BUILD_ID`in C||`BUILD_NUMBER`in C||`CI`in C||`CI_APP_ID`in C||`CI_BUILD_ID`in C||`CI_BUILD_NUMBER`in C||`CI_NAME`in C||`CONTINUOUS_INTEGRATION`in C||`RUN_ID`in C)}function _pe(){return typeof Deno<`u`?{name:`deno`,version:Deno?.version?.deno??null}:typeof Bun<`u`?{name:`bun`,version:Bun?.version??null}:typeof process<`u`&&process?.versions?.node?{name:`node`,version:process.versions.node??null}:{name:`edge`,version:null}}function vpe(){return x(`NODE_ENV`)===`production`?`production`:gpe()?`ci`:ce()?`test`:`development`}async function VQ(e){let t=await NU(`SHA-256`).digest(e);return jU.encode(t)}const ype=e=>re(`a-z`,`A-Z`,`0-9`)(e||32);let HQ;async function UQ(){if(HQ)return HQ;try{let e=process.cwd();if(!e)return;let t=await ct.readFile(We.join(e,`package.json`),`utf-8`);return HQ=JSON.parse(t),HQ}catch{}}async function WQ(e){if(HQ)return HQ.dependencies?.[e]||HQ.devDependencies?.[e]||HQ.peerDependencies?.[e];try{let t=process.cwd();if(!t)throw Error(`no-cwd`);let n=We.join(t,`node_modules`,e,`package.json`),r=await ct.readFile(n,`utf-8`);return JSON.parse(r).version||await GQ(e)||void 0}catch{}return GQ(e)}async function GQ(e){let t=await UQ();if(t)return{...t.dependencies,...t.devDependencies,...t.peerDependencies}[e]}async function bpe(){return(await UQ())?.name}async function xpe(){try{let e=Ye.cpus();return{deploymentVendor:Spe(),systemPlatform:Ye.platform(),systemRelease:Ye.release(),systemArchitecture:Ye.arch(),cpuCount:e.length,cpuModel:e.length?e[0].model:null,cpuSpeed:e.length?e[0].speed:null,memory:Ye.totalmem(),isWSL:await Dpe(),isDocker:await qQ(),isTTY:process.stdout?process.stdout.isTTY:null}}catch{return{systemPlatform:null,systemRelease:null,systemArchitecture:null,cpuCount:null,cpuModel:null,cpuSpeed:null,memory:null,isWSL:null,isDocker:null,isTTY:null}}}function Spe(){let e=process.env,t=(...t)=>t.some(t=>!!e[t]);return t(`CF_PAGES`,`CF_PAGES_URL`,`CF_ACCOUNT_ID`)||typeof navigator<`u`&&navigator.userAgent===`Cloudflare-Workers`?`cloudflare`:t(`VERCEL`,`VERCEL_URL`,`VERCEL_ENV`)?`vercel`:t(`NETLIFY`,`NETLIFY_URL`)?`netlify`:t(`RENDER`,`RENDER_URL`,`RENDER_INTERNAL_HOSTNAME`,`RENDER_SERVICE_ID`)?`render`:t(`AWS_LAMBDA_FUNCTION_NAME`,`AWS_EXECUTION_ENV`,`LAMBDA_TASK_ROOT`)?`aws`:t(`GOOGLE_CLOUD_FUNCTION_NAME`,`GOOGLE_CLOUD_PROJECT`,`GCP_PROJECT`,`K_SERVICE`)?`gcp`:t(`AZURE_FUNCTION_NAME`,`FUNCTIONS_WORKER_RUNTIME`,`WEBSITE_INSTANCE_ID`,`WEBSITE_SITE_NAME`)?`azure`:t(`DENO_DEPLOYMENT_ID`,`DENO_REGION`)?`deno-deploy`:t(`FLY_APP_NAME`,`FLY_REGION`,`FLY_ALLOC_ID`)?`fly-io`:t(`RAILWAY_STATIC_URL`,`RAILWAY_ENVIRONMENT_NAME`)?`railway`:t(`DYNO`,`HEROKU_APP_NAME`)?`heroku`:t(`DO_DEPLOYMENT_ID`,`DO_APP_NAME`,`DIGITALOCEAN`)?`digitalocean`:t(`KOYEB`,`KOYEB_DEPLOYMENT_ID`,`KOYEB_APP_NAME`)?`koyeb`:null}let KQ;async function Cpe(){try{return it.statSync(`/.dockerenv`),!0}catch{return!1}}async function wpe(){try{return it.readFileSync(`/proc/self/cgroup`,`utf8`).includes(`docker`)}catch{return!1}}async function qQ(){return KQ===void 0&&(KQ=await Cpe()||await wpe()),KQ}let JQ;const Tpe=async()=>{try{return it.statSync(`/run/.containerenv`),!0}catch{return!1}};async function Epe(){return JQ===void 0&&(JQ=await Tpe()||await qQ()),JQ}async function Dpe(){try{return process.platform===`linux`&&(Ye.release().toLowerCase().includes(`microsoft`)||it.readFileSync(`/proc/version`,`utf8`).toLowerCase().includes(`microsoft`))?!await Epe():!1}catch{return!1}}let YQ=null;async function XQ(e){if(YQ)return YQ;let t=await bpe();return t?(YQ=await VQ(e?e+t:t),YQ):e?(YQ=await VQ(e),YQ):(YQ=ype(32),YQ)}async function Ope(){for(let[e,t]of Object.entries({pg:`postgresql`,mysql:`mysql`,mariadb:`mariadb`,sqlite3:`sqlite`,"better-sqlite3":`sqlite`,"@prisma/client":`prisma`,mongoose:`mongodb`,mongodb:`mongodb`,"drizzle-orm":`drizzle`})){let n=await WQ(e);if(n)return{name:t,version:n}}}async function kpe(){for(let[e,t]of Object.entries({next:`next`,nuxt:`nuxt`,"react-router":`react-router`,astro:`astro`,"@sveltejs/kit":`sveltekit`,"solid-start":`solid-start`,"tanstack-start":`tanstack-start`,hono:`hono`,express:`express`,elysia:`elysia`,expo:`expo`})){let n=await WQ(e);if(n)return{name:t,version:n}}}const Ape=async function(){};async function jpe(e,t){let n=e.telemetry?.debug||S(`BETTER_AUTH_TELEMETRY_DEBUG`,!1),r=T.BETTER_AUTH_TELEMETRY_ENDPOINT;if(!r&&!t?.customTrack)return{publish:Ape};let i=async e=>{t?.customTrack?await t.customTrack(e).catch(E.error):r&&(n?E.info(`telemetry event`,JSON.stringify(e,null,2)):await BX(r,{method:`POST`,body:e}).catch(E.error))},a=await(async()=>{let n=e.telemetry?.enabled!==void 0&&e.telemetry.enabled;return(S(`BETTER_AUTH_TELEMETRY`,!1)||n)&&(t?.skipTestCheck||!ce())})(),o;return a&&(o=await XQ(typeof e.baseURL==`string`?e.baseURL:void 0),i({type:`init`,payload:{config:await mpe(e,t),runtime:_pe(),database:await Ope(),framework:await kpe(),environment:vpe(),systemInfo:await xpe(),packageManager:hpe()},anonymousId:o})),{publish:async t=>{a&&(o||=await XQ(typeof e.baseURL==`string`?e.baseURL:void 0),await i({type:t.type,payload:t.payload,anonymousId:o}))}}}function Mpe(e){let t=new Set(e).size;return t===0?0:Math.log2(t**+e.length)}function Npe(e,t){let n=e===`better-auth-secret-12345678901234567890`;if(!ce()){if(n&&ae)throw new O("You are using the default secret. Please set `BETTER_AUTH_SECRET` in your environment variables or pass `secret` in your auth config.");if(!e)throw new O("BETTER_AUTH_SECRET is missing. Set it in your environment or pass `secret` to betterAuth({ secret }).");e.length<32&&t.warn("[better-auth] Warning: your BETTER_AUTH_SECRET should be at least 32 characters long for adequate security. Generate one with `npx auth secret` or `openssl rand -base64 32`."),Mpe(e)<120&&t.warn(`[better-auth] Warning: your BETTER_AUTH_SECRET appears low-entropy. Use a randomly generated secret for production.`)}}async function Ppe(e,t,n){let r=UW(t);r||(t=cY(t,{session:{cookieCache:{enabled:!0,strategy:`jwe`,refreshCache:!0,maxAge:t.session?.expiresIn||604800}}})),t.database||(t=cY(t,{account:{storeAccountCookie:!0}}));let i=t.plugins||[],a=TY(t),o=te(t.logger),s=vH(t.baseURL);if(vH(t.baseURL)){let{allowedHosts:e}=t.baseURL;if(!e||e.length===0)throw new O(`baseURL.allowedHosts cannot be empty. Provide at least one allowed host pattern (e.g., ["myapp.com", "*.vercel.app"]).`)}let c=s?void 0:mH(typeof t.baseURL==`string`?t.baseURL:void 0,t.basePath);!c&&!s&&o.warn(`[better-auth] Base URL is not set. Set the baseURL option or BETTER_AUTH_URL env, or use a dynamic baseURL with allowedHosts for multi-host setups. Without it the origin is derived from the incoming request, and callbacks and redirects may not work correctly.`),e.id===`memory`&&t.advanced?.database?.generateId===!1&&o.error(`[better-auth] Misconfiguration detected.
508
- You are using the memory DB with generateId: false.
509
- This will cause no id to be generated for any model.
510
- Most of the features of Better Auth will not work correctly.`);let l=t.secrets??dpe(C.BETTER_AUTH_SECRETS),u=t.secret||C.BETTER_AUTH_SECRET||C.AUTH_SECRET||``,d,f;l?(fpe(l,o),d=l[0].value,f=ppe(l,u)):(d=u||`better-auth-secret-12345678901234567890`,Npe(d,o),f=d),t={...t,secret:d,baseURL:s?t.baseURL:c?new URL(c).origin:``,basePath:t.basePath||`/api/auth`,plugins:i.concat(a)},Xfe(t,o);let m=t.advanced?.ipAddress?.trustedProxies;if(m&&m.length>0){let e=vJ(m);e.length>0&&o.warn(`Ignoring invalid \`advanced.ipAddress.trustedProxies\` entries: ${e.join(`, `)}. Each entry must be an IP address or CIDR range.`)}let h=nq(t),g=y(t),_=(await Promise.all(Object.entries(t.socialProviders||{}).map(async([e,t])=>{let n=typeof t==`function`?await t():t;if(n==null||n.enabled===!1)return null;n.clientId||o.warn(`Social provider ${e} is missing clientId or clientSecret`);let r=pQ[e](n);return r.disableImplicitSignUp=n.disableImplicitSignUp,r}))).filter(e=>e!==null),v=({model:e,size:n})=>{if(typeof t.advanced?.generateId==`function`)return t.advanced.generateId({model:e,size:n});let r=t?.advanced?.database?.generateId;return typeof r==`function`?r({model:e,size:n}):r===`uuid`?crypto.randomUUID():r===`serial`||r===!1?!1:Re(n)},{publish:b}=await jpe(t,{adapter:e.id,database:typeof t.database==`function`?`adapter`:n(t.database)}),x=new Set(t.plugins.map(e=>e.id)),S=e=>t.plugins.find(t=>t.id===e)??null,ee=e=>x.has(e),ne=await EY(t),w=await jY(t),T={appName:t.appName||`Better Auth`,baseURL:c||``,version:p(),socialProviders:_,options:t,oauthConfig:{storeStateStrategy:t.account?.storeStateStrategy||(r?`database`:`cookie`),skipStateCookieCheck:!!t.account?.skipStateCookieCheck},tables:g,trustedOrigins:ne,trustedProviders:w,isTrustedOrigin(e,t){return this.trustedOrigins.some(n=>Yq(e,n,t))},sessionConfig:{updateAge:t.session?.updateAge===void 0?86400:t.session.updateAge,expiresIn:t.session?.expiresIn||604800,freshAge:t.session?.freshAge===void 0?86400:t.session.freshAge,cookieRefreshCache:(()=>{let e=t.session?.cookieCache?.refreshCache,n=t.session?.cookieCache?.maxAge||300;return r&&e?(o.warn("[better-auth] `session.cookieCache.refreshCache` is enabled while `database` or `secondaryStorage` is configured. `refreshCache` is meant for stateless (DB-less) setups. Disabling `refreshCache` — remove it from your config to silence this warning."),!1):e===!1||e===void 0?!1:e===!0?{enabled:!0,updateAge:Math.floor(n*.2)}:{enabled:!0,updateAge:e.updateAge===void 0?Math.floor(n*.2):e.updateAge}})()},secret:d,secretConfig:f,rateLimit:{...t.rateLimit,enabled:t.rateLimit?.enabled??ae,window:t.rateLimit?.window||10,max:t.rateLimit?.max||100,storage:t.rateLimit?.storage||(t.secondaryStorage?`secondary-storage`:`memory`)},authCookies:h,logger:o,generateId:v,session:null,secondaryStorage:t.secondaryStorage,password:{hash:t.emailAndPassword?.password?.hash||TU,verify:t.emailAndPassword?.password?.verify||EU,config:{minPasswordLength:t.emailAndPassword?.minPasswordLength||8,maxPasswordLength:t.emailAndPassword?.maxPasswordLength||128},checkPassword:wfe},setNewSession(e){this.newSession=e},newSession:null,adapter:e,internalAdapter:iY(e,{options:t,logger:o,hooks:t.databaseHooks?[{source:`user`,hooks:t.databaseHooks}]:[],generateId:v}),createAuthCookie:tq(t),async runMigrations(){throw new O(`runMigrations will be set by the specific init implementation`)},publishTelemetry:b,skipCSRFCheck:!!t.advanced?.disableCSRFCheck,skipOriginCheck:t.advanced?.disableOriginCheck===void 0?!!ce():t.advanced.disableOriginCheck,runInBackground:t.advanced?.backgroundTasks?.handler??(e=>{e.catch(()=>{})}),async runInBackgroundOrAwait(e){try{t.advanced?.backgroundTasks?.handler?e instanceof Promise&&t.advanced.backgroundTasks.handler(e.catch(e=>{o.error(`Failed to run background task:`,e)})):await e}catch(e){o.error(`Failed to run background task:`,e)}},getPlugin:S,hasPlugin:ee},re=wY(T);return fG(re)&&await re,T.checkSchema=Fe(T.adapter),T.explicitSchemaCheck=oee(T.adapter),T}const Fpe=async e=>{let t=await Ppe(await $fe(e),e,e=>o(e)||`unknown`);return t.runMigrations=async function(){if(!e.database||`updateMany`in e.database)throw new O(`Database is not provided or it's an adapter. Migrations are only supported with a database instance.`);let{runMigrations:t}=await BQ(e);await t()},t},Ipe=(e,t)=>{let n=t(e).then(e=>{let t=e.options.advanced?.database?.validateSchema;if(!e.checkSchema&&t!==!1){let n=t===!0?`warn`:`debug`;e.logger[n](`Schema validation is not available for adapter "${e.adapter.id}". Skipping schema validation. Database operations will proceed normally.`)}let n=e.checkSchema?.();return n&&n.catch(t=>{e.logger.error(t instanceof cee?t.message:`Could not validate the database schema. Check your database connection.`)}),e}),{api:r}=PQ(n,e),i=e.plugins?.reduce((e,t)=>t.$ERROR_CODES?{...e,...t.$ERROR_CODES}:e,{}),a=async t=>{let r=await n,i=r.options.basePath||`/api/auth`,a;if(vH(e.baseURL))a=await kY(r,t,OY(r.options));else{a=Object.create(Object.getPrototypeOf(r),Object.getOwnPropertyDescriptors(r));let e=r.options;if(!r.options.baseURL){let n=mH(void 0,i,t,void 0,r.options.advanced?.trustedProxyHeaders);if(!n)throw new O(`Could not get base URL from request. Please provide a valid base URL.`);a.baseURL=n,a.options={...r.options,baseURL:hH(n)||void 0},e=a.options}a.trustedOrigins=await EY(e,t),a.trustedProviders=await jY(e,t)}let{handler:o}=Zfe(a,e);return eH(a.adapter,()=>o(t))};return{handler:a,fetch:a,api:r,options:e,$context:n,$ERROR_CODES:{...i,...Y}}},Lpe=e=>Ipe(e,Fpe),ZQ=ZV({INVALID_METADATA_TYPE:`metadata must be an object or undefined`,REFILL_AMOUNT_AND_INTERVAL_REQUIRED:`refillAmount is required when refillInterval is provided`,REFILL_INTERVAL_AND_AMOUNT_REQUIRED:`refillInterval is required when refillAmount is provided`,USER_BANNED:`User is banned`,UNAUTHORIZED_SESSION:`Unauthorized or invalid session`,KEY_NOT_FOUND:`API Key not found`,KEY_DISABLED:`API Key is disabled`,KEY_EXPIRED:`API Key has expired`,USAGE_EXCEEDED:`API Key has reached its usage limit`,KEY_NOT_RECOVERABLE:`API Key is not recoverable`,EXPIRES_IN_IS_TOO_SMALL:`The expiresIn is smaller than the predefined minimum value.`,EXPIRES_IN_IS_TOO_LARGE:`The expiresIn is larger than the predefined maximum value.`,INVALID_REMAINING:`The remaining count is either too large or too small.`,INVALID_PREFIX_LENGTH:`The prefix length is either too large or too small.`,INVALID_NAME_LENGTH:`The name length is either too large or too small.`,METADATA_DISABLED:`Metadata is disabled.`,RATE_LIMIT_EXCEEDED:`Rate limit exceeded.`,NO_VALUES_TO_UPDATE:`No values to update.`,KEY_DISABLED_EXPIRATION:`Custom key expiration values are disabled.`,INVALID_API_KEY:`Invalid API key.`,INVALID_USER_ID_FROM_API_KEY:`The user id from the API key is invalid.`,INVALID_REFERENCE_ID_FROM_API_KEY:`The reference id from the API key is invalid.`,INVALID_API_KEY_GETTER_RETURN_TYPE:`API Key getter returned an invalid key type. Expected string.`,SERVER_ONLY_PROPERTY:`The property you're trying to set can only be set from the server auth instance only.`,FAILED_TO_UPDATE_API_KEY:`Failed to update API key`,NAME_REQUIRED:`API Key name is required.`,ORGANIZATION_ID_REQUIRED:`Organization ID is required for organization-owned API keys.`,USER_NOT_MEMBER_OF_ORGANIZATION:`You are not a member of the organization that owns this API key.`,INSUFFICIENT_API_KEY_PERMISSIONS:`You do not have permission to perform this action on organization API keys.`,NO_DEFAULT_API_KEY_CONFIGURATION_FOUND:`No default api-key configuration found.`,ORGANIZATION_PLUGIN_REQUIRED:`Organization plugin is required for organization-owned API keys. Please install and configure the organization plugin.`});async function QQ(e,t,n){let r=e.length;if(r===0)return[];let{signal:i}=n;if(i?.aborted)throw i.reason;let a=Math.floor(n.concurrency),o=Math.min(r,a>=1?a:1),s=Array(r),c=0,l=!1;return await Promise.all(Array.from({length:o},async()=>{for(;!l&&c<r;){if(i?.aborted)throw i.reason;let n=c++;try{s[n]=await t(e[n],n)}catch(e){throw l=!0,e}}})),s}const Rpe={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},zpe=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,$Q={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:1/0,"-infinity":-1/0},Bpe=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function Vpe(e){return e instanceof Date&&!isNaN(e.getTime())}function Hpe(e){let t=Bpe.exec(e);if(!t)return null;let[,n,r,i,a,o,s,c,l,u,d]=t,f=new Date(Date.UTC(parseInt(n,10),parseInt(r,10)-1,parseInt(i,10),parseInt(a,10),parseInt(o,10),parseInt(s,10),c?parseInt(c.padEnd(3,`0`),10):0));if(l){let e=(parseInt(u,10)*60+parseInt(d,10))*(l===`+`?-1:1);f.setUTCMinutes(f.getUTCMinutes()+e)}return Vpe(f)?f:null}function Upe(e,t={}){let{strict:n=!1,warnings:r=!1,reviver:i,parseDates:a=!0}=t;if(typeof e!=`string`)return e;let o=e.trim(),s=o.toLowerCase();if(s.length<=9&&s in $Q)return $Q[s];if(!zpe.test(o)){if(n)throw SyntaxError(`[better-json] Invalid JSON`);return e}if(Object.entries(Rpe).some(([e,t])=>{let n=t.test(o);return n&&r&&console.warn(`[better-json] Detected potential prototype pollution attempt using ${e} pattern`),n})&&n)throw Error(`[better-json] Potential prototype pollution attempt detected`);try{return JSON.parse(o,(e,t)=>{if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)r&&console.warn(`[better-json] Dropping "${e}" key to prevent prototype pollution`);else{if(a&&typeof t==`string`){let e=Hpe(t);if(e)return e}return i?i(e,t):t}})}catch(t){if(n)throw t;return e}}function Wpe(e,t={strict:!0}){return Upe(e,t)}function e$(e){return e==null?null:typeof e==`object`?e:w(e)}function t$(e){return e!=null&&typeof e==`string`}async function Gpe(e,t,n){if(n.storage!==`database`&&!n.fallbackToDatabase)return;let r=t.filter(e=>t$(e.metadata));if(r.length===0)return;let i=r.map(async t=>{let n=e$(t.metadata);try{await e.context.adapter.update({model:`apikey`,where:[{field:`id`,value:t.id}],update:{metadata:n}})}catch(n){e.context.logger.warn(`Failed to migrate double-stringified metadata for API key ${t.id}:`,n)}});await Promise.all(i)}async function n$(e,t,n){let r=e$(t.metadata);if(t$(t.metadata)&&(n.storage===`database`||n.fallbackToDatabase))try{await e.context.adapter.update({model:`apikey`,where:[{field:`id`,value:t.id}],update:{metadata:r}})}catch(n){e.context.logger.warn(`Failed to migrate double-stringified metadata for API key ${t.id}:`,n)}return r}function r$(e){return`api-key:${e}`}function i$(e){return`api-key:by-id:${e}`}function a$(e){return`api-key:by-ref:${e}`}function Kpe(e){return JSON.stringify({...e,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString(),expiresAt:e.expiresAt?.toISOString()??null,lastRefillAt:e.lastRefillAt?.toISOString()??null,lastRequest:e.lastRequest?.toISOString()??null})}function o$(e){if(!e||typeof e!=`string`)return null;try{let t=JSON.parse(e);return{...t,createdAt:new Date(t.createdAt),updatedAt:new Date(t.updatedAt),expiresAt:t.expiresAt?new Date(t.expiresAt):null,lastRefillAt:t.lastRefillAt?new Date(t.lastRefillAt):null,lastRequest:t.lastRequest?new Date(t.lastRequest):null}}catch{return null}}function s$(e,t){return t.customStorage?t.customStorage:e.context.secondaryStorage||null}function c$(e){if(e.expiresAt){let t=Date.now(),n=new Date(e.expiresAt).getTime(),r=Math.floor((n-t)/1e3);if(r>0)return r}}async function l$(e,t,n){let r=r$(t);return o$(await n.get(r))}async function u$(e,t,n){let r=i$(t);return o$(await n.get(r))}const d$=/* @__PURE__ */ new Map;function qpe(e,t){let n=(d$.get(e)??Promise.resolve()).then(t,t).finally(()=>{d$.get(e)===n&&d$.delete(e)});return d$.set(e,n),n}async function f$(e,t,n){await qpe(t,async()=>{let r=await e.get(t),i=[];if(r&&typeof r==`string`)try{i=JSON.parse(r)}catch{i=[]}else Array.isArray(r)&&(i=r);let a=n(i);a.length===0?await e.delete(t):await e.set(t,JSON.stringify(a))})}async function p$(e,t,n,r,i){let a=Kpe(t),o=a$(t.referenceId);i.fallbackToDatabase?await Promise.all([n.set(r$(t.key),a,r),n.set(i$(t.id),a,r),n.delete(o)]):(await Promise.all([n.set(r$(t.key),a,r),n.set(i$(t.id),a,r)]),await f$(n,o,e=>e.includes(t.id)?e:[...e,t.id]))}async function Jpe(e,t,n,r){let i=a$(t.referenceId);r.fallbackToDatabase?await Promise.all([n.delete(r$(t.key)),n.delete(i$(t.id)),n.delete(i)]):await Promise.all([n.delete(r$(t.key)),n.delete(i$(t.id)),f$(n,i,e=>e.filter(e=>e!==t.id))])}async function m$(e,t,n){let r=s$(e,n);if(n.storage===`database`)return await e.context.adapter.findOne({model:`apikey`,where:[{field:`key`,value:t}]});if(n.storage===`secondary-storage`&&n.fallbackToDatabase){if(r){let n=await l$(e,t,r);if(n)return n}let i=await e.context.adapter.findOne({model:`apikey`,where:[{field:`key`,value:t}]});return i&&r&&await p$(e,i,r,c$(i),n),i}return n.storage===`secondary-storage`?r?await l$(e,t,r):null:await e.context.adapter.findOne({model:`apikey`,where:[{field:`key`,value:t}]})}async function h$(e,t,n){let r=s$(e,n);if(n.storage===`database`)return await e.context.adapter.findOne({model:`apikey`,where:[{field:`id`,value:t}]});if(n.storage===`secondary-storage`&&n.fallbackToDatabase){if(r){let n=await u$(e,t,r);if(n)return n}let i=await e.context.adapter.findOne({model:`apikey`,where:[{field:`id`,value:t}]});return i&&r&&await p$(e,i,r,c$(i),n),i}return n.storage===`secondary-storage`?r?await u$(e,t,r):null:await e.context.adapter.findOne({model:`apikey`,where:[{field:`id`,value:t}]})}async function g$(e,t,n){let r=s$(e,n),i=c$(t);if(n.storage!==`database`&&n.storage===`secondary-storage`){if(!r)throw Error(`Secondary storage is required when storage mode is 'secondary-storage'`);await p$(e,t,r,i,n)}}async function _$(e,t,n){let r=s$(e,n);if(n.storage!==`database`&&n.storage===`secondary-storage`){if(!r)throw Error(`Secondary storage is required when storage mode is 'secondary-storage'`);await Jpe(e,t,r,n)}}function v$(e,t,n,r,i){let a=[...e];if(t){let e=n||`asc`;a.sort((n,r)=>{let i=n[t],a=r[t];return i==null&&a==null?0:i==null?e===`asc`?-1:1:a==null?e===`asc`?1:-1:i<a?e===`asc`?-1:1:i>a?e===`asc`?1:-1:0})}return i!==void 0&&(a=a.slice(i)),r!==void 0&&(a=a.slice(0,r)),a}async function y$(e,t,n,r){let i=s$(e,n),{limit:a,offset:o,sortBy:s,sortDirection:c}=r||{};if(n.storage===`database`){let[n,r]=await Promise.all([e.context.adapter.findMany({model:`apikey`,where:[{field:`referenceId`,value:t}],limit:a,offset:o,sortBy:s?{field:s,direction:c||`asc`}:void 0}),e.context.adapter.count({model:`apikey`,where:[{field:`referenceId`,value:t}]})]);return{apiKeys:n,total:r}}if(n.storage===`secondary-storage`&&n.fallbackToDatabase){let r=a$(t);if(i){let t=await i.get(r),n=[];if(t&&typeof t==`string`)try{n=JSON.parse(t)}catch{n=[]}else Array.isArray(t)&&(n=t);if(n.length>0){let t=(await QQ(n,t=>u$(e,t,i),{concurrency:10})).filter(e=>e!=null);return{apiKeys:v$(t,s,c,a,o),total:t.length}}}let[l,u]=await Promise.all([e.context.adapter.findMany({model:`apikey`,where:[{field:`referenceId`,value:t}],limit:a,offset:o,sortBy:s?{field:s,direction:c||`asc`}:void 0}),e.context.adapter.count({model:`apikey`,where:[{field:`referenceId`,value:t}]})]);if(i&&l.length>0){await QQ(l,t=>p$(e,t,i,c$(t),n),{concurrency:10});let t=l.map(e=>e.id);await i.set(r,JSON.stringify(t))}return{apiKeys:l,total:u}}if(n.storage===`secondary-storage`){if(!i)return{apiKeys:[],total:0};let n=a$(t),r=await i.get(n),l=[];if(r&&typeof r==`string`)try{l=JSON.parse(r)}catch{return{apiKeys:[],total:0}}else if(Array.isArray(r))l=r;else return{apiKeys:[],total:0};let u=(await QQ(l,t=>u$(e,t,i),{concurrency:10})).filter(e=>e!=null);return{apiKeys:v$(u,s,c,a,o),total:u.length}}let[l,u]=await Promise.all([e.context.adapter.findMany({model:`apikey`,where:[{field:`referenceId`,value:t}],limit:a,offset:o,sortBy:s?{field:s,direction:c||`asc`}:void 0}),e.context.adapter.count({model:`apikey`,where:[{field:`referenceId`,value:t}]})]);return{apiKeys:l,total:u}}function Ype(e){let t=e.context;if(`orgOptions`in t&&t.orgOptions)return t.orgOptions;let n=t.getPlugin?.(`organization`);return n&&`options`in n?n.options:null}async function b$(e,t,n,r){let i=Ype(e);if(!i){let e=ZQ.ORGANIZATION_PLUGIN_REQUIRED;throw D.from(`INTERNAL_SERVER_ERROR`,e)}let a=await e.context.adapter.findOne({model:`member`,where:[{field:`userId`,value:t},{field:`organizationId`,value:n}]});if(!a){let e=ZQ.USER_NOT_MEMBER_OF_ORGANIZATION;throw D.from(`FORBIDDEN`,e)}if(!await Xpe(e,a.role,n,r,i)){let e=ZQ.INSUFFICIENT_API_KEY_PERMISSIONS;throw D.from(`FORBIDDEN`,e)}return a}async function Xpe(e,t,n,r,i){let{hasPermission:a}=await import(`./organization-VcDBDp0C.mjs`);try{return await a({role:t,options:i,permissions:{apiKey:[r]},organizationId:n,allowCreatorAllPermissions:!0},e)}catch{return!1}}const x$=(e,t=`ms`)=>new Date(Date.now()+(t===`sec`?e*1e3:e));function Zpe(e){return e instanceof D||e instanceof D||e?.name===`APIError`}const Qpe=j({configId:A().meta({description:`The configuration ID to use for the API key. If not provided, the default configuration will be used.`}).optional(),name:A().meta({description:`Name of the Api Key`}).optional(),expiresIn:ge().meta({description:`Expiration time of the Api Key in seconds`}).min(1).optional().nullable().default(null),prefix:A().meta({description:`Prefix of the Api Key`}).regex(/^[a-zA-Z0-9_-]+$/,{message:`Invalid prefix format, must be alphanumeric and contain only underscores and hyphens.`}).optional(),remaining:ge().meta({description:`Remaining number of requests. Server side only`}).min(0).optional().nullable().default(null),metadata:ke().optional(),refillAmount:ge().meta({description:`Amount to refill the remaining count of the Api Key. server-only. Eg: 100`}).min(1).optional(),refillInterval:ge().meta({description:`Interval to refill the Api Key in milliseconds. server-only. Eg: 1000`}).optional(),rateLimitTimeWindow:ge().meta({description:"The duration in milliseconds where each request is counted. Once the `maxRequests` is reached, the request will be rejected until the `timeWindow` has passed, at which point the `timeWindow` will be reset. server-only. Eg: 1000"}).optional(),rateLimitMax:ge().meta({description:"Maximum amount of requests allowed within a window. Once the `maxRequests` is reached, the request will be rejected until the `timeWindow` has passed, at which point the `timeWindow` will be reset. server-only. Eg: 100"}).optional(),rateLimitEnabled:Te().meta({description:`Whether the key has rate limiting enabled. server-only. Eg: true`}).optional(),permissions:ve(A(),ye(A())).meta({description:`Permissions of the Api Key.`}).optional(),userId:KW().meta({description:`User Id of the user that the Api Key belongs to. server-only. Eg: "user-id"`}).optional(),organizationId:KW().meta({description:`Organization Id of the organization that the Api Key belongs to. Eg: 'org-id'`}).optional()});function $pe({defaultKeyGenerator:e,configurations:t,schema:n,deleteAllExpiredApiKeys:r}){return X(`/api-key/create`,{method:`POST`,body:Qpe,metadata:{openapi:{description:`Create a new API key for a user`,responses:{200:{description:`API key created successfully`,content:{"application/json":{schema:{type:`object`,properties:{id:{type:`string`,description:`Unique identifier of the API key`},createdAt:{type:`string`,format:`date-time`,description:`Creation timestamp`},updatedAt:{type:`string`,format:`date-time`,description:`Last update timestamp`},name:{type:`string`,nullable:!0,description:`Name of the API key`},prefix:{type:`string`,nullable:!0,description:`Prefix of the API key`},start:{type:`string`,nullable:!0,description:`Starting characters of the key (if configured)`},key:{type:`string`,description:`The full API key (only returned on creation)`},enabled:{type:`boolean`,description:`Whether the key is enabled`},expiresAt:{type:`string`,format:`date-time`,nullable:!0,description:`Expiration timestamp`},referenceId:{type:`string`,description:`ID of the reference owning the key`},lastRefillAt:{type:`string`,format:`date-time`,nullable:!0,description:`Last refill timestamp`},lastRequest:{type:`string`,format:`date-time`,nullable:!0,description:`Last request timestamp`},metadata:{type:`object`,nullable:!0,additionalProperties:!0,description:`Metadata associated with the key`},rateLimitMax:{type:`number`,nullable:!0,description:`Maximum requests in time window`},rateLimitTimeWindow:{type:`number`,nullable:!0,description:`Rate limit time window in milliseconds`},remaining:{type:`number`,nullable:!0,description:`Remaining requests`},refillAmount:{type:`number`,nullable:!0,description:`Amount to refill`},refillInterval:{type:`number`,nullable:!0,description:`Refill interval in milliseconds`},rateLimitEnabled:{type:`boolean`,description:`Whether rate limiting is enabled`},requestCount:{type:`number`,description:`Current request count in window`},permissions:{type:`object`,nullable:!0,additionalProperties:{type:`array`,items:{type:`string`}},description:`Permissions associated with the key`}},required:[`id`,`createdAt`,`updatedAt`,`key`,`enabled`,`referenceId`,`rateLimitEnabled`,`requestCount`]}}}}}}}},async n=>{let{configId:i,name:a,expiresIn:o,prefix:s,remaining:c,metadata:l,refillAmount:u,refillInterval:d,permissions:f,rateLimitMax:p,rateLimitTimeWindow:m,rateLimitEnabled:h}=n.body,g=T$(n.context,t,i),_=g.customKeyGenerator||e,v=await zJ(n,{disableCookieCache:!0}),y=n.request||n.headers;if(y&&(u!==void 0||d!==void 0||p!==void 0||m!==void 0||h!==void 0||f!==void 0||c!==null))throw D.from(`BAD_REQUEST`,ZQ.SERVER_ONLY_PROPERTY);if(n.request&&n.body.userId!==void 0)throw D.from(`UNAUTHORIZED`,ZQ.UNAUTHORIZED_SESSION);let b=g.references??`user`,x;if(b===`organization`){let e=n.body.organizationId;if(!e){let e=ZQ.ORGANIZATION_ID_REQUIRED;throw D.from(`BAD_REQUEST`,e)}let t=v?.user.id||n.body.userId;if(!t)throw D.from(`UNAUTHORIZED`,ZQ.UNAUTHORIZED_SESSION);await b$(n,t,e,`create`),x=e}else if(y){if(!v?.user.id){let e=ZQ.UNAUTHORIZED_SESSION;throw D.from(`UNAUTHORIZED`,e)}x=v.user.id}else{let e=n.body.userId,t=v?.user.id;if(!t&&!e||v&&e&&t!==e){let e=ZQ.UNAUTHORIZED_SESSION;throw D.from(`UNAUTHORIZED`,e)}x=t||e}if(l){if(g.enableMetadata===!1)throw D.from(`BAD_REQUEST`,ZQ.METADATA_DISABLED);if(typeof l!=`object`)throw D.from(`BAD_REQUEST`,ZQ.INVALID_METADATA_TYPE)}if(u&&!d){let e=ZQ.REFILL_AMOUNT_AND_INTERVAL_REQUIRED;throw D.from(`BAD_REQUEST`,e)}if(d&&!u){let e=ZQ.REFILL_INTERVAL_AND_AMOUNT_REQUIRED;throw D.from(`BAD_REQUEST`,e)}if(o){if(g.keyExpiration.disableCustomExpiresTime===!0){let e=ZQ.KEY_DISABLED_EXPIRATION;throw D.from(`BAD_REQUEST`,e)}let e=o/86400;if(g.keyExpiration.minExpiresIn>e){let e=ZQ.EXPIRES_IN_IS_TOO_SMALL;throw D.from(`BAD_REQUEST`,e)}if(g.keyExpiration.maxExpiresIn<e){let e=ZQ.EXPIRES_IN_IS_TOO_LARGE;throw D.from(`BAD_REQUEST`,e)}}if(s&&(s.length<g.minimumPrefixLength||s.length>g.maximumPrefixLength))throw D.from(`BAD_REQUEST`,ZQ.INVALID_PREFIX_LENGTH);if(a){if(a.length<g.minimumNameLength||a.length>g.maximumNameLength)throw D.from(`BAD_REQUEST`,ZQ.INVALID_NAME_LENGTH)}else if(g.requireName)throw D.from(`BAD_REQUEST`,ZQ.NAME_REQUIRED);r(n.context);let S=await _({length:g.defaultKeyLength,prefix:s||g.defaultPrefix}),ee=g.disableKeyHashing?S:await A$(S),te=null;g.startingCharactersConfig.shouldStore&&(te=S.substring(0,g.startingCharactersConfig.charactersLength));let C=g.permissions?.defaultPermissions?typeof g.permissions.defaultPermissions==`function`?await g.permissions.defaultPermissions(x,n):g.permissions.defaultPermissions:void 0,ne=f?JSON.stringify(f):C?JSON.stringify(C):void 0,T={configId:g.configId??`default`,createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,name:a??null,prefix:s??g.defaultPrefix??null,start:te,key:ee,enabled:!0,expiresAt:o?x$(o,`sec`):g.keyExpiration.defaultExpiresIn?x$(g.keyExpiration.defaultExpiresIn,`sec`):null,referenceId:x,lastRefillAt:null,lastRequest:null,metadata:null,rateLimitMax:p??g.rateLimit.maxRequests??null,rateLimitTimeWindow:m??g.rateLimit.timeWindow??null,remaining:c===null?c:c??u??null,refillAmount:u??null,refillInterval:d??null,rateLimitEnabled:h===void 0?g.rateLimit.enabled??!0:h,requestCount:0,permissions:ne};l&&(T.metadata=l);let re;if(g.storage===`secondary-storage`&&g.fallbackToDatabase)re=await n.context.adapter.create({model:j$,data:T}),await g$(n,re,g);else if(g.storage===`secondary-storage`){let e=n.context.generateId({model:`apikey`})||Re();re={...T,id:e},await g$(n,re,g)}else re=await n.context.adapter.create({model:j$,data:T});return n.json({...re,key:S,metadata:l??null,permissions:re.permissions?w(re.permissions):null})})}function eme({deleteAllExpiredApiKeys:e}){return X.serverOnly({method:`POST`},async t=>{try{await e(t.context,!0)}catch(e){return t.context.logger.error(`[API KEY PLUGIN] Failed to delete expired API keys:`,e),t.json({success:!1,error:e})}return t.json({success:!0,error:null})})}const tme=j({configId:A().meta({description:`The configuration ID to use for the API key lookup. If not provided, the default configuration will be used.`}).optional(),keyId:A().meta({description:`The id of the Api Key`})});function nme({configurations:e,schema:t,deleteAllExpiredApiKeys:n}){return X(`/api-key/delete`,{method:`POST`,body:tme,use:[VJ],metadata:{openapi:{description:`Delete an existing API key`,requestBody:{content:{"application/json":{schema:{type:`object`,properties:{keyId:{type:`string`,description:`The id of the API key to delete`}},required:[`keyId`]}}}},responses:{200:{description:`API key deleted successfully`,content:{"application/json":{schema:{type:`object`,properties:{success:{type:`boolean`,description:`Indicates if the API key was successfully deleted`}},required:[`success`]}}}}}}}},async t=>{let{configId:r,keyId:i}=t.body,a=t.context.session;if(a.user.banned===!0)throw D.from(`UNAUTHORIZED`,ZQ.USER_BANNED);let o=T$(t.context,e,r),s=null;if(s=await h$(t,i,o),!s||!D$(s.configId,o.configId))throw D.from(`NOT_FOUND`,ZQ.KEY_NOT_FOUND);let c=T$(t.context,e,s.configId);if((c.references??`user`)===`organization`)await b$(t,a.user.id,s.referenceId,`delete`);else if(s.referenceId!==a.user.id)throw D.from(`NOT_FOUND`,ZQ.KEY_NOT_FOUND);try{c.storage===`secondary-storage`&&c.fallbackToDatabase?(await _$(t,s,c),await t.context.adapter.delete({model:j$,where:[{field:`id`,value:s.id}]})):c.storage===`database`?await t.context.adapter.delete({model:j$,where:[{field:`id`,value:s.id}]}):await _$(t,s,c)}catch(e){throw D.fromStatus(`INTERNAL_SERVER_ERROR`,{message:e?.message})}return n(t.context),t.json({success:!0})})}const rme=j({configId:A().meta({description:`The configuration ID to use for the API key lookup. If not provided, the default configuration will be used.`}).optional(),id:A().meta({description:`The id of the Api Key`})});function ime({configurations:e,schema:t,deleteAllExpiredApiKeys:n}){return X(`/api-key/get`,{method:`GET`,query:rme,use:[VJ],metadata:{openapi:{description:`Retrieve an existing API key by ID`,responses:{200:{description:`API key retrieved successfully`,content:{"application/json":{schema:{type:`object`,properties:{id:{type:`string`,description:`ID`},name:{type:`string`,nullable:!0,description:`The name of the key`},start:{type:`string`,nullable:!0,description:`Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key.`},prefix:{type:`string`,nullable:!0,description:`The API Key prefix. Stored as plain text.`},userId:{type:`string`,description:`The owner of the user id`},refillInterval:{type:`number`,nullable:!0,description:"The interval in milliseconds between refills of the `remaining` count. Example: 3600000 // refill every hour (3600000ms = 1h)"},refillAmount:{type:`number`,nullable:!0,description:`The amount to refill`},lastRefillAt:{type:`string`,format:`date-time`,nullable:!0,description:`The last refill date`},enabled:{type:`boolean`,description:`Sets if key is enabled or disabled`,default:!0},rateLimitEnabled:{type:`boolean`,description:`Whether the key has rate limiting enabled`},rateLimitTimeWindow:{type:`number`,nullable:!0,description:`The duration in milliseconds`},rateLimitMax:{type:`number`,nullable:!0,description:`Maximum amount of requests allowed within a window`},requestCount:{type:`number`,description:`The number of requests made within the rate limit time window`},remaining:{type:`number`,nullable:!0,description:`Remaining requests (every time api key is used this should updated and should be updated on refill as well)`},lastRequest:{type:`string`,format:`date-time`,nullable:!0,description:`When last request occurred`},expiresAt:{type:`string`,format:`date-time`,nullable:!0,description:`Expiry date of a key`},createdAt:{type:`string`,format:`date-time`,description:`created at`},updatedAt:{type:`string`,format:`date-time`,description:`updated at`},metadata:{type:`object`,nullable:!0,additionalProperties:!0,description:`Extra metadata about the apiKey`},permissions:{type:`string`,nullable:!0,description:`Permissions for the api key (stored as JSON string)`}},required:[`id`,`userId`,`enabled`,`rateLimitEnabled`,`requestCount`,`createdAt`,`updatedAt`]}}}}}}}},async t=>{let{configId:r,id:i}=t.query,a=t.context.session,o=T$(t.context,e,r),s=null;if(s=await h$(t,i,o),!s||!D$(s.configId,o.configId))throw D.from(`NOT_FOUND`,ZQ.KEY_NOT_FOUND);let c=T$(t.context,e,s.configId);if((c.references??`user`)===`organization`)await b$(t,a.user.id,s.referenceId,`read`);else if(s.referenceId!==a.user.id)throw D.from(`NOT_FOUND`,ZQ.KEY_NOT_FOUND);n(t.context);let l=await n$(t,s,c),{key:u,...d}=s;return t.json({...d,metadata:l,permissions:d.permissions?w(d.permissions):null})})}function ame(e){return e.storage===`database`?`database`:e.customStorage?`custom:${e.configId??`default`}`:e.fallbackToDatabase?`secondary-storage-with-fallback`:`secondary-storage`}const ome=j({configId:A().meta({description:`Filter by configuration ID. If not provided, returns keys from all configurations.`}).optional(),organizationId:A().meta({description:`Organization ID to list keys for. If provided, returns organization-owned keys. If not provided, returns user-owned keys.`}).optional(),limit:qW().int().nonnegative().meta({description:`The number of API keys to return`}).optional(),offset:qW().int().nonnegative().meta({description:`The offset to start from`}).optional(),sortBy:A().meta({description:`The field to sort by (e.g., createdAt, name, expiresAt)`}).optional(),sortDirection:De([`asc`,`desc`]).meta({description:`The direction to sort by`}).optional()}).optional();function sme({configurations:e,schema:t,deleteAllExpiredApiKeys:n}){return X(`/api-key/list`,{method:`GET`,use:[VJ],query:ome,metadata:{openapi:{description:`List all API keys for the authenticated user or for a specific organization`,responses:{200:{description:`API keys retrieved successfully`,content:{"application/json":{schema:{type:`object`,properties:{apiKeys:{type:`array`,items:{type:`object`,properties:{id:{type:`string`,description:`ID`},name:{type:`string`,nullable:!0,description:`The name of the key`},start:{type:`string`,nullable:!0,description:`Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key.`},prefix:{type:`string`,nullable:!0,description:`The API Key prefix. Stored as plain text.`},userId:{type:`string`,description:`The owner of the user id`},refillInterval:{type:`number`,nullable:!0,description:"The interval in milliseconds between refills of the `remaining` count. Example: 3600000 // refill every hour (3600000ms = 1h)"},refillAmount:{type:`number`,nullable:!0,description:`The amount to refill`},lastRefillAt:{type:`string`,format:`date-time`,nullable:!0,description:`The last refill date`},enabled:{type:`boolean`,description:`Sets if key is enabled or disabled`,default:!0},rateLimitEnabled:{type:`boolean`,description:`Whether the key has rate limiting enabled`},rateLimitTimeWindow:{type:`number`,nullable:!0,description:`The duration in milliseconds`},rateLimitMax:{type:`number`,nullable:!0,description:`Maximum amount of requests allowed within a window`},requestCount:{type:`number`,description:`The number of requests made within the rate limit time window`},remaining:{type:`number`,nullable:!0,description:`Remaining requests (every time api key is used this should updated and should be updated on refill as well)`},lastRequest:{type:`string`,format:`date-time`,nullable:!0,description:`When last request occurred`},expiresAt:{type:`string`,format:`date-time`,nullable:!0,description:`Expiry date of a key`},createdAt:{type:`string`,format:`date-time`,description:`created at`},updatedAt:{type:`string`,format:`date-time`,description:`updated at`},metadata:{type:`object`,nullable:!0,additionalProperties:!0,description:`Extra metadata about the apiKey`},permissions:{type:`string`,nullable:!0,description:`Permissions for the api key (stored as JSON string)`}},required:[`id`,`userId`,`enabled`,`rateLimitEnabled`,`requestCount`,`createdAt`,`updatedAt`]}},total:{type:`number`,description:`Total number of API keys`},limit:{type:`number`,nullable:!0,description:`The limit used for pagination`},offset:{type:`number`,nullable:!0,description:`The offset used for pagination`}},required:[`apiKeys`,`total`]}}}}}}}},async t=>{let r=t.context.session,i=t.query?.configId,a=t.query?.organizationId,o=t.query?.limit==null?void 0:Number(t.query.limit),s=t.query?.offset==null?void 0:Number(t.query.offset);a&&await b$(t,r.user.id,a,`read`);let c=a??r.user.id,l=a?`organization`:`user`,u=[];if(i){let{apiKeys:n}=await y$(t,c,T$(t.context,e,i),{limit:void 0,offset:void 0,sortBy:t.query?.sortBy,sortDirection:t.query?.sortDirection});u=n}else{let n=/* @__PURE__ */ new Map;for(let t of e){let e=ame(t);n.has(e)||n.set(e,t)}let r=await Promise.all([...n.values()].map(e=>y$(t,c,e,{limit:void 0,offset:void 0,sortBy:t.query?.sortBy,sortDirection:t.query?.sortDirection}))),i=/* @__PURE__ */ new Set;for(let{apiKeys:e}of r)for(let t of e)i.has(t.id)||(i.add(t.id),u.push(t))}let d=u.filter(t=>(e.find(e=>E$(t.configId)?E$(e.configId):e.configId===t.configId)?.references??`user`)===l&&t.referenceId===c);i&&(d=d.filter(e=>D$(e.configId,i)));let f=d.length,p=d;s!==void 0&&(p=p.slice(s)),o!==void 0&&(p=p.slice(0,o)),n(t.context);let m=p.map(e=>{let{key:t,...n}=e;return{...n,metadata:e$(e.metadata),permissions:n.permissions?w(n.permissions):null}}),h=e.find(e=>e.storage===`database`||e.fallbackToDatabase);return h&&await t.context.runInBackgroundOrAwait(Gpe(t,p,h)),t.json({apiKeys:m,total:f,limit:o,offset:s})})}const cme=j({configId:A().meta({description:`The configuration ID to use for the API key lookup. If not provided, the default configuration will be used.`}).optional(),keyId:A().meta({description:`The id of the Api Key`}),userId:KW().meta({description:`The id of the user which the api key belongs to. server-only. Eg: "some-user-id"`}).optional(),name:A().meta({description:`The name of the key`}).optional(),enabled:Te().meta({description:`Whether the Api Key is enabled or not`}).optional(),remaining:ge().meta({description:`The number of remaining requests`}).min(1).optional(),refillAmount:ge().meta({description:`The refill amount`}).optional(),refillInterval:ge().meta({description:`The refill interval`}).optional(),metadata:ke().optional(),expiresIn:ge().meta({description:`Expiration time of the Api Key in seconds`}).min(1).optional().nullable(),rateLimitEnabled:Te().meta({description:`Whether the key has rate limiting enabled.`}).optional(),rateLimitTimeWindow:ge().meta({description:`The duration in milliseconds where each request is counted. server-only. Eg: 1000`}).optional(),rateLimitMax:ge().meta({description:"Maximum amount of requests allowed within a window. Once the `maxRequests` is reached, the request will be rejected until the `timeWindow` has passed, at which point the `timeWindow` will be reset. server-only. Eg: 100"}).optional(),permissions:ve(A(),ye(A())).meta({description:`Update the permissions on the API Key. server-only.`}).optional().nullable()});function lme({configurations:e,schema:t,deleteAllExpiredApiKeys:n}){return X(`/api-key/update`,{method:`POST`,body:cme,metadata:{openapi:{description:`Update an existing API key by ID`,responses:{200:{description:`API key updated successfully`,content:{"application/json":{schema:{type:`object`,properties:{id:{type:`string`,description:`ID`},name:{type:`string`,nullable:!0,description:`The name of the key`},start:{type:`string`,nullable:!0,description:`Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key.`},prefix:{type:`string`,nullable:!0,description:`The API Key prefix. Stored as plain text.`},userId:{type:`string`,description:`The owner of the user id`},refillInterval:{type:`number`,nullable:!0,description:"The interval in milliseconds between refills of the `remaining` count. Example: 3600000 // refill every hour (3600000ms = 1h)"},refillAmount:{type:`number`,nullable:!0,description:`The amount to refill`},lastRefillAt:{type:`string`,format:`date-time`,nullable:!0,description:`The last refill date`},enabled:{type:`boolean`,description:`Sets if key is enabled or disabled`,default:!0},rateLimitEnabled:{type:`boolean`,description:`Whether the key has rate limiting enabled`},rateLimitTimeWindow:{type:`number`,nullable:!0,description:`The duration in milliseconds`},rateLimitMax:{type:`number`,nullable:!0,description:`Maximum amount of requests allowed within a window`},requestCount:{type:`number`,description:`The number of requests made within the rate limit time window`},remaining:{type:`number`,nullable:!0,description:`Remaining requests (every time api key is used this should updated and should be updated on refill as well)`},lastRequest:{type:`string`,format:`date-time`,nullable:!0,description:`When last request occurred`},expiresAt:{type:`string`,format:`date-time`,nullable:!0,description:`Expiry date of a key`},createdAt:{type:`string`,format:`date-time`,description:`created at`},updatedAt:{type:`string`,format:`date-time`,description:`updated at`},metadata:{type:`object`,nullable:!0,additionalProperties:!0,description:`Extra metadata about the apiKey`},permissions:{type:`string`,nullable:!0,description:`Permissions for the api key (stored as JSON string)`}},required:[`id`,`userId`,`enabled`,`rateLimitEnabled`,`requestCount`,`createdAt`,`updatedAt`]}}}}}}}},async t=>{let{configId:r,keyId:i,expiresIn:a,enabled:o,metadata:s,refillAmount:c,refillInterval:l,remaining:u,name:d,permissions:f,rateLimitEnabled:p,rateLimitTimeWindow:m,rateLimitMax:h}=t.body,g=await zJ(t,{disableCookieCache:!0}),_=t.request||t.headers,v=_&&!g?null:g?.user||{id:t.body.userId};if(!v?.id||g&&t.body.userId&&g?.user.id!==t.body.userId)throw D.from(`UNAUTHORIZED`,ZQ.UNAUTHORIZED_SESSION);if(_&&(c!==void 0||l!==void 0||h!==void 0||m!==void 0||p!==void 0||u!==void 0||f!==void 0))throw D.from(`BAD_REQUEST`,ZQ.SERVER_ONLY_PROPERTY);let y=T$(t.context,e,r),b=null;if(b=await h$(t,i,y),!b||!D$(b.configId,y.configId))throw D.from(`NOT_FOUND`,ZQ.KEY_NOT_FOUND);let x=T$(t.context,e,b.configId);if((x.references??`user`)===`organization`)await b$(t,v.id,b.referenceId,`update`);else if(b.referenceId!==v.id)throw D.from(`NOT_FOUND`,ZQ.KEY_NOT_FOUND);let S={};if(d!==void 0){if(d.length<x.minimumNameLength||d.length>x.maximumNameLength)throw D.from(`BAD_REQUEST`,ZQ.INVALID_NAME_LENGTH);S.name=d}if(o!==void 0&&(S.enabled=o),a!==void 0){if(x.keyExpiration.disableCustomExpiresTime===!0)throw D.from(`BAD_REQUEST`,ZQ.KEY_DISABLED_EXPIRATION);if(a!==null){let e=a/86400;if(e<x.keyExpiration.minExpiresIn)throw D.from(`BAD_REQUEST`,ZQ.EXPIRES_IN_IS_TOO_SMALL);if(e>x.keyExpiration.maxExpiresIn)throw D.from(`BAD_REQUEST`,ZQ.EXPIRES_IN_IS_TOO_LARGE)}S.expiresAt=a?x$(a,`sec`):null}if(s!==void 0&&x.enableMetadata===!0){if(typeof s!=`object`)throw D.from(`BAD_REQUEST`,ZQ.INVALID_METADATA_TYPE);S.metadata=s}if(u!==void 0&&(S.remaining=u),c!==void 0||l!==void 0){if(c!==void 0&&l===void 0)throw D.from(`BAD_REQUEST`,ZQ.REFILL_AMOUNT_AND_INTERVAL_REQUIRED);if(l!==void 0&&c===void 0)throw D.from(`BAD_REQUEST`,ZQ.REFILL_INTERVAL_AND_AMOUNT_REQUIRED);S.refillAmount=c,S.refillInterval=l}if(p!==void 0&&(S.rateLimitEnabled=p),m!==void 0&&(S.rateLimitTimeWindow=m),h!==void 0&&(S.rateLimitMax=h),f!==void 0&&(S.permissions=JSON.stringify(f)),Object.keys(S).length===0)throw D.from(`BAD_REQUEST`,ZQ.NO_VALUES_TO_UPDATE);let ee=b;try{if(x.storage===`secondary-storage`&&x.fallbackToDatabase){let e=await t.context.adapter.update({model:j$,where:[{field:`id`,value:b.id}],update:S});e&&(await g$(t,e,x),ee=e)}else if(x.storage===`database`){let e=await t.context.adapter.update({model:j$,where:[{field:`id`,value:b.id}],update:S});e&&(ee=e)}else{let e={...b,...S,updatedAt:/* @__PURE__ */ new Date};await g$(t,e,x),ee=e}}catch(e){throw D.fromStatus(`INTERNAL_SERVER_ERROR`,{message:e?.message})}n(t.context);let te=await n$(t,ee,x),{key:C,...ne}=ee;return t.json({...ne,metadata:te,permissions:ne.permissions?w(ne.permissions):null})})}function S$(e,t){let n=/* @__PURE__ */ new Date,r=e.lastRequest,i=e.rateLimitTimeWindow,a=e.rateLimitMax;if(t.rateLimit.enabled===!1||e.rateLimitEnabled===!1)return{type:`skip`,lastRequest:n};if(i===null||a===null)return{type:`skip`,lastRequest:null};if(r===null)return{type:`start`,now:n};let o=n.getTime()-new Date(r).getTime();return o>i?{type:`reset`,now:n,windowStart:new Date(n.getTime()-i)}:e.requestCount>=a?{type:`deny`,message:ZQ.RATE_LIMIT_EXCEEDED.message,tryAgainIn:Math.ceil(i-o)}:{type:`increment`,now:n,max:a,windowStart:new Date(n.getTime()-i)}}async function C$({key:e,ctx:t,lookupOpts:n,configurations:r,schema:i,permissions:a,expectedConfigId:o,runCustomValidator:s}){let c=n.disableKeyHashing?e:await A$(e),l=await m$(t,c,n);if(!l||o!==void 0&&!D$(l.configId,o))throw D.from(`UNAUTHORIZED`,ZQ.INVALID_API_KEY);let u=T$(t.context,r,l.configId);if(s&&u.customAPIKeyValidator&&!await u.customAPIKeyValidator({ctx:t,key:e}))throw D.from(`UNAUTHORIZED`,ZQ.KEY_NOT_FOUND);if(l.enabled===!1)throw D.from(`UNAUTHORIZED`,ZQ.KEY_DISABLED);if(l.expiresAt&&Date.now()>new Date(l.expiresAt).getTime()){let e=async()=>{u.storage===`secondary-storage`&&u.fallbackToDatabase?(await _$(t,l,u),await t.context.adapter.delete({model:j$,where:[{field:`id`,value:l.id}]})):u.storage===`secondary-storage`?await _$(t,l,u):await t.context.adapter.delete({model:j$,where:[{field:`id`,value:l.id}]})};throw u.deferUpdates?t.context.runInBackground(e().catch(e=>{t.context.logger.error(`Deferred update failed:`,e)})):await e(),D.from(`UNAUTHORIZED`,ZQ.KEY_EXPIRED)}if(a){let e=l.permissions?w(l.permissions):null;if(!e||!Be(e).authorize(a).success)throw D.from(`UNAUTHORIZED`,ZQ.KEY_NOT_FOUND)}if(l.remaining===0&&l.refillAmount===null){let e=async()=>{u.storage===`secondary-storage`&&u.fallbackToDatabase?(await _$(t,l,u),await t.context.adapter.delete({model:j$,where:[{field:`id`,value:l.id}]})):u.storage===`secondary-storage`?await _$(t,l,u):await t.context.adapter.delete({model:j$,where:[{field:`id`,value:l.id}]})};throw u.deferUpdates?t.context.runInBackground(e().catch(e=>{t.context.logger.error(`Deferred update failed:`,e)})):await e(),D.from(`TOO_MANY_REQUESTS`,ZQ.USAGE_EXCEEDED)}return{apiKey:u.storage===`database`||u.storage===`secondary-storage`&&u.fallbackToDatabase?await ume({ctx:t,apiKey:l,opts:u,hashedKey:c}):await fme({ctx:t,apiKey:l,opts:u,hashedKey:c}),opts:u}}async function ume({ctx:e,apiKey:t,opts:n,hashedKey:r}){let i=t;t.remaining!==null&&(i=await dme(e,t)),i=await w$(e,i,n);let a=await e.context.adapter.update({model:j$,where:[{field:`id`,value:i.id}],update:{updatedAt:/* @__PURE__ */ new Date}});if(!a)throw D.from(`UNAUTHORIZED`,ZQ.INVALID_API_KEY);return n.storage===`secondary-storage`&&n.fallbackToDatabase&&await g$(e,a,n),a}async function dme(e,t){let n=/* @__PURE__ */ new Date,{refillInterval:r,refillAmount:i}=t;if(r&&i){let a=new Date(t.lastRefillAt??t.createdAt).getTime();if(n.getTime()-a>r){let r=await e.context.adapter.incrementOne({model:j$,where:[{field:`id`,value:t.id},{field:`lastRefillAt`,value:t.lastRefillAt}],increment:{},set:{remaining:i-1,lastRefillAt:n}});if(r)return r}}let a=await e.context.adapter.incrementOne({model:j$,where:[{field:`id`,value:t.id},{field:`remaining`,operator:`gt`,value:0}],increment:{remaining:-1}});if(!a)throw D.from(`TOO_MANY_REQUESTS`,ZQ.USAGE_EXCEEDED);return a}async function w$(e,t,n){let r=S$(t,n);if(r.type===`deny`)throw new D(`TOO_MANY_REQUESTS`,{message:r.message,code:`RATE_LIMITED`,details:{tryAgainIn:r.tryAgainIn}});if(r.type===`skip`)return r.lastRequest===null?t:await e.context.adapter.update({model:`apikey`,where:[{field:`id`,value:t.id}],update:{lastRequest:r.lastRequest}})??t;if(r.type===`increment`){let i=await e.context.adapter.incrementOne({model:j$,where:[{field:`id`,value:t.id},{field:`lastRequest`,operator:`gt`,value:r.windowStart},{field:`requestCount`,operator:`lt`,value:r.max}],increment:{requestCount:1},set:{lastRequest:r.now}});if(i)return i;let a=await e.context.adapter.findOne({model:j$,where:[{field:`id`,value:t.id}]});if(!a)throw D.from(`UNAUTHORIZED`,ZQ.INVALID_API_KEY);return w$(e,a,n)}let i=r.type===`reset`?{field:`lastRequest`,operator:`lte`,value:r.windowStart}:{field:`lastRequest`,operator:`eq`,value:null},a=await e.context.adapter.incrementOne({model:j$,where:[{field:`id`,value:t.id},i],increment:{},set:{requestCount:1,lastRequest:r.now}});if(a)return a;let o=await e.context.adapter.findOne({model:j$,where:[{field:`id`,value:t.id}]});if(!o)throw D.from(`UNAUTHORIZED`,ZQ.INVALID_API_KEY);return w$(e,o,n)}async function fme({ctx:e,apiKey:t,opts:n,hashedKey:r}){let i=t.remaining,a=t.lastRefillAt;if(i!==null){let e=Date.now(),{refillInterval:n,refillAmount:r}=t,o=new Date(a??t.createdAt).getTime();if(n&&r&&e-o>n&&(i=r,a=/* @__PURE__ */ new Date),i===0)throw D.from(`TOO_MANY_REQUESTS`,ZQ.USAGE_EXCEEDED);i--}let o={...pme(t,n),remaining:i,lastRefillAt:a,updatedAt:/* @__PURE__ */ new Date},s=async()=>{let t=await m$(e,r,n);if(!t)return null;let i={...t,...o};return await g$(e,i,n),i};if(n.deferUpdates)return e.context.runInBackground(s().catch(t=>{e.context.logger.error(`Failed to update API key:`,t)})),{...t,...o};let c=await s();if(!c)throw D.from(`INTERNAL_SERVER_ERROR`,ZQ.FAILED_TO_UPDATE_API_KEY);return c}function pme(e,t){let n=S$(e,t);switch(n.type){case`deny`:throw new D(`TOO_MANY_REQUESTS`,{message:n.message,code:`RATE_LIMITED`,details:{tryAgainIn:n.tryAgainIn}});case`skip`:return n.lastRequest===null?{}:{lastRequest:n.lastRequest};case`start`:case`reset`:return{lastRequest:n.now,requestCount:1};case`increment`:return{lastRequest:n.now,requestCount:e.requestCount+1}}}const mme=j({configId:A().meta({description:`Configuration ID to scope verification to. When omitted, the key is validated against its own configuration.`}).optional(),key:A().meta({description:`The key to verify`}),permissions:ve(A(),ye(A())).meta({description:`The permissions to verify.`}).optional()});function hme({configurations:e,schema:t,deleteAllExpiredApiKeys:n}){return X.serverOnly({method:`POST`,body:mme},async r=>{let{configId:i,key:a}=r.body,o=T$(r.context,e,i);if(i!==void 0&&o.customAPIKeyValidator&&!await o.customAPIKeyValidator({ctx:r,key:a}))return r.json({valid:!1,error:{message:ZQ.INVALID_API_KEY,code:`KEY_NOT_FOUND`},key:null});let s=null,c;try{let l=await C$({key:a,permissions:r.body.permissions,ctx:r,lookupOpts:o,configurations:e,schema:t,expectedConfigId:i,runCustomValidator:i===void 0});s=l.apiKey,c=l.opts,c.deferUpdates&&r.context.runInBackground(n(r.context).catch(e=>{r.context.logger.error(`Failed to delete expired API keys:`,e)}))}catch(e){return r.context.logger.error(`Failed to validate API key:`,e),Zpe(e)?r.json({valid:!1,error:{...e.body,message:e.body?.message,code:e.body?.code},key:null}):r.json({valid:!1,error:{message:ZQ.INVALID_API_KEY,code:`INVALID_API_KEY`},key:null})}let{key:l,...u}=s??{key:1,permissions:void 0},d=null;return s&&(d=await n$(r,s,c)),u.permissions=u.permissions?w(u.permissions):null,r.json({valid:!0,error:null,key:s===null?null:{...u,metadata:d}})})}function T$(e,t,n){let r=()=>{let n=t.find(e=>!e.configId||e.configId==="default");if(!n){e.logger.error("No default api-key configuration found. Either provide an api-key configuration with configId 'default' or provide a configuration with no `configId` set.");let t=ZQ.NO_DEFAULT_API_KEY_CONFIGURATION_FOUND;throw D.from(`BAD_REQUEST`,t)}return{...n,configId:`default`}};return n?t.find(e=>e.configId===n)??r():r()}function E$(e){return!e||e==="default"}function D$(e,t){return E$(e)&&E$(t)?!0:e===t}let O$=null;async function k$(e,t=!1){O$&&!t&&(/* @__PURE__ */ new Date()).getTime()-O$.getTime()<1e4||(O$=/* @__PURE__ */ new Date,await e.adapter.deleteMany({model:j$,where:[{field:`expiresAt`,operator:`lt`,value:/* @__PURE__ */ new Date},{field:`expiresAt`,operator:`ne`,value:null}]}).catch(t=>{e.logger.error(`Failed to delete expired API keys:`,t)}))}function gme({defaultKeyGenerator:e,configurations:t,schema:n}){return{createApiKey:$pe({defaultKeyGenerator:e,configurations:t,schema:n,deleteAllExpiredApiKeys:k$}),verifyApiKey:hme({configurations:t,schema:n,deleteAllExpiredApiKeys:k$}),getApiKey:ime({configurations:t,schema:n,deleteAllExpiredApiKeys:k$}),updateApiKey:lme({configurations:t,schema:n,deleteAllExpiredApiKeys:k$}),deleteApiKey:nme({configurations:t,schema:n,deleteAllExpiredApiKeys:k$}),listApiKeys:sme({configurations:t,schema:n,deleteAllExpiredApiKeys:k$}),deleteAllExpiredApiKeys:eme({deleteAllExpiredApiKeys:k$})}}const _me=({defaultRateLimitMax:e,defaultTimeWindow:t})=>({apikey:{fields:{configId:{type:`string`,required:!0,defaultValue:`default`,input:!1,index:!0},name:{type:`string`,required:!1,input:!1},start:{type:`string`,required:!1,input:!1},referenceId:{type:`string`,required:!0,input:!1,index:!0},prefix:{type:`string`,required:!1,input:!1},key:{type:`string`,required:!0,input:!1,index:!0},refillInterval:{type:`number`,required:!1,input:!1},refillAmount:{type:`number`,required:!1,input:!1},lastRefillAt:{type:`date`,required:!1,input:!1},enabled:{type:`boolean`,required:!1,input:!1,defaultValue:!0},rateLimitEnabled:{type:`boolean`,required:!1,input:!1,defaultValue:!0},rateLimitTimeWindow:{type:`number`,required:!1,input:!1,defaultValue:t},rateLimitMax:{type:`number`,required:!1,input:!1,defaultValue:e},requestCount:{type:`number`,required:!1,input:!1,defaultValue:0},remaining:{type:`number`,required:!1,input:!1},lastRequest:{type:`date`,required:!1,input:!1},expiresAt:{type:`date`,required:!1,input:!1},createdAt:{type:`date`,required:!0,input:!1},updatedAt:{type:`date`,required:!0,input:!1},permissions:{type:`string`,required:!1,input:!1},metadata:{type:`string`,required:!1,input:!0,transform:{input(e){return JSON.stringify(e)},output(e){return e?Wpe(e):null}}}}}}),A$=async e=>{let t=await NU(`SHA-256`).digest(new TextEncoder().encode(e));return MU.encode(new Uint8Array(t),{padding:!1})},j$=`apikey`;function vme(e,t){if(Array.isArray(e)&&e.length>0){if(!e.every(e=>e.configId))throw new O(`configId is required for each API key configuration in the api-key plugin.`);let t=e.map(e=>e.configId);if(new Set(t).size!==t.length)throw new O(`configId must be unique for each API key configuration in the api-key plugin.`)}let n=t??{schema:Array.isArray(e)?void 0:e?.schema},r=[...(Array.isArray(e)?e:[e]).map(e=>({...e,apiKeyHeaders:e?.apiKeyHeaders??`x-api-key`,defaultKeyLength:e?.defaultKeyLength||64,maximumPrefixLength:e?.maximumPrefixLength??32,minimumPrefixLength:e?.minimumPrefixLength??1,maximumNameLength:e?.maximumNameLength??32,minimumNameLength:e?.minimumNameLength??1,enableMetadata:e?.enableMetadata??!1,disableKeyHashing:e?.disableKeyHashing??!1,requireName:e?.requireName??!1,storage:e?.storage??`database`,rateLimit:{enabled:e?.rateLimit?.enabled===void 0||e?.rateLimit?.enabled,timeWindow:e?.rateLimit?.timeWindow??864e5,maxRequests:e?.rateLimit?.maxRequests??10},keyExpiration:{defaultExpiresIn:e?.keyExpiration?.defaultExpiresIn??null,disableCustomExpiresTime:e?.keyExpiration?.disableCustomExpiresTime??!1,maxExpiresIn:e?.keyExpiration?.maxExpiresIn??365,minExpiresIn:e?.keyExpiration?.minExpiresIn??1},startingCharactersConfig:{shouldStore:e?.startingCharactersConfig?.shouldStore??!0,charactersLength:e?.startingCharactersConfig?.charactersLength??6},enableSessionForAPIKeys:e?.enableSessionForAPIKeys??!1,fallbackToDatabase:e?.fallbackToDatabase??!1,customStorage:e?.customStorage,deferUpdates:e?.deferUpdates??!1}))],i=uG(_me({defaultRateLimitMax:(r.length===1?r[0]?.rateLimit.maxRequests:void 0)??10,defaultTimeWindow:(r.length===1?r[0]?.rateLimit.timeWindow:void 0)??864e5}),n.schema),a=async e=>{let t=TH(e.length,`a-z`,`A-Z`);return`${e.prefix||``}${t}`};function o(e,t){if(t.customAPIKeyGetter)return t.customAPIKeyGetter(e);if(Array.isArray(t.apiKeyHeaders)){for(let n of t.apiKeyHeaders){let t=e.headers?.get(n);if(t)return t}return null}return e.headers?.get(t.apiKeyHeaders)??null}function s(e){for(let t of r){if(!t.enableSessionForAPIKeys)continue;let n=o(e,t);if(n)return{key:n,config:t}}return null}let c=gme({defaultKeyGenerator:a,configurations:r,schema:i});return{id:`api-key`,version:`1.7.7`,$ERROR_CODES:ZQ,hooks:{before:[{matcher:e=>!!s(e),handler:zq(async e=>{let{key:t,config:n}=s(e);if(typeof t!=`string`)throw D.from(`BAD_REQUEST`,ZQ.INVALID_API_KEY_GETTER_RETURN_TYPE);if(t.length<n.defaultKeyLength||n.customAPIKeyValidator&&!await n.customAPIKeyValidator({ctx:e,key:t}))throw D.from(`FORBIDDEN`,ZQ.INVALID_API_KEY);let{apiKey:a}=await C$({key:t,ctx:e,lookupOpts:n,configurations:r,schema:i,expectedConfigId:n.configId}),o=k$(e.context).catch(t=>{e.context.logger.error(`Failed to delete expired API keys:`,t)});if(n.deferUpdates&&e.context.runInBackground(o),(n.references??`user`)!==`user`){let e=ZQ.INVALID_REFERENCE_ID_FROM_API_KEY;throw D.from(`UNAUTHORIZED`,e)}let c=await e.context.internalAdapter.findUserById(a.referenceId);if(!c){let e=ZQ.INVALID_REFERENCE_ID_FROM_API_KEY;throw D.from(`UNAUTHORIZED`,e)}let l={user:c,session:{id:a.id,token:t,userId:a.referenceId,userAgent:e.request?.headers.get(`user-agent`)??null,ipAddress:e.request?xJ(e.request,e.context.options):null,createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,expiresAt:a.expiresAt||x$(e.context.options.session?.expiresIn||604800,`ms`)}};return e.context.session=l,e.path===`/get-session`?l:{context:e}})}]},endpoints:{createApiKey:c.createApiKey,verifyApiKey:c.verifyApiKey,getApiKey:c.getApiKey,updateApiKey:c.updateApiKey,deleteApiKey:c.deleteApiKey,listApiKeys:c.listApiKeys,deleteAllExpiredApiKeys:c.deleteAllExpiredApiKeys},schema:i}}const M$=(e,t)=>({getAllKeys:async n=>t?.adapter?.getJwks?await t.adapter.getJwks(n):await(await $V(e)).findMany({model:`jwks`}),getLatestKey:async n=>{let r=/* @__PURE__ */ new Date,i=e=>!e.expiresAt||e.expiresAt>r;return t?.adapter?.getJwks?(await t.adapter.getJwks(n))?.filter(i).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())[0]:(await(await $V(e)).findMany({model:`jwks`}))?.filter(i).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())[0]},getKeyById:async(n,r)=>t?.adapter?.getJwks?(await t.adapter.getJwks(n))?.find(e=>e.id===r):await(await $V(e)).findOne({model:`jwks`,where:[{field:`id`,value:r}]})??void 0,getLatestKeyByAlg:async(n,r)=>{let i=t?.adapter?.getJwks?await t.adapter.getJwks(n):await(await $V(e)).findMany({model:`jwks`});if(!i)return;let a=t?.jwks?.keyPairConfig?.alg??`EdDSA`,o=/* @__PURE__ */ new Date;return i.filter(e=>e.alg===r||e.alg==null&&a===r).filter(e=>!e.expiresAt||e.expiresAt>o).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())[0]},createJwk:async(n,r)=>t?.adapter?.createJwk?await t.adapter.createJwk(r,n):await(await $V(e)).create({model:`jwks`,data:{...r,createdAt:/* @__PURE__ */ new Date}})});function N$(e,t){return typeof e==`number`?e:e instanceof Date?Math.floor(e.getTime()/1e3):t+hG(e)}async function yme(e){let{alg:t,...n}=e?.jwks?.keyPairConfig??{alg:`EdDSA`,crv:`Ed25519`},{publicKey:r,privateKey:i}=await ude(t,{...n,extractable:!0});return{publicWebKey:await JF(r),privateWebKey:await JF(i),alg:t,cfg:n}}async function P$(e,t){let{publicWebKey:n,privateWebKey:r,alg:i,cfg:a}=await yme(t),o=a&&`crv`in a?a.crv:void 0,s=typeof n.crv==`string`?n.crv:void 0,c=o??s,l=JSON.stringify(r),u=!t?.jwks?.disablePrivateKeyEncryption,d={alg:i,...c?{crv:c}:{},publicKey:JSON.stringify(n),privateKey:u?JSON.stringify(await zW({key:e.context.secretConfig,data:l})):l,createdAt:/* @__PURE__ */ new Date,...t?.jwks?.rotationInterval?{expiresAt:new Date(Date.now()+t.jwks.rotationInterval*1e3)}:{}};return await M$(e.context.adapter,t).createJwk(e,d)}async function F$(e,t,n){if(t?.jwt?.sign)return null;let r=M$(e.context.adapter,t),i;if(n?.signingKeyId!==void 0){if(i=await r.getKeyById(e,n.signingKeyId),!i)throw new O(`signJWT: signingKeyId "${n.signingKeyId}" not found in JWKS. The key must be provisioned before it can be referenced.`);if(n.signingAlgorithm!==void 0){let e=t?.jwks?.keyPairConfig?.alg??`EdDSA`;if((i.alg??e)!==n.signingAlgorithm)throw new O(`signJWT: signingKeyId "${n.signingKeyId}" has alg "${i.alg??`unset (inherits keyPairConfig.alg "${e}")`}" but signingAlgorithm was set to "${n.signingAlgorithm}".`)}}else if(n?.signingAlgorithm!==void 0){if(i=await r.getLatestKeyByAlg(e,n.signingAlgorithm),!i){let r=t?.jwks?.keyPairConfig?.alg??`EdDSA`,a=t?.jwks?.keyPairConfigs?.find(e=>e.alg===n.signingAlgorithm),o=r===n.signingAlgorithm;if(a||o)i=await P$(e,{...t,jwks:{...t?.jwks,keyPairConfig:a??t?.jwks?.keyPairConfig}});else{let e=t?.jwks?.keyPairConfigs?.map(e=>e.alg).join(`, `)||`none`;throw new O(`signJWT: no key with alg "${n.signingAlgorithm}" found in JWKS. The plugin auto-mints only one key matching keyPairConfig.alg="${r}"; additional algs configured via keyPairConfigs: ${e}. Add "${n.signingAlgorithm}" to jwks.keyPairConfigs so the plugin provisions it on first use, or mint the key explicitly via createJwk().`)}}}else{let n=t?.jwks?.keyPairConfig?.alg??`EdDSA`;i=await r.getLatestKeyByAlg(e,n)??await r.getLatestKey(e)}if(!i||i.expiresAt&&i.expiresAt</* @__PURE__ */ new Date){if(n?.signingKeyId!==void 0||n?.signingAlgorithm!==void 0)throw new O(`signJWT: requested signing key is expired and an explicit kid/alg was provided; not auto-minting a replacement. Rotate the key explicitly.`);i=await P$(e,t)}let a=t?.jwks?.disablePrivateKeyEncryption?i.privateKey:await BW({key:e.context.secretConfig,data:JSON.parse(i.privateKey)}).catch(()=>{throw new O(`Failed to decrypt private key. Make sure the secret currently in use is the same as the one used to encrypt the private key. If you are using a different secret, either clean up your JWKS or disable private key encryption.`)}),o=i.alg??t?.jwks?.keyPairConfig?.alg??`EdDSA`,s=await nI(JSON.parse(a),o);return{alg:o,kid:i.id,privateKey:s}}async function I$(e,t){let{options:n}=t,r=t.payload,i=Math.floor(Date.now()/1e3),a=r.iat,o=r.exp,s=N$(n?.jwt?.expirationTime??`15m`,a??i);o??=s;let c=r.nbf,l=typeof e.context.options.baseURL==`string`?e.context.options.baseURL:``,u=r.iss,d=n?.jwt?.issuer??l,f=r.aud,p=n?.jwt?.audience??l;if(n?.jwt?.sign){let e={...r,iat:a,exp:o,nbf:c,iss:u??d,aud:f??p};return n.jwt.sign(e,t.header,{signingKeyId:t.signingKeyId,signingAlgorithm:t.signingAlgorithm})}let{alg:m,kid:h,privateKey:g}=t.resolvedKey??await F$(e,n,{signingKeyId:t.signingKeyId,signingAlgorithm:t.signingAlgorithm}),_=new GF(r).setProtectedHeader({...t.header,alg:m,kid:h}).setExpirationTime(o).setIssuer(u??d).setAudience(f??p);return a&&_.setIssuedAt(a),r.sub&&_.setSubject(r.sub),r.nbf&&_.setNotBefore(r.nbf),r.jti&&_.setJti(r.jti),await _.sign(g)}async function L$(e,t){let n=t?.jwt?.definePayload?await t.jwt.definePayload(e.context.session):e.context.session.user;return await I$(e,{options:t,payload:{iat:Math.floor(Date.now()/1e3),...n,sub:await t?.jwt?.getSubject?.(e.context.session)??e.context.session.user.id}})}function R$(e){let t=e.context.options.baseURL;return typeof t==`string`?t||`better-auth:session-cache`:e.context.baseURL||`better-auth:session-cache`}async function bme(e,t,n){let r=rI(t),i=r.kid;if(!i)return e.context.logger.debug(`Cookie-cache JWT missing kid in header`),null;let a=await M$(e.context.adapter,n).getAllKeys(e);if(!a?.length)return e.context.logger.debug(`No JWKS keys available for cookie-cache JWT`),null;let o=a.find(e=>e.id===i);if(!o)return e.context.logger.debug(`No JWKS key found for cookie-cache JWT kid: ${i}`),null;let s=o.alg??n?.jwks?.keyPairConfig?.alg??r.alg;return s?{alg:s,publicKey:await nI(JSON.parse(o.publicKey),s)}:(e.context.logger.debug(`No JWT algorithm available for cookie-cache JWT kid: ${i}`),null)}async function xme(e,t,n,r){let i=await F$(e,r);if(!i)throw new O("`jwt({ sessionCookieCache: true })` requires locally managed JWT plugin keys and does not support `jwt.sign`.");return await new GF({...t,sid:t.session.token}).setProtectedHeader({alg:i.alg,kid:i.kid,typ:`better-auth.session-cache+jwt`}).setIssuedAt().setExpirationTime(Math.floor(Date.now()/1e3)+n).setIssuer(R$(e)).setAudience(`better-auth:session-cache`).setSubject(t.user.id).sign(i.privateKey)}async function Sme(e,t,n){try{if(rI(t).typ!==`better-auth.session-cache+jwt`)return null;let r=await bme(e,t,n);if(!r)return null;let{payload:i}=await UF(t,r.publicKey,{...OG({issuer:R$(e)}),algorithms:[r.alg]}),a=kG(i);return a?{payload:a,expiresAt:a.exp?a.exp*1e3:Date.now()}:null}catch(t){return e.context.logger.debug(`Cookie-cache JWT verification failed`,t),null}}function Cme(e){return{sign:(t,n,r)=>xme(t,n,r,e),verify:(t,n)=>Sme(t,n,e)}}const wme={jwks:{fields:{publicKey:{type:`string`,required:!0},privateKey:{type:`string`,required:!0},createdAt:{type:`date`,required:!0},expiresAt:{type:`date`,required:!1},alg:{type:`string`,required:!1},crv:{type:`string`,required:!1}}}};async function Tme(e,t){let n=WV();try{let r=e.split(`.`);if(r.length!==3)return null;let i=new TextDecoder().decode(jU.decode(r[0])),a=JSON.parse(i).kid;if(!a)return n.context.logger.debug(`JWT missing kid in header`),null;let o=await M$(n.context.adapter,t).getAllKeys(n);if(!o||o.length===0)return n.context.logger.debug(`No JWKS keys available`),null;let s=o.find(e=>e.id===a);if(!s)return n.context.logger.debug(`No JWKS key found for kid: ${a}`),null;let c=await nI(JSON.parse(s.publicKey),s.alg??t?.jwks?.keyPairConfig?.alg??`EdDSA`),l=typeof n.context.options.baseURL==`string`?n.context.options.baseURL:void 0,{payload:u}=await UF(e,c,{issuer:t?.jwt?.issuer??l,audience:t?.jwt?.audience??l});return!u.sub||!u.aud?null:u}catch(e){return n.context.logger.debug(`JWT verification failed`,e),null}}const Eme=j({payload:ve(A(),ke()),overrideOptions:ve(A(),ke()).optional()}),Dme=j({token:A(),issuer:A().optional()}),Ome=e=>{if(e?.jwt?.sign&&!e.jwks?.remoteUrl)throw new O(`options.jwks.remoteUrl must be set when using options.jwt.sign`);if(e?.jwks?.remoteUrl&&!e.jwks?.keyPairConfig?.alg)throw new O(`options.jwks.keyPairConfig.alg must be specified when options.jwks.remoteUrl is used for OpenID metadata`);let t=e?.jwks?.jwksPath??`/jwks`;if(typeof t!=`string`||t.length===0||!t.startsWith(`/`)||t.includes(`..`))throw new O(`options.jwks.jwksPath must be a non-empty string starting with '/' and not contain '..'`);return{id:`jwt`,version:`1.7.7`,options:e,init(t){if(!e?.sessionCookieCache)return;if(t.options.session?.cookieCache?.strategy!==`jwt`)throw new O('`jwt({ sessionCookieCache: true })` requires `session.cookieCache.strategy = "jwt"`.');if(e.jwt?.sign)throw new O("`jwt({ sessionCookieCache: true })` requires locally managed JWT plugin keys and does not support `jwt.sign`.");let n=e.jwks?.gracePeriod,r=t.options.session.cookieCache.maxAge||300;return n!==void 0&&r>n&&t.logger.warn(`[better-auth] \`session.cookieCache.maxAge\` (${r}s) exceeds the JWT plugin JWKS grace period (${n}s). Rotated keys may stop verifying cookie-cache JWTs before the cookie expires.`),{context:{sessionConfig:{...t.sessionConfig,cookieCacheSigner:Cme(e)}}}},endpoints:{getJwks:X(t,{method:`GET`,metadata:{openapi:{operationId:`getJSONWebKeySet`,description:`Get the JSON Web Key Set`,responses:{200:{description:`JSON Web Key Set retrieved successfully`,content:{"application/json":{schema:{type:`object`,properties:{keys:{type:`array`,description:`Array of public JSON Web Keys`,items:{type:`object`,properties:{kid:{type:`string`,description:`Key ID uniquely identifying the key, corresponds to the 'id' from the stored Jwk`},kty:{type:`string`,description:`Key type (e.g., 'RSA', 'EC', 'OKP')`},alg:{type:`string`,description:`Algorithm intended for use with the key (e.g., 'EdDSA', 'RS256')`},use:{type:`string`,description:`Intended use of the public key (e.g., 'sig' for signature)`,enum:[`sig`],nullable:!0},n:{type:`string`,description:`Modulus for RSA keys (base64url-encoded)`,nullable:!0},e:{type:`string`,description:`Exponent for RSA keys (base64url-encoded)`,nullable:!0},crv:{type:`string`,description:`Curve name for elliptic curve keys (e.g., 'Ed25519', 'P-256')`,nullable:!0},x:{type:`string`,description:`X coordinate for elliptic curve keys (base64url-encoded)`,nullable:!0},y:{type:`string`,description:`Y coordinate for elliptic curve keys (base64url-encoded)`,nullable:!0}},required:[`kid`,`kty`,`alg`]}}},required:[`keys`]}}}}}}}},async t=>{if(e?.jwks?.remoteUrl)throw new D(`NOT_FOUND`);let n=M$(t.context.adapter,e),r=await n.getAllKeys(t);if((!r||r?.length===0)&&(await P$(t,e),r=await n.getAllKeys(t)),!r?.length)throw new O(`No key sets found. Make sure you have a key in your database.`);let i=Date.now(),a=(e?.jwks?.gracePeriod??2592e3)*1e3,o=r.filter(e=>!e.expiresAt||e.expiresAt.getTime()+a>i),s=e?.jwks?.keyPairConfig,c=s&&`crv`in s?s.crv:void 0;return t.json({keys:o.map(t=>({alg:t.alg??e?.jwks?.keyPairConfig?.alg??`EdDSA`,crv:t.crv??c,...JSON.parse(t.publicKey),kid:t.id}))})}),getToken:X(`/token`,{method:`GET`,requireHeaders:!0,use:[VJ],metadata:{openapi:{operationId:`getJSONWebToken`,description:`Get a JWT token`,responses:{200:{description:`Success`,content:{"application/json":{schema:{type:`object`,properties:{token:{type:`string`}}}}}}}}}},async t=>{let n=await L$(t,e);return t.json({token:n})}),signJWT:X.serverOnly({method:`POST`,metadata:{$Infer:{body:{}}},body:Eme},async t=>{let n=await I$(t,{options:{...e,...t.body.overrideOptions},payload:t.body.payload});return t.json({token:n})}),verifyJWT:X.serverOnly({method:`POST`,metadata:{$Infer:{body:{},response:{}}},body:Dme},async t=>{let n=t.body.issuer?{...e,jwt:{...e?.jwt,issuer:t.body.issuer}}:e,r=await Tme(t.body.token,n);return t.json({payload:r})})},hooks:{after:[{matcher(e){return e.path===`/get-session`},handler:zq(async t=>{if(e?.disableSettingJwtHeader)return;let n=t.context.session||t.context.newSession;if(n&&n.session){let n=await L$(t,e),r=t.context.responseHeaders?.get(`access-control-expose-headers`)||``,i=new Set(r.split(`,`).map(e=>e.trim()).filter(Boolean));i.add(`set-auth-jwt`),t.setHeader(`set-auth-jwt`,n),t.setHeader(`Access-Control-Expose-Headers`,Array.from(i).join(`, `))}})}]},schema:uG(wme,e?.schema)}};var z$=Object.defineProperty,B$=(e,t)=>{let n={};for(var r in e)z$(n,r,{get:e[r],enumerable:!0});return t||z$(n,Symbol.toStringTag,{value:`Module`}),n};const V$=`ba_iat`,H$=`ba_pl`,U$=`ba_param`;function W$(e){let t=new URLSearchParams,n=[...e.entries()].sort(([e,t],[n,r])=>e<n?-1:e>n?1:t<r?-1:+(t>r));for(let[e,r]of n)t.append(e,r);return t}function kme(e){e.delete(U$);let t=[.../* @__PURE__ */ new Set([...e.keys(),U$])].sort();for(let n of t)e.append(U$,n)}function Ame(e){let t=new URLSearchParams(e).get(V$);if(!t)return null;let n=Number(t);return!Number.isFinite(n)||n<=0?null:new Date(n)}const jme=[`authorization_code`,`client_credentials`,`refresh_token`],G$=[`client_secret_basic`,`client_secret_post`,`private_key_jwt`],Mme=[`none`,...G$],Nme=new Set(Mme);function K$(e,t){if(!(t.trim().length>0))throw new O(`OAuth Provider extension ${e} cannot be empty`)}function q$(e,t){K$(e,t);let n;try{n=new URL(t)}catch{n=void 0}if(!n?.protocol)throw new O(`OAuth Provider extension ${e} must be an absolute URI: ${t}`)}function Pme(e){q$(`grant type`,e)}function Fme(e){if(K$(`token_endpoint_auth_method`,e),Nme.has(e))throw new O(`OAuth Provider extension token_endpoint_auth_method is reserved: ${e}`)}function Ime(e){if(q$(`client_assertion_type`,e),e===`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`)throw new O(`OAuth Provider extension client_assertion_type is reserved: ${e}`)}function Lme(e){let t=Object.keys(e.grants??{});for(let e of t)Pme(e);let n=[],r=[];for(let[t,i]of Object.entries(e.clientAuthentication??{})){Fme(t),n.push(t);let e=i.assertionTypes??[t];if(e.length===0)throw new O(`OAuth Provider extension client_assertion_type list cannot be empty for ${t}`);for(let t of e)Ime(t),r.push(t)}let i=(e.clientDiscovery?Array.isArray(e.clientDiscovery)?e.clientDiscovery:[e.clientDiscovery]:[]).map(e=>e.id);for(let e of i)K$(`client discovery id`,e);return{grantTypes:t,authMethods:n,assertionTypes:r,clientDiscoveryIds:i}}function J$(e,t){let n=/* @__PURE__ */ new Set;for(let r of t){if(n.has(r))throw new O(`OAuth Provider extensions register ${e} "${r}" more than once. Extension contributions must be disjoint.`);n.add(r)}}function Y$(e){let t=(e??[]).map(Lme);J$(`grant type`,t.flatMap(e=>e.grantTypes)),J$(`token_endpoint_auth_method`,t.flatMap(e=>e.authMethods)),J$(`client_assertion_type`,t.flatMap(e=>e.assertionTypes)),J$(`client discovery id`,t.flatMap(e=>e.clientDiscoveryIds))}function X$(e){return e.extensions??[]}function Z$(e){return X$(e).flatMap(e=>{let t=e.clientDiscovery;return t?Array.isArray(t)?t:[t]:[]})}function Rme(e,t){let n=e.getPlugin(`oauth-provider`);if(!n)throw new O(`extendOAuthProvider requires the oauth-provider plugin.`);let r=n.options.extensions??[];if(r.includes(t))return;let i=[...r,t];Y$(i),n.options.extensions=i}function zme(e){return X$(e).flatMap(e=>Object.keys(e.grants??{}))}function Q$(e){return Array.from(/* @__PURE__ */ new Set([...e.grantTypes??jme,...zme(e)]))}function Bme(e,t){for(let n of X$(e)){let e=n.grants?.[t];if(e)return e}}function $$(e){return X$(e).flatMap(e=>Object.keys(e.clientAuthentication??{}))}function e1(e,t){return Array.from(/* @__PURE__ */ new Set([...t?.includeNone?[`none`]:[],...G$,...$$(e)]))}function t1(e,t){return t?$$(e).includes(t):!1}function Vme(e,t){if(t!==`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`)for(let n of X$(e)){let e=n.clientAuthentication??{};for(let[n,r]of Object.entries(e))if((r.assertionTypes??[n]).includes(t))return{method:n,strategy:r}}}function n1(e,t,n,r){let i={...r};for(let a of X$(t)){let o=a.metadata?.({ctx:e,opts:t,type:n,document:r});for(let[e,t]of Object.entries(o??{}))e in i||(i[e]=t)}return i}async function r1(e,t){let n={};for(let r of X$(e)){let e=await t(r)??{};for(let[t,r]of Object.entries(e))t in n?E.warn(`oauth-provider: two extensions contributed the claim "${t}"; keeping the first-registered value.`):n[t]=r}return n}function Hme(e,t){return r1(e,e=>e.claims?.accessToken?.(t))}function Ume(e,t){return r1(e,e=>e.claims?.idToken?.(t))}function Wme(e,t){return r1(e,e=>e.claims?.userInfo?.(t))}function Gme(e){return X$(e).some(e=>e.claims?.userInfo)}function Kme(e){if(!e)return;let[t,n,...r]=e.trim().split(/\s+/);if(t?.toLowerCase()===`bearer`){if(!n||r.length>0)throw new k(`BAD_REQUEST`,{error:`invalid_request`,error_description:`Malformed Bearer Authorization header`});return n}}function qme(){let e=/* @__PURE__ */ new Map;return{get(t){let n=e.get(t);if(n){if(n.expiresAt&&n.expiresAt</* @__PURE__ */ new Date)e.delete(t);else return n}},set(t,n){e.set(t,n)}}}const i1=e=>{let t=e.getPlugin(`jwt`);if(!t)throw new O(`jwt_config`);return t};function a1(e){if(e!=null){if(e instanceof Date)return Number.isFinite(e.getTime())?e:void 0;if(typeof e==`number`){if(!Number.isFinite(e))return;let t=new Date(e);return Number.isFinite(t.getTime())?t:void 0}if(typeof e==`string`){let t=e.trim();if(!t.length)return;let n=Number(t);if(Number.isFinite(n)){let e=new Date(n);return Number.isFinite(e.getTime())?e:void 0}let r=new Date(t);return Number.isFinite(r.getTime())?r:void 0}}}function Jme(e){if(e instanceof Date||!e||typeof e!=`object`)return a1(e);let t=a1(e.createdAt)??a1(e.created_at);if(t)return t;let n=e.session;if(n&&typeof n==`object`)return a1(n.createdAt)??a1(n.created_at)}function o1(e){if(typeof e==`string`)return[e];if(e?.length)return e}function s1(e){if(typeof e==`string`)return e;if(e?.length)return e.length===1?e.at(0):e}const c1=/* @__PURE__ */ new WeakMap;function Yme(e){let t=c1.get(e);if(t)return t;let n=qme();return c1.set(e,n),n}async function l1(e,t){let n=new URLSearchParams(e),r=n.get(`sig`),i=n.getAll(`sig`),a=Number(n.get(`exp`));n.delete(`sig`);let o=await HW(W$(n).toString(),t);return i.length===1&&!!r&&bU(r,o)&&/* @__PURE__ */ new Date(a*1e3)>=/* @__PURE__ */ new Date}async function u1(e,t,n){let r=Yme(t),i=r.get(n);if(i&&!i.clientDiscoveryId)return Object.assign({},i);let a=await e.context.adapter.findOne({model:t.schema?.oauthClient?.modelName??`oauthClient`,where:[{field:`clientId`,value:n}]}),o=Z$(t);if(a?.clientDiscoveryId){let t=a.clientDiscoveryId,r=o.find(e=>e.id===t);if(!r?.matches(n)||(a=await r.resolve(e,n,a),!a))return null}else if(a)return t.cachedTrustedClients?.has(n)&&r.set(n,Object.assign({},a)),a;else for(let t of o){if(!t.matches(n))continue;let r=await t.resolve(e,n,null);if(r){a=r;break}}return a}function d1(e){return e.reduce((e,t)=>({...e,...t.discoveryMetadata??{}}),{})}const f1=async e=>{let t=await NU(`SHA-256`).digest(new TextEncoder().encode(e));return MU.encode(new Uint8Array(t),{padding:!1})};async function p1(e,t,n){if(t===`encrypted`)return await BW({key:e.context.secretConfig,data:n});if(typeof t==`object`&&`decrypt`in t)return await t.decrypt(n);throw new O(`Unsupported decryption storageMethod type '${t}'`)}async function Xme(e,t,n,r){let i=t.storeClientSecret??(t.disableJwtPlugin?`encrypted`:`hashed`);if(r&&t.prefix?.clientSecret){if(r.startsWith(t.prefix?.clientSecret))r=r.replace(t.prefix.clientSecret,``);else throw new k(`UNAUTHORIZED`,{error_description:`invalid client_secret`,error:`invalid_client`})}if(i===`hashed`){let e=r?await f1(r):void 0;return!!e&&bU(e,n)}if(typeof i==`object`&&`hash`in i){if(i.verify)return!!r&&await i.verify(r,n);{let e=r?await i.hash(r):void 0;return!!e&&bU(e,n)}}if(i===`encrypted`)try{let t=await p1(e,i,n);return!!r&&bU(t,r)}catch{return!1}if(typeof i==`object`&&`decrypt`in i){let t=await p1(e,i,n);return!!r&&bU(t,r)}throw new O(`Unsupported verify storageMethod type '${i}'`)}async function m1(e,t,n){let r=t.storeClientSecret??(t.disableJwtPlugin?`encrypted`:`hashed`);if(r===`encrypted`)return await zW({key:e.context.secretConfig,data:n});if(r===`hashed`)return await f1(n);if(typeof r==`object`&&`hash`in r)return await r.hash(n);if(typeof r==`object`&&`encrypt`in r)return await r.encrypt(n);throw new O(`Unsupported storeClientSecret type '${r}'`)}async function h1(e=`hashed`,t,n){if(e===`hashed`)return await f1(t);if(typeof e==`object`&&`hash`in e)return await e.hash(t,n);throw new O(`storeToken: unsupported storageMethod type '${e}'`)}async function g1(e=`hashed`,t,n){if(e===`hashed`)return await f1(t);if(typeof e==`object`&&`hash`in e)return await e.hash(t,n);throw new O(`getStoredToken: unsupported storageMethod type '${e}'`)}const _1=/^Basic +/i,Zme=/^([!#$%&'*+\-.^_`|~0-9A-Za-z]+)(?=\s|$)/;function Qme(e){return e.match(Zme)?.[1]}const v1=[`client_secret`,`client_assertion`,`client_assertion_type`];function y1(e){throw new k(`BAD_REQUEST`,{error:`invalid_request`,error_description:e})}async function $me(e,t={}){let n;t.client_id!==void 0&&t.client_id!==``&&(typeof t.client_id!=`string`&&y1(`client_id must be a string`),n=t.client_id);let r={},i=(e,t)=>{t!==void 0&&t!==``&&(typeof t!=`string`&&y1(`${e} must be a string`),r[e]=t)};for(let e of v1)Object.hasOwn(t,e)&&i(e,t[e]);let a=!!e?.headers.get(`authorization`);if(e&&(e.headers.get(`content-type`)?.toLowerCase()??``).includes(`application/x-www-form-urlencoded`)){let t=new URLSearchParams(await e.clone().text()),r=t.getAll(`client_id`).filter(e=>e.length>0);r.length>1&&y1(`client_id must not be repeated`),n=r[0];for(let e of v1){let n=t.getAll(e).filter(e=>e.length>0);n.length>1&&y1(`${e} must not be repeated`),n.length===1&&i(e,n[0])}}let o=r.client_secret!==void 0,s=r.client_assertion!==void 0||r.client_assertion_type!==void 0;(a&&(o||s)||o&&s)&&y1(`A request must use only one client authentication method`),t.client_id=n;for(let e of v1)t[e]=r[e];return{detected:a||Object.keys(r).length>0}}function ehe(e){if(_1.test(e))try{let{clientId:t,clientSecret:n}=rX(e);return{client_id:t,client_secret:n}}catch{throw new k(`UNAUTHORIZED`,{error_description:`invalid authorization header format`,error:`invalid_client`},{"WWW-Authenticate":`Basic`})}}function b1(e,t){let n=e.grantTypes&&e.grantTypes.length>0?e.grantTypes:[`authorization_code`];return t===`refresh_token`&&n.includes(`authorization_code`)?!0:n.includes(t)}function the(e,t){if(!t||!e.scopes)return;let n=new Set(e.scopes);for(let e of t)if(!n.has(e))throw new k(`BAD_REQUEST`,{error_description:`client does not allow scope ${e}`,error:`invalid_scope`})}function x1(e,t){let n=t?.method===`client_secret_basic`,r=t?.scheme??(n?`Basic`:void 0);throw new k(r?`UNAUTHORIZED`:`BAD_REQUEST`,{error_description:e,error:`invalid_client`},r?{"WWW-Authenticate":r}:void 0)}async function S1(e,t,n,r,i,a,o,s){let c=await u1(e,t,n);c||x1(`missing client`,{method:s}),c.disabled&&x1(`client is disabled`,{method:s});let l=c.tokenEndpointAuthMethod??`client_secret_basic`;if(s&&l!==s&&x1(`client registered for ${l} cannot use ${s}`,{method:s}),(c.tokenEndpointAuthMethod===`private_key_jwt`||t1(t,c.tokenEndpointAuthMethod))&&!a)throw new k(`BAD_REQUEST`,{error_description:`client registered for ${c.tokenEndpointAuthMethod} must use client_assertion`,error:`invalid_client`});if(a||(c.tokenEndpointAuthMethod!==`none`&&!r&&x1(`client secret must be provided`,{method:s}),r&&!c.clientSecret&&x1(`public client, client secret should not be received`,{method:s}),r&&!await Xme(e,t,c.clientSecret,r)&&x1(`invalid client_secret`,{method:s})),the(c,i),o&&!b1(c,o))throw new k(`BAD_REQUEST`,{error_description:`client is not authorized to use grant type ${o}`,error:`unauthorized_client`});return c}function C1(e){if(e)return typeof e==`string`?JSON.parse(e):e}function w1(e){return{clientId:e?.clientId,clientSecret:e?.kind===`client_secret`?e.clientSecret:void 0,preVerified:e?.kind===`pre_verified`,authMethod:e?.method,confirmation:e?.kind===`pre_verified`?e.confirmation:void 0}}async function T1(e,t,n){let r={...e.body??{}};await $me(e.request,r);let i=e.request?.headers.get(`authorization`)??void 0;if(r.client_assertion_type||r.client_assertion){if(!r.client_assertion||!r.client_assertion_type)throw new k(`BAD_REQUEST`,{error_description:`client_assertion and client_assertion_type must both be provided`,error:`invalid_client`});let i=r.client_assertion,a=r.client_assertion_type,o=Vme(t,a);if(o){let s=await o.strategy.authenticate({ctx:e,opts:t,assertion:i,assertionType:a,clientId:r.client_id,expectedAudience:n});return{kind:`pre_verified`,method:o.method,clientId:s.clientId,confirmation:s.confirmation}}let{verifyClientAssertion:s}=await Promise.resolve().then(()=>bge).then(e=>e.o);return{kind:`pre_verified`,method:`private_key_jwt`,clientId:(await s(e,t,i,a,r.client_id,n)).clientId}}if(i&&!_1.test(i)){let e=Qme(i);if(!e)throw new k(`BAD_REQUEST`,{error:`invalid_request`,error_description:`Invalid authorization header format`});x1(`unsupported authorization scheme`,{scheme:e})}if(i&&_1.test(i)){let e=ehe(i);if(e)return{kind:`client_secret`,method:`client_secret_basic`,clientId:e.client_id,clientSecret:e.client_secret}}return r.client_id&&r.client_secret?{kind:`client_secret`,method:`client_secret_post`,clientId:r.client_id,clientSecret:r.client_secret}:r.client_id?{kind:`public`,method:`none`,clientId:r.client_id}:null}function E1(e){let t=e.split(` `).map(e=>e.trim()),n=/* @__PURE__ */ new Set;for(let e of t)(e===`login`||e===`consent`||e===`create`||e===`select_account`||e===`none`)&&n.add(e);return new Set(n)}function nhe(e){let t=e.redirectUris?.[0];if(!t)throw new O(`Client has no redirect URIs for sector identifier`);return new URL(t).host}async function rhe(e,t,n){return HW(`${nhe(t)}.${e}`,n)}async function D1(e,t,n){return t.subjectType===`pairwise`&&n.pairwiseSecret?rhe(e,t,n.pairwiseSecret):e}function O1(e){let t=Object.create(null);for(let n of new Set(e.keys())){let r=e.getAll(n);t[n]=r.length===1?r[0]:r}return t}function k1(e,t){if(!t)return!1;let n=a1(e);return n?n.getTime()>=t.getTime():!1}function A1(e,t){let n=new URLSearchParams(e),r=n.get(`prompt`)?.split(` `),i=r?.findIndex(e=>e===t)??-1;return i>=0&&(r?.splice(i,1),r?.length?n.set(`prompt`,r.join(` `)):n.delete(`prompt`)),n}function j1(e){let t=new URLSearchParams(e);return t.delete(`max_age`),t}function M1(e,t){if(e.tokenEndpointAuthMethod===`none`)return`pkce is required for public clients`;let n=t?.scopes??[],r=n.includes(`openid`),i=typeof t?.nonce==`string`&&t.nonce.length>0,a=r&&i;return n.includes(`offline_access`)&&!a?`pkce or OIDC nonce is required when requesting offline_access scope`:e.requirePKCE??!0?`pkce is required for this client`:!1}const ihe=/^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+$/i;function N1(e){let t=e.protocol.slice(0,-1),n=e.href.slice(e.protocol.length);return e.protocol!==`http:`&&e.protocol!==`https:`&&e.host.length===0&&n.startsWith(`/`)&&!n.startsWith(`//`)&&ihe.test(t)}const P1=tee().superRefine((e,t)=>{let n;try{n=new URL(e)}catch{return t.addIssue({code:`custom`,message:`URL must be parseable`,fatal:!0}),Ce}xq.includes(n.protocol)?t.addIssue({code:`custom`,message:`URL cannot use javascript:, data:, or vbscript: scheme`}):(e.includes(`#`)&&t.addIssue({code:`custom`,message:`Redirect URI must not contain a fragment component`}),n.protocol===`http:`&&!SY(n.host)&&t.addIssue({code:`custom`,message:`Redirect URI must use HTTPS (HTTP allowed only for loopback hosts)`}))}),ahe=/* @__PURE__ */ new Set([`iss`,`sub`,`aud`,`exp`,`nbf`,`iat`,`jti`,`auth_time`,`nonce`,`acr`,`amr`,`azp`,`sid`,`at_hash`,`c_hash`,`s_hash`]);function F1(e){if(!e)return{};let t=[],n=Object.create(null);for(let[r,i]of Object.entries(e))ahe.has(r)?t.push(r):n[r]=i;return t.length>0&&E.warn(`oauth-provider: stripped reserved id-token claim name(s): ${t.join(`, `)}. The AS owns these claim values.`),n}const I1=ve(A(),Me()).nullable(),ohe=xe({essential:Te().optional(),value:A().optional(),values:ye(A()).optional()}).nullable(),she=j({acr:ohe.optional()}).catchall(I1),che=xe({userinfo:ve(A(),I1).optional(),id_token:she.optional()});function lhe(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return}return e}function L1(e){let t=lhe(e),n=che.safeParse(t);return n.success?n.data:void 0}const R1=ue([A(),ve(A(),Me())]),uhe=R1,z1=R1.refine(e=>L1(e)!==void 0,{error:`claims must be a valid Claims request object`});function dhe(e){return e===void 0||L1(e)!==void 0}function B1(e,t){let n=L1(e)?.userinfo;if(!n)return[];let r=Object.keys(n);if(!t)return r;let i=new Set(t);return r.filter(e=>i.has(e))}function fhe(e,t){let n=L1(e);if(!n)return e===void 0;let r=n.id_token?.acr;if(!r||r.essential!==!0)return!0;let i=r.value===void 0||r.value===t,a=r.values===void 0||r.values.includes(t);return i&&a}function phe(e,t){let n=L1(e);if(!n)return;let r=new Set(t),i=Object.fromEntries(Object.entries(n.userinfo??{}).filter(([e])=>r.has(e))),a=Object.keys(i).length?{...n,userinfo:i}:Object.fromEntries(Object.entries(n).filter(([e])=>e!==`userinfo`));return Object.keys(a).length?a:void 0}function V1(e){let t=e.split(` `).filter(e=>e!==``);return t.length<=1?{}:{given:t.slice(0,-1).join(` `),family:t.at(-1)}}const H1={name:{scope:`profile`,resolve:e=>e.name??void 0},picture:{scope:`profile`,resolve:e=>e.image??void 0},given_name:{scope:`profile`,resolve:e=>V1(e.name).given},family_name:{scope:`profile`,resolve:e=>V1(e.name).family},email:{scope:`email`,resolve:e=>e.email??void 0},email_verified:{scope:`email`,resolve:e=>e.emailVerified??!1}},U1=Object.keys(H1);function W1(e){return e.advertisedMetadata?.claims_supported??e.claims??[]}const mhe=/* @__PURE__ */ new Set([`iss`,`sub`,`aud`,`exp`,`iat`,`jti`,`client_id`,`scope`,`auth_time`,`acr`,`amr`,`cnf`]);function hhe(e){if(!e)return{};let t=[],n={};for(let[r,i]of Object.entries(e))mhe.has(r)?t.push(r):n[r]=i;return t.length>0&&E.warn(`oauth-provider: stripped reserved access-token claim name(s): ${t.join(`, `)}. The AS owns these claim values.`),n}async function G1(e){let{ctx:t,opts:n,user:r,client:i,scopes:a,resources:o,referenceId:s,metadata:c,grantType:l,sessionId:u,perRequestClaims:d,resourcePolicyClaims:f}=e,p=await Hme(n,{ctx:t,opts:n,user:r,client:i,scopes:a,grantType:l,referenceId:s,sessionId:u,resources:o,metadata:c}),m=n.customAccessTokenClaims?await n.customAccessTokenClaims({user:r,scopes:a,resources:o,referenceId:s,metadata:c}):{};return hhe({...p,...d??{},...m,...f})}const K1=[`EdDSA`,`ES256`,`ES512`,`PS256`,`RS256`],ghe=new Set(K1);async function q1(e,t){let n=e.identifierValidator;if(n)return await n(t)?{ok:!0}:{ok:!1,reason:`resource identifier ${t} failed validation`};let r;try{r=new URL(t)}catch{return{ok:!1,reason:`resource identifier ${t} must be an absolute URI (RFC 8707 §2)`}}return r.hash?{ok:!1,reason:`resource identifier ${t} must not contain a URI fragment (RFC 8707 §2)`}:{ok:!0}}async function _he(e,t){let n=await q1(e,t);if(!n.ok)throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:n.reason})}const vhe=e=>`${e}/oauth2/userinfo`;async function yhe(e){if(!(e.headers.get(`content-type`)?.toLowerCase()??``).includes(`application/x-www-form-urlencoded`))return;let t;try{t=await e.clone().text()}catch{return}if(!t)return;let n=new URLSearchParams(t).getAll(`resource`).filter(e=>e.length>0);return n.length>0?n:void 0}function bhe(e){if(e!=null){if(typeof e==`string`)return[e];if(Array.isArray(e)){let t=e.filter(e=>typeof e==`string`&&e.length>0);return t.length>0?t:void 0}}}async function J1(e,t,n,r=[]){if(n===void 0)return!0;let i=Array.isArray(n)?n:[n];if(i.length>64)return!1;let a=new Set(r),o=/* @__PURE__ */ new Set;for(let e of i)a.has(e)||o.add(e);return o.size===0||(await Promise.all(Array.from(o,n=>$1(e,t,n)))).every(Boolean)}async function Y1(e,t,n){let r=bhe(n.resource),i=n.requestedScopes.includes(`openid`),a=vhe(e.context.baseURL??``);if(!r)return{audienceClaim:void 0,accessTokenTtl:null,refreshTokenTtl:null,signingAlgorithm:null,signingKeyId:null,rawCustomClaims:{},dpopBoundAccessTokensRequired:!1,effectiveScopes:[...n.requestedScopes]};let o=[...new Set(r)],s=[];for(let n of o){if(n===a)continue;let r=await $1(e,t,n);if(r){if(r.disabled)throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:`requested resource ${n} is disabled`});s.push(r)}else throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:`requested resource ${n} is not configured`})}let{value:c}=X1(t);c&&s.length>0&&await xhe(e,t,n.clientId,s);let l=[...n.requestedScopes];for(let e of s){if(e.allowedScopes===null||e.allowedScopes===void 0)continue;let t=new Set(e.allowedScopes),n=l.filter(e=>t.has(e));if(n.length===0)throw new D(`BAD_REQUEST`,{error:`invalid_scope`,error_description:`none of the requested scopes are allowed for resource ${e.identifier}`});l=n}let u=null,d=null;for(let e of s)e.accessTokenTtl!=null&&(u=u===null?e.accessTokenTtl:Math.min(u,e.accessTokenTtl)),e.refreshTokenTtl!=null&&(d=d===null?e.refreshTokenTtl:Math.min(d,e.refreshTokenTtl));let f=/* @__PURE__ */ new Set,p=/* @__PURE__ */ new Set;for(let e of s)e.signingAlgorithm&&f.add(e.signingAlgorithm),e.signingKeyId&&p.add(e.signingKeyId);if(f.size>1)throw new D(`BAD_REQUEST`,{error:`invalid_request`,error_description:`multi-resource request has conflicting signingAlgorithm pins; a single JWS signature cannot satisfy multiple algorithms`});if(p.size>1)throw new D(`BAD_REQUEST`,{error:`invalid_request`,error_description:`multi-resource request has conflicting signingKeyId pins; a single JWS signature cannot satisfy multiple key ids`});let m=f.values().next().value??null,h=p.values().next().value??null,g={};for(let e of s)e.customClaims&&typeof e.customClaims==`object`&&Object.assign(g,e.customClaims);let _=s.some(e=>e.dpopBoundAccessTokensRequired===!0),v=i?[...o,a]:o,y=[...new Set(v)];return{audienceClaim:y.length===1?y[0]:y,accessTokenTtl:u,refreshTokenTtl:d,signingAlgorithm:m,signingKeyId:h,rawCustomClaims:g,dpopBoundAccessTokensRequired:_,effectiveScopes:l}}async function xhe(e,t,n,r){if(r.length===0)return;let i=t.schema?.oauthClientResource?.modelName??`oauthClientResource`,a=await e.context.adapter.findMany({model:i,where:[{field:`clientId`,value:n}]}),o=new Set(a?.map(e=>e.resourceId)??[]),s=r.filter(e=>!o.has(e.identifier));if(s.length>0)throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:`client ${n} is not linked to resource(s) ${s.map(e=>e.identifier).join(`, `)}`})}async function She(e,t,n,r){if(r.length===0)return!1;let i=t.schema?.oauthClientResource?.modelName??`oauthClientResource`;return((await e.context.adapter.findMany({model:i,where:[{field:`clientId`,value:n},{field:`resourceId`,operator:`in`,value:r}],limit:1}))?.length??0)>0}async function Che(e,t,n){if(n.length===0)return{};let r=await e.context.adapter.findMany({model:t.schema?.oauthResource?.modelName??`oauthResource`,where:[{field:`identifier`,operator:`in`,value:n}]}),i=new Map(r.map(e=>[e.identifier,e])),a={};for(let e of n){let t=i.get(e);t?.customClaims&&typeof t.customClaims==`object`&&Object.assign(a,t.customClaims)}return a}function X1(e){return e.enforcePerClientResources===void 0?{value:!0,source:`default`}:{value:e.enforcePerClientResources,source:`explicit`}}const Z1=/* @__PURE__ */ new Map;function Q1(e){e===void 0?Z1.clear():Z1.delete(e)}async function $1(e,t,n){if(await Ohe(e.context,t),t.cachedResources?.has(n)){let e=Z1.get(n);if(e)return Object.assign({},e)}let r=await e.context.adapter.findOne({model:t.schema?.oauthResource?.modelName??`oauthResource`,where:[{field:`identifier`,value:n}]});return r&&t.cachedResources?.has(n)&&Z1.set(n,Object.assign({},r)),r}function whe(e){return e.name??e.identifier}function The(e){let t=[];if(e.resources?.length)for(let n of e.resources)t.push(typeof n==`string`?{identifier:n}:n);return t}function e0(e,t){return{identifier:e.identifier,name:whe(e),accessTokenTtl:e.accessTokenTtl??null,refreshTokenTtl:e.refreshTokenTtl??null,signingAlgorithm:e.signingAlgorithm??null,signingKeyId:e.signingKeyId??null,allowedScopes:e.allowedScopes??null,customClaims:e.customClaims??null,dpopBoundAccessTokensRequired:e.dpopBoundAccessTokensRequired??!1,disabled:e.disabled??!1,policyVersion:1,metadata:e.metadata??null,createdAt:t,updatedAt:t}}function Ehe(e,t,n){if(t===`overwrite`){let{identifier:t,createdAt:r,...i}=e0(e,n);return i}let r={updatedAt:n};return e.name!==void 0&&(r.name=e.name),e.accessTokenTtl!==void 0&&(r.accessTokenTtl=e.accessTokenTtl),e.refreshTokenTtl!==void 0&&(r.refreshTokenTtl=e.refreshTokenTtl),e.signingAlgorithm!==void 0&&(r.signingAlgorithm=e.signingAlgorithm),e.signingKeyId!==void 0&&(r.signingKeyId=e.signingKeyId),e.allowedScopes!==void 0&&(r.allowedScopes=e.allowedScopes),e.customClaims!==void 0&&(r.customClaims=e.customClaims),e.dpopBoundAccessTokensRequired!==void 0&&(r.dpopBoundAccessTokensRequired=e.dpopBoundAccessTokensRequired),e.disabled!==void 0&&(r.disabled=e.disabled),e.metadata!==void 0&&(r.metadata=e.metadata),r}const t0=/no such table|relation.*does not exist|table.*does(?: not|n[''']?t) exist/i;let n0=/* @__PURE__ */ new WeakMap;function Dhe(e){let t=e.adapter,n=n0.get(t);if(n)return n;let r={completed:!1,promise:null};return n0.set(t,r),r}async function r0(e,t){let n=The(t);if(n.length===0)return;let r=t.resourceSeedMode??`insertOnly`,i=t.schema?.oauthResource?.modelName??`oauthResource`;for(let a of n){let n=await q1(t,a.identifier);if(!n.ok){E.warn(`oauth-provider: skipping resource seed for ${a.identifier} — ${n.reason}`);continue}let o=a;if(o.signingAlgorithm!=null&&!ghe.has(o.signingAlgorithm)){E.warn(`oauth-provider: dropping unsupported signingAlgorithm "${o.signingAlgorithm}" for resource ${o.identifier} — must be one of ${K1.join(`, `)}. Continuing without an algorithm override.`);let{signingAlgorithm:e,...t}=o;o=t}let s;try{s=await e.adapter.findOne({model:i,where:[{field:`identifier`,value:o.identifier}]})}catch(e){let t=e instanceof Error?e.message:String(e);if(t0.test(t)){E.debug(`oauth-provider: oauthResource table not yet created; deferring resource seed to first access.`);return}throw e}let c=/* @__PURE__ */ new Date;if(s)r!==`insertOnly`&&await e.adapter.update({model:i,where:[{field:`identifier`,value:o.identifier}],update:Ehe(o,r,c)});else try{await e.adapter.create({model:i,data:e0(o,c)})}catch(e){let t=e instanceof Error?e.message:String(e);if(/unique|duplicate|UNIQUE/i.test(t)){E.debug(`oauth-provider: resource ${o.identifier} already inserted by a concurrent process — skipping.`);continue}if(t0.test(t)){E.debug(`oauth-provider: oauthResource table not yet created; deferring resource seed to first access.`);return}throw e}}}async function Ohe(e,t){let n=Dhe(e);if(n.completed!==!0)return n.promise===null&&(n.promise=r0(e,t).then(()=>{n.completed=!0}).catch(e=>{throw n.promise=null,e})),n.promise}function khe(e){let t=X1(e);E.info(`oauth-provider: enforcePerClientResources resolved to ${t.value} (${t.source})`)}function i0(e){return e.headers?.get(`dpop`)??void 0}function a0(e,t){return e.request?.url??`${e.context.baseURL}${t}`}const Ahe=/* @__PURE__ */ new Set([`openid`,`profile`,`email`,`offline_access`]);function o0(e){return Ahe.has(e)}function s0(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function c0(e,t,n,r){if(e.length===0)return;if(!t.includes(`client_credentials`))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`client_credentials_scopes requires the client_credentials grant`});if(n===`none`)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`public clients cannot be assigned client_credentials scopes`});let i=new Set(r.scopes??[]),a=e.filter(e=>!i.has(e)||o0(e));if(a.length>0)throw new D(`BAD_REQUEST`,{error:`invalid_scope`,error_description:`The following client_credentials scopes are invalid: ${a.join(`, `)}`})}const jhe=[`javascript:`,`data:`,`vbscript:`],l0=A().superRefine((e,t)=>{if(!URL.canParse(e))return t.addIssue({code:`custom`,message:`resource must be an absolute URI`,fatal:!0}),Ce;e.includes(`#`)?t.addIssue({code:`custom`,message:`resource must not contain a fragment`}):jhe.includes(new URL(e).protocol)&&t.addIssue({code:`custom`,message:`resource cannot use javascript:, data:, or vbscript: scheme`})}),Mhe=De([`none`,`consent`,`login`,`create`,`select_account`]),Nhe=A().superRefine((e,t)=>{let n=e.split(` `).map(e=>e.trim()).filter(Boolean),r=/* @__PURE__ */ new Set;if(!n.length)t.addIssue({code:`custom`,message:`prompt must include at least one value`});else{for(let e of n){let n=Mhe.safeParse(e);n.success?r.add(n.data):t.addIssue({code:`custom`,message:`unsupported prompt value: ${e}`})}r.has(`none`)&&r.size>1&&t.addIssue({code:`custom`,message:`prompt=none cannot be combined with other prompt values`})}}),u0=j({keys:ye(ve(A(),Me())).min(1)}),Phe=ue([ge(),A().trim().min(1)]).transform((e,t)=>{let n=typeof e==`number`?e:Number(e);return!Number.isInteger(n)||n<0?(t.addIssue({code:`custom`,message:`max_age must be a non-negative integer`}),Ce):n}),Fhe=A().regex(/^[A-Za-z0-9_-]{43}$/,`dpop_jkt must be a base64url-encoded SHA-256 JWK thumbprint`),d0=j({response_type:A().pipe(De([`code`])).optional(),request:A().optional(),request_uri:A().optional(),redirect_uri:P1.optional(),scope:A().optional(),state:A().optional(),client_id:A().min(1,`client_id is required`),prompt:Nhe.optional(),display:A().optional(),ui_locales:A().optional(),max_age:Phe.optional(),acr_values:A().optional(),login_hint:A().optional(),id_token_hint:A().optional(),code_challenge:A().optional(),code_challenge_method:A().pipe(De([`S256`])).optional(),nonce:A().optional(),claims:uhe.optional(),dpop_jkt:Fhe.optional(),resource:ue([l0,ye(l0).min(1)]).optional()}).passthrough(),Ihe=d0.extend({redirect_uri:P1.optional(),claims:z1.optional()}),Lhe=j({type:Ee(`authorization_code`),query:Ihe,sessionId:A(),userId:A(),referenceId:A().optional(),authTime:ge().optional(),resource:ye(A()).optional()}).passthrough(),f0=j({redirect_uris:ye(P1).min(1).optional(),scope:A().optional(),client_name:A().refine(e=>e.trim().length>0,`client_name cannot be empty`).optional(),client_uri:A().optional(),logo_uri:A().optional(),contacts:ye(A().min(1)).min(1).optional(),tos_uri:A().optional(),policy_uri:A().optional(),software_id:A().optional(),software_version:A().optional(),software_statement:A().optional(),post_logout_redirect_uris:ye(P1).min(1).optional(),backchannel_logout_uri:P1.optional(),backchannel_logout_session_required:Te().optional(),token_endpoint_auth_method:A().trim().min(1).optional(),jwks:u0.optional(),jwks_uri:A().optional(),grant_types:ye(A().trim().min(1)).min(1).optional(),response_types:ye(De([`code`])).optional(),application_type:De([`web`,`native`]).optional(),subject_type:De([`public`,`pairwise`]).optional(),dpop_bound_access_tokens:Te().optional(),resources:ye(l0).optional(),skip_consent:ree({error:`skip_consent cannot be set during dynamic client registration`}).optional()}),Rhe=f0.omit({skip_consent:!0}).extend({client_id:A().refine(e=>e.trim().length>0,`client_id cannot be empty`),client_secret:A().optional(),client_secret_expires_at:ge().int().nonnegative().optional(),client_id_issued_at:ge().int().nonnegative().optional()}).loose();function zhe(e,t,n=[]){let r=new Set(n),i={sub:e.id??void 0};for(let[n,a]of Object.entries(H1))(t.includes(a.scope)||r.has(n))&&(i[n]=a.resolve(e));return i}function p0(e,t){let n={};for(let[r,i]of Object.entries(e??{}))i!==void 0&&(t&&r in t||(n[r]=i));return n}function Bhe(e){let t=e.headers?.get(`authorization`),n=oZ(t),r=e.request?.method===`POST`?e.body?.access_token??void 0:void 0;if(n&&r)throw new D(`BAD_REQUEST`,{error_description:`Multiple access token transport methods are not allowed`,error:`invalid_request`});let i=n??(r?{scheme:`Bearer`,token:r}:void 0);return{authorization:i,token:i?.token}}async function Vhe(e,t){let{authorization:n}=Bhe(e);if(!n?.token)throw new D(`UNAUTHORIZED`,{error_description:`access token not found`,error:`invalid_request`});let{payload:r,requestedUserInfoClaims:i}=await F0(e,t,n.token);if(fZ(r)&&!e.request)throw new D(`UNAUTHORIZED`,{error_description:`DPoP-bound access token requires an HTTP request context`,error:`invalid_token`});try{await SZ({payload:r,authorization:n,proofJwt:i0(e),method:e.request?.method??`GET`,url:a0(e,`/oauth2/userinfo`),proofMaxAgeSeconds:t.dpop?.proofMaxAgeSeconds,signingAlgorithms:t.dpop?.signingAlgorithms,replayStore:rZ(e.context.internalAdapter)})}catch(e){throw xZ(e)?new D(`UNAUTHORIZED`,{error_description:e.message,error:e.code}):e}let a=r.scope?.split(` `);if(!a?.includes(`openid`))throw new D(`BAD_REQUEST`,{error_description:`Missing required scope`,error:`invalid_scope`});if(!r.sub)throw new D(`BAD_REQUEST`,{error_description:`user not found`,error:`invalid_request`});let o=await e.context.internalAdapter.findUserById(r.sub);if(!o)throw new D(`BAD_REQUEST`,{error_description:`user not found`,error:`invalid_request`});let s=zhe(o,a??[],i),c=r.client_id??r.azp,l=c&&(t.pairwiseSecret||Gme(t))?await u1(e,t,c):void 0;t.pairwiseSecret&&l&&(s.sub=await D1(o.id,l,t));let u=a?.length?await Wme(t,{ctx:e,opts:t,user:o,scopes:a,jwt:r,client:l??void 0,requestedClaims:i}):{},d=t.customUserInfoClaims&&a?.length?await t.customUserInfoClaims({user:o,scopes:a,jwt:r,requestedClaims:i}):{};return{...s,...p0(u,s),...p0(d),sub:s.sub}}const Hhe=Object.fromEntries(U1.map(e=>[e,void 0]));function m0(e){return dZ(e)?`DPoP`:`Bearer`}async function Uhe(e,t){let n=e.body.grant_type;if(!Q$(t).includes(n))throw new D(`BAD_REQUEST`,{error_description:`unsupported grant_type ${n}`,error:`unsupported_grant_type`});switch(n){case`authorization_code`:return uge(e,t);case`client_credentials`:return dge(e,t);case`refresh_token`:return fge(e,t);default:{let r=Bme(t,n);if(r)return r({ctx:e,opts:t,grantType:n,provider:Whe(e,t,n)});throw new D(`BAD_REQUEST`,{error_description:`unsupported grant_type ${n}`,error:`unsupported_grant_type`})}}}function Whe(e,t,n){return{getClient:n=>u1(e,t,n),authenticateClient:async r=>{let{clientId:i,clientSecret:a,preVerified:o,authMethod:s,confirmation:c}=w1(await T1(e,t,`${e.context.baseURL}${e.path??`/oauth2/token`}`));if(!i)throw new D(`BAD_REQUEST`,{error_description:`Missing required client_id`,error:`invalid_request`});if(r?.requireCredentials!==!1&&!a&&!o)throw new D(`BAD_REQUEST`,{error_description:`Missing required client credentials`,error:`invalid_client`});return{clientId:i,client:await S1(e,t,i,a,r?.scopes,o,n,s),method:s,confirmation:c}},issueTokens:r=>{if(!n)throw new D(`INTERNAL_SERVER_ERROR`,{error_description:`issueTokens requires a grant type; pass it to getOAuthProviderApi(ctx, opts, grantType).`,error:`server_error`});return D0(e,t,{...r,grantType:n})},hashToken:(e,n)=>h1(t.storeTokens,e,n),validateAccessToken:async(n,r)=>{let{validateAccessToken:i}=await Promise.resolve().then(()=>O0);return i(e,t,n,r)},requireActiveAccessToken:async(n,r)=>{let{requireActiveAccessToken:i}=await Promise.resolve().then(()=>O0);return i(e,t,n,r)}}}async function Ghe(e,t,n,r,i,a,o){let s=o?.iat??Math.floor(Date.now()/1e3),c=o?.exp??s+(t.accessTokenExpiresIn??3600),l=i1(e.context).options,u=n?.id??r.clientId;return I$(e,{options:l,header:{typ:`at+jwt`},signingKeyId:o?.signingKeyId??void 0,signingAlgorithm:o?.signingAlgorithm??void 0,payload:{...o?.accessTokenClaims??{},sub:u,aud:s1(i),client_id:r.clientId,azp:r.clientId,scope:a.join(` `),sid:o?.sid,iss:l?.jwt?.issuer??e.context.baseURL,iat:s,exp:c,jti:TH(32),...o?.confirmation?{cnf:o.confirmation}:{}}})}async function Khe(e,t){let n;n=t===`EdDSA`?`SHA-512`:t.endsWith(`384`)?`SHA-384`:t.endsWith(`512`)?`SHA-512`:`SHA-256`;let r=new Uint8Array(await crypto.subtle.digest(n,new TextEncoder().encode(e)));return iP(r.slice(0,r.length/2))}async function qhe(e,t,n,r,i,a,o,s,c,l){let u=Math.floor(Date.now()/1e3),d=u+(t.idTokenExpiresIn??36e3),f=await D1(n.id,r,t),p=s==null?void 0:Math.floor(s.getTime()/1e3),m=F1(t.customIdTokenClaims?await t.customIdTokenClaims({user:n,scopes:i,metadata:C1(r.metadata)}):void 0),h=t.disableJwtPlugin?void 0:i1(e.context).options,g=!t.disableJwtPlugin&&!h?.jwt?.sign?await F$(e,h):void 0,_=t.disableJwtPlugin?`HS256`:g?.alg??h?.jwks?.keyPairConfig?.alg,v=c?await Khe(c,_):void 0,y=!!(r.enableEndSession||r.backchannelLogoutUri),b={...Hhe,auth_time:p,acr:`0`,...m,at_hash:v,iss:h?.jwt?.issuer??e.context.baseURL,sub:f,aud:r.clientId,nonce:a,iat:u,exp:d,sid:y?o:void 0},x=F1(l);if(Object.assign(b,p0(x,b)),t.disableJwtPlugin&&!r.clientSecret)return;let S=t.disableJwtPlugin?await new GF(b).setProtectedHeader({alg:`HS256`}).sign(new TextEncoder().encode(await p1(e,t.storeClientSecret,r.clientSecret))):await I$(e,{options:h,payload:b,resolvedKey:g??void 0});if(S&&v&&h?.jwt?.sign){let e=rI(S);if(e.alg!==_)throw new D(`INTERNAL_SERVER_ERROR`,{error_description:`ID token signed with "${e.alg}" but at_hash was computed for "${_}". Ensure jwt.sign uses the algorithm declared in keyPairConfig.alg.`,error:`server_error`})}return S}async function h0(e,t,n){return(e.prefix?.refreshToken??``)+(e.formatRefreshToken?.encrypt?e.formatRefreshToken.encrypt(t,n):t)}async function g0(e,t){if(e.prefix?.refreshToken){if(t.startsWith(e.prefix.refreshToken))t=t.replace(e.prefix.refreshToken,``);else throw new D(`BAD_REQUEST`,{error_description:`refresh token not found`,error:`invalid_token`})}return e.formatRefreshToken?.decrypt?e.formatRefreshToken?.decrypt(t):{token:t}}async function Jhe(e,t,n,r,i,a,o,s,c,l,u,d){let f=a.iat??Math.floor(Date.now()/1e3),p=a?.exp??f+(t.accessTokenExpiresIn??3600),m=t.generateOpaqueAccessToken?await t.generateOpaqueAccessToken():TH(32,`A-Z`,`a-z`);return await e.context.adapter.create({model:`oauthAccessToken`,data:{token:await h1(t.storeTokens,m,`access_token`),clientId:r.clientId,sessionId:a?.sid,userId:n?.id,referenceId:s,authorizationCodeId:c,resources:o,refreshId:l,confirmation:u,requestedUserInfoClaims:d?.length?d:void 0,scopes:i,createdAt:/* @__PURE__ */ new Date(f*1e3),expiresAt:/* @__PURE__ */ new Date(p*1e3)}}),(t.prefix?.opaqueAccessToken??``)+m}async function _0(e,t,n){let r=await e.context.adapter.findMany({model:`oauthRefreshToken`,where:[{field:`clientId`,value:t},{field:`userId`,value:n}]});r.length&&await e.context.adapter.deleteMany({model:`oauthAccessToken`,where:[{field:`refreshId`,operator:`in`,value:r.map(e=>e.id)}]}),await e.context.adapter.deleteMany({model:`oauthRefreshToken`,where:[{field:`clientId`,value:t},{field:`userId`,value:n}]})}async function Yhe(e,t){let n=async n=>{try{await e.context.adapter.deleteMany({model:n,where:[{field:`authorizationCodeId`,value:t}]})}catch(t){e.context.logger.error(`authorization code replay cleanup failed`,t)}};await n(`oauthAccessToken`),await n(`oauthRefreshToken`)}async function v0(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=s.iat??Math.floor(Date.now()/1e3),m=s?.exp??p+(t.refreshTokenExpiresIn??2592e3),h=t.generateRefreshToken?await t.generateRefreshToken():TH(32,`A-Z`,`a-z`),g=s?.sid,_={token:await h1(t.storeTokens,h,`refresh_token`),clientId:a.clientId,sessionId:g,userId:n.id,referenceId:r,authorizationCodeId:i,authTime:l,confirmation:d,requestedUserInfoClaims:f?.length?f:void 0,scopes:o,resources:u,createdAt:/* @__PURE__ */ new Date(p*1e3),expiresAt:/* @__PURE__ */ new Date(m*1e3)};if(!c?.id)return{id:(await e.context.adapter.create({model:`oauthRefreshToken`,data:_})).id,token:await h0(t,h,g)};let v=/* @__PURE__ */ new Date(p*1e3),y={revoked:v,rotatedAt:v},b=t.refreshTokenReuseInterval??0;if(b>0&&(y.rotationReplayExpiresAt=/* @__PURE__ */ new Date((p+b)*1e3)),!await e.context.adapter.incrementOne({model:`oauthRefreshToken`,where:[{field:`id`,value:c.id},{field:`revoked`,operator:`eq`,value:null}],increment:{},set:y}))throw new D(`BAD_REQUEST`,{error_description:`invalid refresh token`,error:`invalid_grant`});return{id:(await e.context.adapter.create({model:`oauthRefreshToken`,data:_})).id,token:await h0(t,h,g)}}async function y0(e,t,n){let r=await Y1(e,t,{resource:n.resources,clientId:n.clientId,requestedScopes:n.requestedScopes}),i=r.accessTokenTtl===null?n.scopeExpiresAtSeconds:n.iat+r.accessTokenTtl,a=t.refreshTokenExpiresIn??2592e3,o=r.refreshTokenTtl===null?a:Math.min(r.refreshTokenTtl,a);return{audienceClaim:r.audienceClaim,effectiveScopes:r.effectiveScopes,accessTokenExpiresAtSeconds:Math.min(n.scopeExpiresAtSeconds,i),refreshTokenExpiresAtSeconds:n.iat+o,refreshResources:n.refreshToken?.resources??n.originalResources??n.resources,signingAlgorithm:r.signingAlgorithm,signingKeyId:r.signingKeyId,resourceCustomClaims:r.rawCustomClaims,dpopBoundAccessTokensRequired:r.dpopBoundAccessTokensRequired}}function b0(e){throw new D(`BAD_REQUEST`,{error:`invalid_dpop_proof`,error_description:e})}function Xhe(e){let t=C1(e.metadata)??{};return e.dpopBoundAccessTokens===!0||t.dpop_bound_access_tokens===!0}async function x0(e,t,n){let r=n.verificationValue?.query.dpop_jkt,i=dZ(n.refreshToken?.confirmation),a=i??r,o=i0(e),s=Xhe(n.client)||n.grantIssuance.dpopBoundAccessTokensRequired||!!r||!!i;if(!o)s&&b0(`DPoP proof header is required`);else try{return{jkt:(await yZ({proofJwt:o,method:`POST`,url:a0(e,`/oauth2/token`),expectedJkt:a,proofMaxAgeSeconds:t.dpop?.proofMaxAgeSeconds,signingAlgorithms:t.dpop?.signingAlgorithms,replayStore:rZ(e.context.internalAdapter)})).jkt}}catch(e){throw aZ(e)&&b0(e.message),e}}function S0(e){return e?[...new Set(e)].sort():void 0}function C0(e,t){let n=S0(e),r=S0(t);return n===void 0||r===void 0?n===r:n.length===r.length&&n.every((e,t)=>e===r[t])}function w0(e){if(e)return`jkt`in e?`jkt:${e.jkt}`:`x5t#S256:${e[`x5t#S256`]}`}function Zhe(e,t){return w0(e)===w0(t)}function Qhe(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.jkt==`string`&&t[`x5t#S256`]===void 0||typeof t[`x5t#S256`]==`string`&&t.jkt===void 0}function $he(e){return e===`Bearer`||e===`DPoP`}function ege(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.access_token==`string`&&typeof t.expires_in==`number`&&typeof t.expires_at==`number`&&$he(t.token_type)&&typeof t.scope==`string`&&(t.refresh_token===void 0||typeof t.refresh_token==`string`)&&(t.id_token===void 0||typeof t.id_token==`string`)}function tge(e){if(!e||typeof e!=`object`)return!1;let t=e,n=t.request;return!!n&&Array.isArray(n.effectiveScopes)&&n.effectiveScopes.every(e=>typeof e==`string`)&&(n.requestedResources===void 0||Array.isArray(n.requestedResources)&&n.requestedResources.every(e=>typeof e==`string`))&&(n.confirmation===void 0||Qhe(n.confirmation))&&ege(t.response)}function T0(e){let t=S0(e.requestedResources);return{effectiveScopes:S0(e.effectiveScopes)??[],...t?{requestedResources:t}:{},...e.confirmation?{confirmation:e.confirmation}:{}}}function nge(e,t){return C0(e.effectiveScopes,t.effectiveScopes)&&C0(e.requestedResources,t.requestedResources)&&Zhe(e.confirmation,t.confirmation)}async function rge(e,t){return zW({key:e.context.secretConfig,data:JSON.stringify(t)})}async function ige(e,t){let n=await BW({key:e.context.secretConfig,data:t}),r=JSON.parse(n);if(tge(r))return r}function E0(e){return!!e.rotatedAt&&!!e.rotationReplayExpiresAt&&e.rotationReplayExpiresAt>=/* @__PURE__ */ new Date}async function age(e,t,n,r,i){(t.refreshTokenReuseInterval??0)<=0||await e.context.adapter.update({model:`oauthRefreshToken`,where:[{field:`id`,value:n.id}],update:{rotationReplayResponse:await rge(e,{request:r,response:i})}})}async function oge(e,t,n){if(E0(t)&&t.rotationReplayResponse)try{let r=await ige(e,t.rotationReplayResponse);return!r||!nge(r.request,n)?void 0:r.response}catch(t){e.context.logger.error(`refresh token rotation replay failed`,t);return}}async function sge(e,t,n){let r=Math.floor(Date.now()/1e3),i=await y0(e,t,{clientId:n.client.clientId,requestedScopes:n.scopes,resources:n.resources,refreshToken:n.refreshToken,iat:r,scopeExpiresAtSeconds:r+(t.accessTokenExpiresIn??3600)}),a=await x0(e,t,{client:n.client,grantIssuance:i,refreshToken:n.refreshToken});return T0({effectiveScopes:i.effectiveScopes,requestedResources:n.resources,confirmation:a})}function cge(e,t){let n=Math.floor(Date.now()/1e3);return e.json({...t,expires_in:Math.max(0,t.expires_at-n)})}async function D0(e,t,n){let{client:r,scopes:i,user:a,grantType:o,referenceId:s,sessionId:c,nonce:l,refreshToken:u,authTime:d,verificationValue:f}=n,p=Math.floor(Date.now()/1e3),m=p+(a?t.accessTokenExpiresIn??3600:t.m2mAccessTokenExpiresIn??3600),h=t.scopeExpirations?i.map(e=>t.scopeExpirations?.[e]?N$(t.scopeExpirations[e],p):m).reduce((e,t)=>e<t?e:t,m):m,g=await y0(e,t,{clientId:r.clientId,requestedScopes:i,resources:n.resources,originalResources:n.originalResources,refreshToken:n.refreshToken,iat:p,scopeExpiresAtSeconds:h}),_=g.audienceClaim,v=g.effectiveScopes,y=g.accessTokenExpiresAtSeconds,b=g.refreshTokenExpiresAtSeconds,x=a&&b1(r,`refresh_token`)&&(u?.scopes?.includes(`offline_access`)||i.includes(`offline_access`)),S=_&&!t.disableJwtPlugin,ee=a&&v.includes(`openid`),te=C1(r.metadata),C=ee&&a?{...await Ume(t,{ctx:e,opts:t,user:a,client:r,scopes:v,grantType:o,referenceId:s,sessionId:c,resources:n.resources,metadata:te}),...n.idTokenClaims??{}}:void 0,ne=t.customTokenResponseFields?await t.customTokenResponseFields({grantType:o,user:a,scopes:v,metadata:te,verificationValue:f}):void 0,w=g.refreshResources,T=n.confirmation??await x0(e,t,{client:r,grantIssuance:g,verificationValue:f,refreshToken:u}),re=n.requestedUserInfoClaims??u?.requestedUserInfoClaims??[],ie=x&&a&&!S?await v0(e,t,a,s,n.authorizationCodeId,r,v,{iat:p,exp:b,sid:c},u,d,w,T,re):void 0,E=S?await G1({ctx:e,opts:t,user:a,client:r,scopes:v,grantType:o,sessionId:c,resources:n.resources,referenceId:s,metadata:te,perRequestClaims:n.accessTokenClaims,resourcePolicyClaims:g.resourceCustomClaims}):void 0,[ae,oe]=await Promise.all([S?Ghe(e,t,a,r,_,v,{iat:p,exp:y,sid:c,signingAlgorithm:g.signingAlgorithm,signingKeyId:g.signingKeyId,accessTokenClaims:E,confirmation:T}):Jhe(e,t,a,r,v,{iat:p,exp:y,sid:c},n?.resources,s,n.authorizationCodeId,ie?.id,T,re),ie||(x&&a?v0(e,t,a,s,n.authorizationCodeId,r,v,{iat:p,exp:b,sid:c},u,d,w,T,re):void 0)]),se=ee?await qhe(e,t,a,r,v,l,c,d,ae,C):void 0,ce={...ne,...n.tokenResponse??{},access_token:ae,expires_in:y-p,expires_at:y,token_type:m0(T),refresh_token:oe?.token,scope:v.join(` `),id_token:se};if(u?.id&&oe?.id)try{await age(e,t,u,T0({effectiveScopes:v,requestedResources:n.resources,confirmation:T}),ce)}catch(t){e.context.logger.error(`failed to store refresh token rotation replay`,t)}return e.json(ce)}async function lge(e,t,n,r,i,a){let o=await h1(t.storeTokens,n,`authorization_code`),s=await e.context.internalAdapter.consumeVerificationValue(o);if(!s)throw await Yhe(e,o),new D(`BAD_REQUEST`,{error_description:`invalid code`,error:`invalid_grant`});let c;try{c=JSON.parse(s.value)}catch{throw new D(`BAD_REQUEST`,{error_description:`malformed verification value`,error:`invalid_grant`})}let l=Lhe.safeParse(c);if(!l.success)throw new D(`BAD_REQUEST`,{error_description:`malformed verification value`,error:`invalid_grant`});let u=l.data;if(u.query.client_id!==r)throw new D(`BAD_REQUEST`,{error_description:`invalid client_id`,error:`invalid_grant`});let d=u.query.redirect_uri;if(d){if(!i)throw new D(`BAD_REQUEST`,{error_description:`redirect_uri is required`,error:`invalid_request`});if(d!==i)throw new D(`BAD_REQUEST`,{error_description:`redirect_uri mismatch`,error:`invalid_grant`})}else if(i)throw new D(`BAD_REQUEST`,{error_description:`redirect_uri mismatch`,error:`invalid_grant`});let f=o1(u.resource)??o1(u.query.resource),p=a??f;if(a&&f){let e=new Set(a),t=new Set(f);for(let n of e)if(!t.has(n))throw new D(`BAD_REQUEST`,{error_description:`requested resource not authorized`,error:`invalid_target`})}return{verificationValue:u,effectiveResources:p,authorizedResources:f,authorizationCodeId:o}}async function uge(e,t){let{clientId:n,clientSecret:r,preVerified:i,authMethod:a}=w1(await T1(e,t,`${e.context.baseURL}/oauth2/token`)),{code:o,code_verifier:s,redirect_uri:c,resource:l}=e.body,u=o1(l);if(!n)throw new D(`BAD_REQUEST`,{error_description:`client_id is required`,error:`invalid_request`});if(!o)throw new D(`BAD_REQUEST`,{error_description:`code is required`,error:`invalid_request`});let d=n&&r,f=n&&o&&s;if(!d&&!f&&!i)throw new D(`BAD_REQUEST`,{error_description:`Either code_verifier or client_secret is required`,error:`invalid_request`});let{verificationValue:p,effectiveResources:m,authorizedResources:h,authorizationCodeId:g}=await lge(e,t,o,n,c,u),_=p.query.scope?.split(` `);if(!_)throw new D(`INTERNAL_SERVER_ERROR`,{error_description:`verification scope unset`,error:`invalid_scope`});let v=await S1(e,t,n,r,_,i,`authorization_code`,a);if(M1(v,{scopes:(p.query?.scope)?.split(` `)||[],nonce:p.query?.nonce})){if(!f)throw new D(`BAD_REQUEST`,{error_description:`PKCE is required for this client`,error:`invalid_request`})}else if(!(f||d||i))throw new D(`BAD_REQUEST`,{error_description:`Either PKCE (code_verifier) or client authentication (client_secret or client_assertion) is required`,error:`invalid_request`});let y=!!p.query?.code_challenge,b=!!s;if(y||b){if(y&&!b)throw new D(`UNAUTHORIZED`,{error_description:`code_verifier required because PKCE was used in authorization`,error:`invalid_request`});if(!y&&b)throw new D(`UNAUTHORIZED`,{error_description:`code_verifier provided but PKCE was not used in authorization`,error:`invalid_request`});if((p.query?.code_challenge_method===`S256`?await JY(s):void 0)!==p.query?.code_challenge)throw new D(`UNAUTHORIZED`,{error_description:`code verification failed`,error:`invalid_request`})}if(!p.userId)throw new D(`BAD_REQUEST`,{error_description:`missing user, user may have been deleted`,error:`invalid_user`});let x=await e.context.internalAdapter.findUserById(p.userId);if(!x)throw new D(`BAD_REQUEST`,{error_description:`missing user, user may have been deleted`,error:`invalid_user`});let S=await e.context.adapter.findOne({model:`session`,where:[{field:`id`,value:p.sessionId}]});if(!S||S.expiresAt</* @__PURE__ */ new Date)throw new D(`BAD_REQUEST`,{error_description:`session no longer exists`,error:`invalid_request`});let ee=p.authTime==null?Jme(S):a1(p.authTime),te=B1(p.query.claims,W1(t));return D0(e,t,{client:v,scopes:p.query.scope?.split(` `)??[],user:x,grantType:`authorization_code`,referenceId:p.referenceId,sessionId:S.id,nonce:p.query?.nonce,authTime:ee,verificationValue:p,authorizationCodeId:g,requestedUserInfoClaims:te,resources:m,originalResources:h})}async function dge(e,t){let{clientId:n,clientSecret:r,preVerified:i,authMethod:a}=w1(await T1(e,t,`${e.context.baseURL}/oauth2/token`)),{scope:o,resource:s}=e.body,c=o1(s);if(!n)throw new D(`BAD_REQUEST`,{error_description:`Missing required client_id`,error:`invalid_request`});let l=await S1(e,t,n,r,void 0,i,`client_credentials`,a);if(l.tokenEndpointAuthMethod===`none`)throw new D(`BAD_REQUEST`,{error_description:`public clients cannot use the client_credentials grant`,error:`unauthorized_client`});let u=l.clientCredentialsScopes;if(!u?.length)throw new D(`BAD_REQUEST`,{error_description:`client has no authorized client_credentials scopes`,error:`unauthorized_client`});let d=o?.split(` `);if(d){let e=new Set(u),t=d.filter(t=>!e.has(t)||o0(t));if(t.length)throw new D(`BAD_REQUEST`,{error_description:`The following scopes are invalid: ${t.join(`, `)}`,error:`invalid_scope`})}return d||=[...u],D0(e,t,{client:l,scopes:d,grantType:`client_credentials`,resources:c})}async function fge(e,t){let{clientId:n,clientSecret:r,preVerified:i,authMethod:a}=w1(await T1(e,t,`${e.context.baseURL}/oauth2/token`)),{refresh_token:o,scope:s,resource:c}=e.body,l=o1(c);if(!n)throw new D(`BAD_REQUEST`,{error_description:`Missing required client_id`,error:`invalid_request`});if(!o)throw new D(`BAD_REQUEST`,{error_description:`Missing a required refresh_token for refresh_token grant`,error:`invalid_request`});let u=await g0(t,o),d=await e.context.adapter.findOne({model:`oauthRefreshToken`,where:[{field:`token`,value:await g1(t.storeTokens,u.token,`refresh_token`)}]});if(!d)throw new D(`BAD_REQUEST`,{error_description:`session not found`,error:`invalid_grant`});if(d.clientId!==n||d.expiresAt</* @__PURE__ */ new Date)throw new D(`BAD_REQUEST`,{error_description:`invalid refresh token`,error:`invalid_grant`});if(l&&d.resources&&!l.every(e=>d.resources?.includes(e)))throw new D(`BAD_REQUEST`,{error_description:`requested resource invalid`,error:`invalid_target`});let f=d?.scopes,p=s?.split(` `);if(p){let e=new Set(f);for(let t of p)if(!e.has(t))throw new D(`BAD_REQUEST`,{error_description:`unable to issue scope ${t}`,error:`invalid_scope`})}let m=await S1(e,t,n,r,p??f,i,`refresh_token`,a);if(d.revoked){if(E0(d)){let n=await oge(e,d,await sge(e,t,{client:m,refreshToken:d,scopes:p??f,resources:l??d.resources}));if(n)return cge(e,n);throw new D(`BAD_REQUEST`,{error_description:`invalid refresh token`,error:`invalid_grant`})}throw await _0(e,n,d.userId),new D(`BAD_REQUEST`,{error_description:`invalid refresh token`,error:`invalid_grant`})}let h=await e.context.internalAdapter.findUserById(d.userId);if(!h)throw new D(`BAD_REQUEST`,{error_description:`user not found`,error:`invalid_request`});let g=d.authTime==null?void 0:a1(d.authTime);return D0(e,t,{client:m,scopes:p??f,user:h,grantType:`refresh_token`,referenceId:d.referenceId,authorizationCodeId:d.authorizationCodeId,sessionId:d.sessionId,refreshToken:d,resources:l??d.resources,authTime:g,requestedUserInfoClaims:d.requestedUserInfoClaims})}var O0=/* @__PURE__ */ B$({introspectEndpoint:()=>L0,requireActiveAccessToken:()=>yge,requireActiveAccessTokenWithClaims:()=>F0,validateAccessToken:()=>P0});const k0=`Invalid access token`,pge=`Bearer error="invalid_token", error_description="${k0}"`;function A0(){return{payload:{active:!1},requestedUserInfoClaims:[]}}function mge(e,t){return e==null?[]:(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`&&e!==t)}async function j0(e,t,n){let{introspectingClientId:r,issuerClientId:i,audienceResources:a}=n;return!r||r===i||a.length!==0&&She(e,t,r,a)}async function hge(e,t,n,r){let i=t.disableJwtPlugin?void 0:i1(e.context),a=i?.options,o=`${e.context.baseURL??``}/oauth2/userinfo`,s=a?.jwt?.issuer??e.context.baseURL,c;try{c=(await UF(n,QF(await FZ(n,{jwksFetch:a?.jwks?.remoteUrl?a.jwks.remoteUrl:async()=>(await i?.endpoints.getJwks(e))?.response,jwksCacheKey:i})),{issuer:s})).payload}catch(e){if(e instanceof Error){if(e.name===`TypeError`||e.name===`JWSInvalid`)throw new k(`BAD_REQUEST`,{error_description:`invalid JWT signature`,error:`invalid_request`});if(e.name===`JWTExpired`||e.name===`JWTInvalid`)return{active:!1};throw e}throw Error(e)}let l=c.aud;if(!await J1(e,t,l,[o])||!c.azp)return{active:!1};let u=await u1(e,t,c.azp);if(!u||u?.disabled||!await j0(e,t,{introspectingClientId:r,issuerClientId:c.azp,audienceResources:mge(l,o)}))return{active:!1};let d=c.sid;if(d){let t=await e.context.adapter.findOne({model:`session`,where:[{field:`id`,value:d}]});if(!t||t.expiresAt</* @__PURE__ */ new Date)return{active:!1}}return c.client_id=c.azp,c.active=!0,c.token_type=m0(c.cnf),c}async function gge(e,t,n,r){let i=n;if(t.prefix?.opaqueAccessToken){if(i.startsWith(t.prefix.opaqueAccessToken))i=i.replace(t.prefix.opaqueAccessToken,``);else throw new k(`BAD_REQUEST`,{error_description:`opaque access token not found`,error:`invalid_request`})}let a=await e.context.adapter.findOne({model:`oauthAccessToken`,where:[{field:`token`,value:await g1(t.storeTokens,i,`access_token`)}]});if(!a)throw new k(`BAD_REQUEST`,{error_description:`opaque access token not found`,error:`invalid_token`});if(!a.expiresAt||a.expiresAt</* @__PURE__ */ new Date||a.revoked)return A0();let o=Array.isArray(a.resources)?a.resources:void 0,s;if(a.clientId&&(s=await u1(e,t,a.clientId),!s||s?.disabled||!await j0(e,t,{introspectingClientId:r,issuerClientId:a.clientId,audienceResources:o??[]})))return A0();let c=a.sessionId??void 0;if(c){let t=await e.context.adapter.findOne({model:`session`,where:[{field:`id`,value:c}]});if(!t||t.expiresAt</* @__PURE__ */ new Date)return A0()}let l;a.userId&&(l=await e.context.internalAdapter.findUserById(a?.userId));let u=`${e.context.baseURL}/oauth2/userinfo`;if(o?.length&&!await J1(e,t,o,[u]))return A0();let d=o?[...o]:void 0;d?.length&&a.scopes?.includes(`openid`)&&(d.includes(u)||d.push(u));let f=o?.length?await Che(e,t,o):{},p=s?await G1({ctx:e,opts:t,user:l,client:s,scopes:a.scopes??[],grantType:void 0,sessionId:void 0,resources:o,referenceId:a.referenceId,metadata:C1(s.metadata),perRequestClaims:void 0,resourcePolicyClaims:f}):{},m=(t.disableJwtPlugin?void 0:i1(e.context))?.options;return{payload:{...p,active:!0,iss:m?.jwt?.issuer??e.context.baseURL,aud:s1(d),client_id:a.clientId,azp:a.clientId,sub:l?.id,sid:c,exp:Math.floor(new Date(a.expiresAt).getTime()/1e3),iat:Math.floor(new Date(a.createdAt).getTime()/1e3),scope:a.scopes?.join(` `),token_type:m0(a.confirmation),...a.confirmation?{cnf:a.confirmation}:{}},requestedUserInfoClaims:a.requestedUserInfoClaims??[]}}async function _ge(e,t,n,r){let i=await e.context.adapter.findOne({model:`oauthRefreshToken`,where:[{field:`token`,value:await g1(t.storeTokens,n,`refresh_token`)}]});if(!i)throw new k(`BAD_REQUEST`,{error_description:`token not found`,error:`invalid_token`});if(!i.clientId||i.clientId!==r||!i.expiresAt||i.expiresAt</* @__PURE__ */ new Date||i.revoked)return{active:!1};let a=i.sessionId??void 0;if(a){let t=await e.context.adapter.findOne({model:`session`,where:[{field:`id`,value:a}]});(!t||t.expiresAt</* @__PURE__ */ new Date)&&(a=void 0)}let o;return i.userId&&(o=await e.context.internalAdapter.findUserById(i?.userId)??void 0),{active:!0,client_id:r,iss:((t.disableJwtPlugin?void 0:i1(e.context))?.options)?.jwt?.issuer??e.context.baseURL,sub:o?.id,sid:a,exp:Math.floor(new Date(i.expiresAt).getTime()/1e3),iat:Math.floor(new Date(i.createdAt).getTime()/1e3),scope:i.scopes?.join(` `),token_type:m0(i.confirmation),...i.confirmation?{cnf:i.confirmation}:{}}}function M0(){return new k(`UNAUTHORIZED`,{error_description:k0,error:`invalid_token`},{"WWW-Authenticate":pge})}function vge(e){return e.status===`BAD_REQUEST`||e.body?.error===`invalid_token`}async function N0(e,t,n,r){try{return{payload:await hge(e,t,n,r),requestedUserInfoClaims:[]}}catch(e){if(!(e instanceof k))throw e instanceof Error?e:Error(e)}try{return await gge(e,t,n,r)}catch(e){if(!(e instanceof k))throw e instanceof Error?e:Error(`Unknown error validating access token`)}throw M0()}async function P0(e,t,n,r){return(await N0(e,t,n,r)).payload}async function yge(e,t,n,r){let i=await P0(e,t,n,r);if(i.active)return i;throw M0()}async function F0(e,t,n,r){let{payload:i,requestedUserInfoClaims:a}=await N0(e,t,n,r);if(i.active)return{payload:i,requestedUserInfoClaims:a};throw M0()}async function I0(e,t,n,r){if(!n.active||!n.sub)return n;let i=n.client_id??n.azp;if(!i)return n;let a=i===r.clientId?r:await u1(e,t,i);if(!a)return n;let o=await D1(n.sub,a,t);return{...n,sub:o}}async function L0(e,t){let{token:n,token_type_hint:r}=e.body;r!==`access_token`&&r!==`refresh_token`&&(r=void 0);let{clientId:i,clientSecret:a,preVerified:o,authMethod:s}=w1(await T1(e,t,`${e.context.baseURL}/oauth2/introspect`));if(!i||!a&&!o)throw new k(`UNAUTHORIZED`,{error_description:`missing required credentials`,error:`invalid_client`});if(n&&typeof n==`string`&&(n=sZ(n)),!n?.length)throw new k(`BAD_REQUEST`,{error_description:`missing a required token for introspection`,error:`invalid_request`});let c=await S1(e,t,i,a,void 0,o,void 0,s);try{if(r===void 0||r===`access_token`)try{return I0(e,t,await P0(e,t,n,c.clientId),c)}catch(e){if(e instanceof k){if(r===`access_token`)throw e}else if(e instanceof Error)throw e;else throw Error(e)}if(r===void 0||r===`refresh_token`)try{return I0(e,t,await _ge(e,t,(await g0(t,n)).token,c.clientId),c)}catch(e){if(e instanceof k){if(r===`refresh_token`)throw e}else if(e instanceof Error)throw e;else throw Error(e)}throw new k(`BAD_REQUEST`,{error_description:`token not found`,error:`invalid_request`})}catch(e){if(e instanceof k){if(vge(e))return{active:!1};throw e}throw e instanceof Error?(E.error(`Introspection error:`,e.message,e.stack),new k(`INTERNAL_SERVER_ERROR`)):(E.error(`Introspection error:`,e),new k(`INTERNAL_SERVER_ERROR`))}}function R0(e){return e?.get(`sec-fetch-mode`)===`cors`}var bge=/* @__PURE__ */ e({a:()=>B2,c:()=>g2,d:()=>s2,f:()=>a2,h:()=>o2,i:()=>s4,l:()=>h2,n:()=>t4,o:()=>$ge,r:()=>i4,s:()=>O2,t:()=>p4,u:()=>r2});async function xge(e,t,n){let r=await r4.get(),i=r?.query;if(!i)throw new D(`BAD_REQUEST`,{error_description:`missing oauth query`,error:`invalid_request`});let a=new URLSearchParams(i),o=a.get(`scope`)?.split(` `)??[],s=W1(t),c=B1(a.get(`claims`),s),l=a.get(`client_id`);if(!l)throw new D(`BAD_REQUEST`,{error_description:`client_id is required`,error:`invalid_client`});let u=e.body.scope?.split(` `);if(u&&!u.every(e=>o?.includes(e)))throw new D(`BAD_REQUEST`,{error_description:`Scope not originally requested`,error:`invalid_request`});let d=e.body.claims,f=d===void 0?c:B1(d,s);if(d!==void 0&&!f.every(e=>c.includes(e)))throw new D(`BAD_REQUEST`,{error_description:`Claim not originally requested`,error:`invalid_request`});if(e.body.accept!==!0)return{redirect:!0,url:c4(a.get(`redirect_uri`)??``,`access_denied`,`User denied access`,a.get(`state`)??void 0,p4(e,t))};let p=await zJ(e),m=E1(a.get(`prompt`)??``).has(`login`),h=m&&k1(p?.session.createdAt,r?.signedQueryIssuedAt);if(m&&!h)return e?.headers?.set(`accept`,`application/json`),e.query=O1(a),await n(e);let g=await t.postLogin?.consentReferenceId?.({user:p?.user,session:p?.session,scopes:u??o}),_=await e.context.adapter.findOne({model:`oauthConsent`,where:[{field:`clientId`,value:l},{field:`userId`,value:p?.user.id},...g?[{field:`referenceId`,value:g}]:[]]}),v=Math.floor(Date.now()/1e3),y=a.getAll(`resource`),b={clientId:l,userId:p?.user.id,scopes:u??o,requestedUserInfoClaims:f,createdAt:/* @__PURE__ */ new Date(v*1e3),updatedAt:/* @__PURE__ */ new Date(v*1e3),resources:y.length?y:void 0,referenceId:g};if(_?.id?await e.context.adapter.update({model:`oauthConsent`,where:[{field:`id`,value:_.id}],update:{resources:b.resources,scopes:b.scopes,requestedUserInfoClaims:b.requestedUserInfoClaims,updatedAt:/* @__PURE__ */ new Date(v*1e3)}}):await e.context.adapter.create({model:`oauthConsent`,data:{...b,scopes:b.scopes}}),u&&a.set(`scope`,b.scopes.join(` `)),d!==void 0){let e=phe(a.get(`claims`),f);e?a.set(`claims`,JSON.stringify(e)):a.delete(`claims`)}e?.headers?.set(`accept`,`application/json`);let x=A1(a,`consent`);return h&&(x=A1(x,`login`),x=j1(x)),e.query=O1(x),await n(e,{postLogin:r?.postLoginClearedForSession!==void 0&&r.postLoginClearedForSession===p?.session.id})}async function Sge(e,t){if(e.body.selected===!0)return await Cge(e,t);if(e.body.created===!0)return await wge(e,t);if(e.body.postLogin===!0)return await Tge(e,t);throw new D(`BAD_REQUEST`,{error_description:`Missing parameters`,error:`invalid_request`})}async function Cge(e,t){let n=(await r4.get())?.query;if(!n)throw new D(`BAD_REQUEST`,{error_description:`missing oauth query`,error:`invalid_request`});return e.headers?.set(`accept`,`application/json`),e.query=O1(A1(new URLSearchParams(n),`select_account`)),await t(e)}async function wge(e,t){let n=(await r4.get())?.query;if(!n)throw new D(`BAD_REQUEST`,{error_description:`missing oauth query`,error:`invalid_request`});let r=new URLSearchParams(n);return e.headers?.set(`accept`,`application/json`),e.query=O1(A1(r,`create`)),await t(e)}async function Tge(e,t){let n=await r4.get(),r=n?.query;if(!r)throw new D(`BAD_REQUEST`,{error_description:`missing oauth query`,error:`invalid_request`});let i=new URLSearchParams(r);e.headers?.set(`accept`,`application/json`),e.query=O1(i);let a=await zJ(e);return await t(e,{postLogin:n?.postLoginClearedForSession!==void 0&&n.postLoginClearedForSession===a?.session.id})}async function Ege(e,t,n,r){return I$(e,{options:t,payload:{...r,events:{"http://schemas.openid.net/event/backchannel-logout":{}}},header:{typ:`logout+jwt`},resolvedKey:n??void 0})}async function Dge(e,t,n){let{sessionId:r,userId:i}=n;if(!i)return null;let a=e.context.logger;try{let n=await $V(e.context.adapter),o=[{field:`sessionId`,value:r}],[s,c]=await Promise.all([n.findMany({model:`oauthAccessToken`,where:o}),n.findMany({model:`oauthRefreshToken`,where:o})]),l=/* @__PURE__ */ new Set;for(let e of s)l.add(e.clientId);for(let e of c)l.add(e.clientId);if(l.size===0)return null;let u=await n.findMany({model:`oauthClient`,where:[{field:`clientId`,operator:`in`,value:Array.from(l)}]}),d=s.filter(e=>!e.revoked).map(e=>e.id),f=c.filter(e=>!e.revoked&&!e.scopes?.includes(`offline_access`)).map(e=>e.id),p=t.disableJwtPlugin?[]:u.filter(e=>!!e.backchannelLogoutUri&&!e.disabled);return{accessTokenIds:d,refreshTokenIds:f,sessionId:r,targets:(await Promise.all(p.map(async e=>{try{return{client:e,sub:await D1(i,e,t)}}catch(t){return a.warn(`back-channel logout: unable to resolve subject for client ${e.clientId}`,t),null}}))).filter(e=>e!==null)}}catch(e){return a.error(`back-channel logout planning failed`,e),null}}async function Oge(e,t){let n=/* @__PURE__ */ new Date,r=await $V(e.context.adapter),i=await Promise.allSettled([t.accessTokenIds.length>0?r.updateMany({model:`oauthAccessToken`,where:[{field:`id`,operator:`in`,value:t.accessTokenIds}],update:{revoked:n}}):Promise.resolve(),t.refreshTokenIds.length>0?r.updateMany({model:`oauthRefreshToken`,where:[{field:`id`,operator:`in`,value:t.refreshTokenIds}],update:{revoked:n}}):Promise.resolve()]);for(let t of i)t.status===`rejected`&&e.context.logger.error(`back-channel logout: token revocation update failed`,t.reason);t.targets.length>0&&await kge(e,t)}async function kge(e,t){let n=e.context.logger,r=i1(e.context)?.options,i=r?.jwt?.issuer??e.context.baseURL,a=Math.floor(Date.now()/1e3),o=a+120,s=r?.jwt?.sign?null:await F$(e,r);await Promise.allSettled(t.targets.map(async({client:c,sub:l})=>{try{let u=TH(32,`a-z`,`A-Z`,`0-9`),d=await Ege(e,r,s,{iss:i,aud:c.clientId,sub:l,sid:t.sessionId,iat:a,exp:o,jti:u}),f=await fetch(c.backchannelLogoutUri,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:new URLSearchParams({logout_token:d}),signal:AbortSignal.timeout(5e3),redirect:`error`});f.status!==200&&f.status!==204&&n.warn(`back-channel logout to client ${c.clientId} returned ${f.status}`)}catch(e){n.warn(`back-channel logout to client ${c.clientId} failed`,e)}}))}function z0(e){return e.replace(/[&<>"']/g,e=>{switch(e){case`&`:return`&amp;`;case`<`:return`&lt;`;case`>`:return`&gt;`;case`"`:return`&quot;`;case`'`:return`&#39;`;default:return e}})}function B0(e){let t=e.request?.headers??e.headers;if(!t||R0(t))return!1;let n=t.get(`accept`)??``;return t.get(`sec-fetch-mode`)===`navigate`||n.includes(`text/html`)||n.includes(`application/xhtml+xml`)}function V0(e,t,n=200){return new Response(`<!doctype html><html><head><meta charset="utf-8"><title>${z0(e)}</title></head><body>${t}</body></html>`,{status:n,headers:{"cache-control":`no-store`,"content-security-policy":`default-src 'none'; form-action 'self'; base-uri 'none'; frame-ancestors 'none'`,"content-type":`text/html; charset=utf-8`,pragma:`no-cache`,"x-content-type-options":`nosniff`}})}function H0(e){return`${e.context.baseURL.replace(/\/$/,``)}/oauth2/end-session/confirm`}function Age(e){try{return new URL(H0(e)).pathname}catch{return`/oauth2/end-session/confirm`}}function U0(e){return V0(`Confirm logout`,`<main><h1>Confirm logout</h1><p>Do you want to log out of this account?</p><form method="post" data-oidc-logout-confirmation action="${z0(H0(e))}"><button type="submit" name="action" value="confirm">Confirm logout</button></form></main>`)}function W0(e){return V0(`Logged out`,`<main><p data-oidc-logout-state="logged-out">${e?`Logged out. ${z0(e)}`:`Logged out.`}</p></main>`)}function jge(e,t){return V0(`Logout error`,`<main><h1>Logout error</h1><p data-oidc-logout-state="error">${z0(e)}</p></main>`,t)}function G0(e,t,n,r){if(B0(e))return jge(r,t===`BAD_REQUEST`?400:t===`UNAUTHORIZED`?401:500);throw new k(t,{error:n,error_description:r})}function K0(e){return`${e.context.authCookies.sessionToken.name}.oauth_logout_confirmation`}function q0(e,t){return{...e.context.authCookies.sessionToken.attributes,httpOnly:!0,maxAge:t,path:Age(e),sameSite:`lax`}}async function J0(e,t,n={}){let r={...t?{sessionId:t}:{},...n,expiresAt:Date.now()+3e5};await e.setSignedCookie(K0(e),JSON.stringify(r),e.context.secret,q0(e,300))}async function Mge(e){let t=await e.getSignedCookie(K0(e),e.context.secret);if(typeof t!=`string`)return null;try{let e=JSON.parse(t);if(typeof e!=`object`||!e)return null;let n=e;return n.sessionId!==void 0&&(typeof n.sessionId!=`string`||n.sessionId.length===0)||n.clientId!==void 0&&(typeof n.clientId!=`string`||n.clientId.length===0)||n.postLogoutRedirectUri!==void 0&&(typeof n.postLogoutRedirectUri!=`string`||n.postLogoutRedirectUri.length===0)||n.state!==void 0&&typeof n.state!=`string`||n.redirectInvalid!==void 0&&typeof n.redirectInvalid!=`boolean`||n.postLogoutRedirectUri!==void 0&&n.clientId===void 0||typeof n.expiresAt!=`number`||!Number.isFinite(n.expiresAt)?null:{...typeof n.sessionId==`string`?{sessionId:n.sessionId}:{},...typeof n.clientId==`string`?{clientId:n.clientId}:{},...typeof n.postLogoutRedirectUri==`string`?{postLogoutRedirectUri:n.postLogoutRedirectUri}:{},...typeof n.state==`string`?{state:n.state}:{},...typeof n.redirectInvalid==`boolean`?{redirectInvalid:n.redirectInvalid}:{},expiresAt:n.expiresAt}}catch{return null}}function Y0(e){e.setCookie(K0(e),``,q0(e,0))}async function X0(e){let t=await e.getSignedCookie(e.context.authCookies.sessionToken.name,e.context.secret);if(typeof t!=`string`||t.length===0)return null;try{let n=await e.context.internalAdapter.findSession(t);return n?{session:n.session}:null}catch(t){throw e.context.logger.error(`Failed to read the current logout session`,t),new k(`INTERNAL_SERVER_ERROR`,{error:`server_error`,error_description:`Unable to read the current session`})}}async function Nge(e,t){try{return await e.context.adapter.findOne({model:`session`,where:[{field:`id`,value:t}]})}catch(t){throw e.context.logger.error(`Failed to read the hinted logout session`,t),new k(`INTERNAL_SERVER_ERROR`,{error:`server_error`,error_description:`Unable to read the hinted session`})}}async function Z0(e,t){if(typeof t.token!=`string`||t.token.length===0)throw new k(`INTERNAL_SERVER_ERROR`,{error:`server_error`,error_description:`Unable to complete logout`});try{await e.context.internalAdapter.deleteSession(t.token)}catch(t){throw e.context.logger.error(`Failed to delete the logout session`,t),new k(`INTERNAL_SERVER_ERROR`,{error:`server_error`,error_description:`Unable to complete logout`})}}async function Q0(e,t,n){try{return await u1(e,t,n)}catch(t){throw e.context.logger.error(`Failed to resolve the logout client`,t),new k(`INTERNAL_SERVER_ERROR`,{error:`server_error`,error_description:`Unable to resolve the logout client`})}}function $0(e){return(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`)}function Pge(e){if(typeof e.aud==`string`&&e.aud.length>0)return e.aud;if(typeof e.azp==`string`&&e.azp.length>0)return e.azp;let t=$0(e.aud);return t.length===1?t[0]:null}async function Fge(e,t,n,r){if(r)return Q0(e,t,r);let i;try{i=iI(n)}catch{return null}let a=Pge(i);return a?Q0(e,t,a):null}async function Ige(e,t,n,r){try{let i;if(t.disableJwtPlugin){if(!r.clientSecret)return null;let a=await p1(e,t.storeClientSecret,r.clientSecret),{payload:o}=await EF(n,new TextEncoder().encode(a));i=JSON.parse(new TextDecoder().decode(o))}else{let t=i1(e.context).options,{payload:r}=await EF(n,QF(await FZ(n,{jwksFetch:t?.jwks?.remoteUrl??`${e.context.baseURL}${t?.jwks?.jwksPath??`/jwks`}`})));i=JSON.parse(new TextDecoder().decode(r))}return i.iss!==p4(e,t)||!$0(i.aud).includes(r.clientId)||typeof i.sid!=`string`||i.sid.length===0||typeof i.sub!=`string`||i.sub.length===0?null:i}catch{return null}}function e2(e,t,n){if(!t)return{invalid:!1};if(!e.postLogoutRedirectUris?.includes(t))return{invalid:!0};if(!n)return{uri:t,invalid:!1};try{let e=new URL(t);return e.searchParams.set(`state`,n),{uri:e.toString(),invalid:!1}}catch{return{invalid:!0}}}function t2(e,t){return t.post_logout_redirect_uri?e2(e,t.post_logout_redirect_uri,t.state).invalid?{redirectInvalid:!0}:{clientId:e.clientId,postLogoutRedirectUri:t.post_logout_redirect_uri,...t.state===void 0?{}:{state:t.state}}:{}}async function Lge(e,t,n){if(n.redirectInvalid)return{invalid:!0};if(!n.clientId||!n.postLogoutRedirectUri)return{invalid:!1};let r=await Q0(e,t,n.clientId);return!r||r.disabled||!r.enableEndSession?{invalid:!0}:e2(r,n.postLogoutRedirectUri,n.state)}async function n2(e,t,n={}){return t?B0(e)?(await J0(e,t.session.id,n),U0(e)):G0(e,`BAD_REQUEST`,`invalid_request`,`User confirmation is required to complete logout`):B0(e)?(await J0(e,void 0,n),U0(e)):G0(e,`BAD_REQUEST`,`invalid_request`,`No active session is available for logout`)}async function Rge(e,t){let n=await Mge(e),r=await X0(e);if(!n||n.expiresAt<=Date.now())return G0(e,`BAD_REQUEST`,`invalid_request`,`The logout confirmation is invalid or expired`);let i=await Lge(e,t,n);return r?n.sessionId&&n.sessionId!==r.session.id?G0(e,`BAD_REQUEST`,`invalid_request`,`The logout confirmation is invalid or expired`):(await Z0(e,r.session),lq(e),Y0(e),i.uri?u4(e,i.uri):B0(e)?W0(i.invalid?`The requested post-logout redirect was not registered.`:void 0):null):(Y0(e),i.uri?u4(e,i.uri):B0(e)?W0(i.invalid?`The requested post-logout redirect was not registered.`:void 0):G0(e,`BAD_REQUEST`,`invalid_request`,`No active session is available for logout`))}async function zge(e,t){let n=e.query??{},r=e.body??{},i={...n,...r},a=await X0(e);if(i.id_token_hint===void 0){let n={};if(i.client_id){let r=await Q0(e,t,i.client_id);if(!r)return G0(e,`BAD_REQUEST`,`invalid_client`,`The logout client does not exist`);if(r.disabled)return G0(e,`BAD_REQUEST`,`invalid_client`,`The logout client is disabled`);if(!r.enableEndSession)return G0(e,`UNAUTHORIZED`,`invalid_client`,`The client is not allowed to initiate logout`);n=t2(r,i)}return n2(e,a,n)}let o=await Fge(e,t,i.id_token_hint,i.client_id);if(!o)return a&&B0(e)?n2(e,a):G0(e,`BAD_REQUEST`,`invalid_client`,`The logout client does not exist`);if(o.disabled)return G0(e,`BAD_REQUEST`,`invalid_client`,`The logout client is disabled`);if(!o.enableEndSession)return G0(e,`UNAUTHORIZED`,`invalid_client`,`The client is not allowed to initiate logout`);let s=await Ige(e,t,i.id_token_hint,o);if(!s)return a&&B0(e)?n2(e,a,i.client_id?t2(o,i):{}):G0(e,`UNAUTHORIZED`,`invalid_token`,`The id_token_hint is invalid`);let c=s.sid,l=await Nge(e,c),u=a?.session.id===c;if(a&&!u)return n2(e,a,t2(o,i));let d=e2(o,i.post_logout_redirect_uri,i.state),f=l??(u?a?.session:null);return f&&await Z0(e,f),u&&lq(e),Y0(e),d.uri?u4(e,d.uri):B0(e)?W0(d.invalid?`The requested post-logout redirect was not registered.`:void 0):null}async function Bge(e,t){return Rge(e,t)}function r2(e,t,n){let r=e.context.baseURL,i=!n?.jwt_disabled;return{scopes_supported:n?.scopes_supported,issuer:f4(t?.jwt?.issuer??r),authorization_endpoint:`${r}/oauth2/authorize`,token_endpoint:`${r}/oauth2/token`,jwks_uri:n?.jwt_disabled?void 0:t?.jwks?.remoteUrl??`${r}${t?.jwks?.jwksPath??`/jwks`}`,registration_endpoint:n?.dynamic_client_registration_supported?`${r}/oauth2/register`:void 0,introspection_endpoint:`${r}/oauth2/introspect`,revocation_endpoint:`${r}/oauth2/revoke`,response_types_supported:n?.grant_types_supported&&!n.grant_types_supported.includes(`authorization_code`)?[]:[`code`],response_modes_supported:[`query`],grant_types_supported:n?.grant_types_supported??[`authorization_code`,`client_credentials`,`refresh_token`],token_endpoint_auth_methods_supported:n?.token_endpoint_auth_methods_supported??[...n?.public_client_supported?[`none`]:[],`client_secret_basic`,`client_secret_post`,`private_key_jwt`],token_endpoint_auth_signing_alg_values_supported:[...iX],introspection_endpoint_auth_methods_supported:n?.endpoint_auth_methods_supported??[`client_secret_basic`,`client_secret_post`,`private_key_jwt`],introspection_endpoint_auth_signing_alg_values_supported:[...iX],revocation_endpoint_auth_methods_supported:n?.endpoint_auth_methods_supported??[`client_secret_basic`,`client_secret_post`,`private_key_jwt`],revocation_endpoint_auth_signing_alg_values_supported:[...iX],code_challenge_methods_supported:[`S256`],authorization_response_iss_parameter_supported:!0,dpop_signing_alg_values_supported:n?.dpop_signing_alg_values_supported??[...tZ],backchannel_logout_supported:i,backchannel_logout_session_supported:i}}function i2(e,t){let n=t.disableJwtPlugin?void 0:i1(e.context).options,r=Z$(t),i=t.allowUnauthenticatedClientRegistration||r.length>0;return{jwtPluginOptions:n,clientDiscoveries:r,authMetadata:r2(e,n,{scopes_supported:t.advertisedMetadata?.scopes_supported??t.scopes,dynamic_client_registration_supported:t.allowDynamicClientRegistration,public_client_supported:i,grant_types_supported:Q$(t),token_endpoint_auth_methods_supported:e1(t,{includeNone:i}),endpoint_auth_methods_supported:e1(t),jwt_disabled:t.disableJwtPlugin,dpop_signing_alg_values_supported:t.dpop?.signingAlgorithms})}}function a2(e,t){let{clientDiscoveries:n,authMetadata:r}=i2(e,t);return n1(e,t,`oauth-authorization-server`,{...d1(n),...r})}function o2(e,t){let n=e.context.baseURL,{jwtPluginOptions:r,clientDiscoveries:i,authMetadata:a}=i2(e,t),o={...a,claims_supported:W1(t),claims_parameter_supported:!0,userinfo_endpoint:`${n}/oauth2/userinfo`,subject_types_supported:t.pairwiseSecret?[`public`,`pairwise`]:[`public`],acr_values_supported:[`0`],id_token_signing_alg_values_supported:(()=>{if(t.disableJwtPlugin)return[`HS256`];let e=r?.jwks?.keyPairConfig?.alg??`EdDSA`,n=r?.jwks?.keyPairConfigs?.map(e=>e.alg)??[];return Array.from(/* @__PURE__ */ new Set([e,...n]))})(),end_session_endpoint:`${n}/oauth2/end-session`,request_parameter_supported:!1,request_uri_parameter_supported:!1,prompt_values_supported:[`login`,`consent`,`create`,`select_account`,`none`]};return n1(e,t,`openid-configuration`,{...d1(i),...o})}function s2(e,t){let n=new Headers(t);return n.has(`Cache-Control`)||n.set(`Cache-Control`,`public, max-age=15, stale-while-revalidate=15, stale-if-error=86400`),n.set(`Content-Type`,`application/json`),new Response(JSON.stringify(e),{status:200,headers:n})}function c2(e,t,n){let{redirectOnError:r,onValidationError:i,errorCodesByField:a,defaultError:o=`invalid_request`,...s}=t;if(!r)return X(e,{...s,onValidationError:async e=>{throw i&&await i(e),new k(`BAD_REQUEST`,{...l2(e.issues,a,o)})}},n);let c=r,{body:l,query:u,...d}=s;async function f(e,t,n){if(!n)return{ok:!0};let r=await n.safeParseAsync(e[t]??{});return r.success?(e[t]=r.data,{ok:!0}):(i&&await i({message:r.error.message,issues:r.error.issues}),{ok:!1,response:c({...l2(r.error.issues,a,o),ctx:e})})}return X(e,d,async e=>{let t=await f(e,`body`,l);if(!t.ok)return t.response;let r=await f(e,`query`,u);return r.ok?n(e):r.response})}function l2(e,t,n=`invalid_request`){let r=e[0];if(!r)return{error:n,error_description:`Invalid request.`};let i=r.path?.[0],a=typeof i==`string`?i:void 0,o=a?t?.[a]:void 0,s=r.path?.length?le(r.path):``;return{error:Vge(r,o,n),error_description:Uge(r,s)}}function Vge(e,t,n){return typeof t==`string`?t:Hge(e)?t?.missing??n:e.code===`invalid_value`?t?.invalid??n:n}function Hge(e){return e.code===`invalid_type`&&e.message.endsWith(`received undefined`)}function Uge(e,t){if(!t)return e.message;if(e.code===`invalid_type`)return e.message.endsWith(`received undefined`)?`${t} is required`:e.message.endsWith(`received array`)?`${t} must not appear more than once`:`${t} must be a ${e.expected??`valid value`}`;if(e.code===`invalid_value`){let n=e.values;if(Array.isArray(n)&&n.length>0)return`${t} must be one of: ${n.join(`, `)}`}return`${t}: ${e.message}`}const Wge=e=>zq(async t=>{if(!e.allowPublicClientPrelogin)throw new D(`BAD_REQUEST`);let n=t.body.oauth_query;if(!await l1(n,t.context.secret))throw new D(`UNAUTHORIZED`,{error:`invalid_signature`})}),u2={"P-256":`ES256`,"P-384":`ES384`,"P-521":`ES512`},Gge=[`Ed25519`],Kge=[`d`,`p`,`q`,`dp`,`dq`,`qi`,`oth`];function d2(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function f2(e,t){return typeof e[t]==`string`&&e[t].length>0}function p2(e){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(u2,e)}function m2(e){return Gge.some(t=>t===e)}function qge(e){switch(e.kty){case`RSA`:return f2(e,`n`)&&f2(e,`e`);case`EC`:return p2(e.crv)&&f2(e,`x`)&&f2(e,`y`);case`OKP`:return m2(e.crv)&&f2(e,`x`);default:return!1}}function Jge(e){if(e.alg===void 0)return!0;if(typeof e.alg!=`string`||!iX.some(t=>t===e.alg))return!1;switch(e.kty){case`RSA`:return e.alg.startsWith(`RS`)||e.alg.startsWith(`PS`);case`EC`:return p2(e.crv)&&u2[e.crv]===e.alg;case`OKP`:return m2(e.crv)&&e.alg===`EdDSA`;default:return!1}}function h2(e){let t=d2(e)&&Array.isArray(e.keys)?e.keys:void 0;if(!t?.length)return{valid:!1,error:`jwks must be an RFC 7517 JWK Set object with a non-empty keys array`};for(let e of t){if(!d2(e))return{valid:!1,error:`jwks keys must be supported public JWKs with required key parameters`};if(e.kty===`oct`||`k`in e||Kge.some(t=>t in e))return{valid:!1,error:`jwks must contain only public asymmetric keys`};if(!qge(e))return{valid:!1,error:`jwks keys must be supported public JWKs with required key parameters`};if(!Jge(e))return{valid:!1,error:`jwks key alg must be supported for private_key_jwt and compatible with its key type and signing curve`}}return{valid:!0,jwks:{keys:t}}}const Yge=Object.freeze(Object.keys({clientId:!0,clientSecret:!0,clientDiscoveryId:!0,disabled:!0,scopes:!0,clientCredentialsScopes:!0,userId:!0,createdAt:!0,updatedAt:!0,expiresAt:!0,name:!0,uri:!0,icon:!0,contacts:!0,tos:!0,policy:!0,softwareId:!0,softwareVersion:!0,softwareStatement:!0,redirectUris:!0,postLogoutRedirectUris:!0,backchannelLogoutUri:!0,backchannelLogoutSessionRequired:!0,tokenEndpointAuthMethod:!0,grantTypes:!0,responseTypes:!0,applicationType:!0,jwks:!0,jwksUri:!0,requirePKCE:!0,dpopBoundAccessTokens:!0,skipConsent:!0,enableEndSession:!0,subjectType:!0,referenceId:!0,metadata:!0})),Xge=/* @__PURE__ */ `client_id.client_secret.client_secret_expires_at.scope.user_id.client_id_issued_at.client_name.client_uri.logo_uri.contacts.tos_uri.policy_uri.jwks.jwks_uri.software_id.software_version.software_statement.redirect_uris.post_logout_redirect_uris.backchannel_logout_uri.backchannel_logout_session_required.token_endpoint_auth_method.grant_types.response_types.application_type.disabled.skip_consent.enable_end_session.require_pkce.dpop_bound_access_tokens.subject_type.reference_id`.split(`.`),Zge=/* @__PURE__ */ new Set([...Yge,...Xge,`public`,`type`,`resources`,`client_credentials_scopes`]),Qge=/* @__PURE__ */ new Set(/* @__PURE__ */ `disabled.client_secret.client_secret_expires_at.client_id_issued_at.skip_consent.enable_end_session.require_pkce.reference_id.user_id.resources.clientSecret.clientDiscoveryId.skipConsent.enableEndSession.requirePKCE.referenceId.userId.clientId.applicationType.tokenEndpointAuthMethod.redirectUris.postLogoutRedirectUris.grantTypes.responseTypes.scopes.expiresAt.createdAt.updatedAt.softwareId.softwareVersion.softwareStatement.backchannelLogoutUri.backchannelLogoutSessionRequired.jwksUri.dpopBoundAccessTokens.subjectType`.split(`.`));function g2(e){return Qge.has(e)}function _2(e){if(e)return Object.fromEntries(Object.entries(e).filter(([e])=>!Zge.has(e)))}async function v2(e,t,n,r){if(!t)throw new D(`UNAUTHORIZED`);if(!e.headers)throw new D(`BAD_REQUEST`);if(r===`configure-client-credentials-scopes`&&!n.clientPrivileges||n.clientPrivileges&&!await n.clientPrivileges({headers:e.headers,action:r,session:t.session,user:t.user}))throw new D(`UNAUTHORIZED`)}var $ge=/* @__PURE__ */ B$({consumeClientAssertion:()=>O2,isPrivateHostname:()=>T2,verifyClientAssertion:()=>o_e});const y2=/* @__PURE__ */ new WeakMap,b2=65536,e_e=/^application\/(?:[-\w.]+\+)?json\s*(?:;|$)/i;function x2(e,t,n,r){if(e.set(t,{jwks:n,fetchedAt:r}),e.size>500){let t=e.keys().next().value;t!==void 0&&e.delete(t)}}function S2(e){let t=y2.get(e);if(t)return t;let n=/* @__PURE__ */ new Map;return y2.set(e,n),n}function C2(e){return`${e.clientDiscoveryId??`managed`}:${e.jwksUri??``}`}const w2=[...iX];function T2(e){return!CY(e)}function t_e(e,t,n){let r=new URL(t);if(r.protocol!==`https:`)throw new k(`BAD_REQUEST`,{error_description:`jwks_uri must use HTTPS`,error:`invalid_client`});if(r.username||r.password)throw new k(`BAD_REQUEST`,{error_description:`jwks_uri must not contain credentials`,error:`invalid_client`});if(t.includes(`#`))throw new k(`BAD_REQUEST`,{error_description:`jwks_uri must not include a fragment component`,error:`invalid_client`});if(T2(r.hostname))throw new k(`BAD_REQUEST`,{error_description:`jwks_uri must not point to a private or reserved address`,error:`invalid_client`});if(!(n&&r.origin===n)&&!e.context.isTrustedOrigin(r.href))throw new k(`BAD_REQUEST`,{error_description:`client jwks_uri is not trusted`,error:`invalid_client`})}function n_e(e){try{let t=new URL(e);return t.protocol!==`https:`&&t.protocol!==`http:`?void 0:t.origin}catch{return}}async function r_e(e){let t=e.headers.get(`content-length`);if(t!==null&&Number.isFinite(Number(t))&&Number(t)>b2)throw await e.body?.cancel(),Error(`JWKS response exceeds 64 KiB`);if(!e.body)return``;let n=e.body.getReader(),r=[],i=0;for(;;){let{done:e,value:t}=await n.read();if(e)break;if(i+=t.byteLength,i>b2)throw await n.cancel(),Error(`JWKS response exceeds 64 KiB`);r.push(t)}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return new TextDecoder().decode(a)}async function E2(e,t=globalThis.fetch){let n=new AbortController,r=setTimeout(()=>n.abort(),5e3);try{let r=await t(e,{signal:n.signal,headers:{accept:`application/json`},redirect:`error`});if(r.redirected)throw Error(`JWKS fetch redirected`);if(r.status!==200)throw Error(`JWKS fetch returned ${r.status}`);let i=r.headers.get(`content-type`);if(!i||!e_e.test(i))throw Error(`JWKS response must use a JSON media type`);let a=await r_e(r),o;try{o=JSON.parse(a)}catch{return{valid:!1}}let s=h2(o);return s.valid?{valid:!0,jwks:s.jwks}:{valid:!1}}finally{clearTimeout(r)}}function D2(){return new k(`BAD_REQUEST`,{error_description:`failed to fetch client JWKS`,error:`invalid_client`})}async function i_e(e,t,n){if(n.jwks)return JSON.parse(n.jwks);if(!n.jwksUri)throw new k(`BAD_REQUEST`,{error_description:`client has no JWKS configured`,error:`invalid_client`});let r=n.clientDiscoveryId?Z$(t).find(e=>e.id===n.clientDiscoveryId):void 0;if(n.clientDiscoveryId&&!r?.fetchClientMetadataResource)throw new k(`BAD_REQUEST`,{error_description:`client discovery does not provide a metadata resource transport`,error:`invalid_client`});t_e(e,n.jwksUri,n.clientDiscoveryId?n_e(n.clientId):void 0);let i=Date.now(),a=C2(n),o=S2(t),s=o.get(a);if(s&&i-s.fetchedAt<3e5)return s.jwks;let c;try{c=await E2(n.jwksUri,r?.fetchClientMetadataResource)}catch{if(s&&i-s.fetchedAt<6e5)return s.jwks;throw D2()}if(!c.valid)throw D2();return x2(o,a,c.jwks,i),c.jwks}async function a_e(e,t){if(!t.jwksUri)return null;let n=t.clientDiscoveryId?Z$(e).find(e=>e.id===t.clientDiscoveryId):void 0;if(t.clientDiscoveryId&&!n?.fetchClientMetadataResource)return null;try{let r=await E2(t.jwksUri,n?.fetchClientMetadataResource);return r.valid?(x2(S2(e),C2(t),r.jwks,Date.now()),r.jwks):null}catch{return null}}async function O2(e,t,n){let{namespace:r,payload:i,expectedAudience:a}=n;if(!(Array.isArray(i.aud)?i.aud:i.aud==null?[]:[i.aud]).includes(a))throw new k(`BAD_REQUEST`,{error_description:`client assertion aud does not match the endpoint`,error:`invalid_client`});let o=t.assertionMaxLifetime??300,s=Math.floor(Date.now()/1e3);if(typeof i.exp!=`number`)throw new k(`BAD_REQUEST`,{error_description:`client assertion must include exp claim`,error:`invalid_client`});if(i.exp<=s)throw new k(`BAD_REQUEST`,{error_description:`client assertion has expired`,error:`invalid_client`});if(i.exp-s>o)throw new k(`BAD_REQUEST`,{error_description:`client assertion exp is too far in the future (max ${o}s)`,error:`invalid_client`});if(typeof i.iat==`number`&&s-i.iat>o)throw new k(`BAD_REQUEST`,{error_description:`client assertion iat is too far in the past (max ${o}s)`,error:`invalid_client`});if(typeof i.jti!=`string`||i.jti.length===0)throw new k(`BAD_REQUEST`,{error_description:`client assertion must include jti claim`,error:`invalid_client`});let c=await NU(`SHA-256`).digest(new TextEncoder().encode(`${r}:${i.jti}`)),l=MU.encode(new Uint8Array(c).slice(0,24),{padding:!1});try{await e.context.adapter.create({model:`oauthClientAssertion`,data:{id:l,expiresAt:/* @__PURE__ */ new Date(i.exp*1e3)},forceAllowId:!0})}catch(t){let n=!1;try{n=!!await e.context.adapter.findOne({model:`oauthClientAssertion`,where:[{field:`id`,value:l}]})}catch{}throw n?new k(`BAD_REQUEST`,{error_description:`client assertion jti has already been used`,error:`invalid_client`}):t}}async function o_e(e,t,n,r,i,a){if(r!==`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`)throw new k(`BAD_REQUEST`,{error_description:`unsupported client_assertion_type`,error:`invalid_client`});let o;try{o=rI(n)}catch{throw new k(`BAD_REQUEST`,{error_description:`malformed client assertion: invalid JWT header`,error:`invalid_client`})}if(!o.alg||!w2.includes(o.alg))throw new k(`BAD_REQUEST`,{error_description:`unsupported assertion signing algorithm: ${o.alg}`,error:`invalid_client`});let s;try{s=iI(n)}catch{throw new k(`BAD_REQUEST`,{error_description:`malformed client assertion: invalid JWT payload`,error:`invalid_client`})}let c=s.sub??s.iss;if(!c)throw new k(`BAD_REQUEST`,{error_description:`client assertion must contain sub or iss claim identifying the client`,error:`invalid_client`});if(i&&i!==c)throw new k(`BAD_REQUEST`,{error_description:`client_id in body does not match assertion sub/iss`,error:`invalid_client`});let l=await u1(e,t,c);if(!l)throw new k(`BAD_REQUEST`,{error_description:`unknown client`,error:`invalid_client`});if(l.disabled)throw new k(`BAD_REQUEST`,{error_description:`client is disabled`,error:`invalid_client`});if(l.tokenEndpointAuthMethod!==`private_key_jwt`)throw new k(`BAD_REQUEST`,{error_description:`client is not registered for private_key_jwt authentication`,error:`invalid_client`});let u=await i_e(e,t,l),d=a??`${e.context.baseURL}/oauth2/token`,f=p4(e,t),p=[.../* @__PURE__ */ new Set([d,f])],m={issuer:c,subject:c,audience:p,algorithms:w2},h;try{({payload:h}=await UF(n,QF(u),m))}catch(e){if(e instanceof Error&&/no matching key|no applicable key/i.test(e.message)){let e=await a_e(t,l);if(e)try{({payload:h}=await UF(n,QF(e),m))}catch{throw new k(`UNAUTHORIZED`,{error_description:`client assertion signature verification failed`,error:`invalid_client`})}else throw new k(`UNAUTHORIZED`,{error_description:`client assertion signature verification failed`,error:`invalid_client`})}else throw new k(`UNAUTHORIZED`,{error_description:`client assertion signature verification failed`,error:`invalid_client`})}let g=(Array.isArray(h.aud)?h.aud:[h.aud]).find(e=>typeof e==`string`&&p.includes(e));return await O2(e,t,{namespace:`private_key_jwt:${c}`,payload:h,expectedAudience:g}),{clientId:c}}function k2(e,t,n){return new k(e,{error:t,error_description:n},{"WWW-Authenticate":`Bearer error="${t}"`,...Iq})}async function s_e(e,t,n){let r=e.headers,i;try{i=Kme(r?.get(`authorization`))}catch{throw k2(`BAD_REQUEST`,`invalid_request`,`Malformed initial access token Authorization header`)}if(!i||!r)return;if(!t.validateInitialAccessToken)throw k2(`UNAUTHORIZED`,`invalid_token`,`Invalid initial access token`);let a;try{a=await t.validateInitialAccessToken({initialAccessToken:i,headers:r,clientMetadata:n})}catch(e){throw e instanceof k?e:new k(`INTERNAL_SERVER_ERROR`,{error:`server_error`,error_description:`Initial access token validation failed`})}if(!a)throw k2(`UNAUTHORIZED`,`invalid_token`,`Invalid initial access token`);return a}const c_e=[`authorization_code`];function A2(e){return[.../* @__PURE__ */ new Set([...e.clientRegistrationDefaultScopes??e.scopes??[],...e.clientRegistrationAllowedScopes??[]])]}function j2(e){let t=e.grant_types??[...c_e];if(t.length>0)return t;throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`grant_types must contain at least one grant type`})}function l_e(e,t){return e.response_types?e.response_types:t.includes(`authorization_code`)?[`code`]:void 0}function M2(e,t=`web`){let n=j2(e);return{...e,token_endpoint_auth_method:e.token_endpoint_auth_method??`client_secret_basic`,application_type:e.application_type??(t===null?void 0:t),grant_types:n,response_types:l_e(e,n)}}const u_e=/* @__PURE__ */ new Set([`file:`,`ftp:`,`mailto:`,`javascript:`,`data:`,`vbscript:`]);function N2(e){throw new D(`BAD_REQUEST`,{error:`invalid_redirect_uri`,error_description:e})}function d_e(e){let t=/^http:\/\/([^/?#]*)/i.exec(e)?.[1];if(!t)return null;let n=t.slice(t.lastIndexOf(`@`)+1);if(n.startsWith(`[`)){let e=n.indexOf(`]`);return e<0?null:n.slice(0,e+1).toLowerCase()}return(n.split(`:`)[0]??``).toLowerCase()}async function f_e(e,t,n){let r=t.clientRegistrationDefaultResources??[],i=/* @__PURE__ */ new Set([...r,...t.clientRegistrationAllowedResources??[]]);for(let e of n)if(!i.has(e))throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:`requested resource ${e} is not allowed for client registration`});let a=[.../* @__PURE__ */ new Set([...r,...n])];for(let n of a){let r=await $1(e,t,n);if(!r)throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:`requested resource ${n} does not exist`});if(r.disabled)throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:`requested resource ${n} is disabled`})}return a}function p_e(e,t){let n;try{n=new URL(e)}catch{N2(`redirect URI must be an absolute URI: ${e}`)}(e.includes(`#`)||n.username.length>0||n.password.length>0)&&N2(`redirect URI must not include credentials or a fragment: ${e}`);let r=n.protocol===`http:`,i=n.protocol===`https:`;/^localhost\.+$/i.test(n.hostname)&&N2(`redirect URI localhost must not include trailing dots: ${e}`);let a=xY(n.hostname)||n.hostname===`localhost`,o=d_e(e);t===`web`?(!i||a)&&N2(`web clients require https redirect URIs on non-loopback hosts: ${e}`):i?a&&N2(`native clients must not use https loopback redirect URIs: ${e}`):r?o===`localhost`||o===`127.0.0.1`||o===`[::1]`||N2(`native clients may use http only on the exact loopback hosts localhost, 127.0.0.1, or [::1]: ${e}`):(u_e.has(n.protocol)||!N1(n))&&N2(`native private-use redirect URI schemes must be well-formed reverse-domain names, omit the naming authority, and must not use a reserved scheme: ${e}`)}function m_e(e){let t=h2(e);if(!t.valid)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:t.error})}async function h_e(e,t){let n=e.body;if(!t.allowDynamicClientRegistration)throw new D(`FORBIDDEN`,{error:`access_denied`,error_description:`Client registration is disabled`});let r=await zJ(e),i=r?void 0:await s_e(e,t,n),a=!!i;if(!(r||a||t.allowUnauthenticatedClientRegistration))throw new D(`UNAUTHORIZED`,{error_description:`Authentication required for client registration`},{"WWW-Authenticate":`Bearer`,...Iq});if(!r&&!a&&n.grant_types?.includes(`client_credentials`))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`client_credentials grant requires authenticated registration`});let o=Array.isArray(n.resources)?n.resources.filter(e=>typeof e==`string`&&e.length>0):[];r&&await v2(e,r,t,`create`);let s=i?.referenceId??(r&&t.clientReference?await t.clientReference({user:r.user,session:r.session}):void 0),c=await z2(e,t,{metadata:n,registrationSource:`dynamic`,userId:s?void 0:r?.session.userId,referenceId:s,requestedResources:o});return e.setStatus(201),e.json(c)}async function P2(e,t,n){let r=n?.registrationSource===`clientMetadataDocument`,i=M2(e,r?null:`web`),a=i.token_endpoint_auth_method??`client_secret_basic`;if(!new Set(e1(t,{includeNone:!0})).has(a))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`unsupported token_endpoint_auth_method ${a}`});if(i.dpop_bound_access_tokens!==void 0&&typeof i.dpop_bound_access_tokens!=`boolean`)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`dpop_bound_access_tokens must be a boolean`});let o=i.grant_types??[],s=i.response_types,c=i.application_type;if(c!==void 0&&c!==`web`&&c!==`native`)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`application_type must be web or native`});if(o.includes(`authorization_code`)&&(!i.redirect_uris||i.redirect_uris.length===0))throw new D(`BAD_REQUEST`,{error:`invalid_redirect_uri`,error_description:`Redirect URIs are required for authorization_code and implicit grant types`});for(let e of i.redirect_uris??[])p_e(e,c??(r?`native`:`web`));let l=new Set(Q$(t));if(r){if(!o.some(e=>l.has(e)))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`no mutually supported grant_type among ${o.join(`, `)}`})}else for(let e of o)if(!l.has(e))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`unsupported grant_type ${e}`});if(o.includes(`authorization_code`)&&!s?.includes(`code`))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`When 'authorization_code' grant type is used, 'code' response type must be included`});if(!o.includes(`authorization_code`)&&s?.includes(`code`))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`When 'code' response type is used, 'authorization_code' grant type must be included`});if(i.subject_type!==void 0){if(i.subject_type!==`public`&&i.subject_type!==`pairwise`)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`subject_type must be "public" or "pairwise"`});if(i.subject_type===`pairwise`&&!t.pairwiseSecret)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`pairwise subject_type requires server pairwiseSecret configuration`});if(i.subject_type===`pairwise`&&i.redirect_uris&&i.redirect_uris.length>1&&new Set(i.redirect_uris.map(e=>new URL(e).host)).size>1)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`pairwise clients with redirect_uris on different hosts require a sector_identifier_uri, which is not yet supported. All redirect_uris must share the same host.`})}let u=(i?.scope)?.split(` `).filter(e=>e.length),d=n?.registrationSource===`dynamic`||n?.registrationSource===`clientMetadataDocument`,f=d?A2(t):t.scopes;if(f){let e=new Set(f);for(let t of u??[])if(!e?.has(t))throw new D(`BAD_REQUEST`,{error:`invalid_scope`,error_description:`cannot request scope ${t}`})}if(d&&i.require_pkce===!1)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`pkce is required for registered clients.`});if(i.jwks||i.jwks_uri){if(i.jwks&&i.jwks_uri)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`jwks and jwks_uri are mutually exclusive`});if(i.jwks_uri)try{let e=new URL(i.jwks_uri);if(e.protocol!==`https:`)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`jwks_uri must use HTTPS`});if(e.username||e.password)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`jwks_uri must not contain credentials`});if(i.jwks_uri.includes(`#`))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`jwks_uri must not include a fragment component`});if(T2(e.hostname))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`jwks_uri must not point to a private or reserved address`});if(n?.ctx&&!n.ctx.context.isTrustedOrigin(e.href)){let t=typeof i.client_id==`string`?i.client_id:void 0;if(!(r&&t!==void 0&&URL.canParse(t)&&new URL(t).origin===e.origin))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`jwks_uri must belong to a trusted origin or the Client ID Metadata Document origin`})}}catch(e){throw e instanceof D?e:new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`jwks_uri must be a valid URL`})}i.jwks&&m_e(i.jwks)}if(a===`private_key_jwt`&&!i.jwks&&!i.jwks_uri)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`private_key_jwt requires either jwks or jwks_uri`});if(i.backchannel_logout_uri!==void 0){if(t.disableJwtPlugin)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`backchannel_logout_uri requires the jwt plugin (disableJwtPlugin must be false)`});let e;try{e=new URL(i.backchannel_logout_uri)}catch{throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`backchannel_logout_uri must be an absolute URL`})}if(i.backchannel_logout_uri.includes(`#`))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`backchannel_logout_uri must not include a fragment component`});if(e.protocol!==`https:`)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`backchannel_logout_uri must use https`});if(e.username||e.password)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`backchannel_logout_uri must not contain credentials`});if(T2(e.hostname))throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`backchannel_logout_uri must not point to a private or reserved address`})}}const F2=Symbol(`client-registration-collision`);function I2(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[F2]===!0&&(t.kind===`oauth-client-row-unique`||t.kind===`oauth-client-resource-link-unique`)&&`cause`in t}async function L2(e,t,n){let r=M2(n.registrationSource===`dynamic`&&!n.metadata.scope?{...n.metadata,scope:(t.clientRegistrationDefaultScopes??t.scopes)?.join(` `)}:n.metadata,n.registrationSource===`clientMetadataDocument`?null:`web`),i=r.token_endpoint_auth_method===`none`,a=r.token_endpoint_auth_method===`private_key_jwt`,o=t1(t,r.token_endpoint_auth_method);await P2(r,t,{registrationSource:n.registrationSource,ctx:e});let s=n.clientId??t.generateClientId?.()??TH(32,`a-z`,`A-Z`),c=i||a||o?void 0:t.generateClientSecret?.()||TH(32,`a-z`,`A-Z`),l=c?await m1(e,t,c):void 0,u=n.registrationSource===`dynamic`&&!i&&t.clientRegistrationRequirePKCE===!1,d=r.require_pkce??(!u&&void 0),f=Math.floor(Date.now()/1e3),{resources:p,...m}=n.registrationSource===`dynamic`||n.registrationSource===`clientMetadataDocument`?{...r,scope:A2(t).join(` `)}:r,h=n.registrationSource===`clientMetadataDocument`?void 0:{userId:n.userId,referenceId:n.referenceId},g=U2({...m,redirect_uris:r.redirect_uris??[],disabled:void 0,client_secret_expires_at:l?n.registrationSource===`dynamic`&&t.clientRegistrationClientSecretExpiration?N$(t.clientRegistrationClientSecretExpiration,f):0:void 0,client_id:s,client_secret:l,client_id_issued_at:f,require_pkce:d,user_id:h?.referenceId?void 0:h?.userId,reference_id:h?.referenceId});g.clientCredentialsScopes=n.registrationSource===`clientMetadataDocument`?n.existingClient?.clientCredentialsScopes??[]:n.registrationSource===`managed`?n.clientCredentialsScopes??[]:[],g.clientDiscoveryId=n.registrationSource===`clientMetadataDocument`?n.clientDiscoveryId:null,n.registrationSource===`clientMetadataDocument`&&r.application_type===void 0&&(g.applicationType=null);let _=await f_e(e,t,n.registrationSource===`dynamic`?n.requestedResources??[]:[]),v=t.schema?.oauthClient?.modelName??`oauthClient`,y=t.schema?.oauthClientResource?.modelName??`oauthClientResource`,b=n.registrationSource===`clientMetadataDocument`?n.existingClient:void 0,x=n.registrationSource===`clientMetadataDocument`?n.clientDiscoveryId:null,S=await tH(e.context.adapter,async()=>{let t=await $V(e.context.adapter),r,i=!1;if(b){let e=await t.update({model:v,where:[{field:`clientId`,value:s},{field:`clientDiscoveryId`,value:x}],update:{...g,disabled:b.disabled,skipConsent:b.skipConsent,enableEndSession:b.enableEndSession,createdAt:b.createdAt,updatedAt:/* @__PURE__ */ new Date(f*1e3)}});if(!e)throw new D(`BAD_REQUEST`,{error:`invalid_client`,error_description:`client no longer exists`});r=e}else{try{r=await t.create({model:v,data:{...g,createdAt:/* @__PURE__ */ new Date(f*1e3),updatedAt:/* @__PURE__ */ new Date(f*1e3)}})}catch(e){throw n.registrationSource===`clientMetadataDocument`&&V2(e)?{[F2]:!0,kind:`oauth-client-row-unique`,clientId:s,cause:e}:e}i=!0}let a=_.length===0?[]:await t.findMany({model:y,where:[{field:`clientId`,value:s}]}),o=new Set(a.map(e=>e.resourceId)),c=/* @__PURE__ */ new Date;for(let e of _)if(!o.has(e))try{await t.create({model:y,data:{clientId:s,resourceId:e,createdAt:c}})}catch(t){throw n.registrationSource===`clientMetadataDocument`&&V2(t)?{[F2]:!0,kind:`oauth-client-resource-link-unique`,clientId:s,resourceId:e,cause:t}:t}return{client:r,created:i}});return{client:S.client,clientSecret:c,resources:_,created:S.created}}function R2(e,t){let n=W2({...e.client,clientSecret:e.clientSecret?(t.prefix?.clientSecret??``)+e.clientSecret:void 0});return e.resources.length>0&&(n.resources=e.resources),n}function g_e(e,t){return{...R2(e,t),client_credentials_scopes:[...e.client.clientCredentialsScopes??[]]}}async function z2(e,t,n){return R2(await L2(e,t,n),t)}async function __e(e,t,n){return g_e(await L2(e,t,n),t)}function v_e(e,t){if(e&&e.clientDiscoveryId!==t)throw new D(`BAD_REQUEST`,{error:`invalid_client`,error_description:`client_id is already owned by a different registration source`})}async function B2(e,t,n){if(v_e(n.existingClient,n.clientDiscoveryId),n.metadata.backchannel_logout_uri!==void 0||n.metadata.backchannel_logout_session_required!==void 0)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`Client ID Metadata Documents cannot register a back-channel logout target`});if((n.metadata.token_endpoint_auth_method??`none`)!==`none`&&n.metadata.token_endpoint_auth_method!==`private_key_jwt`)throw new D(`BAD_REQUEST`,{error:`invalid_client_metadata`,error_description:`Client ID Metadata Document clients cannot use a shared secret`});let r={...n,metadata:{...n.metadata,token_endpoint_auth_method:n.metadata.token_endpoint_auth_method??`none`,client_secret:void 0,client_secret_expires_at:void 0},registrationSource:`clientMetadataDocument`};try{return await L2(e,t,r)}catch(i){if(!I2(i))throw i;let a=t.schema?.oauthClient?.modelName??`oauthClient`,o=t.schema?.oauthClientResource?.modelName??`oauthClientResource`,s=await e.context.adapter.findOne({model:a,where:[{field:`clientId`,value:n.clientId}]});if(i.clientId!==n.clientId||!s||s.clientDiscoveryId!==n.clientDiscoveryId||i.kind===`oauth-client-resource-link-unique`&&!await e.context.adapter.findOne({model:o,where:[{field:`clientId`,value:i.clientId},{field:`resourceId`,value:i.resourceId}]}))throw i.cause;try{return await L2(e,t,{...r,existingClient:s})}catch(e){throw I2(e)?e.cause:e}}}function V2(e){if(!e||typeof e!=`object`)return!1;let t=e,n=String(t.code??t.errno??``);return[`1062`,`11000`,`23505`,`ER_DUP_ENTRY`,`P2002`,`SQLITE_CONSTRAINT_UNIQUE`].includes(n)||t.name===`MongoServerError`&&t.code===11e3?!0:typeof t.message==`string`&&/(?:duplicate|unique constraint|unique key)/i.test(t.message)}async function H2(e,t,n){let r=await zJ(e);if(await v2(e,r,t,`create`),!r)throw new D(`UNAUTHORIZED`);let i=t.clientReference?await t.clientReference({user:r.user,session:r.session}):void 0,{client_credentials_scopes:a,...o}=e.body,s=n?.admin?s0(a??[]):[];c0(s,j2(o),o.token_endpoint_auth_method,t),s.length>0&&await v2(e,r,t,`configure-client-credentials-scopes`);let c={metadata:o,registrationSource:`managed`,userId:i?void 0:r.session.userId,referenceId:i,clientCredentialsScopes:s},l=n?.admin?await __e(e,t,c):await z2(e,t,c);return e.setStatus(201),e.json(l)}function U2(e){let{client_id:t,client_secret:n,client_secret_expires_at:r,scope:i,user_id:a,client_id_issued_at:o,client_name:s,client_uri:c,logo_uri:l,contacts:u,tos_uri:d,policy_uri:f,jwks:p,jwks_uri:m,software_id:h,software_version:g,software_statement:_,redirect_uris:v,post_logout_redirect_uris:y,backchannel_logout_uri:b,backchannel_logout_session_required:x,token_endpoint_auth_method:S,grant_types:ee,response_types:te,application_type:C,disabled:ne,skip_consent:w,enable_end_session:T,require_pkce:re,dpop_bound_access_tokens:ie,subject_type:E,reference_id:ae,metadata:oe}=e,se=r?/* @__PURE__ */ new Date(Number(r)*1e3):void 0,ce=o?/* @__PURE__ */ new Date(o*1e3):void 0,le=i?.split(` `),ue=_2(oe??{}),de=ue&&Object.keys(ue).length?JSON.stringify(ue):void 0;return{clientId:t,clientSecret:n,disabled:ne,scopes:le,userId:a,createdAt:ce,expiresAt:se,name:s,uri:c,icon:l,contacts:u,tos:d,policy:f,softwareId:h,softwareVersion:g,softwareStatement:_,redirectUris:v,postLogoutRedirectUris:y,backchannelLogoutUri:b,backchannelLogoutSessionRequired:x,tokenEndpointAuthMethod:S,grantTypes:ee,responseTypes:te,jwks:p?JSON.stringify(p):void 0,jwksUri:m,applicationType:C,skipConsent:w,enableEndSession:T,requirePKCE:re,dpopBoundAccessTokens:ie,subjectType:E,referenceId:ae,metadata:de}}function W2(e){let{clientId:t,clientSecret:n,disabled:r,scopes:i,userId:a,createdAt:o,updatedAt:s,expiresAt:c,name:l,uri:u,icon:d,contacts:f,tos:p,policy:m,softwareId:h,softwareVersion:g,softwareStatement:_,redirectUris:v,postLogoutRedirectUris:y,backchannelLogoutUri:b,backchannelLogoutSessionRequired:x,tokenEndpointAuthMethod:S,grantTypes:ee,responseTypes:te,applicationType:C,jwks:ne,jwksUri:w,skipConsent:T,enableEndSession:re,requirePKCE:ie,dpopBoundAccessTokens:E,subjectType:ae,referenceId:oe,metadata:se}=e,ce=c?Math.round(new Date(c).getTime()/1e3):void 0,le=o?Math.round(new Date(o).getTime()/1e3):void 0,ue=i?.join(` `);return{..._2(C1(se)),client_id:t,client_secret:n??void 0,client_secret_expires_at:n?ce??0:void 0,scope:ue??void 0,user_id:a??void 0,client_id_issued_at:le??void 0,client_name:l??void 0,client_uri:u??void 0,logo_uri:d??void 0,contacts:f??void 0,tos_uri:p??void 0,policy_uri:m??void 0,jwks:ne?JSON.parse(ne):void 0,jwks_uri:w??void 0,software_id:h??void 0,software_version:g??void 0,software_statement:_??void 0,redirect_uris:v??[],post_logout_redirect_uris:y??void 0,backchannel_logout_uri:b??void 0,backchannel_logout_session_required:x??void 0,token_endpoint_auth_method:S??void 0,grant_types:ee??void 0,response_types:te??void 0,application_type:C??void 0,disabled:r??void 0,skip_consent:T??void 0,enable_end_session:re??void 0,require_pkce:ie??void 0,dpop_bound_access_tokens:E??void 0,subject_type:ae??void 0,reference_id:oe??void 0}}async function y_e(e,t){let n=await zJ(e);if(await v2(e,n,t,`read`),!n)throw new D(`UNAUTHORIZED`);let r=await u1(e,t,e.query.client_id);if(!r)throw new D(`NOT_FOUND`,{error_description:`client not found`,error:`not_found`});if(r.userId){if(r.userId!==n.user.id)throw new D(`UNAUTHORIZED`)}else if(r.referenceId&&t.clientReference){if(r.referenceId!==await t.clientReference(n))throw new D(`UNAUTHORIZED`)}else throw new D(`UNAUTHORIZED`);let i=W2(r);return i.client_secret=void 0,i}async function G2(e,t,n){let r=await u1(e,t,n);if(!r||r.disabled)throw new D(`NOT_FOUND`,{error_description:`client not found`,error:`not_found`});return W2({clientId:r.clientId,name:r.name,uri:r.uri,contacts:r.contacts,icon:r.icon,tos:r.tos,policy:r.policy})}async function b_e(e,t){let n=await zJ(e);if(await v2(e,n,t,`list`),!n)throw new D(`UNAUTHORIZED`);let r=await t.clientReference?.(n);if(r)return await e.context.adapter.findMany({model:`oauthClient`,where:[{field:`referenceId`,value:r}]}).then(e=>e?e.map(e=>{let t=W2(e);return t.client_secret=void 0,t}):null);if(n.user.id)return await e.context.adapter.findMany({model:`oauthClient`,where:[{field:`userId`,value:n.user.id}]}).then(e=>e?e.map(e=>{let t=W2(e);return t.client_secret=void 0,t}):null);throw new D(`BAD_REQUEST`,{message:`either user_id or reference_id must be provided`})}async function x_e(e,t){let n=await zJ(e);if(await v2(e,n,t,`delete`),!n)throw new D(`UNAUTHORIZED`);let r=e.body.client_id;if(t.cachedTrustedClients?.has(r))throw new D(`INTERNAL_SERVER_ERROR`,{error_description:`trusted clients must be updated manually`,error:`invalid_client`});let i=await u1(e,t,r);if(!i)throw new D(`NOT_FOUND`,{error_description:`client not found`,error:`not_found`});if(i.userId){if(i.userId!==n.user.id)throw new D(`UNAUTHORIZED`)}else if(i.referenceId&&t.clientReference){if(i.referenceId!==await t.clientReference(n))throw new D(`UNAUTHORIZED`)}else throw new D(`UNAUTHORIZED`);await e.context.adapter.delete({model:`oauthClient`,where:[{field:`clientId`,value:r}]})}async function K2(e,t,n){let r=await zJ(e);if(await v2(e,r,t,`update`),!r)throw new D(`UNAUTHORIZED`);let i=e.body.client_id;if(t.cachedTrustedClients?.has(i))throw new D(`INTERNAL_SERVER_ERROR`,{error_description:`trusted clients must be updated manually`,error:`invalid_client`});let a=await u1(e,t,i);if(!a)throw new D(`NOT_FOUND`,{error_description:`client not found`,error:`not_found`});let{client_credentials_scopes:o,...s}=e.body.update,c=a.userId?a.userId===r.user.id:a.referenceId&&t.clientReference?a.referenceId===await t.clientReference(r):!1,l=!c&&n?.admin&&o!==void 0&&Object.keys(s).length===0;if(!c&&!l)throw new D(`UNAUTHORIZED`);if(l&&await v2(e,r,t,`configure-client-credentials-scopes`),Object.keys(s).length===0&&o===void 0){let e=W2(a);return e.client_secret=void 0,n?.admin?{...e,client_credentials_scopes:[...a.clientCredentialsScopes??[]]}:e}let u=s.grant_types??a.grantTypes??[],d=s.token_endpoint_auth_method??a.tokenEndpointAuthMethod,f=o===void 0?void 0:s0(o);f!==void 0&&(c0(f,u,d,t),f.length>0&&!l&&await v2(e,r,t,`configure-client-credentials-scopes`)),await P2({...W2(a),...s},t,{ctx:e});let p={...U2(s)};!u.includes(`client_credentials`)||d===`none`?p.clientCredentialsScopes=[]:f!==void 0&&(p.clientCredentialsScopes=f),s.token_endpoint_auth_method&&(s.token_endpoint_auth_method===`private_key_jwt`?p.clientSecret=null:(p.jwks=null,p.jwksUri=null,p.clientSecret||=await m1(e,t,t.generateClientSecret?.()||TH(32,`a-z`,`A-Z`))));let m=await e.context.adapter.update({model:`oauthClient`,where:[{field:`clientId`,value:i}],update:{...p,updatedAt:/* @__PURE__ */ new Date(Math.floor(Date.now()/1e3)*1e3)}});if(!m)throw new D(`INTERNAL_SERVER_ERROR`,{error_description:`unable to update client`,error:`invalid_client`});let h=W2(m);return h.client_secret=void 0,n?.admin?{...h,client_credentials_scopes:[...m.clientCredentialsScopes??[]]}:h}async function S_e(e,t){let n=await zJ(e);if(await v2(e,n,t,`rotate`),!n)throw new D(`UNAUTHORIZED`);let r=e.body.client_id;if(t.cachedTrustedClients?.has(r))throw new D(`INTERNAL_SERVER_ERROR`,{error_description:`trusted clients must be updated manually`,error:`invalid_client`});let i=await u1(e,t,r);if(!i)throw new D(`NOT_FOUND`,{error_description:`client not found`,error:`not_found`});if(i.userId){if(i.userId!==n.user.id)throw new D(`UNAUTHORIZED`)}else if(i.referenceId&&t.clientReference){if(i.referenceId!==await t.clientReference(n))throw new D(`UNAUTHORIZED`)}else throw new D(`UNAUTHORIZED`);if(i.tokenEndpointAuthMethod===`none`||!i.clientSecret)throw new D(`BAD_REQUEST`,{error_description:`secret rotation is only available for clients using client_secret authentication`,error:`invalid_client`});let a=t.generateClientSecret?.()||TH(32,`a-z`,`A-Z`),o=a?await m1(e,t,a):void 0,s=await e.context.adapter.update({model:`oauthClient`,where:[{field:`clientId`,value:r}],update:{clientSecret:o,updatedAt:/* @__PURE__ */ new Date(Math.floor(Date.now()/1e3)*1e3)}});if(!s)throw new D(`INTERNAL_SERVER_ERROR`,{error_description:`unable to update client`,error:`invalid_client`});return W2({...s,clientSecret:(t.prefix?.clientSecret??``)+a})}const q2=A().trim().min(1),J2=ye(A().trim().min(1)).min(1),C_e=e=>X(`/admin/oauth2/create-client`,{method:`POST`,body:j({redirect_uris:ye(P1).min(1).optional(),scope:A().optional(),client_name:A().optional(),client_uri:A().optional(),logo_uri:A().optional(),contacts:ye(A().min(1)).min(1).optional(),tos_uri:A().optional(),policy_uri:A().optional(),software_id:A().optional(),software_version:A().optional(),software_statement:A().optional(),post_logout_redirect_uris:ye(P1).min(1).optional(),backchannel_logout_uri:P1.optional(),backchannel_logout_session_required:Te().optional(),token_endpoint_auth_method:q2.optional(),application_type:De([`web`,`native`]).optional(),jwks:u0.optional(),jwks_uri:A().optional(),grant_types:J2.optional(),client_credentials_scopes:ye(A().trim().min(1)).optional(),response_types:ye(De([`code`])).optional(),client_secret_expires_at:ue([A(),ge()]).optional().default(0),skip_consent:Te().optional(),enable_end_session:Te().optional(),require_pkce:Te().optional(),dpop_bound_access_tokens:Te().optional(),subject_type:De([`public`,`pairwise`]).optional(),metadata:ve(A(),Me()).optional()}),metadata:{noStore:!0,SERVER_ONLY:!0,openapi:{description:`Register an OAuth2 application`,responses:{201:{description:`OAuth2 application registered successfully`,content:{"application/json":{schema:{type:`object`,properties:{client_id:{type:`string`,description:`Unique identifier for the client`},client_secret:{type:`string`,description:`Secret key for the client`},client_secret_expires_at:{type:`number`,description:`Time the client secret will expire. If 0, the client secret will never expire.`},scope:{type:`string`,description:`Space-separated scopes allowed by the client`},client_credentials_scopes:{type:`array`,items:{type:`string`},description:`Server-authorized scope ceiling for client_credentials tokens`},user_id:{type:`string`,description:`ID of the user who registered the client, null if registered anonymously`},client_id_issued_at:{type:`number`,description:`Creation timestamp of this client`},client_name:{type:`string`,description:`Name of the OAuth2 application`},client_uri:{type:`string`,description:`URI of the OAuth2 application`},logo_uri:{type:`string`,description:`Icon URI for the application`},contacts:{type:`array`,items:{type:`string`},description:`List representing ways to contact people responsible for this client, typically email addresses`},tos_uri:{type:`string`,description:`Client's terms of service uri`},policy_uri:{type:`string`,description:`Client's policy uri`},software_id:{type:`string`,description:`Unique identifier assigned by the developer to help in the dynamic registration process`},software_version:{type:`string`,description:`Version identifier for the software_id`},software_statement:{type:`string`,description:`JWT containing metadata values about the client software as claims`},redirect_uris:{type:`array`,items:{type:`string`,format:`uri`},description:`List of allowed redirect uris`},token_endpoint_auth_method:{type:`string`,description:`Requested authentication method for the token endpoint`},grant_types:{type:`array`,items:{type:`string`},description:`Grant types the client may use at the token endpoint`},response_types:{type:`array`,items:{type:`string`,enum:[`code`]},description:`Response types the client may use at the authorization endpoint`},application_type:{type:`string`,description:`OIDC application type used to classify redirect URI policy`,enum:[`web`,`native`]},resources:{type:`array`,items:{type:`string`,format:`uri`},description:`Final server-owned resources linked to the client`},disabled:{type:`boolean`,description:`Whether the client is disabled`},require_pkce:{type:`boolean`,description:`Whether the client requires PKCE`,default:!0},metadata:{type:`object`,additionalProperties:!0,nullable:!0,description:`Additional metadata for the application`}},required:[`client_id`]}}}}}}}},async t=>H2(t,e,{admin:!0})),w_e=e=>X(`/oauth2/create-client`,{method:`POST`,use:[VJ],body:j({redirect_uris:ye(P1).min(1).optional(),scope:A().optional(),client_name:A().optional(),client_uri:A().optional(),logo_uri:A().optional(),contacts:ye(A().min(1)).min(1).optional(),tos_uri:A().optional(),policy_uri:A().optional(),software_id:A().optional(),software_version:A().optional(),software_statement:A().optional(),post_logout_redirect_uris:ye(P1).min(1).optional(),backchannel_logout_uri:P1.optional(),backchannel_logout_session_required:Te().optional(),token_endpoint_auth_method:q2.optional(),application_type:De([`web`,`native`]).optional(),jwks:u0.optional(),jwks_uri:A().optional(),grant_types:J2.optional(),response_types:ye(De([`code`])).optional(),dpop_bound_access_tokens:Te().optional()}),metadata:{noStore:!0,openapi:{description:`Register an OAuth2 application`,responses:{201:{description:`OAuth2 application registered successfully`,content:{"application/json":{schema:{type:`object`,properties:{client_id:{type:`string`,description:`Unique identifier for the client`},client_secret:{type:`string`,description:`Secret key for the client`},client_secret_expires_at:{type:`number`,description:`Time the client secret will expire. If 0, the client secret will never expire.`},scope:{type:`string`,description:`Space-separated scopes allowed by the client`},user_id:{type:`string`,description:`ID of the user who registered the client, null if registered anonymously`},client_id_issued_at:{type:`number`,description:`Creation timestamp of this client`},client_name:{type:`string`,description:`Name of the OAuth2 application`},client_uri:{type:`string`,description:`URI of the OAuth2 application`},logo_uri:{type:`string`,description:`Icon URI for the application`},contacts:{type:`array`,items:{type:`string`},description:`List representing ways to contact people responsible for this client, typically email addresses`},tos_uri:{type:`string`,description:`Client's terms of service uri`},policy_uri:{type:`string`,description:`Client's policy uri`},software_id:{type:`string`,description:`Unique identifier assigned by the developer to help in the dynamic registration process`},software_version:{type:`string`,description:`Version identifier for the software_id`},software_statement:{type:`string`,description:`JWT containing metadata values about the client software as claims`},redirect_uris:{type:`array`,items:{type:`string`,format:`uri`},description:`List of allowed redirect uris`},token_endpoint_auth_method:{type:`string`,description:`Requested authentication method for the token endpoint`},grant_types:{type:`array`,items:{type:`string`},description:`Grant types the client may use at the token endpoint`},response_types:{type:`array`,items:{type:`string`,enum:[`code`]},description:`Response types the client may use at the authorization endpoint`},application_type:{type:`string`,description:`OIDC application type used to classify redirect URI policy`,enum:[`web`,`native`]},resources:{type:`array`,items:{type:`string`,format:`uri`},description:`Final server-owned resources linked to the client`},disabled:{type:`boolean`,description:`Whether the client is disabled`},metadata:{type:`object`,additionalProperties:!0,nullable:!0,description:`Additional metadata for the application`}},required:[`client_id`]}}}}}}}},async t=>H2(t,e)),T_e=e=>X(`/oauth2/get-client`,{method:`GET`,use:[VJ],query:j({client_id:A()}),metadata:{openapi:{description:`Get OAuth2 formatted client details`}}},async t=>y_e(t,e)),E_e=e=>X(`/oauth2/public-client`,{method:`GET`,use:[VJ],query:j({client_id:A()}),metadata:{openapi:{description:`Gets publicly available client fields`}}},async t=>{let n=t.query.client_id;return G2(t,e,n)}),D_e=e=>X(`/oauth2/public-client-prelogin`,{method:`POST`,use:[Wge(e)],body:j({client_id:A(),oauth_query:A().optional()}),metadata:{openapi:{description:`Gets publicly available client fields (prior to login)`}}},async t=>{let n=t.body.client_id;return G2(t,e,n)}),O_e=e=>X(`/oauth2/get-clients`,{method:`GET`,use:[VJ],metadata:{openapi:{description:`Get OAuth2 formatted client details for a user or organization`}}},async t=>b_e(t,e)),k_e=e=>X(`/admin/oauth2/update-client`,{method:`PATCH`,body:j({client_id:A(),update:j({redirect_uris:ye(P1).min(1).optional(),scope:A().optional(),client_name:A().optional(),client_uri:A().optional(),logo_uri:A().optional(),contacts:ye(A().min(1)).min(1).optional(),tos_uri:A().optional(),policy_uri:A().optional(),software_id:A().optional(),software_version:A().optional(),software_statement:A().optional(),post_logout_redirect_uris:ye(P1).min(1).optional(),backchannel_logout_uri:P1.optional(),backchannel_logout_session_required:Te().optional(),application_type:De([`web`,`native`]).optional(),grant_types:J2.optional(),client_credentials_scopes:ye(A().trim().min(1)).optional(),response_types:ye(De([`code`])).optional(),client_secret_expires_at:ue([A(),ge()]).optional(),skip_consent:Te().optional(),enable_end_session:Te().optional(),dpop_bound_access_tokens:Te().optional(),metadata:ve(A(),Me()).optional()})}),metadata:{SERVER_ONLY:!0,openapi:{description:`Updates OAuth2 formatted client details.`}}},async t=>K2(t,e,{admin:!0})),A_e=e=>X(`/oauth2/update-client`,{method:`POST`,use:[VJ],body:j({client_id:A(),update:j({redirect_uris:ye(P1).min(1).optional(),scope:A().optional(),client_name:A().optional(),client_uri:A().optional(),logo_uri:A().optional(),contacts:ye(A().min(1)).min(1).optional(),tos_uri:A().optional(),policy_uri:A().optional(),software_id:A().optional(),software_version:A().optional(),software_statement:A().optional(),post_logout_redirect_uris:ye(P1).min(1).optional(),backchannel_logout_uri:P1.optional(),backchannel_logout_session_required:Te().optional(),application_type:De([`web`,`native`]).optional(),grant_types:J2.optional(),response_types:ye(De([`code`])).optional()})}),metadata:{openapi:{description:`Updates OAuth2 formatted client details.`}}},async t=>K2(t,e)),j_e=e=>X(`/oauth2/client/rotate-secret`,{method:`POST`,use:[VJ],body:j({client_id:A()}),metadata:{noStore:!0,openapi:{description:`Rotates a confidential client's secret`}}},async t=>S_e(t,e)),M_e=e=>X(`/oauth2/delete-client`,{method:`POST`,use:[VJ],body:j({client_id:A()}),metadata:{openapi:{description:`Deletes an oauth client`}}},async t=>x_e(t,e));async function Y2(e,t,n){return await e.context.adapter.findOne({model:`oauthConsent`,where:[{field:`id`,value:n}]})}async function N_e(e,t){let n=await zJ(e);if(!n)throw new D(`UNAUTHORIZED`);let{id:r}=e.query;if(!r)throw new D(`NOT_FOUND`,{error_description:`missing id parameter`,error:`not_found`});let i=await Y2(e,t,r);if(!i)throw new D(`NOT_FOUND`,{error_description:`no consent`,error:`not_found`});if(i.userId!==n.user.id)throw new D(`UNAUTHORIZED`);return i}async function P_e(e,t){let n=await zJ(e);if(!n)throw new D(`UNAUTHORIZED`);return await e.context.adapter.findMany({model:`oauthConsent`,where:[{field:`userId`,value:n.user.id}]})}async function F_e(e,t){let n=await zJ(e);if(!n)throw new D(`UNAUTHORIZED`);let{id:r}=e.body;if(!r)throw new D(`NOT_FOUND`,{error_description:`missing id parameter`,error:`not_found`});let i=await Y2(e,t,r);if(!i)throw new D(`NOT_FOUND`,{error_description:`no consent`,error:`not_found`});if(i.userId!==n.user.id)throw new D(`UNAUTHORIZED`);await e.context.adapter.delete({model:`oauthConsent`,where:[{field:`id`,value:r}]})}async function I_e(e,t){let n=await zJ(e);if(!n)throw new D(`UNAUTHORIZED`);let{id:r}=e.body;if(!r)throw new D(`NOT_FOUND`,{error_description:`missing id parameter`,error:`not_found`});let i=await Y2(e,t,r);if(!i)throw new D(`NOT_FOUND`,{error_description:`no consent`,error:`not_found`});if(i.userId!==n.user.id)throw new D(`UNAUTHORIZED`);let a=await u1(e,t,i.clientId);if(!a)throw new D(`NOT_FOUND`,{error_description:`client not found`,error:`not_found`});let o=a?.scopes??t.scopes??[],s=e.body.update,c=s.scopes;if(c&&!c.every(e=>o?.includes(e)))throw new D(`BAD_REQUEST`,{error_description:`unable to provide scopes to ${a?.referenceId??a?.userId}`,error:`invalid_request`});let l=Math.floor(Date.now()/1e3);return await e.context.adapter.update({model:`oauthConsent`,where:[{field:`id`,value:r}],update:{...s,updatedAt:/* @__PURE__ */ new Date(l*1e3)}})}const L_e=e=>X(`/oauth2/get-consent`,{method:`GET`,query:j({id:A()}),use:[VJ],metadata:{openapi:{description:`Gets details of a specific OAuth2 consent for a user`}}},async t=>N_e(t,e)),R_e=e=>X(`/oauth2/get-consents`,{method:`GET`,use:[VJ],metadata:{openapi:{description:`Gets all available OAuth2 consents for a user`}}},async t=>P_e(t,e)),z_e=e=>X(`/oauth2/update-consent`,{method:`POST`,use:[VJ],body:j({id:A(),update:j({scopes:ye(A())})}),metadata:{openapi:{description:`Updates consent granted to a client.`}}},async t=>I_e(t,e)),B_e=e=>X(`/oauth2/delete-consent`,{method:`POST`,use:[VJ],body:j({id:A()}),metadata:{openapi:{description:`Deletes consent granted to a client`}}},async t=>F_e(t,e));async function X2(e,t,n,r,i){if(!t)throw new D(`UNAUTHORIZED`);if(!e.headers)throw new D(`BAD_REQUEST`);if(n.resourcePrivileges&&!await n.resourcePrivileges({headers:e.headers,action:r,session:t.session,user:t.user,resourceId:i}))throw new D(`UNAUTHORIZED`)}const Z2=e=>e.schema?.oauthResource?.modelName??`oauthResource`,Q2=e=>e.schema?.oauthClientResource?.modelName??`oauthClientResource`,V_e=e=>e.schema?.oauthClient?.modelName??`oauthClient`;function $2(e){try{return decodeURIComponent(e)}catch{return e}}function H_e(e,t){return{identifier:e.identifier,name:e.name??e.identifier,accessTokenTtl:e.accessTokenTtl??null,refreshTokenTtl:e.refreshTokenTtl??null,signingAlgorithm:e.signingAlgorithm??null,signingKeyId:e.signingKeyId??null,allowedScopes:e.allowedScopes??null,customClaims:e.customClaims??null,dpopBoundAccessTokensRequired:e.dpopBoundAccessTokensRequired??!1,disabled:e.disabled??!1,policyVersion:1,metadata:e.metadata??null,createdAt:t,updatedAt:t}}async function U_e(e,t){await X2(e,await zJ(e),t,`create`);let n=e.body;if(!n?.identifier)throw new D(`BAD_REQUEST`,{error:`invalid_request`,error_description:`identifier is required`});await _he(t,n.identifier);let r=/* @__PURE__ */ new Date,i;try{i=await e.context.adapter.create({model:Z2(t),data:H_e(n,r)})}catch(e){let t=e instanceof Error?e.message:String(e);throw/unique|duplicate|UNIQUE/i.test(t)?new D(`BAD_REQUEST`,{error:`invalid_request`,error_description:`resource ${n.identifier} already exists`}):e}if(!i)throw new D(`BAD_REQUEST`,{error:`invalid_request`,error_description:`resource ${n.identifier} could not be created`});return Q1(i.identifier),e.json(i,{status:201})}async function W_e(e,t){await X2(e,await zJ(e),t,`list`);let n=await e.context.adapter.findMany({model:Z2(t)});return e.json(n??[])}async function G_e(e,t){let n=$2(e.params.identifier);await X2(e,await zJ(e),t,`read`,n);let r=await e.context.adapter.findOne({model:Z2(t),where:[{field:`identifier`,value:n}]});if(!r)throw new D(`NOT_FOUND`,{error:`not_found`,error_description:`resource ${n} not found`});return e.json(r)}async function K_e(e,t){let n=$2(e.params.identifier);if(await X2(e,await zJ(e),t,`update`,n),!await e.context.adapter.findOne({model:Z2(t),where:[{field:`identifier`,value:n}]}))throw new D(`NOT_FOUND`,{error:`not_found`,error_description:`resource ${n} not found`});let r={updatedAt:/* @__PURE__ */ new Date};for(let t of[`name`,`accessTokenTtl`,`refreshTokenTtl`,`signingAlgorithm`,`signingKeyId`,`allowedScopes`,`customClaims`,`dpopBoundAccessTokensRequired`,`disabled`,`metadata`])Object.prototype.hasOwnProperty.call(e.body,t)&&(r[t]=e.body[t]);await e.context.adapter.update({model:Z2(t),where:[{field:`identifier`,value:n}],update:r}),Q1(n);let i=await e.context.adapter.findOne({model:Z2(t),where:[{field:`identifier`,value:n}]});if(!i)throw new D(`NOT_FOUND`,{error:`not_found`,error_description:`resource ${n} not found`});return e.json(i)}async function q_e(e,t){let n=$2(e.params.identifier);if(await X2(e,await zJ(e),t,`delete`,n),!await e.context.adapter.findOne({model:Z2(t),where:[{field:`identifier`,value:n}]}))throw new D(`NOT_FOUND`,{error:`not_found`,error_description:`resource ${n} not found`});return await e.context.adapter.delete({model:Z2(t),where:[{field:`identifier`,value:n}]}),Q1(n),e.json({deleted:!0})}async function J_e(e,t){let n=await zJ(e),r=$2(e.params.identifier),i=$2(e.params.client_id);if(await X2(e,n,t,`link`,r),!await e.context.adapter.findOne({model:Z2(t),where:[{field:`identifier`,value:r}]}))throw new D(`NOT_FOUND`,{error:`not_found`,error_description:`resource ${r} not found`});if(!await e.context.adapter.findOne({model:V_e(t),where:[{field:`clientId`,value:i}]}))throw new D(`NOT_FOUND`,{error:`not_found`,error_description:`client ${i} not found`});try{await e.context.adapter.create({model:Q2(t),data:{clientId:i,resourceId:r,createdAt:/* @__PURE__ */ new Date}})}catch(t){let n=t instanceof Error?t.message:String(t);if(/unique|duplicate|UNIQUE/i.test(n))return e.json({linked:!0,alreadyLinked:!0});throw t}return e.json({linked:!0})}async function Y_e(e,t){let n=await zJ(e),r=$2(e.params.identifier),i=$2(e.params.client_id);return await X2(e,n,t,`unlink`,r),await e.context.adapter.deleteMany({model:Q2(t),where:[{field:`clientId`,value:i},{field:`resourceId`,value:r}]}),e.json({unlinked:!0})}const e4=j({identifier:A().min(1).optional(),name:A().optional(),accessTokenTtl:ge().int().positive().nullable().optional(),refreshTokenTtl:ge().int().positive().nullable().optional(),signingAlgorithm:De(K1).nullable().optional(),signingKeyId:A().nullable().optional(),allowedScopes:ye(A()).nullable().optional(),customClaims:ve(A(),Me()).nullable().optional(),dpopBoundAccessTokensRequired:Te().optional(),disabled:Te().optional(),metadata:ve(A(),Me()).nullable().optional()}),X_e=e=>X(`/admin/oauth2/resources`,{method:`POST`,body:e4.required({identifier:!0}),metadata:{SERVER_ONLY:!0}},async t=>U_e(t,e)),Z_e=e=>X(`/admin/oauth2/resources`,{method:`GET`,metadata:{SERVER_ONLY:!0}},async t=>W_e(t,e)),Q_e=e=>X(`/admin/oauth2/resources/:identifier`,{method:`GET`,metadata:{SERVER_ONLY:!0}},async t=>G_e(t,e)),$_e=e=>X(`/admin/oauth2/resources/:identifier`,{method:`PATCH`,body:e4,metadata:{SERVER_ONLY:!0}},async t=>K_e(t,e)),eve=e=>X(`/admin/oauth2/resources/:identifier`,{method:`DELETE`,metadata:{SERVER_ONLY:!0}},async t=>q_e(t,e)),tve=e=>X(`/admin/oauth2/resources/:identifier/clients/:client_id`,{method:`POST`,metadata:{SERVER_ONLY:!0}},async t=>J_e(t,e)),nve=e=>X(`/admin/oauth2/resources/:identifier/clients/:client_id`,{method:`DELETE`,metadata:{SERVER_ONLY:!0}},async t=>Y_e(t,e));async function rve(e,t,n){let r=t.disableJwtPlugin?void 0:i1(e.context),i=r?.options;try{let a=await UF(n,QF(await FZ(n,{jwksFetch:i?.jwks?.remoteUrl?i.jwks.remoteUrl:async()=>(await r?.endpoints.getJwks(e))?.response,jwksCacheKey:r})),{issuer:i?.jwt?.issuer??e.context.baseURL}),o=`${e.context.baseURL}/oauth2/userinfo`;if(!a.payload.azp||!await J1(e,t,a.payload.aud,[o]))return null}catch(e){if(e instanceof Error){if(e.name===`TypeError`||e.name===`JWSInvalid`)throw new k(`BAD_REQUEST`,{error_description:`invalid JWT signature`,error:`invalid_request`});if(e.name===`JWTExpired`||e.name===`JWTInvalid`)return null;throw e}throw Error(e)}throw new k(`BAD_REQUEST`,{error_description:`JWT access tokens are self-contained and cannot be revoked server-side`,error:`unsupported_token_type`})}async function ive(e,t,n,r){let i=n;if(t.prefix?.opaqueAccessToken){if(i.startsWith(t.prefix.opaqueAccessToken))i=i.replace(t.prefix.opaqueAccessToken,``);else throw new k(`BAD_REQUEST`,{error_description:`opaque access token not found`,error:`invalid_request`})}let a=await e.context.adapter.findOne({model:`oauthAccessToken`,where:[{field:`token`,value:await g1(t.storeTokens,i,`access_token`)}]});if(!a)throw new k(`BAD_REQUEST`,{error_description:`opaque access token not found`,error:`invalid_request`});if(!a.clientId||a.clientId!==r)return null;a.id?await e.context.adapter.delete({model:`oauthAccessToken`,where:[{field:`id`,value:a.id}]}):await e.context.adapter.delete({model:`oauthAccessToken`,where:[{field:`token`,value:a.token}]})}async function ave(e,t,n,r){let i=await e.context.adapter.findOne({model:`oauthRefreshToken`,where:[{field:`token`,value:await g1(t.storeTokens,n,`refresh_token`)}]});if(!i)throw new k(`BAD_REQUEST`,{error_description:`token not found`,error:`invalid_request`});if(i.revoked)throw await _0(e,r,i.userId),new k(`BAD_REQUEST`,{error_description:`refresh token revoked`,error:`invalid_request`});if(!i.clientId||i.clientId!==r)return null;let a=Math.floor(Date.now()/1e3);if(!await e.context.adapter.incrementOne({model:`oauthRefreshToken`,where:[{field:`id`,value:i.id},{field:`revoked`,operator:`eq`,value:null}],increment:{},set:{revoked:/* @__PURE__ */ new Date(a*1e3)}}))throw await _0(e,r,i.userId),new k(`BAD_REQUEST`,{error_description:`refresh token revoked`,error:`invalid_request`});await e.context.adapter.deleteMany({model:`oauthAccessToken`,where:[{field:`refreshId`,value:i.id}]})}async function ove(e,t,n,r){try{return await rve(e,t,r)}catch(e){if(e instanceof k){if(e.body?.error===`unsupported_token_type`)throw e}else if(e instanceof Error)throw e;else throw Error(e)}try{return await ive(e,t,r,n)}catch(e){if(!(e instanceof k))throw e instanceof Error?e:Error(`Unknown error validating access token`)}throw new k(`BAD_REQUEST`,{error_description:`Invalid access token`,error:`invalid_request`})}async function sve(e,t){let{token:n,token_type_hint:r}=e.body;r!==`access_token`&&r!==`refresh_token`&&(r=void 0);let{clientId:i,clientSecret:a,preVerified:o,authMethod:s}=w1(await T1(e,t,`${e.context.baseURL}/oauth2/revoke`));if(!i)throw new k(`UNAUTHORIZED`,{error_description:`missing required credentials`,error:`invalid_client`});if(typeof n==`string`&&(n=sZ(n)),!n?.length)throw new k(`BAD_REQUEST`,{error_description:`missing a required token for introspection`,error:`invalid_request`});let c=await S1(e,t,i,a,void 0,o,void 0,s);try{if(r===void 0||r===`access_token`)try{return await ove(e,t,c.clientId,n)}catch(e){if(e instanceof k){if(r===`access_token`||e.body?.error===`unsupported_token_type`)throw e}else if(e instanceof Error)throw e;else throw Error(e)}if(r===void 0||r===`refresh_token`)try{return await ave(e,t,(await g0(t,n)).token,c.clientId)}catch(e){if(e instanceof k){if(r===`refresh_token`)throw e}else if(e instanceof Error)throw e;else throw Error(e)}throw new k(`BAD_REQUEST`,{error_description:`token not found`,error:`invalid_request`})}catch(e){if(e instanceof k){if(e.body?.error===`unsupported_token_type`)throw e;if(e.name===`BAD_REQUEST`)return null;throw e}throw e instanceof Error?(E.error(`Introspection error:`,e.message,e.stack),new k(`INTERNAL_SERVER_ERROR`)):(E.error(`Introspection error:`,e),new k(`INTERNAL_SERVER_ERROR`))}}const cve={oauthClient:{modelName:`oauthClient`,fields:{clientId:{type:`string`,unique:!0,required:!0},clientSecret:{type:`string`,required:!1},clientDiscoveryId:{type:`string`,required:!1},disabled:{type:`boolean`,defaultValue:!1,required:!1},skipConsent:{type:`boolean`,required:!1},enableEndSession:{type:`boolean`,required:!1},subjectType:{type:`string`,required:!1},scopes:{type:`string[]`,required:!1},clientCredentialsScopes:{type:`string[]`,required:!1,defaultValue:[]},userId:{type:`string`,required:!1,references:{model:`user`,field:`id`},index:!0},createdAt:{type:`date`,required:!1},updatedAt:{type:`date`,required:!1},name:{type:`string`,required:!1},uri:{type:`string`,required:!1},icon:{type:`string`,required:!1},contacts:{type:`string[]`,required:!1},tos:{type:`string`,required:!1},policy:{type:`string`,required:!1},softwareId:{type:`string`,required:!1},softwareVersion:{type:`string`,required:!1},softwareStatement:{type:`string`,required:!1},redirectUris:{type:`string[]`,required:!0},postLogoutRedirectUris:{type:`string[]`,required:!1},backchannelLogoutUri:{type:`string`,required:!1},backchannelLogoutSessionRequired:{type:`boolean`,required:!1},tokenEndpointAuthMethod:{type:`string`,required:!1},applicationType:{type:`string`,required:!1},jwks:{type:`string`,required:!1},jwksUri:{type:`string`,required:!1},grantTypes:{type:`string[]`,required:!1},responseTypes:{type:`string[]`,required:!1},requirePKCE:{type:`boolean`,required:!1},dpopBoundAccessTokens:{type:`boolean`,required:!1,defaultValue:!1},referenceId:{type:`string`,required:!1},metadata:{type:`json`,required:!1}}},oauthResource:{modelName:`oauthResource`,fields:{identifier:{type:`string`,required:!0,unique:!0},name:{type:`string`,required:!0},accessTokenTtl:{type:`number`,required:!1},refreshTokenTtl:{type:`number`,required:!1},signingAlgorithm:{type:`string`,required:!1},signingKeyId:{type:`string`,required:!1},allowedScopes:{type:`string[]`,required:!1},customClaims:{type:`json`,required:!1},dpopBoundAccessTokensRequired:{type:`boolean`,required:!1,defaultValue:!1},disabled:{type:`boolean`,required:!1,defaultValue:!1},createdAt:{type:`date`,required:!1},updatedAt:{type:`date`,required:!1},policyVersion:{type:`number`,required:!1,defaultValue:1},metadata:{type:`json`,required:!1}}},oauthClientResource:{modelName:`oauthClientResource`,fields:{clientId:{type:`string`,required:!0,references:{model:`oauthClient`,field:`clientId`,onDelete:`cascade`},index:!0},resourceId:{type:`string`,required:!0,references:{model:`oauthResource`,field:`identifier`,onDelete:`cascade`},index:!0},metadata:{type:`json`,required:!1},createdAt:{type:`date`,required:!1}},indexes:[{fields:[`clientId`,`resourceId`],unique:!0}]},oauthRefreshToken:{fields:{token:{type:`string`,required:!0,unique:!0},clientId:{type:`string`,required:!0,references:{model:`oauthClient`,field:`clientId`},index:!0},sessionId:{type:`string`,required:!1,references:{model:`session`,field:`id`,onDelete:`set null`},index:!0},userId:{type:`string`,required:!0,references:{model:`user`,field:`id`},index:!0},referenceId:{type:`string`,required:!1},authorizationCodeId:{type:`string`,required:!1,index:!0},resources:{type:`string[]`,required:!1},requestedUserInfoClaims:{type:`string[]`,required:!1},expiresAt:{type:`date`},createdAt:{type:`date`},revoked:{type:`date`,required:!1},rotatedAt:{type:`date`,required:!1},rotationReplayResponse:{type:`string`,required:!1},rotationReplayExpiresAt:{type:`date`,required:!1},authTime:{type:`date`,required:!1},confirmation:{type:`json`,required:!1},scopes:{type:`string[]`,required:!0}}},oauthAccessToken:{modelName:`oauthAccessToken`,fields:{token:{type:`string`,unique:!0},clientId:{type:`string`,required:!0,references:{model:`oauthClient`,field:`clientId`},index:!0},sessionId:{type:`string`,required:!1,references:{model:`session`,field:`id`,onDelete:`set null`},index:!0},userId:{type:`string`,required:!1,references:{model:`user`,field:`id`},index:!0},referenceId:{type:`string`,required:!1},authorizationCodeId:{type:`string`,required:!1,index:!0},resources:{type:`string[]`,required:!1},requestedUserInfoClaims:{type:`string[]`,required:!1},refreshId:{type:`string`,required:!1,references:{model:`oauthRefreshToken`,field:`id`},index:!0},expiresAt:{type:`date`},createdAt:{type:`date`},revoked:{type:`date`,required:!1},confirmation:{type:`json`,required:!1},scopes:{type:`string[]`,required:!0}}},oauthConsent:{modelName:`oauthConsent`,fields:{clientId:{type:`string`,required:!0,references:{model:`oauthClient`,field:`clientId`},index:!0},userId:{type:`string`,required:!1,references:{model:`user`,field:`id`},index:!0},referenceId:{type:`string`,required:!1},resources:{type:`string[]`,required:!1},requestedUserInfoClaims:{type:`string[]`,required:!1},scopes:{type:`string[]`,required:!0},createdAt:{type:`date`},updatedAt:{type:`date`}}},oauthClientAssertion:{modelName:`oauthClientAssertion`,fields:{expiresAt:{type:`date`,required:!0}}}},t4=[`openid`,`profile`,`email`,`offline_access`],n4=j({id_token_hint:A().optional(),client_id:A().optional(),post_logout_redirect_uri:P1.optional(),state:A().optional()}),r4=XV(()=>null),i4=r4.get,a4=/* @__PURE__ */ new WeakMap,o4=`signedQueryIssuedAtMs`;function lve(e){let t=typeof e==`number`?e:typeof e==`string`?Number(e):void 0;if(!(!t||!Number.isFinite(t)||t<=0))return new Date(t)}const s4=e=>{let t=e.clientRegistrationAllowedScopes;if(e.clientRegistrationDefaultScopes){let n=t?/* @__PURE__ */ new Set([...t,...e.clientRegistrationDefaultScopes]):/* @__PURE__ */ new Set([...e.clientRegistrationDefaultScopes]);t=Array.from(n)}let n=new Set((e.scopes??t4).filter(e=>e.length));if(t){for(let e of t)if(!n.has(e))throw new O(`clientRegistrationAllowedScope ${e} not found in scopes`)}for(let t of e.advertisedMetadata?.scopes_supported??[])if(!n?.has(t))throw new O(`advertisedMetadata.scopes_supported ${t} not found in scopes`);let r=new Set((e.resources??[]).map(e=>typeof e==`string`?e:e.identifier));for(let[t,n]of[[`clientRegistrationDefaultResources`,e.clientRegistrationDefaultResources],[`clientRegistrationAllowedResources`,e.clientRegistrationAllowedResources]])for(let e of n??[])if(!r.has(e))throw new O(`${t} resource ${e} not found in resources`);let i=/* @__PURE__ */ new Set([`sub`,`iss`,`aud`,`exp`,`iat`,`sid`,`scope`,`azp`,...U1.filter(e=>n.has(H1[e].scope))]),a={codeExpiresIn:600,accessTokenExpiresIn:3600,m2mAccessTokenExpiresIn:3600,refreshTokenExpiresIn:2592e3,refreshTokenReuseInterval:0,allowUnauthenticatedClientRegistration:!1,allowDynamicClientRegistration:!1,disableJwtPlugin:!1,storeClientSecret:e.disableJwtPlugin?`encrypted`:`hashed`,storeTokens:`hashed`,grantTypes:[`authorization_code`,`client_credentials`,`refresh_token`],...e,scopes:Array.from(n),claims:Array.from(i),clientRegistrationAllowedScopes:t};if(Y$(a.extensions),a.pairwiseSecret&&a.pairwiseSecret.length<32)throw new O(`pairwiseSecret must be at least 32 characters long for adequate HMAC-SHA256 security`);if(a.grantTypes&&a.grantTypes.includes(`refresh_token`)&&!a.grantTypes.includes(`authorization_code`))throw new O(`refresh_token grant requires authorization_code grant`);if(a.disableJwtPlugin&&(a.storeClientSecret===`hashed`||typeof a.storeClientSecret==`object`&&`hash`in a.storeClientSecret))throw new O(`unable to store hashed secrets because id tokens will be signed with secret`);if(!a.disableJwtPlugin&&(a.storeClientSecret===`encrypted`||typeof a.storeClientSecret==`object`&&(`encrypt`in a.storeClientSecret||`decrypt`in a.storeClientSecret)))throw new O(`encryption method not recommended, please use 'hashed' or the 'hash' function`);let o=async(e,t)=>{let n=new URL(e.url).pathname,r=t.options.advanced?.skipTrailingSlashes?n.replace(/\/+$/,``)||`/`:n,i=a.disableJwtPlugin?t.baseURL:i1(t)?.options?.jwt?.issuer??t.baseURL,o=`/`;try{o=new URL(i).pathname.replace(/\/$/,``)||``}catch{o=new URL(t.baseURL).pathname.replace(/\/$/,``)||``}let s={context:t},c=/* @__PURE__ */ new Set([`/.well-known/oauth-authorization-server${o}`,`${o}/.well-known/oauth-authorization-server`]),l=`${o}/.well-known/openid-configuration`,u=c.has(r),d=a.scopes?.includes(`openid`)&&r===l,f=t=>{let n=s2(t);return e.method===`HEAD`?new Response(null,{status:n.status,headers:n.headers}):n};if((u||d)&&e.method!==`GET`&&e.method!==`HEAD`)return{response:new Response(null,{status:405,headers:{Allow:`GET, HEAD`}})};if(u)return a.scopes?.includes(`openid`)?{response:f(o2(s,a))}:{response:f(a2(s,a))};if(d)return{response:f(o2(s,a))}},s=c2(`/oauth2/authorize`,{method:[`GET`,`POST`],body:j({}).passthrough(),redirectOnError:v4(a),metadata:{allowedMediaTypes:[`application/x-www-form-urlencoded`],openapi:{description:`Authorize an OAuth 2.1 request from query parameters or an application/x-www-form-urlencoded POST body`,parameters:[{name:`response_type`,in:`query`,required:!1,schema:{type:`string`},description:`OAuth 2.1 response type (e.g., 'code')`},{name:`client_id`,in:`query`,required:!0,schema:{type:`string`},description:`OAuth 2.1 client ID`},{name:`redirect_uri`,in:`query`,required:!1,schema:{type:`string`,format:`uri`},description:`OAuth 2.1 redirect URI`},{name:`scope`,in:`query`,required:!1,schema:{type:`string`},description:`OAuth 2.1 scopes (space-separated)`},{name:`state`,in:`query`,required:!1,schema:{type:`string`},description:`OAuth 2.1 state parameter`},{name:`request_uri`,in:`query`,required:!1,schema:{type:`string`},description:`Pushed Authorization Request URI referencing stored parameters`},{name:`code_challenge`,in:`query`,required:!1,schema:{type:`string`},description:`PKCE code challenge`},{name:`code_challenge_method`,in:`query`,required:!1,schema:{type:`string`},description:`PKCE code challenge method`},{name:`nonce`,in:`query`,required:!1,schema:{type:`string`},description:`OpenID Connect nonce`},{name:`max_age`,in:`query`,required:!1,schema:{type:`integer`,minimum:0},description:`Maximum authentication age in seconds; forces re-authentication when exceeded`},{name:`resource`,in:`query`,required:!1,schema:{type:`array`,items:{type:`string`}},description:`Requested protected resource(s) for the access token. May be supplied multiple times as repeated 'resource' query parameters (RFC 8707) or as an array of strings.`},{name:`prompt`,in:`query`,required:!1,schema:{type:`string`},description:`OAuth2 prompt parameter`}],responses:{302:{description:`Redirect to client with code or error`,headers:{Location:{description:`Redirect URI with code or error`,schema:{type:`string`,format:`uri`}}}},400:{description:`Invalid request`,content:{"application/json":{schema:{type:`object`,properties:{error:{type:`string`},error_description:{type:`string`},state:{type:`string`}},required:[`error`]}}}}}}}},async e=>_ve(e,a,e.authorizeSettings??{isAuthorize:!0})),c=(e,t)=>NQ(s,{...e,asResponse:!1,returnHeaders:!1,returnStatus:!1,authorizeSettings:t??{}});return{id:`oauth-provider`,version:`1.7.7`,options:a,onRequest:o,init:async e=>{if(e.options.secondaryStorage&&e.options.session?.storeSessionInDatabase!==!0)throw new O("OAuth Provider requires `session.storeSessionInDatabase: true` when using secondaryStorage");if(await r0(e,a),khe(a),!a.disableJwtPlugin){let t=i1(e)?.options,n=t?.jwt?.issuer??e.baseURL,r=t?.jwt?.issuer==null&&typeof e.options.baseURL==`object`&&e.options.baseURL!==null&&`allowedHosts`in e.options.baseURL;try{new URL(n)}catch(e){if(!r||n!==``)throw e}}return{options:{databaseHooks:{session:{delete:{async before(e,t){if(!t)return;let n=await Dge(t,a,{sessionId:e.id,userId:e.userId});if(!n)return;let r=a4.get(t)??/* @__PURE__ */ new Map;r.set(e.id,n),a4.set(t,r)},async after(e,t){if(!t)return;let n=a4.get(t);if(!n)return;let r=n.get(e.id);if(n.delete(e.id),n.size===0&&a4.delete(t),!r)return;let i=Oge(t,r).catch(e=>{t.context.logger.error(`Back-channel logout failed after session deletion`,e)});await t.context.runInBackgroundOrAwait(i)}}}}}}},hooks:{before:[{matcher(e){return e.body?.oauth_query},handler:zq(async e=>{let t=e.body.oauth_query;if(!await l1(t,e.context.secret))throw new D(`BAD_REQUEST`,{error:`invalid_signature`});let n=Ame(t),r=new URLSearchParams(t),i=r.get(`ba_pl`)??void 0;r.delete(`sig`),r.delete(`exp`),r.delete(V$),r.delete(H$),await r4.set({query:r.toString(),signedQueryIssuedAt:n??void 0,postLoginClearedForSession:i}),e.path===`/sign-in/social`&&await Aq({query:r.toString(),...n?{[o4]:n.getTime()}:{}})})}],after:[{matcher(e){return SG(e.context.responseHeaders?.get(`set-cookie`)||``).has(e.context.authCookies.sessionToken.name)},handler:zq(async e=>{let t=SG(e.context.responseHeaders?.get(`set-cookie`)||``).get(e.context.authCookies.sessionToken.name)?.value.split(`.`)[0];if(!t)return;let n=await r4.get(),r=(await Dq())?.serverContext,i=n?.query??r?.query;if(!i)return;let a=new URLSearchParams(i),o=await e.context.internalAdapter.findSession(t);if(!o)return;e.context.session=o;let s=e.request?.headers?.get(`sec-fetch-mode`)?.toLowerCase(),l=e.request?.headers?.get(`accept`)?.toLowerCase()??``;s===`navigate`||!s&&(l.includes(`text/html`)||l.includes(`application/xhtml+xml`))||e.headers?.set(`accept`,`application/json`);let u=n?.signedQueryIssuedAt??lve(r?.[o4]),d=A1(a,`login`);return k1(o.session.createdAt,u)&&(d=j1(d)),e.query=O1(d),await c(e)})}]},endpoints:{getOAuthServerConfig:X(`/.well-known/oauth-authorization-server`,{method:`GET`,metadata:{SERVER_ONLY:!0}},async e=>a.scopes&&a.scopes.includes(`openid`)?o2(e,a):a2(e,a)),getOpenIdConfig:X(`/.well-known/openid-configuration`,{method:`GET`,metadata:{SERVER_ONLY:!0}},async e=>{if(a.scopes&&!a.scopes.includes(`openid`))throw new D(`NOT_FOUND`);return o2(e,a)}),oauth2Authorize:s,oauth2Consent:X(`/oauth2/consent`,{method:`POST`,body:j({accept:Te().meta({description:`Accept or deny user consent for a set of scopes`}),scope:A().optional().meta({description:`List of accept of accepted space-separated scopes. If none is provided, then all originally requested scopes are accepted.`}),claims:z1.optional().meta({description:`Accepted OIDC claims request object. If none is provided, then all originally requested claims are accepted.`}),oauth_query:A().optional().meta({description:`The redirected page's query parameters`})}),use:[VJ],metadata:{openapi:{description:`Handle OAuth2 consent`,responses:{200:{description:`Consent processed successfully`,content:{"application/json":{schema:{type:`object`,properties:{redirect_uri:{type:`string`,format:`uri`,description:`The URI to redirect to, either with an authorization code or an error`}},required:[`redirect_uri`]}}}}}}}},async e=>xge(e,a,c)),oauth2Continue:X(`/oauth2/continue`,{method:`POST`,body:j({selected:Te().optional().meta({description:`Confirms an account has been selected and authorization can proceed.`}),created:Te().optional().meta({description:`Confirms an account was registered`}),postLogin:Te().optional().meta({description:`Confirms organization and/or team selection.`}),oauth_query:A().optional().meta({description:`The redirected page's query parameters`})}),use:[VJ],metadata:{openapi:{description:`Continues OAuth2 authorization flow`,responses:{200:{description:`Consent processed successfully`,content:{"application/json":{schema:{type:`object`,properties:{redirect_uri:{type:`string`,format:`uri`,description:`The URI to redirect to, either with an authorization code or an error`}},required:[`redirect_uri`]}}}}}}}},async e=>Sge(e,c)),oauth2Token:c2(`/oauth2/token`,{method:`POST`,cloneRequest:!0,body:j({grant_type:A().trim().min(1),client_id:A().optional(),client_secret:A().optional(),client_assertion:A().optional(),client_assertion_type:A().optional(),code:A().optional(),code_verifier:A().optional(),redirect_uri:P1.optional(),refresh_token:A().optional(),resource:ue([l0,ye(l0).min(1)]).optional(),scope:A().optional()}).passthrough(),errorCodesByField:{grant_type:{missing:`invalid_request`,invalid:`unsupported_grant_type`},resource:{invalid:`invalid_target`}},metadata:{noStore:!0,allowedMediaTypes:[`application/x-www-form-urlencoded`],openapi:{description:`Obtain an OAuth2.1 access token`,parameters:[{name:`DPoP`,in:`header`,required:!1,schema:{type:`string`},description:`RFC 9449 DPoP proof JWT for issuing DPoP-bound tokens`}],requestBody:{required:!0,content:{"application/json":{schema:{type:`object`,properties:{grant_type:{type:`string`,description:`OAuth2 grant type`},client_id:{type:`string`,description:`OAuth2 client ID`},client_secret:{type:`string`,description:`OAuth2 client secret`},code:{type:`string`,description:`Authorization code (for authorization_code grant)`},code_verifier:{type:`string`,description:`PKCE code verifier (for authorization_code grant)`},redirect_uri:{type:`string`,format:`uri`,description:`Redirect URI (for authorization_code grant)`},refresh_token:{type:`string`,description:`Refresh token (for refresh_token grant)`},resource:{oneOf:[{type:`string`,description:`Single resource (URL)`},{type:`array`,items:{type:`string`},description:`Multiple resources (URLs)`}],description:`Requested protected resource(s) for the access token`},scope:{type:`string`,description:`Requested scopes (for client_credentials grant)`}},required:[`grant_type`]}}}},responses:{200:{description:`Access token response`,content:{"application/json":{schema:{type:`object`,properties:{access_token:{type:`string`,description:`The access token issued by the authorization server`},token_type:{type:`string`,description:`The type of the token issued`,enum:[`Bearer`,`DPoP`]},expires_in:{type:`number`,description:`Lifetime in seconds of the access token`},refresh_token:{type:`string`,description:`Refresh token, if issued`},scope:{type:`string`,description:`Scopes granted by the access token`},id_token:{type:`string`,description:`ID Token (if OpenID Connect)`}},required:[`access_token`,`token_type`,`expires_in`]}}}},400:{description:`Invalid request or error response`,content:{"application/json":{schema:{type:`object`,properties:{error:{type:`string`},error_description:{type:`string`},error_uri:{type:`string`}},required:[`error`]}}}}}}}},async e=>{if(e.request){let t=await yhe(e.request);t&&t.length>1&&(e.body.resource=t)}return Uhe(e,a)}),oauth2Introspect:c2(`/oauth2/introspect`,{method:`POST`,cloneRequest:!0,body:j({client_id:A().optional(),client_secret:A().optional(),client_assertion:A().optional(),client_assertion_type:A().optional(),token:A(),token_type_hint:A().optional()}),metadata:{noStore:!0,allowedMediaTypes:[`application/x-www-form-urlencoded`],openapi:{description:`Introspect an OAuth2 access or refresh token`,requestBody:{required:!0,content:{"application/json":{schema:{type:`object`,properties:{client_id:{type:`string`,description:`OAuth2 client ID`},client_secret:{type:`string`,description:`OAuth2 client secret`},token:{type:`string`,description:`The token to introspect (access or refresh token)`},token_type_hint:{type:`string`,description:"Hint about the token type. Recognized values: `access_token`, `refresh_token`."}},required:[`token`]}}}},responses:{200:{description:`Token introspection response`,content:{"application/json":{schema:{type:`object`,properties:{active:{type:`boolean`,description:`Whether the token is active`},scope:{type:`string`,description:`Scopes associated with the token`},client_id:{type:`string`,description:`Client ID associated with the token`},username:{type:`string`,description:`Username associated with the token`},token_type:{type:`string`,description:`Type of the token`},exp:{type:`number`,description:`Expiration time of the token (seconds since epoch)`},iat:{type:`number`,description:`Issued at time (seconds since epoch)`},nbf:{type:`number`,description:`Not before time (seconds since epoch)`},sub:{type:`string`,description:`Subject of the token`},aud:{type:`string`,description:`Audience of the token`},iss:{type:`string`,description:`Issuer of the token`},jti:{type:`string`,description:`JWT ID`}},required:[`active`]}}}},400:{description:`Invalid request or error response`,content:{"application/json":{schema:{type:`object`,properties:{error:{type:`string`},error_description:{type:`string`},error_uri:{type:`string`}},required:[`error`]}}}}}}}},async e=>L0(e,a)),oauth2Revoke:c2(`/oauth2/revoke`,{method:`POST`,cloneRequest:!0,body:j({client_id:A().optional(),client_secret:A().optional(),client_assertion:A().optional(),client_assertion_type:A().optional(),token:A(),token_type_hint:A().optional()}),metadata:{allowedMediaTypes:[`application/x-www-form-urlencoded`],openapi:{description:`Revoke an OAuth2 access or refresh token`,requestBody:{required:!0,content:{"application/json":{schema:{type:`object`,properties:{client_id:{type:`string`,description:`OAuth2 client ID`},client_secret:{type:`string`,description:`OAuth2 client secret`},token:{type:`string`,description:`The token to revoke (access or refresh token)`},token_type_hint:{type:`string`,description:"Hint about the token type. Recognized values: `access_token`, `refresh_token`."}},required:[`token`]}}}},responses:{200:{description:`Token revoked successfully. The response body is empty.`,content:{"application/json":{schema:{type:`object`,description:`Empty object on success`}}}},400:{description:`Invalid request or error response`,content:{"application/json":{schema:{type:`object`,properties:{error:{type:`string`},error_description:{type:`string`},error_uri:{type:`string`}},required:[`error`]}}}}}}}},async e=>sve(e,a)),oauth2UserInfo:X(`/oauth2/userinfo`,{method:[`GET`,`POST`],body:j({access_token:A().optional()}).passthrough().optional(),metadata:{noStore:!0,allowedMediaTypes:[`application/x-www-form-urlencoded`],openapi:{description:`Get OpenID Connect user information (UserInfo endpoint)`,security:[{bearerAuth:[]},{OAuth2:[`openid`,`profile`,`email`]}],parameters:[{name:`Authorization`,in:`header`,required:!1,schema:{type:`string`},description:`Bearer or DPoP access token`},{name:`DPoP`,in:`header`,required:!1,schema:{type:`string`},description:`RFC 9449 DPoP proof JWT when using a DPoP-bound access token`}],responses:{200:{description:`User information retrieved successfully`,content:{"application/json":{schema:{type:`object`,properties:{sub:{type:`string`,description:`Subject identifier (user ID)`},email:{type:`string`,format:`email`,nullable:!0,description:`User's email address, included if 'email' scope is granted`},name:{type:`string`,nullable:!0,description:`User's full name, included if 'profile' scope is granted`},picture:{type:`string`,format:`uri`,nullable:!0,description:`User's profile picture URL, included if 'profile' scope is granted`},given_name:{type:`string`,nullable:!0,description:`User's given name, included if 'profile' scope is granted`},family_name:{type:`string`,nullable:!0,description:`User's family name, included if 'profile' scope is granted`},email_verified:{type:`boolean`,nullable:!0,description:`Whether the email is verified, included if 'email' scope is granted`}},required:[`sub`]}}}},401:{description:`Unauthorized - invalid or missing access token`,content:{"application/json":{schema:{type:`object`,properties:{error:{type:`string`},error_description:{type:`string`}},required:[`error`]}}}},403:{description:`Forbidden - insufficient scope`,content:{"application/json":{schema:{type:`object`,properties:{error:{type:`string`},error_description:{type:`string`}},required:[`error`]}}}}}}}},async e=>Vhe(e,a)),oauth2EndSession:c2(`/oauth2/end-session`,{method:[`GET`,`POST`],body:n4.optional(),query:n4.optional(),metadata:{noStore:!0,allowedMediaTypes:[`application/x-www-form-urlencoded`,`application/json`],$Infer:{body:{},query:{}},openapi:{description:`RP-Initiated Logout endpoint. Accepts standard logout parameters through GET or an application/x-www-form-urlencoded POST body, plus JSON for Better Auth generated-client calls. Requests without a usable id_token_hint may require explicit OP confirmation.`,responses:{200:{description:`Logout completed, or an HTML confirmation page was returned for browser navigation. A redirect is used only for an exact registered post_logout_redirect_uri.`,content:{"application/json":{schema:{type:`object`,properties:{redirect_uri:{type:`string`,format:`uri`,description:`URI to redirect to after logout (if post_logout_redirect_uri was provided)`},message:{type:`string`,description:`Success message`}}}},"text/html":{schema:{type:`string`}}}}}}}},async e=>zge(e,a)),oauth2EndSessionConfirmation:c2(`/oauth2/end-session/confirm`,{method:`POST`,body:j({action:Ee(`confirm`)}),metadata:{noStore:!0,allowedMediaTypes:[`application/x-www-form-urlencoded`],scope:`http`}},async e=>Bge(e,a)),registerOAuthClient:c2(`/oauth2/register`,{method:`POST`,body:f0,errorCodesByField:{redirect_uris:`invalid_redirect_uri`,post_logout_redirect_uris:`invalid_redirect_uri`,software_statement:`invalid_software_statement`,resources:`invalid_target`},defaultError:`invalid_client_metadata`,metadata:{noStore:!0,openapi:{description:`Register an OAuth2 application`,responses:{201:{description:`OAuth2 application registered successfully`,content:{"application/json":{schema:{type:`object`,properties:{client_id:{type:`string`,description:`Unique identifier for the client`},client_secret:{type:`string`,description:`Secret key for the client`},client_secret_expires_at:{type:`number`,description:`Time the client secret will expire. If 0, the client secret will never expire.`},scope:{type:`string`,description:`Space-separated scopes allowed by the client`},user_id:{type:`string`,description:`ID of the user who registered the client, null if registered anonymously`},client_id_issued_at:{type:`number`,description:`Creation timestamp of this client`},client_name:{type:`string`,description:`Name of the OAuth2 application`},client_uri:{type:`string`,description:`Name of the OAuth2 application`},logo_uri:{type:`string`,description:`Icon URL for the application`},contacts:{type:`array`,items:{type:`string`},description:`List representing ways to contact people responsible for this client, typically email addresses`},tos_uri:{type:`string`,description:`Client's terms of service uri`},policy_uri:{type:`string`,description:`Client's policy uri`},software_id:{type:`string`,description:`Unique identifier assigned by the developer to help in the dynamic registration process`},software_version:{type:`string`,description:`Version identifier for the software_id`},software_statement:{type:`string`,description:`JWT containing metadata values about the client software as claims`},redirect_uris:{type:`array`,items:{type:`string`,format:`uri`},description:`List of allowed redirect uris`},post_logout_redirect_uris:{type:`array`,items:{type:`string`,format:`uri`},description:`List of allowed logout redirect uris`},backchannel_logout_uri:{type:`string`,format:`uri`,description:`RP URL to receive signed Logout Tokens when the end-user's OP session terminates`},backchannel_logout_session_required:{type:`boolean`,description:"Whether the RP requires a `sid` claim in every Logout Token"},token_endpoint_auth_method:{type:`string`,description:`Requested authentication method for the token endpoint`},grant_types:{type:`array`,items:{type:`string`},description:`Grant types the client may use at the token endpoint`},response_types:{type:`array`,items:{type:`string`,enum:[`code`]},description:`Response types the client may use at the authorization endpoint`},application_type:{type:`string`,description:`OIDC application type used to classify redirect URI policy`,enum:[`web`,`native`]},resources:{type:`array`,items:{type:`string`,format:`uri`},description:`Final resource identifiers linked to the registered client`},disabled:{type:`boolean`,description:`Whether the client is disabled`}},required:[`client_id`]}}}}}}}},async e=>h_e(e,a)),adminCreateOAuthClient:C_e(a),createOAuthClient:w_e(a),getOAuthClient:T_e(a),getOAuthClientPublic:E_e(a),getOAuthClientPublicPrelogin:D_e(a),getOAuthClients:O_e(a),adminUpdateOAuthClient:k_e(a),updateOAuthClient:A_e(a),rotateClientSecret:j_e(a),deleteOAuthClient:M_e(a),getOAuthConsent:L_e(a),getOAuthConsents:R_e(a),updateOAuthConsent:z_e(a),deleteOAuthConsent:B_e(a),adminCreateOAuthResource:X_e(a),adminListOAuthResources:Z_e(a),adminGetOAuthResource:Q_e(a),adminUpdateOAuthResource:$_e(a),adminDeleteOAuthResource:eve(a),adminLinkClientResource:tve(a),adminUnlinkClientResource:nve(a)},schema:uG(structuredClone(cve),a?.schema),rateLimit:[...a.rateLimit?.token===!1?[]:[{pathMatcher:e=>e===`/oauth2/token`,window:a.rateLimit?.token?.window??60,max:a.rateLimit?.token?.max??20}],...a.rateLimit?.authorize===!1?[]:[{pathMatcher:e=>e===`/oauth2/authorize`,window:a.rateLimit?.authorize?.window??60,max:a.rateLimit?.authorize?.max??30}],...a.rateLimit?.introspect===!1?[]:[{pathMatcher:e=>e===`/oauth2/introspect`,window:a.rateLimit?.introspect?.window??60,max:a.rateLimit?.introspect?.max??100}],...a.rateLimit?.revoke===!1?[]:[{pathMatcher:e=>e===`/oauth2/revoke`,window:a.rateLimit?.revoke?.window??60,max:a.rateLimit?.revoke?.max??30}],...a.rateLimit?.register===!1?[]:[{pathMatcher:e=>e===`/oauth2/register`,window:a.rateLimit?.register?.window??60,max:a.rateLimit?.register?.max??5}],...a.rateLimit?.userinfo===!1?[]:[{pathMatcher:e=>e===`/oauth2/userinfo`,window:a.rateLimit?.userinfo?.window??60,max:a.rateLimit?.userinfo?.max??60}]]}};function uve(e,t,n){return t!==0&&n.getTime()-e.getTime()<=t*1e3}function dve(e){let{max_age:t,...n}=e;return n}function c4(e,t,n,r,i,a=`query`){let o=new URLSearchParams({error:t,error_description:n});return r&&o.append(`state`,r),i&&o.append(`iss`,i),a===`fragment`?`${e}#${o.toString()}`:bq(e,o)}function fve(e){let t=typeof e.response_mode==`string`?e.response_mode:void 0;if(t===`fragment`)return`fragment`;if(t===`query`)return`query`;let n=typeof e.response_type==`string`?e.response_type:void 0;return n&&/\b(token|id_token)\b/.test(n)?`fragment`:`query`}const pve={response_type:{invalid:`unsupported_response_type`},resource:{invalid:`invalid_target`}};function mve(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function l4(e){return typeof e==`string`?e:void 0}function hve(e,t){let n=e.method===`POST`&&t?.isAuthorize===!0?e.body:e.query;return{...mve(n)?n:{}}}const u4=(e,t)=>{let n=R0(e.request?.headers),r=e.headers?.get(`accept`)?.includes(`application/json`);if(n||r)return{redirect:!0,url:t.toString()};throw e.redirect(t)};function d4(e,t,n,r,i){return u4(e,c4(n.redirect_uri,r,i,n.state,p4(e,t)))}function f4(e){try{let t=new URL(e);return t.protocol!==`https:`&&!SY(t.host)&&(t.protocol=`https:`),t.search=``,t.hash=``,t.toString().replace(/\/$/,``)}catch{return e}}function p4(e,t){let n;if(t.disableJwtPlugin)n=e.context.baseURL;else try{n=i1(e.context).options?.jwt?.issuer??e.context.baseURL}catch{n=e.context.baseURL}return f4(n)}function m4(e,t,n){return c4(e.context.options.onAPIError?.errorURL||`${e.context.baseURL}/error`,t,n)}function h4(e){let t;try{t=new URL(e)}catch{return}let n=xY(t.hostname)||t.hostname===`localhost`;if(t.protocol!==`http:`||!n)return;let r=e.indexOf(`://`);if(r<0)return;let i=r+3,a=e.slice(i).search(/[/?#]/u),o=e.length;a>=0&&(o=i+a);let s=e.slice(i,o),c;if(s.startsWith(`[`)){let t=s.indexOf(`]`);if(t<0)return;if(s[t+1]!==`:`)return e;c=t+1}else if(c=s.lastIndexOf(`:`),c<0)return e;let l=s.slice(c+1);if(!/^\d*$/u.test(l))return;let u=i+c;return`${e.slice(0,u)}${e.slice(o)}`}function g4(e,t){if(!e||!t)return;let n;try{n=new URL(t)}catch{return}let r=t.includes(`#`),i=n.username.length>0||n.password.length>0;if(r||i)return;let a=h4(t);return e.find(e=>e===t?!0:a?h4(e)===a:!1)}function _4(e){if(!P1.safeParse(e).success)return!1;let t=new URL(e);return t.username.length===0&&t.password.length===0}async function gve(e,t,n,r){if(!n||!r)return null;let i;try{i=await u1(e,t,n)}catch{return null}if(!i||i.disabled)return null;let a=i.redirectUris??[],o=g4(a,r);if(t.validateRedirectUri){if(!_4(r))return null;try{return await t.validateRedirectUri(r,a,!!o)?r:null}catch{return null}}return o?r:null}function v4(e){return async({error:t,error_description:n,ctx:r})=>{let i=r.query??{},a=await gve(r,e,typeof i.client_id==`string`?i.client_id:void 0,typeof i.redirect_uri==`string`?i.redirect_uri:void 0);return a?u4(r,c4(a,t,n,typeof i.state==`string`?i.state:void 0,p4(r,e),fve(i))):u4(r,m4(r,t,n))}}async function _ve(e,t,n){if(t.grantTypes&&!t.grantTypes.includes(`authorization_code`))throw new k(`NOT_FOUND`);if(!e.request)throw new k(`UNAUTHORIZED`,{error_description:`request not found`,error:`invalid_request`});let r=e.request,i=hve(e,n);e.query=i;let a=l4(i.request),o=l4(i.request_uri);if(a!==void 0&&o!==void 0)return v4(t)({error:`invalid_request`,error_description:`request and request_uri cannot be used together`,ctx:e});if(a!==void 0)return v4(t)({error:`request_not_supported`,error_description:`request object not supported`,ctx:e});if(o!==void 0){let n=l4(i.client_id);if(!n)return v4(t)({error:`invalid_request`,error_description:`client_id is required`,ctx:e});if(!t.requestUriResolver)return v4(t)({error:`request_uri_not_supported`,error_description:`request_uri not supported`,ctx:e});let r=await t.requestUriResolver({requestUri:o,clientId:n,ctx:e});if(!r)return v4(t)({error:`invalid_request_uri`,error_description:`request_uri is invalid or expired`,ctx:e});let a=i.client_id;i=r,a&&(i.client_id=a)}e.query=i;let s=d0.safeParse(i);if(!s.success){let n=l2(s.error.issues,pve);return v4(t)({...n,ctx:e})}if(i=s.data,e.query=i,await r4.set({query:y4(i).toString()}),!i.response_type)return v4(t)({error:`invalid_request`,error_description:`response_type is required`,ctx:e});let c=e.query?.prompt?E1(e.query?.prompt):void 0,l=c?.has(`none`)??!1;if(c?.has(`select_account`)&&!t.selectAccount?.page)return u4(e,m4(e,`unsupported_prompt_select_account`,`unsupported prompt type`));if(i.response_type!==`code`)return u4(e,m4(e,`unsupported_response_type`,`unsupported response type`));let u=await u1(e,t,i.client_id);if(!u)return u4(e,m4(e,`invalid_client`,`client_id is required`));if(u.disabled)return u4(e,m4(e,`client_disabled`,`client is disabled`));if(!b1(u,`authorization_code`))return u4(e,m4(e,`unauthorized_client`,`client is not authorized to use the authorization_code grant`));let d=u.redirectUris??[],f=!1;if(i.redirect_uri){let e=!!g4(d,i.redirect_uri);if(t.validateRedirectUri&&_4(i.redirect_uri))try{f=await t.validateRedirectUri(i.redirect_uri,d,e)}catch{f=!1}else t.validateRedirectUri||(f=e)}if(!f)return u4(e,m4(e,`invalid_redirect`,`invalid redirect uri`));let p=i.scope?.split(` `).filter(e=>e);if(p){let n=new Set(u.scopes??t.scopes),r=p.filter(e=>!n?.has(e));if(r.length)return u4(e,c4(i.redirect_uri,`invalid_scope`,`The following scopes are invalid: ${r.join(`, `)}`,i.state,p4(e,t)))}p||(p=u.scopes??t.scopes??[],i.scope=p.join(` `));let m=p.includes(`openid`);if(i.claims!==void 0&&!m)return u4(e,c4(i.redirect_uri,`invalid_request`,`openid scope must be requested when using the claims parameter`,i.state,p4(e,t)));if(m&&!dhe(i.claims))return u4(e,c4(i.redirect_uri,`invalid_request`,`claims must be a valid Claims request object`,i.state,p4(e,t)));if(m&&!fhe(i.claims,`0`))return u4(e,c4(i.redirect_uri,`access_denied`,`essential acr requirement cannot be met`,i.state,p4(e,t)));let h=B1(i.claims,W1(t));if(i.resource!==void 0)try{await Y1(e,t,{resource:i.resource,clientId:u.clientId,requestedScopes:p})}catch(n){if(n instanceof k){let r=n.body?.error??`invalid_target`,a=n.body?.error_description??`requested resource invalid`;return u4(e,c4(i.redirect_uri,r,a,i.state,p4(e,t)))}throw n}let g=M1(u,{scopes:p,nonce:i.nonce});if(g&&(!i.code_challenge||!i.code_challenge_method))return u4(e,c4(i.redirect_uri,`invalid_request`,g.valueOf(),i.state,p4(e,t)));if(i.code_challenge||i.code_challenge_method){if(!i.code_challenge||!i.code_challenge_method)return u4(e,c4(i.redirect_uri,`invalid_request`,`code_challenge and code_challenge_method must both be provided`,i.state,p4(e,t)));if(![`S256`].includes(i.code_challenge_method))return u4(e,c4(i.redirect_uri,`invalid_request`,`invalid code_challenge method, only S256 is supported`,i.state,p4(e,t)))}let _=o1(i.resource)??[],v=await zJ(e),y=i.max_age,b=v!=null&&y!==void 0&&uve(new Date(v.session.createdAt),y,/* @__PURE__ */ new Date);if(!v||v!=null&&y!==void 0&&!b||c?.has(`login`)||c?.has(`create`))return l?d4(e,t,i,`login_required`,`authentication required`):x4(e,t,c?.has(`create`)?`create`:`login`);if(b&&(i=dve(i),e.query=i),n?.isAuthorize&&c?.has(`select_account`))return x4(e,t,`select_account`);if(n?.isAuthorize&&t.selectAccount&&await t.selectAccount.shouldRedirect({headers:r.headers,user:v.user,session:v.session,scopes:p}))return l?d4(e,t,i,`account_selection_required`,`End-User account selection is required`):x4(e,t,`select_account`);if(t.signup?.shouldRedirect){let n=await t.signup.shouldRedirect({headers:r.headers,user:v.user,session:v.session,scopes:p});if(n)return l?d4(e,t,i,`interaction_required`,`End-User interaction is required`):x4(e,t,`create`,{page:typeof n==`string`?n:void 0})}if(!n?.postLogin&&t.postLogin&&await t.postLogin.shouldRedirect({headers:r.headers,user:v.user,session:v.session,scopes:p}))return l?d4(e,t,i,`interaction_required`,`End-User interaction is required`):x4(e,t,`post_login`);if(c?.has(`consent`))return x4(e,t,`consent`,{sessionId:v.session.id});let x=await t.postLogin?.consentReferenceId?.({user:v.user,session:v.session,scopes:p});if(u.skipConsent)return b4(e,t,{query:i,clientId:u.clientId,userId:v.user.id,sessionId:v.session.id,authTime:new Date(v.session.createdAt).getTime(),referenceId:x,resource:_});let S=await e.context.adapter.findOne({model:`oauthConsent`,where:[{field:`clientId`,value:u.clientId},{field:`userId`,value:v.user.id},...x?[{field:`referenceId`,value:x}]:[]]});if(!S||!p.every(e=>S.scopes.includes(e))||!h.every(e=>(S.requestedUserInfoClaims??[]).includes(e)))return l?d4(e,t,i,`consent_required`,`End-User consent is required`):x4(e,t,`consent`,{sessionId:v.session.id});let ee=S?.resources??[];return _.some(e=>!ee.includes(e))?l?d4(e,t,i,`consent_required`,`End-User consent is required`):x4(e,t,`consent`,{sessionId:v.session.id}):b4(e,t,{query:i,clientId:u.clientId,userId:v.user.id,sessionId:v.session.id,authTime:new Date(v.session.createdAt).getTime(),referenceId:x,resource:_})}function y4(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(r!=null){if(Array.isArray(r))for(let e of r)t.append(n,String(e));else n===`claims`&&typeof r==`object`?t.set(n,JSON.stringify(r)):t.set(n,String(r))}return t}async function b4(e,t,n){let r=TH(32,`a-z`,`A-Z`,`0-9`),i=Math.floor(Date.now()/1e3),a=i+(t.codeExpiresIn??600),o={identifier:await h1(t.storeTokens,r,`authorization_code`),updatedAt:/* @__PURE__ */ new Date(i*1e3),expiresAt:/* @__PURE__ */ new Date(a*1e3),value:JSON.stringify({type:`authorization_code`,query:n.query,userId:n.userId,sessionId:n?.sessionId,referenceId:n.referenceId,authTime:n.authTime,resource:n.resource})};await e.context.internalAdapter.createVerificationValue({...o,createdAt:/* @__PURE__ */ new Date(i*1e3)});let s=new URL(n.query.redirect_uri);return s.searchParams.set(`code`,r),n.query.state&&s.searchParams.set(`state`,n.query.state),s.searchParams.set(`iss`,p4(e,t)),u4(e,s.toString())}async function x4(e,t,n,r){let i=await vve(e,t,{postLoginClearedForSession:n===`consent`&&t.postLogin?r?.sessionId:void 0}),a=t.loginPage;if(n===`select_account`)a=t.selectAccount?.page??t.loginPage;else if(n===`post_login`){if(!t.postLogin?.page)throw new k(`INTERNAL_SERVER_ERROR`,{error_description:`postLogin should have been defined`});a=t.postLogin?.page}else n===`consent`?a=t.consentPage:n===`create`&&(a=t.signup?.page??t.loginPage);return u4(e,`${r?.page??a}?${i}`)}async function vve(e,t,n){let r=Date.now(),i=Math.floor(r/1e3)+(t.codeExpiresIn??600),a=y4(e.query);a.set(`exp`,String(i)),a.set(V$,String(r)),a.delete(`sig`),a.delete(H$),n?.postLoginClearedForSession&&a.set(H$,n.postLoginClearedForSession),kme(a);let o=await HW(W$(a).toString(),e.context.secret);return a.set(`sig`,o),a.toString()}const yve=/\/(?:\.|%2e)(?:\.|%2e)?(?:\/|$|#|\?)/i,bve=/* @__PURE__ */ new Set([`client_secret_post`,`client_secret_basic`,`client_secret_jwt`]);function S4(e){let t;try{t=new URL(e)}catch{return!1}return t.protocol===`https:`}function xve(e){if(yve.test(e))return`client_id URL MUST NOT contain dot segments`;if(e.includes(`#`))return`client_id URL MUST NOT contain a fragment`;let t;try{t=new URL(e)}catch{return`client_id is not a valid URL`}if(t.protocol!==`https:`)return`client_id URL must use HTTPS`;let n=/^https:\/\//i.exec(e);if(!n||e.includes(`\\`))return`client_id URL MUST use an explicit HTTPS authority form`;let r=e.slice(n[0].length),i=r.search(/[/?#]/);return i===0?`client_id URL MUST use an explicit HTTPS authority form`:i<0||r[i]!==`/`?`client_id URL MUST contain an explicit path component`:t.username||t.password?`client_id URL MUST NOT contain credentials`:CY(t.hostname)?null:`client_id URL must not target a private or reserved address`}function Sve(e){let t=[];try{let n=new URL(e);n.pathname===`/`&&t.push(`client_id URL path / is NOT RECOMMENDED (§3)`),n.search&&t.push(`client_id URL SHOULD NOT contain a query string (§3)`)}catch{}return t}function Cve(e){try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`||N1(t)}catch{return!1}}function wve(e,t,n={}){if(!t||typeof t!=`object`)return{valid:!1,error:`metadata document is not a JSON object`};for(let e of Object.keys(t))if(g2(e))return{valid:!1,error:`metadata document MUST NOT contain "${e}"`};let r=Rhe.strip().safeParse(t);if(!r.success){let e=r.error.issues[0];return{valid:!1,error:`${e?.path.join(`.`)||`metadata document`}: ${e?.message??`invalid client metadata`}`}}let i=r.data,a=[];if(i.client_id!==e)return{valid:!1,error:`client_id "${String(i.client_id)}" does not match the metadata document URL`};if(n.metadataProfile===`mcp-2026-07-28`&&!i.client_name?.trim())return{valid:!1,error:`client_name must be a non-empty string`};for(let e of[`backchannel_logout_uri`,`backchannel_logout_session_required`])if(i[e]!==void 0)return{valid:!1,error:`metadata document MUST NOT contain "${e}"`};let o=/* @__PURE__ */ new Set([`none`,`private_key_jwt`]);if(typeof i.token_endpoint_auth_method==`string`){if(bve.has(i.token_endpoint_auth_method))return{valid:!1,error:`symmetric auth method "${i.token_endpoint_auth_method}" is prohibited for Client ID Metadata Document clients`};if(!o.has(i.token_endpoint_auth_method))return{valid:!1,error:`token_endpoint_auth_method must be "none" or "private_key_jwt" for Client ID Metadata Document clients`};if(i.token_endpoint_auth_method===`private_key_jwt`&&!i.jwks&&!i.jwks_uri)return{valid:!1,error:`private_key_jwt requires either jwks or jwks_uri in the metadata document`}}if(i.jwks&&!h2(i.jwks).valid)return{valid:!1,error:`jwks must contain only structurally valid public keys`};if(i.jwks_uri)try{let e=new URL(i.jwks_uri);if(e.username||e.password)return{valid:!1,error:`jwks_uri must not contain credentials`};if(i.jwks_uri.includes(`#`))return{valid:!1,error:`jwks_uri must not contain a fragment`}}catch{return{valid:!1,error:`jwks_uri must be a valid URL`}}if(n.metadataProfile===`mcp-2026-07-28`&&!i.redirect_uris||i.redirect_uris&&!i.redirect_uris.every(e=>Cve(e)))return{valid:!1,error:`redirect_uris must be a non-empty array of absolute HTTP(S) or private-use URIs`};for(let e of[`client_uri`,`logo_uri`,`tos_uri`,`policy_uri`]){if(i[e]!==void 0&&typeof i[e]!=`string`)return{valid:!1,error:`${e} must be a string`};if(typeof i[e]==`string`)try{let t=new URL(i[e]);if(t.protocol!==`https:`&&t.protocol!==`http:`)return{valid:!1,error:`${e} must use HTTP(S)`};if(t.username||t.password)return{valid:!1,error:`${e} must not contain credentials`};if(!CY(t.hostname))return{valid:!1,error:`${e} must not point to a private or reserved address`}}catch{return{valid:!1,error:`${e} is not a valid URL`}}}let s=n.originBoundFields??[`post_logout_redirect_uris`,`client_uri`],c;try{c=new URL(e).origin}catch{return{valid:!1,error:`client_id is not a valid URL`}}for(let e of s){let t=i[e];if(t===void 0)continue;let n;if(typeof t==`string`)n=[t];else if(Array.isArray(t)){if(!t.every(e=>typeof e==`string`))return{valid:!1,error:`${e} must be a string or an array of strings`};n=t}else return{valid:!1,error:`${e} must be a string or an array of strings`};for(let t of n){let n;try{n=new URL(t)}catch{return{valid:!1,error:`${e} contains an invalid URL: "${t}"`}}let r=e===`redirect_uris`||e===`post_logout_redirect_uris`,i=r&&N1(n);if(n.protocol!==`https:`&&n.protocol!==`http:`&&!i)return{valid:!1,error:`all values for ${e} must use HTTP(S) or an authority-free private-use scheme`};if(i)continue;let a=r&&SY(n.hostname);if(n.origin!==c&&!a)return{valid:!1,error:`${e} value "${t}" must have the same origin as client_id (${c})`}}}return a.push(...Sve(e)),{valid:!0,metadata:{...i,token_endpoint_auth_method:i.token_endpoint_auth_method??`none`},...a.length>0?{warnings:a}:{}}}const C4=5e3,w4=5120,Tve=/^application\/(?:[-\w.]+\+)?json\s*(?:;|$)/i,T4=`Failed to fetch metadata document (network error or redirect blocked)`,E4=`cimd`;function D4(e){return new k(`BAD_REQUEST`,{error:`invalid_client`,error_description:e})}function O4(){return D4(`Metadata document exceeds ${w4/1024}KB size limit`)}async function Eve(e,t,n){let r=e.body?.getReader();if(!r){let n=await e.text();if(new TextEncoder().encode(n).byteLength>t)throw O4();return n}let i=[],a=0,o,s=new Promise((e,t)=>{o=t}),c=()=>{o?.(/* @__PURE__ */ Error(`Metadata document body read aborted`)),r.cancel().catch(()=>{})};n.aborted?c():n.addEventListener(`abort`,c,{once:!0});try{for(;;){let{done:e,value:n}=await Promise.race([r.read(),s]);if(e)break;if(a+=n.byteLength,a>t)throw await r.cancel(),O4();i.push(n)}}finally{n.removeEventListener(`abort`,c),r.releaseLock()}let l=new Uint8Array(a),u=0;for(let e of i)l.set(e,u),u+=e.byteLength;return new TextDecoder().decode(l)}function Dve(e){return{cacheControl:e.get(`cache-control`)??void 0,vary:e.get(`vary`)??void 0,expires:e.get(`expires`)??void 0,date:e.get(`date`)??void 0,age:e.get(`age`)??void 0,etag:e.get(`etag`)??void 0,lastModified:e.get(`last-modified`)??void 0}}async function Ove(e,t,n,r){let i=xve(t);if(i)throw D4(i);if(n.isMetadataDocumentUrlAllowed&&!await n.isMetadataDocumentUrlAllowed(t,e))throw D4(`client_id URL is not permitted by the server's fetch policy`);let a=new Headers({Accept:`application/json`});r?.etag&&a.set(`If-None-Match`,r.etag),r?.lastModified&&a.set(`If-Modified-Since`,r.lastModified);let o,s=new AbortController,c=!1,l=setTimeout(()=>{c=!0,s.abort()},C4);try{try{o=await n.fetchClientMetadataResource(t,{headers:a,redirect:`error`,signal:s.signal})}catch{throw D4(c?`Metadata document fetch timed out after ${C4}ms`:T4)}if(o.redirected)throw D4(`Metadata document fetch must not follow redirects`);let i=Dve(o.headers);if(o.status===304){if(!r?.etag&&!r?.lastModified)throw D4(`Metadata document returned 304 without a conditional validator`);return{status:`not-modified`,cacheHeaders:i}}if(o.status!==200)throw D4(`Metadata document fetch returned HTTP ${o.status}`);let l=o.headers.get(`content-type`)??``;if(!Tve.test(l))throw D4(`Metadata document must be JSON (got Content-Type "${l||`(none)`}")`);let u;try{let e=o.headers.get(`content-length`);if(e){let t=Number.parseInt(e,10);if(Number.isFinite(t)&&t>w4)throw await o.body?.cancel(),O4()}u=await Eve(o,w4,s.signal)}catch(e){throw c?D4(`Metadata document fetch timed out after ${C4}ms`):e instanceof k?e:D4(T4)}let d;try{d=JSON.parse(u)}catch{throw D4(`Metadata document is not valid JSON`)}let f=wve(t,d,{originBoundFields:n.originBoundFields,metadataProfile:n.metadataProfile});if(!f.valid)throw D4(f.error);for(let t of f.warnings??[])e.context.logger.warn(`cimd metadata document warning: ${t}`);return{status:`modified`,metadata:f.metadata,cacheHeaders:i}}finally{clearTimeout(l)}}async function k4(e,t,n,r,i,a){let o=a?{...a}:void 0,s=await B2(e,i,{clientId:t,clientDiscoveryId:E4,metadata:{...n,client_id:n.client_id,redirect_uris:n.redirect_uris??[]},existingClient:a});if(s.created)try{await r.onClientCreated?.({client:s.client,clientMetadataDocument:n,context:e})}catch(t){e.context.logger.error(`cimd onClientCreated notification failed`,t)}else try{o&&await r.onClientRefreshed?.({client:s.client,previousClient:o,clientMetadataDocument:n,context:e})}catch(t){e.context.logger.error(`cimd onClientRefreshed notification failed`,t)}return s.client}const A4={minimumFetchInterval:1,maximumConcurrentFetches:16,maximumConcurrentFetchesPerOrigin:4,maximumFetchesPerMinute:120,maximumFetchesPerOriginPerMinute:30};function kve(e){return new k(`BAD_REQUEST`,{error:`invalid_client`,error_description:e})}function j4(e){return new k(`TOO_MANY_REQUESTS`,{error:`temporarily_unavailable`,error_description:e})}function Ave(e,t){if(typeof e==`number`){if(!Number.isFinite(e)||e<0)throw new O(`cimd metadataFetchPolicy.${t} must be a non-negative number of seconds or duration string`);return e*1e3}try{let t=Math.floor(Date.now()/1e3),n=(N$(e,t)-t)*1e3;if(!Number.isFinite(n)||n<0)throw Error(`negative duration`);return n}catch{throw new O(`cimd metadataFetchPolicy.${t} must be a non-negative number of seconds or duration string`)}}function M4(e,t){if(!Number.isInteger(e)||e<1)throw new O(`cimd metadataFetchPolicy.${t} must be a positive integer`);return e}function jve(e){let t=e.metadataFetchPolicy;return{minimumFetchIntervalMs:Ave(t?.minimumFetchInterval??A4.minimumFetchInterval,`minimumFetchInterval`),maximumConcurrentFetches:M4(t?.maximumConcurrentFetches??A4.maximumConcurrentFetches,`maximumConcurrentFetches`),maximumConcurrentFetchesPerOrigin:M4(t?.maximumConcurrentFetchesPerOrigin??A4.maximumConcurrentFetchesPerOrigin,`maximumConcurrentFetchesPerOrigin`),maximumFetchesPerMinute:M4(t?.maximumFetchesPerMinute??A4.maximumFetchesPerMinute,`maximumFetchesPerMinute`),maximumFetchesPerOriginPerMinute:M4(t?.maximumFetchesPerOriginPerMinute??A4.maximumFetchesPerOriginPerMinute,`maximumFetchesPerOriginPerMinute`)}}function N4(e,t){let n=t-6e4,r=0;for(;r<e.length&&e[r]<=n;)r+=1;r>0&&e.splice(0,r)}function Mve(e,t){if(typeof e==`number`)return Math.max(0,e*1e3);let n=Math.floor(t/1e3);return Math.max(0,(N$(e,n)-n)*1e3)}function Nve(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Set;for(let r of e?.split(`,`)??[]){let[e,...i]=r.trim().split(`=`),a=e?.toLowerCase();if(!a)continue;t.has(a)&&n.add(a);let o=i.join(`=`).trim();t.set(a,!o||o.replace(/^"|"$/g,``))}return{directives:t,duplicates:n}}function P4(e){if(typeof e!=`string`||!/^\d+$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function Pve(e,t,n){let{directives:r,duplicates:i}=Nve(e.cacheControl),a=e.vary?.split(`,`).some(e=>e.trim()===`*`);if(r.has(`no-store`)||r.has(`private`)||a)return{cacheable:!1,expiresAt:n};let o=Mve(t,n);if(r.has(`no-cache`))return{cacheable:!0,expiresAt:n};let s=P4(e.age)??0,c=e.date?Date.parse(e.date):n,l=Number.isFinite(c)?Math.max(0,n-c):0,u=Math.max(l,s*1e3),d=null,f=r.has(`s-maxage`),p=P4(r.get(`s-maxage`)),m=r.has(`max-age`),h=P4(r.get(`max-age`)),g=f?p===null||i.has(`s-maxage`):m&&(h===null||i.has(`max-age`)),_=f?p:h;if(g)d=0;else if(_!==null)d=Math.max(0,_*1e3-u);else if(e.expires){let t=Date.parse(e.expires);Number.isFinite(t)&&(d=Math.max(0,t-(Number.isFinite(c)?c:n)-u))}return{cacheable:!0,expiresAt:n+Math.min(o,d??o)}}function Fve(e,t){return{cacheControl:t.cacheControl??e.cacheControl,vary:t.vary??e.vary,expires:t.expires??e.expires,date:t.date??e.date,age:t.age??e.age,etag:t.etag??e.etag,lastModified:t.lastModified??e.lastModified}}function Ive(e,t,n,r){let i=Pve(t,n,r);return i.cacheable?{metadata:e,expiresAt:i.expiresAt,etag:t.etag,lastModified:t.lastModified,responseCacheHeaders:t}:null}function Lve(e){let t=e.metadataRevalidationInterval??`60m`,n=e.maxCacheEntries??1e3;if(!Number.isInteger(n)||n<1)throw new O(`cimd maxCacheEntries must be a positive integer`);let r=jve(e),i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Map,s=/* @__PURE__ */ new Map,c=[],l=0,u=e=>{let t=i.get(e);if(t)return i.delete(e),i.set(e,t),t},d=(e,t)=>{for(i.delete(e);i.size>=n;){let e=i.keys().next().value;if(typeof e!=`string`)break;i.delete(e)}i.set(e,t)},f=(e,t)=>{if(!o.has(e))for(;o.size>=n;){let e=!1;for(let[n,i]of o)if(!a.has(n)&&!(r.minimumFetchIntervalMs>0&&t-i<r.minimumFetchIntervalMs)){o.delete(n),e=!0;break}if(!e)throw j4(`metadata fetch client state is at capacity`)}},p=(e,t)=>{let r=s.get(e);if(r)return N4(r.fetchStartTimesMs,t),s.delete(e),s.set(e,r),r;for(;s.size>=n;){let e=!1;for(let[n,r]of s)if(N4(r.fetchStartTimesMs,t),!(r.activeFetchCount>0||r.fetchStartTimesMs.length>0)){s.delete(n),e=!0;break}if(!e)throw j4(`metadata fetch origin state is at capacity`)}let i={activeFetchCount:0,fetchStartTimesMs:[]};return s.set(e,i),i},m=e=>{let t=Date.now(),n=o.get(e);if(r.minimumFetchIntervalMs>0&&n!==void 0&&t-n<r.minimumFetchIntervalMs)throw j4(`metadata document fetch is within the per-client minimum interval`);f(e,t);let i=new URL(e).origin,a=p(i,t);if(N4(c,t),l>=r.maximumConcurrentFetches)throw j4(`global metadata fetch concurrency limit exceeded`);if(a.activeFetchCount>=r.maximumConcurrentFetchesPerOrigin)throw j4(`metadata fetch concurrency limit exceeded for client origin`);if(c.length>=r.maximumFetchesPerMinute)throw j4(`global metadata fetch rate limit exceeded`);if(a.fetchStartTimesMs.length>=r.maximumFetchesPerOriginPerMinute)throw j4(`metadata fetch rate limit exceeded for client origin`);o.delete(e),o.set(e,t),c.push(t),a.fetchStartTimesMs.push(t),l+=1,a.activeFetchCount+=1;let s=!1;return()=>{s||(s=!0,--l,--a.activeFetchCount)}};return async(n,r,s)=>{if(!S4(r))return null;let c=n.context.getPlugin(`oauth-provider`);if(!c)throw new O(`cimd discovery invoked without the oauth-provider plugin installed`);let l=c.options,f=u(r),p=Date.now();if(f&&f.expiresAt>p)return s||k4(n,r,f.metadata,e,l);let h=a.get(r);if(h)return h;let g=m(r),_=(async()=>{let a=await Ove(n,r,e,f?{etag:f.etag,lastModified:f.lastModified}:void 0);if(a.status===`not-modified`&&!f)throw kve(`Metadata document returned 304 without a validated cached document`);let c=a.status===`modified`?a.metadata:f.metadata,u=await k4(n,r,c,e,l,s??void 0),p=Ive(c,a.status===`modified`?a.cacheHeaders:Fve(f.responseCacheHeaders,a.cacheHeaders),t,Date.now());return p?d(r,p):i.delete(r),o.delete(r),u})();a.set(r,_);try{return await _}catch(e){throw o.delete(r),o.set(r,Date.now()),e}finally{a.get(r)===_&&a.delete(r),g()}}}function Rve(e){return{id:E4,matches:S4,resolve:Lve(e),fetchClientMetadataResource:e.fetchClientMetadataResource,discoveryMetadata:{client_id_metadata_document_supported:!0}}}const zve=e=>{let t=Rve(e);return{id:`cimd`,version:`1.7.7`,init(e){Rme(e,{clientDiscovery:t})}}},Bve=/* @__PURE__ */ new Set([204,205,304]);function Vve(e){let t=new Headers;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.append(n,r);return t}const Hve=async(e,t)=>{let n=new Request(e,t),r=new URL(n.url);if(r.protocol!==`https:`)throw TypeError(`CIMD Node transport requires an HTTPS URL`);if(n.method!==`GET`&&n.method!==`HEAD`)throw TypeError(`CIMD Node transport supports only GET and HEAD`);let i=await lt(r.hostname,{all:!0,verbatim:!0});if(i.length===0)throw TypeError(`metadata hostname returned no DNS addresses`);for(let e of i)if(!CY(e.address))throw TypeError(`metadata hostname must resolve only to public-routable addresses`);let a=i[0],o=Object.fromEntries(n.headers.entries());o.host=r.host;let s=t?.signal??(e instanceof Request?e.signal:n.signal);return new Promise((e,t)=>{let i=hee(r,{agent:!1,headers:o,method:n.method,servername:nt(r.hostname.replace(/^\[|\]$/g,``))===0?r.hostname:void 0,signal:s,lookup:(e,t,n)=>{t.all?n(null,[a]):n(null,a.address,a.family)}},t=>{let r=t.statusCode??500,i=n.method===`HEAD`||Bve.has(r)?null:et.toWeb(t);e(new Response(i,{headers:Vve(t.headers),status:r,statusText:t.statusMessage}))});i.once(`error`,t),i.end()})};function Uve(e,t=8){let n=0;return(r,i)=>{let a=i?.signal??(r instanceof Request?r.signal:void 0);return a?.aborted?Promise.reject(a.reason):n>=t?Promise.reject(/* @__PURE__ */ Error(`CIMD transport capacity reached`)):(n++,new Promise((t,o)=>{let s=!1,c=()=>{s=!0,o(a?.reason)};a?.addEventListener(`abort`,c,{once:!0});let l=()=>{n--,a?.removeEventListener(`abort`,c)};Promise.resolve().then(()=>(a?.throwIfAborted(),e(r,i))).then(e=>{l(),s?e.body?.cancel().catch(()=>{}):t(e)},e=>{l(),o(e)})}))}}var F4=class e extends F()(`clankerauth/CimdTransport`){static layer=Vd(e,{fetch:Uve(Hve)});static layerWith=t=>t===void 0?e.layer:Vd(e,{fetch:t})};const I4=`x-clankerauth-peer`,Wve=e=>pee({requestTimeout:15e3,headersTimeout:1e4},e),Gve=(e,t)=>{t.writeHead(503).end()},Kve=Gp(`NodeHttp.listen`)(function*(e,t){let n=Gve,r=Wve((e,t)=>n(e,t)),i=Nf(e=>{r.close(()=>e(R)),r.closeAllConnections()});yield*bp(Nf(n=>{let i=e=>n(B(e));r.once(`error`,i),r.listen(e,t,()=>{r.off(`error`,i),n(R)})}),()=>i);let a=r.address();return a instanceof Object?{port:a.port,serve:e=>xp(()=>i).pipe(Hf(()=>L(()=>n=e)))}:yield*Lf(/* @__PURE__ */ Error(`Expected a TCP listener`))}),qve=Bm(65536),Jve=/^\/forward-auth(?:\?|$)/,Yve=(e,t,n)=>{let r=(e[`x-forwarded-for`]?.split(`,`).map(e=>e.trim()).filter(Boolean))?.at(-1);return n&&r?r:gi(t,()=>`unknown`)},Xve=({baseURL:e,trustProxy:t})=>n=>z(function*(){let r=yield*Ij,i=r.source,a=i instanceof tt?i.url:r.url;if(!a?.startsWith(`/`)||a.startsWith(`//`))return Ik({status:400});let o=vt(r.headers,Jve.test(a)?Qh(`forwarded`):$h([`forwarded`,`x-forwarded-host`,`x-forwarded-proto`]),Yh(`host`,new URL(e).host),Yh(I4,Yve(r.headers,r.remoteAddress,t)),Qh(`x-forwarded-for`)),s=yield*n.pipe(_p(Ij,r.modify({headers:o})),_p(vO,qve));return i instanceof tt?DE(s.body).pipe(kE(`Stream`,e=>Zk(s,PD(e.stream.pipe(cse(()=>L(()=>i.socket.destroy()))),e.contentType,e.contentLength))),ME(()=>s)):s}).pipe(kp),L4=e=>`${R4}${e}`,R4=`resource:`,z4=(e,t,n)=>e`DELETE FROM verification WHERE json_valid(value) AND json_extract(value, '$.type') = 'authorization_code' AND (${t} IS NULL OR json_extract(value, '$.query.client_id') = ${t}) AND (${n} IS NULL OR json_extract(value, '$.referenceId') = ${n})`,B4=Gp(`Authorization.clear`)(function*(e,t){let n=t.clientId??null,r=t.resource===void 0?null:L4(t.resource);yield*e`DELETE FROM oauthConsent WHERE (${n} IS NULL OR clientId = ${n}) AND (${r} IS NULL OR referenceId = ${r})`,yield*z4(e,n,r),yield*e`DELETE FROM oauthAccessToken WHERE (${n} IS NULL OR clientId = ${n}) AND (${r} IS NULL OR referenceId = ${r})`,yield*e`DELETE FROM oauthRefreshToken WHERE (${n} IS NULL OR clientId = ${n}) AND (${r} IS NULL OR referenceId = ${r})`}),Zve=roe(G({message:vx(W),error_description:vx(W)})),Qve=e=>gi(Si(Zve(e.body),e=>_i(e.message??e.error_description)),()=>`Request could not be completed`),V4=e=>new FB({message:e}),H4=e=>new kB({message:e}),U4=(e,t={})=>Af({try:e,catch:e=>{if(!Fq(e))return OB.of(e);let n=e.statusCode,r=n===400||n===422?t.refused:n===404?t.missing:n===409?t.conflict:n===503?t.unavailable:void 0;return r?r(Qve(e)):OB.of(e)}}),W4=(e,t)=>new fI({message:t,issues:[{path:e,message:t}]}),$ve=cx(q(wV)),eye=Ht(`RequestParseError`),tye=e=>$ve(e)?e:DA(e)&&eye(e.reason)?new IB({message:`Request body could not be read`}):OB.of(e),nye=new Map(wV.map(e=>[e,Ky(`httpApiStatus`)(e.ast)??500])),rye=Vk(q(wV)),G4=e=>{let t=tye(e),n=wV.find(e=>cx(e)(t));return rye(t,{status:nye.get(n)??500}).pipe($f)},K4=(e,t)=>e===t||e.endsWith(`.${t}`),iye=e=>{try{return new URL(`https://${e}`).hostname===e&&e.includes(`.`)&&!nt(e)}catch{return!1}},q4=(e,t)=>e.protocol===`https:`||e.protocol===`http:`&&([`localhost`,`127.0.0.1`,`[::1]`].includes(e.hostname)||t),J4=`HTTPS origins (HTTP allowed on loopback, or anywhere with CLANKERAUTH_ALLOW_INSECURE_HTTP=true)`,Y4=(e,t)=>URL.canParse(e)&&new URL(e).origin===e&&q4(new URL(e),t),X4=U(function*(e){let{allowInsecureHttp:t,baseURL:n,cookieDomain:r}=e;return Y4(n,t)?Bh(e.secret).length<32?yield*B(/* @__PURE__ */ Error(`CLANKERAUTH_BETTER_AUTH_SECRET must have at least 32 characters`)):e.mcpAllowedOrigins.every(e=>Y4(e,t))?r!==void 0&&(!iye(r)||!K4(new URL(n).hostname,r))?yield*B(/* @__PURE__ */ Error(`CLANKERAUTH_COOKIE_DOMAIN must be a bare parent domain of the CLANKERAUTH_BASE_URL host, such as home.example`)):e:yield*B(/* @__PURE__ */ Error(`CLANKERAUTH_MCP_ALLOWED_ORIGINS must contain exact ${J4}`)):yield*B(/* @__PURE__ */ Error(`CLANKERAUTH_BASE_URL must be one of: ${J4}`))}),aye=z(function*(){let e={baseURL:yield*dE(`CLANKERAUTH_BASE_URL`),secret:yield*Kse(`CLANKERAUTH_BETTER_AUTH_SECRET`),database:yield*dE(`CLANKERAUTH_DATABASE`).pipe(rE(`data/clankerauth.sqlite`)),host:yield*dE(`CLANKERAUTH_HOST`).pipe(rE(`127.0.0.1`)),port:yield*Gse(`CLANKERAUTH_PORT`).pipe(rE(3e3)),mcpAllowedOrigins:yield*Wse(uS,`CLANKERAUTH_MCP_ALLOWED_ORIGINS`).pipe(rE([])),trustProxy:yield*fE(`CLANKERAUTH_TRUST_PROXY`).pipe(rE(!1)),allowInsecureHttp:yield*fE(`CLANKERAUTH_ALLOW_INSECURE_HTTP`).pipe(rE(!1)),cookieDomain:yield*dE(`CLANKERAUTH_COOKIE_DOMAIN`).pipe(rE(void 0))};return yield*X4(e)});var Z4=class e extends F()(`clankerauth/Settings`){static layer=Wd(e,aye)};const Q4=`Exactly one configured resource is required`,$4=[`offline_access`],oye=PV(sS(K(W))),sye=PV(G({identifier:W,name:W,allowedScopes:W})),e3=PV(K(sV)),t3=(e,t)=>[.../* @__PURE__ */ new Set([...$4,...t.flatMap(t=>e.find(e=>e.identifier===t)?.scopes??[])])],n3=Gp(`ResourceCatalog.validateSelection`)(function*(e,t){let n=t.findIndex(t=>!e.some(e=>e.identifier===t));if(n!==-1)return yield*W4([`resources`,n],`Unknown Resource`)}),r3=Gp(`ResourceCatalog.accessForClient`)(function*(e,t){return yield*e3(yield*t`SELECT clientId AS client_id, resourceId AS resource FROM oauthClientResource WHERE clientId = ${e} ORDER BY resourceId`)});var i3=class e extends F()(`clankerauth/ResourceCatalog`){static layer=Wd(e,z(function*(){let{sql:e}=yield*RV,t=HB((yield*Z4).baseURL),n=Gp(`ResourceCatalog.decode`)(function*(e){let n=yield*sye(e),r=yield*oye(n.allowedScopes);return{identifier:n.identifier,name:n.name,scopes:r.filter(e=>!$4.includes(e)),builtIn:n.identifier===t}}),r=Gp(`ResourceCatalog.list`)(function*(){let t=yield*e`SELECT identifier, name, allowedScopes FROM oauthResource ORDER BY createdAt, identifier`;return yield*Df(t,n)}),i=Gp(`ResourceCatalog.get`)(function*(t){let r=yield*e`SELECT identifier, name, allowedScopes FROM oauthResource WHERE identifier = ${t}`;return r[0]?yield*n(r[0]):void 0});return{list:r,get:i,application:e=>H(i(e),e=>e?.builtIn?void 0:e),access:Gp(`ResourceCatalog.access`)(function*(){return yield*e3(yield*e`SELECT clientId AS client_id, resourceId AS resource FROM oauthClientResource ORDER BY clientId, resourceId`)}),hasAccess:Gp(`ResourceCatalog.hasAccess`)(function*(t,n){return(yield*e`SELECT 1 FROM oauthClient c WHERE c.clientId = ${t} AND (c.userId IS NULL
511
- OR EXISTS (SELECT 1 FROM oauthClientResource l WHERE l.clientId = c.clientId AND l.resourceId = ${n}))`).length>0}),scopesFor:Gp(`ResourceCatalog.scopesFor`)(function*(e){let t=yield*r();return yield*n3(t,e),t3(t,e)})}}))};const cye=noe(G({typ:W,payload:jx(W,PS)})),lye=e=>({id:`signer`,endpoints:{signDocument:X.serverOnly({method:`POST`,body:cye},async t=>t.json({token:await I$(t,{options:e,header:{typ:t.body.typ},payload:t.body.payload})}))}}),uye=e=>typeof e==`string`,dye=(e,t,n,r,i,a)=>{let o={disableSettingJwtHeader:!0,jwt:{issuer:`${e.baseURL}/api/auth`},jwks:{keyPairConfig:{alg:`EdDSA`,crv:`Ed25519`}}},s=s4({loginPage:`/login`,consentPage:`/consent`,scopes:[...$4],resources:[{identifier:HB(e.baseURL),name:`clankerauth administration`,allowedScopes:[...$4,UB.read,UB.write]}],resourceSeedMode:`merge`,rateLimit:{register:{window:60,max:10}},postLogin:{page:`/consent`,shouldRedirect:()=>!1,consentReferenceId:async({scopes:e})=>{let t=await i4(),r=new URLSearchParams(t?.query),a=r.getAll(`resource`);if(a.length!==1||!await i(n.get(a[0])))throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:Q4});let o=r.get(`client_id`);if(!o||!await i(n.hasAccess(o,a[0])))throw new D(`BAD_REQUEST`,{error:`invalid_target`,error_description:`Client access is required`});let s=await i(n.scopesFor(a));if(e.some(e=>!s.includes(e)))throw new D(`BAD_REQUEST`,{error:`invalid_scope`,error_description:`Resource scopes changed; start authorization again`});return L4(a[0])}},grantTypes:[`authorization_code`,`refresh_token`],allowDynamicClientRegistration:!0,allowUnauthenticatedClientRegistration:!0,clientRegistrationRequirePKCE:!0,enforcePerClientResources:!1,accessTokenExpiresIn:900,refreshTokenExpiresIn:2592e3,refreshTokenReuseInterval:30,codeExpiresIn:120,clientPrivileges:async({user:e,action:t})=>!!e&&t!==`configure-client-credentials-scopes`,resourcePrivileges:async({user:e})=>!!e});return{options:{appName:`clankerauth`,baseURL:e.baseURL,secret:Bh(e.secret),database:{db:t,type:`sqlite`,transaction:!0},trustedOrigins:[e.baseURL],logger:{disabled:!0},disabledPaths:[`/token`],emailAndPassword:{enabled:!0,minPasswordLength:8,maxPasswordLength:128},databaseHooks:{user:{create:{before:async()=>{if(await a())throw new D(`CONFLICT`,{message:`Setup already completed`})}}}},hooks:{before:zq(async e=>{if(e.path===`/oauth2/register`){let t=e.body.redirect_uris;!e.body.application_type&&Array.isArray(t)&&t.some(e=>{if(!uye(e))return!1;try{return new URL(e).protocol!==`https:`}catch{return!1}})&&(e.body.application_type=`native`),delete e.body.resources}})},session:{expiresIn:2592e3,updateAge:86400},advanced:{ipAddress:{ipAddressHeaders:[I4]}},rateLimit:{enabled:!0,storage:`database`,window:60,max:100,customRules:{"/sign-in/email":{window:60,max:5}}},plugins:[vme({defaultPrefix:`clankerauth_`,maximumNameLength:100,enableSessionForAPIKeys:!1,keyExpiration:{defaultExpiresIn:null,minExpiresIn:0},rateLimit:{enabled:!1}}),Ome(o),lye(o),s,zve({fetchClientMetadataResource:r,metadataProfile:`mcp-2026-07-28`,metadataRevalidationInterval:300,maxCacheEntries:1e3,metadataFetchPolicy:{maximumConcurrentFetches:8,maximumConcurrentFetchesPerOrigin:2,maximumFetchesPerMinute:60,maximumFetchesPerOriginPerMinute:15}})]},oauthPlugin:s}};var a3=class e extends F()(`clankerauth/Issuer`){static layer=Wd(e,z(function*(){let e=yield*Z4,{kysely:t}=yield*RV,n=yield*i3,{fetch:r}=yield*F4,i=lie(yield*up()),{options:a,oauthPlugin:o}=dye(e,t,n,r,i,async()=>await(await $V((await s.$context).adapter)).count({model:`user`})>0),{auth:s,context:c}=yield*Gp(`Auth.initialize`)(function*(){let e=yield*Af(()=>BQ(a));if(e.schemaProblems.length)return yield*B(/* @__PURE__ */ Error(`Database schema requires manual repair`));yield*Af(()=>e.runMigrations());let t=Lpe(a);return{auth:t,context:yield*Af(()=>t.$context)}},jp)();return{auth:s,context:c,publishScopes:e=>L(()=>{o.options.scopes=[...e]})}}))};const fye=lx(uV),pye=lx(G({id:W,key:W,referenceId:W,expiresAt:Lx(bS),permissions:Lx(sS(uV))})),o3=U(function*(e){return{keyId:e.id,name:e.name??``,enabled:e.enabled,permissions:yield*fye(e.permissions??{}).pipe(qf(()=>Gf(qp(`An API key's stored permissions do not decode; it is listed with none`,{keyId:e.id}),{}))),expiresAt:e.expiresAt?Wm(e.expiresAt):null,createdAt:Wm(e.createdAt)}});var s3=class e extends F()(`clankerauth/ApiKeys`){static layer=Wd(e,z(function*(){let{auth:e}=yield*a3,{sql:t}=yield*RV,n=yield*i3,r=Gp(`ApiKeys.validate`)(function*(e){if(e!==void 0)for(let[t,r]of Object.entries(e)){let e=yield*n.get(t);if(e?.builtIn)return yield*W4([`permissions`,t],`Administration requires OAuth access tokens, not API keys`);if(!e||r.some(t=>!e.scopes.includes(t)))return yield*W4([`permissions`,t],`Select explicitly granted, currently available Resource scopes`)}});return{list:Gp(`ApiKeys.list`)(function*(){let{providerHeaders:t}=yield*RB,n=yield*t,r=yield*U4(()=>e.api.listApiKeys({headers:n,query:{sortBy:`createdAt`,sortDirection:`asc`}}));return{keys:yield*Df(r.apiKeys,o3)}}),create:Gp(`ApiKeys.create`)(function*(t){let n=yield*RB;yield*r(t.permissions);let i=t.expiresAt===null?null:(Jm(t.expiresAt)-(yield*of))/1e3;if(i!==null&&i<1)return yield*W4([`expiresAt`],`Expiry must be in the future`);let a=yield*U4(()=>e.api.createApiKey({body:{userId:n.userId,name:t.name.trim(),permissions:ma(t.permissions,e=>[...e]),expiresIn:i}}),{refused:V4});return{...yield*o3(a),key:a.key}}),update:Gp(`ApiKeys.update`)(function*(t){let n=yield*RB;return yield*r(t.permissions),yield*o3(yield*U4(()=>e.api.updateApiKey({body:{userId:n.userId,keyId:t.keyId,name:t.name?.trim(),enabled:t.enabled,permissions:t.permissions&&ma(t.permissions,e=>[...e])}}),{refused:V4,missing:()=>MB.of(t.keyId)}))}),delete:Gp(`ApiKeys.delete`)(function*({keyId:t}){let{providerHeaders:n}=yield*RB,r=yield*n;return yield*U4(()=>e.api.deleteApiKey({headers:r,body:{keyId:t}}),{missing:()=>MB.of(t)}),{deleted:!0}}),keyList:Gp(`ApiKeys.keyList`)(function*(r){let i=yield*of,a=(yield*n.application(r))?.scopes??[],o=a.length?yield*t`
512
- SELECT id, key, referenceId, expiresAt, permissions FROM apikey
513
- WHERE enabled = 1 AND (expiresAt IS NULL OR expiresAt > ${new Date(i).toISOString()})
514
- `:[],s=yield*Df(o,e=>z(function*(){let t=yield*pye(e),n=(t.permissions?.[r]??[]).filter(e=>a.includes(e));return n.length?[yield*Af(()=>pde(new Uint8Array(Buffer.from(t.key,`base64url`)),r,{keyId:t.id,ownerId:t.referenceId,scopes:n,expiresAt:t.expiresAt===null?null:Jm(t.expiresAt)}))]:[]}).pipe(qf(()=>Gf(qp(`An API key row cannot be listed; it is left out of key lists`,{keyId:e.id}),[])))),c=Math.floor(i/1e3),{token:l}=yield*U4(()=>e.api.signDocument({body:{typ:aI,payload:{aud:r,iat:c,exp:c+86400,keys:s.flat()}}}));return{list:l}})}}))};const c3=e=>e.userId===null,mye=PV(K(G({userId:Lx(W)}))),l3=Gp(`Clients.requireManaged`)(function*(e,t){let[n]=yield*mye(yield*t`SELECT userId FROM oauthClient WHERE clientId = ${e}`);if(!n)return yield*B(AB.of(e));if(c3(n))return yield*B(NB.of(e))}),hye=PV(K(G({clientId:W}))),u3=e=>({identifier:encodeURIComponent(e)}),gye=e=>{try{return new URL(e).href===e&&!e.includes(`#`)}catch{return!1}},_ye=Gp(`Resources.validateInput`)(function*(e){let t=e.identifier.trim(),n=e.name.trim(),r=[...new Set(e.scopes.map(e=>e.trim()))];if(!gye(t))return yield*W4([`identifier`],`Resource identifiers must be absolute URIs in canonical form, without a fragment`);let i=e.scopes.findIndex(e=>$4.includes(e.trim()));return i===-1?{identifier:t,name:n,scopes:r}:yield*W4([`scopes`,i],`offline_access is reserved`)});var d3=class e extends F()(`clankerauth/Resources`){static layer=Wd(e,z(function*(){let{sql:e,transaction:t}=yield*RV,{auth:n,publishScopes:r}=yield*a3,i=yield*i3,a=yield*KC(1),o=e=>a.withPermit(e),s=Gp(`Resources.syncClient`)(function*(e,t,n){let r=yield*r3(n,e),i=JSON.stringify(t3(t,r.map(e=>e.resource)));yield*e`UPDATE oauthClient SET scopes = ${i}, updatedAt = ${yield*of} WHERE clientId = ${n} AND scopes IS NOT ${i}`}),c=Gp(`Resources.synchronize`)(function*(){let t=yield*i.list(),n=t3(t,t.map(e=>e.identifier));yield*r(n),yield*e`UPDATE oauthClient SET scopes = ${JSON.stringify(n)}, updatedAt = ${yield*of} WHERE userId IS NULL AND scopes IS NOT ${JSON.stringify(n)}`;for(let n of yield*hye(yield*e`SELECT clientId FROM oauthClient WHERE userId IS NOT NULL ORDER BY clientId`))yield*s(e,t,n.clientId)}),l=e=>e?.builtIn?B(W4([`identifier`],`The administration Resource is fixed`)):R,u=V(RB,e=>e.providerHeaders);yield*c();let d=Gp(`Resources.link`)(function*(n,r){let a=yield*i.list();yield*n3(a,r);let o=yield*of;return yield*t(e=>z(function*(){let t=(yield*r3(n,e)).map(e=>e.resource);for(let i of t.filter(e=>!r.includes(e)))yield*e`DELETE FROM oauthClientResource WHERE clientId = ${n} AND resourceId = ${i}`,yield*B4(e,{clientId:n,resource:i});for(let t of r)yield*e`INSERT OR IGNORE INTO oauthClientResource (id, clientId, resourceId, createdAt)
515
- VALUES (${crypto.randomUUID()}, ${n}, ${t}, ${new Date(o).toISOString()})`;yield*s(e,a,n)})),yield*r3(n,e)},o);return{link:d,get:Gp(`Resources.get`)(function*({identifier:e}){return(yield*i.get(e))??(yield*jB.of(e))}),put:Gp(`Resources.put`)(function*(e){let r=yield*_ye(e),a=yield*i.get(r.identifier);yield*l(a);let o=yield*u,s=[...$4,...r.scopes];return a===void 0?(yield*t(e=>B4(e,{resource:r.identifier})),yield*U4(()=>n.api.adminCreateOAuthResource({headers:o,body:{identifier:r.identifier,name:r.name,allowedScopes:s}}),{refused:V4})):yield*U4(()=>n.api.adminUpdateOAuthResource({headers:o,params:u3(r.identifier),body:{name:r.name,allowedScopes:s}}),{refused:V4}),yield*c(),{resource:r,created:a===void 0}},o),delete:Gp(`Resources.delete`)(function*({identifier:e}){yield*l(yield*i.get(e));let r=yield*u;return yield*U4(()=>n.api.adminDeleteOAuthResource({headers:r,params:u3(e)}),{missing:()=>jB.of(e)}),yield*t(t=>B4(t,{resource:e})),yield*c(),{deleted:!0}},o),setAccess:Gp(`Resources.setAccess`)(function*({client_id:t,resources:n}){return yield*l3(t,e),{clientAccess:yield*d(t,n)}})}}))};const vye=PV(K(G({client_id:W,resource:W,scopes:sS(K(W)),approvedAt:Lx(bS),refreshedAt:Lx(bS)}))),yye=PV(K(G({clientId:W,name:Lx(W),redirectUris:sS(K(W)),tokenEndpointAuthMethod:Lx(W),applicationType:Lx(W),scopes:Lx(sS(K(W))),grantTypes:Lx(sS(K(W))),disabled:Lx(Ex),clientDiscoveryId:Lx(W),userId:Lx(W)})));var f3=class e extends F()(`clankerauth/Clients`){static layer=Wd(e,z(function*(){let{sql:e,transaction:t}=yield*RV,{auth:n}=yield*a3,{baseURL:r}=yield*Z4,i=yield*i3,a=yield*d3,o=Gp(`Clients.exists`)(function*(e,t){if(!(yield*t`SELECT 1 FROM oauthClient WHERE clientId = ${e}`).length)return yield*B(AB.of(e))}),s=Gp(`Clients.revoke`)(function*(e,t,n){return yield*o(e,n),yield*B4(n,{clientId:e,resource:t}),{revoked:!0}}),c=Gp(`Clients.connections`)(function*(){let t=new Date(yield*of).toISOString();return(yield*vye(yield*e`WITH live AS (
516
- SELECT clientId, referenceId, scopes, createdAt FROM oauthRefreshToken
517
- WHERE revoked IS NULL AND expiresAt > ${t}
518
- ), held AS (
519
- SELECT clientId, referenceId FROM oauthConsent
520
- UNION SELECT clientId, referenceId FROM live
521
- )
522
- SELECT h.clientId AS client_id, r.identifier AS resource, c.updatedAt AS approvedAt,
523
- COALESCE(c.scopes, (SELECT l.scopes FROM live l WHERE l.clientId = h.clientId
524
- AND l.referenceId = h.referenceId ORDER BY l.createdAt DESC LIMIT 1)) AS scopes,
525
- (SELECT MAX(l.createdAt) FROM live l WHERE l.clientId = h.clientId
526
- AND l.referenceId = h.referenceId) AS refreshedAt
527
- FROM held h
528
- JOIN oauthResource r ON h.referenceId = ${R4} || r.identifier
529
- LEFT JOIN oauthConsent c ON c.clientId = h.clientId AND c.referenceId = h.referenceId
530
- ORDER BY client_id, resource`)).map(e=>({...e,scopes:e.scopes.filter(e=>!$4.includes(e))}))});return{connections:c,list:Gp(`Clients.list`)(function*(){let{email:t}=yield*RB,n=yield*e`
531
- SELECT clientId, name, redirectUris, tokenEndpointAuthMethod, applicationType, scopes,
532
- grantTypes, disabled, clientDiscoveryId, userId
533
- FROM oauthClient ORDER BY createdAt, clientId
534
- `,a=(yield*yye(n)).map(e=>({client_id:e.clientId,onboarding:e.clientDiscoveryId===null?c3(e)?`dcr`:`managed`:`cimd`,blocked:e.disabled===1,client_name:e.name??void 0,redirect_uris:e.redirectUris,token_endpoint_auth_method:e.tokenEndpointAuthMethod??void 0,application_type:e.applicationType,scope:e.scopes?.join(` `),grant_types:e.grantTypes??void 0})),o=yield*Ef({resources:i.list(),clientAccess:i.access(),connections:c()});return{clients:a,resources:o.resources,clientAccess:o.clientAccess,connections:o.connections,email:t,issuer:`${r}/api/auth`}}),create:Gp(`Clients.create`)(function*(e){let{providerHeaders:t}=yield*RB,r=yield*i.scopesFor(e.resources),o=yield*t,s=yield*U4(()=>n.api.adminCreateOAuthClient({headers:o,body:{client_name:e.client_name,redirect_uris:[...e.redirect_uris],token_endpoint_auth_method:e.token_endpoint_auth_method,application_type:e.application_type,grant_types:[`authorization_code`,`refresh_token`],scope:r.join(` `),skip_consent:!0}}),{refused:V4});return yield*a.link(s.client_id,e.resources).pipe(ep(()=>U4(()=>n.api.deleteOAuthClient({headers:o,body:{client_id:s.client_id}})))),s}),update:Gp(`Clients.update`)(function*(t){yield*l3(t.client_id,e);let{providerHeaders:r}=yield*RB,i=yield*r;return yield*U4(()=>n.api.updateOAuthClient({headers:i,body:{client_id:t.client_id,update:{client_name:t.client_name,redirect_uris:[...t.redirect_uris],application_type:t.application_type}}}),{refused:V4,missing:()=>AB.of(t.client_id)})}),rotate:Gp(`Clients.rotate`)(function*(t){yield*l3(t.client_id,e);let{providerHeaders:r}=yield*RB,i=yield*r;return yield*U4(()=>n.api.rotateClientSecret({headers:i,body:t}),{refused:V4,missing:()=>AB.of(t.client_id)})}),revoke:({client_id:e,resource:n})=>t(t=>s(e,n,t)),delete:({client_id:e})=>t(t=>z(function*(){return yield*o(e,t),yield*z4(t,e,null),yield*t`DELETE FROM oauthClient WHERE clientId = ${e}`,{deleted:!0}})),block:({client_id:e,blocked:n})=>t(t=>z(function*(){return n?yield*s(e,void 0,t):yield*o(e,t),yield*t`UPDATE oauthClient SET disabled = ${+!!n}, updatedAt = ${yield*of} WHERE clientId = ${e}`,{blocked:n}}))}}))};const bye=[`/`,`/resources`,`/keys`,`/login`,`/setup`,`/consent`],xye=({readOnly:e,mcp:t})=>({readOnlyHint:e,destructiveHint:t.destructiveHint??!e,idempotentHint:t.idempotentHint??!1,openWorldHint:t.openWorldHint??!0}),p3=`~effect/ai/AiError/Reason`;var Sye=class extends (/*#__PURE__*/ kS(`effect/ai/AiError/ToolParameterValidationError`)({_tag:/*#__PURE__*/ Vx(`ToolParameterValidationError`),toolName:W,description:W})){[p3]=p3;get isRetryable(){return!0}get message(){return`Invalid parameters for tool '${this.toolName}': ${this.description}`}};const m3=`~effect/rpc/RpcMiddleware`,Cye=()=>(e,t)=>{let n=Fn(),r;n!==0&&(In(2),r=new globalThis.Error,In(n));function i(){}let a=i;return Object.setPrototypeOf(i,Object.getPrototypeOf(F(e))),i.key=e,Object.defineProperty(i,"stack",{get(){return r?.stack}}),a[m3]=m3,a.error=t?.error??Cx,a.requiredForClient=t?.requiredForClient??!1,i},h3=(e,t)=>{let n=L(t);return vx(e).pipe(hoe({decode:T_(n),encode:b_()}),Bx(n))},Z=e=>vx(e).pipe(zx(bx(yx(e)),{decode:b_(),encode:C_(Si(vi))})),wye=/*#__PURE__*/ q([W,Jx]),g3=/*#__PURE__*/ q([W,Jx]);var _3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({_meta:/*#__PURE__*/ Z(/*#__PURE__*/ Mx(/*#__PURE__*/ G({progressToken:/*#__PURE__*/ Z(g3)}),[FS]))}))){},v3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({_meta:/*#__PURE__*/ Z(FS)}))){},y3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({_meta:/*#__PURE__*/ Z(FS)}))){};const Tye=W;({..._3.fields});var b3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({...v3.fields,nextCursor:/*#__PURE__*/ Z(Tye)}))){};const x3=/*#__PURE__*/ Ix([`user`,`assistant`]);var S3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({audience:/*#__PURE__*/ Z(/*#__PURE__*/ K(x3)),priority:/*#__PURE__*/ Z(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1}))),lastModified:/*#__PURE__*/ Z(W)}))){},C3=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/Icon`)({src:W,mimeType:/*#__PURE__*/ Z(W),sizes:/*#__PURE__*/ Z(/*#__PURE__*/ K(W)),theme:/*#__PURE__*/ Z(/*#__PURE__*/ Ix([`light`,`dark`]))})){},w3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({name:W,title:/*#__PURE__*/ Z(W),version:W,icons:/*#__PURE__*/ Z(/*#__PURE__*/ K(C3)),description:/*#__PURE__*/ Z(W),websiteUrl:/*#__PURE__*/ Z(W)}))){},T3=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ClientCapabilities`)({experimental:/*#__PURE__*/ Z(/*#__PURE__*/ jx(W,/*#__PURE__*/ G({}))),extensions:/*#__PURE__*/ Z(/*#__PURE__*/ jx(/*#__PURE__*/ Sx([W,`/`,W]),PS)),roots:/*#__PURE__*/ Z(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ Z(Dx)})),sampling:/*#__PURE__*/ Z(/*#__PURE__*/ G({context:/*#__PURE__*/ Z(/*#__PURE__*/ G({})),tools:/*#__PURE__*/ Z(/*#__PURE__*/ G({}))})),elicitation:/*#__PURE__*/ Z(/*#__PURE__*/ G({form:/*#__PURE__*/ Z(/*#__PURE__*/ G({})),url:/*#__PURE__*/ Z(/*#__PURE__*/ G({}))}))})){},Eye=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({experimental:/*#__PURE__*/ Z(/*#__PURE__*/ jx(W,/*#__PURE__*/ G({}))),extensions:/*#__PURE__*/ Z(/*#__PURE__*/ jx(/*#__PURE__*/ Sx([W,`/`,W]),PS)),logging:/*#__PURE__*/ Z(/*#__PURE__*/ G({})),completions:/*#__PURE__*/ Z(/*#__PURE__*/ G({})),prompts:/*#__PURE__*/ Z(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ Z(Dx)})),resources:/*#__PURE__*/ Z(/*#__PURE__*/ G({subscribe:/*#__PURE__*/ Z(Dx),listChanged:/*#__PURE__*/ Z(Dx)})),tools:/*#__PURE__*/ Z(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ Z(Dx)}))}))){},E3=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/McpErrorBase`)({code:Zx,message:W,data:/*#__PURE__*/ Z(wx)})){};const D3=-32601,O3=-32602,k3=-32603,A3=-32020;var j3=class extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/ParseError`)({...E3.fields,_tag:/*#__PURE__*/ Vx(`ParseError`),code:/*#__PURE__*/ Vx(-32700)})){},M3=class extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/InvalidRequest`)({...E3.fields,_tag:/*#__PURE__*/ Vx(`InvalidRequest`),code:/*#__PURE__*/ Vx(-32600)})){},N3=class extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/MethodNotFound`)({...E3.fields,_tag:/*#__PURE__*/ Vx(`MethodNotFound`),code:/*#__PURE__*/ Vx(D3)})){},P3=class extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/InvalidParams`)({...E3.fields,_tag:/*#__PURE__*/ Vx(`InvalidParams`),code:/*#__PURE__*/ Vx(O3)})){},F3=class e extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/InternalError`)({...E3.fields,_tag:/*#__PURE__*/ Vx(`InternalError`),code:/*#__PURE__*/ Vx(k3)})){static notImplemented=/*#__PURE__*/ new e({message:`Not implemented`})};const I3=/*#__PURE__*/ q([j3,M3,N3,P3,F3,E3]);var Dye=class extends (/*#__PURE__*/ J(`ping`,{success:/*#__PURE__*/ G({}),error:I3,payload:/*#__PURE__*/ Rx(_3)})){},Oye=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({...v3.fields,protocolVersion:W,capabilities:Eye,serverInfo:w3,instructions:/*#__PURE__*/ Z(W)}))){},kye=class extends (/*#__PURE__*/ J(`initialize`,{success:Oye,error:I3,payload:{..._3.fields,protocolVersion:W,capabilities:T3,clientInfo:w3}})){},L3=class extends (/*#__PURE__*/ J(`notifications/cancelled`,{payload:{...y3.fields,requestId:wye,reason:/*#__PURE__*/ Z(W)}})){},R3=class extends (/*#__PURE__*/ J(`notifications/progress`,{payload:{...y3.fields,progressToken:g3,progress:Jx,total:/*#__PURE__*/ Z(Jx),message:/*#__PURE__*/ Z(W)}})){},Aye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/Resource`)({uri:W,name:W,title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),mimeType:/*#__PURE__*/ Z(W),annotations:/*#__PURE__*/ Z(S3),icons:/*#__PURE__*/ Z(/*#__PURE__*/ K(C3)),size:/*#__PURE__*/ Z(Zx),_meta:/*#__PURE__*/ Z(FS)})){},z3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({uri:W,mimeType:/*#__PURE__*/ Z(W),_meta:/*#__PURE__*/ Z(FS)}))){},jye=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({...z3.fields,text:W}))){},Mye=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({...z3.fields,blob:pS}))){};({...b3.fields}),{...b3.fields},{...v3.fields},{..._3.fields};var B3=class extends (/*#__PURE__*/ J(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ Rx(y3)})){};({..._3.fields}),{..._3.fields};var V3=class extends (/*#__PURE__*/ J(`notifications/resources/updated`,{payload:{...y3.fields,uri:W}})){},Nye=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({name:W,title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),required:/*#__PURE__*/ Z(Dx)}))){},Pye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/Prompt`)({name:W,title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),arguments:/*#__PURE__*/ Z(/*#__PURE__*/ K(Nye)),icons:/*#__PURE__*/ Z(/*#__PURE__*/ K(C3)),_meta:/*#__PURE__*/ Z(FS)})){},H3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({type:/*#__PURE__*/ Vx(`text`),text:W,annotations:/*#__PURE__*/ Z(S3),_meta:/*#__PURE__*/ Z(FS)}))){},U3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({type:/*#__PURE__*/ Vx(`image`),data:pS,mimeType:W,annotations:/*#__PURE__*/ Z(S3),_meta:/*#__PURE__*/ Z(FS)}))){},W3=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({type:/*#__PURE__*/ Vx(`audio`),data:pS,mimeType:W,annotations:/*#__PURE__*/ Z(S3),_meta:/*#__PURE__*/ Z(FS)}))){};const G3=/*#__PURE__*/ q([H3,U3,W3,class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({type:/*#__PURE__*/ Vx(`resource`),resource:/*#__PURE__*/ q([jye,Mye]),annotations:/*#__PURE__*/ Z(S3),_meta:/*#__PURE__*/ Z(FS)}))){},class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({...Aye.fields,type:/*#__PURE__*/ Vx(`resource_link`)}))){}]);({...b3.fields}),{...v3.fields},{..._3.fields};var K3=class extends (/*#__PURE__*/ J(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ Rx(y3)})){},Fye=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({title:/*#__PURE__*/ Z(W),readOnlyHint:/*#__PURE__*/ h3(Dx,ht),destructiveHint:/*#__PURE__*/ h3(Dx,mt),idempotentHint:/*#__PURE__*/ h3(Dx,ht),openWorldHint:/*#__PURE__*/ h3(Dx,mt)}))){};const q3=/*#__PURE__*/ Mx(/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`object`),properties:/*#__PURE__*/ Z(/*#__PURE__*/ jx(W,FS)),required:/*#__PURE__*/ Z(/*#__PURE__*/ K(W))}),[FS]),J3=FS;var Y3=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/Tool`)({name:W,title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),inputSchema:q3,outputSchema:/*#__PURE__*/ Z(J3),annotations:/*#__PURE__*/ Z(Fye),icons:/*#__PURE__*/ Z(/*#__PURE__*/ K(C3)),_meta:/*#__PURE__*/ Z(FS)})){};({...b3.fields});var X3=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/CallToolResult`)({...v3.fields,content:/*#__PURE__*/ K(G3),structuredContent:/*#__PURE__*/ Z(PS),isError:/*#__PURE__*/ Z(Dx)})){};({..._3.fields});var Z3=class extends (/*#__PURE__*/ J(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ Rx(y3)})){};const Q3=/*#__PURE__*/ Ix([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]);({..._3.fields});var $3=class extends (/*#__PURE__*/ J(`notifications/message`,{payload:/*#__PURE__*/ G({...y3.fields,level:Q3,logger:/*#__PURE__*/ Z(W),data:wx})})){};const e6=/*#__PURE__*/ q([H3,U3,W3,class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ToolUseContent`)({type:/*#__PURE__*/ Vx(`tool_use`),id:W,name:W,input:/*#__PURE__*/ jx(W,Tx),_meta:/*#__PURE__*/ Z(FS)})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ToolResultContent`)({type:/*#__PURE__*/ Vx(`tool_result`),toolUseId:W,content:/*#__PURE__*/ K(G3),structuredContent:/*#__PURE__*/ Z(PS),isError:/*#__PURE__*/ Z(Dx),_meta:/*#__PURE__*/ Z(FS)})){}]);var Iye=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({role:x3,content:/*#__PURE__*/ q([e6,/*#__PURE__*/ K(e6)]),_meta:/*#__PURE__*/ Z(FS)}))){},Lye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ToolChoice`)({mode:/*#__PURE__*/ Z(/*#__PURE__*/ Ix([`auto`,`required`,`none`]))})){},Rye=class extends (/*#__PURE__*/ Ux()(/*#__PURE__*/ G({name:/*#__PURE__*/ Z(W)}))){},zye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ModelPreferences`)({hints:/*#__PURE__*/ Z(/*#__PURE__*/ K(Rye)),costPriority:/*#__PURE__*/ Z(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1}))),speedPriority:/*#__PURE__*/ Z(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1}))),intelligencePriority:/*#__PURE__*/ Z(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1})))})){},Bye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/CreateMessageResult`)({role:x3,content:/*#__PURE__*/ q([e6,/*#__PURE__*/ K(e6)]),_meta:/*#__PURE__*/ Z(FS),model:W,stopReason:/*#__PURE__*/ Z(W)})){},t6=class extends (/*#__PURE__*/ J(`sampling/createMessage`,{success:Bye,error:I3,payload:{messages:/*#__PURE__*/ K(Iye),modelPreferences:/*#__PURE__*/ Z(/*#__PURE__*/ G(zye.fields)),systemPrompt:/*#__PURE__*/ Z(W),includeContext:/*#__PURE__*/ Z(/*#__PURE__*/ Ix([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ Z(Jx),maxTokens:Zx,stopSequences:/*#__PURE__*/ Z(/*#__PURE__*/ K(W)),metadata:/*#__PURE__*/ Z(/*#__PURE__*/ jx(W,Tx)),tools:/*#__PURE__*/ Z(/*#__PURE__*/ K(/*#__PURE__*/ G(Y3.fields))),toolChoice:/*#__PURE__*/ Z(/*#__PURE__*/ G(Lye.fields))}})){};({...v3.fields});var Vye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/Root`)({uri:W,name:/*#__PURE__*/ Z(W),_meta:/*#__PURE__*/ Z(FS)})){},n6=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ListRootsResult`)({roots:/*#__PURE__*/ K(Vye)})){},r6=class extends (/*#__PURE__*/ J(`roots/list`,{success:n6,error:I3,payload:/*#__PURE__*/ Rx(_3)})){};const Hye=/*#__PURE__*/ G({$schema:/*#__PURE__*/ Z(W),type:/*#__PURE__*/ Vx(`object`),properties:/*#__PURE__*/ jx(W,/* @__PURE__ */ q([/* @__PURE__ */ q([class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/LegacyTitledEnum`)({type:/*#__PURE__*/ Vx(`string`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),enum:/*#__PURE__*/ K(W),enumNames:/*#__PURE__*/ Z(/*#__PURE__*/ K(W)),default:/*#__PURE__*/ Z(W)})){},/* @__PURE__ */ q([class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/UntitledSingleSelectEnum`)({type:/*#__PURE__*/ Vx(`string`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),enum:/*#__PURE__*/ K(W),default:/*#__PURE__*/ Z(W)})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/TitledSingleSelectEnum`)({type:/*#__PURE__*/ Vx(`string`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),oneOf:/*#__PURE__*/ K(/*#__PURE__*/ G({const:W,title:W})),default:/*#__PURE__*/ Z(W)})){}]),/* @__PURE__ */ q([class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/UntitledMultiSelectEnum`)({type:/*#__PURE__*/ Vx(`array`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),minItems:/*#__PURE__*/ Z(Zx),maxItems:/*#__PURE__*/ Z(Zx),items:/*#__PURE__*/ G({type:/*#__PURE__*/ Vx(`string`),enum:/*#__PURE__*/ K(W)}),default:/*#__PURE__*/ Z(/*#__PURE__*/ K(W))})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/TitledMultiSelectEnum`)({type:/*#__PURE__*/ Vx(`array`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),minItems:/*#__PURE__*/ Z(Zx),maxItems:/*#__PURE__*/ Z(Zx),items:/*#__PURE__*/ G({anyOf:/*#__PURE__*/ K(/*#__PURE__*/ G({const:W,title:W}))}),default:/*#__PURE__*/ Z(/*#__PURE__*/ K(W))})){}])]),class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitationString`)({type:/*#__PURE__*/ Vx(`string`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),minLength:/*#__PURE__*/ Z(Zx),maxLength:/*#__PURE__*/ Z(Zx),format:/*#__PURE__*/ Z(/*#__PURE__*/ Ix([`email`,`uri`,`date`,`date-time`])),default:/*#__PURE__*/ Z(W)})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitationNumber`)({type:/*#__PURE__*/ Ix([`number`,`integer`]),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),minimum:/*#__PURE__*/ Z(Jx),maximum:/*#__PURE__*/ Z(Jx),default:/*#__PURE__*/ Z(Jx)})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitationBoolean`)({type:/*#__PURE__*/ Vx(`boolean`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),default:/*#__PURE__*/ Z(Dx)})){}])),required:/*#__PURE__*/ Z(/*#__PURE__*/ K(W))}),Uye=/*#__PURE__*/ q([class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitRequestFormParams`)({..._3.fields,mode:/*#__PURE__*/ Z(/*#__PURE__*/ xx(`form`)),message:W,requestedSchema:Hye})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitRequestURLParams`)({..._3.fields,mode:/*#__PURE__*/ xx(`url`),message:W,elicitationId:W,url:W})){}]),Wye=/*#__PURE__*/ q([class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitAcceptResult`)({...v3.fields,action:/*#__PURE__*/ xx(`accept`),content:/*#__PURE__*/ Z(/*#__PURE__*/ jx(W,/*#__PURE__*/ q([W,Jx,Dx,/*#__PURE__*/ K(W)])))})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitDeclineResult`)({...v3.fields,action:/*#__PURE__*/ Ix([`cancel`,`decline`])})){}]);var i6=class extends (/*#__PURE__*/ J(`elicitation/create`,{success:Wye,error:I3,payload:Uye})){},Gye=class extends (/*#__PURE__*/ J(`notifications/elicitation/complete`,{payload:{elicitationId:W}})){};i6.payloadSchema;var a6=class extends (/*#__PURE__*/ vo(`McpReverseOperationUnsupported`)){},Kye=class extends (/*#__PURE__*/ vo(`McpReverseOperationError`)){},o6=class extends (/*#__PURE__*/ F()(`effect/ai/McpSchema/McpRequestContext`)){},s6=class extends (/*#__PURE__*/ F()(`effect/ai/McpSchema/McpServerClient`)){},c6=class extends (/*#__PURE__*/ Cye()(`effect/ai/McpSchema/McpServerClientMiddleware`)){},qye=class extends (/*#__PURE__*/ oN(L3,R3,$3,V3,B3,Z3,K3,Gye)){},l6=class extends (/*#__PURE__*/ F()(`effect/ai/McpSchema/EnabledWhen`)){};const u6={Complete:e=>({_tag:`Complete`,value:e}),InputRequired:e=>({_tag:`InputRequired`,...e})};var Jye=class extends (/*#__PURE__*/ vo(`ResourceNotFound`)){},Yye=class extends (/*#__PURE__*/ vo(`ToolNotFound`)){},Xye=class extends (/*#__PURE__*/ vo(`InvalidToolInput`)){},Zye=class extends (/*#__PURE__*/ vo(`InvalidToolContinuation`)){},Qye=class extends (/*#__PURE__*/ vo(`ToolExecutionError`)){},d6=class extends (/*#__PURE__*/ vo(`UnsupportedByProtocol`)){},$ye=class extends (/*#__PURE__*/ vo(`PromptNotFound`)){};const f6=/*#__PURE__*/ go(),p6=/*#__PURE__*/ go(),ebe=/*#__PURE__*/ L(()=>{let e=/* @__PURE__ */ new Map,t=[],n=[],r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map;return{tools:{register:t=>L(()=>{e.set(t.descriptor.name,t)}),list:t=>L(()=>{let n=[];for(let r of e.values())r.isVisible(t)&&n.push(r.descriptor);return n}),call:(t,n)=>Mf(()=>{let r=e.get(t.name);return r===void 0||!r.isVisible(n.protocol)?new Yye({name:t.name}):r.handle(t,n)})},resources:{register:e=>L(()=>{let n=t.findIndex(t=>t.descriptor.uri===e.descriptor.uri);n===-1?t.push(e):t[n]=e}),registerTemplate:e=>L(()=>{let t=n.findIndex(t=>t.descriptor.uriTemplate===e.descriptor.uriTemplate);t===-1?n.push(e):n[t]=e}),list:e=>L(()=>t.filter(t=>t.isVisible(e)).map(e=>e.descriptor)),listTemplates:e=>L(()=>n.filter(t=>t.isVisible(e)).map(e=>e.descriptor)),read:U(function*(e,r){let i=t.find(t=>t.descriptor.uri===e);if(i!==void 0&&i.isVisible(r.protocol))return yield*i.read(r);for(let t of n){let n=t.match(e);if(n!==void 0&&t.isVisible(r.protocol))return yield*t.read(e,n,r)}return yield*new Jye({uri:e})})},prompts:{register:e=>L(()=>{r.set(e.descriptor.name,e)}),list:e=>L(()=>Array.from(r.values()).filter(t=>t.isVisible(e)).map(e=>e.descriptor)),get:U(function*(e,t,n){let i=r.get(e);return i===void 0||!i.isVisible(n.protocol)?yield*new $ye({name:e}):yield*i.get(t,n)})},completions:{register:(e,t)=>L(()=>{i.set(e,t)}),complete:U(function*(e,t){let n=e.reference.type===`prompt`?`prompt/${e.reference.name}/${e.argument.name}`:`resource/${e.reference.uriTemplate}/${e.argument.name}`,r=i.get(n);if(r===void 0)return yield*new P3({message:`Unknown completion reference or argument`});let a=yield*r(e,t),o=Oa(a.values,100);return{...a,values:o,hasMore:a.hasMore===!0||o.length<a.values.length}})},registrationPresence:L(()=>({tools:e.size>0,resources:t.length>0||n.length>0,prompts:r.size>0}))}}),tbe=/*#__PURE__*/ new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0}),m6={debug:{effect:`Debug`,order:0},info:{effect:`Info`,order:1},notice:{effect:`Info`,order:2},warning:{effect:`Warn`,order:3},error:{effect:`Error`,order:4},critical:{effect:`Fatal`,order:5},alert:{effect:`Fatal`,order:6},emergency:{effect:`Fatal`,order:7}},h6=e=>{let t=e.startsWith(`=?base64?`),n=e.endsWith(`?=`);if(!t||!n)return/^[\t\x20-\x7e]*$/.test(e)?e:void 0;let r=Zm(e.slice(9,-2));if(!ra(r))try{return tbe.decode(r.success)}catch{return}},g6=e=>({protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.initializePayload._meta}),_6=e=>({clientId:e.clientId,protocol:g6(e),requestContext:o6.of({clientId:e.clientId,protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.requestMetadata}),serverClient:e}),v6=e=>({clientId:e.clientId,protocol:{protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.requestMetadata},requestContext:e}),y6=(e,t)=>t._tag===`Complete`?I(t.value):B(new d6({protocolVersion:e,feature:`Client input`})),b6=e=>{let{content:t,structuredContent:n}=e;if(typeof n!=`string`||t.length!==1)return t;let[r]=t;return r.type===`text`&&r.text===JSON.stringify(n)?[{...r,text:n}]:t},x6=e=>Bt(e)&&(e.type===`tool_use`||e.type===`tool_result`),S6=e=>Bt(e)?e.tools!==void 0||e.toolChoice!==void 0?!0:Array.isArray(e.messages)?e.messages.some(e=>{if(!Bt(e))return!1;let t=e.content;return Array.isArray(t)?t.some(x6):x6(t)}):!1:!1;var C6=class e extends (/*#__PURE__*/ vo(`ProtocolError`)){static fromTool(t){let n=DE(t).pipe(kE(`ToolNotFound`,e=>`Tool '${e.name}' not found`),kE(`UnsupportedByProtocol`,e=>`${e.feature} is not supported by MCP ${e.protocolVersion}`),AE({InvalidToolInput:e=>e.message,InvalidToolContinuation:e=>e.message,ToolExecutionError:e=>e.message}),NE);return new e({code:t._tag===`ToolExecutionError`?k3:O3,message:n})}static fromFeature(t){if(P(t,`_tag`)){if(t._tag===`PromptNotFound`&&P(t,`name`)&&Et(t.name))return new e({code:O3,message:`Prompt '${t.name}' not found`});if(t._tag===`ResourceNotFound`&&P(t,`uri`)&&Et(t.uri))return new e({code:-32002,message:`Resource '${t.uri}' not found`})}let n=nbe(t);return ia(n)?new e(n.success):new e({code:k3,message:`MCP feature handler failed`})}};const nbe=/*#__PURE__*/ ioe(/* @__PURE__ */ G({code:Jx,message:W,data:/*#__PURE__*/ vx(Tx)})),rbe=e=>Ht(e,`McpReverseOperationUnsupported`),w6=e=>t=>rbe(t)?t:new Kye({operation:e,cause:t}),T6=(e,t,n)=>px(e)(n).pipe(V(lx(t))),ibe=(e,t,n)=>px(e)(n).pipe(V(lx(t,{onExcessProperty:`error`}))),E6=/*#__PURE__*/ Gp(function*(e,t){return p6.$match(t,{Cancelled:e=>({tag:L3._tag,payload:L3.payloadSchema.make({_meta:e.metadata,requestId:e.requestId,reason:e.reason})}),Progress:t=>({tag:R3._tag,payload:R3.payloadSchema.make({_meta:t.metadata,progressToken:t.progressToken,progress:t.progress,total:t.total,message:e.supportsProgressMessage?t.message:void 0})}),LoggingMessage:e=>({tag:$3._tag,payload:$3.payloadSchema.make({_meta:e.metadata,level:e.level,logger:e.logger,data:e.data})}),ResourceUpdated:e=>({tag:V3._tag,payload:V3.payloadSchema.make({_meta:e.metadata,uri:e.uri})}),ResourcesChanged:e=>({tag:B3._tag,payload:B3.payloadSchema.make({_meta:e.metadata})}),ToolsChanged:e=>({tag:Z3._tag,payload:Z3.payloadSchema.make({_meta:e.metadata})}),PromptsChanged:e=>({tag:K3._tag,payload:K3.payloadSchema.make({_meta:e.metadata})}),ElicitationComplete:()=>void 0})}),D6=e=>{switch(e._tag){case`ToolsChanged`:case`PromptsChanged`:case`ResourcesChanged`:case`ResourceUpdated`:return!0;default:return!1}},O6=e=>{let t=/* @__PURE__ */ new WeakMap,n=e=>{let n=t.get(e);if(n===void 0){let r=jS(e.payloadSchema);n={decode:lx(r),encode:fx(r)},t.set(e,n)}return n},r=(t,n,r)=>e.handlerRpcs===void 0||e.makeHandlers===void 0?R:n===void 0&&e.runtime._tag===`Stateful`?Lf(`MCP sessionful handler installation requires a lifecycle runtime`):r.install(e,e.handlerRpcs,e.makeHandlers(t,e.runtime._tag===`Stateful`?n:void 0,r.context)),i=t=>nle(e.serverRequestRpcs,{spanPrefix:`McpServer/Client`}).pipe(H(n=>e.toReverseClient(t,n)));return{...e,payloadCodecs:n,installHandlers:r,makeReverseClient:i}},k6=e=>`@effect/mcp/${encodeURIComponent(e.protocolVersion)}/`,abe=/*#__PURE__*/ U(function*(e){if(e.length===0)return yield*new Ru(`MCP protocol declaration must contain at least one MCP protocol`);let t=Object.freeze(Array.from(e)),n=/* @__PURE__ */ new Map;for(let e of t){if(n.has(e.protocolVersion))return yield*new Ru(`Duplicate MCP protocol version: ${e.protocolVersion}`);n.set(e.protocolVersion,e)}let r=t[0].clientRpcs.prefix(k6(t[0]));for(let e=1;e<t.length;e++)r=r.merge(t[e].clientRpcs.prefix(k6(t[e])));return{protocols:t,clientRpcs:r,select:e=>n.get(e)??t[0],protocolForInternalTag:e=>t.find(t=>e.startsWith(k6(t)))??t[0],routeClientRequest:(e,t)=>({...t,tag:`${k6(e)}${t.tag}`}),handlerTarget:(e,t)=>({context:t,install:U(function*(t,n,i){let a=yield*n.toHandlers(i);for(let i of n.requests.values()){let n=r.requests.get(`${k6(t)}${i._tag}`),o=a.mapUnsafe.get(i.key);if(n===void 0||o===void 0)return yield*Lf(`MCP handler registration invariant failed for ${t.protocolVersion}/${i._tag}`);e.set(n.key,o)}})})}}),A6=e=>({initializePayload:e.initializePayload,negotiatedProfile:e.negotiatedProfile,protocol:e.protocol,resourceSubscriptions:e.supportsResourceSubscriptions?/* @__PURE__ */ new Set:void 0,logLevel:{_tag:`Effect`,level:e.logLevel}}),obe=()=>{let e=/* @__PURE__ */ new Map,t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Set,r=(n,r)=>{let i=r[`mcp-session-id`];return i===void 0?t.get(n):e.get(i)};return{registerHttp:(t,n)=>{let r=A6(n);return e.set(t,r),r},registerConnection:(e,n)=>{let r=A6(n);return t.set(e,r),r},resolve:r,resolveSessionId:t=>e.get(t),terminateSession:t=>e.delete(t),setLogLevel:(e,t,n)=>L(()=>{let i=r(t,n);i!==void 0&&(i.logLevel={_tag:`Mcp`,level:e})}),subscribe:(e,t,n)=>{let i=r(t,n)?.resourceSubscriptions;return i===void 0?B(new C6({code:D3,message:`Resource subscriptions are not supported`})):L(()=>i.add(e)).pipe(Kf)},unsubscribe:(e,t,n)=>{let i=r(t,n)?.resourceSubscriptions;return i===void 0?B(new C6({code:D3,message:`Resource subscriptions are not supported`})):L(()=>i.delete(e)).pipe(Kf)},effectLogLevel:(e,t,n)=>{let i=r(e,t);return i?.logLevel._tag===`Mcp`?m6[i.logLevel.level].effect:i?.logLevel.level??n},canDeliver:(e,t,n,i)=>{let a=r(e,t);if(n._tag===`LoggingMessage`){let e=a?.logLevel;return e?._tag===`Mcp`?m6[n.level].order>=m6[e.level].order:Ise(m6[n.level].effect,e?.level??i)}return n._tag!==`ResourceUpdated`||a?.resourceSubscriptions?.has(n.uri)===!0},markInitialized:e=>{n.add(e)},initializedClientIds:()=>n.values(),disconnect:e=>{t.delete(e),n.delete(e)}}},j6=`mcp-session-id`,M6=`mcp-protocol-version`,N6=`io.modelcontextprotocol/protocolVersion`,P6=`io.modelcontextprotocol/clientCapabilities`,F6=-32022,I6=e=>typeof e==`object`&&e?e:void 0,L6=e=>{let t=I6(e);return t!==void 0&&N6 in t?{present:!0,value:t[N6]}:{present:!1,value:void 0}},sbe=e=>L6(I6(I6(e)?.params)?._meta).present,cbe=e=>{switch(e){case`tools/call`:case`prompts/get`:return`name`;case`resources/read`:return`uri`;default:return}},R6=e=>({_tag:`Rejected`,status:400,error:{code:A3,message:e}}),z6=/*#__PURE__*/ oN(Dye),B6=e=>({_tag:`Stateful`,transport:e});var V6=class extends (/*#__PURE__*/ F()(`effect/ai/McpRuntime/ServerRuntime`)){};const H6=(e,t)=>e.find(e=>e.runtime._tag===`Stateful`&&e.protocolVersion===t)??e.find(e=>e.runtime._tag===`Stateful`),lbe=/*#__PURE__*/ U(function*(e){let t=e.find(e=>e.runtime._tag===`Stateful`)===void 0?void 0:obe(),n=e.map(e=>e.protocolVersion),r,i;for(let t of e)if(t.runtime._tag===`Stateless`){if(r!==void 0)return yield*new Ru(`MCP runtime supports at most one stateless protocol`);r=t.runtime,i=t}let a=yield*abe(e),o=/* @__PURE__ */ new Set,s=e=>({code:F6,message:`Unsupported protocol version '${e}'`,data:{supported:n,requested:e}}),c=(e,r)=>{let i=e[M6],a=e[j6],o=a===void 0?void 0:t?.resolveSessionId(a);if(a!==void 0&&o===void 0)return{_tag:`Rejected`,status:404};if(!r&&i!==void 0){if(!n.includes(i))return{_tag:`Rejected`,status:400,error:s(i)};if(o?.protocol.runtime.transport.http.requiresVersionHeader===!0&&i!==o.protocol.protocolVersion)return R6(`MCP-Protocol-Version header '${i}' does not match negotiated protocol version '${o.protocol.protocolVersion}'`)}return{_tag:`Accepted`,binding:o,protocol:o?.protocol}},l=(e,n)=>{let r=e[M6],a=I6(n),o=I6(I6(a?.params)?._meta),l=L6(o),u=a?.id,d=a?.jsonrpc===`2.0`&&a.method===`initialize`&&(typeof u==`string`||typeof u==`number`),f=a?.jsonrpc===`2.0`&&a.method===`notifications/cancelled`&&u===void 0;if(l.present||(!d||t===void 0)&&i!==void 0&&(r===i.protocolVersion||t===void 0&&a?.jsonrpc===`2.0`&&typeof a.method==`string`&&(typeof u==`string`||typeof u==`number`))){if(r===void 0)return R6(`MCP-Protocol-Version header is required`);if(!f&&(o===void 0||typeof l.value!=`string`))return{_tag:`Rejected`,status:400,error:{code:O3,message:`Required request metadata is missing`}};if((!f||l.present)&&l.value!==r)return R6(`MCP-Protocol-Version header does not match request metadata`);if(!f&&I6(o?.[P6])===void 0)return{_tag:`Rejected`,status:400,error:{code:O3,message:`${P6} request metadata is required`}};if(i===void 0||r!==i.protocolVersion)return{_tag:`Rejected`,status:400,error:s(r)};let t=a?.method;if(typeof t!=`string`||e[`mcp-method`]!==t)return R6(`Mcp-Method header does not match request method`);let n=cbe(t);if(n!==void 0){let t=I6(a?.params)?.[n],r=e[`mcp-name`];if(typeof t!=`string`||r===void 0||h6(r)!==t)return R6(`Mcp-Name header does not match request parameters`)}return{_tag:`Accepted`,binding:void 0,protocol:i}}return c(e,d)};return V6.of({protocols:a.protocols,clientRpcs:a.clientRpcs,selectProtocol:a.select,protocolForInternalTag:a.protocolForInternalTag,routeClientRequest:a.routeClientRequest,prepareRequest:U(function*(e,n,o){let c=I6(o.payload)?._meta,l=L6(c),u=typeof l.value==`string`?l.value:void 0,d=l.present?void 0:t?.resolve(e,n),f;if(l.present)f=a.protocols.find(e=>e.protocolVersion===u)??i??a.protocols[0];else if(d!==void 0)f=d.protocol;else if(o.tag===`initialize`){let e=o.payload?.protocolVersion,t=H6(a.protocols,e);if(t===void 0)return yield*new C6({code:F6,message:`initialize is not supported by the configured MCP protocols (requested '${e}')`});f=t}else f=o.tag===`ping`?H6(a.protocols,void 0)??a.protocols[0]:a.protocols[0];if(f.runtime._tag===`Stateful`)return{protocol:f,binding:d};if(o.isNotification&&o.tag===`notifications/cancelled`)return{protocol:f};if(r===void 0)return yield*Lf(`MCP stateless runtime invariant failed`);if(u!==void 0&&u!==f.protocolVersion)return yield*new C6(s(u));let p=yield*r.profileFromRequestMetadata(c),m={protocolVersion:p.protocolVersion,clientCapabilities:p.clientCapabilities,clientInfo:p.clientInfo,requestMetadata:p.requestMetadata},h=o6.of({clientId:e,protocolVersion:m.protocolVersion,clientCapabilities:m.clientCapabilities,clientInfo:m.clientInfo,requestMetadata:m.requestMetadata});return{protocol:f,profile:m,requestContext:h}}),resolveRequest:(e,n)=>t?.resolve(e,n),admitHttp:(e,r)=>{let i=(e,t,n=null)=>({_tag:`Rejected`,response:t===void 0?Ik({status:e}):Hk({jsonrpc:`2.0`,id:n,error:t},{status:e})});if(ra(r)){let t=e[M6];if(t!==void 0&&!n.includes(t))return i(400,s(t));let r=l(e,void 0);return r._tag===`Rejected`&&(r.error===void 0||r.error.code===-32020)?i(r.status,r.error):i(200,new j3({message:`Parse error`}))}let a=r.success;if(Array.isArray(a)){if(a.length===0)return i(400,new M3({message:`Invalid Request`}));let t=l(e,a);return t._tag===`Rejected`||a.some(sbe)||a.some(e=>P(e,`method`)&&e.method===`initialize`)||t.binding?.protocol.runtime.transport.jsonRpc.acceptsBatches!==!0?i(400):{_tag:`Accepted`,acknowledge:!a.some(e=>P(e,`method`)&&P(e,`id`)),isSubscription:!1}}let o=P(a,`id`),c=o&&(typeof a.id==`string`||typeof a.id==`number`)?a.id:null,u=P(a,`jsonrpc`)&&a.jsonrpc===`2.0`,d=!o||typeof a.id==`string`||typeof a.id==`number`,f=u&&d&&P(a,`method`)&&typeof a.method==`string`,p=o&&(typeof a.id==`string`||typeof a.id==`number`||a.id===null),m=P(a,`result`),h=P(a,`error`),g=u&&p&&m!==h,_=l(e,a);if(_._tag===`Rejected`)return i(_.status,_.error,c);if(!f&&!g)return i(200,new M3({message:`Invalid Request`}),c);let v=P(a,`method`)&&a.method===`initialize`,y=e[j6]!==void 0;return v&&y?i(400,new M3({message:`initialize must not include an MCP-Session-Id header`}),c):!v&&!y&&_.protocol?.runtime._tag!==`Stateless`?i(400,t===void 0?void 0:new M3({message:`MCP-Session-Id header is required; send initialize to start a session`}),c):f&&_.protocol?.runtime._tag===`Stateless`&&!(_.protocol.handlerRpcs?.requests.has(a.method)??_.protocol.clientRpcs.requests.has(a.method))?i(404,new N3({message:`Method not found: ${a.method}`}),c):{_tag:`Accepted`,acknowledge:!f||!o,isSubscription:P(a,`method`)&&a.method===`subscriptions/listen`}},effectLogLevel:(e,n,r)=>t?.effectLogLevel(e,n,r)??r,disconnect:e=>t?.disconnect(e),terminateHttpSession:e=>Mf(()=>{let n=e[j6];if(n===void 0)return I(Ik({status:400}));let r=c(e,!1);if(r._tag===`Rejected`)return I(Ik({status:r.status}));let i=r.binding;return t.terminateSession(n),Gf(Df(o,e=>e(i),{discard:!0}),Ik({status:204}))}),onSessionTerminated:e=>bp(L(()=>{o.add(e)}),()=>L(()=>{o.delete(e)})),deliveryClientIds:()=>t?.initializedClientIds()??[],canDeliver:(e,n,r,i)=>t?.canDeliver(e,n,r,i)??!0,installHandlers:U(function*(e){let r=/* @__PURE__ */ new Map,i={subscribeServerNotifications:e.subscribeServerNotifications,getListChangeRevision:e.getListChangeRevision,...e.sendNotification===void 0?{}:{sendNotification:e.sendNotification},...e.markSubscriptionCancelled===void 0?{}:{markSubscriptionCancelled:e.markSubscriptionCancelled},...e.terminateSubscription===void 0?{}:{terminateSubscription:e.terminateSubscription},supportedVersions:n,serverInfo:e.serverInfo,registrationPresence:e.core.registrationPresence},o=a.handlerTarget(r,i);for(let n of a.protocols){if(n.runtime._tag===`Stateless`){yield*n.installHandlers(e.core,void 0,o);continue}if(t===void 0)return yield*Lf(`MCP sessionful runtime invariant failed`);yield*o.install(n,z6,z6.of({ping:()=>I({})}));let r={initialize:U(function*(r,i,a){let o=yield*e.core.registrationPresence;return yield*zf(s=>{let c=Vi(s.context,Ij),l={completions:!0,logging:!0,...o.tools?{tools:{listChanged:!0}}:{},...o.resources?{resources:{listChanged:!0,subscribe:c===void 0}}:{},...o.prompts?{prompts:{listChanged:!0}}:{},...e.serverInfo.extensions?{extensions:e.serverInfo.extensions}:{}},u={initializePayload:kye.payloadSchema.make({protocolVersion:r,capabilities:i.clientCapabilities,clientInfo:i.clientInfo,_meta:i.requestMetadata}),negotiatedProfile:i,protocol:n,supportsResourceSubscriptions:c===void 0&&l.resources?.subscribe===!0,logLevel:e.defaultLogLevel};if(c!==void 0){let e=crypto.randomUUID();t.registerHttp(e,u),rM(c,(t,r)=>I(Jk(r,{[j6]:e,[M6]:n.protocolVersion})))}else t.registerConnection(a,u);return I({capabilities:l,instructions:e.serverInfo.instructions,serverInfo:w3.make({name:e.serverInfo.name,version:e.serverInfo.version,description:e.serverInfo.description,websiteUrl:e.serverInfo.websiteUrl,icons:e.serverInfo.icons})})})}),setLogLevel:t.setLogLevel,subscribe:t.subscribe,unsubscribe:t.unsubscribe,clientNotification:U(function*(e,n){e._tag===`Initialized`&&t.markInitialized(n)})};yield*n.installHandlers(e.core,r,o)}return Ni(r)})})}),U6=e=>Wd(V6)(lbe(e)),W6=e=>vx(e).pipe(zx(bx(yx(e)),{decode:b_(),encode:C_(Si(vi))})),G6=FS,ube=/*#__PURE__*/ q([W,Jx]),K6=/*#__PURE__*/ q([W,Jx]),q6=/*#__PURE__*/ Ix([`user`,`assistant`]),J6=/*#__PURE__*/ Ix([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Y6=/*#__PURE__*/ G({_meta:/*#__PURE__*/ W6(/*#__PURE__*/ Mx(/*#__PURE__*/ G({progressToken:/*#__PURE__*/ W6(K6)}),[FS]))}),X6=/*#__PURE__*/ G({_meta:/*#__PURE__*/ W6(G6)}),Z6=/*#__PURE__*/ G({_meta:/*#__PURE__*/ W6(G6)}),Q6=/*#__PURE__*/ G({...Y6.fields,cursor:/*#__PURE__*/ W6(W)}),$6=/*#__PURE__*/ G({...Z6.fields,nextCursor:/*#__PURE__*/ W6(W)}),dbe=/*#__PURE__*/ G({extensions:/*#__PURE__*/ W6(/*#__PURE__*/ jx(/*#__PURE__*/ Sx([W,`/`,W]),PS)),experimental:/*#__PURE__*/ W6(/*#__PURE__*/ jx(W,G6)),roots:/*#__PURE__*/ W6(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ W6(Dx)})),sampling:/*#__PURE__*/ W6(G6)}),fbe=/*#__PURE__*/ G({extensions:/*#__PURE__*/ W6(/*#__PURE__*/ jx(/*#__PURE__*/ Sx([W,`/`,W]),PS)),experimental:/*#__PURE__*/ W6(/*#__PURE__*/ jx(W,G6)),logging:/*#__PURE__*/ W6(G6),prompts:/*#__PURE__*/ W6(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ W6(Dx)})),resources:/*#__PURE__*/ W6(/*#__PURE__*/ G({subscribe:/*#__PURE__*/ W6(Dx),listChanged:/*#__PURE__*/ W6(Dx)})),tools:/*#__PURE__*/ W6(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ W6(Dx)}))}),e8=/*#__PURE__*/ G({code:Zx,message:W,data:/*#__PURE__*/ W6(wx)}),t8=/*#__PURE__*/ G({audience:/*#__PURE__*/ W6(/*#__PURE__*/ K(q6)),priority:/*#__PURE__*/ W6(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1})))}),pbe=/*#__PURE__*/ G({uri:W,mimeType:/*#__PURE__*/ W6(W),text:W}),mbe=/*#__PURE__*/ G({uri:W,mimeType:/*#__PURE__*/ W6(W),blob:W}),hbe=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`text`),text:W,annotations:/*#__PURE__*/ W6(t8)}),gbe=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`image`),data:W,mimeType:W,annotations:/*#__PURE__*/ W6(t8)}),_be=/*#__PURE__*/ G({uri:W,name:W,description:/*#__PURE__*/ W6(W),mimeType:/*#__PURE__*/ W6(W),size:/*#__PURE__*/ W6(Jx),annotations:/*#__PURE__*/ W6(t8)}),vbe=/*#__PURE__*/ G({uriTemplate:W,name:W,description:/*#__PURE__*/ W6(W),mimeType:/*#__PURE__*/ W6(W),annotations:/*#__PURE__*/ W6(t8)}),n8=/*#__PURE__*/ G({name:W,description:/*#__PURE__*/ W6(W),required:/*#__PURE__*/ W6(Dx)}),ybe=/*#__PURE__*/ G({name:W,description:/*#__PURE__*/ W6(W),arguments:/*#__PURE__*/ W6(/*#__PURE__*/ K(n8))}),bbe=/*#__PURE__*/ G({name:W,description:/*#__PURE__*/ W6(W),inputSchema:/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`object`),properties:/*#__PURE__*/ W6(/*#__PURE__*/ jx(W,G6)),required:/*#__PURE__*/ W6(/*#__PURE__*/ K(W))})}),r8=/*#__PURE__*/ G({hints:/*#__PURE__*/ W6(/*#__PURE__*/ K(/* @__PURE__ */ G({name:/*#__PURE__*/ W6(W)}))),costPriority:/*#__PURE__*/ W6(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1}))),speedPriority:/*#__PURE__*/ W6(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1}))),intelligencePriority:/*#__PURE__*/ W6(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1})))}),xbe=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`ref/prompt`),name:W}),i8=/*#__PURE__*/ G({uri:W,name:/*#__PURE__*/ W6(W)});({...Z6.fields}),{...$6.fields},{...$6.fields},{...Z6.fields},{...$6.fields},{...Z6.fields},{...$6.fields},{...Z6.fields},{...Z6.fields};const Sbe=/*#__PURE__*/ G({...Z6.fields,completion:/*#__PURE__*/ G({values:/*#__PURE__*/ K(W),total:/*#__PURE__*/ W6(Jx),hasMore:/*#__PURE__*/ W6(Dx)})}),Cbe=/*#__PURE__*/ G({...Z6.fields,roots:/*#__PURE__*/ K(i8)});var a8=class extends (/*#__PURE__*/ J(`ping`,{success:Z6,error:e8,payload:/*#__PURE__*/ Rx(Y6)})){};({...Y6.fields}),{...Y6.fields};var o8=class extends (/*#__PURE__*/ J(`logging/setLevel`,{success:Z6,error:e8,payload:{...Y6.fields,level:J6}})){};({...Y6.fields}),{...Y6.fields};var s8=class extends (/*#__PURE__*/ J(`resources/subscribe`,{success:Z6,error:e8,payload:{...Y6.fields,uri:W}})){},c8=class extends (/*#__PURE__*/ J(`resources/unsubscribe`,{success:Z6,error:e8,payload:{...Y6.fields,uri:W}})){};({...Y6.fields}),{...Y6.fields};var l8=class extends (/*#__PURE__*/ J(`roots/list`,{success:Cbe,error:e8,payload:/*#__PURE__*/ Rx(Y6)})){},u8=class extends (/*#__PURE__*/ J(`notifications/cancelled`,{payload:{...X6.fields,requestId:ube,reason:/*#__PURE__*/ W6(W)}})){};({...X6.fields});var d8=class extends (/*#__PURE__*/ J(`notifications/initialized`,{payload:/*#__PURE__*/ Rx(X6)})){},f8=class extends (/*#__PURE__*/ J(`notifications/roots/list_changed`,{payload:/*#__PURE__*/ Rx(X6)})){},p8=class extends (/*#__PURE__*/ J(`notifications/message`,{payload:{...X6.fields,level:J6,logger:/*#__PURE__*/ W6(W),data:wx}})){},m8=class extends (/*#__PURE__*/ J(`notifications/resources/updated`,{payload:{...X6.fields,uri:W}})){},h8=class extends (/*#__PURE__*/ J(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ Rx(X6)})){},g8=class extends (/*#__PURE__*/ J(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ Rx(X6)})){},_8=class extends (/*#__PURE__*/ J(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ Rx(X6)})){};const v8=W6,wbe=/*#__PURE__*/ G({...fbe.fields,completions:/*#__PURE__*/ v8(/*#__PURE__*/ G({}))}),Tbe=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`audio`),data:W,mimeType:W,annotations:/*#__PURE__*/ v8(t8)}),y8=/*#__PURE__*/ G({title:/*#__PURE__*/ v8(W),readOnlyHint:/*#__PURE__*/ v8(Dx),destructiveHint:/*#__PURE__*/ v8(Dx),idempotentHint:/*#__PURE__*/ v8(Dx),openWorldHint:/*#__PURE__*/ v8(Dx)});({...bbe.fields}),{...Z6.fields},{...Z6.fields},{...$6.fields},{...Z6.fields},{...Z6.fields},{...Y6.fields},{...Y6.fields},{...Y6.fields},{...Y6.fields};var b8=class extends (/*#__PURE__*/ J(`notifications/progress`,{payload:{...X6.fields,progressToken:K6,progress:Jx,total:/*#__PURE__*/ v8(Jx),message:/*#__PURE__*/ v8(W)}})){};const x8=`2025-06-18`,S8=W6,C8=FS,w8=/*#__PURE__*/ S8(C8),T8=/*#__PURE__*/ G({name:W,title:/*#__PURE__*/ S8(W),version:W}),E8=/*#__PURE__*/ G({...dbe.fields,elicitation:/*#__PURE__*/ S8(/*#__PURE__*/ G({}))}),D8=/*#__PURE__*/ G({audience:/*#__PURE__*/ S8(/*#__PURE__*/ K(q6)),priority:/*#__PURE__*/ S8(/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1})))}),O8=/*#__PURE__*/ G({..._be.fields,title:/*#__PURE__*/ S8(W),annotations:/*#__PURE__*/ S8(D8),_meta:w8}),k8=/*#__PURE__*/ G({...vbe.fields,title:/*#__PURE__*/ S8(W),annotations:/*#__PURE__*/ S8(D8),_meta:w8}),A8=/*#__PURE__*/ q([/* @__PURE__ */ G({...pbe.fields,_meta:w8}),/* @__PURE__ */ G({...mbe.fields,_meta:w8})]),Ebe=/*#__PURE__*/ G({...n8.fields,title:/*#__PURE__*/ S8(W)}),j8=/*#__PURE__*/ G({...ybe.fields,title:/*#__PURE__*/ S8(W),arguments:/*#__PURE__*/ S8(/*#__PURE__*/ K(Ebe)),_meta:w8}),M8=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`resource`),resource:A8,annotations:/*#__PURE__*/ S8(D8),_meta:w8}),Dbe=/*#__PURE__*/ G({...O8.fields,type:/*#__PURE__*/ xx(`resource_link`)}),N8=/*#__PURE__*/ G({...hbe.fields,annotations:/*#__PURE__*/ S8(D8),_meta:w8}),P8=/*#__PURE__*/ G({...gbe.fields,annotations:/*#__PURE__*/ S8(D8),_meta:w8}),F8=/*#__PURE__*/ G({...Tbe.fields,annotations:/*#__PURE__*/ S8(D8),_meta:w8}),I8=/*#__PURE__*/ q([N8,P8,F8,M8,Dbe]),L8=/*#__PURE__*/ q([N8,P8,F8]),Obe=/*#__PURE__*/ G({role:q6,content:I8}),kbe=/*#__PURE__*/ G({role:q6,content:L8}),Abe=/*#__PURE__*/ G({...wbe.fields}),R8=/*#__PURE__*/ G({...Z6.fields,protocolVersion:W,capabilities:Abe,serverInfo:T8,instructions:/*#__PURE__*/ S8(W)});var z8=class extends (/*#__PURE__*/ J(`initialize`,{success:R8,error:e8,payload:{...Y6.fields,protocolVersion:W,capabilities:E8,clientInfo:T8}})){};const B8=/*#__PURE__*/ Mx(/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`object`),properties:/*#__PURE__*/ S8(/*#__PURE__*/ jx(W,C8)),required:/*#__PURE__*/ S8(/*#__PURE__*/ K(W))}),[FS]),V8=/*#__PURE__*/ G({name:W,title:/*#__PURE__*/ S8(W),description:/*#__PURE__*/ S8(W),inputSchema:B8,outputSchema:/*#__PURE__*/ S8(B8),annotations:/*#__PURE__*/ S8(y8),_meta:w8}),H8=/*#__PURE__*/ G({...Z6.fields,content:/*#__PURE__*/ K(I8),structuredContent:/*#__PURE__*/ S8(C8),isError:/*#__PURE__*/ S8(Dx)}),jbe=/*#__PURE__*/ G({...Z6.fields,role:q6,content:L8,model:W,stopReason:/*#__PURE__*/ S8(W)});var U8=class extends (/*#__PURE__*/ J(`sampling/createMessage`,{success:jbe,error:e8,payload:{...Y6.fields,messages:/*#__PURE__*/ K(kbe),modelPreferences:/*#__PURE__*/ S8(r8),systemPrompt:/*#__PURE__*/ S8(W),includeContext:/*#__PURE__*/ S8(/*#__PURE__*/ Ix([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ S8(Jx),maxTokens:Jx,stopSequences:/*#__PURE__*/ S8(/*#__PURE__*/ K(W)),metadata:/*#__PURE__*/ S8(C8)}})){};const W8=/*#__PURE__*/ G({...xbe.fields,title:/*#__PURE__*/ S8(W)}),G8=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`ref/resource`),uri:W}),K8=Sbe;var q8=class extends (/*#__PURE__*/ J(`completion/complete`,{success:K8,error:e8,payload:{...Y6.fields,ref:/*#__PURE__*/ q([W8,G8]),argument:/*#__PURE__*/ G({name:W,value:W}),context:/*#__PURE__*/ S8(/*#__PURE__*/ G({arguments:/*#__PURE__*/ S8(/*#__PURE__*/ jx(W,W))}))}})){};const J8=/*#__PURE__*/ G({...$6.fields,resources:/*#__PURE__*/ K(O8)}),Y8=/*#__PURE__*/ G({...$6.fields,resourceTemplates:/*#__PURE__*/ K(k8)}),X8=/*#__PURE__*/ G({...Z6.fields,contents:/*#__PURE__*/ K(A8)}),Z8=/*#__PURE__*/ G({...$6.fields,prompts:/*#__PURE__*/ K(j8)}),Q8=/*#__PURE__*/ G({...Z6.fields,description:/*#__PURE__*/ S8(W),messages:/*#__PURE__*/ K(Obe)}),$8=/*#__PURE__*/ G({...$6.fields,tools:/*#__PURE__*/ K(V8)});var Mbe=class extends (/*#__PURE__*/ J(`resources/list`,{success:J8,error:e8,payload:/*#__PURE__*/ Rx(Q6)})){},Nbe=class extends (/*#__PURE__*/ J(`resources/templates/list`,{success:Y8,error:e8,payload:/*#__PURE__*/ Rx(Q6)})){},e5=class extends (/*#__PURE__*/ J(`resources/read`,{success:X8,error:e8,payload:{...Y6.fields,uri:W}})){},Pbe=class extends (/*#__PURE__*/ J(`prompts/list`,{success:Z8,error:e8,payload:/*#__PURE__*/ Rx(Q6)})){},Fbe=class extends (/*#__PURE__*/ J(`prompts/get`,{success:Q8,error:e8,payload:{...Y6.fields,name:W,arguments:/*#__PURE__*/ S8(/*#__PURE__*/ jx(W,W))}})){},Ibe=class extends (/*#__PURE__*/ J(`tools/list`,{success:$8,error:e8,payload:/*#__PURE__*/ Rx(Q6)})){},t5=class extends (/*#__PURE__*/ J(`tools/call`,{success:H8,error:e8,payload:{...Y6.fields,name:W,arguments:/*#__PURE__*/ S8(C8)}})){};const Lbe=/*#__PURE__*/ G({...Z6.fields,action:/*#__PURE__*/ Ix([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ S8(/*#__PURE__*/ jx(W,/*#__PURE__*/ q([W,Jx,Dx])))}),Rbe=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`object`),properties:/*#__PURE__*/ jx(W,/*#__PURE__*/ q([/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`string`),title:/*#__PURE__*/ S8(W),description:/*#__PURE__*/ S8(W),minLength:/*#__PURE__*/ S8(Zx),maxLength:/*#__PURE__*/ S8(Zx),format:/*#__PURE__*/ S8(/*#__PURE__*/ Ix([`email`,`uri`,`date`,`date-time`]))}),/* @__PURE__ */ G({type:/*#__PURE__*/ Ix([`number`,`integer`]),title:/*#__PURE__*/ S8(W),description:/*#__PURE__*/ S8(W),minimum:/*#__PURE__*/ S8(Jx),maximum:/*#__PURE__*/ S8(Jx)}),/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`boolean`),title:/*#__PURE__*/ S8(W),description:/*#__PURE__*/ S8(W),default:/*#__PURE__*/ S8(Dx)}),/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`string`),title:/*#__PURE__*/ S8(W),description:/*#__PURE__*/ S8(W),enum:/*#__PURE__*/ K(W),enumNames:/*#__PURE__*/ S8(/*#__PURE__*/ K(W))})])),required:/*#__PURE__*/ S8(/*#__PURE__*/ K(W))});var n5=class extends (/*#__PURE__*/ J(`elicitation/create`,{success:Lbe,error:e8,payload:{...Y6.fields,message:W,requestedSchema:Rbe}})){},zbe=class extends (/*#__PURE__*/ oN(a8,z8,q8,o8,Fbe,Pbe,Mbe,Nbe,e5,s8,c8,t5,Ibe)){},r5=class extends (/*#__PURE__*/ oN(u8,b8,d8,f8)){},Bbe=class extends (/*#__PURE__*/ oN(a8,U8,l8,n5)){},Vbe=class extends (/*#__PURE__*/ oN(u8,b8,p8,m8,h8,g8,_8)){};const i5=/*#__PURE__*/ (/* @__PURE__ */ zbe.omit(`ping`).middleware(c6).add(a8)).merge(r5),a5=/*#__PURE__*/ i5.omit(`ping`),Hbe=e=>{if(e?.type!==`object`)return!1;let t=e.properties===void 0||Bt(e.properties)&&Object.values(e.properties).every(Bt),n=e.required===void 0||Array.isArray(e.required)&&e.required.every(Et);return t&&n},Ube=e=>({protocolVersion:x8,clientCapabilities:T3.make(e.capabilities),clientInfo:w3.make(e.clientInfo),requestMetadata:e._meta}),o5=(e,t)=>new a6({operation:e,protocolVersion:x8,reason:t}),s5=(e,t,n)=>Object.hasOwn(e.clientCapabilities,n)&&e.clientCapabilities[n]!==void 0?R:B(o5(t,`Client did not advertise the ${n} capability`)),c5=/*#__PURE__*/ U(function*(e){return DE(e).pipe(OE({type:jE(`text`,`resource_link`)},e=>e),OE({type:jE(`image`,`audio`)},e=>({type:e.type,mimeType:e.mimeType,data:Xm(e.data),annotations:e.annotations,_meta:e._meta})),OE({type:`resource`},e=>{let t=e.resource;return`text`in t?M8.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,_meta:t._meta,text:t.text},annotations:e.annotations,_meta:e._meta}):M8.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,_meta:t._meta,blob:Xm(t.blob)},annotations:e.annotations,_meta:e._meta})}),NE)}),Wbe=e=>`text`in e?{uri:e.uri,mimeType:e.mimeType,_meta:e._meta,text:e.text}:{uri:e.uri,mimeType:e.mimeType,_meta:e._meta,blob:Xm(e.blob)},Gbe=e=>e===void 0||Kbe(e)?e:void 0,Kbe=e=>Bt(e),qbe=/*#__PURE__*/ O6({protocolVersion:x8,runtime:/*#__PURE__*/ B6({jsonRpc:{acceptsBatches:!1},http:{requiresVersionHeader:!0}}),clientRpcs:i5,clientNotificationRpcs:r5,serverRequestRpcs:Bbe,serverNotificationRpcs:Vbe,handlerRpcs:a5,makeHandlers:(e,t)=>a5.of({initialize:(e,{client:n})=>t.initialize(x8,Ube(e),n.id).pipe(H(e=>R8.make({protocolVersion:x8,capabilities:{experimental:e.capabilities.experimental,extensions:e.capabilities.extensions,logging:e.capabilities.logging?{}:void 0,completions:e.capabilities.completions?{}:void 0,prompts:e.capabilities.prompts,resources:e.capabilities.resources,tools:e.capabilities.tools},serverInfo:e.serverInfo,instructions:e.instructions}))),"logging/setLevel":({level:e},{client:n,headers:r})=>t.setLogLevel(e,n.id,r).pipe(Gf({})),"notifications/cancelled":()=>R,"notifications/initialized":(e,{client:n,headers:r})=>t.clientNotification(f6.Initialized(),n.id,r),"notifications/progress":(e,{client:n,headers:r})=>t.clientNotification(f6.Progress({progressToken:e.progressToken,progress:e.progress,total:e.total,message:e.message,metadata:e._meta}),n.id,r),"notifications/roots/list_changed":(e,{client:n,headers:r})=>t.clientNotification(f6.RootsChanged(),n.id,r),"resources/list":t=>s6.use(t=>e.resources.list(g6(t))).pipe(H(e=>J8.make({resources:e}))),"resources/templates/list":t=>s6.use(t=>e.resources.listTemplates(g6(t))).pipe(H(e=>Y8.make({resourceTemplates:e}))),"resources/read":U(function*({uri:t}){let n=yield*s6,r=yield*e.resources.read(t,_6(n)).pipe(Qf(C6.fromFeature));return X8.make({contents:r.contents.map(Wbe),_meta:r._meta})}),"resources/subscribe":({uri:e},{client:n,headers:r})=>t.subscribe(e,n.id,r).pipe(Gf({})),"resources/unsubscribe":({uri:e},{client:n,headers:r})=>t.unsubscribe(e,n.id,r).pipe(Gf({})),"prompts/list":t=>s6.use(t=>e.prompts.list(g6(t))).pipe(H(e=>Z8.make({prompts:e}))),"prompts/get":U(function*({arguments:t,name:n}){let r=yield*s6,i=yield*e.prompts.get(n,t??{},_6(r)).pipe(Qf(C6.fromFeature));if(i._tag===`InputRequired`)return yield*C6.fromFeature(new d6({protocolVersion:x8,feature:`prompt input requirements`}));let a=i.value,o=yield*Df(a.messages,e=>c5(e.content).pipe(H(t=>({role:e.role,content:t})),Qf(C6.fromTool)));return Q8.make({description:a.description,messages:o,_meta:a._meta})}),"completion/complete":U(function*(t){let n=yield*s6,r=yield*e.completions.complete({reference:t.ref.type===`ref/prompt`?{type:`prompt`,name:t.ref.name,title:t.ref.title}:{type:`resourceTemplate`,uriTemplate:t.ref.uri},argument:t.argument,context:t.context?.arguments===void 0?void 0:{arguments:t.context.arguments},metadata:t._meta},_6(n)).pipe(Qf(C6.fromFeature));return K8.make({completion:{values:Array.from(r.values),total:r.total,hasMore:r.hasMore},_meta:r.metadata})}),"tools/list":U(function*(){let t=yield*s6,n=yield*e.tools.list(g6(t));return $8.make({tools:n.map(e=>V8.make({name:e.name,title:e.title,description:e.description,inputSchema:e.inputSchema,outputSchema:Hbe(e.outputSchema)?e.outputSchema:void 0,annotations:e.annotations===void 0?void 0:y8.make({title:e.annotations.title,readOnlyHint:e.annotations.readOnlyHint,destructiveHint:e.annotations.destructiveHint,idempotentHint:e.annotations.idempotentHint,openWorldHint:e.annotations.openWorldHint}),_meta:e._meta}))})}),"tools/call":U(function*(t){let n=yield*s6,r=yield*e.tools.call({...t,arguments:t.arguments??{}},_6(n)).pipe(V(e=>y6(x8,e)),Qf(C6.fromTool)),i=yield*Df(b6(r),c5).pipe(Qf(C6.fromTool)),a=Gbe(r.structuredContent);return H8.make({content:i,structuredContent:a,isError:r.isError,_meta:r._meta})})}),toReverseClient:(e,t)=>({listRoots:U(function*(n){yield*s5(e,`roots/list`,`roots`);let r=yield*T6(r6.payloadSchema,l8.payloadSchema,n).pipe(Qf(()=>o5(`roots/list`,`Request is not representable by this protocol`))),{roots:i}=yield*t[`roots/list`](r).pipe(Qf(w6(`roots/list`)));return new n6({roots:i})}),createMessage:U(function*(n){yield*s5(e,`sampling/createMessage`,`sampling`);let r=yield*ibe(t6.payloadSchema,U8.payloadSchema,n).pipe(Qf(()=>o5(`sampling/createMessage`,`Request is not representable by this protocol`))),i=yield*t[`sampling/createMessage`](r).pipe(Qf(w6(`sampling/createMessage`)));return yield*T6(U8.successSchema,t6.successSchema,i).pipe(Qf(()=>o5(`sampling/createMessage`,`Response is not representable by the canonical model`)))}),elicit:U(function*(n){yield*s5(e,`elicitation/create`,`elicitation`);let r=n.mode===`form`?Yae(n,[`mode`]):n,i=yield*lx(n5.payloadSchema,{onExcessProperty:`error`})(r).pipe(Qf(()=>o5(`elicitation/create`,`Request is not representable by this protocol`))),a=yield*t[`elicitation/create`](i).pipe(Qf(w6(`elicitation/create`)));return yield*T6(n5.successSchema,i6.successSchema,a).pipe(Qf(()=>o5(`elicitation/create`,`Response is not representable by the canonical model`)))})}),projectNotification:e=>E6({supportsProgressMessage:!0},e),normalizeCancellation:e=>lx(u8.payloadSchema)(e).pipe(H(e=>({requestId:e.requestId,reason:e.reason,metadata:e._meta})))}),l5=`2025-11-25`,Q=W6,u5=FS,d5=/*#__PURE__*/ Q(u5),f5=/*#__PURE__*/ G({src:W,mimeType:/*#__PURE__*/ Q(W),sizes:/*#__PURE__*/ Q(/*#__PURE__*/ K(W)),theme:/*#__PURE__*/ Q(/*#__PURE__*/ Ix([`light`,`dark`]))}),p5=/*#__PURE__*/ G({...T8.fields,description:/*#__PURE__*/ Q(W),websiteUrl:/*#__PURE__*/ Q(W),icons:/*#__PURE__*/ Q(/*#__PURE__*/ K(f5))}),Jbe=/*#__PURE__*/ G({...E8.fields,sampling:/*#__PURE__*/ Q(/*#__PURE__*/ G({context:/*#__PURE__*/ Q(u5),tools:/*#__PURE__*/ Q(u5)})),elicitation:/*#__PURE__*/ Q(/*#__PURE__*/ G({form:/*#__PURE__*/ Q(u5),url:/*#__PURE__*/ Q(u5)}))}),m5=/*#__PURE__*/ G({...D8.fields,lastModified:/*#__PURE__*/ Q(W)}),h5=/*#__PURE__*/ G({...O8.fields,annotations:/*#__PURE__*/ Q(m5),icons:/*#__PURE__*/ Q(/*#__PURE__*/ K(f5))}),g5=/*#__PURE__*/ G({...k8.fields,annotations:/*#__PURE__*/ Q(m5),icons:/*#__PURE__*/ Q(/*#__PURE__*/ K(f5))}),_5=/*#__PURE__*/ G({...j8.fields,icons:/*#__PURE__*/ Q(/*#__PURE__*/ K(f5))}),v5=/*#__PURE__*/ G({...N8.fields,annotations:/*#__PURE__*/ Q(m5)}),y5=/*#__PURE__*/ G({...P8.fields,annotations:/*#__PURE__*/ Q(m5)}),b5=/*#__PURE__*/ G({...F8.fields,annotations:/*#__PURE__*/ Q(m5)}),x5=/*#__PURE__*/ G({...M8.fields,annotations:/*#__PURE__*/ Q(m5)}),S5=/*#__PURE__*/ q([v5,y5,b5,/* @__PURE__ */ G({...h5.fields,type:/*#__PURE__*/ xx(`resource_link`)}),x5]),Ybe=/*#__PURE__*/ G({role:q6,content:S5}),C5=/*#__PURE__*/ G({...V8.fields,icons:/*#__PURE__*/ Q(/*#__PURE__*/ K(f5))}),w5=/*#__PURE__*/ G({...H8.fields,content:/*#__PURE__*/ K(S5)});var Xbe=class extends (/*#__PURE__*/ J(`tools/call`,{success:w5,error:e8,payload:t5.payloadSchema})){};const T5=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`tool_use`),id:W,name:W,input:u5,_meta:d5}),E5=/*#__PURE__*/ q([v5,y5,b5,T5,/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`tool_result`),toolUseId:W,content:/*#__PURE__*/ K(S5),structuredContent:/*#__PURE__*/ Q(u5),isError:/*#__PURE__*/ Q(Dx),_meta:d5})]),D5=/*#__PURE__*/ G({role:q6,content:/*#__PURE__*/ q([E5,/*#__PURE__*/ K(E5)]),_meta:d5}),O5=/*#__PURE__*/ G({mode:/*#__PURE__*/ Q(/*#__PURE__*/ Ix([`auto`,`required`,`none`]))}),Zbe=/*#__PURE__*/ G({...Z6.fields,...D5.fields,model:W,stopReason:/*#__PURE__*/ Q(W)});var k5=class extends (/*#__PURE__*/ J(`sampling/createMessage`,{success:Zbe,error:e8,payload:{...U8.payloadSchema.fields,messages:/*#__PURE__*/ K(D5),maxTokens:Zx,tools:/*#__PURE__*/ Q(/*#__PURE__*/ K(C5)),toolChoice:/*#__PURE__*/ Q(O5)}})){};const A5=/*#__PURE__*/ G({...i8.fields,_meta:d5}),Qbe=/*#__PURE__*/ G({...Z6.fields,roots:/*#__PURE__*/ K(A5)});var j5=class extends (/*#__PURE__*/ J(`roots/list`,{success:Qbe,error:e8,payload:/*#__PURE__*/ Rx(Y6)})){};const M5=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`string`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),minLength:/*#__PURE__*/ Q(Zx),maxLength:/*#__PURE__*/ Q(Zx),format:/*#__PURE__*/ Q(/*#__PURE__*/ Ix([`email`,`uri`,`date`,`date-time`])),default:/*#__PURE__*/ Q(W)}),N5=/*#__PURE__*/ G({type:/*#__PURE__*/ Ix([`number`,`integer`]),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),minimum:/*#__PURE__*/ Q(Jx),maximum:/*#__PURE__*/ Q(Jx),default:/*#__PURE__*/ Q(Jx)}),P5=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`boolean`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),default:/*#__PURE__*/ Q(Dx)}),F5=/*#__PURE__*/ G({const:W,title:W}),I5=/*#__PURE__*/ q([/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`string`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),enum:/*#__PURE__*/ K(W),default:/*#__PURE__*/ Q(W)}),/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`string`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),oneOf:/*#__PURE__*/ K(F5),default:/*#__PURE__*/ Q(W)})]),L5=/*#__PURE__*/ q([/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`array`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),minItems:/*#__PURE__*/ Q(Zx),maxItems:/*#__PURE__*/ Q(Zx),items:/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`string`),enum:/*#__PURE__*/ K(W)}),default:/*#__PURE__*/ Q(/*#__PURE__*/ K(W))}),/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`array`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),minItems:/*#__PURE__*/ Q(Zx),maxItems:/*#__PURE__*/ Q(Zx),items:/*#__PURE__*/ G({anyOf:/*#__PURE__*/ K(F5)}),default:/*#__PURE__*/ Q(/*#__PURE__*/ K(W))})]),R5=/*#__PURE__*/ G({type:/*#__PURE__*/ xx(`string`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),enum:/*#__PURE__*/ K(W),enumNames:/*#__PURE__*/ Q(/*#__PURE__*/ K(W)),default:/*#__PURE__*/ Q(W)}),$be=/*#__PURE__*/ G({$schema:/*#__PURE__*/ Q(W),type:/*#__PURE__*/ xx(`object`),properties:/*#__PURE__*/ jx(W,/* @__PURE__ */ q([/* @__PURE__ */ q([R5,I5,L5]),M5,N5,P5])),required:/*#__PURE__*/ Q(/*#__PURE__*/ K(W))}),exe=/*#__PURE__*/ q([/* @__PURE__ */ G({...Y6.fields,mode:/*#__PURE__*/ Q(/*#__PURE__*/ xx(`form`)),message:W,requestedSchema:$be}),/* @__PURE__ */ G({...Y6.fields,mode:/*#__PURE__*/ xx(`url`),message:W,elicitationId:W,url:W})]),txe=/*#__PURE__*/ G({...Z6.fields,action:/*#__PURE__*/ Ix([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ Q(/*#__PURE__*/ jx(W,/*#__PURE__*/ q([W,Jx,Dx,/*#__PURE__*/ K(W)])))});var z5=class extends (/*#__PURE__*/ J(`elicitation/create`,{success:txe,error:e8,payload:exe})){},nxe=class extends (/*#__PURE__*/ J(`notifications/elicitation/complete`,{payload:{elicitationId:W}})){};const B5=/*#__PURE__*/ G({...R8.fields,serverInfo:p5});var rxe=class extends (/*#__PURE__*/ J(`initialize`,{success:B5,error:e8,payload:{...z8.payloadSchema.fields,capabilities:Jbe,clientInfo:p5}})){};const V5=/*#__PURE__*/ G({...$6.fields,resources:/*#__PURE__*/ K(h5)}),H5=/*#__PURE__*/ G({...$6.fields,resourceTemplates:/*#__PURE__*/ K(g5)}),U5=/*#__PURE__*/ G({...$6.fields,prompts:/*#__PURE__*/ K(_5)}),W5=/*#__PURE__*/ G({...Q8.fields,messages:/*#__PURE__*/ K(Ybe)}),G5=/*#__PURE__*/ G({...$6.fields,tools:/*#__PURE__*/ K(C5)});var ixe=class extends (/*#__PURE__*/ J(`resources/list`,{success:V5,error:e8,payload:/*#__PURE__*/ Rx(Q6)})){},axe=class extends (/*#__PURE__*/ J(`resources/templates/list`,{success:H5,error:e8,payload:/*#__PURE__*/ Rx(Q6)})){},oxe=class extends (/*#__PURE__*/ J(`prompts/list`,{success:U5,error:e8,payload:/*#__PURE__*/ Rx(Q6)})){},sxe=class extends (/*#__PURE__*/ J(`prompts/get`,{success:W5,error:e8,payload:{...Y6.fields,name:W,arguments:/*#__PURE__*/ Q(/*#__PURE__*/ jx(W,W))}})){},cxe=class extends (/*#__PURE__*/ J(`tools/list`,{success:G5,error:e8,payload:/*#__PURE__*/ Rx(Q6)})){},lxe=class extends (/*#__PURE__*/ oN(a8,rxe,q8,o8,sxe,oxe,ixe,axe,e5,s8,c8,Xbe,cxe)){},K5=class extends (/*#__PURE__*/ oN(u8,b8,d8,f8)){},uxe=class extends (/*#__PURE__*/ oN(a8,k5,j5,z5)){},dxe=class extends (/*#__PURE__*/ oN(u8,b8,p8,m8,h8,g8,_8,nxe)){};const q5=/*#__PURE__*/ (/* @__PURE__ */ lxe.omit(`ping`).middleware(c6).add(a8)).merge(K5),J5=/*#__PURE__*/ q5.omit(`ping`),fxe=e=>{if(e?.type!==`object`)return!1;let t=e.properties===void 0||Bt(e.properties)&&Object.values(e.properties).every(Bt),n=e.required===void 0||Array.isArray(e.required)&&e.required.every(Et);return t&&n},Y5=(e,t)=>new a6({operation:e,protocolVersion:l5,reason:t}),X5=(e,t,n)=>Object.hasOwn(e.clientCapabilities,n)&&e.clientCapabilities[n]!==void 0?R:B(Y5(t,`Client did not advertise the ${n} capability`)),pxe=e=>e.stopReason===`toolUse`||(`type`in e.content?e.content.type===`tool_use`||e.content.type===`tool_result`:e.content.some(e=>e.type===`tool_use`||e.type===`tool_result`)),mxe=(e,t)=>{let n=e.clientCapabilities.elicitation;return n===void 0?!1:t===`form`?n.form!==void 0||n.url===void 0:n.url!==void 0},Z5=/*#__PURE__*/ U(function*(e){return DE(e).pipe(OE({type:jE(`text`,`resource_link`)},e=>e),OE({type:jE(`image`,`audio`)},e=>({type:e.type,mimeType:e.mimeType,data:Xm(e.data),annotations:e.annotations,_meta:e._meta})),OE({type:`resource`},e=>{let t=e.resource;return`text`in t?x5.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,_meta:t._meta,text:t.text},annotations:e.annotations,_meta:e._meta}):x5.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,_meta:t._meta,blob:Xm(t.blob)},annotations:e.annotations,_meta:e._meta})}),NE)}),hxe=e=>e===void 0||gxe(e)?e:void 0,gxe=e=>Bt(e),_xe=/*#__PURE__*/ O6({protocolVersion:l5,runtime:/*#__PURE__*/ B6({jsonRpc:{acceptsBatches:!1},http:{requiresVersionHeader:!0}}),clientRpcs:q5,clientNotificationRpcs:K5,serverRequestRpcs:uxe,serverNotificationRpcs:dxe,handlerRpcs:J5,makeHandlers:(e,t)=>J5.of({initialize:(e,{client:n})=>t.initialize(l5,{protocolVersion:l5,clientCapabilities:T3.make(e.capabilities),clientInfo:w3.make(e.clientInfo),requestMetadata:e._meta},n.id).pipe(H(e=>B5.make({protocolVersion:l5,capabilities:{experimental:e.capabilities.experimental,extensions:e.capabilities.extensions,logging:e.capabilities.logging?{}:void 0,completions:e.capabilities.completions?{}:void 0,prompts:e.capabilities.prompts,resources:e.capabilities.resources,tools:e.capabilities.tools},serverInfo:e.serverInfo,instructions:e.instructions}))),"logging/setLevel":({level:e},{client:n,headers:r})=>t.setLogLevel(e,n.id,r).pipe(Gf({})),"notifications/cancelled":()=>R,"notifications/initialized":(e,{client:n,headers:r})=>t.clientNotification(f6.Initialized(),n.id,r),"notifications/progress":(e,{client:n,headers:r})=>t.clientNotification(f6.Progress({progressToken:e.progressToken,progress:e.progress,total:e.total,message:e.message,metadata:e._meta}),n.id,r),"notifications/roots/list_changed":(e,{client:n,headers:r})=>t.clientNotification(f6.RootsChanged(),n.id,r),"resources/list":()=>s6.use(t=>e.resources.list(g6(t))).pipe(H(e=>V5.make({resources:e.map(e=>h5.make(e))}))),"resources/templates/list":()=>s6.use(t=>e.resources.listTemplates(g6(t))).pipe(H(e=>H5.make({resourceTemplates:e.map(e=>g5.make(e))}))),"resources/read":U(function*({uri:t}){let n=yield*s6,r=yield*e.resources.read(t,_6(n)).pipe(Qf(C6.fromFeature));return X8.make({contents:r.contents.map(e=>`text`in e?{uri:e.uri,mimeType:e.mimeType,_meta:e._meta,text:e.text}:{uri:e.uri,mimeType:e.mimeType,_meta:e._meta,blob:Xm(e.blob)}),_meta:r._meta})}),"resources/subscribe":({uri:e},{client:n,headers:r})=>t.subscribe(e,n.id,r).pipe(Gf({})),"resources/unsubscribe":({uri:e},{client:n,headers:r})=>t.unsubscribe(e,n.id,r).pipe(Gf({})),"prompts/list":()=>s6.use(t=>e.prompts.list(g6(t))).pipe(H(e=>U5.make({prompts:e.map(e=>_5.make(e))}))),"prompts/get":U(function*({arguments:t,name:n}){let r=yield*s6,i=yield*e.prompts.get(n,t??{},_6(r)).pipe(Qf(C6.fromFeature));if(i._tag===`InputRequired`)return yield*C6.fromFeature(new d6({protocolVersion:l5,feature:`prompt input requirements`}));let a=i.value,o=yield*Df(a.messages,e=>Z5(e.content).pipe(H(t=>({role:e.role,content:t})),Qf(C6.fromTool)));return W5.make({description:a.description,messages:o,_meta:a._meta})}),"completion/complete":U(function*(t){let n=yield*s6,r=yield*e.completions.complete({reference:t.ref.type===`ref/prompt`?{type:`prompt`,name:t.ref.name,title:t.ref.title}:{type:`resourceTemplate`,uriTemplate:t.ref.uri},argument:t.argument,context:t.context?.arguments===void 0?void 0:{arguments:t.context.arguments},metadata:t._meta},_6(n)).pipe(Qf(C6.fromFeature));return K8.make({completion:{values:Array.from(r.values),total:r.total,hasMore:r.hasMore},_meta:r.metadata})}),"tools/list":U(function*(){let t=yield*s6,n=yield*e.tools.list(g6(t));return G5.make({tools:n.map(e=>C5.make({name:e.name,title:e.title,description:e.description,inputSchema:e.inputSchema,outputSchema:fxe(e.outputSchema)?e.outputSchema:void 0,icons:e.icons,annotations:e.annotations===void 0?void 0:y8.make({title:e.annotations.title,readOnlyHint:e.annotations.readOnlyHint,destructiveHint:e.annotations.destructiveHint,idempotentHint:e.annotations.idempotentHint,openWorldHint:e.annotations.openWorldHint}),_meta:e._meta}))})}),"tools/call":U(function*(t){let n=yield*s6,r=yield*e.tools.call({...t,arguments:t.arguments??{}},_6(n)).pipe(V(e=>y6(l5,e)),Jf([`InvalidToolInput`,`ToolExecutionError`],e=>I(X3.make({content:[H3.make({type:`text`,text:e.message})],isError:!0}))),Qf(C6.fromTool)),i=yield*Df(b6(r),Z5).pipe(Qf(C6.fromTool)),a=hxe(r.structuredContent);return w5.make({content:i,structuredContent:a,isError:r.isError,_meta:r._meta})})}),toReverseClient:(e,t)=>({listRoots:U(function*(n){yield*X5(e,`roots/list`,`roots`);let r=yield*T6(r6.payloadSchema,j5.payloadSchema,n).pipe(Qf(()=>Y5(`roots/list`,`Request is not representable by this protocol`))),{roots:i}=yield*t[`roots/list`](r).pipe(Qf(w6(`roots/list`)));return new n6({roots:i})}),createMessage:U(function*(n){if(yield*X5(e,`sampling/createMessage`,`sampling`),S6(n)&&e.clientCapabilities.sampling?.tools==null)return yield*Y5(`sampling/createMessage`,`Client did not advertise the sampling.tools capability`);if((n.includeContext===`thisServer`||n.includeContext===`allServers`)&&e.clientCapabilities.sampling?.context==null)return yield*Y5(`sampling/createMessage`,`Client did not advertise the sampling.context capability`);let r=yield*T6(t6.payloadSchema,k5.payloadSchema,n).pipe(Qf(()=>Y5(`sampling/createMessage`,`Request is not representable by this protocol`))),i=yield*t[`sampling/createMessage`](r).pipe(Qf(w6(`sampling/createMessage`)));return pxe(i)&&e.clientCapabilities.sampling?.tools==null?yield*Y5(`sampling/createMessage`,`Client did not advertise the sampling.tools capability`):yield*T6(k5.successSchema,t6.successSchema,i).pipe(Qf(()=>Y5(`sampling/createMessage`,`Response is not representable by the canonical model`)))}),elicit:U(function*(n){yield*X5(e,`elicitation/create`,`elicitation`);let r=n.mode===`url`?`url`:`form`;if(!mxe(e,r))return yield*Y5(`elicitation/create`,`Client did not advertise the elicitation.${r} capability`);let i=yield*T6(i6.payloadSchema,z5.payloadSchema,n).pipe(Qf(()=>Y5(`elicitation/create`,`Request is not representable by this protocol`))),a=yield*t[`elicitation/create`](i).pipe(Qf(w6(`elicitation/create`)));return yield*T6(z5.successSchema,i6.successSchema,a).pipe(Qf(()=>Y5(`elicitation/create`,`Response is not representable by the canonical model`)))})}),projectNotification:e=>e._tag===`ElicitationComplete`?I({tag:`notifications/elicitation/complete`,payload:{elicitationId:e.elicitationId}}):E6({supportsProgressMessage:!0},e),normalizeCancellation:e=>lx(u8.payloadSchema)(e).pipe(H(e=>({requestId:e.requestId,reason:e.reason,metadata:e._meta})))}),Q5=`2026-07-28`,$=W6,$5=/*#__PURE__*/ $(FS),e7=/*#__PURE__*/ q([W,Zx]),t7=e7,n7=q6,r7=J6,i7=p5,vxe=/*#__PURE__*/ Mx(/*#__PURE__*/ G({experimental:/*#__PURE__*/ $(/*#__PURE__*/ jx(W,FS)),roots:/*#__PURE__*/ $(/*#__PURE__*/ G({})),sampling:/*#__PURE__*/ $(/*#__PURE__*/ G({context:/*#__PURE__*/ $(FS),tools:/*#__PURE__*/ $(FS)})),elicitation:/*#__PURE__*/ $(/*#__PURE__*/ G({form:/*#__PURE__*/ $(FS),url:/*#__PURE__*/ $(FS)})),extensions:/*#__PURE__*/ $(/*#__PURE__*/ jx(W,FS))}),[FS]),yxe=/*#__PURE__*/ Mx(/*#__PURE__*/ G({experimental:/*#__PURE__*/ $(/*#__PURE__*/ jx(W,FS)),logging:/*#__PURE__*/ $(FS),completions:/*#__PURE__*/ $(FS),prompts:/*#__PURE__*/ $(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ $(Dx)})),resources:/*#__PURE__*/ $(/*#__PURE__*/ G({subscribe:/*#__PURE__*/ $(Dx),listChanged:/*#__PURE__*/ $(Dx)})),tools:/*#__PURE__*/ $(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ $(Dx)})),extensions:/*#__PURE__*/ $(/*#__PURE__*/ jx(W,FS))}),[FS]),a7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({progressToken:/*#__PURE__*/ $(t7),"io.modelcontextprotocol/protocolVersion":W,"io.modelcontextprotocol/clientInfo":/*#__PURE__*/ $(i7),"io.modelcontextprotocol/clientCapabilities":vxe,"io.modelcontextprotocol/logLevel":/*#__PURE__*/ $(r7)}),[FS]),o7=/*#__PURE__*/ G({_meta:a7}),s7=/*#__PURE__*/ G({_meta:/*#__PURE__*/ $(/* @__PURE__ */ Mx(/*#__PURE__*/ G({"io.modelcontextprotocol/subscriptionId":/*#__PURE__*/ $(e7)}),[FS]))}),c7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({"io.modelcontextprotocol/serverInfo":i7}),[FS]),l7={_meta:c7,resultType:/*#__PURE__*/ xx(`complete`)},u7=/*#__PURE__*/ G({code:Zx,message:W,data:/*#__PURE__*/ $(PS)}),bxe=m5,d7=/*#__PURE__*/ G({...h5.fields,size:/*#__PURE__*/ $(Zx),annotations:/*#__PURE__*/ $(bxe)}),f7=g5,xxe=A8,p7=v5,m7=y5,h7=b5,g7=/*#__PURE__*/ q([p7,m7,h7,/* @__PURE__ */ G({...d7.fields,type:/*#__PURE__*/ xx(`resource_link`)}),x5]),_7=_5,Sxe=/*#__PURE__*/ G({role:n7,content:g7}),Cxe=/*#__PURE__*/ Mx(/*#__PURE__*/ G({$schema:/*#__PURE__*/ $(W),type:/*#__PURE__*/ xx(`object`)}),[FS]),wxe=/*#__PURE__*/ Mx(/*#__PURE__*/ G({$schema:/*#__PURE__*/ $(W)}),[FS]),Txe=y8,v7=/*#__PURE__*/ G({...C5.fields,inputSchema:Cxe,outputSchema:/*#__PURE__*/ $(wxe),annotations:/*#__PURE__*/ $(Txe)}),y7=/*#__PURE__*/ q([p7,m7,h7,T5,/* @__PURE__ */ G({type:/*#__PURE__*/ xx(`tool_result`),toolUseId:W,content:/*#__PURE__*/ K(g7),structuredContent:/*#__PURE__*/ $(PS),isError:/*#__PURE__*/ $(Dx),_meta:$5})]),b7=/*#__PURE__*/ G({role:n7,content:/*#__PURE__*/ q([y7,/*#__PURE__*/ K(y7)]),_meta:$5}),Exe=/*#__PURE__*/ Mx(/*#__PURE__*/ G({name:/*#__PURE__*/ $(W)}),[FS]),x7=/*#__PURE__*/ Jx.check(/*#__PURE__*/ Xx({minimum:0,maximum:1})),Dxe=/*#__PURE__*/ G({...r8.fields,hints:/*#__PURE__*/ $(/*#__PURE__*/ K(Exe)),costPriority:/*#__PURE__*/ $(x7),speedPriority:/*#__PURE__*/ $(x7),intelligencePriority:/*#__PURE__*/ $(x7)}),Oxe=/*#__PURE__*/ G({method:/*#__PURE__*/ xx(`sampling/createMessage`),params:/*#__PURE__*/ G({messages:/*#__PURE__*/ K(b7),modelPreferences:/*#__PURE__*/ $(Dxe),systemPrompt:/*#__PURE__*/ $(W),includeContext:/*#__PURE__*/ $(/*#__PURE__*/ Ix([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ $(Jx),maxTokens:Zx,stopSequences:/*#__PURE__*/ $(/*#__PURE__*/ K(W)),metadata:/*#__PURE__*/ $(FS),tools:/*#__PURE__*/ $(/*#__PURE__*/ K(v7)),toolChoice:/*#__PURE__*/ $(O5)})}),kxe=/*#__PURE__*/ G({...b7.fields,model:W,stopReason:/*#__PURE__*/ $(W)}),Axe=A5,jxe=/*#__PURE__*/ G({method:/*#__PURE__*/ xx(`roots/list`),params:/*#__PURE__*/ $(/*#__PURE__*/ G({_meta:$5}))}),Mxe=/*#__PURE__*/ G({roots:/*#__PURE__*/ K(Axe)}),Nxe=/*#__PURE__*/ G({method:/*#__PURE__*/ xx(`elicitation/create`),params:/* @__PURE__ */ q([/* @__PURE__ */ G({mode:/*#__PURE__*/ $(/*#__PURE__*/ xx(`form`)),message:W,requestedSchema:/* @__PURE__ */ G({$schema:/*#__PURE__*/ $(W),type:/*#__PURE__*/ xx(`object`),properties:/*#__PURE__*/ jx(W,/* @__PURE__ */ q([/* @__PURE__ */ q([R5,I5,L5]),M5,N5,P5])),required:/*#__PURE__*/ $(/*#__PURE__*/ K(W))})}),/* @__PURE__ */ G({mode:/*#__PURE__*/ xx(`url`),message:W,url:W})])}),Pxe=/*#__PURE__*/ G({action:/*#__PURE__*/ Ix([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ $(/*#__PURE__*/ jx(W,/*#__PURE__*/ q([W,Jx,Dx,/*#__PURE__*/ K(W)])))}),Fxe=/*#__PURE__*/ q([Oxe,jxe,Nxe]),Ixe=/*#__PURE__*/ q([kxe,Mxe,Pxe]),S7=/*#__PURE__*/ jx(W,Fxe),Lxe=/*#__PURE__*/ jx(W,Ixe),C7={_meta:c7,resultType:/*#__PURE__*/ xx(`input_required`)},w7=/*#__PURE__*/ q([/*#__PURE__*/ Mx(/*#__PURE__*/ G({...C7,inputRequests:S7,requestState:/*#__PURE__*/ $(W)}),[FS]),/*#__PURE__*/ Mx(/*#__PURE__*/ G({...C7,inputRequests:/*#__PURE__*/ $(S7),requestState:W}),[FS])]),T7={...o7.fields,inputResponses:/*#__PURE__*/ $(Lxe),requestState:/*#__PURE__*/ $(W)},E7={...l7,ttlMs:/*#__PURE__*/ Zx.check(/*#__PURE__*/ boe(0)),cacheScope:/*#__PURE__*/ Ix([`public`,`private`])},D7={...o7.fields,cursor:/*#__PURE__*/ $(W)},O7={...l7,nextCursor:/*#__PURE__*/ $(W)},k7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...E7,supportedVersions:/*#__PURE__*/ K(W),capabilities:yxe,instructions:/*#__PURE__*/ $(W)}),[FS]);var Rxe=class extends (/*#__PURE__*/ J(`server/discover`,{success:k7,error:u7,payload:o7})){};const A7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...O7,...E7,resources:/*#__PURE__*/ K(d7)}),[FS]);var zxe=class extends (/*#__PURE__*/ J(`resources/list`,{success:A7,error:u7,payload:D7})){};const j7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...O7,...E7,resourceTemplates:/*#__PURE__*/ K(f7)}),[FS]);var Bxe=class extends (/*#__PURE__*/ J(`resources/templates/list`,{success:j7,error:u7,payload:D7})){};const M7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...E7,contents:/*#__PURE__*/ K(xxe)}),[FS]);var Vxe=class extends (/*#__PURE__*/ J(`resources/read`,{success:/*#__PURE__*/ q([M7,w7]),error:u7,payload:{...T7,uri:W}})){};const N7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...O7,...E7,prompts:/*#__PURE__*/ K(_7)}),[FS]);var Hxe=class extends (/*#__PURE__*/ J(`prompts/list`,{success:N7,error:u7,payload:D7})){};const P7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...l7,description:/*#__PURE__*/ $(W),messages:/*#__PURE__*/ K(Sxe)}),[FS]);var Uxe=class extends (/*#__PURE__*/ J(`prompts/get`,{success:/*#__PURE__*/ q([P7,w7]),error:u7,payload:{...T7,name:W,arguments:/*#__PURE__*/ $(/*#__PURE__*/ jx(W,W))}})){};const F7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...O7,...E7,tools:/*#__PURE__*/ K(v7)}),[FS]);var Wxe=class extends (/*#__PURE__*/ J(`tools/list`,{success:F7,error:u7,payload:D7})){};const I7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...l7,content:/*#__PURE__*/ K(g7),structuredContent:/*#__PURE__*/ $(PS),isError:/*#__PURE__*/ $(Dx)}),[FS]);var Gxe=class extends (/*#__PURE__*/ J(`tools/call`,{success:/*#__PURE__*/ q([I7,w7]),error:u7,payload:{...T7,name:W,arguments:/*#__PURE__*/ $(FS)}})){};const Kxe=W8,qxe=G8,L7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({...l7,completion:/*#__PURE__*/ G({values:/*#__PURE__*/ K(W).check(/*#__PURE__*/ eS(100)),total:/*#__PURE__*/ $(Zx),hasMore:/*#__PURE__*/ $(Dx)})}),[FS]);var Jxe=class extends (/*#__PURE__*/ J(`completion/complete`,{success:L7,error:u7,payload:{...o7.fields,ref:/*#__PURE__*/ q([Kxe,qxe]),argument:/*#__PURE__*/ G({name:W,value:W}),context:/*#__PURE__*/ $(/*#__PURE__*/ G({arguments:/*#__PURE__*/ $(/*#__PURE__*/ jx(W,W))}))}})){};const R7=/*#__PURE__*/ G({toolsListChanged:/*#__PURE__*/ $(Dx),promptsListChanged:/*#__PURE__*/ $(Dx),resourcesListChanged:/*#__PURE__*/ $(Dx),resourceSubscriptions:/*#__PURE__*/ $(/*#__PURE__*/ K(W))}),z7=/*#__PURE__*/ Mx(/*#__PURE__*/ G({_meta:/* @__PURE__ */ Mx(/*#__PURE__*/ G({"io.modelcontextprotocol/serverInfo":i7,"io.modelcontextprotocol/subscriptionId":e7}),[FS]),resultType:/*#__PURE__*/ xx(`complete`)}),[FS]);var Yxe=class extends (/*#__PURE__*/ J(`subscriptions/listen`,{success:z7,error:u7,payload:{...o7.fields,notifications:R7}})){},B7=class extends (/*#__PURE__*/ J(`notifications/cancelled`,{payload:{...s7.fields,requestId:e7,reason:/*#__PURE__*/ $(W)}})){},Xxe=class extends (/*#__PURE__*/ J(`notifications/progress`,{payload:{...s7.fields,progressToken:t7,progress:Jx,total:/*#__PURE__*/ $(Jx),message:/*#__PURE__*/ $(W)}})){},Zxe=class extends (/*#__PURE__*/ J(`notifications/message`,{payload:{...s7.fields,level:r7,logger:/*#__PURE__*/ $(W),data:PS}})){},V7=class extends (/*#__PURE__*/ J(`notifications/resources/updated`,{payload:{...s7.fields,uri:W}})){},H7=class extends (/*#__PURE__*/ J(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ Rx(s7)})){},U7=class extends (/*#__PURE__*/ J(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ Rx(s7)})){},W7=class extends (/*#__PURE__*/ J(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ Rx(s7)})){},G7=class extends (/*#__PURE__*/ J(`notifications/subscriptions/acknowledged`,{payload:{...s7.fields,notifications:R7}})){},K7=class extends (/*#__PURE__*/ oN(Rxe,Jxe,Uxe,Hxe,zxe,Bxe,Vxe,Yxe,Gxe,Wxe)){},q7=class extends (/*#__PURE__*/ oN(B7)){},Qxe=class extends (/*#__PURE__*/ K7.merge(q7)){},$xe=class extends (/*#__PURE__*/ oN()){},eSe=class extends (/*#__PURE__*/ oN(B7,Xxe,Zxe,V7,H7,U7,W7,G7)){};const tSe=/*#__PURE__*/ jx(W,FS),nSe=/*#__PURE__*/ lx(a7),rSe=/*#__PURE__*/ lx(B7.payloadSchema),iSe=/*#__PURE__*/ cx(PS),J7=/*#__PURE__*/ px(i7),Y7=e=>{let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t},aSe=(e,t)=>{if(Ft(t))return e===void 0;if(e===void 0)return!1;let n=h6(e);return n!==void 0&&DE(t).pipe(OE(mce,e=>n===e),OE(gce,e=>n===String(e)),OE(hce,e=>Number.isSafeInteger(e)&&n.trim().length>0&&Number(n)===e),ME(()=>!1))},oSe=/*#__PURE__*/ U(function*(e){let t=yield*nSe(e);return{protocolVersion:Q5,clientCapabilities:t[`io.modelcontextprotocol/clientCapabilities`],clientInfo:t[`io.modelcontextprotocol/clientInfo`],requestMetadata:t}}),X7=(e,t)=>{let n=e._meta;return{...Bt(n)?n:{},"io.modelcontextprotocol/serverInfo":t}},Z7=(e,t)=>Y7({_meta:{"io.modelcontextprotocol/serverInfo":t},resultType:`input_required`,inputRequests:e.inputRequests,requestState:e.requestState}),Q7=/*#__PURE__*/ lx(/*#__PURE__*/ q([I7,w7])),$7=/*#__PURE__*/ U(function*(e,t){let n=yield*J7(t);return e._tag===`Complete`?yield*Q7({...Y7(e.value),_meta:X7(e.value,n),resultType:`complete`}):yield*Q7(Z7(e,n))}),sSe=(e,t)=>{let n={};for(let r of Object.values(e??{}))DE(r).pipe(OE({method:`roots/list`},()=>{t.roots===void 0&&(n.roots={})}),OE({method:`sampling/createMessage`},e=>{let r=n.sampling??{};S6(e.params)&&t.sampling?.tools===void 0&&(r.tools={}),(e.params.includeContext===`thisServer`||e.params.includeContext===`allServers`)&&t.sampling?.context===void 0&&(r.context={}),(t.sampling===void 0||Object.keys(r).length>0)&&(n.sampling=r)}),OE({method:`elicitation/create`},e=>{let r=e.params.mode===`url`?`url`:`form`,i=t.elicitation;i!==void 0&&(r===`url`?i.url!==void 0:i.form!==void 0||Object.keys(i).length===0)||((n.elicitation??={})[r]={})}),NE);return n},e9=e=>Y7({uri:e.uri,mimeType:e.mimeType,_meta:e._meta,...`text`in e?{text:e.text}:{blob:Xm(e.blob)}}),t9=/*#__PURE__*/ EE().pipe(/*#__PURE__*/ OE({type:/*#__PURE__*/ jE(`text`,`resource_link`)},e=>e),/*#__PURE__*/ OE({type:/*#__PURE__*/ jE(`image`,`audio`)},e=>Y7({type:e.type,mimeType:e.mimeType,data:Xm(e.data),annotations:e.annotations,_meta:e._meta})),/*#__PURE__*/ OE({type:`resource`},e=>Y7({type:`resource`,resource:e9(e.resource),annotations:e.annotations,_meta:e._meta})),NE),cSe=e=>d7.make(e),lSe=e=>f7.make(e),uSe=e=>T6(Pye,_7,e),dSe=e=>T6(Y3,v7,e),n9={ttlMs:0,cacheScope:`private`},r9=/*#__PURE__*/ U(function*(e,t){let n=yield*J7(t);return{...Y7(e),_meta:X7(e,n),resultType:`complete`}}),fSe=/*#__PURE__*/ EE().pipe(/*#__PURE__*/ kE(`ResourceNotFound`,e=>new C6({code:-32602,message:`Resource '${e.uri}' not found`,data:{uri:e.uri}})),/*#__PURE__*/ kE(`ToolNotFound`,`InvalidToolInput`,`InvalidToolContinuation`,`ToolExecutionError`,`UnsupportedByProtocol`,C6.fromTool),/*#__PURE__*/ ME(C6.fromFeature)),i9=e=>{let t=fSe(e);return u7.make({code:t.code,message:t.message,...iSe(t.data)?{data:t.data}:{}})},a9=/*#__PURE__*/ U(function*(e,t){let n=yield*hp(Ij);return mi(n)&&rM(n.value,(t,n)=>I(Qk(n,e))),yield*t}),pSe=e=>rSe(e).pipe(H(e=>({requestId:e.requestId,reason:e.reason,metadata:e._meta}))),o9=e=>new a6({operation:e,protocolVersion:Q5,reason:`MCP 2026-07-28 carries server input requests in multi round-trip results`}),s9=/* @__PURE__ */ O6({protocolVersion:Q5,runtime:{_tag:`Stateless`,transport:{jsonRpc:{acceptsBatches:!1},http:{}},profileFromRequestMetadata:oSe},clientRpcs:Qxe,clientNotificationRpcs:q7,serverRequestRpcs:$xe,serverNotificationRpcs:eSe,handlerRpcs:/* @__PURE__ */ K7.merge(q7),makeHandlers:(e,t,n)=>{let r=lx(tSe),i=lx(k7),a=lx(A7),o=lx(j7),s=lx(M7),c=lx(N7),l=lx(P7),u=lx(q([P7,w7])),d=lx(L7),f=lx(F7),p=n.sendNotification,m=p!==void 0,h=n.serverInfo.extensions===void 0?void 0:ha(n.serverInfo.extensions,e=>Bt(e)),g=H(n.registrationPresence,e=>{let t={completions:{},logging:{}};return h!==void 0&&(t.extensions=h),e.tools&&(t.tools={listChanged:m}),e.resources&&(t.resources={listChanged:m,subscribe:m}),e.prompts&&(t.prompts={listChanged:m}),{supportedVersions:n.supportedVersions,capabilities:t,serverInfo:n.serverInfo}}),_=o6.useSync(v6),v=U(function*(e){let t=yield*o6,n=e.inputResponses===void 0?void 0:yield*r(e.inputResponses).pipe($f);return v6(o6.of({...t,inputResponses:n,requestState:e.requestState}))}),y=U(function*(e,t){let n=sSe(e.inputRequests,t);if(Object.keys(n).length!==0)return yield*a9(400,new C6({code:-32021,message:`The request requires client capabilities that were not declared`,data:{requiredCapabilities:n}}))});return{"subscriptions/listen":U(function*(e,{client:t,requestId:r}){if(p===void 0)return yield*new C6({code:-32601,message:`Method not found: subscriptions/listen`});let i=yield*n.registrationPresence,a=yield*Sd(yield*vp),o=n.getListChangeRevision?.()??0,s=yield*yd(n.subscribeServerNotifications,a),c={...i.tools&&e.notifications.toolsListChanged===!0?{toolsListChanged:!0}:{},...i.prompts&&e.notifications.promptsListChanged===!0?{promptsListChanged:!0}:{},...i.resources&&e.notifications.resourcesListChanged===!0?{resourcesListChanged:!0}:{},...i.resources&&e.notifications.resourceSubscriptions!==void 0?{resourceSubscriptions:e.notifications.resourceSubscriptions}:{}},l={"io.modelcontextprotocol/subscriptionId":r},u=new Set(c.resourceSubscriptions),d=yield*Woe(64),f=yield*id();yield*z(function*(){for(;;){let e=yield*pC(s);if(e.listChangeRevision!==void 0&&e.listChangeRevision<=o||e.targetClientId!==void 0&&e.targetClientId!==t.id)continue;let n=e.notification,r=DE(n).pipe(AE({ToolsChanged:()=>c.toolsListChanged===!0?U7:void 0,PromptsChanged:()=>c.promptsListChanged===!0?W7:void 0,ResourcesChanged:()=>c.resourcesListChanged===!0?H7:void 0,ResourceUpdated:e=>u.has(e.uri)?V7:void 0}),NE);if(r===void 0)continue;let i={tag:r._tag,payload:r.payloadSchema.make({_meta:{...n.metadata,...l},...n._tag===`ResourceUpdated`?{uri:n.uri}:{}})};if(!(yield*yC(d,i)))break}}).pipe(Ed(a),Vf(Mf(()=>n.markSubscriptionCancelled?.(t.id,r)??R)),Vf(dd(f,void 0)),zp),yield*p(Q5,t.id,{tag:G7._tag,payload:G7.payloadSchema.make({_meta:l,notifications:c})});let m=Np(kC(d).pipe(V(e=>p(Q5,t.id,e))));yield*nie(m,ad(f)),yield*n.terminateSubscription?.(`2026-07-28`,t.id,r,`Pending notification limit exceeded`)??R;let h=yield*J7(n.serverInfo);return z7.make({_meta:{...l,"io.modelcontextprotocol/serverInfo":h},resultType:`complete`})},Qf(i9)),"server/discover":U(function*(e){let t=yield*g,r=yield*r9({...n9,supportedVersions:Array.from(t.supportedVersions),capabilities:t.capabilities,instructions:n.serverInfo.instructions},n.serverInfo);return yield*i(r)},Qf(i9)),"resources/list":U(function*(t){let r=yield*_,i=yield*e.resources.list(r.protocol),o=yield*r9({...n9,resources:i.map(cSe)},n.serverInfo);return yield*a(o)},Qf(i9)),"resources/templates/list":U(function*(t){let r=yield*_,i=yield*e.resources.listTemplates(r.protocol),a=yield*r9({...n9,resourceTemplates:i.map(lSe)},n.serverInfo);return yield*o(a)},Qf(i9)),"resources/read":U(function*(t){let r=yield*v(t),i=yield*e.resources.read(t.uri,r),a=i.contents.map(e9),o=yield*r9({...n9,contents:a,_meta:i._meta},n.serverInfo);return yield*s(o)},Qf(i9)),"prompts/list":U(function*(t){if(!(yield*n.registrationPresence).prompts)return yield*a9(404,new C6({code:D3,message:`Method not found`}));let r=yield*_,i=yield*e.prompts.list(r.protocol),a=yield*Df(i,uSe),o=yield*r9({...n9,prompts:a},n.serverInfo);return yield*c(o)},Qf(i9)),"prompts/get":U(function*(t){let r=yield*v(t),i=yield*e.prompts.get(t.name,t.arguments??{},r);if(i._tag===`InputRequired`){yield*y(i,r.protocol.clientCapabilities);let e=yield*J7(n.serverInfo);return yield*u(Z7(i,e))}let a=i.value,o=a.messages.map(e=>({role:e.role,content:t9(e.content)})),s=yield*r9({description:a.description,messages:o,_meta:a._meta},n.serverInfo);return yield*l(s)},Qf(i9)),"completion/complete":U(function*(t){let r=yield*_,i=yield*e.completions.complete({reference:t.ref.type===`ref/prompt`?{type:`prompt`,name:t.ref.name,title:t.ref.title}:{type:`resourceTemplate`,uriTemplate:t.ref.uri},argument:t.argument,context:t.context?.arguments===void 0?void 0:{arguments:t.context.arguments},metadata:t._meta},r),a=yield*r9({completion:Y7({values:Array.from(i.values),total:i.total,hasMore:i.hasMore}),_meta:i.metadata},n.serverInfo);return yield*d(a)},Qf(i9)),"tools/list":U(function*(t){let r=yield*_,i=yield*e.tools.list(r.protocol),a=yield*Df(i,dSe),o=yield*r9({...n9,tools:a},n.serverInfo);return yield*f(o)},Qf(i9)),"tools/call":U(function*(t){let r=yield*v(t),i=(yield*e.tools.list(r.protocol)).find(e=>e.name===t.name),a=yield*hp(Ij);if(i!==void 0&&mi(a)){let e=[{schema:i.inputSchema,argument:t.arguments,path:``}];for(;e.length>0;){let{schema:t,argument:n,path:r}=e.pop();if(!Bt(t))continue;let i=t[`x-mcp-header`];if(typeof i==`string`){let e=`mcp-param-${i.toLowerCase()}`;if(!aSe(a.value.headers[e],n))return yield*a9(400,new C6({code:A3,message:`${e} does not match argument '${r}'`}))}if(Bt(t.properties))for(let[i,a]of Object.entries(t.properties))e.push({schema:a,argument:Bt(n)&&Object.hasOwn(n,i)?n[i]:void 0,path:r===``?i:`${r}.${i}`})}}let o=yield*e.tools.call({name:t.name,arguments:t.arguments??{}},r).pipe(Jf([`ToolExecutionError`,`InvalidToolInput`],e=>I(u6.Complete(X3.make({content:[H3.make({type:`text`,text:e.message})],isError:!0})))));if(o._tag===`InputRequired`)return yield*y(o,r.protocol.clientCapabilities),yield*$7(o,n.serverInfo);let s=o.value,c=s.content.map(t9);return yield*$7(u6.Complete({content:c,structuredContent:s.structuredContent,isError:s.isError,_meta:s._meta}),n.serverInfo)},Qf(i9)),"notifications/cancelled":U(function*(e){return yield*R})}},toReverseClient:()=>({listRoots:()=>B(o9(`roots/list`)),createMessage:()=>B(o9(`sampling/createMessage`)),elicit:()=>B(o9(`elicitation/create`))}),projectNotification:e=>D6(e)?I(void 0):E6({supportsProgressMessage:!0},e),normalizeCancellation:pSe}),mSe=_xe,hSe=qbe,c9=/*#__PURE__*/ new WeakMap,l9=/*#__PURE__*/ Xi(`effect/ai/McpServer/RequestNotificationQueue`,{defaultValue:()=>void 0}),u9=e=>e._tag===`Progress`||e._tag===`LoggingMessage`,gSe=/*#__PURE__*/ qye.omit(`notifications/elicitation/complete`),d9=/*#__PURE__*/ cx(Q3),_Se=e=>{switch(e.tag){case`notifications/cancelled`:return p6.Cancelled({requestId:e.payload.requestId,reason:e.payload.reason,metadata:e.payload._meta});case`notifications/progress`:return p6.Progress({progressToken:e.payload.progressToken,progress:e.payload.progress,total:e.payload.total,message:e.payload.message,metadata:e.payload._meta});case`notifications/message`:return p6.LoggingMessage({level:e.payload.level,logger:e.payload.logger,data:e.payload.data,metadata:e.payload._meta});case`notifications/resources/updated`:return p6.ResourceUpdated({uri:e.payload.uri,metadata:e.payload._meta});case`notifications/resources/list_changed`:return p6.ResourcesChanged({metadata:e.payload?._meta});case`notifications/tools/list_changed`:return p6.ToolsChanged({metadata:e.payload?._meta});case`notifications/prompts/list_changed`:return p6.PromptsChanged({metadata:e.payload?._meta});default:return}},f9=(e,t)=>{let n=_p(e,o6,t.requestContext),r=t.requestContext.requestMetadata,i=P(r,`io.modelcontextprotocol/logLevel`)?r[`io.modelcontextprotocol/logLevel`]:void 0;return d9(i)&&(n=_p(n,md,m6[i].effect)),t.serverClient===void 0?n:_p(n,s6,t.serverClient)};var p9=class e extends (/*#__PURE__*/ F()(`effect/ai/McpServer`)){static make=/*#__PURE__*/ z(function*(){let t=yield*ebe,n=ja(),r=[],i=[],a=[],o=yield*_C(),s={consumers:0,listChangeRevision:0,requestEndpoints:0},c=()=>s.consumers===0&&s.requestEndpoints>0,l=/* @__PURE__ */ new Map,u=(yield*uo).makeDispatcher(),d=yield*JM(gSe,{spanPrefix:`McpServer/Notifications`,onFromClient:e=>id().pipe(V(t=>zf(n=>{let r=e.message;if(r._tag!==`Request`)return R;let i=_Se(r);if(i===void 0)return R;let a={notification:i,delivered:t,requestContext:Vi(n.context,o6),requestHeaders:Vi(n.context,Ij)?.headers},f=Mf(()=>d.write({clientId:0,requestId:r.id,_tag:`Exit`,exit:Ju})),p=Wi(n.context,l9);if(p!==void 0&&a.requestContext!==void 0&&u9(i))return bC(p,a),Vf(ad(t),f);if(c())return f;let m=!1;if(r.tag.includes(`list_changed`)){let e=++s.listChangeRevision,t=l.get(r.tag);t===void 0?(a.listChangeRevision=e,m=!0,l.set(r.tag,a),u.scheduleTask(()=>{l.delete(r.tag),bC(o,a)},0)):t.listChangeRevision=e}else m=!0,bC(o,a);return m&&a.requestContext!==void 0&&s.consumers>0?Vf(ad(t),f):f})))}),f=e.of({notifications:d.client,notifyElicitationComplete:({clientId:e,elicitationId:t})=>c()?R:id().pipe(V(n=>yC(o,{notification:p6.ElicitationComplete({elicitationId:t}),targetClientId:e,delivered:n}).pipe(Vf(Mf(()=>s.consumers>0?ad(n):R))))),get tools(){return n},addTool:e=>z(function*(){let r=n.findIndex(({tool:t})=>t.name===e.tool.name);r===-1?n.push(e):n[r]=e;let i=Vi(e.annotations,l6);yield*t.tools.register({descriptor:new Y3({...e.tool,title:e.tool.title??e.tool.annotations?.title}),isVisible:e=>i===void 0||i({protocolVersion:e.protocolVersion,capabilities:e.clientCapabilities,clientInfo:e.clientInfo}),handle:(t,n)=>f9(e.handle(t.arguments),n).pipe(Zre({InternalError:t=>B(new Qye({name:e.tool.name,message:t.message})),InvalidParams:t=>B(new(n.requestContext.requestState===void 0&&n.requestContext.inputResponses===void 0?Xye:Zye)({name:e.tool.name,message:t.message}))}),H(e=>Ht(e,`InputRequired`)?u6.InputRequired(e):u6.Complete(e)))}),yield*d.client[`notifications/tools/list_changed`]({})}),callTool:e=>z(function*(){let n=yield*s6,r=yield*t.tools.call(e,_6(n)).pipe(Qf(e=>new P3({message:e._tag===`ToolNotFound`?`Tool '${e.name}' not found`:e.message})));return r._tag===`InputRequired`?yield*new P3({message:`Client input is not supported by this MCP protocol`}):r.value}),get resources(){return r},get resourceTemplates(){return i},addResource:e=>z(function*(){let n=r.findIndex(({resource:t})=>t.uri===e.resource.uri);n===-1?r.push(e):r[n]=e,yield*t.resources.register({descriptor:e.resource,isVisible:t=>{let n=Vi(e.annotations,l6);return n===void 0||n({protocolVersion:t.protocolVersion,capabilities:t.clientCapabilities,clientInfo:t.clientInfo})},read:t=>f9(e.handle,t)}),yield*d.client[`notifications/resources/list_changed`]({})}),addResourceTemplate:({annotations:e,completions:n,handle:r,routerPath:a,template:o})=>z(function*(){let s=i.findIndex(({template:e})=>e.uriTemplate===o.uriTemplate);s===-1?i.push({template:o,annotations:e}):i[s]={template:o,annotations:e};let c=TSe();c.add(a,!0),yield*t.resources.registerTemplate({descriptor:o,isVisible:t=>{let n=Vi(e,l6);return n===void 0||n({protocolVersion:t.protocolVersion,capabilities:t.clientCapabilities,clientInfo:t.clientInfo})},match:e=>{let t=c.find(e);if(t===void 0)return;let n=[];for(let e of Object.keys(t.params))n[Number(e)]=t.params[e];return n},read:(e,t,n)=>f9(r(e,Array.from(t)),n)});for(let[e,r]of Object.entries(n))yield*t.completions.register(`resource/${o.uriTemplate}/${e}`,(e,t)=>f9(r(e.argument.value,e.context),t).pipe(H(e=>({values:e.completion.values,total:e.completion.total,hasMore:e.completion.hasMore,metadata:e._meta}))));yield*d.client[`notifications/resources/list_changed`]({})}),findResource:e=>z(function*(){let n=yield*s6;return yield*t.resources.read(e,_6(n)).pipe(Jf(`ResourceNotFound`,e=>B(new P3({message:`Resource '${e.uri}' not found`}))))}),get prompts(){return a},addPrompt:e=>z(function*(){let n=a.findIndex(({prompt:t})=>t.name===e.prompt.name);n===-1?a.push(e):a[n]=e,yield*t.prompts.register({descriptor:e.prompt,isVisible:t=>{let n=Vi(e.annotations,l6);return n===void 0||n({protocolVersion:t.protocolVersion,capabilities:t.clientCapabilities,clientInfo:t.clientInfo})},get:(t,n)=>f9(e.handle(t),n).pipe(H(e=>Ht(e,`InputRequired`)?u6.InputRequired(e):u6.Complete(e)))});for(let[n,r]of Object.entries(e.completions))yield*t.completions.register(`prompt/${e.prompt.name}/${n}`,(e,t)=>f9(r(e.argument.value,e.context),t).pipe(H(e=>({values:e.completion.values,total:e.completion.total,hasMore:e.completion.hasMore,metadata:e._meta}))));yield*d.client[`notifications/prompts/list_changed`]({})}),getPromptResult:U(function*({arguments:e,name:n}){let r=yield*s6,i=yield*t.prompts.get(n,e??{},_6(r)).pipe(Jf(`PromptNotFound`,()=>new P3({message:`Prompt '${n}' not found`})));return i._tag===`Complete`?i.value:yield*new P3({message:`Client input is not supported by this MCP protocol`})}),completion:U(function*(e){let n=yield*s6,r=e.ref,i=yield*t.completions.complete({reference:r.type===`ref/resource`?{type:`resourceTemplate`,uriTemplate:r.uri}:{type:`prompt`,name:r.name},argument:e.argument,context:e.context},_6(n));return{_meta:i.metadata,completion:{values:i.values,total:i.total,hasMore:i.hasMore}}})});return c9.set(f,{core:t,notifications:o,notificationDelivery:s}),f});static layer=/*#__PURE__*/ Wd(e)(e.make)};const m9=`mcp-session-id`,h9=/*#__PURE__*/ new WeakMap,g9=/*#__PURE__*/ new WeakMap,_9=e=>`${typeof e}:${e}`;var v9=class extends ho{};const y9=/*#__PURE__*/ U(function*(e,t,n,r){let i=yield*rN,a=yield*p9,o=yield*md,s=n===`http`,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=e=>{l.delete(e),c.delete(e),t.disconnect(e)},f=(e,t,n)=>i.send(e,{_tag:`Exit`,requestId:t,exit:{_tag:`Failure`,cause:[{_tag:`Fail`,error:n}]}}),p=(e,t)=>{let n=u.get(e);if(n===void 0)return;let r=n.filter(e=>e!==t);r.length===0?u.delete(e):u.set(e,r)},m=yield*cC(),h=(e,n,r)=>Mf(()=>{let a=t.selectProtocol(e),o=a.serverNotificationRpcs.requests.get(r.tag);return o===void 0?Lf(`MCP protocol ${e} does not define server notification ${r.tag}`):a.payloadCodecs(o).encode(r.payload).pipe($f,V(e=>i.send(n,{_tag:`Request`,id:``,tag:r.tag,payload:e,headers:[],isNotification:!0})))}),g=(e,t)=>{let n=l.get(e),r=_9(t),i=n?.get(r);return i!==void 0&&(n.set(r,{...i,cancelled:!0}),!0)},_=(e,t,n,r)=>Mf(()=>g(t,n)?s?i.end(t):h(e,t,{tag:`notifications/cancelled`,payload:{requestId:n,reason:r}}):R),v,{core:y,notificationDelivery:b,notifications:x}=c9.get(a),S=r?.handlers??(yield*t.installHandlers({core:y,subscribeServerNotifications:dC(m),getListChangeRevision:()=>b.listChangeRevision,...!i.supportsNotifications||e.allowSubscriptions===!1?{}:{sendNotification:h,markSubscriptionCancelled:(e,t)=>L(()=>{g(e,t)}),terminateSubscription:_},defaultLogLevel:o,serverInfo:e})),ee=yield*pT({lookup:U(function*(e){let n=t.selectProtocol(e.profile.protocolVersion),r,a=yield*XM.make(U(function*(t){let n=0;return r=e=>t(n,e),{send(t,r,a){if(n=t,r._tag===`Request`){let t=_9(r.id),n=u.get(t)??[];return n.push(e),u.set(t,n),i.send(e.clientId,{_tag:`Request`,id:r.id,tag:r.tag,payload:r.payload,headers:[]}).pipe(Cp(()=>L(()=>p(t,e))))}return r._tag===`Interrupt`?(p(_9(r.requestId),e),h(e.profile.protocolVersion,e.clientId,{tag:`notifications/cancelled`,payload:{requestId:r.requestId}})):R},supportsAck:!0,supportsTransferables:!1,supportsStructuredClone:!1,codecFor:i.codecFor}}));return{client:yield*n.makeReverseClient(e.profile).pipe(_p(XM,a)),write:r}}),idleTimeToLive:1e4}),te=c6.of((e,{client:n,headers:r,payload:i,rpc:a})=>{let s=t.resolveRequest(n.id,r);if(!a._tag.endsWith(`/initialize`)&&!s){let e=zS(),t=Vi(e.context,Ij);return t&&rM(t,()=>I(Ik({status:r[m9]===void 0?400:404}))),Lf(/* @__PURE__ */ Error(`Mcp-Session-Id does not exist`))}let l=s?.initializePayload??i,u=c.get(n.id),d=s?.protocol??u?.protocol??t.protocolForInternalTag(a._tag);if(!ESe(d.protocolVersion)||d.protocolVersion===`2026-07-28`)return Lf(`Unsupported selected MCP protocol version: ${d.protocolVersion}`);let f=s?.negotiatedProfile??{protocolVersion:d.protocolVersion,clientCapabilities:l.capabilities,clientInfo:l.clientInfo};u!==void 0&&(u.profile=f);let p=o6.of({clientId:n.id,protocolVersion:f.protocolVersion,clientCapabilities:f.clientCapabilities,clientInfo:f.clientInfo,requestMetadata:l._meta});return _p(_p(_p(e,s6,s6.of({clientId:n.id,protocolVersion:f.protocolVersion,clientCapabilities:f.clientCapabilities,clientInfo:f.clientInfo,initializePayload:l,requestMetadata:Bt(i)&&Bt(i._meta)?i._meta:void 0,getClient:mT(ee,new v9({clientId:n.id,profile:f})).pipe(H(({client:e})=>e))})),o6,p),md,t.effectLogLevel(n.id,r,o))}),C=rN.of({...i,send:(e,t)=>{if(t._tag===`Exit`){let r=l.get(e),a=_9(t.requestId),o=r?.get(a);if(r!==void 0&&r.delete(a)&&r.size===0&&l.delete(e),o?.cancelled===!0)return n===`custom`?R:(o.httpPost!==void 0&&o.httpPost.expected--,h9.set(t,t.requestId),i.send(e,t));if(t.exit._tag===`Failure`&&!t.exit.cause.some(e=>e._tag===`Fail`))return i.send(e,{_tag:`Exit`,requestId:t.requestId,exit:{_tag:`Failure`,cause:[{_tag:`Fail`,error:new F3({message:`Internal error`})}]}})}return i.send(e,t)},run:e=>(v=e,i.run((n,r)=>{let i=zS(),a=r,o=s?Vi(i.context,Ij):void 0;switch(o!==void 0&&a._tag!==`Eof`&&rM(o,(e,t)=>I(t.status===200&&t.body._tag===`Uint8Array`&&t.body.contentLength===0?Ik({headers:Qh(t.headers,`content-type`),status:202}):t)),a._tag){case`Request`:{if(o!==void 0&&a.isNotification!==!0){let e=g9.get(o)??{expected:0};e.expected++,g9.set(o,e)}let r=s?Ui(zS().context,Ij).headers:qh(a.headers),u=a.tag===`notifications/cancelled`&&typeof a.payload==`object`&&a.payload!==null&&`requestId`in a.payload&&(typeof a.payload.requestId==`string`||typeof a.payload.requestId==`number`)?l.get(n)?.get(_9(a.payload.requestId)):void 0,p=u===void 0?t.prepareRequest(n,r,a):I(u.prepared);return z(function*(){let u=yield*p,m=c.get(n);s&&m===void 0&&(yield*xd(Ui(i.context,gd),L(()=>d(n))));let h=u.binding,_=u.protocol;if(c.set(n,{protocol:_,profile:u.profile??m?.profile,sessionHeaders:s&&r[m9]!==void 0?qh({[m9]:r[m9]}):m?.sessionHeaders}),a.tag===`invalid/json-rpc-batch`)return yield*f(n,a.id,new M3({message:`JSON-RPC batches are not supported`}));o!==void 0&&h!==void 0&&rM(o,(e,i)=>I(t.resolveRequest(n,r)===void 0?Ik({status:404}):Kk(i,`mcp-protocol-version`,h.protocol.protocolVersion)));let v=t.routeClientRequest(_,a),y=t.clientRpcs.requests.get(v.tag),b=_.clientNotificationRpcs.requests.has(a.tag);if(y&&b&&a.isNotification){if(!h&&_.runtime._tag===`Stateful`){o&&rM(o,()=>I(Ik({status:r[m9]===void 0?400:404})));return}let t=_.payloadCodecs(y).decode(a.payload);return yield*z(function*(){let i=yield*t;if(a.tag===`notifications/cancelled`){let t=yield*_.normalizeCancellation(i),r=_9(t.requestId),a=n;if(s){if(h===void 0)return;let e=Array.from(l).find(([,e])=>e.get(r)?.prepared.binding===h);if(e===void 0)return;a=e[0]}return g(a,t.requestId)?yield*e(a,{_tag:`Interrupt`,requestId:t.requestId}):void 0}let o=S.mapUnsafe.get(y.key),c=o?o.handler(i,{rpc:y,requestId:zM(a.id),client:new PM(n),headers:r}):R;return yield*u.requestContext===void 0?c:_p(c,o6,u.requestContext)}).pipe(rp)}if(!y||b)return a.isNotification?void 0:yield*f(n,a.id,new N3({message:`Method not found: ${a.tag}`}));let x=yield*Uf(_.payloadCodecs(y).decode(a.payload));if(ra(x))return yield*a.isNotification?R:f(n,a.id,new P3({message:`Invalid method parameters`}));if(a.isNotification!==!0){let e=l.get(n)??/* @__PURE__ */ new Map;e.set(_9(a.id),{requestId:zM(a.id),prepared:u,cancelled:!1,httpPost:o===void 0?void 0:g9.get(o)}),l.set(n,e)}let ee=e(n,v);return yield*u.requestContext===void 0?ee:_p(ee,o6,u.requestContext)}).pipe(qf(e=>a.isNotification?R:f(n,a.id,Ht(e,`ProtocolError`)?C6.fromFeature(e):new P3({message:`Invalid request metadata`}))))}case`Ping`:case`Ack`:case`Interrupt`:return e(n,a);case`Eof`:return s||d(n),e(n,a);case`Pong`:case`Exit`:case`Chunk`:case`ClientProtocolError`:case`Defect`:{let e=a._tag===`Exit`?_9(a.requestId):void 0,r=s?t.resolveRequest(n,Ui(zS().context,Ij).headers):void 0,i=(e===void 0?void 0:u.get(e))?.find(e=>s?e.profile===r?.negotiatedProfile:e.clientId===n);if(a._tag===`Exit`&&i===void 0)return R;i!==void 0&&e!==void 0&&p(e,i);let o=i?.clientId??n,l=c.get(o),d=l?.protocol??t.protocols[0],f=i?.profile??l?.profile??{protocolVersion:d.protocolVersion,clientCapabilities:{},clientInfo:{name:`unknown`,version:`unknown`}};return mT(ee,new v9({clientId:o,profile:f})).pipe(V(({write:e})=>e(a)),yp)}}}))});s&&(yield*t.onSessionTerminated(e=>{let t=[];for(let[n,r]of l)for(let{prepared:i,requestId:a}of r.values())i.binding===e&&g(n,a)&&t.push(v(n,{_tag:`Interrupt`,requestId:a}));return Ef(t,{discard:!0})})),r===void 0&&(yield*bp(L(()=>{b.consumers++}),()=>L(()=>{b.consumers--})));let ne=/* @__PURE__ */ new Map;return yield*kC(r?.notifications??x).pipe(V(U(function*(e){let{delivered:n,listChangeRevision:r,notification:i,targetClientId:a,requestContext:l,requestHeaders:u}=e;D6(i)&&(yield*uC(m,{notification:i,targetClientId:a,listChangeRevision:r}));let d=yield*C.clientIds;for(let e of c.keys())d.has(e)||(c.delete(e),t.disconnect(e));let f=u9(i),p=f&&l!==void 0?[l.clientId]:a===void 0?s?c.keys():t.deliveryClientIds():[a],h=[],g=!1;for(let e of p){if(a!==void 0&&e!==a)continue;if(!d.has(e)){t.disconnect(e);continue}if(!C.supportsNotifications)continue;let r=f&&l!==void 0?t.selectProtocol(l.protocolVersion):c.get(e)?.protocol;if(!r)continue;let s=ne.get(e),p=e===(a??l?.clientId);g||=p;let m=p?n:rd();ne.set(e,m);let _=z(function*(){s!==void 0&&(yield*ad(s));let n=yield*r.projectNotification(i);if(n===void 0||i._tag===`Progress`&&r.runtime._tag===`Stateless`&&l?.requestMetadata?.progressToken!==i.progressToken)return;if(i._tag===`LoggingMessage`&&r.runtime._tag===`Stateless`){let t=l?.requestMetadata,n=P(t,`io.modelcontextprotocol/logLevel`)?t[`io.modelcontextprotocol/logLevel`]:void 0;if(l?.clientId!==e||!d9(n)||Q3.literals.indexOf(i.level)<Q3.literals.indexOf(n))return}else if(!t.canDeliver(e,(l?.clientId===e?u:void 0)??c.get(e)?.sessionHeaders??Kh,i,o))return;let a=r.serverNotificationRpcs.requests.get(n.tag);if(!a)return;let d=yield*r.payloadCodecs(a).encode(n.payload);yield*C.send(e,{_tag:`Request`,id:``,tag:n.tag,payload:d,headers:[],isNotification:!0})}).pipe(rp,Sp(L(()=>{fd(m,Ju),ne.get(e)===m&&ne.delete(e)})));h.push(_)}g||(yield*dd(n,void 0)),yield*Ef(h,{concurrency:`unbounded`,discard:!0}).pipe(zp({startImmediately:!0}))})),rp,Np,zp),yield*cle(t.clientRpcs,{spanPrefix:`McpServer`,disableFatalDefects:!0}).pipe(_p(rN,C),_p(c6,te),fp(S))},yp),vSe=(e,t)=>qd(z(function*(){let n=yield*V6;yield*zp(y9(e,n,t))})).pipe(tf(p9.layer)),ySe=e=>{let t=U6(e.protocols);return vSe(e,`http`).pipe(ef(xSe(e)),ef(t),ef(Zce()))},bSe=e=>qd(z(function*(){let t=yield*V6,n=t.protocols.find(e=>e.runtime._tag===`Stateful`);if(n!==void 0)return yield*new Ru(`McpServer.layerHttpRequestScoped does not support the sessionful MCP protocol ${n.protocolVersion}`);let r=yield*p9,{core:i,notificationDelivery:a}=c9.get(r),o=yield*t.installHandlers({core:i,subscribeServerNotifications:Lf(`Subscriptions are disabled for request-scoped MCP servers`),getListChangeRevision:()=>a.listChangeRevision,defaultLogLevel:yield*md,serverInfo:e});yield*bp(L(()=>{a.requestEndpoints++}),()=>L(()=>{a.requestEndpoints--})),yield*b9(e,z(function*(){let{httpEffect:n,protocol:i}=yield*iN().pipe(_p(UM,x9)),a=yield*_C();return yield*y9(e,t,`http`,{notifications:a,handlers:o}).pipe(_p(rN,i),_p(p9,r),zp({startImmediately:!0})),yield*_p(n,l9,a)}))})).pipe(tf(p9.layer),ef(U6(e.protocols))),xSe=e=>Wd(rN)(z(function*(){let{httpEffect:t,protocol:n}=yield*iN().pipe(_p(UM,x9));return yield*b9(e,t),n})),b9=/*#__PURE__*/ U(function*(e,t){let n=yield*V6,r=yield*oM,i=e.allowSessionTermination===!0&&n.protocols.some(e=>e.runtime._tag===`Stateful`),a=I(Ik({status:403})),o=t=>n=>C9(n,e.allowedOrigins)?t(n):a,s=I(Ik({status:405,headers:{allow:i?`POST, DELETE`:`POST`}})),c=o(()=>s);for(let t of[`GET`,`PUT`,`PATCH`,`OPTIONS`])yield*r.add(t,e.path,c);yield*r.add(`DELETE`,e.path,i?o(e=>n.terminateHttpSession(e.headers)):c),yield*r.add(`POST`,e.path,r=>{if(!C9(r,e.allowedOrigins))return I(Ik({status:403}));if(w9(r.headers[`content-type`])[0]!==`application/json`)return I(Ik({status:415}));let i=w9(r.headers.accept);return!i.includes(`application/json`)||!i.includes(`text/event-stream`)?I(Ik({status:406})):z(function*(){let e=yield*Uf(V(r.text,ux(cS))),i=n.admitHttp(r.headers,e);if(i._tag===`Rejected`)return i.response;let a=e=>{let t=e.body._tag===`Uint8Array`&&e.body.body.subarray(0,-1).includes(10);return i.isSubscription||e.body._tag===`Stream`||t?wSe(e,i.isSubscription):e};return i.acknowledge?yield*Yf(H(t,a),()=>I(Ik({status:202}))):yield*V(t,e=>e.body._tag!==`Uint8Array`||e.body.body.length>0?I(a(e)):g9.get(r)?.expected===0?I(Gk(FT,{contentType:`text/event-stream`})):Lf(/* @__PURE__ */ Error(`MCP request ended without writing its response`)))})})}),x9=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ CSe();return UM.of({contentType:e.contentType,includesFraming:!0,codecFor:e.codecFor,makeUnsafe:()=>{let t=e.makeUnsafe();return{decode:t.decode,encode:e=>{let n=t.encode(e);return typeof n==`string`?`${n}\n`:n}}}})})(),SSe=/*#__PURE__*/ cx(/*#__PURE__*/ Hx(`Cause`,{data:/*#__PURE__*/ uoe([/*#__PURE__*/ Hx(`Fail`,{error:/*#__PURE__*/ ooe(I3)})])})),S9=e=>Array.isArray(e)?e.map(S9):!Bt(e)||!P(e,`error`)?e:SSe(e.error)?{...e,error:e.error.data[0].error}:e;function CSe(e){let t=WM(e);return UM.of({...t,makeUnsafe:()=>{let e=t.makeUnsafe(),n=/* @__PURE__ */ new Set;return{decode:e.decode,encode:t=>{if(Bt(t)){let e=h9.get(t);e!==void 0&&(h9.delete(t),n.add(e))}let r=e.encode(t);if(typeof r!=`string`||n.size===0&&!r.includes(`"_tag":"Cause"`))return r;let i=JSON.parse(r);if(n.size>0){let e=e=>!(Bt(e)&&!P(e,`method`)&&(typeof e.id==`string`||typeof e.id==`number`)&&n.delete(e.id));if(Array.isArray(i)){let t=i.filter(e);if(t.length===0)return;i=t}else if(!e(i))return}return JSON.stringify(S9(i))}}}})}const wSe=(e,t)=>{let n=new TextEncoder,r=new TextDecoder,i=e=>n.encode(r.decode(e).trimEnd().split(`
535
- `).map(e=>`data: ${e}\n\n`).join(``)),a={status:e.status,statusText:e.statusText,headers:Qh(e.headers,`content-type`),cookies:e.cookies,contentType:`text/event-stream`};if(e.body._tag===`Stream`){let r=e.body.stream.pipe(BT(i));if(!t)return Gk(r,a);let o=ese(`15 seconds`).pipe(use(1),BT(()=>n.encode(`: keepalive
536
-
537
- `)));return Gk(HT(r,o,{haltStrategy:`left`}),a)}return e.body._tag===`Uint8Array`?Rk(i(e.body.body),a):Kk(e,`content-type`,`text/event-stream`)},C9=(e,t)=>{let n=e.headers.origin;return n===void 0||(t??[]).includes(n)},w9=e=>e===void 0?[]:e.split(`,`).flatMap(e=>{let[t,...n]=e.split(`;`),r=n.map(e=>e.trim().toLowerCase()).find(e=>e.startsWith(`q=`));if(r!==void 0){let e=Number(r.slice(2));if(!Number.isFinite(e)||e<=0||e>1)return[]}return[t.trim().toLowerCase()]}),TSe=()=>{let e=Tk({ignoreTrailingSlash:!0,ignoreDuplicateSlashes:!0,caseSensitive:!0});return{add:(t,n)=>{e.on(`GET`,`/${t}`,n)},find:t=>e.find(`GET`,`/${t}`)}},ESe=e=>e===`2024-11-05`||e===`2025-03-26`||e===`2025-06-18`||e===`2025-11-25`||e===`2026-07-28`,T9=s9,DSe=[s9,mSe,hSe],OSe=cx(FI),kSe=cx(K(FI)),E9=e=>LI(bI(e)),D9=e=>{let t=bI(e),n=LI(t);if(n!==void 0)return{kind:n,many:!1};if(!lv(t)||t.encoding!==void 0)return;let[r,...i]=new Set([...t.elements,...t.rest].map(E9));return r===void 0||i.length>0?void 0:{kind:r,many:!0}},ASe=e=>{let t=e.context?.isOptional===!0,n=bI(e);if(t&&dv(n)&&n.types.length===2){let[e,...t]=n.types.filter(e=>!rv(e)),r=e===void 0||t.length>0?void 0:E9(e);return r===void 0?void 0:{kind:r,many:!1}}let r=D9(n);return r===void 0||t&&r.many?void 0:r},O9=e=>{let t=bI(e.ast),n=D9(t);if(n!==void 0)return{fields:[{name:void 0,...n}],rest:void 0};if(!uv(t)||t.encoding!==void 0)return{fields:[],rest:e};let r=t.propertySignatures.flatMap(({name:e,type:t})=>{let n=ASe(t);return n===void 0?[]:[{name:String(e),...n}]});if(r.length===0)return{fields:r,rest:e};let i=new Set(r.map(({name:e})=>e)),a=t.propertySignatures.filter(({name:e})=>!i.has(e)),{identifier:o,...s}=t.annotations??{};return{fields:r,rest:a.length===0&&t.indexSignatures.length===0?void 0:gx(new zv(a,t.indexSignatures,s))}},jSe=e=>[...tv(e)?e.typeParameters:[],...lv(e)?[...e.elements,...e.rest]:[],...uv(e)?[...e.propertySignatures,...e.indexSignatures].map(({type:e})=>e):[],...dv(e)?e.types:[],...fv(e)?[e.thunk()]:[],...(e.encoding??[]).map(({to:e})=>e)],MSe=e=>{let t=/* @__PURE__ */ new Set,n=[e];for(let e=n.pop();e!==void 0;e=n.pop())if(!t.has(e)){if(t.add(e),II(e))return!0;n.push(...jSe(e))}return!1},NSe=(e,{rest:t})=>[e.input,...e.error,...t===void 0?[]:[t]].some(({ast:e})=>MSe(e)),PSe=(e,t)=>e.fields.flatMap(({name:e,kind:n,many:r})=>{let i=e===void 0?t:P(t,e)?t[e]:void 0;return(r?kSe(i)?i:[]:OSe(i)?[i]:[]).map(t=>({kind:n,field:e,value:t}))}),FSe=cx(q3),k9=(e,t)=>{let n=Ooe(e,{onExcessProperty:t?`error`:`ignore`}),[r,i]=Et(n.schema.$ref)?wb(n.schema.$ref)??[]:[],a=r===`$defs`&&i!==void 0?n.definitions[i]:n.schema;return a===void 0||Object.keys(n.definitions).length===0?a:{...a,$defs:n.definitions}},ISe=e=>{let t=e.map(([e])=>e).filter(e=>!FSe(k9(jS(e.input),!0))).map(({name:e})=>e);if(t.length>0)throw Error(`MCP tool input must be one object with keys, such as a struct: ${t.join(`, `)}`);let n=e.filter(([e,t])=>NSe(e,t)).map(([{name:e}])=>e);if(n.length>0)throw Error(`MCP media must be the success or an array of it, or a top-level field of a struct success, one, optional or a required array: ${n.join(`, `)}`)},LSe=e=>new X3({isError:!0,content:[{type:`text`,text:e}]}),A9=e=>e===void 0?[]:[{type:`text`,text:JSON.stringify(e)}],RSe=({kind:e,field:t,value:n})=>({type:e,data:n.data,mimeType:n.mimeType,...t===void 0?{}:{_meta:{"effect-actions/field":t}}}),zSe=(e,t)=>H(lx(q3)(k9(jS(e.input),!0)),n=>new Y3({name:e.name,description:e.description,inputSchema:n,outputSchema:t,annotations:{...e.mcp.title===void 0?{}:{title:e.mcp.title},...xye(e)},_meta:e.mcp._meta===void 0?void 0:{...e.mcp._meta}})),BSe=U(function*(e,t){let n=yield*p9,r=yield*MI(e),i=yield*up(),a=e=>Jp(e).pipe(Vf(tce(e)),Gf(LSe(`Tool execution failed due to an internal server error.`))),o=e=>Nu(e)?a(e):Ff(e);for(let[e,a]of r){let r=O9(e.success),s=r.fields.length===0?void 0:r,c=s===void 0?jS(e.success):s.rest===void 0?void 0:jS(s.rest),l=c===void 0?void 0:yield*lx(J3)(k9(c,!1)).pipe($f),u=yield*zSe(e,l).pipe($f),d=lx(jS(e.input),NI),f=e=>{let t=fx(jS(e));return e=>$f(t(e))},p=f(e.success),m=f(q(CI(e))),h=t===void 0||e.caller===lI?a:e=>cB(Fde(t,a(e))),g=new Set(s?.fields.map(({name:e})=>e)),_=(e,t)=>{if(s===void 0)return new X3({isError:!1,structuredContent:e,content:A9(e)});let n=PSe(s,t).map(RSe);if(c===void 0)return new X3({isError:!1,content:n});let r=zt(e)?Object.fromEntries(Object.entries(e).filter(([e])=>!g.has(e))):e;return new X3({isError:!1,structuredContent:r,content:[...A9(r),...n]})};yield*n.addTool({tool:u,annotations:Ii(),handle:t=>sie({tool:e.name,parameters:t??{}}).pipe(Vf(()=>d(t??{})),Qf(({message:t})=>new P3({message:new Sye({toolName:e.name,description:t}).message})),V(e=>h(e).pipe(lp({onFailure:e=>H(m(e),e=>new X3({isError:!0,content:A9(e)})),onSuccess:e=>H(p(e),t=>_(t,e))}))),Yf(o),gp(e=>Ji(i,e)))})}}),VSe=(e,t,n=Ud,r)=>{yI(`MCP tool`,e.flatMap(e=>e.actions));let i=e.flatMap(e=>e.actions.map(e=>[e,O9(e.success)]));ISe(i);let a=new Set(i.map(([{name:e}])=>e)),o=z(function*(){let t=(yield*p9).tools.flatMap(({tool:e})=>a.has(e.name)?[e.name]:[]);if(t.length>0)return yield*Lf(/* @__PURE__ */ Error(`Duplicate MCP tool: ${t.join(`, `)}, claimed by an action and a native feature`));yield*BSe(e,r)});return qd(o).pipe(ef(n),ef(t),rf,jI(e))},HSe=/* @__PURE__ */ new Set([`server/discover`,`tools/list`,`notifications/cancelled`]),USe=e=>{let t=new Set(e.filter(({caller:e})=>e===lI).flatMap(({name:e})=>[e,`=?base64?${Xm(e)}?=`]));return e=>{if(t.size===0||e[`mcp-protocol-version`]!==T9.protocolVersion)return!0;let n=e[`mcp-method`];if(n===void 0)return!0;if(HSe.has(n))return!1;if(n!==`tools/call`)return!0;let r=e[`mcp-name`];return r===void 0||!t.has(r)}},WSe=e=>sp(e.json,{onFailure:()=>!0,onSuccess:t=>!P(t,`method`)||t.method===e.headers[`mcp-method`]});function GSe(e,{actions:t,features:n,path:r=`/mcp`,authentication:i,requestScoped:a,allowSubscriptions:o=n!==void 0,...s}){let c=AI(OI(e),t),l=c.flatMap(e=>e.actions);uI(l,i);let u=VSe(c,a===!0?bSe({...s,path:r,protocols:[T9]}):ySe({...s,path:r,protocols:DSe,allowSessionTermination:!0,allowSubscriptions:o}),n,i);if(i===void 0)return u;let d=USe(l),f=xM(H(HI(i),e=>t=>V(Ij,n=>n.method!==`POST`||d(n.headers)?e.http(t,!1):V(WSe(n),n=>e.http(t,n)))));return u.pipe(ef(f.layer))}var KSe=`0.24.0`;const qSe=(e,t)=>Af(()=>zW({key:e,data:t})),JSe=(e,t)=>Af(()=>BW({key:e,data:t})),YSe=async(e,t)=>(await Promise.all([KG(e.authCookies.sessionToken.name,t,e.secret),KG(e.authCookies.dontRememberToken.name,`true`,e.secret)])).map(e=>e.split(`;`)[0]).join(`; `),XSe=(e,t)=>Gp(`OwnerAccount.providerSession`)(function*(n){let r=new Date((yield*of)+6e4),i=yield*bp(U4(()=>e.internalAdapter.createSession(n,!0,{expiresAt:r},!0)),t=>kf(()=>e.internalAdapter.deleteSession(t.token))),a=yield*U4(()=>YSe(e,i.token));return new Headers({origin:t,cookie:a})}),ZSe=PV(G({id:W}));var j9=class e extends F()(`clankerauth/OwnerAccount`){static layer=Wd(e,z(function*(){let{sql:e}=yield*RV,{auth:t,context:n}=yield*a3,{baseURL:r}=yield*Z4,i=yield*KC(1),a=XSe(n,r),o=Gp(`OwnerAccount.find`)(function*(){let t=yield*e`SELECT id FROM user LIMIT 1`;if(t.length)return(yield*ZSe(t[0])).id});return{find:o,create:Gp(`OwnerAccount.create`)(function*(e){if(yield*o())return yield*B(PB.of());let{headers:n}=yield*U4(()=>t.api.signUpEmail({body:{name:`Owner`,email:e.email.trim(),password:e.password},returnHeaders:!0}),{refused:V4,conflict:PB.of});return n.getSetCookie()},e=>i.withPermit(e)),caller:(e,t,n)=>({userId:e,email:t,writable:n,providerHeaders:a(e)})}}))},M9=class extends F()(`clankerauth/ResponseCookies`){};const QSe=H(j9,e=>({setupStatus:()=>e.find().pipe(H(e=>({required:!e}))),setupOwner:Gp(`Administration.setup`)(function*(t){let n=yield*e.create(t);return yield*(yield*M9).add(n),{created:!0}})}));var N9=class extends vo(`Unauthorized`){constructor(e={}){super({message:e.message??`Authentication required`}),Object.defineProperty(this,"cause",{value:e.cause})}},P9=class extends AS()(`ProviderUnavailable`,{operation:W},{httpApiStatus:503}){constructor(e){super({operation:e.operation}),Object.defineProperty(this,"cause",{value:e.cause})}},F9=class extends vo(`InsufficientScope`){},$Se=class extends AS()(`ConfigurationError`,{message:W}){};const I9=ao(1),L9=(e,t)=>dp(n=>UO(e).execute(t).pipe(_p(xN,{...Vi(n,xN),redirect:`error`}),Qf(e=>new P9({operation:`http.request`,cause:e})))),eCe=G({keys:K(G({kty:W,crv:vx(W),x:vx(W),kid:vx(W),alg:vx(W),use:vx(W),key_ops:vx(K(W))}))}),tCe=G({sub:rS,client_id:rS,scope:W,iat:Jx,exp:Jx}),nCe=G({list:W}),rCe=dde.pipe(Ax({exp:Jx})),R9=e=>new N9({cause:e}),z9=io(5),B9=Gp(`Verifier.make`)(function*(e){let t=yield*IO,n=yield*Rf({try:()=>({jwks:new URL(`${e.issuer}/jwks`).href,keyList:new URL(`/api/keyList`,e.issuer).href}),catch:()=>new $Se({message:`Invalid issuer URL`})}),r=Gp(`Verifier.jwks`)(function*(){let e=yield*L9(t,nO(n.jwks));return e.status===200?QF({keys:(yield*_O(eCe)(e).pipe(Qf(e=>new P9({operation:`jwks.decode`,cause:e})))).keys.map(({key_ops:e,...t})=>e?{...t,key_ops:[...e]}:t)}):yield*new P9({operation:`jwks.fetch`,cause:{status:e.status}})},yp),i=yield*Dp(r(),e=>Yu(e)?`1 minute`:z9),a=Gp(`Verifier.signingKey`)(function*(e){let t=yield*i;return yield*Af({try:()=>t({alg:`EdDSA`,kid:e}),catch:R9})}),o=Gp(`Verifier.signed`)(function*(t,n){let r=yield*Rf({try:()=>rI(t),catch:R9});if(r.alg!==`EdDSA`||r.kid===void 0)return yield*R9();let i=yield*a(r.kid),o=yield*of,{payload:s}=yield*Af({try:()=>UF(t,i,{issuer:e.issuer,audience:e.resource,algorithms:[`EdDSA`],typ:n,currentDate:new Date(o)}),catch:R9});return s}),s=Gp(`Verifier.jwt`)(function*(e){let t=yield*o(e,`at+jwt`);if(t.cnf!==void 0)return yield*R9();let n=yield*lx(tCe)(t).pipe(Qf(R9));return{subject:n.sub,scopes:n.scope.split(` `).filter(Boolean),actor:{kind:`client`,clientId:n.client_id},expiresAt:n.exp*1e3}}),c=Gp(`Verifier.keyList`)(function*(){let r=rO(n.keyList).pipe(mO({resource:e.resource})),i=yield*L9(t,r);if(i.status!==200)return yield*new P9({operation:`key-list.fetch`,cause:{status:i.status}});let{list:a}=yield*_O(nCe)(i).pipe(Qf(e=>new P9({operation:`key-list.decode`,cause:e}))),s=e=>new P9({operation:`key-list.verify`,cause:e}),c=yield*o(a,aI).pipe(Jf(`Unauthorized`,e=>B(s(e)))),l=yield*lx(rCe)(c).pipe(Qf(s));return{readAt:yield*of,expiresAt:l.exp*1e3,entries:new Map(l.keys.map(e=>[e.id,e.sealed]))}},yp),l=yield*PE(!1),u=yield*Dp(c().pipe(ip({duration:`3 seconds`,orElse:()=>B(new P9({operation:`key-list.timeout`}))}),ep(({operation:e})=>V(LE(l,!0),t=>t?R:qp(`clankerauth key list reads are failing; a held list decides until it expires`,{operation:e}))),Hf(()=>V(LE(l,!1),e=>e?die(`clankerauth key list reads have recovered`):R))),z9),d=yield*PE(void 0),f=z(function*(){let e=yield*Uf(u);ia(e)&&(yield*IE(d,e.success));let t=yield*FE(d);return t!==void 0&&t.expiresAt>(yield*of)?t:yield*ra(e)?e.failure:new P9({operation:`key-list.expired`})}),p=Gp(`Verifier.apiKey`)(function*(t){let n=n=>Af({try:()=>mde(t,e.resource,n.entries),catch:R9}),r=yield*of,i=yield*FE(d),a=i!==void 0&&r-i.readAt<oo(I9)&&i.expiresAt>r?i:yield*f,o=(yield*n(a))??(yield*V(f,e=>e===a?I(void 0):n(e)));return o===void 0||o.expiresAt!==null&&o.expiresAt<=(yield*of)?yield*R9():{subject:o.ownerId,scopes:o.scopes,actor:{kind:`key`,keyId:o.keyId},expiresAt:o.expiresAt??void 0}});return{verifyToken:Gp(`Verifier.verifyToken`)(function*(t){let n=yield*t.startsWith(`clankerauth_`)?e.apiKeys===!1?B(R9()):p(t):s(t),r=e.requiredScopes?.find(e=>!n.scopes.includes(e));return r===void 0?n:yield*new F9({scope:r,actor:n.actor})})}}),iCe=Gp(`AdministrationResource.make`)(function*(){let{auth:e}=yield*a3,{baseURL:t}=yield*Z4,n=`${t}/api/auth`,r=HB(t);return{protectedResource:{resource:r,authorizationServers:[n],scopesSupported:[UB.read,UB.write,...$4],scopesRequired:[UB.read,UB.write]},verifier:yield*B9({issuer:n,resource:r,apiKeys:!1}).pipe(fp(SN.pipe(ef(Vd(bN,(t,n)=>{let r=new Request(t,n);return r.headers.set(I4,`127.0.0.1`),e.handler(r)})))))}});zI(`whoami`,{description:`The verified subject, issuer and scopes behind this request's credential.`,readOnly:!0,caller:class extends F()(`@clankerauth/CurrentPrincipal`){},success:G({subject:rS,issuer:rS,scopes:K(W)})});const V9=(e,t)=>{let n=`Requires ${e}.`;return t.kind===`client`?new hI({message:n,scopes:[e]}):new hI({message:n})},aCe=(e,t)=>t===void 0||e.scopes.includes(t)?void 0:V9(t,e.actor),H9=e=>e instanceof N9?new pI({message:e.message}):e instanceof F9?V9(e.scope,e.actor):e,U9=(e,t)=>Qf(e.verifyToken(Bh(t)),H9);Gp(`Resource.layer`)(function*(e,{scopes:t,required:n},r){let i=new URL(`/`,r.publicUrl).href,a={resource:i,authorizationServers:[r.issuer],scopesSupported:t,scopesRequired:[n]},o=r.discovery===!1?void 0:a,s=yield*B9({issuer:r.issuer,resource:i,requiredScopes:[n],apiKeys:r.apiKeys}),c=e=>ip(e,{duration:`5 seconds`,orElse:()=>B(new P9({operation:`verify.timeout`}))}),l={verifyToken:e=>c(s.verifyToken(e))},u=Gp(`Resource.principal`)(function*(e,t){let n=dB(e);if(pi(n))return yield*new pI({message:`A bearer token is required.`});let r=yield*U9(l,n.value),i=aCe(r,t);return i===void 0?r:yield*i}),d=Gp(`Resource.admit`)(function*(t,n){let r=yield*Uf(u(t,n));if(ia(r))return{ok:!0,principal:r.success};let i=tA(vB(r.failure,{authentication:e,protectedResource:o,authorization:t}));return{ok:!1,refusal:{status:i.status,headers:Object.fromEntries(i.headers),body:yield*kf(()=>i.text())}}});return{resource:i,issuer:r.issuer,protectedResource:o,verifier:l,admit:d,watch:(e,t)=>Np(z(function*(){let n=yield*u(e,t),r=yield*of,i=Math.max(0,(n.expiresAt??1/0)-r);return n.actor.kind===`key`?yield*ap(Math.min(i,oo(I9))):(yield*ap(i),yield*H9(new N9))}))}});const oCe=e=>DB(e,H(a3,e=>()=>z(function*(){let t=yield*Ij,n=new Headers(t.headers),r=yield*U4(()=>e.auth.api.getSession({headers:n}),{unavailable:H4});return r?{providerHeaders:I(n),userId:r.user.id,email:r.user.email,writable:!0}:yield*new pI({message:`Owner session required`})}))),sCe=PV(G({id:W,email:W})),cCe=e=>DB(VB,z(function*(){let{sql:t}=yield*RV,n=yield*j9,r=()=>new pI({message:`Owner authorization required`});return i=>z(function*(){let a=yield*U9(e.verifier,i).pipe(Jf(`ProviderUnavailable`,()=>B(new kB({message:`Request could not be completed`}))));if(a.actor.kind!==`client`)return yield*r();let o=a.scopes.includes(UB.write);if(!o&&!a.scopes.includes(UB.read))return yield*new hI({message:`Insufficient scope`,scopes:[UB.read]});let s=yield*t`SELECT u.id, u.email FROM user u
538
- JOIN oauthClient c ON c.clientId = ${a.actor.clientId}
539
- WHERE u.id = ${a.subject} AND c.disabled IS NOT 1`;if(!s[0])return yield*r();let c=yield*sCe(s[0]);return n.caller(c.id,c.email,o)})}),{protectedResource:e.protectedResource}),lCe=e=>e.readOnly?R:V(RB,({writable:e})=>e?R:B(new hI({message:`This action requires the ${UB.write} scope`,scopes:[UB.write]}))),uCe=xM()(e=>z(function*(){let t=[],n=yield*_p(e,M9,{add:e=>L(()=>t.push(...e))});return t.length?Xk(n,hh(t)):n}));function dCe(e){return Yd(z(function*(){let{context:t}=yield*a3,n=yield*f3,r=yield*d3,i=yield*QSe,a=yield*s3,o=VI(CV,{listClients:n.list,createClient:n.create,updateClient:n.update,deleteClient:n.delete,revokeClient:n.revoke,blockClient:n.block,rotateClientSecret:n.rotate,setClientAccess:r.setAccess,getResource:r.get,putResource:r.put,deleteResource:r.delete,listApiKeys:a.list,createApiKey:a.create,updateApiKey:a.update,deleteApiKey:a.delete},{authorize:lCe}),s=VI(xV,{setupStatus:i.setupStatus,setupOwner:i.setupOwner,keyList:({resource:e})=>a.keyList(e)}),c=yield*iCe(),l=zB(t.authCookies.sessionToken.name),u=TV(l),d=Zd(Yz(u,o).pipe(ef(oCe(l))),fM(`GET`,`/openapi.json`,Hk(ER(u.api))),Yz(u,s).pipe(ef(uCe.layer))),f=Zd(GSe(o,{name:`clankerauth-admin`,version:KSe,allowedOrigins:e,instructions:`Owner administration. Listing needs ${UB.read} or ${UB.write}; every other action changes authorization policy and needs ${UB.write}. Create and rotate actions return secrets once.`,authentication:VB}),Yz(EV,o)).pipe(ef(cCe(c)));return Zd(d,f)}))}const W9=`clankerauth_forward`,G9=(e,t)=>Hk({error:t},{status:e}),fCe=e=>Yd(z(function*(){let t=yield*Z4,{auth:n,context:r}=yield*a3,i=yield*i3,a=n=>{if(!URL.canParse(n))return;let r=new URL(n);return!r.username&&!r.password&&q4(r,t.allowInsecureHttp)&&K4(r.hostname,e)?r:void 0},o=Bh(t.secret),s=new URL(`/login`,t.baseURL),c={domain:e,path:`/`,httpOnly:!0,secure:t.baseURL.startsWith(`https:`),sameSite:`lax`},l=r.authCookies.sessionToken.name,u=(e,n)=>{let r=new URL(e,t.baseURL);return r.searchParams.set(`rd`,n.href),r},d=e=>U4(()=>n.api.getSession({headers:new Headers({cookie:e})}),{unavailable:H4}),f=z(function*(){let e=yield*Ij,{headers:r}=e,s=r[`x-forwarded-proto`],c=r[`x-forwarded-host`],f=s&&c?a(`${s}://${c}${r[`x-forwarded-uri`]??`/`}`):void 0;if(!f)return G9(400,`invalid_forwarded_request`);let p=new URL(e.url,t.baseURL).searchParams.get(`resource`),m=p&&(yield*i.application(p));if(!m)return G9(403,`unknown_resource`);let h=e.cookies[W9],g=h?yield*Xre(JSe(o,h)):di(),_=mi(g)?yield*d(`${l}=${g.value}`):null;if(!_)return r[`sec-fetch-mode`]===`navigate`?Lk(u(`/forward-auth/continue`,f)):G9(401,`unauthenticated`);let v=Math.floor((yield*of)/1e3),{token:y}=yield*U4(()=>n.api.signDocument({body:{typ:`at+jwt`,payload:{sub:_.user.id,aud:m.identifier,client_id:`forward-auth`,scope:m.scopes.join(` `),iat:v,exp:v+900}}}));return Ik({status:204,headers:{authorization:`Bearer ${y}`}})}),p=z(function*(){let e=yield*Ij,n=new URL(e.url,t.baseURL).searchParams.get(`rd`),r=n?a(n):void 0;if(!r)return G9(400,`invalid_return_url`);let i=e.cookies[l];if(!(i&&(yield*d(e.headers.cookie??``)))||!i)return Lk(u(`/login`,u(`/forward-auth/continue`,r)));let s=yield*qSe(o,i);return yield*Lk(r).pipe(Yk(W9,s,c))}),m=z(function*(){let e=yield*Ij,r=new URL(e.url,t.baseURL).searchParams.get(`rd`),i=r&&a(r)||s,{headers:o}=yield*U4(()=>n.api.signOut({headers:new Headers({cookie:e.headers.cookie??``}),returnHeaders:!0}),{refused:V4,unavailable:H4});return yield*Xk(Lk(i),hh(o.getSetCookie())).pipe(Yk(W9,``,{...c,maxAge:0}))});return Zd(fM(`GET`,`/forward-auth`,qf(f,G4)),fM(`GET`,`/forward-auth/continue`,qf(p,G4)),fM(`GET`,`/forward-auth/logout`,qf(m,G4)))})),pCe=/* @__PURE__ */ new Set([`/sign-in/email`,`/sign-out`,`/get-session`,`/change-password`,`/jwks`,`/oauth2/register`,`/oauth2/authorize`,`/oauth2/token`,`/oauth2/consent`,`/oauth2/continue`,`/oauth2/public-client`,`/oauth2/introspect`,`/oauth2/revoke`,`/.well-known/oauth-authorization-server`]),mCe=/* @__PURE__ */ new Set([`/.well-known/oauth-protected-resource`,`/jwks`,`/oauth2/register`,`/oauth2/token`,`/oauth2/revoke`,`/oauth2/introspect`,`/.well-known/oauth-authorization-server`,`/.well-known/oauth-authorization-server/api/auth`]),hCe=/* @__PURE__ */ new Set([`/jwks`,`/.well-known/oauth-protected-resource`,`/.well-known/oauth-authorization-server`,`/.well-known/oauth-authorization-server/api/auth`]),gCe=new Set(bye),_Ce=/^\/assets\/[a-zA-Z0-9_.-]+\.(js|css|woff2)$/,K9=(e,t=200)=>Hk(e,{status:t}),q9=K9({error:`Not found`},404),J9=[`Authorization`,`Content-Type`,`Accept`,`Mcp-Protocol-Version`,`Mcp-Method`,`Mcp-Name`],vCe=new Set(J9.map(e=>e.toLowerCase())),yCe=(e=Je(new URL(`dist/`,import.meta.resolve(`@clankerauth/web/package.json`))))=>Yd(z(function*(){let t=yield*Z4,{auth:n}=yield*a3,{sql:r}=yield*RV,i=yield*i3,a=[.../* @__PURE__ */ new Set([t.baseURL,...t.mcpAllowedOrigins])],o=z(function*(){let e=yield*Ij,r=new URL(e.url,t.baseURL),a=r.pathname.replace(/^\/api\/auth/,``);if(!pCe.has(a)&&a!==`/.well-known/oauth-authorization-server/api/auth`)return q9;if(a===`/oauth2/authorize`){let t=e.method===`GET`?r.searchParams.getAll(`resource`):new URLSearchParams(yield*e.text).getAll(`resource`);if(t.length!==1||!(yield*i.get(t[0]??``)))return K9({error:`invalid_target`,error_description:Q4},400)}let o=e.method===`GET`||e.method===`HEAD`?void 0:yield*e.arrayBuffer,s=yield*U4(()=>n.handler(new Request(r,{method:e.method,headers:e.headers,body:o})));return aA(s)}).pipe(qf(G4)),s=dM(n=>z(function*(){let r=yield*fA;yield*n.add(`*`,`/*`,z(function*(){let n=yield*Ij;if(n.method!==`GET`&&n.method!==`HEAD`)return q9;let i=new URL(n.url,t.baseURL).pathname,a=gCe.has(i)?`index.html`:_Ce.test(i)?i.slice(1):void 0;return a?yield*r.fileResponse(Ke(e,a),{contentType:a.endsWith(`.js`)?`text/javascript`:a.endsWith(`.css`)?`text/css`:a.endsWith(`.woff2`)?`font/woff2`:`text/html; charset=utf-8`}).pipe(qf(()=>I(q9))):q9}))})),c=xM(e=>Xve({baseURL:t.baseURL,trustProxy:t.trustProxy})(z(function*(){let n=yield*Ij,r=new URL(n.url,t.baseURL).pathname,i=r.replace(/^\/api\/auth/,``),o=r===`/mcp`,s=n.headers.origin,c=s!==void 0&&a.includes(s),l=mCe.has(i),u;if(o&&s!==void 0&&!c)u=K9({error:`Invalid origin`},403);else if(o&&n.method===`OPTIONS`){let e=n.headers[`access-control-request-method`],t=(n.headers[`access-control-request-headers`]??``).split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);u=c&&e===`POST`&&t.every(e=>vCe.has(e))?Ik({status:204}):K9({error:`MCP preflight rejected`},403)}else u=l&&n.method===`OPTIONS`?Ik({status:204}):yield*e;l&&(u=u.pipe(Jk({"access-control-allow-origin":`*`,"access-control-allow-methods":`GET, POST, OPTIONS`,"access-control-allow-headers":`Authorization, Content-Type, DPoP`,"access-control-expose-headers":`WWW-Authenticate, DPoP-Nonce`}),qk(`access-control-allow-credentials`))),o&&(u=u.pipe(Kk(`vary`,u.headers.vary?`${u.headers.vary}, Origin`:`Origin`),qk(`access-control-allow-credentials`)),c&&s!==void 0&&(u=u.pipe(Jk({"access-control-allow-origin":s,"access-control-expose-headers":`WWW-Authenticate, Mcp-Protocol-Version`})),n.method===`OPTIONS`&&u.status>=200&&u.status<300&&(u=u.pipe(Jk({"access-control-allow-methods":`POST`,"access-control-allow-headers":J9.join(`, `)})))));let d=n.method!==`GET`||u.status!==200?`no-store`:r.startsWith(`/assets/`)?`public, max-age=31536000, immutable`:hCe.has(i)?`public, max-age=300`:`no-store`;return u=u.pipe(Jk({"cache-control":d,"referrer-policy":`no-referrer`,"x-content-type-options":`nosniff`,"x-frame-options":`DENY`,"content-security-policy":`default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'self'`})),t.baseURL.startsWith(`https:`)&&(u=u.pipe(Kk(`strict-transport-security`,`max-age=31536000`))),u})),{global:!0}),l=xM(e=>jp(e));return Zd(dCe(a),t.cookieDomain===void 0?Ud:fCe(t.cookieDomain),fM(`GET`,`/healthz`,r`SELECT 1`.pipe(Gf(K9({status:`ok`})),qf(G4))),fM(`*`,`/api/auth/*`,o),fM(`*`,`/.well-known/*`,o),s).pipe(ef(l.layer),ef(c),ef(sue))})),bCe=Gp(`Http.nodeHandler`)(function*(e){let t=yield*mM(yCe(e));return yield*aue(t,{scope:yield*vp})}),xCe=(e,t)=>{let n=Yd(H(Z4,({database:e})=>RV.layer(e)));return Zd(j9.layer,f3.layer,s3.layer).pipe(tf(d3.layer),tf(a3.layer),tf(i3.layer),tf(n),tf(Qd(e,t)))},Y9=`credentials.json`,X9=G({email:W,password:W,secret:W,clientId:yx(W),clientSecret:yx(W)}),SCe=lx(sS(X9)),CCe=hx(X9),Z9=(e,t)=>V(YT,n=>n.writeFileString(Ge(e,Y9),`${JSON.stringify(CCe(t),null,2)}\n`,{mode:384})),wCe=Gp(`Dev.identity`)(function*(e,t){let n={email:`owner@example.internal`,password:He(24).toString(`base64url`),secret:He(32).toString(`hex`)};if(!t)return n;let r=yield*YT,i=Ge(e,Y9);return(yield*r.exists(i))?yield*SCe(yield*r.readFileString(i)):(yield*Z9(e,n),n)}),Q9=e=>Error(`Disposable issuer provisioning failed`,{cause:e}),$9=Gp(`Dev.ownerSession`)(function*(e,t,n,r){if(t===void 0)return yield*B(/* @__PURE__ */ Error(`A forward-auth session needs a cookieDomain; the issuer serves none`));let i=yield*IO,a=yield*i.execute(rO(`${e}/api/auth/sign-in/email`,{headers:{origin:e}}).pipe(mO(n)));if(yield*a.text,a.status!==200)return yield*B(/* @__PURE__ */ Error(`Owner sign-in failed with HTTP ${a.status}`));let o=new URL(`/`,r).href,s=yield*i.get(`${e}/forward-auth/continue?rd=${encodeURIComponent(o)}`,{headers:{cookie:kh(a.cookies)}});yield*s.text;let c=Eh(a.cookies,s.cookies);return{cookie:kh(c),cookies:Object.entries(Ah(c)).map(([e,t])=>({name:e,value:t}))}}),TCe=Zd(vN,SN,Vd(xN,{redirect:`manual`})),ECe=U(function*(e){let t=yield*YT,n=Je(new URL(`./web/`,import.meta.url));if(!(yield*t.exists(Ge(n,`index.html`))))return yield*B(/* @__PURE__ */ Error(`The @gjermundgaraba/clankerauth-dev installation is missing its bundled dashboard assets`));let r=e.dataDir,i=r===void 0?yield*t.makeTempDirectoryScoped({prefix:`clankerauth-disposable-`}):yield*Gf(t.makeDirectory(Ke(r),{recursive:!0,mode:448}),Ke(r)),a=yield*Kve(e.port??0,`127.0.0.1`),{port:o}=a,s=e.cookieDomain===void 0?`http://127.0.0.1:${o}`:`http://clankerauth.${e.cookieDomain}:${o}`,c=yield*wCe(i,r!==void 0),l=yield*X4({baseURL:s,secret:Rh(c.secret),database:Ge(i,`issuer.sqlite`),host:`127.0.0.1`,port:o,mcpAllowedOrigins:[],trustProxy:!1,allowInsecureHttp:e.cookieDomain!==void 0,cookieDomain:e.cookieDomain}),u=yield*zd(xCe(Vd(Z4,l),F4.layerWith(e.cimdTransport))),d=Wi(u,j9),f=yield*Sd(yield*vp),p=yield*bCe(n).pipe(fp(u),_p(gd,f));yield*a.serve((t,n)=>{try{e.onRequest?.({method:t.method??`GET`,url:new URL(t.url??`/`,`http://127.0.0.1:${t.socket.localPort}`)}),p(t,n)}catch{n.headersSent?n.destroy():n.writeHead(500).end(`Request failed`)}});let m={email:c.email,password:c.password},h=Wi(u,f3),g=Wi(u,d3),_=Wi(u,s3),v=e=>jp(yp(z(function*(){let t=yield*d.find();return t===void 0?yield*Lf(/* @__PURE__ */ Error(`Owner setup failed`)):yield*e(t).pipe(_p(RB,d.caller(t,m.email,!0)))}))).pipe(Qf(Q9));(yield*d.find())||(yield*d.create(m).pipe(Qf(Q9))),yield*v(()=>Df(e.resources,e=>g.put(e),{discard:!0}));let y=yield*v(()=>z(function*(){if(c.clientId!==void 0&&c.clientSecret!==void 0){let{clients:e}=yield*h.list();if(e.some(e=>e.client_id===c.clientId))return{client_id:c.clientId,client_secret:c.clientSecret}}return yield*h.create({client_name:e.client.name,redirect_uris:[e.client.redirect],resources:e.client.resources,token_endpoint_auth_method:`client_secret_basic`,application_type:`native`})})),b=y.client_secret;if(b===void 0)return yield*B(/* @__PURE__ */ Error(`Disposable issuer did not return client credentials`));r!==void 0&&(yield*Z9(i,{...c,clientId:y.client_id,clientSecret:b}));let x=e.cookieDomain===void 0?void 0:s;return{details:{issuer:`${s}/api/auth`,clientId:y.client_id,clientSecret:b,owner:m,url:s,port:o,directory:i},apiKey:e=>v(()=>H(_.create({name:e.name??`development`,permissions:e.permissions,expiresAt:null}),e=>e.key)),ownerSession:e=>$9(s,x,m,e),ownerToken:Gp(`Dev.ownerToken`)(function*(e){let{cookie:t}=yield*$9(s,x,m,e.appOrigin),n=yield*IO,r=new URL(e.appOrigin),i=new URL(`/forward-auth`,s);i.searchParams.set(`resource`,e.resource);let a=yield*n.get(i,{headers:{cookie:t,"x-forwarded-proto":r.protocol.slice(0,-1),"x-forwarded-host":r.host,"x-forwarded-uri":`/`}});yield*a.text;let o=a.headers.authorization;return a.status!==204||o===void 0?yield*B(/* @__PURE__ */ Error(`Forward auth issued no token (HTTP ${a.status})`)):o.replace(/^Bearer /iu,``)})}});async function DCe(e){let t=vd(),n=e=>Hp(e.pipe(_p(gd,t),fp(TCe)),{onFiberStart:BS(t)}),r=Up(Ep(wd(t,Ju)));try{let t=await n(ECe(e));return{...t.details,apiKey:e=>n(t.apiKey(e)),ownerSession:e=>n(t.ownerSession(e)),ownerToken:e=>n(t.ownerToken(e)),close:()=>Hp(r)}}catch(e){throw await Hp(r),e}}export{DCe as startDisposableIssuer,DV as t};
1
+ export{t as startDisposableIssuer}from"./src-B4z2ekdT.mjs";