@elysiajs/eden 1.0.5 → 1.0.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.
@@ -1 +1 @@
1
- import{a as W,b as x,c as K}from"./chunk-HUZ6GXDC.mjs";var R=typeof FileList>"u",$=n=>R?n instanceof Blob:n instanceof FileList||n instanceof File,J=n=>{if(!n)return!1;for(let e in n){if($(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>$(t)))return!0}return!1},T=n=>R?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(s)},t.readAsArrayBuffer(n)}),F=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,l=>{if(e==="message"){let r=l.data.toString(),u=r.charCodeAt(0);if(u===47||u===123)try{r=JSON.parse(r)}catch{}else x(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);t({...l,data:r})}else t(l)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},M=(n,e="",t)=>new Proxy(()=>{},{get(s,l,r){return M(n,`${e}/${l.toString()}`,t)},apply(s,l,[r,u={}]=[{},{}]){let c=r!==void 0&&(typeof r!="object"||Array.isArray(r))?r:void 0,{$query:I,$fetch:O,$headers:j,$transform:E,getRaw:C,...P}=r??{};c??=P;let S=e.lastIndexOf("/"),g=e.slice(S+1).toUpperCase(),b=W(n,S===-1?"/":e.slice(0,S),Object.assign(u.query??{},I)),q=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,v=E?Array.isArray(E)?E:[E]:void 0;return v&&(p?p=v.concat(p):p=v),g==="SUBSCRIBE"?new F(b.replace(/^([^]+):\/\//,b.startsWith("https://")?"wss://":"ws://")):(async N=>{let a,L={...t.$fetch?.headers,...O?.headers,...u.headers,...j};if(g!=="GET"&&g!=="HEAD"){a=Object.keys(c).length||Array.isArray(c)?c:void 0;let i=a&&(typeof a=="object"||Array.isArray(c));if(i&&J(a)){let h=new FormData;for(let[m,f]of Object.entries(a))if(R)h.append(m,f);else if(f instanceof File)h.append(m,await T(f));else if(f instanceof FileList)for(let d=0;d<f.length;d++)h.append(m,await T(f[d]));else if(Array.isArray(f))for(let d=0;d<f.length;d++){let k=f[d];h.append(m,k instanceof File?await T(k):k)}else h.append(m,f);a=h}else a!=null&&(L["content-type"]=i?"application/json":"text/plain",a=i?JSON.stringify(a):c)}let o=await q(b,{method:g,body:a,...t.$fetch,...u.fetch,...O,headers:L}),w;if(N.getRaw)return o;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":w=await o.json();break;default:w=await o.text().then(i=>x(i)?+i:i==="true"?!0:i==="false"?!1:i)}let D=o.status>=300||o.status<200?new K(o.status,w):null,A={data:w,error:D,response:o,status:o.status,headers:o.headers};if(p)for(let i of p){let y=i(A);y instanceof Promise&&(y=await y),y!=null&&(A=y)}return A})({getRaw:C})}}),G=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return M(n,s,e)}});export{F as a,G as b};
1
+ import{a as W,b as x,c as K}from"./chunk-HUZ6GXDC.mjs";var R=typeof FileList>"u",$=n=>R?n instanceof Blob:n instanceof FileList||n instanceof File,J=n=>{if(!n)return!1;for(let e in n){if($(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>$(t)))return!0}return!1},T=n=>R?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(s)},t.readAsArrayBuffer(n)}),F=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,l=>{if(e==="message"){let r=l.data.toString(),u=r.charCodeAt(0);if(u===47||u===123)try{r=JSON.parse(r)}catch{}else x(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);t({...l,data:r})}else t(l)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},M=(n,e="",t)=>new Proxy(()=>{},{get(s,l,r){return M(n,`${e}/${l.toString()}`,t)},apply(s,l,[r,u={}]=[{},{}]){let y=r!==void 0&&(typeof r!="object"||Array.isArray(r))?r:void 0,{$query:I,$fetch:O,$headers:j,$transform:E,getRaw:C,...P}=r??{};y??=P;let b=e.lastIndexOf("/"),g=e.slice(b+1).toUpperCase(),S=W(n,b===-1?"/":e.slice(0,b),Object.assign(u.query??{},I)),q=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,v=E?Array.isArray(E)?E:[E]:void 0;return v&&(p?p=v.concat(p):p=v),g==="SUBSCRIBE"?new F(S.replace(/^([^]+):\/\//,S.startsWith("https://")?"wss://":"ws://")):(async N=>{let a,L={...t.$fetch?.headers,...O?.headers,...u.headers,...j};if(g!=="GET"&&g!=="HEAD"){a=Object.keys(y).length||Array.isArray(y)?y:void 0;let i=a&&(typeof a=="object"||Array.isArray(y));if(i&&J(a)){let h=new FormData;for(let[m,f]of Object.entries(a))if(R)h.append(m,f);else if(f instanceof File)h.append(m,await T(f));else if(f instanceof FileList)for(let d=0;d<f.length;d++)h.append(m,await T(f[d]));else if(Array.isArray(f))for(let d=0;d<f.length;d++){let k=f[d];h.append(m,k instanceof File?await T(k):k)}else h.append(m,f);a=h}else a!=null&&(L["content-type"]=i?"application/json":"text/plain",a=i?JSON.stringify(a):y)}let o=await q(S,{method:g,body:a,...t.$fetch,...u.fetch,...O,headers:L}),w;if(N.getRaw)return o;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":w=await o.json();break;default:w=await o.text().then(i=>x(i)?+i:i==="true"?!0:i==="false"?!1:i)}let D=o.status>=300||o.status<200?new K(o.status,w):null,A={data:w,error:D,response:o,status:o.status,headers:o.headers};if(p)for(let i of p){let c=i(A);c instanceof Promise&&(c=await c),c!=null&&(A=c)}return A})({getRaw:C})}}),G=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return M(n,s,e)}});export{F as a,G as b};
package/dist/index.d.mts CHANGED
@@ -66,6 +66,7 @@ declare namespace Treaty {
66
66
  headers?: RequestInit['headers'] | MaybeArray<(path: string, options: RequestInit) => RequestInit['headers'] | void>;
67
67
  onRequest?: MaybeArray<(path: string, options: FetchRequestInit) => MaybePromise<FetchRequestInit | void>>;
68
68
  onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
69
+ keepDomain?: boolean;
69
70
  }
70
71
  type TreatyResponse<Res extends Record<number, unknown>> = {
71
72
  data: Res[200];
package/dist/index.d.ts CHANGED
@@ -66,6 +66,7 @@ declare namespace Treaty {
66
66
  headers?: RequestInit['headers'] | MaybeArray<(path: string, options: RequestInit) => RequestInit['headers'] | void>;
67
67
  onRequest?: MaybeArray<(path: string, options: FetchRequestInit) => MaybePromise<FetchRequestInit | void>>;
68
68
  onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
69
+ keepDomain?: boolean;
69
70
  }
70
71
  type TreatyResponse<Res extends Record<number, unknown>> = {
71
72
  data: Res[200];
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var P=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var re=(t,e)=>{for(var r in e)P(t,r,{get:e[r],enumerable:!0})},ne=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of ee(e))!te.call(t,f)&&f!==r&&P(t,f,{get:()=>e[f],enumerable:!(a=Y(e,f))||a.enumerable});return t};var se=t=>ne(P({},"__esModule",{value:!0}),t);var ue={};re(ue,{edenFetch:()=>X,edenTreaty:()=>Q,treaty:()=>Z});var U=(t,e,r)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!r||!Object.keys(r).length)return`${t}${e}`;let a="";for(let[f,n]of Object.entries(r))a+=`${f}=${n}&`;return`${t}${e}?${a.slice(0,-1)}`},x=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var A=class extends Error{constructor(r,a){super(a+"");this.status=r;this.value=a}};var N=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,a){return this.addEventListener(e,r,a)}off(e,r,a){return this.ws.removeEventListener(e,r,a),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,a){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),i=n.charCodeAt(0);if(i===47||i===123)try{n=JSON.parse(n)}catch{}else x(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...f,data:n})}else r(f)},a),this}removeEventListener(e,r,a){return this.off(e,r,a),this}close(){return this.ws.close(),this}};var ae=["get","post","put","delete","patch","options","head","connect","subscribe"],G=["localhost","127.0.0.1","0.0.0.0"],D=typeof FileList>"u",ie=/(\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))/,oe=/(?: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\([^)]+\)/,ce=/^(?:(?:(?:(?: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)?)?$/,_=t=>D?t instanceof Blob:t instanceof FileList||t instanceof File,fe=t=>{if(!t)return!1;for(let e in t)if(_(t[e])||Array.isArray(t[e])&&t[e].find(_))return!0;return!1},q=t=>D?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let a=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(a)},r.readAsArrayBuffer(t)}),M=(t,e,r=[],a)=>new Proxy(()=>{},{get(f,n){return M(t,e,n==="index"?r:[...r,n],a)},apply(f,n,[i,p]){if(!i||p||typeof i=="object"&&Object.keys(i).length!==1||ae.includes(r.at(-1))){let k=r.pop(),S="/"+r.join("/"),{fetcher:F=fetch,headers:s,onRequest:m,onResponse:g,fetch:K}=e,T=k==="get"||k==="head"||k==="subscribe";s={...typeof s=="object"&&!Array.isArray(s)?s:{},...T?i?.headers:p?.headers};let L=T?i?.query:p?.query,R="";if(L)for(let[c,u]of Object.entries(L))R+=(R?"&":"?")+`${c}=${u}`;if(typeof e.headers=="function"&&!(s instanceof Headers)){let c=e.headers(S,p??{});c&&(s={...s,...c})}else if(Array.isArray(e.headers)&&e.headers.every(c=>typeof c=="function"))for(let c of e.headers){let u=c(S,p??{});u&&(s={...s,...u})}else if(s instanceof Headers){s||(s={});for(let[c,u]of Object.entries(s))s[c]=u}if(k==="subscribe"){let c=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||G.find(u=>t.includes(u))?"ws://":"wss://")+S+R;return new N(c)}return(async()=>{let c=(s instanceof Headers?s.get("content-type"):Array.isArray(s)?s.find(o=>Array.isArray(o)&&o[0]==="headers"?o[1]:!1):typeof s=="function"?s(S,p??{}):s?.contentType)||p?.headers?.contentType;if(!c)if(typeof i=="object")c="application/json",i=JSON.stringify(i);else if(fe(i)){let o=new FormData;for(let[l,h]of Object.entries(i)){if(D){o.append(l,h);continue}if(h instanceof File){o.append(l,await q(h));continue}if(h instanceof FileList){for(let d=0;d<h.length;d++)o.append(l,await q(h[d]));continue}if(Array.isArray(h)){for(let d=0;d<h.length;d++){let b=h[d];o.append(l,b instanceof File?await q(b):b)}continue}o.append(l,h)}i=o}else i!=null&&(c="text/plain");let u={method:k,body:i,...K,headers:{...s,"content-type":c}};if(T&&delete u.body,m){Array.isArray(m)||(m=[m]);for(let o of m){let l=await o(S,u);typeof l=="object"&&(u={...u,...l,headers:{...u.headers,...l.headers}})}}let C=t+S+R,E=await(a?.handle(new Request(C,u))??F(C,u)),y=null,O;if(g){Array.isArray(g)||(g=[g]);for(let o of g)try{if(y=await o(E.clone()),y!=null)break}catch(l){l instanceof A?O=l:O=new A(422,l);break}}if(y===null){switch(E.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await E.json();break;case"application/octet-stream":y=await E.arrayBuffer();break;default:y=await E.text().then(o=>{if(x(o))return+o;if(o==="true")return!0;if(o==="false")return!1;if(!o)return o;let l=o.replace(/"/g,"");if(ie.test(l)||oe.test(l)||ce.test(l)){let h=new Date(l);if(!Number.isNaN(h.getTime()))return h}return o})}(E.status>=300||E.status<200)&&(O=new A(E.status,y),y=null)}return{data:y,error:O,response:E,status:E.status,headers:E.headers}})()}return typeof i=="object"?M(t,e,[...r,Object.values(i)[0]],a):M(t,e,r)}}),Z=(t,e={})=>typeof t=="string"?(t.includes("://")||(t=(G.find(r=>t.includes(r))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1)),M(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),M("http://e.ly",e,[],t));var B=typeof FileList>"u",V=t=>B?t instanceof Blob:t instanceof FileList||t instanceof File,ye=t=>{if(!t)return!1;for(let e in t){if(V(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(r=>V(r)))return!0}return!1},J=t=>B?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let a=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(a)},r.readAsArrayBuffer(t)}),H=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,a){return this.addEventListener(e,r,a)}off(e,r,a){return this.ws.removeEventListener(e,r,a),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,a){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),i=n.charCodeAt(0);if(i===47||i===123)try{n=JSON.parse(n)}catch{}else x(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...f,data:n})}else r(f)},a),this}removeEventListener(e,r,a){return this.off(e,r,a),this}close(){return this.ws.close(),this}},z=(t,e="",r)=>new Proxy(()=>{},{get(a,f,n){return z(t,`${e}/${f.toString()}`,r)},apply(a,f,[n,i={}]=[{},{}]){let p=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:k,$fetch:S,$headers:F,$transform:s,getRaw:m,...g}=n??{};p??=g;let K=e.lastIndexOf("/"),T=e.slice(K+1).toUpperCase(),L=U(t,K===-1?"/":e.slice(0,K),Object.assign(i.query??{},k)),R=r.fetcher??fetch,c=r.transform?Array.isArray(r.transform)?r.transform:[r.transform]:void 0,u=s?Array.isArray(s)?s:[s]:void 0;return u&&(c?c=u.concat(c):c=u),T==="SUBSCRIBE"?new H(L.replace(/^([^]+):\/\//,L.startsWith("https://")?"wss://":"ws://")):(async E=>{let y,O={...r.$fetch?.headers,...S?.headers,...i.headers,...F};if(T!=="GET"&&T!=="HEAD"){y=Object.keys(p).length||Array.isArray(p)?p:void 0;let d=y&&(typeof y=="object"||Array.isArray(p));if(d&&ye(y)){let j=new FormData;for(let[$,v]of Object.entries(y))if(B)j.append($,v);else if(v instanceof File)j.append($,await J(v));else if(v instanceof FileList)for(let W=0;W<v.length;W++)j.append($,await J(v[W]));else if(Array.isArray(v))for(let W=0;W<v.length;W++){let I=v[W];j.append($,I instanceof File?await J(I):I)}else j.append($,v);y=j}else y!=null&&(O["content-type"]=d?"application/json":"text/plain",y=d?JSON.stringify(y):p)}let w=await R(L,{method:T,body:y,...r.$fetch,...i.fetch,...S,headers:O}),o;if(E.getRaw)return w;switch(w.headers.get("Content-Type")?.split(";")[0]){case"application/json":o=await w.json();break;default:o=await w.text().then(d=>x(d)?+d:d==="true"?!0:d==="false"?!1:d)}let l=w.status>=300||w.status<200?new A(w.status,o):null,h={data:o,error:l,response:w,status:w.status,headers:w.headers};if(c)for(let d of c){let b=d(h);b instanceof Promise&&(b=await b),b!=null&&(h=b)}return h})({getRaw:m})}}),Q=(t,e={fetcher:fetch})=>new Proxy({},{get(r,a){return z(t,a,e)}});var X=(t,e)=>(r,{query:a,params:f,body:n,...i}={})=>{f&&Object.entries(f).forEach(([s,m])=>{r=r.replace(`:${s}`,m)});let p=i.headers?.["Content-Type"];if(!p||p==="application/json")try{n=JSON.stringify(n)}catch{}let k=e?.fetcher||globalThis.fetch,S=a?`?${new URLSearchParams(a).toString()}`:"",F=()=>k(t+r+S,{...i,method:i.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...i.headers}:i.headers,body:n}).then(async s=>{let m;switch(s.headers.get("Content-Type")?.split(";")[0]){case"application/json":m=await s.json();break;default:m=await s.text().then(g=>x(g)?parseInt(g):g==="true"?!0:g==="false"?!1:g);break}return s.status>300?{data:null,status:s.status,headers:s.headers,retry:F,error:new A(s.status,m)}:{data:m,error:null,status:s.status,headers:s.headers,retry:F}});return F()};return se(ue);})();
1
+ "use strict";var Eden=(()=>{var P=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var re=(t,e)=>{for(var r in e)P(t,r,{get:e[r],enumerable:!0})},ne=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of ee(e))!te.call(t,f)&&f!==r&&P(t,f,{get:()=>e[f],enumerable:!(a=Y(e,f))||a.enumerable});return t};var se=t=>ne(P({},"__esModule",{value:!0}),t);var ue={};re(ue,{edenFetch:()=>X,edenTreaty:()=>Q,treaty:()=>Z});var B=(t,e,r)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!r||!Object.keys(r).length)return`${t}${e}`;let a="";for(let[f,n]of Object.entries(r))a+=`${f}=${n}&`;return`${t}${e}?${a.slice(0,-1)}`},T=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var A=class extends Error{constructor(r,a){super(a+"");this.status=r;this.value=a}};var N=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,a){return this.addEventListener(e,r,a)}off(e,r,a){return this.ws.removeEventListener(e,r,a),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,a){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),i=n.charCodeAt(0);if(i===47||i===123)try{n=JSON.parse(n)}catch{}else T(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...f,data:n})}else r(f)},a),this}removeEventListener(e,r,a){return this.off(e,r,a),this}close(){return this.ws.close(),this}};var ae=["get","post","put","delete","patch","options","head","connect","subscribe"],G=["localhost","127.0.0.1","0.0.0.0"],D=typeof FileList>"u",ie=/(\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))/,oe=/(?: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\([^)]+\)/,ce=/^(?:(?:(?:(?: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)?)?$/,_=t=>D?t instanceof Blob:t instanceof FileList||t instanceof File,fe=t=>{if(!t)return!1;for(let e in t)if(_(t[e])||Array.isArray(t[e])&&t[e].find(_))return!0;return!1},q=t=>D?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let a=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(a)},r.readAsArrayBuffer(t)}),$=(t,e,r=[],a)=>new Proxy(()=>{},{get(f,n){return $(t,e,n==="index"?r:[...r,n],a)},apply(f,n,[i,p]){if(!i||p||typeof i=="object"&&Object.keys(i).length!==1||ae.includes(r.at(-1))){let k=r.pop(),w="/"+r.join("/"),{fetcher:F=fetch,headers:s,onRequest:m,onResponse:g,fetch:M}=e,x=k==="get"||k==="head"||k==="subscribe";s={...typeof s=="object"&&!Array.isArray(s)?s:{},...x?i?.headers:p?.headers};let L=x?i?.query:p?.query,R="";if(L)for(let[c,u]of Object.entries(L))R+=(R?"&":"?")+`${c}=${u}`;if(typeof e.headers=="function"&&!(s instanceof Headers)){let c=e.headers(w,p??{});c&&(s={...s,...c})}else if(Array.isArray(e.headers)&&e.headers.every(c=>typeof c=="function"))for(let c of e.headers){let u=c(w,p??{});u&&(s={...s,...u})}else if(s instanceof Headers){s||(s={});for(let[c,u]of Object.entries(s))s[c]=u}if(k==="subscribe"){let c=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||G.find(u=>t.includes(u))?"ws://":"wss://")+w+R;return new N(c)}return(async()=>{let c=(s instanceof Headers?s.get("content-type"):Array.isArray(s)?s.find(o=>Array.isArray(o)&&o[0]==="headers"?o[1]:!1):typeof s=="function"?s(w,p??{}):s?.contentType)||p?.headers?.contentType;if(!c)if(typeof i=="object")c="application/json",i=JSON.stringify(i);else if(fe(i)){let o=new FormData;for(let[l,h]of Object.entries(i)){if(D){o.append(l,h);continue}if(h instanceof File){o.append(l,await q(h));continue}if(h instanceof FileList){for(let d=0;d<h.length;d++)o.append(l,await q(h[d]));continue}if(Array.isArray(h)){for(let d=0;d<h.length;d++){let b=h[d];o.append(l,b instanceof File?await q(b):b)}continue}o.append(l,h)}i=o}else i!=null&&(c="text/plain");let u={method:k?.toUpperCase(),body:i,...M,headers:{...s,"content-type":c}};if(x&&delete u.body,m){Array.isArray(m)||(m=[m]);for(let o of m){let l=await o(w,u);typeof l=="object"&&(u={...u,...l,headers:{...u.headers,...l.headers}})}}let C=t+w+R,E=await(a?.handle(new Request(C,u))??F(C,u)),y=null,O=null;if(g){Array.isArray(g)||(g=[g]);for(let o of g)try{if(y=await o(E.clone()),y!=null)break}catch(l){l instanceof A?O=l:O=new A(422,l);break}}if(y===null){switch(E.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await E.json();break;case"application/octet-stream":y=await E.arrayBuffer();break;default:y=await E.text().then(o=>{if(T(o))return+o;if(o==="true")return!0;if(o==="false")return!1;if(!o)return o;let l=o.replace(/"/g,"");if(ie.test(l)||oe.test(l)||ce.test(l)){let h=new Date(l);if(!Number.isNaN(h.getTime()))return h}return o})}(E.status>=300||E.status<200)&&(O=new A(E.status,y),y=null)}return{data:y,error:O,response:E,status:E.status,headers:E.headers}})()}return typeof i=="object"?$(t,e,[...r,Object.values(i)[0]],a):$(t,e,r)}}),Z=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(G.find(r=>t.includes(r))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1))),$(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),$("http://e.ly",e,[],t));var U=typeof FileList>"u",V=t=>U?t instanceof Blob:t instanceof FileList||t instanceof File,ye=t=>{if(!t)return!1;for(let e in t){if(V(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(r=>V(r)))return!0}return!1},J=t=>U?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let a=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(a)},r.readAsArrayBuffer(t)}),H=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,a){return this.addEventListener(e,r,a)}off(e,r,a){return this.ws.removeEventListener(e,r,a),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,a){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),i=n.charCodeAt(0);if(i===47||i===123)try{n=JSON.parse(n)}catch{}else T(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...f,data:n})}else r(f)},a),this}removeEventListener(e,r,a){return this.off(e,r,a),this}close(){return this.ws.close(),this}},z=(t,e="",r)=>new Proxy(()=>{},{get(a,f,n){return z(t,`${e}/${f.toString()}`,r)},apply(a,f,[n,i={}]=[{},{}]){let p=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:k,$fetch:w,$headers:F,$transform:s,getRaw:m,...g}=n??{};p??=g;let M=e.lastIndexOf("/"),x=e.slice(M+1).toUpperCase(),L=B(t,M===-1?"/":e.slice(0,M),Object.assign(i.query??{},k)),R=r.fetcher??fetch,c=r.transform?Array.isArray(r.transform)?r.transform:[r.transform]:void 0,u=s?Array.isArray(s)?s:[s]:void 0;return u&&(c?c=u.concat(c):c=u),x==="SUBSCRIBE"?new H(L.replace(/^([^]+):\/\//,L.startsWith("https://")?"wss://":"ws://")):(async E=>{let y,O={...r.$fetch?.headers,...w?.headers,...i.headers,...F};if(x!=="GET"&&x!=="HEAD"){y=Object.keys(p).length||Array.isArray(p)?p:void 0;let d=y&&(typeof y=="object"||Array.isArray(p));if(d&&ye(y)){let j=new FormData;for(let[K,v]of Object.entries(y))if(U)j.append(K,v);else if(v instanceof File)j.append(K,await J(v));else if(v instanceof FileList)for(let W=0;W<v.length;W++)j.append(K,await J(v[W]));else if(Array.isArray(v))for(let W=0;W<v.length;W++){let I=v[W];j.append(K,I instanceof File?await J(I):I)}else j.append(K,v);y=j}else y!=null&&(O["content-type"]=d?"application/json":"text/plain",y=d?JSON.stringify(y):p)}let S=await R(L,{method:x,body:y,...r.$fetch,...i.fetch,...w,headers:O}),o;if(E.getRaw)return S;switch(S.headers.get("Content-Type")?.split(";")[0]){case"application/json":o=await S.json();break;default:o=await S.text().then(d=>T(d)?+d:d==="true"?!0:d==="false"?!1:d)}let l=S.status>=300||S.status<200?new A(S.status,o):null,h={data:o,error:l,response:S,status:S.status,headers:S.headers};if(c)for(let d of c){let b=d(h);b instanceof Promise&&(b=await b),b!=null&&(h=b)}return h})({getRaw:m})}}),Q=(t,e={fetcher:fetch})=>new Proxy({},{get(r,a){return z(t,a,e)}});var X=(t,e)=>(r,{query:a,params:f,body:n,...i}={})=>{f&&Object.entries(f).forEach(([s,m])=>{r=r.replace(`:${s}`,m)});let p=i.headers?.["Content-Type"];if(!p||p==="application/json")try{n=JSON.stringify(n)}catch{}let k=e?.fetcher||globalThis.fetch,w=a?`?${new URLSearchParams(a).toString()}`:"",F=()=>k(t+r+w,{...i,method:i.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...i.headers}:i.headers,body:n}).then(async s=>{let m;switch(s.headers.get("Content-Type")?.split(";")[0]){case"application/json":m=await s.json();break;default:m=await s.text().then(g=>T(g)?parseInt(g):g==="true"?!0:g==="false"?!1:g);break}return s.status>300?{data:null,status:s.status,headers:s.headers,retry:F,error:new A(s.status,m)}:{data:m,error:null,status:s.status,headers:s.headers,retry:F}});return F()};return se(ue);})();
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var P=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var re=(t,e)=>{for(var r in e)P(t,r,{get:e[r],enumerable:!0})},ne=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of ee(e))!te.call(t,f)&&f!==r&&P(t,f,{get:()=>e[f],enumerable:!(a=Y(e,f))||a.enumerable});return t};var se=t=>ne(P({},"__esModule",{value:!0}),t);var ue={};re(ue,{edenFetch:()=>X,edenTreaty:()=>Q,treaty:()=>Z});module.exports=se(ue);var U=(t,e,r)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!r||!Object.keys(r).length)return`${t}${e}`;let a="";for(let[f,n]of Object.entries(r))a+=`${f}=${n}&`;return`${t}${e}?${a.slice(0,-1)}`},x=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var A=class extends Error{constructor(r,a){super(a+"");this.status=r;this.value=a}};var N=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,a){return this.addEventListener(e,r,a)}off(e,r,a){return this.ws.removeEventListener(e,r,a),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,a){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),i=n.charCodeAt(0);if(i===47||i===123)try{n=JSON.parse(n)}catch{}else x(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...f,data:n})}else r(f)},a),this}removeEventListener(e,r,a){return this.off(e,r,a),this}close(){return this.ws.close(),this}};var ae=["get","post","put","delete","patch","options","head","connect","subscribe"],G=["localhost","127.0.0.1","0.0.0.0"],D=typeof FileList>"u",ie=/(\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))/,oe=/(?: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\([^)]+\)/,ce=/^(?:(?:(?:(?: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)?)?$/,_=t=>D?t instanceof Blob:t instanceof FileList||t instanceof File,fe=t=>{if(!t)return!1;for(let e in t)if(_(t[e])||Array.isArray(t[e])&&t[e].find(_))return!0;return!1},q=t=>D?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let a=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(a)},r.readAsArrayBuffer(t)}),M=(t,e,r=[],a)=>new Proxy(()=>{},{get(f,n){return M(t,e,n==="index"?r:[...r,n],a)},apply(f,n,[i,p]){if(!i||p||typeof i=="object"&&Object.keys(i).length!==1||ae.includes(r.at(-1))){let k=r.pop(),S="/"+r.join("/"),{fetcher:F=fetch,headers:s,onRequest:m,onResponse:g,fetch:K}=e,T=k==="get"||k==="head"||k==="subscribe";s={...typeof s=="object"&&!Array.isArray(s)?s:{},...T?i?.headers:p?.headers};let L=T?i?.query:p?.query,R="";if(L)for(let[c,u]of Object.entries(L))R+=(R?"&":"?")+`${c}=${u}`;if(typeof e.headers=="function"&&!(s instanceof Headers)){let c=e.headers(S,p??{});c&&(s={...s,...c})}else if(Array.isArray(e.headers)&&e.headers.every(c=>typeof c=="function"))for(let c of e.headers){let u=c(S,p??{});u&&(s={...s,...u})}else if(s instanceof Headers){s||(s={});for(let[c,u]of Object.entries(s))s[c]=u}if(k==="subscribe"){let c=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||G.find(u=>t.includes(u))?"ws://":"wss://")+S+R;return new N(c)}return(async()=>{let c=(s instanceof Headers?s.get("content-type"):Array.isArray(s)?s.find(o=>Array.isArray(o)&&o[0]==="headers"?o[1]:!1):typeof s=="function"?s(S,p??{}):s?.contentType)||p?.headers?.contentType;if(!c)if(typeof i=="object")c="application/json",i=JSON.stringify(i);else if(fe(i)){let o=new FormData;for(let[l,h]of Object.entries(i)){if(D){o.append(l,h);continue}if(h instanceof File){o.append(l,await q(h));continue}if(h instanceof FileList){for(let d=0;d<h.length;d++)o.append(l,await q(h[d]));continue}if(Array.isArray(h)){for(let d=0;d<h.length;d++){let b=h[d];o.append(l,b instanceof File?await q(b):b)}continue}o.append(l,h)}i=o}else i!=null&&(c="text/plain");let u={method:k,body:i,...K,headers:{...s,"content-type":c}};if(T&&delete u.body,m){Array.isArray(m)||(m=[m]);for(let o of m){let l=await o(S,u);typeof l=="object"&&(u={...u,...l,headers:{...u.headers,...l.headers}})}}let C=t+S+R,E=await(a?.handle(new Request(C,u))??F(C,u)),y=null,O;if(g){Array.isArray(g)||(g=[g]);for(let o of g)try{if(y=await o(E.clone()),y!=null)break}catch(l){l instanceof A?O=l:O=new A(422,l);break}}if(y===null){switch(E.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await E.json();break;case"application/octet-stream":y=await E.arrayBuffer();break;default:y=await E.text().then(o=>{if(x(o))return+o;if(o==="true")return!0;if(o==="false")return!1;if(!o)return o;let l=o.replace(/"/g,"");if(ie.test(l)||oe.test(l)||ce.test(l)){let h=new Date(l);if(!Number.isNaN(h.getTime()))return h}return o})}(E.status>=300||E.status<200)&&(O=new A(E.status,y),y=null)}return{data:y,error:O,response:E,status:E.status,headers:E.headers}})()}return typeof i=="object"?M(t,e,[...r,Object.values(i)[0]],a):M(t,e,r)}}),Z=(t,e={})=>typeof t=="string"?(t.includes("://")||(t=(G.find(r=>t.includes(r))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1)),M(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),M("http://e.ly",e,[],t));var B=typeof FileList>"u",V=t=>B?t instanceof Blob:t instanceof FileList||t instanceof File,ye=t=>{if(!t)return!1;for(let e in t){if(V(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(r=>V(r)))return!0}return!1},J=t=>B?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let a=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(a)},r.readAsArrayBuffer(t)}),H=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,a){return this.addEventListener(e,r,a)}off(e,r,a){return this.ws.removeEventListener(e,r,a),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,a){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),i=n.charCodeAt(0);if(i===47||i===123)try{n=JSON.parse(n)}catch{}else x(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...f,data:n})}else r(f)},a),this}removeEventListener(e,r,a){return this.off(e,r,a),this}close(){return this.ws.close(),this}},z=(t,e="",r)=>new Proxy(()=>{},{get(a,f,n){return z(t,`${e}/${f.toString()}`,r)},apply(a,f,[n,i={}]=[{},{}]){let p=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:k,$fetch:S,$headers:F,$transform:s,getRaw:m,...g}=n??{};p??=g;let K=e.lastIndexOf("/"),T=e.slice(K+1).toUpperCase(),L=U(t,K===-1?"/":e.slice(0,K),Object.assign(i.query??{},k)),R=r.fetcher??fetch,c=r.transform?Array.isArray(r.transform)?r.transform:[r.transform]:void 0,u=s?Array.isArray(s)?s:[s]:void 0;return u&&(c?c=u.concat(c):c=u),T==="SUBSCRIBE"?new H(L.replace(/^([^]+):\/\//,L.startsWith("https://")?"wss://":"ws://")):(async E=>{let y,O={...r.$fetch?.headers,...S?.headers,...i.headers,...F};if(T!=="GET"&&T!=="HEAD"){y=Object.keys(p).length||Array.isArray(p)?p:void 0;let d=y&&(typeof y=="object"||Array.isArray(p));if(d&&ye(y)){let j=new FormData;for(let[$,v]of Object.entries(y))if(B)j.append($,v);else if(v instanceof File)j.append($,await J(v));else if(v instanceof FileList)for(let W=0;W<v.length;W++)j.append($,await J(v[W]));else if(Array.isArray(v))for(let W=0;W<v.length;W++){let I=v[W];j.append($,I instanceof File?await J(I):I)}else j.append($,v);y=j}else y!=null&&(O["content-type"]=d?"application/json":"text/plain",y=d?JSON.stringify(y):p)}let w=await R(L,{method:T,body:y,...r.$fetch,...i.fetch,...S,headers:O}),o;if(E.getRaw)return w;switch(w.headers.get("Content-Type")?.split(";")[0]){case"application/json":o=await w.json();break;default:o=await w.text().then(d=>x(d)?+d:d==="true"?!0:d==="false"?!1:d)}let l=w.status>=300||w.status<200?new A(w.status,o):null,h={data:o,error:l,response:w,status:w.status,headers:w.headers};if(c)for(let d of c){let b=d(h);b instanceof Promise&&(b=await b),b!=null&&(h=b)}return h})({getRaw:m})}}),Q=(t,e={fetcher:fetch})=>new Proxy({},{get(r,a){return z(t,a,e)}});var X=(t,e)=>(r,{query:a,params:f,body:n,...i}={})=>{f&&Object.entries(f).forEach(([s,m])=>{r=r.replace(`:${s}`,m)});let p=i.headers?.["Content-Type"];if(!p||p==="application/json")try{n=JSON.stringify(n)}catch{}let k=e?.fetcher||globalThis.fetch,S=a?`?${new URLSearchParams(a).toString()}`:"",F=()=>k(t+r+S,{...i,method:i.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...i.headers}:i.headers,body:n}).then(async s=>{let m;switch(s.headers.get("Content-Type")?.split(";")[0]){case"application/json":m=await s.json();break;default:m=await s.text().then(g=>x(g)?parseInt(g):g==="true"?!0:g==="false"?!1:g);break}return s.status>300?{data:null,status:s.status,headers:s.headers,retry:F,error:new A(s.status,m)}:{data:m,error:null,status:s.status,headers:s.headers,retry:F}});return F()};0&&(module.exports={edenFetch,edenTreaty,treaty});
1
+ "use strict";var P=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var re=(t,e)=>{for(var r in e)P(t,r,{get:e[r],enumerable:!0})},ne=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of ee(e))!te.call(t,f)&&f!==r&&P(t,f,{get:()=>e[f],enumerable:!(a=Y(e,f))||a.enumerable});return t};var se=t=>ne(P({},"__esModule",{value:!0}),t);var ue={};re(ue,{edenFetch:()=>X,edenTreaty:()=>Q,treaty:()=>Z});module.exports=se(ue);var B=(t,e,r)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!r||!Object.keys(r).length)return`${t}${e}`;let a="";for(let[f,n]of Object.entries(r))a+=`${f}=${n}&`;return`${t}${e}?${a.slice(0,-1)}`},T=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var A=class extends Error{constructor(r,a){super(a+"");this.status=r;this.value=a}};var N=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,a){return this.addEventListener(e,r,a)}off(e,r,a){return this.ws.removeEventListener(e,r,a),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,a){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),i=n.charCodeAt(0);if(i===47||i===123)try{n=JSON.parse(n)}catch{}else T(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...f,data:n})}else r(f)},a),this}removeEventListener(e,r,a){return this.off(e,r,a),this}close(){return this.ws.close(),this}};var ae=["get","post","put","delete","patch","options","head","connect","subscribe"],G=["localhost","127.0.0.1","0.0.0.0"],D=typeof FileList>"u",ie=/(\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))/,oe=/(?: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\([^)]+\)/,ce=/^(?:(?:(?:(?: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)?)?$/,_=t=>D?t instanceof Blob:t instanceof FileList||t instanceof File,fe=t=>{if(!t)return!1;for(let e in t)if(_(t[e])||Array.isArray(t[e])&&t[e].find(_))return!0;return!1},q=t=>D?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let a=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(a)},r.readAsArrayBuffer(t)}),$=(t,e,r=[],a)=>new Proxy(()=>{},{get(f,n){return $(t,e,n==="index"?r:[...r,n],a)},apply(f,n,[i,p]){if(!i||p||typeof i=="object"&&Object.keys(i).length!==1||ae.includes(r.at(-1))){let k=r.pop(),w="/"+r.join("/"),{fetcher:F=fetch,headers:s,onRequest:m,onResponse:g,fetch:M}=e,x=k==="get"||k==="head"||k==="subscribe";s={...typeof s=="object"&&!Array.isArray(s)?s:{},...x?i?.headers:p?.headers};let L=x?i?.query:p?.query,R="";if(L)for(let[c,u]of Object.entries(L))R+=(R?"&":"?")+`${c}=${u}`;if(typeof e.headers=="function"&&!(s instanceof Headers)){let c=e.headers(w,p??{});c&&(s={...s,...c})}else if(Array.isArray(e.headers)&&e.headers.every(c=>typeof c=="function"))for(let c of e.headers){let u=c(w,p??{});u&&(s={...s,...u})}else if(s instanceof Headers){s||(s={});for(let[c,u]of Object.entries(s))s[c]=u}if(k==="subscribe"){let c=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||G.find(u=>t.includes(u))?"ws://":"wss://")+w+R;return new N(c)}return(async()=>{let c=(s instanceof Headers?s.get("content-type"):Array.isArray(s)?s.find(o=>Array.isArray(o)&&o[0]==="headers"?o[1]:!1):typeof s=="function"?s(w,p??{}):s?.contentType)||p?.headers?.contentType;if(!c)if(typeof i=="object")c="application/json",i=JSON.stringify(i);else if(fe(i)){let o=new FormData;for(let[l,h]of Object.entries(i)){if(D){o.append(l,h);continue}if(h instanceof File){o.append(l,await q(h));continue}if(h instanceof FileList){for(let d=0;d<h.length;d++)o.append(l,await q(h[d]));continue}if(Array.isArray(h)){for(let d=0;d<h.length;d++){let b=h[d];o.append(l,b instanceof File?await q(b):b)}continue}o.append(l,h)}i=o}else i!=null&&(c="text/plain");let u={method:k?.toUpperCase(),body:i,...M,headers:{...s,"content-type":c}};if(x&&delete u.body,m){Array.isArray(m)||(m=[m]);for(let o of m){let l=await o(w,u);typeof l=="object"&&(u={...u,...l,headers:{...u.headers,...l.headers}})}}let C=t+w+R,E=await(a?.handle(new Request(C,u))??F(C,u)),y=null,O=null;if(g){Array.isArray(g)||(g=[g]);for(let o of g)try{if(y=await o(E.clone()),y!=null)break}catch(l){l instanceof A?O=l:O=new A(422,l);break}}if(y===null){switch(E.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await E.json();break;case"application/octet-stream":y=await E.arrayBuffer();break;default:y=await E.text().then(o=>{if(T(o))return+o;if(o==="true")return!0;if(o==="false")return!1;if(!o)return o;let l=o.replace(/"/g,"");if(ie.test(l)||oe.test(l)||ce.test(l)){let h=new Date(l);if(!Number.isNaN(h.getTime()))return h}return o})}(E.status>=300||E.status<200)&&(O=new A(E.status,y),y=null)}return{data:y,error:O,response:E,status:E.status,headers:E.headers}})()}return typeof i=="object"?$(t,e,[...r,Object.values(i)[0]],a):$(t,e,r)}}),Z=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(G.find(r=>t.includes(r))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1))),$(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),$("http://e.ly",e,[],t));var U=typeof FileList>"u",V=t=>U?t instanceof Blob:t instanceof FileList||t instanceof File,ye=t=>{if(!t)return!1;for(let e in t){if(V(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(r=>V(r)))return!0}return!1},J=t=>U?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let a=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(a)},r.readAsArrayBuffer(t)}),H=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,a){return this.addEventListener(e,r,a)}off(e,r,a){return this.ws.removeEventListener(e,r,a),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,a){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),i=n.charCodeAt(0);if(i===47||i===123)try{n=JSON.parse(n)}catch{}else T(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...f,data:n})}else r(f)},a),this}removeEventListener(e,r,a){return this.off(e,r,a),this}close(){return this.ws.close(),this}},z=(t,e="",r)=>new Proxy(()=>{},{get(a,f,n){return z(t,`${e}/${f.toString()}`,r)},apply(a,f,[n,i={}]=[{},{}]){let p=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:k,$fetch:w,$headers:F,$transform:s,getRaw:m,...g}=n??{};p??=g;let M=e.lastIndexOf("/"),x=e.slice(M+1).toUpperCase(),L=B(t,M===-1?"/":e.slice(0,M),Object.assign(i.query??{},k)),R=r.fetcher??fetch,c=r.transform?Array.isArray(r.transform)?r.transform:[r.transform]:void 0,u=s?Array.isArray(s)?s:[s]:void 0;return u&&(c?c=u.concat(c):c=u),x==="SUBSCRIBE"?new H(L.replace(/^([^]+):\/\//,L.startsWith("https://")?"wss://":"ws://")):(async E=>{let y,O={...r.$fetch?.headers,...w?.headers,...i.headers,...F};if(x!=="GET"&&x!=="HEAD"){y=Object.keys(p).length||Array.isArray(p)?p:void 0;let d=y&&(typeof y=="object"||Array.isArray(p));if(d&&ye(y)){let j=new FormData;for(let[K,v]of Object.entries(y))if(U)j.append(K,v);else if(v instanceof File)j.append(K,await J(v));else if(v instanceof FileList)for(let W=0;W<v.length;W++)j.append(K,await J(v[W]));else if(Array.isArray(v))for(let W=0;W<v.length;W++){let I=v[W];j.append(K,I instanceof File?await J(I):I)}else j.append(K,v);y=j}else y!=null&&(O["content-type"]=d?"application/json":"text/plain",y=d?JSON.stringify(y):p)}let S=await R(L,{method:x,body:y,...r.$fetch,...i.fetch,...w,headers:O}),o;if(E.getRaw)return S;switch(S.headers.get("Content-Type")?.split(";")[0]){case"application/json":o=await S.json();break;default:o=await S.text().then(d=>T(d)?+d:d==="true"?!0:d==="false"?!1:d)}let l=S.status>=300||S.status<200?new A(S.status,o):null,h={data:o,error:l,response:S,status:S.status,headers:S.headers};if(c)for(let d of c){let b=d(h);b instanceof Promise&&(b=await b),b!=null&&(h=b)}return h})({getRaw:m})}}),Q=(t,e={fetcher:fetch})=>new Proxy({},{get(r,a){return z(t,a,e)}});var X=(t,e)=>(r,{query:a,params:f,body:n,...i}={})=>{f&&Object.entries(f).forEach(([s,m])=>{r=r.replace(`:${s}`,m)});let p=i.headers?.["Content-Type"];if(!p||p==="application/json")try{n=JSON.stringify(n)}catch{}let k=e?.fetcher||globalThis.fetch,w=a?`?${new URLSearchParams(a).toString()}`:"",F=()=>k(t+r+w,{...i,method:i.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...i.headers}:i.headers,body:n}).then(async s=>{let m;switch(s.headers.get("Content-Type")?.split(";")[0]){case"application/json":m=await s.json();break;default:m=await s.text().then(g=>T(g)?parseInt(g):g==="true"?!0:g==="false"?!1:g);break}return s.status>300?{data:null,status:s.status,headers:s.headers,retry:F,error:new A(s.status,m)}:{data:m,error:null,status:s.status,headers:s.headers,retry:F}});return F()};0&&(module.exports={edenFetch,edenTreaty,treaty});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{b as D}from"./chunk-Q3DJMDQ2.mjs";import{a as J}from"./chunk-TDCHXBL7.mjs";import{b as k,c as T}from"./chunk-HUZ6GXDC.mjs";var F=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(s=>this.send(s)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,s,y){return this.addEventListener(e,s,y)}off(e,s,y){return this.ws.removeEventListener(e,s,y),this}subscribe(e,s){return this.addEventListener("message",e,s)}addEventListener(e,s,y){return this.ws.addEventListener(e,v=>{if(e==="message"){let f=v.data.toString(),i=f.charCodeAt(0);if(i===47||i===123)try{f=JSON.parse(f)}catch{}else k(f)?f=+f:f==="true"?f=!0:f==="false"&&(f=!1);s({...v,data:f})}else s(v)},y),this}removeEventListener(e,s,y){return this.off(e,s,y),this}close(){return this.ws.close(),this}};var C=["get","post","put","delete","patch","options","head","connect","subscribe"],N=["localhost","127.0.0.1","0.0.0.0"],L=typeof FileList>"u",I=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,P=/(?: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\([^)]+\)/,H=/^(?:(?:(?:(?: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)?)?$/,j=t=>L?t instanceof Blob:t instanceof FileList||t instanceof File,_=t=>{if(!t)return!1;for(let e in t)if(j(t[e])||Array.isArray(t[e])&&t[e].find(j))return!0;return!1},x=t=>L?t:new Promise(e=>{let s=new FileReader;s.onload=()=>{let y=new File([s.result],t.name,{lastModified:t.lastModified,type:t.type});e(y)},s.readAsArrayBuffer(t)}),E=(t,e,s=[],y)=>new Proxy(()=>{},{get(v,f){return E(t,e,f==="index"?s:[...s,f],y)},apply(v,f,[i,d]){if(!i||d||typeof i=="object"&&Object.keys(i).length!==1||C.includes(s.at(-1))){let w=s.pop(),m="/"+s.join("/"),{fetcher:R=fetch,headers:n,onRequest:S,onResponse:g,fetch:q}=e,W=w==="get"||w==="head"||w==="subscribe";n={...typeof n=="object"&&!Array.isArray(n)?n:{},...W?i?.headers:d?.headers};let M=W?i?.query:d?.query,A="";if(M)for(let[o,c]of Object.entries(M))A+=(A?"&":"?")+`${o}=${c}`;if(typeof e.headers=="function"&&!(n instanceof Headers)){let o=e.headers(m,d??{});o&&(n={...n,...o})}else if(Array.isArray(e.headers)&&e.headers.every(o=>typeof o=="function"))for(let o of e.headers){let c=o(m,d??{});c&&(n={...n,...c})}else if(n instanceof Headers){n||(n={});for(let[o,c]of Object.entries(n))n[o]=c}if(w==="subscribe"){let o=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||N.find(c=>t.includes(c))?"ws://":"wss://")+m+A;return new F(o)}return(async()=>{let o=(n instanceof Headers?n.get("content-type"):Array.isArray(n)?n.find(r=>Array.isArray(r)&&r[0]==="headers"?r[1]:!1):typeof n=="function"?n(m,d??{}):n?.contentType)||d?.headers?.contentType;if(!o)if(typeof i=="object")o="application/json",i=JSON.stringify(i);else if(_(i)){let r=new FormData;for(let[a,l]of Object.entries(i)){if(L){r.append(a,l);continue}if(l instanceof File){r.append(a,await x(l));continue}if(l instanceof FileList){for(let h=0;h<l.length;h++)r.append(a,await x(l[h]));continue}if(Array.isArray(l)){for(let h=0;h<l.length;h++){let O=l[h];r.append(a,O instanceof File?await x(O):O)}continue}r.append(a,l)}i=r}else i!=null&&(o="text/plain");let c={method:w,body:i,...q,headers:{...n,"content-type":o}};if(W&&delete c.body,S){Array.isArray(S)||(S=[S]);for(let r of S){let a=await r(m,c);typeof a=="object"&&(c={...c,...a,headers:{...c.headers,...a.headers}})}}let K=t+m+A,u=await(y?.handle(new Request(K,c))??R(K,c)),p=null,b;if(g){Array.isArray(g)||(g=[g]);for(let r of g)try{if(p=await r(u.clone()),p!=null)break}catch(a){a instanceof T?b=a:b=new T(422,a);break}}if(p===null){switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":p=await u.json();break;case"application/octet-stream":p=await u.arrayBuffer();break;default:p=await u.text().then(r=>{if(k(r))return+r;if(r==="true")return!0;if(r==="false")return!1;if(!r)return r;let a=r.replace(/"/g,"");if(I.test(a)||P.test(a)||H.test(a)){let l=new Date(a);if(!Number.isNaN(l.getTime()))return l}return r})}(u.status>=300||u.status<200)&&(b=new T(u.status,p),p=null)}return{data:p,error:b,response:u,status:u.status,headers:u.headers}})()}return typeof i=="object"?E(t,e,[...s,Object.values(i)[0]],y):E(t,e,s)}}),B=(t,e={})=>typeof t=="string"?(t.includes("://")||(t=(N.find(s=>t.includes(s))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1)),E(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),E("http://e.ly",e,[],t));export{J as edenFetch,D as edenTreaty,B as treaty};
1
+ import{b as D}from"./chunk-FOFYS2DG.mjs";import{a as C}from"./chunk-TDCHXBL7.mjs";import{b as k,c as T}from"./chunk-HUZ6GXDC.mjs";var F=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(s=>this.send(s)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,s,y){return this.addEventListener(e,s,y)}off(e,s,y){return this.ws.removeEventListener(e,s,y),this}subscribe(e,s){return this.addEventListener("message",e,s)}addEventListener(e,s,y){return this.ws.addEventListener(e,v=>{if(e==="message"){let f=v.data.toString(),i=f.charCodeAt(0);if(i===47||i===123)try{f=JSON.parse(f)}catch{}else k(f)?f=+f:f==="true"?f=!0:f==="false"&&(f=!1);s({...v,data:f})}else s(v)},y),this}removeEventListener(e,s,y){return this.off(e,s,y),this}close(){return this.ws.close(),this}};var J=["get","post","put","delete","patch","options","head","connect","subscribe"],N=["localhost","127.0.0.1","0.0.0.0"],L=typeof FileList>"u",I=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,P=/(?: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\([^)]+\)/,H=/^(?:(?:(?:(?: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)?)?$/,j=t=>L?t instanceof Blob:t instanceof FileList||t instanceof File,_=t=>{if(!t)return!1;for(let e in t)if(j(t[e])||Array.isArray(t[e])&&t[e].find(j))return!0;return!1},x=t=>L?t:new Promise(e=>{let s=new FileReader;s.onload=()=>{let y=new File([s.result],t.name,{lastModified:t.lastModified,type:t.type});e(y)},s.readAsArrayBuffer(t)}),g=(t,e,s=[],y)=>new Proxy(()=>{},{get(v,f){return g(t,e,f==="index"?s:[...s,f],y)},apply(v,f,[i,d]){if(!i||d||typeof i=="object"&&Object.keys(i).length!==1||J.includes(s.at(-1))){let w=s.pop(),m="/"+s.join("/"),{fetcher:R=fetch,headers:n,onRequest:S,onResponse:E,fetch:q}=e,W=w==="get"||w==="head"||w==="subscribe";n={...typeof n=="object"&&!Array.isArray(n)?n:{},...W?i?.headers:d?.headers};let M=W?i?.query:d?.query,A="";if(M)for(let[o,c]of Object.entries(M))A+=(A?"&":"?")+`${o}=${c}`;if(typeof e.headers=="function"&&!(n instanceof Headers)){let o=e.headers(m,d??{});o&&(n={...n,...o})}else if(Array.isArray(e.headers)&&e.headers.every(o=>typeof o=="function"))for(let o of e.headers){let c=o(m,d??{});c&&(n={...n,...c})}else if(n instanceof Headers){n||(n={});for(let[o,c]of Object.entries(n))n[o]=c}if(w==="subscribe"){let o=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||N.find(c=>t.includes(c))?"ws://":"wss://")+m+A;return new F(o)}return(async()=>{let o=(n instanceof Headers?n.get("content-type"):Array.isArray(n)?n.find(r=>Array.isArray(r)&&r[0]==="headers"?r[1]:!1):typeof n=="function"?n(m,d??{}):n?.contentType)||d?.headers?.contentType;if(!o)if(typeof i=="object")o="application/json",i=JSON.stringify(i);else if(_(i)){let r=new FormData;for(let[a,l]of Object.entries(i)){if(L){r.append(a,l);continue}if(l instanceof File){r.append(a,await x(l));continue}if(l instanceof FileList){for(let h=0;h<l.length;h++)r.append(a,await x(l[h]));continue}if(Array.isArray(l)){for(let h=0;h<l.length;h++){let O=l[h];r.append(a,O instanceof File?await x(O):O)}continue}r.append(a,l)}i=r}else i!=null&&(o="text/plain");let c={method:w?.toUpperCase(),body:i,...q,headers:{...n,"content-type":o}};if(W&&delete c.body,S){Array.isArray(S)||(S=[S]);for(let r of S){let a=await r(m,c);typeof a=="object"&&(c={...c,...a,headers:{...c.headers,...a.headers}})}}let K=t+m+A,p=await(y?.handle(new Request(K,c))??R(K,c)),u=null,b=null;if(E){Array.isArray(E)||(E=[E]);for(let r of E)try{if(u=await r(p.clone()),u!=null)break}catch(a){a instanceof T?b=a:b=new T(422,a);break}}if(u===null){switch(p.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await p.json();break;case"application/octet-stream":u=await p.arrayBuffer();break;default:u=await p.text().then(r=>{if(k(r))return+r;if(r==="true")return!0;if(r==="false")return!1;if(!r)return r;let a=r.replace(/"/g,"");if(I.test(a)||P.test(a)||H.test(a)){let l=new Date(a);if(!Number.isNaN(l.getTime()))return l}return r})}(p.status>=300||p.status<200)&&(b=new T(p.status,u),u=null)}return{data:u,error:b,response:p,status:p.status,headers:p.headers}})()}return typeof i=="object"?g(t,e,[...s,Object.values(i)[0]],y):g(t,e,s)}}),B=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(N.find(s=>t.includes(s))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1))),g(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),g("http://e.ly",e,[],t));export{C as edenFetch,D as edenTreaty,B as treaty};
@@ -1,11 +1,12 @@
1
1
  import type { Elysia, InputSchema } from 'elysia';
2
2
  import type { EdenTreaty } from './types';
3
3
  export type { EdenTreaty } from './types';
4
+ type MaybeArray<T> = T | T[];
4
5
  export declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
5
6
  ws: WebSocket;
6
7
  url: string;
7
8
  constructor(url: string);
8
- send(data: Schema['body'] | Schema['body'][]): this;
9
+ send(data: MaybeArray<Schema['body']>): this;
9
10
  on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
10
11
  off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
11
12
  subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
@@ -23,7 +23,7 @@ export declare namespace EdenTreaty {
23
23
  $query?: Record<string, string>;
24
24
  }) => EdenWS<Route> : (params: {
25
25
  $query: Route['query'];
26
- }) => EdenWS<Route> : ((params: Prettify<{
26
+ }) => EdenWS<Route['subscribe']> : ((params: Prettify<{
27
27
  $fetch?: RequestInit;
28
28
  getRaw?: boolean;
29
29
  $transform?: Transform;
package/dist/treaty.d.mts CHANGED
@@ -7,7 +7,7 @@ type Files = File | FileList;
7
7
  type Replace<RecordType, TargetType, GenericType> = {
8
8
  [K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
9
9
  };
10
- type MaybeArray<T> = T | T[];
10
+ type MaybeArray$1<T> = T | T[];
11
11
  declare namespace EdenTreaty {
12
12
  export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
13
13
  _routes: infer Schema extends Record<string, unknown>;
@@ -23,7 +23,7 @@ declare namespace EdenTreaty {
23
23
  $query?: Record<string, string>;
24
24
  }) => EdenWS<Route> : (params: {
25
25
  $query: Route['query'];
26
- }) => EdenWS<Route> : ((params: Prettify<{
26
+ }) => EdenWS<Route['subscribe']> : ((params: Prettify<{
27
27
  $fetch?: RequestInit;
28
28
  getRaw?: boolean;
29
29
  $transform?: Transform;
@@ -64,7 +64,7 @@ declare namespace EdenTreaty {
64
64
  }) => Response : never : Prettify<Sign<Route[K]>>;
65
65
  };
66
66
  type UnwrapPromise<T> = T extends Promise<infer A> ? A : T;
67
- export type Transform<T = unknown> = MaybeArray<(response: unknown extends T ? {
67
+ export type Transform<T = unknown> = MaybeArray$1<(response: unknown extends T ? {
68
68
  data: any;
69
69
  error: any;
70
70
  response: Response;
@@ -98,11 +98,12 @@ declare namespace EdenTreaty {
98
98
  export { };
99
99
  }
100
100
 
101
+ type MaybeArray<T> = T | T[];
101
102
  declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
102
103
  ws: WebSocket;
103
104
  url: string;
104
105
  constructor(url: string);
105
- send(data: Schema['body'] | Schema['body'][]): this;
106
+ send(data: MaybeArray<Schema['body']>): this;
106
107
  on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
107
108
  off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
108
109
  subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
package/dist/treaty.d.ts CHANGED
@@ -7,7 +7,7 @@ type Files = File | FileList;
7
7
  type Replace<RecordType, TargetType, GenericType> = {
8
8
  [K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
9
9
  };
10
- type MaybeArray<T> = T | T[];
10
+ type MaybeArray$1<T> = T | T[];
11
11
  declare namespace EdenTreaty {
12
12
  export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
13
13
  _routes: infer Schema extends Record<string, unknown>;
@@ -23,7 +23,7 @@ declare namespace EdenTreaty {
23
23
  $query?: Record<string, string>;
24
24
  }) => EdenWS<Route> : (params: {
25
25
  $query: Route['query'];
26
- }) => EdenWS<Route> : ((params: Prettify<{
26
+ }) => EdenWS<Route['subscribe']> : ((params: Prettify<{
27
27
  $fetch?: RequestInit;
28
28
  getRaw?: boolean;
29
29
  $transform?: Transform;
@@ -64,7 +64,7 @@ declare namespace EdenTreaty {
64
64
  }) => Response : never : Prettify<Sign<Route[K]>>;
65
65
  };
66
66
  type UnwrapPromise<T> = T extends Promise<infer A> ? A : T;
67
- export type Transform<T = unknown> = MaybeArray<(response: unknown extends T ? {
67
+ export type Transform<T = unknown> = MaybeArray$1<(response: unknown extends T ? {
68
68
  data: any;
69
69
  error: any;
70
70
  response: Response;
@@ -98,11 +98,12 @@ declare namespace EdenTreaty {
98
98
  export { };
99
99
  }
100
100
 
101
+ type MaybeArray<T> = T | T[];
101
102
  declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
102
103
  ws: WebSocket;
103
104
  url: string;
104
105
  constructor(url: string);
105
- send(data: Schema['body'] | Schema['body'][]): this;
106
+ send(data: MaybeArray<Schema['body']>): this;
106
107
  on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
107
108
  off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
108
109
  subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var $=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(t,e)=>{for(var n in e)$(t,n,{get:e[n],enumerable:!0})},G=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of H(e))!U.call(t,a)&&a!==n&&$(t,a,{get:()=>e[a],enumerable:!(r=B(e,a))||r.enumerable});return t};var _=t=>G($({},"__esModule",{value:!0}),t);var X={};V(X,{EdenWS:()=>w,edenTreaty:()=>Q});var S=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var K=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let r="";for(let[a,s]of Object.entries(n))r+=`${a}=${s}&`;return`${t}${e}?${r.slice(0,-1)}`},O=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var F=typeof FileList>"u",N=t=>F?t instanceof Blob:t instanceof FileList||t instanceof File,z=t=>{if(!t)return!1;for(let e in t){if(N(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>N(n)))return!0}return!1},R=t=>F?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),w=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,a=>{if(e==="message"){let s=a.data.toString(),l=s.charCodeAt(0);if(l===47||l===123)try{s=JSON.parse(s)}catch{}else O(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...a,data:s})}else n(a)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}},j=(t,e="",n)=>new Proxy(()=>{},{get(r,a,s){return j(t,`${e}/${a.toString()}`,n)},apply(r,a,[s,l={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:M,$fetch:L,$headers:I,$transform:g,getRaw:P,...C}=s??{};y??=C;let v=e.lastIndexOf("/"),E=e.slice(v+1).toUpperCase(),x=K(t,v===-1?"/":e.slice(0,v),Object.assign(l.query??{},M)),q=n.fetcher??fetch,p=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,k=g?Array.isArray(g)?g:[g]:void 0;return k&&(p?p=k.concat(p):p=k),E==="SUBSCRIBE"?new w(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async D=>{let i,W={...n.$fetch?.headers,...L?.headers,...l.headers,...I};if(E!=="GET"&&E!=="HEAD"){i=Object.keys(y).length||Array.isArray(y)?y:void 0;let o=i&&(typeof i=="object"||Array.isArray(y));if(o&&z(i)){let h=new FormData;for(let[m,f]of Object.entries(i))if(F)h.append(m,f);else if(f instanceof File)h.append(m,await R(f));else if(f instanceof FileList)for(let d=0;d<f.length;d++)h.append(m,await R(f[d]));else if(Array.isArray(f))for(let d=0;d<f.length;d++){let T=f[d];h.append(m,T instanceof File?await R(T):T)}else h.append(m,f);i=h}else i!=null&&(W["content-type"]=o?"application/json":"text/plain",i=o?JSON.stringify(i):y)}let c=await q(x,{method:E,body:i,...n.$fetch,...l.fetch,...L,headers:W}),b;if(D.getRaw)return c;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":b=await c.json();break;default:b=await c.text().then(o=>O(o)?+o:o==="true"?!0:o==="false"?!1:o)}let J=c.status>=300||c.status<200?new S(c.status,b):null,A={data:b,error:J,response:c,status:c.status,headers:c.headers};if(p)for(let o of p){let u=o(A);u instanceof Promise&&(u=await u),u!=null&&(A=u)}return A})({getRaw:P})}}),Q=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return j(t,r,e)}});return _(X);})();
1
+ "use strict";var Eden=(()=>{var $=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(t,e)=>{for(var n in e)$(t,n,{get:e[n],enumerable:!0})},G=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of H(e))!U.call(t,a)&&a!==n&&$(t,a,{get:()=>e[a],enumerable:!(r=B(e,a))||r.enumerable});return t};var _=t=>G($({},"__esModule",{value:!0}),t);var X={};V(X,{EdenWS:()=>S,edenTreaty:()=>Q});var w=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var K=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let r="";for(let[a,s]of Object.entries(n))r+=`${a}=${s}&`;return`${t}${e}?${r.slice(0,-1)}`},O=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var F=typeof FileList>"u",M=t=>F?t instanceof Blob:t instanceof FileList||t instanceof File,z=t=>{if(!t)return!1;for(let e in t){if(M(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>M(n)))return!0}return!1},R=t=>F?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),S=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,a=>{if(e==="message"){let s=a.data.toString(),l=s.charCodeAt(0);if(l===47||l===123)try{s=JSON.parse(s)}catch{}else O(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...a,data:s})}else n(a)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}},N=(t,e="",n)=>new Proxy(()=>{},{get(r,a,s){return N(t,`${e}/${a.toString()}`,n)},apply(r,a,[s,l={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:j,$fetch:L,$headers:I,$transform:g,getRaw:P,...C}=s??{};y??=C;let v=e.lastIndexOf("/"),E=e.slice(v+1).toUpperCase(),x=K(t,v===-1?"/":e.slice(0,v),Object.assign(l.query??{},j)),q=n.fetcher??fetch,p=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,A=g?Array.isArray(g)?g:[g]:void 0;return A&&(p?p=A.concat(p):p=A),E==="SUBSCRIBE"?new S(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async D=>{let i,W={...n.$fetch?.headers,...L?.headers,...l.headers,...I};if(E!=="GET"&&E!=="HEAD"){i=Object.keys(y).length||Array.isArray(y)?y:void 0;let o=i&&(typeof i=="object"||Array.isArray(y));if(o&&z(i)){let h=new FormData;for(let[m,f]of Object.entries(i))if(F)h.append(m,f);else if(f instanceof File)h.append(m,await R(f));else if(f instanceof FileList)for(let d=0;d<f.length;d++)h.append(m,await R(f[d]));else if(Array.isArray(f))for(let d=0;d<f.length;d++){let T=f[d];h.append(m,T instanceof File?await R(T):T)}else h.append(m,f);i=h}else i!=null&&(W["content-type"]=o?"application/json":"text/plain",i=o?JSON.stringify(i):y)}let c=await q(x,{method:E,body:i,...n.$fetch,...l.fetch,...L,headers:W}),b;if(D.getRaw)return c;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":b=await c.json();break;default:b=await c.text().then(o=>O(o)?+o:o==="true"?!0:o==="false"?!1:o)}let J=c.status>=300||c.status<200?new w(c.status,b):null,k={data:b,error:J,response:c,status:c.status,headers:c.headers};if(p)for(let o of p){let u=o(k);u instanceof Promise&&(u=await u),u!=null&&(k=u)}return k})({getRaw:P})}}),Q=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return N(t,r,e)}});return _(X);})();
package/dist/treaty.js CHANGED
@@ -1 +1 @@
1
- "use strict";var $=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(t,e)=>{for(var n in e)$(t,n,{get:e[n],enumerable:!0})},G=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of H(e))!U.call(t,a)&&a!==n&&$(t,a,{get:()=>e[a],enumerable:!(r=B(e,a))||r.enumerable});return t};var _=t=>G($({},"__esModule",{value:!0}),t);var X={};V(X,{EdenWS:()=>w,edenTreaty:()=>Q});module.exports=_(X);var S=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var K=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let r="";for(let[a,s]of Object.entries(n))r+=`${a}=${s}&`;return`${t}${e}?${r.slice(0,-1)}`},O=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var F=typeof FileList>"u",N=t=>F?t instanceof Blob:t instanceof FileList||t instanceof File,z=t=>{if(!t)return!1;for(let e in t){if(N(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>N(n)))return!0}return!1},R=t=>F?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),w=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,a=>{if(e==="message"){let s=a.data.toString(),l=s.charCodeAt(0);if(l===47||l===123)try{s=JSON.parse(s)}catch{}else O(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...a,data:s})}else n(a)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}},j=(t,e="",n)=>new Proxy(()=>{},{get(r,a,s){return j(t,`${e}/${a.toString()}`,n)},apply(r,a,[s,l={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:M,$fetch:L,$headers:I,$transform:g,getRaw:P,...C}=s??{};y??=C;let v=e.lastIndexOf("/"),E=e.slice(v+1).toUpperCase(),x=K(t,v===-1?"/":e.slice(0,v),Object.assign(l.query??{},M)),q=n.fetcher??fetch,p=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,k=g?Array.isArray(g)?g:[g]:void 0;return k&&(p?p=k.concat(p):p=k),E==="SUBSCRIBE"?new w(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async D=>{let i,W={...n.$fetch?.headers,...L?.headers,...l.headers,...I};if(E!=="GET"&&E!=="HEAD"){i=Object.keys(y).length||Array.isArray(y)?y:void 0;let o=i&&(typeof i=="object"||Array.isArray(y));if(o&&z(i)){let h=new FormData;for(let[m,f]of Object.entries(i))if(F)h.append(m,f);else if(f instanceof File)h.append(m,await R(f));else if(f instanceof FileList)for(let d=0;d<f.length;d++)h.append(m,await R(f[d]));else if(Array.isArray(f))for(let d=0;d<f.length;d++){let T=f[d];h.append(m,T instanceof File?await R(T):T)}else h.append(m,f);i=h}else i!=null&&(W["content-type"]=o?"application/json":"text/plain",i=o?JSON.stringify(i):y)}let c=await q(x,{method:E,body:i,...n.$fetch,...l.fetch,...L,headers:W}),b;if(D.getRaw)return c;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":b=await c.json();break;default:b=await c.text().then(o=>O(o)?+o:o==="true"?!0:o==="false"?!1:o)}let J=c.status>=300||c.status<200?new S(c.status,b):null,A={data:b,error:J,response:c,status:c.status,headers:c.headers};if(p)for(let o of p){let u=o(A);u instanceof Promise&&(u=await u),u!=null&&(A=u)}return A})({getRaw:P})}}),Q=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return j(t,r,e)}});0&&(module.exports={EdenWS,edenTreaty});
1
+ "use strict";var $=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(t,e)=>{for(var n in e)$(t,n,{get:e[n],enumerable:!0})},G=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of H(e))!U.call(t,a)&&a!==n&&$(t,a,{get:()=>e[a],enumerable:!(r=B(e,a))||r.enumerable});return t};var _=t=>G($({},"__esModule",{value:!0}),t);var X={};V(X,{EdenWS:()=>S,edenTreaty:()=>Q});module.exports=_(X);var w=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var K=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let r="";for(let[a,s]of Object.entries(n))r+=`${a}=${s}&`;return`${t}${e}?${r.slice(0,-1)}`},O=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var F=typeof FileList>"u",M=t=>F?t instanceof Blob:t instanceof FileList||t instanceof File,z=t=>{if(!t)return!1;for(let e in t){if(M(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>M(n)))return!0}return!1},R=t=>F?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),S=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,a=>{if(e==="message"){let s=a.data.toString(),l=s.charCodeAt(0);if(l===47||l===123)try{s=JSON.parse(s)}catch{}else O(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...a,data:s})}else n(a)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}},N=(t,e="",n)=>new Proxy(()=>{},{get(r,a,s){return N(t,`${e}/${a.toString()}`,n)},apply(r,a,[s,l={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:j,$fetch:L,$headers:I,$transform:g,getRaw:P,...C}=s??{};y??=C;let v=e.lastIndexOf("/"),E=e.slice(v+1).toUpperCase(),x=K(t,v===-1?"/":e.slice(0,v),Object.assign(l.query??{},j)),q=n.fetcher??fetch,p=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,A=g?Array.isArray(g)?g:[g]:void 0;return A&&(p?p=A.concat(p):p=A),E==="SUBSCRIBE"?new S(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async D=>{let i,W={...n.$fetch?.headers,...L?.headers,...l.headers,...I};if(E!=="GET"&&E!=="HEAD"){i=Object.keys(y).length||Array.isArray(y)?y:void 0;let o=i&&(typeof i=="object"||Array.isArray(y));if(o&&z(i)){let h=new FormData;for(let[m,f]of Object.entries(i))if(F)h.append(m,f);else if(f instanceof File)h.append(m,await R(f));else if(f instanceof FileList)for(let d=0;d<f.length;d++)h.append(m,await R(f[d]));else if(Array.isArray(f))for(let d=0;d<f.length;d++){let T=f[d];h.append(m,T instanceof File?await R(T):T)}else h.append(m,f);i=h}else i!=null&&(W["content-type"]=o?"application/json":"text/plain",i=o?JSON.stringify(i):y)}let c=await q(x,{method:E,body:i,...n.$fetch,...l.fetch,...L,headers:W}),b;if(D.getRaw)return c;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":b=await c.json();break;default:b=await c.text().then(o=>O(o)?+o:o==="true"?!0:o==="false"?!1:o)}let J=c.status>=300||c.status<200?new w(c.status,b):null,k={data:b,error:J,response:c,status:c.status,headers:c.headers};if(p)for(let o of p){let u=o(k);u instanceof Promise&&(u=await u),u!=null&&(k=u)}return k})({getRaw:P})}}),Q=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return N(t,r,e)}});0&&(module.exports={EdenWS,edenTreaty});
package/dist/treaty.mjs CHANGED
@@ -1 +1 @@
1
- import{a,b}from"./chunk-Q3DJMDQ2.mjs";import"./chunk-HUZ6GXDC.mjs";export{a as EdenWS,b as edenTreaty};
1
+ import{a,b}from"./chunk-FOFYS2DG.mjs";import"./chunk-HUZ6GXDC.mjs";export{a as EdenWS,b as edenTreaty};
@@ -51,6 +51,7 @@ export declare namespace Treaty {
51
51
  headers?: RequestInit['headers'] | MaybeArray<(path: string, options: RequestInit) => RequestInit['headers'] | void>;
52
52
  onRequest?: MaybeArray<(path: string, options: FetchRequestInit) => MaybePromise<FetchRequestInit | void>>;
53
53
  onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
54
+ keepDomain?: boolean;
54
55
  }
55
56
  type TreatyResponse<Res extends Record<number, unknown>> = {
56
57
  data: Res[200];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elysiajs/eden",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Fully type-safe Elysia client",
5
5
  "author": {
6
6
  "name": "saltyAom",