@elysiajs/eden 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ import{a as R,b as M,c as O,d as q}from"./chunk-QSLHAOSM.mjs";var W=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,s){return this.addEventListener(t,n,s)}off(t,n,s){return this.ws.removeEventListener(t,n,s),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,s){return this.ws.addEventListener(t,o=>{if(t==="message"){let c=q(o);n({...o,data:c})}else n(o)},s),this}removeEventListener(t,n,s){return this.off(t,n,s),this}close(){return this.ws.close(),this}};var J=["get","post","put","delete","patch","options","head","connect","subscribe"],D=["localhost","127.0.0.1","0.0.0.0"],C=typeof FileList>"u",I=e=>C?e instanceof Blob:e instanceof FileList||e instanceof File,P=e=>{if(!e)return!1;for(let t in e)if(I(e[t])||Array.isArray(e[t])&&e[t].find(I))return!0;return!1},j=e=>C?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let s=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(s)},n.readAsArrayBuffer(e)}),b=(e,t,n={},s={})=>{if(Array.isArray(e)){for(let o of e)if(!Array.isArray(o))s=b(o,t,n,s);else{let c=o[0];if(typeof c=="string")s[c.toLowerCase()]=o[1];else for(let[i,g]of c)s[i.toLowerCase()]=g}return s}if(!e)return s;switch(typeof e){case"function":if(e instanceof Headers)return b(e,t,n,s);let o=e(t,n);return o?b(o,t,n,s):s;case"object":if(e instanceof Headers)return e.forEach((c,i)=>{s[i.toLowerCase()]=c}),s;for(let[c,i]of Object.entries(e))s[c.toLowerCase()]=i;return s;default:return s}};async function*U(e){let t=e.body;if(!t)return;let n=t.getReader(),s=new TextDecoder;try{for(;;){let{done:o,value:c}=await n.read();if(o)break;let i=typeof c=="string"?c:s.decode(c);i.endsWith(`
2
+
3
+ `)?yield _(i):yield O(i)}}finally{n.releaseLock()}}var _=e=>{let t=e.split(`
4
+ `),n={};for(let s of t){let o=s.indexOf(":");if(o>0){let c=s.slice(0,o).trim(),i=s.slice(o+1).trim();n[c]=O(i)}}return n},A=(e,t,n=[],s)=>new Proxy(()=>{},{get(o,c){return A(e,t,c==="index"?n:[...n,c],s)},apply(o,c,[i,g]){if(!i||g||typeof i=="object"&&Object.keys(i).length!==1||J.includes(n.at(-1))){let K=[...n],k=K.pop(),v="/"+K.join("/"),{fetcher:N=fetch,headers:x,onRequest:d,onResponse:E,fetch:H}=t,m=k==="get"||k==="head"||k==="subscribe";x=b(x,v,g);let T=m?i?.query:g?.query,L="";if(T){let r=(w,u)=>{L+=(L?"&":"?")+`${encodeURIComponent(w)}=${encodeURIComponent(u)}`};for(let[w,u]of Object.entries(T)){if(Array.isArray(u)){for(let f of u)r(w,f);continue}if(u!=null){if(typeof u=="object"){r(w,JSON.stringify(u));continue}r(w,`${u}`)}}}if(k==="subscribe"){let r=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||D.find(w=>e.includes(w))?"ws://":"wss://")+v+L;return new W(r)}return(async()=>{let r={method:k?.toUpperCase(),body:i,...H,headers:x};r.headers={...x,...b(m?i?.headers:g?.headers,v,r)};let w=m&&typeof i=="object"?i.fetch:g?.fetch;if(r={...r,...w},m&&delete r.body,d){Array.isArray(d)||(d=[d]);for(let l of d){let a=await l(v,r);typeof a=="object"&&(r={...r,...a,headers:{...r.headers,...b(a.headers,v,r)}})}}if(m&&delete r.body,P(i)){let l=new FormData;for(let[a,y]of Object.entries(r.body)){if(Array.isArray(y)){for(let h=0;h<y.length;h++){let F=y[h];l.append(a,F instanceof File?await j(F):F)}continue}if(C){l.append(a,y);continue}if(y instanceof File){l.append(a,await j(y));continue}if(y instanceof FileList){for(let h=0;h<y.length;h++)l.append(a,await j(y[h]));continue}l.append(a,y)}r.body=l}else typeof i=="object"?(r.headers["content-type"]="application/json",r.body=JSON.stringify(i)):i!=null&&(r.headers["content-type"]="text/plain");if(m&&delete r.body,d){Array.isArray(d)||(d=[d]);for(let l of d){let a=await l(v,r);typeof a=="object"&&(r={...r,...a,headers:{...r.headers,...b(a.headers,v,r)}})}}g?.headers?.["content-type"]&&(r.headers["content-type"]=g?.headers["content-type"]);let u=e+v+L,f=await(s?.handle(new Request(u,r))??N(u,r)),p=null,S=null;if(E){Array.isArray(E)||(E=[E]);for(let l of E)try{let a=await l(f.clone());if(a!=null){p=a;break}}catch(a){a instanceof R?S=a:S=new R(422,a);break}}if(p!==null)return{data:p,error:S,response:f,status:f.status,headers:f.headers};switch(f.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":p=U(f);break;case"application/json":p=JSON.parse(await f.text(),(a,y)=>{if(typeof y!="string")return y;let h=M(y);return h||y});break;case"application/octet-stream":p=await f.arrayBuffer();break;case"multipart/form-data":let l=await f.formData();p={},l.forEach((a,y)=>{p[y]=a});break;default:p=await f.text().then(O)}return(f.status>=300||f.status<200)&&(S=new R(f.status,p),p=null),{data:p,error:S,response:f,status:f.status,headers:f.headers}})()}return typeof i=="object"?A(e,t,[...n,Object.values(i)[0]],s):A(e,t,n)}}),Q=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(D.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),A(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),A("http://e.ly",t,[],e));export{U as a,Q as b};
@@ -1 +1 @@
1
- import{a as O,b as L,c as W}from"./chunk-XYW4OUFN.mjs";var K=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[c,a]of Object.entries(t))s+=`${c}=${a}&`;return`${n}${e}?${s.slice(0,-1)}`};var $=typeof FileList>"u",M=n=>$?n instanceof Blob:n instanceof FileList||n instanceof File,H=n=>{if(!n)return!1;for(let e in n){if(M(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>M(t)))return!0}return!1},x=n=>$?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(s)},t.readAsArrayBuffer(n)}),T=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,c=>{if(e==="message"){let a=W(c);t({...c,data:a})}else t(c)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},j=(n,e="",t)=>new Proxy(()=>{},{get(s,c,a){return j(n,`${e}/${c.toString()}`,t)},apply(s,c,[a,b={}]=[{},{}]){let f=a!==void 0&&(typeof a!="object"||Array.isArray(a))?a:void 0,{$query:I,$fetch:F,$headers:P,$transform:m,getRaw:C,...q}=a??{};f??=q;let w=e.lastIndexOf("/"),E=e.slice(w+1).toUpperCase(),v=K(n,w===-1?"/":e.slice(0,w),Object.assign(b.query??{},I)),D=t.fetcher??fetch,l=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,S=m?Array.isArray(m)?m:[m]:void 0;return S&&(l?l=S.concat(l):l=S),E==="SUBSCRIBE"?new T(v.replace(/^([^]+):\/\//,v.startsWith("https://")?"wss://":"ws://")):(async N=>{let r,R={...t.$fetch?.headers,...F?.headers,...b.headers,...P};if(E!=="GET"&&E!=="HEAD"){r=Object.keys(f).length||Array.isArray(f)?f:void 0;let p=r&&(typeof r=="object"||Array.isArray(f));if(p&&H(r)){let u=new FormData;for(let[h,o]of Object.entries(r))if($)u.append(h,o);else if(o instanceof File)u.append(h,await x(o));else if(o instanceof FileList)for(let d=0;d<o.length;d++)u.append(h,await x(o[d]));else if(Array.isArray(o))for(let d=0;d<o.length;d++){let k=o[d];u.append(h,k instanceof File?await x(k):k)}else u.append(h,o);r=u}else r!=null&&(R["content-type"]=p?"application/json":"text/plain",r=p?JSON.stringify(r):f)}let i=await D(v,{method:E,body:r,...t.$fetch,...b.fetch,...F,headers:R}),g;if(N.getRaw)return i;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await i.json();break;default:g=await i.text().then(L)}let B=i.status>=300||i.status<200?new O(i.status,g):null,A={data:g,error:B,response:i,status:i.status,headers:i.headers};if(l)for(let p of l){let y=p(A);y instanceof Promise&&(y=await y),y!=null&&(A=y)}return A})({getRaw:C})}}),z=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return j(n,s,e)}});export{T as a,z as b};
1
+ import{a as O,c as L,d as W}from"./chunk-QSLHAOSM.mjs";var K=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[c,a]of Object.entries(t))s+=`${c}=${a}&`;return`${n}${e}?${s.slice(0,-1)}`};var $=typeof FileList>"u",M=n=>$?n instanceof Blob:n instanceof FileList||n instanceof File,H=n=>{if(!n)return!1;for(let e in n){if(M(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>M(t)))return!0}return!1},x=n=>$?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(s)},t.readAsArrayBuffer(n)}),T=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,c=>{if(e==="message"){let a=W(c);t({...c,data:a})}else t(c)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},j=(n,e="",t)=>new Proxy(()=>{},{get(s,c,a){return j(n,`${e}/${c.toString()}`,t)},apply(s,c,[a,b={}]=[{},{}]){let f=a!==void 0&&(typeof a!="object"||Array.isArray(a))?a:void 0,{$query:I,$fetch:F,$headers:P,$transform:m,getRaw:C,...q}=a??{};f??=q;let w=e.lastIndexOf("/"),E=e.slice(w+1).toUpperCase(),v=K(n,w===-1?"/":e.slice(0,w),Object.assign(b.query??{},I)),D=t.fetcher??fetch,l=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,S=m?Array.isArray(m)?m:[m]:void 0;return S&&(l?l=S.concat(l):l=S),E==="SUBSCRIBE"?new T(v.replace(/^([^]+):\/\//,v.startsWith("https://")?"wss://":"ws://")):(async N=>{let r,R={...t.$fetch?.headers,...F?.headers,...b.headers,...P};if(E!=="GET"&&E!=="HEAD"){r=Object.keys(f).length||Array.isArray(f)?f:void 0;let p=r&&(typeof r=="object"||Array.isArray(f));if(p&&H(r)){let u=new FormData;for(let[h,o]of Object.entries(r))if($)u.append(h,o);else if(o instanceof File)u.append(h,await x(o));else if(o instanceof FileList)for(let d=0;d<o.length;d++)u.append(h,await x(o[d]));else if(Array.isArray(o))for(let d=0;d<o.length;d++){let k=o[d];u.append(h,k instanceof File?await x(k):k)}else u.append(h,o);r=u}else r!=null&&(R["content-type"]=p?"application/json":"text/plain",r=p?JSON.stringify(r):f)}let i=await D(v,{method:E,body:r,...t.$fetch,...b.fetch,...F,headers:R}),g;if(N.getRaw)return i;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await i.json();break;default:g=await i.text().then(L)}let B=i.status>=300||i.status<200?new O(i.status,g):null,A={data:g,error:B,response:i,status:i.status,headers:i.headers};if(l)for(let p of l){let y=p(A);y instanceof Promise&&(y=await y),y!=null&&(A=y)}return A})({getRaw:C})}}),z=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return j(n,s,e)}});export{T as a,z as b};
@@ -1 +1 @@
1
- var s=class extends Error{constructor(e,n){super(n+"");this.status=e;this.value=n}};var i=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,o=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,c=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,u=t=>t.trim().length!==0&&!Number.isNaN(Number(t)),d=t=>{if(typeof t!="string")return null;let r=t.replace(/"/g,"");if(i.test(r)||o.test(r)||c.test(r)){let e=new Date(r);if(!Number.isNaN(e.getTime()))return e}return null},a=t=>{let r=t.charCodeAt(0),e=t.charCodeAt(t.length-1);return r===123&&e===125||r===91&&e===93},p=t=>JSON.parse(t,(r,e)=>{let n=d(e);return n||e}),g=t=>{if(!t)return t;if(u(t))return+t;if(t==="true")return!0;if(t==="false")return!1;let r=d(t);if(r)return r;if(a(t))try{return p(t)}catch{}return t},S=t=>{let r=t.data.toString();return r==="null"?null:g(r)};export{s as a,g as b,S as c};
1
+ var s=class extends Error{constructor(e,n){super(n+"");this.status=e;this.value=n}};var i=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,o=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,c=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,u=t=>t.trim().length!==0&&!Number.isNaN(Number(t)),d=t=>{if(typeof t!="string")return null;let r=t.replace(/"/g,"");if(i.test(r)||o.test(r)||c.test(r)){let e=new Date(r);if(!Number.isNaN(e.getTime()))return e}return null},a=t=>{let r=t.charCodeAt(0),e=t.charCodeAt(t.length-1);return r===123&&e===125||r===91&&e===93},p=t=>JSON.parse(t,(r,e)=>{let n=d(e);return n||e}),g=t=>{if(!t)return t;if(u(t))return+t;if(t==="true")return!0;if(t==="false")return!1;let r=d(t);if(r)return r;if(a(t))try{return p(t)}catch{}return t},S=t=>{let r=t.data.toString();return r==="null"?null:g(r)};export{s as a,d as b,g as c,S as d};
@@ -1 +1 @@
1
- import{a as u,b as f}from"./chunk-XYW4OUFN.mjs";var j=async t=>{switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":return t.json();case"application/octet-stream":return t.arrayBuffer();case"multipart/form-data":{let e=await t.formData(),r={};return e.forEach((o,a)=>{r[a]=o}),r}}return t.text().then(f)},T=async(t,n)=>{let e=await j(t);return t.status>300?{data:null,status:t.status,headers:t.headers,retry:n,error:new u(t.status,e)}:{data:e,error:null,status:t.status,headers:t.headers,retry:n}},x=(t,n)=>(e,{query:r,params:o,body:a,...s}={})=>{o&&Object.entries(o).forEach(([c,i])=>{e=e.replace(`:${c}`,i)});let h=s.headers?.["Content-Type"];if(!h||h==="application/json")try{a=JSON.stringify(a)}catch{}let p=n?.fetcher||globalThis.fetch,y=r?Object.fromEntries(Object.entries(r).filter(([c,i])=>i!=null)):null,d=y?`?${new URLSearchParams(y).toString()}`:"",m=`${t}${e}${d}`,E=a?{"content-type":"application/json",...s.headers}:s.headers,g={...s,method:s.method?.toUpperCase()||"GET",headers:E,body:a},l=()=>p(m,g).then(c=>T(c,l));return l()};export{x as a};
1
+ import{a as u,c as f}from"./chunk-QSLHAOSM.mjs";var j=async t=>{switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":return t.json();case"application/octet-stream":return t.arrayBuffer();case"multipart/form-data":{let e=await t.formData(),r={};return e.forEach((o,a)=>{r[a]=o}),r}}return t.text().then(f)},T=async(t,n)=>{let e=await j(t);return t.status>300?{data:null,status:t.status,headers:t.headers,retry:n,error:new u(t.status,e)}:{data:e,error:null,status:t.status,headers:t.headers,retry:n}},x=(t,n)=>(e,{query:r,params:o,body:a,...s}={})=>{o&&Object.entries(o).forEach(([c,i])=>{e=e.replace(`:${c}`,i)});let h=s.headers?.["Content-Type"];if(!h||h==="application/json")try{a=JSON.stringify(a)}catch{}let p=n?.fetcher||globalThis.fetch,y=r?Object.fromEntries(Object.entries(r).filter(([c,i])=>i!=null)):null,d=y?`?${new URLSearchParams(y).toString()}`:"",m=`${t}${e}${d}`,E=a?{"content-type":"application/json",...s.headers}:s.headers,g={...s,method:s.method?.toUpperCase()||"GET",headers:E,body:a},l=()=>p(m,g).then(c=>T(c,l));return l()};export{x as a};
package/dist/fetch.mjs CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-V6UUVCFC.mjs";import"./chunk-XYW4OUFN.mjs";export{a as edenFetch};
1
+ import{a}from"./chunk-RFC2MZ4E.mjs";import"./chunk-QSLHAOSM.mjs";export{a as edenFetch};
@@ -1 +1,4 @@
1
- "use strict";var Eden=(()=>{var P=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var se=Object.prototype.hasOwnProperty;var ae=(e,t)=>{for(var n in t)P(e,n,{get:t[n],enumerable:!0})},ie=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of re(t))!se.call(e,s)&&s!==n&&P(e,s,{get:()=>t[s],enumerable:!(r=ne(t,s))||r.enumerable});return e};var oe=e=>ie(P({},"__esModule",{value:!0}),e);var we={};ae(we,{edenFetch:()=>te,edenTreaty:()=>ee,treaty:()=>Q});var F=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var ce=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,fe=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,de=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,ye=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),V=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(ce.test(t)||fe.test(t)||de.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},ue=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},le=e=>JSON.parse(e,(t,n)=>{let r=V(n);return r||n}),L=e=>{if(!e)return e;if(ye(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=V(e);if(t)return t;if(ue(e))try{return le(e)}catch{}return e},D=e=>{let t=e.data.toString();return t==="null"?null:L(t)};var I=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let i=D(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var pe=["get","post","put","delete","patch","options","head","connect","subscribe"],Z=["localhost","127.0.0.1","0.0.0.0"],U=typeof FileList>"u",G=e=>U?e instanceof Blob:e instanceof FileList||e instanceof File,he=e=>{if(!e)return!1;for(let t in e)if(G(e[t])||Array.isArray(e[t])&&e[t].find(G))return!0;return!1},J=e=>U?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),W=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let s of e)if(!Array.isArray(s))r=W(s,t,n,r);else{let i=s[0];if(typeof i=="string")r[i.toLowerCase()]=s[1];else for(let[o,y]of i)r[o.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return W(e,t,n,r);let s=e(t,n);return s?W(s,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((i,o)=>{r[o.toLowerCase()]=i}),r;for(let[i,o]of Object.entries(e))r[i.toLowerCase()]=o;return r;default:return r}};async function*ge(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder;try{for(;;){let{done:s,value:i}=await n.read();if(s)break;let o=r.decode(i);yield L(o)}}finally{n.releaseLock()}}var K=(e,t,n=[],r)=>new Proxy(()=>{},{get(s,i){return K(e,t,i==="index"?n:[...n,i],r)},apply(s,i,[o,y]){if(!o||y||typeof o=="object"&&Object.keys(o).length!==1||pe.includes(n.at(-1))){let M=[...n],v=M.pop(),b="/"+M.join("/"),{fetcher:O=fetch,headers:R,onRequest:g,onResponse:w,fetch:S}=t,p=v==="get"||v==="head"||v==="subscribe";R=W(R,b,y);let N=p?o?.query:y?.query,x="";if(N){let a=(k,m)=>{x+=(x?"&":"?")+`${encodeURIComponent(k)}=${encodeURIComponent(m)}`};for(let[k,m]of Object.entries(N)){if(Array.isArray(m)){for(let c of m)a(k,c);continue}if(m!=null){if(typeof m=="object"){a(k,JSON.stringify(m));continue}a(k,`${m}`)}}}if(v==="subscribe"){let a=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Z.find(k=>e.includes(k))?"ws://":"wss://")+b+x;return new I(a)}return(async()=>{let a={method:v?.toUpperCase(),body:o,...S,headers:R};a.headers={...R,...W(p?o?.headers:y?.headers,b,a)};let k=p&&typeof o=="object"?o.fetch:y?.fetch;if(a={...a,...k},p&&delete a.body,g){Array.isArray(g)||(g=[g]);for(let d of g){let f=await d(b,a);typeof f=="object"&&(a={...a,...f,headers:{...a.headers,...W(f.headers,b,a)}})}}if(p&&delete a.body,he(o)){let d=new FormData;for(let[f,l]of Object.entries(a.body)){if(Array.isArray(l)){for(let E=0;E<l.length;E++){let A=l[E];d.append(f,A instanceof File?await J(A):A)}continue}if(U){d.append(f,l);continue}if(l instanceof File){d.append(f,await J(l));continue}if(l instanceof FileList){for(let E=0;E<l.length;E++)d.append(f,await J(l[E]));continue}d.append(f,l)}a.body=d}else typeof o=="object"?(a.headers["content-type"]="application/json",a.body=JSON.stringify(o)):o!=null&&(a.headers["content-type"]="text/plain");if(p&&delete a.body,g){Array.isArray(g)||(g=[g]);for(let d of g){let f=await d(b,a);typeof f=="object"&&(a={...a,...f,headers:{...a.headers,...W(f.headers,b,a)}})}}let m=e+b+x,c=await(r?.handle(new Request(m,a))??O(m,a)),h=null,u=null;if(w){Array.isArray(w)||(w=[w]);for(let d of w)try{let f=await d(c.clone());if(f!=null){h=f;break}}catch(f){f instanceof F?u=f:u=new F(422,f);break}}if(h!==null)return{data:h,error:u,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":h=ge(c);break;case"application/json":h=await c.json();break;case"application/octet-stream":h=await c.arrayBuffer();break;case"multipart/form-data":let d=await c.formData();h={},d.forEach((f,l)=>{h[l]=f});break;default:h=await c.text().then(L)}return(c.status>=300||c.status<200)&&(u=new F(c.status,h),h=null),{data:h,error:u,response:c,status:c.status,headers:c.headers}})()}return typeof o=="object"?K(e,t,[...n,Object.values(o)[0]],r):K(e,t,n)}}),Q=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(Z.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),K(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",t,[],e));var z=(e,t,n)=>{if(e.endsWith("/")||(e+="/"),t==="index"&&(t=""),!n||!Object.keys(n).length)return`${e}${t}`;let r="";for(let[s,i]of Object.entries(n))r+=`${s}=${i}&`;return`${e}${t}?${r.slice(0,-1)}`};var H=typeof FileList>"u",X=e=>H?e instanceof Blob:e instanceof FileList||e instanceof File,me=e=>{if(!e)return!1;for(let t in e){if(X(e[t]))return!0;if(Array.isArray(e[t])&&e[t].find(n=>X(n)))return!0}return!1},_=e=>H?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),B=class{ws;url;constructor(t){this.ws=new WebSocket(t),this.url=t}send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let i=D(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}},Y=(e,t="",n)=>new Proxy(()=>{},{get(r,s,i){return Y(e,`${t}/${s.toString()}`,n)},apply(r,s,[i,o={}]=[{},{}]){let y=i!==void 0&&(typeof i!="object"||Array.isArray(i))?i:void 0,{$query:M,$fetch:v,$headers:b,$transform:O,getRaw:R,...g}=i??{};y??=g;let w=t.lastIndexOf("/"),S=t.slice(w+1).toUpperCase(),p=z(e,w===-1?"/":t.slice(0,w),Object.assign(o.query??{},M)),N=n.fetcher??fetch,x=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,a=O?Array.isArray(O)?O:[O]:void 0;return a&&(x?x=a.concat(x):x=a),S==="SUBSCRIBE"?new B(p.replace(/^([^]+):\/\//,p.startsWith("https://")?"wss://":"ws://")):(async m=>{let c,h={...n.$fetch?.headers,...v?.headers,...o.headers,...b};if(S!=="GET"&&S!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let E=c&&(typeof c=="object"||Array.isArray(y));if(E&&me(c)){let $=new FormData;for(let[C,T]of Object.entries(c))if(H)$.append(C,T);else if(T instanceof File)$.append(C,await _(T));else if(T instanceof FileList)for(let j=0;j<T.length;j++)$.append(C,await _(T[j]));else if(Array.isArray(T))for(let j=0;j<T.length;j++){let q=T[j];$.append(C,q instanceof File?await _(q):q)}else $.append(C,T);c=$}else c!=null&&(h["content-type"]=E?"application/json":"text/plain",c=E?JSON.stringify(c):y)}let u=await N(p,{method:S,body:c,...n.$fetch,...o.fetch,...v,headers:h}),d;if(m.getRaw)return u;switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":d=await u.json();break;default:d=await u.text().then(L)}let f=u.status>=300||u.status<200?new F(u.status,d):null,l={data:d,error:f,response:u,status:u.status,headers:u.headers};if(x)for(let E of x){let A=E(l);A instanceof Promise&&(A=await A),A!=null&&(l=A)}return l})({getRaw:R})}}),ee=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return Y(e,r,t)}});var Ee=async e=>{switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":return e.json();case"application/octet-stream":return e.arrayBuffer();case"multipart/form-data":{let n=await e.formData(),r={};return n.forEach((s,i)=>{r[i]=s}),r}}return e.text().then(L)},be=async(e,t)=>{let n=await Ee(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new F(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},te=(e,t)=>(n,{query:r,params:s,body:i,...o}={})=>{s&&Object.entries(s).forEach(([S,p])=>{n=n.replace(`:${S}`,p)});let y=o.headers?.["Content-Type"];if(!y||y==="application/json")try{i=JSON.stringify(i)}catch{}let M=t?.fetcher||globalThis.fetch,v=r?Object.fromEntries(Object.entries(r).filter(([S,p])=>p!=null)):null,b=v?`?${new URLSearchParams(v).toString()}`:"",O=`${e}${n}${b}`,R=i?{"content-type":"application/json",...o.headers}:o.headers,g={...o,method:o.method?.toUpperCase()||"GET",headers:R,body:i},w=()=>M(O,g).then(S=>be(S,w));return w()};return oe(we);})();
1
+ "use strict";var Eden=(()=>{var J=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var se=Object.prototype.hasOwnProperty;var ae=(e,t)=>{for(var n in t)J(e,n,{get:t[n],enumerable:!0})},ie=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of re(t))!se.call(e,s)&&s!==n&&J(e,s,{get:()=>t[s],enumerable:!(r=ne(t,s))||r.enumerable});return e};var oe=e=>ie(J({},"__esModule",{value:!0}),e);var Se={};ae(Se,{edenFetch:()=>te,edenTreaty:()=>ee,treaty:()=>Q});var O=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var ce=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,fe=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,de=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,ye=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),D=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(ce.test(t)||fe.test(t)||de.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},ue=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},le=e=>JSON.parse(e,(t,n)=>{let r=D(n);return r||n}),F=e=>{if(!e)return e;if(ye(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=D(e);if(t)return t;if(ue(e))try{return le(e)}catch{}return e},I=e=>{let t=e.data.toString();return t==="null"?null:F(t)};var q=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let a=I(s);n({...s,data:a})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var pe=["get","post","put","delete","patch","options","head","connect","subscribe"],Z=["localhost","127.0.0.1","0.0.0.0"],_=typeof FileList>"u",G=e=>_?e instanceof Blob:e instanceof FileList||e instanceof File,he=e=>{if(!e)return!1;for(let t in e)if(G(e[t])||Array.isArray(e[t])&&e[t].find(G))return!0;return!1},U=e=>_?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),j=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let s of e)if(!Array.isArray(s))r=j(s,t,n,r);else{let a=s[0];if(typeof a=="string")r[a.toLowerCase()]=s[1];else for(let[i,y]of a)r[i.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return j(e,t,n,r);let s=e(t,n);return s?j(s,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((a,i)=>{r[i.toLowerCase()]=a}),r;for(let[a,i]of Object.entries(e))r[a.toLowerCase()]=i;return r;default:return r}};async function*ge(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder;try{for(;;){let{done:s,value:a}=await n.read();if(s)break;let i=typeof a=="string"?a:r.decode(a);i.endsWith(`
2
+
3
+ `)?yield me(i):yield F(i)}}finally{n.releaseLock()}}var me=e=>{let t=e.split(`
4
+ `),n={};for(let r of t){let s=r.indexOf(":");if(s>0){let a=r.slice(0,s).trim(),i=r.slice(s+1).trim();n[a]=F(i)}}return n},K=(e,t,n=[],r)=>new Proxy(()=>{},{get(s,a){return K(e,t,a==="index"?n:[...n,a],r)},apply(s,a,[i,y]){if(!i||y||typeof i=="object"&&Object.keys(i).length!==1||pe.includes(n.at(-1))){let M=[...n],x=M.pop(),b="/"+M.join("/"),{fetcher:R=fetch,headers:L,onRequest:m,onResponse:w,fetch:S}=t,h=x==="get"||x==="head"||x==="subscribe";L=j(L,b,y);let N=h?i?.query:y?.query,v="";if(N){let o=(k,E)=>{v+=(v?"&":"?")+`${encodeURIComponent(k)}=${encodeURIComponent(E)}`};for(let[k,E]of Object.entries(N)){if(Array.isArray(E)){for(let c of E)o(k,c);continue}if(E!=null){if(typeof E=="object"){o(k,JSON.stringify(E));continue}o(k,`${E}`)}}}if(x==="subscribe"){let o=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Z.find(k=>e.includes(k))?"ws://":"wss://")+b+v;return new q(o)}return(async()=>{let o={method:x?.toUpperCase(),body:i,...S,headers:L};o.headers={...L,...j(h?i?.headers:y?.headers,b,o)};let k=h&&typeof i=="object"?i.fetch:y?.fetch;if(o={...o,...k},h&&delete o.body,m){Array.isArray(m)||(m=[m]);for(let u of m){let f=await u(b,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...j(f.headers,b,o)}})}}if(h&&delete o.body,he(i)){let u=new FormData;for(let[f,d]of Object.entries(o.body)){if(Array.isArray(d)){for(let p=0;p<d.length;p++){let A=d[p];u.append(f,A instanceof File?await U(A):A)}continue}if(_){u.append(f,d);continue}if(d instanceof File){u.append(f,await U(d));continue}if(d instanceof FileList){for(let p=0;p<d.length;p++)u.append(f,await U(d[p]));continue}u.append(f,d)}o.body=u}else typeof i=="object"?(o.headers["content-type"]="application/json",o.body=JSON.stringify(i)):i!=null&&(o.headers["content-type"]="text/plain");if(h&&delete o.body,m){Array.isArray(m)||(m=[m]);for(let u of m){let f=await u(b,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...j(f.headers,b,o)}})}}y?.headers?.["content-type"]&&(o.headers["content-type"]=y?.headers["content-type"]);let E=e+b+v,c=await(r?.handle(new Request(E,o))??R(E,o)),g=null,l=null;if(w){Array.isArray(w)||(w=[w]);for(let u of w)try{let f=await u(c.clone());if(f!=null){g=f;break}}catch(f){f instanceof O?l=f:l=new O(422,f);break}}if(g!==null)return{data:g,error:l,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":g=ge(c);break;case"application/json":g=JSON.parse(await c.text(),(f,d)=>{if(typeof d!="string")return d;let p=D(d);return p||d});break;case"application/octet-stream":g=await c.arrayBuffer();break;case"multipart/form-data":let u=await c.formData();g={},u.forEach((f,d)=>{g[d]=f});break;default:g=await c.text().then(F)}return(c.status>=300||c.status<200)&&(l=new O(c.status,g),g=null),{data:g,error:l,response:c,status:c.status,headers:c.headers}})()}return typeof i=="object"?K(e,t,[...n,Object.values(i)[0]],r):K(e,t,n)}}),Q=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(Z.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),K(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",t,[],e));var z=(e,t,n)=>{if(e.endsWith("/")||(e+="/"),t==="index"&&(t=""),!n||!Object.keys(n).length)return`${e}${t}`;let r="";for(let[s,a]of Object.entries(n))r+=`${s}=${a}&`;return`${e}${t}?${r.slice(0,-1)}`};var V=typeof FileList>"u",X=e=>V?e instanceof Blob:e instanceof FileList||e instanceof File,Ee=e=>{if(!e)return!1;for(let t in e){if(X(e[t]))return!0;if(Array.isArray(e[t])&&e[t].find(n=>X(n)))return!0}return!1},B=e=>V?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),H=class{ws;url;constructor(t){this.ws=new WebSocket(t),this.url=t}send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let a=I(s);n({...s,data:a})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}},Y=(e,t="",n)=>new Proxy(()=>{},{get(r,s,a){return Y(e,`${t}/${s.toString()}`,n)},apply(r,s,[a,i={}]=[{},{}]){let y=a!==void 0&&(typeof a!="object"||Array.isArray(a))?a:void 0,{$query:M,$fetch:x,$headers:b,$transform:R,getRaw:L,...m}=a??{};y??=m;let w=t.lastIndexOf("/"),S=t.slice(w+1).toUpperCase(),h=z(e,w===-1?"/":t.slice(0,w),Object.assign(i.query??{},M)),N=n.fetcher??fetch,v=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=R?Array.isArray(R)?R:[R]:void 0;return o&&(v?v=o.concat(v):v=o),S==="SUBSCRIBE"?new H(h.replace(/^([^]+):\/\//,h.startsWith("https://")?"wss://":"ws://")):(async E=>{let c,g={...n.$fetch?.headers,...x?.headers,...i.headers,...b};if(S!=="GET"&&S!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let p=c&&(typeof c=="object"||Array.isArray(y));if(p&&Ee(c)){let $=new FormData;for(let[C,T]of Object.entries(c))if(V)$.append(C,T);else if(T instanceof File)$.append(C,await B(T));else if(T instanceof FileList)for(let W=0;W<T.length;W++)$.append(C,await B(T[W]));else if(Array.isArray(T))for(let W=0;W<T.length;W++){let P=T[W];$.append(C,P instanceof File?await B(P):P)}else $.append(C,T);c=$}else c!=null&&(g["content-type"]=p?"application/json":"text/plain",c=p?JSON.stringify(c):y)}let l=await N(h,{method:S,body:c,...n.$fetch,...i.fetch,...x,headers:g}),u;if(E.getRaw)return l;switch(l.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await l.json();break;default:u=await l.text().then(F)}let f=l.status>=300||l.status<200?new O(l.status,u):null,d={data:u,error:f,response:l,status:l.status,headers:l.headers};if(v)for(let p of v){let A=p(d);A instanceof Promise&&(A=await A),A!=null&&(d=A)}return d})({getRaw:L})}}),ee=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return Y(e,r,t)}});var be=async e=>{switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":return e.json();case"application/octet-stream":return e.arrayBuffer();case"multipart/form-data":{let n=await e.formData(),r={};return n.forEach((s,a)=>{r[a]=s}),r}}return e.text().then(F)},we=async(e,t)=>{let n=await be(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new O(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},te=(e,t)=>(n,{query:r,params:s,body:a,...i}={})=>{s&&Object.entries(s).forEach(([S,h])=>{n=n.replace(`:${S}`,h)});let y=i.headers?.["Content-Type"];if(!y||y==="application/json")try{a=JSON.stringify(a)}catch{}let M=t?.fetcher||globalThis.fetch,x=r?Object.fromEntries(Object.entries(r).filter(([S,h])=>h!=null)):null,b=x?`?${new URLSearchParams(x).toString()}`:"",R=`${e}${n}${b}`,L=a?{"content-type":"application/json",...i.headers}:i.headers,m={...i,method:i.method?.toUpperCase()||"GET",headers:L,body:a},w=()=>M(R,m).then(S=>we(S,w));return w()};return oe(Se);})();
package/dist/index.js CHANGED
@@ -1 +1,4 @@
1
- "use strict";var P=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var se=Object.prototype.hasOwnProperty;var ae=(e,t)=>{for(var n in t)P(e,n,{get:t[n],enumerable:!0})},ie=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of re(t))!se.call(e,s)&&s!==n&&P(e,s,{get:()=>t[s],enumerable:!(r=ne(t,s))||r.enumerable});return e};var oe=e=>ie(P({},"__esModule",{value:!0}),e);var we={};ae(we,{edenFetch:()=>te,edenTreaty:()=>ee,treaty:()=>Q});module.exports=oe(we);var F=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var ce=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,fe=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,de=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,ye=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),V=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(ce.test(t)||fe.test(t)||de.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},ue=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},le=e=>JSON.parse(e,(t,n)=>{let r=V(n);return r||n}),L=e=>{if(!e)return e;if(ye(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=V(e);if(t)return t;if(ue(e))try{return le(e)}catch{}return e},D=e=>{let t=e.data.toString();return t==="null"?null:L(t)};var I=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let i=D(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var pe=["get","post","put","delete","patch","options","head","connect","subscribe"],Z=["localhost","127.0.0.1","0.0.0.0"],U=typeof FileList>"u",G=e=>U?e instanceof Blob:e instanceof FileList||e instanceof File,he=e=>{if(!e)return!1;for(let t in e)if(G(e[t])||Array.isArray(e[t])&&e[t].find(G))return!0;return!1},J=e=>U?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),W=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let s of e)if(!Array.isArray(s))r=W(s,t,n,r);else{let i=s[0];if(typeof i=="string")r[i.toLowerCase()]=s[1];else for(let[o,y]of i)r[o.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return W(e,t,n,r);let s=e(t,n);return s?W(s,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((i,o)=>{r[o.toLowerCase()]=i}),r;for(let[i,o]of Object.entries(e))r[i.toLowerCase()]=o;return r;default:return r}};async function*ge(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder;try{for(;;){let{done:s,value:i}=await n.read();if(s)break;let o=r.decode(i);yield L(o)}}finally{n.releaseLock()}}var K=(e,t,n=[],r)=>new Proxy(()=>{},{get(s,i){return K(e,t,i==="index"?n:[...n,i],r)},apply(s,i,[o,y]){if(!o||y||typeof o=="object"&&Object.keys(o).length!==1||pe.includes(n.at(-1))){let M=[...n],v=M.pop(),b="/"+M.join("/"),{fetcher:O=fetch,headers:R,onRequest:g,onResponse:w,fetch:S}=t,p=v==="get"||v==="head"||v==="subscribe";R=W(R,b,y);let N=p?o?.query:y?.query,x="";if(N){let a=(k,m)=>{x+=(x?"&":"?")+`${encodeURIComponent(k)}=${encodeURIComponent(m)}`};for(let[k,m]of Object.entries(N)){if(Array.isArray(m)){for(let c of m)a(k,c);continue}if(m!=null){if(typeof m=="object"){a(k,JSON.stringify(m));continue}a(k,`${m}`)}}}if(v==="subscribe"){let a=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Z.find(k=>e.includes(k))?"ws://":"wss://")+b+x;return new I(a)}return(async()=>{let a={method:v?.toUpperCase(),body:o,...S,headers:R};a.headers={...R,...W(p?o?.headers:y?.headers,b,a)};let k=p&&typeof o=="object"?o.fetch:y?.fetch;if(a={...a,...k},p&&delete a.body,g){Array.isArray(g)||(g=[g]);for(let d of g){let f=await d(b,a);typeof f=="object"&&(a={...a,...f,headers:{...a.headers,...W(f.headers,b,a)}})}}if(p&&delete a.body,he(o)){let d=new FormData;for(let[f,l]of Object.entries(a.body)){if(Array.isArray(l)){for(let E=0;E<l.length;E++){let A=l[E];d.append(f,A instanceof File?await J(A):A)}continue}if(U){d.append(f,l);continue}if(l instanceof File){d.append(f,await J(l));continue}if(l instanceof FileList){for(let E=0;E<l.length;E++)d.append(f,await J(l[E]));continue}d.append(f,l)}a.body=d}else typeof o=="object"?(a.headers["content-type"]="application/json",a.body=JSON.stringify(o)):o!=null&&(a.headers["content-type"]="text/plain");if(p&&delete a.body,g){Array.isArray(g)||(g=[g]);for(let d of g){let f=await d(b,a);typeof f=="object"&&(a={...a,...f,headers:{...a.headers,...W(f.headers,b,a)}})}}let m=e+b+x,c=await(r?.handle(new Request(m,a))??O(m,a)),h=null,u=null;if(w){Array.isArray(w)||(w=[w]);for(let d of w)try{let f=await d(c.clone());if(f!=null){h=f;break}}catch(f){f instanceof F?u=f:u=new F(422,f);break}}if(h!==null)return{data:h,error:u,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":h=ge(c);break;case"application/json":h=await c.json();break;case"application/octet-stream":h=await c.arrayBuffer();break;case"multipart/form-data":let d=await c.formData();h={},d.forEach((f,l)=>{h[l]=f});break;default:h=await c.text().then(L)}return(c.status>=300||c.status<200)&&(u=new F(c.status,h),h=null),{data:h,error:u,response:c,status:c.status,headers:c.headers}})()}return typeof o=="object"?K(e,t,[...n,Object.values(o)[0]],r):K(e,t,n)}}),Q=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(Z.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),K(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",t,[],e));var z=(e,t,n)=>{if(e.endsWith("/")||(e+="/"),t==="index"&&(t=""),!n||!Object.keys(n).length)return`${e}${t}`;let r="";for(let[s,i]of Object.entries(n))r+=`${s}=${i}&`;return`${e}${t}?${r.slice(0,-1)}`};var H=typeof FileList>"u",X=e=>H?e instanceof Blob:e instanceof FileList||e instanceof File,me=e=>{if(!e)return!1;for(let t in e){if(X(e[t]))return!0;if(Array.isArray(e[t])&&e[t].find(n=>X(n)))return!0}return!1},_=e=>H?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),B=class{ws;url;constructor(t){this.ws=new WebSocket(t),this.url=t}send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let i=D(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}},Y=(e,t="",n)=>new Proxy(()=>{},{get(r,s,i){return Y(e,`${t}/${s.toString()}`,n)},apply(r,s,[i,o={}]=[{},{}]){let y=i!==void 0&&(typeof i!="object"||Array.isArray(i))?i:void 0,{$query:M,$fetch:v,$headers:b,$transform:O,getRaw:R,...g}=i??{};y??=g;let w=t.lastIndexOf("/"),S=t.slice(w+1).toUpperCase(),p=z(e,w===-1?"/":t.slice(0,w),Object.assign(o.query??{},M)),N=n.fetcher??fetch,x=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,a=O?Array.isArray(O)?O:[O]:void 0;return a&&(x?x=a.concat(x):x=a),S==="SUBSCRIBE"?new B(p.replace(/^([^]+):\/\//,p.startsWith("https://")?"wss://":"ws://")):(async m=>{let c,h={...n.$fetch?.headers,...v?.headers,...o.headers,...b};if(S!=="GET"&&S!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let E=c&&(typeof c=="object"||Array.isArray(y));if(E&&me(c)){let $=new FormData;for(let[C,T]of Object.entries(c))if(H)$.append(C,T);else if(T instanceof File)$.append(C,await _(T));else if(T instanceof FileList)for(let j=0;j<T.length;j++)$.append(C,await _(T[j]));else if(Array.isArray(T))for(let j=0;j<T.length;j++){let q=T[j];$.append(C,q instanceof File?await _(q):q)}else $.append(C,T);c=$}else c!=null&&(h["content-type"]=E?"application/json":"text/plain",c=E?JSON.stringify(c):y)}let u=await N(p,{method:S,body:c,...n.$fetch,...o.fetch,...v,headers:h}),d;if(m.getRaw)return u;switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":d=await u.json();break;default:d=await u.text().then(L)}let f=u.status>=300||u.status<200?new F(u.status,d):null,l={data:d,error:f,response:u,status:u.status,headers:u.headers};if(x)for(let E of x){let A=E(l);A instanceof Promise&&(A=await A),A!=null&&(l=A)}return l})({getRaw:R})}}),ee=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return Y(e,r,t)}});var Ee=async e=>{switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":return e.json();case"application/octet-stream":return e.arrayBuffer();case"multipart/form-data":{let n=await e.formData(),r={};return n.forEach((s,i)=>{r[i]=s}),r}}return e.text().then(L)},be=async(e,t)=>{let n=await Ee(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new F(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},te=(e,t)=>(n,{query:r,params:s,body:i,...o}={})=>{s&&Object.entries(s).forEach(([S,p])=>{n=n.replace(`:${S}`,p)});let y=o.headers?.["Content-Type"];if(!y||y==="application/json")try{i=JSON.stringify(i)}catch{}let M=t?.fetcher||globalThis.fetch,v=r?Object.fromEntries(Object.entries(r).filter(([S,p])=>p!=null)):null,b=v?`?${new URLSearchParams(v).toString()}`:"",O=`${e}${n}${b}`,R=i?{"content-type":"application/json",...o.headers}:o.headers,g={...o,method:o.method?.toUpperCase()||"GET",headers:R,body:i},w=()=>M(O,g).then(S=>be(S,w));return w()};0&&(module.exports={edenFetch,edenTreaty,treaty});
1
+ "use strict";var J=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var se=Object.prototype.hasOwnProperty;var ae=(e,t)=>{for(var n in t)J(e,n,{get:t[n],enumerable:!0})},ie=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of re(t))!se.call(e,s)&&s!==n&&J(e,s,{get:()=>t[s],enumerable:!(r=ne(t,s))||r.enumerable});return e};var oe=e=>ie(J({},"__esModule",{value:!0}),e);var Se={};ae(Se,{edenFetch:()=>te,edenTreaty:()=>ee,treaty:()=>Q});module.exports=oe(Se);var O=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var ce=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,fe=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,de=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,ye=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),D=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(ce.test(t)||fe.test(t)||de.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},ue=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},le=e=>JSON.parse(e,(t,n)=>{let r=D(n);return r||n}),F=e=>{if(!e)return e;if(ye(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=D(e);if(t)return t;if(ue(e))try{return le(e)}catch{}return e},I=e=>{let t=e.data.toString();return t==="null"?null:F(t)};var q=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let a=I(s);n({...s,data:a})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var pe=["get","post","put","delete","patch","options","head","connect","subscribe"],Z=["localhost","127.0.0.1","0.0.0.0"],_=typeof FileList>"u",G=e=>_?e instanceof Blob:e instanceof FileList||e instanceof File,he=e=>{if(!e)return!1;for(let t in e)if(G(e[t])||Array.isArray(e[t])&&e[t].find(G))return!0;return!1},U=e=>_?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),j=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let s of e)if(!Array.isArray(s))r=j(s,t,n,r);else{let a=s[0];if(typeof a=="string")r[a.toLowerCase()]=s[1];else for(let[i,y]of a)r[i.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return j(e,t,n,r);let s=e(t,n);return s?j(s,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((a,i)=>{r[i.toLowerCase()]=a}),r;for(let[a,i]of Object.entries(e))r[a.toLowerCase()]=i;return r;default:return r}};async function*ge(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder;try{for(;;){let{done:s,value:a}=await n.read();if(s)break;let i=typeof a=="string"?a:r.decode(a);i.endsWith(`
2
+
3
+ `)?yield me(i):yield F(i)}}finally{n.releaseLock()}}var me=e=>{let t=e.split(`
4
+ `),n={};for(let r of t){let s=r.indexOf(":");if(s>0){let a=r.slice(0,s).trim(),i=r.slice(s+1).trim();n[a]=F(i)}}return n},K=(e,t,n=[],r)=>new Proxy(()=>{},{get(s,a){return K(e,t,a==="index"?n:[...n,a],r)},apply(s,a,[i,y]){if(!i||y||typeof i=="object"&&Object.keys(i).length!==1||pe.includes(n.at(-1))){let M=[...n],x=M.pop(),b="/"+M.join("/"),{fetcher:R=fetch,headers:L,onRequest:m,onResponse:w,fetch:S}=t,h=x==="get"||x==="head"||x==="subscribe";L=j(L,b,y);let N=h?i?.query:y?.query,v="";if(N){let o=(k,E)=>{v+=(v?"&":"?")+`${encodeURIComponent(k)}=${encodeURIComponent(E)}`};for(let[k,E]of Object.entries(N)){if(Array.isArray(E)){for(let c of E)o(k,c);continue}if(E!=null){if(typeof E=="object"){o(k,JSON.stringify(E));continue}o(k,`${E}`)}}}if(x==="subscribe"){let o=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Z.find(k=>e.includes(k))?"ws://":"wss://")+b+v;return new q(o)}return(async()=>{let o={method:x?.toUpperCase(),body:i,...S,headers:L};o.headers={...L,...j(h?i?.headers:y?.headers,b,o)};let k=h&&typeof i=="object"?i.fetch:y?.fetch;if(o={...o,...k},h&&delete o.body,m){Array.isArray(m)||(m=[m]);for(let u of m){let f=await u(b,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...j(f.headers,b,o)}})}}if(h&&delete o.body,he(i)){let u=new FormData;for(let[f,d]of Object.entries(o.body)){if(Array.isArray(d)){for(let p=0;p<d.length;p++){let A=d[p];u.append(f,A instanceof File?await U(A):A)}continue}if(_){u.append(f,d);continue}if(d instanceof File){u.append(f,await U(d));continue}if(d instanceof FileList){for(let p=0;p<d.length;p++)u.append(f,await U(d[p]));continue}u.append(f,d)}o.body=u}else typeof i=="object"?(o.headers["content-type"]="application/json",o.body=JSON.stringify(i)):i!=null&&(o.headers["content-type"]="text/plain");if(h&&delete o.body,m){Array.isArray(m)||(m=[m]);for(let u of m){let f=await u(b,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...j(f.headers,b,o)}})}}y?.headers?.["content-type"]&&(o.headers["content-type"]=y?.headers["content-type"]);let E=e+b+v,c=await(r?.handle(new Request(E,o))??R(E,o)),g=null,l=null;if(w){Array.isArray(w)||(w=[w]);for(let u of w)try{let f=await u(c.clone());if(f!=null){g=f;break}}catch(f){f instanceof O?l=f:l=new O(422,f);break}}if(g!==null)return{data:g,error:l,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":g=ge(c);break;case"application/json":g=JSON.parse(await c.text(),(f,d)=>{if(typeof d!="string")return d;let p=D(d);return p||d});break;case"application/octet-stream":g=await c.arrayBuffer();break;case"multipart/form-data":let u=await c.formData();g={},u.forEach((f,d)=>{g[d]=f});break;default:g=await c.text().then(F)}return(c.status>=300||c.status<200)&&(l=new O(c.status,g),g=null),{data:g,error:l,response:c,status:c.status,headers:c.headers}})()}return typeof i=="object"?K(e,t,[...n,Object.values(i)[0]],r):K(e,t,n)}}),Q=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(Z.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),K(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",t,[],e));var z=(e,t,n)=>{if(e.endsWith("/")||(e+="/"),t==="index"&&(t=""),!n||!Object.keys(n).length)return`${e}${t}`;let r="";for(let[s,a]of Object.entries(n))r+=`${s}=${a}&`;return`${e}${t}?${r.slice(0,-1)}`};var V=typeof FileList>"u",X=e=>V?e instanceof Blob:e instanceof FileList||e instanceof File,Ee=e=>{if(!e)return!1;for(let t in e){if(X(e[t]))return!0;if(Array.isArray(e[t])&&e[t].find(n=>X(n)))return!0}return!1},B=e=>V?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),H=class{ws;url;constructor(t){this.ws=new WebSocket(t),this.url=t}send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let a=I(s);n({...s,data:a})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}},Y=(e,t="",n)=>new Proxy(()=>{},{get(r,s,a){return Y(e,`${t}/${s.toString()}`,n)},apply(r,s,[a,i={}]=[{},{}]){let y=a!==void 0&&(typeof a!="object"||Array.isArray(a))?a:void 0,{$query:M,$fetch:x,$headers:b,$transform:R,getRaw:L,...m}=a??{};y??=m;let w=t.lastIndexOf("/"),S=t.slice(w+1).toUpperCase(),h=z(e,w===-1?"/":t.slice(0,w),Object.assign(i.query??{},M)),N=n.fetcher??fetch,v=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=R?Array.isArray(R)?R:[R]:void 0;return o&&(v?v=o.concat(v):v=o),S==="SUBSCRIBE"?new H(h.replace(/^([^]+):\/\//,h.startsWith("https://")?"wss://":"ws://")):(async E=>{let c,g={...n.$fetch?.headers,...x?.headers,...i.headers,...b};if(S!=="GET"&&S!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let p=c&&(typeof c=="object"||Array.isArray(y));if(p&&Ee(c)){let $=new FormData;for(let[C,T]of Object.entries(c))if(V)$.append(C,T);else if(T instanceof File)$.append(C,await B(T));else if(T instanceof FileList)for(let W=0;W<T.length;W++)$.append(C,await B(T[W]));else if(Array.isArray(T))for(let W=0;W<T.length;W++){let P=T[W];$.append(C,P instanceof File?await B(P):P)}else $.append(C,T);c=$}else c!=null&&(g["content-type"]=p?"application/json":"text/plain",c=p?JSON.stringify(c):y)}let l=await N(h,{method:S,body:c,...n.$fetch,...i.fetch,...x,headers:g}),u;if(E.getRaw)return l;switch(l.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await l.json();break;default:u=await l.text().then(F)}let f=l.status>=300||l.status<200?new O(l.status,u):null,d={data:u,error:f,response:l,status:l.status,headers:l.headers};if(v)for(let p of v){let A=p(d);A instanceof Promise&&(A=await A),A!=null&&(d=A)}return d})({getRaw:L})}}),ee=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return Y(e,r,t)}});var be=async e=>{switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":return e.json();case"application/octet-stream":return e.arrayBuffer();case"multipart/form-data":{let n=await e.formData(),r={};return n.forEach((s,a)=>{r[a]=s}),r}}return e.text().then(F)},we=async(e,t)=>{let n=await be(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new O(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},te=(e,t)=>(n,{query:r,params:s,body:a,...i}={})=>{s&&Object.entries(s).forEach(([S,h])=>{n=n.replace(`:${S}`,h)});let y=i.headers?.["Content-Type"];if(!y||y==="application/json")try{a=JSON.stringify(a)}catch{}let M=t?.fetcher||globalThis.fetch,x=r?Object.fromEntries(Object.entries(r).filter(([S,h])=>h!=null)):null,b=x?`?${new URLSearchParams(x).toString()}`:"",R=`${e}${n}${b}`,L=a?{"content-type":"application/json",...i.headers}:i.headers,m={...i,method:i.method?.toUpperCase()||"GET",headers:L,body:a},w=()=>M(R,m).then(S=>we(S,w));return w()};0&&(module.exports={edenFetch,edenTreaty,treaty});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{b as r}from"./chunk-F27RTPSD.mjs";import{b as e}from"./chunk-EO5XYDPY.mjs";import{a as t}from"./chunk-V6UUVCFC.mjs";import"./chunk-XYW4OUFN.mjs";export{t as edenFetch,r as edenTreaty,e as treaty};
1
+ import{b as r}from"./chunk-EF6Z4LSD.mjs";import{b as e}from"./chunk-CETCWXWZ.mjs";import{a as t}from"./chunk-RFC2MZ4E.mjs";import"./chunk-QSLHAOSM.mjs";export{t as edenFetch,r as edenTreaty,e as treaty};
package/dist/treaty.mjs CHANGED
@@ -1 +1 @@
1
- import{a,b}from"./chunk-F27RTPSD.mjs";import"./chunk-XYW4OUFN.mjs";export{a as EdenWS,b as edenTreaty};
1
+ import{a,b}from"./chunk-EF6Z4LSD.mjs";import"./chunk-QSLHAOSM.mjs";export{a as EdenWS,b as edenTreaty};
@@ -1,23 +1,18 @@
1
- import type { Elysia } from 'elysia';
1
+ import type { Elysia, ELYSIA_FORM_DATA } from 'elysia';
2
2
  import { EdenWS } from './ws';
3
3
  import type { IsNever, Not, Prettify } from '../types';
4
- type Files = File | FileList;
5
- type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
6
- [K in keyof RecordType]: RecordType[K] extends Blob | Blob[] ? Files : RecordType[K];
7
- } & {};
8
4
  type And<A extends boolean, B extends boolean> = A extends true ? B extends true ? true : false : false;
9
5
  type ReplaceGeneratorWithAsyncGenerator<in out RecordType extends Record<string, unknown>> = {
10
6
  [K in keyof RecordType]: IsNever<RecordType[K]> extends true ? RecordType[K] : RecordType[K] extends Generator<infer A, infer B, infer C> ? void extends B ? AsyncGenerator<A, B, C> : And<IsNever<A>, void extends B ? false : true> extends true ? B : AsyncGenerator<A, B, C> | B : RecordType[K] extends AsyncGenerator<infer A, infer B, infer C> ? And<Not<IsNever<A>>, void extends B ? true : false> extends true ? AsyncGenerator<A, B, C> : And<IsNever<A>, void extends B ? false : true> extends true ? B : AsyncGenerator<A, B, C> | B : RecordType[K];
11
7
  } & {};
12
8
  type MaybeArray<T> = T | T[];
13
- type MaybePromise<T> = T | Promise<T>;
14
9
  export declare namespace Treaty {
15
10
  interface TreatyParam {
16
11
  fetch?: RequestInit;
17
12
  }
18
13
  export type Create<App extends Elysia<any, any, any, any, any, any, any>> = App extends {
19
14
  '~Routes': infer Schema extends Record<string, any>;
20
- } ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
15
+ } ? Prettify<Sign<Schema>> & CreateParams<Schema> : 'Please install Elysia before using Eden';
21
16
  export type Sign<in out Route extends Record<string, any>> = {
22
17
  [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? (undefined extends Route['subscribe']['headers'] ? {
23
18
  headers?: Record<string, unknown>;
@@ -27,7 +22,7 @@ export declare namespace Treaty {
27
22
  query?: Record<string, unknown>;
28
23
  } : {
29
24
  query: Route['subscribe']['query'];
30
- }) extends infer Param ? {} extends Param ? (options?: Param) => EdenWS<Route['subscribe']> : (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
25
+ }) extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
31
26
  body: infer Body;
32
27
  headers: infer Headers;
33
28
  params: any;
@@ -41,7 +36,7 @@ export declare namespace Treaty {
41
36
  query?: Record<string, unknown>;
42
37
  } : {
43
38
  query: Query;
44
- }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : never : CreateParams<Route[K]>;
39
+ }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : CreateParams<Route[K]>;
45
40
  };
46
41
  type CreateParams<Route extends Record<string, any>> = Extract<keyof Route, `:${string}`> extends infer Path extends string ? IsNever<Path> extends true ? Prettify<Sign<Route>> : // ! DO NOT USE PRETTIFY ON THIS LINE, OTHERWISE FUNCTION CALLING WILL BE OMITTED
47
42
  (((params: {
@@ -56,7 +51,9 @@ export declare namespace Treaty {
56
51
  keepDomain?: boolean;
57
52
  }
58
53
  export type TreatyResponse<Res extends Record<number, unknown>> = {
59
- data: Res[200];
54
+ data: Res[200] extends {
55
+ [ELYSIA_FORM_DATA]: infer Data;
56
+ } ? Data : Res[200];
60
57
  error: null;
61
58
  response: Response;
62
59
  status: number;
@@ -69,7 +66,9 @@ export declare namespace Treaty {
69
66
  } : {
70
67
  [Status in keyof Res]: {
71
68
  status: Status;
72
- value: Res[Status];
69
+ value: Res[Status] extends {
70
+ [ELYSIA_FORM_DATA]: infer Data;
71
+ } ? Data : Res[Status];
73
72
  };
74
73
  }[Exclude<keyof Res, 200>];
75
74
  response: Response;
@@ -81,6 +80,11 @@ export declare namespace Treaty {
81
80
  rawData: MessageEvent['data'];
82
81
  }
83
82
  export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
83
+ type MaybeFunction<T> = T | ((...a: any) => T);
84
+ type UnwrapMaybeFunction<T> = T extends (...a: any) => infer R ? R : T;
85
+ type MaybePromise<T> = T | Promise<T>;
86
+ export type Data<Response extends MaybeFunction<MaybePromise<Treaty.TreatyResponse<{}>>>> = NonNullable<Awaited<UnwrapMaybeFunction<Response>>['data']>;
87
+ export type Error<Response extends MaybeFunction<MaybePromise<Treaty.TreatyResponse<{}>>>> = NonNullable<Awaited<UnwrapMaybeFunction<Response>>['error']>;
84
88
  export {};
85
89
  }
86
90
  export {};
@@ -1,4 +1,4 @@
1
- import { InputSchema, Elysia } from 'elysia';
1
+ import { InputSchema, Elysia, ELYSIA_FORM_DATA } from 'elysia';
2
2
  import { P as Prettify, a as IsNever, N as Not } from './types-C41kuZ-K.mjs';
3
3
 
4
4
  declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
@@ -14,23 +14,18 @@ declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
14
14
  close(): this;
15
15
  }
16
16
 
17
- type Files = File | FileList;
18
- type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
19
- [K in keyof RecordType]: RecordType[K] extends Blob | Blob[] ? Files : RecordType[K];
20
- } & {};
21
17
  type And<A extends boolean, B extends boolean> = A extends true ? B extends true ? true : false : false;
22
18
  type ReplaceGeneratorWithAsyncGenerator<in out RecordType extends Record<string, unknown>> = {
23
19
  [K in keyof RecordType]: IsNever<RecordType[K]> extends true ? RecordType[K] : RecordType[K] extends Generator<infer A, infer B, infer C> ? void extends B ? AsyncGenerator<A, B, C> : And<IsNever<A>, void extends B ? false : true> extends true ? B : AsyncGenerator<A, B, C> | B : RecordType[K] extends AsyncGenerator<infer A, infer B, infer C> ? And<Not<IsNever<A>>, void extends B ? true : false> extends true ? AsyncGenerator<A, B, C> : And<IsNever<A>, void extends B ? false : true> extends true ? B : AsyncGenerator<A, B, C> | B : RecordType[K];
24
20
  } & {};
25
21
  type MaybeArray<T> = T | T[];
26
- type MaybePromise<T> = T | Promise<T>;
27
22
  declare namespace Treaty {
28
23
  interface TreatyParam {
29
24
  fetch?: RequestInit;
30
25
  }
31
26
  export type Create<App extends Elysia<any, any, any, any, any, any, any>> = App extends {
32
27
  '~Routes': infer Schema extends Record<string, any>;
33
- } ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
28
+ } ? Prettify<Sign<Schema>> & CreateParams<Schema> : 'Please install Elysia before using Eden';
34
29
  export type Sign<in out Route extends Record<string, any>> = {
35
30
  [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? (undefined extends Route['subscribe']['headers'] ? {
36
31
  headers?: Record<string, unknown>;
@@ -40,7 +35,7 @@ declare namespace Treaty {
40
35
  query?: Record<string, unknown>;
41
36
  } : {
42
37
  query: Route['subscribe']['query'];
43
- }) extends infer Param ? {} extends Param ? (options?: Param) => EdenWS<Route['subscribe']> : (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
38
+ }) extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
44
39
  body: infer Body;
45
40
  headers: infer Headers;
46
41
  params: any;
@@ -54,7 +49,7 @@ declare namespace Treaty {
54
49
  query?: Record<string, unknown>;
55
50
  } : {
56
51
  query: Query;
57
- }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : never : CreateParams<Route[K]>;
52
+ }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : CreateParams<Route[K]>;
58
53
  };
59
54
  type CreateParams<Route extends Record<string, any>> = Extract<keyof Route, `:${string}`> extends infer Path extends string ? IsNever<Path> extends true ? Prettify<Sign<Route>> : // ! DO NOT USE PRETTIFY ON THIS LINE, OTHERWISE FUNCTION CALLING WILL BE OMITTED
60
55
  (((params: {
@@ -69,7 +64,9 @@ declare namespace Treaty {
69
64
  keepDomain?: boolean;
70
65
  }
71
66
  export type TreatyResponse<Res extends Record<number, unknown>> = {
72
- data: Res[200];
67
+ data: Res[200] extends {
68
+ [ELYSIA_FORM_DATA]: infer Data;
69
+ } ? Data : Res[200];
73
70
  error: null;
74
71
  response: Response;
75
72
  status: number;
@@ -82,7 +79,9 @@ declare namespace Treaty {
82
79
  } : {
83
80
  [Status in keyof Res]: {
84
81
  status: Status;
85
- value: Res[Status];
82
+ value: Res[Status] extends {
83
+ [ELYSIA_FORM_DATA]: infer Data;
84
+ } ? Data : Res[Status];
86
85
  };
87
86
  }[Exclude<keyof Res, 200>];
88
87
  response: Response;
@@ -94,6 +93,11 @@ declare namespace Treaty {
94
93
  rawData: MessageEvent['data'];
95
94
  }
96
95
  export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
96
+ type MaybeFunction<T> = T | ((...a: any) => T);
97
+ type UnwrapMaybeFunction<T> = T extends (...a: any) => infer R ? R : T;
98
+ type MaybePromise<T> = T | Promise<T>;
99
+ export type Data<Response extends MaybeFunction<MaybePromise<Treaty.TreatyResponse<{}>>>> = NonNullable<Awaited<UnwrapMaybeFunction<Response>>['data']>;
100
+ export type Error<Response extends MaybeFunction<MaybePromise<Treaty.TreatyResponse<{}>>>> = NonNullable<Awaited<UnwrapMaybeFunction<Response>>['error']>;
97
101
  export { };
98
102
  }
99
103
 
package/dist/treaty2.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { InputSchema, Elysia } from 'elysia';
1
+ import { InputSchema, Elysia, ELYSIA_FORM_DATA } from 'elysia';
2
2
  import { P as Prettify, a as IsNever, N as Not } from './types-C41kuZ-K.js';
3
3
 
4
4
  declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
@@ -14,23 +14,18 @@ declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
14
14
  close(): this;
15
15
  }
16
16
 
17
- type Files = File | FileList;
18
- type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
19
- [K in keyof RecordType]: RecordType[K] extends Blob | Blob[] ? Files : RecordType[K];
20
- } & {};
21
17
  type And<A extends boolean, B extends boolean> = A extends true ? B extends true ? true : false : false;
22
18
  type ReplaceGeneratorWithAsyncGenerator<in out RecordType extends Record<string, unknown>> = {
23
19
  [K in keyof RecordType]: IsNever<RecordType[K]> extends true ? RecordType[K] : RecordType[K] extends Generator<infer A, infer B, infer C> ? void extends B ? AsyncGenerator<A, B, C> : And<IsNever<A>, void extends B ? false : true> extends true ? B : AsyncGenerator<A, B, C> | B : RecordType[K] extends AsyncGenerator<infer A, infer B, infer C> ? And<Not<IsNever<A>>, void extends B ? true : false> extends true ? AsyncGenerator<A, B, C> : And<IsNever<A>, void extends B ? false : true> extends true ? B : AsyncGenerator<A, B, C> | B : RecordType[K];
24
20
  } & {};
25
21
  type MaybeArray<T> = T | T[];
26
- type MaybePromise<T> = T | Promise<T>;
27
22
  declare namespace Treaty {
28
23
  interface TreatyParam {
29
24
  fetch?: RequestInit;
30
25
  }
31
26
  export type Create<App extends Elysia<any, any, any, any, any, any, any>> = App extends {
32
27
  '~Routes': infer Schema extends Record<string, any>;
33
- } ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
28
+ } ? Prettify<Sign<Schema>> & CreateParams<Schema> : 'Please install Elysia before using Eden';
34
29
  export type Sign<in out Route extends Record<string, any>> = {
35
30
  [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? (undefined extends Route['subscribe']['headers'] ? {
36
31
  headers?: Record<string, unknown>;
@@ -40,7 +35,7 @@ declare namespace Treaty {
40
35
  query?: Record<string, unknown>;
41
36
  } : {
42
37
  query: Route['subscribe']['query'];
43
- }) extends infer Param ? {} extends Param ? (options?: Param) => EdenWS<Route['subscribe']> : (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
38
+ }) extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
44
39
  body: infer Body;
45
40
  headers: infer Headers;
46
41
  params: any;
@@ -54,7 +49,7 @@ declare namespace Treaty {
54
49
  query?: Record<string, unknown>;
55
50
  } : {
56
51
  query: Query;
57
- }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : never : CreateParams<Route[K]>;
52
+ }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : CreateParams<Route[K]>;
58
53
  };
59
54
  type CreateParams<Route extends Record<string, any>> = Extract<keyof Route, `:${string}`> extends infer Path extends string ? IsNever<Path> extends true ? Prettify<Sign<Route>> : // ! DO NOT USE PRETTIFY ON THIS LINE, OTHERWISE FUNCTION CALLING WILL BE OMITTED
60
55
  (((params: {
@@ -69,7 +64,9 @@ declare namespace Treaty {
69
64
  keepDomain?: boolean;
70
65
  }
71
66
  export type TreatyResponse<Res extends Record<number, unknown>> = {
72
- data: Res[200];
67
+ data: Res[200] extends {
68
+ [ELYSIA_FORM_DATA]: infer Data;
69
+ } ? Data : Res[200];
73
70
  error: null;
74
71
  response: Response;
75
72
  status: number;
@@ -82,7 +79,9 @@ declare namespace Treaty {
82
79
  } : {
83
80
  [Status in keyof Res]: {
84
81
  status: Status;
85
- value: Res[Status];
82
+ value: Res[Status] extends {
83
+ [ELYSIA_FORM_DATA]: infer Data;
84
+ } ? Data : Res[Status];
86
85
  };
87
86
  }[Exclude<keyof Res, 200>];
88
87
  response: Response;
@@ -94,6 +93,11 @@ declare namespace Treaty {
94
93
  rawData: MessageEvent['data'];
95
94
  }
96
95
  export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
96
+ type MaybeFunction<T> = T | ((...a: any) => T);
97
+ type UnwrapMaybeFunction<T> = T extends (...a: any) => infer R ? R : T;
98
+ type MaybePromise<T> = T | Promise<T>;
99
+ export type Data<Response extends MaybeFunction<MaybePromise<Treaty.TreatyResponse<{}>>>> = NonNullable<Awaited<UnwrapMaybeFunction<Response>>['data']>;
100
+ export type Error<Response extends MaybeFunction<MaybePromise<Treaty.TreatyResponse<{}>>>> = NonNullable<Awaited<UnwrapMaybeFunction<Response>>['error']>;
97
101
  export { };
98
102
  }
99
103
 
@@ -1 +1,4 @@
1
- "use strict";var Eden=(()=>{var M=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var n in t)M(e,n,{get:t[n],enumerable:!0})},B=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of U(t))!V.call(e,o)&&o!==n&&M(e,o,{get:()=>t[o],enumerable:!(s=H(t,o))||s.enumerable});return e};var Z=e=>B(M({},"__esModule",{value:!0}),e);var re={};$(re,{streamResponse:()=>J,treaty:()=>se});var k=class extends Error{constructor(n,s){super(s+"");this.status=n;this.value=s}};var G=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,z=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,Q=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,X=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),K=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(G.test(t)||z.test(t)||Q.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},Y=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},ee=e=>JSON.parse(e,(t,n)=>{let s=K(n);return s||n}),T=e=>{if(!e)return e;if(X(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=K(e);if(t)return t;if(Y(e))try{return ee(e)}catch{}return e},D=e=>{let t=e.data.toString();return t==="null"?null:T(t)};var R=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,s){return this.addEventListener(t,n,s)}off(t,n,s){return this.ws.removeEventListener(t,n,s),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,s){return this.ws.addEventListener(t,o=>{if(t==="message"){let f=D(o);n({...o,data:f})}else n(o)},s),this}removeEventListener(t,n,s){return this.off(t,n,s),this}close(){return this.ws.close(),this}};var te=["get","post","put","delete","patch","options","head","connect","subscribe"],I=["localhost","127.0.0.1","0.0.0.0"],j=typeof FileList>"u",q=e=>j?e instanceof Blob:e instanceof FileList||e instanceof File,ne=e=>{if(!e)return!1;for(let t in e)if(q(e[t])||Array.isArray(e[t])&&e[t].find(q))return!0;return!1},W=e=>j?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let s=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(s)},n.readAsArrayBuffer(e)}),w=(e,t,n={},s={})=>{if(Array.isArray(e)){for(let o of e)if(!Array.isArray(o))s=w(o,t,n,s);else{let f=o[0];if(typeof f=="string")s[f.toLowerCase()]=o[1];else for(let[i,b]of f)s[i.toLowerCase()]=b}return s}if(!e)return s;switch(typeof e){case"function":if(e instanceof Headers)return w(e,t,n,s);let o=e(t,n);return o?w(o,t,n,s):s;case"object":if(e instanceof Headers)return e.forEach((f,i)=>{s[i.toLowerCase()]=f}),s;for(let[f,i]of Object.entries(e))s[f.toLowerCase()]=i;return s;default:return s}};async function*J(e){let t=e.body;if(!t)return;let n=t.getReader(),s=new TextDecoder;try{for(;;){let{done:o,value:f}=await n.read();if(o)break;let i=s.decode(f);yield T(i)}}finally{n.releaseLock()}}var x=(e,t,n=[],s)=>new Proxy(()=>{},{get(o,f){return x(e,t,f==="index"?n:[...n,f],s)},apply(o,f,[i,b]){if(!i||b||typeof i=="object"&&Object.keys(i).length!==1||te.includes(n.at(-1))){let C=[...n],E=C.pop(),h="/"+C.join("/"),{fetcher:P=fetch,headers:O,onRequest:y,onResponse:v,fetch:_}=t,S=E==="get"||E==="head"||E==="subscribe";O=w(O,h,b);let N=S?i?.query:b?.query,L="";if(N){let r=(g,d)=>{L+=(L?"&":"?")+`${encodeURIComponent(g)}=${encodeURIComponent(d)}`};for(let[g,d]of Object.entries(N)){if(Array.isArray(d)){for(let c of d)r(g,c);continue}if(d!=null){if(typeof d=="object"){r(g,JSON.stringify(d));continue}r(g,`${d}`)}}}if(E==="subscribe"){let r=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||I.find(g=>e.includes(g))?"ws://":"wss://")+h+L;return new R(r)}return(async()=>{let r={method:E?.toUpperCase(),body:i,..._,headers:O};r.headers={...O,...w(S?i?.headers:b?.headers,h,r)};let g=S&&typeof i=="object"?i.fetch:b?.fetch;if(r={...r,...g},S&&delete r.body,y){Array.isArray(y)||(y=[y]);for(let u of y){let a=await u(h,r);typeof a=="object"&&(r={...r,...a,headers:{...r.headers,...w(a.headers,h,r)}})}}if(S&&delete r.body,ne(i)){let u=new FormData;for(let[a,p]of Object.entries(r.body)){if(Array.isArray(p)){for(let m=0;m<p.length;m++){let F=p[m];u.append(a,F instanceof File?await W(F):F)}continue}if(j){u.append(a,p);continue}if(p instanceof File){u.append(a,await W(p));continue}if(p instanceof FileList){for(let m=0;m<p.length;m++)u.append(a,await W(p[m]));continue}u.append(a,p)}r.body=u}else typeof i=="object"?(r.headers["content-type"]="application/json",r.body=JSON.stringify(i)):i!=null&&(r.headers["content-type"]="text/plain");if(S&&delete r.body,y){Array.isArray(y)||(y=[y]);for(let u of y){let a=await u(h,r);typeof a=="object"&&(r={...r,...a,headers:{...r.headers,...w(a.headers,h,r)}})}}let d=e+h+L,c=await(s?.handle(new Request(d,r))??P(d,r)),l=null,A=null;if(v){Array.isArray(v)||(v=[v]);for(let u of v)try{let a=await u(c.clone());if(a!=null){l=a;break}}catch(a){a instanceof k?A=a:A=new k(422,a);break}}if(l!==null)return{data:l,error:A,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":l=J(c);break;case"application/json":l=await c.json();break;case"application/octet-stream":l=await c.arrayBuffer();break;case"multipart/form-data":let u=await c.formData();l={},u.forEach((a,p)=>{l[p]=a});break;default:l=await c.text().then(T)}return(c.status>=300||c.status<200)&&(A=new k(c.status,l),l=null),{data:l,error:A,response:c,status:c.status,headers:c.headers}})()}return typeof i=="object"?x(e,t,[...n,Object.values(i)[0]],s):x(e,t,n)}}),se=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(I.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),x(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),x("http://e.ly",t,[],e));return Z(re);})();
1
+ "use strict";var Eden=(()=>{var M=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var n in t)M(e,n,{get:t[n],enumerable:!0})},B=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of U(t))!V.call(e,a)&&a!==n&&M(e,a,{get:()=>t[a],enumerable:!(r=H(t,a))||r.enumerable});return e};var Z=e=>B(M({},"__esModule",{value:!0}),e);var ie={};$(ie,{streamResponse:()=>J,treaty:()=>se});var k=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var G=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,z=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,Q=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,X=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),T=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(G.test(t)||z.test(t)||Q.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},Y=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},ee=e=>JSON.parse(e,(t,n)=>{let r=T(n);return r||n}),x=e=>{if(!e)return e;if(X(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=T(e);if(t)return t;if(Y(e))try{return ee(e)}catch{}return e},D=e=>{let t=e.data.toString();return t==="null"?null:x(t)};var W=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,a=>{if(t==="message"){let c=D(a);n({...a,data:c})}else n(a)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var te=["get","post","put","delete","patch","options","head","connect","subscribe"],I=["localhost","127.0.0.1","0.0.0.0"],N=typeof FileList>"u",q=e=>N?e instanceof Blob:e instanceof FileList||e instanceof File,ne=e=>{if(!e)return!1;for(let t in e)if(q(e[t])||Array.isArray(e[t])&&e[t].find(q))return!0;return!1},j=e=>N?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),S=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let a of e)if(!Array.isArray(a))r=S(a,t,n,r);else{let c=a[0];if(typeof c=="string")r[c.toLowerCase()]=a[1];else for(let[i,h]of c)r[i.toLowerCase()]=h}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return S(e,t,n,r);let a=e(t,n);return a?S(a,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((c,i)=>{r[i.toLowerCase()]=c}),r;for(let[c,i]of Object.entries(e))r[c.toLowerCase()]=i;return r;default:return r}};async function*J(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder;try{for(;;){let{done:a,value:c}=await n.read();if(a)break;let i=typeof c=="string"?c:r.decode(c);i.endsWith(`
2
+
3
+ `)?yield re(i):yield x(i)}}finally{n.releaseLock()}}var re=e=>{let t=e.split(`
4
+ `),n={};for(let r of t){let a=r.indexOf(":");if(a>0){let c=r.slice(0,a).trim(),i=r.slice(a+1).trim();n[c]=x(i)}}return n},O=(e,t,n=[],r)=>new Proxy(()=>{},{get(a,c){return O(e,t,c==="index"?n:[...n,c],r)},apply(a,c,[i,h]){if(!i||h||typeof i=="object"&&Object.keys(i).length!==1||te.includes(n.at(-1))){let C=[...n],E=C.pop(),m="/"+C.join("/"),{fetcher:P=fetch,headers:L,onRequest:y,onResponse:v,fetch:_}=t,w=E==="get"||E==="head"||E==="subscribe";L=S(L,m,h);let K=w?i?.query:h?.query,R="";if(K){let s=(b,l)=>{R+=(R?"&":"?")+`${encodeURIComponent(b)}=${encodeURIComponent(l)}`};for(let[b,l]of Object.entries(K)){if(Array.isArray(l)){for(let f of l)s(b,f);continue}if(l!=null){if(typeof l=="object"){s(b,JSON.stringify(l));continue}s(b,`${l}`)}}}if(E==="subscribe"){let s=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||I.find(b=>e.includes(b))?"ws://":"wss://")+m+R;return new W(s)}return(async()=>{let s={method:E?.toUpperCase(),body:i,..._,headers:L};s.headers={...L,...S(w?i?.headers:h?.headers,m,s)};let b=w&&typeof i=="object"?i.fetch:h?.fetch;if(s={...s,...b},w&&delete s.body,y){Array.isArray(y)||(y=[y]);for(let u of y){let o=await u(m,s);typeof o=="object"&&(s={...s,...o,headers:{...s.headers,...S(o.headers,m,s)}})}}if(w&&delete s.body,ne(i)){let u=new FormData;for(let[o,d]of Object.entries(s.body)){if(Array.isArray(d)){for(let g=0;g<d.length;g++){let F=d[g];u.append(o,F instanceof File?await j(F):F)}continue}if(N){u.append(o,d);continue}if(d instanceof File){u.append(o,await j(d));continue}if(d instanceof FileList){for(let g=0;g<d.length;g++)u.append(o,await j(d[g]));continue}u.append(o,d)}s.body=u}else typeof i=="object"?(s.headers["content-type"]="application/json",s.body=JSON.stringify(i)):i!=null&&(s.headers["content-type"]="text/plain");if(w&&delete s.body,y){Array.isArray(y)||(y=[y]);for(let u of y){let o=await u(m,s);typeof o=="object"&&(s={...s,...o,headers:{...s.headers,...S(o.headers,m,s)}})}}h?.headers?.["content-type"]&&(s.headers["content-type"]=h?.headers["content-type"]);let l=e+m+R,f=await(r?.handle(new Request(l,s))??P(l,s)),p=null,A=null;if(v){Array.isArray(v)||(v=[v]);for(let u of v)try{let o=await u(f.clone());if(o!=null){p=o;break}}catch(o){o instanceof k?A=o:A=new k(422,o);break}}if(p!==null)return{data:p,error:A,response:f,status:f.status,headers:f.headers};switch(f.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":p=J(f);break;case"application/json":p=JSON.parse(await f.text(),(o,d)=>{if(typeof d!="string")return d;let g=T(d);return g||d});break;case"application/octet-stream":p=await f.arrayBuffer();break;case"multipart/form-data":let u=await f.formData();p={},u.forEach((o,d)=>{p[d]=o});break;default:p=await f.text().then(x)}return(f.status>=300||f.status<200)&&(A=new k(f.status,p),p=null),{data:p,error:A,response:f,status:f.status,headers:f.headers}})()}return typeof i=="object"?O(e,t,[...n,Object.values(i)[0]],r):O(e,t,n)}}),se=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(I.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),O(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),O("http://e.ly",t,[],e));return Z(ie);})();
package/dist/treaty2.js CHANGED
@@ -1 +1,4 @@
1
- "use strict";var M=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var n in t)M(e,n,{get:t[n],enumerable:!0})},B=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of U(t))!V.call(e,o)&&o!==n&&M(e,o,{get:()=>t[o],enumerable:!(s=H(t,o))||s.enumerable});return e};var Z=e=>B(M({},"__esModule",{value:!0}),e);var re={};$(re,{streamResponse:()=>J,treaty:()=>se});module.exports=Z(re);var k=class extends Error{constructor(n,s){super(s+"");this.status=n;this.value=s}};var G=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,z=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,Q=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,X=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),K=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(G.test(t)||z.test(t)||Q.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},Y=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},ee=e=>JSON.parse(e,(t,n)=>{let s=K(n);return s||n}),T=e=>{if(!e)return e;if(X(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=K(e);if(t)return t;if(Y(e))try{return ee(e)}catch{}return e},D=e=>{let t=e.data.toString();return t==="null"?null:T(t)};var R=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,s){return this.addEventListener(t,n,s)}off(t,n,s){return this.ws.removeEventListener(t,n,s),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,s){return this.ws.addEventListener(t,o=>{if(t==="message"){let f=D(o);n({...o,data:f})}else n(o)},s),this}removeEventListener(t,n,s){return this.off(t,n,s),this}close(){return this.ws.close(),this}};var te=["get","post","put","delete","patch","options","head","connect","subscribe"],I=["localhost","127.0.0.1","0.0.0.0"],j=typeof FileList>"u",q=e=>j?e instanceof Blob:e instanceof FileList||e instanceof File,ne=e=>{if(!e)return!1;for(let t in e)if(q(e[t])||Array.isArray(e[t])&&e[t].find(q))return!0;return!1},W=e=>j?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let s=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(s)},n.readAsArrayBuffer(e)}),w=(e,t,n={},s={})=>{if(Array.isArray(e)){for(let o of e)if(!Array.isArray(o))s=w(o,t,n,s);else{let f=o[0];if(typeof f=="string")s[f.toLowerCase()]=o[1];else for(let[i,b]of f)s[i.toLowerCase()]=b}return s}if(!e)return s;switch(typeof e){case"function":if(e instanceof Headers)return w(e,t,n,s);let o=e(t,n);return o?w(o,t,n,s):s;case"object":if(e instanceof Headers)return e.forEach((f,i)=>{s[i.toLowerCase()]=f}),s;for(let[f,i]of Object.entries(e))s[f.toLowerCase()]=i;return s;default:return s}};async function*J(e){let t=e.body;if(!t)return;let n=t.getReader(),s=new TextDecoder;try{for(;;){let{done:o,value:f}=await n.read();if(o)break;let i=s.decode(f);yield T(i)}}finally{n.releaseLock()}}var x=(e,t,n=[],s)=>new Proxy(()=>{},{get(o,f){return x(e,t,f==="index"?n:[...n,f],s)},apply(o,f,[i,b]){if(!i||b||typeof i=="object"&&Object.keys(i).length!==1||te.includes(n.at(-1))){let C=[...n],E=C.pop(),h="/"+C.join("/"),{fetcher:P=fetch,headers:O,onRequest:y,onResponse:v,fetch:_}=t,S=E==="get"||E==="head"||E==="subscribe";O=w(O,h,b);let N=S?i?.query:b?.query,L="";if(N){let r=(g,d)=>{L+=(L?"&":"?")+`${encodeURIComponent(g)}=${encodeURIComponent(d)}`};for(let[g,d]of Object.entries(N)){if(Array.isArray(d)){for(let c of d)r(g,c);continue}if(d!=null){if(typeof d=="object"){r(g,JSON.stringify(d));continue}r(g,`${d}`)}}}if(E==="subscribe"){let r=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||I.find(g=>e.includes(g))?"ws://":"wss://")+h+L;return new R(r)}return(async()=>{let r={method:E?.toUpperCase(),body:i,..._,headers:O};r.headers={...O,...w(S?i?.headers:b?.headers,h,r)};let g=S&&typeof i=="object"?i.fetch:b?.fetch;if(r={...r,...g},S&&delete r.body,y){Array.isArray(y)||(y=[y]);for(let u of y){let a=await u(h,r);typeof a=="object"&&(r={...r,...a,headers:{...r.headers,...w(a.headers,h,r)}})}}if(S&&delete r.body,ne(i)){let u=new FormData;for(let[a,p]of Object.entries(r.body)){if(Array.isArray(p)){for(let m=0;m<p.length;m++){let F=p[m];u.append(a,F instanceof File?await W(F):F)}continue}if(j){u.append(a,p);continue}if(p instanceof File){u.append(a,await W(p));continue}if(p instanceof FileList){for(let m=0;m<p.length;m++)u.append(a,await W(p[m]));continue}u.append(a,p)}r.body=u}else typeof i=="object"?(r.headers["content-type"]="application/json",r.body=JSON.stringify(i)):i!=null&&(r.headers["content-type"]="text/plain");if(S&&delete r.body,y){Array.isArray(y)||(y=[y]);for(let u of y){let a=await u(h,r);typeof a=="object"&&(r={...r,...a,headers:{...r.headers,...w(a.headers,h,r)}})}}let d=e+h+L,c=await(s?.handle(new Request(d,r))??P(d,r)),l=null,A=null;if(v){Array.isArray(v)||(v=[v]);for(let u of v)try{let a=await u(c.clone());if(a!=null){l=a;break}}catch(a){a instanceof k?A=a:A=new k(422,a);break}}if(l!==null)return{data:l,error:A,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":l=J(c);break;case"application/json":l=await c.json();break;case"application/octet-stream":l=await c.arrayBuffer();break;case"multipart/form-data":let u=await c.formData();l={},u.forEach((a,p)=>{l[p]=a});break;default:l=await c.text().then(T)}return(c.status>=300||c.status<200)&&(A=new k(c.status,l),l=null),{data:l,error:A,response:c,status:c.status,headers:c.headers}})()}return typeof i=="object"?x(e,t,[...n,Object.values(i)[0]],s):x(e,t,n)}}),se=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(I.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),x(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),x("http://e.ly",t,[],e));0&&(module.exports={streamResponse,treaty});
1
+ "use strict";var M=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var n in t)M(e,n,{get:t[n],enumerable:!0})},B=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of U(t))!V.call(e,a)&&a!==n&&M(e,a,{get:()=>t[a],enumerable:!(r=H(t,a))||r.enumerable});return e};var Z=e=>B(M({},"__esModule",{value:!0}),e);var ie={};$(ie,{streamResponse:()=>J,treaty:()=>se});module.exports=Z(ie);var k=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var G=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,z=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,Q=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,X=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),T=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(G.test(t)||z.test(t)||Q.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},Y=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},ee=e=>JSON.parse(e,(t,n)=>{let r=T(n);return r||n}),x=e=>{if(!e)return e;if(X(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=T(e);if(t)return t;if(Y(e))try{return ee(e)}catch{}return e},D=e=>{let t=e.data.toString();return t==="null"?null:x(t)};var W=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,a=>{if(t==="message"){let c=D(a);n({...a,data:c})}else n(a)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var te=["get","post","put","delete","patch","options","head","connect","subscribe"],I=["localhost","127.0.0.1","0.0.0.0"],N=typeof FileList>"u",q=e=>N?e instanceof Blob:e instanceof FileList||e instanceof File,ne=e=>{if(!e)return!1;for(let t in e)if(q(e[t])||Array.isArray(e[t])&&e[t].find(q))return!0;return!1},j=e=>N?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),S=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let a of e)if(!Array.isArray(a))r=S(a,t,n,r);else{let c=a[0];if(typeof c=="string")r[c.toLowerCase()]=a[1];else for(let[i,h]of c)r[i.toLowerCase()]=h}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return S(e,t,n,r);let a=e(t,n);return a?S(a,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((c,i)=>{r[i.toLowerCase()]=c}),r;for(let[c,i]of Object.entries(e))r[c.toLowerCase()]=i;return r;default:return r}};async function*J(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder;try{for(;;){let{done:a,value:c}=await n.read();if(a)break;let i=typeof c=="string"?c:r.decode(c);i.endsWith(`
2
+
3
+ `)?yield re(i):yield x(i)}}finally{n.releaseLock()}}var re=e=>{let t=e.split(`
4
+ `),n={};for(let r of t){let a=r.indexOf(":");if(a>0){let c=r.slice(0,a).trim(),i=r.slice(a+1).trim();n[c]=x(i)}}return n},O=(e,t,n=[],r)=>new Proxy(()=>{},{get(a,c){return O(e,t,c==="index"?n:[...n,c],r)},apply(a,c,[i,h]){if(!i||h||typeof i=="object"&&Object.keys(i).length!==1||te.includes(n.at(-1))){let C=[...n],E=C.pop(),m="/"+C.join("/"),{fetcher:P=fetch,headers:L,onRequest:y,onResponse:v,fetch:_}=t,w=E==="get"||E==="head"||E==="subscribe";L=S(L,m,h);let K=w?i?.query:h?.query,R="";if(K){let s=(b,l)=>{R+=(R?"&":"?")+`${encodeURIComponent(b)}=${encodeURIComponent(l)}`};for(let[b,l]of Object.entries(K)){if(Array.isArray(l)){for(let f of l)s(b,f);continue}if(l!=null){if(typeof l=="object"){s(b,JSON.stringify(l));continue}s(b,`${l}`)}}}if(E==="subscribe"){let s=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||I.find(b=>e.includes(b))?"ws://":"wss://")+m+R;return new W(s)}return(async()=>{let s={method:E?.toUpperCase(),body:i,..._,headers:L};s.headers={...L,...S(w?i?.headers:h?.headers,m,s)};let b=w&&typeof i=="object"?i.fetch:h?.fetch;if(s={...s,...b},w&&delete s.body,y){Array.isArray(y)||(y=[y]);for(let u of y){let o=await u(m,s);typeof o=="object"&&(s={...s,...o,headers:{...s.headers,...S(o.headers,m,s)}})}}if(w&&delete s.body,ne(i)){let u=new FormData;for(let[o,d]of Object.entries(s.body)){if(Array.isArray(d)){for(let g=0;g<d.length;g++){let F=d[g];u.append(o,F instanceof File?await j(F):F)}continue}if(N){u.append(o,d);continue}if(d instanceof File){u.append(o,await j(d));continue}if(d instanceof FileList){for(let g=0;g<d.length;g++)u.append(o,await j(d[g]));continue}u.append(o,d)}s.body=u}else typeof i=="object"?(s.headers["content-type"]="application/json",s.body=JSON.stringify(i)):i!=null&&(s.headers["content-type"]="text/plain");if(w&&delete s.body,y){Array.isArray(y)||(y=[y]);for(let u of y){let o=await u(m,s);typeof o=="object"&&(s={...s,...o,headers:{...s.headers,...S(o.headers,m,s)}})}}h?.headers?.["content-type"]&&(s.headers["content-type"]=h?.headers["content-type"]);let l=e+m+R,f=await(r?.handle(new Request(l,s))??P(l,s)),p=null,A=null;if(v){Array.isArray(v)||(v=[v]);for(let u of v)try{let o=await u(f.clone());if(o!=null){p=o;break}}catch(o){o instanceof k?A=o:A=new k(422,o);break}}if(p!==null)return{data:p,error:A,response:f,status:f.status,headers:f.headers};switch(f.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":p=J(f);break;case"application/json":p=JSON.parse(await f.text(),(o,d)=>{if(typeof d!="string")return d;let g=T(d);return g||d});break;case"application/octet-stream":p=await f.arrayBuffer();break;case"multipart/form-data":let u=await f.formData();p={},u.forEach((o,d)=>{p[d]=o});break;default:p=await f.text().then(x)}return(f.status>=300||f.status<200)&&(A=new k(f.status,p),p=null),{data:p,error:A,response:f,status:f.status,headers:f.headers}})()}return typeof i=="object"?O(e,t,[...n,Object.values(i)[0]],r):O(e,t,n)}}),se=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(I.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),O(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),O("http://e.ly",t,[],e));0&&(module.exports={streamResponse,treaty});
package/dist/treaty2.mjs CHANGED
@@ -1 +1 @@
1
- import{a,b}from"./chunk-EO5XYDPY.mjs";import"./chunk-XYW4OUFN.mjs";export{a as streamResponse,b as treaty};
1
+ import{a,b}from"./chunk-CETCWXWZ.mjs";import"./chunk-QSLHAOSM.mjs";export{a as streamResponse,b as treaty};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elysiajs/eden",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "description": "Fully type-safe Elysia client",
5
5
  "author": {
6
6
  "name": "saltyAom",
@@ -53,20 +53,20 @@
53
53
  "release": "npm run build && npm run test && npm publish --access public"
54
54
  },
55
55
  "peerDependencies": {
56
- "elysia": ">= 1.3.0"
56
+ "elysia": ">= 1.3.18"
57
57
  },
58
58
  "devDependencies": {
59
- "@elysiajs/cors": "1.3.0",
60
- "@types/bun": "^1.2.10",
61
- "@types/node": "^20.17.0",
62
- "elysia": "1.3.0",
63
- "esbuild": "^0.19.3",
64
- "eslint": "^8.26.0",
65
- "expect-type": "^1.1.0",
66
- "rimraf": "^4.4.1",
67
- "tsup": "^8.3.5",
68
- "typescript": "^5.7.2",
69
- "vite": "^6.0.5"
59
+ "@elysiajs/cors": "1.3.3",
60
+ "@types/bun": "^1.2.20",
61
+ "@types/node": "^24.3.0",
62
+ "elysia": "1.3.18",
63
+ "esbuild": "^0.25.9",
64
+ "eslint": "^9.34.0",
65
+ "expect-type": "^1.2.2",
66
+ "rimraf": "^6.0.1",
67
+ "tsup": "^8.5.0",
68
+ "typescript": "^5.9.2",
69
+ "vite": "^7.1.3"
70
70
  },
71
71
  "prettier": {
72
72
  "semi": false,
@@ -1 +0,0 @@
1
- import{a as x,b as O,c as M}from"./chunk-XYW4OUFN.mjs";var W=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,s){return this.addEventListener(t,n,s)}off(t,n,s){return this.ws.removeEventListener(t,n,s),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,s){return this.ws.addEventListener(t,c=>{if(t==="message"){let f=M(c);n({...c,data:f})}else n(c)},s),this}removeEventListener(t,n,s){return this.off(t,n,s),this}close(){return this.ws.close(),this}};var N=["get","post","put","delete","patch","options","head","connect","subscribe"],I=["localhost","127.0.0.1","0.0.0.0"],C=typeof FileList>"u",q=e=>C?e instanceof Blob:e instanceof FileList||e instanceof File,P=e=>{if(!e)return!1;for(let t in e)if(q(e[t])||Array.isArray(e[t])&&e[t].find(q))return!0;return!1},j=e=>C?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let s=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(s)},n.readAsArrayBuffer(e)}),b=(e,t,n={},s={})=>{if(Array.isArray(e)){for(let c of e)if(!Array.isArray(c))s=b(c,t,n,s);else{let f=c[0];if(typeof f=="string")s[f.toLowerCase()]=c[1];else for(let[a,w]of f)s[a.toLowerCase()]=w}return s}if(!e)return s;switch(typeof e){case"function":if(e instanceof Headers)return b(e,t,n,s);let c=e(t,n);return c?b(c,t,n,s):s;case"object":if(e instanceof Headers)return e.forEach((f,a)=>{s[a.toLowerCase()]=f}),s;for(let[f,a]of Object.entries(e))s[f.toLowerCase()]=a;return s;default:return s}};async function*U(e){let t=e.body;if(!t)return;let n=t.getReader(),s=new TextDecoder;try{for(;;){let{done:c,value:f}=await n.read();if(c)break;let a=s.decode(f);yield O(a)}}finally{n.releaseLock()}}var A=(e,t,n=[],s)=>new Proxy(()=>{},{get(c,f){return A(e,t,f==="index"?n:[...n,f],s)},apply(c,f,[a,w]){if(!a||w||typeof a=="object"&&Object.keys(a).length!==1||N.includes(n.at(-1))){let K=[...n],k=K.pop(),g="/"+K.join("/"),{fetcher:D=fetch,headers:L,onRequest:d,onResponse:E,fetch:H}=t,m=k==="get"||k==="head"||k==="subscribe";L=b(L,g,w);let T=m?a?.query:w?.query,R="";if(T){let r=(h,l)=>{R+=(R?"&":"?")+`${encodeURIComponent(h)}=${encodeURIComponent(l)}`};for(let[h,l]of Object.entries(T)){if(Array.isArray(l)){for(let o of l)r(h,o);continue}if(l!=null){if(typeof l=="object"){r(h,JSON.stringify(l));continue}r(h,`${l}`)}}}if(k==="subscribe"){let r=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||I.find(h=>e.includes(h))?"ws://":"wss://")+g+R;return new W(r)}return(async()=>{let r={method:k?.toUpperCase(),body:a,...H,headers:L};r.headers={...L,...b(m?a?.headers:w?.headers,g,r)};let h=m&&typeof a=="object"?a.fetch:w?.fetch;if(r={...r,...h},m&&delete r.body,d){Array.isArray(d)||(d=[d]);for(let y of d){let i=await y(g,r);typeof i=="object"&&(r={...r,...i,headers:{...r.headers,...b(i.headers,g,r)}})}}if(m&&delete r.body,P(a)){let y=new FormData;for(let[i,p]of Object.entries(r.body)){if(Array.isArray(p)){for(let v=0;v<p.length;v++){let F=p[v];y.append(i,F instanceof File?await j(F):F)}continue}if(C){y.append(i,p);continue}if(p instanceof File){y.append(i,await j(p));continue}if(p instanceof FileList){for(let v=0;v<p.length;v++)y.append(i,await j(p[v]));continue}y.append(i,p)}r.body=y}else typeof a=="object"?(r.headers["content-type"]="application/json",r.body=JSON.stringify(a)):a!=null&&(r.headers["content-type"]="text/plain");if(m&&delete r.body,d){Array.isArray(d)||(d=[d]);for(let y of d){let i=await y(g,r);typeof i=="object"&&(r={...r,...i,headers:{...r.headers,...b(i.headers,g,r)}})}}let l=e+g+R,o=await(s?.handle(new Request(l,r))??D(l,r)),u=null,S=null;if(E){Array.isArray(E)||(E=[E]);for(let y of E)try{let i=await y(o.clone());if(i!=null){u=i;break}}catch(i){i instanceof x?S=i:S=new x(422,i);break}}if(u!==null)return{data:u,error:S,response:o,status:o.status,headers:o.headers};switch(o.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":u=U(o);break;case"application/json":u=await o.json();break;case"application/octet-stream":u=await o.arrayBuffer();break;case"multipart/form-data":let y=await o.formData();u={},y.forEach((i,p)=>{u[p]=i});break;default:u=await o.text().then(O)}return(o.status>=300||o.status<200)&&(S=new x(o.status,u),u=null),{data:u,error:S,response:o,status:o.status,headers:o.headers}})()}return typeof a=="object"?A(e,t,[...n,Object.values(a)[0]],s):A(e,t,n)}}),V=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(I.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),A(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),A("http://e.ly",t,[],e));export{U as a,V as b};