@gjermundgaraba/clankerauth-dev 0.23.1 → 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 uee}from"./access-B09peN6Y.mjs";import*as Be from"node:crypto";import{randomBytes as Ve,scrypt as dee}from"node:crypto";import*as He from"node:path";import Ue,{dirname as fee,join as We,resolve as Ge}from"node:path";import*as Ke from"node:url";import{fileURLToPath as qe}from"node:url";import Je,*as Ye from"node:os";import*as Xe from"node:child_process";import{Duplex as Ze,PassThrough as Qe,Readable as $e,pipeline as pee}from"node:stream";import{IncomingMessage as et,createServer as mee}from"node:http";import{isIP as tt}from"node:net";import*as nt from"node:fs";import rt,{mkdirSync as hee}from"node:fs";import{request as gee}from"node:https";import*as _ee from"node:stream/promises";import{pipeline as vee}from"node:stream/promises";import*as it from"node:zlib";import*as at from"node:readline";import{DatabaseSync as ot}from"node:sqlite";import st from"node:fs/promises";import{lookup as ct}from"node:dns/promises";const lt=(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}}},ut={pipe(){return lt(this,arguments)}},dt=/*#__PURE__*/ function(){function e(){}return e.prototype=ut,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,ft=e=>()=>e,pt=/*#__PURE__*/ ft(!0),mt=/*#__PURE__*/ ft(!1),ht=/*#__PURE__*/ ft(void 0),gt=ht;function _t(e,...t){return lt(e,t)}function yee(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 vt(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 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!==n&&t.set(i,i),i}}const bt=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},xt=/*#__PURE__*/ new WeakSet,St=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let Ct=0;const wt=()=>{Ct++};function Tt(e){return typeof e==`string`}function Et(e){return typeof e==`number`}function Dt(e){return typeof e==`boolean`}function Ot(e){return typeof e==`symbol`}function kt(e){return Tt(e)||Et(e)||Ot(e)}function At(e){return typeof e==`function`}function jt(e){return e===void 0}function Mt(e){return e!==void 0}function Nt(e){return e!==null}function Pt(e){return e==null}function Ft(e){return e!=null}function It(e){return!1}function Lt(e){return!0}function Rt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function zt(e){return Rt(e)}function Bt(e){return typeof e==`object`&&!!e||At(e)}const P=/*#__PURE__*/ M(2,(e,t)=>Bt(e)&&t in e),Vt=/*#__PURE__*/ M(2,(e,t)=>P(e,`_tag`)&&e._tag===t);function bee(e){return e instanceof Error}function xee(e){return P(e,Symbol.iterator)||Tt(e)}const Ht=`~effect/Hash`,Ut=e=>{switch(typeof e){case`number`:return Yt(e);case`bigint`:return Xt(e.toString(10));case`string`:return Xt(e);case`function`:case`object`:if(e===null)break;if(e instanceof Date)return Number.isNaN(e.getTime())?Xt(`Invalid Date`):Xt(e.toISOString());if(e instanceof RegExp)return Xt(e.toString());{if(xt.has(e))return Wt(e);let t=an.get(e);if(t!==void 0)return t;if(on.has(e))return wt(),Xt(`[Circular]`);on.add(e);let n=Ct,r;try{r=`~effect/Hash`in e?e[Ht]():typeof e==`function`?Wt(e):e instanceof DataView?$t(St(e)):Array.isArray(e)||ArrayBuffer.isView(e)?$t(e):e instanceof Map?en(e):e instanceof Set?nn(e):Zt(e)}finally{on.delete(e)}return n===Ct&&an.set(e,r),r}}return qt(Gt(Xt(String(e))))},Wt=e=>(rn.has(e)||rn.set(e,qt(Math.random()*4294967296|0)),rn.get(e)),Gt=e=>(e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^e>>>16),Kt=/*#__PURE__*/ M(2,(e,t)=>Gt(Math.imul(e,2654435761)+Math.imul(t,2246822507))),qt=e=>e&3221225471|e>>>1&1073741824,Jt=/*#__PURE__*/ new DataView(/*#__PURE__*/ new ArrayBuffer(8)),Yt=e=>{let t=e|0;return t===e?qt(t):(Jt.setFloat64(0,e===e?e:NaN),qt(Kt(Jt.getInt32(0),Jt.getInt32(4))))},Xt=e=>{let t=5381,n=e.length;for(;n;)t=t*33^e.charCodeAt(--n);return qt(t)},See=(e,t)=>{let n=12289;for(let r of t)n^=Kt(Ut(r),Ut(e[r]));return qt(n)},Zt=e=>See(e,bt(e)),Qt=(e,t)=>n=>{let r=e;for(let e of n)r^=t(e);return qt(r)},$t=e=>{let t=6151;for(let n of e)t=Kt(t,Ut(n));return qt(t)},en=/*#__PURE__*/ Qt(/*#__PURE__*/ Xt(`Map`),([e,t])=>Kt(Ut(e),Ut(t))),tn=/*#__PURE__*/ Xt(`Set`),nn=/*#__PURE__*/ Qt(tn,e=>Kt(tn,Ut(e))),rn=/*#__PURE__*/ new WeakMap,an=/*#__PURE__*/ new WeakMap,on=/*#__PURE__*/ new WeakSet,sn=`~effect/Equal`;function cn(){return arguments.length===1?e=>ln(e,arguments[0]):ln(arguments[0],arguments[1])}function ln(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`||xt.has(e)||xt.has(t)?!1:un(e,t):!1}function un(e,t){let n=fn.length;for(let r=n;r-->0;)if(fn[r]===e&&pn[r]===t)return!0;if(n)return dn(e,t);let r=mn.get(e);r||mn.set(e,r=/* @__PURE__ */ new WeakMap);let i=r.get(t);return i===void 0&&r.set(t,i=dn(e,t)),i}function dn(e,t){fn.push(e),pn.push(t);try{return Cee(e,t)}finally{fn.pop(),pn.pop()}}const fn=[],pn=[],mn=/*#__PURE__*/ new WeakMap;function Cee(e,t){if(Ut(e)!==Ut(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=_n(e);if(n!==_n(t)||typeof e==`function`&&!n)return!1;if(n)return e[sn](t);if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:wee(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?hn(St(e),St(t)):hn(e,t)}return e instanceof Map?!(t instanceof Map)||e.size!==t.size?!1:gn(e,t,Eee,Dee):e instanceof Set?!(t instanceof Set)||e.size!==t.size?!1:gn(e,t,Ut,ln):Tee(e,t)}function wee(e,t){for(let n=0;n<e.length;n++)if(!ln(e[n],t[n]))return!1;return!0}function hn(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 Tee(e,t){let n=bt(e),r=bt(t);if(n.size!==r.size)return!1;for(let i of n)if(!r.has(i)||!ln(e[i],t[i]))return!1;return!0}function gn(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 Eee=e=>Ut(e[0]),Dee=(e,t)=>ln(e[0],t[0])&&ln(e[1],t[1]),_n=e=>P(e,sn),vn=/*#__PURE__*/ Symbol.for(`~effect/Redactable`),Oee=e=>P(e,vn);function yn(e){return Oee(e)?bn(e):e}function bn(e){return e[vn](globalThis[`~effect/Fiber/currentFiber`]?.context??Cn)}const xn=`~effect/Fiber/currentFiber`,Sn=/*#__PURE__*/ new Map,Cn={"~effect/Context":{},base:Sn,depth:0,mapUnsafe:Sn,pipe(){return lt(this,arguments)}};function wn(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 kee;r.add(e);let l;if(vn in e)l=c(bn(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=Aee(e);else if(!t?.ignoreToString&&P(e,`toString`)&&typeof e.toString==`function`&&e.toString!==Object.prototype.toString&&e.toString!==Array.prototype.toString){let t=Dn(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=>`${Tn(t)}:${c(On(e,t),n)}`).join(`,`)}}`;l=o(e,r)}else{let r=`{\n${t.map(t=>`${a(n+1)}${Tn(t)}: ${c(On(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 kee=`[Circular]`;function Tn(e){return typeof e==`string`?JSON.stringify(e):String(e)}function En(e){return e.map(e=>`[${Tn(e)}]`).join(``)}function Aee(e){try{return e.toISOString()}catch{return`Invalid Date`}}function Dn(e){try{let t=e.toString();return typeof t==`string`?t:String(t)}catch{return`[toString threw]`}}function On(e,t){try{return e[t]}catch{return`[property access threw]`}}function kn(e,t){let n=[];return JSON.stringify(e,function(e,t){let r=Object.getOwnPropertyDescriptor(this,e)?.value,i=P(r,vn)?yn(r):yn(t);if(typeof i==`bigint`)return wn(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),!jee(a)||Mee(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:yn(n)}});return n.push(o),o},t?.space)??`null`}function jee(e){for(let t of Object.getOwnPropertyNames(e))if(Object.getOwnPropertyDescriptor(e,t)?.get!==void 0)return!0;return!1}function Mee(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 An=/*#__PURE__*/ Symbol.for(`nodejs.util.inspect.custom`),jn=e=>{try{return e=yn(e),P(e,`toJSON`)&&At(e.toJSON)&&e.toJSON.length===0?e.toJSON():Array.isArray(e)?e.map(jn):e}catch{return`[toJSON threw]`}},Nee=(e,t=2)=>{if(typeof e==`string`)return e;try{return typeof e==`object`?kn(e,{space:t}):wn(e,{space:t})}catch{return String(e)}},Mn={toJSON(){return jn(this)},[An](){return this.toJSON()},toString(){return wn(this.toJSON())}};var Nn=class{[An](){return this.toJSON()}toString(){return wn(this.toJSON())}};const Pee=/*#__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})(),Pn=()=>Error.stackTraceLimit,Fn=e=>{Pee&&(Error.stackTraceLimit=e)};var In=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 Ln=/*#__PURE__*/ (()=>{let e=`~effect/Utils/internal`,t={[e]:e=>e()},n={[e]:e=>{try{return e()}finally{}}},r=Pn();if(r===0)return n[e];Fn(2);let i=t[e](()=>/* @__PURE__ */ Error());return Fn(r),i.stack?.includes(e)===!0?t[e]:n[e]})();function Rn(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function zn(e,t){for(let n of Reflect.ownKeys(t))Object.prototype.propertyIsEnumerable.call(t,n)&&Rn(e,n,t[n])}const Bn=`~effect/Effect`,Vn=`~effect/Exit`,Hn={_A:N,_E:N,_R:N},Un=`${Bn}/identifier`,Wn=`${Bn}/args`,Gn=`${Bn}/evaluate`,Kn=`${Bn}/successCont`,qn=`${Bn}/failureCont`,Jn=`${Bn}/ensureCont`,Yn=/*#__PURE__*/ Symbol.for(`effect/Effect/Yield`),Xn={pipe(){return lt(this,arguments)},toJSON(){return{...this}},toString(){return wn(this.toJSON(),{ignoreToString:!0,space:2})},[An](){return this.toJSON()}},Fee={[Bn]:Hn,...Xn,[Symbol.iterator](){return new In(this)},toJSON(){return{_id:`Effect`,op:this[Un],...Wn in this?{args:this[Wn]}:void 0}}},Zn=e=>P(e,Bn),Qn=e=>P(e,Vn),$n=`~effect/Cause`,er=`~effect/Cause/Reason`,tr=e=>P(e,$n),Iee=e=>P(e,er);var nr=class{constructor(e){this[$n]=$n,this.reasons=e}pipe(){return lt(this,arguments)}toJSON(){return{_id:`Cause`,failures:this.reasons.map(e=>e.toJSON())}}toString(){return`Cause(${wn(this.reasons)})`}[An](){return this.toJSON()}[sn](e){return tr(e)&&this.reasons.length===e.reasons.length&&this.reasons.every((t,n)=>cn(t,e.reasons[n]))}[Ht](){return $t(this.reasons)}};const rr=/*#__PURE__*/ new WeakMap;var ir=class{[er];annotations;_tag;constructor(e,t,n){if(this[er]=er,this._tag=e,t!==ar&&typeof n==`object`&&n&&t.size>0){let e=rr.get(n);e&&(t=new Map([...e,...t])),rr.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 lt(this,arguments)}toString(){return wn(this)}[An](){return this.toString()}};const ar=/*#__PURE__*/ new Map;var or=class extends ir{constructor(e,t=ar){super(`Fail`,t,e),this.error=e}toString(){return`Fail(${wn(this.error)})`}toJSON(){return{_tag:`Fail`,error:this.error}}[sn](e){return pr(e)&&cn(this.error,e.error)&&cn(this.annotations,e.annotations)}[Ht](){return Kt(Xt(this._tag))(Kt(Ut(this.error))(Ut(this.annotations)))}};const sr=e=>new nr(e),Lee=(e,t)=>{let n=/* @__PURE__ */ new Map,r=[];for(let i of e.concat(t)){let e=Ut(i),t=n.get(e);if(t===void 0)n.set(e,[i]);else if(t.some(e=>cn(e,i)))continue;else t.push(i);r.push(i)}return r},cr=/*#__PURE__*/ M(2,(e,t)=>{if(e.reasons.length===0)return t;if(t.reasons.length===0)return e;let n=new nr(Lee(e.reasons,t.reasons));return cn(e,n)?e:n}),Ree=/*#__PURE__*/ new nr([]),lr=e=>new nr([new or(e)]);var ur=class extends ir{constructor(e,t=ar){super(`Die`,t,e),this.defect=e}toString(){return`Die(${wn(this.defect)})`}toJSON(){return{_tag:`Die`,defect:this.defect}}[sn](e){return mr(e)&&cn(this.defect,e.defect)&&cn(this.annotations,e.annotations)}[Ht](){return Kt(Xt(this._tag))(Kt(Ut(this.defect))(Ut(this.annotations)))}};const dr=e=>new nr([new ur(e)]),fr=/*#__PURE__*/ M(e=>tr(e[0]),(e,t,n)=>t.mapUnsafe.size===0?e:new nr(e.reasons.map(e=>e.annotate(t,n)))),pr=e=>e._tag===`Fail`,mr=e=>e._tag===`Die`,hr=e=>e._tag===`Interrupt`;function zee(e){return wr(`Effect.evaluate: Not implemented`)}const gr=e=>({...Fee,[Un]:e.op,[Gn]:e[Gn]??zee,[Kn]:e[Kn],[qn]:e[qn],[Jn]:e[Jn]}),_r=e=>{let t=gr(e),n=function(e){this[Wn]=e};return n.prototype=t,function(e){return new n(e)}},vr=e=>{let t={[Vn]:Vn,_tag:e.op,get[e.prop](){return this[Wn]},...gr(e),toString(){return`${e.op}(${wn(this[Wn])})`},toJSON(){return{_id:`Exit`,_tag:e.op,[e.prop]:this[Wn]}},[sn](e){return Qn(e)&&e._tag===this._tag&&cn(this[Wn],e[Wn])},[Ht](){return Kt(Xt(e.op),Ut(this[Wn]))}},n=function(e){this[Wn]=e};return n.prototype=t,function(e){return new n(e)}},yr=/*#__PURE__*/ vr({op:`Success`,prop:`value`,[Gn](e){let t=e.getCont(Kn);return t?t[Kn](this[Wn],e,this):e.yieldWith(this)}}),br={key:`effect/Cause/StackTrace`},xr={key:`effect/Cause/InterruptorStackTrace`},Sr=/*#__PURE__*/ vr({op:`Failure`,prop:`cause`,[Gn](e){let t=this[Wn],n=!1;e.cache.stackFrame&&(t=fr(t,{mapUnsafe:/* @__PURE__ */ new Map([[br.key,e.cache.stackFrame]])}),n=!0);let r=e.getCont(qn),i=e._interruptedCause;if(i&&e.interruptible){let a=!1;for(;r&&e.interruptible;)a||=Un in r,r=e.getCont(qn);a&&(t=sr(t.reasons.filter(e=>e._tag!==`Fail`))),t=cr(t,i),n=!0}return r?r[qn](t,e,n?void 0:this):e.yieldWith(n?Sr(t):this)}}),Cr=e=>Sr(lr(e)),wr=e=>Sr(dr(e)),Tr=/*#__PURE__*/ _r({op:`WithFiber`,[Gn](e){return this[Wn](e)}}),Er=/*#__PURE__*/ function(){class e extends globalThis.Error{}let t=/*#__PURE__*/ gr({op:`YieldableError`,[Gn](){return Cr(this)}});return delete t.toString,Object.assign(e.prototype,t),e}(),Dr=/*#__PURE__*/ function(){let e=/*#__PURE__*/ Symbol.for(`effect/Data/Error/plainArgs`);return class extends Er{constructor(t){super(t?.message,t?.cause?{cause:t.cause}:void 0),t&&(zn(this,t),Object.defineProperty(this,e,{value:t,enumerable:!1}))}toJSON(){return{...this[e],...this}}}}(),Or=e=>{class t extends Dr{_tag=e}return t.prototype.name=e,t},kr=e=>P(e,`~effect/Cause/NoSuchElementError`),Ar=`~effect/Cause/Done`,jr=e=>P(e,Ar),Mr={[Ar]:Ar,_tag:`Done`,value:void 0},Nr=e=>e===void 0?Mr:{[Ar]:Ar,_tag:`Done`,value:e},Pr=/*#__PURE__*/ Cr(Mr),Fr=e=>e===void 0?Pr:Cr(Nr(e)),Ir=e=>gr({op:e.label,[Gn]:e.evaluate}),Lr=e=>(t,n)=>t===n||e(t,n),Rr=(e,t)=>e===t,zr=()=>Rr;function Br(e){return Lr((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 Vr(e){return Lr((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 Hr=`~effect/Option`,Ur={[Hr]:{_A:e=>e},...Xn,[Symbol.iterator](){return new In(this)}},Wr=/*#__PURE__*/ Object.defineProperty(/*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(Ur),{_tag:`Some`,_op:`Some`,[sn](e){return qr(e)&&Yr(e)&&cn(this.value,e.value)},[Ht](){return Kt(Ut(this._tag))(Ut(this.value))},toString(){return`some(${wn(this.value)})`},toJSON(){return{_id:`Option`,_tag:this._tag,value:jn(this.value)}}}),"valueOrUndefined",{get(){return this.value}}),Gr=/*#__PURE__*/ Ut(`None`),Kr=/*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(Ur),{_tag:`None`,_op:`None`,valueOrUndefined:void 0,[sn](e){return qr(e)&&Jr(e)},[Ht](){return Gr},toString(){return`none()`},toJSON(){return{_id:`Option`,_tag:this._tag}}}),qr=e=>P(e,Hr),Jr=e=>e._tag===`None`,Yr=e=>e._tag===`Some`,Xr=/*#__PURE__*/ Object.create(Kr),Zr=function(e){this.value=e};Zr.prototype=Wr;const Qr=e=>new Zr(e),$r=`~effect/Result`,ei={[$r]:{
4
- /* v8 ignore next 2 */
5
- _A:e=>e,_E:e=>e},...Xn,[Symbol.iterator](){return new In(this)}},Bee=/*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(ei),{_tag:`Success`,_op:`Success`,[sn](e){return ti(e)&&ri(e)&&cn(this.success,e.success)},[Ht](){return Kt(Ut(this._tag))(Ut(this.success))},toString(){return`success(${wn(this.success)})`},toJSON(){return{_id:`Result`,_tag:this._tag,value:jn(this.success)}}}),Vee=/*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(ei),{_tag:`Failure`,_op:`Failure`,[sn](e){return ti(e)&&ni(e)&&cn(this.failure,e.failure)},[Ht](){return Kt(Ut(this._tag))(Ut(this.failure))},toString(){return`failure(${wn(this.failure)})`},toJSON(){return{_id:`Result`,_tag:this._tag,failure:jn(this.failure)}}}),ti=e=>P(e,$r),ni=e=>e._tag===`Failure`,ri=e=>e._tag===`Success`,ii=function(e){this.failure=e};ii.prototype=Vee;const Hee=e=>new ii(e),ai=function(e){this.success=e};ai.prototype=Bee;const Uee=e=>new ai(e);function oi(e){return(t,n)=>t===n?0:e(t,n)}const Wee=/*#__PURE__*/ oi((e,t)=>e<t?-1:1),si=/*#__PURE__*/ oi((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),Gee=/*#__PURE__*/ M(2,(e,t)=>oi((n,r)=>e(t(n),t(r)))),Kee=e=>M(2,(t,n)=>e(t,n)===-1),ci=e=>M(2,(t,n)=>e(t,n)===1),qee=e=>M(2,(t,n)=>e(t,n)!==1),li=e=>M(2,(t,n)=>e(t,n)!==-1),ui=()=>Xr,di=Qr,fi=Jr,pi=Yr,mi=/*#__PURE__*/ M(2,(e,{onNone:t,onSome:n})=>fi(e)?t():n(e.value)),hi=/*#__PURE__*/ M(2,(e,t)=>fi(e)?t():e.value),gi=e=>e==null?ui():di(e),_i=e=>e===void 0?ui():di(e),vi=/*#__PURE__*/ hi(ht),yi=e=>(...t)=>{try{return di(e(...t))}catch{return ui()}},bi=/*#__PURE__*/ M(2,(e,t)=>fi(e)?ui():di(t(e.value))),xi=/*#__PURE__*/ M(2,(e,t)=>fi(e)?ui():t(e.value)),Jee=/*#__PURE__*/ M(2,(e,t)=>fi(e)?ui():t(e.value)?di(e.value):ui()),Si=`~effect/Context/Service`,F=function(){function e(){}let t=e;Object.setPrototypeOf(t,Yee);let n=(e,n)=>(t.key=e,n?.defaultValue&&(t[wi]=wi,t.defaultValue=n.defaultValue),n?.make&&(t.make=n.make),n?.fiberCached&&Ci.add(e),t);return arguments.length>0?n(arguments[0],arguments[1]):n},Yee={[Si]:Si,.../*#__PURE__*/ Ir({label:`Service`,evaluate(e){return yr(Ui(e.context,this))}}),toJSON(){return{_id:`Service`,key:this.key}},of(e){return e},context(e){return Li(this,e)},use(e){return Tr(t=>e(Ui(t.context,this)))},useSync(e){return Tr(t=>yr(e(Ui(t.context,this))))}},Ci=/*#__PURE__*/ new Set,wi=`~effect/Context/Reference`,Ti=`~effect/Context`,Ei=(e,t,n,r)=>{let i=Object.create(Xee);return i.cacheRoot=e??i,i.base=t,i.overlay=n,i.depth=r,i._flat=void 0,i.baseHits=0,i},Di=(e,t)=>{t&&(Di(e,t.parent),e.set(t.key,t.value))},Oi=e=>{if(e._flat)return e._flat;if(!e.overlay)return e._flat=e.base;let t=new Map(e.base);return Di(t,e.overlay),e._flat=t},ki=(e,t)=>{let n=new Map(e.mapUnsafe);return t(n),Mi(n)},Ai=/*#__PURE__*/ Symbol(),ji=(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)?Ai:(n.overlay&&++n.baseHits>=n.base.size&&n.baseHits>=8&&(n.base=Oi(n),n.overlay=void 0,n.depth=0),r)},Mi=e=>Ei(void 0,e,void 0,0),Xee={get mapUnsafe(){return Oi(this)},...Xn,[Ti]:{_Services:e=>e},toJSON(){return{_id:`Context`,services:Array.from(this.mapUnsafe).map(([e,t])=>({key:e,value:t}))}},[sn](e){if(!Ni(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)||!cn(r,n.get(e)))return!1;return!0},[Ht](){return Yt(this.mapUnsafe.size)}},Zee=(e,t)=>e.cacheRoot===t.cacheRoot,Ni=e=>P(e,Ti),Qee=e=>P(e,Si),Pi=e=>!!e[wi],Fi=()=>Ii,Ii=/*#__PURE__*/ Mi(/*#__PURE__*/ new Map),Li=(e,t)=>Mi(/* @__PURE__ */ new Map([[e.key,t]])),Ri=/*#__PURE__*/ M(3,(e,t,n)=>$ee(e,t.key,n)),$ee=(e,t,n)=>{let r=e,i=Ci.has(t)?void 0:r.cacheRoot;if(r.depth>=8){let e=new Map(r._flat??r.base);return r._flat||Di(e,r.overlay),e.set(t,n),Ei(i,e,void 0,0)}return Ei(i,r.base,{key:t,value:n,parent:r.overlay},r.depth+1)},zi=/*#__PURE__*/ M(3,(e,t,n)=>{let r=ji(e,t.key);return r===Ai?Pi(t)?Gi(t):n():r}),Bi=/*#__PURE__*/ M(2,(e,t)=>Vi(e,t.key)),Vi=(e,t)=>{let n=ji(e,t);return n===Ai?void 0:n},Hi=/*#__PURE__*/ M(2,(e,t)=>{let n=ji(e,t.key);if(n===Ai){if(Pi(t))return Gi(t);throw ete(t)}return n}),Ui=Hi,Wi=`~effect/Context/defaultValue`,Gi=e=>Wi in e?e[Wi]:e[Wi]=e.defaultValue(),ete=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},Ki=/*#__PURE__*/ M(2,(e,t)=>{let n=ji(e,t.key);return n===Ai?Pi(t)?di(Gi(t)):ui():di(n)}),qi=/*#__PURE__*/ M(2,(e,t)=>e.mapUnsafe.size===0?t:t.mapUnsafe.size===0?e:ki(e,e=>t.mapUnsafe.forEach((t,n)=>e.set(n,t)))),tte=(...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 Mi(t)},Ji=(...e)=>t=>ki(t,t=>{for(let n=0;n<e.length;n++)t.delete(e[n].key)}),Yi=F,Xi=e=>e.length>0,Zi=e=>e>0?Math.floor(e):0,Qi=Uee,$i=Hee,ea=e=>{if(At(e))try{return Qi(e())}catch(e){return $i(e)}try{return Qi(e.try())}catch(t){return $i(e.catch(t))}},ta=ti,na=ni,ra=ri,ia=/*#__PURE__*/ M(2,(e,t)=>na(e)?$i(t(e.failure)):e),aa=/*#__PURE__*/ M(2,(e,t)=>ra(e)?Qi(t(e.success)):e),oa=/*#__PURE__*/ M(2,(e,{onFailure:t,onSuccess:n})=>na(e)?t(e.failure):n(e.success)),sa=/*#__PURE__*/ (/* @__PURE__ */ M(2,(e,t)=>na(e)?t(e.failure):e.success))(ht),ca=Br,la=e=>{let t=e[Symbol.iterator]().next();if(t.done)throw Error(`headUnsafe: empty iterable`);return t.value},ua=()=>({}),da=e=>Object.keys(e).length===0,fa=/*#__PURE__*/ M(2,(e,t)=>Object.hasOwn(e,t)),pa=/*#__PURE__*/ M(2,(e,t)=>{let n={...e};for(let r of ha(e))Rn(n,r,t(e[r],r));return n}),ma=/*#__PURE__*/ M(2,(e,t)=>{let n=ua();for(let r of ha(e))t(e[r],r)&&Rn(n,r,e[r]);return n}),ha=e=>Object.keys(e),ga=/*#__PURE__*/ M(3,(e,t,n)=>({...e,[t]:n})),_a=e=>M(2,(t,n)=>{for(let r of ha(t))if(!fa(n,r)||!e(t[r],n[r]))return!1;return!0}),va=e=>{let t=_a(e);return(e,n)=>t(e,n)&&t(n,e)},ya=globalThis.Array,ba=e=>ya.isArray(e)?e:ya.from(e),xa=e=>ya.isArray(e)?e:[e],Sa=/*#__PURE__*/ M(2,(e,t)=>[...e,t]);ya.isArray;const Ca=Xi,wa=Xi;function Ta(e){let t=Number(e);return String(t)===e&&Number.isInteger(t)&&t>=0&&t<2**32-1}const Ea=(e,t)=>Math.min(Zi(e),t),Da=/*#__PURE__*/ M(2,(e,t)=>{let n=ba(e);return n.slice(0,Ea(t,n.length))}),Oa=e=>ya.from(e).reverse(),ka=(e,t)=>{let n=Ut(t),r=e.get(n);if(r===void 0)return e.set(n,[t]),!0;for(let e of r)if(cn(e,t))return!1;return r.push(t),!0},Aa=()=>[],ja=e=>[e],Ma=/*#__PURE__*/ M(2,(e,t)=>e.map(t)),Na=Vr,nte=e=>{let t=ba(e);if(t.length<2)return[...t];let n=/* @__PURE__ */ new Map,r=[];for(let e of t)ka(n,e)&&r.push(e);return r},Pa=`~effect/Duration`,Fa=/*#__PURE__*/ BigInt(0),Ia=/*#__PURE__*/ BigInt(1),rte=/*#__PURE__*/ BigInt(2),ite=/*#__PURE__*/ BigInt(10),La=/*#__PURE__*/ BigInt(24),Ra=/*#__PURE__*/ BigInt(60),za=/*#__PURE__*/ BigInt(1e3),Ba=/*#__PURE__*/ BigInt(1e6),Va=e=>BigInt(Math.sign(e)*Math.round(Math.abs(e))),Ha=e=>Va(e*1e6),Ua=e=>Ja(Number.isFinite(e)?Va(e):e),Wa=(e,t)=>{let n=e.indexOf(`.`);if(n===-1)return BigInt(e)*t;let r=e[0]===`-`,i=e.slice(n+1),a=ite**BigInt(i.length),o=(BigInt(e.slice(+!!r,n))*a+BigInt(i))*t;return ate(r?-o:o,a)},ate=(e,t)=>{let n=e<Fa?-e:e,r=n/t+(n%t*rte>=t?Ia:Fa);return e<Fa?-r:r},ote=/^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/,Ga=e=>{switch(typeof e){case`number`:return to(e);case`bigint`:return eo(e);case`string`:{if(e===`Infinity`)return Qa;if(e===`-Infinity`)return $a;let t=ote.exec(e);if(!t)break;let[n,r,i]=t;if(i===`nano`||i===`nanos`)return eo(Wa(r,Ia));if(i===`micro`||i===`micros`)return eo(Wa(r,za));let a=Number(r);switch(i){case`milli`:case`millis`:return to(a);case`second`:case`seconds`:return no(a);case`minute`:case`minutes`:return ro(a);case`hour`:case`hours`:return pte(a);case`day`:case`days`:return mte(a);case`week`:case`weeks`:return hte(a)}break}case`object`:{if(e===null)break;if(Pa in e)return e;if(Array.isArray(e))return e.length!==2||!e.every(Et)?Ka(e):Number.isNaN(e[0])||Number.isNaN(e[1])?Za:e[0]===-1/0||e[1]===-1/0?$a:e[0]===1/0||e[1]===1/0?Qa:Ua(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?Ja(n):Ua(n*1e6+(t.microseconds??0)*1e3+(t.nanoseconds??0))}}return Ka(e)},Ka=e=>{throw Error(`Invalid Input: ${e}`)},qa={_tag:`Millis`,millis:0},ste={_tag:`Infinity`},cte={_tag:`NegativeInfinity`},lte={[Pa]:Pa,[Ht](){switch(this.value._tag){case`Millis`:{let e=this.value.millis*1e6;return Number.isFinite(e)?Ut(Va(e)):Yt(this.value.millis)}case`Nanos`:return Ut(this.value.nanos);default:return Zt(this.value)}},[sn](e){return ute(e)&&yte(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`}}},[An](){return this.toJSON()},pipe(){return lt(this,arguments)}},Ja=e=>{let t=Object.create(lte);return t.value=typeof e==`number`?isNaN(e)||e===0||Object.is(e,-0)?qa:Number.isFinite(e)?Number.isInteger(e)?{_tag:`Millis`,millis:e}:{_tag:`Nanos`,nanos:Ha(e)}:e>0?ste:cte:e===Fa?qa:{_tag:`Nanos`,nanos:e},t},ute=e=>P(e,Pa),Ya=e=>e.value._tag!==`Infinity`&&e.value._tag!==`NegativeInfinity`,Xa=e=>{switch(e.value._tag){case`Millis`:return e.value.millis===0;case`Nanos`:return e.value.nanos===Fa;case`Infinity`:case`NegativeInfinity`:return!1}},dte=e=>{switch(e.value._tag){case`Millis`:return e.value.millis<0;case`Nanos`:return e.value.nanos<Fa;case`NegativeInfinity`:return!0;case`Infinity`:return!1}},fte=e=>{switch(e.value._tag){case`Infinity`:case`NegativeInfinity`:return Qa;case`Millis`:return e.value.millis<0?Ja(-e.value.millis):e;case`Nanos`:return e.value.nanos<Fa?Ja(-e.value.nanos):e}},Za=/*#__PURE__*/ Ja(0),Qa=/*#__PURE__*/ Ja(1/0),$a=/*#__PURE__*/ Ja(-1/0),eo=e=>Ja(e),to=e=>Ja(e),no=e=>Ja(e*1e3),ro=e=>Ja(e*6e4),pte=e=>Ja(e*36e5),mte=e=>Ja(e*864e5),hte=e=>Ja(e*6048e5),io=e=>oo(Ga(e),{onMillis:N,onNanos:e=>Number(e)/1e6,onInfinity:()=>1/0,onNegativeInfinity:()=>-1/0}),gte=e=>oo(Ga(e),{onMillis:e=>e/1e3,onNanos:e=>Number(e)/1e9,onInfinity:()=>1/0,onNegativeInfinity:()=>-1/0}),ao=e=>{let t=Ga(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 Ha(t.value.millis)}},oo=/*#__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)()}}),_te=/*#__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(ao(e),t.value.nanos):n.onNanos(e.value.nanos,ao(t))),vte=(e,t)=>_te(e,t,{onMillis:(e,t)=>e===t,onNanos:(e,t)=>e===t,onInfinity:(e,t)=>e.value._tag===t.value._tag}),yte=/*#__PURE__*/ M(2,(e,t)=>vte(e,t)),bte=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=ao(e),n=t<Fa,r=n?-t:t,i=r/Ba,a=i/za,o=a/Ra,s=o/Ra,c=s/La,l=n?-1:1;return{days:l*Number(c),hours:l*Number(s%La),minutes:l*Number(o%Ra),seconds:l*Number(a%Ra),millis:l*Number(i%za),nanos:l*Number(r%Ba)}},so=e=>{if(e.value._tag===`Infinity`)return`Infinity`;if(e.value._tag===`NegativeInfinity`)return`-Infinity`;if(Xa(e))return`0`;if(dte(e))return`-`+so(fte(e));let t=bte(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(` `)},co=/*#__PURE__*/ Yi(`effect/Scheduler`,{fiberCached:!0,defaultValue:()=>new fo}),lo=e=>{let t=!1;return Promise.resolve().then(()=>{t||e()}),()=>{t=!0}},xte=`setImmediate`in globalThis?e=>{let t=globalThis.setImmediate(e);return()=>globalThis.clearImmediate(t)}:e=>{let t=setTimeout(e,0);return()=>clearTimeout(t)},uo=e=>{try{return xte(e)}catch{return lo(e)}};var Ste=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}},fo=class{executionMode;setImmediate;constructor(e=`async`,t){this.executionMode=e,this.setImmediate=t??(e===`sync`?lo:uo)}shouldYield(e){return e.currentOpCount>=e.cache.maxOpsBeforeYield}makeDispatcher(){return new Cte(this.setImmediate)}},Cte=class{tasks=/*#__PURE__*/ new Ste;running=void 0;setImmediate;constructor(e=uo){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 wte=/*#__PURE__*/ Yi(`effect/Scheduler/MaxOpsBeforeYield`,{fiberCached:!0,defaultValue:()=>2048}),Tte=/*#__PURE__*/ Yi(`effect/Scheduler/PreventSchedulerYield`,{fiberCached:!0,defaultValue:()=>!1}),po=class extends dt{constructor(e){super(),e&&zn(this,e)}},Ete=e=>class extends po{_tag=e},mo=()=>new Proxy({},{get(e,t,n){return t===`$is`?Vt:t===`$match`?Dte:e=>({...e,_tag:t})}});function Dte(){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 ho=Dr,go=Or,_o=`~effect/encoding/EncodingError`;var vo=class extends (/*#__PURE__*/ go(`EncodingError`)){[_o]=_o};const yo=e=>{switch(e){case 16:return kte();case 32:return Ate();default:{let t=``;for(let n=e>>>3;n>0;n--)t+=Ote();return t}}},bo=/*#__PURE__*/ Uint8Array.from(`0123456789abcdef`,e=>e.charCodeAt(0)),xo=()=>Math.random()*4294967296>>>0,Ote=()=>{let e=xo();return String.fromCharCode(bo[e>>>28],bo[e>>>24&15],bo[e>>>20&15],bo[e>>>16&15],bo[e>>>12&15],bo[e>>>8&15],bo[e>>>4&15],bo[e&15])},kte=()=>{let e=xo(),t=xo();return String.fromCharCode(bo[e>>>28],bo[e>>>24&15],bo[e>>>20&15],bo[e>>>16&15],bo[e>>>12&15],bo[e>>>8&15],bo[e>>>4&15],bo[e&15],bo[t>>>28],bo[t>>>24&15],bo[t>>>20&15],bo[t>>>16&15],bo[t>>>12&15],bo[t>>>8&15],bo[t>>>4&15],bo[t&15])},Ate=()=>{let e=xo(),t=xo(),n=xo(),r=xo();return String.fromCharCode(bo[e>>>28],bo[e>>>24&15],bo[e>>>20&15],bo[e>>>16&15],bo[e>>>12&15],bo[e>>>8&15],bo[e>>>4&15],bo[e&15],bo[t>>>28],bo[t>>>24&15],bo[t>>>20&15],bo[t>>>16&15],bo[t>>>12&15],bo[t>>>8&15],bo[t>>>4&15],bo[t&15],bo[n>>>28],bo[n>>>24&15],bo[n>>>20&15],bo[n>>>16&15],bo[n>>>12&15],bo[n>>>8&15],bo[n>>>4&15],bo[n&15],bo[r>>>28],bo[r>>>24&15],bo[r>>>20&15],bo[r>>>16&15],bo[r>>>12&15],bo[r>>>8&15],bo[r>>>4&15],bo[r&15])},So=`effect/Tracer/ParentSpan`;var Co=class extends (/*#__PURE__*/ F()(So,{fiberCached:!0})){};const jte=e=>e,wo=e=>({_tag:`ExternalSpan`,spanId:e.spanId,traceId:e.traceId,sampled:e.sampled??!0,annotations:e.annotations??Fi()}),To=/*#__PURE__*/ Yi(`effect/Tracer/DisablePropagation`,{defaultValue:mt}),Mte=/*#__PURE__*/ Yi(`effect/Tracer/CurrentTraceLevel`,{defaultValue:()=>`Info`}),Nte=/*#__PURE__*/ Yi(`effect/Tracer/MinimumTraceLevel`,{defaultValue:()=>`All`}),Eo=`effect/Tracer`,Do=/*#__PURE__*/ Yi(Eo,{fiberCached:!0,defaultValue:()=>Oo}),Oo=/*#__PURE__*/ jte({span:e=>new Pte(e)});var Pte=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??=vi(this.parent)?.traceId??yo(32)}get spanId(){return this._spanId??=yo(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 Fte=/*#__PURE__*/ Yi(`effect/ErrorReporter/CurrentErrorReporters`,{defaultValue:()=>/* @__PURE__ */ new Set}),ko=/*#__PURE__*/ Yi(`effect/References/CurrentStackFrame`,{fiberCached:!0,defaultValue:ht}),Ite=/*#__PURE__*/ Yi(`effect/References/TracerEnabled`,{fiberCached:!0,defaultValue:pt}),Ao=/*#__PURE__*/ Yi(`effect/References/TracerTimingEnabled`,{defaultValue:pt}),Lte=/*#__PURE__*/ Yi(`effect/References/TracerSpanAnnotations`,{defaultValue:()=>({})}),Rte=/*#__PURE__*/ Yi(`effect/References/TracerSpanLinks`,{defaultValue:()=>[]}),jo=/*#__PURE__*/ Yi(`effect/References/CurrentLogAnnotations`,{defaultValue:()=>({})}),Mo=/*#__PURE__*/ Yi(`effect/References/CurrentLogLevel`,{fiberCached:!0,defaultValue:()=>`Info`}),No=/*#__PURE__*/ Yi(`effect/References/MinimumLogLevel`,{fiberCached:!0,defaultValue:()=>`Info`}),Po=/*#__PURE__*/ Yi(`effect/References/CurrentLogSpans`,{defaultValue:()=>[]}),Fo=e=>{if(e?.captureStackTrace===!1||e?.captureStackTrace!==void 0&&typeof e.captureStackTrace!=`boolean`)return e;let t=Pn();if(t===0&&e?.captureStackTrace!==!0)return{...e,captureStackTrace:!1};Fn(3);let n=/* @__PURE__ */ Error();return Fn(t),{...e,captureStackTrace:Lo(()=>n.stack)}},Io=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}},Lo=/*#__PURE__*/ Io(3);var Ro=class extends ir{constructor(e,t=ar){super(`Interrupt`,t,`Interrupted`),this.fiberId=e}toString(){return`Interrupt(${this.fiberId})`}toJSON(){return{_tag:`Interrupt`,fiberId:this.fiberId}}[sn](e){return hr(e)&&this.fiberId===e.fiberId&&this.annotations===e.annotations}[Ht](){return Kt(Xt(`${this._tag}:${this.fiberId}`))(Wt(this.annotations))}};const zo=e=>new Ro(e),Bo=e=>new nr([new Ro(e)]),Vo=e=>{let t=e.reasons.find(pr);return t?Qi(t):$i(e)},Ho=e=>{for(let t=0;t<e.reasons.length;t++){let n=e.reasons[t];if(n._tag===`Fail`)return Qi(n.error)}return $i(e)},Uo=e=>e.reasons.some(mr),Wo=e=>{let t=e.reasons.find(mr);return t?Qi(t.defect):$i(e)},Go=e=>e.reasons.some(hr),Ko=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?Qi(t):$i(e)},qo=e=>{let t=Ko(e);return na(t)?Jo:t.success},Jo=/*#__PURE__*/ new Set,Yo=e=>e.reasons.length>0&&e.reasons.every(hr),Xo=e=>Mi(e.annotations),Zo=/*#__PURE__*/ M(2,(e,t)=>{let n=!1,r=e.reasons.map(e=>pr(e)?(n=!0,new or(t(e.error),e.annotations)):e);return n?sr(r):e}),Qo=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},$o=(e,t)=>{let n=[],r=[];if(e.reasons.length===0)return n;let i=Pn();i!==0&&Fn(1);try{for(let i of e.reasons)i._tag===`Interrupt`?r.push(i):n.push(es(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=as(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(es(i,r[0].annotations,t))}}finally{i!==0&&Fn(i)}return n},es=(e,t,n)=>{let r=typeof e,i;if(e&&r===`object`){if(i=new globalThis.Error(ts(e),{cause:e.cause?es(e.cause):void 0}),typeof e.name==`string`&&(i.name=e.name),typeof e.stack==`string`)i.stack=rs(e.stack,i,t);else{let e=`${i.name}: ${i.message}`;i.stack=t?is(e,t):e}n?.includeCauseInStack&&(i.stack=cs(i));for(let t of Object.keys(e))t in i||(i[t]=e[t])}else{i=new globalThis.Error(e?r===`string`?e:kn(e):`Unknown error: ${e}`);let n=`${i.name}: ${i.message}`;i.stack=t?is(n,t):n}return i},ts=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 kn(e)},ns=/\((.*)\)/g,rs=(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?is(a.join(`
10
- `),n):a.join(`
11
- `)},is=(e,t)=>{let n=t?.get(br.key);return n&&(e=`${e}\n${os(n)}`),e},as=(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(xr.key);n.push(` at fiber (${t})`),r&&n.push(os(r))}return n.join(`
12
- `)},os=e=>{let t=[],n=e,r=0;for(;n&&r<10;){let e=n.stack();if(e){let r=e.matchAll(ns),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
- `)},ss=e=>$o(e).map(cs).join(`
14
- `),cs=e=>e.cause?`${e.stack} {\n${ls(e.cause,` `)}\n}`:e.stack,ls=(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${ls(e.cause,`${t} `)}\n${t}}`),r},us=`~effect/Fiber`,ds={_A:N,_E:N},fs={id:0},ps=/*#__PURE__*/ (()=>{try{return globalThis.process?.getBuiltinModule?.(`node:async_hooks`)?.AsyncResource}catch{return}})(),ms=()=>ps===void 0?void 0:new ps(`effect/Fiber`),hs=()=>globalThis[xn];var gs=class{constructor(e,t=!0){this.setContext(e),this.id=++fs.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[us](){return ds}get currentDispatcher(){return this._dispatcher??=this.cache.scheduler.makeDispatcher()}getRef(e){return Ui(this.context,e)}addObserver(e){return this._exit?(e(this._exit),gt):(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=Bo(e);this.cache.stackFrame&&(n=fr(n,Li(br,this.cache.stackFrame))),t&&(n=fr(n,t)),this._interruptedCause=this._interruptedCause?cr(this._interruptedCause,n):n,this.interruptible&&(this._running?this._deferredInterrupt=!0:this.evaluate(As(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===Yn){this._asyncContext=ms();return}let n=bs.interruptChildren&&bs.interruptChildren(this);if(n!==void 0)return this.evaluate(bc(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=Fi()}runLoop(e){let t=globalThis[xn];globalThis[xn]=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=As(this._interruptedCause)),this.currentOpCount++;let e=this.cache;if(!r&&!e.preventYield&&e.scheduler.shouldYield(this)){r=!0;let e=i;i=bc(Fs,()=>e)}if(i=e.tracerContext?e.tracerContext(i,this):i[Gn](this),i===Yn){let e=this._yielded;if(Vn in e)return this._deferredInterrupt=!1,this._yielded=void 0,e;if(this._deferredInterrupt){this._yielded=void 0,e();continue}return Yn}}catch(e){if(!P(i,Gn))return wr(`Fiber.runLoop: Not a valid effect: ${String(i)}`);i=wr(e)}}finally{this._running=n,globalThis[xn]=t}}getCont(e){if(this._deferredInterrupt)return this._deferredInterrupt=!1,vs;for(;;){let t=this._stack.pop();if(!t)return;let n=t[Jn];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&ys-1))return yr(e);let t=this.getCont(Kn);return t?t[Kn](e,this):this.yieldWith(yr(e))}yieldWith(e){return this._yielded=e,Yn}children(){return this._children??=/* @__PURE__ */ new Set}pipe(){return lt(this,arguments)}setContext(e){let t=this.context;if(this.context=e,t!==void 0&&Zee(t,e))return;let n=e.cacheRoot,r=n._fiberCache??=_s(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 _s=e=>{let t=Vi(e,Eo);return{scheduler:Ui(e,co),tracer:t,tracerContext:t?t.context:void 0,tracerEnabled:Ui(e,Ite),span:Vi(e,So),logLevel:Ui(e,Mo),minimumLogLevel:Ui(e,No),stackFrame:Ui(e,ko),runtimeMetrics:Vi(e,`effect/Metric/FiberRuntimeMetrics`),maxOpsBeforeYield:Ui(e,wte),preventYield:Ui(e,Tte)}},vs={[Kn](e,t){return As(t._interruptedCause)},[qn](e,t){return As(t._interruptedCause)}},ys=32,bs={interruptChildren:void 0},xs=e=>{if(!e.cache.stackFrame)return;let t=/* @__PURE__ */ new Map;return t.set(xr.key,e.cache.stackFrame),Mi(t)},Ss=e=>{if(e._children!==void 0&&e._children.size!==0)return Os(e._children)},Cs=e=>{let t=e;return t._exit?ks(t._exit):qs(n=>t._exit?n(ks(t._exit)):Ms(e.addObserver(e=>n(ks(e)))))},ws=e=>qs(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(ks(r))}return a(),Ms(()=>i?.())}),Ts=e=>{let t=e;return t._exit?t._exit:qs(n=>t._exit?n(t._exit):Ms(e.addObserver(n)))},Es=e=>Tr(t=>Ds(e,t.id)),Ds=/*#__PURE__*/ M(e=>P(e[0],us),(e,t,n)=>Tr(r=>{let i=xs(r);return i=i&&n?qi(i,n):i??n,e.interruptUnsafe(t,i),vc(Cs(e))})),Os=e=>Tr(t=>{let n=xs(t),r=Aa();for(let i of e)i.interruptUnsafe(t.id,n),r.push(i);return vc(ws(r))}),ks=yr,As=Sr,js=Cr,Ms=/*#__PURE__*/ _r({op:`Sync`,[Gn](e){let t=this[Wn](),n=e.getCont(Kn);return n?n[Kn](t,e):e.yieldWith(yr(t))}}),Ns=/*#__PURE__*/ _r({op:`Suspend`,[Gn](e){return this[Wn]()}}),Ps=/*#__PURE__*/ oa({onFailure:js,onSuccess:ks}),Fs=/*#__PURE__*/ (/* @__PURE__ */ _r({op:`Yield`,[Gn](e){let t=!1;return e.currentDispatcher.scheduleTask(()=>{t||e.evaluate(Ec)},this[Wn]??0),e.yieldWith(()=>{t=!0})}}))(0),Is=/*#__PURE__*/ ks(/*#__PURE__*/ ui()),Ls=e=>Ns(()=>As(e())),Rs=e=>wr(e),zs=e=>Ns(()=>js(e())),Bs=/*#__PURE__*/ ks(void 0),Vs=e=>{let t=typeof e==`function`?e:e.try,n=typeof e==`function`?e=>new hu(e,`An error occurred in Effect.try`):e.catch;return Ns(()=>{try{return ks(t())}catch(e){return js(n(e))}})},Hs=e=>Gs(function(t,n){e(n).then(e=>t(ks(e)),e=>t(Rs(e)))},e.length!==0),Us=e=>{let t=typeof e==`function`?e:e.try,n=typeof e==`function`?e=>new hu(e,`An error occurred in Effect.tryPromise`):e.catch;return Gs(function(e,r){let i=e=>Ns(()=>{try{return js(Ln(()=>n(e)))}catch(e){return Rs(e)}});try{t(r).then(t=>e(ks(t)),t=>e(i(t)))}catch(t){e(i(t))}},t.length!==0)},Ws=e=>Tr(t=>e(t.id)),Gs=/*#__PURE__*/ function(){let e=/*#__PURE__*/ gr({op:`Async`,[Gn](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(Ks(()=>(t=!0,r?.abort(),i??Ec))),Yn):n}}),t=function(e,t){this.register=e,this.withSignal=t};return t.prototype=e,function(e,n){return new t(e,n)}}(),Ks=/*#__PURE__*/ _r({op:`AsyncFinalizer`,[Jn](e){e.interruptible&&(e.interruptible=!1,e._stack.push(yl))},[qn](e,t){return Go(e)?bc(el(Sr(e),this[Wn]()),()=>As(e)):As(e)}}),qs=e=>Gs(e,e.length>=2),Js=/*#__PURE__*/ qs(gt),Ys=(...e)=>{if(e.length===1){let t=e[0];return Ns(()=>rc(t()))}let[t,n]=e;return Ns(()=>rc(n.call(t.self)))},Xs=(e,...t)=>{let n=t.length===0?function(){return Ns(()=>rc(e.apply(this,arguments)))}:function(){let n=Ns(()=>rc(e.apply(this,arguments)));for(let e=0;e<t.length;e++)n=t[e](n,...arguments);return n};return Zs(e.length,n)},Zs=(e,t)=>Object.defineProperty(t,"length",{value:e,configurable:!0}),Qs=/*#__PURE__*/ Io(2),$s=function(){let e=typeof arguments[0]==`string`,t=e?arguments[0]:`Effect.fn`,n=e?arguments[1]:void 0,r=Pn(),i;return r!==0&&(Fn(2),i=new globalThis.Error,Fn(r)),e?(r,...a)=>ec(t,r,i,a,e,n):ec(t,arguments[0],i,Array.prototype.slice.call(arguments,1),e,n)},ec=(e,t,n,r,i,a)=>{let o=typeof t==`function`?t:r.shift().bind(t.self),s=`${e} (definition)`,c=n?Qs(()=>n.stack):ht;return Zs(o.length,function(...t){let n=Ns(()=>{let e=o.apply(this,arguments);return Zn(e)?e:rc(e)});for(let e=0;e<r.length;e++)n=r[e](n,...t);if(!Zn(n))return n;let l=Pn(),u;return l!==0&&(Fn(2),u=new globalThis.Error,Fn(l)),kc(i?Yl(e,a,e=>Xl(n,e)):n,ko,t=>({name:e,stack:u?Qs(()=>u.stack):ht,parent:{name:s,stack:c,parent:t}}))})},tc=(e,...t)=>Zs(e.length,t.length===0?function(){return nc(()=>e.apply(this,arguments))}:function(){let n=nc(()=>e.apply(this,arguments));for(let e of t)n=e(n,...arguments);return n}),nc=e=>{try{let t=e(),n;for(;;){let r=t.next(n);if(r.done)return ks(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 Ns(()=>n?(n=!1,bc(r.value,e=>rc(t,e))):Ns(()=>rc(e())))}}}}catch(e){return Rs(e)}},rc=/*#__PURE__*/ function(){let e=/*#__PURE__*/ gr({op:`Iterator`,[Kn](e,t){let n=this.iterator;for(;;){let r=n.next(e);if(r.done)return ks(r.value);if(!xc(r.value))return t._stack.push(this),r.value;if(r.value._tag===`Failure`)return r.value;e=r.value.value}},[Gn](e){return this[Kn](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)}}(),ic=/*#__PURE__*/ M(2,(e,t)=>new sc(e,cc,ks(t))),ac=function(e){return e._stack.push(this),this[Wn]},oc=/*#__PURE__*/ gr({op:`OnSuccess`,[Gn]:ac}),sc=function(e,t,n){this[Wn]=e,this[Kn]=t,this.payload=n};sc.prototype=oc;const cc=function(){return this.payload},lc=function(e,t){return t.succeedWith(this.payload)},uc=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Pn();if(e===0)return!1;let t=`~effect/Effect/stackProbe`,n={[t]:function(){return/* @__PURE__ */ Error()}};Fn(1);let r=/*#__PURE__*/ n[t]();return Fn(e),r.stack?.includes(`[as `+t+`]`)===!0})(),dc=function(e,t){let n=this.payload;return t.succeedWith(uc?n(e):Ln(()=>n(e)))},fc=function(e){let t=this.payload;return t(e)},pc=function(e){let t=this.payload;return new sc(t(e),lc,e)},mc=function(e){return new sc(this.payload,lc,e)},hc=e=>Sc(e,di),gc=/*#__PURE__*/ M(2,(e,t)=>new sc(e,Zn(t)?cc:fc,t)),_c=/*#__PURE__*/ M(2,(e,t)=>new sc(e,Zn(t)?mc:pc,t)),vc=e=>new sc(e,cc,Ec),zte=(e,t)=>Tr(n=>{let r=/* @__PURE__ */ new Set;return pl(n,()=>r.size===0?void 0:Os(r)),qs(i=>{let a=ba(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(As(sr(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=Al(n,a[e],!0,!0,!1);if(r.add(t),t.addObserver(n=>{r.delete(t),u(n,t,e)}),c)break}})}),Bte=(e,t)=>Tr(n=>{let r=/* @__PURE__ */ new Set;return pl(n,()=>r.size===0?void 0:Os(r)),qs(i=>{let a=!1,o=0;for(let s of e){if(a)break;let e=o++,c=Al(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})})}})}),Vte=/*#__PURE__*/ M(e=>Zn(e[1]),(e,t,n)=>zte([e,t],n)),yc=/*#__PURE__*/ M(e=>Zn(e[1]),(e,t,n)=>Bte([e,t],n)),bc=/*#__PURE__*/ M(2,(e,t)=>new sc(e,fc,t)),Hte=/*#__PURE__*/ M(2,(e,t)=>xc(e)?e._tag===`Success`?t.onSuccess(e.value):t.onFailure(e.cause):Hc(e,t)),xc=e=>e[Vn]!==void 0,Ute=/*#__PURE__*/ M(2,(e,t)=>xc(e)?e._tag===`Success`?t(e.value):e:bc(e,t)),Wte=e=>bc(e,N),Sc=/*#__PURE__*/ M(2,(e,t)=>new sc(e,dc,t)),Gte=/*#__PURE__*/ M(2,(e,t)=>xc(e)?Zte(e,t):Sc(e,t)),Kte=/*#__PURE__*/ M(2,(e,t)=>xc(e)?Qte(e,t):Bc(e,t)),qte=/*#__PURE__*/ M(2,(e,t)=>xc(e)?$te(e,t):gne(e,t)),Jte=/*#__PURE__*/ M(2,(e,t)=>{if(xc(e)){if(e._tag===`Success`)return e;let n=Ho(e.cause);return na(n)?e:t(n.success)}return Rc(e,t)}),Cc=e=>Sr(Bo(e)),wc=e=>e._tag===`Success`,Yte=e=>e._tag===`Failure`,Xte=e=>e._tag===`Failure`?Qi(e.cause):$i(e),Tc=e=>e._tag===`Failure`&&Go(e.cause),Ec=/*#__PURE__*/ yr(void 0),Zte=/*#__PURE__*/ M(2,(e,t)=>e._tag===`Success`?yr(t(e.value)):e),Qte=/*#__PURE__*/ M(2,(e,t)=>{if(e._tag===`Success`)return e;let n=Ho(e.cause);return na(n)?e:Cr(t(n.success))}),$te=/*#__PURE__*/ M(2,(e,t)=>{if(e._tag===`Success`)return yr(t.onSuccess(e.value));let n=Ho(e.cause);return na(n)?e:Cr(t.onFailure(n.success))}),ene=/*#__PURE__*/ M(2,(e,t)=>wc(e)?t:e),Dc=e=>{let t=[];for(let n of e)n._tag===`Failure`&&t.push(...n.cause.reasons);return t.length===0?Ec:Sr(sr(t))},tne=e=>e,nne=e=>Tr(t=>ks(Ki(t.context,e))),Oc=/*#__PURE__*/ M(2,(e,t)=>Tr(n=>{let r=n.context,i=t(r);return r===i||(n.setContext(i),pl(n,()=>{n.setContext(r)})),e})),kc=/*#__PURE__*/ M(3,(e,t,n)=>Oc(e,e=>{let r=Hi(e,t),i=n(r);return r===i?e:Ri(e,t,i)})),rne=()=>ine,ine=/*#__PURE__*/ Tr(e=>ks(e.context)),Ac=e=>Tr(t=>e(t.context)),ane=/*#__PURE__*/ M(2,(e,t)=>Oc(e,ft(t))),jc=/*#__PURE__*/ M(2,(e,t)=>xc(e)?e:Oc(e,qi(t))),Mc=function(){return arguments.length===1?M(2,(e,t)=>Nc(e,arguments[0],t)):M(3,(e,t,n)=>Nc(e,t,n)).apply(this,arguments)},Nc=(e,t,n)=>Oc(e,Ri(t,n)),one=/*#__PURE__*/ M(2,(e,t)=>bc(t,t=>t?hc(e):Is)),sne=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t)=>wl({while:pt,body:ft(t?.disableYield?e:bc(e,e=>Fs)),step:gt})),Pc=/*#__PURE__*/ M(2,(e,t)=>new Ic(e,t.length===1?t:e=>t(e))),Fc=/*#__PURE__*/ gr({op:`OnFailure`,[Gn]:ac}),Ic=function(e,t){this[Wn]=e,this[qn]=t};Ic.prototype=Fc;const cne=/*#__PURE__*/ M(3,(e,t,n)=>Pc(e,e=>t(e)?n(e):As(e))),Lc=/*#__PURE__*/ M(3,(e,t,n)=>Pc(e,e=>{let r=t(e);return na(r)?As(r.failure):n(r.success,e)})),Rc=/*#__PURE__*/ M(2,(e,t)=>Lc(e,Ho,e=>t(e))),lne=/*#__PURE__*/ M(2,(e,t)=>Lc(e,Wo,t)),une=/*#__PURE__*/ M(2,(e,t)=>Pc(e,e=>gc(t(e),As(e)))),dne=/*#__PURE__*/ M(3,(e,t,n)=>Pc(e,e=>{let r=t(e);return na(r)?As(e):gc(n(r.success,e),As(e))})),fne=/*#__PURE__*/ M(2,(e,t)=>dne(e,Ho,e=>t(e))),zc=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t,n,r)=>Pc(e,e=>{let i=Ho(e);return na(i)?As(i.failure):t(i.success)?n(i.success):r?r(i.success):As(e)})),pne=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t,n,r)=>Pc(e,e=>{let i=Ho(e);if(na(i))return As(i.failure);let a=t(i.success);return na(a)?r?r(a.failure):As(e):n(a.success)})),mne=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t,n,r)=>{let i=Array.isArray(t)?e=>P(e,`_tag`)&&t.includes(e._tag):Vt(t);return zc(e,i,n,r)}),hne=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t,n)=>{let r;return pne(e,e=>(r??=Object.keys(t),P(e,`_tag`)&&Tt(e._tag)&&r.includes(e._tag)?Qi(e):$i(e)),e=>t[e._tag](e),n)}),Bc=/*#__PURE__*/ M(2,(e,t)=>Rc(e,e=>zs(()=>t(e)))),gne=/*#__PURE__*/ M(2,(e,t)=>Wc(e,{onFailure:e=>zs(()=>t.onFailure(e)),onSuccess:e=>Ms(()=>t.onSuccess(e))})),_ne=e=>Rc(e,Rs),vne=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t)=>{if(!t?.log)return Wc(e,{onFailure:e=>Bs,onSuccess:e=>Bs});let n=Su(t.log===!0?void 0:t.log);return Hc(e,{onFailure(e){let r=Vo(e);return na(r)?As(r.failure):t.message===void 0?n(e):n(t.message,e)},onSuccess:e=>Bs})}),yne=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t)=>{if(!t?.log)return Hc(e,{onFailure:e=>Bs,onSuccess:e=>Bs});let n=Su(t.log===!0?void 0:t.log);return Hc(e,{onFailure:e=>t.message===void 0?n(e):n(t.message,e),onSuccess:e=>Bs})}),bne=e=>Gc(e,{onFailure:ui,onSuccess:di}),Vc=e=>wne(e,{onFailure:$i,onSuccess:Qi}),Hc=/*#__PURE__*/ M(2,(e,t)=>new Uc(e,t.onSuccess.length===1?t.onSuccess:e=>t.onSuccess(e),t.onFailure.length===1?t.onFailure:e=>t.onFailure(e))),xne=/*#__PURE__*/ gr({op:`OnSuccessAndFailure`,[Gn]:ac}),Uc=function(e,t,n){this[Wn]=e,this[Kn]=t,this[qn]=n};Uc.prototype=xne;const Sne=function(e,t){let n=this.payload;return t.succeedWith(uc?n.onSuccess(e):Ln(()=>n.onSuccess(e)))},Cne=/*#__PURE__*/ ((e,t)=>{let n=gr({op:e,[Gn]:ac,[Kn]:Sne,[qn]:t}),r=function(e,t){this[Wn]=e,this.payload=t};return r.prototype=n,r})(`Match`,function(e,t){let n=e.reasons.find(pr);if(n===void 0)return As(e);let r=this.payload;return t.succeedWith(uc?r.onFailure(n.error):Ln(()=>r.onFailure(n.error)))}),Wc=/*#__PURE__*/ M(2,(e,t)=>Hc(e,{onFailure:e=>{let n=e.reasons.find(pr);return n?t.onFailure(n.error):As(e)},onSuccess:t.onSuccess})),Gc=/*#__PURE__*/ M(2,(e,t)=>new Cne(e,t)),wne=/*#__PURE__*/ M(2,(e,t)=>{if(xc(e)){if(e._tag===`Success`)return yr(t.onSuccess(e.value));let n=Ho(e.cause);return na(n)?e:yr(t.onFailure(n.success))}return Gc(e,t)}),Kc=e=>xc(e)?yr(e):Tne(e),Tne=/*#__PURE__*/ _r({op:`Exit`,[Gn](e){return e._stack.push(this),this[Wn]},[Kn](e,t,n){return t.succeedWith(n??yr(e))},[qn](e,t,n){return t.succeedWith(n??Sr(e))}}),Ene=/*#__PURE__*/ M(2,(e,t)=>gc(iu(t),e)),qc=/*#__PURE__*/ M(2,(e,t)=>bc(kne(e,t.duration),e=>fi(e)?t.orElse():ks(e.value))),Dne=e=>new su(`Operation timed out after '${so(e)}'`),One=/*#__PURE__*/ M(2,(e,t)=>{let n=Ga(t);return qc(e,{duration:n,orElse:()=>js(Dne(n))})}),kne=/*#__PURE__*/ M(2,(e,t)=>yc(hc(e),ic(iu(t),ui()))),Jc=`~effect/Scope`,Yc=`~effect/Scope/Closeable`,Xc=/*#__PURE__*/ F(`effect/Scope`),Zc=(e,t)=>Tr(n=>(xl(n),Qc(e,t)??Bs)),Qc=(e,t)=>{let n=e.state;if(n._tag===`Closed`||(e.state={_tag:`Closed`,exit:t},e.parent!==void 0&&il(e.parent,e),n._tag===`Empty`))return;if(n.finalizer!==void 0)return $c(n.finalizer,t);let r=n.finalizers;return r.size===1?$c(r.values().next().value,t):Ane(e,r,t)},$c=(e,t)=>{try{return e(t)}catch(e){return wr(e)}},el=(e,t)=>wc(e)?t:Pc(t,t=>As(cr(e.cause,t))),Ane=/*#__PURE__*/ Xs(function*(e,t,n){let r=[],i=[],a=Array.from(t.values()),o=hs();for(let t=a.length-1;t>=0;t--){let s=a[t];e.strategy===`sequential`?r.push(yield*Kc($c(s,n))):i.push(Al(o,$c(s,n),!0,!0,`inherit`))}return i.length>0&&(r=yield*ws(i)),yield*Dc(r)}),jne=(e,t)=>Ms(()=>tl(e,t)),tl=(e,t)=>{let n=ol(t,e);return e.state._tag===`Closed`?(n.state=e.state,n):(rl(e,n,e=>Zc(n,e)),n)},nl=(e,t)=>Ns(()=>e.state._tag===`Closed`?t(e.state.exit):(rl(e,{},t),Bs)),Mne=(e,t)=>nl(e,ft(t)),rl=(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)}},il=(e,t)=>{if(e.state._tag!==`Open`)return;let n=e.state;n.finalizerKey===t?e.state=sl:n.finalizers!==void 0&&(n.finalizers.delete(t),n.finalizers.size===0&&(e.state=sl))},al=e=>ol(e,void 0),ol=(e=`sequential`,t)=>({[Yc]:Yc,[Jc]:Jc,strategy:e,parent:t,state:sl}),sl={_tag:`Empty`},Nne=e=>Ms(()=>al(e)),cl=Xc,ll=/*#__PURE__*/ Mc(Xc),Pne=e=>Tr(t=>{let n=t.context,r=al();return t.setContext(Ri(t.context,Xc,r)),pl(t,e=>(t.setContext(n),Qc(r,e))),e}),Fne=/*#__PURE__*/ M(2,(e,t)=>ml(ll(e,t),e=>Ns(()=>Qc(t,e)??Bs))),ul=e=>Ns(()=>{let t=al();return ml(e(t),e=>Ns(()=>Qc(t,e)??Bs))}),Ine=(e,t,n)=>Ac(r=>Cl(i=>bc(cl,a=>_c(n?.interruptible?i(e):e,e=>nl(a,n=>jc(t(e,n),r)))))),Lne=e=>bc(cl,t=>Ac(n=>nl(t,t=>jc(e(t),n)))),dl=/*#__PURE__*/ function(){let e=/*#__PURE__*/ gr({op:`OnExit`,[Gn](e){return e._stack.push(this),this.effect},[Jn](e){e.interruptible&&this.interruptible!==!0&&(e._stack.push(yl),e.interruptible=!1)},[Kn](e,t,n){n??=yr(e);let r;try{r=this.onExit(n)}catch(e){r=wr(e)}return r?bc(r,e=>n):n},[qn](e,t,n){n??=Sr(e);let r;try{r=this.onExit(n)}catch(e){r=wr(e)}return r?bc(el(n,r),e=>n):n}}),t=function(e,t,n){this.effect=e,this.onExit=t,this.interruptible=n};return t.prototype=e,t}(),fl=(e,t,n)=>new dl(e,t,n),pl=(e,t)=>{e._stack.push(new dl(void 0,t,void 0))},ml=/*#__PURE__*/ M(2,fl),Rne=/*#__PURE__*/ M(2,(e,t)=>ml(e,e=>t)),zne=/*#__PURE__*/ M(3,(e,t,n)=>ml(e,e=>{let r=t(e);return na(r)?Bs:n(r.success,e)})),hl=/*#__PURE__*/ M(2,(e,t)=>zne(e,Xte,t)),Bne=/*#__PURE__*/ M(3,(e,t,n)=>ml(e,e=>{if(e._tag!==`Failure`)return Bs;let r=t(e.cause);return na(r)?Bs:n(r.success,e.cause)})),Vne=/*#__PURE__*/ M(2,(e,t)=>Bne(Ko,t)(e)),Hne=/*#__PURE__*/ M(2,(e,t)=>Ms(()=>gl(e,typeof t==`function`?e=>io(Ga(t(e))):ft(io(Ga(t)))))),Une=/*#__PURE__*/ ft(1/0),gl=(e,t)=>{let n=0,r,i,a=(e,t)=>(t.awaiters++,pl(e,()=>{if(!(--t.awaiters>0||i!==t))return i=void 0,Es(t.fiber)}),Ts(t.fiber));return[Tr(o=>{if(i!==void 0)return o===i.fiber?Ts(i.fiber):a(o,i);if(r!==void 0&&(n===1/0||o.getRef(Ql).currentTimeMillisUnsafe()<n))return r;r=void 0;let s=o.getRef(Ql),c={fiber:new gs(o.context),awaiters:0};i=c;let l=a(o,c);return c.fiber.evaluate(fl(e,e=>{if(i!==c||(i=void 0,Tc(e)))return;let a=t(e);n=a===1/0?1/0:s.currentTimeMillisUnsafe()+a,r=e})),c.fiber._exit??l}),Ms(()=>{r=void 0})]},Wne=/*#__PURE__*/ M(2,(e,t)=>Sc(Hne(e,t),e=>e[0])),Gne=e=>Ms(()=>gl(e,Une)[0]),Kne=/*#__PURE__*/ Tr(e=>As(Bo(e.id))),_l=e=>Tr(t=>(t.interruptible&&(t.interruptible=!1,t._stack.push(yl)),e)),vl=/*#__PURE__*/ _r({op:`SetInterruptible`,[Jn](e){if(e.interruptible=this[Wn],e._interruptedCause&&e.interruptible)return()=>As(e._interruptedCause)}}),yl=/*#__PURE__*/ vl(!0),qne=/*#__PURE__*/ vl(!1),bl=e=>{if(e.interruptible=!0,e._stack.push(qne),e._interruptedCause)return As(e._interruptedCause)},xl=e=>{let t=e;t.interruptible&&(t.interruptible=!1,t._stack.push(yl))},Jne=e=>{let t=e;if(!t.interruptible)return bl(t)},Sl=e=>Tr(t=>t.interruptible?e:bl(t)??e),Cl=e=>Tr(t=>t.interruptible?(t.interruptible=!1,t._stack.push(yl),e(Sl)):e(N)),Yne=(e,t)=>xee(e)?t?.mode===`result`?Tl(e,Vc,t):Tl(e,N,t):t?.discard?t.mode===`result`?Tl(Object.values(e),Vc,t):Tl(Object.values(e),N,t):Ns(()=>{let n={};return ic(Tl(Object.entries(e),([e,r])=>Sc(t?.mode===`result`?Vc(r):r,t=>{Rn(n,e,t)}),{discard:!0,concurrency:t?.concurrency}),n)}),wl=/*#__PURE__*/ _r({op:`While`,[Kn](e,t){return this[Wn].step(e),this[Wn].while()?(t._stack.push(this),this[Wn].body()):Ec},[Gn](e){return this[Wn].while()?(e._stack.push(this),this[Wn].body()):Ec}}),Tl=/*#__PURE__*/ M(e=>typeof e[1]==`function`,(e,t,n)=>Ns(()=>{let r=El(n?.concurrency);if(r===1)return Xne(e,t,n);let i=ba(e),a=i.length;if(a===0)return n?.discard?Bs:ks([]);let o=n?.discard?void 0:Array(a),s=Zne({f:t,out:o},i,{concurrency:r});return s?ic(s,o):ks(o)})),Xne=(e,t,n)=>Ns(()=>{let r=n?.discard?void 0:[],i=e[Symbol.iterator](),a=i.next(),o=0;return ic(wl({while:()=>!a.done,body:()=>t(a.value,o++),step:e=>{r&&r.push(e),a=i.next()}}),r)}),El=e=>e===`unbounded`?1/0:Math.max(1,e??1),Dl=()=>e=>{let t=e.onItem,n=e.step,r=(e,t,r,a,o)=>bc(Kc(o),o=>n(e,t[r],o,r)??i(e,t,r+1,a)??Bs),i=(e,i,a=0,o=i.length)=>{for(;a<o;a++){let s=i[a],c=t(e,s,a);if(!xc(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},Ol=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=wr(e);return f=t,c=!0,u&&u.size>0?bc(_l(Os(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(xc(g)){if(f=n(e,o,g,a),f)break}else if(l){p=void 0;let t=Al(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=sr(e);f=Sr(f._tag===`Failure`?cr(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??Bs)}catch(e){d(m(e))}}),u.size<s)continue;i=!0,a++;return}else return qs(e=>{l=hs(),u=/* @__PURE__ */ new Set,p=g,d=e;let t;try{t=h()}catch(t){return e(m(t))}return t?e(t):Ns(()=>(f??=Ec,bc(u?Os(u):Bs,()=>f?._tag===`Failure`?f:Bs)))})}if(c=!0,f){if(u&&u.size>0){let e=xs(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(Bs);else return Ec}};return h()}},kl=()=>e=>Ol(e),Zne=/*#__PURE__*/ Ol({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)}}),Qne=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t)=>Tr(n=>(mre(),ks(Al(n,e,t?.startImmediately,!1,t?.uninterruptible??!1))))),Al=(e,t,n=!1,r=!1,i=!1)=>{let a=e,o=i===`inherit`?a.interruptible:!i,s=new gs(a.context,o);return r||(a.children().add(s),s._parent=a),n?s.evaluate(t):(s._asyncContext=ms(),a.currentDispatcher.scheduleTask(()=>s.evaluate(t),0)),s},jl=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t,n)=>Tr(r=>{let i=Al(r,e,n?.startImmediately,!0,n?.uninterruptible);if(!i._exit){if(t.state._tag!==`Closed`){let e={};rl(t,e,()=>Ws(e=>e===i.id?Bs:Es(i))),i.addObserver(()=>il(t,e))}else i.interruptUnsafe(r.id,xs(r))}return ks(i)})),$ne=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t)=>bc(cl,n=>jl(e,n,t))),Ml=e=>(t,n)=>{let r=new gs(n?.scheduler?Ri(e,co,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},ere=/*#__PURE__*/ M(2,(e,t)=>e._exit?e:t.state._tag===`Closed`?(e.interruptUnsafe(e.id),e):(il(t,e),rl(t,e,()=>Es(e)),e.addObserver(()=>il(t,e)),e)),Nl=/*#__PURE__*/ Ml(/*#__PURE__*/ Fi()),Pl=e=>{let t=Ml(e);return(e,n)=>{let r=t(e,n);return new Promise(e=>{r.addObserver(t=>e(t))})}},Fl=e=>{let t=Pl(e);return(e,n)=>t(e,n).then(e=>{if(e._tag===`Failure`)throw Qo(e.cause);return e.value})},Il=/*#__PURE__*/ Fl(/*#__PURE__*/ Fi()),Ll=e=>{let t=Ml(e);return e=>{if(xc(e))return e;let n=new fo(`sync`),r=t(e,{scheduler:n});return r._dispatcher?.flush(),r._exit??wr(new pu(r))}},Rl=/*#__PURE__*/ Ll(/*#__PURE__*/ Fi()),zl=/*#__PURE__*/ (e=>{let t=Ll(e);return e=>{let n=t(e);if(n._tag===`Failure`)throw Qo(n.cause);return n.value}})(/*#__PURE__*/ Fi()),Bl=/*#__PURE__*/ ks(!0),Vl=/*#__PURE__*/ ks(!1);var Hl=class{waiters=[];scheduled=void 0;_isOpen;constructor(e){this._isOpen=e}scheduleUnsafe(e){if(this.waiters.length===0)return Bl;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=[],Bl}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](Ec)};flushWaiters(){let e=this.waiters;this.waiters=[],this.flushScheduled();for(let t=0;t<e.length;t++)e[t](Ec)}open=/*#__PURE__*/ Tr(e=>this._isOpen?Vl:(this._isOpen=!0,this.scheduleUnsafe(e)));release=/*#__PURE__*/ Tr(e=>this._isOpen?Vl:this.scheduleUnsafe(e));openUnsafe(){return!this._isOpen&&(this._isOpen=!0,this.flushWaiters(),!0)}await=/*#__PURE__*/ qs(e=>this._isOpen?e(Bs):(this.waiters.push(e),Ms(()=>{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__*/ Ms(()=>this.closeUnsafe());whenOpen=e=>bc(this.await,()=>e);isOpen(){return this._isOpen}};const Ul=e=>new Hl(e??!1),Wl=e=>Ms(()=>Ul(e)),Gl=/*#__PURE__*/ BigInt(0),tre={_tag:`Span`,spanId:`noop`,traceId:`noop`,sampled:!1,status:{_tag:`Ended`,startTime:Gl,endTime:Gl,exit:Ec},attributes:/*#__PURE__*/ new Map,links:[],kind:`internal`,attribute(){},event(){},end(){},addLinks(){}},nre=e=>Object.assign(Object.create(tre),e),Kl=e=>e?Ui(e.annotations,To)?e._tag===`Span`?Kl(vi(e.parent)):ui():di(e):ui(),ql=(e,t,n)=>{let r=!e.cache.tracerEnabled||n?.annotations&&Ui(n.annotations,To),i=n?.parent===void 0?n?.root?ui():Kl(e.cache.span):di(n.parent),a;if(r)a=nre({name:t,parent:i,annotations:Ri(n?.annotations??Fi(),To,!0)});else{let r=e.cache.tracer??Oo,o=e.getRef(Ql),s=e.getRef(Ao),c=e.getRef(Lte),l=e.getRef(Rte),u=n?.level??e.getRef(Mte),d=n?.links===void 0?l.length===0?[]:l.slice():[...l,...n.links];a=r.span({name:t,parent:i,annotations:n?.annotations??Fi(),links:d,startTime:s?o.currentTimeNanosUnsafe():Gl,kind:n?.kind??`internal`,root:n?.root??!1,sampled:n?.sampled??(pi(i)&&i.value.sampled===!1?!1:!vu(e.getRef(Nte),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},rre=(e,t)=>_l(Tr(n=>{let r=Hi(n.context,Xc),i=ql(n,e,t??{}),a=n.getRef(Ql),o=n.getRef(Ao);return ic(nl(r,e=>Jl(i,e,a,o)),i)})),ire=(e,t)=>(t=typeof t==`function`?t:ht,kc(ko,n=>({name:e,stack:t,parent:n}))),Jl=(e,t,n,r)=>Ms(()=>{e.status._tag!==`Ended`&&e.end(r?n.currentTimeNanosUnsafe():Gl,t)}),Yl=(e,...t)=>{let n=t.length===1?void 0:t[0],r=t[t.length-1];return Tr(t=>{let i=ql(t,e,n),a=t.getRef(Ql),o=t.getRef(Ao);return pl(t,e=>Jl(i,e,a,o)),r(i)})},Xl=/*#__PURE__*/ Mc(Co),Zl=function(){let e=Zn(arguments[0]),t=e?arguments[1]:arguments[0],n=e?arguments[2]:arguments[1],r=N;return t._tag===`Span`&&(n=Fo(n),r=ire(t.name,n?.captureStackTrace)),e?Xl(r(arguments[0]),t):e=>Xl(r(e),t)},are=function(){let e=typeof arguments[0]!=`string`,t=e?arguments[1]:arguments[0],n=Fo(arguments[2]);if(e){let e=arguments[0];return Yl(t,arguments[2],t=>Zl(e,t,n))}let r=typeof arguments[1]==`function`?arguments[1]:void 0,i=r?void 0:arguments[1];return(e,...a)=>Yl(t,r?r(...a):i,t=>Zl(e,t,n))},ore=(...e)=>Tr(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 Bs}),Ql=/*#__PURE__*/ Yi(`effect/Clock`,{defaultValue:()=>new sre}),$l=2**31-1;var sre=class{currentTimeMillisUnsafe(){return Date.now()}currentTimeMillis=/*#__PURE__*/ Ms(()=>this.currentTimeMillisUnsafe());currentTimeNanosUnsafe(){return nu()}currentTimeNanos=/*#__PURE__*/ Ms(()=>this.currentTimeNanosUnsafe());monotonicTimeNanosUnsafe(){return tu()}monotonicTimeNanos=/*#__PURE__*/ Ms(()=>this.monotonicTimeNanosUnsafe());sleep(e){return this.sleepMillis(io(e))}sleepMillis(e){return e<=0?Fs:Number.isFinite(e)?qs(t=>{let n=e>$l?this.sleepMillis(e-$l):Bs,r=setTimeout(()=>t(n),Math.min(e,$l));return Ms(()=>clearTimeout(r))}):Js}};const eu=/*#__PURE__*/ BigInt(1e6),tu=/*#__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())*eu;return e>t&&(t=e),t}}(),nu=/*#__PURE__*/ function(){let e=/*#__PURE__*/ BigInt(1e9),t;return()=>{let n=tu(),r=BigInt(Date.now())*eu;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}}(),ru=e=>Tr(t=>e(t.getRef(Ql))),iu=e=>ru(t=>t.sleep(Ga(e))),au=/*#__PURE__*/ ru(e=>e.currentTimeMillis),ou=`~effect/Cause/TimeoutError`;var su=class extends (/*#__PURE__*/ Or(`TimeoutError`)){[ou]=ou;constructor(e){super({message:e})}};const cu=`~effect/Cause/IllegalArgumentError`;var lu=class extends (/*#__PURE__*/ Or(`IllegalArgumentError`)){[cu]=cu;constructor(e){super({message:e})}};const uu=`~effect/Cause/ExceededCapacityError`;var du=class extends (/*#__PURE__*/ Or(`ExceededCapacityError`)){[uu]=uu;constructor(e){super({message:e})}};const fu=`~effect/Cause/AsyncFiberError`;var pu=class extends (/*#__PURE__*/ Or(`AsyncFiberError`)){[fu]=fu;constructor(e){super({message:`An asynchronous Effect was executed with Effect.runSync`,fiber:e})}};const mu=`~effect/Cause/UnknownError`;var hu=class extends (/*#__PURE__*/ Or(`UnknownError`)){[mu]=mu;constructor(e,t){super({message:t,cause:e})}};const gu=/*#__PURE__*/ Yi(`effect/Console`,{defaultValue:()=>globalThis.console}),_u=/*#__PURE__*/ Gee(si,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}}),vu=/*#__PURE__*/ ci(_u),yu=/*#__PURE__*/ Yi(`effect/Logger/CurrentLoggers`,{defaultValue:()=>/* @__PURE__ */ new Set([fre,pre])}),bu=/*#__PURE__*/ Yi(`effect/Logger/LogToStderr`,{defaultValue:mt}),cre={"~effect/Logger":{_Message:N,_Output:N},pipe(){return lt(this,arguments)}},xu=e=>{let t=Object.create(cre);return t.log=e,t},lre=e=>e.replace(/[\s="]/g,`_`),ure=(e,t)=>`${lre(e[0])}=${t-e[1]}ms`,Su=e=>(...t)=>{let n;for(let e=0,r=t.length;e<r;e++){let r=t[e];tr(r)&&(n?t.splice(e,1):t=t.slice(0,e).concat(t.slice(e+1)),n=n?sr(n.reasons.concat(r.reasons)):r,e--)}return n===void 0&&(n=Ree),Tr(r=>{let i=e??r.cache.logLevel;if(vu(r.cache.minimumLogLevel,i))return Bs;let a=r.getRef(Ql),o=r.getRef(yu);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 Bs})},Cu={bold:`1`,red:`31`,green:`32`,yellow:`33`,blue:`34`,cyan:`36`,white:`37`,gray:`90`,black:`30`,bgBrightRed:`101`};Cu.gray,Cu.blue,Cu.green,Cu.yellow,Cu.red,Cu.bgBrightRed,Cu.black;const dre=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`)}`,fre=/*#__PURE__*/ xu(({cause:e,date:t,fiber:n,logLevel:r,message:i})=>{let a=Array.isArray(i)?i.slice():[i];e.reasons.length>0&&a.push(ss(e));let o=t.getTime(),s=n.getRef(Po),c=``;for(let e of s)c+=` ${ure(e,o)}`;let l=n.getRef(jo);Object.keys(l).length>0&&a.push(l);let u=n.getRef(gu);(n.getRef(bu)?u.error:u.log)(`[${dre(t)}] ${r.toUpperCase()} (#${n.id})${c}:`,...a)}),pre=/*#__PURE__*/ xu(({cause:e,fiber:t,logLevel:n,message:r})=>{let i=t.getRef(Ql),a=t.getRef(jo),o=t.cache.span;if(o===void 0||o._tag===`ExternalSpan`)return;let s={};for(let[e,t]of Object.entries(a))Rn(s,e,t);s[`effect.fiberId`]=t.id,s[`effect.logLevel`]=n.toUpperCase(),e.reasons.length>0&&(s[`effect.cause`]=ss(e)),o.event(Nee(Array.isArray(r)&&r.length===1?r[0]:r),i.currentTimeNanosUnsafe(),s)});function mre(){bs.interruptChildren??=Ss}const hre=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t)=>hl(e,e=>Tr(n=>(wu(n,e,t?.defectsOnly),Bs)))),wu=(e,t,n)=>{let r=e.getRef(Fte);if(r.size===0||n&&!Uo(t))return;let i={cause:t,fiber:e,timestamp:e.getRef(Ql).currentTimeNanosUnsafe()};r.forEach(e=>e.report(i))},gre=tr,_re=Iee,Tu=pr,vre=mr,Eu=sr,yre=lr,Du=dr,Ou=e=>new or(e),ku=e=>new ur(e),bre=zo,xre=Yo,Au=Zo,Sre=cr,ju=Qo,Cre=Ho,Mu=Uo,Nu=Go,wre=qo,Tre=ss,Ere=kr,Pu=jr,Fu=Nr,Iu=Fr,Lu=lu,Dre=du,Ru=hu,zu=Xo;var Bu=class extends (/*#__PURE__*/ F()(`effect/Cause/StackTrace`)){};const Vu=Qn,Hu=yr,Uu=Sr,Wu=Cr,Gu=wr,Ku=Cc,qu=Ec,Ju=wc,Yu=Yte,Xu=Tc,Zu=Dc,Qu=`~effect/Deferred`,$u=e=>P(e,Qu),ed={[Qu]:{_A:N,_E:N},pipe(){return lt(this,arguments)}},td=function(){this.resumes=void 0,this.effect=void 0};td.prototype=ed;const nd=()=>new td,rd=()=>Ms(()=>nd()),id=e=>qs(t=>e.effect?t(e.effect):(e.resumes??=[],e.resumes.push(t),Ms(()=>{let n=e.resumes;if(n===void 0)return;let r=n.indexOf(t);r>=0&&n.splice(r,1)}))),ad=/* @__PURE__ */ M(2,(e,t)=>Ms(()=>dd(e,t))),od=/*#__PURE__*/ M(2,(e,t)=>ad(e,Sr(t))),sd=/*#__PURE__*/ M(2,(e,t)=>od(e,Bo(t))),cd=e=>Ms(()=>ld(e)),ld=e=>e.effect!==void 0,ud=/*#__PURE__*/ M(2,(e,t)=>ad(e,yr(t))),dd=(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},fd=jo,pd=Mo,md=Ao,hd=Xc,gd=Nne,_d=al,vd=ll,yd=nl,bd=Mne,xd=jne,Sd=tl,Cd=Zc,wd=Qc,Td=Fne,Ed=`~effect/Layer/MemoMap`,Dd=(e,t)=>{let n={observers:0,deferred:nd(),scope:_d(),finalizer:r=>Ns(()=>--n.observers>0?Bs:(e.map.delete(t),Cd(n.scope,r)))};return n},Od=(e,t)=>t.state._tag!==`Closed`&&(e.observers++,rl(t,{},e.finalizer),!0),kd={"~effect/Layer":{_ROut:N,_E:N,_RIn:N},pipe(){return lt(this,arguments)}},Ad=e=>{let t=Object.create(kd);return t.build=e,t},jd=e=>Ad((t,n)=>{let r=Sd(n);return ml(e(t,r),e=>e._tag===`Failure`?Cd(r,e):Bs)}),Md=e=>{let t=jd((n,r)=>n.getOrElseMemoize(t,r,e));return t};var Nd=class{get[Ed](){return Ed}parent;constructor(e){this.parent=e}map=/*#__PURE__*/ new Map;get(e,t){let n=this.map.get(e);return n?(Od(n,t),n.deferred.effect??id(n.deferred)):this.parent?.get(e,t)}getOrElseMemoize(e,t,n){return Ns(()=>{let r;return fl(Ns(()=>{let i=this.get(e,t);if(i)return i;let a=Dd(this,e);return Od(a,t)?(r=a.deferred,this.map.set(e,a),n(this,a.scope)):n(this,t)}),e=>{r&&dd(r,e)})})}};const Pd=()=>new Nd,Fd=e=>new Nd(e);var Id=class e extends (/*#__PURE__*/ F()(`effect/Layer/CurrentMemoMap`)){static forkOrCreate(t){let n=Bi(t,e);return n?Fd(n):Pd()}};const Ld=/*#__PURE__*/ M(3,(e,t,n)=>Mc(Sc(Ns(()=>e.build(t,n)),Ri(Id,t)),Id,t)),Rd=e=>Tr(t=>Ld(e,Id.forkOrCreate(t.context),Hi(t.context,hd))),zd=/*#__PURE__*/ M(2,(e,t)=>Tr(n=>Ld(e,Id.forkOrCreate(n.context),t))),Bd=function(){return arguments.length===1?e=>Vd(Li(arguments[0],e)):Vd(Li(arguments[0],arguments[1]))},Vd=e=>Ad(ft(ks(e))),Hd=/*#__PURE__*/ Vd(/*#__PURE__*/ Fi()),Ud=function(){return arguments.length===1?e=>Wd(arguments[0],e):Wd(arguments[0],arguments[1])},Wd=(e,t)=>Gd(Sc(t,t=>Li(e,t))),Gd=e=>Md((t,n)=>vd(e,n)),Kd=e=>Gd(ic(e,Fi())),qd=/*#__PURE__*/ F(`effect/Layer/unwrap`),Jd=e=>tf(Ud(qd)(e),Ui(qd)),Yd=(e,t,n)=>{let r=Sd(n,`parallel`);return Tl(e,e=>e.build(t,Sd(r,`sequential`)),{concurrency:e.length}).pipe(Sc(e=>tte(...e)))},Xd=(...e)=>jd((t,n)=>Yd(e,t,n)),Zd=/*#__PURE__*/ M(2,(e,t)=>Xd(e,...Array.isArray(t)?t:[t])),Qd=(e,t,n)=>jd((r,i)=>bc(Array.isArray(t)?Yd(t,r,i):t.build(r,i),t=>e.build(r,i).pipe(jc(t),Sc(e=>n(e,t))))),$d=/*#__PURE__*/ M(2,(e,t)=>Qd(e,t,N)),ef=/*#__PURE__*/ M(2,(e,t)=>Qd(e,t,(e,t)=>qi(t,e))),tf=/*#__PURE__*/ M(2,(e,t)=>jd((n,r)=>bc(e.build(n,r),e=>t(e).build(n,r)))),nf=e=>Ad((t,n)=>e.build(Pd(),n)),rf=Ql,af=au,of=`~effect/DateTime`,sf=`~effect/DateTime/TimeZone`,cf={[of]:of,pipe(){return lt(this,arguments)},[An](){return this.toString()},toJSON(){return mf(this).toJSON()}},Ore={...cf,_tag:`Utc`,[Ht](){return Yt(this.epochMilliseconds)},[sn](e){return uf(e)&&e._tag===`Utc`&&this.epochMilliseconds===e.epochMilliseconds},toString(){return`DateTime.Utc(${mf(this).toJSON()})`}};({...cf});const lf={[sf]:sf,[An](){return this.toString()}};({...lf}),{...lf};const uf=e=>P(e,of),kre=e=>e._tag===`Utc`,df=e=>{let t=Object.create(Ore);return t.epochMilliseconds=e,Object.defineProperty(t,"partsUtc",{value:void 0,enumerable:!1,writable:!0}),t},ff=e=>{let t=e.getTime();if(Number.isNaN(t))throw new Lu(`Invalid date`);return df(t)},pf=e=>{if(uf(e))return e;if(e instanceof Date)return ff(e);if(typeof e==`object`){if(`epochMilliseconds`in e)return ff(new Date(e.epochMilliseconds));let t=/* @__PURE__ */ new Date(0);return Pre(t,e),ff(t)}return typeof e==`string`&&!Are(e)?ff(/* @__PURE__ */ new Date(e+`Z`)):ff(new Date(e))},Are=e=>/Z|GMT|[+-]\d{2}$|[+-]\d{2}:?\d{2}$|\]$/.test(e),jre=/*#__PURE__*/ yi(pf),Mre=e=>df(e.epochMilliseconds),mf=e=>new Date(e.epochMilliseconds),Nre=e=>e.epochMilliseconds,Pre=(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)},Fre=e=>mf(e).toISOString();globalThis.String;const Ire=e=>e.trim(),Lre=(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)},hf=/*#__PURE__*/ M(2,(e,t)=>Lc(e,Rre,e=>t(e))),gf=e=>e.reasons.some(_f),_f=e=>e._tag===`Fail`&&Pu(e.error),vf=e=>{let t,n=!1;for(let r of e.reasons)_f(r)?t??=r.error:r._tag!==`Interrupt`&&(n=!0);return t===void 0?$i(e):n?$i(Eu(e.reasons.filter(e=>!_f(e)))):Qi(t)},Rre=e=>{let t=vf(e);return na(t)?t:Qi(t.success.value)},yf=e=>{let t=vf(e);return na(t)?Uu(t.failure):Hu(t.success.value)},zre=/*#__PURE__*/ M(2,(e,t)=>Hc(e,{onSuccess:t.onSuccess,onFailure:e=>{let n=vf(e);return na(n)?t.onFailure(n.failure):t.onDone(n.success.value)}})),Bre=(e,t,n)=>ul(r=>bc(n?.local?Ld(t,Pd(),r):zd(t,r),t=>jc(e,t))),Vre=/*#__PURE__*/ M(e=>Zn(e[0]),(e,t,n)=>Ni(t)?jc(e,t):Bre(e,Array.isArray(t)?Xd(...t):t,n)),bf=`~effect/MutableHashMap`,Hre={[bf]:bf,[Symbol.iterator](){return this.backing[Symbol.iterator]()},toString(){return`MutableHashMap(${wn(Array.from(this))})`},toJSON(){return{_id:`MutableHashMap`,values:jn(Array.from(this))}},[An](){return this.toJSON()},pipe(){return lt(this,arguments)}},Ure=()=>{let e=Object.create(Hre);return e.backing=/* @__PURE__ */ new Map,e.buckets=/* @__PURE__ */ new Map,e},xf=/*#__PURE__*/ M(2,(e,t)=>{if(e.backing.has(t))return di(e.backing.get(t));if(Sf(t))return ui();let n=Ut(t),r=e.buckets.get(n);return r===void 0?ui():Wre(e,r,t)}),Sf=e=>typeof e!=`object`&&typeof e!=`function`,Wre=(e,t,n)=>{for(let r=0,i=t.length;r<i;r++)if(cn(n,t[r])){let n=t[r];return di(e.backing.get(n))}return ui()},Gre=/*#__PURE__*/ M(3,(e,t,n)=>{if(e.backing.has(t)||Sf(t))return e.backing.set(t,n),e;let r=Ut(t),i=e.buckets.get(r);if(i===void 0)return e.buckets.set(r,[t]),e.backing.set(t,n),e;let a=Kre(i,t);return a===void 0&&(i.push(t),a=t),e.backing.set(a,n),e}),Kre=(e,t)=>{for(let n=0,r=e.length;n<r;n++)if(cn(t,e[n]))return e[n]},Cf=/*#__PURE__*/ M(2,(e,t)=>{if(Sf(t))return e.backing.delete(t),e;let n=Ut(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||cn(t,i)){e.backing.delete(i),r.splice(n,1);break}}return r.length===0&&e.buckets.delete(n),e}),qre=e=>(e.backing.clear(),e.buckets.clear(),e),Jre=e=>e.backing.size,wf=Zn,Tf=Yne,Ef=Tl,Df=wl,Of=Hs,kf=Us,I=ks,Af=Is,jf=Ns,L=Ms,R=Bs,Mf=qs,Nf=Js,z=Ys,B=js,Pf=As,Ff=Ls,If=Rs,Lf=Vs,Yre=Fs,Rf=Tr,zf=Ps,V=bc,Xre=Wte,Bf=gc,Vf=_c,Hf=Vc,Zre=bne,Uf=Kc,H=Sc,Wf=ic,Gf=vc,Kf=Rc,qf=mne,Qre=hne,Jf=Pc,Yf=lne,Xf=zc,$re=cne,Zf=Bc,Qf=_ne,$f=fne,ep=une,tp=vne,np=yne,eie=hre,tie=One,rp=qc,nie=Ene,ip=iu,rie=Vte,ap=yc,iie=one,op=Gc,aie=Hte,sp=Hc,cp=Wc,lp=rne,up=Ac,dp=Vre,fp=jc,oie=ane,pp=tne,mp=nne,hp=Oc,gp=Mc,_p=cl,vp=Pne,sie=ul,yp=Ine,bp=Lne,xp=Rne,Sp=hl,Cp=fl,wp=ml,Tp=Gne,Ep=Wne,Dp=Kne,Op=Sl,kp=Vne,Ap=_l,jp=Cl,Mp=sne,cie=ore,lie=rre,Np=Yl,Pp=are,Fp=Zl,Ip=Qne,Lp=jl,Rp=$ne,zp=Nl,Bp=Ml,Vp=Il,uie=Fl,Hp=zl,Up=Rl,U=Xs,Wp=$s,Gp=ru,die=/*#__PURE__*/ Su(`Fatal`),Kp=/*#__PURE__*/ Su(`Warn`),qp=/*#__PURE__*/ Su(`Error`),fie=/*#__PURE__*/ Su(`Info`),pie=/*#__PURE__*/ Su(`Debug`),Jp=/*#__PURE__*/ M(e=>wf(e[0]),(e,...t)=>kc(e,fd,e=>{let n=t.length===1?{...e,...t[0]}:{...e};return t.length===1||Rn(n,t[0],t[1]),n})),Yp=(e,t,n)=>(...r)=>Mf(i=>{try{e(...r,(e,n)=>{i(e?t?jf(()=>B(t(e,r))):B(e):I(n))})}catch(e){i(n?B(n(e,r)):If(e))}}),Xp=Gte,Zp=Kte,Qp=qte,$p=Ute,em=Jte,tm=tc,nm=`~effect/BigDecimal`,rm={[nm]:nm,[Ht](){let e=dm(this);return Kt(Xt(String(e.value)),Yt(e.scale))},[sn](e){return im(e)&&hm(this,e)===0},toString(){return`BigDecimal(${_m(this)})`},toJSON(){return{_id:`BigDecimal`,value:String(this.value),scale:this.scale}},[An](){return this.toJSON()},pipe(){return lt(this,arguments)}},im=e=>P(e,nm),am=(e,t)=>{if(!Number.isSafeInteger(t))throw RangeError(`Scale must be a safe integer, got ${t}`);let n=Object.create(rm);return n.value=e,n.scale=t,n},om=(e,t)=>{let n=am(e,t);return n.normalized=n,n},sm=/*#__PURE__*/ BigInt(0),cm=/*#__PURE__*/ BigInt(1),lm=/*#__PURE__*/ BigInt(10),um=/*#__PURE__*/ om(sm,0),dm=e=>{if(e.normalized===void 0){if(e.value===sm)e.normalized=um;else{let t=`${e.value}`,n=t.length;for(;t[n-1]===`0`;)n--;e.normalized=om(BigInt(t.slice(0,n)),e.scale-(t.length-n))}}return e.normalized},fm=[cm],pm=(e,t)=>e===t?0:e<t?-1:1,mm=(e,t)=>{let n=`${e.value<sm?-e.value:e.value}`,r=`${t.value<sm?-t.value:t.value}`,i=BigInt(n.length-r.length)-BigInt(e.scale)+BigInt(t.scale);if(i!==sm)return i<sm?-1:1;let a=Math.max(n.length,r.length);return Wee(n.padEnd(a,`0`),r.padEnd(a,`0`))},hm=(e,t)=>{if(e.scale===t.scale)return pm(e.value,t.value);let n=gm(e),r=gm(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?mm(t,e):mm(e,t);let o=fm[a]??=lm**BigInt(a);return i>0?pm(e.value,t.value*o):pm(e.value*o,t.value)},gm=e=>e.value===sm?0:e.value<sm?-1:1,_m=e=>{let t=dm(e);if(Math.abs(t.scale)>=16)return vm(t);let n=t.value<sm,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},vm=e=>{if(ym(e))return`0e+0`;let t=dm(e),n=`${t.value}`,r=t.value<sm?2:1,i=n.slice(0,r),a=n.slice(r),o=a.length-t.scale;return`${i}${a===``?``:`.${a}`}e${o>=0?`+`:``}${o}`},ym=e=>e.value===sm,bm=globalThis.BigInt,xm=e=>e>bm(2**53-1)||e<bm(-(2**53-1))?ui():di(Number(e)),Sm=/*#__PURE__*/ BigInt(0),Cm=/*#__PURE__*/ BigInt(1),wm=/*#__PURE__*/ BigInt(1e3),Tm=/*#__PURE__*/ BigInt(1024),Em=[{symbol:`B`,factor:Cm,names:[`B`,`byte`,`bytes`]},{symbol:`kB`,factor:wm,names:[`kB`,`kilobyte`,`kilobytes`]},{symbol:`MB`,factor:wm**/*#__PURE__*/ BigInt(2),names:[`MB`,`megabyte`,`megabytes`]},{symbol:`GB`,factor:wm**/*#__PURE__*/ BigInt(3),names:[`GB`,`gigabyte`,`gigabytes`]},{symbol:`TB`,factor:wm**/*#__PURE__*/ BigInt(4),names:[`TB`,`terabyte`,`terabytes`]},{symbol:`PB`,factor:wm**/*#__PURE__*/ BigInt(5),names:[`PB`,`petabyte`,`petabytes`]},{symbol:`EB`,factor:wm**/*#__PURE__*/ BigInt(6),names:[`EB`,`exabyte`,`exabytes`]},{symbol:`ZB`,factor:wm**/*#__PURE__*/ BigInt(7),names:[`ZB`,`zettabyte`,`zettabytes`]},{symbol:`YB`,factor:wm**/*#__PURE__*/ BigInt(8),names:[`YB`,`yottabyte`,`yottabytes`]},{symbol:`RB`,factor:wm**/*#__PURE__*/ BigInt(9),names:[`RB`,`ronnabyte`,`ronnabytes`]},{symbol:`QB`,factor:wm**/*#__PURE__*/ BigInt(10),names:[`QB`,`quettabyte`,`quettabytes`]}],Dm=[Em[0],{symbol:`KiB`,factor:Tm,names:[`KiB`,`kibibyte`,`kibibytes`]},{symbol:`MiB`,factor:Tm**/*#__PURE__*/ BigInt(2),names:[`MiB`,`mebibyte`,`mebibytes`]},{symbol:`GiB`,factor:Tm**/*#__PURE__*/ BigInt(3),names:[`GiB`,`gibibyte`,`gibibytes`]},{symbol:`TiB`,factor:Tm**/*#__PURE__*/ BigInt(4),names:[`TiB`,`tebibyte`,`tebibytes`]},{symbol:`PiB`,factor:Tm**/*#__PURE__*/ BigInt(5),names:[`PiB`,`pebibyte`,`pebibytes`]},{symbol:`EiB`,factor:Tm**/*#__PURE__*/ BigInt(6),names:[`EiB`,`exbibyte`,`exbibytes`]},{symbol:`ZiB`,factor:Tm**/*#__PURE__*/ BigInt(7),names:[`ZiB`,`zebibyte`,`zebibytes`]},{symbol:`YiB`,factor:Tm**/*#__PURE__*/ BigInt(8),names:[`YiB`,`yobibyte`,`yobibytes`]}],Om=[...Em,.../*#__PURE__*/ Dm.slice(1)],km=/*#__PURE__*/ new Map(/*#__PURE__*/ Om.flatMap(e=>e.names.map(t=>[t,e]))),Am=/*#__PURE__*/ new Map(/*#__PURE__*/ Om.map(e=>[e.symbol,e])),jm=e=>e,Mm=/*#__PURE__*/ jm(Sm),Nm=e=>{throw Error(`Invalid ByteSize: ${e}`)},Pm=e=>!Number.isSafeInteger(e)||e<0?Nm(`expected a non-negative safe integer, received ${e}`):jm(BigInt(e)),Fm=(e,t)=>{if(typeof e==`bigint`)return e<Sm?Nm(`expected a non-negative quantity, received ${e}`):jm(e*t.factor);let n=e*Number(t.factor);return!Number.isSafeInteger(n)||n<0?Nm(`expected an exact non-negative safe-integer byte result, received ${e} ${t.symbol}`):jm(BigInt(n))},Im=e=>{let t=/^\s*(\d+)(?:\.(\d+))?\s*([A-Za-z]+)\s*$/.exec(e);if(t===null)return Nm(`unsupported syntax ${JSON.stringify(e)}`);let n=km.get(t[3]);if(n===void 0)return Nm(`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===Sm?jm(a/i):Nm(`${JSON.stringify(e)} does not represent an integral number of bytes`)},Lm=e=>{switch(typeof e){case`bigint`:return e<Sm?Nm(`expected a non-negative bigint, received ${e}`):jm(e);case`number`:return Pm(e);case`string`:return Im(e)}return Nm(`unsupported input ${e}`)},Rm=/*#__PURE__*/ yi(Lm),zm=e=>typeof e==`bigint`?Lm(e):Pm(e),Bm=/*#__PURE__*/ (e=>t=>Fm(t,Am.get(e)))(`MiB`),Vm=uf,Hm=kre,Um=ff,Wm=pf,Gm=jre,Km=Mre,qm=Nre,Jm=Fre,Ym=e=>Qm(typeof e==`string`?$m.encode(e):e),Xm=e=>{let t=th(e),n=t.length;if(n%4!=0)return $i(new vo({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 $i(new vo({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=ih(t.charCodeAt(e))<<18|ih(t.charCodeAt(e+1))<<12|ih(t.charCodeAt(e+2))<<6|ih(t.charCodeAt(e+3));r[i]=n>>16,r[i+1]=n>>8&255,r[i+2]=n&255}return Qi(r)}catch(e){return $i(new vo({kind:`Decode`,module:`Base64`,input:t,message:e instanceof Error?e.message:`Invalid input`}))}},Zm=e=>aa(Xm(e),e=>eh.decode(e)),Qm=e=>{let t=e.length,n=``,r=2;for(;r<t;r+=3)n+=nh[e[r-2]>>2],n+=nh[(e[r-2]&3)<<4|e[r-1]>>4],n+=nh[(e[r-1]&15)<<2|e[r]>>6],n+=nh[e[r]&63];return r===t+1&&(n+=nh[e[r-2]>>2],n+=nh[(e[r-2]&3)<<4],n+=`==`),r===t&&(n+=nh[e[r-2]>>2],n+=nh[(e[r-2]&3)<<4|e[r-1]>>4],n+=nh[(e[r-1]&15)<<2],n+=`=`),n},$m=/*#__PURE__*/ new TextEncoder,eh=/*#__PURE__*/ new TextDecoder,th=e=>e.replace(/[\n\r]/g,``),nh=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,rh=/*#__PURE__*/ (/* @__PURE__ */ new Uint8Array(123)).fill(255);for(let e=0;e<64;e++)rh[/*#__PURE__*/ nh.charCodeAt(e)]=e;rh[61]=0;const ih=e=>{if(e>=rh.length||rh[e]===255)throw TypeError(`Invalid character ${String.fromCharCode(e)}`);return rh[e]},ah=`~effect/http/Cookies`,oh=e=>P(e,ah),sh=`~effect/http/Cookies/Cookie`,ch=`~effect/http/Cookies/CookieError`;var lh=class extends ho{},uh=class e extends (/*#__PURE__*/ go(`CookiesError`)){static fromReason(t,n){return new e({reason:new lh({_tag:t,cause:n})})}[ch]=ch;get message(){return this.reason._tag}};const dh={[ah]:ah,...Mn,toJSON(){return{_id:`effect/Cookies`,cookies:pa(this.cookies,e=>e.toJSON())}},pipe(){return lt(this,arguments)}},fh=e=>{let t=Object.create(dh);return t.cookies=e,t},ph=e=>{let t={};for(let n of e)Rn(t,n.name,n);return fh(t)},mh=e=>{let t=typeof e==`string`?[e]:e,n=[];for(let e of t){let t=hh(e.trim());t&&n.push(t)}return ph(n)};function hh(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(!yh.test(r))return;let i=t[0].slice(n+1),a=Mh(i);if(t.length===1)return Object.assign(Object.create(Sh),{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=no(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(Sh),{name:r,value:a,valueEncoded:i,options:Object.keys(o).length>0?o:void 0})}const gh=/*#__PURE__*/ ph([]),_h=e=>da(e.cookies),vh=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,yh=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,bh=/^[\u0009\u0020-\u003a\u003c-\u007e\u0080-\u00ff]+$/,xh=/^[\u0020-\u003a\u003c-\u007e]+$/,Sh={[sh]:sh,...Mn,toJSON(){return{_id:`effect/Cookies/Cookie`,name:this.name,value:this.value,options:this.options}}};function Ch(e,t,n){let r=encodeURIComponent(t),i=wh(e,r,n);return i===void 0?Qi(Object.assign(Object.create(Sh),{name:e,value:t,valueEncoded:r,options:n})):$i(i)}function wh(e,t,n){if(!yh.test(e))return uh.fromReason(`InvalidCookieName`);if(t&&!vh.test(t))return uh.fromReason(`InvalidCookieValue`);if(n?.domain!==void 0&&!bh.test(n.domain))return uh.fromReason(`InvalidCookieDomain`);if(n?.path!==void 0&&!xh.test(n.path))return uh.fromReason(`InvalidCookiePath`);if(n?.maxAge!==void 0&&!Ya(Ga(n.maxAge)))return uh.fromReason(`CookieInfinityMaxAge`)}const Th=/*#__PURE__*/ M(2,(e,t)=>fh({...e.cookies,...t.cookies})),Eh=/*#__PURE__*/ M(e=>oh(e[0]),(e,t,n,r)=>aa(Ch(t,n,r),n=>fh(ga(e.cookies,t,n))));function Dh(e){let t=wh(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=gte(Ga(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 Oh=e=>Object.values(e.cookies).map(e=>`${e.name}=${e.valueEncoded}`).join(`; `),kh=e=>{let t={},n=Object.values(e.cookies);for(let e=0;e<n.length;e++){let r=n[e];Rn(t,r.name,r.value)}return t},Ah=e=>Object.values(e.cookies).map(Dh);function jh(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();Rn(t,o,n.indexOf(`%`)===-1?n:Mh(n))}r=i+1}return t}const Mh=e=>{try{return decodeURIComponent(e)}catch{return e}},Nh=/*#__PURE__*/ new WeakMap,Ph=e=>{if(Nh.has(e))return Nh.get(e);throw Error(`Unable to get redacted value`+(e.label?` with label: "${e.label}"`:``))},Fh=`~effect/Redacted`,Ih=e=>P(e,Fh),Lh=(e,t)=>{let n=Object.create(Rh);return t?.label&&(n.label=t.label),Nh.set(n,e),n},Rh={[Fh]:{_A:e=>e},label:void 0,...Xn,toJSON(){return this.toString()},toString(){return`<redacted${Tt(this.label)?`:`+this.label:``}>`},[Ht](){return Ut(Nh.get(this))},[sn](e){return Ih(e)&&cn(Nh.get(this),Nh.get(e))}},zh=Ph,Bh=e=>Lr((t,n)=>e(zh(t),zh(n))),Vh=/*#__PURE__*/ Symbol.for(`~effect/http/Headers`),Hh=/*#__PURE__*/ Object.defineProperties(/*#__PURE__*/ Object.create(null),{[Vh]:{value:Vh},[vn]:{value(e){return $h(this,Ui(e,tg))}},toJSON:{value(){return yn(this)}},[sn]:{value(e){return Wh(this,e)}},[Ht]:{value(){return Zt(this)}},toString:{value:Mn.toString},[An]:{value:Mn[An]}}),Uh=e=>Object.assign(Object.create(Hh),e),Wh=/*#__PURE__*/ va(/*#__PURE__*/ zr()),Gh=/*#__PURE__*/ Object.create(Hh),Kh=e=>{if(e===void 0)return Gh;if(Symbol.iterator in e){let t=Object.create(Hh);for(let[n,r]of e)t[n.toLowerCase()]=r;return t}let t=Object.create(Hh);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},qh=e=>Object.setPrototypeOf(e,Hh),Jh=/*#__PURE__*/ M(3,(e,t,n)=>{let r=Uh(e);return r[t.toLowerCase()]=n,r}),Yh=/*#__PURE__*/ M(2,(e,t)=>Uh({...e,...Kh(t)})),Xh=/*#__PURE__*/ M(2,(e,t)=>{let n=Uh(e);return Object.assign(n,t),n}),Zh=/*#__PURE__*/ M(2,(e,t)=>{let n=Uh(e);return delete n[t.toLowerCase()],n}),Qh=/*#__PURE__*/ M(2,(e,t)=>{let n=Uh(e);for(let e of t)delete n[e.toLowerCase()];return n}),$h=/*#__PURE__*/ M(2,(e,t)=>{let n={...e},r=t=>{if(typeof t==`string`){let r=t.toLowerCase();r in e&&(n[r]=Lh(e[r]))}else for(let r in e)r.search(t)!==-1&&(n[r]=Lh(e[r]))};if(Array.isArray(t))for(let e=0;e<t.length;e++)r(t[e]);else r(t);return n}),eg=(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},tg=/*#__PURE__*/ Yi(`effect/Headers/CurrentRedactedNames`,{defaultValue:()=>[`authorization`,`cookie`,`set-cookie`,`x-api-key`,`AWSAccessKeyId`,`Signature`,`sig`,`X-Goog-Signature`]}),ng=`~effect/http/UrlParams`,rg=e=>P(e,ng),ig={...Xn,[ng]:ng,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:`UrlParams`,params:Object.fromEntries(this.params)}},[sn](e){return cg(this,e)},[Ht](){return $t(this.params.flat())}},ag=e=>{let t=Object.create(ig);return t.params=e,t},og=e=>{if(rg(e))return e;let t=sg(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 ag(n)},sg=e=>{let t=typeof e[Symbol.iterator]==`function`?ba(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=sg(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},cg=/*#__PURE__*/ Lr((e,t)=>lg(e.params,t.params)),lg=/*#__PURE__*/ Na(/*#__PURE__*/ ca([/*#__PURE__*/ zr(),/*#__PURE__*/ zr()])),ug=/*#__PURE__*/ ag([]),dg=/*#__PURE__*/ M(2,(e,t)=>{let n=og(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 ag(n)}),fg=e=>new URLSearchParams(og(e).params).toString(),pg=e=>{let t={};for(let[n,r]of e.params)if(!Object.hasOwn(t,n))Rn(t,n,r);else{let e=t[n];typeof e==`string`?Rn(t,n,[e,r]):e.push(r)}return t};function mg(e){return e.checks?e.checks[e.checks.length-1].annotations:e.annotations}function hg(e){return t=>mg(t)?.[e]}const gg=`~structural`,_g=`~identifier`,vg=`~sentinels`,yg=`~constructor`,bg=[`title`,`description`,`default`,`examples`,`readOnly`,`writeOnly`,`format`,`contentEncoding`,`contentMediaType`,`contentSchema`],xg=/*#__PURE__*/ hg(`identifier`),Sg=/*#__PURE__*/ hg(_g),Cg=/*#__PURE__*/ hg(`description`),wg=/*#__PURE__*/ vt(e=>{let t=mg(e)?.identifier;return typeof t==`string`?t:e.getExpected(wg)}),Tg=/*#__PURE__*/ new Set([vg,gg,`representation`,`arbitraryConstraint`,`toJsonSchema`,`toCode`,`toEquivalence`,`toFormatter`,`toCodec`,`toCodecJson`,`toCodecStringTree`,`toCodecIso`,`toCodecArbitrary`]),Eg=/*#__PURE__*/ Symbol(),Dg=Hu,Og=/*#__PURE__*/ Dg(Eg),kg=/*#__PURE__*/ Dg(Eg),Ag=e=>e===Eg?ui():di(e),jg=e=>e._tag===`None`?Og:Dg(e.value),Mg=`~effect/SchemaIssue/Issue`;function Ng(e){return P(e,Mg)&&e[Mg]===Mg}function Pg(e){return Object.hasOwn(e,`input`)}var Fg=class{[Mg]=Mg;constructor(e,t){t?.reportInput===!0&&e!==Eg&&(this.input=e)}};const Ig=class extends Fg{_tag=`Filter`;filter;issue;constructor(e,t,n,r){super(n,r),this.filter=e,this.issue=t}},Lg=class extends Fg{_tag=`Encoding`;ast;issue;constructor(e,t,n,r){super(n,r),this.ast=e,this.issue=t}},Rg=class extends Fg{_tag=`Pointer`;path;issue;constructor(e,t){super(),this.path=e,this.issue=t}},zg=class extends Fg{_tag=`MissingKey`;annotations;constructor(e){super(),this.annotations=e}},Bg=class extends Fg{_tag=`UnexpectedKey`;ast;constructor(e,t,n){super(t,n),this.ast=e}},Vg=class extends Fg{_tag=`Composite`;ast;issues;constructor(e,t,n,r){super(n,r),this.ast=e,this.issues=t}},Hg=class extends Fg{_tag=`InvalidType`;ast;constructor(e,t,n){super(t,n),this.ast=e}},Ug=class extends Fg{_tag=`InvalidValue`;annotations;constructor(e,t,n){super(t,n),this.annotations=e}};function Wg(e,t,n,r,i){return new Vg(e,[new Rg([t],n)],r,i)}const Gg=class extends Fg{_tag=`Forbidden`;annotations;constructor(e,t,n){super(t,n),this.annotations=e}},Kg=class extends Fg{_tag=`AnyOf`;ast;issues;constructor(e,t,n,r){super(n,r),this.ast=e,this.issues=t}},qg=class extends Fg{_tag=`OneOf`;ast;successes;constructor(e,t,n,r){super(n,r),this.ast=e,this.successes=t}};function Jg(e,t,n){if(Ng(e))return e;if(typeof e==`string`)return new Ug({message:e},t,n);let r=typeof e.issue==`string`?new Ug({message:e.issue},t,n):e.issue;return new Rg(e.path,r)}function Yg(e,t,n){if(e!==void 0)return typeof e==`boolean`?e?void 0:new Ug(void 0,t,n):Jg(e,t,n)}function Xg(e,t,n,r){return Array.isArray(t)?wa(t)?t.length===1?Jg(t[0],n,r):new Vg(e,Ma(t,e=>Jg(e,n,r)),n,r):void 0:Yg(t,n,r)}const Zg=e=>{let t=c_(e);if(t!==void 0)return t;switch(e._tag){case`InvalidType`:return n_(wg(e.ast),e);case`InvalidValue`:{let t=t_(e);if(t!==void 0)return n_(t,e);let n=e_(e);return n===void 0?`Expected a valid value`:`Invalid data ${n}`}case`MissingKey`:return`Missing key`;case`UnexpectedKey`:{let t=e_(e);return t===void 0?`Expected no excess property`:`Unexpected key with value ${t}`}case`Forbidden`:return`Forbidden operation`;case`OneOf`:{let t=e_(e);return t===void 0?`Expected exactly one member to match`:`Expected exactly one member to match the input ${t}`}}},Qg=e=>c_(e.issue)??c_(e);function $g(e){return t=>({issues:r_(t,[],e?.leafHook??Zg,e?.checkHook??Qg)})}function e_(e){return Pg(e)?wn(e.input):void 0}function t_(e){let t=e.annotations?.expected;return typeof t==`string`?t:void 0}function n_(e,t){let n=e_(t);return n===void 0?`Expected ${e}`:`Expected ${e}, got ${n}`}function r_(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 r_(e.issue,t,n,r);let a=t_(e.issue);return[{path:t,message:a===void 0?n_(i_(e.filter),e):n_(a,e.issue)}]}case`Encoding`:return r_(e.issue,t,n,r);case`Pointer`:return r_(e.issue,[...t,...e.path],n,r);case`Composite`:return e.issues.flatMap(e=>r_(e,t,n,r));case`AnyOf`:return e.issues.length===0?[{path:t,message:c_(e)??n_(wg(e.ast),e)}]:e.issues.flatMap(e=>r_(e,t,n,r));default:return[{path:t,message:n(e)}]}}function i_(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=>i_(e)).join(` & `)}}function a_(){return e=>s_(e,``)}const o_=/*#__PURE__*/ a_();function s_(e,t){let n;switch(e._tag){case`Filter`:{let r=Qg(e);if(r!==void 0)n=r;else{if(e.issue._tag!==`InvalidValue`)return s_(e.issue,t);let r=t_(e.issue);n=r===void 0?n_(i_(e.filter),e):n_(r,e.issue)}break}case`Encoding`:return s_(e.issue,t);case`Pointer`:return s_(e.issue,t+En(e.path));case`Composite`:case`AnyOf`:if(e._tag===`Composite`||e.issues.length>0)return e.issues.map(e=>s_(e,t)).join(`
16
- `);n=c_(e)??n_(wg(e.ast),e);break;default:n=Zg(e)}return t?`${n}\n at ${t}`:n}function c_(e){if(e._tag===`Pointer`)return;if(e._tag===`Encoding`)return c_(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 l_(e){let t;for(let n of e.reasons){if(!Tu(n)||!Ng(n.error))return;t??=n.error}return t}function u_(e,t){let n=l_(e);if(n===void 0)throw Error(t,{cause:e});return n}const d_=(e,t,n)=>{switch(e._tag){case`Passthrough`:return I(t);case`Transform`:return I(bi(t,e.transform));case`TransformOptional`:return I(e.transform(t));case`TransformEffect`:return fi(t)?Af:Xp(e.transform(t.value,n),di);case`TransformOptionalEffect`:return e.transform(t,n)}},f_=e=>Object.assign(Object.create(ut),e),p_=(e,t)=>C_((n,r)=>$p(d_(e,n,r),e=>d_(t,e,r))),m_=/*#__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 b_(n=>t.transform(e.transform(n)));case`TransformOptional`:return S_(n=>t.transform(bi(n,e.transform)));case`TransformEffect`:return x_((n,r)=>t.transform(e.transform(n),r));case`TransformOptionalEffect`:return p_(e,t)}case`TransformOptional`:switch(t._tag){case`Transform`:return S_(n=>bi(e.transform(n),t.transform));case`TransformOptional`:return S_(n=>t.transform(e.transform(n)));case`TransformEffect`:case`TransformOptionalEffect`:return p_(e,t)}case`TransformEffect`:switch(t._tag){case`Transform`:return x_((n,r)=>Xp(e.transform(n,r),t.transform));case`TransformOptional`:case`TransformOptionalEffect`:return p_(e,t);case`TransformEffect`:return x_((n,r)=>$p(e.transform(n,r),e=>t.transform(e,r)))}case`TransformOptionalEffect`:return p_(e,t)}});function h_(e){return C_((t,n)=>B(e(t,n)))}function g_(e){return h_((t,n)=>{let r={message:e(t)};return pi(t)?new Gg(r,t.value,n):new Gg(r)})}const __=/*#__PURE__*/ g_(()=>`Encoding is not supported`),v_=/*#__PURE__*/ f_({_tag:`Passthrough`});function y_(){return v_}function b_(e){return f_({_tag:`Transform`,transform:e})}function x_(e){return f_({_tag:`TransformEffect`,transform:e})}function S_(e){return f_({_tag:`TransformOptional`,transform:e})}function C_(e){return f_({_tag:`TransformOptionalEffect`,transform:e})}function w_(e){return C_(t=>{let n=Jee(t,Mt);return pi(n)?I(n):Xp(e,di)})}function T_(){return b_(globalThis.String)}function E_(){return b_(globalThis.Number)}function D_(){return b_(Ire)}function O_(e){return x_((t,n)=>Lf({try:()=>JSON.parse(t,e?.reviver),catch:()=>new Ug({expected:`a valid JSON string`},t,n)}))}function k_(e){return x_((t,n)=>Lf({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 Ug({expected:`a JSON-serializable value`},t,n)}))}function A_(e){let t=e?.separator??`,`;return b_(e=>e===``?[]:e.split(t))}function j_(){return b_(Ym)}function M_(){return x_((e,t)=>Zp(zf(Xm(e)),()=>new Ug({expected:`a valid Base64 string`},e,t)))}const N_=class extends dt{_tag=`Middleware`;decode;encode;constructor(e,t){super(),this.decode=e,this.encode=t}flip(){return new N_(this.encode,this.decode)}},P_=`~effect/SchemaTransformation/Transformation`,F_=class extends dt{[P_]=P_;_tag=`Transformation`;decode;encode;constructor(e,t){super(),this.decode=e,this.encode=t}flip(){return new F_(this.encode,this.decode)}};function I_(e){return P(e,P_)&&e[P_]===P_}const L_=e=>I_(e)?e:new F_(e.decode,e.encode);function R_(e){return new F_(x_(e.decode),x_(e.encode))}function z_(e){return new F_(b_(e.decode),b_(e.encode))}function B_(){return new F_(D_(),y_())}const V_=/*#__PURE__*/ new F_(/*#__PURE__*/ y_(),/*#__PURE__*/ y_());function H_(){return V_}const U_=/*#__PURE__*/ new F_(/*#__PURE__*/ E_(),/*#__PURE__*/ T_()),W_=e=>Rt(e)&&typeof e.message==`string`,G_=e=>{let t=Object.hasOwn(e,`cause`)?Error(e.message,{cause:Y_(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},K_=e=>{try{let t=kn(e);return t===void 0?wn(e):JSON.parse(t)}catch{return wn(e)}},q_=(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},J_=e=>{let t=/* @__PURE__ */ new WeakSet,n=r=>{if(bee(r)){if(t.has(r))return`[Circular]`;t.add(r);let i=q_(r,e,n);return t.delete(r),i}return K_(r)};return n},Y_=e=>W_(e)?G_(e):e,X_=e=>z_({decode:Y_,encode:J_(e)}),Z_=/*#__PURE__*/ new F_(/*#__PURE__*/ M_(),/*#__PURE__*/ j_());function Q_(e){return new F_(O_(e??{}),k_(e))}function $_(e){return t=>t._tag===e}const ev=/*#__PURE__*/ $_(`Declaration`),tv=/*#__PURE__*/ $_(`Null`),nv=/*#__PURE__*/ $_(`Undefined`),rv=/*#__PURE__*/ $_(`Void`),iv=/*#__PURE__*/ $_(`Never`),av=/*#__PURE__*/ $_(`Literal`),ov=/*#__PURE__*/ $_(`UniqueSymbol`),sv=/*#__PURE__*/ $_(`Enum`),cv=/*#__PURE__*/ $_(`Arrays`),lv=/*#__PURE__*/ $_(`Objects`),uv=/*#__PURE__*/ $_(`Union`),dv=/*#__PURE__*/ $_(`Suspend`),fv=class{to;transformation;constructor(e,t){this.to=e,this.transformation=t}},pv={},mv=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}},hv=`~effect/Schema`;var gv=class{[hv]=hv;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 _v=class extends gv{_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===Eg?Og:(e??=this.run(this.typeParameters))(t,this,n)}_rebuild(e,t,n,r,i){let a=Ey(this.typeParameters,e);return a===this.typeParameters&&t===this.checks&&n===this.encodingChecks&&r===this.run&&i===this.encodingRun?this:new _v(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>`}},vv=/*#__PURE__*/ new class extends gv{_tag=`Null`;getParser(){return Iy(this,null)}getExpected(){return`null`}},mie=class extends gv{_tag=`Undefined`;getParser(){return Iy(this,void 0)}toCodecJson(){return hy(this,[yv])}getExpected(){return`undefined`}},yv=/*#__PURE__*/ new fv(vv,/*#__PURE__*/ new F_(/*#__PURE__*/ b_(()=>void 0),/*#__PURE__*/ b_(()=>null))),bv=/*#__PURE__*/ new mie,hie=/*#__PURE__*/ new class extends gv{_tag=`Void`;getParser(){let e=Dg(void 0);return t=>t===Eg?Og:e}toCodecJson(){return hy(this,[yv])}getExpected(){return`void`}},gie=/*#__PURE__*/ new class extends gv{_tag=`Never`;getParser(){return Ly(this,It)}getExpected(){return`never`}},_ie=/*#__PURE__*/ new class extends gv{_tag=`Any`;getParser(){return Ly(this,Lt)}getExpected(){return`any`}},xv=/*#__PURE__*/ new class extends gv{_tag=`Unknown`;getParser(){return Ly(this,Lt)}getExpected(){return`unknown`}};function Sv(e){return typeof e==`number`?`parts[${e}]`:e}function Cv(e,t,n){if(n.has(e))return!0;if(e.encoding)throw Error(`TemplateLiteral parts cannot have an encoding at ${Sv(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=Sv(t);r=!e.checks&&e.parts.every((e,t)=>Cv(e,`${i}.parts[${t}]`,n));break}case`Union`:{let i=Sv(t);r=!e.checks&&e.types.every((e,t)=>Cv(e,`${i}.types[${t}]`,n));break}default:return!1}return r&&n.add(e),r}const vie=class extends gv{_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(!Cv(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 kv(!1,this.parts.map(Vy),[]),n=e(ky(Ev,t,yie(this)));return(e,t)=>{if(e===Eg)return Og;let r=n(e,t);return r._tag===`Success`?kg:Qp(r,{onSuccess:()=>e,onFailure:n=>new Vg(this,[n],e,t)})}}getExpected(){return`string`}matchPart(e,t){return Ry(this,e,t)===void 0?void 0:e}};function yie(e){return new F_(x_((t,n)=>{let r=Ry(e,t,n);return r?I(r):B(new Ug({expected:`a string matching template literal parts`},t,n))}),b_(e=>e.join(``)))}const wv=class extends gv{_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 ${wn(e)}`);this.literal=e}getParser(){return Iy(this,this.literal)}matchPart(e,t){return e===globalThis.String(this.literal)?this.literal:void 0}toCodecJson(){return typeof this.literal==`bigint`?Tv(this):this}toCodecStringTree(){return typeof this.literal==`string`?this:Tv(this)}getExpected(){return typeof this.literal==`string`?JSON.stringify(this.literal):globalThis.String(this.literal)}};function Tv(e){let t=globalThis.String(e.literal);return hy(e,[new fv(new wv(t),new F_(b_(()=>e.literal),b_(()=>t)))])}const Ev=/*#__PURE__*/ new class extends gv{_tag=`String`;getParser(){return Ly(this,Tt)}matchPart(e,t){let n=this.checks;return n&&!t.disableChecks&&Wy(n,e,void 0,this,t)?void 0:e}getExpected(){return`string`}},bie=class extends gv{_tag=`Number`;getParser(){return Ly(this,Et)}matchKey(e,t){return this._match(Wie,e,t)}matchPart(e,t){return this._match(Hy,e,t)}_match(e,t,n){if(!e.test(t))return;let r=globalThis.Number(t);return n.disableChecks||!this.checks?r:Wy(this.checks,r,void 0,this,n)?void 0:r}toCodecJson(){return this.checks&&(Dv(this.checks,`effect/schema/isFinite`)||Dv(this.checks,`effect/schema/isInt`))?this:hy(this,[Mie])}toCodecStringTree(){return this.toCodecJson()===this?hy(this,[Kie]):hy(this,[qie])}getExpected(){return`number`}};function Dv(e,t){return e.some(e=>e.annotations?.representation?.id===t||e._tag===`FilterGroup`&&Dv(e.checks,t))}const Ov=/*#__PURE__*/ new bie,xie=/*#__PURE__*/ new class extends gv{_tag=`Boolean`;getParser(){return Ly(this,Dt)}getExpected(){return`boolean`}},kv=class extends gv{_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(Ay(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(Ay(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 Bg(n,t[o],i),a=new Rg([o],r);if(i.errors===`all`)e.issues?e.issues.push(a):e.issues=[a];else return B(new Vg(n,[a],t,i))}return e.issues?B(new Vg(n,e.issues,t,i)):Dg(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:El(t.concurrency),f=d===1?Cie(i,e,0,u):wie(i,e,{concurrency:d,end:u});if(!f)return c(i);if(xc(f))return $p(f,()=>c(i));let p=!0;return jf(()=>p?(p=!1,V(f,()=>c(i))):l(e,t))};return(e,a)=>{if(e===Eg)return Og;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 Hg(n,e,a))}catch(e){return If(e)}}}_rebuild(e,t,n){let r=Ey(this.elements,e),i=Ey(this.rest,e);return r===this.elements&&i===this.rest&&t===this.checks&&n===this.encodingChecks?this:new kv(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 Sie(e,t,n,r){if(n._tag===`Failure`)return jv(e,e.ast,r,n);let i=n===kg?t:n[Wn];if(i!==Eg)e.output[r]=i;else{let t=e.getParser(e.tailThreshold,r);if(Ay(t.ast))return;let n=new Rg([r],new zg(t.ast.context?.annotations));if(e.options.errors===`all`)e.issues?e.issues.push(n):e.issues=[n];else return Wu(new Vg(e.ast,[n],e.input,e.options))}}const Av={onItem(e,t,n){let r=n<e.len?t:Eg;return e.getParser(e.tailThreshold,n).parser(r,e.options)},step:Sie},Cie=/*#__PURE__*/ Dl()(Av),wie=/*#__PURE__*/ kl()(Av),jv=(e,t,n,r)=>{if(r.cause.reasons.length===0)return r;let i=l_(r.cause);if(i===void 0)return Uu(Au(r.cause,r=>new Vg(t,[new Rg([n],r)],e.input,e.options)));let a=new Rg([n],i);if(e.options.errors===`all`)e.issues?e.issues.push(a):e.issues=[a];else return Wu(new Vg(t,[a],e.input,e.options))},Mv=`[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?`;function Nv(e,t,n=pv){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(zy(Ny(t)))}const Pv=class{name;type;constructor(e,t){this.name=e,this.type=t}};function Fv(e){switch(e._tag){case`String`:case`Number`:case`Symbol`:case`TemplateLiteral`:return!0;case`Union`:return e.types.every(Fv);default:return!1}}function Iv(e){let t=_y(e);switch(t._tag){case`String`:case`Number`:case`Symbol`:case`TemplateLiteral`:return!0;case`Union`:return t.types.every(Iv);default:return!1}}function Tie(e){return Fv(e)&&Iv(e)}const Lv=class{parameter;type;constructor(e,t){if(!Tie(e))throw Error(`Invalid index signature parameter ${e._tag}`);if(this.parameter=e,this.type=t,Ay(t)&&!Fy(t))throw Error("Cannot use `Schema.optionalKey` with index signatures, use `Schema.optional` instead.")}},Rv=class extends gv{_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 Ly(n,Ft);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(zy(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 jv(t,n,i,s)??qu;let c=s===kg?o:s[Wn];if(a!==Eg&&c!==Eg){if(r&&(e.has(i)||e.has(typeof a==`number`?globalThis.String(a):a)))return qu;Rn(t.out,a,c)}return qu},c=(e,r,i,a)=>{if(!a){let t=i.parserKey(r,e.options);if(!xc(t))return V(Uf(t),t=>c(e,r,i,t));a=t}if(a._tag===`Failure`)return jv(e,n,r,a)??qu;let o=a===kg?r:a[Wn],s=e.input[r],l=i.parserValue(s,e.options);return xc(l)?t(e,r,o,s,l):V(Uf(l),n=>t(e,r,o,s,n))},l=(e,n,r)=>{let i=e.input[n],a=r.parserValue(i,e.options);return xc(a)?t(e,n,n,i,a):V(Uf(a),r=>t(e,n,n,i,r))},u=i?kl()({onItem:(e,[t,n])=>n.is.parameter===Ev?l(e,t,n):c(e,t,n),step:(e,t,n)=>n._tag===`Failure`?n:void 0}):void 0;return tm(function*(t,d){if(t===Eg)return Eg;if(typeof t!=`object`||!t||Array.isArray(t))return yield*B(new Hg(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:El(d.concurrency),v=i&&g?n.indexSignatures.map(e=>Nv(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 Bg(n,f[a],d),r=new Rg([a],e);if(h){m.issues?m.issues.push(r):m.issues=[r];continue}return yield*B(new Vg(n,[r],t,d))}}}if(r){let e=_===1?Vv(m,a):Eie(m,a,{concurrency:_});e&&(yield*e)}if(i&&_===1)for(let e=0;e<i;e++){let t=o[e],n=t.is.parameter===Ev?l:c,r=v?.[e]??(t.is.parameter===Ev?Object.keys(f):Nv(f,t.is.parameter,d));for(let e=0;e<r.length;e++){let i=n(m,r[e],t);if(!xc(i))yield*i;else if(i._tag===`Failure`)return yield*i}}else if(u){let e=Aa();for(let t=0;t<i;t++){let n=o[t],r=v?.[t]??(n.is.parameter===Ev?Object.keys(f):Nv(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 Vg(n,m.issues,t,d)):p})};if(i)return c();let l,u=(e,t,n)=>{let r=a[t];return V(Uf(n),n=>{let i=zv(e,r,n);if(i)return i;let o=()=>Dg(e.out),s=Vv(e,a.slice(t+1));return s?$p(s,o):o()})};return(e,t)=>{if(e===Eg)return Og;if(t.errors===`all`||t.onExcessProperty!==void 0||t.concurrency!==void 0&&El(t.concurrency)!==1)return(l??=c())(e,t);if(typeof e!=`object`||!e||Array.isArray(e))return B(new Hg(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=$v(i,s),l=c?i[s]:Eg,d=n.parser(l,t);if(!xc(d))return u(o,e,d);if(d===kg){c&&Rn(a,s,l);continue}let f=zv(o,n,d);if(f)return f}}catch(e){return If(e)}return Dg(a)}}_rebuild(e,t,n,r){let i=Ey(this.propertySignatures,t=>{let n=e(t.type);return n===t.type?t:new Pv(t.name,n)}),a=Ey(this.indexSignatures,n=>{let r=t(n.parameter),i=e(n.type);return r===n.parameter&&i===n.type?n:new Lv(r,i)});return i===this.propertySignatures&&a===this.indexSignatures&&n===this.checks&&r===this.encodingChecks?this:new Rv(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 zv(e,t,n){if(n._tag===`Failure`)return jv(e,e.ast,t.name,n);if(n===kg)return;let r=n[Wn];if(r!==Eg)Rn(e.out,t.name,r);else if(delete e.out[t.name],!Ay(t.type)){let n=new Rg([t.name],new zg(t.type.context?.annotations));if(e.options.errors===`all`){e.issues?e.issues.push(n):e.issues=[n];return}return Wu(new Vg(e.ast,[n],e.input,e.options))}}const Bv={onItem(e,t){if(!$v(e.input,t.name))return t.parser(Eg,e.options);let n=e.input[t.name];return Rn(e.out,t.name,n),t.parser(n,e.options)},step:zv},Vv=/*#__PURE__*/ Dl()(Bv),Eie=/*#__PURE__*/ kl()(Bv);function Hv(e,t){return e?t?[...e,...t]:e:t}function Uv(e,t,n){return new Rv(Reflect.ownKeys(e).map(t=>new Pv(t,e[t].ast)),[],n,t)}function Wv(e){return e.ast}function Gv(e,t=void 0){return new kv(!1,e.map(e=>e.ast),[],void 0,t)}function Kv(e,t,n){return new ey(e.map(Wv),t,void 0,n)}function Die(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=Hv(i,e.checks)}return new Rv(n,r,void 0,i)}const qv=/*#__PURE__*/ yt(e=>{for(;;){if(dv(e))return xv;let t=e.encoding;if(!t)return e.recur?.(qv,N)??e;if(t.some(e=>e.transformation._tag===`Middleware`&&e.transformation.decode!==N))return xv;e=t[t.length-1].to}});function Jv(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(Jv)));default:return[`null`,`undefined`,`string`,`number`,`boolean`,`symbol`,`bigint`,`object`,`array`,`function`]}}function Yv(e){switch(e._tag){default:return[];case`Declaration`:{let t=e.annotations?.[vg];return Array.isArray(t)?t:[]}case`Objects`:return e.propertySignatures.flatMap(e=>{let t=e.type;if(!Ay(t)){if(av(t))return[{key:e.name,literal:t.literal}];if(ov(t))return[{key:e.name,literal:t.symbol}]}return[]});case`Arrays`:return e.elements.flatMap((e,t)=>{if(!Ay(e)){if(av(e))return[{key:t,literal:e.literal}];if(ov(e))return[{key:t,literal:e.symbol}]}return[]});case`Union`:{if(e.types.length===0)return[];let t=e.types.map(e=>Yv(qv(e)));return t[0].filter(e=>t.every(t=>t.some(t=>t.key===e.key&&t.literal===e.literal)))}case`Suspend`:return Yv(e.thunk())}}const Xv=/*#__PURE__*/ new WeakMap,Zv=/*#__PURE__*/ Object.freeze([]),Qv=e=>e===null?`null`:Array.isArray(e)?`array`:typeof e,$v=(e,t)=>t===`__proto__`?Object.hasOwn(e,t):t in e;function Oie(e){let t=Xv.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=qv(c);if(iv(l))continue;if(av(l)||ov(l)){a??=/* @__PURE__ */ new Map;let e=av(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=Yv(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=Jv(l);for(let n of e)(i[n]??=[]).push(t)}}let c={},l=e=>c[e]??=Object.freeze(i?.[e]??Zv);if(o&&a)a.forEach(Object.freeze),t=e=>a.get(e)??Zv;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(Bt(e)){let n=$v(e,r)?e[r]:void 0;if(n!==void 0)return a.get(n)??Zv;if(t)return o}return Zv}}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=Qv(t);if(!Bt(t))return l(a);let o=new Set(i?.[a]),s;if(e){let[n,[i]]=e,c=$v(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=$v(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=$v(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(Qv(e));return a?t.filter(t=>s[t]===void 0||s[t]===e):t};return Xv.set(e,t),t}const ey=class extends gv{_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===Eg)return Og;let i=(o??=Oie(n.types))(e,r);if(i.length===0)return B(new Kg(n,[],e,t));if(i.length===1){let r=a(i[0])(e,t);return r._tag===`Success`?r:xc(r)?ty(n,r.cause,e,t):kie(n,r,e,t)}return ny(n,a,i,e,t)}}_rebuild(e,t,n){let r=Ey(this.types,e);return r===this.types&&t===this.checks&&n===this.encodingChecks?this:new ey(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=Ny(t);switch(n._tag){case`Arrays`:{let t=n.elements.filter(av);if(t.length>0)return`${ay(n.isMutable)}[ ${t.map(t=>e(t)+oy(t.context?.isOptional)).join(`, `)}, ... ]`;break}case`Objects`:{let t=n.propertySignatures.filter(e=>av(e.type));if(t.length>0)return`{ ${t.map(t=>`${ay(t.type.context?.isMutable)}${Tn(t.name)}${oy(t.type.context?.isOptional)}: ${e(t.type)}`).join(`, `)}, ... }`;break}}return e(n)});return Array.from(new Set(n)).join(` | `)}};function ty(e,t,n,r){let i=l_(t);return i?Wu(new Kg(e,[i],n,r)):Uu(t)}function kie(e,t,n,r){return Jf(t,t=>ty(e,t,n,r))}function ny(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=Aie(a,n);if(!o)return a.out?a.out:B(new Kg(e,a.issues??[],r,i));if(xc(o))return ry(o,a);let s=!0;return jf(()=>s?(s=!1,ry(o,a)):ny(e,t,n,r,i))}function ry(e,t){return $p(e,e=>t.out===kg?I(t.input):t.out?t.out:B(new Kg(t.ast,t.issues??[],t.input,t.options)))}const Aie=/*#__PURE__*/ Dl()({onItem(e,t){return e.parser(t)(e.input,e.options)},step(e,t,n){if(n._tag===`Failure`){let t=l_(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]),Wu(new qg(e.ast,e.successes,e.input,e.options));if(e.out=n,e.successes)e.successes.push(e.ast.types[t]);else return qu}}}),iy=/*#__PURE__*/ new ey([/*#__PURE__*/ new wv(`Infinity`),/*#__PURE__*/ new wv(`-Infinity`),/*#__PURE__*/ new wv(`NaN`)]);function ay(e){return e?``:`readonly `}function oy(e){return e?`?`:``}const sy=class extends dt{_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 sy(this.run,{...this.annotations,...e},this.aborted)}abort(){return new sy(this.run,this.annotations,!0)}and(e,t){return new cy([this,e],t)}},cy=class extends dt{_tag=`FilterGroup`;checks;annotations;constructor(e,t=void 0){super(),this.checks=e,this.annotations=t}annotate(e){return new cy(this.checks,{...this.annotations,...e})}and(e,t){return new cy([this,e],t)}};function ly(e,t,n=!1){return new sy((t,n,r)=>Xg(n,e(t,n,r),t,r),t,n)}function jie(e){return ly(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 uy=/*#__PURE__*/ by(Ov,[/*#__PURE__*/ jie()]),Mie=/*#__PURE__*/ new fv(/*#__PURE__*/ new ey([uy,iy]),/*#__PURE__*/ new F_(/*#__PURE__*/ E_(),/*#__PURE__*/ b_(e=>globalThis.Number.isFinite(e)?e:globalThis.String(e))));function dy(e,t){let n=new globalThis.RegExp(e),r={source:n.source,flags:n.flags};return ly(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 fy=/*#__PURE__*/ new WeakMap;function py(e,t){let n=Object.assign(Object.create(Object.getPrototypeOf(e)),e,t);return Reflect.ownKeys(t).every(e=>e===`context`||e===`encoding`)&&fy.set(n,my(e)),n}function my(e){let t=fy.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 fy.set(e,n),n}function hy(e,t){return e.encoding===t?e:py(e,{encoding:t})}function gy(e,t){if(e.context===t)return e;let n=my(e);return n.context===t&&n.encoding===e.encoding?n:py(e,{context:t})}function _y(e){return e.encoding?_y(e.encoding[e.encoding.length-1].to):e}function vy(e,t){if(e.checks){let n=e.checks[e.checks.length-1];return yy(e,Sa(e.checks.slice(0,-1),n.annotate(t)))}return py(e,{annotations:{...e.annotations,...t}})}function yy(e,t){if(e._tag===`Suspend`&&t)throw Error(`Cannot add checks to Suspend`);return e.checks===t?e:py(e,{checks:t})}function by(e,t){return yy(e,Hv(e.checks,t))}function xy(e,t){let n=t(e.to);return n===e.to?e:new fv(n,e.transformation)}function Sy(e,t){let n=e,r=n[n.length-1],i=xy(r,t);return i===r?e:Sa(e.slice(0,e.length-1),i)}function Cy(e){return t=>t.encoding?hy(t,Sy(t.encoding,e)):t}function wy(e,t){return Cy(e=>gy(e,t))(e)}function Nie(e){function t(n){return n.encoding?hy(n,Sy(n.encoding,t)):e(n)}return vt(t)}function Ty(e,t){function n(r){if(r.encoding){let e=r.encoding[r.encoding.length-1];return t?.stopAt?.(e)?r:hy(r,Sy(r.encoding,n))}return e(r)}return yt(n)}function Pie(e,t,n){let r=new fv(e,t);return hy(n,n.encoding?[...n.encoding,r]:[r])}function Ey(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 Dy(e,t){return gy(e,e.context?new mv(e.context.isOptional,e.context.isMutable,e.context.constructorDefault,{...e.context.annotations,...t}):new mv(!1,!1,void 0,t))}const Oy=/*#__PURE__*/ yt(e=>{let t=e.context?e.context.isOptional===!1?new mv(!0,e.context.isMutable,e.context.constructorDefault,e.context.annotations):e.context:new mv(!0,!1);return Fie(gy(e,t))}),Fie=/*#__PURE__*/ Cy(Oy),Iie=/*#__PURE__*/ vt(e=>Oy(new ey([e,bv])));function Lie(e,t){return gy(e,e.context?new mv(e.context.isOptional,e.context.isMutable,t,e.context.annotations):new mv(!1,!1,t))}function ky(e,t,n){return Pie(e,n,t)}function Rie(e){let t=[],n=[];function r(e){switch(e._tag){case`Literal`:kt(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 zie(e,t){let{literals:n,parameters:r}=Rie(e);return new Rv(n.map(e=>new Pv(e,t)),r.map(e=>new Lv(e,t)))}function Ay(e){return e.context?.isOptional??!1}function Bie(e){return e.context?.isMutable??!1}function jy(e){return e.annotations?.[`~structural`]===!0||e._tag===`FilterGroup`&&e.checks.every(jy)}function Vie(e){function t(e){return jy(e)?[e]:e._tag===`FilterGroup`?e.checks.flatMap(t):[]}let n=e.flatMap(t);return Ca(n)?n:void 0}function Hie(e){let t=!0;function n(e){return t=t&&!e.encoding&&!dv(e),t&&`recur`in e&&e.recur(n),e}return`recur`in e&&e.recur(n),t}const My=/*#__PURE__*/ yt(e=>{let t=my(e);if(t!==e){let n=My(t);return n===t&&e.encoding===void 0?e:gy(n,e.context)}let n=`recur`in e?e.recur(My):e;if(`encodingChecks`in n&&n.encodingChecks){let t=Hie(e)?n.encodingChecks:cv(n)||lv(n)||ev(n)&&n.typeParameters.length>0?Vie(n.encodingChecks):void 0;return py(n,{encodingChecks:void 0,checks:Hv(n.checks,t)})}return n}),Ny=/*#__PURE__*/ yt(e=>My(Py(e)));function Uie(e,t){let n=t,r=n.length,i=n[r-1],a=[new fv(Py(hy(e,void 0)),n[0].transformation.flip())];for(let e=1;e<r;e++)a.unshift(new fv(Py(n[e-1].to),n[e].transformation.flip()));let o=Py(i.to);return o.encoding?hy(o,[...o.encoding,...a]):hy(o,a)}const Py=/*#__PURE__*/ vt(e=>{if(e.encoding)return Uie(e,e.encoding);let t=my(e);if(t!==e){let n=Py(t);return n===t?e:gy(n,e.context)}return`flip`in e?e.flip(Py):`recur`in e?e.recur(Py):e});function Fy(e){switch(e._tag){case`Undefined`:return!0;case`Union`:return e.types.some(Fy);default:return!1}}function Iy(e,t){let n=t===0?kg:Dg(t);return(r,i)=>r===Eg?Og:r===t?n:B(new Hg(e,r,i))}function Ly(e,t){return(n,r)=>n===Eg?Og:t(n)?kg:B(new Hg(e,n,r))}function Ry(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 zy=/*#__PURE__*/ Ty(e=>{switch(e._tag){default:return e;case`Number`:return e.toCodecStringTree();case`Union`:return e.recur(zy)}}),By=/*#__PURE__*/ Ty(e=>{switch(e._tag){default:return e;case`Symbol`:case`UniqueSymbol`:return e.toCodecStringTree();case`Union`:return e.recur(By)}}),Vy=/*#__PURE__*/ Ty(e=>{switch(e._tag){default:return e;case`Number`:case`Literal`:case`BigInt`:return e.toCodecStringTree();case`Union`:return e.recur(Vy)}}),Hy=/*#__PURE__*/ new globalThis.RegExp(`^${Mv}$`),Wie=/*#__PURE__*/ new globalThis.RegExp(`^(?:${Mv}|Infinity|-Infinity|NaN)$`);function Gie(e){return dy(Hy,{expected:`a string representing a finite number`,representation:{id:`effect/schema/isStringFinite`,payload:null},toJsonSchema:()=>({pattern:Hy.source}),...e})}const Uy=/*#__PURE__*/ by(Ev,[/*#__PURE__*/ Gie()]),Kie=/*#__PURE__*/ new fv(Uy,U_),qie=/*#__PURE__*/ new fv(/*#__PURE__*/ new ey([Uy,iy]),U_);function Wy(e,t,n,r,i){for(let a=0;a<e.length;a++){let o=e[a];if(o._tag===`FilterGroup`){if(n=Wy(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 Ig(o,e,t,i);if(n?n.push(r):n=[r],i.errors!==`all`||o.aborted)return n}}}return n}function Jie(e){if(!ev(e))return;let t=e.annotations?.[yg];return At(t)?t(e.typeParameters):void 0}const Gy=hg,Ky=xg,Yie=Cg;function Xie(e){return e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`&&globalThis.Number.isFinite(e)}function Zie(e){return e===void 0||typeof e==`string`}function qy(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 Jy(e){return qy(e,Xie)}const Yy=/*#__PURE__*/ new _v([],()=>(e,t,n)=>Jy(e)?kg:B(new Hg(t,e,n)),{representation:{id:`effect/schema/Json`,payload:null},expected:`JSON value`,toCodecJson:()=>void 0,toCodecStringTree:()=>Zy}),Xy=/*#__PURE__*/ new fv(Yy,/*#__PURE__*/ H_()),Qie=/*#__PURE__*/ new fv(/*#__PURE__*/ new ey([/*#__PURE__*/ new kv(!1,[],[Yy]),/*#__PURE__*/ new Rv([],[/*#__PURE__*/ new Lv(Ev,Yy)])]),/*#__PURE__*/ H_());function $ie(e){return qy(e,Zie)}const Zy=/*#__PURE__*/ new fv(/* @__PURE__ */ new _v([],()=>(e,t,n)=>$ie(e)?kg:B(new Hg(t,e,n)),{expected:`StringTree`,toCodecStringTree:()=>void 0}),/*#__PURE__*/ H_()),Qy=(e,t,n)=>e===kg?n(t):$p(e,n);function $y(e){if(e._tag===`Middleware`)return(t,n,r)=>{let i=t===kg?e.decode(Dg(Ag(n)),r):e.decode(Xp(t,Ag),r);return eb(i)};let t=e.decode;switch(t._tag){case`Passthrough`:return(e,t)=>e===kg?Dg(t):e;case`Transform`:{let e=e=>e===Eg?Og:Dg(t.transform(e));return(t,n)=>Qy(t,n,e)}case`TransformOptional`:{let e=e=>jg(t.transform(Ag(e)));return(t,n)=>Qy(t,n,e)}case`TransformEffect`:return(e,n,r)=>Qy(e,n,e=>e===Eg?Og:t.transform(e,r));case`TransformOptionalEffect`:return(e,n,r)=>Qy(e,n,e=>eb(t.transform(Ag(e),r)))}}const eb=e=>$p(e,jg),tb=(e,t,n,r)=>Jf(r,r=>Ff(()=>Au(r,r=>new Lg(e,r,t,n))));function eae(e,t){let n=$y(e.link.transformation),r;return(i,a)=>{if(i===Eg)return Og;if(e.isConstructed(i))return kg;let o=(r??=t(e.link.to))(i,a);return n(o,i,a)}}function tae(e,t){let n=e.context.constructorDefault;return(r,i)=>{if(r!==Eg&&r!==void 0)return t(r,i);let a=n;if(xc(a)&&a._tag===`Success`){let e=t(a[Wn],i);return e===kg?a:e}return $p(tb(e,r,i,a),e=>{let n=t(e,i);return n===kg?Dg(e):n})}}function nae(e,t){let n=t(e);return e.context?.constructorDefault===void 0?n:tae(e,n)}function nb(e,t,n,r,i){if(e._tag===`Declaration`)for(let n of e.typeParameters)t(n);let a=n?Jie(e):void 0,o=a?eae(a,t):r??e.getParser(t,n),s=e.checks,c=e.encoding,l=c?.map(e=>$y(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(xc(r)){if(r._tag===`Success`){let i=r===kg?t:r[Wn];if(t!==Eg&&i!==Eg){let i=Wy(u,t,void 0,e,n);i&&(r=B(new Vg(e,i,t,n)))}}}else r=V(r,r=>{if(t!==Eg&&r!==Eg){let r=Wy(u,t,void 0,e,n);if(r)return B(new Vg(e,r,t,n))}return I(r)})}if(s&&!n.disableChecks){if(xc(r)){if(r._tag===`Success`){let i=r===kg?t:r[Wn];if(i===Eg)return r;let a=Wy(s,i,void 0,e,n);a&&(r=B(new Vg(e,a,i,n)))}}else r=V(r,t=>{if(t!==Eg){let r=Wy(s,t,void 0,e,n);if(r)return B(new Vg(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[Wn],o=t(a,r)):o=$p(o,e=>{let n=t(e,r);return n===kg?Dg(e):n})}if(o._tag===`Success`){let e=o[Wn],t=p(e,r);return t===kg?o:t}return o=tb(e,n,r,o),$p(o,e=>{let t=p(e,r);return t===kg?Dg(e):t})}:p}const rae=/*#__PURE__*/ Symbol(),rb=/*#__PURE__*/ new WeakMap,iae=e=>ab(e).parser,ib=e=>ab(e).makeEffect,aae=e=>nae(e,ib);var oae=class{ast;constructor(e){this.ast=e}get decodeEffect(){return this.cachedDecodeEffect??=nb(this.ast,iae)}get parser(){return this.decodeEffect}get makeEffect(){return this.cachedMakeEffect??=nb(this.ast,ib,aae)}};function ab(e){let t=rb.get(e);if(t!==void 0)return t;let n=new oae(e);return rb.set(e,n),n}function ob(e){let t=e.ast,n;return(e,r)=>(n??=hb(_ae,My(t)))(e,r?.disableChecks?r?.parseOptions?{...r.parseOptions,disableChecks:!0}:{disableChecks:!0}:r?.parseOptions)}function sb(e){let t=ob(e);return(e,n)=>{let r=Up(t(e,n));return Ju(r)?di(r.value):(u_(r.cause,`Option adapter can only return none for schema issues`),ui())}}function cb(e){return hae(My(e.ast))}function sae(e){return lb(e.ast)}function cae(e){{let t=gb(mb(e));return e=>{let n=t(e,pv);return Ju(n)?!0:(u_(n.cause,`Type guard adapter can only return false for schema issues`),!1)}}}function lb(e){let t=My(e),n=e=>(n=cae(t),n(e));return e=>n(e)}function ub(e,t){let n=mb(e.ast);return t===void 0?n:(e,r)=>n(e,fb(t,r))}function lae(e,t){return fae(ub(e,t))}function uae(e,t){return pae(ub(e,t))}function db(e,t){let n=mb(Py(e.ast));return t===void 0?n:(e,r)=>n(e,fb(t,r))}const fb=(e,t)=>t?{...e,...t}:e,pb=e=>e===Eg?B(new Ug):I(e);function mb(e){return hb(gae,e)}function dae(e,t){return e===kg?I(t):xc(e)?e[Wn]===Eg?pb(Eg):e:$p(e,pb)}function hb(e,t){let n;return(r,i)=>{let a=(n??=e(t))(r,i??pv);return a===kg?I(r):xc(a)?a[Wn]===Eg?pb(Eg):a:$p(a,pb)}}function gb(e){return(t,n)=>Up(e(t,n))}function fae(e){let t=gb(e);return(e,n)=>{let r=t(e,n);return Ju(r)?di(r.value):(u_(r.cause,`Option adapter can only return none for schema issues`),ui())}}function pae(e){let t=gb(e);return(e,n)=>{let r=t(e,n);return Ju(r)?Qi(r.value):$i(u_(r.cause,`Result adapter can only return schema issues`))}}function mae(e,t){let n=Up(e);if(Ju(n))return n.value;let r=u_(n.cause,t);throw Error(`Schema validation failed`,{cause:r})}function hae(e){let t,n;return(r,i)=>{t??=ab(e);let a=i?.disableChecks?i.parseOptions?{...i.parseOptions,disableChecks:!0}:{disableChecks:!0}:i?.parseOptions??pv,o=t.make;if(o!==void 0&&r!==Eg){let e;try{e=o(r,a)}catch(e){throw u_(Du(e),`Constructor adapter can only throw schema issues`),e}if(e!==rae&&e!==Eg)return e}return mae(dae((n??=t.makeEffect)(r,a),r),`Constructor adapter can only throw schema issues`)}}const gae=e=>ab(e).parser,_ae=e=>ab(e).makeEffect,_b=`~effect/Schema/Schema`,vb=/*#__PURE__*/ Symbol(),vae={[_b]:_b,get make(){let e=cb(this);return Object.defineProperty(this,"make",{value:e,enumerable:!0}),e},get makeEffect(){let e=ob(this);return Object.defineProperty(this,"makeEffect",{value:e,enumerable:!0}),e},get makeOption(){let e=sb(this);return Object.defineProperty(this,"makeOption",{value:e,enumerable:!0}),e},pipe(){return lt(this,arguments)},annotate(e){return this.rebuild(vy(this.ast,e))},annotateKey(e){return this.rebuild(Dy(this.ast,e))},check(...e){return this.rebuild(by(this.ast,e))},rebuild(e){return yb(e,this[vb])}};function yb(e,t){function n(){}let r=Object.setPrototypeOf(n,vae);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[vb]=t,r.ast=e,r}function yae(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function bb(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}function xb(e){return encodeURI(yae(e)).replace(/#/g,`%23`)}function Sb(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 Cb(e){let t=Sb(e);return t===void 0?void 0:t.length===0?[]:t.slice(1).split(`/`).map(bb)}function bae(e){return e.reduce((e,t)=>`${e}/${xb(t)}`,`#`)}const xae=[`example`,`discriminator`,`xml`,`externalDocs`];function Sae(e){let t=Object.keys(e.definitions),n=/* @__PURE__ */ new Map,r=new Set(t.filter(e=>wb.test(e))),i=t.filter(e=>!wb.test(e)).sort().map(e=>[e,Cae(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=Db(t.$id),a=Rt(t.$defs)?t.$defs:void 0;return Tb(t,(t,o)=>{Eae(t,xae,`OpenAPI 3.1`,`Draft 2020-12`),Eb(t,(t,s)=>{let c=t.startsWith(`#`)?Cb(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))&&kb(s,`OpenAPI 3.1`,`a schema resource cannot reference the shared definitions pool`),t):o?t:bae([`components`,`schemas`,n.get(l)??l,...c.slice(2)])})})}let o=e.schemas.map(e=>a(e,!0)),s={};for(let r of t)Rn(s,n.get(r)??r,a(e.definitions[r]));return{dialect:`openapi-3.1`,schemas:o,definitions:s}}const wb=/^[a-zA-Z0-9.\-_]+$/;function Cae(e){return e.length===0?`_`:e.replace(/[^a-zA-Z0-9._-]/gu,`_`)}function Tb(e,t){return n(e,!1,!0);function n(e,r,i=!1){if(!Rt(e))return e;let a=r||!i&&Db(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=Tae(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)}Rn(o,t,i)}return t(o,a),o}}function wae(e,t){return Tb(e,e=>{Eb(e,t)})}function Eb(e,t){typeof e.$ref==`string`&&Rn(e,`$ref`,t(e.$ref,`$ref`)),typeof e.$dynamicRef==`string`&&Rn(e,`$dynamicRef`,t(e.$dynamicRef,`$dynamicRef`))}function Tae(e,t){if(!Rt(e))return;let n={};for(let r of Object.keys(e))Rn(n,r,t(e[r],r));return n}function Db(e){return typeof e==`string`&&e.length>0&&e[0]!==`#`}const Ob=[`$anchor`,`$defs`,`$dynamicAnchor`,`$dynamicRef`,`$vocabulary`,`contentSchema`,`dependentRequired`,`dependentSchemas`,`maxContains`,`minContains`,`prefixItems`,`unevaluatedItems`,`unevaluatedProperties`];[...Ob],[...Ob];function kb(e,t,n){throw Error(`Cannot convert JSON Schema keyword "${e}" to ${t}: ${n}`)}function Eae(e,t,n,r){for(let i of t)Object.hasOwn(e,i)&&kb(i,n,`it is not active in ${r} but would become active in the target`)}function Dae(e){return yb(Ab(e.ast),{schema:e})}const Ab=/*#__PURE__*/ Ty(e=>{let t=kae(e,Ab),n=e.context;return t===e||n===void 0?t:wy(t,jb(n))});function jb(e){return e.constructorDefault===void 0?e:new mv(e.isOptional,e.isMutable,void 0,e.annotations)}function Mb(e){if(e.propertySignatures.some(e=>typeof e.name!=`string`))throw new globalThis.Error(`Objects property names must be strings`,{cause:e})}function Nb(e){return t=>{let n=[...t].sort((t,n)=>e(Ny(t))-e(Ny(n)));return n.some((e,n)=>e!==t[n])?n:t}}const Oae=/*#__PURE__*/ Nb(e=>{switch(e._tag){case`BigInt`:case`Symbol`:case`UniqueSymbol`:return 0;default:return 1}});function kae(e,t){switch(e._tag){case`Declaration`:{let n=e.annotations?.toCodecJson??e.annotations?.toCodec;if(!At(n))return hy(e,[Xy]);let r=n(e.typeParameters.map(e=>yb(Ny(e))));return r===void 0?e:hy(e,[xy(r,t)])}case`Unknown`:return hy(e,[Xy]);case`ObjectKeyword`:return hy(e,[Qie]);case`Undefined`:case`Void`:case`Literal`:case`Number`:return e.toCodecJson();case`UniqueSymbol`:case`Symbol`:case`BigInt`:return e.toCodecStringTree();case`Objects`:return Mb(e),e.recur(t,By);case`Union`:{let n=Oae(e.types);return n===e.types?e.recur(t):new ey(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 Aae(e){return yb(Ib(e.ast),{schema:e})}function jae(e){return yb(Rb(e.ast))}const Mae=/*#__PURE__*/ Nb(e=>{switch(e._tag){case`Null`:case`Boolean`:case`Number`:case`BigInt`:case`Symbol`:case`UniqueSymbol`:return 0;default:return 1}});function Nae(e,t,n){switch(e._tag){case`Declaration`:{let r=e.typeParameters.map(e=>yb(t(Ny(e)))),i=e.annotations?.toCodecStringTree;if(At(i)){let n=i(r);return n===void 0?e:hy(e,[xy(n,t)])}let a=e.annotations?.toCodecJson,o=At(a)?a(r):void 0,s=o===void 0?e.annotations?.toCodec:void 0,c=o??(At(s)?s(r):void 0);return c===void 0?n(e):hy(e,[xy(c,t)])}case`Null`:return hy(e,[Pae]);case`Boolean`:return hy(e,[Fae]);case`Unknown`:case`ObjectKeyword`:return hy(e,[Zy]);case`Enum`:case`Number`:case`Literal`:case`UniqueSymbol`:case`Symbol`:case`BigInt`:return e.toCodecStringTree();case`Objects`:return Mb(e),e.recur(t,By);case`Union`:{let n=Mae(e.types);return n===e.types?e.recur(t):new ey(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 Pae=/*#__PURE__*/ new fv(/*#__PURE__*/ new wv(`null`),/*#__PURE__*/ new F_(/*#__PURE__*/ b_(()=>null),/*#__PURE__*/ b_(()=>`null`))),Fae=/*#__PURE__*/ new fv(/*#__PURE__*/ new ey([/*#__PURE__*/ new wv(`true`),/*#__PURE__*/ new wv(`false`)]),/*#__PURE__*/ new F_(/*#__PURE__*/ b_(e=>e===`true`),/*#__PURE__*/ T_())),Pb=/*#__PURE__*/ new F_(/*#__PURE__*/ b_(e=>typeof e==`string`?[e]:e),/*#__PURE__*/ y_()),Fb=e=>e.transformation===Pb,Ib=/*#__PURE__*/ Ty(e=>{let t=Nae(e,Ib,e=>{throw new globalThis.Error(`Missing structural codec for StringTree`,{cause:e})});return t!==e&&e.context!==void 0?wy(t,jb(e.context)):t},{stopAt:Fb}),Lb=e=>Ay(e)?Oy(xv):xv,Rb=/*#__PURE__*/ Ty(e=>{let t=Iae(e);if(cv(t)){let n=ky(new ey([new kv(t.isMutable,t.elements.map(Lb),t.rest.map(Lb)),Ev],{mode:`anyOf`}),t,Pb);return Ay(e)?Oy(n):n}return t},{stopAt:Fb});function Iae(e){return e._tag===`Declaration`||e._tag===`Arrays`||e._tag===`Objects`||e._tag===`Union`||e._tag===`Suspend`?e.recur(Rb):e}globalThis.RegExp;const Lae=e=>e.replace(/[/\\^$*+?.()|[\]{}]/g,`\\$&`);function zb(e,t){return t.length>0&&(e+=`\n at ${En(t)}`),Error(e)}function Bb(e){return`#/$defs/${xb(e)}`}const Rae=/*#__PURE__*/ new Set([...Tg,_g,...bg]);function Vb(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;Jy(o)&&(n.default=o);let s=e.examples;Array.isArray(s)&&Jy(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(Jy(p)&&(n.contentSchema=p),t?.includeAnnotationKey!==void 0)for(let[r,i]of Object.entries(e))!Rae.has(r)&&t.includeAnnotationKey(r)&&Jy(i)&&Rn(n,r,i);return Object.keys(n).length===0?void 0:n}function Hb(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=Hb(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 zae(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 Ub(e,t){return Object.keys(e).every(e=>t.includes(`|${e}|`))}function Bae(e,t){return typeof e.$ref!=`string`&&t.every(t=>!Object.hasOwn(e,t))}function Vae(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 Wb=`|title|description|default|examples|readOnly|writeOnly|`;function Gb(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=zae(e);if(i!==void 0||a){let r=Hb(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:Ub(r.schema,Wb)&&Bae(o,s)?{...o,...r.schema}:Gb(o,r.schema,n)}}if(n){let n=Vae(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 Kb(e,t=/* @__PURE__ */ new Set){return typeof e==`boolean`?e:t.has(e)?!0:(t.add(e),e.every(e=>Kb(e,t)))}function Hae(e){return Array.isArray(e)}function qb(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=Ma(e,(e,n)=>v(e,t[n],[]));for(let[e,t]of s.values())if(!Kb(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=>cn(i.get(e)[0],o));l===void 0?s===void 0?c.set(r,[e]):s.push(e):a.set(e,l)}let d=Ma(u,h),f={};for(let e of l)a.has(e)||Rn(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 zb(`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 wae(e,e=>{let t=Sb(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(bb(t.slice(7,n<0?void 0:n)));return r===void 0?e:e.replace(/^#(?:\/|%2f).*?(?:\/|%2f).*?(?=\/|%2f|$)/i,Bb(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[_g]: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=Hae(s);c&&i.push(!1);let l=c?s[0]:s,u=Vb(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`&&Ub(d,f)&&(u===void 0||Ub(u,Wb))?!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=Vb(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:Bb(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=Vb(e.annotations,r);c!==void 0&&(s={...s,...c});for(let n=0;n<e.checks.length;n++){let r=typeof s.type==`string`&&Uae(s.type)?s.type:void 0,i=_(e.checks[n],r,[...t,`checks`,n],a);i!==void 0&&(s=Gb(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 zb(`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(Jb).join(``)}$`};case`Arrays`:{if(e.rest.length>1)throw zb(`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=Vb(e.annotations,r);return s===void 0?o:p(Gb(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 zb(`Invalid schema representation document`,[...t,`propertySignatures`,i,`name`]);let c=s.name,l=v(s.type,[...t,`propertySignatures`,i,`type`],n),u=Vb(s.annotations,r);Rn(a,c,u===void 0?l:p(Gb(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);cn(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];Rn(s,e,t===void 0?a:t===!1||a===!1?!1:p(Gb(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=Wae(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 zb(`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 Kb(n)&&r.type===`string`&&typeof r.pattern==`string`&&Ub(r,`|type|pattern|title|description|default|examples|readOnly|writeOnly|`)?[r.pattern]:void 0}case`TemplateLiteral`:return e.checks.length===0?[`^${e.parts.map(Jb).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 zb(`Invalid schema representation document`,t)}}}function Uae(e){return e===`string`||e===`number`||e===`boolean`||e===`array`||e===`object`||e===`null`||e===`integer`}function Wae(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 Jb(e){switch(e._tag){case`Literal`:return Lae(globalThis.String(e.literal));case`String`:return`[\\s\\S]*?`;case`Number`:return Mv;case`TemplateLiteral`:return e.parts.map(Jb).join(``);case`Union`:return`(?:${e.types.map(Jb).join(`|`)})`;default:throw zb(`Invalid schema representation document`,[])}}function Gae(e,t){let n=qb([e.representation],[[`representation`]],e.references,t);return{dialect:n.dialect,schema:n.schemas[0],definitions:n.definitions}}function Kae(e,t){return qb(e.representations,e.representations.map((e,t)=>[`representations`,t]),e.references,t)}const qae=({identifier:e})=>e;function Yb(e){return e===void 0?void 0:{annotations:e}}function Jae(e,t){let{references:n,representations:r}=Xb([e],t);return{representation:r[0],references:n}}function Xb(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??qae;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:Ma(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:vy(e,{identifier:n}):Sg(e)===r?e:vy(e,{[_g]:r})}function u(e,t){if(!Object.hasOwn(n,e)&&!i.has(e)){i.add(e);let r=h(t);i.delete(e),Rn(n,e,r)}return{_tag:`Reference`,$ref:e}}function d(e){let t=_y(e),n=my(t),r=xg(t),i=r===void 0?(t===e?void 0:xg(e))??Sg(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(My(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,...Yb(e.annotations)};case`Literal`:return{_tag:`Literal`,literal:e.literal,checks:t,...Yb(e.annotations)};case`UniqueSymbol`:return{_tag:`UniqueSymbol`,symbol:e.symbol,checks:t,...Yb(e.annotations)};case`Enum`:return{_tag:`Enum`,enums:e.enums,checks:t,...Yb(e.annotations)};case`TemplateLiteral`:return{_tag:`TemplateLiteral`,parts:e.parts.map(e=>m(e)),checks:t,...Yb(e.annotations)};case`Arrays`:return{_tag:`Arrays`,elements:e.elements.map(e=>{let t=_y(e),n=t.context?.annotations;return{isOptional:Ay(t),type:m(e),...Yb(n)}}),rest:e.rest.map(e=>m(e)),checks:t,...Yb(e.annotations)};case`Objects`:return{_tag:`Objects`,propertySignatures:e.propertySignatures.map(e=>{let t=_y(e.type),n=t.context?.annotations;return{name:e.name,type:m(e.type),isOptional:Ay(t),isMutable:Bie(t),...Yb(n)}}),indexSignatures:e.indexSignatures.map(e=>({parameter:m(e.parameter),type:m(e.type)})),checks:t,...Yb(e.annotations)};case`Union`:return{_tag:`Union`,types:e.types.map(e=>m(e)),...e.options===void 0?{}:{options:e.options},checks:t,...Yb(e.annotations)};case`Suspend`:return{_tag:`Suspend`,checks:[],thunk:m(e.thunk()),...Yb(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:Ma(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(My(e)))};return{...r===void 0?void 0:{representation:r},...Object.keys(n).length===0?void 0:{annotations:n}}}}function Zb(e){return Ju(e)?e.value:{issues:[{message:Tre(e.cause)}]}}function Yae(e,t){let n=ub(e),r={errors:`all`,...t?.parseOptions},i=$g(t),a=e=>{let t=new fo(`sync`),a=zp(op(n(e,r),{onFailure:i,onSuccess:e=>({value:e})}),{scheduler:t});a.currentDispatcher?.flush();let o=a.pollUnsafe();return o?Zb(o):new Promise(e=>{a.addObserver(t=>{e(Zb(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 Xae=/*#__PURE__*/ M(2,(e,t)=>$ae(e,(e,n)=>Qae(t,e)?void 0:[e,n])),Zae=/*#__PURE__*/ M(2,(e,t)=>({...e,...t})),Qb=e=>e;function Qae(e,t){return e.some(e=>e===t||typeof e==`number`&&String(e)===t)}function $ae(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;Rn(n,e,t)}}return n}const $b=`~effect/Schema/SchemaError`;function ex(e){return P(e,`~effect/Schema/SchemaError`)&&e[`~effect/Schema/SchemaError`]===`~effect/Schema/SchemaError`}({...Mn}),{...Mn},{...Mn},{...Mn},{...Mn},{...Mn},{...Mn},{...Mn};const tx=_b;function nx(){return(e,t,n)=>hx(new _v(e.map(Wv),e=>t(e.map(e=>hx(e))),n))}function rx(e,t){return nx()([],()=>(t,n,r)=>e(t)?I(t):B(new Hg(n,t,r)),t)}var ix=class extends (/*#__PURE__*/ go(`SchemaError`)){[$b]=$b;constructor(e){let t=Pn();Fn(0);try{super({issue:e})}finally{Fn(t)}}get message(){return o_(this.issue)}toJSON(){return{_tag:this._tag,message:this.message}}[An](){return this.toJSON()}toString(){return`SchemaError(${this.message})`}};function eoe(e){return ex(e)}function ax(e){return xc(e)?toe(e):Jf(e,e=>Ff(()=>Au(e,e=>new ix(e))))}function toe(e){return Ju(e)?e:Uu(Au(e.cause,e=>new ix(e)))}function noe(e,t){let n;for(let r of e.reasons){if(!Tu(r)||!eoe(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 ox(e){let t=Up(e);if(Ju(t))return t.value;throw noe(t.cause,`Sync adapter can only throw schema errors`)}function roe(e,t){return Yae(e,t)}const sx=sae;function cx(e,t){let n=ub(e,t);return(e,t)=>ax(n(e,t))}const lx=cx,ioe=lae;function aoe(e,t){let n=uae(e,t);return(e,t)=>ia(n(e,t),e=>new ix(e))}function ux(e,t){let n=cx(e,t);return(e,t)=>ox(n(e,t))}const ooe=ux;function dx(e,t){let n=db(e,t);return(e,t)=>ax(n(e,t))}const fx=dx;function px(e,t){let n=dx(e,t);return(e,t)=>ox(n(e,t))}const mx=px,hx=yb;function gx(e){return P(e,tx)&&e[tx]===tx}const _x=/*#__PURE__*/ Qb(e=>hx(Oy(e.ast),{schema:e})),vx=/*#__PURE__*/ Qb(e=>{let t=Lx(e);return hx(Iie(e.ast),{schema:t})}),yx=/*#__PURE__*/ Qb(e=>hx(My(e.ast),{schema:e})),soe=/*#__PURE__*/ Qb(e=>hx(Ny(e.ast),{schema:e}));function bx(e){let t=hx(new wv(e),{literal:e,transform(n){return t.pipe(Rx(bx(n),{decode:b_(()=>n),encode:b_(()=>e)}))}});return t}function coe(e){return e.map(e=>gx(e)?e.ast:new wv(e))}function xx(e){return hx(new vie(coe(e)),{parts:e})}const Sx=/*#__PURE__*/ hx(gie),Cx=/*#__PURE__*/ hx(_ie),wx=/*#__PURE__*/ hx(xv),loe=/*#__PURE__*/ hx(vv),uoe=/*#__PURE__*/ hx(bv),W=/*#__PURE__*/ hx(Ev),Tx=/*#__PURE__*/ hx(Ov),Ex=/*#__PURE__*/ hx(xie),Dx=/*#__PURE__*/ hx(hie);function Ox(e,t){return hx(e,{fields:t,mapFields(e,t){let n=e(this.fields);return Ox(Uv(n,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function G(e){return Ox(Uv(e,void 0),e)}function kx(e){return Qb(t=>t.mapFields(Zae(e)))}function Ax(e,t){return hx(zie(e.ast,t.ast),{key:e,value:t})}function jx(e,t){return hx(Die(e.ast,t.map(Wv)),{schema:e,records:t})}function Mx(e,t){return hx(e,{elements:t,mapElements(e,t){let n=e(this.elements);return Mx(Gv(n,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function doe(e){return Mx(Gv(e),e)}const K=/*#__PURE__*/ Qb(e=>hx(new kv(!1,[],[e.ast]),{value:e})),Nx=/*#__PURE__*/ Qb(e=>hx(new kv(!1,[e.ast],[e.ast]),{value:e}));function Px(e,t){return hx(e,{members:t,mapMembers(e,t){let n=e(this.members);return Px(Kv(n,this.ast.options,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function q(e,t){return Px(Kv(e,t,void 0),e)}function Fx(e){let t=e.map(bx);return hx(Kv(t,void 0,void 0),{literals:e,members:t,mapMembers(e){return q(e(this.members))},pick(e){return Fx(e)},transform(e){return q(t.map((t,n)=>t.transform(e[n])))}})}const Ix=/*#__PURE__*/ Qb(e=>q([e,loe])),Lx=/*#__PURE__*/ Qb(e=>q([e,uoe]));function Rx(e,t){return n=>hx(ky(n.ast,e.ast,t?L_(t):H_()),{from:n,to:e})}function foe(){return(e,t)=>Ux()(e,{decode:t,encode:__})}const poe=/*#__PURE__*/ Fx([`true`,`yes`,`on`,`1`,`y`]),moe=/*#__PURE__*/ Fx([`false`,`no`,`off`,`0`,`n`]),hoe=/*#__PURE__*/ Fx([...poe.literals,...moe.literals]).pipe(/*#__PURE__*/ Rx(Ex,/*#__PURE__*/ z_({decode:e=>e===`true`||e===`yes`||e===`on`||e===`1`||e===`y`,encode:e=>e?`true`:`false`})));function goe(e){return t=>Rx(yx(t),e)(t)}function zx(e){return t=>hx(Lie(t.ast,e),{schema:t})}function Bx(e){return bx(e).pipe(zx(I(e)))}function Vx(e,t){return G({_tag:Bx(e),...t})}function Hx(){return e=>e}function _oe(e,t){return rx(t=>t instanceof e,t)}function Ux(){return(e,t)=>new fv(e.ast,L_(t))}const Wx=ly,Gx=`^\\S[\\s\\S]*\\S$|^\\S$|^$`;function voe(e){let t=new globalThis.RegExp(Gx);return Wx(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:Gx,flags:``}]},...e})}function Kx(e,t){let n=e.source,r=e.flags,i=/^[dg]*uy?$/.test(r),a=r===``?`new RegExp(${wn(n)})`:`new RegExp(${wn(n)}, ${wn(r)})`;return dy(e,{toJsonSchema:()=>i?{pattern:r.endsWith(`y`)?`^(?:${n})`:n}:[{},!0],toCode:()=>({runtime:`Schema.isPattern(${a})`}),...t})}const qx=/*#__PURE__*/ hx(uy);function yoe(e){let t=li(e.order),n=e.formatter??wn;return(r,i)=>Wx(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 boe(e){let t=li(e.order),n=ci(e.order),r=qee(e.order),i=Kee(e.order),a=e.formatter??wn;return(o,s)=>{let c=o.exclusiveMinimum?n:t,l=o.exclusiveMaximum?i:r;return Wx(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 Jx(e){if(!globalThis.Number.isFinite(e))throw new globalThis.RangeError(`Expected a finite number, got ${wn(e)}`);return e}const xoe=/*#__PURE__*/ yoe({order:si,annotate:e=>({representation:{id:`effect/schema/isGreaterThanOrEqualTo`,payload:{minimum:Jx(e)}},toJsonSchema:()=>({minimum:e}),toCode:()=>({runtime:`Schema.isGreaterThanOrEqualTo(${wn(e)})`})})}),Yx=/*#__PURE__*/ boe({order:si,annotate:e=>{let t=e.exclusiveMinimum?!0:void 0,n=e.exclusiveMaximum?!0:void 0;return{representation:{id:`effect/schema/isBetween`,payload:{minimum:Jx(e.minimum),maximum:Jx(e.maximum),...t&&{exclusiveMinimum:t},...n&&{exclusiveMaximum:n}}},toJsonSchema:()=>({[t?`exclusiveMinimum`:`minimum`]:e.minimum,[n?`exclusiveMaximum`:`maximum`]:e.maximum}),toCode:()=>({runtime:`Schema.isBetween({ minimum: ${wn(e.minimum)}, maximum: ${wn(e.maximum)}, exclusiveMinimum: ${wn(t)}, exclusiveMaximum: ${wn(n)} })`})}}});function Soe(e){return Wx(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 Xx=/*#__PURE__*/ Tx.check(/*#__PURE__*/ Soe());function Zx(e,t){return e=eS(e),Qx(e,Math.ceil(e/2),t)}function Qx(e,t,n){return Wx(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})`}),[gg]:!0,arbitraryConstraint:{minLength:e},...n})}function Coe(e){return Qx(1,1,e)}function $x(e,t){return e=eS(e),Wx(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})`}),[gg]:!0,arbitraryConstraint:{maxLength:e},...t})}function eS(e){if(!globalThis.Number.isFinite(e))throw new globalThis.RangeError(`Expected a finite number, got ${e}`);return Math.max(0,Math.floor(e))}function tS(e,t){return e=eS(e),Wx(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})`}),[gg]:!0,arbitraryConstraint:{minProperties:e},...t})}function nS(e){return Wx(e=>nte(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__*/ Coe()),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(Rx(wx,X_(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(Rx(e,Q_(t)))}const cS=/*#__PURE__*/ sS(wx);globalThis.File,globalThis.FormData,globalThis.URLSearchParams;const lS=/*#__PURE__*/ W.check(/*#__PURE__*/ voe()),uS=/*#__PURE__*/ W.annotate({expected:`a string that will be decoded as a trimmed string`}).pipe(/*#__PURE__*/ Rx(lS,/*#__PURE__*/ B_())),dS=/*#__PURE__*/ W.annotate({expected:`a base64 encoded string that will be decoded as Uint8Array`,format:`byte`,contentEncoding:`base64`}),fS=/*#__PURE__*/ _oe(globalThis.Uint8Array,{representation:{id:`effect/schema/Uint8Array`,payload:null},toCode:()=>({runtime:`Schema.Uint8Array`,Type:`globalThis.Uint8Array`}),expected:`Uint8Array`,toCodecJson:()=>Ux()(dS,Z_)}),pS=/*#__PURE__*/ dS.pipe(/*#__PURE__*/ Rx(fS,Z_));function mS(e,t){let n=nx()([e,t],([e,t])=>(n,r,i)=>{if(!_re(n))return B(new Hg(r,n,i));switch(n._tag){case`Fail`:return Qp(ub(e)(n.error,i),{onSuccess:Ou,onFailure:e=>Wg(r,`error`,e,n,i)});case`Die`:return Qp(ub(t)(n.defect,i),{onSuccess:ku,onFailure:e=>Wg(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])=>Ux()(q([G({_tag:bx(`Fail`),error:e}),G({_tag:bx(`Die`),defect:t}),G({_tag:bx(`Interrupt`),fiberId:Lx(qx)})]),z_({decode:e=>{switch(e._tag){case`Fail`:return Ou(e.error);case`Die`:return ku(e.defect);case`Interrupt`:return bre(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 hx(n.ast,{error:e,defect:t})}function hS(e,t){let n=nx()([e,t],([e,t])=>{let n=K(mS(e,t));return(e,t,r)=>gre(e)?Qp(ub(n)(e.reasons,r),{onSuccess:Eu,onFailure:n=>Wg(t,`failures`,n,e,r)}):B(new Hg(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])=>Ux()(K(mS(e,t)),z_({decode:Eu,encode:({reasons:e})=>e}))});return hx(n.ast,{error:e,defect:t})}const gS=/*#__PURE__*/ R_({decode:(e,t)=>mi(Gm(e),{onNone:()=>B(new Ug({expected:`a valid UTC DateTime string`},e,t)),onSome:e=>I(Km(e))}),encode:e=>I(Jm(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 Xx.check(Yx({minimum:e,maximum:t}))}const yS=/*#__PURE__*/ rx(e=>Vm(e)&&Hm(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 foe()(vS(t,n),b_(Wm))},toCodecJson:()=>Ux()(W,gS),toFormatter:()=>e=>e.toString()}),bS=/*#__PURE__*/ W.annotate({expected:`a string that will be decoded as a DateTime.Utc`}).pipe(/*#__PURE__*/ Rx(yS,gS));function xS(e,t,n){let r=nx()([e,t,n],([e,t,n])=>{let r=hS(t,n);return(t,n,i)=>{if(!Vu(t))return B(new Hg(n,t,i));switch(t._tag){case`Success`:return Qp(ub(e)(t.value,i),{onSuccess:Hu,onFailure:e=>Wg(n,`value`,e,t,i)});case`Failure`:return Qp(ub(r)(t.cause,i),{onSuccess:Uu,onFailure:e=>Wg(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])=>Ux()(q([G({_tag:bx(`Success`),value:e}),G({_tag:bx(`Failure`),cause:hS(t,n)})]),z_({decode:e=>e._tag===`Success`?Hu(e.value):Uu(e.cause),encode:e=>Ju(e)?{_tag:`Success`,value:e.value}:{_tag:`Failure`,cause:e.cause}}))});return hx(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:ub(bx(n)),o=nx()([e],([e])=>(t,n,r)=>{if(Ih(t)){let i=a===void 0?R:Zp(a(t.label,r),e=>new Rg([`label`],e));return $p(i,()=>Qp(ub(e)(zh(t),r),{onSuccess:e=>Lh(e,{label:t.label}),onFailure:()=>new Vg(n,[new Rg([`value`],new Ug(void 0,t,r))],t,r)}))}return B(new Hg(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}, ${wn(i)})`,Type:`Redacted.Redacted<${e[0].Type}>`,importDeclarations:[`import * as Redacted from "effect/Redacted"`]}),expected:`Redacted`,toCodecJson:([e])=>Ux()(e,{decode:b_(e=>Lh(e,{label:n})),encode:r?g_(e=>`Cannot serialize Redacted`+(pi(e)&&typeof e.value.label==`string`?` with label: "${e.value.label}"`:``)):b_(zh)}),toEquivalence:([e])=>Bh(e)});return hx(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[tx]=tx;get[o](){return o}static[CS]=!0;static identifier=t;static fields=n.fields;static get ast(){return a(this).ast}static pipe(){return lt(this,arguments)}static rebuild(e){return a(this).rebuild(e)}static make(e,t){return cb(a(this))(e??{},t)}static makeOption(e,t){return sb(a(this))(e??{},t)}static makeEffect(e,t){return a(this).makeEffect(e??{},t)}static annotate(e){return this.rebuild(vy(this.ast,e))}static annotateKey(e){return this.rebuild(Dy(this.ast,e))}static check(...e){return this.rebuild(by(this.ast,e))}static extend(e){return(t,r)=>{let a=DS(t)?t:G(t),o={...n.fields,...a.fields},s=Uv(o,n.ast.checks,{identifier:e});return TS(this,e,Ox(by(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 F_(b_(t=>new e(t,{"~payload":{token:wS,value:t}})),y_())}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=Rx(hx(new _v([e.ast],()=>(e,t,n)=>o(e)?I(e):B(new Hg(t,e,n)),{identifier:t,[yg]:([e])=>({isConstructed:o,link:new fv(e,s)}),toCodec:([e])=>new fv(e.ast,s),toEquivalence:([e])=>e,toFormatter:([e])=>t=>`${i.identifier}(${e(t)})`,[vg]:Yv(e.ast),...n})),s)(e)}}function DS(e){return gx(e)}const OS=e=>(t,n)=>{let r=DS(t)?t:G(t);return TS(po,e,r,n,e=>({toString(){return`${e}(${wn({...this})})`}}))},kS=e=>(t,n)=>{let r=DS(t)?t:G(t);return TS(Dr,e,r,n,e=>({name:e}))},AS=e=>(t,n,r)=>{let i=DS(n)?n.mapFields(e=>({_tag:Bx(t),...e}),{unsafePreserveChecks:!0}):Vx(t,n);return kS(e??t)(i,r)};function Ooe(e,t){return Gae(Jae(Ab(e.ast),t),t)}const jS=Dae,MS=Aae,NS=jae,PS=/*#__PURE__*/ hx(/*#__PURE__*/ vy(Yy,{toCode:()=>({runtime:`Schema.Json`,Type:`Schema.Json`})})),FS=/*#__PURE__*/ Ax(W,PS);function IS(){return Object.assign(e=>e,{option:e=>di(e),result:e=>Qi(e),is:e=>!0})}const LS=Ts,RS=Es,zS=hs,BS=ere,VS=Ul,HS=Wl,US=`~effect/MutableRef`,WS={[US]:US,...Xn,toJSON(){return{_id:`MutableRef`,current:jn(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,ba(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=Zi(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,_d(),VS(!1),GS(!1),e.strategy(),GS(ui()))),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)=>jf(()=>e.shutdownFlag.current||pi(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=>Ap(up(t=>{let n=Ui(t,hd),r=Sd(e.scope),i=joe(e.pubsub,e.subscribers,e.strategy,e.ended);return bd(r,fC(i)).pipe(Bf(yd(n,e=>Cd(r,e))),Wf(i))})),fC=e=>Ap(Rf(t=>(KS(e.shutdownFlag,!0),Ef(rC(e.pollers),e=>sd(e,t.id),{discard:!0,concurrency:`unbounded`}).pipe(Vf(()=>L(()=>{e.subscribers.delete(e.subscription),e.subscription.unsubscribe(),e.replayWindow.close(),e.strategy.onPubSubEmptySpaceUnsafe(e.pubsub,e.subscribers)})),iie(e.shutdownHook.open),Gf)))),pC=e=>jf(()=>{if(e.shutdownFlag.current)return Dp;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=>Mf(t=>{if(e.shutdownFlag.current)return t(Dp);if(pi(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=nd(),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=Zi(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 lt(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 lt(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):(dd(o,Hu(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=Zi(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,...Xn,toJSON(){return{_id:`effect/Queue`,state:this.state._tag,size:Yoe(this)}}},_C=e=>Tr(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},ks(n)}),vC=e=>_C({capacity:e}),Woe=e=>_C({capacity:e,strategy:`dropping`}),yC=/*#__PURE__*/ M(2,(e,t)=>Ns(()=>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)=>qs(n=>{let r=Koe(e,t);return r.length===0||e.strategy===`dropping`?n(yr(r)):RC(e,{_tag:`Array`,remaining:r,offset:0,resume:n})})),Koe=(e,t)=>{if(e.state._tag!==`Open`)return ba(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 ba(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)=>Ms(()=>SC(e,t))),SC=(e,t)=>{if(e.state._tag!==`Open`)return!1;let n=Sr(t),r=ene(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,lr(Nr())),wC=e=>SC(e,lr(Nr())),TC=e=>Ms(()=>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=>Ns(()=>{let t=Aa();return ic(hf(wl({while:pt,body:ft(DC(e)),step(e){for(let n=0;n<e.length;n++)t.push(e[n])}}),()=>Bs),t)}),OC=/*#__PURE__*/ M(3,(e,t,n)=>(t=Zi(t),n=Zi(n),FC(()=>Qoe(e,t,n)??gc(LC(e,()=>IC(e,t)),OC(e,t,n))))),kC=e=>FC(()=>AC(e)??gc(LC(e,()=>IC(e,1)),kC(e))),Joe=e=>FC(()=>{let t=AC(e);return t===void 0?ks(ui()):t._tag===`Success`?ks(di(t.value)):ks(ui())}),AC=e=>{if(e.state._tag===`Done`)return e.state.exit;if(e.messages.length>0){let t=iC(e.messages);return VC(e),yr(t)}if(e.capacity<=0&&e.state.offers.size>0){let t=BC(e.state.offers);return VC(e),yr(t)}},Yoe=e=>e.state._tag===`Done`?0:e.messages.length,jC=/*#__PURE__*/ yr(!1),MC=/*#__PURE__*/ yr(!0),Xoe=/*#__PURE__*/ Cr(/*#__PURE__*/ Nr()),Zoe=/*#__PURE__*/ Cc(),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(Ec),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 yr([]);if(!IC(e,t))return;let r=e.messages.length>0?nC(e.messages,n):[BC(e.state.offers)];return VC(e),yr(r)},FC=/*#__PURE__*/ _r({op:`QueueTake`,[Gn](e){let t=this[Wn]();return Qn(t)?t[Gn](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)=>qs(n=>{if(e.state._tag===`Done`)return n(e.state.exit);if(t())return n(Ec);let r={ready:t,resume:n};return e.state.takers.add(r),Ms(()=>{e.state._tag!==`Done`&&e.state.takers.delete(r)})}),$oe=(e,t)=>qs(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),Ms(()=>{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(yr(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(yr([]))),n},VC=e=>{if(e.state._tag===`Done`)return gf(e.state.exit.cause);if(e.state.offers.size===0)return e.state._tag===`Closing`&&e.messages.length===0&&(HC(e,e.state.exit),gf(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(yr([]))}let r=e.state;if(r._tag===`Done`)return gf(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)=>qs(r=>{if(e.free>=t)return r(n);let i=()=>{e.free<t||(e.waiters.delete(i),r(n))};return e.waiters.add(i),Ms(()=>{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=Ns(()=>this.free<e?WC(this,e,t):(this.taken+=e,ks(e)));return t}takeIfAvailable(e){return Ns(()=>this.free<e?ks(!1):(this.taken+=e,ks(!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 Tr(t=>(this.permits=e,this.free<0||this.releaseUnsafe(t,0),Bs))}release(e){return Tr(t=>ks(this.releaseUnsafe(t,e)))}get releaseAll(){return Tr(e=>ks(this.releaseUnsafe(e,this.taken)))}withPermits(e){return t=>Cl(n=>{let r=Ns(()=>{if(this.free<e){let t=WC(this,e,Bs);return bc(n(t),()=>r)}return this.taken+=e,fl(n(t),()=>{this.releaseUnsafe(hs(),e)},!0)});return r})}withPermit=/*#__PURE__*/ this.withPermits(1);withPermitsIfAvailable(e){return t=>Cl(n=>this.free<e?Is:(this.taken+=e,fl(n(hc(t)),()=>{this.releaseUnsafe(hs(),e)},!0)))}};const KC=e=>Ms(()=>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 lt(this,arguments)}},XC=e=>{let t=Object.create(YC);return t.transform=(t,n)=>Jf(e(t,n),e=>I(Pf(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=Sd(n),i=e=>Cd(r,yf(e)),a=yield*Sp(e(t,n,r),i);return Sp(a,i)})),ew=e=>e.transform,tw=(e,t,n)=>_C({capacity:n?.bufferSize,strategy:n?.strategy}).pipe(Vf(t=>bd(e,TC(t))),Vf(n=>vd(t(n),e).pipe(Jf(e=>xC(n,e)),Lp(e)))),nw=(e,t)=>XC((n,r)=>H(tw(r,e,t),DC)),rw=e=>XC((t,n)=>jf(()=>ew(e())(t,n))),iw=e=>QC(L(()=>{let t=e();return jf(()=>{let e=t.next();return e.done?Iu(e.value):I(e.value)})})),aw=e=>uw(I(e)),ow=/*#__PURE__*/ QC(/*#__PURE__*/ I(/*#__PURE__*/ Iu())),sw=e=>QC(I(B(e))),cw=e=>QC(Pf(e)),lw=e=>cw(Du(e)),uw=e=>QC(L(()=>{let t=!1;return jf(()=>t?Iu():(t=!0,e))})),dw=e=>QC(V(e,()=>Iu())),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=jf(()=>n.current?n.current:sp(kf({try:()=>t.read(),catch:e.onError}),{onFailure:e=>n.current??Pf(e),onSuccess:({done:e,value:t})=>n.current?n.current:e?Iu():I(ja(t))}));return Wf(bd(e.scope,e.releaseLockOnEnd?L(()=>t.releaseLock()):Of(()=>t.cancel().catch(gt))),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(hf(e,e=>V(t(e),Iu))))),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*bd(a,TC(l));let u=Bp(yield*lp()),d=BS(a);if(n.unordered){let e=UC(c),n=ft(e.release(1)),r=sp({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(jf(()=>t(e,n))))),R}),Mp({disableYield:!0}),Jf(t=>e.withPermits(c-1)(xC(l,t))),Lp(a))}else{let e=yield*vC(c-2);yield*bd(a,TC(e)),yield*kC(e).pipe(Xre,V(e=>yC(l,e)),Mp({disableYield:!0}),Jf(e=>xC(l,e)),Lp(a));let n,r=e=>{e._tag!==`Success`&&(n=e.cause,SC(l,e.cause))};yield*s.pipe(V(i=>{if(n)return Pf(n);let a=o++,s=u(jf(()=>t(i,a)));return d(s),s.addObserver(r),yC(e,LS(s))}),Mp({disableYield:!0}),Jf(t=>yC(e,Uu(t)).pipe(Bf(xC(e,t)))),Lp(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??=Sd(r),$p(ew(t(e))(n,a),e=>(i=s(e),i)))),s=hf(e=>{if(i=void 0,a.state._tag===`Empty`)return o;let t=Cd(a,qu);return a=void 0,V(t,()=>o)});return jf(()=>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=Sd(r);return H(ew(e)(n,i),e=>{let a=e.pipe(Jf(e=>{if(gf(e))return Pf(e);let o=i;return i=Sd(r),Cd(o,Uu(e)).pipe(Bf(ew(t(e))(n,i)),V(e=>(a=e,e)))}));return jf(()=>a)})})),Dw=/*#__PURE__*/ M(2,(e,t)=>Ew(e,e=>dw(V(t(e),t=>Pf(e))))),Ow=/*#__PURE__*/ M(3,(e,t,n)=>Ew(e,e=>{let r=t(e);return na(r)?cw(r.failure):n(r.success,e)})),kw=/*#__PURE__*/ M(2,(e,t)=>Ow(e,Cre,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*bd(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*Ip(f),yield*ap(c.take(1),Bf(LS(e),Nf))));let t=e===void 0?yield*f:yield*LS(e),n=Sd(o),r=yield*ew(t)(i,n);for(;u.size>=s;){let e=la(u);u.delete(e),u.size===0&&(yield*l.open),yield*RS(e)}let a=yield*r.pipe(Vf(()=>Yre),V(e=>yC(d,e)),Mp({disableYield:!0}),Sp(U(function*(e){let t=yf(e),r=yield*Uf(Cd(n,t));if(!u.has(a))return;let i=Zu([t,r]);Yu(i)&&(yield*xC(d,i.cause)),u.delete(a),c&&(yield*c.release(1)),u.size===0&&(yield*l.open)})),Ip);l.closeUnsafe(),u.add(a)}}).pipe(Jf(e=>{let t=vf(e);return ra(t)?l.whenOpen(xC(d,e)):xC(d,e)}),Lp(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*bd(a,TC(s));let c=0;function l(e,t){if(c++,!gf(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)),Mp)),Sp(t=>Cp(yf(t),e=>Cd(n,e)).pipe(sp({onFailure:t=>l(e,t),onSuccess:()=>l(e,t)}))),Lp(a));return yield*u(`left`,e,Sd(a)),yield*u(`right`,t,Sd(a)),kC(s)}))),Nw=()=>XC((e,t)=>L(()=>{let t=``,n=!1,r=ui();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 wa(r)?r:null}let a=jf(()=>r._tag===`Some`?Iu(r.value):zre(e,{onSuccess:o,onFailure:Pf,onDone:e=>{if(r=di(e),t.length>0){let e=t;return t=``,n=!1,I([e])}return Iu(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=Jf(e,e=>gf(e)?Pf(e):If(Fu(e)));return H(ew(t)(n,r),e=>Yf(e,e=>Pu(e)?Pf(e.value):If(e)))}))),Iw=e=>XC((t,n)=>{let r;return I(jf(()=>r||e.pipe(vd(n),V(e=>ew(e)(t,n)),V(e=>r=e))))}),Lw=/*#__PURE__*/ M(2,(e,t)=>$C((n,r,i)=>yd(i,t).pipe(Bf(ew(e)(n,r))))),Rw=/*#__PURE__*/ M(2,(e,t)=>Lw(e,e=>t)),zw=(e,t,n)=>jf(()=>{let r=_d(),i=ew(e)(Iu(),r);return hf(V(i,t),n||I).pipe(wp(e=>Cd(r,e)))}),Bw=/*#__PURE__*/ M(2,(e,t)=>XC((n,r)=>H(fp(ew(e)(n,r),t),fp(t)))),Vw=/*#__PURE__*/ M(2,(e,t)=>zw(e,e=>Mp(V(e,t),{disableYield:!0}))),Hw=/*#__PURE__*/ M(3,(e,t,n)=>jf(()=>{let r=t();return zw(e,e=>Df({while:pt,body:()=>e,step:e=>{r=n(r,e)}}),()=>I(r))})),Uw=(e,t)=>ew(e)(Iu(),t),Ww=`~effect/PlatformError`;var Gw=class extends (/*#__PURE__*/ go(`BadArgument`)){get message(){return`${this.module}.${this.method}${this.description?`: ${this.description}`:``}`}},Kw=class extends ho{get message(){return`${this._tag}: ${this.module}.${this.method}${this.pathOrDescriptor===void 0?``:` (${this.pathOrDescriptor})`}${this.description?`: ${this.description}`:``}`}},qw=class extends (/*#__PURE__*/ go(`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 lt(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 lt(this,arguments)}},rT=e=>P(e,$w),iT=e=>aT((t,n)=>ew(e)(t,n).pipe(V(Mp({disableYield:!0})),hf(I))),aT=e=>{let t=Object.create(nT);return t.transform=e,t},oT=e=>XC((t,n)=>I(V(e.transform(t,n),Iu))),sT=/*#__PURE__*/ aT(e=>hf(Mp(e,{disableYield:!0}),()=>eT)),cT=e=>lT(Ef(t=>e(t),{discard:!0})),lT=e=>aT(t=>t.pipe(V(e),Mp({disableYield:!0}),hf(()=>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:Ure()},pipe(){return lt(this,arguments)}}),pT=e=>Rf(t=>{let n=t.context,r=Ui(n,hd),i=fT({lookup:e.lookup,context:n,scope:r,idleTimeToLive:typeof e.idleTimeToLive==`function`?yee(e.idleTimeToLive,Ga):ft(Ga(e.idleTimeToLive??Za)),capacity:Math.max(e.capacity??1/0,0)});return Wf(yd(r,()=>{if(i.state._tag===`Closed`)return R;let e=i.state.map;return i.state={_tag:`Closed`},Ef(e,([,e])=>Uf(gT(e))).pipe(Vf(()=>L(()=>{qre(e)})))}),i)}),mT=/*#__PURE__*/ M(2,(e,t)=>jp(n=>{if(e.state._tag===`Closed`)return Dp;let r=e.state,i=zS(),a=xf(r.map,t),o;if(a._tag===`Some`)o=a.value,o.refCount++;else if(Number.isFinite(e.capacity)&&Jre(e.state.map)>=e.capacity)return B(new Dre(`RcMap attempted to exceed capacity of ${e.capacity}`));else{o={deferred:nd(),scope:_d(),idleTimeToLive:e.idleTimeToLive(t),finalizer:void 0,fiber:void 0,expiresAt:0,refCount:1},o.finalizer=_T(e,t,o),Gre(r.map,t,o);let n=new Map(e.context.mapUnsafe);i.context.mapUnsafe.forEach((e,t)=>{n.set(t,e)}),n.set(hd.key,o.scope);let a=Mi(n);jf(()=>e.lookup(t)).pipe(Bp(a),BS(o.scope)).addObserver(n=>{Xu(n)&&hT(e,t,o,a),dd(o.deferred,n)})}let s=Hi(i.context,hd);return bd(s,o.finalizer).pipe(Bf(n(id(o.deferred))))})),hT=(e,t,n,r)=>{if(e.state._tag===`Closed`)return;let i=xf(e.state.map,t);i._tag!==`None`&&i.value===n&&(Cf(e.state.map,t),!(n.refCount>0)&&gT(n).pipe(Bp(r),BS(e.scope)))},gT=e=>e.fiber?RS(e.fiber).pipe(Bf(Cd(e.scope,qu))):Cd(e.scope,qu),_T=(e,t,n)=>Rf(r=>{if(n.refCount--,n.refCount>0)return R;if(e.state._tag===`Closed`)return gT(n);let i=xf(e.state.map,t);if(i._tag===`None`||i.value!==n)return gT(n);if(Xa(n.idleTimeToLive))return Cf(e.state.map,t),gT(n);if(!Ya(n.idleTimeToLive))return R;let a=r.getRef(rf);return n.expiresAt=a.currentTimeMillisUnsafe()+io(n.idleTimeToLive),n.fiber||=jp(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=xf(e.state.map,t);return r._tag===`None`||r.value!==n?R:(Cf(e.state.map,t),Cd(n.scope,qu))}return V(i(a.sleep(to(s))),()=>r(i))}).pipe(xp(L(()=>{n.fiber=void 0})),Bp(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 lt(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=>Rf(t=>{let n=t.context,r=Ui(n,hd),i=new xT(e.acquire,n,r,e.idleTimeToLive===void 0?void 0:Ga(e.idleTimeToLive));return Wf(yd(r,()=>{let e=i.state;return i.state=yT,e._tag===`Acquired`?Cd(e.scope,qu):e._tag===`Acquiring`?RS(e.fiber):R}),i)}),CT=(e,t)=>{switch(e.state._tag){case`Closed`:return Dp;case`Acquired`:{let t=e.state;return t.refCount++,t.fiber?Wf(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=_d(),i=fp(e.acquire,Ri(e.context,hd,r)).pipe(V(t=>{if(e.state!==n)return Dp;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)}),wp(t=>Ju(t)?R:(e.state===n&&(e.state=vT),Cd(r,t))));return n.fiber=Bp(zS().context)(i),wT(e,n,t)}}},wT=(e,t,n)=>wp(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)):Yu(n)?ET(e,r):R}),TT=e=>{let t=e;return jp(e=>V(_p,n=>V(CT(t,e),e=>Wf(yd(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),Cd(t.scope,qu)):(Ya(n)&&(t.fiber=jp(r=>V(r(ip(n)),()=>e.state===t&&t.refCount===0?(e.state=vT,Cd(t.scope,qu)):R)).pipe(xp(L(()=>{t.fiber=void 0})),Bp(e.context),BS(e.scope))),R)},DT=ST,OT=TT,kT=e=>P(e,`~effect/Stream`),AT=Qw,ese=e=>AT(uw(H(e,ja))),tse=e=>jT(L(()=>{let t=!0,n=I(ja(void 0)),r=nie(n,e);return jf(()=>t?(t=!1,n):r)})),jT=e=>AT(QC(e)),MT=(e,t)=>AT(XC((n,r)=>V(Uw(e.channel,r),e=>t(e,r)))),NT=e=>e.channel,nse=(e,t)=>AT(nw(e,t)),PT=/*#__PURE__*/ AT(ow),FT=e=>AT(rw(()=>e().channel)),rse=e=>AT(sw(e)),ise=e=>wa(e)?AT(aw(e)):PT,IT=e=>AT(fw(e)),LT=e=>AT(pw(e)),RT=e=>AT(Iw(H(e,NT))),zT=/*#__PURE__*/ M(2,(e,t)=>FT(()=>{let n=0;return AT(hw(e.channel,Ma(e=>t(e,n++))))})),ase=/*#__PURE__*/ M(2,(e,t)=>AT(yw(e.channel,t))),ose=/*#__PURE__*/ M(2,(e,t)=>{let n=AT(Tw(iw(()=>sse(e,t))));return BT.set(n,[e,t]),n}),BT=/*#__PURE__*/ new WeakMap;function*sse(e,t){let n=[t,e];for(;n.length>0;){let e=n.pop(),t=BT.get(e);t===void 0?yield e.channel:n.push(t[1],t[0])}}const VT=/*#__PURE__*/ M(e=>kT(e[0])&&kT(e[1]),(e,t,n)=>AT(Mw(NT(e),NT(t),n))),cse=/*#__PURE__*/ M(2,(e,t)=>e.channel.pipe(Ew(e=>t(e).channel),AT)),lse=/*#__PURE__*/ M(2,(e,t)=>e.channel.pipe(Dw(t),AT)),use=e=>AT(Aw(e.channel)),dse=/*#__PURE__*/ M(2,(e,t)=>{let n=Zi(t);return n===0?e:MT(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}))}),HT=/*#__PURE__*/ M(2,(e,t)=>MT(e,(e,n)=>L(()=>{let r,i,a=jf(()=>{if(i!==void 0){let e=i;return i=void 0,I(e)}return e}).pipe(Kf(e=>(r=Wu(e),Iu()))),o=H(jf(()=>t.transform(a,n)),([e,t])=>(i=t,ja(e)));return jf(()=>r||o)}))),fse=/*#__PURE__*/ M(2,(e,t)=>AT(Fw(e.channel,t))),pse=/*#__PURE__*/ M(e=>kT(e[0]),(e,t)=>FT(()=>{let n=new TextDecoder(t?.encoding);return zT(e,e=>n.decode(e,{stream:!0}))})),mse=e=>FT(()=>{let t=new TextEncoder;return zT(e,e=>t.encode(e))}),hse=e=>e.channel.pipe(Pw(Nw()),AT),gse=/*#__PURE__*/ M(2,(e,t)=>AT(Rw(e.channel,t))),UT=/*#__PURE__*/ M(2,(e,t)=>AT(Bw(e.channel,t))),WT=/*#__PURE__*/ M(2,(e,t)=>sie(n=>Uw(e.channel,n).pipe(V(e=>t.transform(e,n)),H(([e])=>e)))),_se=e=>Hw(e.channel,()=>[],(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n]);return e}),vse=/*#__PURE__*/ M(2,(e,t)=>Vw(e.channel,e=>{let n=0;return Df({while:()=>n<e.length,body:()=>t(e[n++]),step:gt})})),GT=/*#__PURE__*/ M(2,(e,t)=>Vw(e.channel,t)),yse=e=>Hw(e.channel,()=>``,(e,t)=>e+t.join(``)),KT=/*#__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=zp(fp(GT(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(ju(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,Vp(Gf(RS(i)))}},n?.strategy)}),bse=/*#__PURE__*/ M(e=>kT(e[0]),(e,t)=>H(lp(),n=>KT(e,n,t))),qT=`~effect/FileSystem`,JT=/*#__PURE__*/ F(`effect/FileSystem`),xse=e=>JT.of({...e,[qT]:qT,exists:t=>_t(e.access(t),Wf(!0),qf(`PlatformError`,e=>e.reason._tag===`NotFound`?I(!1):B(e))),readFileString:(t,n)=>V(e.readFile(t),e=>Lf({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:Lm(n.offset);i&&(yield*r.seek(i,`start`));let a=n?.bytesToRead===void 0?void 0:Lm(n.bytesToRead),o=BigInt(0),s=Number(BigInt(n?.chunkSize??65536)),c=r.readAlloc(s);return jT(I(V(jf(()=>a!==void 0&&a<=o?Iu():a!==void 0&&a-o<s?r.readAlloc(Number(a-o)):c),mi({onNone:()=>Iu(),onSome:e=>(o+=BigInt(e.length),I(ja(e)))}))))},RT),sink:(t,n)=>_t(e.open(t,{...n,flag:n?.flag??`w`}),H(e=>cT(t=>e.writeAll(t))),uT),writeFileString:(t,n,r)=>V(Lf({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))}),YT=`~effect/FileSystem/File`;var Sse=class extends (/*#__PURE__*/ F()(`effect/FileSystem/WatchBackend`)){};const XT=`~effect/Path`,ZT=/*#__PURE__*/ F(`effect/Path`);function Cse(e){return{_tag:`Value`,value:e}}function wse(e,t){return{_tag:`Record`,keys:e,value:t}}function Tse(e,t){return{_tag:`Array`,length:e,value:t}}const Ese=/*#__PURE__*/ Yi(`effect/ConfigProvider`,{defaultValue:()=>Nse()}),Dse={...Xn,toJSON(){return{_id:`ConfigProvider`}}},Ose=e=>e;function kse(e,t){let n=Object.create(Dse);return n.load=e,n.mapInput=t,n}function QT(e,t){return kse(n=>e(t(n)),n=>QT(e,e=>n(t(e))))}function Ase(e){return QT(e,Ose)}function jse(e,t){return e===``&&!t?void 0:e}function Mse(e,t){let n=t?.preserveEmptyStrings===!0,r=Pse(e);return Ase(t=>I(Fse(r,e,t,n)))}function Nse(e){return Mse(e?.env??{...globalThis.process?.env,...import.meta.env},{preserveEmptyStrings:e?.preserveEmptyStrings})}function Pse(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 Fse(e,t,n,r){let i=n.map(String).join(`_`),a=jse(Object.hasOwn(t,i)?t[i]:void 0,r),o=Ise(e,n),s=o?.children?Object.keys(o.children):[];return s.length===0?a===void 0?void 0:Cse(a):s.every(Ta)?Tse(Math.max(...s.map(e=>parseInt(e,10)))+1,a):wse(new Set(s),a)}function Ise(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 Lse=/*#__PURE__*/ li(_u),$T=`~effect/Config`;var eE=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}};const Rse={.../*#__PURE__*/ Ir({label:`Config`,evaluate(e){return this.parse(e.getRef(Ese))}}),[$T]:$T,toJSON(){return{_id:`Config`}}};function tE(e){let t=Object.create(Rse);return t.evaluator=e,t.parse=t=>$p(e(t,[]),zf),t}const zse=(e,t,n)=>e.evaluator(t,n),nE=/*#__PURE__*/ M(2,(e,t)=>tE((n,r)=>Xp(zse(e,n,r),e=>na(e)?Qi(t):e))),Bse=e=>Vt(e,`SourceError`),Vse=()=>`<configuration>`,rE=e=>t=>Jf(t,t=>Pf(Eu(t.reasons.map(e)))),iE=(e,t)=>e.load(t).pipe(rE(e=>Tu(e)?ku(e.error).annotate(zu(e)):e),Xp(n=>({provider:e,path:t,node:n,toString:Vse}))),aE=(e,t)=>iE(e.provider,[...e.path,t]),oE=(e,t)=>ky(xv,e,new F_(x_(e=>t(e)),y_())),sE=e=>{switch(e._tag){case`Union`:return e.types.every(sE);case`Objects`:case`Arrays`:case`Suspend`:return!1;default:return!0}},cE=(e,t)=>{switch(e._tag){case`Objects`:return t?._tag===`Record`;case`Arrays`:return t?._tag===`Array`;case`Union`:return e.types.some(e=>cE(e,t));case`Suspend`:return cE(e.thunk(),t);default:return t?.value!==void 0}},Hse=/*#__PURE__*/ vt(e=>{let t=/* @__PURE__ */ new WeakSet,n=Nie(e=>{switch(t.add(e),e._tag){case`Objects`:{let t=e.indexSignatures.map(e=>lb(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*aE(n,e);t.node!==void 0&&Rn(a,e,t)}return a});return oE(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*aE(e,n));return t});return oE(e.recur(n),t)}case`Union`:for(let t of e.types)n(t);if(!sE(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 oE(e,e=>I(e.node?.value))});return n(e)});function lE(e,t){let n=MS(e),r=Ny(n.ast),i=ub(hx(Hse(n.ast))),a=typeof t==`string`?[t]:t??[];return tE((e,t)=>{let n=[...t,...a];return iE(e,n).pipe($p(e=>i(e).pipe(Xp(Qi),em(t=>{let i=new eE(new ix(n.length>0?new Rg(n,t):t));return cE(r,e.node)?B(i):I($i(i))}))),rE(e=>vre(e)&&Bse(e.defect)?Ou(new eE(e.defect)).annotate(zu(e)):e))})}const Use=/*#__PURE__*/ Xx.check(/*#__PURE__*/ Yx({minimum:1,maximum:65535})),Wse=e=>Tt(e)||globalThis.Array.isArray(e);function uE(e){return lE(W,e)}function Gse(e,t,n){let r=Wse(t),i=r?n:t,a=K(e),o=i?.separator??`,`;return lE(q([W.pipe(Rx(MS(a),{decode:A_(i),encode:m_(y_({strict:!1}),b_(e=>e.join(o)))})),a]),r?t:void 0)}function dE(e){return lE(hoe,e)}function Kse(e){return lE(Use,e)}function qse(e){return lE(SS(W),e)}const Jse=2**48-1,fE=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,Yse=(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)),Jse),r=``;for(let e=45;e>=0;e-=5)r+=fE[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+=fE[i>>>a&31];i&=(1<<a)-1}return r},Xse=e=>e.toString(16).padStart(2,`0`),pE=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,Xse).join(``)).join(`-`),mE=()=>globalThis.crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16));function Zse(e=mE()){return e[6]=e[6]&15|64,e[8]=e[8]&63|128,e}const Qse=2**48-1;function $se(e,t=mE()){let n=Math.min(Math.max(0,Math.trunc(e)),Qse);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 hE=`~effect/Crypto`,gE=/*#__PURE__*/ F(`effect/Crypto`),ece=e=>{let t=e.randomBytes,n=e=>H(tce(`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 gE.of({[hE]:hE,randomBytes:n,nextDoubleUnsafe:i,nextIntUnsafe:a,digest:e.digest,random:L(()=>i()),randomBoolean:L(()=>i()>.5),randomInt:L(()=>a()),randomBetween:(e,t)=>L(()=>Lre(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=Zse(t(16));return e?.format===`bytes`?n:pE(n)}),randomUUIDv7:e=>Gp(n=>{let r=$se(n.currentTimeMillisUnsafe(),t(16));return I(e?.format===`bytes`?r:pE(r))}),randomULID:Gp(e=>I(Yse(e.currentTimeMillisUnsafe(),t(10))))})},tce=(e,t)=>Number.isSafeInteger(t)&&t>=0?I(t):B(Yw({module:`Crypto`,method:e,description:`size must be a non-negative safe integer`})),nce=e=>Rf(t=>(wu(t,e),R)),_E=`~effect/ErrorReporter/ignore`,vE=`~effect/Match/Matcher`,rce={[vE]:{_input:N,_filters:N,_remaining:N,_result:N,_return:N,_args:N},_tag:`TypeMatcher`,add(e){return yE(this.select,[...this.cases,e])},pipe(){return lt(this,arguments)}};function yE(e,t){let n=Object.create(rce);return n.select=e,n.cases=t,n}const ice={[vE]:{_input:N,_filters:N,_result:N,_return:N,_flavor:N},_tag:`ValueMatcher`,add(e){return ra(this.value)?this:e._tag===`When`&&e.guard(this.provided)===!0||e._tag===`Not`&&e.guard(this.provided)===!1?bE(this.provided,Qi(e.evaluate(this.provided))):this},pipe(){return lt(this,arguments)}};function bE(e,t){let n=Object.create(ice);return n.provided=e,n.value=t,n}const xE=(e,t)=>({_tag:`When`,guard:e,evaluate:t}),SE=e=>{if(typeof e==`function`)return e;if(Array.isArray(e)){let t=e.map(SE),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,SE(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},ace=()=>yE(N,[]),oce=e=>bE(e,$i(e)),sce=(e,t)=>n=>n.add(xE(SE(e),t)),cce=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(xE(i,n))},lce=e=>t=>{let n=xE(n=>n!=null&&Object.hasOwn(t,n[e]),n=>t[n[e]](n));return e=>e.add(n)},uce=/*#__PURE__*/ cce(`_tag`),dce=/*#__PURE__*/ lce(`_tag`),fce=(...e)=>{let t=e.length;return n=>{for(let r=0;r<t;r++)if(n===e[r])return!0;return!1}},pce=e=>t=>{let n=CE(t);return ta(n)?n._tag===`Success`?n.success:e(n.failure):(...t)=>{let r=n(...t);return ra(r)?r.success:e(r.failure,...t)}},CE=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?Qi(t.evaluate(r,...n)):$i(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 Qi(t.evaluate(r,...n))}return $i(r)}},wE=`effect/match/Match/exhaustive: absurd`,mce=e=>{let t=CE(e);if(ta(t)){if(ra(t))return t.success;throw Error(wE)}return(...e)=>{let n=t(...e);if(ra(n))return n.success;throw Error(wE)}},TE=ace,EE=oce,DE=sce,OE=uce,kE=dce,AE=fce,hce=Tt,gce=Et,_ce=Dt,jE=pce,ME=mce,vce={"~effect/Ref":{_A:N},...Xn,toJSON(){return{_id:`Ref`,ref:this.ref}}},yce=e=>{let t=Object.create(vce);return t.ref=GS(e),t},NE=e=>L(()=>yce(e)),PE=e=>L(()=>e.ref.current),FE=/*#__PURE__*/ M(2,(e,t)=>L(()=>KS(e.ref,t))),IE=/*#__PURE__*/ M(2,(e,t)=>L(()=>{let n=e.ref.current;return e.ref.current=t,n})),LE=/*#__PURE__*/ M(2,(e,t)=>e===void 0?void 0:t(e)),RE=`~effect/Stdio`,bce=/*#__PURE__*/ F(RE),xce=e=>({[RE]:RE,stdinIsTerminal:I(!1),stdoutIsTerminal:I(!1),stderrIsTerminal:I(!1),...e}),zE=`~effect/Terminal`,BE=`~effect/Terminal/QuitError`;var Sce=class extends (/*#__PURE__*/ kS(`QuitError`)({_tag:/*#__PURE__*/ Bx(`QuitError`)})){[BE]=BE};const VE=/*#__PURE__*/ F(`effect/Terminal`),Cce=e=>VE.of({...e,[zE]:zE}),wce=/*#__PURE__*/ IS(),Tce=/*#__PURE__*/ IS(),HE=`~effect/process/ChildProcessSpawner/ChildProcessHandle`,Ece={[HE]:HE,...Mn,toJSON(){return{_id:`ChildProcessHandle`,pid:this.pid}}},UE=e=>Object.setPrototypeOf({...e},Ece),Dce=e=>{let t=(t,n)=>e(t).pipe(H(e=>pse(n?.includeStderr===!0?e.all:e.stdout)),RT),n=(e,n)=>hse(t(e,n));return WE.of({spawn:e,exitCode:t=>vp(V(e(t),e=>e.exitCode)),streamString:t,streamLines:n,lines:(e,t)=>_se(n(e,t)),string:(e,n)=>yse(t(e,n))})};var WE=class extends (/*#__PURE__*/ F()(`effect/process/ChildProcessSpawner`)){};const GE=`~effect/process/ChildProcess`,Oce={.../*#__PURE__*/ Ir({label:`Command`,evaluate(e){return Hi(e.context,WE).spawn(this)}}),[GE]:GE},KE=(e,t,n)=>Object.assign(Object.create(Oce),{_tag:`StandardCommand`,command:e,args:t,options:n}),qE=function(...e){if(JE(e[0])){let[t,...n]=e,r=XE(t,n);return KE(r[0]??``,r.slice(1),{})}if(typeof e[0]==`object`&&!Array.isArray(e[0])&&!JE(e[0])){let t=e[0];return function(e,...n){let r=XE(e,n);return KE(r[0]??``,r.slice(1),t)}}if(typeof e[0]==`string`&&!Array.isArray(e[1])){let[t,n={}]=e;return KE(t,[],n)}let[t,n=[],r={}]=e;return KE(t,n,r)},JE=e=>Array.isArray(e)&&`raw`in e&&Array.isArray(e.raw),YE=e=>{let t=/^fd(\d+)$/.exec(e);if(t===null)return;let n=parseInt(t[1],10);return n>=3?n:void 0},kce=e=>`fd${e}`,XE=(e,t)=>{let n=[];for(let[r,i]of e.entries())n=Ace(e,t,n,i,r);return n},Ace=(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}=Mce(r,a),l=$E(n,c,o);if(i===t.length)return l;let u=t[i],d=Array.isArray(u)?u.map(e=>ZE(e)):[ZE(u)];return $E(l,d,s)},ZE=e=>typeof e==`string`?e:String(e),QE=/*#__PURE__*/ new Set([` `,` `,`\r`,`
21
- `]),jce={x:3,u:5},Mce=(e,t)=>{if(t.length===0)return{tokens:[],hasLeadingWhitespace:!1,hasTrailingWhitespace:!1};let n=QE.has(t[0]),r=[],i=0;for(let n=0,a=0;n<e.length;n+=1,a+=1){let o=t[a];if(QE.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+=jce[e]??1}}let a=i===e.length;return a||r.push(e.slice(i)),{tokens:r,hasLeadingWhitespace:n,hasTrailingWhitespace:a}},$E=(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)],Nce=(e,t,n)=>{let r=e.detached??n!==`win32`;return{...t,detached:r,shell:e.shell,windowsHide:e.windowsHide??!r}},eD=(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})},tD=e=>iT(gw(Pce(e),e=>[e])),Pce=e=>XC(t=>{let n=e.evaluate();return I(nD({...e,writable:n,pull:t}))}),nD=e=>e.pull.pipe(V(t=>{let n=0;return Mf(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)})})}),Mp({disableYield:!0}),e.endOnDone===!1?N:hf(t=>`closed`in e.writable&&e.writable.closed?Iu(t):Mf(n=>{let r=()=>n(Iu(t));return e.writable.once(`finish`,r),e.writable.end(),L(()=>{e.writable.off(`finish`,r)})})),ap(Mf(t=>{let n=n=>t(B(e.onError(n)));return e.writable.once(`error`,n),L(()=>{e.writable.off(`error`,n)})}))),rD=e=>AT(Fce(e)),Fce=e=>XC((t,n)=>oD({scope:n,readable:e.evaluate(),onError:e.onError??sD,chunkSize:e.chunkSize,closeOnDone:e.closeOnDone})),Ice=e=>XC((t,n)=>{let r=e.evaluate(),i=GS(void 0),a=VS(!1);return nD({pull:t,writable:r,onError:e.onError??sD,endOnDone:e.endOnDone,encoding:e.encoding}).pipe(Jf(e=>(gf(e)||(i.current=Uu(e),a.openUnsafe()),R)),Lp(n),V(()=>oD({scope:n,exit:i,latch:a,readable:r,onError:e.onError??sD,chunkSize:e.chunkSize})))}),Lce=/*#__PURE__*/ M(2,(e,t)=>fse(e,Ice(t))),iD=(e,t)=>{let n=cD(t?.maxBytes),r=t?.onError??sD;return Mf(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()})})},aD=(e,t)=>H(iD(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=Wu(e.onError(t)),i.openUnsafe()}function s(){r.current=Wu(Fu()),i.openUnsafe()}t.on(`readable`,a),t.once(`error`,o),t.once(`end`,s);let c=jf(function n(){let a=e.readable.read(e.chunkSize);if(a===null)return r.current?r.current:t.readableEnded?B(Fu()):(i.closeUnsafe(),V(i.await,n));let o=ja(a);for(;a=e.readable.read(e.chunkSize),a!==null;)o.push(a);return I(o)});return Wf(bd(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 Ru(e),cD=e=>e===void 0||e===1/0?void 0:Number(Lm(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 eD(`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(!ld(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):Xe.execFile(`taskkill`,[`/pid`,String(e.pid),`/T`,`/F`],{windowsHide:!0},t)},hD=/*#__PURE__*/ Ud(WE,/* @__PURE__ */ z(function*(){let e=yield*JT,t=yield*ZT,n=U(function*(n){if(!jt(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 jt(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 jt(n)?{stream:`pipe`}:typeof n==`string`||rT(n)?{stream:n}:{stream:n.stream}},c=e=>{if(jt(e.additionalFds))return[];let t=[];for(let[n,r]of Object.entries(e.additionalFds)){let e=YE(n);Mt(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:()=>PT};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=tD({evaluate:()=>n,onError:t=>uD(`fromWritable(fd${o})`,lD(t),e)})),a.stream&&(yield*Rp(WT(a.stream,t))),r.set(o,t);break}case`output`:{let t=PT;if(n&&`read`in n){let r=new Qe;n.on(`error`,e=>r.destroy(e)),n.pipe(r),t=rD({evaluate:()=>r,onError:t=>uD(`fromReadable(fd${o})`,lD(t),e)})}a.sink&&(t=HT(t,a.sink)),i.set(o,t);break}}}return{getInputFd:e=>r.get(e)??sT,getOutputFd:e=>i.get(e)??PT}}),d=(e,t,n)=>jf(()=>{let r=sT;return Nt(t.stdin)&&(fD(t.stdin),r=tD({evaluate:()=>t.stdin,onError:t=>uD(`fromWritable(stdin)`,lD(t),e),endOnDone:n.endOnDone,encoding:n.encoding})),kT(n.stream)?Wf(Rp(WT(n.stream,r)),r):I(r)}),f=(e,t,n,r)=>{let i=t.stdout?(()=>{let n=new Qe;return t.stdout.on(`error`,e=>n.destroy(e)),t.stdout.pipe(n),rD({evaluate:()=>n,onError:t=>uD(`fromReadable(stdout)`,lD(t),e)})})():PT,a=t.stderr?(()=>{let n=new Qe;return t.stderr.on(`error`,e=>n.destroy(e)),t.stderr.pipe(n),rD({evaluate:()=>n,onError:t=>uD(`fromReadable(stderr)`,lD(t),e)})})():PT;rT(n.stream)&&(i=HT(i,n.stream)),rT(r.stream)&&(a=HT(a,r.stream));let o=VT(i,a);return{stdout:i,stderr:a,all:o}},p=(e,t)=>Mf(n=>{let r=nd(),i=Xe.spawn(e.command,e.args,t);return i.on(`error`,t=>{n(B(uD(`spawn`,t,e)))}),i.on(`exit`,(...e)=>{dd(r,Hu(e))}),i.on(`spawn`,()=>{n(I([i,r]))}),L(()=>{i.kill(`SIGTERM`)})}),m=(e,t,n)=>globalThis.process.platform===`win32`?Mf(n=>{mD(t,t=>{n(t?B(uD(`kill`,lD(t),e)):R)})}):Lf({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)=>jf(()=>{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)=>Mf(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(Kf(()=>g(e,t,n)));yield*i(r?.killSignal??`SIGTERM`),jt(r?.forceKillAfter)?yield*_(t,n,dD):(yield*_(t,n,io(r.forceKillAfter)),pD(t,n)&&(yield*i(`SIGKILL`),yield*_(t,n,dD))),yield*id(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=YE(n);return Mt(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*yp(p(e,Nce(e.options,{cwd:_,env:y,stdio:b},process.platform)),U(function*([t,n]){if(yield*cd(n)){let[r]=yield*id(n);(r!==0&&Nt(r)||g&&process.platform!==`win32`&&e.options.detached!==!1)&&(yield*tp(v(e,t,n,e.options)))}else g&&(yield*tp(v(e,t,n,e.options)))})),ee=Tce(x.pid);x.on(`exit`,t=>{t!==0&&Nt(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(cd(S),e=>!e),oe=V(id(S),([t,n])=>{if(Nt(t))return I(wce(t));let r=new globalThis.Error(`Process interrupted due to receipt of signal: '${n}'`);return B(uD(`exitCode`,r,e))});return UE({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=RT(I(y(a[a.length-1],r.from))),l=r.to??`stdin`;if(l===`stdin`)a.push(yield*b(qE(t.command,t.args,{...t.options,stdin:{...s,stream:c}})));else{let e=YE(l);if(Mt(e)){let n=kce(e),r=t.options.additionalFds??{};a.push(yield*b(qE(t.command,t.args,{...t.options,additionalFds:{...r,[n]:{type:`input`,stream:c}}})))}else a.push(yield*b(qE(t.command,t.args,{...t.options,stdin:{...s,stream:c}})))}}let s=a[a.length-1],c=e=>Ef([...a].reverse(),t=>tp(t.kill(e)),{discard:!0}),l=z(function*(){let e=[];for(let t of a)e.push(yield*t.unref);return Ef([...e].reverse(),e=>e,{discard:!0})});return UE({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 Dce(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__*/ go(`HttpBodyError`)){[vD]=vD},bD=class{[_D];constructor(){this[_D]=_D}[An](){return this.toJSON()}toString(){return wn(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)=>Lf({try:()=>kD(JSON.stringify(e),t??`application/json`),catch:e=>new yD({reason:{_tag:`JsonError`},cause:e})}),MD=(e,t)=>{let n=db(jS(e));return(e,r)=>n(e,t).pipe(Zf(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__*/ go(`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__*/ go(`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__*/ go(`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__*/ go(`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__*/ go(`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__*/ go(`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`?Zh(Zh(e,`content-type`),`content-length`):(e=t.contentType===void 0?Zh(e,`content-type`):Jh(e,`content-type`,t.contentType),t.contentLength===void 0?Zh(e,`content-length`):Jh(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__*/ go(`UrlError`)){};const YD=(e,t,n)=>ea({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,...Mn,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:yn(this.headers),body:this.body.toJSON()}},pipe(){return lt(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`,``,ug,/*#__PURE__*/ ui(),Gh,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,Jh(e.headers,t,n),e.body)),sO=/*#__PURE__*/ M(2,(e,t)=>$D(e.method,e.url,e.urlParams,e.hash,Yh(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=og(n.searchParams),i=gi(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,dg(e.urlParams,t),e.hash,e.headers,e.body)),fO=/*#__PURE__*/ M(2,(e,t)=>$D(e.method,e.url,e.urlParams,di(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,vi(e.hash));return ra(t)?di(t.success):ui()}const gO=`~effect/http/HttpIncomingMessage`,_O=(e,t)=>{let n=lx(jS(e)),r=t?.reviver===void 0?void 0:lx(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__*/ Yi(`effect/http/HttpIncomingMessage/MaxBodySize`,{defaultValue:()=>void 0}),yO=(e,t)=>{let n=e.headers[`content-type`]??``,r;if(n.includes(`application/json`))try{r=Hp(e.json)}catch{}else if(n.includes(`text/`)||n.includes(`urlencoded`))try{r=Hp(e.text)}catch{}let i={...t,headers:yn(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 Nn{[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 fi(e)?``:(e.value.hash=``,e.value.href)}get headers(){return Kh(this.source.headers)}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=mh(this.source.headers.getSetCookie?.()??[])}get remoteAddress(){return ui()}get stream(){return this.source.body?LT({evaluate:()=>this.source.body,onError:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}):rse(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=>Lf({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=>Lf({try:()=>og(new URLSearchParams(e)),catch:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}))}formDataBody;get formData(){return this.formDataBody??=kf({try:()=>this.source.formData(),catch:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}).pipe(Tp,Hp)}arrayBufferBody;get arrayBuffer(){return this.arrayBufferBody||=kf({try:()=>this.source.arrayBuffer(),catch:e=>new ID({reason:new HD({request:this.request,response:this,cause:e})})}).pipe(Tp,Hp),this.arrayBufferBody}pipe(){return lt(this,arguments)}};const CO=e=>qh({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${mi(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),wO=e=>{let t=jO(e);return pi(t)||(t=TO(e),pi(t))?t:EO(e)},TO=e=>{if(!(`b3`in e))return ui();let t=e.b3.split(`-`);return t.length<2||AO(t[0],t[1])===!1?ui():di(wo({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?ui():di(wo({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 ui();let t=e.traceparent.split(`-`);if(t.length!==4)return ui();let[n,r,i,a]=t;switch(n){case`00`:return DO.test(r)===!1||OO.test(i)===!1||r===`00000000000000000000000000000000`||i===`0000000000000000`?ui():di(wo({traceId:r,spanId:i,sampled:(parseInt(a,16)&1)==1}));default:return ui()}},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}`,eg(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 lt(this,arguments)},...Mn,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=>Rf(n=>{let r=XO.get(t),i=r??new AbortController,a=YD(t.url,t.urlParams,vi(t.hash));if(na(a))return B(new ID({reason:new BD({request:t,cause:a.failure})}));let o=a.success;if(n.getRef(To)||n.getRef(WO)(t)){let a=e(t,o,i.signal,n);return r?a:jp(e=>sp(e(a),{onSuccess(e){return YO.register(e,i),I(new ZO(e,i))},onFailure(e){return Nu(e)&&i.abort(),Pf(e)}}))}return Np(n.getRef(qO)(t),{kind:`client`},a=>{a.attribute(`http.request.method`,t.method);let s=n.getRef(tg);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,jp(l=>l(e(t,o,i.signal,n)).pipe(Fp(a,{captureStackTrace:!1}),sp({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&&Nu(e)&&i.abort(),Pf(e)}})))})})),I),HO=(e,t,n,r)=>{let i=Pn();Fn(0);let a;try{a=Wu(new ID({reason:new VD({request:n,response:r})}))}finally{Fn(i)}t.end(e.getRef(md)?e.getRef(rf).currentTimeNanosUnsafe():BigInt(0),a)},UO=e=>LO(e,(e,t)=>{let n=new AbortController;return XO.set(t,n),Bf(bp(()=>L(()=>n.abort())),e)}),WO=/*#__PURE__*/ Yi(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>mt}),GO=/*#__PURE__*/ Yi(`effect/http/HttpClient/TracerHeaderFilter`,{defaultValue:()=>mt}),KO=/*#__PURE__*/ Yi(`effect/http/HttpClient/TracerPropagationEnabled`,{defaultValue:pt}),qO=/*#__PURE__*/ Yi(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>e.method}),JO=e=>Ud(IO)(up(t=>H(e,e=>RO(e,hp(e=>qi(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 jf(()=>(YO.unregister(this.original),kp(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 FT(()=>(YO.unregister(this.original),gse(this.original.stream,L(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[An](){return this.original[An]()}pipe(){return lt(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=mi(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__*/ Bd(Dk)({fromFileInfo(e){return L(()=>({_tag:`Strong`,value:Ok(e)}))},fromFileWeb(e){return L(()=>({_tag:`Strong`,value:kk(e)}))}}),jk=/*#__PURE__*/ Bd(Dk)({fromFileInfo(e){return L(()=>({_tag:`Weak`,value:Ok(e)}))},fromFileWeb(e){return L(()=>({_tag:`Weak`,value:kk(e)}))}}),Mk=/*#__PURE__*/ Object.getPrototypeOf(Gh),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?Kh(e.headers):void 0,cookies:e?.cookies}),Lk=(e,t)=>{let n=qh({location:e.toString()});return iA({status:t?.status??302,statusText:t?.statusText,headers:t?.headers?Xh(n,Kh(t.headers)):n,cookies:t?.cookies??gh})},Rk=(e,t)=>{let n=t?.headers?Kh(t.headers):Gh;return iA({status:t?.status??200,statusText:t?.statusText,headers:n,cookies:t?.cookies??gh,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?Kh(t.headers):Gh;return iA({status:t?.status??200,statusText:t?.statusText,headers:n,cookies:t?.cookies??gh,body:kD(e,zk(t,n))})},Vk=(e,t)=>{let n=MD(e,t);return(e,t)=>{let r=t?.headers?Kh(t.headers):Gh;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?Kh(t.headers):Gh;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?Kh(t.headers):Gh;return iA({status:t?.status??200,statusText:t?.statusText,headers:n,cookies:t?.cookies,body:kD(fg(og(e)),zk(t,n)??`application/x-www-form-urlencoded`)})},Wk=(e,t)=>iA({status:t?.status??200,statusText:t?.statusText,headers:t?.headers&&Kh(t.headers),cookies:t?.cookies,body:CD(e,{contentType:t?.contentType,contentLength:t?.contentLength})}),Gk=(e,t)=>{let n=t?.headers?Kh(t.headers):Gh;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,Jh(e.headers,t,n))),qk=/*#__PURE__*/ M(2,(e,t)=>iA({...e,headers:Zh(e.headers,t)})),Jk=/*#__PURE__*/ M(2,(e,t)=>iA(e,Yh(e.headers,t))),Yk=/*#__PURE__*/ M(e=>Fk(e[0]),(e,t,n,r)=>H(zf(Eh(e.cookies,t,n,r)),t=>iA({...e,cookies:t}))),Xk=/*#__PURE__*/ M(2,(e,t)=>iA({...e,cookies:Th(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(!_h(e.cookies)){let t=Ah(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(gt),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(KT(r.stream,t?.context??Fi(),{signal:t?.signal}),{status:e.status,statusText:e.statusText,headers:n})}},nA=e=>typeof ReadableStream<`u`&&e instanceof ReadableStream,rA={...Xn,[Pk]:Pk,[_E]:!0,toJSON(){return{_id:`HttpServerResponse`,status:this.status,statusText:this.statusText,headers:yn(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??gh,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===Gh?Nk():qh({...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??Gh;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:mh(n)});if(e.body){let t=e.headers.get(`content-type`);r=Zk(r,PD(LT({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 ui();let t=e.replace(/^.*[/\\]/s,``).toLowerCase(),n=t.replace(/^.*\./s,``).toLowerCase(),r=t.length<e.length;return!(n.length<t.length-1)&&r?ui():_i(uA().extensionToType.get(n))};var fA=class extends (/*#__PURE__*/ F()(`effect/http/HttpPlatform`)){};const pA=/*#__PURE__*/ U(function*(e){let t=yield*JT,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?Mm: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=Jh(mA(i),`etag`,Ek(o));return pi(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=Xh(mA(r),qh({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?Kh(e.headers):Gh;return e?.contentType?Jh(t,`content-type`,e.contentType):t},hA=(e,t)=>{let n=Rm(e);return pi(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)?Jf(e[_A](),()=>I(t)):ex(e)?I(yA):Ere(e)?I(bA):I(t),SA=(e,t)=>Fk(e)?I(e):vA(e)?Jf(e[_A](),()=>I(t)):I(t),CA=`~effect/http/HttpServerError`;var wA=class extends (/*#__PURE__*/ go(`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[_E](){return this.reason[`~effect/ErrorReporter/ignore`]??!1}get message(){return this.reason.message}},TA=class extends (/*#__PURE__*/ go(`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__*/ go(`RouteNotFound`)){[_A](){return I(Ik({status:404}))}[_E]=!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__*/ go(`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__*/ Ri(Bu,{name:`ClientAbort`,stack:ht,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,Eu(r)]):(i.length>0&&r.length===0&&(r.push(...i),n=a?FA:IA),Xp(n,e=>(r.push(ku(e)),[e,Eu(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?di(Eu(n)):ui()]},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(Lm(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 ho{};const bj={FileTooLarge:413,FieldTooLarge:413,BodyTooLarge:413,TooManyParts:413,InternalError:500,Parse:400};var xj=class e extends (/*#__PURE__*/ go(`MultipartError`)){static fromReason(t,n){return new e({reason:new yj({_tag:t,cause:n})})}[_j]=_j;[_E]=!0;[_A](){return I(Ik({status:bj[this.reason._tag]}))}get message(){return this.reason._tag}};const Sj=e=>P(e,_j),Cj=e=>Rf(t=>{let n=Ui(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 Nn{[gj];constructor(){super(),this[gj]=gj}};const Tj=(e,t)=>V(JT,n=>Zf(WT(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*JT,r=yield*ZT,i=yield*n.makeTempDirectoryScoped(),a=Object.create(null),o=/* @__PURE__ */ new Set,s=0;return yield*vse(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(qf(`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,Lm(e.maxFieldSize)),e.maxFileSize!==void 0&&t.set(Nj.key,Lm(e.maxFileSize)),e.maxTotalSize!==void 0&&t.set(vO.key,Lm(e.maxTotalSize)),e.fieldMimeTypes!==void 0&&t.set(Pj.key,e.fieldMimeTypes),Mi(t)},jj=/*#__PURE__*/ Yi(`effect/http/Multipart/MaxParts`,{defaultValue:()=>void 0}),Mj=/*#__PURE__*/ Yi(`effect/http/Multipart/MaxFieldSize`,{defaultValue:/*#__PURE__*/ ft(/*#__PURE__*/ Bm(10))}),Nj=/*#__PURE__*/ Yi(`effect/http/Multipart/MaxFileSize`,{defaultValue:()=>void 0}),Pj=/*#__PURE__*/ Yi(`effect/http/Multipart/FieldMimeTypes`,{defaultValue:/*#__PURE__*/ ft([`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=cx(e);return V(Ij,e=>n(e.cookies,t))},zj=(e,t)=>{let n=cx(e);return V(Ij,e=>n(e.headers,t))},Bj=(e,t)=>{let n=cx(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 di(new URL(e.url,`${n}://${t}`))}catch{return ui()}},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=>Rf(t=>{let n=Hi(t.context,Ij);return Gj.add(n.source),e}),qj=/*#__PURE__*/ Yi(`effect/http/HttpMiddleware/TracerDisabledWhen`,{defaultValue:()=>mt}),Jj=/*#__PURE__*/ Yi(`@effect/platform/HttpMiddleware/SpanNameGenerator`,{defaultValue:()=>e=>e.method}),Yj=/*#__PURE__*/ Yi(`effect/http/HttpMiddleware/TracerHeaderFilter`,{defaultValue:()=>mt}),Xj=(e,t)=>!e.cache.tracerEnabled||e.getRef(qj)(t),Zj=(e,t)=>{if(!(t.status>=500&&t.status<600))return Hu(t);let n=Pn();Fn(0);try{return Wu(new wA({reason:new OA({request:e,response:t})}))}finally{Fn(n)}},Qj=/*#__PURE__*/ Wj(e=>Rf(t=>{let n=Hi(t.context,Ij);if(Xj(t,n))return e;let r=t.getRef(Jj),i=ql(t,r(n),{parent:vi(wO(n.headers)),kind:`server`}),a=t.context;return t.setContext(Ri(t.context,Co,i)),pl(t,e=>{t.setContext(a);let r=t.getRef(rf).currentTimeNanosUnsafe();if(Ju(e)&&(!i.sampled||t.getRef(Do)===Oo)){i.end(r,Zj(n,e.value));return}let o=t.getRef(tg),s=t.getRef(Yj),c,l;if(Yu(e)){let[t,r]=MA(e.cause);c=t,l=pi(r)&&(c.status>=500||Nu(r.value))?Uu(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);pi(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),pi(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 $p(jA(n),([e,n])=>{let i=zS();wu(i,n);let a=Hj.get(r.source),o=n.reasons.length===0?I(e):Pf(n);return a===void 0?(r[eM]=!0,$p(t(r,e),()=>o)):$p($p(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,Xp(t(e,n),e=>Fk(e)?e:n)):$p(r(e,n),r=>(e[eM]=!0,Xp(t(e,r),e=>Fk(e)?e:n)))},a=a=>{let o=a.request,s=sp(e,{onSuccess:e=>i(o,e),onFailure:e=>r(a,e)});return n===void 0?s:sp(Qj(n(s)),{onFailure(e){return wu(zS(),e),eM in o?R:aie(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)=>Cp(n,n=>{if(t.setContext(e.prev),!(tM in e.scope))return wd(e.scope,e.cause===void 0?n:Uu(e.cause))},!0);class c{scope;prev;request;cause;constructor(e,t,n){this.scope=e,this.prev=t,this.request=n}[Kn](e,t){let n=i(this.request,e);if(xc(n)&&n._tag===`Success`){if(t.setContext(this.prev),tM in this.scope)return n;let e=wd(this.scope,n);return e===void 0?n:V(e,()=>n)}return s(this,t,n)}[qn](e,t){return s(this,t,r(this,e))}}return Rf(t=>{xl(t);let r=_d(),i=new c(r,t.context,Hi(t.context,Ij));t.setContext(Ri(i.prev,hd,r));let l=t.cache.tracer;return n===void 0&&(l===void 0||l===Oo||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=>up(n=>{let r=wM(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(Rce(e))),add:(t,r,i,a)=>n([gM({method:t,path:yM(r,e),handler:Fk(i)?I(i):wf(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=Rf(t=>{let n=t.context,r=Hi(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(pi(a.prefix)&&(n=Ri(n,Ij,cM(r,a.prefix.value))),n=Ri(n,Lj,i.searchParams),n=Ri(n,uM,{route:a,params:i.params}),t.getRef(Do)!==Oo){let e=Bi(n,Co);e!==void 0&&e._tag===`Span`&&e.sampled&&e.attribute(`http.route`,a.path)}if(t.setContext(n),!a.uninterruptible){let e=Jne(t);if(e!==void 0)return e}return a.handler});if(t.size===0)return n;for(let e of Oa(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__*/ Yi(`effect/http/HttpRouter/RouterConfig`,{defaultValue:()=>({})});var uM=class extends (/*#__PURE__*/ F()(`effect/http/HttpRouter/RouteContext`)){};const dM=e=>Kd(V(oM,e)),fM=(e,t,n,r)=>dM(i=>i.add(e,t,n,r)),pM=/*#__PURE__*/ Ud(oM)(sM),mM=e=>up(t=>{let n=Ui(t,hd),r=Id.forkOrCreate(t);return H(Ld(ef(e,pM),r,n),e=>Ui(e,oM).asHttpEffect())}),hM=`~effect/http/HttpRouter/Route`,gM=e=>({...e,uninterruptible:e.uninterruptible??!1,prefix:typeof e.prefix==`string`?di(e.prefix):e.prefix??ui(),[hM]:hM}),_M=(e,t,n,r)=>gM({...r,method:e,path:t,handler:Fk(n)?I(n):wf(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)),Rce=/*#__PURE__*/ M(2,(e,t)=>gM({...e,path:yM(e.path,t),prefix:mi(e.prefix,{onNone:()=>vM(t),onSome:e=>yM(e,t)})})),bM=function(){return arguments.length===0?xM:xM(arguments[0],arguments[1])},xM=(e,t)=>t?.global?Kd(z(function*(){let t=yield*oM,n=wf(e)?yield*e:e;yield*t.addGlobalMiddleware(n)})):new Bce(wf(e)?Gd(H(e,e=>Mi(/* @__PURE__ */ new Map([[SM,e]])))):Vd(Mi(/* @__PURE__ */ new Map([[SM,e]]))));let zce=0;const SM=`effect/http/HttpRouter/MiddlewareFn`;var Bce=class e{"~effect/http/HttpRouter/Middleware"={};layerFn;dependencies;constructor(e,t){this.layerFn=e,this.dependencies=t;let n=`effect/http/HttpRouter/Middleware-${++zce}`;this.layer=Gd(z({self:this},function*(){let e=yield*lp(),t=[Vi(e,SM)];if(this.dependencies){let n=yield*Id,r=Ui(e,hd),i=yield*Ld(this.dependencies,n,r);t.push(...wM(i))}return Mi(/* @__PURE__ */ new Map([[n,t]]))})).pipe($d(this.layerFn))}layer;combine(t){return new e(this.layerFn,this.dependencies?ef(this.dependencies,t.layer):t.layer)}};const CM=/*#__PURE__*/ new WeakMap,wM=e=>{let t=CM.get(e);if(t)return t;let n=Aa(),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=ba(e).reverse()}return CM.set(e,t),t};(/*#__PURE__*/ bM(Kj)).layer;var TM=class extends (/*#__PURE__*/ F()(`effect/workers/Transferable/Collector`)){};const EM=()=>{let e=[],t=t=>{e.push(...t)},n=()=>e,r=()=>{let t=e;return e=[],t};return TM.of({addAllUnsafe:t,addAll:e=>L(()=>t(e)),readUnsafe:n,read:L(n),clearUnsafe:r,clear:L(r)})},DM=(e,t)=>e===void 0?t:`${e}.${t}`,OM=(e,t)=>({"rpc.system.name":`effect_rpc`,"rpc.method":e,...t}),kM=`~effect/rpc/RpcSchema/StreamSchema`;function AM(e){return P(e,kM)}function jM(e){return AM(e)?di({success:e.success,error:e.error}):ui()}const Vce=/*#__PURE__*/ rx(kT);function Hce(e,t){return hx(Vce.ast,{[kM]:kM,success:e,error:t})}var Uce=class extends (/*#__PURE__*/ F()(`effect/rpc/RpcSchema/ClientAbort`)){static annotation=/*#__PURE__*/ this.context(!0).pipe(/*#__PURE__*/ Ri(Bu,{name:`ClientAbort`,stack:ht,parent:void 0}))};const MM=`~effect/rpc/Rpc`;var NM=class{id;annotations;constructor(e){this.id=e,this.annotations=Fi()}annotate(e,t){return this.annotations=Ri(this.annotations,e,t),this}};const Wce={[MM]:MM,pipe(){return lt(this,arguments)},setSuccess(e){return PM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:e,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},setError(e){return PM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:e,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},setPayload(e){return PM({_tag:this._tag,payloadSchema:gx(e)?e:G(e),successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},middleware(e){return PM({_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 PM({_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 PM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,middlewares:this.middlewares,annotations:Ri(this.annotations,e,t)})},annotateMerge(e){return PM({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,middlewares:this.middlewares,annotations:qi(this.annotations,e)})}},PM=e=>{function t(){}return Object.setPrototypeOf(t,Wce),Object.assign(t,e),t.key=`effect/rpc/Rpc/${e._tag}`,t},J=(e,t)=>{let n=t?.success??Dx,r=t?.error??Sx,i=t?.defect??oS(),a;return a=t?.primaryKey?class extends OS(`effect/rpc/Rpc/${e}`)(t.payload){"~effect/PrimaryKey"(){return t.primaryKey(this)}}:gx(t?.payload)?t?.payload:t?.payload?G(t?.payload):Dx,PM({_tag:e,payloadSchema:a,successSchema:t?.stream?Hce(n,r):n,errorSchema:t?.stream?Sx:r,defectSchema:i,annotations:Fi(),middlewares:/* @__PURE__ */ new Set})},FM=/*#__PURE__*/ new WeakMap,IM=e=>{if(FM.has(e))return FM.get(e);let t=e,n=/* @__PURE__ */ new Set([t.errorSchema]),r=jM(t.successSchema);pi(r)&&n.add(r.value.error);for(let e of t.middlewares)n.add(e.error);let i=xS(pi(r)?Dx:t.successSchema,q([...n]),t.defectSchema);return FM.set(e,i),i},LM=e=>`~effect/rpc/Rpc/Wrapper`in e,RM=e=>e,Gce={_tag:`Eof`},zM=e=>({_tag:`Defect`,defect:e}),Kce={_tag:`Pong`},BM=jS;let qce;const VM=e=>(qce??=new TextDecoder).decode(e);var HM=class extends (/*#__PURE__*/ F()(`effect/rpc/RpcSerialization`)){};const Jce=/*#__PURE__*/ HM.of({contentType:`application/json`,includesFraming:!1,codecFor:BM,makeUnsafe:()=>({decode:e=>{let t=JSON.parse(typeof e==`string`?e:VM(e));return Array.isArray(t)?t:[t]},encode:e=>JSON.stringify(e)})}),UM=e=>HM.of({contentType:e?.contentType??`application/json`,includesFraming:!1,codecFor:BM,makeUnsafe:()=>{let e=/* @__PURE__ */ new Map;return{decode:t=>Yce(JSON.parse(typeof t==`string`?t:VM(t)),e),encode:t=>{let n=Xce(t,e);return n&&JSON.stringify(n)}}}});function Yce(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(!Rt(a))continue;let o=WM(a);r.push(o),o._tag===`Request`&&!o.isNotification&&(n.size++,t.set(o.id,n))}return r}return Rt(e)?[WM(e)]:[]}function WM(e){if(Object.hasOwn(e,`method`)){let t=e;if(Pt(t.id)&&Tt(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 GM(e,t){if(!(`requestId`in e))return KM(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(),KM):void 0):KM(e)}function Xce(e,t){if(Array.isArray(e)===!1)return GM(e,t);if(e.length===0)return;let n=[];for(let r=0;r<e.length;r++){let i=GM(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 KM(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:Zce,error:{_tag:`Defect`,code:1,message:`A defect occurred`,data:e.defect}};case`ClientProtocolError`:return{}}}const Zce=-32603,Qce=e=>Bd(HM)(UM(e)),$ce=()=>e=>jf(()=>{let t=UC(1),n=[],r=(...e)=>up(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*fp(jf(()=>e(...t)),r);return n=[],r=e,yield*wp(Nf,()=>(r=t,R))}))}}))}),ele=e=>jf(()=>{let t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Map,i=(e,t)=>up(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*fp(jf(()=>i(e)),t)}return yield*wp(Nf,()=>(t.delete(e),r.delete(e),R))})}}))});let tle=0;const qM=/*#__PURE__*/ U(function*(e,t){let n=t.spanPrefix,r=t?.supportsAck??!0,i=t?.disableTracing??!1,a=t?.generateRequestId??(()=>tle++),o=yield*lp(),s=Ui(o,hd),c=/* @__PURE__ */ new Map,l=!1;yield*bd(s,Rf(e=>(l=!0,u(Ku(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=AM(e.successSchema),a=m(e);return(o,s)=>{let c=s?.headers?Kh(s.headers):Gh,l=s?.context??Fi();if(!r){let r=t=>f(e,a,t,e.payloadSchema.make(o),c,l,s?.discard??!1);return i?r(void 0):Np(DM(n,e._tag),{kind:`client`,attributes:OM(e._tag,t.spanAttributes)},r)}let u=p(e,a,e.payloadSchema.make(o),c,s?.streamBufferSize??16,l);return s?.asQueue?u:RT(H(u,IT))}},f=(e,n,r,i,o,s,u)=>Rf(d=>{if(l)return Dp;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:Xh(d.getRef(JM),o)});if(u)return p;let m;return kp(Mf(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?Fp(r,{captureStackTrace:!1}):N,Bp(d.context)),m.addObserver(e=>{if(e._tag===`Failure`)return t(e)})}),e=>(c.delete(f),Bf(RS(m),h(f,Array.from(e),s))))}),p=U(function*(e,r,o,s,u,d){if(l)return yield*Dp;let f=i?void 0:yield*lie(DM(n,e._tag),{kind:`client`,attributes:OM(e._tag,t.spanAttributes)}),p=zS(),m=a(),g=Hi(p.context,hd),_=yield*vC(u);return yield*yd(g,e=>(EC(_),c.has(m)?(c.delete(m),h(m,Yu(e)?Array.from(wre(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:Xh(p.getRef(JM),s)}).pipe(f?Fp(f,{captureStackTrace:!1}):N,Sp(e=>xC(_,e)),Op,Lp(g,{startImmediately:!0})),_}),m=e=>{let t=[];for(let n of e.middlewares.values()){let e=Vi(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)=>Mf(i=>{let a=zS();t.onFromClient({message:{_tag:`Interrupt`,requestId:e,interruptors:n},context:r,discard:!1}).pipe(tie(1e3),Bp(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,Jf(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(Gu(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=>{Rn(_,e._tag,d(e))});return{client:_,write:g}});let nle=0;const rle=/*#__PURE__*/ U(function*(e,t){let n=nle++,{codecFor:r,run:i,send:a,supportsAck:o,supportsTransferables:s}=yield*YM,c=ile(r),l=ooe(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*qM(e,{...t,supportsAck:o,onFromClient({message:t}){switch(t._tag){case`Request`:{let r=e.requests.get(t.tag),i=s?EM():void 0,o=zS(),l={rpc:r,context:i?Ri(o.context,TM,i):o.context,schemas:c(r)};return u.set(t.id,l),l.schemas.encodePayload(t.payload).pipe(fp(l.context),Qf,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=RM(e.requestId),n=u.get(t);if(!n||fi(n.schemas.decodeChunk))return R;let r=n.schemas.decodeChunk.value;return jp(i=>i(r(e.values).pipe(fp(n.context),Qf,V(e=>p({_tag:`Chunk`,clientId:0,requestId:t,values:e})))).pipe(Sp(e=>p({_tag:`Exit`,clientId:0,requestId:t,exit:Uu(e)}).pipe(Bf(Nu(e)?R:tp(d(t))))),$re(e=>!Nu(e),()=>R)))}case`Exit`:{let t=RM(e.requestId),n=u.get(t);return n?(u.delete(t),n.schemas.decodeExit(e.exit).pipe(fp(n.context),Qf,sp({onSuccess:e=>p({_tag:`Exit`,clientId:0,requestId:t,exit:e}),onFailure:e=>p({_tag:`Exit`,clientId:0,requestId:t,exit:Uu(e)})}))):R}case`Defect`:return p({_tag:`Defect`,clientId:0,defect:l(e.defect)});case`ClientProtocolError`:{let t=Wu(e.error);return Ef(Array.from(u.keys()),e=>p({_tag:`Exit`,clientId:0,requestId:e,exit:t}))}default:return R}}).pipe(Jf(qp),Op,Rp),f}),ile=e=>{let t=/* @__PURE__ */ new WeakMap;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=jM(n.successSchema);return r={decodeChunk:bi(i,t=>cx(e(Nx(t.success)))),encodePayload:fx(e(n.payloadSchema)),decodeExit:cx(e(IM(n)))},t.set(n,r),r}},JM=/*#__PURE__*/ Yi(`effect/rpc/RpcClient/CurrentHeaders`,{defaultValue:()=>Gh});var YM=class extends (/*#__PURE__*/ F()(`effect/rpc/RpcClient/Protocol`)){static make=ele};const ale=/*#__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*lp(),l=Ui(c,hd),u=BS(Sd(l,`parallel`)),d=o===`unbounded`?void 0:yield*KC(o),f=/* @__PURE__ */ new Map,p=!1,m=VS(!1);yield*bd(l,Rf(e=>{p=!0;for(let t of f.values())if(t.ended=!0,t.fibers.size===0)u(Bp(c)(_(t)));else for(let n of t.fibers.values())n.interruptUnsafe(e.id);return f.size===0?R:m.await}));let h=e=>Rf(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)=>Yf(Rf(i=>{if(p)return Dp;let a=f.get(e);if(!a)a={id:e,latches:void 0,fibers:/* @__PURE__ */ new Map,ended:!1,serverClient:new NM(e)},f.set(e,a);else if(a.ended&&(n._tag!==`Interrupt`&&n._tag!==`Ack`||!a.fibers.has(n.requestId)))return Dp;switch(n._tag){case`Request`:return v(i,a,n,r);case`Ack`:{let e=a.latches?.get(n.requestId);return e?Gf(e.open):R}case`Interrupt`:{let r=a.fibers.get(n.requestId);return r?(r.interruptUnsafe(i.id,Uce.annotation),R):t.onFromServer({_tag:`Exit`,clientId:e,requestId:n.requestId,exit:Ku()})}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?Bf(n,m.open):n},v=(i,o,l,f)=>{if(o.fibers.has(l.id))return Dp;let p=e.requests.get(l.tag),m=Vi(c,p?.key);if(!p||!m){let e=Yf(t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:Gu(`Unknown request tag: ${l.tag}`)}),e=>b(o,e));return!o.ended||o.fibers.size>0?e:xp(e,_(o))}let h=AM(p.successSchema),g={rpc:p,client:o.serverClient,requestId:l.id,headers:l.headers,payload:l.payload},v=m.handler(l.payload,g),x=LM(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(Uf(tN(c,ne,g)),e=>C?Pf(C):e):tN(c,ne,g),T=!1,re=_d(),ie,E=wp(w,e=>{T=!0;let n;if(e._tag===`Success`)$u(e.value)?(ie=e.value,n=R):n=t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:e});else if(C)return wd(re,e)??R;else n=!s&&Mu(e.cause)&&!Nu(e.cause)?b(o,ju(e.cause)):t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:e});let r=wd(re,e);return e._tag===`Failure`&&wu(zS(),e.cause),r?xp(n,r):n});if(f?.onRequest&&(E=f.onRequest(E)),n){let e=Bi(i.context,Co);E=Pp(E,DM(a,l.tag),{captureStackTrace:!1,kind:`server`,attributes:OM(l.tag,t.spanAttributes),parent:r&&l.spanId?wo({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=Bp(Ri(cle(m,i.context),hd,re));return u(ae(Rf(e=>(o.fibers.set(l.id,e),E)),ee?{uninterruptible:!0}:void 0)).addObserver(function e(n){if(ie){let n=u(ae(wp(id(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:Ku()}))),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=>Sp(t.onFromServer({_tag:`Chunk`,clientId:e.id,requestId:n.id,values:r}),e=>(xre(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))),wf(r)?r.pipe(V(e=>Df({while:pt,body:ft(V(DC(e),e=>{let t=o(e);return s?(s.closeUnsafe(),V(t,()=>s.await)):t})),step:gt})),hf(()=>R),vp):GT(r,e=>{let t=o(e);return s?(s.closeUnsafe(),Bf(t,s.await)):t})},b=(e,n)=>jf(()=>{let r=e.ended&&e.fibers.size===0,i=t.onFromServer({_tag:`Defect`,clientId:e.id,defect:n});return r?Bf(i,_(e)):i});return N({write:g,disconnect:h})}),XM=e=>e===Jce.codecFor,ZM=/*#__PURE__*/ new WeakMap,ole=(e,t)=>{let n=XM(e),r=n?ZM.get(t):void 0;if(r===void 0){let i=jM(t.successSchema);r={decode:cx(e(t.payloadSchema)),encodeChunk:dx(e(Nx(pi(i)?i.value.success:Cx))),encodeExit:dx(e(IM(t)))},n&&ZM.set(t,r)}return r};let sle;const QM=e=>({encodeDefectUnsafe:mx(e(oS())),encodeUnknownRequestExit:dx(e(xS(Sx,Sx,oS())))}),$M=e=>XM(e)?sle??=QM(e):QM(e),eN=/*#__PURE__*/ new WeakMap,cle=(e,t)=>{let n=eN.get(e);n===void 0&&(n=/* @__PURE__ */ new WeakMap,eN.set(e,n));let r=n.get(t);return r===void 0&&(r=qi(e.context,t),n.set(t,r)),r},tN=(e,t,n)=>{for(let r of n.rpc.middlewares)t=Hi(e,r)(t,n);return t},lle=/*#__PURE__*/ U(function*(e,t){let{codecFor:n,disconnects:r,end:i,run:a,send:o,supportsAck:s,supportsSpanPropagation:c,supportsTransferables:l}=yield*nN,{encodeDefectUnsafe:u,encodeUnknownRequestExit:d}=$M(n),f=yield*lp(),p=yield*gd(),m=yield*ale(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(vd(p));yield*Ip(Df({while:pt,body:ft(V(kC(r),e=>(_.delete(e),m.disconnect(e)))),step:gt}));let h=/* @__PURE__ */ new WeakMap,g=e=>{let t=h.get(e);if(!t){let r=Vi(f,e.key);t={tag:e._tag,...ole(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=Vu(r)&&Ju(r)?o(e.id,v(t,i,r.value),a&&a.clearUnsafe()):V(Kf(fp(a?gp(r,TM,a):r,n.context),e=>Rf(t=>{let r=Du(`Failed to encode response for RPC "${n.tag}": ${o_(e.issue)}`);return wu(t,r),s=!0,Pf(r)})),n=>o(e.id,v(t,i,n),a&&a.clearUnsafe()));return Jf(c,r=>(e.schemas.delete(t),Bf(b(e,t,n.encodeExit,ju(r)),s?Pf(r):m.write(e.id,{_tag:`Interrupt`,requestId:t,interruptors:[]}))))},b=(e,t,n,r)=>Jf(V(n(Gu(r)),n=>o(e.id,v(t,`Exit`,n))),t=>x(e,ju(t))),x=(e,t)=>Jf(o(e.id,zM(u(t))),e=>Jp(pie(e),{module:`RpcServer`,method:`sendDefect`})),S=(e,t,n,r,i)=>{e.schemas.set(t,l?{...n,collector:EM()}:n);let a=r;return a.id=t,a.payload=i,a.headers=Kh(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=RM(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 Vu(s)&&Ju(s)?S(r,i,o,n,s.value):cp(fp(s,o.context),{onFailure:e=>b(r,i,o.encodeExit,o_(e.issue)),onSuccess:e=>S(r,i,o,n,e)})}case`Ping`:return Jf(o(r.id,Kce),e=>x(r,ju(e)));case`Eof`:return m.write(t,n);case`Ack`:return m.write(t,n);case`Interrupt`:return m.write(t,{...n,requestId:RM(n.requestId),interruptors:[]});default:return x(r,`Unknown request tag: ${n._tag}`)}}).pipe(ep(e=>die(`BUG: RpcServer protocol crashed`,e)),wp(e=>Cd(p,e)))});var nN=class extends (/*#__PURE__*/ F()(`effect/rpc/RpcServer/Protocol`)){static make=/*#__PURE__*/ $ce()};const rN=/*#__PURE__*/ U(function*(e={}){let t=yield*HM,{encodeDefectUnsafe:n}=$M(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=Hi(d.context,Ij),p=Hi(d.context,hd),m=Object.entries(f.headers),h=yield*Qf(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(zM(n(e))))}}:e=>e._tag===`Request`&&e.isNotification===!0?R:yC(_,e),end:CC(_)};yield*yd(p,()=>(c.delete(g),l.delete(g),bC(a,g),_.state._tag===`Done`?R:Bf(TC(_),Ef(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(RM(n.id)),n.headers=m.concat(n.headers)),yield*o(g,n)}}catch(e){yield*x.write(zM(n(e)))}if(yield*o(g,Gce),!r){let e=yield*qoe(_),n=v.encode(e);return Bk(n===void 0?``:n,{contentType:t.contentType})}let S=yield*hf(DC(_),()=>I([]));return _.state._tag===`Done`?Rk(ule(S),{contentType:t.contentType}):Gk(ise(S).pipe(ose(IT(_))),{contentType:t.contentType})});return{protocol:yield*nN.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:Af,supportsAck:!1,supportsTransferables:!1,supportsSpanPropagation:!1,supportsNotifications:r,codecFor:t.codecFor}))),httpEffect:d}}),ule=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},dle={add(...e){let t=new Map(this.requests);for(let n of e)t.set(n._tag,n);return iN({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 iN({requests:t,annotations:Mi(n)})},omit(...e){let t=new Map(this.requests);for(let n of e)t.delete(n);return iN({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 iN({requests:t,annotations:this.annotations})},toHandlers(e){let t=this;return z(function*(){let n=yield*lp(),r=wf(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})}),Mi(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 iN({requests:t,annotations:this.annotations})},toLayer(e){return Gd(this.toHandlers(e))},of:N,toLayerHandler(e,t){let n=this;return Gd(z(function*(){let r=yield*lp(),i=wf(t)?yield*t:t,a=/* @__PURE__ */ new Map,o=n.requests.get(e);return a.set(o.key,{handler:i,context:r}),Mi(a)}))},accessHandler(e){return up(t=>{let n=this.requests.get(e),{handler:r,context:i}=Vi(t,n.key);return I((e,t)=>{t.rpc=n;let a=r(e,t),o=LM(a)?a.value:a;return wf(o)?dp(o,i):UT(o,i)})})},annotate(e,t){return iN({requests:this.requests,annotations:Ri(this.annotations,e,t)})},annotateRpcs(e,t){return this.annotateRpcsMerge(Li(e,t))},annotateMerge(e){return iN({requests:this.requests,annotations:qi(this.annotations,e)})},annotateRpcsMerge(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of this.requests)t.set(n,r.annotateMerge(qi(e,r.annotations)));return iN({requests:t,annotations:this.annotations})}},iN=e=>Object.assign(function(){},dle,{requests:e.requests,annotations:e.annotations}),aN=(...e)=>iN({requests:new Map(e.map(e=>[e._tag,e])),annotations:Fi()}),fle=e=>{switch(e){case`SHA-1`:return`sha1`;case`SHA-256`:return`sha256`;case`SHA-384`:return`sha384`;case`SHA-512`:return`sha512`}},ple=/* @__PURE__ */ Bd(gE,/* @__PURE__ */ ece({randomBytes:Be.randomBytes,digest:(e,t)=>Lf({try:()=>Uint8Array.from(Be.createHash(fle(e)).update(t).digest()),catch:e=>Jw({module:`Crypto`,method:`digest`,_tag:`Unknown`,description:`Could not compute digest`,cause:e})})})),oN=e=>t=>Yw({module:`FileSystem`,method:e,description:t.message??String(t)}),sN=(e,t)=>{let n=Number(e);if(!Number.isSafeInteger(n))throw RangeError(`${t} exceeds the safe integer range: ${e}`);return n},cN=e=>xi(gi(e),xm),lN=(e,t)=>Lf({try:()=>sN(e,`position`),catch:oN(t)}),mle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.access,/*#__PURE__*/ eD(`FileSystem`,`access`),/*#__PURE__*/ oN(`access`));return(t,n)=>{let r=nt.constants.F_OK;return n?.readable&&(r|=nt.constants.R_OK),n?.writable&&(r|=nt.constants.W_OK),e(t,r)}})(),hle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.cp,/*#__PURE__*/ eD(`FileSystem`,`copy`),/*#__PURE__*/ oN(`copy`));return(t,n,r)=>e(t,n,{force:r?.overwrite??!1,preserveTimestamps:r?.preserveTimestamps??!1,recursive:!0})})(),gle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.copyFile,/*#__PURE__*/ eD(`FileSystem`,`copyFile`),/*#__PURE__*/ oN(`copyFile`));return(t,n)=>e(t,n)})(),_le=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.chmod,/*#__PURE__*/ eD(`FileSystem`,`chmod`),/*#__PURE__*/ oN(`chmod`));return(t,n)=>e(t,n)})(),vle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.chown,/*#__PURE__*/ eD(`FileSystem`,`chown`),/*#__PURE__*/ oN(`chown`));return(t,n,r)=>e(t,n,r)})(),yle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.glob,/*#__PURE__*/ eD(`FileSystem`,`glob`),/*#__PURE__*/ oN(`glob`));return(t,n)=>e(t,{cwd:n?.root,exclude:n?.exclude})})(),ble=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.link,/*#__PURE__*/ eD(`FileSystem`,`link`),/*#__PURE__*/ oN(`link`));return(t,n)=>e(t,n)})(),xle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.mkdir,/*#__PURE__*/ eD(`FileSystem`,`makeDirectory`),/*#__PURE__*/ oN(`makeDirectory`));return(t,n)=>e(t,{recursive:n?.recursive??!1,mode:n?.mode})})(),uN=e=>{let t=Yp(nt.mkdtemp,eD(`FileSystem`,e),oN(e));return e=>jf(()=>{let n=e?.prefix??``,r=typeof e?.directory==`string`?He.join(e.directory,`.`):Ye.tmpdir();return t(n?He.join(r,n):r+`/`)})},Sle=/*#__PURE__*/ uN(`makeTempDirectory`),dN=e=>{let t=Yp(nt.rm,eD(`FileSystem`,e),oN(e));return(e,n)=>t(e,{recursive:n?.recursive??!1,force:n?.force??!1})},Cle=/*#__PURE__*/ dN(`remove`),wle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ uN(`makeTempDirectoryScoped`),t=/*#__PURE__*/ dN(`makeTempDirectoryScoped`);return n=>yp(e(n),e=>Qf(t(e,{recursive:!0})))})(),Tle=e=>{let{O_APPEND:t,O_CREAT:n,O_EXCL:r,O_RDONLY:i,O_RDWR:a,O_TRUNC:o,O_WRONLY:s}=nt.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}},Ele=(e,t)=>jf(()=>{let{O_NOFOLLOW:n}=nt.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(Tle(t)|n)}),Dle=/*#__PURE__*/ (e=>{let t=Yp(nt.open,eD(`FileSystem`,e),oN(e)),n=Yp(nt.close,eD(`FileSystem`,e),oN(e));return(r,i)=>_t(yp(i?.noFollow===!0?V(Ele(e,i.flag??`r`),e=>t(r,e,i.mode)):t(r,i?.flag??`r`,i?.mode),e=>Qf(n(e))),H(e=>Ole(e,i?.flag?.startsWith(`a`)??!1)))})(`open`),fN=e=>Yw({module:`FileSystem`,method:e,description:`Cannot read before the start of the file`}),Ole=/*#__PURE__*/ (()=>{let e=e=>Yp(nt.read,eD(`FileSystem`,e),oN(e)),t=/*#__PURE__*/ e(`read`),n=/*#__PURE__*/ e(`readAlloc`),r=/*#__PURE__*/ Yp(nt.fstat,/*#__PURE__*/ eD(`FileSystem`,`stat`),/*#__PURE__*/ oN(`stat`)),i=/*#__PURE__*/ Yp(nt.ftruncate,/*#__PURE__*/ eD(`FileSystem`,`truncate`),/*#__PURE__*/ oN(`truncate`)),a=/*#__PURE__*/ Yp(nt.fsync,/*#__PURE__*/ eD(`FileSystem`,`sync`),/*#__PURE__*/ oN(`sync`)),o=e=>Yp(nt.write,eD(`FileSystem`,e),oN(e)),s=/*#__PURE__*/ o(`write`),c=/*#__PURE__*/ o(`writeAll`);class l{[YT];fd;append;position=/*#__PURE__*/ BigInt(0);constructor(e,t){this[YT]=YT,this.fd=e,this.append=t}get stat(){return V(r(this.fd,{bigint:!0}),mN)}get sync(){return a(this.fd)}seek(e,t){return jf(()=>{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 jf(()=>{let r=n?.position;if(r!==void 0)return r<BigInt(0)?B(fN(`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 jf(()=>{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(fN(`readAlloc`));let i=Buffer.allocUnsafeSlow(e),a=r??this.position;return H(n(this.fd,{buffer:i,position:a}),t=>{if(t===0)return ui();if(r===void 0&&(this.position=a+BigInt(t)),t===e)return di(i);let n=Buffer.allocUnsafeSlow(t);return i.copy(n,0,0,t),di(n)})}catch(e){return B(oN(`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 jf(()=>{let t=this.position;return V(this.append?I(void 0):lN(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 jf(()=>{let t=this.position;return V(this.append?I(void 0):lN(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)})(),pN=e=>{let t=uN(e);return U(function*(e){let n=yield*t(e),r=Be.randomBytes(6).toString(`hex`),i=He.join(n,e?.suffix?`${r}${e.suffix}`:r);return yield*gN(i,/* @__PURE__ */ new Uint8Array),i})},kle=/*#__PURE__*/ pN(`makeTempFile`),Ale=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ pN(`makeTempFileScoped`),t=/*#__PURE__*/ dN(`makeTempFileScoped`);return n=>yp(e(n),e=>Qf(t(He.dirname(e),{recursive:!0})))})(),jle=(e,t)=>kf({try:()=>nt.promises.readdir(e,t),catch:t=>eD(`FileSystem`,`readDirectory`)(t,[e])}),Mle=e=>Mf((t,n)=>{try{nt.readFile(e,{signal:n},(n,r)=>{t(n?B(eD(`FileSystem`,`readFile`)(n,[e])):I(r))})}catch(e){t(B(oN(`readFile`)(e)))}}),Nle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.readlink,/*#__PURE__*/ eD(`FileSystem`,`readLink`),/*#__PURE__*/ oN(`readLink`));return t=>e(t)})(),Ple=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.realpath,/*#__PURE__*/ eD(`FileSystem`,`realPath`),/*#__PURE__*/ oN(`realPath`));return t=>e(t)})(),Fle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.rename,/*#__PURE__*/ eD(`FileSystem`,`rename`),/*#__PURE__*/ oN(`rename`));return(t,n)=>e(t,n)})(),mN=e=>Lf({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:gi(e.mtime),atime:gi(e.atime),birthtime:gi(e.birthtime),dev:sN(e.dev,`dev`),rdev:cN(e.rdev),ino:cN(e.ino),mode:sN(e.mode,`mode`),nlink:cN(e.nlink),uid:cN(e.uid),gid:cN(e.gid),size:zm(e.size),blksize:e.blksize===void 0?ui():di(zm(e.blksize)),blocks:cN(e.blocks)}),catch:oN(`stat`)}),hN=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.stat,/*#__PURE__*/ eD(`FileSystem`,`stat`),/*#__PURE__*/ oN(`stat`));return t=>V(e(t,{bigint:!0}),mN)})(),Ile=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.symlink,/*#__PURE__*/ eD(`FileSystem`,`symlink`),/*#__PURE__*/ oN(`symlink`));return(t,n)=>e(t,n)})(),Lle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.truncate,/*#__PURE__*/ eD(`FileSystem`,`truncate`),/*#__PURE__*/ oN(`truncate`));return(t,n)=>e(t,n)})(),Rle=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Yp(nt.utimes,/*#__PURE__*/ eD(`FileSystem`,`utime`),/*#__PURE__*/ oN(`utime`));return(t,n,r)=>e(t,n,r)})(),zle=(e,t,n)=>nse(r=>yp(L(()=>{let i=t.type===`Directory`?e:He.dirname(e),a=nt.watch(e,{recursive:n?.recursive??!1},(e,t)=>{if(t)switch(e){case`rename`:zp(cp(hN(He.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,yre(Jw({module:`FileSystem`,_tag:`Unknown`,method:`watch`,pathOrDescriptor:e,cause:t})))}),a.on(`close`,()=>{wC(r)}),a}),e=>L(()=>e.close()))),Ble=(e,t,n)=>hN(t).pipe(H(r=>e.pipe(xi(e=>e.register(t,r,n)),hi(()=>zle(t,r,n)))),RT),gN=(e,t,n)=>Mf((r,i)=>{try{nt.writeFile(e,t,{signal:i,flag:n?.flag,mode:n?.mode},t=>{r(t?B(eD(`FileSystem`,`writeFile`)(t,[e])):R)})}catch(e){r(B(oN(`writeFile`)(e)))}}),Vle=/*#__PURE__*/ H(/*#__PURE__*/ mp(Sse),e=>xse({access:mle,chmod:_le,chown:vle,copy:hle,copyFile:gle,glob:yle,link:ble,makeDirectory:xle,makeTempDirectory:Sle,makeTempDirectoryScoped:wle,makeTempFile:kle,makeTempFileScoped:Ale,open:Dle,readDirectory:jle,readFile:Mle,readLink:Nle,realPath:Ple,remove:Cle,rename:Fle,stat:hN,symlink:Ile,truncate:Lle,utimes:Rle,watch(t,n){return Ble(e,t,n)},writeFile:gN})),_N=/* @__PURE__ */ Ud(JT)(Vle),vN=/*#__PURE__*/ new TextDecoder;var Hle=class extends Nn{[gO];source;onError;remoteAddressOverride;constructor(e,t,n){super(),this[gO]=gO,this.source=e,this.onError=t,this.remoteAddressOverride=n}get headers(){return Kh(this.source.headers)}get remoteAddress(){return this.remoteAddressOverride??gi(this.source.socket?.remoteAddress)}textEffect;get text(){return this.textEffect||=H(this.arrayBuffer,e=>vN.decode(e)),this.textEffect}get textUnsafe(){return Hp(this.text)}get json(){return V(this.text,e=>Lf({try:()=>e===``?null:JSON.parse(e),catch:this.onError}))}get jsonUnsafe(){return Hp(this.json)}get urlParamsBody(){return V(this.text,e=>Lf({try:()=>og(new URLSearchParams(e)),catch:this.onError}))}get stream(){return rD({evaluate:()=>this.source,onError:this.onError})}arrayBufferEffect;get arrayBuffer(){return this.arrayBufferEffect||(this.arrayBufferEffect=Rf(e=>iD(()=>this.source,{onError:this.onError,maxBytes:e.getRef(vO)})).pipe(Tp,Hp),this.textEffect=H(this.arrayBufferEffect,e=>vN.decode(e))),this.arrayBufferEffect}};const yN=/*#__PURE__*/ Yi(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch});var bN=class extends (/*#__PURE__*/ F()(`effect/http/FetchHttpClient/RequestInit`)){};const xN=/*#__PURE__*/ JO(/*#__PURE__*/ I(/* @__PURE__ */ VO((e,t,n,r)=>{let i=r.getRef(yN),a=Bi(r.context,bN)??{},o=a.headers?Xh(Kh(a.headers),e.headers):e.headers;o[`content-length`]&&(o=Zh(o,`content-length`));let s=r=>H(kf({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(bse(e.body.stream),s)}return s(void 0)}))),Ule=/*#__PURE__*/ new Set(typeof it.zstdCompress==`function`?[`gzip`,`deflate`,`br`,`zstd`]:[`gzip`,`deflate`,`br`]),SN=(e,t)=>{let n={};return e!==void 0&&(n[it.constants.BROTLI_PARAM_QUALITY]=e),t!==void 0&&(n[it.constants.BROTLI_PARAM_SIZE_HINT]=t),{params:n}},CN=e=>e===void 0||e===3?void 0:{params:{[it.constants.ZSTD_c_compressionLevel]:e}},Wle=(e,t,n)=>Mf(r=>{let i=(e,t)=>r(e===null?I(t):If(e));switch(t){case`gzip`:it.gzip(e,{level:n?.level},i);break;case`deflate`:it.deflate(e,{level:n?.level},i);break;case`br`:it.brotliCompress(e,SN(n?.level,e.byteLength),i);break;case`zstd`:{let t=CN(n?.level);t===void 0?it.zstdCompress(e,i):it.zstdCompress(e,t,i);break}}}),Gle=e=>({algorithms:e.algorithms,compressResponse(t,n,r){let i=t.body;return i._tag===`Uint8Array`?H(Wle(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)}}),wN=(e,t)=>{switch(e){case`gzip`:return it.createGzip({level:t?.level,flush:it.constants.Z_SYNC_FLUSH});case`deflate`:return it.createDeflate({level:t?.level,flush:it.constants.Z_SYNC_FLUSH});case`br`:return it.createBrotliCompress({...SN(t?.level),flush:it.constants.BROTLI_OPERATION_FLUSH});case`zstd`:return it.createZstdCompress({...CN(t?.level),flush:it.constants.ZSTD_e_flush})}},TN=(e,t)=>{let n;return new $e({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)}})},EN=(e,t)=>qk(Zk(e,t),`content-length`),Kle=/*#__PURE__*/ pA({platform:`node`,compression:/* @__PURE__ */ Gle({algorithms:Ule,compressResponse(e,t,n){let r=e.body;switch(r._tag){case`Stream`:return I(EN(e,PD(Lce(r.stream,{evaluate:()=>wN(t,n)}),e.headers[`content-type`]??r.contentType)));case`Raw`:{let i=r.body instanceof $e?r.body:void 0,a=TN(()=>{let e=wN(t,n);return i??=$e.fromWeb(new Response(r.body).body),pee(i,e,e=>{e&&a.destroy(e)})},()=>i?.destroy());return I(EN(e,CD(a,{contentType:e.headers[`content-type`]??r.contentType})))}default:return I(e)}}}),fileResponse(e,t,n,r,i,a,o){let s=TN(()=>o===BigInt(0)?$e.from([]):nt.createReadStream(e,{start:i,end:a===void 0?void 0:a-1}));return Wk(s,{headers:{...r,"content-type":r[`content-type`]??hi(dA(e),()=>`application/octet-stream`),"content-length":o.toString()},status:t,statusText:n})},fileWebResponse(e,t,n,r,i){return Wk(TN(()=>$e.fromWeb(e.stream())),{headers:Xh(r,qh({"content-type":r[`content-type`]??(e.type===``?hi(dA(e.name),()=>`application/octet-stream`):e.type),"content-length":e.size.toString()})),status:t,statusText:n})}}),qle=/*#__PURE__*/ _t(/*#__PURE__*/ Ud(fA)(Kle),/*#__PURE__*/ $d(_N),/*#__PURE__*/ $d(Ak));var Jle=class extends Ze{_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 Xle(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 Yle=e=>new Jle(e);var Xle=class extends $e{_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 DN=(e,t)=>Cj(t).pipe(H(t=>rD({evaluate(){let n=Yle(t);return e.pipe(n),n},onError:e=>tue(e)})),RT,zT(Qle)),Zle=(e,t)=>Oj(DN(e,t),(e,t)=>kf({try:n=>_ee.pipeline(t.file,nt.createWriteStream(e),{signal:n}),catch:e=>xj.fromReason(`InternalError`,e)})),Qle=e=>e._tag===`Field`?new $le(e.info,e.value):new eue(e);var ON=class extends Nn{[gj];constructor(){super(),this[gj]=gj}},$le=class extends ON{_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}}},eue=class extends ON{_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=rD({evaluate:()=>e,onError:e=>xj.fromReason(`InternalError`,e)}),this.contentEffect=aD(()=>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 tue(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 kN=e=>({fromFileUrl:t=>Lf({try:()=>Ke.fileURLToPath(t,{windows:e}),catch:e=>new Gw({module:`Path`,method:`fromFileUrl`,cause:e})}),toFileUrl:t=>Lf({try:()=>Ke.pathToFileURL(t,{windows:e}),catch:e=>new Gw({module:`Path`,method:`toFileUrl`,cause:e})})});({...He.posix,.../*#__PURE__*/ kN(!1)}),{...He.win32,.../*#__PURE__*/ kN(!0)};const nue=/* @__PURE__ */ Bd(ZT)({[XT]:XT,...He,.../*#__PURE__*/ kN(void 0)}),rue=/* @__PURE__ */ Bd(bce,/*#__PURE__*/ xce({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=>tD({evaluate:()=>process.stdout,onError:e=>Jw({module:`Stdio`,method:`stdout`,_tag:`Unknown`,cause:e}),endOnDone:e?.endOnDone??!1}),stderr:e=>tD({evaluate:()=>process.stderr,onError:e=>Jw({module:`Stdio`,method:`stderr`,_tag:`Unknown`,cause:e}),endOnDone:e?.endOnDone??!1}),stdin:/*#__PURE__*/ rD({evaluate:()=>process.stdin,onError:e=>Jw({module:`Stdio`,method:`stdin`,_tag:`Unknown`,cause:e}),closeOnDone:!1})})),iue=/*#__PURE__*/ Ud(VE,/*#__PURE__*/ (/* @__PURE__ */ U(function*(e=AN){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*bp(()=>L(()=>t.off(`end`,o)));let s=yield*DT({acquire:yp(L(()=>{let e=at.createInterface({input:t,escapeCodeTimeout:50}),n=e=>bC(r,e),i=()=>{a=!1,wC(r)};return a=!0,at.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:_i(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*bp(()=>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=jf(()=>Joe(r).pipe(V(mi({onNone:()=>vp(Bf(OT(s),kC(r))),onSome:I})),Zf(()=>new Sce({}))));return Cce({columns:c,rows:l,readInput:u,readLine:d,display:e=>Ap(Mf(t=>{n.write(e,e=>Pt(e)?t(R):t(B(Yw({module:`Terminal`,method:`display`,description:`Failed to write prompt to stdout`,cause:e}))))}))})}))(AN));function AN(e){let t=e.key;return t.name===`escape`||t.ctrl&&(t.name===`c`||t.name===`d`)}const aue=/*#__PURE__*/ ef(hD,/*#__PURE__*/ Xd(_N,ple,nue,rue,iue)),oue=(e,t)=>{let n=$j(e,uue,t.middleware);return Rf(e=>{let r=e.context;return I(function(i,a){let o=Ri(r,Ij,new sue(i,a)),s=BS(Bp(o)(n),t.scope);s.pollUnsafe()===void 0&&a.on(`close`,()=>{a.writableEnded||s.interruptUnsafe(e.id,kA.annotation)})})})};var sue=class e extends Hle{[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=jh(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||=Hp(Tp(Zle(this.source,this.source.headers))),this.multipartEffect}get multipartStream(){return DN(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 cue=/*#__PURE__*/ Xd(qle,jk,aue),lue=/*#__PURE__*/ Ik({status:101}),uue=(e,t)=>{if(e.upgraded)return I(lue);let n=e.resolvedResponse;if(n.writableEnded)return R;let r=t.headers;if(!_h(t.cookies)){r={...r};let e=Ah(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),Bf(due(t.body),Mf(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`?kf({try:e=>vee(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(Op,ep(jN(n,t))):Mf(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):Mf(e=>{n.end(i.text??i.body,()=>e(R))});case`FormData`:return jf(()=>{let a=new globalThis.Response(i.formData);return n.writeHead(t.status,t.statusText,{...r,...Object.fromEntries(a.headers)}),Mf((r,i)=>{$e.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(Op,ep(jN(n,t)))});case`Stream`:{n.writeHead(t.status,t.statusText,r);let e=VS();return n.on(`drain`,()=>e.openUnsafe()),i.stream.pipe(use,GT(t=>{let r=t.length>1?Buffer.concat(t):t[0];return n.write(r)?R:(e.closeUnsafe(),e.await)}),Op,sp({onSuccess:()=>L(()=>n.end()),onFailure:jN(n,t)}))}}},due=e=>{let t=e._tag===`Raw`?e.body:void 0;return t instanceof $e?L(()=>t.destroy()):R},jN=(e,t)=>n=>V(jA(n),([r,i])=>{let a=e.headersSent;return a||e.writeHead(r.status,r.statusText),e.writableEnded||e.end(),Pf(a?Sre(n,Du(t)):i)}),fue={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},pue=e=>fue[e],MN=new TextEncoder,NN=new TextDecoder,PN=new TextDecoder(`utf-8`,{fatal:!0}),FN=2**32;function IN(...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 LN(e,t,n){if(t<0||t>=FN)throw RangeError(`value must be >= 0 and <= ${FN-1}. Received ${t}`);e.set([t>>>24,t>>>16,t>>>8,t&255],n)}function RN(e){let t=Math.floor(e/FN),n=e%FN,r=/* @__PURE__ */ new Uint8Array(8);return LN(r,t,0),LN(r,n,4),r}function zN(e){let t=/* @__PURE__ */ new Uint8Array(4);return LN(t,e),t}const mue=/[^\x00-\x7f]/;function BN(e){if(typeof e==`string`&&e.length>=128){if(mue.test(e))throw TypeError(`non-ASCII string encountered in encode()`);return MN.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 hue(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 gue(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 VN(e,t){let n=`SHA-${e.slice(-3)}`;return new Uint8Array(await crypto.subtle.digest(n,t))}var HN=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)}},UN=class extends HN{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}},WN=class extends HN{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}},GN=class extends HN{static code=`ERR_JOSE_ALG_NOT_ALLOWED`;code=`ERR_JOSE_ALG_NOT_ALLOWED`},KN=class extends HN{static code=`ERR_JOSE_NOT_SUPPORTED`;code=`ERR_JOSE_NOT_SUPPORTED`},qN=class extends HN{static code=`ERR_JWE_DECRYPTION_FAILED`;code=`ERR_JWE_DECRYPTION_FAILED`;constructor(e=`decryption operation failed`,t){super(e,t)}},JN=class extends HN{static code=`ERR_JWE_INVALID`;code=`ERR_JWE_INVALID`},YN=class extends HN{static code=`ERR_JWS_INVALID`;code=`ERR_JWS_INVALID`},XN=class extends HN{static code=`ERR_JWT_INVALID`;code=`ERR_JWT_INVALID`},ZN=class extends HN{static code=`ERR_JWK_INVALID`;code=`ERR_JWK_INVALID`},QN=class extends HN{static code=`ERR_JWKS_INVALID`;code=`ERR_JWKS_INVALID`},$N=class extends HN{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)}},eP=class extends HN{[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)}},tP=class extends HN{static code=`ERR_JWKS_TIMEOUT`;code=`ERR_JWKS_TIMEOUT`;constructor(e=`request timed out`,t){super(e,t)}},_ue=class extends HN{static code=`ERR_JWS_SIGNATURE_VERIFICATION_FAILED`;code=`ERR_JWS_SIGNATURE_VERIFICATION_FAILED`;constructor(e=`signature verification failed`,t){super(e,t)}};function nP(e){try{return gue(typeof e==`string`?e:NN.decode(e),!0)}catch(e){throw TypeError(`The input to be decoded is not correctly encoded.`,{cause:e})}}function rP(e){return hue(typeof e==`string`?MN.encode(e):e,!0)}function iP(e,t){if(!(e instanceof Uint8Array))throw TypeError(`${t} must be an instance of Uint8Array`)}function aP(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 oP(e){return aP(e)&&Array.isArray(e.keys)&&Array.from(e.keys).every(aP)}function sP(...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 cP(e,t){if(e!==void 0)throw TypeError(`${t} can only be called once`)}function lP(e,t,n){try{return nP(e)}catch{throw new n(`Failed to base64url decode the ${t}`)}}function uP(e,t,n){try{return BN(e)}catch{throw new n(`The ${t} is not a valid base64url string`)}}function dP(e,t,n){let r;try{r=JSON.parse(PN.decode(nP(e)))}catch{throw new t(n)}if(!aP(r))throw new t(n);return r}const fP={__proto__:null,b64:!0},pP={__proto__:null};function mP(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 hP(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 gP(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 KN(`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 _P(e,t){if(t.includes(`b64`)){let t=e.b64;if(typeof t!=`boolean`)throw new YN(`The "b64" (base64url-encode payload) Header Parameter must be a boolean`);return t}return!0}function vP(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(!aP(r))throw new e(`JOSE Header is not a JSON object`);return[r,n]}const vue=e=>e[Symbol.toStringTag],yue=(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 yP(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(aP(t)){if(o=NP(t),typeof o.kty!=`string`)throw DP(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(yue(e,o,n),o.kty===`oct`)return nP(o.k);if(!Object.isFrozen(t)){let{key_ops:e}=t;Array.isArray(e)&&Object.freeze(e),Object.freeze(t)}}else{if(!wP(t))throw DP(r,t,i);let e=i?`secret`:a?`private`:`public`;if(t.type!==e&&(i||[`secret`,`public`,`private`].includes(t.type)))throw TypeError(`${vue(t)} instances must be of type "${e}" for the ${r} algorithm`);if(SP(t))return t;if(s=t,s.type===`secret`)return s.export()}bP||=/* @__PURE__ */ new WeakMap;let c=t,l=bP.get(c);if(l?.[r])return l[r];if(l||bP.set(c,l={}),s&&typeof s.toCryptoKey==`function`){let t=s.type===`public`,n=bue[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 FP(e,o)}let bP;const bue={__proto__:null,prime256v1:`P-256`,secp384r1:`P-384`,secp521r1:`P-521`};function xP(e){if(!SP(e))throw Error(`CryptoKey instance expected`)}const SP=e=>{if(e?.[Symbol.toStringTag]===`CryptoKey`)return!0;try{return e instanceof CryptoKey}catch{return!1}},CP=e=>e?.[Symbol.toStringTag]===`KeyObject`,wP=e=>SP(e)||CP(e);function TP(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 EP=(e,...t)=>TP(`Key must be `,e,...t);function DP(e,t,n){let r=[`CryptoKey`,`KeyObject`,`JSON Web Key`];return n&&r.push(`Uint8Array`),TypeError(TP(`Key for the ${e} algorithm must be `,t,...r))}const OP=(e,t=`algorithm.name`)=>/* @__PURE__ */ TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`);function kP(e,t){if(t&&!e.usages.includes(t))throw TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}function AP(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 jP(e,t,n){let r=e.algorithm;if(r.name!==t.name)throw OP(t.name);if(t.hash&&r.hash?.name!==t.hash)throw OP(t.hash,`algorithm.hash`);if(t.namedCurve&&r.namedCurve!==t.namedCurve)throw OP(t.namedCurve,`algorithm.namedCurve`);if(t.length!==void 0&&r.length!==t.length)throw OP(t.length,`algorithm.length`);kP(e,n)}function MP(e){return{__proto__:null,...e}}function NP(e){let t=MP(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 PP(e){if(e!==void 0&&typeof e!=`boolean`)throw TypeError(`"extractable" option must be a boolean`);return e}async function FP(e,t,n){if(!e.kty.includes(t.kty))throw new KN(`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 IP(e,t,n,r=!1){return e instanceof Uint8Array&&(e=await crypto.subtle.importKey(`raw`,e,t,r,[n])),jP(e,t,n),e}const LP=e=>crypto.getRandomValues(new Uint8Array(e.cekBits>>3));function RP(e,t){let n=e.byteLength<<3;if(n!==t)throw new JN(`Invalid Content Encryption Key length. Expected ${t} bits, got ${n} bits`)}const xue=e=>crypto.getRandomValues(new Uint8Array(e.ivBits>>3));function zP(e,t){if(t.length<<3!==e.ivBits)throw new JN(`Invalid Initialization Vector length`)}async function BP(e,t,n){if(!(t instanceof Uint8Array))throw TypeError(EP(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 VP(e,t,n){return new Uint8Array((await crypto.subtle.sign(`HMAC`,e,t)).slice(0,n>>3))}async function Sue(e,t,n,r,i){let[a,o,s]=await BP(e,n,`encrypt`),c=new Uint8Array(await crypto.subtle.encrypt({iv:r,name:`AES-CBC`},a,t));return{ciphertext:c,tag:await VP(o,IN(i,r,c,RN(i.length*8)),s),iv:r}}async function Cue(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 wue(e,t,n,r,i,a){let[o,s,c]=await BP(e,t,`decrypt`),l=await VP(s,IN(a,r,n,RN(a.length*8)),c);try{if(await Cue(i,l))return new Uint8Array(await crypto.subtle.decrypt({iv:r,name:`AES-CBC`},o,n))}catch{}throw new qN}async function HP(e,t,n,r,i){if(!SP(n)&&!(n instanceof Uint8Array))throw TypeError(EP(n,`CryptoKey`,`KeyObject`,`Uint8Array`,`JSON Web Key`));if(r?zP(e,r):r=xue(e),n instanceof Uint8Array&&RP(n,e.cekBits),e.cbc)return Sue(e,t,n,r,i);let a=await IP(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 UP(e,t,n,r,i,a){if(!SP(t)&&!(t instanceof Uint8Array))throw TypeError(EP(t,`CryptoKey`,`KeyObject`,`Uint8Array`,`JSON Web Key`));if(!r)throw new JN(`JWE Initialization Vector missing`);if(!i)throw new JN(`JWE Authentication Tag missing`);if(!e.cbc&&i.length!==16)throw new JN(`Invalid Authentication Tag length`);if(zP(e,r),t instanceof Uint8Array&&RP(t,e.cekBits),e.cbc)return wue(e,t,n,r,i,a);let o=await IP(t,e.subtle,`decrypt`);try{return new Uint8Array(await crypto.subtle.decrypt({additionalData:a,iv:r,name:`AES-GCM`,tagLength:128},o,IN(n,i)))}catch{throw new qN}}function WP(e){let t={__proto__:null};for(let n in e)t[n]={...e[n],alg:n};return t}const Tue=[[`encrypt`,`wrapKey`],[`decrypt`,`unwrapKey`]],Eue=[[],[`deriveBits`]],GP=[[],[]];function KP(e){return{kty:[`RSA`],mode:`key-encryption`,subtle:{name:`RSA-OAEP`,hash:`SHA-${e}`},usages:Tue,ops:[`wrapKey`,`unwrapKey`]}}function qP(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 KN(`Invalid or unsupported JWK "alg" (Algorithm) Parameter value`);return{name:`ECDH`,namedCurve:t}},usages:Eue,ops:[void 0,`deriveBits`]}}function JP(e,t=!1){return{kty:[`oct`],mode:`key-wrapping`,secret:!0,subtle:{name:t?`AES-GCM`:`AES-KW`,length:e},usages:GP,ops:t?[`encrypt`,`decrypt`]:[`wrapKey`,`unwrapKey`]}}function YP(){return{kty:[`oct`],mode:`key-wrapping`,secret:!0,subtle:{name:`PBKDF2`},usages:GP,ops:[`deriveBits`,`deriveBits`]}}const XP=WP({dir:{kty:[`oct`],mode:`direct-encryption`,secret:!0,subtle:{name:`AES-GCM`},usages:GP,ops:[`encrypt`,`decrypt`]},"RSA-OAEP":KP(1),"RSA-OAEP-256":KP(256),"RSA-OAEP-384":KP(384),"RSA-OAEP-512":KP(512),"ECDH-ES":qP(`direct-key-agreement`),"ECDH-ES+A128KW":qP(`key-agreement-with-key-wrapping`),"ECDH-ES+A192KW":qP(`key-agreement-with-key-wrapping`),"ECDH-ES+A256KW":qP(`key-agreement-with-key-wrapping`),A128KW:JP(128),A192KW:JP(192),A256KW:JP(256),A128GCMKW:JP(128,!0),A192GCMKW:JP(192,!0),A256GCMKW:JP(256,!0),"PBES2-HS256+A128KW":YP(),"PBES2-HS384+A192KW":YP(),"PBES2-HS512+A256KW":YP()}),Due=[`encrypt`,`decrypt`];function ZP(e,t=!1){return{kty:[`oct`],secret:!0,subtle:{name:t?`AES-CBC`:`AES-GCM`,length:e},usages:GP,ops:Due,cekBits:e,ivBits:t?128:96,cbc:t}}const Oue=WP({A128GCM:ZP(128),A192GCM:ZP(192),A256GCM:ZP(256),"A128CBC-HS256":ZP(256,!0),"A192CBC-HS384":ZP(384,!0),"A256CBC-HS512":ZP(512,!0)});function QP(e,t){throw new KN(`Invalid or unsupported "${e}" (JWE ${t}) header value`)}function $P(e){return(typeof e==`string`?XP[e]:void 0)??QP(`alg`,`Algorithm`)}function eF(e){return e.mode===`key-wrapping`||e.mode===`key-encryption`||e.mode===`key-agreement-with-key-wrapping`}function tF(e){return(typeof e==`string`?Oue[e]:void 0)??QP(`enc`,`Encryption Algorithm`)}function nF(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`);kP(e,t)}async function kue(e,t,n){let r=await IP(t,$P(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 Aue(e,t,n){let r=await IP(t,$P(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 rF(e,t,n){jP(t,$P(e).subtle,n),AP(e,t)}async function iF(e,t,n,r){if(!(e instanceof Uint8Array)||e.length<8)throw new JN(`PBES2 Salt Input must be 8 or more octets`);if(!Number.isSafeInteger(n)||Math.sign(n)!==1)throw new JN(`PBES2 Count Input must be a positive integer`);let i=IN(BN(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 IP(r,$P(t).subtle,`deriveBits`);return new Uint8Array(await crypto.subtle.deriveBits(o,s,a))}function aF(e){return IN(zN(e.length),e)}async function jue(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 VN(`sha256`,IN(zN(t),e,n));a.set(r,(t-1)*32)}return a.slice(0,r)}async function oF(e,t,n,r,i=/* @__PURE__ */ new Uint8Array,a=/* @__PURE__ */ new Uint8Array){nF(e),nF(t,`deriveBits`);let o=IN(aF(BN(n)),aF(i),aF(a),zN(r));return jue(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 sF(e){xP(e);let t=e.algorithm.namedCurve;if(t!==`P-256`&&t!==`P-384`&&t!==`P-521`&&e.algorithm.name!==`X25519`)throw new KN(`ECDH with the provided key is not allowed or not supported by your javascript runtime`)}function cF(e,t){let n=e[t];if(n!==void 0){if(typeof n!=`string`)throw new JN(`JOSE Header "${t}" (Agreement Party${t===`apu`?`U`:`V`}Info) invalid`);return lP(n,t,JN)}}function lF(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 JN(`JOSE Header "apu" and "apv" values must be distinct`)}}function Mue(e){if(e===void 0)throw new JN(`JWE Encrypted Key missing`)}function uF(e){if(e!==void 0)throw new JN(`Encountered unexpected JWE Encrypted Key`)}function Nue(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 Pue(e,t,n,r,i,a){let{alg:o}=e,s=e.mode;if(s===`direct-encryption`)return uF(r),n;let c=s===`direct-key-agreement`;switch(c?uF(r):Mue(r),e.subtle.name){case`ECDH`:{let{epk:r}=i;if(!aP(r)||[`d`,`k`,`p`,`q`,`dp`,`dq`,`qi`,`oth`,`priv`].some(e=>Object.hasOwn(r,e)))throw new JN(`JOSE Header "epk" (Ephemeral Public Key) missing or invalid`);sF(n);let a=await FP(e,r),s=cF(i,`apu`),l=cF(i,`apv`);lF(s,l);let u=await oF(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 xP(n),rF(o,n,`decrypt`),new Uint8Array(await crypto.subtle.decrypt(`RSA-OAEP`,n,r));case`PBKDF2`:{if(typeof i.p2c!=`number`)throw new JN(`JOSE Header "p2c" (PBES2 Count) missing or invalid`);Nue(a);let e=a??1e4;if(i.p2c>e)throw new JN(`JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds`);if(typeof i.p2s!=`string`)throw new JN(`JOSE Header "p2s" (PBES2 Salt) missing or invalid`);n=await iF(lP(i.p2s,`p2s`,JN),o,i.p2c,n);break}case`AES-GCM`:{if(typeof i.iv!=`string`)throw new JN(`JOSE Header "iv" (Initialization Vector) missing or invalid`);if(typeof i.tag!=`string`)throw new JN(`JOSE Header "tag" (Authentication Tag) missing or invalid`);let e=lP(i.iv,`iv`,JN),t=lP(i.tag,`tag`,JN);if(e.byteLength!==12)throw new JN(`Invalid Initialization Vector length`);if(t.byteLength!==16)throw new JN(`Invalid Authentication Tag length`);return UP(tF(o.slice(0,-2)),n,r,e,t,/* @__PURE__ */ new Uint8Array)}}return Aue(o.slice(-6),n,r)}async function Fue(e,t,n,r,i,a={}){let{alg:o,mode:s}=e,c=eF(e);if(i!==void 0&&!c)throw TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${o}`);let l=await yP(s===`direct-encryption`?t:e,n,`encrypt`);if(s===`direct-encryption`)return[l,void 0,void 0];let u=c?i??LP(t):void 0;u&&RP(u,t.cekBits);let d,f;switch(e.subtle.name){case`ECDH`:{sF(l);let{apu:n,apv:i}=a;n!==void 0&&iP(n,`"apu"`),i!==void 0&&iP(i,`"apv"`);let c=n??cF(r,`apu`),u=i??cF(r,`apv`);lF(c,u);let d;d=a.epk===void 0?(await crypto.subtle.generateKey(l.algorithm,!0,[`deriveBits`])).privateKey:await yP(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 oF(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=rP(n)),i!==void 0&&(f.apv=rP(i)),y)return[b,void 0,f];l=b;break}case`RSA-OAEP`:xP(l),rF(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 iF(t,o,e,l),f={p2c:e,p2s:rP(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 HP(tF(o.slice(0,-2)),u,l,e,/* @__PURE__ */ new Uint8Array);d=t.ciphertext,f={iv:rP(t.iv),tag:rP(t.tag)}}}if(d??=await kue(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 dF(e,t){if(e.zip!==void 0&&e.zip!==`DEF`)throw new KN(`Unsupported JWE "zip" (Compression Algorithm) Header Parameter value.`);if(e.zip!==void 0&&!t?.zip)throw new JN(`JWE "zip" (Compression Algorithm) Header Parameter MUST be in a protected header.`)}function fF(e){if(typeof globalThis[e]>`u`)throw new KN(`JWE "zip" (Compression Algorithm) Header Parameter requires the ${e} API.`)}async function pF(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 JN(`Decompressed plaintext exceeded the configured limit`)}return IN(...i)}async function Iue(e){return fF(`CompressionStream`),pF(new CompressionStream(`deflate-raw`),e)}async function Lue(e,t){return fF(`DecompressionStream`),pF(new DecompressionStream(`deflate-raw`),e,t)}function Rue(e){let{protected:t,ciphertext:n,iv:r,tag:i,aad:a}=e,o;return t!==void 0&&(o=dP(t,JN,`JWE Protected Header is invalid`)),[o,lP(n,`ciphertext`,JN),r===void 0?void 0:lP(r,`iv`,JN),i===void 0?void 0:lP(i,`tag`,JN),uP((t??``)+(a===void 0?``:`.${a}`),`aad`,JN)]}function zue(e){return[e&&mP(`keyManagementAlgorithms`,e.keyManagementAlgorithms),e&&mP(`contentEncryptionAlgorithms`,e.contentEncryptionAlgorithms),e?.crit,e?.maxPBES2Count,e?.maxDecompressedLength]}async function Bue(e,t,n,r=Rue(e)){let[i,a,o,s,c]=r,{header:l,unprotected:u,aad:d}=e,f;if(l!==void 0||u!==void 0){if(!sP(i,l,u))throw new JN(`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;gP(JN,pP,h,i,f),dF(f,i);let{alg:y,enc:b}=f;if(typeof y!=`string`||!y)throw new JN(`missing JWE Algorithm (alg) in JWE Header`);let x=XP[y];if(v===``&&(!x||!eF(x)))throw new JN(`JWE Encrypted Key incorrect type`);let S=x?.mode===`integrated-encryption`;if(!S&&(typeof b!=`string`||!b))throw new JN(`missing JWE Encryption Algorithm (enc) in JWE Header`);if(p&&!p.has(y)||!p&&y.startsWith(`PBES2`))throw new GN(`"alg" (Algorithm) Header Parameter value not allowed`);let ee;if(S){if(b!==void 0)throw new JN(`JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption`);if(o?.byteLength)throw new JN(`JWE Initialization Vector must be empty for integrated encryption`);if(s?.byteLength)throw new JN(`JWE Authentication Tag must be empty for integrated encryption`)}else{if(m&&!m.has(b))throw new GN(`"enc" (Encryption Algorithm) Header Parameter value not allowed`);ee=tF(b)}let te;if(v!==void 0)try{te=lP(v,`encrypted_key`,JN)}catch(e){if(!x||!eF(x))throw e;te=/* @__PURE__ */ new Uint8Array}let C=!1;typeof n==`function`&&(n=await n(i,e),C=!0);let ne=x??$P(y);eF(ne)&&te===void 0&&(te=/* @__PURE__ */ new Uint8Array);let w=await yP(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 Pue(ne,e,w,te,f,g),eF(ne)&&t instanceof Uint8Array&&t.byteLength<<3!==e.cekBits&&(t=LP(e))}catch(n){if(n instanceof TypeError||n instanceof JN||n instanceof KN)throw n;t=LP(e)}T=await UP(e,t,a,o,s,c)}if(f.zip===`DEF`){let e=_??25e4;if(e===0)throw new KN(`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 Lue(T,e).catch(e=>{throw e instanceof JN?e:new JN(`Failed to decompress plaintext`,{cause:e})})}return{plaintext:T,...i&&{protectedHeader:i},...d!==void 0&&{additionalAuthenticatedData:lP(d,`aad`,JN)},...u&&{sharedUnprotectedHeader:u},...l&&{unprotectedHeader:l},...C&&{key:w}}}async function Vue(e,t,n){if(e instanceof Uint8Array&&(e=NN.decode(e)),typeof e!=`string`)throw new JN(`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 JN(`Invalid Compact JWE`);return Bue({ciphertext:o,iv:a||void 0,protected:r,tag:s||void 0,encrypted_key:i||void 0},t,n)}function mF(e,t,n){if(!sP(e,t,n))throw new JN(`JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint`)}function Hue(e,t,n=!1){if(!e[1]&&!e[2]&&!e[3])throw new JN(`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&&iP(o,`JWE Additional Authenticated Data`),s!==void 0&&iP(s,`JWE Content Encryption Key`),c!==void 0&&iP(c,`JWE Initialization Vector`),!n&&r!==void 0&&(r=vP(JN,r)[0],e[1]=r),i!==void 0&&(i=vP(JN,i)[0],e[2]=i),!n&&a!==void 0&&(a=vP(JN,a)[0],e[3]=a),l!==void 0&&!aP(l))throw TypeError(`JWE Key Management Parameters must be an object`);mF(r,i,a);let d={...r,...i,...a};hP(JN,r),gP(JN,pP,u,r,d),dF(d,r);let{alg:f,enc:p}=d;if(typeof f!=`string`||!f)throw new JN(`JWE "alg" (Algorithm) Header Parameter missing or invalid`);let m=XP[f];if(m?.mode===`integrated-encryption`){if(p!==void 0)throw new JN(`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 JN(`JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid`);return[d,tF(p),m]}async function Uue(e,t,n){let[r,i,a]=t,[o,s,c,l,u,d,f,p,,m]=e,h=s,g=c,_=a??$P(r.alg),v,y,b;_.mode===`integrated-encryption`?b=await yP(_,n,`encrypt`):[b,v,y]=await Fue(_,i,n,r,d,p),y&&(m?g=g?{...g,...y}:y:h=h?{...h,...y}:y,mF(h,g,l));let x=h?rP(JSON.stringify(h)):``,S=u?.byteLength?rP(u):void 0,ee=BN(S?`${x}.${S}`:x),te=o;r.zip===`DEF`&&(te=await Iue(te).catch(e=>{throw new JN(`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 HP(i,te,b,f,ee);let T={ciphertext:rP(C)};return w&&(T.iv=rP(w)),ne&&(T.tag=rP(ne)),v?.byteLength&&(T.encrypted_key=rP(v)),S&&(T.aad=S),h&&(T.protected=x),l&&(T.unprotected=l),g&&(T.header=g),T}async function Wue(e,t,n){return Uue(e,Hue(e,n),t)}function Gue(e){return[e.protected,e.encrypted_key,e.iv,e.ciphertext,e.tag].join(`.`)}const hF=[[`verify`],[`sign`]];function gF(e){let t={name:`HMAC`,hash:`SHA-${e}`};return{kty:[`oct`],secret:!0,subtle:t,signing:t,usages:hF}}function _F(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:hF,minRsaBits:2048}}function vF(e,t){return{kty:[`EC`],crv:e,subtle:{name:`ECDSA`,namedCurve:e},signing:{name:`ECDSA`,hash:`SHA-${t}`},usages:hF}}function yF(){let e={name:`Ed25519`};return{kty:[`OKP`],crv:`Ed25519`,subtle:e,signing:e,usages:hF}}function bF(e){let t={name:`ML-DSA-${e}`};return{kty:[`AKP`],subtle:t,signing:t,usages:hF}}const xF=WP({HS256:gF(256),HS384:gF(384),HS512:gF(512),RS256:_F(256),RS384:_F(384),RS512:_F(512),PS256:_F(256,32),PS384:_F(384,48),PS512:_F(512,64),ES256:vF(`P-256`,256),ES384:vF(`P-384`,384),ES512:vF(`P-521`,512),EdDSA:yF(),Ed25519:yF(),"ML-DSA-44":bF(44),"ML-DSA-65":bF(65),"ML-DSA-87":bF(87)});function SF(e){let t=typeof e==`string`?xF[e]:void 0;if(!t)throw new KN(`alg ${e} is not supported either by JOSE or your javascript runtime`);return t}function CF(e){return[e&&mP(`algorithms`,e.algorithms),e?.crit]}function Kue(e){return e===void 0?{}:dP(e,YN,`JWS Protected Header is invalid`)}function que(e){try{return BN(e)}catch{throw new YN(`JWS Compact Serialization payload must use only ASCII characters`)}}async function Jue(e,t,n,r,i){let{protected:a,header:o,payload:s}=e,c=i??Kue(a);if(!sP(c,o))throw new YN(`JWS Protected and JWS Unprotected Header Parameter names must be disjoint`);let l={...c,...o},u=_P(c,gP(YN,fP,t[1],c,l)),{alg:d}=l;if(typeof d!=`string`||!d)throw new YN(`JWS "alg" (Algorithm) Header Parameter missing or invalid`);if(t[0]&&!t[0].has(d))throw new GN(`"alg" (Algorithm) Header Parameter value not allowed`);if(u){if(typeof s!=`string`)throw new YN(`JWS Payload must be a string`)}else if(typeof s!=`string`&&!(s instanceof Uint8Array))throw new YN(`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=SF(d),h=IN(a===void 0?/* @__PURE__ */ new Uint8Array:BN(a),BN(`.`),typeof f==`string`?t[2]??=uP(f,`payload`,YN):f),g=lP(e.signature,`signature`,YN),_=await yP(m,n,`verify`),v=await IP(_,m.subtle,`verify`);m.minRsaBits&&AP(m.alg,v);let y=!1;try{y=await crypto.subtle.verify(m.signing,v,g,h)}catch{}if(!y)throw new _ue;let b={payload:typeof f==`string`?lP(f,`payload`,YN):f};return a!==void 0&&(b.protectedHeader=c),o!==void 0&&(b.unprotectedHeader=o),p?[{...b,key:_},u]:[b,u]}async function wF(e,t,n){if(e instanceof Uint8Array&&(e=NN.decode(e)),typeof e!=`string`)throw new YN(`Compact JWS must be a string or Uint8Array`);let{0:r,1:i,2:a,length:o}=e.split(`.`);if(o!==3)throw new YN(`Invalid Compact JWS`);return Jue({payload:i,protected:r,signature:a},t,n,que)}async function TF(e,t,n){let[r]=await wF(e,CF(n),t);return r}const EF=e=>Math.floor(e.getTime()/1e3),Yue={s:1,m:60,h:3600,d:86400,w:604800,y:31557600},Xue=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,DF=`check_failed`;function OF(){throw TypeError(`Invalid time period format`)}function kF(e){typeof e!=`string`&&OF();let t=Xue.exec(e);(!t||t[4]&&t[1])&&OF();let n=parseFloat(t[2]),r=Math.round(n*Yue[t[3][0].toLowerCase()]);return Number.isFinite(r)||OF(),t[1]===`-`||t[4]===`ago`?-r:r}function AF(e,t){if(!Number.isFinite(t))throw TypeError(`Invalid ${e} input`);return t}function jF(e,t){if(typeof t!=`string`)throw TypeError(`"${e}" claim must be a string`)}function Zue(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 MF(e,t){return typeof e==`number`?AF(t,e):e instanceof Date?AF(t,EF(e)):EF(/* @__PURE__ */ new Date)+kF(e)}const NF=e=>{let t=e.toLowerCase();return e.includes(`/`)?t:`application/${t}`},Que=(e,t)=>typeof e==`string`?t.includes(e):Array.isArray(e)?t.some(t=>e.includes(t)):!1;function PF(e,t,n=!1){let r=e[t];if(r!==void 0||n){if(typeof r!=`number`)throw new UN(`"${t}" claim must be a number`,e,t,`invalid`);return r}}function FF(e,t){throw new UN(`unexpected "${t}" claim value`,e,t,DF)}function IF(e,t,n={}){let r;try{r=JSON.parse(PN.decode(t))}catch{}if(!aP(r))throw new XN(`JWT Claims Set must be a top-level JSON object`);let{typ:i}=n;if(i!==void 0&&(typeof e.typ!=`string`||NF(e.typ)!==NF(i)))throw new UN(`unexpected "typ" JWT header value`,r,`typ`,DF);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 UN(`missing required "${e}" claim`,r,e,`missing`);o!==void 0&&!(Array.isArray(o)?o:[o]).includes(r.iss)&&FF(r,`iss`),s!==void 0&&r.sub!==s&&FF(r,`sub`),c!==void 0&&!Que(r.aud,typeof c==`string`?[c]:c)&&FF(r,`aud`);let{clockTolerance:d}=n,f=0;if(typeof d==`string`)f=kF(d);else if(d!==void 0){if(typeof d!=`number`)throw TypeError(`Invalid clockTolerance option type`);f=d}AF(`clockTolerance option`,f);let{currentDate:p}=n,m=AF(`currentDate option`,EF(p===void 0?/* @__PURE__ */ new Date:p)),h=PF(r,`iat`,l!==void 0),g=PF(r,`nbf`);if(g!==void 0&&g>m+f)throw new UN(`"nbf" claim timestamp check failed`,r,`nbf`,DF);let _=PF(r,`exp`);if(_!==void 0&&_<=m-f)throw new WN(`"exp" claim timestamp check failed`,r,`exp`,DF);if(l!==void 0){let e=m-h,t=AF(`maxTokenAge option`,typeof l==`number`?l:kF(l));if(e-f>t)throw new WN(`"iat" claim timestamp check failed (too far in the past)`,r,`iat`,DF);if(e<-f)throw new UN(`"iat" claim timestamp check failed (it should be in the past)`,r,`iat`,DF)}return r}let LF;function RF(e){return LF.get(e)}function zF(e){let t=RF(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 MN.encode(JSON.stringify(t))}function BF(e,t){return RF(e)[t]}var VF=class{constructor(e={}){if(!aP(e))throw TypeError(`JWT Claims Set MUST be an object`);(LF||=/* @__PURE__ */ new WeakMap).set(this,structuredClone(e))}setIssuer(e){return jF(`iss`,e),RF(this).iss=e,this}setSubject(e){return jF(`sub`,e),RF(this).sub=e,this}setAudience(e){return Zue(e),RF(this).aud=e,this}setJti(e){return jF(`jti`,e),RF(this).jti=e,this}setNotBefore(e){return RF(this).nbf=MF(e,`setNotBefore`),this}setExpirationTime(e){return RF(this).exp=MF(e,`setExpirationTime`),this}setIssuedAt(e){let t=RF(this);return t.iat=e===void 0?EF(/* @__PURE__ */ new Date):typeof e==`string`?AF(`setIssuedAt`,EF(/* @__PURE__ */ new Date)+kF(e)):MF(e,`setIssuedAt`),this}};async function HF(e,t,n){let[r,i]=await wF(e,CF(n),t);if(!i)throw new XN(`JWTs MUST NOT use unencoded payload`);let a=IF(r.protectedHeader,r.payload,n);return{...r,payload:a}}async function UF(e,t,n){let{plaintext:r,...i}=await Vue(e,zue(n),t),{protectedHeader:a}=i,o=IF(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 UN(`replicated "${e}" claim header parameter mismatch`,o,e,`mismatch`);return{payload:o,...i}}async function $ue(e,t,n){let[r,i,a,o]=e,s=``;if(i!==void 0){let e=vP(YN,i);i=e[0],s=rP(e[1])}if(a!==void 0&&(a=vP(YN,a)[0]),!i&&!a)throw new YN(`either setProtectedHeader or setUnprotectedHeader must be called before #sign()`);if(!sP(i,a))throw new YN(`JWS Protected and JWS Unprotected Header Parameter names must be disjoint`);let c={...i,...a};hP(YN,i);let l=_P(i,gP(YN,fP,o,i,c));l||n?.();let{alg:u}=c;if(typeof u!=`string`||!u)throw new YN(`JWS "alg" (Algorithm) Header Parameter missing or invalid`);let d=SF(u),f=``,p=r,m;if(l){let t=e[4];t?(f=t[0]??=rP(r),p=t[1]??=BN(f)):(f=rP(r),m=MN.encode(`${s}.${f}`))}m??=IN(BN(s),BN(`.`),p);let h=await IP(await yP(d,t,`sign`),d.subtle,`sign`);d.minRsaBits&&AP(d.alg,h);let g={signature:rP(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 ede(e,t,n,r,i){let[a]=await $ue([e,t,void 0,n],r,i);return`${a.protected}.${a.payload}.${a.signature}`}const tde=VF;var WF=class extends tde{#e;setProtectedHeader(e){return cP(this.#e,`setProtectedHeader`),this.#e=e,this}async sign(e,t){return ede(zF(this),this.#e,t?.crit,e,()=>{throw new XN(`JWTs MUST NOT use unencoded payload`)})}};const nde=VF;var rde=class extends nde{#e=[void 0];#t;#n;#r;setProtectedHeader(e){return cP(this.#e[1],`setProtectedHeader`),this.#e[1]=e,this}setKeyManagementParameters(e){return cP(this.#e[7],`setKeyManagementParameters`),this.#e[7]=e,this}setContentEncryptionKey(e){return cP(this.#e[5],`setContentEncryptionKey`),this.#e[5]=e,this}setInitializationVector(e){return cP(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=zF(this);this.#e[1]&&(this.#t||this.#n||this.#r)&&(this.#e[1]={...this.#e[1],iss:this.#t?BF(this,`iss`):void 0,sub:this.#n?BF(this,`sub`):void 0,aud:this.#r?BF(this,`aud`):void 0});let r=[...this.#e];return r[0]=n,Gue(await Wue(r,e,t))}};function GF(e=`JWK "alg" (Algorithm) Parameter`){throw new KN(`Invalid or unsupported ${e} value`)}function KF(e,t){return(typeof e==`string`?xF[e]??XP[e]:void 0)??GF(t)}async function qF(e){if(CP(e)){if(e.type===`secret`)e=e.export();else return e.export({format:`jwk`})}if(e instanceof Uint8Array)return{kty:`oct`,k:rP(e)};if(!SP(e))throw TypeError(EP(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 JF=(e,t)=>{if(typeof e!=`string`||!e)throw new ZN(`${t} missing or invalid`)};async function YF(e,t){let n;if(aP(e)){if(n=MP(e),typeof n.kty!=`string`)throw TypeError(EP(e,`CryptoKey`,`KeyObject`,`JSON Web Key`))}else if(wP(e))n=MP(await qF(e));else throw TypeError(EP(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`:JF(n.alg,`"alg" (Algorithm) Parameter`),JF(n.pub,`"pub" (Public key) Parameter`),r={alg:n.alg,kty:n.kty,pub:n.pub};break;case`EC`:JF(n.crv,`"crv" (Curve) Parameter`),JF(n.x,`"x" (X Coordinate) Parameter`),JF(n.y,`"y" (Y Coordinate) Parameter`),r={crv:n.crv,kty:n.kty,x:n.x,y:n.y};break;case`OKP`:JF(n.crv,`"crv" (Subtype of Key Pair) Parameter`),JF(n.x,`"x" (Public Key) Parameter`),r={crv:n.crv,kty:n.kty,x:n.x};break;case`RSA`:JF(n.e,`"e" (Exponent) Parameter`),JF(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 ZN(`"k" (Key Value) Parameter missing or invalid`);r={k:n.k,kty:n.kty};break;default:throw new KN(`"kty" (Key Type) Parameter missing or unsupported`)}let i=BN(JSON.stringify(r));return rP(await VN(t,i))}function ide(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 XF(e,t,n){let r=e.get(t)||e.set(t,{}).get(t),{alg:i}=n;if(r[i]===void 0){let e=FP(n,t,!0).then(e=>{if(e.type!==`public`)throw new QN(`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 ZF(e){let t;try{t=structuredClone(e)}catch{}if(!oP(t))throw new QN(`JSON Web Key Set malformed`);let n=t.keys.map(e=>{let t=MP(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`?xF[a]:void 0;if(!s||s.secret)throw new KN(`Unsupported "alg" value for a JSON Web Key Set`);let c=t.keys.filter((e,t)=>ide(n[t],s,a,o)),{0:l,length:u}=c;if(!u)throw new $N;if(u!==1){let e=new eP;throw e[Symbol.asyncIterator]=async function*(){for(let e of c)try{yield await XF(r,e,s)}catch{}},e}return XF(r,l,s)},"jwks",{value:()=>structuredClone(t)})}function ade(){return typeof WebSocketPair<`u`||typeof navigator<`u`&&navigator.userAgent===`Cloudflare-Workers`||typeof EdgeRuntime<`u`&&EdgeRuntime===`vercel`}let QF;(typeof navigator>`u`||!navigator.userAgent?.startsWith?.(`Mozilla/5.0 `))&&(QF=`jose/v6.2.12`);const ode=/* @__PURE__ */ Symbol();async function sde(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 tP:e});if(i.status!==200)throw new HN(`Expected 200 OK from the JSON Web Key Set HTTP response`);try{return await i.json()}catch{throw new HN(`Failed to parse the JSON Web Key Set HTTP response as JSON`)}}const cde=/* @__PURE__ */ Symbol();function $F(e,t){return Number.isFinite(e)&&Date.now()<e+t}function eI(e,t,n){if(Number.isNaN(e))throw TypeError(`"${n}" option must not be NaN`);return typeof e==`number`?e:t}function lde(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=eI(r.cooldownDuration,3e4,`cooldownDuration`),s=eI(r.cacheMaxAge,6e5,`cacheMaxAge`),c=new Headers(r.headers);QF&&!c.has(`User-Agent`)&&c.set(`User-Agent`,QF),c.has(`accept`)||c.set(`accept`,`application/json, application/jwk-set+json`);let l=r[ode],u=r[cde],d,f,p=0,m=0,h;if(u&&typeof u==`object`){let{uat:e,jwks:t}=u;$F(e,s)&&oP(t)&&(d=e,h=ZF(t))}let g=async()=>{if(f&&ade()&&(f=void 0),!f){let e=++p,t=f=sde(n,c,AbortSignal.timeout(a),l).then(t=>{let n=ZF(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||!$F(d,s))&&await g();try{return await h(e,t)}catch(n){if(n instanceof $N&&!$F(d,o))return await g(),h(e,t);throw n}},{coolingDown:{get:()=>$F(d,o),enumerable:!0},fresh:{get:()=>$F(d,s),enumerable:!0},reload:{value:g,enumerable:!0},reloading:{get:()=>!!f,enumerable:!0},jwks:{value:()=>h?.jwks(),enumerable:!0}})}async function tI(e,t,n){if(!aP(e))throw TypeError(`JWK must be an object`);let r=NP(e),i=PP(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 nP(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 FP(KF(t),r,i);case`RSA`:case`EC`:case`OKP`:return FP(KF(t),r,i);default:throw new KN(`Unsupported "kty" (Key Type) Parameter value`)}}function nI(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 dP(t,TypeError,n)}function rI(e){if(typeof e!=`string`)throw new XN(`JWTs must use Compact JWS serialization, JWT must be a string`);let{1:t,length:n}=e.split(`.`);if(n===5)throw new XN(`Only JWTs using Compact JWS serialization can be decoded`);if(n!==3)throw new XN(`Invalid JWT`);if(!t)throw new XN(`JWTs must contain a payload`);let r;try{r=nP(t)}catch{throw new XN(`Failed to base64url decode the payload`)}let i;try{i=JSON.parse(PN.decode(r))}catch{throw new XN(`Failed to parse the decoded payload as JSON`)}if(!aP(i))throw new XN(`Invalid JWT Claims Set`);return i}function ude(e){let t=e?.modulusLength??2048;if(typeof t!=`number`||!Number.isInteger(t)||t<2048)throw new KN(`Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used`);return t}async function dde(e,t){let n=PP(t?.extractable),r=KF(e,`"alg" (Algorithm)`);r.secret&&GF(`"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 KN(`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 KN(`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:ude(t)}:r.subtle}return crypto.subtle.generateKey(i,n??!1,[...r.usages[1],...r.usages[0]])}const iI=`key-list+jwt`,fde=G({keys:K(G({id:W,sealed:W}))}),aI=sS(G({keyId:rS,ownerId:rS,scopes:K(rS),expiresAt:Ix(qx)})),oI=new TextEncoder,pde=async e=>new Uint8Array(await crypto.subtle.digest(`SHA-256`,oI.encode(e))),sI=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:oI.encode(`clankerauth key list\0${t}`)},n,512));return{id:rP(r.subarray(0,32)),key:await crypto.subtle.importKey(`raw`,r.subarray(32),`AES-GCM`,!1,[`encrypt`,`decrypt`])}},mde=async(e,t,n)=>{let{id:r,key:i}=await sI(e,t),a=crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(12)),o=await crypto.subtle.encrypt({name:`AES-GCM`,iv:a},i,oI.encode(mx(aI)(n))),s=new Uint8Array(a.length+o.byteLength);return s.set(a),s.set(new Uint8Array(o),a.length),{id:r,sealed:rP(s)}},hde=async(e,t,n)=>{let r=await sI(await pde(e),t),i=n.get(r.id);if(i===void 0)return;let a=new Uint8Array(nP(i)),o=await crypto.subtle.decrypt({name:`AES-GCM`,iv:a.subarray(0,12)},r.key,a.subarray(12));return ux(aI)(new TextDecoder().decode(o))},cI=Symbol.for(`@gjermundgaraba/effect-actions/Anyone`),lI=(e,t)=>{for(let n of e)if(n.caller!==cI&&(t===void 0||n.caller.key!==t.identity.key))throw Error(`Protected action '${n.name}' requires its matching authentication descriptor`)},uI=e=>W.pipe(zx(I(e))),gde=G({path:K(q([W,qx])),message:W}),_de=$g();var dI=class e extends AS()(`InvalidInput`,{message:uI(`The input does not match the action's input.`),issues:K(gde).pipe(zx(I([])))},{httpApiStatus:400}){static fromSchemaError=({issue:t,message:n})=>new e({message:n,issues:_de(t).issues.map(e=>({path:(e.path??[]).map(e=>{let t=kt(e)?e:e.key;return Ot(t)?String(t):t}),message:e.message}))})},fI=class extends AS()(`Unauthenticated`,{message:uI(`Authentication is required.`)},{httpApiStatus:401}){};const pI=/^[\x21\x23-\x5B\x5D-\x7E]+$/,vde=W.check(Kx(pI));var mI=class extends AS()(`Forbidden`,{message:uI(`Not allowed.`),scopes:_x(Nx(vde))},{httpApiStatus:403}){};const hI=[fI,mI],yde=q(hI),gI=[dI,...hI];q(gI);const bde=/^[A-Za-z0-9_-]{1,128}$/,xde=(e,t)=>{if(!bde.test(t)||t===`then`)throw Error(`Invalid ${e}: ${t}`)},_I=(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)}},vI=(e,t)=>_I(e,t,e=>e.name),Sde=(e,t,n)=>{let r=t.filter(e=>!n.includes(e));if(r.length>0)throw Error(`Unknown ${e}: ${r.join(`, `)}`)},yI=e=>dv(e)?yI(e.thunk()):e,bI=e=>{let t=yI(e);return uv(t)?t.types.flatMap(bI):[t]},Cde=e=>av(e)?[e.literal]:sv(e)?e.enums.map(([,e])=>e):[void 0],xI=e=>e===void 0?[]:gx(e)?[e]:e,SI=(e,t=[])=>[.../* @__PURE__ */ new Set([...gI,...e.error,...t])],wde=(e,t)=>SI(e,e.caller===cI||t.authentication===void 0?t.error:[...t.error,...t.authentication.error]),CI=e=>bI(Ny(e)).flatMap(e=>{let t=lv(e)?e.propertySignatures.find(e=>e.name===`_tag`)?.type:void 0;return t===void 0?[]:bI(t).flatMap(Cde).filter(Tt)}),Tde=new Set(gI.flatMap(e=>CI(e.ast))),wI=(e,t)=>{let n=t.flatMap(e=>CI(e.ast)).find(e=>Tde.has(e));if(n!==void 0)throw Error(`${e}: error _tag "${n}" is built in, and declared on every surface`)},Ede=(e,t,n)=>{vI(`action`,t);let r=xI(n.error);return wI(e,r),lI(t,n.authentication),{error:r,authentication:n.authentication}},Dde=()=>Math.random().toString(36).slice(2),TI=e=>{let t=F(`effect-actions/Implementation/${Dde()}`);return{key:t,layer:Ud(t,e)}};var EI=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!==cI)?Zd(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!==cI)?yield*r.#t.key:()=>R;return n.flatMap(n=>e.flatMap(([e,r])=>e===n?[[n,Ade(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 DI=e=>xa(e),OI=(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(`, `)}`)}},kI=(e,t)=>t===void 0?e:(OI(`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]:[EI.share(n,e)]})),Ode=(e,t,n,r)=>{r!==void 0&&OI(`the binding does not hold it`,r,t);let i=n.flatMap(e=>e.actions),a=kI(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 vI(`served action`,o),a},kde=(e,t,n,r)=>{let i=Ode(e,t.actions,DI(n),r.actions),a=i.flatMap(e=>e.actions);return lI(a,t.authentication),_I(`middleware`,r.middleware??[],e=>e.key),{apps:i,actions:a,authentication:a.some(e=>e.caller!==cI)?t.authentication:void 0}},AI=e=>t=>{let[n,...r]=e.map(e=>EI.layerOf(e));return n===void 0?t:$d(t,Xd(n,...r))},jI=e=>H(Ef(e,e=>EI.boundOf(e)),e=>e.flat()),Ade=(e,t,n)=>{let r={"action.name":e.name,"action.read_only":e.readOnly},i=e.caller===cI?R:V(mp(e.caller),e=>pi(e)?R:B(new fI)),a=e.caller===cI?R:jf(()=>n(e)),o=cx(yx(q(SI(e)))),s=(e,t)=>{let n=Mi(e.annotations);return[ku(e.error).annotate(n),ku(ju(t)).annotate(n)]},c=U(function*(e){let t=[];for(let n of e.reasons)if(Tu(n)){let e=yield*Uf(o(n.error));t.push(...Ju(e)?[n]:s(n,e.cause))}else t.push(n);return yield*Pf(Eu(t))});return n=>vp(i.pipe(Bf(a),Bf(jf(()=>t(n))),Jf(c))).pipe(Jp(r),Pp(e.name,{attributes:r},{captureStackTrace:!1}))},MI={errors:`all`,onExcessProperty:`error`},NI=`effect-actions/media`,PI=G({data:fS,mimeType:W});PI.annotate({[NI]:`image`});const FI=e=>e.annotations?.[NI]===`image`,II=e=>FI(e)&&e.encoding===void 0?`image`:void 0,jde=Ax(W,Sx),LI=e=>gx(e)?e:Reflect.ownKeys(e).length===0?jde:G(e);function RI(e,t){xde(`action name`,e);let{caller:n,readOnly:r}=t;if(n!==cI&&!Qee(n))throw Error(`Missing caller: declare Action.Anyone or an identity service key`);if(n!==cI&&Pi(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:LI(t.input??{}),success:t.success===void 0?Dx:LI(t.success),error:xI(t.error),readOnly:r,mcp:{...t.mcp}};return wI(`Action "${i.name}"`,i.error),i}const Mde=()=>R,zI=e=>{if(!At(e))throw Error(`Missing authorize: pass an authorization function, or Action.allowAll`);return e},Nde=e=>{if(e===void 0)throw Error(`Protected actions require authorize, or Action.allowAll`);return e},Pde=e=>{if(e!==void 0)throw Error(`A public-only target takes no authorize`);return Mde},Fde=e=>TI(wf(e)?H(e,zI):I(zI(e)));function BI(e,t,n){let r=xa(e),i=r.map(e=>e.name);vI(`action`,r);let a=Fde(r.some(e=>e.caller!==cI)?Nde(n?.authorize):Pde(n?.authorize)),o=t=>{let n=At(t)?Object.fromEntries(Array.isArray(e)?[]:r.map(({name:e})=>[e,t])):t;Sde(`handlers`,Object.keys(n),i);let a=r.flatMap(e=>{let t=Object.hasOwn(n,e.name)?n[e.name]:void 0;return At(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=wf(t)?H(t,o):I(o(t));return new EI(r,TI(s),a)}const VI=e=>V(pp(e[`~provider`]),t=>t.descriptor===e?I(t):If(/* @__PURE__ */ Error(`Authentication "${e.name}": the binding's descriptor is not its provider's; build both from one descriptor`))),Ide=(e,t)=>V(mp(e[`~verified`]),n=>pi(n)?gp(t,e.identity,n.value):B(new fI)),HI=Gy(`httpApiStatus`),UI=e=>HI(e)??(dv(e)?UI(e.thunk()):void 0),WI=e=>{let t=UI(e.ast);if(t!==void 0)return[HI(e.ast)===void 0?e.annotate({httpApiStatus:t}):e];let n=yI(e.ast);return uv(n)&&n.checks===void 0&&n.encoding===void 0?n.types.flatMap(e=>WI(hx(e))):[e.annotate({httpApiStatus:422})]},Lde={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: ${io(e.duration)}\n\n`}}};function GI(e){let t=typeof e==`string`?pue(e):e;return e=>e.annotate({httpApiStatus:t})}const Rde=/*#__PURE__*/ (e=>Dx.pipe(GI(e)))(204),KI=e=>gx(e)&&P(e,`~effect/http-api/HttpApiSchema/Stream`),qI=e=>KI(e)&&e._tag===`StreamSse`,zde=e=>KI(e)&&e._tag===`StreamUint8Array`,JI=`~effect/http-api/HttpApiSchema/WithHeaders`,Bde=e=>P(e,`~effect/http-api/HttpApiSchema/WithHeadersValue`),YI=e=>gx(e)&&P(e,`~effect/http-api/HttpApiSchema/WithHeaders`);function Vde(e,t,n){return hx(e.ast,{[JI]:JI,schema:t,headers:n})}function XI(e,t){return e.annotate({"~httpApiEncoding":{_tag:t._tag,contentType:t.contentType??Hde(t._tag)}})}function Hde(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 Ude(e){return t=>XI(t,{_tag:`Json`,...e})}function Wde(e){return t=>XI(t,{_tag:`FormUrlEncoded`,...e})}const ZI=e=>{if(rv(e))return!0;let t=Ny(e);if(rv(t))return!0;let n=e.encoding?.[0].to;return n!==void 0&&rv(n)},QI=/*#__PURE__*/ Gy(`~httpApiEncoding`),$I=/*#__PURE__*/ Gy(`~httpApiWithHeaders`),eL=/*#__PURE__*/ Gy(`httpApiStatus`),tL={_tag:`Json`,contentType:`application/json`},Gde={_tag:`FormUrlEncoded`,contentType:`application/x-www-form-urlencoded`};function Kde(e){return QI(e)??tL}function nL(e,t){return QI(e)||(WD(t)?tL:Gde)}function rL(e){let t=Kde(e);if(t._tag===`Multipart`)throw Error(`Multipart is not supported in response`);return t}function iL(e){return eL(e)??200}function aL(e){return YI(e)?eL(e.ast)??iL(e.schema.ast):iL(e.ast)}function oL(e){return YI(e)&&QI(e.ast)===void 0?rL(e.schema.ast):rL(e.ast)}function sL(e){return eL(e)??500}function cL(e){return YI(e)?eL(e.ast)??sL(e.schema.ast):sL(e.ast)}function lL(e){let t=e.toLowerCase().trim(),n=t.indexOf(`;`);return n===-1?t:t.slice(0,n).trim()}const uL=`~effect/http-api/HttpApiEndpoint`;function qde(e){let t=[];for(let{schemas:n}of e.payload.values())t.push(...n);return t}function dL(e){let t=Array.from(e.success);return Ca(t)?t:[Rde]}function fL(e){let t=new Set(e.error),n=e.disableCodecs?N:bL;for(let r of e.middlewares){let e=r;for(let r of e.error)t.add(n(r))}return Array.from(t)}const Jde={[uL]:uL,pipe(){return lt(this,arguments)},prefix(e){return mL({...pL(this),path:yM(this.path,e)})},middleware(e){return mL({...pL(this),middlewares:/* @__PURE__ */ new Set([...this.middlewares,e])})},annotate(e,t){return mL({...pL(this),annotations:Ri(this.annotations,e,t)})},annotateMerge(e){return mL({...pL(this),annotations:qi(this.annotations,e)})}},pL=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 mL(e){function t(){}return Object.setPrototypeOf(t,Jde),Object.assign(t,e)}const hL=e=>(t,n,r)=>{let i=r?.disableCodecs??!1,a=i?N:MS;return mL({identifier:t,path:n,method:e,params:gL(r?.params,a),query:gL(r?.query,a),headers:gL(r?.headers,a),payload:_L(r?.payload,e,i),success:yL(r?.success,e,i),error:xL(r?.error,i),annotations:Fi(),middlewares:/* @__PURE__ */ new Set,disableCodecs:i})};function gL(e,t){if(e!==void 0)return gx(e)?t(e):t(G(e))}function _L(e,t,n){let r=/* @__PURE__ */ new Map;if(e===void 0)return r;let i=Array.isArray(e)?e:gx(e)?[e]:[G(e).pipe(Wde())],a=n?N:jL;for(let e of i){let n=nL(e.ast,t),i=lL(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 vL=`effect/http-api/stream/failure`;function yL(e,t,n){if(e===void 0)return/* @__PURE__ */ new Set;let r=xa(e);return SL(r,t),new Set(n?r:r.map(bL))}const bL=/*#__PURE__*/ vt(e=>KI(e)?e:YI(e)?Vde(e,KI(e.schema)?e.schema:AL(e.schema,oL(e)),MS(e.headers)):kL(e));function xL(e,t){if(e===void 0)return/* @__PURE__ */ new Set;let n=xa(e);for(let e of n){let t=YI(e)?e.schema:e;if(KI(t))throw Error(`Streaming schemas are not supported in error responses`)}return wL(n,cL),new Set(t?n:n.map(bL))}function SL(e,t){let n=!1,r=/* @__PURE__ */ new Map;for(let i of e){let e=YI(i)?i.schema:i,a=aL(i);if(KI(e)){if(TL(e,t),n)throw Error(`Multiple streaming success responses are not supported`);n=!0;let i=CL(r,a);if(i.noContent)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);if(i.bufferedContentTypes.has(lL(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=CL(r,a),n=ZI(e.ast);if(t.stream!==void 0){if(n)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);let e=oL(i);if(lL(e.contentType)===lL(t.stream.contentType))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`)}n||t.bufferedContentTypes.add(lL(oL(i).contentType)),t.noContent=t.noContent||n}}wL(e,aL)}function CL(e,t){let n=e.get(t);return n===void 0&&(n={bufferedContentTypes:/* @__PURE__ */ new Set,noContent:!1},e.set(t,n)),n}function wL(e,t){let n=/* @__PURE__ */ new Map;for(let r of e){let e=t(r),i=$I(r.ast),a=YI(r)?r.schema:i?.body??r,o=ZI(a.ast)?``:lL(KI(a)?a.contentType:oL(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(YI(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 TL(e,t){if(t===`HEAD`)throw Error(`HEAD endpoints cannot declare streaming success responses`);if(qI(e)&&EL(e.events.ast))throw Error(`SSE event name is reserved: ${vL}`)}function EL(e){return DL(Ny(e),/* @__PURE__ */ new Set)}function DL(e,t){if(t.has(e))return!1;if(t.add(e),uv(e))return e.types.some(e=>DL(e,t));if(dv(e))return DL(e.thunk(),t);if(!lv(e))return!1;let n=e.propertySignatures.find(e=>e.name===`event`);return n!==void 0&&OL(n.type,t)}function OL(e,t){if(t.has(e))return!1;t.add(e);let n=Ny(e);return n===e?av(e)?e.literal===vL:uv(e)?e.types.some(e=>OL(e,t)):dv(e)?OL(e.thunk(),t):!1:OL(n,t)}function kL(e){let t=rL(e.ast),n=$I(e.ast);return n===void 0?AL(e,t):e.annotate({"~httpApiWithHeaders":{...n,bodyCodec:AL(n.body,t),headersCodec:MS(n.headers)}})}function AL(e,t){switch(t._tag){case`Json`:return jS(e);case`FormUrlEncoded`:return MS(e);case`Text`:case`Uint8Array`:return e}}function jL(e,t){switch(nL(e.ast,t)._tag){case`Json`:return jS(e);case`FormUrlEncoded`:return MS(e);case`Text`:case`Uint8Array`:case`Multipart`:return e}}const ML=/*#__PURE__*/ hL(`POST`),NL=`~effect/http-api/HttpApi`,PL={[NL]:NL,pipe(){return lt(this,arguments)},add(...e){let t={...this.groups};for(let n of e)Rn(t,n.identifier,n);return IL({...FL(this),groups:t})},addHttpApi(e){let t={...this.groups};for(let n of Object.keys(e.groups)){let r=e.groups[n];Rn(t,n,r.annotateMerge(qi(e.annotations,r.annotations)))}return IL({...FL(this),groups:t})},prefix(e){return IL({...FL(this),groups:pa(this.groups,t=>t.prefix(e))})},middleware(e){return IL({...FL(this),groups:pa(this.groups,t=>t.middleware(e))})},annotate(e,t){return IL({...FL(this),annotations:Ri(this.annotations,e,t)})},annotateMerge(e){return IL({...FL(this),annotations:qi(this.annotations,e)})}},FL=e=>({identifier:e.identifier,groups:e.groups,annotations:e.annotations}),IL=e=>{function t(){}return Object.setPrototypeOf(t,PL),Object.assign(t,e)},LL=e=>IL({identifier:e,groups:{},annotations:Fi()}),RL=(e,t)=>{let n=Object.values(e.groups);for(let r of n){let n=qi(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:qi(n,e.annotations),successes:zL(dL(e),aL),errors:zL(fL(e),cL)})}},zL=(e,t)=>{let n=/* @__PURE__ */ new Map;return e.forEach(r),n;function r(e){let r=YI(e)?e.schema:e;if(KI(r))return;let i=t(e),a=n.get(i);a===void 0?n.set(i,[e]):a.push(e)}};var BL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/AdditionalSchemas`)){},VL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/ParseOptions`)){},HL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/ParamsParseOptions`)){},UL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/QueryParseOptions`)){},WL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/HeadersParseOptions`)){},GL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/PayloadParseOptions`)){},KL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/SuccessParseOptions`)){},qL=class extends (/*#__PURE__*/ F()(`effect/http-api/HttpApi/ErrorParseOptions`)){};const JL=e=>{let t=Bi(e,VL);return{params:Bi(e,HL)??t,query:Bi(e,UL)??t,headers:Bi(e,WL)??t,payload:Bi(e,GL)??t,success:Bi(e,KL)??t,error:Bi(e,qL)??t}},YL=/*#__PURE__*/ Ik({status:400}),XL=/*#__PURE__*/ Ik({status:500}),ZL=`~effect/http-api/HttpApiError/HttpApiSchemaError`;var QL=class e extends (/*#__PURE__*/ Ete(`HttpApiSchemaError`)){[ZL]=ZL;get[_E](){return this.kind!==`Body`&&this.kind!==`ResponseHeaders`}static is(e){return P(e,ZL)}static wrap(t,n){return Zp(n,n=>new e({kind:t,cause:n}))}name=`HttpApiSchemaError`;message=this.kind;[_A](){return I(this[`~effect/ErrorReporter/ignore`]?YL:XL)}};const $L=`~effect/http-api/HttpApiMiddleware`,eR=`~effect/http-api/HttpApiMiddleware/Security`,tR=e=>P(e,eR),nR=()=>(e,t)=>{let n=Pn(),r;n!==0&&(Fn(2),r=new globalThis.Error,Fn(n));class i extends F()(e){}let a=i;if(Object.defineProperty(i,"stack",{get(){return r?.stack}}),a[$L]=$L,a.error=rR(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[eR]=eR,a.security=t.security}return a};function rR(e){return e===void 0?/* @__PURE__ */ new Set:new Set(Array.isArray(e)?e:[e])}const iR=(e,t)=>Bd(e,(e,n)=>Kf(e,e=>QL.is(e)?t(e,n):B(e))),aR=/*#__PURE__*/ new Set;function oR(e){if(e===void 0)return aR;let t=_y(e.ast);return lv(t)&&t.indexSignatures.length===0?new Set(t.propertySignatures.map(e=>String(e.name))):void 0}function sR(e,t){if(t===void 0||!e.includes(`:`))return e;let n=oR(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 cR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Identifier`)){},lR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Title`)){},uR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Version`)){},dR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Description`)){},fR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/License`)){},pR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/ExternalDocs`)){},mR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Servers`)){},hR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Format`)){},gR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Summary`)){},_R=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Deprecated`)){},vR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Override`)){};const yR=/*#__PURE__*/ Yi(`effect/http-api/OpenApi/Exclude`,{defaultValue:mt});var bR=class extends (/*#__PURE__*/ F()(`effect/http-api/OpenApi/Transform`)){};const xR={},SR=/*#__PURE__*/ new WeakMap,CR=e=>{if(Array.isArray(e))return e.map(CR);if(typeof e==`object`&&e&&!Object.isFrozen(e)){let t={};for(let n of Object.keys(e))Rn(t,n,CR(e[n]));return t}return e};function wR(e,t,n){let r=Ki(e,t);pi(r)&&n(r.value)}function TR(e,t){let n=t??xR,r=SR.get(n);r===void 0&&(r=/* @__PURE__ */ new WeakMap,SR.set(n,r));let i=r.get(e);if(i!==void 0)return CR(i);let a=ER(e,n);return r.set(e,CR(a)),a}function ER(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:IR(e,t),target:n}),n}wR(e.annotations,lR,e=>{n.info.title=e}),wR(e.annotations,uR,e=>{n.info.version=e}),wR(e.annotations,dR,e=>{n.info.description=e}),wR(e.annotations,fR,e=>{n.info.license=e}),wR(e.annotations,gR,e=>{n.info.summary=e}),wR(e.annotations,mR,e=>{n.servers=[...e]}),RL(e,{onGroup({group:e}){if(Ui(e.annotations,yR))return;let t={name:zi(e.annotations,lR,()=>e.identifier)};wR(e.annotations,dR,e=>{t.description=e}),wR(e.annotations,pR,e=>{t.externalDocs=e}),wR(e.annotations,vR,e=>{for(let[n,r]of Object.entries(e))Rn(t,n,r)}),wR(e.annotations,bR,e=>{t=e(t)}),n.tags.push(t)},onEndpoint({endpoint:e,group:t,mergedAnnotations:c,middleware:l}){if(Ui(c,yR))return;let u={tags:[zi(t.annotations,lR,()=>t.identifier)],operationId:zi(e.annotations,cR,()=>t.topLevel?e.identifier:`${t.identifier}.${e.identifier}`),parameters:[],security:[],responses:{}},d=oR(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();Rn(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??={},Rn(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,Wv),a=i.length===1?i[0]:new ey(i);u.responses[n].content??={},Rn(u.responses[n].content,r,{schema:s(a,t)})})}),c!==void 0&&c.forEach((e,t)=>{u.responses[n].content??={},qI(e)?Rn(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:jR}}):Rn(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})}})}wR(e.annotations,dR,e=>{u.description=e}),wR(e.annotations,gR,e=>{u.summary=e}),wR(e.annotations,_R,e=>{u.deprecated=e}),wR(e.annotations,pR,e=>{u.externalDocs=e}),l.forEach(e=>{if(tR(e))for(let[t,n]of Object.entries(e.security))v(t,n),u.security.push({[t]:[]})});function v(e,t){let r=RR(t);if(!Object.hasOwn(n.components.securitySchemes,e))Rn(n.components.securitySchemes,e,r);else if(!cn(zR(n.components.securitySchemes[e]),zR(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 qde(e)){if(ZI(n.ast))continue;let r=nL(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(Wv);Rn(e,n,{schema:s(t.length===1?t[0]:new ey(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(MR(e),()=>`Success`),g(NR(fL(e),cL,PR),()=>`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)||Rn(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];wR(e.annotations,vR,e=>{for(let[t,r]of Object.entries(e))Rn(n,t,r)}),wR(e.annotations,bR,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})}}),wR(e.annotations,BL,e=>{e.forEach(e=>{let t=Ky(e.ast);if(t!==void 0){if(Object.hasOwn(n.components.schemas,t))throw new globalThis.Error(`Duplicate component schema identifier: ${t}`);Rn(n.components.schemas,t,s(e.ast))}})}),DR(r,t,n.components.schemas);for(let e of o)e();return Object.keys(n.components.schemas).forEach(e=>{if(!wb.test(e))throw new globalThis.Error(`Invalid component schema key: ${e}`)}),wR(e.annotations,vR,e=>{for(let[t,r]of Object.entries(e))Rn(n,t,r)}),wR(e.annotations,bR,e=>{n=e(n)}),n}function DR(e,t,n){if(!Ca(e))return;let r=Xb(Ma(e,e=>e.ast),t),i=Ma(r.representations,(t,n)=>{let i=e[n];return i._tag===`schema`?t:OR(t,r.references,i.select)}),a=Sae(Kae({representations:i,references:AR(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`){zn(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))Rn(n,e,t)}function OR(e,t,n){let r=kR(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 kR(e,t,n=/* @__PURE__ */ new Set){if(e._tag===`Suspend`)return kR(e.thunk,t,n);if(e._tag!==`Reference`||n.has(e.$ref))return e;let r=t[e.$ref];return r===void 0?e:kR(r,t,new Set(n).add(e.$ref))}function AR(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;Rn(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 jR=`effect/http-api/stream/failure`;function MR(e){return NR(dL(e),aL,PR)}function NR(e,t,n){let r=/* @__PURE__ */ new Map;return e.forEach(i),r;function i(e){let i=$I(e.ast),c=YI(e)?e.schema:i?.body??e,l=YI(e)?e.headers:i?.headersCodec,u=t(e),d=c.ast;KI(c)?s(c,u):ZI(d)?a(u,n(e.ast)??n(d)??`<No Content>`):o(c,u,oL(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 PR(e){return Yie(e)??Ky(e)}const FR=/*#__PURE__*/ W.annotate({format:`binary`});function IR(e,t){switch(t){case`Uint8Array`:return FR.ast;case`Text`:return ev(e)&&e.encoding===void 0?W.ast:e;case`Multipart`:e=LR(e)}return Ab(e)}function LR(e){return ev(e)&&e.annotations?.representation?.id===`effect/http/PersistedFile`?FR.ast:typeof e?.recur==`function`?e.recur(LR):e}const RR=e=>{let t={};switch(wR(e.annotations,dR,e=>{t.description=e}),e._tag){case`Basic`:return{...t,type:`http`,scheme:`basic`};case`Http`:{let n=Ki(e.annotations,hR).pipe(bi(e=>({bearerFormat:e})),vi);return{...t,type:`http`,scheme:e.scheme,...n}}case`ApiKey`:return{...t,type:`apiKey`,name:e.key,in:e.in}}},zR=e=>e.type===`http`?{...e,scheme:e.scheme.toLowerCase()}:e.in===`header`?{...e,name:e.name.toLowerCase()}:e,BR=(e,t)=>dM(U(function*(n){let r=yield*lp(),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*If(`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=vt(e=>Hk(TR(e)));yield*n.add(`GET`,t.openapiPath,L(()=>r(e)))}})),VR=(e,t,n)=>Gd(z(function*(){let r=(yield*lp()).pipe(Ji(hd)),i=e.groups[t],a=n(JR(i)),o=wf(a)?yield*a:a,s=[];for(let t of o.handlers.values())s.push(QR(e,i,t,r));return Mi(/* @__PURE__ */ new Map([[i.key,{routes:s,handlers:o.handlers}]]))})),HR=`~effect/http-api/HttpApiBuilder/Handlers`,UR=e=>{switch(e._tag){case`Http`:return H(Ij,t=>Lh(GR(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 op(r,{onFailure:()=>Lh(``),onSuccess:e=>Lh(e[t])})}case`Basic`:{let e={username:``,password:Lh(``)};return H(Ij,t=>{let n=GR(t.headers.authorization,WR);if(n===void 0)return e;let r=sa(Zm(n));if(r===void 0)return e;let i=r.indexOf(`:`);return i===-1?e:{username:r.slice(0,i),password:Lh(r.slice(i+1))}})}}},WR=`Basic`;function GR(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 KR=(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},qR={[HR]:HR,pipe(){return lt(this,arguments)},handle(e,t,n){return KR(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;KR(this,t,e,!1,r)}return this},handleRaw(e,t,n){return KR(this,e,t,!0,n)}},JR=e=>{let t=Object.create(qR);return t.group=e,t.handlers=/* @__PURE__ */ new Map,t};function YR(e,t){let n=/* @__PURE__ */ new Map;return e.forEach(({encoding:e,schemas:r},i)=>{let a=q(r),o=cx(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=>tv(Ny(e.ast)))})}),n}function XR(e,t,n){let r=WD(t.method),i=r?lL(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=Qf(t.multipart);return a.limits&&(e=fp(e,Aj(a.limits))),V(e,s)}return I(a.limits?UT(t.multipartStream,Aj(a.limits)):t.multipartStream);case`Json`:return V(Qf(t.text),e=>{if(e===``)return s(a.nullOnEmpty?null:void 0);try{return s(JSON.parse(e))}catch{return B(new ix(new Ug({message:`Expected a valid JSON body`})))}});case`Text`:return V(Qf(t.text),s);case`FormUrlEncoded`:{let e=r?H(Qf(t.urlParamsBody),pg):I(n);return V(e,s)}case`Uint8Array`:return V(H(Qf(t.arrayBuffer),e=>new Uint8Array(e)),s)}}function ZR(e,t,n,r,i,a){let o=qi(qi(e.annotations,t.annotations),n.annotations),s=JL(o),c=dx(vz(n,s.headers),s.success),l=dx(yz(n,s.headers),s.error),u=LE(n.params,e=>cx(e,s.params)),d=LE(n.headers,e=>cx(e,s.headers)),f=LE(n.query,e=>cx(NS(e),s.query)),p=sz(n,s.success),m=oz(n,s.success,s.headers),h=n.payload.size>0&&!a?YR(n.payload,s.payload):void 0;return $R(t,n,r,z(function*(){let e=zS().context,r=Hi(e,Ij),a=Hi(e,uM),o=Hi(e,Lj),s={request:r,endpoint:n,group:t};if(u&&(s.params=yield*QL.wrap(`Params`,u(a.params))),d&&(s.headers=yield*QL.wrap(`Headers`,d(r.headers))),f&&(s.query=yield*QL.wrap(`Query`,f(o))),h){let e=XR(h,r,o);if(Fk(e))return e;e!==void 0&&(s.payload=yield*QL.wrap(`Payload`,e))}let l=yield*i(s);if(Fk(l))return l;let g;m!==void 0&&Bde(l)&&(g=l.headers,l=l.body);let _=yield*QL.wrap(`Body`,p?.(l,e)??(g===void 0?c(l):m.encodeBody(l)));if(m===void 0||g===void 0)return _;let v=yield*QL.wrap(`ResponseHeaders`,m.encodeHeaders.get(_.status)(g));return Jk(_,v)})).pipe(eie,Kf(e=>QL.is(e)?If(e):Qf(l(e))),fp(r))}function QR(e,t,n,r){let i=n.endpoint;return _M(i.method,sR(i.path,i.params),ZR(e,t,i,r,n.handler,n.isRaw),{uninterruptible:n.uninterruptible})}const $R=(e,t,n,r)=>{let i={group:e,endpoint:t};for(let e of t.middlewares){let t=e,a=Hi(n,t);r=(tR(t)?tz(t,a):a)(r,i)}return r},ez=/*#__PURE__*/ new WeakMap,tz=(e,t)=>{let n=ez.get(t);if(n!==void 0)return n;let r=Object.entries(e.security).map(([e,n])=>({decode:UR(n),middleware:t[e]}));if(r.length===0)return N;let i=U(function*(e,t){e=Zf(e,e=>new rz(e));let n;for(let i=0;i<r.length;i++){let{decode:a,middleware:o}=r[i],s=yield*Hf(V(a,n=>o(e,{credential:n,endpoint:t.endpoint,group:t.group})));if(na(s)){if(iz(s.failure))return yield*B(s.failure.error);n=s}else return s.success}return yield*zf(n)});return ez.set(t,i),i},nz=`~effect/http-api/HttpApiBuilder/HandlerError`;var rz=class{[nz]=nz;error;constructor(e){this.error=e}};const iz=e=>P(e,nz),az=/*#__PURE__*/ rx(Fk);function oz(e,t,n){let r=/* @__PURE__ */ new Map,i=[];for(let t of e.success)YI(t)&&(r.set(aL(t),dx(t.headers,n)),KI(t.schema)||i.push(hz(t,n)));return r.size===0?void 0:{encodeBody:dx(i.length===0?Sx:i.length===1?i[0]:q(i),t),encodeHeaders:r}}function sz(e,t){let n=cz(e);if(n===void 0)return;let r=n.body,i=lz(e),a=aL(n.schema),o=r.contentType;if(zde(r))return(e,t)=>kT(e)?I(Gk(UT(e,t),{status:a,contentType:o})):i?void 0:new ix(new Ug({message:`Expected a streaming response`}));let s=uz(r,t);return(e,t)=>kT(e)?I(Gk(UT(dz(e,s),t),{status:a,contentType:o})):i?void 0:new ix(new Ug({message:`Expected a streaming response`}))}function cz(e){for(let t of e.success){let e=YI(t)?t.schema:t;if(KI(e))return{schema:t,body:e}}}function lz(e){for(let t of e.success){let e=YI(t)?t.schema:t;if(gx(e)&&!KI(e))return!0}return e.success.size===0}function uz(e,t){let n=jS(hS(e.error,oS()));return{sseMode:e.sseMode,encodeEvents:dx(K(e.events),t),encodeCause:dx(sS(n),t)}}function dz(e,t){return e.pipe(t.sseMode===`data`?zT(e=>({id:void 0,event:`message`,data:e})):N,ase(e=>Qf(t.encodeEvents(e))),cse(e=>ese(fz(e,t))),zT(mz),mse)}function fz(e,t){return t.encodeCause(e).pipe(Qf,H(e=>({id:void 0,event:pz,data:e})))}const pz=`effect/http-api/stream/failure`;function mz(e){return Lde.write({_tag:`Event`,event:e.event,id:e.id,data:e.data})}const hz=/*#__PURE__*/ bz(aL),gz=/*#__PURE__*/ bz(cL);function _z(e,t){return YI(e)?Sz({schema:e,status:cL(e),encoding:oL(e),body:e.schema,headers:e.headers,headersOptions:t,toPair:e=>e}):gz(e,t)}function vz(e,t){let n=dL(e).map(e=>hz(e,t));return n.length===1?n[0]:q(n)}function yz(e,t){let n=fL(e).map(e=>_z(e,t));return n.length===0?Sx:n.length===1?n[0]:q(n)}function bz(e){let t=/* @__PURE__ */ new WeakMap;return(n,r)=>{let i=$I(n.ast);if(i!==void 0)return Sz({schema:yx(n),status:e(i.body),encoding:rL(i.body.ast),body:i.bodyCodec,headers:i.headersCodec,headersOptions:r,toPair:i.transformation.encode});let a=YI(n)?n:n.ast,o=t.get(a);if(o!==void 0)return o;let s=YI(n)?n.schema:n,c=az.pipe(Rx(s,xz(e,n)));return t.set(a,c),c}}function xz(e,t){let n=YI(t)?t.schema:t;return R_({decode:(e,t)=>B(new Gg({message:`Encode only schema`},e,t)),encode:Cz(e(t),oL(t),ZI(n.ast))})}function Sz(e){let t=dx(e.body),n=dx(e.headers,e.headersOptions),r=Cz(e.status,e.encoding,ZI(e.body.ast)),i=e=>e.issue,a=R_({decode:(e,t)=>B(new Gg({message:`Encode only schema`},e,t)),encode:(a,o)=>{let s=e.toPair(a);return t(s.body,o).pipe(Zf(i),V(e=>r(e,o)),V(e=>H(Zf(n(s.headers),i),t=>Jk(e,t))))}});return az.pipe(Rx(e.schema,a))}function Cz(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 Ug({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 wz=`~effect/http-api/HttpApiGroup`,Tz={[wz]:wz,add(...e){let t={...this.endpoints};for(let n of e)Rn(t,n.identifier,n);return Dz({...Ez(this),endpoints:t})},prefix(e){return Dz({...Ez(this),endpoints:pa(this.endpoints,t=>t.prefix(e))})},middleware(e){return Dz({...Ez(this),endpoints:pa(this.endpoints,t=>t.middleware(e))})},annotateMerge(e){return Dz({...Ez(this),annotations:qi(this.annotations,e)})},annotate(e,t){return Dz({...Ez(this),annotations:Ri(this.annotations,e,t)})},annotateEndpointsMerge(e){return Dz({...Ez(this),endpoints:pa(this.endpoints,t=>t.annotateMerge(e))})},annotateEndpoints(e,t){return Dz({...Ez(this),endpoints:pa(this.endpoints,n=>n.annotate(e,t))})},pipe(){return lt(this,arguments)}},Ez=e=>({identifier:e.identifier,topLevel:e.topLevel,endpoints:e.endpoints,annotations:e.annotations}),Dz=e=>{function t(){}return Object.setPrototypeOf(t,Tz),t.key=`effect/http-api/HttpApiGroup/${e.identifier}`,Object.assign(t,e)},Oz=(e,t)=>Dz({identifier:e,topLevel:t?.topLevel??!1,endpoints:{},annotations:Fi()}),kz=`~effect/http-api/HttpApiSecurity`,Az={[kz]:kz,pipe(){return lt(this,arguments)}},jz=/*#__PURE__*/ (e=>Object.assign(Object.create(Az),{_tag:`Http`,scheme:e.scheme,schemeLength:e.scheme.length,annotations:Fi()}))({scheme:`Bearer`}),Mz=e=>Object.assign(Object.create(Az),{_tag:`ApiKey`,key:e.key,in:e.in??`header`,annotations:Fi()}),Nz=/* @__PURE__ */ new Set([`Body`,`ResponseHeaders`]);var Pz=class extends nR()(`effect-actions/http/SchemaErrors`,{error:[dI]}){};const Fz=()=>iR(Pz,e=>B(Nz.has(e.kind)?e:dI.fromSchemaError(e.cause))),Iz=e=>(e??`/api`).split(`/`).filter(e=>e!==``),Lz=e=>`/${e.join(`/`)}`,Rz=e=>e.join(`/`)||`/`,zz=(e,t)=>{let n=Oz(e,{topLevel:!0}),[r,...i]=t;return LL(`actions`).annotate(VL,{errors:`all`}).add(r===void 0?n:n.add(r,...i))},Bz=(e,t,n)=>ML(e.name,t,{payload:e.input.pipe(Ude()),success:e.success,error:n.flatMap(WI)}),Vz=(e,t=[])=>t.reduce((e,t)=>e.middleware(t),e);function Hz(e,t={}){let n=Ede(`ActionHttp binding`,e,t),r=Iz(t.prefix),i=n.authentication?.[`~middleware`],a=e.map(e=>{let t=i===void 0||e.caller===cI,a=Bz(e,Lz([...r,e.name]),wde(e,n)).annotate(dR,e.description);return t?a:a.middleware(i)}),o=zz(Rz(r),a);return{actions:e,...n,prefix:Lz(r),api:o}}const Uz=e=>jd((t,n)=>oie(Ld(e,t,n),Fi())),Wz=()=>bM(H(lp(),e=>{let t=Ji(hd)(e);return e=>hp(e,e=>qi(t,e))})).layer;var Gz=class extends nR()(`effect-actions/ActionHttp/StepUp`){},Kz=class extends nR()(`effect-actions/ActionHttp/JsonContentType`){};const qz=()=>Bd(Kz,e=>V(Ij,t=>t.headers[`content-type`]===void 0?I(Bk(`Unsupported content-type: none`,{status:415})):e));function Jz(e,t,n={}){let{apps:r,actions:i,authentication:a}=kde(`HTTP binding`,e,t,n),o=Iz(e.prefix),s=Rz(o),c=zz(s,i.map(t=>{let r=Vz(Bz(t,Lz([...o,t.name]),SI(t,e.error)).middleware(Kz).middleware(Pz),n.middleware);return t.caller===cI||a===void 0?r:r.middleware(Gz).middleware(a[`~middleware`])})).annotate(GL,MI),l=Jd(z(function*(){let e=yield*jI(r),t=a===void 0?Hd:yield*H(VI(a),e=>Xd(Bd(a[`~middleware`],e.middleware),Bd(Gz,e.stepUp))),i=yield*Ef(n.middleware??[],e=>H(pp(e),t=>Bd(e,t))),o=Object.fromEntries(e.map(([e,t])=>[e.name,e=>t(e.payload)]));return VR(c,s,e=>e.handleAll(o)).pipe($d([Fz(),qz(),t,...i]),Uz)})).pipe(AI(r));return BR(c).pipe($d(l),$d(Wz()))}const Yz=(e,t)=>Hk(px(jS(e))(t),{status:HI(e.ast)??422}),Xz=(e,t)=>{let n=e.flatMap(WI).find(e=>sx(e)(t));return n===void 0?void 0:Yz(n,t)},Zz=/^[\x20\x21\x23-\x5B\x5D-\x7E]+$/,Qz=(e,t)=>{let n=t.flatMap(([e,t])=>t===void 0?[]:[`${e}="${t.replace(/["\\]/g,`\\$&`)}"`]);return n.length===0?e:`${e} ${n.join(`, `)}`},$z=e=>Qz(`Bearer`,e),eB=sx(yde),tB=(e,t)=>Vt(e,`Forbidden`)&&e.scopes!==void 0?$z([[`error`,`insufficient_scope`],[`scope`,e.scopes.join(` `)],[`resource_metadata`,t],[`error_description`,Zz.test(e.message)?e.message:void 0]]):void 0,nB={Unauthenticated:fI,Forbidden:mI},rB=e=>Yz(nB[e._tag],e),iB=(e,t)=>{let n=rB(e),r=tB(e,t);return r===void 0?n:Kk(n,`www-authenticate`,r)};var aB=class extends F()(`effect-actions/SteppedUp`){};const oB=e=>eB(e)&&(!Vt(e,`Forbidden`)||e.scopes!==void 0),sB=e=>$f(e,e=>oB(e)?V(mp(aB),t=>pi(t)?FE(t.value,di(e)):R):R),cB=(e,t)=>z(function*(){let n=yield*NE(ui()),r=yield*Uf(gp(e,aB,n)),i=yield*PE(n),a=Yu(r)&&(Mu(r.cause)||Nu(r.cause));return pi(i)&&!a?iB(i.value,t):yield*r}),lB=/^[ \t]*Bearer +(.*[^ \t])[ \t]*$/i,uB=e=>bi(gi(lB.exec(e??``)?.[1]),e=>Lh(e)),dB=e=>{let t=new URL(e.resource),n=new URL(t);return n.pathname=`/.well-known/oauth-protected-resource${t.pathname===`/`?``:t.pathname}`,n},fB=e=>({scope:e?.scopesRequired?.join(` `),metadataUrl:e===void 0?void 0:dB(e).href}),pB=e=>pi(uB(e)),mB=(e,t)=>$z([[`error`,t?`invalid_token`:void 0],[`scope`,e.scope],[`resource_metadata`,e.metadataUrl]]),hB=(e,t)=>{if(t!==void 0){if(!e)throw Error(`A protected resource is published only for a Bearer scheme`);if(!wf(t)){for(let e of[`scopesSupported`,`scopesRequired`]){let n=t[e]?.find(e=>!pI.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}`)}}},gB=(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}:{}}),_B=(e,t)=>{let n=t?.authentication,r=n===void 0||xB(n.security);hB(r,t?.protectedResource);let i=fB(t?.protectedResource),a=n!==void 0&&!r?CB(n.security,n.name):mB(i,pB(t?.authorization));if(!eB(e)){let t=Xz(n?.error??[],e);if(t===void 0)throw Error(`Not a refusal, nor an error the authentication declares`);return gB(t,a)}return gB(r?iB(e,i.metadataUrl):rB(e),a)},vB=/\.well-known|[\t\n\r]/,yB=e=>{let t=dB(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=vB.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})},bB=e=>{let t=fB(e);return{metadataUrl:t.metadataUrl,invalid:mB(t,!0),anonymous:mB(t,!1),published:e===void 0?void 0:yB(e)}},xB=e=>Vt(e,`Http`)&&e.scheme.toLowerCase()===`bearer`,SB=/^[\w.-]+$/,CB=(e,t)=>EE(e).pipe(OE(`Http`,({scheme:e})=>Qz(e,[])),OE(`Basic`,()=>Qz(`Basic`,[[`realm`,t]])),OE(`ApiKey`,()=>void 0),ME),wB=(e,t,...n)=>{let r=n[0]?.security??jz,i=xI(n[0]?.error);if(!SB.test(e))throw Error(`Invalid authentication name: ${JSON.stringify(e)}, not an OpenAPI key`);if(wI(`Authentication "${e}"`,i),!Vt(r,`Http`)&&!Vt(r,`ApiKey`)&&!Vt(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":nR()(`effect-actions/Authentication/Security/${e}`,{security:{[e]:r}}),"~verified":F(`effect-actions/Authentication/Verified/${e}`)}},TB=e=>Ih(e)?zh(e)!==``:e.username!==``||zh(e.password)!==``;function EB(e,t,n={}){let{security:r}=e,i=xB(r),a=n.protectedResource;hB(i,a);let o=wf(a)?H(a,e=>(hB(i,e),bB(e))):I(bB(a)),s=new fI({message:i?`A bearer token is required.`:`A credential is required.`});return Ud(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=wf(t)?yield*t:t;if(!At(u))return yield*If(/* @__PURE__ */ Error(`Missing verify: pass a verify function, or an Effect building one`));let d=e=>TB(e)?u(e):B(s),f=nM((e,t)=>I(Kk(t,`cache-control`,`no-store`))),p=t=>i?TB(t)?a:c:CB(r,e.name),m=t=>eB(t)?I(i?iB(t,n):rB(t)):jf(()=>{let n=Xz(e.error,t);return n===void 0?If(t):I(n)}),h=(e,t,n)=>{let r=p(e);return cp(d(e),{onFailure:m,onSuccess:e=>gp(t,n,e)}).pipe(Sp(()=>f),iM((e,t)=>I(gB(t,r))))};return{descriptor:e,authenticate:d,middleware:{[e.name]:(t,{credential:n})=>h(n,t,e.identity)},stepUp:e=>i?Xf(e,oB,e=>I(iB(e,n))):e,http:((t,a)=>V(UR(r),r=>a&&!TB(r)?t:h(r,i?cB(t,n):t,e[`~verified`]))),route:(t=>V(UR(r),n=>h(n,Xf(t,eB,m),e.identity)))}}))}var DB=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}},OB=class extends AS()(`ServiceUnavailable`,{message:W},{httpApiStatus:503}){},kB=class e extends AS()(`ClientNotFound`,{clientId:W,message:W},{httpApiStatus:404}){static of=t=>new e({clientId:t,message:`No client ${t} is registered`})},AB=class e extends AS()(`ResourceNotFound`,{identifier:W,message:W},{httpApiStatus:404}){static of=t=>new e({identifier:t,message:`No resource ${t} exists`})},jB=class e extends AS()(`ApiKeyNotFound`,{keyId:W,message:W},{httpApiStatus:404}){static of=t=>new e({keyId:t,message:`No API key ${t} exists`})},MB=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`})},NB=class e extends AS()(`OwnerExists`,{message:W},{httpApiStatus:409}){static of=()=>new e({message:`Setup already completed`})},PB=class extends AS()(`ProviderRefused`,{message:W},{httpApiStatus:400}){},FB=class extends AS()(`UnreadableRequest`,{message:W},{httpApiStatus:400}){};const IB=[OB,DB];var LB=class extends F()(`clankerauth/CurrentOwner`){};const RB=e=>wB(`clankerauth.OwnerSession`,LB,{security:Mz({in:`cookie`,key:e}),error:IB}),zB=RB(`better-auth.session_token`),BB=wB(`clankerauth.OwnerToken`,LB,{error:IB}),VB=e=>new URL(`/`,e).href,HB={read:`clankerauth:read`,write:`clankerauth:write`},UB=`Passwords have 8 to 128 characters`,WB=G({email:W.check(Kx(/\S/u,{message:`Setup requires an email`})),password:W.check(Zx(8,{message:UB}),$x(128,{message:UB}))}),GB=Fx([`none`,`client_secret_basic`,`client_secret_post`]),KB=Fx([`web`,`native`]),qB=K(W).check(nS({message:`Choose unique Resources`})),JB=G({client_name:W,redirect_uris:K(W),resources:qB,token_endpoint_auth_method:GB,application_type:KB}),YB=G({client_id:W,client_name:W,redirect_uris:K(W),application_type:KB}),XB=G({client_id:W}),ZB=G({client_id:W,resource:vx(W)}),QB=G({client_id:W,blocked:Ex}),$B=G({onboarding:vx(Fx([`managed`,`dcr`,`cimd`])),blocked:vx(Ex),client_id:W,client_name:vx(W),redirect_uris:K(W),token_endpoint_auth_method:vx(W),application_type:vx(Ix(W)),scope:vx(W),grant_types:vx(K(W))}),eV=$B.pipe(kx({client_secret:vx(W),client_secret_expires_at:vx(Tx)})),tV=G({identifier:W,name:W,scopes:K(W)}),nV=tV.pipe(kx({builtIn:Ex})),rV=G({identifier:W,name:W.check(Kx(/\S/u,{message:`Resources require a name`})),scopes:K(W.check(Kx(/^\s*[\x21\x23-\x5B\x5D-\x7E]+\s*$/u,{message:`Resources require well-formed custom scopes`})))}),iV=G({identifier:W}),aV=G({client_id:W,resource:W}),oV=G({client_id:W,resources:qB}),sV=G({clientAccess:K(aV)}),cV=Ax(W,K(W)),lV=Ax(W,K(W).check(Zx(1,{message:`Select explicitly granted, currently available Resource scopes`}),nS({message:`Select explicitly granted, currently available Resource scopes`}))).check(tS(1,{message:`Select at least one Resource and scope`})),uV=W.check($x(100,{message:`Key names require 1–100 characters`}),Kx(/\S/u,{message:`Key names require 1–100 characters`})),dV=bS,fV=G({client_id:W,resource:W,scopes:K(W),approvedAt:Ix(dV),refreshedAt:Ix(dV)}),pV=G({name:uV,permissions:lV,expiresAt:Ix(dV)}),mV=G({keyId:W}),hV=G({keyId:W,name:vx(uV),permissions:vx(lV),enabled:vx(Ex)}),gV=G({keyId:W,name:W,enabled:Ex,permissions:cV,expiresAt:Ix(dV),createdAt:dV}),_V={caller:cI},vV={caller:LB},yV=[RI(`setupStatus`,{description:`Check whether the issuer needs its first owner account.`,readOnly:!0,..._V,error:[DB],success:G({required:Ex})}),RI(`setupOwner`,{description:`Create the first owner account.`,readOnly:!1,..._V,error:[NB,PB,DB],input:WB,success:G({created:Ex}).pipe(GI(201))}),RI(`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,..._V,error:[DB],input:G({resource:W}),success:G({list:W})})],bV=G({clients:K($B),resources:K(nV),clientAccess:K(aV),connections:K(fV),email:W,issuer:W}),xV=[RI(`listClients`,{description:`List clients, resources, managed clients' resource access (what they may obtain), and every client's connections (what it holds).`,readOnly:!0,...vV,error:[DB],success:bV}),RI(`createClient`,{description:`Register a first-party OAuth client. Returns its secret once when confidential.`,readOnly:!1,...vV,error:[PB,DB],input:JB,success:eV.pipe(GI(201))}),RI(`updateClient`,{description:`Rename a first-party client or change its redirect URIs and application type.`,readOnly:!1,...vV,error:[kB,MB,PB,DB],input:YB,success:$B}),RI(`deleteClient`,{description:`Delete a client and its stored authorization. An automatic client can register again; block it to keep it out.`,readOnly:!1,...vV,error:[kB,DB],input:XB,success:G({deleted:Ex})}),RI(`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,...vV,error:[kB,DB],input:ZB,success:G({revoked:Ex})}),RI(`blockClient`,{description:`Block or unblock OAuth authorization for a client.`,readOnly:!1,...vV,error:[kB,DB],input:QB,success:G({blocked:Ex})}),RI(`rotateClientSecret`,{description:`Rotate a confidential client secret. Returns the new secret once.`,readOnly:!1,...vV,error:[kB,MB,PB,DB],input:XB,success:eV}),RI(`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,...vV,error:[kB,MB,DB],input:oV,success:sV}),RI(`createResource`,{description:`Create an OAuth resource and its scopes.`,readOnly:!1,...vV,error:[PB,DB],input:rV,success:tV.pipe(GI(201))}),RI(`updateResource`,{description:`Update an OAuth resource and its scopes.`,readOnly:!1,...vV,error:[AB,PB,DB],input:rV,success:tV}),RI(`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,...vV,error:[AB,DB],input:iV,success:G({deleted:Ex})}),RI(`listApiKeys`,{description:`List API key metadata without secret values.`,readOnly:!0,...vV,error:[DB],success:G({keys:K(gV)})}),RI(`createApiKey`,{description:`Create a scoped API key. Returns its secret once.`,readOnly:!1,...vV,error:[PB,DB],input:pV,success:gV.pipe(kx({key:W}),GI(201))}),RI(`updateApiKey`,{description:`Update an API key’s name, permissions or enabled state.`,readOnly:!1,...vV,error:[jB,PB,DB],input:hV,success:gV}),RI(`deleteApiKey`,{description:`Delete an API key.`,readOnly:!1,...vV,error:[jB,DB],input:mV,success:G({deleted:Ex})})],SV=[.../* @__PURE__ */ new Set([...[...yV,...xV].flatMap(e=>e.error),...IB,FB])],CV=e=>Hz([...xV,...yV],{authentication:e});CV(zB);const wV=Hz(xV,{prefix:`/api/owner`,authentication:BB});var TV=/* @__PURE__ */ e({NodeSqliteDialect:()=>jV}),EV=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},DV=class{#e;#t=new kV;#n;#r;constructor(e){this.#e={...e}}async init(){this.#n=this.#e.database,this.#r=new OV(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()}},OV=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.`)}},kV=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?.()}},AV=class extends r{getCurrentParameterPlaceholder(){return`?`}getLeftIdentifierWrapper(){return`"`}getRightIdentifierWrapper(){return`"`}getAutoIncrement(){return`autoincrement`}},jV=class{#e;constructor(e){this.#e={...e}}createDriver(){return new DV(this.#e)}createQueryCompiler(){return new AV}createAdapter(){return new EV}createIntrospector(e){return n(e)}};const MV=e=>{let t=cx(e);return e=>Zf(t(e),DB.of)};function NV(e){return(n,...r)=>kf({try:async()=>(await t(n,...r).execute(e)).rows,catch:DB.of})}const PV=Wp(`Database.transaction`)(function*(e,t){let n=yield*kf({try:()=>e.startTransaction().execute(),catch:DB.of}),r=yield*Uf(t(NV(n))),i=tp(kf({try:()=>n.rollback().execute(),catch:DB.of})),a=kf({try:()=>n.commit().execute(),catch:DB.of}).pipe($f(()=>i));return yield*Ju(r)?a:i,yield*r},Ap);async function FV(e){let n=new ot(e);try{n.exec(`PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000;`);let e=new i({dialect:new jV({database:n})});return await t`SELECT 1`.execute(e),{kysely:e,sql:NV(e),close:()=>e.destroy()}}catch(e){throw n.close(),e}}var IV=class e extends F()(`clankerauth/Database`){static layer=t=>Ud(e,z(function*(){yield*Lf(()=>hee(fee(t),{recursive:!0,mode:448}));let e=yield*yp(kf(()=>FV(t)),e=>Of(()=>e.close()));return{kysely:e.kysely,sql:e.sql,transaction:t=>PV(e.kysely,t)}}))};const LV=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 RV(){let e=await LV;if(e===null)throw Error(`getAsyncLocalStorage is only available in server code`);return e}const zV=()=>g().context.endpointContextAsyncStorage,BV=async()=>{let e=zV();if(e)return e;let t=await RV(),n=g().context;return n.endpointContextAsyncStorage??=new t};function VV(){return m()}function HV(){let e=VV();if(!e)throw Error("No auth context found. Please make sure you are calling this function within a `runWithEndpointContext` callback.");return e}async function UV(e,t){return(await BV()).run(e,t)}const WV=async()=>{let e=g(),t=e.context.requestStateAsyncStorage;if(t)return t;let n=await RV();return e.context.requestStateAsyncStorage??=new n,e.context.requestStateAsyncStorage};async function GV(){return(await WV()).getStore()!==void 0}async function KV(){let e=(await WV()).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 qV(e,t){return(await WV()).run(e,t)}function JV(e){let t=Object.freeze({});return{get ref(){return t},async get(){let n=await KV();if(!n.has(t)){let r=await e();return n.set(t,r),r}return n.get(t)},async set(e){(await KV()).set(t,e)}}}function YV(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{code:e,message:t,toString:()=>e}]))}const Y=YV({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`}),XV=async()=>{let e=g(),t=e.context.adapterAsyncStorage;if(t)return t;let n=await RV();return e.context.adapterAsyncStorage??=new n,e.context.adapterAsyncStorage},ZV=async e=>XV().then(t=>t.getStore()?.adapter||e).catch(()=>e),QV=async(e,t)=>{let n=!1;return XV().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})},$V=async(e,t,n)=>{let r=!1;return XV().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})},eH=async(e,t)=>{let n=async()=>{try{await e()}catch(e){if(!t?.onError)throw e;await t.onError(e)}},r;try{r=await XV()}catch{return n()}let i=r.getStore();if(!i?.isTransactionActive)return n();i.pendingHooks.push(n)};function tH(e){return e===`-`||e===`^`||e===`$`||e===`+`||e===`.`||e===`(`||e===`)`||e===`|`||e===`[`||e===`]`||e===`{`||e===`}`||e===`*`||e===`?`||e===`\\`?`\\${e}`:e}function nH(e){let t=``;for(let n=0;n<e.length;n++)t+=tH(e[n]);return t}function rH(e,t=!0){if(Array.isArray(e))return`(?:${e.map(e=>`^${rH(e,t)}$`).join(`|`)})`;let n=``,r=``,i=`.`;t===!0?(n=`/`,r=`[/\\\\]`,i=`[^/\\\\]`):t&&(n=t,r=nH(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+=tH(n[e+1]),e++):c+=t===`?`?i:t===`*`?`${i}*?`:tH(t)}c+=l}}}return c}function iH(e,t){if(typeof t!=`string`)throw TypeError(`Sample must be a string, but ${typeof t} given`);return e.test(t)}function aH(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=rH(e,t.separator),r=RegExp(`^${n}$`,t.flags),i=iH.bind(null,r);return i.options=t,i.pattern=e,i.regexp=r,i}function oH(e){let t=e.replace(/:\d+$/,``).replace(/^\[|\]$/g,``).toLowerCase();return t===`localhost`||t.endsWith(`.localhost`)||t===`::1`||t.startsWith(`127.`)}function sH(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return t===e.length?e:e.slice(0,t)}function cH(e){try{return(sH(new URL(e).pathname)||`/`)!==`/`}catch{throw new O(`Invalid base URL: ${e}. Please provide a valid base URL.`)}}function lH(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 uH(e,t=`/api/auth`){if(lH(e),cH(e))return e;let n=sH(e);return!t||t===`/`?n:(t=t.startsWith(`/`)?t:`/${t}`,`${n}${t}`)}function dH(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 fH(e,t,n,r,i){if(e)return uH(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 uH(e,t)}let a=n?.headers.get(`x-forwarded-host`),o=n?.headers.get(`x-forwarded-proto`);if(a&&o&&i&&dH(o,`proto`)&&dH(a,`host`))try{return uH(`${o}://${a}`,t)}catch{}if(n){let e=pH(n.url);if(!e)throw new O(`Could not get origin from request. Please provide a valid base URL.`);return uH(e,t)}if(typeof window<`u`&&window.location)return uH(window.location.origin,t)}function pH(e){try{let t=new URL(e);return t.origin===`null`?null:t.origin}catch{return null}}function mH(e){try{return new URL(e).protocol}catch{return null}}function hH(e){try{return new URL(e).host}catch{return null}}function gH(e){return typeof e==`object`&&!!e&&`allowedHosts`in e&&Array.isArray(e.allowedHosts)}function _H(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 vH(e,t){let n=_H(e)?e.headers:e;if(t){let e=n.get(`x-forwarded-host`);if(e&&dH(e,`host`))return e}let r=n.get(`host`);if(r&&dH(r,`host`))return r;if(_H(e))try{return new URL(e.url).host}catch{return null}return null}function yH(e,t,n){if(t===`http`||t===`https`)return t;let r=_H(e)?e.headers:e;if(n){let e=r.get(`x-forwarded-proto`);if(e&&dH(e,`proto`))return e}if(_H(e))try{let t=new URL(e.url);if(t.protocol===`http:`||t.protocol===`https:`)return t.protocol.slice(0,-1)}catch{}let i=vH(e,n);return i&&oH(i)?`http`:`https`}const bH=(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(`?`)?aH(r)(n):n.toLowerCase()===r.toLowerCase()};function xH(e,t,n,r){let i=vH(t,r);if(!i){if(e.fallback)return uH(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=>bH(i,e)))return uH(`${yH(t,e.protocol,r)}://${i}`,n);if(e.fallback)return uH(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 SH(e,t,n,r,i){if(gH(e))return n?xH(e,n,t,i):e.fallback?uH(e.fallback,t):fH(void 0,t,void 0,r,i);let a=_H(n)?n:void 0;return fH(typeof e==`string`?e:void 0,t,a,r,i)}const CH=re(`a-z`,`0-9`,`A-Z`,`-_`);function wH(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const TH=e=>e?`"${e}" `:``;function EH(e,t=``){if(typeof e!=`number`)throw TypeError(TH(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(TH(t)+`expected integer >= 0, got `+e);return e}function DH(e,t,n=``){if(wH(e)&&(t===void 0||e.length===t))return e;t!==void 0&&EH(t,`length`);let r=wH(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=TH(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}function OH(e){if(typeof e!=`function`||typeof e.create!=`function`)throw TypeError(`expected hash wrapped by utils.createHasher`);if(EH(e.outputLen),EH(e.blockLen),e.outputLen<1||e.blockLen<1)throw Error(`hash blockLen / outputLen must be >= 1`)}const kH=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},AH=(e,t)=>{kH(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 jH(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function MH(e,t){DH(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function NH(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function PH(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function FH(e,t){return e<<32-t|e>>>t}const IH=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,LH=/* @__PURE__ */ Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function RH(e){if(DH(e),IH)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=LH[e[n]];return t}function zH(e){if(typeof e!=`string`)throw TypeError(`string expected`);let t=new TextEncoder().encode(e);try{return new Uint8Array(t)}finally{NH(t)}}function BH(e,t,n=`opts`){return AH(e,`defaults`),t!==void 0&&AH(t,n),Object.assign(Object.create(null),e,t)}function VH(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=BH({},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 HH=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});var UH=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(e,t){if(OH(e),DH(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),NH(r)}update(e){return jH(this),this.iHash.update(e),this}digestInto(e){jH(this),MH(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 WH=/* @__PURE__ */ (()=>{let e=((e,t,n)=>new UH(e,t).update(n).digest());return e.create=(e,t)=>new UH(e,t),e})(),GH=/* @__PURE__ */ Uint8Array.of(0),KH=/* @__PURE__ */ Uint8Array.of();function qH(e,t,n,r=32,i){OH(e),EH(r,`length`),DH(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=KH:DH(n,void 0,`info`),!o)return i&&NH(t),/* @__PURE__ */ new Uint8Array;let s=i&&o===1?t:new Uint8Array(o*a),{iHash:c,oHash:l}=WH.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++){GH[0]=e+1;let t=c._cloneInto(d);e&&t.update(u),t.update(n).update(GH).digestInto(u),l._cloneInto(d).update(u).digestInto(u),s.set(u,a*e)}if(GH[0]=o,o>1&&c.update(u),c.update(n).update(GH).digestInto(u),l.update(u).digestInto(u),s.set(u,a*(o-1)),c.destroy(),l.destroy(),d?.destroy(),u!==s&&NH(u),NH(GH),r===s.length)return s;let f=s.slice(0,r);return NH(s),f}const JH=(e,t,n,r,i)=>{OH(e),n===void 0&&(n=new Uint8Array(e.outputLen));let a=WH.create(e,n).update(t);return qH(e,a.digest(),r,i,a)},YH=e=>e/2**32|0,XH=e=>e>>>0;function ZH(e,t,n,r){let i=YH(n),a=XH(n);e.setUint32(t,r?a:i,r),e.setUint32(t+4,r?i:a,r)}function QH(e,t,n){return e&t^~e&n}function $H(e,t,n){return e&t^e&n^t&n}var eU=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=PH(this.buffer)}update(e){jH(this),DH(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=PH(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){jH(this),MH(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)),ZH(n,r-8,this.length*8,i),this.process(n,0),this.roundClean();let o=e===t?n:PH(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 tU=/* @__PURE__ */ Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),nU=/* @__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]),rU=/* @__PURE__ */ new Uint32Array(64);var iU=class extends eU{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)rU[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=rU[e-15],n=rU[e-2],r=FH(t,7)^FH(t,18)^t>>>3,i=FH(n,17)^FH(n,19)^n>>>10;rU[e]=i+rU[e-7]+r+rU[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=FH(o,6)^FH(o,11)^FH(o,25),u=l+t+QH(o,s,c)+nU[e]+rU[e]|0,d=(FH(n,2)^FH(n,13)^FH(n,22))+$H(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(){NH(rU)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),NH(this.buffer)}},aU=class extends iU{constructor(){super(32,tU)}};const oU=/* @__PURE__ */ VH(()=>new aU,/* @__PURE__ */ HH(1));async function sU(e,t,n=3600){return await new WF(e).setProtectedHeader({alg:`HS256`}).setIssuedAt().setExpirationTime(Math.floor(Date.now()/1e3)+n).sign(new TextEncoder().encode(t))}async function cU(e,t){try{return(await HF(e,new TextEncoder().encode(t))).payload}catch{return null}}const lU=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]),uU=()=>Date.now()/1e3|0,dU=`A256CBC-HS512`;function fU(e,t){return JH(oU,new TextEncoder().encode(e),new TextEncoder().encode(t),lU,64)}function pU(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 mU(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 hU(e,t,n,r=3600){let i=fU(pU(t),n),a=await YF({kty:`oct`,k:rP(i)},`sha256`);return await new rde(e).setProtectedHeader({alg:`dir`,enc:dU,kid:a}).setIssuedAt().setExpirationTime(uU()+r).setJti(crypto.randomUUID()).encrypt(i)}const gU={clockTolerance:15,keyManagementAlgorithms:[`dir`],contentEncryptionAlgorithms:[dU,`A256GCM`]};async function _U(e,t,n){if(!e)return null;let r=!1;try{r=nI(e).kid!==void 0}catch{return null}try{let r=mU(t),{payload:i}=await UF(e,async e=>{let t=e.kid;if(t!==void 0){for(let e of r){let r=fU(e.value,n);if(t===await YF({kty:`oct`,k:rP(r)},`sha256`))return r}throw Error(`no matching decryption secret`)}return r.length,fU(r[0].value,n)},gU);return i}catch{if(r)return null;let i=mU(t);if(i.length<=1)return null;for(let t=1;t<i.length;t++)try{let r=i[t],{payload:a}=await UF(e,fU(r.value,n),gU);return a}catch{continue}return null}}function vU(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 yU={N:16384,r:16,p:1,dkLen:64};function bU(e,t){return new Promise((n,r)=>{dee(e.normalize(`NFKC`),t,yU.dkLen,{N:yU.N,r:yU.r,p:yU.p,maxmem:128*yU.N*yU.r*2},(e,t)=>{e?r(e):n(t)})})}async function xU(e){let t=Ve(16).toString(`hex`);return`${t}:${(await bU(e,t)).toString(`hex`)}`}async function SU(e,t){let[n,r]=e.split(`:`);if(!n||!r)throw Error(`Invalid password hash`);return(await bU(t,n)).toString(`hex`)===r}const CU=xU,wU=async({hash:e,password:t})=>SU(e,t);function TU(){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 EU(e){return e?`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`}function DU(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 OU(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 kU={encode(e,t={}){let n=EU(!1);return DU(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=EU(e.includes(`-`)||e.includes(`_`));return OU(e,t)}},AU={encode(e,t={}){let n=EU(!0);return DU(typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e),n,t.padding??!0)},decode(e){return OU(e,EU(e.includes(`-`)||e.includes(`_`)))}};function jU(e,t){return{digest:async n=>{let r=new TextEncoder,i=typeof n==`string`?r.encode(n):n,a=await TU().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`)?AU.encode(a,{padding:t!==`base64urlnopad`}):kU.encode(a):a}}}
29
- /*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */
30
- function MU(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const NU=e=>e?`"${e}" `:``;function PU(e,t=``){if(typeof e!=`boolean`)throw TypeError(NU(t)+`expected boolean, got type=`+typeof e);return e}function FU(e,t=``){if(typeof e!=`number`)throw TypeError(NU(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(NU(t)+`expected integer >= 0, got `+e);return e}function IU(e,t,n=``){if(MU(e)&&(t===void 0||e.length===t))return e;t!==void 0&&FU(t,`length`);let r=MU(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=NU(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}const LU=(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 RU(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function zU(e,t){IU(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function BU(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function VU(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function HU(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}const UU=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function WU(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function GU(e){for(let t=0;t<e.length;t++)e[t]=WU(e[t]);return e}const KU=UU?e=>e:GU,qU=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,JU=/* @__PURE__ */ Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function YU(e){if(IU(e),qU)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=JU[e[n]];return t}function XU(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function ZU(e){if(typeof e!=`string`)throw TypeError(`hex string expected, got `+typeof e);if(qU)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=XU(e.charCodeAt(i)),a=XU(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 QU(e){if(typeof e!=`string`)throw TypeError(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function $U(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 eW(e,t){if($U(e,t)&&e.byteOffset<t.byteOffset)throw Error(`complex overlap of input and output is not supported`)}function tW(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];IU(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 nW(e,t){return LU(e,`defaults`),LU(t,`opts`),Object.assign(e,t)}function rW(e,t){if(e=IU(e),t=IU(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 iW(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 aW=(e,t)=>{function n(n,...r){if(IU(n,void 0,`key`),e.nonceLength!==void 0){let t=r[0];IU(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(MU(r[e]))throw Error(`AAD not supported`)}e.withAAD&&r[a]!==void 0&&IU(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`);IU(t,void 0,`output`)}},c=!1;return{encrypt(e,t){if(c)throw Error(`cannot encrypt() twice with same key + nonce`);return c=!0,IU(e,void 0,`data`),s(o.encrypt.length,t),o.encrypt(e,t)},decrypt(e,t){if(IU(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 oW(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(IU(t,e,`output`),n&&!cW(t))throw Error(`invalid output, must be aligned`);return t}function sW(e,t,n){FU(e),FU(t),PU(n);let r=/* @__PURE__ */ new Uint8Array(16),i=HU(r);return i.setBigUint64(0,BigInt(t),n),i.setBigUint64(8,BigInt(e),n),r}function cW(e){return e.byteOffset%4==0}function lW(e){return Uint8Array.from(IU(e))}function uW(e=32){FU(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 dW(e,t=uW){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;FU(n,`fn.nonceLength`);let r=(e,t,n)=>{let r=tW(e,t);return $U(n,t)||t.fill(0),r},i=((i,...a)=>({encrypt(o){IU(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){IU(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 fW=e=>Uint8Array.from(e.split(``),e=>e.charCodeAt(0)),pW=/* @__PURE__ */ KU(BU(fW(`expand 16-byte k`))),mW=/* @__PURE__ */ KU(BU(fW(`expand 32-byte k`)));function hW(e,t){return e<<t|e>>>32-t}const gW=2**32-1,_W=/* @__PURE__ */ Uint32Array.of();function vW(e,t,n,r,i,a,o,s){let c=i.length,l=/* @__PURE__ */ new Uint8Array(64),u=BU(l),d=UU&&cW(i)&&cW(a),f=d?BU(i):_W,p=d?BU(a):_W;if(UU)for(let m=0;m<c;o++){if(e(t,n,r,u,o,s),o>=gW)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),KU(u),o>=gW)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 yW(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=nW({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return FU(i),FU(o),PU(a),PU(n),(t,s,c,l,u=0)=>{IU(t,void 0,`key`),IU(s,void 0,`nonce`),IU(c,void 0,`data`);let d=c.length,f=l!==void 0;if(l=oW(d,l,!1),f&&eW(c,l),FU(u),u<0||u>=gW)throw Error(`arx: counter overflow`);let p=[],m=t.length,h,g;if(m===32)p.push(h=lW(t)),g=mW;else if(m===16&&n)h=/* @__PURE__ */ new Uint8Array(32),h.set(t),h.set(t,16),g=pW,p.push(h);else throw IU(t,32,`arx key`),Error(`invalid key size`);(!UU||!cW(s))&&p.push(s=lW(s));let _=BU(h);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);let e=s.subarray(0,16);if(UU)r(g,_,BU(e),_);else{let t=KU(Uint32Array.from(g));r(t,_,BU(e),_),VU(t),KU(_)}s=s.subarray(16)}else UU||KU(_);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=KU(BU(s));try{return vW(e,g,_,y,c,l,u,o),l}finally{VU(...p)}}}function bW(e,t){return e[t++]&255|(e[t++]&255)<<8}var xW=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=lW(IU(e,32,`key`));let t=bW(e,0),n=bW(e,2),r=bW(e,4),i=bW(e,6),a=bW(e,8),o=bW(e,10),s=bW(e,12),c=bW(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]=bW(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=bW(e,t+0),_=bW(e,t+2),v=bW(e,t+4),y=bW(e,t+6),b=bW(e,t+8),x=bW(e,t+10),S=bW(e,t+12),ee=bW(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;VU(n)}update(e){RU(this),IU(e),e=lW(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,VU(this.h,this.r,this.buffer,this.pad)}digestInto(e){RU(this),zU(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 SW=/* @__PURE__ */ iW(32,e=>new xW(e));function CW(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=hW(se^S,16),ie=ie+se|0,ne=hW(ne^ie,12),S=S+ne|0,se=hW(se^S,8),ie=ie+se|0,ne=hW(ne^ie,7),ee=ee+w|0,ce=hW(ce^ee,16),E=E+ce|0,w=hW(w^E,12),ee=ee+w|0,ce=hW(ce^ee,8),E=E+ce|0,w=hW(w^E,7),te=te+T|0,le=hW(le^te,16),ae=ae+le|0,T=hW(T^ae,12),te=te+T|0,le=hW(le^te,8),ae=ae+le|0,T=hW(T^ae,7),C=C+re|0,ue=hW(ue^C,16),oe=oe+ue|0,re=hW(re^oe,12),C=C+re|0,ue=hW(ue^C,8),oe=oe+ue|0,re=hW(re^oe,7),S=S+w|0,ue=hW(ue^S,16),ae=ae+ue|0,w=hW(w^ae,12),S=S+w|0,ue=hW(ue^S,8),ae=ae+ue|0,w=hW(w^ae,7),ee=ee+T|0,se=hW(se^ee,16),oe=oe+se|0,T=hW(T^oe,12),ee=ee+T|0,se=hW(se^ee,8),oe=oe+se|0,T=hW(T^oe,7),te=te+re|0,ce=hW(ce^te,16),ie=ie+ce|0,re=hW(re^ie,12),te=te+re|0,ce=hW(ce^te,8),ie=ie+ce|0,re=hW(re^ie,7),C=C+ne|0,le=hW(le^C,16),E=E+le|0,ne=hW(ne^E,12),C=C+ne|0,le=hW(le^C,8),E=E+le|0,ne=hW(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 wW(e,t,n,r){let i=UU?e:KU(e.slice(0,4)),a=UU?t:KU(t.slice(0,8)),o=UU?n:KU(n.slice(0,4)),s=/* @__PURE__ */ new Uint32Array(16);CW(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,KU(r),UU||VU(i,a,o),VU(s)}const TW=/* @__PURE__ */ yW(CW,{counterRight:!1,counterLength:8,extendNonceFn:wW,allowShortKeys:!1}),EW=/* @__PURE__ */ new Uint8Array(16),DW=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(EW.subarray(n))},OW=/* @__PURE__ */ new Uint8Array(32);function kW(e,t,n,r,i){i!==void 0&&IU(i,void 0,`AAD`);let a=e(t,n,OW),o=sW(r.length,i?i.length:0,!0),s=SW.create(a);i&&DW(s,i),DW(s,r),s.update(o);let c=s.digest();return VU(a,o),c}const AW=/* @__PURE__ */ aW({blockSize:64,nonceLength:24,tagLength:16,withAAD:!0},/* @__PURE__ */ (e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=oW(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=kW(e,t,n,s,r);return a.set(c,o),VU(c),a},decrypt(i,a){a=oW(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=kW(e,t,n,o,r);if(!rW(s,c))throw VU(c),Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),VU(c),a}}))(TW)),jW={name:`HMAC`,hash:`SHA-256`},MW=`$ba$`;function NW(e){if(!e.startsWith(MW))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 PW(e,t){return`${MW}${e}$${t}`}async function FW(e,t){let n=await jU(`SHA-256`).digest(e),r=QU(t);return YU(dW(AW)(new Uint8Array(n)).encrypt(r))}async function IW(e,t){let n=await jU(`SHA-256`).digest(e),r=ZU(t),i=dW(AW)(new Uint8Array(n));return new TextDecoder().decode(i.decrypt(r))}const LW=async({key:e,data:t})=>{if(typeof e==`string`)return FW(e,t);let n=e.keys.get(e.currentVersion);if(!n)throw Error(`Secret version ${e.currentVersion} not found in keys`);let r=await FW(n,t);return PW(e.currentVersion,r)},RW=async({key:e,data:t})=>{if(typeof e==`string`)return IW(e,t);let n=NW(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 IW(t,n.ciphertext)}if(e.legacySecret)return IW(e.legacySecret,t);throw Error(`Cannot decrypt legacy bare-hex payload: no legacy secret available. Set BETTER_AUTH_SECRET for backwards compatibility.`)},zW=async e=>{let t=typeof e==`string`?new TextEncoder().encode(e):e;return await TU().importKey(`raw`,t,jW,!1,[`sign`,`verify`])},BW=async(e,t)=>{let n=await zW(t),r=await TU().sign(jW.name,n,new TextEncoder().encode(e));return btoa(String.fromCharCode(...new Uint8Array(r)))};function VW(e){return!!e.database||!!e.secondaryStorage}function HW(e){return!!e.database}function UW(e){return HW(e)}function WW(e){return eee(_e,e)}function GW(e){return de(iee,e)}function KW(e){return fe(Ae,e)}const qW=j({id:A(),createdAt:je().default(()=>/* @__PURE__ */ new Date),updatedAt:je().default(()=>/* @__PURE__ */ new Date)}),JW=qW.extend({userId:WW(),expiresAt:je(),token:A(),ipAddress:A().nullish(),userAgent:A().nullish()}),YW=qW.extend({email:A().transform(e=>e.toLowerCase()),emailVerified:Te().default(!1),name:A(),image:A().nullish()});function XW(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 ZW=/* @__PURE__ */ new WeakMap;function QW(e,t,n){let r=`${t}:${n}`;ZW.has(e)||ZW.set(e,/* @__PURE__ */ new Map);let i=ZW.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 $W(e,t){return XW(t,QW(e,`user`,`output`))}function eG(e,t){let n=QW(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 tG(e,t){return XW(t,QW(e,`session`,`output`))}function nG(e,t){let{accessToken:n,refreshToken:r,idToken:i,accessTokenExpiresAt:a,refreshTokenExpiresAt:o,password:s,...c}=XW(t,QW(e,`account`,`output`));return c}function rG(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 iG(e,t={},n){return rG(t,{fields:QW(e,`user`,`input`),action:n})}function aG(e,t={},n){let r=QW(e,`user`,`input`),i=Object.create(null);for(let e of Object.keys(t))r[e]?.input!==!1&&(i[e]=t[e]);return rG(i,{fields:r,action:n})}function oG(e,t,n){return rG(t,{fields:QW(e,`session`,`input`),action:n})}function sG(e){let t=QW(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 cG(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 lG=(e,t=`ms`)=>new Date(Date.now()+(t===`sec`?e*1e3:e));function uG(e){return!!e&&(typeof e==`object`||typeof e==`function`)&&typeof e.then==`function`}const dG=/^(\+|\-)? ?(\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 fG(e){let t=dG.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 pG(e){return Math.round(fG(e)/1e3)}const mG=xe({session:JW.loose(),user:YW.loose(),updatedAt:ge(),version:A().optional()}),hG=j({session:ve(A(),Me()),expiresAt:ge(),signature:A()});function gG(e){let t=w(e);if(t===null)return null;let n=mG.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 _G(e){let t=hG.safeParse(e);return t.success?t.data:null}function vG(e){if(e.indexOf(`%`)===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function yG(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 bG(e){let t=/* @__PURE__ */ new Map;return yG(e).forEach(e=>{let[n,...r]=e.split(`;`).map(e=>e.trim()),[i,...a]=(n||``).split(`=`),o=CG(a.join(`=`));if(!i)return;let s={value:vG(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 xG=/^[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E\x5F\x60\x61-\x7A\x7C\x7E]+$/,SG=/^[\x20\x21\x23-\x3A\x3C-\x5B\x5D-\x7E]*$/;function CG(e){return e.length<2||!e.startsWith(`"`)||!e.endsWith(`"`)?e:e.slice(1,-1)}function wG(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 TG(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=wG(n.slice(0,e)),i=CG(wG(n.slice(e+1)));xG.test(r)&&SG.test(i)&&t.set(r,vG(i))}return t}function EG(e){let t={clockTolerance:15,audience:e?.audience??`better-auth:session-cache`};return e?.issuer&&(t.issuer=e.issuer),t}function DG(e){let t=gG(e);return!t||typeof e.iss!=`string`||!e.iss||e.sub!==t.user.id||e.sid!==t.session.token?null:{...e,...t}}function OG(){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 kG={name:`HMAC`,hash:`SHA-256`},AG=async e=>{let t=typeof e==`string`?new TextEncoder().encode(e):e;return await OG().importKey(`raw`,t,kG,!1,[`sign`,`verify`])},jG=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 OG().verify(kG,n,i,new TextEncoder().encode(t))}catch{return!1}},MG=async(e,t)=>{let n=await AG(t),r=await OG().sign(kG.name,n,new TextEncoder().encode(e));return btoa(String.fromCharCode(...new Uint8Array(r)))},NG=async(e,t)=>{let n=await MG(e,t);return e=`${e}.${n}`,e=encodeURIComponent(e),e},PG=/^application\/([a-z0-9.+-]*\+)?json/i;async function FG(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(PG.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 IG(e){return e instanceof k||e?.name===`APIError`}function LG(e){try{return e.includes(`%`)?decodeURIComponent(e):e}catch{return e}}async function RG(e){try{return{data:await e,error:null}}catch(e){return{data:null,error:e}}}function zG(e){return e instanceof Request||Object.prototype.toString.call(e)===`[object Request]`}const BG=(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 VG(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,LG(n))}n=i+1}return t}const HG=(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},UG=(e,t,n)=>(t=encodeURIComponent(t),HG(e,t,n)),WG=async(e,t,n,r)=>(t=await NG(t,n),HG(e,t,r));async function GG(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:KG(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:KG(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 KG(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 qG=async(e,{options:t,path:n})=>{let r=new Headers,i,{data:a,error:o}=await GG(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&&zG(e.request)?e.request.headers:null,c=s?.get(`cookie`),l=c?VG(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=BG(e,t);return n&&l?.get(n)||null},getSignedCookie:async(e,t,n)=>{let r=BG(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 jG(s,o,await AG(t))?o:!1},setCookie:(e,t,n)=>{let i=UG(e,t,n);return r.append(`set-cookie`,i),i},setSignedCookie:async(e,t,n,i)=>{let a=await WG(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 JG(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 YG(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 XG(e){return!e||typeof e!=`object`?!1:`_flag`in e&&e._flag===`json`}const ZG=/* @__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 QG(e){for(let t of ZG)e.delete(t)}function $G(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 eK(e,t){if(e instanceof Response){if(t?.headers){let n=new Headers(t.headers);QG(n),$G(e.headers,n)}return e}if(XG(e)){let n=e.body,r=e.routerResponse;if(r instanceof Response)return r;let i=new Headers;if($G(i,r?.headers),$G(i,e.headers),t?.headers){let e=new Headers(t.headers);QG(e),$G(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(IG(e))return eK(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 QG(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`)):JG(e)&&(n=YG(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 tK(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 RG(qG(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(IG(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?eK(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 nK(e,t){return[...e??[],...t??[]]}tK.create=e=>{function t(...t){if(t.length===3){let[n,r,i]=t;return tK(n,{...r,use:nK(r.use,e?.use)},i)}let[n,r]=t;return tK({...n,use:nK(n.use,e?.use)},r)}return t};function rK(e,t){let n=async n=>{let r=n,i=typeof e==`function`?e:t,a=await qG(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 IG(e)&&Object.defineProperty(e,he,{enumerable:!1,configurable:!0,get(){return a.responseHeaders}}),e}};return n.options=typeof e==`function`?{}:e,n}rK.create=e=>{function t(t,n){if(typeof t==`function`)return rK({use:e?.use},t);if(!n)throw Error(`Middleware handler is required`);return rK({...t,method:`*`,use:[...e?.use||[],...t.use||[]]},n)}return t};const iK={};function aK(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 oK(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:aK(n),...`minLength`in n&&n.minLength?{minLength:n.minLength}:{},description:n.description}})}),t)}function sK(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:aK(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 cK(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 lK(e,t){return Object.entries(e).forEach(([e,t])=>{let n=t.options;if(t.path&&!n.metadata?.SERVER_ONLY&&(n.method===`GET`&&(iK[t.path]={get:{tags:[`Default`,...n.metadata?.openapi?.tags||[]],description:n.metadata?.openapi?.description,operationId:n.metadata?.openapi?.operationId,security:[{bearerAuth:[]}],parameters:oK(n),responses:cK(n.metadata?.openapi?.responses)}}),n.method===`POST`)){let e=sK(n);iK[t.path]={post:{tags:[`Default`,...n.metadata?.openapi?.tags||[]],description:n.metadata?.openapi?.description,operationId:n.metadata?.openapi?.operationId,security:[{bearerAuth:[]}],parameters:oK(n),...e?{requestBody:e}:{requestBody:{content:{"application/json":{schema:{type:`object`,properties:{}}}}}},responses:cK(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:iK}}const uK=(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>`,dK=/* @__PURE__ */ (()=>{let e=function(){};return e.prototype=Object.create(null),Object.freeze(e.prototype),e})();function fK(){return{root:{key:``},static:new dK}}function pK(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 mK(e){if(!e.includes(`{`))return;let t=pK(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 hK(e){return`__rou3_unnamed_${e}`}function gK(e){return/^(?!__rou3_|_\d)[A-Za-z_]\w*$/.test(e)?e:`__rou3_esc_`+e.replace(/[_-]/g,e=>e===`_`?`__`:`_h`)}function _K(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 vK(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 yK(e,t,n=hK){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 bK(e){return e.includes(`\\`)?e.replace(/\\([:(){}])/g,(e,t)=>`�`+`ABCDE`[`:(){}`.indexOf(t)]):e}function xK(e){return e.startsWith(`**`)?2:e===`*`||e.includes(`:`)||e.includes(`(`)||vK(e)?1:e===`\\*`?`*`:e===`\\*\\*`?`**`:e.includes(`�`)?e.replace(/\uFFFD([A-E])/g,(e,t)=>t===`A`?`:`:t===`B`?`(`:t===`C`?`)`:t===`D`?`{`:`}`):e}function SK(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 CK(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 wK(e){let t=e.split(`/`);return t.shift(),t[t.length-1]===``&&t.pop(),t}function TK(e){let t=wK(e);for(;t[t.length-1]===``;)t.pop();return t}function EK(e,t){let n=new dK;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[_K(t)]=e.groups[t]}}return n}function DK(e,t=``,n,r){t=t.toUpperCase(),n.charCodeAt(0)!==47&&(n=`/${n}`);let i=mK(n);if(i){for(let n of i)DK(e,t,n,r);return}n=bK(n);let a=TK(n),o=SK(a);if(o){for(let n of o)DK(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=xK(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]=OK(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 dK),s.static[t]=e,s=e}}let d=l.length>0,f=s.methods??=new dK;(f[t]??=[]).push({data:r||null,paramsRegexp:u,paramsMap:d?l:void 0}),d||(e.static[`/`+a.join(`/`)]=s)}function OK(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]=yK(r,n);let a=r.replace(/:([\w-]+)(?:\(([^)]*)\))?/g,(e,t,n)=>`(?<${gK(t)}>${n||`[^/]+`})`).replace(/\((?![?<])/g,()=>`(?<${hK(n++)}>`).replace(/\uFFFE(.)/g,(e,t)=>/[.*+?^${}()|[\]\\]/.test(t)?`\\${t}`:t);return[RegExp(`^${a}$`),n]}function kK(e,t=``,n,r){r?.normalize&&(n=CK(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=wK(n),o=AK(e.root,t,a,0);if(o!==void 0)return r?.params===!1?o:{data:o.data,params:o.paramsMap?EK(a,o.paramsMap):void 0}}function AK(e,t,n,r){if(r===n.length){if(e.methods){let r=jK(e.methods,t,n,e.key===`*`,!1);if(r)return r}return e.param?.methods&&jK(e.param.methods,t,n,!0,!0)||e.wildcard?.methods&&jK(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=AK(a,t,n,r+1);if(e)return e}}if(e.param){let i=AK(e.param,t,n,r+1);if(i)return i}if(e.wildcard&&e.wildcard.methods)return jK(e.wildcard.methods,t,n,!0,!1)}function jK(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 MK(e,t=``,n,r){r?.normalize&&(n=CK(n)),n.charCodeAt(n.length-1)===47&&(n=n.slice(0,-1));let i=wK(n),a=NK(e.root,t,i,0);return r?.params===!1?a:a.map(e=>({data:e.data,params:e.paramsMap?EK(i,e.paramsMap):void 0}))}function NK(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)PK(i,a,!0);else{let e=[];for(let t of a){let n=t.paramsMap;n?.[n.length-1]?.[2]&&e.push(t)}PK(i,e,!0)}}}if(e.param){if(r<n.length){let o=i.length;if(NK(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)}PK(i,e,!0)}}}if(r<n.length){let o=e.static?.[a];o&&NK(o,t,n,r+1,i)}if(r===n.length&&e.methods){let n=e.methods[t]||e.methods[``];n&&PK(i,n,e.key===`*`)}return i}function PK(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 FK=(e,t)=>{if(!t?.openapi?.disabled){let n={path:`/api/reference`,...t?.openapi};e.openapi=tK(n.path,{method:`GET`},async t=>{let r=await lK(e);return new Response(uK(r,n.scalar),{headers:{"Content-Type":`text/html`}})})}let n=fK(),r=fK();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)DK(n,r,t.path,t)}if(t?.routerMiddleware?.length)for(let{path:e,middleware:n}of t.routerMiddleware)DK(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=kK(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 FG(u.options.cloneRequest?e.clone():e,n),query:l,_flag:`router`,asResponse:!0,context:t?.routerContext},a=MK(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 eK(r)}catch(e){if(IG(e))return eK(e);throw e}if(t?.throwError)throw n;return IG(n)?eK(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=zG(n)?n:e,i=await a(r),o=await t?.onResponse?.(i,r);return o instanceof Response?o:i},endpoints:e}},IK=4050;function LK(e,t){return IK-UG(e,``,{...t}).length}function RK(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 zK(e,t){let n={},r=TG(t.headers?.get(`cookie`)||``);for(let[t,i]of r)(t===e||RK(e,t)!==null)&&(n[t]=i);return n}function BK(e,t,n,r){let i=LK(`${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 ${IK} byte limit and was split into ${a} chunks.`,valueSize:t.value.length,chunkCount:a,chunkSizes:o.map(e=>e.value.length)}),o}function VK(e,t){let n={};for(let r in e)n[r]={name:r,value:``,attributes:{...t,maxAge:0}};return n}const HK=e=>(t,n,r)=>{let i=zK(t,r),a=r.context.logger,o=()=>{let e=VK(i,n);for(let e in i)delete i[e];return e};return{chunk(r,s){let c=o(),l=BK(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)}}},UK=HK(`Session`),WK=HK(`Account`);function GK(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 TG(i)){let i=RK(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 KK(e,t){let n=e.context.authCookies.accountData,r={maxAge:300,...n.attributes},i=await hU(t,e.context.secretConfig,`better-auth-account`,r.maxAge),a=WK(n.name,r,e);a.setCookies(a.chunk(i,r))}async function qK(e){let t=GK(e,e.context.authCookies.accountData.name);if(t){let n=w(await _U(t,e.context.secretConfig,`better-auth-account`));if(n)return n}return null}const JK=Pe(j({disableCookieCache:KW().meta({description:`Disable cookie cache and fetch session from database`}).optional(),disableRefresh:KW().meta({description:`Disable session refresh. Useful for checking session status, without updating the session`}).optional()})),YK=/* @__PURE__ */ new Map,XK={decode:(e,t=`utf-8`)=>(YK.has(t)||YK.set(t,new TextDecoder(t)),YK.get(t).decode(e)),encode:new TextEncoder().encode},ZK={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)}},QK=(e=`SHA-256`,t=`none`)=>{let n={importKey:async(t,n)=>TU().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 TU().sign(`HMAC`,e,typeof r==`string`?new TextEncoder().encode(r):r);return t===`hex`?ZK.encode(i):t===`base64`||t===`base64url`||t===`base64urlnopad`?AU.encode(i,{padding:t!==`base64urlnopad`}):i},verify:async(e,r,i)=>(typeof e==`string`&&(e=await n.importKey(e,`verify`)),t===`hex`&&(i=ZK.decode(i)),(t===`base64`||t===`base64url`||t===`base64urlnopad`)&&(i=await kU.decode(i)),TU().verify(`HMAC`,e,typeof i==`string`?new TextEncoder().encode(i):i,typeof r==`string`?new TextEncoder().encode(r):r))};return n};function $K(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&&!gH(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 eq(e){let t=$K(e),n=t(`session_token`,{maxAge:e.session?.expiresIn||pG(`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 tq(e,t,n){if(!e.context.options.session?.cookieCache?.enabled)return;let r=XW(t.session,e.context.options.session?.additionalFields),i=$W(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=uG(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=lG(c.maxAge||60,`sec`).getTime(),u=e.context.options.session?.cookieCache?.strategy||`compact`,d;if(u===`jwe`)d=await hU(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 sU(s,e.context.secret,c.maxAge||300)}else d=AU.encode(JSON.stringify({session:s,expiresAt:l,signature:await QK(`SHA-256`,`base64urlnopad`).sign(e.context.secret,JSON.stringify({...s,expiresAt:l}))}),{padding:!1});let f=UK(e.context.authCookies.sessionData.name,c,e);if(f.setCookies(f.chunk(d,c)),e.context.options.account?.storeAccountCookie&&!aq(e,e.context.authCookies.accountData.name)){let n=await qK(e);if(n){if(!UW(e.context.options)||n.userId===t.user.id)await KK(e,n);else{oq(e,e.context.authCookies.accountData);let t=WK(e.context.authCookies.accountData.name,e.context.authCookies.accountData.attributes,e);t.setCookies(t.clean())}}}}async function nq(e,t){let n=e.context.options.session?.cookieCache?.strategy||`compact`;if(n===`jwe`){let n=await _U(t,e.context.secretConfig,`better-auth-session`),r=gG(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 cU(t,e.context.secret),i=gG(r);return i?{session:i,expiresAt:r?.exp?r.exp*1e3:Date.now()}:null}let r=_G(w(XK.decode(AU.decode(t))));if(!r||!await QK(`SHA-256`,`base64urlnopad`).verify(e.context.secret,JSON.stringify({...r.session,expiresAt:r.expiresAt}),r.signature))return null;let i=gG(r.session);return i?{session:i,expiresAt:r.expiresAt}:null}async function rq(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 tq(e,t,n),e.context.setNewSession(t)}function iq(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():yG(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 aq(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():yG(e.get(`set-cookie`)||``)).some(e=>e.startsWith(i)||e.startsWith(a)))return!0;return!1}function oq(e,t){iq(e,t.name),e.setCookie(t.name,``,{...t.attributes,maxAge:0})}function sq(e,t){if(oq(e,e.context.authCookies.sessionToken),oq(e,e.context.authCookies.sessionData),e.context.options.account?.storeAccountCookie){oq(e,e.context.authCookies.accountData);let t=WK(e.context.authCookies.accountData.name,e.context.authCookies.accountData.attributes,e),n=t.clean();t.setCookies(n)}e.context.oauthConfig.storeStateStrategy===`cookie`&&oq(e,e.context.createAuthCookie(`oauth_state`));let n=UK(e.context.authCookies.sessionData.name,e.context.authCookies.sessionData.attributes,e),r=n.clean();n.setCookies(r),t||oq(e,e.context.authCookies.dontRememberToken)}const cq=zH(`better-auth:oauth-encryption:v1`);function lq(e,t){return RH(JH(oU,zH(e),cq,zH(`better-auth:${t}:v1`),32))}function uq(e,t){return typeof e==`string`?lq(e,t):{keys:new Map(Array.from(e.keys,([e,n])=>[e,lq(n,t)])),currentVersion:e.currentVersion,...e.legacySecret&&{legacySecret:lq(e.legacySecret,t)}}}const dq=xe({callbackURL:A(),codeVerifier:A(),errorURL:A().optional(),newUserURL:A().optional(),expiresAt:ge(),oauthState:A().optional(),link:j({email:A(),userId:WW()}).optional(),requestSignUp:Te().optional(),idTokenNonce:A().optional(),serverContext:ve(A(),Me()).optional()}),fq=e=>`auth-state:${e}`;new Set(Object.keys(dq.shape));var pq=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 mq(e,t,n){let r=CH(32);if(e.context.oauthConfig.storeStateStrategy===`cookie`){let i={...t,oauthState:r},a=await LW({key:uq(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:fq(r),expiresAt:a}))throw new pq(`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 hq(e,t,n){if(!t)throw new pq(`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 pq(`State mismatch: auth state cookie not found`,{code:`state_mismatch`,details:{state:t}});try{let t=await RW({key:uq(e.context.secretConfig,`oauth-state-cookie`),data:a});i=dq.parse(JSON.parse(t))}catch(e){throw new pq(`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 pq(`State mismatch: OAuth state parameter does not match stored state`,{code:`state_security_mismatch`,details:{state:t},errorURL:i.errorURL});oq(e,r)}else{let r=await e.context.internalAdapter.findVerificationValue(fq(t));if(!r)throw new pq(`State mismatch: verification not found`,{code:`state_mismatch`,details:{state:t}});if(i=dq.parse(JSON.parse(r.value)),i.oauthState!==void 0&&i.oauthState!==t)throw new pq(`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 pq(`State mismatch: State not persisted correctly`,{code:`state_security_mismatch`,details:{state:t},errorURL:i.errorURL});oq(e,a),await e.context.internalAdapter.deleteVerificationByIdentifier(fq(t))}if(i.expiresAt<Date.now())throw new pq(`Invalid state: request expired`,{code:`state_mismatch`,details:{expiresAt:i.expiresAt},errorURL:i.errorURL});return i}function gq(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 _q=`https://better-auth.invalid`;function vq(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,_q):new URL(e);if(n&&r.origin!==_q)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 yq=[`javascript:`,`data:`,`vbscript:`],bq={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 xq(e,t,n,r){let i=new URLSearchParams({error:n});r&&i.set(`error_description`,r);let a=vq(t,i);throw e.redirect(a)}function Sq(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:Cq,set:wq}=JV(()=>null),Tq=async()=>await Cq(),{get:Eq,set:Dq}=JV(()=>null),Oq=async e=>{await Dq({...await Eq()??{},...e})};function kq(e){return e.requiresIdTokenNonce?CH(32):void 0}async function Aq(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??CH(128),i=await Eq(),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 wq(o);try{return mq(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 jq(e){let t=e.query.state||e.body?.state,n=e.context.options.onAPIError?.errorURL||`${e.context.baseURL}/error`,r;try{r=await hq(e,t)}catch(t){e.context.logger.error(`Failed to parse state`,t);let r=`internal_server_error`,i=n;t instanceof pq&&(r=t.code===`state_security_mismatch`?`state_mismatch`:t.code,i=t.errorURL||n),xq(e,i,r)}return r.errorURL||(r.errorURL=n),r&&await wq(r),r}const Mq={scope:`server`};function Nq(e){return e instanceof k||e instanceof D||e?.name===`APIError`}const Pq={"Cache-Control":`no-store`,Pragma:`no-cache`};function Fq(e,t){Nq(t)&&e&&Object.defineProperty(t,he,{enumerable:!1,configurable:!0,value:e,writable:!1})}const Iq=rK(async()=>({})),Lq=rK.create({use:[Iq,rK(async()=>({}))]}),Rq=tK.create({use:[Iq]});function zq(e,t){let n=t.metadata?.noStore===!0;return async t=>{if(n)for(let[e,n]of Object.entries(Pq))t.setHeader(e,n);try{return await UV(t,()=>e(t))}catch(e){throw Fq(t.responseHeaders,e),e}}}function X(...e){if(e.length===3){let[t,n,r]=e;return Rq(t,n,zq(r,n))}let[t,n]=e;return Rq(t,zq(n,t))}function Bq(e){return{...e,metadata:{...e.metadata,SERVER_ONLY:!0}}}X.serverOnly=(e,t)=>X(Bq(e),t);const Vq=/[\u0000-\u001f\u007f-\u009f]/,Hq=`https://better-auth.invalid`,Uq=/%2[fF]|%5[cC]/,Wq=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(`/`)}`:``},Gq=e=>{if(Vq.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=Wq(a===-1?r:r.slice(0,a));return{scheme:n,authority:i.toLowerCase(),path:o}},Kq=e=>{if(!e.startsWith(`/`)||e.startsWith(`//`)||e.includes(`\\`)||Vq.test(e))return!1;let t=e.search(/[?#]/),n=t===-1?e:e.slice(0,t);if(Uq.test(n))return!1;try{return new URL(e,Hq).origin===Hq}catch{return!1}},qq=(e,t,n)=>{if(e.startsWith(`/`))return n?.allowRelativePaths===!0&&Kq(e);if(t.includes(`*`)||t.includes(`?`)){if(t.includes(`://`))return aH(t)(pH(e)||e);let n=hH(e);return n?aH(t)(n):!1}let r=mH(e);if(r===`http:`||r===`https:`||!r)return t===pH(e);let i=Gq(e),a=Gq(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 Jq(e,t,n){let r=!1;return function(...i){return r||=((n?.warn??console.warn)(`[Deprecation] ${t}`),!0),e.apply(this,i)}}function Yq(e){return e.context.skipOriginCheck===!0&&e.context.options.advanced?.disableCSRFCheck===void 0}function Xq(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=gq(e.request.url,n);return t.some(e=>{let t=e.replace(/\/+$/,``);return r===t||r.startsWith(`${t}/`)})}catch{}return!1}const Zq=Jq(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.`),Qq=Lq(async e=>{if(e.request?.method===`GET`||e.request?.method===`OPTIONS`||e.request?.method===`HEAD`||!e.request||(await eJ(e),Xq(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`)}),$q=e=>Lq(async t=>{if(!t.request||Xq(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 eJ(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(Yq(e)){e.context.options.advanced?.disableOriginCheck===!0&&Zq();return}if(Xq(e)||!(t||a))return;let o=r===`null`&&n.get(`sec-fetch-site`)===`same-origin`?fH(void 0,e.context.options.basePath,e.request,!1,e.context.options.advanced?.trustedProxyHeaders):void 0,s=(o?pH(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=>qq(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 tJ=Lq(async e=>{e.request&&await nJ(e)});async function nJ(e){let t=e.request;if(!t||e.context.skipCSRFCheck||Yq(e))return;let n=t.headers;if(n.has(`cookie`))return await eJ(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 eJ(e,!0)}if(n.get(`origin`)||n.get(`referer`))return await eJ(e,!0)}const rJ=nee(),iJ=aee();function aJ(e){return oJ(e)||sJ(e)}function oJ(e){return we(rJ,e)}function sJ(e){return we(iJ,e)}function cJ(e){let t=e.toLowerCase();if(t.startsWith(`::ffff:`)){let e=t.substring(7);if(oJ(e))return e}let n=e.split(`:`);if(n.length===7&&n[5]?.toLowerCase()===`ffff`){let e=n[6];if(e&&oJ(e))return e}if(t.includes(`::ffff:`)||t.includes(`:ffff:`)){let t=lJ(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 lJ(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 uJ(e,t){let n=lJ(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 dJ(e,t={}){if(oJ(e)||!sJ(e))return e.toLowerCase();let n=cJ(e);return n?n.toLowerCase():uJ(e,t.ipv6Subnet??64)}function fJ(e){if(oJ(e))return Uint8Array.from(e.split(`.`).map(e=>Number(e)));if(!sJ(e))return null;let t=cJ(e);if(t)return Uint8Array.from(t.split(`.`).map(e=>Number(e)));let n=lJ(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 pJ=/^\d+$/;function mJ(e){let t=e.lastIndexOf(`/`),n=fJ(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(!pJ.test(i))return null;let a=Number(i);return a<=r?{bytes:n,prefix:a}:null}function hJ(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 gJ(e){return e.filter(e=>mJ(e)===null)}function _J(e,t={}){let n=e.split(`,`).map(e=>e.trim()).filter(Boolean);if(n.length===0)return null;let r=(t.trustedProxies??[]).map(mJ).filter(e=>e!==null);if(r.length>0){for(let e=n.length-1;e>=0;e--){let i=n[e],a=i?fJ(i):null;if(!i||!a)return null;if(!r.some(e=>hJ(a,e)))return dJ(i,{ipv6Subnet:t.ipv6Subnet})}return null}if(n.length!==1)return null;let i=n[0];return!i||!aJ(i)?null:dJ(i,{ipv6Subnet:t.ipv6Subnet})}const vJ=[`x-forwarded-for`];function yJ(e,t){if(t.advanced?.ipAddress?.disableIpTracking)return null;let n=`headers`in e?e.headers:e,r=t.advanced?.ipAddress?.ipAddressHeaders||vJ;for(let e of r){let r=`get`in n?n.get(e):n[e];if(typeof r==`string`){let e=_J(r,{ipv6Subnet:t.advanced?.ipAddress?.ipv6Subnet,trustedProxies:t.advanced?.ipAddress?.trustedProxies});if(e)return e}}return ce()||_()?`127.0.0.1`:null}function bJ(e,t){return`${e}|${t}`}const xJ=/* @__PURE__ */ new Map,SJ=1e5;function CJ(){let e=Date.now();for(let[t,n]of xJ)e>=n.expiresAt&&xJ.delete(t);if(xJ.size<=SJ)return;let t=xJ.size-SJ,n=0;for(let e of xJ.keys())if(xJ.delete(e),++n>=t)break}function wJ(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:EJ(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 TJ(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 EJ(e,t){let n=Date.now(),r=t*1e3;return Math.ceil((e+r-n)/1e3)}function DJ(e){let t=`rateLimit`,n=e.adapter,r=Math.max(...OJ(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:EJ(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 OJ(e){let t=[e.rateLimit.window,...NJ().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 kJ(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){CJ();let r=Date.now(),i=xJ.get(e),a=wJ(i&&r<i.expiresAt?i.data:void 0,n,r);return a.allowed&&xJ.set(e,{data:{...a.next,key:e},expiresAt:r+t(n.window)*1e3}),{allowed:a.allowed,retryAfter:a.retryAfter}}}}return DJ(e)}let AJ=!1;async function jJ(e,t){let n=new URL(t.baseURL).pathname,r=gq(e.url,n),i=t.rateLimit.window,a=t.rateLimit.max,o=yJ(e,t.options);if(!o&&t.options.advanced?.ipAddress?.disableIpTracking)return null;!o&&!AJ&&(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."),AJ=!0);let s=bJ(o??`no-trusted-ip`,r),c=NJ().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(`*`)?aH(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 MJ(e,t){if(!t.rateLimit.enabled)return;let n=await jJ(e,t);if(!n)return;let{key:r,currentWindow:i,currentMax:a}=n,o=kJ(t,{window:i}),s={window:i,max:a},{allowed:c,retryAfter:l}=await o.consume(r,s);if(!c)return TJ(l??i)}function NJ(){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:PJ,set:Yde}=JV(()=>!1),FJ=()=>X(`/get-session`,{method:[`GET`,`POST`],operationId:`getSession`,query:JK,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=GK(e,e.context.authCookies.sessionData.name);if(a&&!r){let t=UK(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 nq(e,a):null;o&&a&&!s&&oq(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)oq(e,e.context.authCookies.sessionData);else{let n=e.context.sessionConfig.cookieRefreshCache;if(n===!1){e.context.session=t;let n=tG(e.context.options,{...t.session,expiresAt:new Date(t.session.expiresAt),createdAt:new Date(t.session.createdAt),updatedAt:new Date(t.session.updatedAt)}),r=$W(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 PJ();if(r<i&&!a){let n={session:{...t.session},user:t.user,updatedAt:Date.now()};await tq(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=tG(e.context.options,{...n.session,expiresAt:new Date(n.session.expiresAt),createdAt:new Date(n.session.createdAt),updatedAt:new Date(n.session.updatedAt)}),o=$W(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=tG(e.context.options,{...t.session,expiresAt:new Date(t.session.expiresAt),createdAt:new Date(t.session.createdAt),updatedAt:new Date(t.session.updatedAt)}),l=$W(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 sq(e),l&&(!t||n)&&await e.context.internalAdapter.deleteSession(l.session.token),e.json(null);if(c||e.query?.disableRefresh){let t=tG(e.context.options,l.session),n=$W(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 PJ(),h=f&&!p&&!m;if(t&&!n){await tq(e,l,!!c);let t=tG(e.context.options,l.session),n=$W(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:lG(e.context.sessionConfig.expiresIn,`sec`),updatedAt:/* @__PURE__ */ new Date});if(!t)throw sq(e),D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_SESSION);let n=e.context.sessionConfig.expiresIn;await rq(e,{session:t,user:l.user},!1,{maxAge:n});let r=tG(e.context.options,t),i=$W(e.context.options,l.user);return e.json({session:r,user:i})}await tq(e,l,!!c);let g=tG(e.context.options,l.session),_=$W(e.context.options,l.user);return e.json({session:g,user:_})}catch(t){throw Nq(t)?t:(e.context.logger.error(`INTERNAL_SERVER_ERROR`,t),D.from(`INTERNAL_SERVER_ERROR`,Y.FAILED_TO_GET_SESSION))}}),IJ=e=>VW(e.context.options),LJ=async(e,t)=>{if(e.context.session)return e.context.session;let n=await FJ()({...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)},RJ=async e=>IJ(e)?(e.context.session=null,LJ(e,{disableCookieCache:!0})):LJ(e),zJ=Lq(async e=>{let t=await LJ(e);if(!t?.session)throw D.from(`UNAUTHORIZED`,{message:`Unauthorized`,code:`UNAUTHORIZED`});return{session:t}}),BJ=Lq(async e=>{let t=await RJ(e);if(!t?.session)throw D.from(`UNAUTHORIZED`,{message:`Unauthorized`,code:`UNAUTHORIZED`});return{session:t}});Lq(async e=>{let t=await LJ(e);if(!t?.session&&(e.request||e.headers))throw D.from(`UNAUTHORIZED`,{message:`Unauthorized`,code:`UNAUTHORIZED`});return{session:t}});const VJ=Lq(async e=>{let t=await LJ(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}}),HJ=()=>X(`/list-sessions`,{method:`GET`,operationId:`listUserSessions`,use:[VJ],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=>tG(e.context.options,t)))}catch(t){throw e.context.logger.error(t),e.error(`INTERNAL_SERVER_ERROR`)}}),UJ=X(`/revoke-session`,{method:`POST`,body:j({token:A().meta({description:`The token to revoke`})}),use:[BJ],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})}),WJ=X(`/revoke-sessions`,{method:`POST`,use:[BJ],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})}),GJ=X(`/revoke-other-sessions`,{method:`POST`,requireHeaders:!0,use:[BJ],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 KJ(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 qJ(e,t){let n=e.context.options.user?.validateUserInfo;if(!n)return;KJ(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 JJ=async e=>{let t=await jU(`SHA-256`).digest(new TextEncoder().encode(e));return AU.encode(new Uint8Array(t),{padding:!1})};async function YJ(e,t){return!t||t===`plain`?e:t===`hashed`?JJ(e):typeof t==`object`&&`hash`in t?t.hash(e):e}function XJ(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 ZJ=`better_auth.operation_id`,QJ=`better_auth.hook.type`,$J=`better_auth.context`;function eY(e,t){let n=ie(t.options),r=t.hooks;async function i(t,i,a){let o=VV(),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}`,{[QJ]:`create.before`,[ne]:i,[$J]: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 ZV(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 eH(async()=>{await n(`db create.after ${i}`,{[QJ]:`create.after`,[ne]:i,[$J]:e},()=>r(c,o))})}return c}async function a(t,i,a,o){let s=VV(),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}`,{[QJ]:`update.before`,[ne]:a,[$J]: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 ZV(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 eH(async()=>{await n(`db update.after ${a}`,{[QJ]:`update.after`,[ne]:a,[$J]:e},()=>r(u,s))})}return u}async function o(t,i,a,o){let s=VV(),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}`,{[QJ]:`updateMany.before`,[ne]:a,[$J]: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 ZV(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 eH(async()=>{await n(`db updateMany.after ${a}`,{[QJ]:`updateMany.after`,[ne]:a,[$J]:e},()=>r(u,s))})}return u}async function s(t,i,a){let o=VV(),s=null;try{s=(await(await ZV(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 ZV(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 eH(async()=>{await n(`db delete.after ${i}`,{[QJ]:`delete.after`,[ne]:i,[$J]:e},()=>r(s,o))})}return l}async function c(t,i,a){let o=VV(),s=[];try{s=await(await ZV(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 ZV(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 eH(async()=>{await n(`db delete.after ${i}`,{[QJ]:`delete.after`,[ne]:i,[$J]:t},()=>r(e,o))})}return l}async function l(t,i,a,o){let s=VV(),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 ZV(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 eH(async()=>{await n(`db delete.after ${t}`,{[QJ]:`delete.after`,[ne]:t,[$J]:e},()=>r(u,s))})}return u}return{createWithHooks:i,updateWithHooks:a,updateManyWithHooks:o,deleteWithHooks:s,deleteManyWithHooks:c,consumeOneWithHooks:l}}function tY(e,t=Date.now()){let n=typeof e==`number`?e:e.getTime();return Math.max(Math.floor((n-t)/1e3),0)}const nY=(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}=eY(e,t),p=t=>{let n=[...t,{field:`expiresAt`,value:/* @__PURE__ */ new Date,operator:`gt`}];return d(n,`session`,{fn:async()=>{await(await ZV(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=tY(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),tY(c,o)):await i.delete(r)}async function _(e,t){if(!i)return;let r=t??await h(e);await eH(()=>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)=>$V(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`};KJ(e);let r;try{r=HV()}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 qJ(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(tG(t.options,{...e.session,expiresAt:new Date(e.session.expiresAt)}))}catch{continue}}return s}return await(await ZV(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 ZV(e)).findMany({model:`user`,limit:t,offset:n,sortBy:r,where:i}),countTotalUsers:async t=>{let n=await(await ZV(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=VV();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=sG(r),y={..._?{id:_}:{},ipAddress:f&&yJ(f,r)||``,userAgent:f?.get(`user-agent`)||``,...g,expiresAt:lG(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=tY(s.at(-1)?.expiresAt??y.expiresAt.getTime(),o);c>0&&await i.set(`active-sessions-${a}`,JSON.stringify(s),c);let l=await(await ZV(e)).findOne({model:`user`,where:[{field:`id`,value:a}]}),u=tY(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 eH(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:tG(t.options,{...n.session,expiresAt:new Date(n.session.expiresAt),createdAt:new Date(n.session.createdAt),updatedAt:new Date(n.session.updatedAt)}),user:$W(t.options,{...n.user,createdAt:new Date(n.user.createdAt),updatedAt:new Date(n.user.updatedAt)})}:null}}let a=await(await ZV(e)).findOne({model:`session`,where:[{value:n,field:`token`}],join:{user:!0}});if(!a)return null;let{user:o,...s}=a;return o?{session:tG(t.options,s),user:$W(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 ZV(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=tG(t.options,o),c=Date.now(),l=new Date(s.expiresAt).getTime(),u=tY(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),tY(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),tY(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 ZV(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 ZV(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 ZV(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 eH(()=>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 eH(()=>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 ZV(e)).findMany({model:`account`,where:[{field:`userId`,value:t}]}),findCredentialAccount:async t=>(await ZV(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 ZV(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 ZV(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=XJ(e.identifier,r.verification?.storeIdentifier),n=await YJ(e.identifier,t);return await s({createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,...e,identifier:n},`verification`,i?{async fn(e){let t=tY(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=XJ(t,r.verification?.storeIdentifier),a=await YJ(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 ZV(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 YJ(e,XJ(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=XJ(t,r.verification?.storeIdentifier),a=await YJ(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}`,()=>$V(e,async()=>{let n=await ZV(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=AU.encode(new Uint8Array(await jU(`SHA-256`).digest(new TextEncoder().encode(`reserve:`+t.identifier))),{padding:!1}),a=XJ(t.identifier,r.verification?.storeIdentifier),o=await YJ(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=tY(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 YJ(e,XJ(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=tY(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 rY(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 iY(e,t,n=`.`,r){if(!rY(t))return iY(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]]:rY(a)&&rY(i[t])?iY(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function aY(e){return(...t)=>t.reduce((t,n)=>iY(t,n,``,e),{})}const oY=aY(),sY=/* @__PURE__ */ new Set([`metadata.google.internal`,`metadata.goog`,`metadata`,`instance-data`,`instance-data.ec2.internal`]);function cY(e){return e.length>=2&&e.startsWith(`[`)&&e.endsWith(`]`)?e.slice(1,-1):e}function lY(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 uY(e){let t=e.indexOf(`%`);return t===-1?e:e.slice(0,t)}function dY(e){return e.replace(/\.+$/,``)}function fY(e){return/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e)}function pY(e){let t=e.split(`.`);return(Number(t[0])<<24|Number(t[1])<<16|Number(t[2])<<8|Number(t[3]))>>>0}function mY(e,t,n){if(n===0)return!0;let r=n===32?4294967295:-1<<32-n>>>0;return(e&r)===(t&r)}function hY(e){if(e===`0.0.0.0`)return`unspecified`;if(e===`255.255.255.255`)return`broadcast`;let t=pY(e);return mY(t,pY(`127.0.0.0`),8)?`loopback`:mY(t,pY(`10.0.0.0`),8)||mY(t,pY(`172.16.0.0`),12)||mY(t,pY(`192.168.0.0`),16)?`private`:mY(t,pY(`169.254.0.0`),16)?`linkLocal`:mY(t,pY(`100.64.0.0`),10)?`sharedAddressSpace`:mY(t,pY(`192.0.2.0`),24)||mY(t,pY(`198.51.100.0`),24)||mY(t,pY(`203.0.113.0`),24)?`documentation`:mY(t,pY(`198.18.0.0`),15)?`benchmarking`:mY(t,pY(`224.0.0.0`),4)?`multicast`:mY(t,pY(`0.0.0.0`),8)||mY(t,pY(`192.0.0.0`),24)||mY(t,pY(`192.88.99.0`),24)||mY(t,pY(`240.0.0.0`),4)?`reserved`:`public`}function gY(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 _Y(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=gY(e,1);return t&&hY(t)!==`public`?`reserved`:`public`}if(e.startsWith(`0064:ff9b:0000:0000:0000:0000:`)){let t=gY(e,6);return t&&hY(t),`reserved`}if(e.startsWith(`0064:ff9b:0001:`))return`reserved`;if(e.startsWith(`2001:0000:`)){let t=gY(e,6,{xor:!0});return t&&hY(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 vY(e){let t=dY(uY(cY(lY(e.trim())))).toLowerCase();if(t===``)return{kind:`reserved`,literal:`fqdn`,canonical:``};if(!aJ(t))return t===`localhost`||t.endsWith(`.localhost`)?{kind:`localhost`,literal:`fqdn`,canonical:t}:sY.has(t)?{kind:`cloudMetadata`,literal:`fqdn`,canonical:t}:{kind:`public`,literal:`fqdn`,canonical:t};if(fY(t))return{kind:hY(t),literal:`ipv4`,canonical:t};let n=dJ(t,{ipv6Subnet:128});return fY(n)?{kind:hY(n),literal:`ipv4`,canonical:n}:{kind:_Y(n),literal:`ipv6`,canonical:n}}function yY(e){return vY(e).kind===`loopback`}function bY(e){let t=vY(e).kind;return t===`loopback`||t===`localhost`}function xY(e){return vY(e).kind===`public`}async function SY(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=uG(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=oY(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=nY(e.adapter,{options:t,logger:e.logger,hooks:i,generateId:e.generateId}),e.options=t}function CY(e){return e.advanced?.crossSubDomainCookies?.enabled,[]}async function wY(e,t){let n=[];if(gH(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`||bY(e))&&n.push(`http://${e}`));if(e.baseURL.fallback)try{n.push(new URL(e.baseURL.fallback).origin)}catch{}}else{let r=fH(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 TY(e){if(_H(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 EY(e){return e.advanced?.trustedProxyHeaders??!1}async function DY(e,t,n){let r=e.options.baseURL,i=SH(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:pH(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?_H(t)?t:t?new Request(i,{headers:t}):void 0:void 0,a.trustedOrigins=await wY(o,c),a.trustedProviders=await kY(a.options,c),e.options.advanced?.crossSubDomainCookies?.enabled&&(a.authCookies=eq(a.options),a.createAuthCookie=$K(a.options)),a}async function OY(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 kY(e,t){let n=e.account?.accountLinking?.trustedProviders;return n?Array.isArray(n)?n.filter(e=>!!e):(await n(t)??[]).filter(e=>!!e):[]}function AY(e){return e}async function jY(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 MY(e,t,n){try{return await jY(e,t,n)}catch{throw D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_USER_INFO)}}function NY(e){return e.startsWith(`$ba$`)?!0:e.length%2==0&&/^[0-9a-f]+$/i.test(e)}function PY(e,t){return e&&(t.options.account?.encryptOAuthTokens&&NY(e)?RW({key:t.secretConfig,data:e}):e)}function FY(e,t){return t.options.account?.encryptOAuthTokens&&e?LW({key:t.secretConfig,data:e}):e}function IY(e){return e.callbackPath?e.callbackPath.startsWith(`/`)?e.callbackPath:`/${e.callbackPath}`:`/callback/${e.id}`}function LY(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 RY(e,t,n,r=3600,i){return await sU({email:t.toLowerCase(),updateTo:n?.toLowerCase(),...i},e,r)}async function zY(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 RY(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 BY=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 LJ(e);if(!n){let n=Date.now(),r=await e.context.internalAdapter.findUserByEmail(t),i;if(!r||r.user.emailVerified)await RY(e.context.secret,t,void 0,e.context.options.emailVerification?.expiresIn);else try{await zY(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 zY(e,n.user),e.json({status:!0})}),VY=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:[$q(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=vq(e.query.callbackURL,n);throw e.redirect(r)}throw D.from(`UNAUTHORIZED`,t)}let{token:n}=e.query,r;try{r=await HF(n,new TextEncoder().encode(e.context.secret),{algorithms:[`HS256`]})}catch(e){return e instanceof WN?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 LJ(e);if(n&&n.user.email!==i.email)return t(Y.INVALID_USER);switch(i.requestType){case`change-email-confirmation`:{let t=await RY(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},LY(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 rq(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:$W(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 RY(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},LY(e.request))),await rq(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:$W(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 LJ(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 rq(e,{session:t,user:{...a.user,emailVerified:!0}})}else await rq(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 HY(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 UY(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:HY(e.scope),idToken:e.id_token,raw:e}}function WY(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 GY(e){let t=Array.isArray(e)?e[0]:e;return typeof t==`string`&&t.length>0?t:void 0}async function KY(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return AU.encode(new Uint8Array(n),{padding:!1})}const qY=[`state`,`client_id`,`redirect_uri`,`response_type`,`code_challenge`,`code_challenge_method`,`nonce`,`scope`],JY=new Set(qY);async function YY({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=GY(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 KY(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(_))JY.has(e)||y.searchParams.set(e,t);return y}const XY=ve(A(),A()).refine(e=>!Object.keys(e).some(e=>JY.has(e)),{message:`additionalParams cannot include reserved OAuth parameters: ${qY.join(`, `)}`}).meta({description:`Extra query parameters to append to the provider authorization URL (e.g. Cognito identity_provider, Google hd).`}).optional(),ZY=/^Basic +(.*)$/i;function QY(e){return new URLSearchParams({v:e}).toString().slice(2)}function $Y(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 eX(e,t){let n=`${QY(e)}:${QY(t)}`;return`Basic ${kU.encode(n)}`}function tX(e){let t=e.match(ZY);if(!t)throw Error(`Authorization header is not a Basic credential`);let n=t[1]??``,r=new TextDecoder().decode(kU.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:$Y(a),clientSecret:$Y(o)}}const nX=[`RS256`,`RS384`,`RS512`,`PS256`,`PS384`,`PS512`,`ES256`,`ES384`,`ES512`,`EdDSA`];async function rX({getClientAssertion:e,context:t}){return{client_assertion:await e(t),client_assertion_type:`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`}}var iX=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 aX=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 oX=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}},sX=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 cX(e){if(typeof e==`number`)return new oX({type:`linear`,attempts:e,delay:1e3});switch(e.type){case`linear`:return new oX(e);case`exponential`:return new sX(e);default:throw Error(`Invalid retry strategy`)}}const lX=[`get`,`post`,`put`,`patch`,`delete`];function uX(e){if(!e.startsWith(`@`))return{method:void 0,path:e};let t=e.indexOf(`/`),n=e.slice(1,t===-1?void 0:t);return lX.includes(n)?{method:n,path:t===-1?e:e.slice(t+1)}:{method:void 0,path:e}}const dX=e=>e===`.`||e===`..`,fX=e=>e.split(`:`).map(e=>encodeURIComponent(e)).join(`:`);function pX(e,t){let n=t.get(e);if(n===void 0)return fX(e);if(dX(n))throw TypeError(`Path parameters cannot be reserved path segments`);return encodeURIComponent(n)}function mX(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}=uX(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=>pX(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 hX=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},gX=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function _X(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 gX.test(r)?`json`:n.has(r)||r.startsWith(`text/`)?`text`:`blob`}function vX(e){try{return JSON.parse(e),!0}catch{return!1}}function yX(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 bX(e){try{return JSON.parse(e)}catch{return e}}function xX(e){return typeof e==`function`}function SX(e){if(e?.customFetchImpl)return e.customFetchImpl;if(typeof globalThis<`u`&&xX(globalThis.fetch))return globalThis.fetch;if(typeof window<`u`&&xX(window.fetch))return window.fetch;throw Error(`No fetch implementation found`)}function CX(...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 wX(e){let t=new Headers(CX(e?.headers,await hX(e)));if(!t.has(`content-type`)){let n=TX(e?.body);n&&t.set(`content-type`,n)}return t}function TX(e){return yX(e)?`application/json`:null}function EX(e){let t=e.get(`content-type`);return t?t.split(`;`)[0].trim().toLowerCase():null}function DX(e,t){let{body:n}=e;return n?!yX(n)||typeof n==`string`?n:EX(t)===`application/x-www-form-urlencoded`?new URLSearchParams(n).toString():JSON.stringify(n):null}function OX(e,t){if(t?.method)return t.method.toUpperCase();let{method:n}=uX(e);return n?n.toUpperCase():t?.body?`POST`:`GET`}function kX(e,t){let n;return!e?.signal&&e?.timeout&&(n=setTimeout(()=>t?.abort(),e?.timeout)),{abortTimeout:n,clearTimeout:()=>{n&&clearTimeout(n)}}}var AX=class e extends Error{constructor(t,n){super(n||JSON.stringify(t,null,2)),this.issues=t,Object.setPrototypeOf(this,e.prototype)}};async function jX(e,t){let n=await e[`~standard`].validate(t);if(n.issues)throw new AX(n.issues);return n.value}function MX(e){"@babel/helpers - typeof";return MX=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},MX(e)}function NX(e,t){if(MX(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(MX(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function PX(e){var t=NX(e,`string`);return MX(t)==`symbol`?t:t+``}function FX(e,t,n){return(t=PX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function IX(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 LX(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?IX(Object(n),!0).forEach(function(t){FX(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):IX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const RX=async(e,t)=>{var n;let{hooks:r,url:i,options:a}=await aX(e,t),o=SX(a),s=new AbortController,c=a.signal??s.signal,l=mX(i,a),u=await wX(a),d=DX(a,u),f=OX(i,a),p=LX(LX({},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}=kX(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(LX(LX({},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=_X(h),n={data:null,response:h,request:p};if(e===`json`||e===`text`){let e=await h.text();n.data=await(p.jsonParser??bX)(e)}else n.data=await h[e]();p?.output&&p.output&&!p.disableValidation&&(n.data=await jX(p.output,n.data));for(let e of r.onSuccess)if(e){var v;await e(LX(LX({},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??bX,b=await h.text(),x=vX(b),S=x?await y(b):null,ee={response:h,responseText:b,request:p,error:LX(LX({},S),{},{status:h.status,statusText:h.statusText})};for(let e of r.onError)if(e){var te;await e(LX(LX({},ee),{},{response:t!=null&&(te=t.hookOptions)!=null&&te.cloneResponse?h.clone():h}))}if(t?.retry){let n=cX(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 RX(e,LX(LX({},t),{},{retryAttempt:i+1}))}}if(t?.throw)throw new iX(h.status,h.statusText,x?S:b);return{data:null,error:LX(LX({},S),{},{status:h.status,statusText:h.statusText})}},zX=/* @__PURE__ */ new Set([301,302,303,307,308]);function BX(e){return e.type===`opaqueredirect`||zX.has(e.status)}function VX(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 HX={redirect:`manual`};async function UX(e,t){let n=!1,r=t?.onError,i=await RX(e,{...t,...HX,async onError(e){BX(e.response)&&(n=!0),await r?.(e)}}).catch(t=>{throw n?VX(e):t});if(n)throw VX(e);return i}function WX(e,t){return t===`basic`?{method:`client_secret_basic`}:e.clientSecret?{method:`client_secret_post`}:{method:`none`}}function GX(e,t,n){if(t.clientSecret||n.has(`client_secret`))throw Error(`${e} token endpoint authentication cannot be combined with clientSecret`)}function KX(e,t){t&&e.set(`client_id`,t)}function qX(e,t){if(!t.clientSecret)throw Error(`${e} token endpoint authentication requires clientSecret`)}function JX(e,t){if(!t)throw Error(`${e} token endpoint authentication requires clientId`)}function YX({body:e,options:t,clientId:n,requireClientSecret:r}){r&&qX(`client_secret_post`,t),t.clientSecret&&(JX(`client_secret_post`,n),KX(e,n),e.set(`client_secret`,t.clientSecret))}function XX({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`);qX(`client_secret_basic`,t),JX(`client_secret_basic`,n),e.authorization=eX(n,t.clientSecret)}function ZX(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 QX({body:e,headers:t,options:n,tokenEndpoint:r,grantType:i,tokenEndpointAuth:a,authentication:o}){ZX(e);let s=GY(n.clientId);if(e.has(`client_assertion`)){if(a)throw Error(`client_assertion body parameters cannot be combined with tokenEndpointAuth`);GX(`private_key_jwt`,n,e),KX(e,s);return}let c=a??WX(n,o);if(c.method===`custom`)await c.customizeRequest({body:e,headers:t,options:n,tokenEndpoint:r,grantType:i}),ZX(e);else if(c.method===`private_key_jwt`){if(GX(c.method,n,e),JX(c.method,s),!r)throw Error(`private_key_jwt token endpoint authentication requires tokenEndpoint`);let t=await rX({getClientAssertion:c.getClientAssertion,context:{clientId:s,tokenEndpoint:r,grantType:i}});KX(e,s);for(let[n,r]of Object.entries(t))e.set(n,r)}else if(c.method===`none`){if(GX(c.method,n,e),i===`client_credentials`)throw Error(`none token endpoint authentication cannot be used with client_credentials grant`);JX(c.method,s),KX(e,s)}else c.method===`client_secret_basic`?XX({headers:t,options:n,clientId:s,body:e}):YX({body:e,options:n,clientId:s,requireClientSecret:a?.method===`client_secret_post`})}const $X=[`EdDSA`,`ES256`,`ES512`,`PS256`,`RS256`],eZ=/* @__PURE__ */ new Set([`d`,`p`,`q`,`dp`,`dq`,`qi`,`oth`,`k`]);function tZ(e){return{reserve:({key:t,expiresAt:n})=>e.reserveVerificationValue({identifier:`dpop-proof:${t}`,value:t,expiresAt:n})}}function nZ(e,t){return Object.assign(Error(t),{code:e})}function rZ(e){return e instanceof Error&&`code`in e&&e.code===`invalid_dpop_proof`}function iZ(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 aZ(e){return iZ(e)?.token??e}function oZ(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 sZ(e){let t=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e));return rP(new Uint8Array(t))}async function cZ(e){return YF(e,`sha256`)}function lZ(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 uZ(e){return lZ(e.cnf)}function dZ(e,t){let n=e[t];return typeof n==`string`&&n.length>0?n:void 0}function fZ(e,t){let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:void 0}function pZ(e,t){if(!e||e===`none`||e.startsWith(`HS`))throw nZ(`invalid_dpop_proof`,`DPoP proof must use an asymmetric JWS algorithm`);if(!t.includes(e))throw nZ(`invalid_dpop_proof`,`DPoP proof uses an unsupported JWS algorithm`)}function mZ(e){if(!e||typeof e!=`object`||Array.isArray(e))throw nZ(`invalid_dpop_proof`,`DPoP proof header must include a public jwk`);if(e.kty===`oct`)throw nZ(`invalid_dpop_proof`,`DPoP proof jwk must be asymmetric`);for(let t of eZ)if(t in e)throw nZ(`invalid_dpop_proof`,`DPoP proof jwk must not contain private key material`)}async function hZ(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 rP(new Uint8Array(n))}async function gZ(e,t){if(e&&!await e.reserve(t))throw nZ(`invalid_dpop_proof`,`DPoP proof jti has already been used`)}async function _Z({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=$X,replayStore:l}){if(!e||e.split(`.`).length!==3)throw nZ(`invalid_dpop_proof`,`DPoP proof must be a compact JWT`);let u;try{u=nI(e)}catch(e){throw nZ(`invalid_dpop_proof`,e instanceof Error?e.message:`DPoP proof header is invalid`)}if(u.typ!==`dpop+jwt`)throw nZ(`invalid_dpop_proof`,`DPoP proof typ must be "dpop+jwt"`);pZ(u.alg,c),mZ(u.jwk);let d;try{d=(await HF(e,await tI(u.jwk,u.alg),{typ:`dpop+jwt`})).payload}catch(e){throw nZ(`invalid_dpop_proof`,e instanceof Error?e.message:`DPoP proof signature is invalid`)}let f=dZ(d,`htm`),p=dZ(d,`htu`),m=dZ(d,`jti`),h=fZ(d,`iat`);if(!f||!p||!m||h===void 0)throw nZ(`invalid_dpop_proof`,`DPoP proof must include htm, htu, jti, and iat claims`);if(m.length>512)throw nZ(`invalid_dpop_proof`,`DPoP proof jti is too large`);if(f.toUpperCase()!==t.toUpperCase())throw nZ(`invalid_dpop_proof`,`DPoP proof htm does not match the request method`);let g,_;try{g=oZ(n),_=oZ(p)}catch(e){throw nZ(`invalid_dpop_proof`,e instanceof Error?e.message:`DPoP proof htu is invalid`)}if(_!==g)throw nZ(`invalid_dpop_proof`,`DPoP proof htu does not match the request URL`);if(h>o+5||o-h>s)throw nZ(`invalid_dpop_proof`,`DPoP proof iat is outside the accepted window`);let v=dZ(d,`ath`);if(a&&!v)throw nZ(`invalid_dpop_proof`,`DPoP proof must include an ath claim`);if(r!==void 0&&v!==await sZ(r))throw nZ(`invalid_dpop_proof`,`DPoP proof ath does not match the access token`);let y=await cZ(u.jwk);if(i!==void 0&&y!==i)throw nZ(`invalid_dpop_proof`,`DPoP proof key does not match the bound token`);let b=await hZ({jkt:y,htm:f.toUpperCase(),htu:g,jti:m}),x=/* @__PURE__ */ new Date((h+s)*1e3);return await gZ(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 vZ(e,t){return Object.assign(Error(t),{code:e})}function yZ(e){return e instanceof Error&&`code`in e&&(e.code===`invalid_token`||e.code===`invalid_dpop_proof`)}async function bZ({payload:e,authorization:t,proofJwt:n,method:r,url:i,replayStore:a,proofMaxAgeSeconds:o,signingAlgorithms:s}){let c=uZ(e);if(c){if(t.scheme!==`DPoP`)throw vZ(`invalid_token`,`DPoP-bound access token requires the DPoP authorization scheme`);if(!n)throw vZ(`invalid_dpop_proof`,`DPoP proof header is required`);try{await _Z({proofJwt:n,method:r,url:i,accessToken:t.token,expectedJkt:c,requireAth:!0,proofMaxAgeSeconds:o,signingAlgorithms:s,replayStore:a})}catch(e){throw rZ(e)?vZ(`invalid_dpop_proof`,e.message):e}}else if(t.scheme===`DPoP`)throw vZ(`invalid_token`,`DPoP authorization requires a DPoP-bound access token`)}const xZ=/* @__PURE__ */ new Set([`grant_type`,`refresh_token`,`__proto__`,`constructor`,`prototype`]);async function SZ({refreshToken:e,options:t,authentication:n,tokenEndpointAuth:r,tokenEndpoint:i,extraParams:a,resource:o}){t=typeof t==`function`?await t():t;let s=wZ({refreshToken:e,options:t,extraParams:a,resource:o});return await QX({body:s.body,headers:s.headers,options:t,tokenEndpoint:i??``,grantType:`refresh_token`,tokenEndpointAuth:r,authentication:n}),s}function CZ(e,t){if(t)for(let[n,r]of Object.entries(t))xZ.has(n)||e.set(n,r)}function wZ({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&&CZ(i,n),{body:i,headers:a}}async function TZ({refreshToken:e,options:t,tokenEndpoint:n,authentication:r,tokenEndpointAuth:i,extraParams:a,resource:o}){let{body:s,headers:c}=await SZ({refreshToken:e,options:t,authentication:r,tokenEndpointAuth:i,tokenEndpoint:n,extraParams:a,resource:o}),{data:l,error:u}=await UX(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:HY(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 EZ({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=DZ({code:e,codeVerifier:t,redirectURI:n,options:r,deviceId:s,headers:c,additionalParams:l,resource:u});return await QX({body:d.body,headers:d.headers,options:r,tokenEndpoint:o??``,grantType:`authorization_code`,tokenEndpointAuth:a,authentication:i}),d}function DZ({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 OZ({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 EZ({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 UX(i,{method:`POST`,body:d,headers:f});if(m)throw m;return UY(p)}tP.code,QN.code,eP.code;const kZ=/* @__PURE__ */ new Map,AZ=/* @__PURE__ */ new WeakMap;function jZ(e,t){if(e&&!(Date.now()-e.fetchedAt>=3e5)&&(!t||e.jwks.keys.some(e=>e.kid===t)))return e.jwks}async function MZ(e){let t=typeof e==`string`?await UX(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 NZ(e,t){return(await PZ(e,t)).jwks}async function PZ(e,t){let n;try{n=nI(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=AZ.get(e),i=t.forceRefresh?void 0:jZ(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 AZ.set(e,{jwks:a,fetchedAt:o,...t.forceRefresh&&!r?{noKidRefetchedAt:o}:{}}),{jwks:a,fromCache:!1,kid:r}}let i=t.jwksFetch,a=kZ.get(i),o=t.forceRefresh?void 0:jZ(a,r);if(!o){let e=await MZ(t.jwksFetch),n=Date.now();return kZ.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 FZ(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 IZ(e,t,n=`exact`){return typeof e==`string`?e===t||n===`exact-or-sha256`&&e===await FZ(t):!1}function LZ(e){let t=e.options??{};return!t.disableIdTokenSignIn&&!!(e.idToken||t.verifyIdToken)}async function RZ(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}=nI(t),{payload:s}=await HF(t,a.jwks,{issuer:a.issuer,audience:a.audience,algorithms:a.algorithms??(o?[o]:void 0),maxTokenAge:a.maxTokenAge});return!(n&&!await IZ(s.nonce,n,a.nonceComparison)||a.verifyClaims&&!a.verifyClaims(s))}catch{return!1}}function zZ(e,t){return{linked:!1,error:{code:e,message:t}}}async function BZ(e,{link:t,userInfo:n,account:r,profile:i,scopes:a}){try{await qJ(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(!Nq(e)||!e.body?.code)throw e;return zZ(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`),zZ(bq.UNABLE_TO_LINK_ACCOUNT);if(n.email?.toLowerCase()!==t.email.toLowerCase()&&e.context.options.account?.accountLinking?.allowDifferentEmails!==!0)return zZ(bq.EMAIL_DOES_NOT_MATCH);let o=await e.context.internalAdapter.findAccountByKey(r);if(o){if(o.userId.toString()!==t.userId.toString())return zZ(bq.ACCOUNT_ALREADY_LINKED_TO_DIFFERENT_USER);let n=WY(o.scope,a),i=Object.fromEntries(Object.entries({providerId:r.providerId,accessToken:await FY(r.accessToken,e.context),refreshToken:await FY(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 FY(r.accessToken,e.context),refreshToken:await FY(r.refreshToken,e.context),scope:a?.join(`,`)??r.scope}))return zZ(bq.UNABLE_TO_LINK_ACCOUNT);return await UZ(e,t.userId,n),{linked:!0}}async function VZ(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),xq(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(Nq(t))throw t;e.context.logger.error(`Better auth was unable to query your database.
61
- Error: `,t),xq(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 qJ(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 FY(r.accessToken,e.context),refreshToken:await FY(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 KK(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 qJ(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 FY(r.accessToken,e.context),refreshToken:await FY(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 KK(e,o))}catch(t){if(Nq(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 UZ(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=aG(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=aG(e.context.options,p,`create`),h={accessToken:await FY(r.accessToken,e.context),refreshToken:await FY(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 $V(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 KK(e,_))}catch(t){if(Nq(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 HZ(e,f,i,t.deferNonDatabaseWrites),m&&!f.emailVerified)return!p&&e.context.options.emailVerification?.sendOnSignIn&&await HZ(e,f,i,t.deferNonDatabaseWrites),{error:bq.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 HZ(e,t,n,r){let i=e.context.options.emailVerification?.sendVerificationEmail;if(!i)return;let a=async()=>{try{let r=await RY(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 eH(a):await a()}async function UZ(e,t,n){if(e.context.options.account?.accountLinking?.updateUserInfoOnLink===!0)try{let{email:r,emailVerified:i,name:a,image:o,...s}=n,c=aG(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 WZ=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(!GY(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 YY({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})=>OZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),idToken:{jwks:e=>GZ(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=>TZ({refreshToken:n,options:e,tokenEndpoint:t}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.idToken)return null;let n=rI(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}},GZ=async e=>{let{data:t}=await RX(`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 tI(n,n.alg)},KZ=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),YY({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})=>OZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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}},qZ=`https://dash.cloudflare.com/oauth2/token`,JZ=e=>{let t=e.clientSecret?`client_secret_basic`:`none`;return{method:e.tokenEndpointAuthMethod??t}},YZ=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),YY({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})=>OZ({code:t,codeVerifier:n,redirectURI:r,options:e,tokenEndpoint:qZ,tokenEndpointAuth:JZ(e)}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>TZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:qZ,tokenEndpointAuth:JZ(e)}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await RX(`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}),XZ=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(!GY(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 YY({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})=>OZ({code:t,codeVerifier:n,redirectURI:i,options:e,tokenEndpoint:r}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>TZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:r}),idToken:{jwks:t=>ZZ(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=rI(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 RX(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}},ZZ=async(e,t,n)=>{let r=`https://cognito-idp.${t}.amazonaws.com/${n}/.well-known/jwks.json`;try{let{data:t}=await RX(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 tI(n,n.alg)}catch(e){throw E.error(`Failed to fetch Cognito public key:`,e),e}},QZ=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 YY({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})=>OZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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}},$Z=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 YY({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 OZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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 eQ(e,t){let n=GY(t.clientId);if(!n||!t.clientSecret)return null;let r=Array.isArray(t.clientId)?t.clientId:[t.clientId],{data:i,error:a}=await RX(`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 tQ=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(!GY(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 YY({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})=>OZ({code:t,redirectURI:n,options:e,tokenEndpoint:`https://graph.facebook.com/v24.0/oauth/access_token`}),idToken:{jwks:lde(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=>TZ({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=rI(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 eQ(n,e);if(!r)return null;let{data:i,error:a}=await RX(`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}),nQ=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 YY({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})=>OZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t,authentication:`basic`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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}},rQ=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),YY({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 EZ({code:n,codeVerifier:r,redirectURI:i,options:e}),{data:s,error:c}=await RX(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):UY(s)},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`https://api.github.com/user`,{headers:{"User-Agent":`better-auth`,authorization:`Bearer ${t.accessToken}`}});if(r)return null;let{data:i}=await RX(`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}},iQ=(e=``)=>e.split(`://`).map(e=>e.replace(/\/{2,}/g,`/`)).join(`://`),aQ=e=>{let t=e||`https://gitlab.com`;return{authorizationEndpoint:iQ(`${t}/oauth/authorize`),tokenEndpoint:iQ(`${t}/oauth/token`),userinfoEndpoint:iQ(`${t}/api/v4/user`)}},oQ=e=>{let{authorizationEndpoint:t,tokenEndpoint:n,userinfoEndpoint:r}=aQ(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 YY({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})=>OZ({code:t,redirectURI:r,options:e,codeVerifier:i,tokenEndpoint:n}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>TZ({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 RX(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}},sQ=(e,t)=>e?typeof t!=`string`||!t?!1:e===`*`||t===e:!0,cQ=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(!GY(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 YY({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})=>OZ({code:t,codeVerifier:n,redirectURI:r,options:e,tokenEndpoint:`https://oauth2.googleapis.com/token`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>TZ({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=>sQ(e.hd,t.hd):void 0},async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.idToken)return null;let n=rI(t.idToken);if(!sQ(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 RX(`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=>tI(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),YY({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})=>OZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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),YY({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})=>OZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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),YY({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 OZ({code:t,redirectURI:n,options:e,tokenEndpoint:`https://id.kick.com/oauth/token`,codeVerifier:r})},refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>TZ({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 RX(`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 YY({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})=>OZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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=rI(t.idToken)}catch{}if(!n){let{data:e}=await RX(`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),YY({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})=>OZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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 YY({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 OZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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}},lQ=`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(!GY(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),YY({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 OZ({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===lQ||t===`consumers`&&r!==lQ)}},async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);if(!t.idToken)return null;let n=rI(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 RX(`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, ${kU.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),TZ({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 RX(`${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 tI(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),YY({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})=>OZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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),YY({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})=>OZ({code:n,redirectURI:r,options:e,tokenEndpoint:t,authentication:`basic`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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 YY({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})=>OZ({code:t,codeVerifier:n,redirectURI:i,options:e,tokenEndpoint:r}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>TZ({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=rI(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 YY({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 OZ({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 TZ({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 RX(`${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=rI(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),YY({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})=>OZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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}},uQ=`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),YY({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})=>OZ({code:t,codeVerifier:n,redirectURI:r,options:e,tokenEndpoint:uQ,authentication:`basic`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>TZ({refreshToken:t,options:{clientId:e.clientId,clientKey:e.clientKey,clientSecret:e.clientSecret},tokenEndpoint:uQ,authentication:`basic`}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await RX(`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 dQ({identifier:e,namespace:t}){let n=be().safeParse(`${e}@${t}.placeholder.invalid`);if(!n.success)throw TypeError(`Invalid placeholder email`);return n.data}const fQ={apple:WZ,atlassian:KZ,cloudflare:YZ,cognito:XZ,discord:QZ,facebook:tQ,figma:nQ,github:rQ,microsoft:ife,google:cQ,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),YY({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})=>OZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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),YY({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})=>OZ({code:n,codeVerifier:r,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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),YY({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})=>OZ({code:n,redirectURI:r,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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=rI(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),YY({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})=>OZ({code:n,codeVerifier:r,authentication:`basic`,redirectURI:i,options:e,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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 RX(`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||dQ({identifier:n.data.id,namespace:`twitter`}),image:n.data.profile_image_url,emailVerified:o,...s},data:n}},options:e}},dropbox:$Z,kick:efe,linear:nfe,linkedin:rfe,gitlab:oQ,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))JY.has(e)||e!==`client_key`&&o.searchParams.set(e,t);return o},validateAuthorizationCode:async({code:r,codeVerifier:i,redirectURI:a})=>OZ({code:r,codeVerifier:i,redirectURI:e.redirectURI||a,options:{},tokenEndpoint:t,tokenEndpointAuth:n}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async e=>TZ({refreshToken:e,options:{},tokenEndpoint:t,tokenEndpointAuth:n}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await RX(`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||dQ({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),YY({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})=>OZ({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=>TZ({refreshToken:e,options:n,tokenEndpoint:t,tokenEndpointAuth:r}),async getUserInfo(t){if(e.getUserInfo)return e.getUserInfo(t);let{data:n,error:r}=await RX(`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||dQ({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),YY({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})=>OZ({code:n,redirectURI:e.redirectURI||r,options:e,tokenEndpoint:t,authentication:`post`}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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:dQ({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),YY({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})=>OZ({code:t,codeVerifier:n,redirectURI:e.redirectURI||i,options:e,tokenEndpoint:r}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async t=>TZ({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 RX(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),YY({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})=>OZ({code:n,codeVerifier:r,redirectURI:e.redirectURI||i,options:e,deviceId:a,tokenEndpoint:t}),refreshAccessToken:e.refreshAccessToken?e.refreshAccessToken:async n=>TZ({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 RX(`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})=>YY({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})=>OZ({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=>TZ({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 RX(`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)),YY({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})=>OZ({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 RX(`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))JY.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 RX(`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 RX(`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 RX(`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||dQ({identifier:o,namespace:`wechat`}),image:r.headimgurl,emailVerified:!1,...a},data:r}},options:e})},ffe=Object.keys(fQ),pQ=De(ffe).or(A());function mQ(e){return e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[]}const pfe=X(`/list-accounts`,{method:`GET`,use:[zJ],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}=nG(e.context.options,t);return{...r,scopes:mQ(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:pQ,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:XY,additionalData:ve(A(),ke()).optional()}),use:[zJ],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 OY(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(!LZ(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 RZ(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(Sq(e.body.provider,{source:`id_token`}),{provider:e.body.provider}),D.from(`UNAUTHORIZED`,Y.USER_EMAIL_NOT_FOUND);let o=await MY(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 FY(e.body.idToken.accessToken,e.context),idToken:r,refreshToken:await FY(e.body.idToken.refreshToken,e.context)}).filter(([e,t])=>t!==void 0));return await e.context.internalAdapter.updateAccount(s.id,i),await UZ(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 FY(e.body.idToken.accessToken,e.context),idToken:r,refreshToken:await FY(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 UZ(e,t.user.id,a.user),e.json({url:``,status:!0,redirect:!1})}let r=kq(n),i=await Aq(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}${IY(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:[VJ],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 hQ(e,t){let n=await LJ(e,{disableCookieCache:IJ(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 gQ=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 _Q(e,t,{resolvedUserId:n,selection:r}){return(!UW(e.context.options)||t.userId===n)&&(`accountId`in r?t.id===r.accountId:!0)}async function vQ(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 qK(e);if(r&&_Q(e,r,{resolvedUserId:t,selection:n}))return{account:r,accountCookie:r}}throw D.from(`BAD_REQUEST`,Y.ACCOUNT_NOT_FOUND)}async function yQ(e,{resolvedUserId:t,selection:n,account:r}){let i=r??(await vQ(e,{resolvedUserId:t,selection:n})).account;if(!_Q(e,i,{resolvedUserId:t,selection:n}))throw D.from(`BAD_REQUEST`,Y.ACCOUNT_NOT_FOUND);let a=await OY(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 PY(i.refreshToken,e.context);t=await a.refreshAccessToken(n,e);let r={accessToken:await FY(t?.accessToken,e.context),accessTokenExpiresAt:t?.accessTokenExpiresAt,refreshToken:t?.refreshToken?await FY(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 KK(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 PY(i.accessToken??``,e.context),accessTokenExpiresAt:r,scopes:mQ(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:gQ,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 yQ(e,{resolvedUserId:await hQ(e,t),selection:e.body});return e.json(n)}),_fe=X(`/refresh-token`,{method:`POST`,body:gQ,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 vQ(e,{resolvedUserId:await hQ(e,t),selection:e.body}),i=await OY(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 PY(a,e.context),o=await i.refreshAccessToken(t,e),s=o.refreshToken?await FY(o.refreshToken,e.context):a,c=o.refreshTokenExpiresAt??n.refreshTokenExpiresAt,l={accessToken:await FY(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 KK(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:gQ},async e=>{let{userId:t}=e.query,n=await hQ(e,t),{account:r}=await vQ(e,{resolvedUserId:n,selection:e.query}),i=await OY(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 yQ(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}})}),bQ=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:bQ.optional(),query:bQ.optional(),metadata:{...Mq,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?bQ.parse(e.body):{},n=e.query?bQ.parse(e.query):{},r=bQ.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=bQ.parse(e.query);else if(e.method===`POST`)t=bQ.parse(e.body);else throw Error(`Unsupported method`)}catch(t){e.context.logger.error(`INVALID_CALLBACK_REQUEST`,t);let r=vq(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 OY(e.context.socialProviders,{value:e.params.id});if(t?.allowIdpInitiated){let n=kq(t),{state:r,codeVerifier:i}=await Aq(e,{idTokenNonce:n}),a=await t.createAuthorizationURL({state:r,codeVerifier:i,idTokenNonce:n,redirectURI:`${e.context.baseURL}${IY(t)}`});throw e.redirect(a.toString())}}if(!a){e.context.logger.error(`State not found`,i);let t=vq(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 jq(e);function _(t,r){let i=p??n,a=new URLSearchParams({error:t});r&&a.set(`error_description`,r);let o=vq(i,a);throw e.redirect(o)}if(i&&_(i,o),!r)throw e.context.logger.warn(`Code not found`),_(bq.NO_CODE);let v=await OY(e.context.socialProviders,{value:e.params.id});if(!v)throw e.context.logger.warn(`OAuth provider not found`,{providerId:e.params.id}),_(bq.PROVIDER_NOT_FOUND);if(l&&v.issuer&&l!==v.issuer)throw e.context.logger.error(`OAuth issuer mismatch`,{expected:v.issuer,received:l}),_(bq.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}),_(bq.NONCE_BINDING_MISSING);let y;try{y=await v.validateAuthorizationCode({code:r,codeVerifier:u,deviceId:s,redirectURI:`${e.context.baseURL}${IY(v)}`})}catch(t){throw e.context.logger.error(``,t),_(bq.INVALID_CODE)}if(!y)throw _(bq.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`),_(bq.UNABLE_TO_GET_USER_INFO);let S=x.user,ee=AY(x.data),te;try{te=await jY(v,y,x.data)}catch(t){return e.context.logger.error(`Unable to derive provider account identity`,{providerId:v.id,error:t}),_(bq.UNABLE_TO_GET_USER_INFO)}let{accountId:C}=te;if(!d)throw e.context.logger.error(`No callback URL found`),_(bq.NO_CALLBACK_URL);let ne={...te,...y,scope:y.scopes?.join(`,`)};if(f){let t=await BZ(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(Sq(v.id)),_(bq.EMAIL_NOT_FOUND);let T;try{T=await VZ(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 Nq(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 rq(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 xQ(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
- ${xQ(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:{...Mq,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?xQ(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=vq(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:{...Mq,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 SQ(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 CQ(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){CQ(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`&&CQ(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 wQ(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:[$q(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=lG(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:[$q(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(wQ(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(wQ(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;SQ(e,n),CQ(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:[BJ]},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:pQ,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:XY,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 OY(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(!LZ(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 RZ(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(Sq(e.body.provider,{source:`id_token`}),{provider:e.body.provider}),D.from(`UNAUTHORIZED`,Y.USER_EMAIL_NOT_FOUND);let o=await MY(t,i,a.data),s=AY(a.data),c=await VZ(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===bq.EMAIL_NOT_VERIFIED?D.from(`FORBIDDEN`,Y.EMAIL_NOT_VERIFIED):D.from(`UNAUTHORIZED`,{message:c.error,code:`OAUTH_LINK_ERROR`});return await rq(e,c.data),e.json({redirect:!1,token:c.data.session.token,url:void 0,user:$W(e.context.options,c.data.user)})}let n=kq(t),{codeVerifier:r,state:i}=await Aq(e,{additionalData:e.body.additionalData,idTokenNonce:n}),a=await t.createAuthorizationURL({state:i,codeVerifier:r,idTokenNonce:n,redirectURI:`${e.context.baseURL}${IY(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:[tJ],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);CQ(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 RY(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},LY(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 rq(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:$W(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(),TQ=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)}sq(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(TQ({url:r,redirect:t}))}return e.json(TQ())}),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:[tJ],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=>$V(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);SQ(e,i),CQ(e,i);let l=e.context.options.emailAndPassword.requireEmailVerification||e.context.options.emailAndPassword.autoSignIn===!1,u=e.context.options.emailAndPassword.autoSignIn===!1||l,d=iG(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=eG(e.context.options,a)}else s=eG(e.context.options,{...i,...d,id:r});return e.json({token:null,user:$W(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},LY(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(Nq(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 RY(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},LY(e.request)))}if(u)return e.json({token:null,user:$W(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 rq(e,{session:v,user:g},s===!1),e.json({token:v.token,user:$W(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:[zJ],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=oG(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&&IJ(e))throw sq(e),D.from(`UNAUTHORIZED`,Y.FAILED_TO_GET_SESSION);let a=i??{...n.session,...r,updatedAt:/* @__PURE__ */ new Date};return await rq(e,{session:a,user:n.user}),e.json({session:tG(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:[zJ],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=iG(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 rq(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:[BJ],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;SQ(e,t),CQ(e,t),CQ(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 rq(e,{session:t,user:i.user}),s=t.token}return e.json({token:s,user:$W(e.context.options,i.user)})}),Hfe=X.serverOnly({method:`POST`,body:j({newPassword:A().meta({description:`The new password to set is required`})}),use:[BJ]},async e=>{let{newPassword:t}=e.body,n=e.context.session;SQ(e,t),CQ(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:[BJ],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){CQ(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 EQ({...e,query:{token:e.body.token}}),e.json({success:!0,message:`User deleted`});if(e.context.options.user.deleteUser?.sendDeleteAccountVerification){let n=CH(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),sq(e);let r=e.context.options.user.deleteUser?.afterDelete;return r&&await r(t.user,e.request),e.json({success:!0,message:`User deleted`})}),EQ=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:[$q(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 LJ(e,{disableCookieCache:IJ(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),sq(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:[BJ],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 RY(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 rq(e,{session:e.context.session.session,user:{...e.context.session.user,email:t}}),r){let n=await RY(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 RY(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 RY(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})}),DQ=aY((e,t,n)=>{if(Array.isArray(e[t])&&Array.isArray(n))return e[t]=n,!0}),OQ=/* @__PURE__ */ new WeakMap;function kQ(e,t){let n=e.options;return n?.operationId??n?.metadata?.openapi?.operationId??t??e.path??`/:virtual`}function AQ(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 jQ(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=OQ.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=OQ.get(o.handler)??`unknown`,c=n.path??`/:virtual`,l=await i(`hook before ${c} ${s}`,{[QJ]:`before`,[v]:c,[$J]:s,[ZJ]:r},()=>o.handler({...e,returnHeaders:!0})).catch(t=>{throw Nq(t)&&b(e.context.logger.level,`debug`)&&(t.stack=t.errorStack),t});AQ(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=DQ(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=OQ.get(a.handler)??`unknown`,o=n.path??`/:virtual`,s=await i(`hook after ${o} ${t}`,{[QJ]:`after`,[v]:o,[$J]:t,[ZJ]:r},()=>a.handler(e)).catch(t=>{if(Nq(t))return b(e.context.logger.level,`debug`)&&(t.stack=t.errorStack),{response:t,headers:jQ(t)};throw t});AQ(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&&(OQ.set(i,`user`),n.push({matcher:()=>!0,handler:i}));let a=e.options.hooks?.after;a&&(OQ.set(a,`user`),r.push({matcher:()=>!0,handler:a}));let o=t.flatMap(e=>(e.hooks?.before??[]).map(t=>(OQ.set(t.handler,`plugin:${e.id}`),t))),s=t.flatMap(e=>(e.hooks?.after??[]).map(t=>(OQ.set(t.handler,`plugin:${e.id}`),t)));return o.length&&n.push(...o),s.length&&r.push(...s),{beforeHooks:n,afterHooks:r}}async function MQ(e,t){let n=ie(t.context.options),r=t.operationId??kQ(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??_H(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,[ZJ]:r},async()=>UV(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=DQ(t,l)}else if(s){let e=l.context.responseHeaders;return c?eK(s,{headers:e}):t.returnHeaders?{headers:e,response:s}:s}l.asResponse=!1,l.returnHeaders=!0,l.returnStatus=!0;let u=await UV(l,()=>n(`handler ${i}`,{[v]:i,[ZJ]:r},()=>e(l))).catch(e=>{if(Nq(e))return{response:e,status:e.statusCode,headers:jQ(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,Nq(u.response)&&b(l.context.logger.level,`debug`)&&(u.response.stack=u.response.errorStack),Nq(u.response)&&!c)throw u.headers&&Object.defineProperty(u.response,he,{enumerable:!1,configurable:!0,writable:!1,value:u.headers}),u.response;return c?eK(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=TY(t),r=e.options.baseURL,i=gH(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 DY(e,n,EY(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=kQ(i,r),a=async()=>{let r=await t,a=r.checkSchema?.();a&&await a;let o=gH(r.options.baseURL)?await Jfe(r,e):r;return MQ(i,{...e,context:o,operationId:n,asResponse:e?.asResponse??_H(e?.request)})};return await GV()?a():qV(/* @__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 NQ(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:FJ(),signOut:Pfe,signUpEmail:Ife(),signInEmail:Mfe(),resetPassword:Ofe,verifyPassword:kfe,verifyEmail:VY,sendVerificationEmail:BY,changeEmail:Wfe,changePassword:Vfe,setPassword:Hfe,updateSession:Rfe(),updateUser:Bfe(),deleteUser:Ufe,requestPasswordReset:Efe,requestPasswordResetCallback:Dfe,listSessions:HJ(),revokeSession:UJ,revokeSessions:WJ,revokeOtherSessions:GJ,linkSocialAccount:mfe,listUserAccounts:pfe,deleteUserCallback:EQ,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}=NQ(e,t),a=new URL(e.baseURL).pathname;return FK(r,{routerContext:e,openapi:{disabled:!0},basePath:a,routerMiddleware:[{path:`/**`,middleware:Qq},...i],allowedMediaTypes:[`application/json`],skipTrailingSlashes:t.advanced?.skipTrailingSlashes??!1,async onRequest(t){let r=e.options.disabledPaths||[],i=gq(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 MJ(s,e);if(c)return c;for(let t of e.options.plugins||[])if(t.onRequest){let r=await n(`onRequest ${t.id}`,{[QJ]:`onRequest`,[$J]:`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}`,{[QJ]:`onResponse`,[$J]:`plugin:${r.id}`,[ee]:t.status},()=>r.onResponse(t,e));if(i)return i.response}return t},onError(n){if(Nq(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}Nq(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 PQ(e,t){return`${oe(e)}\u0000${oe(t)}`}function FQ(e,t){return`${e}\u0000${t}`}function IQ(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 LQ(e){return typeof e==`boolean`?e:typeof e==`number`?e!==0:e===`1`||e?.toLowerCase()===`true`||e===`t`}function RQ(e){return new Map(e.map(e=>{let t=[...e.columns].sort((e,t)=>e.position-t.position);return[PQ(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 RQ(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=PQ(t,n),a=e.nonUnique??e.non_unique??e.NON_UNIQUE,s=a===void 0?LQ(e.isUnique??e.is_unique):!LQ(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=LQ(e.isPartial),d=!LQ(e.isDisabled)&&!LQ(e.isHypothetical)&&(e.isValid===void 0||LQ(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 RQ([...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(FQ(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(FQ(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 zQ(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=PQ(e,i),o=ee.get(a);if(o){if(!IQ(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(!IQ({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 BQ(e){let t=await jU(`SHA-256`).digest(e);return kU.encode(t)}const ype=e=>re(`a-z`,`A-Z`,`0-9`)(e||32);let VQ;async function HQ(){if(VQ)return VQ;try{let e=process.cwd();if(!e)return;let t=await st.readFile(Ue.join(e,`package.json`),`utf-8`);return VQ=JSON.parse(t),VQ}catch{}}async function UQ(e){if(VQ)return VQ.dependencies?.[e]||VQ.devDependencies?.[e]||VQ.peerDependencies?.[e];try{let t=process.cwd();if(!t)throw Error(`no-cwd`);let n=Ue.join(t,`node_modules`,e,`package.json`),r=await st.readFile(n,`utf-8`);return JSON.parse(r).version||await WQ(e)||void 0}catch{}return WQ(e)}async function WQ(e){let t=await HQ();if(t)return{...t.dependencies,...t.devDependencies,...t.peerDependencies}[e]}async function bpe(){return(await HQ())?.name}async function xpe(){try{let e=Je.cpus();return{deploymentVendor:Spe(),systemPlatform:Je.platform(),systemRelease:Je.release(),systemArchitecture:Je.arch(),cpuCount:e.length,cpuModel:e.length?e[0].model:null,cpuSpeed:e.length?e[0].speed:null,memory:Je.totalmem(),isWSL:await Dpe(),isDocker:await KQ(),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 GQ;async function Cpe(){try{return rt.statSync(`/.dockerenv`),!0}catch{return!1}}async function wpe(){try{return rt.readFileSync(`/proc/self/cgroup`,`utf8`).includes(`docker`)}catch{return!1}}async function KQ(){return GQ===void 0&&(GQ=await Cpe()||await wpe()),GQ}let qQ;const Tpe=async()=>{try{return rt.statSync(`/run/.containerenv`),!0}catch{return!1}};async function Epe(){return qQ===void 0&&(qQ=await Tpe()||await KQ()),qQ}async function Dpe(){try{return process.platform===`linux`&&(Je.release().toLowerCase().includes(`microsoft`)||rt.readFileSync(`/proc/version`,`utf8`).toLowerCase().includes(`microsoft`))?!await Epe():!1}catch{return!1}}let JQ=null;async function YQ(e){if(JQ)return JQ;let t=await bpe();return t?(JQ=await BQ(e?e+t:t),JQ):e?(JQ=await BQ(e),JQ):(JQ=ype(32),JQ)}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 UQ(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 UQ(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 RX(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 YQ(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 YQ(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=VW(t);r||(t=oY(t,{session:{cookieCache:{enabled:!0,strategy:`jwe`,refreshCache:!0,maxAge:t.session?.expiresIn||604800}}})),t.database||(t=oY(t,{account:{storeAccountCookie:!0}}));let i=t.plugins||[],a=CY(t),o=te(t.logger),s=gH(t.baseURL);if(gH(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:fH(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=gJ(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=eq(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=fQ[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 wY(t),w=await kY(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=>qq(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||CU,verify:t.emailAndPassword?.password?.verify||wU,config:{minPasswordLength:t.emailAndPassword?.minPasswordLength||8,maxPasswordLength:t.emailAndPassword?.maxPasswordLength||128},checkPassword:wfe},setNewSession(e){this.newSession=e},newSession:null,adapter:e,internalAdapter:nY(e,{options:t,logger:o,hooks:t.databaseHooks?[{source:`user`,hooks:t.databaseHooks}]:[],generateId:v}),createAuthCookie:$K(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=SY(T);return uG(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 zQ(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}=NQ(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(gH(e.baseURL))a=await DY(r,t,EY(r.options));else{a=Object.create(Object.getPrototypeOf(r),Object.getOwnPropertyDescriptors(r));let e=r.options;if(!r.options.baseURL){let n=fH(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:pH(n)||void 0},e=a.options}a.trustedOrigins=await wY(e,t),a.trustedProviders=await kY(e,t)}let{handler:o}=Zfe(a,e);return QV(a.adapter,()=>o(t))};return{handler:a,fetch:a,api:r,options:e,$context:n,$ERROR_CODES:{...i,...Y}}},Lpe=e=>Ipe(e,Fpe),XQ=YV({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 ZQ(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*$/,QQ={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 QQ)return QQ[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 $Q(e){return e==null?null:typeof e==`object`?e:w(e)}function e$(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=>e$(e.metadata));if(r.length===0)return;let i=r.map(async t=>{let n=$Q(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 t$(e,t,n){let r=$Q(t.metadata);if(e$(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 n$(e){return`api-key:${e}`}function r$(e){return`api-key:by-id:${e}`}function i$(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 a$(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 o$(e,t){return t.customStorage?t.customStorage:e.context.secondaryStorage||null}function s$(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 c$(e,t,n){let r=n$(t);return a$(await n.get(r))}async function l$(e,t,n){let r=r$(t);return a$(await n.get(r))}const u$=/* @__PURE__ */ new Map;function qpe(e,t){let n=(u$.get(e)??Promise.resolve()).then(t,t).finally(()=>{u$.get(e)===n&&u$.delete(e)});return u$.set(e,n),n}async function d$(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 f$(e,t,n,r,i){let a=Kpe(t),o=i$(t.referenceId);i.fallbackToDatabase?await Promise.all([n.set(n$(t.key),a,r),n.set(r$(t.id),a,r),n.delete(o)]):(await Promise.all([n.set(n$(t.key),a,r),n.set(r$(t.id),a,r)]),await d$(n,o,e=>e.includes(t.id)?e:[...e,t.id]))}async function Jpe(e,t,n,r){let i=i$(t.referenceId);r.fallbackToDatabase?await Promise.all([n.delete(n$(t.key)),n.delete(r$(t.id)),n.delete(i)]):await Promise.all([n.delete(n$(t.key)),n.delete(r$(t.id)),d$(n,i,e=>e.filter(e=>e!==t.id))])}async function p$(e,t,n){let r=o$(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 c$(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 f$(e,i,r,s$(i),n),i}return n.storage===`secondary-storage`?r?await c$(e,t,r):null:await e.context.adapter.findOne({model:`apikey`,where:[{field:`key`,value:t}]})}async function m$(e,t,n){let r=o$(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 l$(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 f$(e,i,r,s$(i),n),i}return n.storage===`secondary-storage`?r?await l$(e,t,r):null:await e.context.adapter.findOne({model:`apikey`,where:[{field:`id`,value:t}]})}async function h$(e,t,n){let r=o$(e,n),i=s$(t);if(n.storage!==`database`&&n.storage===`secondary-storage`){if(!r)throw Error(`Secondary storage is required when storage mode is 'secondary-storage'`);await f$(e,t,r,i,n)}}async function g$(e,t,n){let r=o$(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 _$(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 v$(e,t,n,r){let i=o$(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=i$(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 ZQ(n,t=>l$(e,t,i),{concurrency:10})).filter(e=>e!=null);return{apiKeys:_$(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 ZQ(l,t=>f$(e,t,i,s$(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=i$(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 ZQ(l,t=>l$(e,t,i),{concurrency:10})).filter(e=>e!=null);return{apiKeys:_$(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 y$(e,t,n,r){let i=Ype(e);if(!i){let e=XQ.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=XQ.USER_NOT_MEMBER_OF_ORGANIZATION;throw D.from(`FORBIDDEN`,e)}if(!await Xpe(e,a.role,n,r,i)){let e=XQ.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 b$=(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:WW().meta({description:`User Id of the user that the Api Key belongs to. server-only. Eg: "user-id"`}).optional(),organizationId:WW().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=w$(n.context,t,i),_=g.customKeyGenerator||e,v=await LJ(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`,XQ.SERVER_ONLY_PROPERTY);if(n.request&&n.body.userId!==void 0)throw D.from(`UNAUTHORIZED`,XQ.UNAUTHORIZED_SESSION);let b=g.references??`user`,x;if(b===`organization`){let e=n.body.organizationId;if(!e){let e=XQ.ORGANIZATION_ID_REQUIRED;throw D.from(`BAD_REQUEST`,e)}let t=v?.user.id||n.body.userId;if(!t)throw D.from(`UNAUTHORIZED`,XQ.UNAUTHORIZED_SESSION);await y$(n,t,e,`create`),x=e}else if(y){if(!v?.user.id){let e=XQ.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=XQ.UNAUTHORIZED_SESSION;throw D.from(`UNAUTHORIZED`,e)}x=t||e}if(l){if(g.enableMetadata===!1)throw D.from(`BAD_REQUEST`,XQ.METADATA_DISABLED);if(typeof l!=`object`)throw D.from(`BAD_REQUEST`,XQ.INVALID_METADATA_TYPE)}if(u&&!d){let e=XQ.REFILL_AMOUNT_AND_INTERVAL_REQUIRED;throw D.from(`BAD_REQUEST`,e)}if(d&&!u){let e=XQ.REFILL_INTERVAL_AND_AMOUNT_REQUIRED;throw D.from(`BAD_REQUEST`,e)}if(o){if(g.keyExpiration.disableCustomExpiresTime===!0){let e=XQ.KEY_DISABLED_EXPIRATION;throw D.from(`BAD_REQUEST`,e)}let e=o/86400;if(g.keyExpiration.minExpiresIn>e){let e=XQ.EXPIRES_IN_IS_TOO_SMALL;throw D.from(`BAD_REQUEST`,e)}if(g.keyExpiration.maxExpiresIn<e){let e=XQ.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`,XQ.INVALID_PREFIX_LENGTH);if(a){if(a.length<g.minimumNameLength||a.length>g.maximumNameLength)throw D.from(`BAD_REQUEST`,XQ.INVALID_NAME_LENGTH)}else if(g.requireName)throw D.from(`BAD_REQUEST`,XQ.NAME_REQUIRED);r(n.context);let S=await _({length:g.defaultKeyLength,prefix:s||g.defaultPrefix}),ee=g.disableKeyHashing?S:await k$(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?b$(o,`sec`):g.keyExpiration.defaultExpiresIn?b$(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:A$,data:T}),await h$(n,re,g);else if(g.storage===`secondary-storage`){let e=n.context.generateId({model:`apikey`})||Re();re={...T,id:e},await h$(n,re,g)}else re=await n.context.adapter.create({model:A$,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:[zJ],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`,XQ.USER_BANNED);let o=w$(t.context,e,r),s=null;if(s=await m$(t,i,o),!s||!E$(s.configId,o.configId))throw D.from(`NOT_FOUND`,XQ.KEY_NOT_FOUND);let c=w$(t.context,e,s.configId);if((c.references??`user`)===`organization`)await y$(t,a.user.id,s.referenceId,`delete`);else if(s.referenceId!==a.user.id)throw D.from(`NOT_FOUND`,XQ.KEY_NOT_FOUND);try{c.storage===`secondary-storage`&&c.fallbackToDatabase?(await g$(t,s,c),await t.context.adapter.delete({model:A$,where:[{field:`id`,value:s.id}]})):c.storage===`database`?await t.context.adapter.delete({model:A$,where:[{field:`id`,value:s.id}]}):await g$(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:[zJ],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=w$(t.context,e,r),s=null;if(s=await m$(t,i,o),!s||!E$(s.configId,o.configId))throw D.from(`NOT_FOUND`,XQ.KEY_NOT_FOUND);let c=w$(t.context,e,s.configId);if((c.references??`user`)===`organization`)await y$(t,a.user.id,s.referenceId,`read`);else if(s.referenceId!==a.user.id)throw D.from(`NOT_FOUND`,XQ.KEY_NOT_FOUND);n(t.context);let l=await t$(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:GW().int().nonnegative().meta({description:`The number of API keys to return`}).optional(),offset:GW().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:[zJ],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 y$(t,r.user.id,a,`read`);let c=a??r.user.id,l=a?`organization`:`user`,u=[];if(i){let{apiKeys:n}=await v$(t,c,w$(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=>v$(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=>T$(t.configId)?T$(e.configId):e.configId===t.configId)?.references??`user`)===l&&t.referenceId===c);i&&(d=d.filter(e=>E$(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:$Q(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:WW().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 LJ(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`,XQ.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`,XQ.SERVER_ONLY_PROPERTY);let y=w$(t.context,e,r),b=null;if(b=await m$(t,i,y),!b||!E$(b.configId,y.configId))throw D.from(`NOT_FOUND`,XQ.KEY_NOT_FOUND);let x=w$(t.context,e,b.configId);if((x.references??`user`)===`organization`)await y$(t,v.id,b.referenceId,`update`);else if(b.referenceId!==v.id)throw D.from(`NOT_FOUND`,XQ.KEY_NOT_FOUND);let S={};if(d!==void 0){if(d.length<x.minimumNameLength||d.length>x.maximumNameLength)throw D.from(`BAD_REQUEST`,XQ.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`,XQ.KEY_DISABLED_EXPIRATION);if(a!==null){let e=a/86400;if(e<x.keyExpiration.minExpiresIn)throw D.from(`BAD_REQUEST`,XQ.EXPIRES_IN_IS_TOO_SMALL);if(e>x.keyExpiration.maxExpiresIn)throw D.from(`BAD_REQUEST`,XQ.EXPIRES_IN_IS_TOO_LARGE)}S.expiresAt=a?b$(a,`sec`):null}if(s!==void 0&&x.enableMetadata===!0){if(typeof s!=`object`)throw D.from(`BAD_REQUEST`,XQ.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`,XQ.REFILL_AMOUNT_AND_INTERVAL_REQUIRED);if(l!==void 0&&c===void 0)throw D.from(`BAD_REQUEST`,XQ.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`,XQ.NO_VALUES_TO_UPDATE);let ee=b;try{if(x.storage===`secondary-storage`&&x.fallbackToDatabase){let e=await t.context.adapter.update({model:A$,where:[{field:`id`,value:b.id}],update:S});e&&(await h$(t,e,x),ee=e)}else if(x.storage===`database`){let e=await t.context.adapter.update({model:A$,where:[{field:`id`,value:b.id}],update:S});e&&(ee=e)}else{let e={...b,...S,updatedAt:/* @__PURE__ */ new Date};await h$(t,e,x),ee=e}}catch(e){throw D.fromStatus(`INTERNAL_SERVER_ERROR`,{message:e?.message})}n(t.context);let te=await t$(t,ee,x),{key:C,...ne}=ee;return t.json({...ne,metadata:te,permissions:ne.permissions?w(ne.permissions):null})})}function x$(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:XQ.RATE_LIMIT_EXCEEDED.message,tryAgainIn:Math.ceil(i-o)}:{type:`increment`,now:n,max:a,windowStart:new Date(n.getTime()-i)}}async function S$({key:e,ctx:t,lookupOpts:n,configurations:r,schema:i,permissions:a,expectedConfigId:o,runCustomValidator:s}){let c=n.disableKeyHashing?e:await k$(e),l=await p$(t,c,n);if(!l||o!==void 0&&!E$(l.configId,o))throw D.from(`UNAUTHORIZED`,XQ.INVALID_API_KEY);let u=w$(t.context,r,l.configId);if(s&&u.customAPIKeyValidator&&!await u.customAPIKeyValidator({ctx:t,key:e}))throw D.from(`UNAUTHORIZED`,XQ.KEY_NOT_FOUND);if(l.enabled===!1)throw D.from(`UNAUTHORIZED`,XQ.KEY_DISABLED);if(l.expiresAt&&Date.now()>new Date(l.expiresAt).getTime()){let e=async()=>{u.storage===`secondary-storage`&&u.fallbackToDatabase?(await g$(t,l,u),await t.context.adapter.delete({model:A$,where:[{field:`id`,value:l.id}]})):u.storage===`secondary-storage`?await g$(t,l,u):await t.context.adapter.delete({model:A$,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`,XQ.KEY_EXPIRED)}if(a){let e=l.permissions?w(l.permissions):null;if(!e||!uee(e).authorize(a).success)throw D.from(`UNAUTHORIZED`,XQ.KEY_NOT_FOUND)}if(l.remaining===0&&l.refillAmount===null){let e=async()=>{u.storage===`secondary-storage`&&u.fallbackToDatabase?(await g$(t,l,u),await t.context.adapter.delete({model:A$,where:[{field:`id`,value:l.id}]})):u.storage===`secondary-storage`?await g$(t,l,u):await t.context.adapter.delete({model:A$,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`,XQ.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 C$(e,i,n);let a=await e.context.adapter.update({model:A$,where:[{field:`id`,value:i.id}],update:{updatedAt:/* @__PURE__ */ new Date}});if(!a)throw D.from(`UNAUTHORIZED`,XQ.INVALID_API_KEY);return n.storage===`secondary-storage`&&n.fallbackToDatabase&&await h$(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:A$,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:A$,where:[{field:`id`,value:t.id},{field:`remaining`,operator:`gt`,value:0}],increment:{remaining:-1}});if(!a)throw D.from(`TOO_MANY_REQUESTS`,XQ.USAGE_EXCEEDED);return a}async function C$(e,t,n){let r=x$(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:A$,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:A$,where:[{field:`id`,value:t.id}]});if(!a)throw D.from(`UNAUTHORIZED`,XQ.INVALID_API_KEY);return C$(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:A$,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:A$,where:[{field:`id`,value:t.id}]});if(!o)throw D.from(`UNAUTHORIZED`,XQ.INVALID_API_KEY);return C$(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`,XQ.USAGE_EXCEEDED);i--}let o={...pme(t,n),remaining:i,lastRefillAt:a,updatedAt:/* @__PURE__ */ new Date},s=async()=>{let t=await p$(e,r,n);if(!t)return null;let i={...t,...o};return await h$(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`,XQ.FAILED_TO_UPDATE_API_KEY);return c}function pme(e,t){let n=x$(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=w$(r.context,e,i);if(i!==void 0&&o.customAPIKeyValidator&&!await o.customAPIKeyValidator({ctx:r,key:a}))return r.json({valid:!1,error:{message:XQ.INVALID_API_KEY,code:`KEY_NOT_FOUND`},key:null});let s=null,c;try{let l=await S$({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:XQ.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 t$(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 w$(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=XQ.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 T$(e){return!e||e==="default"}function E$(e,t){return T$(e)&&T$(t)?!0:e===t}let D$=null;async function O$(e,t=!1){D$&&!t&&(/* @__PURE__ */ new Date()).getTime()-D$.getTime()<1e4||(D$=/* @__PURE__ */ new Date,await e.adapter.deleteMany({model:A$,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:O$}),verifyApiKey:hme({configurations:t,schema:n,deleteAllExpiredApiKeys:O$}),getApiKey:ime({configurations:t,schema:n,deleteAllExpiredApiKeys:O$}),updateApiKey:lme({configurations:t,schema:n,deleteAllExpiredApiKeys:O$}),deleteApiKey:nme({configurations:t,schema:n,deleteAllExpiredApiKeys:O$}),listApiKeys:sme({configurations:t,schema:n,deleteAllExpiredApiKeys:O$}),deleteAllExpiredApiKeys:eme({deleteAllExpiredApiKeys:O$})}}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}}}}}}),k$=async e=>{let t=await jU(`SHA-256`).digest(new TextEncoder().encode(e));return AU.encode(new Uint8Array(t),{padding:!1})},A$=`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=cG(_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=CH(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:XQ,hooks:{before:[{matcher:e=>!!s(e),handler:Lq(async e=>{let{key:t,config:n}=s(e);if(typeof t!=`string`)throw D.from(`BAD_REQUEST`,XQ.INVALID_API_KEY_GETTER_RETURN_TYPE);if(t.length<n.defaultKeyLength||n.customAPIKeyValidator&&!await n.customAPIKeyValidator({ctx:e,key:t}))throw D.from(`FORBIDDEN`,XQ.INVALID_API_KEY);let{apiKey:a}=await S$({key:t,ctx:e,lookupOpts:n,configurations:r,schema:i,expectedConfigId:n.configId}),o=O$(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=XQ.INVALID_REFERENCE_ID_FROM_API_KEY;throw D.from(`UNAUTHORIZED`,e)}let c=await e.context.internalAdapter.findUserById(a.referenceId);if(!c){let e=XQ.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?yJ(e.request,e.context.options):null,createdAt:/* @__PURE__ */ new Date,updatedAt:/* @__PURE__ */ new Date,expiresAt:a.expiresAt||b$(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 j$=(e,t)=>({getAllKeys:async n=>t?.adapter?.getJwks?await t.adapter.getJwks(n):await(await ZV(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 ZV(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 ZV(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 ZV(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 ZV(e)).create({model:`jwks`,data:{...r,createdAt:/* @__PURE__ */ new Date}})});function M$(e,t){return typeof e==`number`?e:e instanceof Date?Math.floor(e.getTime()/1e3):t+pG(e)}async function yme(e){let{alg:t,...n}=e?.jwks?.keyPairConfig??{alg:`EdDSA`,crv:`Ed25519`},{publicKey:r,privateKey:i}=await dde(t,{...n,extractable:!0});return{publicWebKey:await qF(r),privateWebKey:await qF(i),alg:t,cfg:n}}async function N$(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 LW({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 j$(e.context.adapter,t).createJwk(e,d)}async function P$(e,t,n){if(t?.jwt?.sign)return null;let r=j$(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 N$(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 N$(e,t)}let a=t?.jwks?.disablePrivateKeyEncryption?i.privateKey:await RW({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 tI(JSON.parse(a),o);return{alg:o,kid:i.id,privateKey:s}}async function F$(e,t){let{options:n}=t,r=t.payload,i=Math.floor(Date.now()/1e3),a=r.iat,o=r.exp,s=M$(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 P$(e,n,{signingKeyId:t.signingKeyId,signingAlgorithm:t.signingAlgorithm}),_=new WF(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 I$(e,t){let n=t?.jwt?.definePayload?await t.jwt.definePayload(e.context.session):e.context.session.user;return await F$(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 L$(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=nI(t),i=r.kid;if(!i)return e.context.logger.debug(`Cookie-cache JWT missing kid in header`),null;let a=await j$(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 tI(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 P$(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 WF({...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(L$(e)).setAudience(`better-auth:session-cache`).setSubject(t.user.id).sign(i.privateKey)}async function Sme(e,t,n){try{if(nI(t).typ!==`better-auth.session-cache+jwt`)return null;let r=await bme(e,t,n);if(!r)return null;let{payload:i}=await HF(t,r.publicKey,{...EG({issuer:L$(e)}),algorithms:[r.alg]}),a=DG(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=HV();try{let r=e.split(`.`);if(r.length!==3)return null;let i=new TextDecoder().decode(kU.decode(r[0])),a=JSON.parse(i).kid;if(!a)return n.context.logger.debug(`JWT missing kid in header`),null;let o=await j$(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 tI(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 HF(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=j$(t.context.adapter,e),r=await n.getAllKeys(t);if((!r||r?.length===0)&&(await N$(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:[zJ],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 I$(t,e);return t.json({token:n})}),signJWT:X.serverOnly({method:`POST`,metadata:{$Infer:{body:{}}},body:Eme},async t=>{let n=await F$(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:Lq(async t=>{if(e?.disableSettingJwtHeader)return;let n=t.context.session||t.context.newSession;if(n&&n.session){let n=await I$(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:cG(wme,e?.schema)}};var R$=Object.defineProperty,z$=(e,t)=>{let n={};for(var r in e)R$(n,r,{get:e[r],enumerable:!0});return t||R$(n,Symbol.toStringTag,{value:`Module`}),n};const B$=`ba_iat`,V$=`ba_pl`,H$=`ba_param`;function U$(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(H$);let t=[.../* @__PURE__ */ new Set([...e.keys(),H$])].sort();for(let n of t)e.append(H$,n)}function Ame(e){let t=new URLSearchParams(e).get(B$);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`],W$=[`client_secret_basic`,`client_secret_post`,`private_key_jwt`],Mme=[`none`,...W$],Nme=new Set(Mme);function G$(e,t){if(!(t.trim().length>0))throw new O(`OAuth Provider extension ${e} cannot be empty`)}function K$(e,t){G$(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){K$(`grant type`,e)}function Fme(e){if(G$(`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(K$(`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)G$(`client discovery id`,e);return{grantTypes:t,authMethods:n,assertionTypes:r,clientDiscoveryIds:i}}function q$(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 J$(e){let t=(e??[]).map(Lme);q$(`grant type`,t.flatMap(e=>e.grantTypes)),q$(`token_endpoint_auth_method`,t.flatMap(e=>e.authMethods)),q$(`client_assertion_type`,t.flatMap(e=>e.assertionTypes)),q$(`client discovery id`,t.flatMap(e=>e.clientDiscoveryIds))}function Y$(e){return e.extensions??[]}function X$(e){return Y$(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];J$(i),n.options.extensions=i}function zme(e){return Y$(e).flatMap(e=>Object.keys(e.grants??{}))}function Z$(e){return Array.from(/* @__PURE__ */ new Set([...e.grantTypes??jme,...zme(e)]))}function Bme(e,t){for(let n of Y$(e)){let e=n.grants?.[t];if(e)return e}}function Q$(e){return Y$(e).flatMap(e=>Object.keys(e.clientAuthentication??{}))}function $$(e,t){return Array.from(/* @__PURE__ */ new Set([...t?.includeNone?[`none`]:[],...W$,...Q$(e)]))}function e1(e,t){return t?Q$(e).includes(t):!1}function Vme(e,t){if(t!==`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`)for(let n of Y$(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 t1(e,t,n,r){let i={...r};for(let a of Y$(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 n1(e,t){let n={};for(let r of Y$(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 n1(e,e=>e.claims?.accessToken?.(t))}function Ume(e,t){return n1(e,e=>e.claims?.idToken?.(t))}function Wme(e,t){return n1(e,e=>e.claims?.userInfo?.(t))}function Gme(e){return Y$(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 r1=e=>{let t=e.getPlugin(`jwt`);if(!t)throw new O(`jwt_config`);return t};function i1(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 i1(e);let t=i1(e.createdAt)??i1(e.created_at);if(t)return t;let n=e.session;if(n&&typeof n==`object`)return i1(n.createdAt)??i1(n.created_at)}function a1(e){if(typeof e==`string`)return[e];if(e?.length)return e}function o1(e){if(typeof e==`string`)return e;if(e?.length)return e.length===1?e.at(0):e}const s1=/* @__PURE__ */ new WeakMap;function Yme(e){let t=s1.get(e);if(t)return t;let n=qme();return s1.set(e,n),n}async function c1(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 BW(U$(n).toString(),t);return i.length===1&&!!r&&vU(r,o)&&/* @__PURE__ */ new Date(a*1e3)>=/* @__PURE__ */ new Date}async function l1(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=X$(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 u1(e){return e.reduce((e,t)=>({...e,...t.discoveryMetadata??{}}),{})}const d1=async e=>{let t=await jU(`SHA-256`).digest(new TextEncoder().encode(e));return AU.encode(new Uint8Array(t),{padding:!1})};async function f1(e,t,n){if(t===`encrypted`)return await RW({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 d1(r):void 0;return!!e&&vU(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&&vU(e,n)}}if(i===`encrypted`)try{let t=await f1(e,i,n);return!!r&&vU(t,r)}catch{return!1}if(typeof i==`object`&&`decrypt`in i){let t=await f1(e,i,n);return!!r&&vU(t,r)}throw new O(`Unsupported verify storageMethod type '${i}'`)}async function p1(e,t,n){let r=t.storeClientSecret??(t.disableJwtPlugin?`encrypted`:`hashed`);if(r===`encrypted`)return await LW({key:e.context.secretConfig,data:n});if(r===`hashed`)return await d1(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 m1(e=`hashed`,t,n){if(e===`hashed`)return await d1(t);if(typeof e==`object`&&`hash`in e)return await e.hash(t,n);throw new O(`storeToken: unsupported storageMethod type '${e}'`)}async function h1(e=`hashed`,t,n){if(e===`hashed`)return await d1(t);if(typeof e==`object`&&`hash`in e)return await e.hash(t,n);throw new O(`getStoredToken: unsupported storageMethod type '${e}'`)}const g1=/^Basic +/i,Zme=/^([!#$%&'*+\-.^_`|~0-9A-Za-z]+)(?=\s|$)/;function Qme(e){return e.match(Zme)?.[1]}const _1=[`client_secret`,`client_assertion`,`client_assertion_type`];function v1(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`&&v1(`client_id must be a string`),n=t.client_id);let r={},i=(e,t)=>{t!==void 0&&t!==``&&(typeof t!=`string`&&v1(`${e} must be a string`),r[e]=t)};for(let e of _1)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&&v1(`client_id must not be repeated`),n=r[0];for(let e of _1){let n=t.getAll(e).filter(e=>e.length>0);n.length>1&&v1(`${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)&&v1(`A request must use only one client authentication method`),t.client_id=n;for(let e of _1)t[e]=r[e];return{detected:a||Object.keys(r).length>0}}function ehe(e){if(g1.test(e))try{let{clientId:t,clientSecret:n}=tX(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 y1(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 b1(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 x1(e,t,n,r,i,a,o,s){let c=await l1(e,t,n);c||b1(`missing client`,{method:s}),c.disabled&&b1(`client is disabled`,{method:s});let l=c.tokenEndpointAuthMethod??`client_secret_basic`;if(s&&l!==s&&b1(`client registered for ${l} cannot use ${s}`,{method:s}),(c.tokenEndpointAuthMethod===`private_key_jwt`||e1(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&&b1(`client secret must be provided`,{method:s}),r&&!c.clientSecret&&b1(`public client, client secret should not be received`,{method:s}),r&&!await Xme(e,t,c.clientSecret,r)&&b1(`invalid client_secret`,{method:s})),the(c,i),o&&!y1(c,o))throw new k(`BAD_REQUEST`,{error_description:`client is not authorized to use grant type ${o}`,error:`unauthorized_client`});return c}function S1(e){if(e)return typeof e==`string`?JSON.parse(e):e}function C1(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 w1(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&&!g1.test(i)){let e=Qme(i);if(!e)throw new k(`BAD_REQUEST`,{error:`invalid_request`,error_description:`Invalid authorization header format`});b1(`unsupported authorization scheme`,{scheme:e})}if(i&&g1.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 T1(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 BW(`${nhe(t)}.${e}`,n)}async function E1(e,t,n){return t.subjectType===`pairwise`&&n.pairwiseSecret?rhe(e,t,n.pairwiseSecret):e}function D1(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 O1(e,t){if(!t)return!1;let n=i1(e);return n?n.getTime()>=t.getTime():!1}function k1(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 A1(e){let t=new URLSearchParams(e);return t.delete(`max_age`),t}function j1(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 M1(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 N1=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}yq.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:`&&!bY(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 P1(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 F1=ve(A(),Me()).nullable(),ohe=xe({essential:Te().optional(),value:A().optional(),values:ye(A()).optional()}).nullable(),she=j({acr:ohe.optional()}).catchall(F1),che=xe({userinfo:ve(A(),F1).optional(),id_token:she.optional()});function lhe(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return}return e}function I1(e){let t=lhe(e),n=che.safeParse(t);return n.success?n.data:void 0}const L1=ue([A(),ve(A(),Me())]),uhe=L1,R1=L1.refine(e=>I1(e)!==void 0,{error:`claims must be a valid Claims request object`});function dhe(e){return e===void 0||I1(e)!==void 0}function z1(e,t){let n=I1(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=I1(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=I1(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 B1(e){let t=e.split(` `).filter(e=>e!==``);return t.length<=1?{}:{given:t.slice(0,-1).join(` `),family:t.at(-1)}}const V1={name:{scope:`profile`,resolve:e=>e.name??void 0},picture:{scope:`profile`,resolve:e=>e.image??void 0},given_name:{scope:`profile`,resolve:e=>B1(e.name).given},family_name:{scope:`profile`,resolve:e=>B1(e.name).family},email:{scope:`email`,resolve:e=>e.email??void 0},email_verified:{scope:`email`,resolve:e=>e.emailVerified??!1}},H1=Object.keys(V1);function U1(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 W1(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 G1=[`EdDSA`,`ES256`,`ES512`,`PS256`,`RS256`],ghe=new Set(G1);async function K1(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 K1(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 q1(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=>Q1(e,t,n)))).every(Boolean)}async function J1(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 Q1(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}=Y1(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 Y1(e){return e.enforcePerClientResources===void 0?{value:!0,source:`default`}:{value:e.enforcePerClientResources,source:`explicit`}}const X1=/* @__PURE__ */ new Map;function Z1(e){e===void 0?X1.clear():X1.delete(e)}async function Q1(e,t,n){if(await Ohe(e.context,t),t.cachedResources?.has(n)){let e=X1.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)&&X1.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 $1(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}=$1(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 e0=/no such table|relation.*does not exist|table.*does(?: not|n[''']?t) exist/i;let t0=/* @__PURE__ */ new WeakMap;function Dhe(e){let t=e.adapter,n=t0.get(t);if(n)return n;let r={completed:!1,promise:null};return t0.set(t,r),r}async function n0(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 K1(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 ${G1.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(e0.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:$1(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(e0.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=n0(e,t).then(()=>{n.completed=!0}).catch(e=>{throw n.promise=null,e})),n.promise}function khe(e){let t=Y1(e);E.info(`oauth-provider: enforcePerClientResources resolved to ${t.value} (${t.source})`)}function r0(e){return e.headers?.get(`dpop`)??void 0}function i0(e,t){return e.request?.url??`${e.context.baseURL}${t}`}const Ahe=/* @__PURE__ */ new Set([`openid`,`profile`,`email`,`offline_access`]);function a0(e){return Ahe.has(e)}function o0(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function s0(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)||a0(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:`],c0=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`})}}),l0=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`),u0=j({response_type:A().pipe(De([`code`])).optional(),request:A().optional(),request_uri:A().optional(),redirect_uri:N1.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([c0,ye(c0).min(1)]).optional()}).passthrough(),Ihe=u0.extend({redirect_uri:N1.optional(),claims:R1.optional()}),Lhe=j({type:Ee(`authorization_code`),query:Ihe,sessionId:A(),userId:A(),referenceId:A().optional(),authTime:ge().optional(),resource:ye(A()).optional()}).passthrough(),d0=j({redirect_uris:ye(N1).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(N1).min(1).optional(),backchannel_logout_uri:N1.optional(),backchannel_logout_session_required:Te().optional(),token_endpoint_auth_method:A().trim().min(1).optional(),jwks:l0.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(c0).optional(),skip_consent:ree({error:`skip_consent cannot be set during dynamic client registration`}).optional()}),Rhe=d0.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(V1))(t.includes(a.scope)||r.has(n))&&(i[n]=a.resolve(e));return i}function f0(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=iZ(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 P0(e,t,n.token);if(uZ(r)&&!e.request)throw new D(`UNAUTHORIZED`,{error_description:`DPoP-bound access token requires an HTTP request context`,error:`invalid_token`});try{await bZ({payload:r,authorization:n,proofJwt:r0(e),method:e.request?.method??`GET`,url:i0(e,`/oauth2/userinfo`),proofMaxAgeSeconds:t.dpop?.proofMaxAgeSeconds,signingAlgorithms:t.dpop?.signingAlgorithms,replayStore:tZ(e.context.internalAdapter)})}catch(e){throw yZ(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 l1(e,t,c):void 0;t.pairwiseSecret&&l&&(s.sub=await E1(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,...f0(u,s),...f0(d),sub:s.sub}}const Hhe=Object.fromEntries(H1.map(e=>[e,void 0]));function p0(e){return lZ(e)?`DPoP`:`Bearer`}async function Uhe(e,t){let n=e.body.grant_type;if(!Z$(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=>l1(e,t,n),authenticateClient:async r=>{let{clientId:i,clientSecret:a,preVerified:o,authMethod:s,confirmation:c}=C1(await w1(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 x1(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 E0(e,t,{...r,grantType:n})},hashToken:(e,n)=>m1(t.storeTokens,e,n),validateAccessToken:async(n,r)=>{let{validateAccessToken:i}=await Promise.resolve().then(()=>D0);return i(e,t,n,r)},requireActiveAccessToken:async(n,r)=>{let{requireActiveAccessToken:i}=await Promise.resolve().then(()=>D0);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=r1(e.context).options,u=n?.id??r.clientId;return F$(e,{options:l,header:{typ:`at+jwt`},signingKeyId:o?.signingKeyId??void 0,signingAlgorithm:o?.signingAlgorithm??void 0,payload:{...o?.accessTokenClaims??{},sub:u,aud:o1(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:CH(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 rP(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 E1(n.id,r,t),p=s==null?void 0:Math.floor(s.getTime()/1e3),m=P1(t.customIdTokenClaims?await t.customIdTokenClaims({user:n,scopes:i,metadata:S1(r.metadata)}):void 0),h=t.disableJwtPlugin?void 0:r1(e.context).options,g=!t.disableJwtPlugin&&!h?.jwt?.sign?await P$(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=P1(l);if(Object.assign(b,f0(x,b)),t.disableJwtPlugin&&!r.clientSecret)return;let S=t.disableJwtPlugin?await new WF(b).setProtectedHeader({alg:`HS256`}).sign(new TextEncoder().encode(await f1(e,t.storeClientSecret,r.clientSecret))):await F$(e,{options:h,payload:b,resolvedKey:g??void 0});if(S&&v&&h?.jwt?.sign){let e=nI(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 m0(e,t,n){return(e.prefix?.refreshToken??``)+(e.formatRefreshToken?.encrypt?e.formatRefreshToken.encrypt(t,n):t)}async function h0(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():CH(32,`A-Z`,`a-z`);return await e.context.adapter.create({model:`oauthAccessToken`,data:{token:await m1(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 g0(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 _0(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():CH(32,`A-Z`,`a-z`),g=s?.sid,_={token:await m1(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 m0(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 m0(t,h,g)}}async function v0(e,t,n){let r=await J1(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 y0(e){throw new D(`BAD_REQUEST`,{error:`invalid_dpop_proof`,error_description:e})}function Xhe(e){let t=S1(e.metadata)??{};return e.dpopBoundAccessTokens===!0||t.dpop_bound_access_tokens===!0}async function b0(e,t,n){let r=n.verificationValue?.query.dpop_jkt,i=lZ(n.refreshToken?.confirmation),a=i??r,o=r0(e),s=Xhe(n.client)||n.grantIssuance.dpopBoundAccessTokensRequired||!!r||!!i;if(!o)s&&y0(`DPoP proof header is required`);else try{return{jkt:(await _Z({proofJwt:o,method:`POST`,url:i0(e,`/oauth2/token`),expectedJkt:a,proofMaxAgeSeconds:t.dpop?.proofMaxAgeSeconds,signingAlgorithms:t.dpop?.signingAlgorithms,replayStore:tZ(e.context.internalAdapter)})).jkt}}catch(e){throw rZ(e)&&y0(e.message),e}}function x0(e){return e?[...new Set(e)].sort():void 0}function S0(e,t){let n=x0(e),r=x0(t);return n===void 0||r===void 0?n===r:n.length===r.length&&n.every((e,t)=>e===r[t])}function C0(e){if(e)return`jkt`in e?`jkt:${e.jkt}`:`x5t#S256:${e[`x5t#S256`]}`}function Zhe(e,t){return C0(e)===C0(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 w0(e){let t=x0(e.requestedResources);return{effectiveScopes:x0(e.effectiveScopes)??[],...t?{requestedResources:t}:{},...e.confirmation?{confirmation:e.confirmation}:{}}}function nge(e,t){return S0(e.effectiveScopes,t.effectiveScopes)&&S0(e.requestedResources,t.requestedResources)&&Zhe(e.confirmation,t.confirmation)}async function rge(e,t){return LW({key:e.context.secretConfig,data:JSON.stringify(t)})}async function ige(e,t){let n=await RW({key:e.context.secretConfig,data:t}),r=JSON.parse(n);if(tge(r))return r}function T0(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(T0(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 v0(e,t,{clientId:n.client.clientId,requestedScopes:n.scopes,resources:n.resources,refreshToken:n.refreshToken,iat:r,scopeExpiresAtSeconds:r+(t.accessTokenExpiresIn??3600)}),a=await b0(e,t,{client:n.client,grantIssuance:i,refreshToken:n.refreshToken});return w0({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 E0(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]?M$(t.scopeExpirations[e],p):m).reduce((e,t)=>e<t?e:t,m):m,g=await v0(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&&y1(r,`refresh_token`)&&(u?.scopes?.includes(`offline_access`)||i.includes(`offline_access`)),S=_&&!t.disableJwtPlugin,ee=a&&v.includes(`openid`),te=S1(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 b0(e,t,{client:r,grantIssuance:g,verificationValue:f,refreshToken:u}),re=n.requestedUserInfoClaims??u?.requestedUserInfoClaims??[],ie=x&&a&&!S?await _0(e,t,a,s,n.authorizationCodeId,r,v,{iat:p,exp:b,sid:c},u,d,w,T,re):void 0,E=S?await W1({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?_0(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:p0(T),refresh_token:oe?.token,scope:v.join(` `),id_token:se};if(u?.id&&oe?.id)try{await age(e,t,u,w0({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 m1(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=a1(u.resource)??a1(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}=C1(await w1(e,t,`${e.context.baseURL}/oauth2/token`)),{code:o,code_verifier:s,redirect_uri:c,resource:l}=e.body,u=a1(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 x1(e,t,n,r,_,i,`authorization_code`,a);if(j1(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 KY(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):i1(p.authTime),te=z1(p.query.claims,U1(t));return E0(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}=C1(await w1(e,t,`${e.context.baseURL}/oauth2/token`)),{scope:o,resource:s}=e.body,c=a1(s);if(!n)throw new D(`BAD_REQUEST`,{error_description:`Missing required client_id`,error:`invalid_request`});let l=await x1(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)||a0(t));if(t.length)throw new D(`BAD_REQUEST`,{error_description:`The following scopes are invalid: ${t.join(`, `)}`,error:`invalid_scope`})}return d||=[...u],E0(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}=C1(await w1(e,t,`${e.context.baseURL}/oauth2/token`)),{refresh_token:o,scope:s,resource:c}=e.body,l=a1(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 h0(t,o),d=await e.context.adapter.findOne({model:`oauthRefreshToken`,where:[{field:`token`,value:await h1(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 x1(e,t,n,r,p??f,i,`refresh_token`,a);if(d.revoked){if(T0(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 g0(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:i1(d.authTime);return E0(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 D0=/* @__PURE__ */ z$({introspectEndpoint:()=>I0,requireActiveAccessToken:()=>yge,requireActiveAccessTokenWithClaims:()=>P0,validateAccessToken:()=>N0});const O0=`Invalid access token`,pge=`Bearer error="invalid_token", error_description="${O0}"`;function k0(){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 A0(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:r1(e.context),a=i?.options,o=`${e.context.baseURL??``}/oauth2/userinfo`,s=a?.jwt?.issuer??e.context.baseURL,c;try{c=(await HF(n,ZF(await NZ(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 q1(e,t,l,[o])||!c.azp)return{active:!1};let u=await l1(e,t,c.azp);if(!u||u?.disabled||!await A0(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=p0(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 h1(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 k0();let o=Array.isArray(a.resources)?a.resources:void 0,s;if(a.clientId&&(s=await l1(e,t,a.clientId),!s||s?.disabled||!await A0(e,t,{introspectingClientId:r,issuerClientId:a.clientId,audienceResources:o??[]})))return k0();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 k0()}let l;a.userId&&(l=await e.context.internalAdapter.findUserById(a?.userId));let u=`${e.context.baseURL}/oauth2/userinfo`;if(o?.length&&!await q1(e,t,o,[u]))return k0();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 W1({ctx:e,opts:t,user:l,client:s,scopes:a.scopes??[],grantType:void 0,sessionId:void 0,resources:o,referenceId:a.referenceId,metadata:S1(s.metadata),perRequestClaims:void 0,resourcePolicyClaims:f}):{},m=(t.disableJwtPlugin?void 0:r1(e.context))?.options;return{payload:{...p,active:!0,iss:m?.jwt?.issuer??e.context.baseURL,aud:o1(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:p0(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 h1(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:r1(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:p0(i.confirmation),...i.confirmation?{cnf:i.confirmation}:{}}}function j0(){return new k(`UNAUTHORIZED`,{error_description:O0,error:`invalid_token`},{"WWW-Authenticate":pge})}function vge(e){return e.status===`BAD_REQUEST`||e.body?.error===`invalid_token`}async function M0(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 j0()}async function N0(e,t,n,r){return(await M0(e,t,n,r)).payload}async function yge(e,t,n,r){let i=await N0(e,t,n,r);if(i.active)return i;throw j0()}async function P0(e,t,n,r){let{payload:i,requestedUserInfoClaims:a}=await M0(e,t,n,r);if(i.active)return{payload:i,requestedUserInfoClaims:a};throw j0()}async function F0(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 l1(e,t,i);if(!a)return n;let o=await E1(n.sub,a,t);return{...n,sub:o}}async function I0(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}=C1(await w1(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=aZ(n)),!n?.length)throw new k(`BAD_REQUEST`,{error_description:`missing a required token for introspection`,error:`invalid_request`});let c=await x1(e,t,i,a,void 0,o,void 0,s);try{if(r===void 0||r===`access_token`)try{return F0(e,t,await N0(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 F0(e,t,await _ge(e,t,(await h0(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 L0(e){return e?.get(`sec-fetch-mode`)===`cors`}var bge=/* @__PURE__ */ e({a:()=>z2,c:()=>h2,d:()=>o2,f:()=>i2,h:()=>a2,i:()=>o4,l:()=>m2,n:()=>e4,o:()=>$ge,r:()=>r4,s:()=>D2,t:()=>f4,u:()=>n2});async function xge(e,t,n){let r=await n4.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=U1(t),c=z1(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:z1(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:s4(a.get(`redirect_uri`)??``,`access_denied`,`User denied access`,a.get(`state`)??void 0,f4(e,t))};let p=await LJ(e),m=T1(a.get(`prompt`)??``).has(`login`),h=m&&O1(p?.session.createdAt,r?.signedQueryIssuedAt);if(m&&!h)return e?.headers?.set(`accept`,`application/json`),e.query=D1(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=k1(a,`consent`);return h&&(x=k1(x,`login`),x=A1(x)),e.query=D1(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 n4.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=D1(k1(new URLSearchParams(n),`select_account`)),await t(e)}async function wge(e,t){let n=(await n4.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=D1(k1(r,`create`)),await t(e)}async function Tge(e,t){let n=await n4.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=D1(i);let a=await LJ(e);return await t(e,{postLogin:n?.postLoginClearedForSession!==void 0&&n.postLoginClearedForSession===a?.session.id})}async function Ege(e,t,n,r){return F$(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 ZV(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 E1(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 ZV(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=r1(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 P$(e,r);await Promise.allSettled(t.targets.map(async({client:c,sub:l})=>{try{let u=CH(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 R0(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 z0(e){let t=e.request?.headers??e.headers;if(!t||L0(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 B0(e,t,n=200){return new Response(`<!doctype html><html><head><meta charset="utf-8"><title>${R0(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 V0(e){return`${e.context.baseURL.replace(/\/$/,``)}/oauth2/end-session/confirm`}function Age(e){try{return new URL(V0(e)).pathname}catch{return`/oauth2/end-session/confirm`}}function H0(e){return B0(`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="${R0(V0(e))}"><button type="submit" name="action" value="confirm">Confirm logout</button></form></main>`)}function U0(e){return B0(`Logged out`,`<main><p data-oidc-logout-state="logged-out">${e?`Logged out. ${R0(e)}`:`Logged out.`}</p></main>`)}function jge(e,t){return B0(`Logout error`,`<main><h1>Logout error</h1><p data-oidc-logout-state="error">${R0(e)}</p></main>`,t)}function W0(e,t,n,r){if(z0(e))return jge(r,t===`BAD_REQUEST`?400:t===`UNAUTHORIZED`?401:500);throw new k(t,{error:n,error_description:r})}function G0(e){return`${e.context.authCookies.sessionToken.name}.oauth_logout_confirmation`}function K0(e,t){return{...e.context.authCookies.sessionToken.attributes,httpOnly:!0,maxAge:t,path:Age(e),sameSite:`lax`}}async function q0(e,t,n={}){let r={...t?{sessionId:t}:{},...n,expiresAt:Date.now()+3e5};await e.setSignedCookie(G0(e),JSON.stringify(r),e.context.secret,K0(e,300))}async function Mge(e){let t=await e.getSignedCookie(G0(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 J0(e){e.setCookie(G0(e),``,K0(e,0))}async function Y0(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 X0(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 Z0(e,t,n){try{return await l1(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 Q0(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=Q0(e.aud);return t.length===1?t[0]:null}async function Fge(e,t,n,r){if(r)return Z0(e,t,r);let i;try{i=rI(n)}catch{return null}let a=Pge(i);return a?Z0(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 f1(e,t.storeClientSecret,r.clientSecret),{payload:o}=await TF(n,new TextEncoder().encode(a));i=JSON.parse(new TextDecoder().decode(o))}else{let t=r1(e.context).options,{payload:r}=await TF(n,ZF(await NZ(n,{jwksFetch:t?.jwks?.remoteUrl??`${e.context.baseURL}${t?.jwks?.jwksPath??`/jwks`}`})));i=JSON.parse(new TextDecoder().decode(r))}return i.iss!==f4(e,t)||!Q0(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 $0(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 e2(e,t){return t.post_logout_redirect_uri?$0(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 Z0(e,t,n.clientId);return!r||r.disabled||!r.enableEndSession?{invalid:!0}:$0(r,n.postLogoutRedirectUri,n.state)}async function t2(e,t,n={}){return t?z0(e)?(await q0(e,t.session.id,n),H0(e)):W0(e,`BAD_REQUEST`,`invalid_request`,`User confirmation is required to complete logout`):z0(e)?(await q0(e,void 0,n),H0(e)):W0(e,`BAD_REQUEST`,`invalid_request`,`No active session is available for logout`)}async function Rge(e,t){let n=await Mge(e),r=await Y0(e);if(!n||n.expiresAt<=Date.now())return W0(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?W0(e,`BAD_REQUEST`,`invalid_request`,`The logout confirmation is invalid or expired`):(await X0(e,r.session),sq(e),J0(e),i.uri?l4(e,i.uri):z0(e)?U0(i.invalid?`The requested post-logout redirect was not registered.`:void 0):null):(J0(e),i.uri?l4(e,i.uri):z0(e)?U0(i.invalid?`The requested post-logout redirect was not registered.`:void 0):W0(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 Y0(e);if(i.id_token_hint===void 0){let n={};if(i.client_id){let r=await Z0(e,t,i.client_id);if(!r)return W0(e,`BAD_REQUEST`,`invalid_client`,`The logout client does not exist`);if(r.disabled)return W0(e,`BAD_REQUEST`,`invalid_client`,`The logout client is disabled`);if(!r.enableEndSession)return W0(e,`UNAUTHORIZED`,`invalid_client`,`The client is not allowed to initiate logout`);n=e2(r,i)}return t2(e,a,n)}let o=await Fge(e,t,i.id_token_hint,i.client_id);if(!o)return a&&z0(e)?t2(e,a):W0(e,`BAD_REQUEST`,`invalid_client`,`The logout client does not exist`);if(o.disabled)return W0(e,`BAD_REQUEST`,`invalid_client`,`The logout client is disabled`);if(!o.enableEndSession)return W0(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&&z0(e)?t2(e,a,i.client_id?e2(o,i):{}):W0(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 t2(e,a,e2(o,i));let d=$0(o,i.post_logout_redirect_uri,i.state),f=l??(u?a?.session:null);return f&&await X0(e,f),u&&sq(e),J0(e),d.uri?l4(e,d.uri):z0(e)?U0(d.invalid?`The requested post-logout redirect was not registered.`:void 0):null}async function Bge(e,t){return Rge(e,t)}function n2(e,t,n){let r=e.context.baseURL,i=!n?.jwt_disabled;return{scopes_supported:n?.scopes_supported,issuer:d4(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:[...nX],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:[...nX],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:[...nX],code_challenge_methods_supported:[`S256`],authorization_response_iss_parameter_supported:!0,dpop_signing_alg_values_supported:n?.dpop_signing_alg_values_supported??[...$X],backchannel_logout_supported:i,backchannel_logout_session_supported:i}}function r2(e,t){let n=t.disableJwtPlugin?void 0:r1(e.context).options,r=X$(t),i=t.allowUnauthenticatedClientRegistration||r.length>0;return{jwtPluginOptions:n,clientDiscoveries:r,authMetadata:n2(e,n,{scopes_supported:t.advertisedMetadata?.scopes_supported??t.scopes,dynamic_client_registration_supported:t.allowDynamicClientRegistration,public_client_supported:i,grant_types_supported:Z$(t),token_endpoint_auth_methods_supported:$$(t,{includeNone:i}),endpoint_auth_methods_supported:$$(t),jwt_disabled:t.disableJwtPlugin,dpop_signing_alg_values_supported:t.dpop?.signingAlgorithms})}}function i2(e,t){let{clientDiscoveries:n,authMetadata:r}=r2(e,t);return t1(e,t,`oauth-authorization-server`,{...u1(n),...r})}function a2(e,t){let n=e.context.baseURL,{jwtPluginOptions:r,clientDiscoveries:i,authMetadata:a}=r2(e,t),o={...a,claims_supported:U1(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 t1(e,t,`openid-configuration`,{...u1(i),...o})}function o2(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 s2(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`,{...c2(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({...c2(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 c2(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=>Lq(async t=>{if(!e.allowPublicClientPrelogin)throw new D(`BAD_REQUEST`);let n=t.body.oauth_query;if(!await c1(n,t.context.secret))throw new D(`UNAUTHORIZED`,{error:`invalid_signature`})}),l2={"P-256":`ES256`,"P-384":`ES384`,"P-521":`ES512`},Gge=[`Ed25519`],Kge=[`d`,`p`,`q`,`dp`,`dq`,`qi`,`oth`];function u2(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d2(e,t){return typeof e[t]==`string`&&e[t].length>0}function f2(e){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(l2,e)}function p2(e){return Gge.some(t=>t===e)}function qge(e){switch(e.kty){case`RSA`:return d2(e,`n`)&&d2(e,`e`);case`EC`:return f2(e.crv)&&d2(e,`x`)&&d2(e,`y`);case`OKP`:return p2(e.crv)&&d2(e,`x`);default:return!1}}function Jge(e){if(e.alg===void 0)return!0;if(typeof e.alg!=`string`||!nX.some(t=>t===e.alg))return!1;switch(e.kty){case`RSA`:return e.alg.startsWith(`RS`)||e.alg.startsWith(`PS`);case`EC`:return f2(e.crv)&&l2[e.crv]===e.alg;case`OKP`:return p2(e.crv)&&e.alg===`EdDSA`;default:return!1}}function m2(e){let t=u2(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(!u2(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 h2(e){return Qge.has(e)}function g2(e){if(e)return Object.fromEntries(Object.entries(e).filter(([e])=>!Zge.has(e)))}async function _2(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__ */ z$({consumeClientAssertion:()=>D2,isPrivateHostname:()=>w2,verifyClientAssertion:()=>o_e});const v2=/* @__PURE__ */ new WeakMap,y2=65536,e_e=/^application\/(?:[-\w.]+\+)?json\s*(?:;|$)/i;function b2(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 x2(e){let t=v2.get(e);if(t)return t;let n=/* @__PURE__ */ new Map;return v2.set(e,n),n}function S2(e){return`${e.clientDiscoveryId??`managed`}:${e.jwksUri??``}`}const C2=[...nX];function w2(e){return!xY(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(w2(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)>y2)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>y2)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 T2(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=m2(o);return s.valid?{valid:!0,jwks:s.jwks}:{valid:!1}}finally{clearTimeout(r)}}function E2(){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?X$(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=S2(n),o=x2(t),s=o.get(a);if(s&&i-s.fetchedAt<3e5)return s.jwks;let c;try{c=await T2(n.jwksUri,r?.fetchClientMetadataResource)}catch{if(s&&i-s.fetchedAt<6e5)return s.jwks;throw E2()}if(!c.valid)throw E2();return b2(o,a,c.jwks,i),c.jwks}async function a_e(e,t){if(!t.jwksUri)return null;let n=t.clientDiscoveryId?X$(e).find(e=>e.id===t.clientDiscoveryId):void 0;if(t.clientDiscoveryId&&!n?.fetchClientMetadataResource)return null;try{let r=await T2(t.jwksUri,n?.fetchClientMetadataResource);return r.valid?(b2(x2(e),S2(t),r.jwks,Date.now()),r.jwks):null}catch{return null}}async function D2(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 jU(`SHA-256`).digest(new TextEncoder().encode(`${r}:${i.jti}`)),l=AU.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=nI(n)}catch{throw new k(`BAD_REQUEST`,{error_description:`malformed client assertion: invalid JWT header`,error:`invalid_client`})}if(!o.alg||!C2.includes(o.alg))throw new k(`BAD_REQUEST`,{error_description:`unsupported assertion signing algorithm: ${o.alg}`,error:`invalid_client`});let s;try{s=rI(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 l1(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=f4(e,t),p=[.../* @__PURE__ */ new Set([d,f])],m={issuer:c,subject:c,audience:p,algorithms:C2},h;try{({payload:h}=await HF(n,ZF(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 HF(n,ZF(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 D2(e,t,{namespace:`private_key_jwt:${c}`,payload:h,expectedAudience:g}),{clientId:c}}function O2(e,t,n){return new k(e,{error:t,error_description:n},{"WWW-Authenticate":`Bearer error="${t}"`,...Pq})}async function s_e(e,t,n){let r=e.headers,i;try{i=Kme(r?.get(`authorization`))}catch{throw O2(`BAD_REQUEST`,`invalid_request`,`Malformed initial access token Authorization header`)}if(!i||!r)return;if(!t.validateInitialAccessToken)throw O2(`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 O2(`UNAUTHORIZED`,`invalid_token`,`Invalid initial access token`);return a}const c_e=[`authorization_code`];function k2(e){return[.../* @__PURE__ */ new Set([...e.clientRegistrationDefaultScopes??e.scopes??[],...e.clientRegistrationAllowedScopes??[]])]}function A2(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 j2(e,t=`web`){let n=A2(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 M2(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 Q1(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{M2(`redirect URI must be an absolute URI: ${e}`)}(e.includes(`#`)||n.username.length>0||n.password.length>0)&&M2(`redirect URI must not include credentials or a fragment: ${e}`);let r=n.protocol===`http:`,i=n.protocol===`https:`;/^localhost\.+$/i.test(n.hostname)&&M2(`redirect URI localhost must not include trailing dots: ${e}`);let a=yY(n.hostname)||n.hostname===`localhost`,o=d_e(e);t===`web`?(!i||a)&&M2(`web clients require https redirect URIs on non-loopback hosts: ${e}`):i?a&&M2(`native clients must not use https loopback redirect URIs: ${e}`):r?o===`localhost`||o===`127.0.0.1`||o===`[::1]`||M2(`native clients may use http only on the exact loopback hosts localhost, 127.0.0.1, or [::1]: ${e}`):(u_e.has(n.protocol)||!M1(n))&&M2(`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=m2(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 LJ(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`,...Pq});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 _2(e,r,t,`create`);let s=i?.referenceId??(r&&t.clientReference?await t.clientReference({user:r.user,session:r.session}):void 0),c=await R2(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 N2(e,t,n){let r=n?.registrationSource===`clientMetadataDocument`,i=j2(e,r?null:`web`),a=i.token_endpoint_auth_method??`client_secret_basic`;if(!new Set($$(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(Z$(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?k2(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(w2(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(w2(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 P2=Symbol(`client-registration-collision`);function F2(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[P2]===!0&&(t.kind===`oauth-client-row-unique`||t.kind===`oauth-client-resource-link-unique`)&&`cause`in t}async function I2(e,t,n){let r=j2(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=e1(t,r.token_endpoint_auth_method);await N2(r,t,{registrationSource:n.registrationSource,ctx:e});let s=n.clientId??t.generateClientId?.()??CH(32,`a-z`,`A-Z`),c=i||a||o?void 0:t.generateClientSecret?.()||CH(32,`a-z`,`A-Z`),l=c?await p1(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:k2(t).join(` `)}:r,h=n.registrationSource===`clientMetadataDocument`?void 0:{userId:n.userId,referenceId:n.referenceId},g=H2({...m,redirect_uris:r.redirect_uris??[],disabled:void 0,client_secret_expires_at:l?n.registrationSource===`dynamic`&&t.clientRegistrationClientSecretExpiration?M$(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 $V(e.context.adapter,async()=>{let t=await ZV(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`&&B2(e)?{[P2]:!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`&&B2(t)?{[P2]:!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 L2(e,t){let n=U2({...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{...L2(e,t),client_credentials_scopes:[...e.client.clientCredentialsScopes??[]]}}async function R2(e,t,n){return L2(await I2(e,t,n),t)}async function __e(e,t,n){return g_e(await I2(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 z2(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 I2(e,t,r)}catch(i){if(!F2(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 I2(e,t,{...r,existingClient:s})}catch(e){throw F2(e)?e.cause:e}}}function B2(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 V2(e,t,n){let r=await LJ(e);if(await _2(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?o0(a??[]):[];s0(s,A2(o),o.token_endpoint_auth_method,t),s.length>0&&await _2(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 R2(e,t,c);return e.setStatus(201),e.json(l)}function H2(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=g2(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 U2(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{...g2(S1(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 LJ(e);if(await _2(e,n,t,`read`),!n)throw new D(`UNAUTHORIZED`);let r=await l1(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=U2(r);return i.client_secret=void 0,i}async function W2(e,t,n){let r=await l1(e,t,n);if(!r||r.disabled)throw new D(`NOT_FOUND`,{error_description:`client not found`,error:`not_found`});return U2({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 LJ(e);if(await _2(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=U2(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=U2(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 LJ(e);if(await _2(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 l1(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 G2(e,t,n){let r=await LJ(e);if(await _2(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 l1(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 _2(e,r,t,`configure-client-credentials-scopes`),Object.keys(s).length===0&&o===void 0){let e=U2(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:o0(o);f!==void 0&&(s0(f,u,d,t),f.length>0&&!l&&await _2(e,r,t,`configure-client-credentials-scopes`)),await N2({...U2(a),...s},t,{ctx:e});let p={...H2(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 p1(e,t,t.generateClientSecret?.()||CH(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=U2(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 LJ(e);if(await _2(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 l1(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?.()||CH(32,`a-z`,`A-Z`),o=a?await p1(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 U2({...s,clientSecret:(t.prefix?.clientSecret??``)+a})}const K2=A().trim().min(1),q2=ye(A().trim().min(1)).min(1),C_e=e=>X(`/admin/oauth2/create-client`,{method:`POST`,body:j({redirect_uris:ye(N1).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(N1).min(1).optional(),backchannel_logout_uri:N1.optional(),backchannel_logout_session_required:Te().optional(),token_endpoint_auth_method:K2.optional(),application_type:De([`web`,`native`]).optional(),jwks:l0.optional(),jwks_uri:A().optional(),grant_types:q2.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=>V2(t,e,{admin:!0})),w_e=e=>X(`/oauth2/create-client`,{method:`POST`,use:[zJ],body:j({redirect_uris:ye(N1).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(N1).min(1).optional(),backchannel_logout_uri:N1.optional(),backchannel_logout_session_required:Te().optional(),token_endpoint_auth_method:K2.optional(),application_type:De([`web`,`native`]).optional(),jwks:l0.optional(),jwks_uri:A().optional(),grant_types:q2.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=>V2(t,e)),T_e=e=>X(`/oauth2/get-client`,{method:`GET`,use:[zJ],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:[zJ],query:j({client_id:A()}),metadata:{openapi:{description:`Gets publicly available client fields`}}},async t=>{let n=t.query.client_id;return W2(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 W2(t,e,n)}),O_e=e=>X(`/oauth2/get-clients`,{method:`GET`,use:[zJ],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(N1).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(N1).min(1).optional(),backchannel_logout_uri:N1.optional(),backchannel_logout_session_required:Te().optional(),application_type:De([`web`,`native`]).optional(),grant_types:q2.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=>G2(t,e,{admin:!0})),A_e=e=>X(`/oauth2/update-client`,{method:`POST`,use:[zJ],body:j({client_id:A(),update:j({redirect_uris:ye(N1).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(N1).min(1).optional(),backchannel_logout_uri:N1.optional(),backchannel_logout_session_required:Te().optional(),application_type:De([`web`,`native`]).optional(),grant_types:q2.optional(),response_types:ye(De([`code`])).optional()})}),metadata:{openapi:{description:`Updates OAuth2 formatted client details.`}}},async t=>G2(t,e)),j_e=e=>X(`/oauth2/client/rotate-secret`,{method:`POST`,use:[zJ],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:[zJ],body:j({client_id:A()}),metadata:{openapi:{description:`Deletes an oauth client`}}},async t=>x_e(t,e));async function J2(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 LJ(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 J2(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 LJ(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 LJ(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 J2(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 LJ(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 J2(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 l1(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:[zJ],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:[zJ],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:[zJ],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:[zJ],body:j({id:A()}),metadata:{openapi:{description:`Deletes consent granted to a client`}}},async t=>F_e(t,e));async function Y2(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 X2=e=>e.schema?.oauthResource?.modelName??`oauthResource`,Z2=e=>e.schema?.oauthClientResource?.modelName??`oauthClientResource`,V_e=e=>e.schema?.oauthClient?.modelName??`oauthClient`;function Q2(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 Y2(e,await LJ(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:X2(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 Z1(i.identifier),e.json(i,{status:201})}async function W_e(e,t){await Y2(e,await LJ(e),t,`list`);let n=await e.context.adapter.findMany({model:X2(t)});return e.json(n??[])}async function G_e(e,t){let n=Q2(e.params.identifier);await Y2(e,await LJ(e),t,`read`,n);let r=await e.context.adapter.findOne({model:X2(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=Q2(e.params.identifier);if(await Y2(e,await LJ(e),t,`update`,n),!await e.context.adapter.findOne({model:X2(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:X2(t),where:[{field:`identifier`,value:n}],update:r}),Z1(n);let i=await e.context.adapter.findOne({model:X2(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=Q2(e.params.identifier);if(await Y2(e,await LJ(e),t,`delete`,n),!await e.context.adapter.findOne({model:X2(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:X2(t),where:[{field:`identifier`,value:n}]}),Z1(n),e.json({deleted:!0})}async function J_e(e,t){let n=await LJ(e),r=Q2(e.params.identifier),i=Q2(e.params.client_id);if(await Y2(e,n,t,`link`,r),!await e.context.adapter.findOne({model:X2(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:Z2(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 LJ(e),r=Q2(e.params.identifier),i=Q2(e.params.client_id);return await Y2(e,n,t,`unlink`,r),await e.context.adapter.deleteMany({model:Z2(t),where:[{field:`clientId`,value:i},{field:`resourceId`,value:r}]}),e.json({unlinked:!0})}const $2=j({identifier:A().min(1).optional(),name:A().optional(),accessTokenTtl:ge().int().positive().nullable().optional(),refreshTokenTtl:ge().int().positive().nullable().optional(),signingAlgorithm:De(G1).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:$2.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:$2,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:r1(e.context),i=r?.options;try{let a=await HF(n,ZF(await NZ(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 q1(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 h1(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 h1(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 g0(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 g0(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}=C1(await w1(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=aZ(n)),!n?.length)throw new k(`BAD_REQUEST`,{error_description:`missing a required token for introspection`,error:`invalid_request`});let c=await x1(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 h0(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}}}},e4=[`openid`,`profile`,`email`,`offline_access`],t4=j({id_token_hint:A().optional(),client_id:A().optional(),post_logout_redirect_uri:N1.optional(),state:A().optional()}),n4=JV(()=>null),r4=n4.get,i4=/* @__PURE__ */ new WeakMap,a4=`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 o4=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??e4).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`,...H1.filter(e=>n.has(V1[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(J$(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:r1(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=o2(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(a2(s,a))}:{response:f(i2(s,a))};if(d)return{response:f(a2(s,a))}},s=s2(`/oauth2/authorize`,{method:[`GET`,`POST`],body:j({}).passthrough(),redirectOnError:_4(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)=>MQ(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 n0(e,a),khe(a),!a.disableJwtPlugin){let t=r1(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=i4.get(t)??/* @__PURE__ */ new Map;r.set(e.id,n),i4.set(t,r)},async after(e,t){if(!t)return;let n=i4.get(t);if(!n)return;let r=n.get(e.id);if(n.delete(e.id),n.size===0&&i4.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:Lq(async e=>{let t=e.body.oauth_query;if(!await c1(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(B$),r.delete(V$),await n4.set({query:r.toString(),signedQueryIssuedAt:n??void 0,postLoginClearedForSession:i}),e.path===`/sign-in/social`&&await Oq({query:r.toString(),...n?{[a4]:n.getTime()}:{}})})}],after:[{matcher(e){return bG(e.context.responseHeaders?.get(`set-cookie`)||``).has(e.context.authCookies.sessionToken.name)},handler:Lq(async e=>{let t=bG(e.context.responseHeaders?.get(`set-cookie`)||``).get(e.context.authCookies.sessionToken.name)?.value.split(`.`)[0];if(!t)return;let n=await n4.get(),r=(await Tq())?.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?.[a4]),d=k1(a,`login`);return O1(o.session.createdAt,u)&&(d=A1(d)),e.query=D1(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`)?a2(e,a):i2(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 a2(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:R1.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:[zJ],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:[zJ],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:s2(`/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:N1.optional(),refresh_token:A().optional(),resource:ue([c0,ye(c0).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:s2(`/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=>I0(e,a)),oauth2Revoke:s2(`/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:s2(`/oauth2/end-session`,{method:[`GET`,`POST`],body:t4.optional(),query:t4.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:s2(`/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:s2(`/oauth2/register`,{method:`POST`,body:d0,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:cG(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 s4(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()}`:vq(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 c4(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 l4=(e,t)=>{let n=L0(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 u4(e,t,n,r,i){return l4(e,s4(n.redirect_uri,r,i,n.state,f4(e,t)))}function d4(e){try{let t=new URL(e);return t.protocol!==`https:`&&!bY(t.host)&&(t.protocol=`https:`),t.search=``,t.hash=``,t.toString().replace(/\/$/,``)}catch{return e}}function f4(e,t){let n;if(t.disableJwtPlugin)n=e.context.baseURL;else try{n=r1(e.context).options?.jwt?.issuer??e.context.baseURL}catch{n=e.context.baseURL}return d4(n)}function p4(e,t,n){return s4(e.context.options.onAPIError?.errorURL||`${e.context.baseURL}/error`,t,n)}function m4(e){let t;try{t=new URL(e)}catch{return}let n=yY(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 h4(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=m4(t);return e.find(e=>e===t?!0:a?m4(e)===a:!1)}function g4(e){if(!N1.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 l1(e,t,n)}catch{return null}if(!i||i.disabled)return null;let a=i.redirectUris??[],o=h4(a,r);if(t.validateRedirectUri){if(!g4(r))return null;try{return await t.validateRedirectUri(r,a,!!o)?r:null}catch{return null}}return o?r:null}function _4(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?l4(r,s4(a,t,n,typeof i.state==`string`?i.state:void 0,f4(r,e),fve(i))):l4(r,p4(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=c4(i.request),o=c4(i.request_uri);if(a!==void 0&&o!==void 0)return _4(t)({error:`invalid_request`,error_description:`request and request_uri cannot be used together`,ctx:e});if(a!==void 0)return _4(t)({error:`request_not_supported`,error_description:`request object not supported`,ctx:e});if(o!==void 0){let n=c4(i.client_id);if(!n)return _4(t)({error:`invalid_request`,error_description:`client_id is required`,ctx:e});if(!t.requestUriResolver)return _4(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 _4(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=u0.safeParse(i);if(!s.success){let n=c2(s.error.issues,pve);return _4(t)({...n,ctx:e})}if(i=s.data,e.query=i,await n4.set({query:v4(i).toString()}),!i.response_type)return _4(t)({error:`invalid_request`,error_description:`response_type is required`,ctx:e});let c=e.query?.prompt?T1(e.query?.prompt):void 0,l=c?.has(`none`)??!1;if(c?.has(`select_account`)&&!t.selectAccount?.page)return l4(e,p4(e,`unsupported_prompt_select_account`,`unsupported prompt type`));if(i.response_type!==`code`)return l4(e,p4(e,`unsupported_response_type`,`unsupported response type`));let u=await l1(e,t,i.client_id);if(!u)return l4(e,p4(e,`invalid_client`,`client_id is required`));if(u.disabled)return l4(e,p4(e,`client_disabled`,`client is disabled`));if(!y1(u,`authorization_code`))return l4(e,p4(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=!!h4(d,i.redirect_uri);if(t.validateRedirectUri&&g4(i.redirect_uri))try{f=await t.validateRedirectUri(i.redirect_uri,d,e)}catch{f=!1}else t.validateRedirectUri||(f=e)}if(!f)return l4(e,p4(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 l4(e,s4(i.redirect_uri,`invalid_scope`,`The following scopes are invalid: ${r.join(`, `)}`,i.state,f4(e,t)))}p||(p=u.scopes??t.scopes??[],i.scope=p.join(` `));let m=p.includes(`openid`);if(i.claims!==void 0&&!m)return l4(e,s4(i.redirect_uri,`invalid_request`,`openid scope must be requested when using the claims parameter`,i.state,f4(e,t)));if(m&&!dhe(i.claims))return l4(e,s4(i.redirect_uri,`invalid_request`,`claims must be a valid Claims request object`,i.state,f4(e,t)));if(m&&!fhe(i.claims,`0`))return l4(e,s4(i.redirect_uri,`access_denied`,`essential acr requirement cannot be met`,i.state,f4(e,t)));let h=z1(i.claims,U1(t));if(i.resource!==void 0)try{await J1(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 l4(e,s4(i.redirect_uri,r,a,i.state,f4(e,t)))}throw n}let g=j1(u,{scopes:p,nonce:i.nonce});if(g&&(!i.code_challenge||!i.code_challenge_method))return l4(e,s4(i.redirect_uri,`invalid_request`,g.valueOf(),i.state,f4(e,t)));if(i.code_challenge||i.code_challenge_method){if(!i.code_challenge||!i.code_challenge_method)return l4(e,s4(i.redirect_uri,`invalid_request`,`code_challenge and code_challenge_method must both be provided`,i.state,f4(e,t)));if(![`S256`].includes(i.code_challenge_method))return l4(e,s4(i.redirect_uri,`invalid_request`,`invalid code_challenge method, only S256 is supported`,i.state,f4(e,t)))}let _=a1(i.resource)??[],v=await LJ(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?u4(e,t,i,`login_required`,`authentication required`):b4(e,t,c?.has(`create`)?`create`:`login`);if(b&&(i=dve(i),e.query=i),n?.isAuthorize&&c?.has(`select_account`))return b4(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?u4(e,t,i,`account_selection_required`,`End-User account selection is required`):b4(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?u4(e,t,i,`interaction_required`,`End-User interaction is required`):b4(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?u4(e,t,i,`interaction_required`,`End-User interaction is required`):b4(e,t,`post_login`);if(c?.has(`consent`))return b4(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 y4(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?u4(e,t,i,`consent_required`,`End-User consent is required`):b4(e,t,`consent`,{sessionId:v.session.id});let ee=S?.resources??[];return _.some(e=>!ee.includes(e))?l?u4(e,t,i,`consent_required`,`End-User consent is required`):b4(e,t,`consent`,{sessionId:v.session.id}):y4(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 v4(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 y4(e,t,n){let r=CH(32,`a-z`,`A-Z`,`0-9`),i=Math.floor(Date.now()/1e3),a=i+(t.codeExpiresIn??600),o={identifier:await m1(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`,f4(e,t)),l4(e,s.toString())}async function b4(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 l4(e,`${r?.page??a}?${i}`)}async function vve(e,t,n){let r=Date.now(),i=Math.floor(r/1e3)+(t.codeExpiresIn??600),a=v4(e.query);a.set(`exp`,String(i)),a.set(B$,String(r)),a.delete(`sig`),a.delete(V$),n?.postLoginClearedForSession&&a.set(V$,n.postLoginClearedForSession),kme(a);let o=await BW(U$(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 x4(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`:xY(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:`||M1(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(h2(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&&!m2(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(!xY(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&&M1(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&&bY(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 S4=5e3,C4=5120,Tve=/^application\/(?:[-\w.]+\+)?json\s*(?:;|$)/i,w4=`Failed to fetch metadata document (network error or redirect blocked)`,T4=`cimd`;function E4(e){return new k(`BAD_REQUEST`,{error:`invalid_client`,error_description:e})}function D4(){return E4(`Metadata document exceeds ${C4/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 D4();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(),D4();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 E4(i);if(n.isMetadataDocumentUrlAllowed&&!await n.isMetadataDocumentUrlAllowed(t,e))throw E4(`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()},S4);try{try{o=await n.fetchClientMetadataResource(t,{headers:a,redirect:`error`,signal:s.signal})}catch{throw E4(c?`Metadata document fetch timed out after ${S4}ms`:w4)}if(o.redirected)throw E4(`Metadata document fetch must not follow redirects`);let i=Dve(o.headers);if(o.status===304){if(!r?.etag&&!r?.lastModified)throw E4(`Metadata document returned 304 without a conditional validator`);return{status:`not-modified`,cacheHeaders:i}}if(o.status!==200)throw E4(`Metadata document fetch returned HTTP ${o.status}`);let l=o.headers.get(`content-type`)??``;if(!Tve.test(l))throw E4(`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>C4)throw await o.body?.cancel(),D4()}u=await Eve(o,C4,s.signal)}catch(e){throw c?E4(`Metadata document fetch timed out after ${S4}ms`):e instanceof k?e:E4(w4)}let d;try{d=JSON.parse(u)}catch{throw E4(`Metadata document is not valid JSON`)}let f=wve(t,d,{originBoundFields:n.originBoundFields,metadataProfile:n.metadataProfile});if(!f.valid)throw E4(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 O4(e,t,n,r,i,a){let o=a?{...a}:void 0,s=await z2(e,i,{clientId:t,clientDiscoveryId:T4,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 k4={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 A4(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=(M$(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 j4(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??k4.minimumFetchInterval,`minimumFetchInterval`),maximumConcurrentFetches:j4(t?.maximumConcurrentFetches??k4.maximumConcurrentFetches,`maximumConcurrentFetches`),maximumConcurrentFetchesPerOrigin:j4(t?.maximumConcurrentFetchesPerOrigin??k4.maximumConcurrentFetchesPerOrigin,`maximumConcurrentFetchesPerOrigin`),maximumFetchesPerMinute:j4(t?.maximumFetchesPerMinute??k4.maximumFetchesPerMinute,`maximumFetchesPerMinute`),maximumFetchesPerOriginPerMinute:j4(t?.maximumFetchesPerOriginPerMinute??k4.maximumFetchesPerOriginPerMinute,`maximumFetchesPerOriginPerMinute`)}}function M4(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,(M$(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 N4(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=N4(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=N4(r.get(`s-maxage`)),m=r.has(`max-age`),h=N4(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 A4(`metadata fetch client state is at capacity`)}},p=(e,t)=>{let r=s.get(e);if(r)return M4(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(M4(r.fetchStartTimesMs,t),!(r.activeFetchCount>0||r.fetchStartTimesMs.length>0)){s.delete(n),e=!0;break}if(!e)throw A4(`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 A4(`metadata document fetch is within the per-client minimum interval`);f(e,t);let i=new URL(e).origin,a=p(i,t);if(M4(c,t),l>=r.maximumConcurrentFetches)throw A4(`global metadata fetch concurrency limit exceeded`);if(a.activeFetchCount>=r.maximumConcurrentFetchesPerOrigin)throw A4(`metadata fetch concurrency limit exceeded for client origin`);if(c.length>=r.maximumFetchesPerMinute)throw A4(`global metadata fetch rate limit exceeded`);if(a.fetchStartTimesMs.length>=r.maximumFetchesPerOriginPerMinute)throw A4(`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(!x4(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||O4(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 O4(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:T4,matches:x4,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 ct(r.hostname,{all:!0,verbatim:!0});if(i.length===0)throw TypeError(`metadata hostname returned no DNS addresses`);for(let e of i)if(!xY(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=gee(r,{agent:!1,headers:o,method:n.method,servername:tt(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:$e.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 P4=class e extends F()(`clankerauth/CimdTransport`){static layer=Bd(e,{fetch:Uve(Hve)});static layerWith=t=>t===void 0?e.layer:Bd(e,{fetch:t})};const F4=`x-clankerauth-peer`,Wve=e=>mee({requestTimeout:15e3,headersTimeout:1e4},e),Gve=(e,t)=>{t.writeHead(503).end()},Kve=Wp(`NodeHttp.listen`)(function*(e,t){let n=Gve,r=Wve((e,t)=>n(e,t)),i=Mf(e=>{r.close(()=>e(R)),r.closeAllConnections()});yield*yp(Mf(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=>bp(()=>i).pipe(Vf(()=>L(()=>n=e)))}:yield*If(/* @__PURE__ */ Error(`Expected a TCP listener`))}),qve=zm(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:hi(t,()=>`unknown`)},Xve=({baseURL:e,trustProxy:t})=>n=>z(function*(){let r=yield*Ij,i=r.source,a=i instanceof et?i.url:r.url;if(!a?.startsWith(`/`)||a.startsWith(`//`))return Ik({status:400});let o=_t(r.headers,Jve.test(a)?Zh(`forwarded`):Qh([`forwarded`,`x-forwarded-host`,`x-forwarded-proto`]),Jh(`host`,new URL(e).host),Jh(F4,Yve(r.headers,r.remoteAddress,t)),Zh(`x-forwarded-for`)),s=yield*n.pipe(gp(Ij,r.modify({headers:o})),gp(vO,qve));return i instanceof et?EE(s.body).pipe(OE(`Stream`,e=>Zk(s,PD(e.stream.pipe(lse(()=>L(()=>i.socket.destroy()))),e.contentType,e.contentLength))),jE(()=>s)):s}).pipe(Op),I4=e=>`${L4}${e}`,L4=`resource:`,R4=(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})`,z4=Wp(`Authorization.clear`)(function*(e,t){let n=t.clientId??null,r=t.resource===void 0?null:I4(t.resource);yield*e`DELETE FROM oauthConsent WHERE (${n} IS NULL OR clientId = ${n}) AND (${r} IS NULL OR referenceId = ${r})`,yield*R4(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=ioe(G({message:_x(W),error_description:_x(W)})),Qve=e=>hi(xi(Zve(e.body),e=>gi(e.message??e.error_description)),()=>`Request could not be completed`),B4=e=>new PB({message:e}),V4=e=>new OB({message:e}),H4=(e,t={})=>kf({try:e,catch:e=>{if(!Nq(e))return DB.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)):DB.of(e)}}),U4=(e,t)=>new dI({message:t,issues:[{path:e,message:t}]}),$ve=sx(q(SV)),eye=Vt(`RequestParseError`),tye=e=>$ve(e)?e:DA(e)&&eye(e.reason)?new FB({message:`Request body could not be read`}):DB.of(e),nye=new Map(SV.map(e=>[e,Gy(`httpApiStatus`)(e.ast)??500])),rye=Vk(q(SV)),W4=e=>{let t=tye(e),n=SV.find(e=>sx(e)(t));return rye(t,{status:nye.get(n)??500}).pipe(Qf)},G4=(e,t)=>e===t||e.endsWith(`.${t}`),iye=e=>{try{return new URL(`https://${e}`).hostname===e&&e.includes(`.`)&&!tt(e)}catch{return!1}},K4=(e,t)=>e.protocol===`https:`||e.protocol===`http:`&&([`localhost`,`127.0.0.1`,`[::1]`].includes(e.hostname)||t),q4=`HTTPS origins (HTTP allowed on loopback, or anywhere with CLANKERAUTH_ALLOW_INSECURE_HTTP=true)`,J4=(e,t)=>URL.canParse(e)&&new URL(e).origin===e&&K4(new URL(e),t),Y4=U(function*(e){let{allowInsecureHttp:t,baseURL:n,cookieDomain:r}=e;return J4(n,t)?zh(e.secret).length<32?yield*B(/* @__PURE__ */ Error(`CLANKERAUTH_BETTER_AUTH_SECRET must have at least 32 characters`)):e.mcpAllowedOrigins.every(e=>J4(e,t))?r!==void 0&&(!iye(r)||!G4(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 ${q4}`)):yield*B(/* @__PURE__ */ Error(`CLANKERAUTH_BASE_URL must be one of: ${q4}`))}),aye=z(function*(){let e={baseURL:yield*uE(`CLANKERAUTH_BASE_URL`),secret:yield*qse(`CLANKERAUTH_BETTER_AUTH_SECRET`),database:yield*uE(`CLANKERAUTH_DATABASE`).pipe(nE(`data/clankerauth.sqlite`)),host:yield*uE(`CLANKERAUTH_HOST`).pipe(nE(`127.0.0.1`)),port:yield*Kse(`CLANKERAUTH_PORT`).pipe(nE(3e3)),mcpAllowedOrigins:yield*Gse(uS,`CLANKERAUTH_MCP_ALLOWED_ORIGINS`).pipe(nE([])),trustProxy:yield*dE(`CLANKERAUTH_TRUST_PROXY`).pipe(nE(!1)),allowInsecureHttp:yield*dE(`CLANKERAUTH_ALLOW_INSECURE_HTTP`).pipe(nE(!1)),cookieDomain:yield*uE(`CLANKERAUTH_COOKIE_DOMAIN`).pipe(nE(void 0))};return yield*Y4(e)});var X4=class e extends F()(`clankerauth/Settings`){static layer=Ud(e,aye)};const Z4=`Exactly one configured resource is required`,Q4=[`offline_access`],oye=MV(sS(K(W))),sye=MV(G({identifier:W,name:W,allowedScopes:W})),$4=MV(K(aV)),e3=(e,t)=>[.../* @__PURE__ */ new Set([...Q4,...t.flatMap(t=>e.find(e=>e.identifier===t)?.scopes??[])])],t3=Wp(`ResourceCatalog.validateSelection`)(function*(e,t){let n=t.findIndex(t=>!e.some(e=>e.identifier===t));if(n!==-1)return yield*U4([`resources`,n],`Unknown Resource`)}),n3=Wp(`ResourceCatalog.accessForClient`)(function*(e,t){return yield*$4(yield*t`SELECT clientId AS client_id, resourceId AS resource FROM oauthClientResource WHERE clientId = ${e} ORDER BY resourceId`)});var r3=class e extends F()(`clankerauth/ResourceCatalog`){static layer=Ud(e,z(function*(){let{sql:e}=yield*IV,t=VB((yield*X4).baseURL),n=Wp(`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=>!Q4.includes(e)),builtIn:n.identifier===t}}),r=Wp(`ResourceCatalog.list`)(function*(){let t=yield*e`SELECT identifier, name, allowedScopes FROM oauthResource ORDER BY createdAt, identifier`;return yield*Ef(t,n)}),i=Wp(`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:Wp(`ResourceCatalog.access`)(function*(){return yield*$4(yield*e`SELECT clientId AS client_id, resourceId AS resource FROM oauthClientResource ORDER BY clientId, resourceId`)}),hasAccess:Wp(`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:Wp(`ResourceCatalog.scopesFor`)(function*(e){let t=yield*r();return yield*t3(t,e),e3(t,e)})}}))};const cye=roe(G({typ:W,payload:Ax(W,PS)})),lye=e=>({id:`signer`,endpoints:{signDocument:X.serverOnly({method:`POST`,body:cye},async t=>t.json({token:await F$(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=o4({loginPage:`/login`,consentPage:`/consent`,scopes:[...Q4],resources:[{identifier:VB(e.baseURL),name:`clankerauth administration`,allowedScopes:[...Q4,HB.read,HB.write]}],resourceSeedMode:`merge`,rateLimit:{register:{window:60,max:10}},postLogin:{page:`/consent`,shouldRedirect:()=>!1,consentReferenceId:async({scopes:e})=>{let t=await r4(),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:Z4});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 I4(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:zh(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:Lq(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:[F4]}},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 i3=class e extends F()(`clankerauth/Issuer`){static layer=Ud(e,z(function*(){let e=yield*X4,{kysely:t}=yield*IV,n=yield*r3,{fetch:r}=yield*P4,i=uie(yield*lp()),{options:a,oauthPlugin:o}=dye(e,t,n,r,i,async()=>await(await ZV((await s.$context).adapter)).count({model:`user`})>0),{auth:s,context:c}=yield*Wp(`Auth.initialize`)(function*(){let e=yield*kf(()=>zQ(a));if(e.schemaProblems.length)return yield*B(/* @__PURE__ */ Error(`Database schema requires manual repair`));yield*kf(()=>e.runMigrations());let t=Lpe(a);return{auth:t,context:yield*kf(()=>t.$context)}},Ap)();return{auth:s,context:c,publishScopes:e=>L(()=>{o.options.scopes=[...e]})}}))};const fye=cx(cV),pye=cx(G({id:W,key:W,referenceId:W,expiresAt:Ix(bS),permissions:Ix(sS(cV))})),a3=U(function*(e){return{keyId:e.id,name:e.name??``,enabled:e.enabled,permissions:yield*fye(e.permissions??{}).pipe(Kf(()=>Wf(Kp(`An API key's stored permissions do not decode; it is listed with none`,{keyId:e.id}),{}))),expiresAt:e.expiresAt?Um(e.expiresAt):null,createdAt:Um(e.createdAt)}});var o3=class e extends F()(`clankerauth/ApiKeys`){static layer=Ud(e,z(function*(){let{auth:e}=yield*i3,{sql:t}=yield*IV,n=yield*r3,r=Wp(`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*U4([`permissions`,t],`Administration requires OAuth access tokens, not API keys`);if(!e||r.some(t=>!e.scopes.includes(t)))return yield*U4([`permissions`,t],`Select explicitly granted, currently available Resource scopes`)}});return{list:Wp(`ApiKeys.list`)(function*(){let{providerHeaders:t}=yield*LB,n=yield*t,r=yield*H4(()=>e.api.listApiKeys({headers:n,query:{sortBy:`createdAt`,sortDirection:`asc`}}));return{keys:yield*Ef(r.apiKeys,a3)}}),create:Wp(`ApiKeys.create`)(function*(t){let n=yield*LB;yield*r(t.permissions);let i=t.expiresAt===null?null:(qm(t.expiresAt)-(yield*af))/1e3;if(i!==null&&i<1)return yield*U4([`expiresAt`],`Expiry must be in the future`);let a=yield*H4(()=>e.api.createApiKey({body:{userId:n.userId,name:t.name.trim(),permissions:pa(t.permissions,e=>[...e]),expiresIn:i}}),{refused:B4});return{...yield*a3(a),key:a.key}}),update:Wp(`ApiKeys.update`)(function*(t){let n=yield*LB;return yield*r(t.permissions),yield*a3(yield*H4(()=>e.api.updateApiKey({body:{userId:n.userId,keyId:t.keyId,name:t.name?.trim(),enabled:t.enabled,permissions:t.permissions&&pa(t.permissions,e=>[...e])}}),{refused:B4,missing:()=>jB.of(t.keyId)}))}),delete:Wp(`ApiKeys.delete`)(function*({keyId:t}){let{providerHeaders:n}=yield*LB,r=yield*n;return yield*H4(()=>e.api.deleteApiKey({headers:r,body:{keyId:t}}),{missing:()=>jB.of(t)}),{deleted:!0}}),keyList:Wp(`ApiKeys.keyList`)(function*(r){let i=yield*af,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*Ef(o,e=>z(function*(){let t=yield*pye(e),n=(t.permissions?.[r]??[]).filter(e=>a.includes(e));return n.length?[yield*kf(()=>mde(new Uint8Array(Buffer.from(t.key,`base64url`)),r,{keyId:t.id,ownerId:t.referenceId,scopes:n,expiresAt:t.expiresAt===null?null:qm(t.expiresAt)}))]:[]}).pipe(Kf(()=>Wf(Kp(`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*H4(()=>e.api.signDocument({body:{typ:iI,payload:{aud:r,iat:c,exp:c+86400,keys:s.flat()}}}));return{list:l}})}}))};const s3=e=>e.userId===null,mye=MV(K(G({userId:Ix(W)}))),c3=Wp(`Clients.requireManaged`)(function*(e,t){let[n]=yield*mye(yield*t`SELECT userId FROM oauthClient WHERE clientId = ${e}`);if(!n)return yield*B(kB.of(e));if(s3(n))return yield*B(MB.of(e))}),hye=MV(K(G({clientId:W}))),l3=e=>({identifier:encodeURIComponent(e)}),gye=e=>{try{return new URL(e).href===e&&!e.includes(`#`)}catch{return!1}},u3=Wp(`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*U4([`identifier`],`Resource identifiers must be absolute URIs in canonical form, without a fragment`);let i=e.scopes.findIndex(e=>Q4.includes(e.trim()));return i===-1?{identifier:t,name:n,scopes:r}:yield*U4([`scopes`,i],`offline_access is reserved`)});var d3=class e extends F()(`clankerauth/Resources`){static layer=Ud(e,z(function*(){let{sql:e,transaction:t}=yield*IV,{auth:n,publishScopes:r}=yield*i3,i=yield*r3,a=yield*KC(1),o=e=>a.withPermit(e),s=Wp(`Resources.syncClient`)(function*(e,t,n){let r=yield*n3(n,e),i=JSON.stringify(e3(t,r.map(e=>e.resource)));yield*e`UPDATE oauthClient SET scopes = ${i}, updatedAt = ${yield*af} WHERE clientId = ${n} AND scopes IS NOT ${i}`}),c=Wp(`Resources.synchronize`)(function*(){let t=yield*i.list(),n=e3(t,t.map(e=>e.identifier));yield*r(n),yield*e`UPDATE oauthClient SET scopes = ${JSON.stringify(n)}, updatedAt = ${yield*af} 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=Wp(`Resources.reserved`)(function*(e){if((yield*i.get(e))?.builtIn)return yield*U4([`identifier`],`The administration Resource is fixed`)}),u=V(LB,e=>e.providerHeaders);yield*c();let d=Wp(`Resources.link`)(function*(n,r){let a=yield*i.list();yield*t3(a,r);let o=yield*af;return yield*t(e=>z(function*(){let t=(yield*n3(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*z4(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*n3(n,e)},o);return{link:d,create:Wp(`Resources.create`)(function*(e){let r=yield*u3(e),a=yield*u;return(yield*i.get(r.identifier))||(yield*t(e=>z4(e,{resource:r.identifier}))),yield*H4(()=>n.api.adminCreateOAuthResource({headers:a,body:{identifier:r.identifier,name:r.name,allowedScopes:[...Q4,...r.scopes]}}),{refused:B4}),yield*c(),r},o),update:Wp(`Resources.update`)(function*(e){let t=yield*u3(e);yield*l(t.identifier);let r=yield*u;return yield*H4(()=>n.api.adminUpdateOAuthResource({headers:r,params:l3(t.identifier),body:{name:t.name,allowedScopes:[...Q4,...t.scopes]}}),{refused:B4,missing:()=>AB.of(t.identifier)}),yield*c(),t},o),delete:Wp(`Resources.delete`)(function*({identifier:e}){yield*l(e);let r=yield*u;return yield*H4(()=>n.api.adminDeleteOAuthResource({headers:r,params:l3(e)}),{missing:()=>AB.of(e)}),yield*t(t=>z4(t,{resource:e})),yield*c(),{deleted:!0}},o),setAccess:Wp(`Resources.setAccess`)(function*({client_id:t,resources:n}){return yield*c3(t,e),{clientAccess:yield*d(t,n)}})}}))};const _ye=MV(K(G({client_id:W,resource:W,scopes:sS(K(W)),approvedAt:Ix(bS),refreshedAt:Ix(bS)}))),vye=MV(K(G({clientId:W,name:Ix(W),redirectUris:sS(K(W)),tokenEndpointAuthMethod:Ix(W),applicationType:Ix(W),scopes:Ix(sS(K(W))),grantTypes:Ix(sS(K(W))),disabled:Ix(Tx),clientDiscoveryId:Ix(W),userId:Ix(W)})));var f3=class e extends F()(`clankerauth/Clients`){static layer=Ud(e,z(function*(){let{sql:e,transaction:t}=yield*IV,{auth:n}=yield*i3,{baseURL:r}=yield*X4,i=yield*r3,a=yield*d3,o=Wp(`Clients.exists`)(function*(e,t){if(!(yield*t`SELECT 1 FROM oauthClient WHERE clientId = ${e}`).length)return yield*B(kB.of(e))}),s=Wp(`Clients.revoke`)(function*(e,t,n){return yield*o(e,n),yield*z4(n,{clientId:e,resource:t}),{revoked:!0}}),c=Wp(`Clients.connections`)(function*(){let t=new Date(yield*af).toISOString();return(yield*_ye(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 = ${L4} || 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=>!Q4.includes(e))}))});return{connections:c,list:Wp(`Clients.list`)(function*(){let{email:t}=yield*LB,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*vye(n)).map(e=>({client_id:e.clientId,onboarding:e.clientDiscoveryId===null?s3(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*Tf({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:Wp(`Clients.create`)(function*(e){let{providerHeaders:t}=yield*LB,r=yield*i.scopesFor(e.resources),o=yield*t,s=yield*H4(()=>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:B4});return yield*a.link(s.client_id,e.resources).pipe($f(()=>H4(()=>n.api.deleteOAuthClient({headers:o,body:{client_id:s.client_id}})))),s}),update:Wp(`Clients.update`)(function*(t){yield*c3(t.client_id,e);let{providerHeaders:r}=yield*LB,i=yield*r;return yield*H4(()=>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:B4,missing:()=>kB.of(t.client_id)})}),rotate:Wp(`Clients.rotate`)(function*(t){yield*c3(t.client_id,e);let{providerHeaders:r}=yield*LB,i=yield*r;return yield*H4(()=>n.api.rotateClientSecret({headers:i,body:t}),{refused:B4,missing:()=>kB.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*R4(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*af} WHERE clientId = ${e}`,{blocked:n}}))}}))};const yye=[`/`,`/resources`,`/keys`,`/login`,`/setup`,`/consent`],bye=({readOnly:e,mcp:t})=>({readOnlyHint:e,destructiveHint:t.destructiveHint??!e,idempotentHint:t.idempotentHint??!1,openWorldHint:t.openWorldHint??!0}),p3=`~effect/ai/AiError/Reason`;var xye=class extends (/*#__PURE__*/ kS(`effect/ai/AiError/ToolParameterValidationError`)({_tag:/*#__PURE__*/ Bx(`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`,Sye=()=>(e,t)=>{let n=Pn(),r;n!==0&&(Fn(2),r=new globalThis.Error,Fn(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??Sx,a.requiredForClient=t?.requiredForClient??!1,i},h3=(e,t)=>{let n=L(t);return _x(e).pipe(goe({decode:w_(n),encode:y_()}),zx(n))},Z=e=>_x(e).pipe(Rx(yx(vx(e)),{decode:y_(),encode:S_(xi(_i))})),Cye=/*#__PURE__*/ q([W,qx]),g3=/*#__PURE__*/ q([W,qx]);var _3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({_meta:/*#__PURE__*/ Z(/*#__PURE__*/ jx(/*#__PURE__*/ G({progressToken:/*#__PURE__*/ Z(g3)}),[FS]))}))){},v3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({_meta:/*#__PURE__*/ Z(FS)}))){},y3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({_meta:/*#__PURE__*/ Z(FS)}))){};const wye=W;({..._3.fields});var b3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({...v3.fields,nextCursor:/*#__PURE__*/ Z(wye)}))){};const x3=/*#__PURE__*/ Fx([`user`,`assistant`]);var S3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({audience:/*#__PURE__*/ Z(/*#__PURE__*/ K(x3)),priority:/*#__PURE__*/ Z(/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({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__*/ Fx([`light`,`dark`]))})){},w3=class extends (/*#__PURE__*/ Hx()(/*#__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__*/ Ax(W,/*#__PURE__*/ G({}))),extensions:/*#__PURE__*/ Z(/*#__PURE__*/ Ax(/*#__PURE__*/ xx([W,`/`,W]),PS)),roots:/*#__PURE__*/ Z(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ Z(Ex)})),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({}))}))})){},Tye=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({experimental:/*#__PURE__*/ Z(/*#__PURE__*/ Ax(W,/*#__PURE__*/ G({}))),extensions:/*#__PURE__*/ Z(/*#__PURE__*/ Ax(/*#__PURE__*/ xx([W,`/`,W]),PS)),logging:/*#__PURE__*/ Z(/*#__PURE__*/ G({})),completions:/*#__PURE__*/ Z(/*#__PURE__*/ G({})),prompts:/*#__PURE__*/ Z(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ Z(Ex)})),resources:/*#__PURE__*/ Z(/*#__PURE__*/ G({subscribe:/*#__PURE__*/ Z(Ex),listChanged:/*#__PURE__*/ Z(Ex)})),tools:/*#__PURE__*/ Z(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ Z(Ex)}))}))){},E3=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/McpErrorBase`)({code:Xx,message:W,data:/*#__PURE__*/ Z(Cx)})){};const D3=-32601,O3=-32602,k3=-32603,A3=-32020;var j3=class extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/ParseError`)({...E3.fields,_tag:/*#__PURE__*/ Bx(`ParseError`),code:/*#__PURE__*/ Bx(-32700)})){},M3=class extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/InvalidRequest`)({...E3.fields,_tag:/*#__PURE__*/ Bx(`InvalidRequest`),code:/*#__PURE__*/ Bx(-32600)})){},N3=class extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/MethodNotFound`)({...E3.fields,_tag:/*#__PURE__*/ Bx(`MethodNotFound`),code:/*#__PURE__*/ Bx(D3)})){},P3=class extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/InvalidParams`)({...E3.fields,_tag:/*#__PURE__*/ Bx(`InvalidParams`),code:/*#__PURE__*/ Bx(O3)})){},F3=class e extends (/*#__PURE__*/ kS(`effect/ai/McpSchema/InternalError`)({...E3.fields,_tag:/*#__PURE__*/ Bx(`InternalError`),code:/*#__PURE__*/ Bx(k3)})){static notImplemented=/*#__PURE__*/ new e({message:`Not implemented`})};const I3=/*#__PURE__*/ q([j3,M3,N3,P3,F3,E3]);var Eye=class extends (/*#__PURE__*/ J(`ping`,{success:/*#__PURE__*/ G({}),error:I3,payload:/*#__PURE__*/ Lx(_3)})){},Dye=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({...v3.fields,protocolVersion:W,capabilities:Tye,serverInfo:w3,instructions:/*#__PURE__*/ Z(W)}))){},Oye=class extends (/*#__PURE__*/ J(`initialize`,{success:Dye,error:I3,payload:{..._3.fields,protocolVersion:W,capabilities:T3,clientInfo:w3}})){},L3=class extends (/*#__PURE__*/ J(`notifications/cancelled`,{payload:{...y3.fields,requestId:Cye,reason:/*#__PURE__*/ Z(W)}})){},R3=class extends (/*#__PURE__*/ J(`notifications/progress`,{payload:{...y3.fields,progressToken:g3,progress:qx,total:/*#__PURE__*/ Z(qx),message:/*#__PURE__*/ Z(W)}})){},kye=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(Xx),_meta:/*#__PURE__*/ Z(FS)})){},z3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({uri:W,mimeType:/*#__PURE__*/ Z(W),_meta:/*#__PURE__*/ Z(FS)}))){},Aye=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({...z3.fields,text:W}))){},jye=class extends (/*#__PURE__*/ Hx()(/*#__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__*/ Lx(y3)})){};({..._3.fields}),{..._3.fields};var V3=class extends (/*#__PURE__*/ J(`notifications/resources/updated`,{payload:{...y3.fields,uri:W}})){},Mye=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({name:W,title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),required:/*#__PURE__*/ Z(Ex)}))){},Nye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/Prompt`)({name:W,title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),arguments:/*#__PURE__*/ Z(/*#__PURE__*/ K(Mye)),icons:/*#__PURE__*/ Z(/*#__PURE__*/ K(C3)),_meta:/*#__PURE__*/ Z(FS)})){},H3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({type:/*#__PURE__*/ Bx(`text`),text:W,annotations:/*#__PURE__*/ Z(S3),_meta:/*#__PURE__*/ Z(FS)}))){},U3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({type:/*#__PURE__*/ Bx(`image`),data:pS,mimeType:W,annotations:/*#__PURE__*/ Z(S3),_meta:/*#__PURE__*/ Z(FS)}))){},W3=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({type:/*#__PURE__*/ Bx(`audio`),data:pS,mimeType:W,annotations:/*#__PURE__*/ Z(S3),_meta:/*#__PURE__*/ Z(FS)}))){};const G3=/*#__PURE__*/ q([H3,U3,W3,class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({type:/*#__PURE__*/ Bx(`resource`),resource:/*#__PURE__*/ q([Aye,jye]),annotations:/*#__PURE__*/ Z(S3),_meta:/*#__PURE__*/ Z(FS)}))){},class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({...kye.fields,type:/*#__PURE__*/ Bx(`resource_link`)}))){}]);({...b3.fields}),{...v3.fields},{..._3.fields};var K3=class extends (/*#__PURE__*/ J(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ Lx(y3)})){},Pye=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({title:/*#__PURE__*/ Z(W),readOnlyHint:/*#__PURE__*/ h3(Ex,mt),destructiveHint:/*#__PURE__*/ h3(Ex,pt),idempotentHint:/*#__PURE__*/ h3(Ex,mt),openWorldHint:/*#__PURE__*/ h3(Ex,pt)}))){};const q3=/*#__PURE__*/ jx(/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`object`),properties:/*#__PURE__*/ Z(/*#__PURE__*/ Ax(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(Pye),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(Ex)})){};({..._3.fields});var Z3=class extends (/*#__PURE__*/ J(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ Lx(y3)})){};const Q3=/*#__PURE__*/ Fx([`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:Cx})})){};const e6=/*#__PURE__*/ q([H3,U3,W3,class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ToolUseContent`)({type:/*#__PURE__*/ Bx(`tool_use`),id:W,name:W,input:/*#__PURE__*/ Ax(W,wx),_meta:/*#__PURE__*/ Z(FS)})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ToolResultContent`)({type:/*#__PURE__*/ Bx(`tool_result`),toolUseId:W,content:/*#__PURE__*/ K(G3),structuredContent:/*#__PURE__*/ Z(PS),isError:/*#__PURE__*/ Z(Ex),_meta:/*#__PURE__*/ Z(FS)})){}]);var Fye=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({role:x3,content:/*#__PURE__*/ q([e6,/*#__PURE__*/ K(e6)]),_meta:/*#__PURE__*/ Z(FS)}))){},Iye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ToolChoice`)({mode:/*#__PURE__*/ Z(/*#__PURE__*/ Fx([`auto`,`required`,`none`]))})){},Lye=class extends (/*#__PURE__*/ Hx()(/*#__PURE__*/ G({name:/*#__PURE__*/ Z(W)}))){},Rye=class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ModelPreferences`)({hints:/*#__PURE__*/ Z(/*#__PURE__*/ K(Lye)),costPriority:/*#__PURE__*/ Z(/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1}))),speedPriority:/*#__PURE__*/ Z(/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1}))),intelligencePriority:/*#__PURE__*/ Z(/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1})))})){},zye=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:zye,error:I3,payload:{messages:/*#__PURE__*/ K(Fye),modelPreferences:/*#__PURE__*/ Z(/*#__PURE__*/ G(Rye.fields)),systemPrompt:/*#__PURE__*/ Z(W),includeContext:/*#__PURE__*/ Z(/*#__PURE__*/ Fx([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ Z(qx),maxTokens:Xx,stopSequences:/*#__PURE__*/ Z(/*#__PURE__*/ K(W)),metadata:/*#__PURE__*/ Z(/*#__PURE__*/ Ax(W,wx)),tools:/*#__PURE__*/ Z(/*#__PURE__*/ K(/*#__PURE__*/ G(Y3.fields))),toolChoice:/*#__PURE__*/ Z(/*#__PURE__*/ G(Iye.fields))}})){};({...v3.fields});var Bye=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(Bye)})){},r6=class extends (/*#__PURE__*/ J(`roots/list`,{success:n6,error:I3,payload:/*#__PURE__*/ Lx(_3)})){};const Vye=/*#__PURE__*/ G({$schema:/*#__PURE__*/ Z(W),type:/*#__PURE__*/ Bx(`object`),properties:/*#__PURE__*/ Ax(W,/* @__PURE__ */ q([/* @__PURE__ */ q([class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/LegacyTitledEnum`)({type:/*#__PURE__*/ Bx(`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__*/ Bx(`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__*/ Bx(`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__*/ Bx(`array`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),minItems:/*#__PURE__*/ Z(Xx),maxItems:/*#__PURE__*/ Z(Xx),items:/*#__PURE__*/ G({type:/*#__PURE__*/ Bx(`string`),enum:/*#__PURE__*/ K(W)}),default:/*#__PURE__*/ Z(/*#__PURE__*/ K(W))})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/TitledMultiSelectEnum`)({type:/*#__PURE__*/ Bx(`array`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),minItems:/*#__PURE__*/ Z(Xx),maxItems:/*#__PURE__*/ Z(Xx),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__*/ Bx(`string`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),minLength:/*#__PURE__*/ Z(Xx),maxLength:/*#__PURE__*/ Z(Xx),format:/*#__PURE__*/ Z(/*#__PURE__*/ Fx([`email`,`uri`,`date`,`date-time`])),default:/*#__PURE__*/ Z(W)})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitationNumber`)({type:/*#__PURE__*/ Fx([`number`,`integer`]),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),minimum:/*#__PURE__*/ Z(qx),maximum:/*#__PURE__*/ Z(qx),default:/*#__PURE__*/ Z(qx)})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitationBoolean`)({type:/*#__PURE__*/ Bx(`boolean`),title:/*#__PURE__*/ Z(W),description:/*#__PURE__*/ Z(W),default:/*#__PURE__*/ Z(Ex)})){}])),required:/*#__PURE__*/ Z(/*#__PURE__*/ K(W))}),Hye=/*#__PURE__*/ q([class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitRequestFormParams`)({..._3.fields,mode:/*#__PURE__*/ Z(/*#__PURE__*/ bx(`form`)),message:W,requestedSchema:Vye})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitRequestURLParams`)({..._3.fields,mode:/*#__PURE__*/ bx(`url`),message:W,elicitationId:W,url:W})){}]),Uye=/*#__PURE__*/ q([class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitAcceptResult`)({...v3.fields,action:/*#__PURE__*/ bx(`accept`),content:/*#__PURE__*/ Z(/*#__PURE__*/ Ax(W,/*#__PURE__*/ q([W,qx,Ex,/*#__PURE__*/ K(W)])))})){},class extends (/*#__PURE__*/ OS(`@effect/ai/McpSchema/ElicitDeclineResult`)({...v3.fields,action:/*#__PURE__*/ Fx([`cancel`,`decline`])})){}]);var i6=class extends (/*#__PURE__*/ J(`elicitation/create`,{success:Uye,error:I3,payload:Hye})){},Wye=class extends (/*#__PURE__*/ J(`notifications/elicitation/complete`,{payload:{elicitationId:W}})){};i6.payloadSchema;var a6=class extends (/*#__PURE__*/ go(`McpReverseOperationUnsupported`)){},Gye=class extends (/*#__PURE__*/ go(`McpReverseOperationError`)){},o6=class extends (/*#__PURE__*/ F()(`effect/ai/McpSchema/McpRequestContext`)){},s6=class extends (/*#__PURE__*/ F()(`effect/ai/McpSchema/McpServerClient`)){},c6=class extends (/*#__PURE__*/ Sye()(`effect/ai/McpSchema/McpServerClientMiddleware`)){},Kye=class extends (/*#__PURE__*/ aN(L3,R3,$3,V3,B3,Z3,K3,Wye)){},l6=class extends (/*#__PURE__*/ F()(`effect/ai/McpSchema/EnabledWhen`)){};const u6={Complete:e=>({_tag:`Complete`,value:e}),InputRequired:e=>({_tag:`InputRequired`,...e})};var qye=class extends (/*#__PURE__*/ go(`ResourceNotFound`)){},Jye=class extends (/*#__PURE__*/ go(`ToolNotFound`)){},Yye=class extends (/*#__PURE__*/ go(`InvalidToolInput`)){},Xye=class extends (/*#__PURE__*/ go(`InvalidToolContinuation`)){},Zye=class extends (/*#__PURE__*/ go(`ToolExecutionError`)){},d6=class extends (/*#__PURE__*/ go(`UnsupportedByProtocol`)){},Qye=class extends (/*#__PURE__*/ go(`PromptNotFound`)){};const f6=/*#__PURE__*/ mo(),p6=/*#__PURE__*/ mo(),$ye=/*#__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)=>jf(()=>{let r=e.get(t.name);return r===void 0||!r.isVisible(n.protocol)?new Jye({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 qye({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 Qye({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=Da(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}))}}),ebe=/*#__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=Xm(e.slice(9,-2));if(!na(r))try{return ebe.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=>zt(e)&&(e.type===`tool_use`||e.type===`tool_result`),S6=e=>zt(e)?e.tools!==void 0||e.toolChoice!==void 0?!0:Array.isArray(e.messages)?e.messages.some(e=>{if(!zt(e))return!1;let t=e.content;return Array.isArray(t)?t.some(x6):x6(t)}):!1:!1;var C6=class e extends (/*#__PURE__*/ go(`ProtocolError`)){static fromTool(t){let n=EE(t).pipe(OE(`ToolNotFound`,e=>`Tool '${e.name}' not found`),OE(`UnsupportedByProtocol`,e=>`${e.feature} is not supported by MCP ${e.protocolVersion}`),kE({InvalidToolInput:e=>e.message,InvalidToolContinuation:e=>e.message,ToolExecutionError:e=>e.message}),ME);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`)&&Tt(t.name))return new e({code:O3,message:`Prompt '${t.name}' not found`});if(t._tag===`ResourceNotFound`&&P(t,`uri`)&&Tt(t.uri))return new e({code:-32002,message:`Resource '${t.uri}' not found`})}let n=tbe(t);return ra(n)?new e(n.success):new e({code:k3,message:`MCP feature handler failed`})}};const tbe=/*#__PURE__*/ aoe(/* @__PURE__ */ G({code:qx,message:W,data:/*#__PURE__*/ _x(wx)})),nbe=e=>Vt(e,`McpReverseOperationUnsupported`),w6=e=>t=>nbe(t)?t:new Gye({operation:e,cause:t}),T6=(e,t,n)=>fx(e)(n).pipe(V(cx(t))),rbe=(e,t,n)=>fx(e)(n).pipe(V(cx(t,{onExcessProperty:`error`}))),E6=/*#__PURE__*/ Wp(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:cx(r),encode:dx(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`?If(`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=>rle(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)}/`,ibe=/*#__PURE__*/ U(function*(e){if(e.length===0)return yield*new Lu(`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 Lu(`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*If(`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}}),abe=()=>{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(Gf)},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(Gf)},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:Lse(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}},obe=e=>L6(I6(I6(e)?.params)?._meta).present,sbe=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__*/ aN(Eye),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`),cbe=/*#__PURE__*/ U(function*(e){let t=e.find(e=>e.runtime._tag===`Stateful`)===void 0?void 0:abe(),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 Lu(`MCP runtime supports at most one stateless protocol`);r=t.runtime,i=t}let a=yield*ibe(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=sbe(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*If(`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(na(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(obe)||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=>jf(()=>{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),Wf(Ef(o,e=>e(i),{discard:!0}),Ik({status:204}))}),onSessionTerminated:e=>yp(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*If(`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*Rf(s=>{let c=Bi(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:Oye.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 Mi(r)})})}),U6=e=>Ud(V6)(cbe(e)),W6=e=>_x(e).pipe(Rx(yx(vx(e)),{decode:y_(),encode:S_(xi(_i))})),G6=FS,lbe=/*#__PURE__*/ q([W,qx]),K6=/*#__PURE__*/ q([W,qx]),q6=/*#__PURE__*/ Fx([`user`,`assistant`]),J6=/*#__PURE__*/ Fx([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Y6=/*#__PURE__*/ G({_meta:/*#__PURE__*/ W6(/*#__PURE__*/ jx(/*#__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)}),ube=/*#__PURE__*/ G({extensions:/*#__PURE__*/ W6(/*#__PURE__*/ Ax(/*#__PURE__*/ xx([W,`/`,W]),PS)),experimental:/*#__PURE__*/ W6(/*#__PURE__*/ Ax(W,G6)),roots:/*#__PURE__*/ W6(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ W6(Ex)})),sampling:/*#__PURE__*/ W6(G6)}),dbe=/*#__PURE__*/ G({extensions:/*#__PURE__*/ W6(/*#__PURE__*/ Ax(/*#__PURE__*/ xx([W,`/`,W]),PS)),experimental:/*#__PURE__*/ W6(/*#__PURE__*/ Ax(W,G6)),logging:/*#__PURE__*/ W6(G6),prompts:/*#__PURE__*/ W6(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ W6(Ex)})),resources:/*#__PURE__*/ W6(/*#__PURE__*/ G({subscribe:/*#__PURE__*/ W6(Ex),listChanged:/*#__PURE__*/ W6(Ex)})),tools:/*#__PURE__*/ W6(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ W6(Ex)}))}),e8=/*#__PURE__*/ G({code:Xx,message:W,data:/*#__PURE__*/ W6(Cx)}),t8=/*#__PURE__*/ G({audience:/*#__PURE__*/ W6(/*#__PURE__*/ K(q6)),priority:/*#__PURE__*/ W6(/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1})))}),fbe=/*#__PURE__*/ G({uri:W,mimeType:/*#__PURE__*/ W6(W),text:W}),pbe=/*#__PURE__*/ G({uri:W,mimeType:/*#__PURE__*/ W6(W),blob:W}),mbe=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`text`),text:W,annotations:/*#__PURE__*/ W6(t8)}),hbe=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`image`),data:W,mimeType:W,annotations:/*#__PURE__*/ W6(t8)}),gbe=/*#__PURE__*/ G({uri:W,name:W,description:/*#__PURE__*/ W6(W),mimeType:/*#__PURE__*/ W6(W),size:/*#__PURE__*/ W6(qx),annotations:/*#__PURE__*/ W6(t8)}),_be=/*#__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(Ex)}),vbe=/*#__PURE__*/ G({name:W,description:/*#__PURE__*/ W6(W),arguments:/*#__PURE__*/ W6(/*#__PURE__*/ K(n8))}),ybe=/*#__PURE__*/ G({name:W,description:/*#__PURE__*/ W6(W),inputSchema:/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`object`),properties:/*#__PURE__*/ W6(/*#__PURE__*/ Ax(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__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1}))),speedPriority:/*#__PURE__*/ W6(/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1}))),intelligencePriority:/*#__PURE__*/ W6(/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1})))}),bbe=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`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 xbe=/*#__PURE__*/ G({...Z6.fields,completion:/*#__PURE__*/ G({values:/*#__PURE__*/ K(W),total:/*#__PURE__*/ W6(qx),hasMore:/*#__PURE__*/ W6(Ex)})}),Sbe=/*#__PURE__*/ G({...Z6.fields,roots:/*#__PURE__*/ K(i8)});var a8=class extends (/*#__PURE__*/ J(`ping`,{success:Z6,error:e8,payload:/*#__PURE__*/ Lx(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:Sbe,error:e8,payload:/*#__PURE__*/ Lx(Y6)})){},u8=class extends (/*#__PURE__*/ J(`notifications/cancelled`,{payload:{...X6.fields,requestId:lbe,reason:/*#__PURE__*/ W6(W)}})){};({...X6.fields});var d8=class extends (/*#__PURE__*/ J(`notifications/initialized`,{payload:/*#__PURE__*/ Lx(X6)})){},f8=class extends (/*#__PURE__*/ J(`notifications/roots/list_changed`,{payload:/*#__PURE__*/ Lx(X6)})){},p8=class extends (/*#__PURE__*/ J(`notifications/message`,{payload:{...X6.fields,level:J6,logger:/*#__PURE__*/ W6(W),data:Cx}})){},m8=class extends (/*#__PURE__*/ J(`notifications/resources/updated`,{payload:{...X6.fields,uri:W}})){},h8=class extends (/*#__PURE__*/ J(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ Lx(X6)})){},g8=class extends (/*#__PURE__*/ J(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ Lx(X6)})){},_8=class extends (/*#__PURE__*/ J(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ Lx(X6)})){};const v8=W6,Cbe=/*#__PURE__*/ G({...dbe.fields,completions:/*#__PURE__*/ v8(/*#__PURE__*/ G({}))}),wbe=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`audio`),data:W,mimeType:W,annotations:/*#__PURE__*/ v8(t8)}),y8=/*#__PURE__*/ G({title:/*#__PURE__*/ v8(W),readOnlyHint:/*#__PURE__*/ v8(Ex),destructiveHint:/*#__PURE__*/ v8(Ex),idempotentHint:/*#__PURE__*/ v8(Ex),openWorldHint:/*#__PURE__*/ v8(Ex)});({...ybe.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:qx,total:/*#__PURE__*/ v8(qx),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({...ube.fields,elicitation:/*#__PURE__*/ S8(/*#__PURE__*/ G({}))}),D8=/*#__PURE__*/ G({audience:/*#__PURE__*/ S8(/*#__PURE__*/ K(q6)),priority:/*#__PURE__*/ S8(/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1})))}),O8=/*#__PURE__*/ G({...gbe.fields,title:/*#__PURE__*/ S8(W),annotations:/*#__PURE__*/ S8(D8),_meta:w8}),k8=/*#__PURE__*/ G({..._be.fields,title:/*#__PURE__*/ S8(W),annotations:/*#__PURE__*/ S8(D8),_meta:w8}),A8=/*#__PURE__*/ q([/* @__PURE__ */ G({...fbe.fields,_meta:w8}),/* @__PURE__ */ G({...pbe.fields,_meta:w8})]),Tbe=/*#__PURE__*/ G({...n8.fields,title:/*#__PURE__*/ S8(W)}),j8=/*#__PURE__*/ G({...vbe.fields,title:/*#__PURE__*/ S8(W),arguments:/*#__PURE__*/ S8(/*#__PURE__*/ K(Tbe)),_meta:w8}),M8=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`resource`),resource:A8,annotations:/*#__PURE__*/ S8(D8),_meta:w8}),Ebe=/*#__PURE__*/ G({...O8.fields,type:/*#__PURE__*/ bx(`resource_link`)}),N8=/*#__PURE__*/ G({...mbe.fields,annotations:/*#__PURE__*/ S8(D8),_meta:w8}),P8=/*#__PURE__*/ G({...hbe.fields,annotations:/*#__PURE__*/ S8(D8),_meta:w8}),F8=/*#__PURE__*/ G({...wbe.fields,annotations:/*#__PURE__*/ S8(D8),_meta:w8}),I8=/*#__PURE__*/ q([N8,P8,F8,M8,Ebe]),L8=/*#__PURE__*/ q([N8,P8,F8]),Dbe=/*#__PURE__*/ G({role:q6,content:I8}),Obe=/*#__PURE__*/ G({role:q6,content:L8}),kbe=/*#__PURE__*/ G({...Cbe.fields}),R8=/*#__PURE__*/ G({...Z6.fields,protocolVersion:W,capabilities:kbe,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__*/ jx(/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`object`),properties:/*#__PURE__*/ S8(/*#__PURE__*/ Ax(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(Ex)}),Abe=/*#__PURE__*/ G({...Z6.fields,role:q6,content:L8,model:W,stopReason:/*#__PURE__*/ S8(W)});var U8=class extends (/*#__PURE__*/ J(`sampling/createMessage`,{success:Abe,error:e8,payload:{...Y6.fields,messages:/*#__PURE__*/ K(Obe),modelPreferences:/*#__PURE__*/ S8(r8),systemPrompt:/*#__PURE__*/ S8(W),includeContext:/*#__PURE__*/ S8(/*#__PURE__*/ Fx([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ S8(qx),maxTokens:qx,stopSequences:/*#__PURE__*/ S8(/*#__PURE__*/ K(W)),metadata:/*#__PURE__*/ S8(C8)}})){};const W8=/*#__PURE__*/ G({...bbe.fields,title:/*#__PURE__*/ S8(W)}),G8=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`ref/resource`),uri:W}),K8=xbe;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__*/ Ax(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(Dbe)}),$8=/*#__PURE__*/ G({...$6.fields,tools:/*#__PURE__*/ K(V8)});var jbe=class extends (/*#__PURE__*/ J(`resources/list`,{success:J8,error:e8,payload:/*#__PURE__*/ Lx(Q6)})){},Mbe=class extends (/*#__PURE__*/ J(`resources/templates/list`,{success:Y8,error:e8,payload:/*#__PURE__*/ Lx(Q6)})){},e5=class extends (/*#__PURE__*/ J(`resources/read`,{success:X8,error:e8,payload:{...Y6.fields,uri:W}})){},Nbe=class extends (/*#__PURE__*/ J(`prompts/list`,{success:Z8,error:e8,payload:/*#__PURE__*/ Lx(Q6)})){},Pbe=class extends (/*#__PURE__*/ J(`prompts/get`,{success:Q8,error:e8,payload:{...Y6.fields,name:W,arguments:/*#__PURE__*/ S8(/*#__PURE__*/ Ax(W,W))}})){},Fbe=class extends (/*#__PURE__*/ J(`tools/list`,{success:$8,error:e8,payload:/*#__PURE__*/ Lx(Q6)})){},t5=class extends (/*#__PURE__*/ J(`tools/call`,{success:H8,error:e8,payload:{...Y6.fields,name:W,arguments:/*#__PURE__*/ S8(C8)}})){};const Ibe=/*#__PURE__*/ G({...Z6.fields,action:/*#__PURE__*/ Fx([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ S8(/*#__PURE__*/ Ax(W,/*#__PURE__*/ q([W,qx,Ex])))}),Lbe=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`object`),properties:/*#__PURE__*/ Ax(W,/*#__PURE__*/ q([/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`string`),title:/*#__PURE__*/ S8(W),description:/*#__PURE__*/ S8(W),minLength:/*#__PURE__*/ S8(Xx),maxLength:/*#__PURE__*/ S8(Xx),format:/*#__PURE__*/ S8(/*#__PURE__*/ Fx([`email`,`uri`,`date`,`date-time`]))}),/* @__PURE__ */ G({type:/*#__PURE__*/ Fx([`number`,`integer`]),title:/*#__PURE__*/ S8(W),description:/*#__PURE__*/ S8(W),minimum:/*#__PURE__*/ S8(qx),maximum:/*#__PURE__*/ S8(qx)}),/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`boolean`),title:/*#__PURE__*/ S8(W),description:/*#__PURE__*/ S8(W),default:/*#__PURE__*/ S8(Ex)}),/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`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:Ibe,error:e8,payload:{...Y6.fields,message:W,requestedSchema:Lbe}})){},Rbe=class extends (/*#__PURE__*/ aN(a8,z8,q8,o8,Pbe,Nbe,jbe,Mbe,e5,s8,c8,t5,Fbe)){},r5=class extends (/*#__PURE__*/ aN(u8,b8,d8,f8)){},zbe=class extends (/*#__PURE__*/ aN(a8,U8,l8,n5)){},Bbe=class extends (/*#__PURE__*/ aN(u8,b8,p8,m8,h8,g8,_8)){};const i5=/*#__PURE__*/ (/* @__PURE__ */ Rbe.omit(`ping`).middleware(c6).add(a8)).merge(r5),a5=/*#__PURE__*/ i5.omit(`ping`),Vbe=e=>{if(e?.type!==`object`)return!1;let t=e.properties===void 0||zt(e.properties)&&Object.values(e.properties).every(zt),n=e.required===void 0||Array.isArray(e.required)&&e.required.every(Tt);return t&&n},Hbe=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 EE(e).pipe(DE({type:AE(`text`,`resource_link`)},e=>e),DE({type:AE(`image`,`audio`)},e=>({type:e.type,mimeType:e.mimeType,data:Ym(e.data),annotations:e.annotations,_meta:e._meta})),DE({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:Ym(t.blob)},annotations:e.annotations,_meta:e._meta})}),ME)}),Ube=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:Ym(e.blob)},Wbe=e=>e===void 0||Gbe(e)?e:void 0,Gbe=e=>zt(e),Kbe=/*#__PURE__*/ O6({protocolVersion:x8,runtime:/*#__PURE__*/ B6({jsonRpc:{acceptsBatches:!1},http:{requiresVersionHeader:!0}}),clientRpcs:i5,clientNotificationRpcs:r5,serverRequestRpcs:zbe,serverNotificationRpcs:Bbe,handlerRpcs:a5,makeHandlers:(e,t)=>a5.of({initialize:(e,{client:n})=>t.initialize(x8,Hbe(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(Wf({})),"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(Zf(C6.fromFeature));return X8.make({contents:r.contents.map(Ube),_meta:r._meta})}),"resources/subscribe":({uri:e},{client:n,headers:r})=>t.subscribe(e,n.id,r).pipe(Wf({})),"resources/unsubscribe":({uri:e},{client:n,headers:r})=>t.unsubscribe(e,n.id,r).pipe(Wf({})),"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(Zf(C6.fromFeature));if(i._tag===`InputRequired`)return yield*C6.fromFeature(new d6({protocolVersion:x8,feature:`prompt input requirements`}));let a=i.value,o=yield*Ef(a.messages,e=>c5(e.content).pipe(H(t=>({role:e.role,content:t})),Zf(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(Zf(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:Vbe(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)),Zf(C6.fromTool)),i=yield*Ef(b6(r),c5).pipe(Zf(C6.fromTool)),a=Wbe(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(Zf(()=>o5(`roots/list`,`Request is not representable by this protocol`))),{roots:i}=yield*t[`roots/list`](r).pipe(Zf(w6(`roots/list`)));return new n6({roots:i})}),createMessage:U(function*(n){yield*s5(e,`sampling/createMessage`,`sampling`);let r=yield*rbe(t6.payloadSchema,U8.payloadSchema,n).pipe(Zf(()=>o5(`sampling/createMessage`,`Request is not representable by this protocol`))),i=yield*t[`sampling/createMessage`](r).pipe(Zf(w6(`sampling/createMessage`)));return yield*T6(U8.successSchema,t6.successSchema,i).pipe(Zf(()=>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`?Xae(n,[`mode`]):n,i=yield*cx(n5.payloadSchema,{onExcessProperty:`error`})(r).pipe(Zf(()=>o5(`elicitation/create`,`Request is not representable by this protocol`))),a=yield*t[`elicitation/create`](i).pipe(Zf(w6(`elicitation/create`)));return yield*T6(n5.successSchema,i6.successSchema,a).pipe(Zf(()=>o5(`elicitation/create`,`Response is not representable by the canonical model`)))})}),projectNotification:e=>E6({supportsProgressMessage:!0},e),normalizeCancellation:e=>cx(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__*/ Fx([`light`,`dark`]))}),p5=/*#__PURE__*/ G({...T8.fields,description:/*#__PURE__*/ Q(W),websiteUrl:/*#__PURE__*/ Q(W),icons:/*#__PURE__*/ Q(/*#__PURE__*/ K(f5))}),qbe=/*#__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__*/ bx(`resource_link`)}),x5]),Jbe=/*#__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 Ybe=class extends (/*#__PURE__*/ J(`tools/call`,{success:w5,error:e8,payload:t5.payloadSchema})){};const T5=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`tool_use`),id:W,name:W,input:u5,_meta:d5}),E5=/*#__PURE__*/ q([v5,y5,b5,T5,/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`tool_result`),toolUseId:W,content:/*#__PURE__*/ K(S5),structuredContent:/*#__PURE__*/ Q(u5),isError:/*#__PURE__*/ Q(Ex),_meta:d5})]),D5=/*#__PURE__*/ G({role:q6,content:/*#__PURE__*/ q([E5,/*#__PURE__*/ K(E5)]),_meta:d5}),O5=/*#__PURE__*/ G({mode:/*#__PURE__*/ Q(/*#__PURE__*/ Fx([`auto`,`required`,`none`]))}),Xbe=/*#__PURE__*/ G({...Z6.fields,...D5.fields,model:W,stopReason:/*#__PURE__*/ Q(W)});var k5=class extends (/*#__PURE__*/ J(`sampling/createMessage`,{success:Xbe,error:e8,payload:{...U8.payloadSchema.fields,messages:/*#__PURE__*/ K(D5),maxTokens:Xx,tools:/*#__PURE__*/ Q(/*#__PURE__*/ K(C5)),toolChoice:/*#__PURE__*/ Q(O5)}})){};const A5=/*#__PURE__*/ G({...i8.fields,_meta:d5}),Zbe=/*#__PURE__*/ G({...Z6.fields,roots:/*#__PURE__*/ K(A5)});var j5=class extends (/*#__PURE__*/ J(`roots/list`,{success:Zbe,error:e8,payload:/*#__PURE__*/ Lx(Y6)})){};const M5=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`string`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),minLength:/*#__PURE__*/ Q(Xx),maxLength:/*#__PURE__*/ Q(Xx),format:/*#__PURE__*/ Q(/*#__PURE__*/ Fx([`email`,`uri`,`date`,`date-time`])),default:/*#__PURE__*/ Q(W)}),N5=/*#__PURE__*/ G({type:/*#__PURE__*/ Fx([`number`,`integer`]),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),minimum:/*#__PURE__*/ Q(qx),maximum:/*#__PURE__*/ Q(qx),default:/*#__PURE__*/ Q(qx)}),P5=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`boolean`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),default:/*#__PURE__*/ Q(Ex)}),F5=/*#__PURE__*/ G({const:W,title:W}),I5=/*#__PURE__*/ q([/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`string`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),enum:/*#__PURE__*/ K(W),default:/*#__PURE__*/ Q(W)}),/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`string`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),oneOf:/*#__PURE__*/ K(F5),default:/*#__PURE__*/ Q(W)})]),L5=/*#__PURE__*/ q([/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`array`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),minItems:/*#__PURE__*/ Q(Xx),maxItems:/*#__PURE__*/ Q(Xx),items:/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`string`),enum:/*#__PURE__*/ K(W)}),default:/*#__PURE__*/ Q(/*#__PURE__*/ K(W))}),/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`array`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),minItems:/*#__PURE__*/ Q(Xx),maxItems:/*#__PURE__*/ Q(Xx),items:/*#__PURE__*/ G({anyOf:/*#__PURE__*/ K(F5)}),default:/*#__PURE__*/ Q(/*#__PURE__*/ K(W))})]),R5=/*#__PURE__*/ G({type:/*#__PURE__*/ bx(`string`),title:/*#__PURE__*/ Q(W),description:/*#__PURE__*/ Q(W),enum:/*#__PURE__*/ K(W),enumNames:/*#__PURE__*/ Q(/*#__PURE__*/ K(W)),default:/*#__PURE__*/ Q(W)}),Qbe=/*#__PURE__*/ G({$schema:/*#__PURE__*/ Q(W),type:/*#__PURE__*/ bx(`object`),properties:/*#__PURE__*/ Ax(W,/* @__PURE__ */ q([/* @__PURE__ */ q([R5,I5,L5]),M5,N5,P5])),required:/*#__PURE__*/ Q(/*#__PURE__*/ K(W))}),$be=/*#__PURE__*/ q([/* @__PURE__ */ G({...Y6.fields,mode:/*#__PURE__*/ Q(/*#__PURE__*/ bx(`form`)),message:W,requestedSchema:Qbe}),/* @__PURE__ */ G({...Y6.fields,mode:/*#__PURE__*/ bx(`url`),message:W,elicitationId:W,url:W})]),exe=/*#__PURE__*/ G({...Z6.fields,action:/*#__PURE__*/ Fx([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ Q(/*#__PURE__*/ Ax(W,/*#__PURE__*/ q([W,qx,Ex,/*#__PURE__*/ K(W)])))});var z5=class extends (/*#__PURE__*/ J(`elicitation/create`,{success:exe,error:e8,payload:$be})){},txe=class extends (/*#__PURE__*/ J(`notifications/elicitation/complete`,{payload:{elicitationId:W}})){};const B5=/*#__PURE__*/ G({...R8.fields,serverInfo:p5});var nxe=class extends (/*#__PURE__*/ J(`initialize`,{success:B5,error:e8,payload:{...z8.payloadSchema.fields,capabilities:qbe,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(Jbe)}),G5=/*#__PURE__*/ G({...$6.fields,tools:/*#__PURE__*/ K(C5)});var rxe=class extends (/*#__PURE__*/ J(`resources/list`,{success:V5,error:e8,payload:/*#__PURE__*/ Lx(Q6)})){},ixe=class extends (/*#__PURE__*/ J(`resources/templates/list`,{success:H5,error:e8,payload:/*#__PURE__*/ Lx(Q6)})){},axe=class extends (/*#__PURE__*/ J(`prompts/list`,{success:U5,error:e8,payload:/*#__PURE__*/ Lx(Q6)})){},oxe=class extends (/*#__PURE__*/ J(`prompts/get`,{success:W5,error:e8,payload:{...Y6.fields,name:W,arguments:/*#__PURE__*/ Q(/*#__PURE__*/ Ax(W,W))}})){},sxe=class extends (/*#__PURE__*/ J(`tools/list`,{success:G5,error:e8,payload:/*#__PURE__*/ Lx(Q6)})){},cxe=class extends (/*#__PURE__*/ aN(a8,nxe,q8,o8,oxe,axe,rxe,ixe,e5,s8,c8,Ybe,sxe)){},K5=class extends (/*#__PURE__*/ aN(u8,b8,d8,f8)){},lxe=class extends (/*#__PURE__*/ aN(a8,k5,j5,z5)){},uxe=class extends (/*#__PURE__*/ aN(u8,b8,p8,m8,h8,g8,_8,txe)){};const q5=/*#__PURE__*/ (/* @__PURE__ */ cxe.omit(`ping`).middleware(c6).add(a8)).merge(K5),J5=/*#__PURE__*/ q5.omit(`ping`),dxe=e=>{if(e?.type!==`object`)return!1;let t=e.properties===void 0||zt(e.properties)&&Object.values(e.properties).every(zt),n=e.required===void 0||Array.isArray(e.required)&&e.required.every(Tt);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`)),fxe=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`)),pxe=(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 EE(e).pipe(DE({type:AE(`text`,`resource_link`)},e=>e),DE({type:AE(`image`,`audio`)},e=>({type:e.type,mimeType:e.mimeType,data:Ym(e.data),annotations:e.annotations,_meta:e._meta})),DE({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:Ym(t.blob)},annotations:e.annotations,_meta:e._meta})}),ME)}),mxe=e=>e===void 0||hxe(e)?e:void 0,hxe=e=>zt(e),gxe=/*#__PURE__*/ O6({protocolVersion:l5,runtime:/*#__PURE__*/ B6({jsonRpc:{acceptsBatches:!1},http:{requiresVersionHeader:!0}}),clientRpcs:q5,clientNotificationRpcs:K5,serverRequestRpcs:lxe,serverNotificationRpcs:uxe,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(Wf({})),"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(Zf(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:Ym(e.blob)}),_meta:r._meta})}),"resources/subscribe":({uri:e},{client:n,headers:r})=>t.subscribe(e,n.id,r).pipe(Wf({})),"resources/unsubscribe":({uri:e},{client:n,headers:r})=>t.unsubscribe(e,n.id,r).pipe(Wf({})),"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(Zf(C6.fromFeature));if(i._tag===`InputRequired`)return yield*C6.fromFeature(new d6({protocolVersion:l5,feature:`prompt input requirements`}));let a=i.value,o=yield*Ef(a.messages,e=>Z5(e.content).pipe(H(t=>({role:e.role,content:t})),Zf(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(Zf(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:dxe(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)),qf([`InvalidToolInput`,`ToolExecutionError`],e=>I(X3.make({content:[H3.make({type:`text`,text:e.message})],isError:!0}))),Zf(C6.fromTool)),i=yield*Ef(b6(r),Z5).pipe(Zf(C6.fromTool)),a=mxe(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(Zf(()=>Y5(`roots/list`,`Request is not representable by this protocol`))),{roots:i}=yield*t[`roots/list`](r).pipe(Zf(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(Zf(()=>Y5(`sampling/createMessage`,`Request is not representable by this protocol`))),i=yield*t[`sampling/createMessage`](r).pipe(Zf(w6(`sampling/createMessage`)));return fxe(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(Zf(()=>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(!pxe(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(Zf(()=>Y5(`elicitation/create`,`Request is not representable by this protocol`))),a=yield*t[`elicitation/create`](i).pipe(Zf(w6(`elicitation/create`)));return yield*T6(z5.successSchema,i6.successSchema,a).pipe(Zf(()=>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=>cx(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,Xx]),t7=e7,n7=q6,r7=J6,i7=p5,_xe=/*#__PURE__*/ jx(/*#__PURE__*/ G({experimental:/*#__PURE__*/ $(/*#__PURE__*/ Ax(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__*/ Ax(W,FS))}),[FS]),vxe=/*#__PURE__*/ jx(/*#__PURE__*/ G({experimental:/*#__PURE__*/ $(/*#__PURE__*/ Ax(W,FS)),logging:/*#__PURE__*/ $(FS),completions:/*#__PURE__*/ $(FS),prompts:/*#__PURE__*/ $(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ $(Ex)})),resources:/*#__PURE__*/ $(/*#__PURE__*/ G({subscribe:/*#__PURE__*/ $(Ex),listChanged:/*#__PURE__*/ $(Ex)})),tools:/*#__PURE__*/ $(/*#__PURE__*/ G({listChanged:/*#__PURE__*/ $(Ex)})),extensions:/*#__PURE__*/ $(/*#__PURE__*/ Ax(W,FS))}),[FS]),a7=/*#__PURE__*/ jx(/*#__PURE__*/ G({progressToken:/*#__PURE__*/ $(t7),"io.modelcontextprotocol/protocolVersion":W,"io.modelcontextprotocol/clientInfo":/*#__PURE__*/ $(i7),"io.modelcontextprotocol/clientCapabilities":_xe,"io.modelcontextprotocol/logLevel":/*#__PURE__*/ $(r7)}),[FS]),o7=/*#__PURE__*/ G({_meta:a7}),s7=/*#__PURE__*/ G({_meta:/*#__PURE__*/ $(/* @__PURE__ */ jx(/*#__PURE__*/ G({"io.modelcontextprotocol/subscriptionId":/*#__PURE__*/ $(e7)}),[FS]))}),c7=/*#__PURE__*/ jx(/*#__PURE__*/ G({"io.modelcontextprotocol/serverInfo":i7}),[FS]),l7={_meta:c7,resultType:/*#__PURE__*/ bx(`complete`)},u7=/*#__PURE__*/ G({code:Xx,message:W,data:/*#__PURE__*/ $(PS)}),yxe=m5,d7=/*#__PURE__*/ G({...h5.fields,size:/*#__PURE__*/ $(Xx),annotations:/*#__PURE__*/ $(yxe)}),f7=g5,bxe=A8,p7=v5,m7=y5,h7=b5,g7=/*#__PURE__*/ q([p7,m7,h7,/* @__PURE__ */ G({...d7.fields,type:/*#__PURE__*/ bx(`resource_link`)}),x5]),_7=_5,xxe=/*#__PURE__*/ G({role:n7,content:g7}),Sxe=/*#__PURE__*/ jx(/*#__PURE__*/ G({$schema:/*#__PURE__*/ $(W),type:/*#__PURE__*/ bx(`object`)}),[FS]),Cxe=/*#__PURE__*/ jx(/*#__PURE__*/ G({$schema:/*#__PURE__*/ $(W)}),[FS]),wxe=y8,v7=/*#__PURE__*/ G({...C5.fields,inputSchema:Sxe,outputSchema:/*#__PURE__*/ $(Cxe),annotations:/*#__PURE__*/ $(wxe)}),y7=/*#__PURE__*/ q([p7,m7,h7,T5,/* @__PURE__ */ G({type:/*#__PURE__*/ bx(`tool_result`),toolUseId:W,content:/*#__PURE__*/ K(g7),structuredContent:/*#__PURE__*/ $(PS),isError:/*#__PURE__*/ $(Ex),_meta:$5})]),b7=/*#__PURE__*/ G({role:n7,content:/*#__PURE__*/ q([y7,/*#__PURE__*/ K(y7)]),_meta:$5}),Txe=/*#__PURE__*/ jx(/*#__PURE__*/ G({name:/*#__PURE__*/ $(W)}),[FS]),x7=/*#__PURE__*/ qx.check(/*#__PURE__*/ Yx({minimum:0,maximum:1})),Exe=/*#__PURE__*/ G({...r8.fields,hints:/*#__PURE__*/ $(/*#__PURE__*/ K(Txe)),costPriority:/*#__PURE__*/ $(x7),speedPriority:/*#__PURE__*/ $(x7),intelligencePriority:/*#__PURE__*/ $(x7)}),Dxe=/*#__PURE__*/ G({method:/*#__PURE__*/ bx(`sampling/createMessage`),params:/*#__PURE__*/ G({messages:/*#__PURE__*/ K(b7),modelPreferences:/*#__PURE__*/ $(Exe),systemPrompt:/*#__PURE__*/ $(W),includeContext:/*#__PURE__*/ $(/*#__PURE__*/ Fx([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ $(qx),maxTokens:Xx,stopSequences:/*#__PURE__*/ $(/*#__PURE__*/ K(W)),metadata:/*#__PURE__*/ $(FS),tools:/*#__PURE__*/ $(/*#__PURE__*/ K(v7)),toolChoice:/*#__PURE__*/ $(O5)})}),Oxe=/*#__PURE__*/ G({...b7.fields,model:W,stopReason:/*#__PURE__*/ $(W)}),kxe=A5,Axe=/*#__PURE__*/ G({method:/*#__PURE__*/ bx(`roots/list`),params:/*#__PURE__*/ $(/*#__PURE__*/ G({_meta:$5}))}),jxe=/*#__PURE__*/ G({roots:/*#__PURE__*/ K(kxe)}),Mxe=/*#__PURE__*/ G({method:/*#__PURE__*/ bx(`elicitation/create`),params:/* @__PURE__ */ q([/* @__PURE__ */ G({mode:/*#__PURE__*/ $(/*#__PURE__*/ bx(`form`)),message:W,requestedSchema:/* @__PURE__ */ G({$schema:/*#__PURE__*/ $(W),type:/*#__PURE__*/ bx(`object`),properties:/*#__PURE__*/ Ax(W,/* @__PURE__ */ q([/* @__PURE__ */ q([R5,I5,L5]),M5,N5,P5])),required:/*#__PURE__*/ $(/*#__PURE__*/ K(W))})}),/* @__PURE__ */ G({mode:/*#__PURE__*/ bx(`url`),message:W,url:W})])}),Nxe=/*#__PURE__*/ G({action:/*#__PURE__*/ Fx([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ $(/*#__PURE__*/ Ax(W,/*#__PURE__*/ q([W,qx,Ex,/*#__PURE__*/ K(W)])))}),Pxe=/*#__PURE__*/ q([Dxe,Axe,Mxe]),Fxe=/*#__PURE__*/ q([Oxe,jxe,Nxe]),S7=/*#__PURE__*/ Ax(W,Pxe),Ixe=/*#__PURE__*/ Ax(W,Fxe),C7={_meta:c7,resultType:/*#__PURE__*/ bx(`input_required`)},w7=/*#__PURE__*/ q([/*#__PURE__*/ jx(/*#__PURE__*/ G({...C7,inputRequests:S7,requestState:/*#__PURE__*/ $(W)}),[FS]),/*#__PURE__*/ jx(/*#__PURE__*/ G({...C7,inputRequests:/*#__PURE__*/ $(S7),requestState:W}),[FS])]),T7={...o7.fields,inputResponses:/*#__PURE__*/ $(Ixe),requestState:/*#__PURE__*/ $(W)},E7={...l7,ttlMs:/*#__PURE__*/ Xx.check(/*#__PURE__*/ xoe(0)),cacheScope:/*#__PURE__*/ Fx([`public`,`private`])},D7={...o7.fields,cursor:/*#__PURE__*/ $(W)},O7={...l7,nextCursor:/*#__PURE__*/ $(W)},k7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...E7,supportedVersions:/*#__PURE__*/ K(W),capabilities:vxe,instructions:/*#__PURE__*/ $(W)}),[FS]);var Lxe=class extends (/*#__PURE__*/ J(`server/discover`,{success:k7,error:u7,payload:o7})){};const A7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...O7,...E7,resources:/*#__PURE__*/ K(d7)}),[FS]);var Rxe=class extends (/*#__PURE__*/ J(`resources/list`,{success:A7,error:u7,payload:D7})){};const j7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...O7,...E7,resourceTemplates:/*#__PURE__*/ K(f7)}),[FS]);var zxe=class extends (/*#__PURE__*/ J(`resources/templates/list`,{success:j7,error:u7,payload:D7})){};const M7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...E7,contents:/*#__PURE__*/ K(bxe)}),[FS]);var Bxe=class extends (/*#__PURE__*/ J(`resources/read`,{success:/*#__PURE__*/ q([M7,w7]),error:u7,payload:{...T7,uri:W}})){};const N7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...O7,...E7,prompts:/*#__PURE__*/ K(_7)}),[FS]);var Vxe=class extends (/*#__PURE__*/ J(`prompts/list`,{success:N7,error:u7,payload:D7})){};const P7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...l7,description:/*#__PURE__*/ $(W),messages:/*#__PURE__*/ K(xxe)}),[FS]);var Hxe=class extends (/*#__PURE__*/ J(`prompts/get`,{success:/*#__PURE__*/ q([P7,w7]),error:u7,payload:{...T7,name:W,arguments:/*#__PURE__*/ $(/*#__PURE__*/ Ax(W,W))}})){};const F7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...O7,...E7,tools:/*#__PURE__*/ K(v7)}),[FS]);var Uxe=class extends (/*#__PURE__*/ J(`tools/list`,{success:F7,error:u7,payload:D7})){};const I7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...l7,content:/*#__PURE__*/ K(g7),structuredContent:/*#__PURE__*/ $(PS),isError:/*#__PURE__*/ $(Ex)}),[FS]);var Wxe=class extends (/*#__PURE__*/ J(`tools/call`,{success:/*#__PURE__*/ q([I7,w7]),error:u7,payload:{...T7,name:W,arguments:/*#__PURE__*/ $(FS)}})){};const Gxe=W8,Kxe=G8,L7=/*#__PURE__*/ jx(/*#__PURE__*/ G({...l7,completion:/*#__PURE__*/ G({values:/*#__PURE__*/ K(W).check(/*#__PURE__*/ $x(100)),total:/*#__PURE__*/ $(Xx),hasMore:/*#__PURE__*/ $(Ex)})}),[FS]);var qxe=class extends (/*#__PURE__*/ J(`completion/complete`,{success:L7,error:u7,payload:{...o7.fields,ref:/*#__PURE__*/ q([Gxe,Kxe]),argument:/*#__PURE__*/ G({name:W,value:W}),context:/*#__PURE__*/ $(/*#__PURE__*/ G({arguments:/*#__PURE__*/ $(/*#__PURE__*/ Ax(W,W))}))}})){};const R7=/*#__PURE__*/ G({toolsListChanged:/*#__PURE__*/ $(Ex),promptsListChanged:/*#__PURE__*/ $(Ex),resourcesListChanged:/*#__PURE__*/ $(Ex),resourceSubscriptions:/*#__PURE__*/ $(/*#__PURE__*/ K(W))}),z7=/*#__PURE__*/ jx(/*#__PURE__*/ G({_meta:/* @__PURE__ */ jx(/*#__PURE__*/ G({"io.modelcontextprotocol/serverInfo":i7,"io.modelcontextprotocol/subscriptionId":e7}),[FS]),resultType:/*#__PURE__*/ bx(`complete`)}),[FS]);var Jxe=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)}})){},Yxe=class extends (/*#__PURE__*/ J(`notifications/progress`,{payload:{...s7.fields,progressToken:t7,progress:qx,total:/*#__PURE__*/ $(qx),message:/*#__PURE__*/ $(W)}})){},Xxe=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__*/ Lx(s7)})){},U7=class extends (/*#__PURE__*/ J(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ Lx(s7)})){},W7=class extends (/*#__PURE__*/ J(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ Lx(s7)})){},G7=class extends (/*#__PURE__*/ J(`notifications/subscriptions/acknowledged`,{payload:{...s7.fields,notifications:R7}})){},K7=class extends (/*#__PURE__*/ aN(Lxe,qxe,Hxe,Vxe,Rxe,zxe,Bxe,Jxe,Wxe,Uxe)){},q7=class extends (/*#__PURE__*/ aN(B7)){},Zxe=class extends (/*#__PURE__*/ K7.merge(q7)){},Qxe=class extends (/*#__PURE__*/ aN()){},$xe=class extends (/*#__PURE__*/ aN(B7,Yxe,Xxe,V7,H7,U7,W7,G7)){};const eSe=/*#__PURE__*/ Ax(W,FS),tSe=/*#__PURE__*/ cx(a7),nSe=/*#__PURE__*/ cx(B7.payloadSchema),rSe=/*#__PURE__*/ sx(PS),J7=/*#__PURE__*/ fx(i7),Y7=e=>{let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t},iSe=(e,t)=>{if(Pt(t))return e===void 0;if(e===void 0)return!1;let n=h6(e);return n!==void 0&&EE(t).pipe(DE(hce,e=>n===e),DE(_ce,e=>n===String(e)),DE(gce,e=>Number.isSafeInteger(e)&&n.trim().length>0&&Number(n)===e),jE(()=>!1))},aSe=/*#__PURE__*/ U(function*(e){let t=yield*tSe(e);return{protocolVersion:Q5,clientCapabilities:t[`io.modelcontextprotocol/clientCapabilities`],clientInfo:t[`io.modelcontextprotocol/clientInfo`],requestMetadata:t}}),X7=(e,t)=>{let n=e._meta;return{...zt(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__*/ cx(/*#__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))}),oSe=(e,t)=>{let n={};for(let r of Object.values(e??{}))EE(r).pipe(DE({method:`roots/list`},()=>{t.roots===void 0&&(n.roots={})}),DE({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)}),DE({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]={})}),ME);return n},e9=e=>Y7({uri:e.uri,mimeType:e.mimeType,_meta:e._meta,...`text`in e?{text:e.text}:{blob:Ym(e.blob)}}),t9=/*#__PURE__*/ TE().pipe(/*#__PURE__*/ DE({type:/*#__PURE__*/ AE(`text`,`resource_link`)},e=>e),/*#__PURE__*/ DE({type:/*#__PURE__*/ AE(`image`,`audio`)},e=>Y7({type:e.type,mimeType:e.mimeType,data:Ym(e.data),annotations:e.annotations,_meta:e._meta})),/*#__PURE__*/ DE({type:`resource`},e=>Y7({type:`resource`,resource:e9(e.resource),annotations:e.annotations,_meta:e._meta})),ME),sSe=e=>d7.make(e),cSe=e=>f7.make(e),lSe=e=>T6(Nye,_7,e),uSe=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`}}),dSe=/*#__PURE__*/ TE().pipe(/*#__PURE__*/ OE(`ResourceNotFound`,e=>new C6({code:-32602,message:`Resource '${e.uri}' not found`,data:{uri:e.uri}})),/*#__PURE__*/ OE(`ToolNotFound`,`InvalidToolInput`,`InvalidToolContinuation`,`ToolExecutionError`,`UnsupportedByProtocol`,C6.fromTool),/*#__PURE__*/ jE(C6.fromFeature)),i9=e=>{let t=dSe(e);return u7.make({code:t.code,message:t.message,...rSe(t.data)?{data:t.data}:{}})},a9=/*#__PURE__*/ U(function*(e,t){let n=yield*mp(Ij);return pi(n)&&rM(n.value,(t,n)=>I(Qk(n,e))),yield*t}),fSe=e=>nSe(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:aSe},clientRpcs:Zxe,clientNotificationRpcs:q7,serverRequestRpcs:Qxe,serverNotificationRpcs:$xe,handlerRpcs:/* @__PURE__ */ K7.merge(q7),makeHandlers:(e,t,n)=>{let r=cx(eSe),i=cx(k7),a=cx(A7),o=cx(j7),s=cx(M7),c=cx(N7),l=cx(P7),u=cx(q([P7,w7])),d=cx(L7),f=cx(F7),p=n.sendNotification,m=p!==void 0,h=n.serverInfo.extensions===void 0?void 0:ma(n.serverInfo.extensions,e=>zt(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(Qf);return v6(o6.of({...t,inputResponses:n,requestState:e.requestState}))}),y=U(function*(e,t){let n=oSe(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*xd(yield*_p),o=n.getListChangeRevision?.()??0,s=yield*vd(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*rd();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=EE(n).pipe(kE({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}),ME);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(Td(a),Bf(jf(()=>n.markSubscriptionCancelled?.(t.id,r)??R)),Bf(ud(f,void 0)),Rp),yield*p(Q5,t.id,{tag:G7._tag,payload:G7.payloadSchema.make({_meta:l,notifications:c})});let m=Mp(kC(d).pipe(V(e=>p(Q5,t.id,e))));yield*rie(m,id(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`})},Zf(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)},Zf(i9)),"resources/list":U(function*(t){let r=yield*_,i=yield*e.resources.list(r.protocol),o=yield*r9({...n9,resources:i.map(sSe)},n.serverInfo);return yield*a(o)},Zf(i9)),"resources/templates/list":U(function*(t){let r=yield*_,i=yield*e.resources.listTemplates(r.protocol),a=yield*r9({...n9,resourceTemplates:i.map(cSe)},n.serverInfo);return yield*o(a)},Zf(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)},Zf(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*Ef(i,lSe),o=yield*r9({...n9,prompts:a},n.serverInfo);return yield*c(o)},Zf(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)},Zf(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)},Zf(i9)),"tools/list":U(function*(t){let r=yield*_,i=yield*e.tools.list(r.protocol),a=yield*Ef(i,uSe),o=yield*r9({...n9,tools:a},n.serverInfo);return yield*f(o)},Zf(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*mp(Ij);if(i!==void 0&&pi(a)){let e=[{schema:i.inputSchema,argument:t.arguments,path:``}];for(;e.length>0;){let{schema:t,argument:n,path:r}=e.pop();if(!zt(t))continue;let i=t[`x-mcp-header`];if(typeof i==`string`){let e=`mcp-param-${i.toLowerCase()}`;if(!iSe(a.value.headers[e],n))return yield*a9(400,new C6({code:A3,message:`${e} does not match argument '${r}'`}))}if(zt(t.properties))for(let[i,a]of Object.entries(t.properties))e.push({schema:a,argument:zt(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(qf([`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)},Zf(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:fSe}),pSe=gxe,mSe=Kbe,c9=/*#__PURE__*/ new WeakMap,l9=/*#__PURE__*/ Yi(`effect/ai/McpServer/RequestNotificationQueue`,{defaultValue:()=>void 0}),u9=e=>e._tag===`Progress`||e._tag===`LoggingMessage`,hSe=/*#__PURE__*/ Kye.omit(`notifications/elicitation/complete`),d9=/*#__PURE__*/ sx(Q3),gSe=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=gp(e,o6,t.requestContext),r=t.requestContext.requestMetadata,i=P(r,`io.modelcontextprotocol/logLevel`)?r[`io.modelcontextprotocol/logLevel`]:void 0;return d9(i)&&(n=gp(n,pd,m6[i].effect)),t.serverClient===void 0?n:gp(n,s6,t.serverClient)};var p9=class e extends (/*#__PURE__*/ F()(`effect/ai/McpServer`)){static make=/*#__PURE__*/ z(function*(){let t=yield*$ye,n=Aa(),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*co).makeDispatcher(),d=yield*qM(hSe,{spanPrefix:`McpServer/Notifications`,onFromClient:e=>rd().pipe(V(t=>Rf(n=>{let r=e.message;if(r._tag!==`Request`)return R;let i=gSe(r);if(i===void 0)return R;let a={notification:i,delivered:t,requestContext:Bi(n.context,o6),requestHeaders:Bi(n.context,Ij)?.headers},f=jf(()=>d.write({clientId:0,requestId:r.id,_tag:`Exit`,exit:qu})),p=Ui(n.context,l9);if(p!==void 0&&a.requestContext!==void 0&&u9(i))return bC(p,a),Bf(id(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?Bf(id(t),f):f})))}),f=e.of({notifications:d.client,notifyElicitationComplete:({clientId:e,elicitationId:t})=>c()?R:rd().pipe(V(n=>yC(o,{notification:p6.ElicitationComplete({elicitationId:t}),targetClientId:e,delivered:n}).pipe(Bf(jf(()=>s.consumers>0?id(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=Bi(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(Qre({InternalError:t=>B(new Zye({name:e.tool.name,message:t.message})),InvalidParams:t=>B(new(n.requestContext.requestState===void 0&&n.requestContext.inputResponses===void 0?Yye:Xye)({name:e.tool.name,message:t.message}))}),H(e=>Vt(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(Zf(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=Bi(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=wSe();c.add(a,!0),yield*t.resources.registerTemplate({descriptor:o,isVisible:t=>{let n=Bi(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(qf(`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=Bi(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=>Vt(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(qf(`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__*/ Ud(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 po{};const y9=/*#__PURE__*/ U(function*(e,t,n,r){let i=yield*nN,a=yield*p9,o=yield*pd,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)=>jf(()=>{let a=t.selectProtocol(e),o=a.serverNotificationRpcs.requests.get(r.tag);return o===void 0?If(`MCP protocol ${e} does not define server notification ${r.tag}`):a.payloadCodecs(o).encode(r.payload).pipe(Qf,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)=>jf(()=>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*YM.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(Sp(()=>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(gp(YM,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=Bi(e.context,Ij);return t&&rM(t,()=>I(Ik({status:r[m9]===void 0?400:404}))),If(/* @__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(!TSe(d.protocolVersion)||d.protocolVersion===`2026-07-28`)return If(`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 gp(gp(gp(e,s6,s6.of({clientId:n.id,protocolVersion:f.protocolVersion,clientCapabilities:f.clientCapabilities,clientInfo:f.clientInfo,initializePayload:l,requestMetadata:zt(i)&&zt(i._meta)?i._meta:void 0,getClient:mT(ee,new v9({clientId:n.id,profile:f})).pipe(H(({client:e})=>e))})),o6,p),pd,t.effectLogLevel(n.id,r,o))}),C=nN.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?Bi(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:Zh(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?Hi(zS().context,Ij).headers:Kh(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*bd(Hi(i.context,hd),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?Kh({[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:RM(a.id),client:new NM(n),headers:r}):R;return yield*u.requestContext===void 0?c:gp(c,o6,u.requestContext)}).pipe(np)}if(!y||b)return a.isNotification?void 0:yield*f(n,a.id,new N3({message:`Method not found: ${a.tag}`}));let x=yield*Hf(_.payloadCodecs(y).decode(a.payload));if(na(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:RM(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:gp(ee,o6,u.requestContext)}).pipe(Kf(e=>a.isNotification?R:f(n,a.id,Vt(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,Hi(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)),vp)}}}))});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 Tf(t,{discard:!0})})),r===void 0&&(yield*yp(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:nd();ne.set(e,m);let _=z(function*(){s!==void 0&&(yield*id(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??Gh,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(np,xp(L(()=>{dd(m,qu),ne.get(e)===m&&ne.delete(e)})));h.push(_)}g||(yield*ud(n,void 0)),yield*Tf(h,{concurrency:`unbounded`,discard:!0}).pipe(Rp({startImmediately:!0}))})),np,Mp,Rp),yield*lle(t.clientRpcs,{spanPrefix:`McpServer`,disableFatalDefects:!0}).pipe(gp(nN,C),gp(c6,te),dp(S))},vp),_Se=(e,t)=>Kd(z(function*(){let n=yield*V6;yield*Rp(y9(e,n,t))})).pipe(ef(p9.layer)),vSe=e=>{let t=U6(e.protocols);return _Se(e,`http`).pipe($d(bSe(e)),$d(t),$d(Qce()))},ySe=e=>Kd(z(function*(){let t=yield*V6,n=t.protocols.find(e=>e.runtime._tag===`Stateful`);if(n!==void 0)return yield*new Lu(`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:If(`Subscriptions are disabled for request-scoped MCP servers`),getListChangeRevision:()=>a.listChangeRevision,defaultLogLevel:yield*pd,serverInfo:e});yield*yp(L(()=>{a.requestEndpoints++}),()=>L(()=>{a.requestEndpoints--})),yield*b9(e,z(function*(){let{httpEffect:n,protocol:i}=yield*rN().pipe(gp(HM,x9)),a=yield*_C();return yield*y9(e,t,`http`,{notifications:a,handlers:o}).pipe(gp(nN,i),gp(p9,r),Rp({startImmediately:!0})),yield*gp(n,l9,a)}))})).pipe(ef(p9.layer),$d(U6(e.protocols))),bSe=e=>Ud(nN)(z(function*(){let{httpEffect:t,protocol:n}=yield*rN().pipe(gp(HM,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*Hf(V(r.text,lx(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?CSe(e,i.isSubscription):e};return i.acknowledge?yield*Jf(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(PT,{contentType:`text/event-stream`})):If(/* @__PURE__ */ Error(`MCP request ended without writing its response`)))})})}),x9=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ SSe();return HM.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}}}})})(),xSe=/*#__PURE__*/ sx(/*#__PURE__*/ Vx(`Cause`,{data:/*#__PURE__*/ doe([/*#__PURE__*/ Vx(`Fail`,{error:/*#__PURE__*/ soe(I3)})])})),S9=e=>Array.isArray(e)?e.map(S9):!zt(e)||!P(e,`error`)?e:xSe(e.error)?{...e,error:e.error.data[0].error}:e;function SSe(e){let t=UM(e);return HM.of({...t,makeUnsafe:()=>{let e=t.makeUnsafe(),n=/* @__PURE__ */ new Set;return{decode:e.decode,encode:t=>{if(zt(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=>!(zt(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 CSe=(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:Zh(e.headers,`content-type`),cookies:e.cookies,contentType:`text/event-stream`};if(e.body._tag===`Stream`){let r=e.body.stream.pipe(zT(i));if(!t)return Gk(r,a);let o=tse(`15 seconds`).pipe(dse(1),zT(()=>n.encode(`: keepalive
536
-
537
- `)));return Gk(VT(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()]}),wSe=()=>{let e=Tk({ignoreTrailingSlash:!0,ignoreDuplicateSlashes:!0,caseSensitive:!0});return{add:(t,n)=>{e.on(`GET`,`/${t}`,n)},find:t=>e.find(`GET`,`/${t}`)}},TSe=e=>e===`2024-11-05`||e===`2025-03-26`||e===`2025-06-18`||e===`2025-11-25`||e===`2026-07-28`,T9=s9,ESe=[s9,pSe,mSe],DSe=sx(PI),OSe=sx(K(PI)),E9=e=>II(yI(e)),D9=e=>{let t=yI(e),n=II(t);if(n!==void 0)return{kind:n,many:!1};if(!cv(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}},kSe=e=>{let t=e.context?.isOptional===!0,n=yI(e);if(t&&uv(n)&&n.types.length===2){let[e,...t]=n.types.filter(e=>!nv(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=yI(e.ast),n=D9(t);if(n!==void 0)return{fields:[{name:void 0,...n}],rest:void 0};if(!lv(t)||t.encoding!==void 0)return{fields:[],rest:e};let r=t.propertySignatures.flatMap(({name:e,type:t})=>{let n=kSe(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:hx(new Rv(a,t.indexSignatures,s))}},ASe=e=>[...ev(e)?e.typeParameters:[],...cv(e)?[...e.elements,...e.rest]:[],...lv(e)?[...e.propertySignatures,...e.indexSignatures].map(({type:e})=>e):[],...uv(e)?e.types:[],...dv(e)?[e.thunk()]:[],...(e.encoding??[]).map(({to:e})=>e)],jSe=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),FI(e))return!0;n.push(...ASe(e))}return!1},MSe=(e,{rest:t})=>[e.input,...e.error,...t===void 0?[]:[t]].some(({ast:e})=>jSe(e)),NSe=(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?OSe(i)?i:[]:DSe(i)?[i]:[]).map(t=>({kind:n,field:e,value:t}))}),PSe=sx(q3),k9=(e,t)=>{let n=Ooe(e,{onExcessProperty:t?`error`:`ignore`}),[r,i]=Tt(n.schema.$ref)?Cb(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}},FSe=e=>{let t=e.map(([e])=>e).filter(e=>!PSe(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])=>MSe(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(`, `)}`)},ISe=e=>new X3({isError:!0,content:[{type:`text`,text:e}]}),A9=e=>e===void 0?[]:[{type:`text`,text:JSON.stringify(e)}],LSe=({kind:e,field:t,value:n})=>({type:e,data:n.data,mimeType:n.mimeType,...t===void 0?{}:{_meta:{"effect-actions/field":t}}}),RSe=(e,t)=>H(cx(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},...bye(e)},_meta:e.mcp._meta===void 0?void 0:{...e.mcp._meta}})),zSe=U(function*(e,t){let n=yield*p9,r=yield*jI(e),i=yield*lp(),a=e=>qp(e).pipe(Bf(nce(e)),Wf(ISe(`Tool execution failed due to an internal server error.`))),o=e=>Mu(e)?a(e):Pf(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*cx(J3)(k9(c,!1)).pipe(Qf),u=yield*RSe(e,l).pipe(Qf),d=cx(jS(e.input),MI),f=e=>{let t=dx(jS(e));return e=>Qf(t(e))},p=f(e.success),m=f(q(SI(e))),h=t===void 0||e.caller===cI?a:e=>sB(Ide(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=NSe(s,t).map(LSe);if(c===void 0)return new X3({isError:!1,content:n});let r=Rt(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:Fi(),handle:t=>cie({tool:e.name,parameters:t??{}}).pipe(Bf(()=>d(t??{})),Zf(({message:t})=>new P3({message:new xye({toolName:e.name,description:t}).message})),V(e=>h(e).pipe(cp({onFailure:e=>H(m(e),e=>new X3({isError:!0,content:A9(e)})),onSuccess:e=>H(p(e),t=>_(t,e))}))),Jf(o),hp(e=>qi(i,e)))})}}),BSe=(e,t,n=Hd,r)=>{vI(`MCP tool`,e.flatMap(e=>e.actions));let i=e.flatMap(e=>e.actions.map(e=>[e,O9(e.success)]));FSe(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*If(/* @__PURE__ */ Error(`Duplicate MCP tool: ${t.join(`, `)}, claimed by an action and a native feature`));yield*zSe(e,r)});return Kd(o).pipe($d(n),$d(t),nf,AI(e))},VSe=/* @__PURE__ */ new Set([`server/discover`,`tools/list`,`notifications/cancelled`]),HSe=e=>{let t=new Set(e.filter(({caller:e})=>e===cI).flatMap(({name:e})=>[e,`=?base64?${Ym(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(VSe.has(n))return!1;if(n!==`tools/call`)return!0;let r=e[`mcp-name`];return r===void 0||!t.has(r)}},USe=e=>op(e.json,{onFailure:()=>!0,onSuccess:t=>!P(t,`method`)||t.method===e.headers[`mcp-method`]});function WSe(e,{actions:t,features:n,path:r=`/mcp`,authentication:i,requestScoped:a,allowSubscriptions:o=n!==void 0,...s}){let c=kI(DI(e),t),l=c.flatMap(e=>e.actions);lI(l,i);let u=BSe(c,a===!0?ySe({...s,path:r,protocols:[T9]}):vSe({...s,path:r,protocols:ESe,allowSessionTermination:!0,allowSubscriptions:o}),n,i);if(i===void 0)return u;let d=HSe(l),f=bM(H(VI(i),e=>t=>V(Ij,n=>n.method!==`POST`||d(n.headers)?e.http(t,!1):V(USe(n),n=>e.http(t,n)))));return u.pipe($d(f.layer))}var GSe=`0.23.1`;const KSe=(e,t)=>kf(()=>LW({key:e,data:t})),qSe=(e,t)=>kf(()=>RW({key:e,data:t})),JSe=async(e,t)=>(await Promise.all([WG(e.authCookies.sessionToken.name,t,e.secret),WG(e.authCookies.dontRememberToken.name,`true`,e.secret)])).map(e=>e.split(`;`)[0]).join(`; `),YSe=(e,t)=>Wp(`OwnerAccount.providerSession`)(function*(n){let r=new Date((yield*af)+6e4),i=yield*yp(H4(()=>e.internalAdapter.createSession(n,!0,{expiresAt:r},!0)),t=>Of(()=>e.internalAdapter.deleteSession(t.token))),a=yield*H4(()=>JSe(e,i.token));return new Headers({origin:t,cookie:a})}),XSe=MV(G({id:W}));var j9=class e extends F()(`clankerauth/OwnerAccount`){static layer=Ud(e,z(function*(){let{sql:e}=yield*IV,{auth:t,context:n}=yield*i3,{baseURL:r}=yield*X4,i=yield*KC(1),a=YSe(n,r),o=Wp(`OwnerAccount.find`)(function*(){let t=yield*e`SELECT id FROM user LIMIT 1`;if(t.length)return(yield*XSe(t[0])).id});return{find:o,create:Wp(`OwnerAccount.create`)(function*(e){if(yield*o())return yield*B(NB.of());let{headers:n}=yield*H4(()=>t.api.signUpEmail({body:{name:`Owner`,email:e.email.trim(),password:e.password},returnHeaders:!0}),{refused:B4,conflict:NB.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 ZSe=H(j9,e=>({setupStatus:()=>e.find().pipe(H(e=>({required:!e}))),setupOwner:Wp(`Administration.setup`)(function*(t){let n=yield*e.create(t);return yield*(yield*M9).add(n),{created:!0}})}));var N9=class extends go(`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 go(`InsufficientScope`){},QSe=class extends AS()(`ConfigurationError`,{message:W}){};const I9=ro(1),L9=(e,t)=>up(n=>UO(e).execute(t).pipe(gp(bN,{...Bi(n,bN),redirect:`error`}),Zf(e=>new P9({operation:`http.request`,cause:e})))),$Se=G({keys:K(G({kty:W,crv:_x(W),x:_x(W),kid:_x(W),alg:_x(W),use:_x(W),key_ops:_x(K(W))}))}),eCe=G({sub:rS,client_id:rS,scope:W,iat:qx,exp:qx}),tCe=G({list:W}),nCe=fde.pipe(kx({exp:qx})),R9=e=>new N9({cause:e}),z9=no(5),B9=Wp(`Verifier.make`)(function*(e){let t=yield*IO,n=yield*Lf({try:()=>({jwks:new URL(`${e.issuer}/jwks`).href,keyList:new URL(`/api/keyList`,e.issuer).href}),catch:()=>new QSe({message:`Invalid issuer URL`})}),r=Wp(`Verifier.jwks`)(function*(){let e=yield*L9(t,nO(n.jwks));return e.status===200?ZF({keys:(yield*_O($Se)(e).pipe(Zf(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}})},vp),i=yield*Ep(r(),e=>Ju(e)?`1 minute`:z9),a=Wp(`Verifier.signingKey`)(function*(e){let t=yield*i;return yield*kf({try:()=>t({alg:`EdDSA`,kid:e}),catch:R9})}),o=Wp(`Verifier.signed`)(function*(t,n){let r=yield*Lf({try:()=>nI(t),catch:R9});if(r.alg!==`EdDSA`||r.kid===void 0)return yield*R9();let i=yield*a(r.kid),o=yield*af,{payload:s}=yield*kf({try:()=>HF(t,i,{issuer:e.issuer,audience:e.resource,algorithms:[`EdDSA`],typ:n,currentDate:new Date(o)}),catch:R9});return s}),s=Wp(`Verifier.jwt`)(function*(e){let t=yield*o(e,`at+jwt`);if(t.cnf!==void 0)return yield*R9();let n=yield*cx(eCe)(t).pipe(Zf(R9));return{subject:n.sub,scopes:n.scope.split(` `).filter(Boolean),actor:{kind:`client`,clientId:n.client_id},expiresAt:n.exp*1e3}}),c=Wp(`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(tCe)(i).pipe(Zf(e=>new P9({operation:`key-list.decode`,cause:e}))),s=e=>new P9({operation:`key-list.verify`,cause:e}),c=yield*o(a,iI).pipe(qf(`Unauthorized`,e=>B(s(e)))),l=yield*cx(nCe)(c).pipe(Zf(s));return{readAt:yield*af,expiresAt:l.exp*1e3,entries:new Map(l.keys.map(e=>[e.id,e.sealed]))}},vp),l=yield*NE(!1),u=yield*Ep(c().pipe(rp({duration:`3 seconds`,orElse:()=>B(new P9({operation:`key-list.timeout`}))}),$f(({operation:e})=>V(IE(l,!0),t=>t?R:Kp(`clankerauth key list reads are failing; a held list decides until it expires`,{operation:e}))),Vf(()=>V(IE(l,!1),e=>e?fie(`clankerauth key list reads have recovered`):R))),z9),d=yield*NE(void 0),f=z(function*(){let e=yield*Hf(u);ra(e)&&(yield*FE(d,e.success));let t=yield*PE(d);return t!==void 0&&t.expiresAt>(yield*af)?t:yield*na(e)?e.failure:new P9({operation:`key-list.expired`})}),p=Wp(`Verifier.apiKey`)(function*(t){let n=n=>kf({try:()=>hde(t,e.resource,n.entries),catch:R9}),r=yield*af,i=yield*PE(d),a=i!==void 0&&r-i.readAt<io(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*af)?yield*R9():{subject:o.ownerId,scopes:o.scopes,actor:{kind:`key`,keyId:o.keyId},expiresAt:o.expiresAt??void 0}});return{verifyToken:Wp(`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})})}}),rCe=Wp(`AdministrationResource.make`)(function*(){let{auth:e}=yield*i3,{baseURL:t}=yield*X4,n=`${t}/api/auth`,r=VB(t);return{protectedResource:{resource:r,authorizationServers:[n],scopesSupported:[HB.read,HB.write,...Q4],scopesRequired:[HB.read,HB.write]},verifier:yield*B9({issuer:n,resource:r,apiKeys:!1}).pipe(dp(xN.pipe($d(Bd(yN,(t,n)=>{let r=new Request(t,n);return r.headers.set(F4,`127.0.0.1`),e.handler(r)})))))}});RI(`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 mI({message:n,scopes:[e]}):new mI({message:n})},iCe=(e,t)=>t===void 0||e.scopes.includes(t)?void 0:V9(t,e.actor),H9=e=>e instanceof N9?new fI({message:e.message}):e instanceof F9?V9(e.scope,e.actor):e,U9=(e,t)=>Zf(e.verifyToken(zh(t)),H9);Wp(`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=>rp(e,{duration:`5 seconds`,orElse:()=>B(new P9({operation:`verify.timeout`}))}),l={verifyToken:e=>c(s.verifyToken(e))},u=Wp(`Resource.principal`)(function*(e,t){let n=uB(e);if(fi(n))return yield*new fI({message:`A bearer token is required.`});let r=yield*U9(l,n.value),i=iCe(r,t);return i===void 0?r:yield*i}),d=Wp(`Resource.admit`)(function*(t,n){let r=yield*Hf(u(t,n));if(ra(r))return{ok:!0,principal:r.success};let i=tA(_B(r.failure,{authentication:e,protectedResource:o,authorization:t}));return{ok:!1,refusal:{status:i.status,headers:Object.fromEntries(i.headers),body:yield*Of(()=>i.text())}}});return{resource:i,issuer:r.issuer,protectedResource:o,verifier:l,admit:d,watch:(e,t)=>Mp(z(function*(){let n=yield*u(e,t),r=yield*af,i=Math.max(0,(n.expiresAt??1/0)-r);return n.actor.kind===`key`?yield*ip(Math.min(i,io(I9))):(yield*ip(i),yield*H9(new N9))}))}});const aCe=e=>EB(e,H(i3,e=>()=>z(function*(){let t=yield*Ij,n=new Headers(t.headers),r=yield*H4(()=>e.auth.api.getSession({headers:n}),{unavailable:V4});return r?{providerHeaders:I(n),userId:r.user.id,email:r.user.email,writable:!0}:yield*new fI({message:`Owner session required`})}))),oCe=MV(G({id:W,email:W})),sCe=e=>EB(BB,z(function*(){let{sql:t}=yield*IV,n=yield*j9,r=()=>new fI({message:`Owner authorization required`});return i=>z(function*(){let a=yield*U9(e.verifier,i).pipe(qf(`ProviderUnavailable`,()=>B(new OB({message:`Request could not be completed`}))));if(a.actor.kind!==`client`)return yield*r();let o=a.scopes.includes(HB.write);if(!o&&!a.scopes.includes(HB.read))return yield*new mI({message:`Insufficient scope`,scopes:[HB.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*oCe(s[0]);return n.caller(c.id,c.email,o)})}),{protectedResource:e.protectedResource}),cCe=e=>e.readOnly?R:V(LB,({writable:e})=>e?R:B(new mI({message:`This action requires the ${HB.write} scope`,scopes:[HB.write]}))),lCe=bM()(e=>z(function*(){let t=[],n=yield*gp(e,M9,{add:e=>L(()=>t.push(...e))});return t.length?Xk(n,mh(t)):n}));function uCe(e){return Jd(z(function*(){let{context:t}=yield*i3,n=yield*f3,r=yield*d3,i=yield*ZSe,a=yield*o3,o=BI(xV,{listClients:n.list,createClient:n.create,updateClient:n.update,deleteClient:n.delete,revokeClient:n.revoke,blockClient:n.block,rotateClientSecret:n.rotate,setClientAccess:r.setAccess,createResource:r.create,updateResource:r.update,deleteResource:r.delete,listApiKeys:a.list,createApiKey:a.create,updateApiKey:a.update,deleteApiKey:a.delete},{authorize:cCe}),s=BI(yV,{setupStatus:i.setupStatus,setupOwner:i.setupOwner,keyList:({resource:e})=>a.keyList(e)}),c=yield*rCe(),l=RB(t.authCookies.sessionToken.name),u=CV(l),d=Xd(Jz(u,o).pipe($d(aCe(l))),fM(`GET`,`/openapi.json`,Hk(TR(u.api))),Jz(u,s).pipe($d(lCe.layer))),f=Xd(WSe(o,{name:`clankerauth-admin`,version:GSe,allowedOrigins:e,instructions:`Owner administration. Listing needs ${HB.read} or ${HB.write}; every other action changes authorization policy and needs ${HB.write}. Create and rotate actions return secrets once.`,authentication:BB}),Jz(wV,o)).pipe($d(sCe(c)));return Xd(d,f)}))}const W9=`clankerauth_forward`,G9=(e,t)=>Hk({error:t},{status:e}),dCe=e=>Jd(z(function*(){let t=yield*X4,{auth:n,context:r}=yield*i3,i=yield*r3,a=n=>{if(!URL.canParse(n))return;let r=new URL(n);return!r.username&&!r.password&&K4(r,t.allowInsecureHttp)&&G4(r.hostname,e)?r:void 0},o=zh(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=>H4(()=>n.api.getSession({headers:new Headers({cookie:e})}),{unavailable:V4}),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*Zre(qSe(o,h)):ui(),_=pi(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*af)/1e3),{token:y}=yield*H4(()=>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*KSe(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*H4(()=>n.api.signOut({headers:new Headers({cookie:e.headers.cookie??``}),returnHeaders:!0}),{refused:B4,unavailable:V4});return yield*Xk(Lk(i),mh(o.getSetCookie())).pipe(Yk(W9,``,{...c,maxAge:0}))});return Xd(fM(`GET`,`/forward-auth`,Kf(f,W4)),fM(`GET`,`/forward-auth/continue`,Kf(p,W4)),fM(`GET`,`/forward-auth/logout`,Kf(m,W4)))})),fCe=/* @__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`]),pCe=/* @__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`]),mCe=/* @__PURE__ */ new Set([`/jwks`,`/.well-known/oauth-protected-resource`,`/.well-known/oauth-authorization-server`,`/.well-known/oauth-authorization-server/api/auth`]),hCe=new Set(yye),gCe=/^\/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`],_Ce=new Set(J9.map(e=>e.toLowerCase())),vCe=(e=qe(new URL(`dist/`,import.meta.resolve(`@clankerauth/web/package.json`))))=>Jd(z(function*(){let t=yield*X4,{auth:n}=yield*i3,{sql:r}=yield*IV,i=yield*r3,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(!fCe.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:Z4},400)}let o=e.method===`GET`||e.method===`HEAD`?void 0:yield*e.arrayBuffer,s=yield*H4(()=>n.handler(new Request(r,{method:e.method,headers:e.headers,body:o})));return aA(s)}).pipe(Kf(W4)),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=hCe.has(i)?`index.html`:gCe.test(i)?i.slice(1):void 0;return a?yield*r.fileResponse(Ge(e,a),{contentType:a.endsWith(`.js`)?`text/javascript`:a.endsWith(`.css`)?`text/css`:a.endsWith(`.woff2`)?`font/woff2`:`text/html; charset=utf-8`}).pipe(Kf(()=>I(q9))):q9}))})),c=bM(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=pCe.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=>_Ce.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`:mCe.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=bM(e=>Ap(e));return Xd(uCe(a),t.cookieDomain===void 0?Hd:dCe(t.cookieDomain),fM(`GET`,`/healthz`,r`SELECT 1`.pipe(Wf(K9({status:`ok`})),Kf(W4))),fM(`*`,`/api/auth/*`,o),fM(`*`,`/.well-known/*`,o),s).pipe($d(l.layer),$d(c),$d(cue))})),yCe=Wp(`Http.nodeHandler`)(function*(e){let t=yield*mM(vCe(e));return yield*oue(t,{scope:yield*_p})}),bCe=(e,t)=>{let n=Jd(H(X4,({database:e})=>IV.layer(e)));return Xd(j9.layer,f3.layer,o3.layer).pipe(ef(d3.layer),ef(i3.layer),ef(r3.layer),ef(n),ef(Zd(e,t)))},Y9=`credentials.json`,X9=G({email:W,password:W,secret:W,clientId:vx(W),clientSecret:vx(W)}),xCe=cx(sS(X9)),SCe=mx(X9),Z9=(e,t)=>V(JT,n=>n.writeFileString(We(e,Y9),`${JSON.stringify(SCe(t),null,2)}\n`,{mode:384})),CCe=Wp(`Dev.identity`)(function*(e,t){let n={email:`owner@example.internal`,password:Ve(24).toString(`base64url`),secret:Ve(32).toString(`hex`)};if(!t)return n;let r=yield*JT,i=We(e,Y9);return(yield*r.exists(i))?yield*xCe(yield*r.readFileString(i)):(yield*Z9(e,n),n)}),Q9=e=>Error(`Disposable issuer provisioning failed`,{cause:e}),$9=Wp(`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:Oh(a.cookies)}});yield*s.text;let c=Th(a.cookies,s.cookies);return{cookie:Oh(c),cookies:Object.entries(kh(c)).map(([e,t])=>({name:e,value:t}))}}),wCe=Xd(_N,xN,Bd(bN,{redirect:`manual`})),TCe=U(function*(e){let t=yield*JT,n=qe(new URL(`./web/`,import.meta.url));if(!(yield*t.exists(We(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*Wf(t.makeDirectory(Ge(r),{recursive:!0,mode:448}),Ge(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*CCe(i,r!==void 0),l=yield*Y4({baseURL:s,secret:Lh(c.secret),database:We(i,`issuer.sqlite`),host:`127.0.0.1`,port:o,mcpAllowedOrigins:[],trustProxy:!1,allowInsecureHttp:e.cookieDomain!==void 0,cookieDomain:e.cookieDomain}),u=yield*Rd(bCe(Bd(X4,l),P4.layerWith(e.cimdTransport))),d=Ui(u,j9),f=Ui(u,r3),p=yield*xd(yield*_p),m=yield*yCe(n).pipe(dp(u),gp(hd,p));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}`)}),m(t,n)}catch{n.headersSent?n.destroy():n.writeHead(500).end(`Request failed`)}});let h={email:c.email,password:c.password},g=Ui(u,f3),_=Ui(u,d3),v=Ui(u,o3),y=e=>Ap(vp(z(function*(){let t=yield*d.find();return t===void 0?yield*If(/* @__PURE__ */ Error(`Owner setup failed`)):yield*e(t).pipe(gp(LB,d.caller(t,h.email,!0)))}))).pipe(Zf(Q9));(yield*d.find())||(yield*d.create(h).pipe(Zf(Q9))),yield*y(()=>Ef(e.resources,e=>V(f.get(e.identifier),t=>t?R:Gf(_.create(e)))));let b=yield*y(()=>z(function*(){if(c.clientId!==void 0&&c.clientSecret!==void 0){let{clients:e}=yield*g.list();if(e.some(e=>e.client_id===c.clientId))return{client_id:c.clientId,client_secret:c.clientSecret}}return yield*g.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`})})),x=b.client_secret;if(x===void 0)return yield*B(/* @__PURE__ */ Error(`Disposable issuer did not return client credentials`));r!==void 0&&(yield*Z9(i,{...c,clientId:b.client_id,clientSecret:x}));let S=e.cookieDomain===void 0?void 0:s;return{details:{issuer:`${s}/api/auth`,clientId:b.client_id,clientSecret:x,owner:h,url:s,port:o,directory:i},apiKey:e=>y(()=>H(v.create({name:e.name??`development`,permissions:e.permissions,expiresAt:null}),e=>e.key)),ownerSession:e=>$9(s,S,h,e),ownerToken:Wp(`Dev.ownerToken`)(function*(e){let{cookie:t}=yield*$9(s,S,h,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 ECe(e){let t=_d(),n=e=>Vp(e.pipe(gp(hd,t),dp(wCe)),{onFiberStart:BS(t)}),r=Hp(Tp(Cd(t,qu)));try{let t=await n(TCe(e));return{...t.details,apiKey:e=>n(t.apiKey(e)),ownerSession:e=>n(t.ownerSession(e)),ownerToken:e=>n(t.ownerToken(e)),close:()=>Vp(r)}}catch(e){throw await Vp(r),e}}export{ECe as startDisposableIssuer,TV as t};
1
+ export{t as startDisposableIssuer}from"./src-B4z2ekdT.mjs";