@elysiajs/eden 1.4.4 → 1.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fetch.js CHANGED
@@ -1 +1 @@
1
- "use strict";var f=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var j=(t,e)=>{for(var r in e)f(t,r,{get:e[r],enumerable:!0})},F=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of N(e))!b.call(t,s)&&s!==r&&f(t,s,{get:()=>e[s],enumerable:!(n=T(e,s))||n.enumerable});return t};var O=t=>F(f({},"__esModule",{value:!0}),t);var V={};j(V,{edenFetch:()=>U});module.exports=O(V);var o=class extends Error{constructor(r,n){super(n+"");this.status=r;this.value=n}};var w=/(\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))/,D=/(?: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\([^)]+\)/,A=/^(?:(?:(?:(?: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)?)?$/,M=t=>t.trim().length!==0&&!Number.isNaN(Number(t)),g=t=>{if(typeof t!="string")return null;let e=t.replace(/"/g,"");if(w.test(e)||D.test(e)||A.test(e)){let r=new Date(e);if(!Number.isNaN(r.getTime()))return r}return null},C=t=>{let e=t.charCodeAt(0),r=t.charCodeAt(t.length-1);return e===123&&r===125||e===91&&r===93},R=t=>JSON.parse(t,(e,r)=>{let n=g(r);return n||r}),m=t=>{if(!t)return t;if(M(t))return+t;if(t==="true")return!0;if(t==="false")return!1;let e=g(t);if(e)return e;if(C(t))try{return R(t)}catch{}return t};var $=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 r=await t.formData(),n={};return r.forEach((s,a)=>{n[a]=s}),n}}return t.text().then(m)},J=async(t,e)=>{let r=await $(t);return t.status>300?{data:null,status:t.status,headers:t.headers,retry:e,error:new o(t.status,r)}:{data:r,error:null,status:t.status,headers:t.headers,retry:e}},U=(t,e)=>(r,{query:n,params:s,body:a,...d}={})=>{s&&Object.entries(s).forEach(([i,c])=>{r=r.replace(`:${i}`,c)});let y=e?.fetcher||globalThis.fetch,h=n?Object.fromEntries(Object.entries(n).filter(([i,c])=>c!=null)):null,S=h?`?${new URLSearchParams(h).toString()}`:"",x=`${t}${r}${S}`,u=new Headers(d.headers||{}),p=u.get("content-type");if(!(a instanceof FormData)&&!(a instanceof URLSearchParams)&&(!p||p==="application/json"))try{a=JSON.stringify(a),p||u.set("content-type","application/json")}catch{}let E={...d,method:d.method?.toUpperCase()||"GET",headers:u,body:a},l=()=>y(x,E).then(i=>J(i,l));return l()};0&&(module.exports={edenFetch});
1
+ "use strict";var h=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var j=(t,e)=>{for(var r in e)h(t,r,{get:e[r],enumerable:!0})},w=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of N(e))!b.call(t,s)&&s!==r&&h(t,s,{get:()=>e[s],enumerable:!(n=T(e,s))||n.enumerable});return t};var F=t=>w(h({},"__esModule",{value:!0}),t);var V={};j(V,{edenFetch:()=>U});module.exports=F(V);var i=class extends Error{constructor(r,n){super(n+"");this.status=r;this.value=n}};var O=/(\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))/,D=/(?: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\([^)]+\)/,A=/^(?:(?:(?:(?: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)?)?$/,M=t=>t.trim().length!==0&&!Number.isNaN(Number(t)),y=t=>{if(typeof t!="string")return null;let e=t.replace(/"/g,"");if(O.test(e)||D.test(e)||A.test(e)){let r=new Date(e);if(!Number.isNaN(r.getTime()))return r}return null},C=t=>{let e=t.charCodeAt(0),r=t.charCodeAt(t.length-1);return e===123&&r===125||e===91&&r===93},R=t=>JSON.parse(t,(e,r)=>{let n=y(r);return n||r}),g=t=>{if(!t)return t;if(M(t))return+t;if(t==="true")return!0;if(t==="false")return!1;let e=y(t);if(e)return e;if(C(t))try{return R(t)}catch{}return t};var $=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 r=await t.formData(),n={};return r.forEach((s,a)=>{n[a]=s}),n}}return t.text().then(g)},J=async(t,e)=>{let r=await $(t);return t.status>300?{data:null,status:t.status,headers:t.headers,retry:e,error:new i(t.status,r)}:{data:r,error:null,status:t.status,headers:t.headers,retry:e}},U=(t,e)=>(r,{query:n,params:s,body:a,...d}={})=>{s&&Object.entries(s).forEach(([c,o])=>{r=r.replace(`:${c}`,o)});let m=e?.fetcher||globalThis.fetch,l=n?Object.fromEntries(Object.entries(n).filter(([c,o])=>o!=null)):null,S=l?`?${new URLSearchParams(l).toString()}`:"",x=`${t}${r}${S}`,u=new Headers(d.headers||{}),f=u.get("content-type");if(!(a instanceof FormData)&&!(a instanceof URLSearchParams)&&(!f||f==="application/json"))try{a=JSON.stringify(a),f||u.set("content-type","application/json")}catch{}let E={...d,method:d.method?.toUpperCase()||"GET",headers:u,body:a},p=()=>m(x,E).then(c=>J(c,p)).catch(c=>({data:null,error:new i(503,c),status:503,headers:void 0,retry:p}));return p()};0&&(module.exports={edenFetch});
package/dist/fetch.mjs CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-4RPCKTWO.mjs";import"./chunk-QSLHAOSM.mjs";export{a as edenFetch};
1
+ import{a}from"./chunk-VMSCNLL4.mjs";import"./chunk-QSLHAOSM.mjs";export{a as edenFetch};
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { Treaty, treaty } from './treaty2.mjs';
2
2
  export { edenTreaty } from './treaty.mjs';
3
3
  export { edenFetch } from './fetch.mjs';
4
+ export { E as EdenFetchError } from './types-BdHMTa_C.mjs';
4
5
  import 'elysia';
5
- import './types-C41kuZ-K.mjs';
6
+ import 'bun';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { Treaty, treaty } from './treaty2.js';
2
2
  export { edenTreaty } from './treaty.js';
3
3
  export { edenFetch } from './fetch.js';
4
+ export { E as EdenFetchError } from './types-BdHMTa_C.js';
4
5
  import 'elysia';
5
- import './types-C41kuZ-K.js';
6
+ import 'bun';
@@ -1,6 +1,4 @@
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 a of re(t))!se.call(e,a)&&a!==n&&J(e,a,{get:()=>t[a],enumerable:!(r=ne(t,a))||r.enumerable});return e};var oe=e=>ie(J({},"__esModule",{value:!0}),e);var Se={};ae(Se,{edenFetch:()=>te,edenTreaty:()=>ee,treaty:()=>Q});var R=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}),L=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:L(t)};var P=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 s=I(a);n({...a,data:s})}else n(a)},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"],H=typeof FileList>"u",G=e=>H?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=>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)}),M=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let a of e)if(!Array.isArray(a))r=M(a,t,n,r);else{let s=a[0];if(typeof s=="string")r[s.toLowerCase()]=a[1];else for(let[i,y]of s)r[i.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return M(e,t,n,r);let a=e(t,n);return a?M(a,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((s,i)=>{r[i.toLowerCase()]=s}),r;for(let[s,i]of Object.entries(e))r[s.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:a,value:s}=await n.read();if(a)break;let i=typeof s=="string"?s:r.decode(s);i.includes(`
1
+ "use strict";var Eden=(()=>{var U=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var oe=(e,t)=>{for(var n in t)U(e,n,{get:t[n],enumerable:!0})},ce=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ae(t))!ie.call(e,s)&&s!==n&&U(e,s,{get:()=>t[s],enumerable:!(r=se(t,s))||r.enumerable});return e};var fe=e=>ce(U({},"__esModule",{value:!0}),e);var ke={};oe(ke,{EdenFetchError:()=>S,edenFetch:()=>re,edenTreaty:()=>ne,treaty:()=>X});var S=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var de=/(\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))/,ue=/(?: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\([^)]+\)/,ye=/^(?:(?:(?:(?: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)?)?$/,le=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),D=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(de.test(t)||ue.test(t)||ye.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},pe=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},he=e=>JSON.parse(e,(t,n)=>{let r=D(n);return r||n}),$=e=>{if(!e)return e;if(le(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=D(e);if(t)return t;if(pe(e))try{return he(e)}catch{}return e},I=e=>{let t=e.data.toString();return t==="null"?null:$(t)};var P=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=I(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 ge=["get","post","put","delete","patch","options","head","connect","subscribe"],Q=["localhost","127.0.0.1","0.0.0.0"],V=typeof FileList>"u",q=e=>V?e instanceof Blob:e instanceof FileList||e instanceof File,me=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},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)}),C=async(e,t,n={},r={})=>{if(Array.isArray(e)){for(let s of e)if(!Array.isArray(s))r=await C(s,t,n,r);else{let i=s[0];if(typeof i=="string")r[i.toLowerCase()]=s[1];else for(let[a,d]of i)r[a.toLowerCase()]=d}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return C(e,t,n,r);let s=await e(t,n);return s?C(s,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((i,a)=>{r[a.toLowerCase()]=i}),r;for(let[i,a]of Object.entries(e))r[i.toLowerCase()]=a;return r;default:return r}};function z(e){let t=e.split(`
2
+ `),n={};for(let r of t){if(!r||r.startsWith(":"))continue;let s=r.indexOf(":");if(s>0){let i=r.slice(0,s).trim(),a=r.slice(s+1).replace(/^ /,"");n[i]=a&&$(a)}}return Object.keys(n).length>0?n:null}function*Z(e){let t;for(;(t=e.value.indexOf(`
2
3
 
3
- `)?yield*me(i):yield L(i)}}finally{n.releaseLock()}}function*me(e){let t=e.split(`
4
-
5
- `);for(let n of t){if(n.indexOf(":")<=0){n&&(yield L(n));continue}let r=n.split(`
6
- `),a={};for(let s of r){let i=s.indexOf(":");if(i>0){let y=s.slice(0,i).trim(),j=s.slice(i+1).trim();a[y]=L(j)}}yield a}}var K=(e,t,n=[],r)=>new Proxy(()=>{},{get(a,s){return K(e,t,s==="index"?n:[...n,s],r)},apply(a,s,[i,y]){if(!i||y||typeof i=="object"&&Object.keys(i).length!==1||pe.includes(n.at(-1))){let j=[...n],A=j.pop(),w="/"+j.join("/"),{fetcher:k=fetch,headers:T,onRequest:m,onResponse:b,fetch:S}=t,h=A==="get"||A==="head"||A==="subscribe";T=M(T,w,y);let N=h?i?.query:y?.query,x="";if(N){let o=(O,E)=>{x+=(x?"&":"?")+`${encodeURIComponent(O)}=${encodeURIComponent(E)}`};for(let[O,E]of Object.entries(N)){if(Array.isArray(E)){for(let c of E)o(O,c);continue}if(E!=null){if(typeof E=="object"){o(O,JSON.stringify(E));continue}o(O,`${E}`)}}}if(A==="subscribe"){let o=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Z.find(O=>e.includes(O))?"ws://":"wss://")+w+x;return new P(o)}return(async()=>{let o={method:A?.toUpperCase(),body:i,...S,headers:T};o.headers={...T,...M(h?i?.headers:y?.headers,w,o)};let O=h&&typeof i=="object"?i.fetch:y?.fetch;if(o={...o,...O},h&&delete o.body,m){Array.isArray(m)||(m=[m]);for(let u of m){let f=await u(w,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...M(f.headers,w,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 l=0;l<d.length;l++){let v=d[l];u.append(f,v instanceof File?await U(v):v)}continue}if(H){if(Array.isArray(d))for(let l of d)u.append(f,l);else u.append(f,d);continue}if(d instanceof File){u.append(f,await U(d));continue}if(d instanceof FileList){for(let l=0;l<d.length;l++)u.append(f,await U(d[l]));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(w,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...M(f.headers,w,o)}})}}y?.headers?.["content-type"]&&(o.headers["content-type"]=y?.headers["content-type"]);let E=e+w+x,c=await(r?.handle(new Request(E,o))??k(E,o)),g=null,p=null;if(b){Array.isArray(b)||(b=[b]);for(let u of b)try{let f=await u(c.clone());if(f!=null){g=f;break}}catch(f){f instanceof R?p=f:p=new R(422,f);break}}if(g!==null)return{data:g,error:p,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 l=D(d);return l||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(L)}return(c.status>=300||c.status<200)&&(p=new R(c.status,g),g=null),{data:g,error:p,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[a,s]of Object.entries(n))r+=`${a}=${s}&`;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},_=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)}),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,a=>{if(t==="message"){let s=I(a);n({...a,data:s})}else n(a)},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,a,s){return Y(e,`${t}/${a.toString()}`,n)},apply(r,a,[s,i={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:j,$fetch:A,$headers:w,$transform:k,getRaw:T,...m}=s??{};y??=m;let b=t.lastIndexOf("/"),S=t.slice(b+1).toUpperCase(),h=z(e,b===-1?"/":t.slice(0,b),Object.assign(i.query??{},j)),N=n.fetcher??fetch,x=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=k?Array.isArray(k)?k:[k]:void 0;return o&&(x?x=o.concat(x):x=o),S==="SUBSCRIBE"?new B(h.replace(/^([^]+):\/\//,h.startsWith("https://")?"wss://":"ws://")):(async E=>{let c,g={...n.$fetch?.headers,...A?.headers,...i.headers,...w};if(S!=="GET"&&S!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let l=c&&(typeof c=="object"||Array.isArray(y));if(l&&Ee(c)){let $=new FormData;for(let[C,F]of Object.entries(c))if(V)$.append(C,F);else if(F instanceof File)$.append(C,await _(F));else if(F instanceof FileList)for(let W=0;W<F.length;W++)$.append(C,await _(F[W]));else if(Array.isArray(F))for(let W=0;W<F.length;W++){let q=F[W];$.append(C,q instanceof File?await _(q):q)}else $.append(C,F);c=$}else c!=null&&(g["content-type"]=l?"application/json":"text/plain",c=l?JSON.stringify(c):y)}let p=await N(h,{method:S,body:c,...n.$fetch,...i.fetch,...A,headers:g}),u;if(E.getRaw)return p;switch(p.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await p.json();break;default:u=await p.text().then(L)}let f=p.status>=300||p.status<200?new R(p.status,u):null,d={data:u,error:f,response:p,status:p.status,headers:p.headers};if(x)for(let l of x){let v=l(d);v instanceof Promise&&(v=await v),v!=null&&(d=v)}return d})({getRaw:T})}}),ee=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return Y(e,r,t)}});var we=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((a,s)=>{r[s]=a}),r}}return e.text().then(L)},be=async(e,t)=>{let n=await we(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new R(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},te=(e,t)=>(n,{query:r,params:a,body:s,...i}={})=>{a&&Object.entries(a).forEach(([S,h])=>{n=n.replace(`:${S}`,h)});let y=t?.fetcher||globalThis.fetch,j=r?Object.fromEntries(Object.entries(r).filter(([S,h])=>h!=null)):null,A=j?`?${new URLSearchParams(j).toString()}`:"",w=`${e}${n}${A}`,k=new Headers(i.headers||{}),T=k.get("content-type");if(!(s instanceof FormData)&&!(s instanceof URLSearchParams)&&(!T||T==="application/json"))try{s=JSON.stringify(s),T||k.set("content-type","application/json")}catch{}let m={...i,method:i.method?.toUpperCase()||"GET",headers:k,body:s},b=()=>y(w,m).then(S=>be(S,b));return b()};return oe(Se);})();
4
+ `))!==-1;){let n=e.value.slice(0,t);if(e.value=e.value.slice(t+2),n.trim()){let r=z(n);r&&(yield r)}}}async function*we(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder("utf-8"),s={value:""};try{for(;;){let{done:a,value:d}=await n.read();if(a)break;let W=typeof d=="string"?d:r.decode(d,{stream:!0});s.value+=W,yield*Z(s)}let i=r.decode();if(i&&(s.value+=i),yield*Z(s),s.value.trim()){let a=z(s.value);a&&(yield a)}}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,[a,d]){if(!a||d||typeof a=="object"&&Object.keys(a).length!==1||ge.includes(n.at(-1))){let W=[...n],F=W.pop(),A="/"+W.join("/"),{fetcher:R=fetch,headers:j,onRequest:w,onResponse:k,fetch:E}=t,h=F==="get"||F==="head"||F==="subscribe",N=h?a?.query:d?.query,O="";if(N){let o=(L,b)=>{O+=(O?"&":"?")+`${encodeURIComponent(L)}=${encodeURIComponent(b)}`};for(let[L,b]of Object.entries(N)){if(Array.isArray(b)){for(let c of b)o(L,c);continue}if(b!=null){if(typeof b=="object"){o(L,JSON.stringify(b));continue}o(L,`${b}`)}}}if(F==="subscribe"){let o=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Q.find(L=>e.includes(L))?"ws://":"wss://")+A+O;return new P(o)}return(async()=>{j=await C(j,A,d);let o={method:F?.toUpperCase(),body:a,...E,headers:j};o.headers={...j,...await C(h?a?.headers:d?.headers,A,o)};let L=h&&typeof a=="object"?a.fetch:d?.fetch;if(o={...o,...L},h&&delete o.body,w){Array.isArray(w)||(w=[w]);for(let u of w){let y=await u(A,o);typeof y=="object"&&(o={...o,...y,headers:{...o.headers,...await C(y.headers,A,o)}})}}if(h&&delete o.body,me(a)){let u=new FormData,y=f=>{if(typeof f=="string"||q(f))return!1;if(typeof f=="object"){if(f!==null)return!0;if(f instanceof Date)return!1}return!1},m=async f=>f instanceof File?await B(f):y(f)?JSON.stringify(f):f;for(let[f,l]of Object.entries(o.body)){if(Array.isArray(l)){if(l.some(v=>typeof v=="object"&&v!==null&&!q(v)))u.append(f,JSON.stringify(l));else for(let v=0;v<l.length;v++){let T=l[v],M=await m(T);u.append(f,M)}continue}if(V){if(Array.isArray(l))for(let x of l)u.append(f,await m(x));else u.append(f,await m(l));continue}if(l instanceof File){u.append(f,await B(l));continue}if(l instanceof FileList){for(let x=0;x<l.length;x++)u.append(f,await B(l[x]));continue}u.append(f,await m(l))}o.body=u}else typeof a=="object"?(o.headers["content-type"]="application/json",o.body=JSON.stringify(a)):a!=null&&(o.headers["content-type"]="text/plain");if(h&&delete o.body,w){Array.isArray(w)||(w=[w]);for(let u of w){let y=await u(A,o);typeof y=="object"&&(o={...o,...y,headers:{...o.headers,...await C(y.headers,A,o)}})}}d?.headers?.["content-type"]&&(o.headers["content-type"]=d?.headers["content-type"]);let b=e+A+O,c;try{c=await(r?.handle(new Request(b,o))??R(b,o))}catch(u){return{data:null,error:new S(503,u),response:void 0,status:503,headers:void 0}}let g=null,p=null;if(k){Array.isArray(k)||(k=[k]);for(let u of k)try{let y=await u(c.clone());if(y!=null){g=y;break}}catch(y){y instanceof S?p=y:p=new S(422,y);break}}if(g!==null)return{data:g,error:p,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":g=we(c);break;case"application/json":g=JSON.parse(await c.text(),(y,m)=>{if(typeof m!="string")return m;let f=D(m);return f||m});break;case"application/octet-stream":g=await c.arrayBuffer();break;case"multipart/form-data":let u=await c.formData();g={},u.forEach((y,m)=>{g[m]=y});break;default:g=await c.text().then($)}return(c.status>=300||c.status<200)&&(p=new S(c.status,g),g=null),{data:g,error:p,response:c,status:c.status,headers:c.headers}})()}return typeof a=="object"?K(e,t,[...n,Object.values(a)[0]],r):K(e,t,n)}}),X=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(Q.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 Y=(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 G=typeof FileList>"u",ee=e=>G?e instanceof Blob:e instanceof FileList||e instanceof File,Ee=e=>{if(!e)return!1;for(let t in e){if(ee(e[t]))return!0;if(Array.isArray(e[t])&&e[t].find(n=>ee(n)))return!0}return!1},H=e=>G?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)}),_=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=I(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}},te=(e,t="",n)=>new Proxy(()=>{},{get(r,s,i){return te(e,`${t}/${s.toString()}`,n)},apply(r,s,[i,a={}]=[{},{}]){let d=i!==void 0&&(typeof i!="object"||Array.isArray(i))?i:void 0,{$query:W,$fetch:F,$headers:A,$transform:R,getRaw:j,...w}=i??{};d??=w;let k=t.lastIndexOf("/"),E=t.slice(k+1).toUpperCase(),h=Y(e,k===-1?"/":t.slice(0,k),Object.assign(a.query??{},W)),N=n.fetcher??fetch,O=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=R?Array.isArray(R)?R:[R]:void 0;return o&&(O?O=o.concat(O):O=o),E==="SUBSCRIBE"?new _(h.replace(/^([^]+):\/\//,h.startsWith("https://")?"wss://":"ws://")):(async b=>{let c,g={...n.$fetch?.headers,...F?.headers,...a.headers,...A};if(E!=="GET"&&E!=="HEAD"){c=Object.keys(d).length||Array.isArray(d)?d:void 0;let f=c&&(typeof c=="object"||Array.isArray(d));if(f&&Ee(c)){let x=new FormData;for(let[v,T]of Object.entries(c))if(G)x.append(v,T);else if(T instanceof File)x.append(v,await H(T));else if(T instanceof FileList)for(let M=0;M<T.length;M++)x.append(v,await H(T[M]));else if(Array.isArray(T))for(let M=0;M<T.length;M++){let J=T[M];x.append(v,J instanceof File?await H(J):J)}else x.append(v,T);c=x}else c!=null&&(g["content-type"]=f?"application/json":"text/plain",c=f?JSON.stringify(c):d)}let p=await N(h,{method:E,body:c,...n.$fetch,...a.fetch,...F,headers:g}),u;if(b.getRaw)return p;switch(p.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await p.json();break;default:u=await p.text().then($)}let y=p.status>=300||p.status<200?new S(p.status,u):null,m={data:u,error:y,response:p,status:p.status,headers:p.headers};if(O)for(let f of O){let l=f(m);l instanceof Promise&&(l=await l),l!=null&&(m=l)}return m})({getRaw:j})}}),ne=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return te(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,i)=>{r[i]=s}),r}}return e.text().then($)},Se=async(e,t)=>{let n=await be(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new S(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},re=(e,t)=>(n,{query:r,params:s,body:i,...a}={})=>{s&&Object.entries(s).forEach(([E,h])=>{n=n.replace(`:${E}`,h)});let d=t?.fetcher||globalThis.fetch,W=r?Object.fromEntries(Object.entries(r).filter(([E,h])=>h!=null)):null,F=W?`?${new URLSearchParams(W).toString()}`:"",A=`${e}${n}${F}`,R=new Headers(a.headers||{}),j=R.get("content-type");if(!(i instanceof FormData)&&!(i instanceof URLSearchParams)&&(!j||j==="application/json"))try{i=JSON.stringify(i),j||R.set("content-type","application/json")}catch{}let w={...a,method:a.method?.toUpperCase()||"GET",headers:R,body:i},k=()=>d(A,w).then(E=>Se(E,k)).catch(E=>({data:null,error:new S(503,E),status:503,headers:void 0,retry:k}));return k()};return fe(ke);})();
package/dist/index.js CHANGED
@@ -1,6 +1,4 @@
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 a of re(t))!se.call(e,a)&&a!==n&&J(e,a,{get:()=>t[a],enumerable:!(r=ne(t,a))||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 R=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}),L=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:L(t)};var P=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 s=I(a);n({...a,data:s})}else n(a)},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"],H=typeof FileList>"u",G=e=>H?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=>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)}),M=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let a of e)if(!Array.isArray(a))r=M(a,t,n,r);else{let s=a[0];if(typeof s=="string")r[s.toLowerCase()]=a[1];else for(let[i,y]of s)r[i.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return M(e,t,n,r);let a=e(t,n);return a?M(a,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((s,i)=>{r[i.toLowerCase()]=s}),r;for(let[s,i]of Object.entries(e))r[s.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:a,value:s}=await n.read();if(a)break;let i=typeof s=="string"?s:r.decode(s);i.includes(`
1
+ "use strict";var U=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var oe=(e,t)=>{for(var n in t)U(e,n,{get:t[n],enumerable:!0})},ce=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ae(t))!ie.call(e,s)&&s!==n&&U(e,s,{get:()=>t[s],enumerable:!(r=se(t,s))||r.enumerable});return e};var fe=e=>ce(U({},"__esModule",{value:!0}),e);var ke={};oe(ke,{EdenFetchError:()=>S,edenFetch:()=>re,edenTreaty:()=>ne,treaty:()=>X});module.exports=fe(ke);var S=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var de=/(\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))/,ue=/(?: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\([^)]+\)/,ye=/^(?:(?:(?:(?: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)?)?$/,le=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),D=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(de.test(t)||ue.test(t)||ye.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},pe=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},he=e=>JSON.parse(e,(t,n)=>{let r=D(n);return r||n}),$=e=>{if(!e)return e;if(le(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=D(e);if(t)return t;if(pe(e))try{return he(e)}catch{}return e},I=e=>{let t=e.data.toString();return t==="null"?null:$(t)};var P=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=I(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 ge=["get","post","put","delete","patch","options","head","connect","subscribe"],Q=["localhost","127.0.0.1","0.0.0.0"],V=typeof FileList>"u",q=e=>V?e instanceof Blob:e instanceof FileList||e instanceof File,me=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},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)}),C=async(e,t,n={},r={})=>{if(Array.isArray(e)){for(let s of e)if(!Array.isArray(s))r=await C(s,t,n,r);else{let i=s[0];if(typeof i=="string")r[i.toLowerCase()]=s[1];else for(let[a,d]of i)r[a.toLowerCase()]=d}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return C(e,t,n,r);let s=await e(t,n);return s?C(s,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((i,a)=>{r[a.toLowerCase()]=i}),r;for(let[i,a]of Object.entries(e))r[i.toLowerCase()]=a;return r;default:return r}};function z(e){let t=e.split(`
2
+ `),n={};for(let r of t){if(!r||r.startsWith(":"))continue;let s=r.indexOf(":");if(s>0){let i=r.slice(0,s).trim(),a=r.slice(s+1).replace(/^ /,"");n[i]=a&&$(a)}}return Object.keys(n).length>0?n:null}function*Z(e){let t;for(;(t=e.value.indexOf(`
2
3
 
3
- `)?yield*me(i):yield L(i)}}finally{n.releaseLock()}}function*me(e){let t=e.split(`
4
-
5
- `);for(let n of t){if(n.indexOf(":")<=0){n&&(yield L(n));continue}let r=n.split(`
6
- `),a={};for(let s of r){let i=s.indexOf(":");if(i>0){let y=s.slice(0,i).trim(),j=s.slice(i+1).trim();a[y]=L(j)}}yield a}}var K=(e,t,n=[],r)=>new Proxy(()=>{},{get(a,s){return K(e,t,s==="index"?n:[...n,s],r)},apply(a,s,[i,y]){if(!i||y||typeof i=="object"&&Object.keys(i).length!==1||pe.includes(n.at(-1))){let j=[...n],A=j.pop(),w="/"+j.join("/"),{fetcher:k=fetch,headers:T,onRequest:m,onResponse:b,fetch:S}=t,h=A==="get"||A==="head"||A==="subscribe";T=M(T,w,y);let N=h?i?.query:y?.query,x="";if(N){let o=(O,E)=>{x+=(x?"&":"?")+`${encodeURIComponent(O)}=${encodeURIComponent(E)}`};for(let[O,E]of Object.entries(N)){if(Array.isArray(E)){for(let c of E)o(O,c);continue}if(E!=null){if(typeof E=="object"){o(O,JSON.stringify(E));continue}o(O,`${E}`)}}}if(A==="subscribe"){let o=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Z.find(O=>e.includes(O))?"ws://":"wss://")+w+x;return new P(o)}return(async()=>{let o={method:A?.toUpperCase(),body:i,...S,headers:T};o.headers={...T,...M(h?i?.headers:y?.headers,w,o)};let O=h&&typeof i=="object"?i.fetch:y?.fetch;if(o={...o,...O},h&&delete o.body,m){Array.isArray(m)||(m=[m]);for(let u of m){let f=await u(w,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...M(f.headers,w,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 l=0;l<d.length;l++){let v=d[l];u.append(f,v instanceof File?await U(v):v)}continue}if(H){if(Array.isArray(d))for(let l of d)u.append(f,l);else u.append(f,d);continue}if(d instanceof File){u.append(f,await U(d));continue}if(d instanceof FileList){for(let l=0;l<d.length;l++)u.append(f,await U(d[l]));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(w,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...M(f.headers,w,o)}})}}y?.headers?.["content-type"]&&(o.headers["content-type"]=y?.headers["content-type"]);let E=e+w+x,c=await(r?.handle(new Request(E,o))??k(E,o)),g=null,p=null;if(b){Array.isArray(b)||(b=[b]);for(let u of b)try{let f=await u(c.clone());if(f!=null){g=f;break}}catch(f){f instanceof R?p=f:p=new R(422,f);break}}if(g!==null)return{data:g,error:p,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 l=D(d);return l||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(L)}return(c.status>=300||c.status<200)&&(p=new R(c.status,g),g=null),{data:g,error:p,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[a,s]of Object.entries(n))r+=`${a}=${s}&`;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},_=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)}),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,a=>{if(t==="message"){let s=I(a);n({...a,data:s})}else n(a)},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,a,s){return Y(e,`${t}/${a.toString()}`,n)},apply(r,a,[s,i={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:j,$fetch:A,$headers:w,$transform:k,getRaw:T,...m}=s??{};y??=m;let b=t.lastIndexOf("/"),S=t.slice(b+1).toUpperCase(),h=z(e,b===-1?"/":t.slice(0,b),Object.assign(i.query??{},j)),N=n.fetcher??fetch,x=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=k?Array.isArray(k)?k:[k]:void 0;return o&&(x?x=o.concat(x):x=o),S==="SUBSCRIBE"?new B(h.replace(/^([^]+):\/\//,h.startsWith("https://")?"wss://":"ws://")):(async E=>{let c,g={...n.$fetch?.headers,...A?.headers,...i.headers,...w};if(S!=="GET"&&S!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let l=c&&(typeof c=="object"||Array.isArray(y));if(l&&Ee(c)){let $=new FormData;for(let[C,F]of Object.entries(c))if(V)$.append(C,F);else if(F instanceof File)$.append(C,await _(F));else if(F instanceof FileList)for(let W=0;W<F.length;W++)$.append(C,await _(F[W]));else if(Array.isArray(F))for(let W=0;W<F.length;W++){let q=F[W];$.append(C,q instanceof File?await _(q):q)}else $.append(C,F);c=$}else c!=null&&(g["content-type"]=l?"application/json":"text/plain",c=l?JSON.stringify(c):y)}let p=await N(h,{method:S,body:c,...n.$fetch,...i.fetch,...A,headers:g}),u;if(E.getRaw)return p;switch(p.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await p.json();break;default:u=await p.text().then(L)}let f=p.status>=300||p.status<200?new R(p.status,u):null,d={data:u,error:f,response:p,status:p.status,headers:p.headers};if(x)for(let l of x){let v=l(d);v instanceof Promise&&(v=await v),v!=null&&(d=v)}return d})({getRaw:T})}}),ee=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return Y(e,r,t)}});var we=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((a,s)=>{r[s]=a}),r}}return e.text().then(L)},be=async(e,t)=>{let n=await we(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new R(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},te=(e,t)=>(n,{query:r,params:a,body:s,...i}={})=>{a&&Object.entries(a).forEach(([S,h])=>{n=n.replace(`:${S}`,h)});let y=t?.fetcher||globalThis.fetch,j=r?Object.fromEntries(Object.entries(r).filter(([S,h])=>h!=null)):null,A=j?`?${new URLSearchParams(j).toString()}`:"",w=`${e}${n}${A}`,k=new Headers(i.headers||{}),T=k.get("content-type");if(!(s instanceof FormData)&&!(s instanceof URLSearchParams)&&(!T||T==="application/json"))try{s=JSON.stringify(s),T||k.set("content-type","application/json")}catch{}let m={...i,method:i.method?.toUpperCase()||"GET",headers:k,body:s},b=()=>y(w,m).then(S=>be(S,b));return b()};0&&(module.exports={edenFetch,edenTreaty,treaty});
4
+ `))!==-1;){let n=e.value.slice(0,t);if(e.value=e.value.slice(t+2),n.trim()){let r=z(n);r&&(yield r)}}}async function*we(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder("utf-8"),s={value:""};try{for(;;){let{done:a,value:d}=await n.read();if(a)break;let W=typeof d=="string"?d:r.decode(d,{stream:!0});s.value+=W,yield*Z(s)}let i=r.decode();if(i&&(s.value+=i),yield*Z(s),s.value.trim()){let a=z(s.value);a&&(yield a)}}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,[a,d]){if(!a||d||typeof a=="object"&&Object.keys(a).length!==1||ge.includes(n.at(-1))){let W=[...n],F=W.pop(),A="/"+W.join("/"),{fetcher:R=fetch,headers:j,onRequest:w,onResponse:k,fetch:E}=t,h=F==="get"||F==="head"||F==="subscribe",N=h?a?.query:d?.query,O="";if(N){let o=(L,b)=>{O+=(O?"&":"?")+`${encodeURIComponent(L)}=${encodeURIComponent(b)}`};for(let[L,b]of Object.entries(N)){if(Array.isArray(b)){for(let c of b)o(L,c);continue}if(b!=null){if(typeof b=="object"){o(L,JSON.stringify(b));continue}o(L,`${b}`)}}}if(F==="subscribe"){let o=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Q.find(L=>e.includes(L))?"ws://":"wss://")+A+O;return new P(o)}return(async()=>{j=await C(j,A,d);let o={method:F?.toUpperCase(),body:a,...E,headers:j};o.headers={...j,...await C(h?a?.headers:d?.headers,A,o)};let L=h&&typeof a=="object"?a.fetch:d?.fetch;if(o={...o,...L},h&&delete o.body,w){Array.isArray(w)||(w=[w]);for(let u of w){let y=await u(A,o);typeof y=="object"&&(o={...o,...y,headers:{...o.headers,...await C(y.headers,A,o)}})}}if(h&&delete o.body,me(a)){let u=new FormData,y=f=>{if(typeof f=="string"||q(f))return!1;if(typeof f=="object"){if(f!==null)return!0;if(f instanceof Date)return!1}return!1},m=async f=>f instanceof File?await B(f):y(f)?JSON.stringify(f):f;for(let[f,l]of Object.entries(o.body)){if(Array.isArray(l)){if(l.some(v=>typeof v=="object"&&v!==null&&!q(v)))u.append(f,JSON.stringify(l));else for(let v=0;v<l.length;v++){let T=l[v],M=await m(T);u.append(f,M)}continue}if(V){if(Array.isArray(l))for(let x of l)u.append(f,await m(x));else u.append(f,await m(l));continue}if(l instanceof File){u.append(f,await B(l));continue}if(l instanceof FileList){for(let x=0;x<l.length;x++)u.append(f,await B(l[x]));continue}u.append(f,await m(l))}o.body=u}else typeof a=="object"?(o.headers["content-type"]="application/json",o.body=JSON.stringify(a)):a!=null&&(o.headers["content-type"]="text/plain");if(h&&delete o.body,w){Array.isArray(w)||(w=[w]);for(let u of w){let y=await u(A,o);typeof y=="object"&&(o={...o,...y,headers:{...o.headers,...await C(y.headers,A,o)}})}}d?.headers?.["content-type"]&&(o.headers["content-type"]=d?.headers["content-type"]);let b=e+A+O,c;try{c=await(r?.handle(new Request(b,o))??R(b,o))}catch(u){return{data:null,error:new S(503,u),response:void 0,status:503,headers:void 0}}let g=null,p=null;if(k){Array.isArray(k)||(k=[k]);for(let u of k)try{let y=await u(c.clone());if(y!=null){g=y;break}}catch(y){y instanceof S?p=y:p=new S(422,y);break}}if(g!==null)return{data:g,error:p,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":g=we(c);break;case"application/json":g=JSON.parse(await c.text(),(y,m)=>{if(typeof m!="string")return m;let f=D(m);return f||m});break;case"application/octet-stream":g=await c.arrayBuffer();break;case"multipart/form-data":let u=await c.formData();g={},u.forEach((y,m)=>{g[m]=y});break;default:g=await c.text().then($)}return(c.status>=300||c.status<200)&&(p=new S(c.status,g),g=null),{data:g,error:p,response:c,status:c.status,headers:c.headers}})()}return typeof a=="object"?K(e,t,[...n,Object.values(a)[0]],r):K(e,t,n)}}),X=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(Q.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 Y=(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 G=typeof FileList>"u",ee=e=>G?e instanceof Blob:e instanceof FileList||e instanceof File,Ee=e=>{if(!e)return!1;for(let t in e){if(ee(e[t]))return!0;if(Array.isArray(e[t])&&e[t].find(n=>ee(n)))return!0}return!1},H=e=>G?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)}),_=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=I(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}},te=(e,t="",n)=>new Proxy(()=>{},{get(r,s,i){return te(e,`${t}/${s.toString()}`,n)},apply(r,s,[i,a={}]=[{},{}]){let d=i!==void 0&&(typeof i!="object"||Array.isArray(i))?i:void 0,{$query:W,$fetch:F,$headers:A,$transform:R,getRaw:j,...w}=i??{};d??=w;let k=t.lastIndexOf("/"),E=t.slice(k+1).toUpperCase(),h=Y(e,k===-1?"/":t.slice(0,k),Object.assign(a.query??{},W)),N=n.fetcher??fetch,O=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=R?Array.isArray(R)?R:[R]:void 0;return o&&(O?O=o.concat(O):O=o),E==="SUBSCRIBE"?new _(h.replace(/^([^]+):\/\//,h.startsWith("https://")?"wss://":"ws://")):(async b=>{let c,g={...n.$fetch?.headers,...F?.headers,...a.headers,...A};if(E!=="GET"&&E!=="HEAD"){c=Object.keys(d).length||Array.isArray(d)?d:void 0;let f=c&&(typeof c=="object"||Array.isArray(d));if(f&&Ee(c)){let x=new FormData;for(let[v,T]of Object.entries(c))if(G)x.append(v,T);else if(T instanceof File)x.append(v,await H(T));else if(T instanceof FileList)for(let M=0;M<T.length;M++)x.append(v,await H(T[M]));else if(Array.isArray(T))for(let M=0;M<T.length;M++){let J=T[M];x.append(v,J instanceof File?await H(J):J)}else x.append(v,T);c=x}else c!=null&&(g["content-type"]=f?"application/json":"text/plain",c=f?JSON.stringify(c):d)}let p=await N(h,{method:E,body:c,...n.$fetch,...a.fetch,...F,headers:g}),u;if(b.getRaw)return p;switch(p.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await p.json();break;default:u=await p.text().then($)}let y=p.status>=300||p.status<200?new S(p.status,u):null,m={data:u,error:y,response:p,status:p.status,headers:p.headers};if(O)for(let f of O){let l=f(m);l instanceof Promise&&(l=await l),l!=null&&(m=l)}return m})({getRaw:j})}}),ne=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return te(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,i)=>{r[i]=s}),r}}return e.text().then($)},Se=async(e,t)=>{let n=await be(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new S(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},re=(e,t)=>(n,{query:r,params:s,body:i,...a}={})=>{s&&Object.entries(s).forEach(([E,h])=>{n=n.replace(`:${E}`,h)});let d=t?.fetcher||globalThis.fetch,W=r?Object.fromEntries(Object.entries(r).filter(([E,h])=>h!=null)):null,F=W?`?${new URLSearchParams(W).toString()}`:"",A=`${e}${n}${F}`,R=new Headers(a.headers||{}),j=R.get("content-type");if(!(i instanceof FormData)&&!(i instanceof URLSearchParams)&&(!j||j==="application/json"))try{i=JSON.stringify(i),j||R.set("content-type","application/json")}catch{}let w={...a,method:a.method?.toUpperCase()||"GET",headers:R,body:i},k=()=>d(A,w).then(E=>Se(E,k)).catch(E=>({data:null,error:new S(503,E),status:503,headers:void 0,retry:k}));return k()};0&&(module.exports={EdenFetchError,edenFetch,edenTreaty,treaty});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{b as r}from"./chunk-EF6Z4LSD.mjs";import{b as e}from"./chunk-LJDYVDXQ.mjs";import{a as t}from"./chunk-4RPCKTWO.mjs";import"./chunk-QSLHAOSM.mjs";export{t as edenFetch,r as edenTreaty,e as treaty};
1
+ import{b as t}from"./chunk-EF6Z4LSD.mjs";import{b as r}from"./chunk-7WR4DS5F.mjs";import{a as o}from"./chunk-VMSCNLL4.mjs";import{a as e}from"./chunk-QSLHAOSM.mjs";export{e as EdenFetchError,o as edenFetch,t as edenTreaty,r as treaty};
package/dist/treaty.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Elysia, InputSchema } from 'elysia';
2
- import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-C41kuZ-K.mjs';
2
+ import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-BdHMTa_C.mjs';
3
3
 
4
4
  type Files = File | FileList;
5
5
  type Replace<RecordType, TargetType, GenericType> = {
package/dist/treaty.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Elysia, InputSchema } from 'elysia';
2
- import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-C41kuZ-K.js';
2
+ import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-BdHMTa_C.js';
3
3
 
4
4
  type Files = File | FileList;
5
5
  type Replace<RecordType, TargetType, GenericType> = {
@@ -1,5 +1,5 @@
1
1
  import type { Elysia } from 'elysia';
2
2
  import type { Treaty } from './types';
3
- export declare function streamResponse(response: Response): AsyncGenerator<any, void, unknown>;
3
+ export declare function streamResponse(response: Response): AsyncGenerator<Record<string, unknown>, void, any>;
4
4
  export declare const treaty: <const App extends Elysia<any, any, any, any, any, any, any>>(domain: string | App, config?: Treaty.Config) => Treaty.Create<App>;
5
5
  export type { Treaty };
@@ -1,6 +1,7 @@
1
1
  import type { Elysia, ELYSIA_FORM_DATA } from 'elysia';
2
2
  import { EdenWS } from './ws';
3
- import type { IsNever, Not, Prettify } from '../types';
3
+ import type { IsNever, MaybeEmptyObject, Not, Prettify } from '../types';
4
+ import { BunFile } from 'bun';
4
5
  type And<A extends boolean, B extends boolean> = A extends true ? B extends true ? true : false : false;
5
6
  type ReplaceGeneratorWithAsyncGenerator<in out RecordType extends Record<string, unknown>> = {
6
7
  [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] extends ReadableStream<infer A> ? AsyncGenerator<A, void, unknown> : RecordType[K];
@@ -9,45 +10,28 @@ type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] exte
9
10
  type IntegerRange<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;
10
11
  type SuccessCodeRange = IntegerRange<200, 300>;
11
12
  type MaybeArray<T> = T | T[];
13
+ type MaybeArrayFile<T> = T extends (File | BunFile)[] ? (File | BunFile)[] | File | BunFile : T extends File | BunFile ? File | BunFile : T;
14
+ type RelaxFileArrays<T> = T extends Record<string, unknown> ? {
15
+ [K in keyof T]: MaybeArrayFile<T[K]>;
16
+ } : T;
17
+ type SerializeQueryParams<T> = T extends Record<string, any> ? {
18
+ [K in keyof T]: T[K] extends Date ? string : T[K] extends Date | undefined ? string | undefined : T[K];
19
+ } : T;
12
20
  export declare namespace Treaty {
13
21
  interface TreatyParam {
14
22
  fetch?: RequestInit;
15
23
  }
16
24
  export type Create<App extends Elysia<any, any, any, any, any, any, any>> = App extends {
17
- '~Routes': infer Schema extends Record<string, any>;
25
+ '~Routes': infer Schema extends Record<any, any>;
18
26
  } ? Prettify<Sign<Schema>> & CreateParams<Schema> : 'Please install Elysia before using Eden';
19
- export type Sign<in out Route extends Record<string, any>> = {
20
- [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? ({} extends Route['subscribe']['headers'] ? {
21
- headers?: Record<string, unknown>;
22
- } : undefined extends Route['subscribe']['headers'] ? {
23
- headers?: Record<string, unknown>;
24
- } : {
25
- headers: Route['subscribe']['headers'];
26
- }) & ({} extends Route['subscribe']['query'] ? {
27
- query?: Record<string, unknown>;
28
- } : undefined extends Route['subscribe']['query'] ? {
29
- query?: Record<string, unknown>;
30
- } : {
31
- query: Route['subscribe']['query'];
32
- }) extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
27
+ export type Sign<in out Route extends Record<any, any>> = {
28
+ [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? MaybeEmptyObject<Route['subscribe']['headers'], 'headers'> & MaybeEmptyObject<SerializeQueryParams<Route['subscribe']['query']>, 'query'> extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
33
29
  body: infer Body;
34
30
  headers: infer Headers;
35
31
  params: any;
36
32
  query: infer Query;
37
33
  response: infer Res extends Record<number, unknown>;
38
- } ? ({} extends Headers ? {
39
- headers?: Record<string, unknown>;
40
- } : undefined extends Headers ? {
41
- headers?: Record<string, unknown>;
42
- } : {
43
- headers: Headers;
44
- }) & ({} extends Query ? {
45
- query?: Record<string, unknown>;
46
- } : undefined extends Query ? {
47
- query?: Record<string, unknown>;
48
- } : {
49
- query: Query;
50
- }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : {} extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : never : CreateParams<Route[K]>;
34
+ } ? MaybeEmptyObject<Headers, 'headers'> & MaybeEmptyObject<SerializeQueryParams<Query>, 'query'> extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body?: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : {} extends Body ? (body?: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: RelaxFileArrays<Body>, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : never : CreateParams<Route[K]>;
51
35
  };
52
36
  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
53
37
  (((params: {
@@ -56,7 +40,7 @@ export declare namespace Treaty {
56
40
  export interface Config {
57
41
  fetch?: Omit<RequestInit, 'headers' | 'method'>;
58
42
  fetcher?: typeof fetch;
59
- headers?: MaybeArray<RequestInit['headers'] | ((path: string, options: RequestInit) => RequestInit['headers'] | void)>;
43
+ headers?: MaybeArray<RequestInit['headers'] | ((path: string, options: RequestInit) => MaybePromise<RequestInit['headers'] | void>)>;
60
44
  onRequest?: MaybeArray<(path: string, options: RequestInit) => MaybePromise<RequestInit | void>>;
61
45
  onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
62
46
  keepDomain?: boolean;
@@ -68,7 +52,7 @@ export declare namespace Treaty {
68
52
  error: null;
69
53
  response: Response;
70
54
  status: number;
71
- headers: RequestInit['headers'];
55
+ headers: ResponseInit['headers'];
72
56
  } | {
73
57
  data: null;
74
58
  error: Exclude<keyof Res, SuccessCodeRange> extends never ? {
@@ -84,7 +68,7 @@ export declare namespace Treaty {
84
68
  }[Exclude<keyof Res, SuccessCodeRange>];
85
69
  response: Response;
86
70
  status: number;
87
- headers: RequestInit['headers'];
71
+ headers: ResponseInit['headers'];
88
72
  };
89
73
  export interface OnMessage<Data = unknown> extends MessageEvent {
90
74
  data: Data;
@@ -1,5 +1,6 @@
1
1
  import { InputSchema, Elysia, ELYSIA_FORM_DATA } from 'elysia';
2
- import { P as Prettify, a as IsNever, N as Not } from './types-C41kuZ-K.mjs';
2
+ import { P as Prettify, b as MaybeEmptyObject, a as IsNever, N as Not } from './types-BdHMTa_C.mjs';
3
+ import { BunFile } from 'bun';
3
4
 
4
5
  declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
5
6
  url: string;
@@ -22,45 +23,28 @@ type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] exte
22
23
  type IntegerRange<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;
23
24
  type SuccessCodeRange = IntegerRange<200, 300>;
24
25
  type MaybeArray<T> = T | T[];
26
+ type MaybeArrayFile<T> = T extends (File | BunFile)[] ? (File | BunFile)[] | File | BunFile : T extends File | BunFile ? File | BunFile : T;
27
+ type RelaxFileArrays<T> = T extends Record<string, unknown> ? {
28
+ [K in keyof T]: MaybeArrayFile<T[K]>;
29
+ } : T;
30
+ type SerializeQueryParams<T> = T extends Record<string, any> ? {
31
+ [K in keyof T]: T[K] extends Date ? string : T[K] extends Date | undefined ? string | undefined : T[K];
32
+ } : T;
25
33
  declare namespace Treaty {
26
34
  interface TreatyParam {
27
35
  fetch?: RequestInit;
28
36
  }
29
37
  export type Create<App extends Elysia<any, any, any, any, any, any, any>> = App extends {
30
- '~Routes': infer Schema extends Record<string, any>;
38
+ '~Routes': infer Schema extends Record<any, any>;
31
39
  } ? Prettify<Sign<Schema>> & CreateParams<Schema> : 'Please install Elysia before using Eden';
32
- export type Sign<in out Route extends Record<string, any>> = {
33
- [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? ({} extends Route['subscribe']['headers'] ? {
34
- headers?: Record<string, unknown>;
35
- } : undefined extends Route['subscribe']['headers'] ? {
36
- headers?: Record<string, unknown>;
37
- } : {
38
- headers: Route['subscribe']['headers'];
39
- }) & ({} extends Route['subscribe']['query'] ? {
40
- query?: Record<string, unknown>;
41
- } : undefined extends Route['subscribe']['query'] ? {
42
- query?: Record<string, unknown>;
43
- } : {
44
- query: Route['subscribe']['query'];
45
- }) extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
40
+ export type Sign<in out Route extends Record<any, any>> = {
41
+ [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? MaybeEmptyObject<Route['subscribe']['headers'], 'headers'> & MaybeEmptyObject<SerializeQueryParams<Route['subscribe']['query']>, 'query'> extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
46
42
  body: infer Body;
47
43
  headers: infer Headers;
48
44
  params: any;
49
45
  query: infer Query;
50
46
  response: infer Res extends Record<number, unknown>;
51
- } ? ({} extends Headers ? {
52
- headers?: Record<string, unknown>;
53
- } : undefined extends Headers ? {
54
- headers?: Record<string, unknown>;
55
- } : {
56
- headers: Headers;
57
- }) & ({} extends Query ? {
58
- query?: Record<string, unknown>;
59
- } : undefined extends Query ? {
60
- query?: Record<string, unknown>;
61
- } : {
62
- query: Query;
63
- }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : {} extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : never : CreateParams<Route[K]>;
47
+ } ? MaybeEmptyObject<Headers, 'headers'> & MaybeEmptyObject<SerializeQueryParams<Query>, 'query'> extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body?: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : {} extends Body ? (body?: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: RelaxFileArrays<Body>, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : never : CreateParams<Route[K]>;
64
48
  };
65
49
  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
66
50
  (((params: {
@@ -69,7 +53,7 @@ declare namespace Treaty {
69
53
  export interface Config {
70
54
  fetch?: Omit<RequestInit, 'headers' | 'method'>;
71
55
  fetcher?: typeof fetch;
72
- headers?: MaybeArray<RequestInit['headers'] | ((path: string, options: RequestInit) => RequestInit['headers'] | void)>;
56
+ headers?: MaybeArray<RequestInit['headers'] | ((path: string, options: RequestInit) => MaybePromise<RequestInit['headers'] | void>)>;
73
57
  onRequest?: MaybeArray<(path: string, options: RequestInit) => MaybePromise<RequestInit | void>>;
74
58
  onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
75
59
  keepDomain?: boolean;
@@ -81,7 +65,7 @@ declare namespace Treaty {
81
65
  error: null;
82
66
  response: Response;
83
67
  status: number;
84
- headers: RequestInit['headers'];
68
+ headers: ResponseInit['headers'];
85
69
  } | {
86
70
  data: null;
87
71
  error: Exclude<keyof Res, SuccessCodeRange> extends never ? {
@@ -97,7 +81,7 @@ declare namespace Treaty {
97
81
  }[Exclude<keyof Res, SuccessCodeRange>];
98
82
  response: Response;
99
83
  status: number;
100
- headers: RequestInit['headers'];
84
+ headers: ResponseInit['headers'];
101
85
  };
102
86
  export interface OnMessage<Data = unknown> extends MessageEvent {
103
87
  data: Data;
@@ -112,7 +96,7 @@ declare namespace Treaty {
112
96
  export { };
113
97
  }
114
98
 
115
- declare function streamResponse(response: Response): AsyncGenerator<any, void, unknown>;
99
+ declare function streamResponse(response: Response): AsyncGenerator<Record<string, unknown>, void, any>;
116
100
  declare const treaty: <const App extends Elysia<any, any, any, any, any, any, any>>(domain: string | App, config?: Treaty.Config) => Treaty.Create<App>;
117
101
 
118
102
  export { Treaty, streamResponse, treaty };
package/dist/treaty2.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { InputSchema, Elysia, ELYSIA_FORM_DATA } from 'elysia';
2
- import { P as Prettify, a as IsNever, N as Not } from './types-C41kuZ-K.js';
2
+ import { P as Prettify, b as MaybeEmptyObject, a as IsNever, N as Not } from './types-BdHMTa_C.js';
3
+ import { BunFile } from 'bun';
3
4
 
4
5
  declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
5
6
  url: string;
@@ -22,45 +23,28 @@ type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] exte
22
23
  type IntegerRange<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;
23
24
  type SuccessCodeRange = IntegerRange<200, 300>;
24
25
  type MaybeArray<T> = T | T[];
26
+ type MaybeArrayFile<T> = T extends (File | BunFile)[] ? (File | BunFile)[] | File | BunFile : T extends File | BunFile ? File | BunFile : T;
27
+ type RelaxFileArrays<T> = T extends Record<string, unknown> ? {
28
+ [K in keyof T]: MaybeArrayFile<T[K]>;
29
+ } : T;
30
+ type SerializeQueryParams<T> = T extends Record<string, any> ? {
31
+ [K in keyof T]: T[K] extends Date ? string : T[K] extends Date | undefined ? string | undefined : T[K];
32
+ } : T;
25
33
  declare namespace Treaty {
26
34
  interface TreatyParam {
27
35
  fetch?: RequestInit;
28
36
  }
29
37
  export type Create<App extends Elysia<any, any, any, any, any, any, any>> = App extends {
30
- '~Routes': infer Schema extends Record<string, any>;
38
+ '~Routes': infer Schema extends Record<any, any>;
31
39
  } ? Prettify<Sign<Schema>> & CreateParams<Schema> : 'Please install Elysia before using Eden';
32
- export type Sign<in out Route extends Record<string, any>> = {
33
- [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? ({} extends Route['subscribe']['headers'] ? {
34
- headers?: Record<string, unknown>;
35
- } : undefined extends Route['subscribe']['headers'] ? {
36
- headers?: Record<string, unknown>;
37
- } : {
38
- headers: Route['subscribe']['headers'];
39
- }) & ({} extends Route['subscribe']['query'] ? {
40
- query?: Record<string, unknown>;
41
- } : undefined extends Route['subscribe']['query'] ? {
42
- query?: Record<string, unknown>;
43
- } : {
44
- query: Route['subscribe']['query'];
45
- }) extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
40
+ export type Sign<in out Route extends Record<any, any>> = {
41
+ [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? MaybeEmptyObject<Route['subscribe']['headers'], 'headers'> & MaybeEmptyObject<SerializeQueryParams<Route['subscribe']['query']>, 'query'> extends infer Param ? (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
46
42
  body: infer Body;
47
43
  headers: infer Headers;
48
44
  params: any;
49
45
  query: infer Query;
50
46
  response: infer Res extends Record<number, unknown>;
51
- } ? ({} extends Headers ? {
52
- headers?: Record<string, unknown>;
53
- } : undefined extends Headers ? {
54
- headers?: Record<string, unknown>;
55
- } : {
56
- headers: Headers;
57
- }) & ({} extends Query ? {
58
- query?: Record<string, unknown>;
59
- } : undefined extends Query ? {
60
- query?: Record<string, unknown>;
61
- } : {
62
- query: Query;
63
- }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : {} extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : never : CreateParams<Route[K]>;
47
+ } ? MaybeEmptyObject<Headers, 'headers'> & MaybeEmptyObject<SerializeQueryParams<Query>, 'query'> extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body?: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : {} extends Body ? (body?: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: RelaxFileArrays<Body>, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : (body: RelaxFileArrays<Body>, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Res>>> : never : CreateParams<Route[K]>;
64
48
  };
65
49
  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
66
50
  (((params: {
@@ -69,7 +53,7 @@ declare namespace Treaty {
69
53
  export interface Config {
70
54
  fetch?: Omit<RequestInit, 'headers' | 'method'>;
71
55
  fetcher?: typeof fetch;
72
- headers?: MaybeArray<RequestInit['headers'] | ((path: string, options: RequestInit) => RequestInit['headers'] | void)>;
56
+ headers?: MaybeArray<RequestInit['headers'] | ((path: string, options: RequestInit) => MaybePromise<RequestInit['headers'] | void>)>;
73
57
  onRequest?: MaybeArray<(path: string, options: RequestInit) => MaybePromise<RequestInit | void>>;
74
58
  onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
75
59
  keepDomain?: boolean;
@@ -81,7 +65,7 @@ declare namespace Treaty {
81
65
  error: null;
82
66
  response: Response;
83
67
  status: number;
84
- headers: RequestInit['headers'];
68
+ headers: ResponseInit['headers'];
85
69
  } | {
86
70
  data: null;
87
71
  error: Exclude<keyof Res, SuccessCodeRange> extends never ? {
@@ -97,7 +81,7 @@ declare namespace Treaty {
97
81
  }[Exclude<keyof Res, SuccessCodeRange>];
98
82
  response: Response;
99
83
  status: number;
100
- headers: RequestInit['headers'];
84
+ headers: ResponseInit['headers'];
101
85
  };
102
86
  export interface OnMessage<Data = unknown> extends MessageEvent {
103
87
  data: Data;
@@ -112,7 +96,7 @@ declare namespace Treaty {
112
96
  export { };
113
97
  }
114
98
 
115
- declare function streamResponse(response: Response): AsyncGenerator<any, void, unknown>;
99
+ declare function streamResponse(response: Response): AsyncGenerator<Record<string, unknown>, void, any>;
116
100
  declare const treaty: <const App extends Elysia<any, any, any, any, any, any, any>>(domain: string | App, config?: Treaty.Config) => Treaty.Create<App>;
117
101
 
118
102
  export { Treaty, streamResponse, treaty };
@@ -1,6 +1,4 @@
1
- "use strict";var Eden=(()=>{var j=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var n in t)j(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&&j(e,o,{get:()=>t[o],enumerable:!(s=H(t,o))||s.enumerable});return e};var Z=e=>B(j({},"__esModule",{value:!0}),e);var ie={};$(ie,{streamResponse:()=>J,treaty:()=>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)),F=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=F(n);return s||n}),A=e=>{if(!e)return e;if(X(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=F(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:A(t)};var M=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=D(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 te=["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,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},N=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)}),S=(e,t,n={},s={})=>{if(Array.isArray(e)){for(let o of e)if(!Array.isArray(o))s=S(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 S(e,t,n,s);let o=e(t,n);return o?S(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*J(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.includes(`
1
+ "use strict";var Eden=(()=>{var D=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var X=(e,t)=>{for(var n in t)D(e,n,{get:t[n],enumerable:!0})},Y=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of z(t))!Q.call(e,i)&&i!==n&&D(e,i,{get:()=>t[i],enumerable:!(r=Z(t,i))||r.enumerable});return e};var ee=e=>Y(D({},"__esModule",{value:!0}),e);var ue={};X(ue,{streamResponse:()=>_,treaty:()=>fe});var k=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var te=/(\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))/,ne=/(?: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\([^)]+\)/,re=/^(?:(?:(?:(?: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)?)?$/,se=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),T=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(te.test(t)||ne.test(t)||re.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},ie=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},ae=e=>JSON.parse(e,(t,n)=>{let r=T(n);return r||n}),W=e=>{if(!e)return e;if(se(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=T(e);if(t)return t;if(ie(e))try{return ae(e)}catch{}return e},q=e=>{let t=e.data.toString();return t==="null"?null:W(t)};var M=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,i=>{if(t==="message"){let u=q(i);n({...i,data:u})}else n(i)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var oe=["get","post","put","delete","patch","options","head","connect","subscribe"],V=["localhost","127.0.0.1","0.0.0.0"],J=typeof FileList>"u",C=e=>J?e instanceof Blob:e instanceof FileList||e instanceof File,ce=e=>{if(!e)return!1;for(let t in e)if(C(e[t])||Array.isArray(e[t])&&e[t].find(C))return!0;return!1},K=e=>J?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)}),E=async(e,t,n={},r={})=>{if(Array.isArray(e)){for(let i of e)if(!Array.isArray(i))r=await E(i,t,n,r);else{let u=i[0];if(typeof u=="string")r[u.toLowerCase()]=i[1];else for(let[a,y]of u)r[a.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return E(e,t,n,r);let i=await e(t,n);return i?E(i,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((u,a)=>{r[a.toLowerCase()]=u}),r;for(let[u,a]of Object.entries(e))r[u.toLowerCase()]=a;return r;default:return r}};function B(e){let t=e.split(`
2
+ `),n={};for(let r of t){if(!r||r.startsWith(":"))continue;let i=r.indexOf(":");if(i>0){let u=r.slice(0,i).trim(),a=r.slice(i+1).replace(/^ /,"");n[u]=a&&W(a)}}return Object.keys(n).length>0?n:null}function*P(e){let t;for(;(t=e.value.indexOf(`
2
3
 
3
- `)?yield*se(i):yield A(i)}}finally{n.releaseLock()}}function*se(e){let t=e.split(`
4
-
5
- `);for(let n of t){if(n.indexOf(":")<=0){n&&(yield A(n));continue}let s=n.split(`
6
- `),o={};for(let c of s){let i=c.indexOf(":");if(i>0){let g=c.slice(0,i).trim(),L=c.slice(i+1).trim();o[g]=A(L)}}yield o}}var O=(e,t,n=[],s)=>new Proxy(()=>{},{get(o,c){return O(e,t,c==="index"?n:[...n,c],s)},apply(o,c,[i,g]){if(!i||g||typeof i=="object"&&Object.keys(i).length!==1||te.includes(n.at(-1))){let L=[...n],E=L.pop(),m="/"+L.join("/"),{fetcher:P=fetch,headers:R,onRequest:h,onResponse:v,fetch:_}=t,w=E==="get"||E==="head"||E==="subscribe";R=S(R,m,g);let K=w?i?.query:g?.query,T="";if(K){let r=(b,l)=>{T+=(T?"&":"?")+`${encodeURIComponent(b)}=${encodeURIComponent(l)}`};for(let[b,l]of Object.entries(K)){if(Array.isArray(l)){for(let d of l)r(b,d);continue}if(l!=null){if(typeof l=="object"){r(b,JSON.stringify(l));continue}r(b,`${l}`)}}}if(E==="subscribe"){let r=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||I.find(b=>e.includes(b))?"ws://":"wss://")+m+T;return new M(r)}return(async()=>{let r={method:E?.toUpperCase(),body:i,..._,headers:R};r.headers={...R,...S(w?i?.headers:g?.headers,m,r)};let b=w&&typeof i=="object"?i.fetch:g?.fetch;if(r={...r,...b},w&&delete r.body,h){Array.isArray(h)||(h=[h]);for(let u of h){let a=await u(m,r);typeof a=="object"&&(r={...r,...a,headers:{...r.headers,...S(a.headers,m,r)}})}}if(w&&delete r.body,ne(i)){let u=new FormData;for(let[a,f]of Object.entries(r.body)){if(Array.isArray(f)){for(let p=0;p<f.length;p++){let W=f[p];u.append(a,W instanceof File?await N(W):W)}continue}if(C){if(Array.isArray(f))for(let p of f)u.append(a,p);else u.append(a,f);continue}if(f instanceof File){u.append(a,await N(f));continue}if(f instanceof FileList){for(let p=0;p<f.length;p++)u.append(a,await N(f[p]));continue}u.append(a,f)}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(w&&delete r.body,h){Array.isArray(h)||(h=[h]);for(let u of h){let a=await u(m,r);typeof a=="object"&&(r={...r,...a,headers:{...r.headers,...S(a.headers,m,r)}})}}g?.headers?.["content-type"]&&(r.headers["content-type"]=g?.headers["content-type"]);let l=e+m+T,d=await(s?.handle(new Request(l,r))??P(l,r)),y=null,x=null;if(v){Array.isArray(v)||(v=[v]);for(let u of v)try{let a=await u(d.clone());if(a!=null){y=a;break}}catch(a){a instanceof k?x=a:x=new k(422,a);break}}if(y!==null)return{data:y,error:x,response:d,status:d.status,headers:d.headers};switch(d.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":y=J(d);break;case"application/json":y=JSON.parse(await d.text(),(a,f)=>{if(typeof f!="string")return f;let p=F(f);return p||f});break;case"application/octet-stream":y=await d.arrayBuffer();break;case"multipart/form-data":let u=await d.formData();y={},u.forEach((a,f)=>{y[f]=a});break;default:y=await d.text().then(A)}return(d.status>=300||d.status<200)&&(x=new k(d.status,y),y=null),{data:y,error:x,response:d,status:d.status,headers:d.headers}})()}return typeof i=="object"?O(e,t,[...n,Object.values(i)[0]],s):O(e,t,n)}}),re=(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);})();
4
+ `))!==-1;){let n=e.value.slice(0,t);if(e.value=e.value.slice(t+2),n.trim()){let r=B(n);r&&(yield r)}}}async function*_(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder("utf-8"),i={value:""};try{for(;;){let{done:a,value:y}=await n.read();if(a)break;let R=typeof y=="string"?y:r.decode(y,{stream:!0});i.value+=R,yield*P(i)}let u=r.decode();if(u&&(i.value+=u),yield*P(i),i.value.trim()){let a=B(i.value);a&&(yield a)}}finally{n.releaseLock()}}var F=(e,t,n=[],r)=>new Proxy(()=>{},{get(i,u){return F(e,t,u==="index"?n:[...n,u],r)},apply(i,u,[a,y]){if(!a||y||typeof a=="object"&&Object.keys(a).length!==1||oe.includes(n.at(-1))){let R=[...n],x=R.pop(),m="/"+R.join("/"),{fetcher:H=fetch,headers:L,onRequest:w,onResponse:O,fetch:U}=t,v=x==="get"||x==="head"||x==="subscribe",I=v?a?.query:y?.query,N="";if(I){let s=(b,p)=>{N+=(N?"&":"?")+`${encodeURIComponent(b)}=${encodeURIComponent(p)}`};for(let[b,p]of Object.entries(I)){if(Array.isArray(p)){for(let f of p)s(b,f);continue}if(p!=null){if(typeof p=="object"){s(b,JSON.stringify(p));continue}s(b,`${p}`)}}}if(x==="subscribe"){let s=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||V.find(b=>e.includes(b))?"ws://":"wss://")+m+N;return new M(s)}return(async()=>{L=await E(L,m,y);let s={method:x?.toUpperCase(),body:a,...U,headers:L};s.headers={...L,...await E(v?a?.headers:y?.headers,m,s)};let b=v&&typeof a=="object"?a.fetch:y?.fetch;if(s={...s,...b},v&&delete s.body,w){Array.isArray(w)||(w=[w]);for(let d of w){let c=await d(m,s);typeof c=="object"&&(s={...s,...c,headers:{...s.headers,...await E(c.headers,m,s)}})}}if(v&&delete s.body,ce(a)){let d=new FormData,c=o=>{if(typeof o=="string"||C(o))return!1;if(typeof o=="object"){if(o!==null)return!0;if(o instanceof Date)return!1}return!1},h=async o=>o instanceof File?await K(o):c(o)?JSON.stringify(o):o;for(let[o,l]of Object.entries(s.body)){if(Array.isArray(l)){if(l.some(S=>typeof S=="object"&&S!==null&&!C(S)))d.append(o,JSON.stringify(l));else for(let S=0;S<l.length;S++){let $=l[S],G=await h($);d.append(o,G)}continue}if(J){if(Array.isArray(l))for(let A of l)d.append(o,await h(A));else d.append(o,await h(l));continue}if(l instanceof File){d.append(o,await K(l));continue}if(l instanceof FileList){for(let A=0;A<l.length;A++)d.append(o,await K(l[A]));continue}d.append(o,await h(l))}s.body=d}else typeof a=="object"?(s.headers["content-type"]="application/json",s.body=JSON.stringify(a)):a!=null&&(s.headers["content-type"]="text/plain");if(v&&delete s.body,w){Array.isArray(w)||(w=[w]);for(let d of w){let c=await d(m,s);typeof c=="object"&&(s={...s,...c,headers:{...s.headers,...await E(c.headers,m,s)}})}}y?.headers?.["content-type"]&&(s.headers["content-type"]=y?.headers["content-type"]);let p=e+m+N,f;try{f=await(r?.handle(new Request(p,s))??H(p,s))}catch(d){return{data:null,error:new k(503,d),response:void 0,status:503,headers:void 0}}let g=null,j=null;if(O){Array.isArray(O)||(O=[O]);for(let d of O)try{let c=await d(f.clone());if(c!=null){g=c;break}}catch(c){c instanceof k?j=c:j=new k(422,c);break}}if(g!==null)return{data:g,error:j,response:f,status:f.status,headers:f.headers};switch(f.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":g=_(f);break;case"application/json":g=JSON.parse(await f.text(),(c,h)=>{if(typeof h!="string")return h;let o=T(h);return o||h});break;case"application/octet-stream":g=await f.arrayBuffer();break;case"multipart/form-data":let d=await f.formData();g={},d.forEach((c,h)=>{g[h]=c});break;default:g=await f.text().then(W)}return(f.status>=300||f.status<200)&&(j=new k(f.status,g),g=null),{data:g,error:j,response:f,status:f.status,headers:f.headers}})()}return typeof a=="object"?F(e,t,[...n,Object.values(a)[0]],r):F(e,t,n)}}),fe=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(V.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),F(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."),F("http://e.ly",t,[],e));return ee(ue);})();